Merge "mediawiki.mixins: Avoid including css rule on every less file that includes...
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Wed, 29 Apr 2015 22:49:07 +0000 (22:49 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Wed, 29 Apr 2015 22:49:07 +0000 (22:49 +0000)
206 files changed:
RELEASE-NOTES-1.25
RELEASE-NOTES-1.26
api.php
autoload.php
composer.json
img_auth.php
includes/CategoryFinder.php
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/MediaWiki.php
includes/MovePage.php
includes/OutputPage.php
includes/Setup.php
includes/Status.php
includes/Title.php
includes/User.php
includes/ZhConversion.php
includes/api/ApiEditPage.php
includes/api/ApiFeedRecentChanges.php
includes/api/ApiQuery.php
includes/api/ApiQueryPageProps.php
includes/api/ApiQueryRevisions.php
includes/api/ApiResult.php
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/ksh.json
includes/api/i18n/ku-latn.json
includes/api/i18n/mk.json
includes/api/i18n/zh-hans.json
includes/changetags/ChangeTags.php
includes/content/ContentHandler.php
includes/context/IContextSource.php
includes/db/DBConnRef.php [new file with mode: 0644]
includes/db/Database.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseSqlite.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/eventrelayer/EventRelayer.php [deleted file]
includes/eventrelayer/EventRelayerMCRD.php [deleted file]
includes/filerepo/LocalRepo.php
includes/filerepo/file/LocalFile.php
includes/installer/i18n/da.json
includes/installer/i18n/es.json
includes/installer/i18n/fo.json
includes/installer/i18n/ja.json
includes/installer/i18n/tr.json
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobRunner.php
includes/jobqueue/JobSpecification.php
includes/libs/MultiHttpClient.php
includes/libs/eventrelayer/EventRelayer.php [new file with mode: 0755]
includes/libs/eventrelayer/EventRelayerMCRD.php [new file with mode: 0755]
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/WANObjectCache.php [new file with mode: 0755]
includes/libs/virtualrest/VirtualRESTServiceClient.php
includes/logging/LogEventsList.php
includes/media/DjVu.php
includes/media/FormatMetadata.php
includes/media/SVG.php
includes/objectcache/ObjectCache.php
includes/objectcache/WANObjectCache.php [deleted file]
includes/profiler/ProfileSection.php
includes/profiler/ProfilerSectionOnly.php [changed mode: 0755->0644]
includes/profiler/TransactionProfiler.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/site/SiteExporter.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialLog.php
includes/specials/SpecialRecentchanges.php
languages/i18n/af.json
languages/i18n/an.json
languages/i18n/ast.json
languages/i18n/awa.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cv.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/egl.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frp.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/gu.json
languages/i18n/hr.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/khw.json
languages/i18n/kk-cyrl.json
languages/i18n/kn.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lv.json
languages/i18n/mt.json
languages/i18n/nds-nl.json
languages/i18n/nn.json
languages/i18n/or.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pt-br.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sa.json
languages/i18n/sk.json
languages/i18n/sr-ec.json
languages/i18n/sv.json
languages/i18n/ta.json
languages/i18n/te.json
languages/i18n/tr.json
languages/i18n/ur.json
languages/i18n/vo.json
languages/i18n/xmf.json
languages/i18n/zh-hans.json
maintenance/Maintenance.php
maintenance/benchmarks/benchmarkHooks.php
maintenance/eraseArchivedFile.php
maintenance/language/checkLanguage.inc
maintenance/language/languages.inc
maintenance/language/zhtable/Makefile.py
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toHK.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/toTrad.manual
maintenance/language/zhtable/trad2simp.manual
maintenance/purgeChangedFiles.php
maintenance/refreshLinks.php
maintenance/resources/update-oojs-ui.sh
maintenance/resources/update-oojs.sh
opensearch_desc.php
resources/Resources.php
resources/lib/jquery/jquery.js
resources/lib/oojs-ui/i18n/fo.json
resources/lib/oojs-ui/i18n/kn.json
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.css [deleted file]
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-content.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-core.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-list.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-editing-styling.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-layout.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-location.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-media.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-movement.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-user.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/icons.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/indicators.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/textures.json [new file with mode: 0644]
resources/lib/oojs/oojs.jquery.js
resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less
tests/phpunit/Makefile
tests/phpunit/includes/api/ApiResultTest.php
tests/phpunit/includes/db/DatabaseSqliteTest.php
tests/phpunit/includes/media/FormatMetadataTest.php
tests/phpunit/install-phpunit.sh [deleted file]
tests/qunit/data/testrunner.js
thumb.php

index 9d8487c..8bc51be 100644 (file)
@@ -84,7 +84,7 @@ production.
   this allows for pagination of prefix results. Extensions using this hook
   should implement supporting behavior. Not doing so can result in undefined
   behavior from API clients trying to continue through prefix results.
-* Update jQuery from v1.11.1 to v1.11.2.
+* Update jQuery from v1.11.1 to v1.11.3.
 * External libraries installed via composer will now be displayed
   on Special:Version in their own section. Extensions or skins that are
   installed via composer will not be shown in this section as it is assumed
index 9426635..0b3f29c 100644 (file)
@@ -17,12 +17,15 @@ production.
 ==== External libraries ====
 
 === Bug fixes in 1.26 ===
+* (bug 51283) load.php sometimes sends 304 response without full headers
 
 === Action API changes in 1.26 ===
 * API action=query&list=tags: The displayname can now be boolean false if the
   tag is meant to be hidden from user interfaces.
 * action=import no longer allows both the namespace= and rootpage= parameters
   to be set. If they are both set, the value of rootpage= will be ignored.
+* prop=revision output in enum mode is now sorted by timestamp rather than
+  revision ID. This usually won't make any difference.
 
 === Action API internal changes in 1.26 ===
 
diff --git a/api.php b/api.php
index ea2f60a..7775158 100644 (file)
--- a/api.php
+++ b/api.php
@@ -75,7 +75,7 @@ try {
        $processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
 
        // Last chance hook before executing the API
-       wfRunHooks( 'ApiBeforeMain', array( &$processor ) );
+       Hooks::run( 'ApiBeforeMain', array( &$processor ) );
        if ( !$processor instanceof ApiMain ) {
                throw new MWException( 'ApiBeforeMain hook set $processor to a non-ApiMain class' );
        }
index 754b1bb..81ee8b1 100644 (file)
@@ -278,7 +278,7 @@ $wgAutoloadLocalClasses = array(
        'CurlHttpRequest' => __DIR__ . '/includes/HttpFunctions.php',
        'DBAccessBase' => __DIR__ . '/includes/dao/DBAccessBase.php',
        'DBAccessError' => __DIR__ . '/includes/db/LBFactory.php',
-       'DBConnRef' => __DIR__ . '/includes/db/LoadBalancer.php',
+       'DBConnRef' => __DIR__ . '/includes/db/DBConnRef.php',
        'DBConnectionError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DBError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DBExpectedError' => __DIR__ . '/includes/db/DatabaseError.php',
@@ -382,9 +382,9 @@ $wgAutoloadLocalClasses = array(
        'EnqueueJob' => __DIR__ . '/includes/jobqueue/jobs/EnqueueJob.php',
        'EraseArchivedFile' => __DIR__ . '/maintenance/eraseArchivedFile.php',
        'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
-       'EventRelayer' => __DIR__ . '/includes/eventrelayer/EventRelayer.php',
-       'EventRelayerMCRD' => __DIR__ . '/includes/eventrelayer/EventRelayerMCRD.php',
-       'EventRelayerNull' => __DIR__ . '/includes/eventrelayer/EventRelayer.php',
+       'EventRelayer' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
+       'EventRelayerMCRD' => __DIR__ . '/includes/libs/eventrelayer/EventRelayerMCRD.php',
+       'EventRelayerNull' => __DIR__ . '/includes/libs/eventrelayer/EventRelayer.php',
        'Exif' => __DIR__ . '/includes/media/Exif.php',
        'ExifBitmapHandler' => __DIR__ . '/includes/media/ExifBitmap.php',
        'ExplodeIterator' => __DIR__ . '/includes/libs/ExplodeIterator.php',
@@ -1316,7 +1316,7 @@ $wgAutoloadLocalClasses = array(
        'ViewAction' => __DIR__ . '/includes/actions/ViewAction.php',
        'VirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTService.php',
        'VirtualRESTServiceClient' => __DIR__ . '/includes/libs/virtualrest/VirtualRESTServiceClient.php',
-       'WANObjectCache' => __DIR__ . '/includes/objectcache/WANObjectCache.php',
+       'WANObjectCache' => __DIR__ . '/includes/libs/objectcache/WANObjectCache.php',
        'WaitForSlave' => __DIR__ . '/maintenance/waitForSlave.php',
        'WantedCategoriesPage' => __DIR__ . '/includes/specials/SpecialWantedcategories.php',
        'WantedFilesPage' => __DIR__ . '/includes/specials/SpecialWantedfiles.php',
index 4ea8a4e..c8f16ba 100644 (file)
@@ -20,7 +20,7 @@
                "ext-iconv": "*",
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
-               "oojs/oojs-ui": "0.10.0",
+               "oojs/oojs-ui": "0.10.1",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
index f44cac0..22fd401 100644 (file)
@@ -151,7 +151,7 @@ function wfImageAuthMain() {
                // Run hook for extension authorization plugins
                /** @var $result array */
                $result = null;
-               if ( !wfRunHooks( 'ImgAuthBeforeStream', array( &$title, &$path, &$name, &$result ) ) ) {
+               if ( !Hooks::run( 'ImgAuthBeforeStream', array( &$title, &$path, &$name, &$result ) ) ) {
                        wfForbidden( $result[0], $result[1], array_slice( $result, 2 ) );
                        return;
                }
index 33de740..77c43bf 100644 (file)
@@ -27,7 +27,7 @@
  * articles are in one or all of a given subset of categories.
  *
  * Example use :
- * <code>
+ * @code
  *     # Determines whether the article with the page_id 12345 is in both
  *     # "Category 1" and "Category 2" or their subcategories, respectively
  *
@@ -39,7 +39,7 @@
  *     );
  *     $a = $cf->run();
  *     print implode( ',' , $a );
- * </code>
+ * @endcode
  *
  */
 class CategoryFinder {
index 25f6206..28bead7 100644 (file)
@@ -2148,11 +2148,13 @@ $wgObjectCaches = array(
  * cache with a relayer of type EventRelayerNull.
  *
  * The options are:
+ *   - false:            Configure the cache using $wgMainCacheType, without using
+ *                       a relayer (only matters if there are multiple data-centers)
  *   - CACHE_NONE:       Do not cache
  *   - (other):          A string may be used which identifies a cache
  *                       configuration in $wgWANObjectCaches.
  */
-$wgMainWANCache = CACHE_NONE;
+$wgMainWANCache = false;
 
 /**
  * Advanced WAN object cache configuration.
@@ -2170,15 +2172,15 @@ $wgMainWANCache = CACHE_NONE;
 $wgWANObjectCaches = array(
        CACHE_NONE => array(
                'class'         => 'WANObjectCache',
-               'pool'          => 'mediawiki-main-none',
                'cacheId'       => CACHE_NONE,
+               'pool'          => 'mediawiki-main-none',
                'relayerConfig' => array( 'class' => 'EventRelayerNull' )
        )
        /* Example of a simple single data-center cache:
        'memcached-php' => array(
                'class'         => 'WANObjectCache',
-               'pool'          => 'mediawiki-main-memcached',
                'cacheId'       => 'memcached-php',
+               'pool'          => 'mediawiki-main-memcached',
                'relayerConfig' => array( 'class' => 'EventRelayerNull' )
        )
        */
@@ -5295,6 +5297,21 @@ $wgDebugDumpSql = false;
  */
 $wgDebugDumpSqlLength = 500;
 
+/**
+ * Performance expectations for DB usage
+ *
+ * @since 1.26
+ */
+$wgTrxProfilerLimits = array(
+       // Basic GET and POST requests
+       'GET'  => array( 'masterConns' => 0, 'writes' => 0, 'readQueryTime' => 5 ),
+       'POST' => array( 'maxAffected' => 500, 'readQueryTime' => 5, 'writeQueryTime' => 1 ),
+       // Background job runner
+       'JobRunner' => array( 'maxAffected' => 500, 'readQueryTime' => 30, 'writeQueryTime' => 5 ),
+       // Command-line scripts
+       'Maintenance' => array( 'maxAffected' => 1000, 'writeQueryTime' => 5 )
+);
+
 /**
  * Map of string log group names to log destinations.
  *
@@ -6495,6 +6512,21 @@ $wgJobTypesExcludedFromDefaultQueue = array( 'AssembleUploadChunks', 'PublishSta
  */
 $wgJobBackoffThrottling = array();
 
+/**
+ * Make job runners commit changes for slave-lag prone jobs one job at a time.
+ * This is useful if there are many job workers that race on slave lag checks.
+ * If set, jobs taking this many seconds of DB write time have serialized commits.
+ *
+ * Note that affected jobs may have worse lock contention. Also, if they affect
+ * several DBs at once they may have a smaller chance of being atomic due to the
+ * possibility of connection loss while queueing up to commit. Affected jobs may
+ * also fail due to the commit lock acquisition timeout.
+ *
+ * @var float|bool
+ * @since 1.26
+ */
+$wgJobSerialCommitThreshold = false;
+
 /**
  * Map of job types to configuration arrays.
  * This determines which queue class and storage system is used for each job type.
index 0287798..23a8bbb 100644 (file)
@@ -1346,9 +1346,14 @@ function wfReadOnlyReason() {
                }
                // Callers use this method to be aware that data presented to a user
                // may be very stale and thus allowing submissions can be problematic.
-               if ( $wgReadOnly === false && wfGetLB()->getLaggedSlaveMode() ) {
+               try {
+                       if ( $wgReadOnly === false && wfGetLB()->getLaggedSlaveMode() ) {
+                               $wgReadOnly = 'The database has been automatically locked ' .
+                                       'while the slave database servers catch up to the master';
+                       }
+               } catch ( DBConnectionError $e ) {
                        $wgReadOnly = 'The database has been automatically locked ' .
-                               'while the slave database servers catch up to the master';
+                               'until the slave database servers become available';
                }
        }
 
@@ -3750,6 +3755,7 @@ function wfWaitForSlaves(
        }
 
        // Figure out which clusters need to be checked
+       /** @var LoadBalancer[] $lbs */
        $lbs = array();
        if ( $cluster === '*' ) {
                wfGetLBFactory()->forEachLB( function ( LoadBalancer $lb ) use ( &$lbs ) {
index ec2f40f..d0e81cf 100644 (file)
@@ -457,7 +457,7 @@ class MediaWiki {
        }
 
        private function main() {
-               global $wgTitle;
+               global $wgTitle, $wgTrxProfilerLimits;
 
                $request = $this->context->getRequest();
 
@@ -489,10 +489,9 @@ class MediaWiki {
                if ( !$request->wasPosted()
                        && in_array( $action, array( 'view', 'edit', 'history' ) )
                ) {
-                       $trxProfiler->setExpectation( 'masterConns', 0, __METHOD__ );
-                       $trxProfiler->setExpectation( 'writes', 0, __METHOD__ );
+                       $trxProfiler->setExpectations( $wgTrxProfilerLimits['GET'], __METHOD__ );
                } else {
-                       $trxProfiler->setExpectation( 'maxAffected', 500, __METHOD__ );
+                       $trxProfiler->setExpectations( $wgTrxProfilerLimits['POST'], __METHOD__ );
                }
 
                // If the user has forceHTTPS set to true, or if the user
index de7da3f..9891106 100644 (file)
@@ -64,21 +64,9 @@ class MovePage {
                        $status->fatal( 'spamprotectiontext' );
                }
 
-               # The move is allowed only if (1) the target doesn't exist, or
-               # (2) the target is a redirect to the source, and has no history
-               # (so we can undo bad moves right after they're done).
-
-               if ( $this->newTitle->getArticleID() ) { # Target exists; check for validity
-                       if ( !$this->isValidMoveTarget() ) {
-                               $status->fatal( 'articleexists' );
-                       }
-               } else {
-                       $tp = $this->newTitle->getTitleProtection();
-                       if ( $tp !== false ) {
-                               if ( !$user->isAllowed( $tp['permission'] ) ) {
-                                       $status->fatal( 'cantmove-titleprotected' );
-                               }
-                       }
+               $tp = $this->newTitle->getTitleProtection();
+               if ( $tp !== false && !$user->isAllowed( $tp['permission'] ) ) {
+                               $status->fatal( 'cantmove-titleprotected' );
                }
 
                Hooks::run( 'MovePageCheckPermissions',
@@ -125,6 +113,13 @@ class MovePage {
                        $status->fatal( 'badarticleerror' );
                }
 
+               # The move is allowed only if (1) the target doesn't exist, or
+               # (2) the target is a redirect to the source, and has no history
+               # (so we can undo bad moves right after they're done).
+               if ( $this->newTitle->getArticleID() && !$this->isValidMoveTarget() ) {
+                       $status->fatal( 'articleexists' );
+               }
+
                // Content model checks
                if ( !$wgContentHandlerUseDB &&
                        $this->oldTitle->getContentModel() !== $this->newTitle->getContentModel() ) {
index 28d55e4..8f9f9c6 100644 (file)
@@ -3909,6 +3909,11 @@ class OutputPage extends ContextSource {
        public function enableOOUI() {
                OOUI\Theme::setSingleton( new OOUI\MediaWikiTheme() );
                OOUI\Element::setDefaultDir( $this->getLanguage()->getDir() );
-               $this->addModuleStyles( 'oojs-ui.styles' );
+               $this->addModuleStyles( array(
+                       'oojs-ui.styles',
+                       'oojs-ui.styles.icons',
+                       'oojs-ui.styles.indicators',
+                       'oojs-ui.styles.textures',
+               ) );
        }
 }
index c5c16a0..b8139d9 100644 (file)
@@ -530,6 +530,18 @@ if ( $wgTmpDirectory === false ) {
 // expecting this to exist. Should be removed sometime 1.26 or later.
 $wgDisableCounters = true;
 
+if ( $wgMainWANCache === false ) {
+       // Setup a WAN cache from $wgMainCacheType with no relayer.
+       // Sites using multiple datacenters can configure a relayer.
+       $wgMainWANCache = 'mediawiki-main-default';
+       $wgWANObjectCaches[$wgMainWANCache] = array(
+               'class'         => 'WANObjectCache',
+               'cacheId'       => $wgMainCacheType,
+               'pool'          => 'mediawiki-main-default',
+               'relayerConfig' => array( 'class' => 'EventRelayerNull' )
+       );
+}
+
 Profiler::instance()->scopedProfileOut( $ps_default2 );
 
 $ps_misc = Profiler::instance()->scopedProfileIn( $fname . '-misc1' );
index cd10258..fbb5daa 100644 (file)
@@ -69,9 +69,9 @@ class Status {
         * Succinct helper method to wrap a StatusValue
         *
         * This is is useful when formatting StatusValue objects:
-        * <code>
+        * @code
         *     $this->getOutput()->addHtml( Status::wrap( $sv )->getHTML() );
-        * </code>
+        * @endcode
         *
         * @param StatusValue|Status $sv
         * @return Status
index b0df15f..7e2b39e 100644 (file)
@@ -940,7 +940,6 @@ class Title {
        /**
         * Get the page's content model id, see the CONTENT_MODEL_XXX constants.
         *
-        * @throws MWException
         * @param int $flags A bit field; may be Title::GAID_FOR_UPDATE to select for update
         * @return string Content model id
         */
@@ -955,10 +954,6 @@ class Title {
                        $this->mContentModel = ContentHandler::getDefaultModelFor( $this );
                }
 
-               if ( !$this->mContentModel ) {
-                       throw new MWException( 'Failed to determine content model!' );
-               }
-
                return $this->mContentModel;
        }
 
index c3d4a65..921d604 100644 (file)
@@ -2252,8 +2252,6 @@ class User implements IDBAccessObject {
         *   page. Ignored if null or !$val.
         */
        public function setNewtalk( $val, $curRev = null ) {
-               global $wgMemc;
-
                if ( wfReadOnly() ) {
                        return;
                }
@@ -2275,12 +2273,6 @@ class User implements IDBAccessObject {
                        $changed = $this->deleteNewtalk( $field, $id );
                }
 
-               if ( $this->isAnon() ) {
-                       // Anons have a separate memcached space, since
-                       // user records aren't kept for them.
-                       $key = wfMemcKey( 'newtalk', 'ip', $id );
-                       $wgMemc->set( $key, $val ? 1 : 0, 1800 );
-               }
                if ( $changed ) {
                        $this->invalidateCache();
                }
index b05c219..ba9f448 100644 (file)
@@ -3000,10 +3000,10 @@ $zh2Hant = array(
 '𫛢' => '鸋',
 '𫛶' => '鶒',
 '𫛸' => '鶗',
-'0出現' => '0出現',
 '0出现' => '0出現',
-'0å\87ºçº¿' => '0å\87ºç·\9a',
+'0å\87ºç\8f¾' => '0å\87ºç\8f¾',
 '0出線' => '0出線',
+'0出线' => '0出線',
 '0只支持' => '0只支持',
 '0只支援' => '0只支援',
 '0周后' => '0周後',
@@ -3219,8 +3219,8 @@ $zh2Hant = array(
 '不吊' => '不弔',
 '不卷' => '不捲',
 '不采' => '不採',
-'不斗膽' => '不斗膽',
 '不斗胆' => '不斗膽',
+'不斗膽' => '不斗膽',
 '不断发' => '不斷發',
 '不每只' => '不每只',
 '不谷' => '不穀',
@@ -3281,16 +3281,15 @@ $zh2Hant = array(
 '丰南' => '丰南',
 '丰姿' => '丰姿',
 '丰容' => '丰容',
-'丰度' => '丰度',
 '丰情' => '丰情',
 '丰标' => '丰標',
-'丰標不凡' => '丰標不凡',
 '丰标不凡' => '丰標不凡',
+'丰標不凡' => '丰標不凡',
 '丰神' => '丰神',
 '丰茸' => '丰茸',
 '丰采' => '丰采',
-'丰韻' => '丰韻',
 '丰韵' => '丰韻',
+'丰韻' => '丰韻',
 '丹棱' => '丹稜',
 '主仆' => '主僕',
 '主干' => '主幹',
@@ -3328,12 +3327,10 @@ $zh2Hant = array(
 '九扎' => '九紮',
 '九只' => '九隻',
 '九余' => '九餘',
-'干上' => '乾上',
 '干干' => '乾乾',
 '干干净净' => '乾乾淨淨',
-'干了' => '乾了',
 '干井' => '乾井',
-'干个' => '乾個',
+'干个够' => '乾個夠',
 '干儿' => '乾兒',
 '干冰' => '乾冰',
 '干冷' => '乾冷',
@@ -3368,7 +3365,6 @@ $zh2Hant = array(
 '干巴' => '乾巴',
 '干式' => '乾式',
 '干弟' => '乾弟',
-'干得' => '乾得',
 '干急' => '乾急',
 '干性' => '乾性',
 '干打雷' => '乾打雷',
@@ -3500,8 +3496,8 @@ $zh2Hant = array(
 '二缶钟惑' => '二缶鐘惑',
 '二老板' => '二老板',
 '二虎相斗' => '二虎相鬥',
-'二里頭' => '二里頭',
 '二里头' => '二里頭',
+'二里頭' => '二里頭',
 '二只' => '二隻',
 '二余' => '二餘',
 '于丹' => '于丹',
@@ -3510,13 +3506,13 @@ $zh2Hant = array(
 '于仲文' => '于仲文',
 '于佳卉' => '于佳卉',
 '于来山' => '于來山',
-'于偉國' => '于偉國',
 '于伟国' => '于偉國',
+'于偉國' => '于偉國',
 '于光新' => '于光新',
 '于光远' => '于光遠',
 '于光遠' => '于光遠',
-'于克-蘭多縣' => '于克-蘭多縣',
 '于克-兰多县' => '于克-蘭多縣',
+'于克-蘭多縣' => '于克-蘭多縣',
 '于克勒' => '于克勒',
 '于再清' => '于再清',
 '于冕' => '于冕',
@@ -3527,18 +3523,18 @@ $zh2Hant = array(
 '于化虎' => '于化虎',
 '于占元' => '于占元',
 '于友泽' => '于友澤',
-'于台煙' => '于台煙',
 '于台烟' => '于台煙',
+'于台煙' => '于台煙',
 '于右任' => '于右任',
 '于吉' => '于吉',
 '于和伟' => '于和偉',
 '于品海' => '于品海',
 '于国桢' => '于國楨',
 '于國楨' => '于國楨',
-'于國治' => '于國治',
 '于国治' => '于國治',
-'äº\8eå \85' => 'äº\8eå \85',
+'äº\8eå\9c\8bæ²»' => 'äº\8eå\9c\8bæ²»',
 '于坚' => '于堅',
+'于堅' => '于堅',
 '于大宝' => '于大寶',
 '于大寶' => '于大寶',
 '于天仁' => '于天仁',
@@ -3550,8 +3546,8 @@ $zh2Hant = array(
 '于娟' => '于娟',
 '于子千' => '于子千',
 '于孔兼' => '于孔兼',
-'于學忠' => '于學忠',
 '于学忠' => '于學忠',
+'于學忠' => '于學忠',
 '于家堡' => '于家堡',
 '于寘' => '于寘',
 '于宝轩' => '于寶軒',
@@ -3561,10 +3557,10 @@ $zh2Hant = array(
 '于小惠' => '于小惠',
 '于少保' => '于少保',
 '于山' => '于山',
-'于山國' => '于山國',
 '于山国' => '于山國',
-'äº\8e帥' => 'äº\8e帥',
+'äº\8eå±±å\9c\8b' => 'äº\8eå±±å\9c\8b',
 '于帅' => '于帥',
+'于帥' => '于帥',
 '于幼军' => '于幼軍',
 '于幼軍' => '于幼軍',
 '于康震' => '于康震',
@@ -3580,16 +3576,16 @@ $zh2Hant = array(
 '于思' => '于思',
 '于慎行' => '于慎行',
 '于慧' => '于慧',
-'于成龙' => '于成龍',
 '于成龍' => '于成龍',
+'于成龙' => '于成龍',
 '于振' => '于振',
 '于振武' => '于振武',
 '于敏' => '于敏',
 '于敏中' => '于敏中',
 '于斌' => '于斌',
 '于斯塔德' => '于斯塔德',
-'于斯纳尔斯贝里' => '于斯納爾斯貝里',
 '于斯納爾斯貝里' => '于斯納爾斯貝里',
+'于斯纳尔斯贝里' => '于斯納爾斯貝里',
 '于斯达尔' => '于斯達爾',
 '于斯達爾' => '于斯達爾',
 '于明涛' => '于明濤',
@@ -3597,8 +3593,8 @@ $zh2Hant = array(
 '于是之' => '于是之',
 '于晨楠' => '于晨楠',
 '于晴' => '于晴',
-'于會泳' => '于會泳',
 '于会泳' => '于會泳',
+'于會泳' => '于會泳',
 '于根伟' => '于根偉',
 '于根偉' => '于根偉',
 '于格' => '于格',
@@ -3606,8 +3602,8 @@ $zh2Hant = array(
 '于楓' => '于楓',
 '于荣光' => '于榮光',
 '于樂' => '于樂',
-'于樹潔' => '于樹潔',
 '于树洁' => '于樹潔',
+'于樹潔' => '于樹潔',
 '于欣' => '于欣',
 '于欣源' => '于欣源',
 '于正昇' => '于正昇',
@@ -3618,25 +3614,25 @@ $zh2Hant = array(
 '于江震' => '于江震',
 '于波' => '于波',
 '于洋' => '于洋',
-'于洪區' => '于洪區',
 '于洪区' => '于洪區',
+'于洪區' => '于洪區',
 '于浩威' => '于浩威',
 '于海' => '于海',
 '于海洋' => '于海洋',
 '于湘兰' => '于湘蘭',
 '于湘蘭' => '于湘蘭',
-'于漢超' => '于漢超',
 '于汉超' => '于漢超',
+'于漢超' => '于漢超',
 '于澄' => '于澄',
-'于澤爾' => '于澤爾',
 '于泽尔' => '于澤爾',
-'äº\8e濤' => 'äº\8e濤',
+'äº\8e澤ç\88¾' => 'äº\8e澤ç\88¾',
 '于涛' => '于濤',
+'于濤' => '于濤',
 '于熙珍' => '于熙珍',
 '于尔岑' => '于爾岑',
 '于爾岑' => '于爾岑',
-'于爾根' => '于爾根',
 '于尔根' => '于爾根',
+'于爾根' => '于爾根',
 '于尔里克' => '于爾里克',
 '于爾里克' => '于爾里克',
 '于特森' => '于特森',
@@ -3656,8 +3652,8 @@ $zh2Hant = array(
 '于謙' => '于謙',
 '于谦' => '于謙',
 '于谨' => '于謹',
-'于贝尔' => '于貝爾',
 '于貝爾' => '于貝爾',
+'于贝尔' => '于貝爾',
 '于贈' => '于贈',
 '于赠' => '于贈',
 '于越' => '于越',
@@ -3666,8 +3662,8 @@ $zh2Hant = array(
 '于道泉' => '于道泉',
 '于远伟' => '于遠偉',
 '于遠偉' => '于遠偉',
-'于都縣' => '于都縣',
 '于都县' => '于都縣',
+'于都縣' => '于都縣',
 '于里察' => '于里察',
 '于阗' => '于闐',
 '于双戈' => '于雙戈',
@@ -3680,10 +3676,10 @@ $zh2Hant = array(
 '于靖' => '于靖',
 '于非暗' => '于非闇',
 '于非闇' => '于非闇',
-'于韦斯屈莱' => '于韋斯屈萊',
 '于韋斯屈萊' => '于韋斯屈萊',
-'äº\8eé£\8eæ\94¿' => 'äº\8e風æ\94¿',
+'äº\8eé\9f¦æ\96¯å±\88è\8e±' => 'äº\8eé\9f\8bæ\96¯å±\88è\90\8a',
 '于風政' => '于風政',
+'于风政' => '于風政',
 '于飞' => '于飛',
 '于飛島' => '于飛島',
 '于飞岛' => '于飛島',
@@ -3692,16 +3688,16 @@ $zh2Hant = array(
 '于魁智' => '于魁智',
 '于凤桐' => '于鳳桐',
 '于鳳桐' => '于鳳桐',
-'于鳳至' => '于鳳至',
 '于凤至' => '于鳳至',
-'äº\8eé»\98奧' => 'äº\8eé»\98奧',
+'äº\8eé³³è\87³' => 'äº\8eé³³è\87³',
 '于默奥' => '于默奧',
+'于默奧' => '于默奧',
 '云乎' => '云乎',
 '云云' => '云云',
 '云何' => '云何',
 '云敞' => '云敞',
-'云為' => '云為',
 '云为' => '云為',
+'云為' => '云為',
 '云然' => '云然',
 '云尔' => '云爾',
 '云:' => '云:',
@@ -3802,8 +3798,8 @@ $zh2Hant = array(
 '作准' => '作準',
 '你夸' => '你誇',
 '佣金' => '佣金',
-'佣钿' => '佣鈿',
 '佣鈿' => '佣鈿',
+'佣钿' => '佣鈿',
 '佣錢' => '佣錢',
 '佣钱' => '佣錢',
 '佳肴' => '佳肴',
@@ -3875,8 +3871,8 @@ $zh2Hant = array(
 '佣仆' => '傭僕',
 '傲游' => '傲遊',
 '傲霜斗雪' => '傲霜鬥雪',
-'傳位于四太子' => '傳位于四太子',
 '传位于四太子' => '傳位于四太子',
+'傳位于四太子' => '傳位于四太子',
 '传于' => '傳於',
 '债累累' => '債纍纍',
 '傻里傻气' => '傻裡傻氣',
@@ -4039,8 +4035,8 @@ $zh2Hant = array(
 '冷面相' => '冷面相',
 '冷面' => '冷麵',
 '准三后' => '准三后',
-'准保護' => '准保護',
 '准保护' => '准保護',
+'准保護' => '准保護',
 '准保释' => '准保釋',
 '准保釋' => '准保釋',
 '凌蒙初' => '凌濛初',
@@ -4081,13 +4077,13 @@ $zh2Hant = array(
 '划不來' => '划不來',
 '划不来' => '划不來',
 '划了一会' => '划了一會',
-'划来划去' => '划來划去',
 '划來划去' => '划來划去',
+'划来划去' => '划來划去',
 '划具' => '划具',
 '划到岸' => '划到岸',
 '划到江心' => '划到江心',
-'划動' => '划動',
 '划动' => '划動',
+'划動' => '划動',
 '划去' => '划去',
 '划子' => '划子',
 '划得來' => '划得來',
@@ -4105,8 +4101,8 @@ $zh2Hant = array(
 '划行' => '划行',
 '划走' => '划走',
 '划起' => '划起',
-'划進' => '划進',
 '划进' => '划進',
+'划進' => '划進',
 '划过' => '划過',
 '划過' => '划過',
 '划龍舟' => '划龍舟',
@@ -4208,8 +4204,8 @@ $zh2Hant = array(
 '十出' => '十齣',
 '千个' => '千個',
 '千只可' => '千只可',
-'千只夠' => '千只夠',
 '千只够' => '千只夠',
+'千只夠' => '千只夠',
 '千只怕' => '千只怕',
 '千只能' => '千只能',
 '千只足够' => '千只足夠',
@@ -4249,7 +4245,6 @@ $zh2Hant = array(
 '印鉴' => '印鑑',
 '危于' => '危於',
 '卵与石斗' => '卵與石鬥',
-'卷发' => '卷髮',
 '卷须' => '卷鬚',
 '厂部' => '厂部',
 '厝薪于火' => '厝薪於火',
@@ -4283,8 +4278,8 @@ $zh2Hant = array(
 '古書云' => '古書云',
 '古柯咸' => '古柯鹹',
 '古朴' => '古樸',
-'古语云' => '古語云',
 '古語云' => '古語云',
+'古语云' => '古語云',
 '古迹' => '古蹟',
 '古钟' => '古鐘',
 '古钟表' => '古鐘錶',
@@ -4303,8 +4298,8 @@ $zh2Hant = array(
 '只身上有' => '只身上有',
 '只身上沒' => '只身上沒',
 '只身上没' => '只身上沒',
-'只身上無' => '只身上無',
 '只身上无' => '只身上無',
+'只身上無' => '只身上無',
 '只身上的' => '只身上的',
 '只身世' => '只身世',
 '只身份' => '只身份',
@@ -4313,19 +4308,19 @@ $zh2Hant = array(
 '只身子' => '只身子',
 '只身形' => '只身形',
 '只身影' => '只身影',
-'只身後' => '只身後',
 '只身后' => '只身後',
+'只身後' => '只身後',
 '只身心' => '只身心',
 '只身旁' => '只身旁',
 '只身材' => '只身材',
 '只身段' => '只身段',
-'只身為' => '只身為',
 '只身为' => '只身為',
+'只身為' => '只身為',
 '只身边' => '只身邊',
 '只身邊' => '只身邊',
 '只身首' => '只身首',
-'只身體' => '只身體',
 '只身体' => '只身體',
+'只身體' => '只身體',
 '只身高' => '只身高',
 '只采声' => '只采聲',
 '叮叮当当' => '叮叮噹噹',
@@ -4391,10 +4386,10 @@ $zh2Hant = array(
 '后丰' => '后豐',
 '后豐' => '后豐',
 '后里' => '后里',
-'后髮FK型星' => '后髮FK型星',
 '后发FK型星' => '后髮FK型星',
-'后髮座' => '后髮座',
+'后髮FK型星' => '后髮FK型星',
 '后发座' => '后髮座',
+'后髮座' => '后髮座',
 '后发星系团' => '后髮星系團',
 '后髮星系團' => '后髮星系團',
 '吐哺捉发' => '吐哺捉髮',
@@ -4411,8 +4406,8 @@ $zh2Hant = array(
 '吹发' => '吹髮',
 '吹胡' => '吹鬍',
 '吾为之范我驰驱' => '吾爲之範我馳驅',
-'呂后' => '呂后',
 '吕后' => '呂后',
+'呂后' => '呂后',
 '呆呆兽' => '呆呆獸',
 '呆致致' => '呆緻緻',
 '呆里呆气' => '呆裡呆氣',
@@ -4472,8 +4467,8 @@ $zh2Hant = array(
 '单单于' => '單單於',
 '单干' => '單幹',
 '单打独斗' => '單打獨鬥',
-'喲喂' => '喲喂',
 '哟喂' => '喲喂',
+'喲喂' => '喲喂',
 '嘉谷' => '嘉穀',
 '嘉肴' => '嘉肴',
 '嘴里' => '嘴裡',
@@ -4516,7 +4511,6 @@ $zh2Hant = array(
 '回旋加速' => '回旋加速',
 '回历' => '回曆',
 '回历史' => '回歷史',
-'回荡' => '回蕩',
 '回复中' => '回覆中',
 '回复你' => '回覆你',
 '回复帖子' => '回覆帖子',
@@ -4606,8 +4600,8 @@ $zh2Hant = array(
 '壸范' => '壼範',
 '壽天里' => '壽天里',
 '寿面' => '壽麵',
-'夏于喬' => '夏于喬',
 '夏于乔' => '夏于喬',
+'夏于喬' => '夏于喬',
 '夏历' => '夏曆',
 '夏历史' => '夏歷史',
 '夏游' => '夏遊',
@@ -4884,8 +4878,8 @@ $zh2Hant = array(
 '尸弃佛' => '尸棄佛',
 '尸祝' => '尸祝',
 '尸禄' => '尸祿',
-'尸羅精舍' => '尸羅精舍',
 '尸罗精舍' => '尸羅精舍',
+'尸羅精舍' => '尸羅精舍',
 '尸臣' => '尸臣',
 '尸谏' => '尸諫',
 '尸魂界' => '尸魂界',
@@ -4988,14 +4982,16 @@ $zh2Hant = array(
 '幸免于难' => '幸免於難',
 '幸于' => '幸於',
 '幸运胡' => '幸運鬍',
+'干上' => '幹上',
 '干下去' => '幹下去',
 '干不了' => '幹不了',
 '干不成' => '幹不成',
+'干了' => '幹了',
 '干事' => '幹事',
 '干些' => '幹些',
 '干人' => '幹人',
 '干什么' => '幹什麼',
-'干个够' => '幹個夠',
+'干个' => '幹個',
 '干劲' => '幹勁',
 '干吏' => '幹吏',
 '干员' => '幹員',
@@ -5005,7 +5001,7 @@ $zh2Hant = array(
 '干坏事' => '幹壞事',
 '干完' => '幹完',
 '干家' => '幹家',
-'干得了' => '幹得了',
+'干得' => '幹得',
 '干性油' => '幹性油',
 '干才' => '幹才',
 '干掉' => '幹掉',
@@ -5053,8 +5049,8 @@ $zh2Hant = array(
 '府干政' => '府干政',
 '府干涉' => '府干涉',
 '府干犯' => '府干犯',
-'府干预' => '府干預',
 '府干預' => '府干預',
+'府干预' => '府干預',
 '府干' => '府幹',
 '座钟' => '座鐘',
 '廍子里' => '廍子里',
@@ -5114,11 +5110,11 @@ $zh2Hant = array(
 '弘历史' => '弘歷史',
 '弱于' => '弱於',
 '弱水三千只取一瓢' => '弱水三千只取一瓢',
-'張三丰' => '張三丰',
 '张三丰' => '張三丰',
+'張三丰' => '張三丰',
 '张勋' => '張勳',
-'張杰' => '張杰',
 '张杰' => '張杰',
+'張杰' => '張杰',
 '张乐于张徐' => '張樂于張徐',
 '强制作用' => '強制作用',
 '强奸' => '強姦',
@@ -5397,8 +5393,8 @@ $zh2Hant = array(
 '意大利面' => '意大利麵',
 '爱困' => '愛睏',
 '感于' => '感於',
-'愿樸' => '愿樸',
 '愿朴' => '愿樸',
+'愿樸' => '愿樸',
 '愿而恭' => '愿而恭',
 '栗冽' => '慄冽',
 '栗栗' => '慄慄',
@@ -5460,21 +5456,21 @@ $zh2Hant = array(
 '扁拟谷盗虫' => '扁擬穀盜蟲',
 '手塚治虫' => '手塚治虫',
 '手折' => '手摺',
-'手表態' => '手表態',
 '手表态' => '手表態',
+'手表態' => '手表態',
 '手表明' => '手表明',
-'手表決' => '手表決',
 '手表决' => '手表決',
+'手表決' => '手表決',
 '手表演' => '手表演',
 '手表现' => '手表現',
 '手表現' => '手表現',
 '手表示' => '手表示',
-'手表達' => '手表達',
 '手表达' => '手表達',
+'手表達' => '手表達',
 '手表露' => '手表露',
 '手表面' => '手表面',
-'手里' => '手裏',
 '手里剑' => '手裏劍',
+'手里' => '手裡',
 '手表' => '手錶',
 '手链' => '手鍊',
 '手松' => '手鬆',
@@ -5504,7 +5500,6 @@ $zh2Hant = array(
 '打斗' => '打鬥',
 '托管国' => '托管國',
 '扛大梁' => '扛大樑',
-'捍御' => '扞禦',
 '扯面' => '扯麵',
 '扶余' => '扶餘',
 '批准的' => '批准的',
@@ -5512,7 +5507,6 @@ $zh2Hant = array(
 '批复' => '批覆',
 '批注' => '批註',
 '批斗' => '批鬥',
-'扼肮' => '扼肮',
 '承制' => '承製',
 '抑制作用' => '抑制作用',
 '抑制剂' => '抑制劑',
@@ -5521,8 +5515,8 @@ $zh2Hant = array(
 '抓斗' => '抓鬥',
 '抗御' => '抗禦',
 '折向往' => '折向往',
-'折子戲' => '折子戲',
 '折子戏' => '折子戲',
+'折子戲' => '折子戲',
 '折戟沈河' => '折戟沈河',
 '折冲' => '折衝',
 '披榛采兰' => '披榛採蘭',
@@ -5588,13 +5582,13 @@ $zh2Hant = array(
 '挑大梁' => '挑大樑',
 '挑斗' => '挑鬥',
 '振荡' => '振蕩',
-'捆扎' => '捆紮',
 '捉奸徒' => '捉奸徒',
 '捉奸细' => '捉奸細',
 '捉奸贼' => '捉奸賊',
 '捉奸党' => '捉奸黨',
 '捉奸' => '捉姦',
 '捉发' => '捉髮',
+'捍御' => '捍禦',
 '捏面人' => '捏麵人',
 '舍不得' => '捨不得',
 '舍入' => '捨入',
@@ -5642,7 +5636,6 @@ $zh2Hant = array(
 '卷纸' => '捲紙',
 '卷缩' => '捲縮',
 '卷舌' => '捲舌',
-'卷铺盖' => '捲舖蓋',
 '卷烟' => '捲菸',
 '卷叶蛾' => '捲葉蛾',
 '卷袖' => '捲袖',
@@ -5650,9 +5643,10 @@ $zh2Hant = array(
 '卷起' => '捲起',
 '卷轴' => '捲軸',
 '卷逃' => '捲逃',
+'卷铺盖' => '捲鋪蓋',
 '卷云' => '捲雲',
 '卷风' => '捲風',
-'卷发器' => '捲髮器',
+'卷发' => '捲髮',
 '捵面' => '捵麵',
 '捶炼' => '捶鍊',
 '扫荡' => '掃蕩',
@@ -5762,6 +5756,7 @@ $zh2Hant = array(
 '损于' => '損於',
 '搏斗' => '搏鬥',
 '捣鬼吊白' => '搗鬼弔白',
+'扼肮' => '搤肮',
 '扼肮拊背' => '搤肮拊背',
 '搬斗' => '搬鬥',
 '搭干铺' => '搭乾鋪',
@@ -5793,8 +5788,8 @@ $zh2Hant = array(
 '拨谷' => '撥穀',
 '撩斗' => '撩鬥',
 '播于' => '播於',
-'扑咚' => '撲鼕',
 '扑冬' => '撲鼕',
+'扑咚' => '撲鼕',
 '扑咚咚' => '撲鼕鼕',
 '擀面' => '擀麵',
 '击扑' => '擊扑',
@@ -5920,9 +5915,9 @@ $zh2Hant = array(
 '于国' => '於國',
 '于坏' => '於坏',
 '于垂' => '於垂',
-'於夫羅' => '於夫羅',
-'於夫罗' => '於夫羅',
 '于夫罗' => '於夫羅',
+'於夫罗' => '於夫羅',
+'於夫羅' => '於夫羅',
 '于她' => '於她',
 '于好' => '於好',
 '于始' => '於始',
@@ -5947,8 +5942,8 @@ $zh2Hant = array(
 '于是' => '於是',
 '于是乎' => '於是乎',
 '于时' => '於時',
-'於梨華' => '於梨華',
 '于梨华' => '於梨華',
+'於梨華' => '於梨華',
 '于乐' => '於樂',
 '于此' => '於此',
 '於氏' => '於氏',
@@ -6083,11 +6078,11 @@ $zh2Hant = array(
 '有回复' => '有回覆',
 '有够赞' => '有夠讚',
 '有征伐' => '有征伐',
-'有征戰' => '有征戰',
 '有征战' => '有征戰',
+'有征戰' => '有征戰',
 '有征服' => '有征服',
-'有征讨' => '有征討',
 '有征討' => '有征討',
+'有征讨' => '有征討',
 '有征' => '有徵',
 '有恒街' => '有恒街',
 '有栖川' => '有栖川',
@@ -6101,8 +6096,8 @@ $zh2Hant = array(
 '望后石' => '望后石',
 '朝乾夕惕' => '朝乾夕惕',
 '朝钟' => '朝鐘',
-'蒙胧' => '朦朧',
 '朦胧' => '朦朧',
+'蒙胧' => '朦朧',
 '木偶戏扎' => '木偶戲紮',
 '木材干馏' => '木材乾餾',
 '木梁' => '木樑',
@@ -6138,10 +6133,10 @@ $zh2Hant = array(
 '杠轂' => '杠轂',
 '杯干' => '杯乾',
 '杯面' => '杯麵',
-'杰倫' => '杰倫',
 '杰伦' => '杰倫',
-'æ\9d°å¨\81ç\88¾' => 'æ\9d°å¨\81ç\88¾',
+'æ\9d°å\80«' => 'æ\9d°å\80«',
 '杰威尔' => '杰威爾',
+'杰威爾' => '杰威爾',
 '东周钟' => '東周鐘',
 '东岳' => '東嶽',
 '東湖里' => '東湖里',
@@ -6263,8 +6258,8 @@ $zh2Hant = array(
 '树干' => '樹榦',
 '树梁' => '樹樑',
 '桥梁' => '橋樑',
-'機械系' => '機械系',
 '机械系' => '機械系',
+'機械系' => '機械系',
 '机械表' => '機械錶',
 '机械钟' => '機械鐘',
 '机械钟表' => '機械鐘錶',
@@ -6343,8 +6338,8 @@ $zh2Hant = array(
 '求知欲' => '求知慾',
 '求签' => '求籤',
 '求道于盲' => '求道於盲',
-'污蔑' => '汙衊',
 '池里' => '池裡',
+'污蔑' => '污衊',
 '汤卤' => '汤滷',
 '汲于' => '汲於',
 '决斗' => '決鬥',
@@ -6395,8 +6390,8 @@ $zh2Hant = array(
 '洒濯' => '洒濯',
 '洒然' => '洒然',
 '洒脱' => '洒脫',
-'洗练' => '洗鍊',
 '洗炼' => '洗鍊',
+'洗练' => '洗鍊',
 '洗发' => '洗髮',
 '洛钟东应' => '洛鐘東應',
 '洞里' => '洞裡',
@@ -6420,18 +6415,18 @@ $zh2Hant = array(
 '浮夸' => '浮誇',
 '浮松' => '浮鬆',
 '海干' => '海乾',
-'海淀山後' => '海淀山後',
 '海淀山后' => '海淀山後',
+'海淀山後' => '海淀山後',
 '浸卤' => '浸滷',
 '涂善妮' => '涂善妮',
 '涂坤' => '涂坤',
-'涂壯勳' => '涂壯勳',
 '涂壮勋' => '涂壯勳',
+'涂壯勳' => '涂壯勳',
 '涂天相' => '涂天相',
 '涂姓' => '涂姓',
 '涂序瑄' => '涂序瑄',
-'涂敏恒' => '涂敏恆',
 '涂敏恆' => '涂敏恆',
+'涂敏恒' => '涂敏恆',
 '涂泽民' => '涂澤民',
 '涂澤民' => '涂澤民',
 '涂绍煃' => '涂紹煃',
@@ -6440,10 +6435,10 @@ $zh2Hant = array(
 '涂谨申' => '涂謹申',
 '涂逢年' => '涂逢年',
 '涂醒哲' => '涂醒哲',
-'涂长望' => '涂長望',
 '涂長望' => '涂長望',
-'æ¶\82鸿é\92¦' => 'æ¶\82鴻欽',
+'æ¶\82é\95¿æ\9c\9b' => 'æ¶\82é\95·æ\9c\9b',
 '涂鴻欽' => '涂鴻欽',
+'涂鸿钦' => '涂鴻欽',
 '涳蒙' => '涳濛',
 '涸干' => '涸乾',
 '凉席' => '涼蓆',
@@ -7088,8 +7083,8 @@ $zh2Hant = array(
 '笑里藏刀' => '笑裡藏刀',
 '第一出现' => '第一出現',
 '第一出現' => '第一出現',
-'第一出线' => '第一出線',
 '第一出線' => '第一出線',
+'第一出线' => '第一出線',
 '第一出' => '第一齣',
 '第七出' => '第七齣',
 '第三出局' => '第三出局',
@@ -7111,15 +7106,15 @@ $zh2Hant = array(
 '筑前' => '筑前',
 '筑北' => '筑北',
 '筑州' => '筑州',
-'筑後' => '筑後',
 '筑后' => '筑後',
+'筑後' => '筑後',
 '筑波' => '筑波',
 '筑紫' => '筑紫',
 '筑肥' => '筑肥',
 '筑西' => '筑西',
 '筑邦' => '筑邦',
-'筑陽' => '筑陽',
 '筑阳' => '筑陽',
+'筑陽' => '筑陽',
 '答复' => '答覆',
 '筵几' => '筵几',
 '个中原因' => '箇中原因',
@@ -7245,6 +7240,7 @@ $zh2Hant = array(
 '丝发' => '絲髮',
 '绑扎' => '綁紮',
 '绥棱' => '綏稜',
+'捆扎' => '綑紮',
 '經有云' => '經有云',
 '经有云' => '經有云',
 '综合征' => '綜合徵',
@@ -7527,8 +7523,8 @@ $zh2Hant = array(
 '范文藤' => '范文藤',
 '范文虎' => '范文虎',
 '范登堡' => '范登堡',
-'范贤惠' => '范賢惠',
 '范賢惠' => '范賢惠',
+'范贤惠' => '范賢惠',
 '茅于軾' => '茅于軾',
 '茅于轼' => '茅于軾',
 '茶几' => '茶几',
@@ -7551,8 +7547,8 @@ $zh2Hant = array(
 '菠棱菜' => '菠稜菜',
 '菠萝干' => '菠蘿乾',
 '华严钟' => '華嚴鐘',
-'萬一只' => '萬一只',
 '万一只' => '萬一只',
+'萬一只' => '萬一只',
 '万个' => '萬個',
 '万周后' => '萬周後',
 '万天后' => '萬天後',
@@ -7634,8 +7630,8 @@ $zh2Hant = array(
 '熏风' => '薰風',
 '熏香' => '薰香',
 '苧悴' => '薴悴',
-'薴烯' => '薴烯',
 '苧烯' => '薴烯',
+'薴烯' => '薴烯',
 '借以' => '藉以',
 '借助' => '藉助',
 '借口' => '藉口',
@@ -7765,13 +7761,13 @@ $zh2Hant = array(
 '夹裙' => '袷裙',
 '裁并' => '裁併',
 '裁制' => '裁製',
-'里勾外连' => '裏勾外連',
 '里水镇' => '裏水鎮',
 '里海' => '裏海',
 '里运河' => '裏運河',
 '补于' => '補於',
 '补注' => '補註',
 '装折' => '裝摺',
+'里勾外连' => '裡勾外連',
 '里屋' => '裡屋',
 '里层' => '裡層',
 '里带' => '裡帶',
@@ -8023,8 +8019,8 @@ $zh2Hant = array(
 '诱奸' => '誘姦',
 '语云' => '語云',
 '语汇' => '語彙',
-'语有云' => '語有云',
 '語有云' => '語有云',
+'语有云' => '語有云',
 '语法里' => '語法裡',
 '语里' => '語裡',
 '诚征' => '誠徵',
@@ -8044,14 +8040,14 @@ $zh2Hant = array(
 '咨询' => '諮詢',
 '诸余' => '諸餘',
 '谋干' => '謀幹',
-'谢杰' => '謝杰',
 '謝杰' => '謝杰',
+'谢杰' => '謝杰',
 '谢华后' => '謝華后',
 '谬采虚声' => '謬採虛聲',
 '谬赞' => '謬讚',
 '謷丑' => '謷醜',
-'谨愿' => '謹愿',
 '謹愿' => '謹愿',
+'谨愿' => '謹愿',
 '谨于心' => '謹於心',
 '哗噪' => '譁噪',
 '哗嚣' => '譁囂',
@@ -8089,6 +8085,7 @@ $zh2Hant = array(
 '豆干' => '豆乾',
 '豆腐干' => '豆腐乾',
 '竖起脊梁' => '豎起脊梁',
+'丰度' => '豐度',
 '丰滨' => '豐濱',
 '丰滨乡' => '豐濱鄉',
 '丰台' => '豐臺',
@@ -8102,15 +8099,15 @@ $zh2Hant = array(
 '买凶' => '買兇',
 '买断发' => '買斷發',
 '贻范' => '貽範',
-'贾后' => '賈后',
 '賈后' => '賈后',
+'贾后' => '賈后',
 '赈饥' => '賑饑',
 '赏赞' => '賞讚',
 '賢后' => '賢后',
 '贤后' => '賢后',
 '卖断发' => '賣斷發',
-'赋范' => '賦范',
 '賦范' => '賦范',
+'赋范' => '賦范',
 '质数里' => '質數裡',
 '质朴' => '質樸',
 '赌后' => '賭后',
@@ -8202,6 +8199,7 @@ $zh2Hant = array(
 '回翔' => '迴翔',
 '回肠' => '迴腸',
 '回肠荡气' => '迴腸盪氣',
+'回荡' => '迴蕩',
 '回诵' => '迴誦',
 '回路' => '迴路',
 '回转' => '迴轉',
@@ -8371,10 +8369,10 @@ $zh2Hant = array(
 '部落发' => '部落發',
 '郭后' => '郭后',
 '都于' => '都於',
-'鄉愿' => '鄉愿',
 '乡愿' => '鄉愿',
-'é\84­å\87±äº\91' => 'é\84­å\87±äº\91',
+'é\84\89æ\84¿' => 'é\84\89æ\84¿',
 '郑凯云' => '鄭凱云',
+'鄭凱云' => '鄭凱云',
 '配制饲料' => '配制飼料',
 '配图里' => '配圖裡',
 '配水干管' => '配水幹管',
@@ -8447,10 +8445,10 @@ $zh2Hant = array(
 '采石之役' => '采石之役',
 '采石之战' => '采石之戰',
 '采石之戰' => '采石之戰',
-'采石磯' => '采石磯',
 '采石矶' => '采石磯',
-'é\87\8c海大學' => 'é\87\8c海大學',
+'é\87\87ç\9f³ç£¯' => 'é\87\87ç\9f³ç£¯',
 '里海大学' => '里海大學',
+'里海大學' => '里海大學',
 '里海崖' => '里海崖',
 '里海茨' => '里海茨',
 '里铺' => '里舖',
@@ -8616,13 +8614,13 @@ $zh2Hant = array(
 '鉴察' => '鑑察',
 '鉴往知来' => '鑑往知來',
 '鉴戒' => '鑑戒',
-'鉴于' => '鑑於',
 '鉴湖' => '鑑湖',
 '鉴藏' => '鑑藏',
 '鉴谅' => '鑑諒',
 '鉴证' => '鑑證',
 '鉴识' => '鑑識',
 '鉴赏' => '鑑賞',
+'鉴于' => '鑒於',
 '长几' => '長几',
 '长于' => '長於',
 '长历' => '長曆',
@@ -8793,8 +8791,8 @@ $zh2Hant = array(
 '面包起' => '面包起',
 '面包办' => '面包辦',
 '面店铺' => '面店鋪',
-'面條目' => '面條目',
 '面条目' => '面條目',
+'面條目' => '面條目',
 '面粉碎' => '面粉碎',
 '面粉红' => '面粉紅',
 '面食饭' => '面食飯',
@@ -8813,8 +8811,8 @@ $zh2Hant = array(
 '頁面' => '頁面',
 '页面' => '頁面',
 '顶凶' => '頂兇',
-'顶多' => '頂多',
 '頂多' => '頂多',
+'顶多' => '頂多',
 '项链' => '項鍊',
 '顺于' => '順於',
 '顺钟向' => '順鐘向',
@@ -8834,8 +8832,8 @@ $zh2Hant = array(
 '额我略历史' => '額我略歷史',
 '颜范' => '顏範',
 '颠干倒坤' => '顛乾倒坤',
-'颠颠仆仆' => '顛顛仆仆',
 '顛顛仆仆' => '顛顛仆仆',
+'颠颠仆仆' => '顛顛仆仆',
 '颤栗' => '顫慄',
 '显示表明' => '顯示表明',
 '显示表格' => '顯示表格',
@@ -9017,8 +9015,8 @@ $zh2Hant = array(
 '马干' => '馬乾',
 '馬占山' => '馬占山',
 '马斯垂克期' => '馬斯垂克期',
-'马格里布' => '馬格里布',
 '馬格里布' => '馬格里布',
+'马格里布' => '馬格里布',
 '驻扎' => '駐紮',
 '骀荡' => '駘蕩',
 '腾格里' => '騰格里',
@@ -9198,13 +9196,13 @@ $zh2Hant = array(
 '斗而铸锥' => '鬥而鑄錐',
 '斗脚' => '鬥腳',
 '斗舰' => '鬥艦',
-'斗艳' => '鬥艷',
 '斗茶' => '鬥茶',
 '斗草' => '鬥草',
 '斗叶儿' => '鬥葉兒',
 '斗叶子' => '鬥葉子',
 '斗蟋蟀' => '鬥蟋蟀',
 '斗话' => '鬥話',
+'斗艳' => '鬥豔',
 '斗起' => '鬥起',
 '斗趣' => '鬥趣',
 '斗闲气' => '鬥閒氣',
@@ -9272,8 +9270,8 @@ $zh2Hant = array(
 '魔表' => '魔錶',
 '鱼干' => '魚乾',
 '鱼松' => '魚鬆',
-'鲜于枢' => '鮮于樞',
 '鮮于樞' => '鮮于樞',
+'鲜于枢' => '鮮于樞',
 '鲸须' => '鯨鬚',
 '鳥栖' => '鳥栖',
 '鸟栖市' => '鳥栖市',
@@ -9367,8 +9365,8 @@ $zh2Hant = array(
 '黄岩区' => '黃巖區',
 '黄岩县' => '黃巖縣',
 '黄历' => '黃曆',
-'黄杰' => '黃杰',
 '黃杰' => '黃杰',
+'黄杰' => '黃杰',
 '黄历史' => '黃歷史',
 '黃詩杰' => '黃詩杰',
 '黄诗杰' => '黃詩杰',
@@ -9379,8 +9377,8 @@ $zh2Hant = array(
 '黄发' => '黃髮',
 '黄曲毒素' => '黃麴毒素',
 '黎克特制' => '黎克特制',
-'黎吉雲' => '黎吉雲',
 '黎吉云' => '黎吉雲',
+'黎吉雲' => '黎吉雲',
 '黑奴吁天录' => '黑奴籲天錄',
 '黑干将' => '黑幹將',
 '黑长发' => '黑長髮',
@@ -9399,8 +9397,8 @@ $zh2Hant = array(
 '霉黧' => '黴黧',
 '鼓里' => '鼓裡',
 '鼓噪' => '鼓譟',
-'咚咚鼓' => '鼕鼕鼓',
 '冬冬鼓' => '鼕鼕鼓',
+'咚咚鼓' => '鼕鼕鼓',
 '鼠曲草' => '鼠麴草',
 '鼻梁儿' => '鼻梁兒',
 '鼻梁' => '鼻樑',
@@ -13245,11 +13243,11 @@ $zh2Hans = array(
 '專著' => '专著',
 '乾一坛' => '乾一坛',
 '乾一壇' => '乾一坛',
-'乾一组' => '乾一组',
 '乾一組' => '乾一组',
+'乾一组' => '乾一组',
 '乾上乾下' => '乾上乾下',
-'乾東' => '乾东',
 '乾东' => '乾东',
+'乾東' => '乾东',
 '乾為天' => '乾为天',
 '乾為陽' => '乾为阳',
 '乾九' => '乾九',
@@ -13264,18 +13262,18 @@ $zh2Hans = array(
 '乾光' => '乾光',
 '乾兴' => '乾兴',
 '乾興' => '乾兴',
-'乾岡' => '乾冈',
 '乾冈' => '乾冈',
-'ä¹¾å\8a\89' => 'ä¹¾å\88\98',
+'乾岡' => 'ä¹¾å\86\88',
 '乾刘' => '乾刘',
-'ä¹¾å\89\9b' => 'ä¹¾å\88\9a',
+'ä¹¾å\8a\89' => 'ä¹¾å\88\98',
 '乾刚' => '乾刚',
-'ä¹¾å\8b\99' => 'ä¹¾å\8a¡',
+'ä¹¾å\89\9b' => 'ä¹¾å\88\9a',
 '乾务' => '乾务',
+'乾務' => '乾务',
 '乾化' => '乾化',
 '乾卦' => '乾卦',
-'乾縣' => '乾县',
 '乾县' => '乾县',
+'乾縣' => '乾县',
 '乾台' => '乾台',
 '乾吉' => '乾吉',
 '乾启' => '乾启',
@@ -13283,16 +13281,16 @@ $zh2Hans = array(
 '乾命' => '乾命',
 '乾和' => '乾和',
 '乾嘉' => '乾嘉',
-'乾圖' => '乾图',
 '乾图' => '乾图',
+'乾圖' => '乾图',
 '乾坤' => '乾坤',
 '乾城' => '乾城',
 '乾基' => '乾基',
 '乾天也' => '乾天也',
 '乾始' => '乾始',
 '乾姓' => '乾姓',
-'乾寧' => '乾宁',
 '乾宁' => '乾宁',
+'乾寧' => '乾宁',
 '乾宅' => '乾宅',
 '乾宇' => '乾宇',
 '乾安' => '乾安',
@@ -13356,36 +13354,36 @@ $zh2Hans = array(
 '乾符' => '乾符',
 '乾策' => '乾策',
 '乾精' => '乾精',
-'乾红' => '乾红',
 '乾紅' => '乾红',
+'乾红' => '乾红',
 '乾綱' => '乾纲',
 '乾纲' => '乾纲',
-'乾纽' => '乾纽',
 '乾紐' => '乾纽',
+'乾纽' => '乾纽',
 '乾絡' => '乾络',
 '乾络' => '乾络',
 '乾統' => '乾统',
 '乾统' => '乾统',
-'乾维' => '乾维',
 '乾維' => '乾维',
+'乾维' => '乾维',
 '乾罗' => '乾罗',
 '乾羅' => '乾罗',
 '乾花' => '乾花',
-'乾蔭' => '乾荫',
 '乾荫' => '乾荫',
+'乾蔭' => '乾荫',
 '乾行' => '乾行',
 '乾衡' => '乾衡',
 '乾西' => '乾西',
 '乾覆' => '乾覆',
 '乾象' => '乾象',
-'乾象歷' => '乾象历',
 '乾象历' => '乾象历',
-'ä¹¾è´\9e' => 'ä¹¾è´\9e',
+'乾象歷' => '乾象å\8e\86',
 '乾貞' => '乾贞',
-'乾贵士' => '乾贵士',
+'ä¹¾è´\9e' => 'ä¹¾è´\9e',
 '乾貴士' => '乾贵士',
-'乾贶' => '乾贶',
+'乾贵士' => '乾贵士',
 '乾貺' => '乾贶',
+'乾贶' => '乾贶',
 '乾車' => '乾车',
 '乾车' => '乾车',
 '乾軸' => '乾轴',
@@ -13395,8 +13393,8 @@ $zh2Hans = array(
 '乾道' => '乾道',
 '乾鉴' => '乾鉴',
 '乾鑒' => '乾鉴',
-'乾钧' => '乾钧',
 '乾鈞' => '乾钧',
+'乾钧' => '乾钧',
 '乾闥' => '乾闼',
 '乾闼' => '乾闼',
 '乾陀' => '乾陀',
@@ -13405,11 +13403,11 @@ $zh2Hans = array(
 '乾音' => '乾音',
 '乾顧' => '乾顾',
 '乾顾' => '乾顾',
-'乾风' => '乾风',
 '乾風' => '乾风',
+'乾风' => '乾风',
 '乾首' => '乾首',
-'乾马' => '乾马',
 '乾馬' => '乾马',
+'乾马' => '乾马',
 '乾鵠' => '乾鹄',
 '乾鹄' => '乾鹄',
 '乾鵲' => '乾鹊',
@@ -13496,8 +13494,8 @@ $zh2Hans = array(
 '復甦' => '复苏',
 '多么' => '多么',
 '大麴' => '大曲',
-'天道為乾' => '天道为乾',
 '天道为乾' => '天道为乾',
+'天道為乾' => '天道为乾',
 '奧區' => '奧区',
 '如瀋' => '如渖',
 '姓么' => '姓幺',
@@ -13511,10 +13509,10 @@ $zh2Hans = array(
 '將軍抽車' => '将军抽車',
 '爾冬陞' => '尔冬升',
 '尼乾陀' => '尼乾陀',
-'跼促' => '局促',
 '侷促' => '局促',
-'跼限' => '局限',
+'跼促' => '局促',
 '侷限' => '局限',
+'跼限' => '局限',
 '山崎闇齋' => '山崎闇斋',
 '岳託' => '岳讬',
 '巨著' => '巨著',
@@ -13528,8 +13526,8 @@ $zh2Hans = array(
 '么鳳' => '幺凤',
 '么半' => '幺半',
 '么半群' => '幺半群',
-'幺厮' => '幺厮',
 '么廝' => '幺厮',
+'幺厮' => '幺厮',
 '么叔' => '幺叔',
 '么女' => '幺女',
 '么媽' => '幺妈',
@@ -13550,13 +13548,13 @@ $zh2Hans = array(
 '么舅' => '幺舅',
 '么蛾子' => '幺蛾子',
 '么謙' => '幺谦',
-'么麽' => '幺麽',
 '么麼' => '幺麽',
+'么麽' => '幺麽',
 '么麽小丑' => '幺麽小丑',
 '慶餘' => '庆馀',
 '康乾' => '康乾',
-'張法乾' => '张法乾',
 '张法乾' => '张法乾',
+'張法乾' => '张法乾',
 '彰明較著' => '彰明较著',
 '待覆' => '待复',
 '後姓' => '後姓',
@@ -13604,23 +13602,23 @@ $zh2Hans = array(
 '觔斗' => '斤斗',
 '新著' => '新著',
 '於世成' => '於世成',
-'於之莹' => '於之莹',
 '於之瑩' => '於之莹',
+'於之莹' => '於之莹',
 '於乎' => '於乎',
 '於乙于同' => '於乙于同',
 '於乙宇同' => '於乙宇同',
 '於于同' => '於于同',
 '於哲' => '於哲',
-'於夫羅' => '於夫罗',
 '於夫罗' => '於夫罗',
+'於夫羅' => '於夫罗',
 '於姓' => '於姓',
 '於宇同' => '於宇同',
 '於崇文' => '於崇文',
 '於志賀' => '於志贺',
 '於志贺' => '於志贺',
 '於戲' => '於戏',
-'於梨華' => '於梨华',
 '於梨华' => '於梨华',
+'於梨華' => '於梨华',
 '於氏' => '於氏',
 '於潜' => '於潜',
 '於潛縣' => '於潜县',
@@ -13676,8 +13674,8 @@ $zh2Hans = array(
 '楈枒' => '楈枒',
 '樊於期' => '樊於期',
 '殘瀋' => '残渖',
-'慇懃' => '殷勤',
 '慇勤' => '殷勤',
+'慇懃' => '殷勤',
 '比較顯著' => '比较显著',
 '毫釐' => '毫厘',
 '氆氌' => '氆氌',
@@ -13702,19 +13700,19 @@ $zh2Hans = array(
 '甚夥' => '甚夥',
 '男为乾' => '男为乾',
 '男為乾' => '男为乾',
-'男性為乾' => '男性为乾',
 '男性为乾' => '男性为乾',
+'男性為乾' => '男性为乾',
 '療效顯著' => '疗效显著',
 '白瀋' => '白渖',
 '皁保' => '皁保',
 '目劄' => '目劄',
 '直昇' => '直升',
 '睹微知著' => '睹微知著',
-'瞭臺' => '瞭台',
 '瞭台' => '瞭台',
+'瞭臺' => '瞭台',
 '瞭望' => '瞭望',
-'矇矓' => '矇眬',
 '矇眬' => '矇眬',
+'矇矓' => '矇眬',
 '石碁' => '石碁',
 '石碁鎮' => '石碁镇',
 '碩託' => '硕讬',
@@ -13741,8 +13739,8 @@ $zh2Hans = array(
 '肉乾乾' => '肉干干',
 '肘手鍊足' => '肘手链足',
 '甦醒' => '苏醒',
-'薴烯' => '苧烯',
 '苧烯' => '苧烯',
+'薴烯' => '苧烯',
 '蘋果' => '苹果',
 '荠苧' => '荠苧',
 '榮陞' => '荣升',
@@ -13789,8 +13787,8 @@ $zh2Hans = array(
 '醉瀋' => '醉渖',
 '醯壶' => '醯壶',
 '醯壺' => '醯壶',
-'醯醬' => '醯酱',
 '醯酱' => '醯酱',
+'醯醬' => '醯酱',
 '醯醋' => '醯醋',
 '醯醢' => '醯醢',
 '醯雞' => '醯鸡',
@@ -13818,10 +13816,10 @@ $zh2Hans = array(
 '阿部正瞭' => '阿部正瞭',
 '陆徵祥' => '陆徵祥',
 '陸徵祥' => '陆徵祥',
-'陳乾生' => '陈乾生',
 '陈乾生' => '陈乾生',
-'陳元扞' => '陈元扞',
+'陳乾生' => '陈乾生',
 '陈元扞' => '陈元扞',
+'陳元扞' => '陈元扞',
 '陈公乾生' => '陈公乾生',
 '陳公乾生' => '陈公乾生',
 '陈遇乾' => '陈遇乾',
@@ -13840,15 +13838,15 @@ $zh2Hans = array(
 '餘慶' => '馀庆',
 '餘瀋' => '馀渖',
 '馬鞌' => '马鞍',
-'高陞' => '高升',
 '高昇' => '高升',
+'高陞' => '高升',
 '鬱姓' => '鬱姓',
 '鬱氏' => '鬱氏',
 '魏徵' => '魏徵',
 '魚乾乾' => '鱼干干',
 '麽氏' => '麽氏',
-'麽麽' => '麽麽',
 '麼麼' => '麽麽',
+'麽麽' => '麽麽',
 '黃麴毒素' => '黄曲毒素',
 '黃潤乾' => '黄润乾',
 '黄润乾' => '黄润乾',
@@ -13880,18 +13878,18 @@ $zh2TW = array(
 '一杆' => '一桿',
 '七杆' => '七桿',
 '三杆' => '三桿',
-'三極管' => '三極體',
 '三极管' => '三極體',
+'三極管' => '三極體',
 '达累斯萨拉姆' => '三蘭港',
 '上落客' => '上下客',
 '落車' => '下車',
-'不来梅' => '不萊梅',
 '不來梅' => '不萊梅',
+'不来梅' => '不萊梅',
 '以太网' => '乙太網',
 '九杆' => '九桿',
 '了結他' => '了結他',
-'二手煙' => '二手菸',
 '二手烟' => '二手菸',
+'二手煙' => '二手菸',
 '二杆' => '二桿',
 '二极管' => '二極體',
 '二極管' => '二極體',
@@ -13915,8 +13913,8 @@ $zh2TW = array(
 '掌上壓' => '伏地挺身',
 '伯明翰' => '伯明罕',
 '服务器' => '伺服器',
-'字节' => '位元組',
 '字節' => '位元組',
+'字节' => '位元組',
 '佛罗伦萨' => '佛羅倫斯',
 '操作系统' => '作業系統',
 '系数' => '係數',
@@ -13924,15 +13922,15 @@ $zh2TW = array(
 '傅里叶' => '傅立葉',
 '光盘' => '光碟',
 '光驱' => '光碟機',
-'克羅地亞' => '克羅埃西亞',
 '克罗地亚' => '克羅埃西亞',
+'克羅地亞' => '克羅埃西亞',
 '克里斯托弗' => '克里斯多福',
 '万维网' => '全球資訊網',
 '八杆' => '八桿',
 '公共交通' => '公共運輸',
 '六杆' => '六桿',
-'嘉芙蓮' => '凱薩琳',
 '凯瑟琳' => '凱薩琳',
+'嘉芙蓮' => '凱薩琳',
 '划着独木舟' => '划著獨木舟',
 '划着竹筏' => '划著竹筏',
 '划着船' => '划著船',
@@ -13947,21 +13945,21 @@ $zh2TW = array(
 '北朝鲜' => '北韓',
 '局域网' => '區域網',
 '十杆' => '十桿',
-'特立尼達和多巴哥' => '千里達托貝哥',
 '特立尼达和托巴哥' => '千里達托貝哥',
+'特立尼達和多巴哥' => '千里達托貝哥',
 '南朝鲜' => '南韓',
 '卡斯特罗' => '卡斯楚',
 '卡塔尔' => '卡達',
 '卡塔爾' => '卡達',
 '铆足' => '卯足',
-'打印機' => '印表機',
 '打印机' => '印表機',
-'厄立特里亞' => '厄利垂亞',
+'打印機' => '印表機',
 '厄利垂亚' => '厄利垂亞',
 '厄立特里亚' => '厄利垂亞',
+'厄立特里亞' => '厄利垂亞',
+'厄瓜多' => '厄瓜多',
 '厄瓜多尔' => '厄瓜多',
 '厄瓜多爾' => '厄瓜多',
-'厄瓜多' => '厄瓜多',
 '源代码' => '原始碼',
 '圆珠笔' => '原子筆',
 '反烟' => '反菸',
@@ -13977,70 +13975,70 @@ $zh2TW = array(
 '斯坦福' => '史丹福',
 '斯皮尔伯格' => '史匹柏',
 '斯特劳斯' => '史特勞斯',
-'斯威士蘭' => '史瓦濟蘭',
 '斯威士兰' => '史瓦濟蘭',
+'斯威士蘭' => '史瓦濟蘭',
 '斯蒂芬' => '史蒂芬',
 '斯大林' => '史達林',
 '結他' => '吉他',
-'乞力马扎罗' => '吉力馬札羅',
 '乞力馬札羅' => '吉力馬札羅',
-'吉布提' => '吉布地',
+'乞力马扎罗' => '吉力馬札羅',
 '吉布堤' => '吉布地',
+'吉布提' => '吉布地',
 '基里巴斯' => '吉里巴斯',
-'圖瓦盧' => '吐瓦魯',
 '图瓦卢' => '吐瓦魯',
-'å\90¸ç\85\99' => 'å\90¸è\8f¸',
+'å\9c\96ç\93¦ç\9b§' => 'å\90\90ç\93¦é­¯',
 '吸烟' => '吸菸',
-'å\91\82å®\8bç\85\99' => 'å\91\82å®\8b菸',
+'å\90¸ç\85\99' => 'å\90¸菸',
 '吕宋烟' => '呂宋菸',
+'呂宋煙' => '呂宋菸',
 '格丁根' => '哥廷根',
 '哥特式' => '哥德式',
-'哥斯達黎加' => '哥斯大黎加',
 '哥斯达黎加' => '哥斯大黎加',
+'哥斯達黎加' => '哥斯大黎加',
 '卡拉奇' => '喀拉蚩',
 '乔治·奥威尔' => '喬治·歐威爾',
-'格魯吉亞' => '喬治亞',
-'佐治亞' => '喬治亞',
 '佐治亚' => '喬治亞',
+'佐治亞' => '喬治亞',
+'格魯吉亞' => '喬治亞',
 '格鲁吉亚' => '喬治亞',
-'單鏡反光機' => '單眼相機',
 '单反相机' => '單眼相機',
+'單鏡反光機' => '單眼相機',
 '嘯咤' => '嘯吒',
 '四杆' => '四桿',
 '图卢兹' => '土魯斯',
 '圖盧茲' => '土魯斯',
 '戛纳' => '坎城',
 '堪培拉' => '坎培拉',
-'坦桑尼亞' => '坦尚尼亞',
 '坦桑尼亚' => '坦尚尼亞',
+'坦桑尼亞' => '坦尚尼亞',
 '端口' => '埠',
 '首席执行官' => '執行長',
 '塞舌尔' => '塞席爾',
 '塞舌爾' => '塞席爾',
-'薩拉熱窩' => '塞拉耶佛',
 '萨拉热窝' => '塞拉耶佛',
+'薩拉熱窩' => '塞拉耶佛',
 '塞尔维亚和黑山' => '塞爾維亞與蒙特內哥羅',
-'塞爾維亞與蒙特內哥羅' => '塞爾維亞與蒙特內哥羅',
 '塞爾維亞和黑山' => '塞爾維亞與蒙特內哥羅',
-'西維爾' => '塞維亞',
+'塞爾維亞與蒙特內哥羅' => '塞爾維亞與蒙特內哥羅',
 '塞维利亚' => '塞維亞',
+'西維爾' => '塞維亞',
 '塞黑' => '塞蒙',
-'英聯邦' => '大英國協',
-'英联邦' => '大英國協',
 '共和联邦' => '大英國協',
+'英联邦' => '大英國協',
+'英聯邦' => '大英國協',
 '太空飛行員' => '太空人',
 '宇航员' => '太空人',
 '穿梭機' => '太空梭',
 '航天飞机' => '太空梭',
 '宇航服' => '太空衣',
 '航天器' => '太空飛行器',
-'尼日利亞' => '奈及利亞',
 '尼日利亚' => '奈及利亞',
+'尼日利亞' => '奈及利亞',
 '忌廉' => '奶油',
 '荷里活' => '好萊塢',
 '威廉姆斯' => '威廉士',
-'威斯特法倫' => '威斯伐倫',
 '威斯特法伦' => '威斯伐倫',
+'威斯特法倫' => '威斯伐倫',
 '威士顿康星' => '威斯康辛',
 '威尔士' => '威爾斯',
 '威爾士' => '威爾斯',
@@ -14048,19 +14046,19 @@ $zh2TW = array(
 '存盘' => '存檔',
 '孟德爾遜' => '孟德爾頌',
 '门德尔松' => '孟德爾頌',
-'安哈爾特' => '安哈特',
 '安哈尔特' => '安哈特',
-'安提瓜和巴布達' => '安地卡及巴布達',
+'安哈爾特' => '安哈特',
 '安提瓜和巴布达' => '安地卡及巴布達',
+'安提瓜和巴布達' => '安地卡及巴布達',
 '洪都拉斯' => '宏都拉斯',
 '密歇根' => '密西根',
 '宽带' => '寬頻',
-'老撾人民民主共和國' => '寮人民民主共和國',
 '老挝人民民主共和国' => '寮人民民主共和國',
-'老撾' => '寮國',
+'老撾人民民主共和國' => '寮人民民主共和國',
 '老挝' => '寮國',
-'老撾語' => '寮語',
+'老撾' => '寮國',
 '老挝语' => '寮語',
+'老撾語' => '寮語',
 '波里活' => '寶萊塢',
 '高峰时段' => '尖峰時段',
 '高峰时间' => '尖峰時間',
@@ -14076,17 +14074,17 @@ $zh2TW = array(
 '发达国家' => '已開發國家',
 '巴塞罗那' => '巴塞隆納',
 '巴塞隆拿' => '巴塞隆納',
-'巴布亞新畿內亞' => '巴布亞紐幾內亞',
 '巴布亚新几内亚' => '巴布亞紐幾內亞',
+'巴布亞新畿內亞' => '巴布亞紐幾內亞',
 '巴士拉' => '巴斯拉',
 '巴巴多斯' => '巴貝多',
 '佈' => '布',
 '布基納法索' => '布吉納法索',
 '布基纳法索' => '布吉納法索',
-'布殊' => '布希',
 '布什' => '布希',
-'å\8b\83è\98­ç\99»å ¡' => 'å¸\83è\98­ç\99»å ¡',
+'å¸\83æ®\8a' => 'å¸\83å¸\8c',
 '勃兰登堡' => '布蘭登堡',
+'勃蘭登堡' => '布蘭登堡',
 '布里斯托尔' => '布里斯托',
 '布隆方丹' => '布隆泉',
 '希拉里' => '希拉蕊',
@@ -14098,49 +14096,49 @@ $zh2TW = array(
 '干着急' => '干著急',
 '干着' => '幹著',
 '畿內亞' => '幾內亞',
-'幾內亞比紹' => '幾內亞比索',
 '几内亚比绍' => '幾內亞比索',
+'幾內亞比紹' => '幾內亞比索',
 '比利牛斯' => '庇里牛斯',
 '库尔德人' => '庫德人',
 '库尔德族' => '庫德族',
 '康涅狄格' => '康乃狄克',
 '约翰斯顿岛' => '強斯頓環礁',
 '汇编' => '彙編',
-'形而上學' => '形上學',
 '形而上学' => '形上學',
-'å¾\97å\85\8bè\96©æ\96¯' => 'å¾·å\85\8bè\96©æ\96¯',
+'å½¢è\80\8cä¸\8aå­¸' => 'å½¢ä¸\8aå­¸',
 '得克萨斯' => '德克薩斯',
-'å¾·ç´¯æ\96¯é¡¿' => 'å¾·å\8b\92æ\96¯ç\99»',
+'å¾\97å\85\8bè\96©æ\96¯' => 'å¾·å\85\8bè\96©æ\96¯',
 '德累斯頓' => '德勒斯登',
+'德累斯顿' => '德勒斯登',
 '德里达' => '德希達',
 '特拉华' => '德拉瓦',
 '特拉華' => '德拉瓦',
-'闪存' => '快閃記憶體',
 '快闪存储器' => '快閃記憶體',
+'闪存' => '快閃記憶體',
 '想象' => '想像',
 '愛德文' => '愛德溫',
 '艾滋' => '愛滋',
 '艾奧瓦' => '愛荷華',
 '爱德华州' => '愛達荷州',
 '应用程序' => '應用程式',
-'戈爾巴喬夫' => '戈巴契夫',
 '戈尔巴乔夫' => '戈巴契夫',
-'æ\88\92ç\85\99' => 'æ\88\92è\8f¸',
+'æ\88\88ç\88¾å·´å\96¬å¤«' => 'æ\88\88å·´å¥\91夫',
 '戒烟' => '戒菸',
+'戒煙' => '戒菸',
 '戴克里先' => '戴克里先',
 '抽烟' => '抽菸',
 '抽煙' => '抽菸',
 '拉普兰' => '拉布蘭',
 '拒烟' => '拒菸',
 '拒煙' => '拒菸',
-'捲煙' => '捲菸',
 '卷烟' => '捲菸',
+'捲煙' => '捲菸',
 '積架' => '捷豹',
 '控件' => '控制項',
 '推杆' => '推桿',
 '第比利斯' => '提比里西',
-'揮杆' => '揮桿',
 '挥杆' => '揮桿',
+'揮杆' => '揮桿',
 '搜索引擎' => '搜尋引擎',
 '摩根士丹利' => '摩根史坦利',
 '台球' => '撞球',
@@ -14149,14 +14147,14 @@ $zh2TW = array(
 '數碼技術' => '數位技術',
 '数码相机' => '數位相機',
 '數碼相機' => '數位相機',
-'數碼訊號' => '數位訊號',
 '数字信号' => '數位訊號',
+'數碼訊號' => '數位訊號',
 '数字电视' => '數位電視',
 '數碼電視' => '數位電視',
 '調制解調器' => '數據機',
 '调制解调器' => '數據機',
-'斯洛文尼亞' => '斯洛維尼亞',
 '斯洛文尼亚' => '斯洛維尼亞',
+'斯洛文尼亞' => '斯洛維尼亞',
 '新罕布什尔' => '新罕布夏',
 '施罗德' => '施洛德',
 '旱烟' => '旱菸',
@@ -14166,28 +14164,28 @@ $zh2TW = array(
 '智能卡' => '智慧卡',
 '智能手机' => '智慧型手機',
 '智能手機' => '智慧型手機',
-'智能電話' => '智慧型電話',
 '智能电话' => '智慧型電話',
+'智能電話' => '智慧型電話',
 '知識產權' => '智慧財產權',
 '知识产权' => '智慧財產權',
-'马恩岛' => '曼島',
 '萌島' => '曼島',
+'马恩岛' => '曼島',
 '木杆' => '木桿',
 '列奥纳多' => '李奧納多',
-'杜塞爾多夫' => '杜塞道夫',
 '杜塞尔多夫' => '杜塞道夫',
+'杜塞爾多夫' => '杜塞道夫',
 '迪拜' => '杜拜',
-'亚细安' => '東協',
 '东盟' => '東協',
+'亚细安' => '東協',
 '东南亚国家联盟' => '東南亞國協',
-'柏林牆' => '柏林圍牆',
 '柏林墙' => '柏林圍牆',
+'柏林牆' => '柏林圍牆',
 '乍得' => '查德',
 '查韦斯' => '查維茲',
-'克林顿' => '柯林頓',
 '克林頓' => '柯林頓',
-'撒切尔' => '柴契爾',
+'克林顿' => '柯林頓',
 '戴卓爾' => '柴契爾',
+'撒切尔' => '柴契爾',
 '格林納達' => '格瑞那達',
 '格林纳达' => '格瑞那達',
 '乒乓' => '桌球',
@@ -14204,8 +14202,8 @@ $zh2TW = array(
 '枪支' => '槍枝',
 '标准杆' => '標準桿',
 '標準杆' => '標準桿',
-'毛里裘斯' => '模里西斯',
 '毛里求斯' => '模里西斯',
+'毛里裘斯' => '模里西斯',
 '机器人' => '機器人',
 '機械人' => '機器人',
 '概率' => '機率',
@@ -14217,31 +14215,31 @@ $zh2TW = array(
 '正在叱咤' => '正在叱咤',
 '文莱' => '汶萊',
 '沙律' => '沙拉',
-'沙特阿拉伯' => '沙烏地阿拉伯',
 '沙地阿拉伯' => '沙烏地阿拉伯',
+'沙特阿拉伯' => '沙烏地阿拉伯',
 '法属圭亚那' => '法屬蓋亞那',
 '波斯尼亚' => '波士尼亞',
 '波斯尼亞' => '波士尼亞',
 '波斯尼亚和黑塞哥维那' => '波士尼亞赫塞哥維納',
 '波斯尼亞黑塞哥維那' => '波士尼亞赫塞哥維納',
-'博茨瓦纳' => '波札那',
 '博茨瓦納' => '波札那',
+'博茨瓦纳' => '波札那',
 '波黑' => '波赫',
 '洋烟' => '洋菸',
 '洋煙' => '洋菸',
 '帕特里克' => '派屈克',
 '海洛英' => '海洛因',
-'侯赛因' => '海珊',
 '侯賽因' => '海珊',
+'侯赛因' => '海珊',
 '鼠标' => '滑鼠',
 '汉诺威' => '漢諾瓦',
 '漢诺威' => '漢諾瓦',
 '烤烟' => '烤菸',
 '烤煙' => '烤菸',
-'無煙日' => '無菸日',
 '无烟日' => '無菸日',
-'無煙環境' => '無菸環境',
+'無煙日' => '無菸日',
 '无烟环境' => '無菸環境',
+'無煙環境' => '無菸環境',
 '烟熏' => '煙燻',
 '首席运营官' => '營運長',
 '熏烤' => '燻烤',
@@ -14249,13 +14247,13 @@ $zh2TW = array(
 '熏黑' => '燻黑',
 '版权信息' => '版權資訊',
 '疯牛症' => '狂牛症',
-'铁托' => '狄托',
 '鐵托' => '狄托',
+'铁托' => '狄托',
 '塞拉利昂' => '獅子山',
 '独联体' => '獨立國協',
 '独立国家联合体' => '獨立國家國協',
-'波利尼西亞' => '玻里尼西亞',
 '波利尼西亚' => '玻里尼西亞',
+'波利尼西亞' => '玻里尼西亞',
 '本傑明' => '班傑明',
 '本杰明' => '班傑明',
 '球杆' => '球桿',
@@ -14263,10 +14261,10 @@ $zh2TW = array(
 '卢塞恩' => '琉森',
 '危地馬拉' => '瓜地馬拉',
 '危地马拉' => '瓜地馬拉',
-'華倫西亞' => '瓦倫西亞',
 '巴伦西亚' => '瓦倫西亞',
-'岡比亞' => '甘比亞',
+'華倫西亞' => '瓦倫西亞',
 '冈比亚' => '甘比亞',
+'岡比亞' => '甘比亞',
 '肯尼迪' => '甘迺迪',
 '留尼汪' => '留尼旺',
 '毕加索' => '畢卡索',
@@ -14274,8 +14272,8 @@ $zh2TW = array(
 '徵狀' => '症狀',
 '勃朗宁' => '白朗寧',
 '百慕大' => '百慕達',
-'盧旺達' => '盧安達',
 '卢旺达' => '盧安達',
+'盧旺達' => '盧安達',
 '睾' => '睪',
 '知识产权局' => '知識產權局',
 '知識產權局' => '知識產權署',
@@ -14288,8 +14286,8 @@ $zh2TW = array(
 '盘片' => '碟片',
 '磁盘' => '磁碟',
 '磁道' => '磁軌',
-'禁煙' => '禁菸',
 '禁烟' => '禁菸',
+'禁煙' => '禁菸',
 '福尔马林' => '福馬林',
 '福爾馬林' => '福馬林',
 '私烟' => '私菸',
@@ -14299,21 +14297,21 @@ $zh2TW = array(
 '空气质量' => '空氣品質',
 '空氣質素' => '空氣品質',
 '突尼斯' => '突尼西亞',
-'蹦极跳' => '笨豬跳',
 '绑紧跳' => '笨豬跳',
+'蹦极跳' => '笨豬跳',
 '短信' => '簡訊',
 '纽黑文' => '紐哈芬',
-'新奧爾良' => '紐奧良',
 '新奥尔良' => '紐奧良',
+'新奧爾良' => '紐奧良',
 '新几内亚' => '紐幾內亞',
-'新西蘭' => '紐西蘭',
 '新西兰' => '紐西蘭',
-'纸烟' => '紙菸',
+'新西蘭' => '紐西蘭',
 '紙煙' => '紙菸',
-'ç´¢è´\8aå°¼è¾\9b' => 'ç´¢å¿\8då°¼è¾\9b',
+'纸ç\83\9f' => 'ç´\99è\8f¸',
 '索尔仁尼琴' => '索忍尼辛',
-'所羅門群島' => '索羅門群島',
+'索贊尼辛' => '索忍尼辛',
 '所罗门群岛' => '索羅門群島',
+'所羅門群島' => '索羅門群島',
 '索馬里' => '索馬利亞',
 '索马里' => '索馬利亞',
 '索馬里蘭' => '索馬利蘭',
@@ -14323,27 +14321,27 @@ $zh2TW = array(
 '弗吉尼亚' => '維吉尼亞',
 '佛得角' => '維德角',
 '维特根斯坦' => '維根斯坦',
-'互联网络' => '網際網路',
-'因特网' => '網際網路',
 '互联网' => '網際網路',
+'互联网络' => '網際網路',
 '互聯網' => '網際網路',
+'因特网' => '網際網路',
 '系着' => '繫著',
 '卢瓦尔' => '羅亞爾',
 '盧瓦爾' => '羅亞爾',
 '卢浮宫' => '羅浮宮',
 '樂行童軍' => '羅浮童軍',
 '意大利' => '義大利',
-'昂山素季' => '翁山蘇姬',
 '昂山素姬' => '翁山蘇姬',
-'聖吉斯納域斯' => '聖克里斯多福及尼維斯',
+'昂山素季' => '翁山蘇姬',
 '圣基茨和尼维斯' => '聖克里斯多福及尼維斯',
-'聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
+'聖吉斯納域斯' => '聖克里斯多福及尼維斯',
 '圣文森特和格林纳丁斯' => '聖文森及格瑞那丁',
+'聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
 '圣赫勒拿' => '聖赫倫那',
-'聖盧西亞' => '聖露西亞',
 '圣卢西亚' => '聖露西亞',
-'聖馬力諾' => '聖馬利諾',
+'聖盧西亞' => '聖露西亞',
 '圣马力诺' => '聖馬利諾',
+'聖馬力諾' => '聖馬利諾',
 '肯尼亚' => '肯亞',
 '氨基酸' => '胺基酸',
 '卧' => '臥',
@@ -14372,37 +14370,37 @@ $zh2TW = array(
 '味美思' => '苦艾酒',
 '毛里塔尼亚' => '茅利塔尼亞',
 '毛里塔尼亞' => '茅利塔尼亞',
-'霍爾木茲' => '荷姆茲',
 '霍尔木兹' => '荷姆茲',
+'霍爾木茲' => '荷姆茲',
 '荷李活道' => '荷李活道',
 '莫桑比克' => '莫三比克',
-'華里沙' => '華勒沙',
 '瓦文萨' => '華勒沙',
+'華里沙' => '華勒沙',
 '瓦格纳' => '華格納',
 '烟具' => '菸具',
 '煙具' => '菸具',
-'煙品' => '菸品',
 '烟品' => '菸品',
-'ç\85\99å\98´' => 'è\8f¸å\98´',
+'ç\85\99å\93\81' => 'è\8f¸å\93\81',
 '烟嘴' => '菸嘴',
-'煙捲' => '菸捲',
+'煙嘴' => '菸嘴',
 '烟卷' => '菸捲',
-'ç\85\99æ\96\97' => 'è\8f¸æ\96\97',
+'ç\85\99æ\8d²' => 'è\8f¸æ\8d²',
 '烟斗' => '菸斗',
-'ç\85\99æ°\91' => 'è\8f¸æ°\91',
+'ç\85\99æ\96\97' => 'è\8f¸æ\96\97',
 '烟民' => '菸民',
+'煙民' => '菸民',
 '烟灰' => '菸灰',
 '煙灰' => '菸灰',
 '烟瘾' => '菸癮',
 '煙癮' => '菸癮',
 '烟丝' => '菸絲',
 '煙絲' => '菸絲',
-'煙草' => '菸草',
 '烟草' => '菸草',
+'煙草' => '菸草',
 '烟叶' => '菸葉',
 '煙葉' => '菸葉',
-'煙蒂' => '菸蒂',
 '烟蒂' => '菸蒂',
+'煙蒂' => '菸蒂',
 '烟袋' => '菸袋',
 '煙袋' => '菸袋',
 '烟农' => '菸農',
@@ -14413,11 +14411,11 @@ $zh2TW = array(
 '煙頭' => '菸頭',
 '烟鬼' => '菸鬼',
 '煙鬼' => '菸鬼',
-'煙鹼' => '菸鹼',
 '烟碱' => '菸鹼',
+'煙鹼' => '菸鹼',
 '万历朝鲜战争' => '萬曆朝鮮戰爭',
-'瓦努阿圖' => '萬那杜',
 '瓦努阿图' => '萬那杜',
+'瓦努阿圖' => '萬那杜',
 '叶利钦' => '葉爾欽',
 '葉利欽' => '葉爾欽',
 '埃里温' => '葉里溫',
@@ -14431,9 +14429,9 @@ $zh2TW = array(
 '格莱美奖' => '葛萊美獎',
 '黑山共和国' => '蒙特內哥羅共和國',
 '黑山共和國' => '蒙特內哥羅共和國',
+'滿地可' => '蒙特婁',
 '蒙特利尔' => '蒙特婁',
 '蒙特利爾' => '蒙特婁',
-'滿地可' => '蒙特婁',
 '普密蓬' => '蒲美蓬',
 '布隆迪' => '蒲隆地',
 '圭亚那' => '蓋亞那',
@@ -14453,20 +14451,20 @@ $zh2TW = array(
 '荧光' => '螢光',
 '荧屏' => '螢屏',
 '屏幕' => '螢幕',
-'移动网络' => '行動網路',
 '流動網絡' => '行動網路',
+'移动网络' => '行動網路',
 '流動電話' => '行動電話',
 '移动电话' => '行動電話',
 '冲着' => '衝著',
 '埃塞俄比亚' => '衣索比亞',
 '埃塞俄比亞' => '衣索比亞',
 '克隆人' => '複製人',
-'國際象棋' => '西洋棋',
-'国际象棋' => '西洋棋',
 '囯际象棋' => '西洋棋',
+'国际象棋' => '西洋棋',
+'國際象棋' => '西洋棋',
 '赫梯' => '西臺',
-'解像度' => '解析度',
 '分辨率' => '解析度',
+'解像度' => '解析度',
 '译码' => '解碼',
 '出租车' => '計程車',
 '约翰逊' => '詹森',
@@ -14474,8 +14472,8 @@ $zh2TW = array(
 '瑙魯' => '諾魯',
 '瑙鲁' => '諾魯',
 '科特迪瓦' => '象牙海岸',
-'贝尔格莱德' => '貝爾格勒',
 '貝爾格萊德' => '貝爾格勒',
+'贝尔格莱德' => '貝爾格勒',
 '伯利兹' => '貝里斯',
 '伯利茲' => '貝里斯',
 '首席财务官' => '財務長',
@@ -14485,10 +14483,10 @@ $zh2TW = array(
 '信息论' => '資訊理論',
 '乔布斯' => '賈伯斯',
 '宾西法尼亚' => '賓夕法尼亞',
-'利比里亞' => '賴比瑞亞',
 '利比里亚' => '賴比瑞亞',
-'萊索托' => '賴索托',
+'利比里亞' => '賴比瑞亞',
 '莱索托' => '賴索托',
+'萊索托' => '賴索托',
 '塞浦路斯' => '賽普勒斯',
 '碧咸' => '贝克漢',
 '赫丘勒·波洛' => '赫丘勒·白羅',
@@ -14526,8 +14524,8 @@ $zh2TW = array(
 '健力士世界纪录' => '金氏世界紀錄',
 '吉尼斯世界纪录' => '金氏世界紀錄',
 '钚' => '鈽',
-'钩' => '鉤',
 '鈎' => '鉤',
+'钩' => '鉤',
 '锎' => '鉲',
 '锫' => '鉳',
 '镅' => '鋂',
@@ -14546,30 +14544,30 @@ $zh2TW = array(
 '阿拉伯联合酋长国' => '阿拉伯聯合大公國',
 '阿拉伯聯合酋長國' => '阿拉伯聯合大公國',
 '亚拉巴马' => '阿拉巴馬',
-'阿聯酋' => '阿聯',
 '阿联酋' => '阿聯',
+'阿聯酋' => '阿聯',
 '罗纳德·里根' => '隆納·雷根',
 '私隱' => '隱私',
 '耶加達' => '雅加達',
-'雅爾塔' => '雅爾達',
 '雅尔塔' => '雅爾達',
+'雅爾塔' => '雅爾達',
 '雅穆苏克雷' => '雅穆索戈',
 '雅穆蘇克雷' => '雅穆索戈',
 '悉尼' => '雪梨',
-'雪茄煙' => '雪茄菸',
 '雪茄烟' => '雪茄菸',
+'雪茄煙' => '雪茄菸',
 '莱特湾' => '雷伊泰灣',
 '萊特灣' => '雷伊泰灣',
 '激光' => '雷射',
 '雷诺阿' => '雷諾瓦',
-'電子煙' => '電子菸',
 '电子烟' => '電子菸',
-'晶體管' => '電晶體',
+'電子煙' => '電子菸',
 '晶体管' => '電晶體',
+'晶體管' => '電晶體',
 '电杆' => '電桿',
 '电线杆' => '電線桿',
-'计算机程序' => '電腦程式',
 '电脑程序' => '電腦程式',
+'计算机程序' => '電腦程式',
 '荷尔斯泰因' => '霍爾斯坦',
 '荷爾斯泰因' => '霍爾斯坦',
 '朝鲜战争' => '韓戰',
@@ -14577,10 +14575,10 @@ $zh2TW = array(
 '缺省' => '預設',
 '导弹' => '飛彈',
 '糊口' => '餬口',
-'香煙' => '香菸',
 '香烟' => '香菸',
-'马é\87\8cå\85±å\92\8cå\9b½' => '馬å\88©å\85±å\92\8cå\9c\8b',
+'é¦\99ç\85\99' => 'é¦\99è\8f¸',
 '馬里共和國' => '馬利共和國',
+'马里共和国' => '馬利共和國',
 '马拉维' => '馬拉威',
 '馬斯特里赫特' => '馬斯垂克',
 '马斯特里赫特' => '馬斯垂克',
@@ -14592,13 +14590,13 @@ $zh2TW = array(
 '斗着' => '鬥著',
 '魯賓斯·巴里切羅' => '魯本·巴瑞切羅',
 '咪高峰' => '麥克風',
-'麦克尔' => '麥可',
 '迈克尔' => '麥可',
-'é\82\81å\87±è¼ª' => '麥æ\8b¿è¼ª',
+'麦å\85\8bå°\94' => '麥å\8f¯',
 '迈凯轮' => '麥拿輪',
+'邁凱輪' => '麥拿輪',
 '马萨诸塞' => '麻薩諸塞',
-'狄安娜' => '黛安娜',
 '戴安娜' => '黛安娜',
+'狄安娜' => '黛安娜',
 '点烟' => '點菸',
 '點煙' => '點菸',
 '霉素' => '黴素',
@@ -14623,8 +14621,8 @@ $zh2HK = array(
 '下著稱' => '下著稱',
 '下著者' => '下著者',
 '下著述' => '下著述',
-'下著錄' => '下著錄',
 '下著录' => '下著錄',
+'下著錄' => '下著錄',
 '不占' => '不佔',
 '不萊梅' => '不來梅',
 '不著痕跡' => '不着痕跡',
@@ -14648,8 +14646,8 @@ $zh2HK = array(
 '葉門' => '也門',
 '事里' => '事裏',
 '二極體' => '二極管',
-'網際網路' => '互聯網',
 '因特网' => '互聯網',
+'網際網路' => '互聯網',
 '井里' => '井裏',
 '亮著' => '亮着',
 '亮著作' => '亮著作',
@@ -14702,31 +14700,31 @@ $zh2HK = array(
 '布於' => '佈於',
 '布施' => '佈施',
 '布景' => '佈景',
-'布滿' => '佈滿',
 '布满' => '佈滿',
+'布滿' => '佈滿',
 '布置' => '佈置',
 '布設' => '佈設',
 '布设' => '佈設',
 '布警' => '佈警',
 '布道' => '佈道',
 '布防' => '佈防',
-'布陣' => '佈陣',
 '布阵' => '佈陣',
+'布陣' => '佈陣',
 '布雷、' => '佈雷、',
 '布雷。' => '佈雷。',
 '布雷封鎖' => '佈雷封鎖',
 '布雷封锁' => '佈雷封鎖',
 '布雷的' => '佈雷的',
 '布雷艇' => '佈雷艇',
-'布雷艦' => '佈雷艦',
 '布雷舰' => '佈雷艦',
+'布雷艦' => '佈雷艦',
 '布雷速度' => '佈雷速度',
 '布雷,' => '佈雷,',
 '布雷;' => '佈雷;',
-'布點' => '佈點',
 '布点' => '佈點',
-'å­\97è\8a\82' => 'ä½\8då\85\83çµ\84',
+'å¸\83é»\9e' => 'ä½\88é»\9e',
 '字節' => '位元組',
+'字节' => '位元組',
 '低著' => '低着',
 '低著作' => '低著作',
 '低著名' => '低著名',
@@ -14783,8 +14781,8 @@ $zh2HK = array(
 '占一' => '佔一',
 '占七' => '佔七',
 '占三' => '佔三',
-'占上风' => '佔上風',
 '占上風' => '佔上風',
+'占上风' => '佔上風',
 '占下' => '佔下',
 '占下風' => '佔下風',
 '占下风' => '佔下風',
@@ -14804,14 +14802,14 @@ $zh2HK = array(
 '占占' => '佔佔',
 '占便宜' => '佔便宜',
 '占俄' => '佔俄',
-'占個' => '佔個',
 '占个' => '佔個',
+'占個' => '佔個',
 '占个位' => '佔個位',
 '占個位' => '佔個位',
 '占亿' => '佔億',
 '占億' => '佔億',
-'占優' => '佔優',
 '占优' => '佔優',
+'占優' => '佔優',
 '占先' => '佔先',
 '占光' => '佔光',
 '占全' => '佔全',
@@ -14834,8 +14832,8 @@ $zh2HK = array(
 '占台' => '佔台',
 '占囁' => '佔囁',
 '占四' => '佔四',
-'占國' => '佔國',
 '占国' => '佔國',
+'占國' => '佔國',
 '占在' => '佔在',
 '占地' => '佔地',
 '占场' => '佔場',
@@ -14860,13 +14858,13 @@ $zh2HK = array(
 '占德' => '佔德',
 '占所有' => '佔所有',
 '占掉' => '佔掉',
-'占據' => '佔據',
 '占据' => '佔據',
+'占據' => '佔據',
 '占整' => '佔整',
 '占新' => '佔新',
 '占有' => '佔有',
-'占東' => '佔東',
 '占东' => '佔東',
+'占東' => '佔東',
 '占查' => '佔查',
 '占次' => '佔次',
 '占比' => '佔比',
@@ -14881,16 +14879,16 @@ $zh2HK = array(
 '占毕' => '佔畢',
 '占畢' => '佔畢',
 '占百' => '佔百',
-'占盡' => '佔盡',
 '占尽' => '佔盡',
+'占盡' => '佔盡',
 '占着' => '佔着',
 '占著' => '佔着',
 '占網' => '佔網',
 '占网' => '佔網',
 '占線' => '佔線',
 '占线' => '佔線',
-'占總' => '佔總',
 '占总' => '佔總',
+'占總' => '佔總',
 '占缺' => '佔缺',
 '占美' => '佔美',
 '占耕' => '佔耕',
@@ -14898,29 +14896,29 @@ $zh2HK = array(
 '占至少' => '佔至少',
 '占臺' => '佔臺',
 '占英' => '佔英',
-'占萬' => '佔萬',
 '占万' => '佔萬',
+'占萬' => '佔萬',
 '占著名' => '佔著名',
 '占著者' => '佔著者',
 '占葡' => '佔葡',
-'占蘇' => '佔蘇',
 '占苏' => '佔蘇',
+'占蘇' => '佔蘇',
 '占西' => '佔西',
 '占資' => '佔資',
 '占资' => '佔資',
 '占起' => '佔起',
-'占超過' => '佔超過',
 '占超过' => '佔超過',
+'占超過' => '佔超過',
 '占过' => '佔過',
 '占過' => '佔過',
 '占道' => '佔道',
 '占零' => '佔零',
 '占領' => '佔領',
 '占领' => '佔領',
-'占頭' => '佔頭',
 '占头' => '佔頭',
-'占頭籌' => '佔頭籌',
+'占頭' => '佔頭',
 '占头筹' => '佔頭籌',
+'占頭籌' => '佔頭籌',
 '占香' => '佔香',
 '占馬' => '佔馬',
 '占马' => '佔馬',
@@ -15074,8 +15072,8 @@ $zh2HK = array(
 '剪彩' => '剪綵',
 '割占' => '割佔',
 '劃著' => '劃着',
-'擊劍' => '劍擊',
 '击剑' => '劍擊',
+'擊劍' => '劍擊',
 '加薩走廊' => '加沙地帶',
 '迦納' => '加納',
 '加彭' => '加蓬',
@@ -15129,9 +15127,9 @@ $zh2HK = array(
 '印著述' => '印著述',
 '印著錄' => '印著錄',
 '瓜地馬拉' => '危地馬拉',
-'厄瓜多爾' => '厄瓜多爾',
-'厄瓜多尔' => '厄瓜多爾',
 '厄瓜多' => '厄瓜多爾',
+'厄瓜多尔' => '厄瓜多爾',
+'厄瓜多爾' => '厄瓜多爾',
 '厄利垂亚' => '厄立特里亞',
 '厄利垂亞' => '厄立特里亞',
 '源代码' => '原始碼',
@@ -15167,8 +15165,8 @@ $zh2HK = array(
 '古柯鹼' => '可卡因',
 '叱吒' => '叱咤',
 '斯坦福' => '史丹福',
-'斯皮尔伯格' => '史匹堡',
 '史匹柏' => '史匹堡',
+'斯皮尔伯格' => '史匹堡',
 '史蒂芬·史匹柏' => '史提芬·史匹堡',
 '斯蒂芬·斯皮尔伯格' => '史提芬·史匹堡',
 '吃不著' => '吃不着',
@@ -15246,13 +15244,13 @@ $zh2HK = array(
 '喝著錄' => '喝著錄',
 '賈伯斯' => '喬布斯',
 '乔治·奥威尔' => '喬治·歐威爾',
-'單眼相機' => '單鏡反光機',
 '单反相机' => '單鏡反光機',
+'單眼相機' => '單鏡反光機',
 '嗅不著' => '嗅不着',
 '嗅得著' => '嗅得着',
 '嗅著' => '嗅着',
-'凱薩琳' => '嘉芙蓮',
 '凯瑟琳' => '嘉芙蓮',
+'凱薩琳' => '嘉芙蓮',
 '嘯吒' => '嘯咤',
 '嘴里' => '嘴裏',
 '嚷著' => '嚷着',
@@ -15332,8 +15330,8 @@ $zh2HK = array(
 '吉里巴斯' => '基里巴斯',
 '场里' => '場裏',
 '塗著' => '塗着',
-'賽普勒斯' => '塞浦路斯',
 '塞普勒斯' => '塞浦路斯',
+'賽普勒斯' => '塞浦路斯',
 '塞爾維亞與蒙特內哥羅' => '塞爾維亞和黑山',
 '塞席爾' => '塞舌爾',
 '境里' => '境裏',
@@ -15375,14 +15373,14 @@ $zh2HK = array(
 '歐巴馬' => '奧巴馬',
 '妆台' => '妝枱',
 '威斯伐倫' => '威斯特法倫',
-'威爾士' => '威爾斯',
 '威尔士' => '威爾斯',
+'威爾士' => '威爾斯',
 '子里' => '子裏',
 '字里行间' => '字裏行間',
 '存著' => '存着',
 '存著名' => '存著名',
-'门德尔松' => '孟德爾遜',
 '孟德爾頌' => '孟德爾遜',
+'门德尔松' => '孟德爾遜',
 '孤著' => '孤着',
 '孤著作' => '孤著作',
 '孤著名' => '孤著名',
@@ -15436,10 +15434,10 @@ $zh2HK = array(
 '寫著錄' => '寫著錄',
 '宝里宝气' => '寶裏寶氣',
 '封面里' => '封面裏',
-'將占' => '將佔',
 '将占' => '將佔',
-'將占卜' => '將占卜',
+'將占' => '將佔',
 '将占卜' => '將占卜',
+'將占卜' => '將占卜',
 '专辑里' => '專輯裏',
 '尋著' => '尋着',
 '尋著作' => '尋著作',
@@ -15536,8 +15534,8 @@ $zh2HK = array(
 '康著述' => '康著述',
 '康著錄' => '康著錄',
 '庙里' => '廟裏',
-'强占' => '強佔',
 '強占' => '強佔',
+'强占' => '強佔',
 '约翰斯顿岛' => '強斯頓環礁',
 '弹子台' => '彈子枱',
 '蹦床' => '彈床',
@@ -15573,8 +15571,8 @@ $zh2HK = array(
 '循著者' => '循著者',
 '循著述' => '循著述',
 '循著錄' => '循著錄',
-'徵占' => '徵佔',
 '征占' => '徵佔',
+'徵占' => '徵佔',
 '德占' => '德佔',
 '得克萨斯' => '德克薩斯',
 '德勒斯登' => '德累斯頓',
@@ -15648,8 +15646,8 @@ $zh2HK = array(
 '想著者' => '想著者',
 '想著述' => '想著述',
 '想著錄' => '想著錄',
-'義占' => '意佔',
 '意占' => '意佔',
+'義占' => '意佔',
 '義大利' => '意大利',
 '艾滋' => '愛滋',
 '愛著' => '愛着',
@@ -15708,10 +15706,10 @@ $zh2HK = array(
 '戏彩娱亲' => '戲綵娛親',
 '戲彩娛親' => '戲綵娛親',
 '戏里' => '戲裏',
-'柴契爾' => '戴卓爾',
 '撒切尔' => '戴卓爾',
-'黛安娜' => '戴安娜',
+'柴契爾' => '戴卓爾',
 '狄安娜' => '戴安娜',
+'黛安娜' => '戴安娜',
 '戴著' => '戴着',
 '戴著作' => '戴著作',
 '戴著名' => '戴著名',
@@ -15886,8 +15884,8 @@ $zh2HK = array(
 '揮著述' => '揮著述',
 '揮著錄' => '揮著錄',
 '搜索引擎' => '搜尋引擎',
-'搶占' => '搶佔',
 '抢占' => '搶佔',
+'搶占' => '搶佔',
 '摟著' => '摟着',
 '摟著作' => '摟著作',
 '摟著名' => '摟著名',
@@ -15922,8 +15920,8 @@ $zh2HK = array(
 '據著述' => '據著述',
 '據著錄' => '據著錄',
 '擡著' => '擡着',
-'擺布' => '擺佈',
 '摆布' => '擺佈',
+'擺布' => '擺佈',
 '擺著' => '擺着',
 '擺著作' => '擺著作',
 '擺著名' => '擺著名',
@@ -15949,8 +15947,8 @@ $zh2HK = array(
 '数字技术' => '數碼技術',
 '數位技術' => '數碼技術',
 '數位相機' => '數碼相機',
-'數碼訊號' => '數碼訊號',
 '数字信号' => '數碼訊號',
+'數碼訊號' => '數碼訊號',
 '数字电视' => '數碼電視',
 '數位電視' => '數碼電視',
 '數著作' => '數著作',
@@ -15985,8 +15983,8 @@ $zh2HK = array(
 '昂著者' => '昂著者',
 '昂著述' => '昂著述',
 '昂著錄' => '昂著錄',
-'星羅棋布' => '星羅棋佈',
 '星罗棋布' => '星羅棋佈',
+'星羅棋布' => '星羅棋佈',
 '映著' => '映着',
 '映著作' => '映著作',
 '映著名' => '映著名',
@@ -16002,8 +16000,8 @@ $zh2HK = array(
 '晃著者' => '晃著者',
 '晃著述' => '晃著述',
 '晃著錄' => '晃著錄',
-'芯片' => '晶片',
 '晶元' => '晶片',
+'芯片' => '晶片',
 '智慧型' => '智能',
 '智慧卡' => '智能卡',
 '智慧手機' => '智能手機',
@@ -16063,8 +16061,8 @@ $zh2HK = array(
 '村里' => '村裏',
 '杜塞道夫' => '杜塞爾多夫',
 '迪拜' => '杜拜',
-'東協' => '東盟',
 '亚细安' => '東盟',
+'東協' => '東盟',
 '板著臉' => '板着臉',
 '枕著' => '枕着',
 '枕著作' => '枕著作',
@@ -16081,18 +16079,18 @@ $zh2HK = array(
 '台面化' => '枱面化',
 '柏林墙' => '柏林圍牆',
 '奧黛莉·朵杜' => '柯德莉·塔圖',
-'奧黛麗·赫本' => '柯德莉·夏萍',
 '奥黛丽·赫本' => '柯德莉·夏萍',
+'奧黛麗·赫本' => '柯德莉·夏萍',
 '哥廷根' => '格丁根',
 '格瑞那達' => '格林納達',
-'葛萊美獎' => '格林美獎',
 '格莱美奖' => '格林美獎',
+'葛萊美獎' => '格林美獎',
 '格鲁吉亚' => '格魯吉亞',
 '框里' => '框裏',
-'撞球' => '桌球',
 '台球' => '桌球',
-'默多克' => '梅鐸',
+'撞球' => '桌球',
 '梅鐸' => '梅鐸',
+'默多克' => '梅鐸',
 '梳著' => '梳着',
 '梳著作' => '梳著作',
 '梳著名' => '梳著名',
@@ -16104,8 +16102,8 @@ $zh2HK = array(
 '桑巴舞' => '森巴舞',
 '森林里' => '森林裏',
 '棺材里' => '棺材裏',
-'榴蓮' => '榴槤',
 '榴莲' => '榴槤',
+'榴蓮' => '榴槤',
 '樂著' => '樂着',
 '樂著作' => '樂著作',
 '樂著名' => '樂著名',
@@ -16135,8 +16133,8 @@ $zh2HK = array(
 '殺著錄' => '殺著錄',
 '壳里' => '殼裏',
 '茅利塔尼亞' => '毛里塔尼亞',
-'毛里求斯' => '毛里裘斯',
 '模里西斯' => '毛里裘斯',
+'毛里求斯' => '毛里裘斯',
 '公厘' => '毫米',
 '公釐' => '毫米',
 '水来汤里去' => '水來湯裏去',
@@ -16182,8 +16180,8 @@ $zh2HK = array(
 '玻里尼西亞' => '波利尼西亞',
 '波士尼亞' => '波斯尼亞',
 '波士尼亞赫塞哥維納' => '波斯尼亞黑塞哥維那',
-'寶萊塢' => '波里活',
 '宝莱坞' => '波里活',
+'寶萊塢' => '波里活',
 '幫浦' => '泵',
 '洞里' => '洞裏',
 '辛巴威' => '津巴布韋',
@@ -16198,8 +16196,8 @@ $zh2HK = array(
 '活著錄' => '活著錄',
 '移动网络' => '流動網絡',
 '行動網路' => '流動網絡',
-'行動電話' => '流動電話',
 '移动电话' => '流動電話',
+'行動電話' => '流動電話',
 '流著' => '流着',
 '流著作' => '流著作',
 '流著名' => '流著名',
@@ -16220,8 +16218,8 @@ $zh2HK = array(
 '浮著錄' => '浮著錄',
 '海上布雷' => '海上佈雷',
 '海洛因' => '海洛英',
-'海灣布雷' => '海灣佈雷',
 '海湾布雷' => '海灣佈雷',
+'海灣布雷' => '海灣佈雷',
 '涵著' => '涵着',
 '涵著作' => '涵著作',
 '涵著名' => '涵著名',
@@ -16357,8 +16355,8 @@ $zh2HK = array(
 '猜著述' => '猜著述',
 '猜著錄' => '猜著錄',
 '狱里' => '獄裏',
-'獨占' => '獨佔',
 '独占' => '獨佔',
+'獨占' => '獨佔',
 '獨著' => '獨着',
 '獨著作' => '獨著作',
 '獨著名' => '獨著名',
@@ -16419,18 +16417,18 @@ $zh2HK = array(
 '畫著稱' => '畫著稱',
 '畫著者' => '畫著者',
 '當著' => '當着',
-'過著作' => '當著作',
 '當著作' => '當著作',
-'過著名' => '當著名',
+'過著作' => '當著作',
 '當著名' => '當著名',
-'過著書' => '當著書',
+'過著名' => '當著名',
 '當著書' => '當著書',
+'過著書' => '當著書',
 '當著稱' => '當著稱',
 '過著稱' => '當著稱',
 '當著者' => '當著者',
 '過著者' => '當著者',
-'過著述' => '當著述',
 '當著述' => '當著述',
+'過著述' => '當著述',
 '當著錄' => '當著錄',
 '過著錄' => '當著錄',
 '几内亚' => '畿內亞',
@@ -16575,16 +16573,16 @@ $zh2HK = array(
 '瞪著錄' => '瞪著錄',
 '智慧財產權' => '知識產權',
 '智財權' => '知識產權',
-'簡訊' => '短訊',
 '短信' => '短訊',
+'簡訊' => '短訊',
 '什勒斯維希' => '石勒蘇益格',
 '硅' => '矽',
 '硅藻' => '硅藻',
 '硬件' => '硬件',
 '硬體' => '硬件',
 '碗里' => '碗裏',
-'贝克漢' => '碧咸',
 '贝克汉姆' => '碧咸',
+'贝克漢' => '碧咸',
 '社里' => '社裏',
 '福馬林' => '福爾馬林',
 '福著' => '福着',
@@ -16597,18 +16595,18 @@ $zh2HK = array(
 '福著錄' => '福著錄',
 '秀发布' => '秀發佈',
 '私下里' => '私下裏',
-'隱私' => '私隱',
 '隐私' => '私隱',
+'隱私' => '私隱',
 '葛摩' => '科摩羅',
 '程序员' => '程式設計師',
 '捷豹' => '積架',
-'穩占' => '穩佔',
 '稳占' => '穩佔',
+'穩占' => '穩佔',
 '穫著' => '穫着',
 '空中布雷' => '空中佈雷',
 '空投布雷' => '空投佈雷',
-'空氣品質' => '空氣質素',
 '空气质量' => '空氣質素',
+'空氣品質' => '空氣質素',
 '空著' => '空着',
 '空著作' => '空著作',
 '空著名' => '空著名',
@@ -16659,8 +16657,8 @@ $zh2HK = array(
 '节目里' => '節目裏',
 '簽著' => '簽着',
 '籃板球' => '籃板球',
-'麦克尔' => '米高',
 '迈克尔' => '米高',
+'麦克尔' => '米高',
 '迈克尔·欧文' => '米高·奧雲',
 '糊里糊涂' => '糊裏糊塗',
 '系列里' => '系列裏',
@@ -16669,10 +16667,10 @@ $zh2HK = array(
 '約占' => '約佔',
 '约占' => '約佔',
 '紐賓士域' => '紐賓士域',
-'索忍尼辛' => '索贊尼辛',
 '索尔仁尼琴' => '索贊尼辛',
-'索馬利里' => '索馬里',
+'索忍尼辛' => '索贊尼辛',
 '索馬利亞' => '索馬里',
+'索馬利里' => '索馬里',
 '紮著' => '紮着',
 '紮著作' => '紮著作',
 '紮著名' => '紮著名',
@@ -16728,8 +16726,8 @@ $zh2HK = array(
 '繞著者' => '繞著者',
 '繞著述' => '繞著述',
 '繞著錄' => '繞著錄',
-'繫著' => '繫着',
 '系着' => '繫着',
+'繫著' => '繫着',
 '纏著' => '纏着',
 '纏著作' => '纏著作',
 '纏著名' => '纏著名',
@@ -16783,8 +16781,8 @@ $zh2HK = array(
 '考著者' => '考著者',
 '考著述' => '考著述',
 '考著錄' => '考著錄',
-'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '圣基茨和尼维斯' => '聖吉斯納域斯',
+'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
 '聖文森及格瑞那丁' => '聖文森特和格林納丁斯',
 '聖露西亞' => '聖盧西亞',
 '聖馬利諾' => '聖馬力諾',
@@ -16863,13 +16861,13 @@ $zh2HK = array(
 '好萊塢' => '荷里活',
 '庄里' => '莊裏',
 '莫三比克' => '莫桑比克',
-'瓦倫西亞' => '華倫西亞',
 '巴伦西亚' => '華倫西亞',
 '巴倫西亞' => '華倫西亞',
+'瓦倫西亞' => '華倫西亞',
 '瓦文萨' => '華里沙',
 '華勒沙' => '華里沙',
-'菲利普親王' => '菲臘親王',
 '菲利普亲王' => '菲臘親王',
+'菲利普親王' => '菲臘親王',
 '賴索托' => '萊索托',
 '马恩岛' => '萌島',
 '馬自達' => '萬事得',
@@ -16886,8 +16884,8 @@ $zh2HK = array(
 '葉爾欽' => '葉利欽',
 '葡占' => '葡佔',
 '葫芦里卖甚么药' => '葫蘆裏賣甚麼藥',
-'蒙特婁' => '蒙特利爾',
 '滿地可' => '蒙特利爾',
+'蒙特婁' => '蒙特利爾',
 '蒙著' => '蒙着',
 '蒙著作' => '蒙著作',
 '蒙著名' => '蒙著名',
@@ -17014,8 +17012,8 @@ $zh2HK = array(
 '視著' => '視着',
 '視著名' => '視著名',
 '角落里' => '角落裏',
-'解析度' => '解像度',
 '分辨率' => '解像度',
+'解析度' => '解像度',
 '言里' => '言裏',
 '計畫' => '計劃',
 '記著' => '記着',
@@ -17092,8 +17090,8 @@ $zh2HK = array(
 '負著' => '負着',
 '貢寮國' => '貢寮國',
 '買凶' => '買兇',
-'费占' => '費佔',
 '費占' => '費佔',
+'费占' => '費佔',
 '赌台' => '賭枱',
 '尚比亞' => '贊比亞',
 '西臺人' => '赫梯人',
@@ -17272,8 +17270,8 @@ $zh2HK = array(
 '連著者' => '連著者',
 '連著述' => '連著述',
 '連著錄' => '連著錄',
-'進占' => '進佔',
 '进占' => '進佔',
+'進占' => '進佔',
 '演化論' => '進化論',
 '逼著' => '逼着',
 '逼著作' => '逼著作',
@@ -17311,8 +17309,8 @@ $zh2HK = array(
 '遠著者' => '遠著者',
 '遠著述' => '遠著述',
 '遠著錄' => '遠著錄',
-'還占' => '還佔',
 '还占' => '還佔',
+'還占' => '還佔',
 '邋里邋遢' => '邋裏邋遢',
 '那里' => '那裏',
 '配合著' => '配合着',
@@ -17335,14 +17333,14 @@ $zh2HK = array(
 '醜著者' => '醜著者',
 '醜著述' => '醜著述',
 '醜著錄' => '醜著錄',
-'醯壺' => '醯壺',
 '醯壶' => '醯壺',
+'醯壺' => '醯壺',
 '醯醋' => '醯醋',
 '醯醢' => '醯醢',
-'醯醬' => '醯醬',
 '醯酱' => '醯醬',
-'é\86¯é¸¡' => 'é\86¯é\9b\9e',
+'é\86¯é\86¬' => 'é\86¯é\86¬',
 '醯雞' => '醯雞',
+'醯鸡' => '醯雞',
 '釀著' => '釀着',
 '釀著作' => '釀著作',
 '釀著名' => '釀著名',
@@ -17383,8 +17381,8 @@ $zh2HK = array(
 '開著者' => '開著者',
 '開著述' => '開著述',
 '開著錄' => '開著錄',
-'開誠布公' => '開誠佈公',
 '开诚布公' => '開誠佈公',
+'開誠布公' => '開誠佈公',
 '閑著' => '閑着',
 '閑著作' => '閑著作',
 '閑著名' => '閑著名',
@@ -17478,11 +17476,11 @@ $zh2HK = array(
 '雜著述' => '雜著述',
 '雜著錄' => '雜著錄',
 '鸡蛋里挑骨头' => '雞蛋裏挑骨頭',
-'冰激凌' => '雪糕',
 '冰淇淋' => '雪糕',
+'冰激凌' => '雪糕',
 '雪里' => '雪裏',
-'萊特灣' => '雷伊泰灣',
 '莱特湾' => '雷伊泰灣',
+'萊特灣' => '雷伊泰灣',
 '晶体管' => '電晶體',
 '晶體管' => '電晶體',
 '电梯里' => '電梯裏',
@@ -17500,8 +17498,8 @@ $zh2HK = array(
 '靠著稱' => '靠著稱',
 '靠著者' => '靠著者',
 '靠著述' => '靠著述',
-'靠著錄' => '靠著錄',
 '靠著录' => '靠著錄',
+'靠著錄' => '靠著錄',
 '鞋里' => '鞋裏',
 '鞭辟入里' => '鞭辟入裏',
 '朝鲜战争' => '韓戰',
@@ -17529,8 +17527,8 @@ $zh2HK = array(
 '順著者' => '順著者',
 '順著述' => '順著述',
 '順著錄' => '順著錄',
-'颁布' => '頒佈',
 '頒布' => '頒佈',
+'颁布' => '頒佈',
 '領著' => '領着',
 '領著作' => '領著作',
 '領著名' => '領著名',
@@ -17554,8 +17552,8 @@ $zh2HK = array(
 '餐台' => '餐枱',
 '馆里' => '館裏',
 '糊口' => '餬口',
-'马里兰' => '馬利蘭',
 '馬里蘭' => '馬利蘭',
+'马里兰' => '馬利蘭',
 '马拉特·萨芬' => '馬拉特·沙芬',
 '馬斯垂克' => '馬斯特里赫特',
 '馬爾地夫' => '馬爾代夫',
@@ -17602,8 +17600,8 @@ $zh2HK = array(
 '髭著者' => '髭著者',
 '髭著述' => '髭著述',
 '髭著錄' => '髭著錄',
-'鬥著' => '鬥着',
 '斗着' => '鬥着',
+'鬥著' => '鬥着',
 '鬥著作' => '鬥著作',
 '鬥著名' => '鬥著名',
 '鬥著書' => '鬥著書',
@@ -17612,8 +17610,8 @@ $zh2HK = array(
 '鬥著述' => '鬥著述',
 '鬥著錄' => '鬥著錄',
 '鬧著' => '鬧着',
-'牛轧' => '鳥結',
 '牛軋' => '鳥結',
+'牛轧' => '鳥結',
 '鳩占' => '鳩佔',
 '鸠占' => '鳩佔',
 '麗著' => '麗着',
@@ -17625,16 +17623,16 @@ $zh2HK = array(
 '麗著述' => '麗著述',
 '麗著錄' => '麗著錄',
 '麼著' => '麼着',
-'里氏0' => '黎克特制0',
 '芮氏0' => '黎克特制0',
-'里氏1' => '黎克特制1',
+'里氏0' => '黎克特制0',
 '芮氏1' => '黎克特制1',
-'里氏2' => '黎克特制2',
+'里氏1' => '黎克特制1',
 '芮氏2' => '黎克特制2',
-'里氏3' => '黎克特制3',
+'里氏2' => '黎克特制2',
 '芮氏3' => '黎克特制3',
-'里氏4' => '黎克特制4',
+'里氏3' => '黎克特制3',
 '芮氏4' => '黎克特制4',
+'里氏4' => '黎克特制4',
 '芮氏5' => '黎克特制5',
 '里氏5' => '黎克特制5',
 '芮氏6' => '黎克特制6',
@@ -17643,13 +17641,13 @@ $zh2HK = array(
 '里氏7' => '黎克特制7',
 '芮氏8' => '黎克特制8',
 '里氏8' => '黎克特制8',
-'里氏9' => '黎克特制9',
 '芮氏9' => '黎克特制9',
+'里氏9' => '黎克特制9',
 '芮氏地震規模' => '黎克特制地震震級',
 '里氏地震规模' => '黎克特制地震震級',
-'里氏震级' => '黎克特制震級',
 '芮氏規模' => '黎克特制震級',
 '里氏规模' => '黎克特制震級',
+'里氏震级' => '黎克特制震級',
 '黏著' => '黏着',
 '黏著作' => '黏著作',
 '黏著名' => '黏著名',
@@ -17686,8 +17684,8 @@ $zh2CN = array(
 '下著录' => '下著录',
 '下著錄' => '下著录',
 '下著有' => '下著有',
-'下著稱' => '下著称',
 '下著称' => '下著称',
+'下著稱' => '下著称',
 '下著者' => '下著者',
 '下著述' => '下著述',
 '不著' => '不着',
@@ -17715,8 +17713,8 @@ $zh2CN = array(
 '邱吉爾' => '丘吉尔',
 'C型肝炎' => '丙型肝炎',
 'C肝' => '丙肝',
-'東協' => '东盟',
 '亚细安' => '东盟',
+'東協' => '东盟',
 '臨著' => '临着',
 '臨著書' => '临著书',
 '臨著作' => '临著作',
@@ -17793,8 +17791,8 @@ $zh2CN = array(
 '亮著者' => '亮著者',
 '亮著述' => '亮著述',
 '人工智慧' => '人工智能',
-'甚麽' => '什么',
 '甚麼' => '什么',
+'甚麽' => '什么',
 '仗著' => '仗着',
 '仗著書' => '仗著书',
 '仗著作' => '仗著作',
@@ -17814,8 +17812,8 @@ $zh2CN = array(
 '代表著述' => '代表著述',
 '乙太網' => '以太网',
 '伊莉莎白' => '伊丽莎白',
-'伊利諾伊' => '伊利诺伊',
 '伊利諾' => '伊利诺伊',
+'伊利諾伊' => '伊利诺伊',
 '伊斯蘭瑪巴德' => '伊斯兰堡',
 '伊斯坦堡' => '伊斯坦布尔',
 '伏著' => '伏着',
@@ -17991,8 +17989,8 @@ $zh2CN = array(
 '寫著稱' => '写著称',
 '寫著者' => '写著者',
 '寫著述' => '写著述',
-'衝著' => '冲着',
 '沖著' => '冲着',
+'衝著' => '冲着',
 '沖著。' => '冲著。',
 '沖著《' => '冲著《',
 '沖著,' => '冲著,',
@@ -18008,8 +18006,8 @@ $zh2CN = array(
 '湊合著' => '凑合着',
 '畿內亞' => '几内亚',
 '幾內亞比索' => '几内亚比绍',
-'嘉芙蓮' => '凯瑟琳',
 '凱薩琳' => '凯瑟琳',
+'嘉芙蓮' => '凯瑟琳',
 '份內' => '分内',
 '份外' => '分外',
 '解像度' => '分辨率',
@@ -18021,8 +18019,8 @@ $zh2CN = array(
 '列支敦斯登' => '列支敦士登',
 '賴比瑞亞' => '利比里亚',
 '別著' => '别着',
-'颳著' => '刮着',
 '刮著' => '刮着',
+'颳著' => '刮着',
 '到帳' => '到账',
 '制著' => '制着',
 '制著書' => '制著书',
@@ -18085,8 +18083,8 @@ $zh2CN = array(
 '十進位制' => '十进位制',
 '十進位' => '十进制',
 '公升' => '升',
-'單鏡反光機' => '单反相机',
 '單眼相機' => '单反相机',
+'單鏡反光機' => '单反相机',
 '波札那' => '博茨瓦纳',
 '占著' => '占着',
 '占著作' => '占著作',
@@ -18107,12 +18105,12 @@ $zh2CN = array(
 '印著者' => '印著者',
 '印著述' => '印著述',
 '瓜地馬拉' => '危地马拉',
-'厄瓜多尔' => '厄瓜多尔',
 '厄瓜多' => '厄瓜多尔',
+'厄瓜多尔' => '厄瓜多尔',
 '厄瓜多爾' => '厄瓜多尔',
 '厄利垂亚' => '厄立特里亚',
-'厄立特里亞' => '厄立特里亚',
 '厄利垂亞' => '厄立特里亚',
+'厄立特里亞' => '厄立特里亚',
 '壓著' => '压着',
 '壓著書' => '压著书',
 '壓著作' => '压著作',
@@ -18270,8 +18268,8 @@ $zh2CN = array(
 '因著書' => '因著书',
 '因著作' => '因著作',
 '因著名' => '因著名',
-'因著錄' => '因著录',
 '因著录' => '因著录',
+'因著錄' => '因著录',
 '因著稱' => '因著称',
 '因著者' => '因著者',
 '因著述' => '因著述',
@@ -18297,8 +18295,8 @@ $zh2CN = array(
 '吐瓦魯' => '图瓦卢',
 '原子筆' => '圆珠笔',
 '聖露西亞' => '圣卢西亚',
-'聖吉斯納域斯' => '圣基茨和尼维斯',
 '聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
+'聖吉斯納域斯' => '圣基茨和尼维斯',
 '聖文森及格瑞那丁' => '圣文森特和格林纳丁斯',
 '聖馬利諾' => '圣马力诺',
 '在著' => '在着',
@@ -18330,10 +18328,10 @@ $zh2CN = array(
 '坎培拉' => '堪培拉',
 '塞爾維亞與蒙特內哥羅' => '塞尔维亚和黑山',
 '塞拉利昂' => '塞拉利昂',
-'賽普勒斯' => '塞浦路斯',
 '塞普勒斯' => '塞浦路斯',
-'西維ç\88¾' => 'å¡\9eç»´å\88©äº\9a',
+'è³½æ\99®å\8b\92æ\96¯' => 'å¡\9e浦路æ\96¯',
 '塞維亞' => '塞维利亚',
+'西維爾' => '塞维利亚',
 '塞席爾' => '塞舌尔',
 '音效卡' => '声卡',
 '備著' => '备着',
@@ -18414,8 +18412,8 @@ $zh2CN = array(
 '定著述' => '定著述',
 '波里活' => '宝莱坞',
 '寬頻' => '宽带',
-'密西根' => '密歇根',
 '密执安' => '密歇根',
+'密西根' => '密歇根',
 '對著' => '对着',
 '對著書' => '对著书',
 '對著作' => '对著作',
@@ -18447,8 +18445,8 @@ $zh2CN = array(
 '展著稱' => '展著称',
 '展著者' => '展著者',
 '展著述' => '展著述',
-'華倫西亞' => '巴伦西亚',
 '瓦倫西亞' => '巴伦西亚',
+'華倫西亞' => '巴伦西亚',
 '巴塞隆拿' => '巴塞罗那',
 '巴塞隆納' => '巴塞罗那',
 '巴斯拉' => '巴士拉',
@@ -18907,8 +18905,8 @@ $zh2CN = array(
 '放著' => '放着',
 '放著作' => '放著作',
 '放著名' => '放著名',
-'放著稱' => '放著称',
 '放著称' => '放著称',
+'放著稱' => '放著称',
 '放帳' => '放账',
 '敞著' => '敞着',
 '敞著作' => '敞著作',
@@ -18919,8 +18917,8 @@ $zh2CN = array(
 '敞著述' => '敞著述',
 '數位訊號' => '数字信号',
 '數碼訊號' => '数字信号',
-'數碼技術' => '数字技术',
 '數位技術' => '数字技术',
+'數碼技術' => '数字技术',
 '數位電視' => '数字电视',
 '數碼電視' => '数字电视',
 '資料庫' => '数据库',
@@ -18959,8 +18957,8 @@ $zh2CN = array(
 '紐西蘭' => '新西兰',
 '舊帳' => '旧账',
 '三藩市' => '旧金山',
-'翁山蘇姬' => '昂山素季',
 '昂山素姬' => '昂山素季',
+'翁山蘇姬' => '昂山素季',
 '昂著' => '昂着',
 '昂著書' => '昂著书',
 '昂著作' => '昂著作',
@@ -19105,10 +19103,10 @@ $zh2CN = array(
 '庇里牛斯' => '比利牛斯',
 '畢卡索' => '毕加索',
 '茅利塔尼亞' => '毛里塔尼亚',
-'毛里裘斯' => '毛里求斯',
 '模里西斯' => '毛里求斯',
-'公釐' => '毫米',
+'毛里裘斯' => '毛里求斯',
 '公厘' => '毫米',
+'公釐' => '毫米',
 '胺基酸' => '氨基酸',
 '水份' => '水分',
 '水氣' => '水汽',
@@ -19121,8 +19119,8 @@ $zh2CN = array(
 '求著者' => '求著者',
 '求著述' => '求著述',
 '漢諾瓦' => '汉诺威',
-'沉著' => '沉着',
 '沈著' => '沉着',
+'沉著' => '沉着',
 '沉著書' => '沉著书',
 '沉著作' => '沉著作',
 '沉著名' => '沉著名',
@@ -19303,8 +19301,8 @@ $zh2CN = array(
 '玩著' => '玩着',
 '溫納圖' => '瓦努阿图',
 '萬那杜' => '瓦努阿图',
-'華里沙' => '瓦文萨',
 '華勒沙' => '瓦文萨',
+'華里沙' => '瓦文萨',
 '甜著' => '甜着',
 '甜著書' => '甜著书',
 '甜著作' => '甜著作',
@@ -19530,15 +19528,15 @@ $zh2CN = array(
 '瞪著稱' => '瞪著称',
 '瞪著者' => '瞪著者',
 '瞪著述' => '瞪著述',
-'智財權' => '知识产权',
 '智慧財產權' => '知识产权',
+'智財權' => '知识产权',
 '知識份子' => '知识分子',
 '什勒斯維希' => '石勒苏益格',
-'矽尘' => '矽尘',
 '矽塵' => '矽尘',
+'矽尘' => '矽尘',
 '矽肺' => '矽肺',
-'矽钢' => '矽钢',
 '矽鋼' => '矽钢',
+'矽钢' => '矽钢',
 '矽' => '硅',
 '矽片' => '硅片',
 '矽谷' => '硅谷',
@@ -19561,13 +19559,13 @@ $zh2CN = array(
 '積極份子' => '积极分子',
 '流動電話' => '移动电话',
 '行動電話' => '移动电话',
-'行動網路' => '移动网络',
 '流動網絡' => '移动网络',
+'行動網路' => '移动网络',
 '程式設計師' => '程序员',
 '程式控制' => '程控',
 '空中巴士' => '空中客车',
-'空氣質素' => '空气质量',
 '空氣品質' => '空气质量',
+'空氣質素' => '空气质量',
 '空著' => '空着',
 '空著書' => '空著书',
 '空著作' => '空著作',
@@ -19630,9 +19628,9 @@ $zh2CN = array(
 '糖份' => '糖分',
 '動畫影集' => '系列动画片',
 '繫著' => '系着',
+'索忍尼辛' => '索尔仁尼琴',
 '索贊尼辛' => '索尔仁尼琴',
 '蘇辛尼津' => '索尔仁尼琴',
-'索忍尼辛' => '索尔仁尼琴',
 '索馬利亞' => '索马里',
 '索馬利蘭' => '索马里兰',
 '正體中文' => '繁体中文',
@@ -19740,8 +19738,8 @@ $zh2CN = array(
 '藝著者' => '艺著者',
 '藝著述' => '艺著述',
 '愛滋' => '艾滋',
-'晶片' => '芯片',
 '晶元' => '芯片',
+'晶片' => '芯片',
 '蘇利南' => '苏里南',
 '苦著' => '苦着',
 '苦著書' => '苦著书',
@@ -20187,8 +20185,8 @@ $zh2CN = array(
 '鑀' => '锿',
 '鋂' => '镅',
 '錼' => '镎',
-'孟德爾頌' => '门德尔松',
 '孟德爾遜' => '门德尔松',
+'孟德爾頌' => '门德尔松',
 '快閃記憶體' => '闪存',
 '閉著' => '闭着',
 '閉著書' => '闭著书',
@@ -20198,8 +20196,8 @@ $zh2CN = array(
 '閉著稱' => '闭著称',
 '閉著者' => '闭著者',
 '閉著述' => '闭著述',
-'閒著' => '闲着',
 '閑著' => '闲着',
+'閒著' => '闲着',
 '閑著書' => '闲著书',
 '閑著作' => '闲著作',
 '閑著名' => '闲著名',
index 0dee147..6ab8483 100644 (file)
@@ -497,7 +497,7 @@ class ApiEditPage extends ApiBase {
                                $r['result'] = 'Success';
                                $r['pageid'] = intval( $titleObj->getArticleID() );
                                $r['title'] = $titleObj->getPrefixedText();
-                               $r['contentmodel'] = $titleObj->getContentModel();
+                               $r['contentmodel'] = $articleObject->getContentModel();
                                $newRevId = $articleObject->getLatest();
                                if ( $newRevId == $oldRevId ) {
                                        $r['nochange'] = true;
index d452bbd..d24112c 100644 (file)
@@ -66,9 +66,17 @@ class ApiFeedRecentChanges extends ApiBase {
 
                $formatter = $this->getFeedObject( $feedFormat, $specialClass );
 
-               // Everything is passed implicitly via $wgRequest… :(
-               // The row-getting functionality should maybe be factored out of ChangesListSpecialPage too…
+               // Parameters are passed via the request in the context… :(
+               $context = new DerivativeContext( $this );
+               $context->setRequest( new DerivativeRequest(
+                       $this->getRequest(),
+                       $this->params,
+                       $this->getRequest()->wasPosted()
+               ) );
+
+               // The row-getting functionality should be factored out of ChangesListSpecialPage too…
                $rc = new $specialClass();
+               $rc->setContext( $context );
                $rows = $rc->getRows();
 
                $feedItems = $rows ? ChangesFeed::buildItems( $rows ) : array();
index 082fccb..bfe3205 100644 (file)
@@ -448,7 +448,7 @@ class ApiQuery extends ApiBase {
                        ApiResult::setArrayType( $pages, 'BCarray' );
 
                        if ( $this->mParams['indexpageids'] ) {
-                               $pageIDs = array_keys( $pages );
+                               $pageIDs = array_keys( ApiResult::stripMetadataNonRecursive( $pages ) );
                                // json treats all map keys as strings - converting to match
                                $pageIDs = array_map( 'strval', $pageIDs );
                                ApiResult::setIndexedTagName( $pageIDs, 'id' );
index dd19bf2..87f90c5 100644 (file)
@@ -137,7 +137,7 @@ class ApiQueryPageProps extends ApiQueryBase {
 
        protected function getExamplesMessages() {
                return array(
-                       'action=query&prop=pageprops&titles=Category:Foo'
+                       'action=query&prop=pageprops&titles=Main%20Page|MediaWiki'
                                => 'apihelp-query+pageprops-example-simple',
                );
        }
index 552ca3b..1a65fe3 100644 (file)
@@ -91,10 +91,10 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                // Enum mode can only be used when exactly one page is provided.
                // Enumerating revisions on multiple pages make it extremely
                // difficult to manage continuations and require additional SQL indexes
-               $enumRevMode = ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ||
-                       !is_null( $params['limit'] ) || !is_null( $params['startid'] ) ||
-                       !is_null( $params['endid'] ) || $params['dir'] === 'newer' ||
-                       !is_null( $params['start'] ) || !is_null( $params['end'] ) );
+               $enumRevMode = ( $params['user'] !== null || $params['excludeuser'] !== null ||
+                       $params['limit'] !== null || $params['startid'] !== null ||
+                       $params['endid'] !== null || $params['dir'] === 'newer' ||
+                       $params['start'] !== null || $params['end'] !== null );
 
                $pageSet = $this->getPageSet();
                $pageCount = $pageSet->getGoodTitleCount();
@@ -149,7 +149,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        }
                } else {
                        $this->limit = $this->getParameter( 'limit' ) ?: 10;
-                       $this->addFields( array( 'rev_id', 'rev_page' ) );
+                       $this->addFields( array( 'rev_id', 'rev_timestamp', 'rev_page' ) );
                }
 
                if ( $this->fld_tags ) {
@@ -160,7 +160,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        $this->addFields( 'ts_tags' );
                }
 
-               if ( !is_null( $params['tag'] ) ) {
+               if ( $params['tag'] !== null ) {
                        $this->addTables( 'change_tag' );
                        $this->addJoinConds(
                                array( 'change_tag' => array( 'INNER JOIN', array( 'rev_id=ct_rev_id' ) ) )
@@ -196,58 +196,77 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                }
 
                if ( $enumRevMode ) {
+                       // Indexes targeted:
+                       //  page_timestamp if we don't have rvuser
+                       //  page_user_timestamp if we have a logged-in rvuser
+                       //  page_timestamp or usertext_timestamp if we have an IP rvuser
+
                        // This is mostly to prevent parameter errors (and optimize SQL?)
-                       if ( !is_null( $params['startid'] ) && !is_null( $params['start'] ) ) {
+                       if ( $params['startid'] !== null && $params['start'] !== null ) {
                                $this->dieUsage( 'start and startid cannot be used together', 'badparams' );
                        }
 
-                       if ( !is_null( $params['endid'] ) && !is_null( $params['end'] ) ) {
+                       if ( $params['endid'] !== null && $params['end'] !== null ) {
                                $this->dieUsage( 'end and endid cannot be used together', 'badparams' );
                        }
 
-                       if ( !is_null( $params['user'] ) && !is_null( $params['excludeuser'] ) ) {
+                       if ( $params['user'] !== null && $params['excludeuser'] !== null ) {
                                $this->dieUsage( 'user and excludeuser cannot be used together', 'badparams' );
                        }
 
-                       // Continuing effectively uses startid. But we can't use rvstartid
-                       // directly, because there is no way to tell the client to ''not''
-                       // send rvstart if it sent it in the original query. So instead we
-                       // send the continuation startid as rvcontinue, and ignore both
-                       // rvstart and rvstartid when that is supplied.
-                       if ( !is_null( $params['continue'] ) ) {
-                               $params['startid'] = $params['continue'];
-                               $params['start'] = null;
+                       if ( $params['continue'] !== null ) {
+                               $cont = explode( '|', $params['continue'] );
+                               $this->dieContinueUsageIf( count( $cont ) != 2 );
+                               $op = ( $params['dir'] === 'newer' ? '>' : '<' );
+                               $continueTimestamp = $db->addQuotes( $db->timestamp( $cont[0] ) );
+                               $continueId = (int)$cont[1];
+                               $this->dieContinueUsageIf( $continueId != $cont[1] );
+                               $this->addWhere( "rev_timestamp $op $continueTimestamp OR " .
+                                       "(rev_timestamp = $continueTimestamp AND " .
+                                       "rev_id $op= $continueId)"
+                               );
                        }
 
-                       // This code makes an assumption that sorting by rev_id and rev_timestamp produces
-                       // the same result. This way users may request revisions starting at a given time,
-                       // but to page through results use the rev_id returned after each page.
-                       // Switching to rev_id removes the potential problem of having more than
-                       // one row with the same timestamp for the same page.
-                       // The order needs to be the same as start parameter to avoid SQL filesort.
-                       if ( is_null( $params['startid'] ) && is_null( $params['endid'] ) ) {
-                               $this->addTimestampWhereRange( 'rev_timestamp', $params['dir'],
-                                       $params['start'], $params['end'] );
-                       } else {
-                               $this->addWhereRange( 'rev_id', $params['dir'],
-                                       $params['startid'], $params['endid'] );
-                               // One of start and end can be set
-                               // If neither is set, this does nothing
-                               $this->addTimestampWhereRange( 'rev_timestamp', $params['dir'],
-                                       $params['start'], $params['end'], false );
+                       // Query optimization: since we're targeting ranges of
+                       // rev_timestamp,rev_id, if we're given an id then extract the
+                       // corresponding timestamp from the DB.
+                       // Note we don't use Revision::getTimestampFromId() since we don't
+                       // have a Title to pass it and there's not any real need to create one.
+                       if ( $params['startid'] !== null ) {
+                               $params['start'] = $db->selectField( 'revision', 'rev_timestamp',
+                                       array( 'rev_id' => $params['startid'] ), __METHOD__ );
+                       }
+                       if ( $params['endid'] !== null ) {
+                               $params['end'] = $db->selectField( 'revision', 'rev_timestamp',
+                                       array( 'rev_id' => $params['endid'] ), __METHOD__ );
                        }
 
+                       $this->addTimestampWhereRange( 'rev_timestamp', $params['dir'],
+                               $params['start'], $params['end'] );
+                       $this->addWhereRange( 'rev_id', $params['dir'],
+                               $params['startid'], $params['endid'] );
+
                        // There is only one ID, use it
                        $ids = array_keys( $pageSet->getGoodTitles() );
                        $this->addWhereFld( 'rev_page', reset( $ids ) );
 
-                       if ( !is_null( $params['user'] ) ) {
-                               $this->addWhereFld( 'rev_user_text', $params['user'] );
-                       } elseif ( !is_null( $params['excludeuser'] ) ) {
-                               $this->addWhere( 'rev_user_text != ' .
-                                       $db->addQuotes( $params['excludeuser'] ) );
+                       if ( $params['user'] !== null ) {
+                               $user = User::newFromName( $params['user'] );
+                               if ( $user && $user->getId() > 0 ) {
+                                       $this->addWhereFld( 'rev_user', $user->getId() );
+                               } else {
+                                       $this->addWhereFld( 'rev_user_text', $params['user'] );
+                               }
+                       } elseif ( $params['excludeuser'] !== null ) {
+                               $user = User::newFromName( $params['excludeuser'] );
+                               if ( $user && $user->getId() > 0 ) {
+                                       $this->addWhere( 'rev_user != ' . $user->getId() );
+                               } else {
+                                       $this->addWhere( 'rev_user_text != ' .
+                                               $db->addQuotes( $params['excludeuser'] ) );
+                               }
                        }
-                       if ( !is_null( $params['user'] ) || !is_null( $params['excludeuser'] ) ) {
+                       if ( $params['user'] !== null || $params['excludeuser'] !== null ) {
                                // Paranoia: avoid brute force searches (bug 17342)
                                if ( !$this->getUser()->isAllowed( 'deletedhistory' ) ) {
                                        $bitmask = Revision::DELETED_USER;
@@ -261,16 +280,20 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                                }
                        }
                } elseif ( $revCount > 0 ) {
+                       // Always targets the PRIMARY index
+
                        $revs = $pageSet->getLiveRevisionIDs();
 
                        // Get all revision IDs
                        $this->addWhereFld( 'rev_id', array_keys( $revs ) );
 
-                       if ( !is_null( $params['continue'] ) ) {
+                       if ( $params['continue'] !== null ) {
                                $this->addWhere( 'rev_id >= ' . intval( $params['continue'] ) );
                        }
                        $this->addOption( 'ORDER BY', 'rev_id' );
                } elseif ( $pageCount > 0 ) {
+                       // Always targets the rev_page_id index
+
                        $titles = $pageSet->getGoodTitles();
 
                        // When working in multi-page non-enumeration mode,
@@ -282,7 +305,7 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        // Every time someone relies on equality propagation, god kills a kitten :)
                        $this->addWhereFld( 'rev_page', array_keys( $titles ) );
 
-                       if ( !is_null( $params['continue'] ) ) {
+                       if ( $params['continue'] !== null ) {
                                $cont = explode( '|', $params['continue'] );
                                $this->dieContinueUsageIf( count( $cont ) != 2 );
                                $pageid = intval( $cont[0] );
@@ -312,7 +335,8 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                                // We've reached the one extra which shows that there are
                                // additional pages to be had. Stop here...
                                if ( $enumRevMode ) {
-                                       $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
+                                       $this->setContinueEnumParameter( 'continue',
+                                               $row->rev_timestamp . '|' . intval( $row->rev_id ) );
                                } elseif ( $revCount > 0 ) {
                                        $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                } else {
@@ -344,7 +368,8 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                                $fit = $this->addPageSubItem( $row->rev_page, $rev, 'rev' );
                                if ( !$fit ) {
                                        if ( $enumRevMode ) {
-                                               $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
+                                               $this->setContinueEnumParameter( 'continue',
+                                                       $row->rev_timestamp . '|' . intval( $row->rev_id ) );
                                        } elseif ( $revCount > 0 ) {
                                                $this->setContinueEnumParameter( 'continue', intval( $row->rev_id ) );
                                        } else {
index 345cf43..044b6e0 100644 (file)
@@ -276,6 +276,10 @@ class ApiResult implements ApiSerializable {
         * @param int $flags Zero or more OR-ed flags like OVERRIDE | ADD_ON_TOP.
         */
        public static function setValue( array &$arr, $name, $value, $flags = 0 ) {
+               if ( !( $flags & ApiResult::NO_VALIDATE ) ) {
+                       $value = self::validateValue( $value );
+               }
+
                if ( $name === null ) {
                        if ( $flags & ApiResult::ADD_ON_TOP ) {
                                array_unshift( $arr, $value );
@@ -285,10 +289,6 @@ class ApiResult implements ApiSerializable {
                        return;
                }
 
-               if ( !( $flags & ApiResult::NO_VALIDATE ) ) {
-                       $value = self::validateValue( $value );
-               }
-
                $exists = isset( $arr[$name] );
                if ( !$exists || ( $flags & ApiResult::OVERRIDE ) ) {
                        if ( !$exists && ( $flags & ApiResult::ADD_ON_TOP ) ) {
index d6a1fec..4e80b9b 100644 (file)
@@ -5,7 +5,8 @@
                        "YjM",
                        "Juandev",
                        "Aktron",
-                       "Cvanca"
+                       "Cvanca",
+                       "Utar"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Dokumentace]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-mailová konference]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Oznámení k API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Chyby a požadavky]\n</div>\n<strong>Stav:</strong> Všechny funkce uvedené na této stránce by měly fungovat, ale API se stále aktivně vyvíjí a může se kdykoli změnit. Upozornění na změny získáte přihlášením se k [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-mailové konferenci mediawiki-api-announce].\n\n<strong>Chybné požadavky:</strong> Pokud jsou do API zaslány chybné požadavky, bude vrácena HTTP hlavička s klíčem „MediaWiki-API-Error“ a hodnota této hlavičky a chybový kód budou nastaveny na stejnou hodnotu. Více informací najdete [[mw:API:Errors_and_warnings|v dokumentaci]].",
        "apihelp-help-example-help": "Nápověda k samotnému modulu nápovědy",
        "apihelp-help-example-query": "Nápověda pro dva podmoduly query",
        "apihelp-imagerotate-description": "Otočit jeden nebo více obrázků.",
+       "apihelp-imagerotate-example-generator": "Otočit všechny obrázky v <kbd>Category:Flip</kbd> o <kbd>180</kbd> stupňů.",
        "apihelp-import-param-summary": "Import shrnutí.",
        "apihelp-import-param-xml": "Nahraný XML soubor.",
        "apihelp-import-param-rootpage": "Importovat jako podstránku k této stránce.",
index 37a3b97..0ddbd2b 100644 (file)
@@ -9,7 +9,9 @@
                        "Giftpflanze",
                        "Macofe",
                        "Se4598",
-                       "Purodha"
+                       "Purodha",
+                       "Andreasburmeister",
+                       "Anomie"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page/de|Dokumentation]]\n* [[mw:API:FAQ/de|Häufig gestellte Fragen]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailingliste]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-Ankündigungen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Fehlerberichte und Anfragen]\n</div>\n<strong>Status:</strong> Alle auf dieser Seite gezeigten Funktionen sollten funktionieren, allerdings ist die API in aktiver Entwicklung und kann sich zu jeder Zeit ändern. Abonniere die [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ MediaWiki-API-Ankündigungs-Mailingliste], um über Aktualisierungen informiert zu werden.\n\n<strong>Fehlerhafte Anfragen:</strong> Wenn fehlerhafte Anfragen an die API gesendet werden, wird ein HTTP-Header mit dem Schlüssel „MediaWiki-API-Error“ gesendet. Der Wert des Headers und der Fehlercode werden auf den gleichen Wert gesetzt. Für weitere Informationen siehe [[mw:API:Errors_and_warnings|API: Fehler und Warnungen]].",
        "apihelp-import-param-interwikipage": "Für Interwiki-Importe: zu importierende Seite.",
        "apihelp-import-param-fullhistory": "Für Interwiki-Importe: importiere die komplette Versionsgeschichte, nicht nur die aktuelle Version.",
        "apihelp-import-param-templates": "Für Interwiki-Importe: importiere auch alle eingebundenen Vorlagen.",
-       "apihelp-import-param-namespace": "Für Interwiki-Importe: importiere in diesen Namensraum.",
-       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren.",
+       "apihelp-import-param-namespace": "In diesen Namensraum importieren. Überschreibt den Parameter <kbd>$1rootpage</kbd>.",
+       "apihelp-import-param-rootpage": "Als Unterseite dieser Seite importieren. Wird ignoriert, falls der Parameter <kbd>$1namespace</kbd> angegeben ist.",
        "apihelp-import-example-import": "Importiere [[meta:Help:Parserfunctions]] mit der kompletten Versionsgeschichte in den Namensraum 100.",
        "apihelp-login-description": "Anmelden und Authentifizierungs-Cookies beziehen.\n\nFalls das Anmelden erfolgreich war, werden die benötigten Cookies im Header der HTTP-Antwort des Servers übermittelt. Bei fehlgeschlagenen Anmeldeversuchen können weitere Versuche gedrosselt werden, um automatische Passwortermittlungsattacken zu verhinden.",
        "apihelp-login-param-name": "Benutzername.",
        "apihelp-rsd-description": "Ein RSD-Schema (Really Simple Discovery) exportieren.",
        "apihelp-rsd-example-simple": "Das RSD-Schema exportieren",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "An allen beobachteten Seiten arbeiten.",
+       "apihelp-tag-param-reason": "Grund für die Änderung.",
        "apihelp-unblock-description": "Einen Benutzer freigeben.",
        "apihelp-unblock-param-reason": "Grund für die Freigabe.",
        "apihelp-unblock-example-id": "Sperrkennung #<kbd>105</kbd> freigeben.",
        "apihelp-yaml-description": "Daten im YAML-Format ausgeben.",
        "apihelp-yamlfm-description": "Daten im YAML-Format ausgeben (schöngedruckt in HTML).",
        "api-format-title": "MediaWiki-API-Ergebnis",
-       "api-format-prettyprint-header": "Dies ist die HTML-Repräsentation des $1-Formats. HTML ist zur Fehlerbehebung gut, aber unpassend für den Anwendungsgebrauch.\n\nGib den Parameter <var>Format</var> an, um das Ausgabeformat zu ändern. Um die Nicht-HTML-Repräsentation des $1-Formats anzusehen, lege <kbd>format=$2</kbd> fest.\n\nSiehe die [[mw:API|vollständige Dokumentation]] oder die [[Special:ApiHelp/main|API-Hilfe]] für weitere Informationen.",
+       "api-format-prettyprint-header": "Dies ist die HTML-Repräsentation des $1-Formats. HTML ist zur Fehlerbehebung gut, aber unpassend für den Anwendungsgebrauch.\n\nGib den Parameter <var>format</var> an, um das Ausgabeformat zu ändern. Um die Nicht-HTML-Repräsentation des $1-Formats anzusehen, lege <kbd>format=$2</kbd> fest.\n\nSiehe die [[mw:API|vollständige Dokumentation]] oder die [[Special:ApiHelp/main|API-Hilfe]] für weitere Informationen.",
        "api-orm-param-props": "Felder an die Anfrage.",
        "api-orm-param-limit": "Maximale Anzahl zurückgegebender Zeilen.",
        "api-pageset-param-titles": "Eine Liste der Titel, an denen gearbeitet werden soll.",
        "api-help-flag-writerights": "Dieses Modul erfordert Schreibrechte.",
        "api-help-flag-mustbeposted": "Dieses Modul akzeptiert nur POST-Anfragen.",
        "api-help-flag-generator": "Dieses Modul kann als Generator verwendet werden.",
+       "api-help-source": "Quelle: $1",
+       "api-help-source-unknown": "Quelle: <span class=\"apihelp-unknown\">unbekannt</span>",
+       "api-help-license": "Lizenz: [[$1|$2]]",
+       "api-help-license-noname": "Lizenz: [[$1|Siehe Link]]",
+       "api-help-license-unknown": "Lizenz: <span class=\"apihelp-unknown\">unbekannt</span>",
        "api-help-parameters": "{{PLURAL:$1|Parameter}}:",
        "api-help-param-deprecated": "Veraltet.",
        "api-help-param-required": "Dieser Parameter ist erforderlich.",
+       "api-help-datatypes-header": "Datentypen",
        "api-help-param-list": "{{PLURAL:$1|1=Ein Wert|2=Werte (mit <kbd>{{!}}</kbd> trennen)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Muss leer sein|Kann leer sein oder $2}}",
        "api-help-param-limit": "Nicht mehr als $1 erlaubt.",
index b90664e..5b3c076 100644 (file)
 
        "apihelp-query+pageprops-description": "Get various properties defined in the page content.",
        "apihelp-query+pageprops-param-prop": "Only list these props. Useful for checking whether a certain page uses a certain page prop.",
-       "apihelp-query+pageprops-example-simple": "Get properties for <kbd>Category:Foo</kbd>.",
+       "apihelp-query+pageprops-example-simple": "Get properties for the pages <kbd>Main Page</kbd> and <kbd>MediaWiki</kbd>.",
 
        "apihelp-query+pageswithprop-description": "List all pages using a given page property.",
        "apihelp-query+pageswithprop-param-propname": "Page prop for which to enumerate pages.",
index f42f549..d514f60 100644 (file)
@@ -6,7 +6,8 @@
                        "Alan",
                        "Fitoschido",
                        "JasterTDC",
-                       "Edslov"
+                       "Edslov",
+                       "Carlos Cristia"
                ]
        },
        "apihelp-main-param-action": "Qué acción se realizará.",
        "apihelp-block-param-reblock": "Si la cuenta ya está bloqueada, sobrescribir el bloqueo existente.",
        "apihelp-block-param-watchuser": "Vigilar las páginas de usuario y de discusión del usuario o de la dirección IP.",
        "apihelp-compare-param-fromtitle": "Primer título para comparar",
+       "apihelp-compare-param-fromrev": "Primera revisión para comparar.",
+       "apihelp-compare-param-totitle": "Segundo título para comparar.",
+       "apihelp-compare-param-toid": "Segunda página de IDENTIFICACIÓN para comparar.",
+       "apihelp-compare-param-torev": "Segunda revisión para comparar.",
        "apihelp-createaccount-description": "Crear una nueva cuenta de usuario.",
        "apihelp-createaccount-param-name": "Nombre de usuario.",
        "apihelp-createaccount-param-email": "Dirección de correo electrónico del usuario (opcional).",
@@ -64,6 +69,7 @@
        "apihelp-feedrecentchanges-param-feedformat": "El formato del canal.",
        "apihelp-feedrecentchanges-param-invert": "Todos los espacios de nombres menos el que está seleccionado.",
        "apihelp-feedrecentchanges-param-associated": "Incluir el espacio de nombres asociado (discusión o principal).",
+       "apihelp-feedrecentchanges-param-days": "Días a los que limitar los resultados.",
        "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados que devolver.",
        "apihelp-feedrecentchanges-param-from": "Mostrar los cambios realizados a partir de entonces.",
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar cambios menores.",
index 64c7146..da3d53d 100644 (file)
@@ -86,6 +86,7 @@
        "apihelp-edit-param-sectiontitle": "Le titre pour une nouvelle section.",
        "apihelp-edit-param-text": "Contenu de la page.",
        "apihelp-edit-param-summary": "Modifier le résumé. Également le titre de la section quand $1section=new et $1sectiontitle n’est pas défini.",
+       "apihelp-edit-param-tags": "Modifier les balises à appliquer à la révision.",
        "apihelp-edit-param-minor": "Modification mineure.",
        "apihelp-edit-param-notminor": "Modification non mineure.",
        "apihelp-edit-param-bot": "Marquer cette modification comme robot.",
        "apihelp-import-param-interwikipage": "Pour les importations interwiki : page à importer.",
        "apihelp-import-param-fullhistory": "Pour les importations interwiki : importer tout l’historique, et pas seulement la version courante.",
        "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
-       "apihelp-import-param-namespace": "Pour les importations interwiki : importer vers cet espace de noms.",
-       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page.",
+       "apihelp-import-param-namespace": "Importer vers cet espace de noms. Écrase le paramètre <kbd>$1rootpage</kbd>.",
+       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Ignoré si le paramètre <kbd>$1namespace</kbd> est fourni.",
        "apihelp-import-example-import": "Importer [[meta:Help:Parserfunctions]] vers l’espace de noms 100 avec tout l’historique.",
        "apihelp-login-description": "Se connecter et obtenir les cookies d’authentification.\n\nDans le cas d’une connexion réussie, les cookies nécessaires seront inclus dans les entêtes de la réponse HTTP. Dans le cas d’une connexion en échec, les essais ultérieurs pourront être réduits afin de limiter les attaques automatisées de découverte du mot de passe.",
        "apihelp-login-param-name": "Nom d’utilisateur.",
        "apihelp-query+allfileusages-param-to": "Le titre du fichier auquel arrêter l’énumération.",
        "apihelp-query+allfileusages-param-prefix": "Rechercher tous les fichiers dont le titre commence par cette valeur.",
        "apihelp-query+allfileusages-param-unique": "Afficher uniquement les titres de fichier distincts. Impossible à utiliser avec $1prop=ids.\nQuand utilisé comme générateur, produit les pages cibles au lieu des sources.",
-       "apihelp-query+allfileusages-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page utilisatrice (impossible à utiliser avec $1unique).\n;title:Ajoute le titre du fichier.",
+       "apihelp-query+allfileusages-param-prop": "Quelles informations inclure :\n;ids:Ajoute les IDs des pages utilisatrices (impossible à utiliser avec $1unique).\n;title:Ajoute le titre du fichier.",
        "apihelp-query+allfileusages-param-limit": "Combien d’éléments renvoyer au total.",
        "apihelp-query+allfileusages-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+allfileusages-example-B": "Lister les titres de fichier, y compris les manquants, avec les IDs de page d’où ils proviennent, en commençant à <kbd>B</kbd>.",
        "apihelp-query+pagepropnames-example-simple": "Obtenir les 10 premiers noms de propriété.",
        "apihelp-query+pageprops-description": "Obtenir diverses propriétés définies dans le contenu de la page.",
        "apihelp-query+pageprops-param-prop": "Lister uniquement ces propriétés. Utile pour vérifier si une certaine page utilise une certaine propriété de page.",
-       "apihelp-query+pageprops-example-simple": "Obtenir les propriétés de <kbd>Category:Foo</kbd>.",
+       "apihelp-query+pageprops-example-simple": "Obtenir les propriétés des pages <kbd>Accueil</kbd> et <kbd>MédiaWiki</kbd>.",
        "apihelp-query+pageswithprop-description": "Lister toutes les pages utilisant une propriété de page donnée.",
        "apihelp-query+pageswithprop-param-propname": "Propriété de page pour laquelle énumérer les pages.",
        "apihelp-query+pageswithprop-param-prop": "Quelles informations inclure :\n;ids:Ajoute l’ID de la page.\n;title:Ajoute le titre et l’ID de l’espace de noms de la page.\n;value:Ajoute la valeur de la propriété de page.",
        "apihelp-setnotificationtimestamp-example-page": "Réinitialiser l’état de notification pour la <kbd>Page principale<kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour <kbd>Page principale</kbd> afin que toutes les modifications depuis le 1 janvier 2012 soient non vues",
        "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms <kbd>{{ns:user}}</kbd>.",
+       "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
        "apihelp-tag-param-reason": "Motif de la modification.",
        "apihelp-tokens-description": "Obtenir les jetons pour les actions modifiant les données.\n\nCe module est obsolète, remplacé par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-param-type": "Types de jeton à demander.",
index 16c23c8..992c54d 100644 (file)
        "apihelp-import-param-interwikipage": "Para importacións interwiki: páxina a importar.",
        "apihelp-import-param-fullhistory": "Para importacións interwiki: importar o historial completo, non só a versión actual.",
        "apihelp-import-param-templates": "Para importacións interwiki: importar tódolos modelos incluídos.",
-       "apihelp-import-param-namespace": "Para importacións interwiki: importar a este espazo de nomes.",
-       "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina.",
+       "apihelp-import-param-namespace": "Importar a este espazo de nomes. Ignora o parámetro <kbd>$1rootpage</kbd>.",
+       "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina. Ignorado se se proporciona o parámetro <kbd>$1namespace</kbd>.",
        "apihelp-import-example-import": "Importar [[meta:Help:Parserfunctions]] ó espazo de nomes 100 con todo o historial.",
        "apihelp-login-description": "No caso dunha conexión correcta, as cookies necesarias incluiranse nas cabeceiras HTTP de resposta. No caso dunha conexión fallida, os intentos posteriores poden ser reducidos para limitar ataques automaticos de roubo de contrasinais.",
        "apihelp-login-param-name": "Nome de usuario.",
        "apihelp-query+allfileusages-param-to": "Título do ficheiro no que rematar de enumerar.",
        "apihelp-query+allfileusages-param-prefix": "Buscar tódolos títulos de ficheiro que comezan con este valor.",
        "apihelp-query+allfileusages-param-unique": "Mostrar só nomes de ficheiro distintos. Non pode usarse con $1prop=ids.\nCando se usa como xenerador, produce páxinas obxectivo no canto de páxinas fonte.",
-       "apihelp-query+allfileusages-param-prop": "Que partes de información incluír:\n;ids:Engade o ID de páxina usada (non pode usarse con $1unique).\n;title:Engade o nome do ficheiro.",
+       "apihelp-query+allfileusages-param-prop": "Que partes de información incluír:\n;ids:Engade os IDs das páxinas usadas (non pode usarse con $1unique).\n;title:Engade o nome do ficheiro.",
        "apihelp-query+allfileusages-param-limit": "Número total de obxectos a devolver.",
        "apihelp-query+allfileusages-param-dir": "Dirección na cal listar.",
        "apihelp-query+allfileusages-example-B": "Lista títulos de ficheiro, incluíndo os   eliminados, cos IDs de páxina dos que proveñen, comezando en <kbd>B</kbd>.",
        "apihelp-query+blocks-param-users": "Lista de usuarios a buscar (opcional).",
        "apihelp-query+blocks-param-ip": "Obter todos os bloques aplicables a esta IPs ou a este rango CIDR, incluíndo bloques de rangos.\nNon pode usarse xunto con <var>$3users</var>. Os rangos CIDR maiores que IPv4/$1 ou IPv6/$2 non se aceptan.",
        "apihelp-query+blocks-param-limit": "Número máximo de bloques a listar.",
+       "apihelp-query+blocks-param-prop": "Que propiedades obter:\n;id:Engade o identificador do bloqueo.\n;user:Engade o nome de usario do usuario bloqueado.\n;userid:Engade o identificador de usuario do usuario bloqueado.\n;by:Engade o nome de usuario do usuario que fixo o bloqueo.\n;byid:Engade o identificador do usuario que fixo o bloqueo.\n;timestamp:Engade o selo de tempo de cando se realizou o bloqueo.\n;expiry:Engade o selo de tempo de cando remata o bloqueo.\n;reason:Engade a razón dada para o bloqueo.\n;range:Engade o rango de direccións IP afectadas polo bloqueo.\n;flags:Etiqueta o bloqueo con (autoblock, anononly, etc.).",
        "apihelp-query+blocks-param-show": "Só mostrar elementos correspondentes a eses criterios.\nPor exemplo, para ver só bloques indefinidos en direccións IP, ponga <kbd>$1show=ip|!temp</kbd>.",
        "apihelp-query+blocks-example-simple": "Listar bloques.",
        "apihelp-query+blocks-example-users": "Lista de bloques de usuarios <kbd>Alice</kbd> e <kbd>Bob</kbd>.",
        "apihelp-query+deletedrevs-param-excludeuser": "Non listar revisións deste usuario.",
        "apihelp-query+deletedrevs-param-namespace": "Só listar páxinas neste espazo de nomes.",
        "apihelp-query+deletedrevs-param-limit": "Máximo número de revisións a listar.",
+       "apihelp-query+deletedrevs-param-prop": "Que propiedades devolver:\n;revid:Engade o identificador de modificación da modificación borrada.\n;parentid:Engade o identificador de modificación da versión anterior da páxina.\n;user:Engade o usuario que fixo esa modificación.\n;userid:Engade o identificador de usuario que fixo esa modificación.\n;comment:Engade o comentario da modificación.\n;parsedcomment:Engade o comentario analizado da modificación.\n;minor:Indica se a modificación é menor.\n;len:Engade a lonxitude (bytes) da modificación.\n;sha1:Engade o SHA-1 (base 16) da modificación.\n;content:Engade o contido da modificación.\n;token:<span class=\"apihelp-deprecated\">Obsoleto.</span> Devolve o identificador da modificación.\n;tags:Etiquetas da modificación.",
        "apihelp-query+deletedrevs-example-mode1": "Listar as últimas revisións borradas das páxinas <kbd>Main Page</kbd> e <kbd>Talk:Main Page</kbd>, con contido (modo 1).",
        "apihelp-query+deletedrevs-example-mode2": "Listar as últimas 50 contribucións borradas de <kbd>Bob</kbd> (modo 2).",
        "apihelp-query+deletedrevs-example-mode3-main": "Listar as primeiras 50 revisións borradas no espazo de nomes principal (modo 3)",
        "apihelp-query+linkshere-example-simple": "Obter unha lista que ligan á [[Main Page]]",
        "apihelp-query+linkshere-example-generator": "Obter a información das páxinas que ligan á [[Main Page]].",
        "apihelp-query+logevents-description": "Obter os eventos dos rexistros.",
+       "apihelp-query+logevents-param-prop": "Que propiedades obter:\n;ids:Engade o identificador do evento.\n;title:Engade o título da páxina para o evento.\n;type:Engade o tipo de evento.\n;user:Engade o usuario responsable do evento.\n;userid:Engade o identificador do usuario responsable do evento.\n;timestamp:Engade o selo de tempo do evento.\n;comment:Engade o comentario do evento.\n;parsedcomment:Engade o comentario analizado do evento.\n;details:Lista detalles adicionais do evento.\n;tags:Lista as etiquetas do evento.",
        "apihelp-query+logevents-param-type": "Filtrar as entradas do rexistro para mostrar só as deste tipo.",
        "apihelp-query+logevents-param-action": "Filtrar accións no rexistro para mostrar só esta acción. Ignora <var>$1type</var>. Accións comodín como  <kbd>action/*</kbd> permiten especificar calquera cadea para o asterisco.",
        "apihelp-query+logevents-param-start": "Selo de tempo no que comezar a enumeración.",
        "apihelp-query+pagepropnames-example-simple": "Obter os dez primeiros nomes de propiedade.",
        "apihelp-query+pageprops-description": "Obter varias propiedades definidas no contido da páxina.",
        "apihelp-query+pageprops-param-prop": "Listar só esas propiedades. Útil para verificar se unha páxina concreta usa unha propiedade de páxina determinada.",
-       "apihelp-query+pageprops-example-simple": "Obter as propiedades para <kbd>Category:Foo</kbd>.",
+       "apihelp-query+pageprops-example-simple": "Obter as propiedades para as páxinas <kbd>Main Page</kbd> e <kbd>MediaWiki</kbd>",
        "apihelp-query+pageswithprop-description": "Mostrar a lista de páxinas que empregan unha propiedade determinada.",
        "apihelp-query+pageswithprop-param-propname": "Propiedade de páxina pola que enumerar as páxinas.",
        "apihelp-query+pageswithprop-param-prop": "Que información incluír:\n;ids:Engade o ID da páxina.\n;title:Engade o título e o ID do espazo de nomes da páxina.\n;value:Engade o valor da propiedade da páxina.",
        "apihelp-query+querypage-param-page": "Nome da páxina especial. Teña en conta que diferencia entre maiúsculas e minúsculas.",
        "apihelp-query+querypage-param-limit": "Número de resultados a visualizar.",
        "apihelp-query+querypage-example-ancientpages": "Resultados devoltos de [[Special:Ancientpages]].",
+       "apihelp-query+random-description": "Obter un conxunto de páxinas aleatorias.\n\nAs páxinas están listadas nunha secuencia fixa, só o punto de comezo é aleatorio. Isto significa que se, por exemplo, a <samp>Main Page</samp> é a primeira páxina aleatoria da lista, a <samp>Lista de monos ficticios</samp> será <em>sempre</em> a segunda, <samp>Lista de xente en selos de Vanuatu</samp> será a terceira, etc.\n\nSe o númeor de páxinas do espazo de nomes é menor que <var>$1limit</var>, devolveranse menos páxinas. Non se devolverá dúas veces a mesma páxina.",
        "apihelp-query+random-param-namespace": "Devolver páxinas só neste espazo de nomes.",
        "apihelp-query+random-param-limit": "Limitar cantas páxinas aleatorias se van devolver.",
        "apihelp-query+random-param-redirect": "Cargar unha redirección aleatoria no canto dunha páxina aleatoria.",
        "apihelp-query+revisions-example-first5-after": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> feitas despois de 2006-05-01.",
        "apihelp-query+revisions-example-first5-not-localhost": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> que non foron feitas polo usuario anónimo <kbd>127.0.0.1</kbd>.",
        "apihelp-query+revisions-example-first5-user": "Mostrar as cinco primeiras revisión da <kbd>Páxina Principal</kbd> feitas polo usuario <kbd>MediaWiki default</kbd>.",
+       "apihelp-query+revisions+base-param-prop": "Que propiedades mostrar para cada modificación:\n;ids:O identificador da modificación.\n;flags:Etiquetas de modificación(menor).\n;timestamp:Selo de tempo da modificación.\n;user:Usuario que fixo a modificación.\n;userid:Identificador de usuario que fixo a modificación.\n;size:Lonxitude (bytes) da modificación.\n;sha1:SHA-1 (base 16) da modificación.\n;contentmodel:Identificador do modelo de contido da modificación.\n;comment:Comentario do usuario que fixo a modificación.\n;parsedcomment:Comentario analizado do usuario que fixo a modificación.\n;content:Texto da modificación.\n;tags:Etiquetas da modificación.",
        "apihelp-query+revisions+base-param-limit": "Limitar cantas revisións se van devolver.",
        "apihelp-query+revisions+base-param-expandtemplates": "Expandir os modelos no contido da revisión (require $1prop=content).",
        "apihelp-query+revisions+base-param-generatexml": "Xenerar a árbore de análise XML para o contido da revisión (require $1prop=content).",
        "apihelp-query+stashimageinfo-example-params": "Devolve as miniaturas de dous ficheiros almacenados.",
        "apihelp-query+tags-description": "Lista de marcas de cambios.",
        "apihelp-query+tags-param-limit": "Máximo número de etiquetas a listar.",
+       "apihelp-query+tags-param-prop": "Que propiedades recuperar:\n;name:Engade o nome da etiqueta.\n;displayname:Engade a mensaxe do sistema para a etiqueta.\n;description:Engade a descrición da etiqueta.\n;hitcount:Engade o número de modificacións e de entradas do rexistro que teñen esta etiqueta.\n;defined:Indica se a etiqueta está definida.\n;source:Obtén as fontes da etiqueta, que poden incluír <samp>extension</samp> para etiquetas definidas en extensión e <samp>manual</samp> para etiquetas que poden ser aplicadas manualmente polos usuarios.\n;active:Se a etiqueta aínda está a ser usada.",
        "apihelp-query+tags-example-simple": "Listar as marcas dispoñibles",
        "apihelp-query+templates-description": "Devolve todas as páxinas incluídas na páxina indicada.",
        "apihelp-query+templates-param-namespace": "Mostrar modelos só neste espazo de nomes.",
index e165ceb..727ac32 100644 (file)
        "apihelp-block-param-anononly": "Bloß de nahmelohse Metmaaacher spärre, alsu donn et nahmelohse Beärbeide vun dä <i lang=\"en\" xml:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß uß verhendere.",
        "apihelp-block-param-nocreate": "Et Neu-Aanmelde verbeede",
        "apihelp-block-param-autoblock": "Dun automattesch de läzde <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräß schpärre, di dä Metmaacher jehatt hät, un och all di <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräße, vun wo dä versöhk, jet ze ändere.",
+       "apihelp-block-param-noemail": "Sorresch derför, dat dä Metmaacher \n<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i> övver et Wiki verscheck. Bruch et Rääsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">blockemail</code>“.",
+       "apihelp-block-param-hidename": "Donn däm Metmaacher singe Nahme em Logbohch vum Metmaacher Schpärre verschteische. Bruch et Rääsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hideuser</code>“.",
+       "apihelp-block-param-allowusertalk": "Lohß dä Metmaacher sing eije Klaafsigg verändere. Dat hängk aan „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>“.",
        "apihelp-block-param-reblock": "Wann dä Metmaacher als jeschpächd es, donn dat övverschrihve.",
        "apihelp-block-param-watchuser": "Donn de Metmaachersigg un de Klaafsigg dohzoh op mig Oppaßleß säze.",
        "apihelp-block-example-ip-simple": "Donn de <i lang=\"en\" xmL:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß <kbd>192.0.2.5</kbd> för drei ääsch schpärre mem Jrond: <kbd>Eestschlaach</kbd>.",
+       "apihelp-checktoken-param-type": "De Zoot Makehrong zom Pröhfe.",
        "apihelp-checktoken-param-token": "De Makehrong zom Pröhve.",
+       "apihelp-checktoken-param-maxtokenage": "Et jrühßte zojelohße Allder fun dä Makehrong en Sekonde.",
+       "apihelp-checktoken-example-simple": "Pröhf de Jöltechkeit vun dä Makehrong „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">csrf</kbd>“.",
+       "apihelp-clearhasmsg-description": "Nemmp de Makehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
+       "apihelp-clearhasmsg-example-1": "Nemm de Makehrong „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">hasmsg</code>“ fott vum aktoälle Metmaacher.",
        "apihelp-compare-description": "Donn de Ongerscheide zwesche zwai Sigge beschtemme.\n\nDo moß derför jeweils en Väsjohn, en Övverschreff för di Sigg, odder ener Sigg iehr Kännong aanjävve, för de beide Sigge.",
        "apihelp-compare-param-fromtitle": "Der Tettel vun dä eezte Sigg zom verjlihsche.",
        "apihelp-compare-param-fromid": "De Kännong vun dä eezte Sigg zom verjlihsche.",
@@ -43,6 +51,9 @@
        "apihelp-createaccount-example-pass": "Lääsch dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">testuser</kbd> aan, mem Paßwood <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">test123</kbd>.",
        "apihelp-createaccount-example-mail": "Lääsch dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">testmailuser</kbd> aan med emem zohfällesch ußjewörfelte Paßwoot un schegg_em dat övver de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">e-mail</i>.",
        "apihelp-delete-description": "Schmieß en Sigg fott.",
+       "apihelp-delete-param-title": "De Övverschreff vun dä Sigg zom fottschmiiße. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</var>“ bruche.",
+       "apihelp-delete-param-pageid": "De Kännong vun dä Sigg zom fottschmiiße. Kam_mer nit zersamme met „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1title</var>“ bruche.",
+       "apihelp-delete-param-reason": "Der Jrond för et Fottschmiiße. Wann dä nit aanjejovve es, weed ene automattesch usjräschnete Jrond jenumme.",
        "apihelp-delete-param-watch": "Donn di Sigg en däm aktoälle Metmaacher sing Oppaßleß opnämme.",
        "apihelp-delete-param-unwatch": "Schmihß di Sigg us däm aktoälle Metmaacher singe Oppaßless erus.",
        "apihelp-delete-param-oldimage": "Der Nahme vom ahle Beld zom fottschmiiße, wi hä vun [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]] kütt.",
@@ -83,6 +94,7 @@
        "apihelp-expandtemplates-description": "Deiht alle Schablohne en Wikkitäx ömsäze.",
        "apihelp-expandtemplates-param-title": "De Övverschreff vun dä Sigg.",
        "apihelp-expandtemplates-param-text": "Dä Wikitäx zom ömwandelle.",
+       "apihelp-expandtemplates-param-revid": "De Kännong vun dä Väsjohn, för \n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\"><nowiki>{{REVISIONID}}</nowiki></code>“ un verwandte Wääte.",
        "apihelp-expandtemplates-param-includecomments": "Ov Aanmärkonge em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>-Fommaht med ußjejovve wähde sulle.",
        "apihelp-expandtemplates-param-generatexml": "Donn ene Boum vum <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Paaser opboue. Es dorsch „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=parsetree</code>“ ässäz.",
        "apihelp-feedcontributions-description": "Jidd ene Kannahl met de Beidräsch vun enem Metmaacher uß.",
        "apihelp-filerevert-description": "Säz en Dattei obb en ahle Väsohn zerök.",
        "apihelp-filerevert-param-filename": "De Zih_Dattei, der ohne „{{ne:file}}“ derför.",
        "apihelp-filerevert-param-comment": "Aanmärkong huh lahde.",
+       "apihelp-filerevert-param-archivename": "Dä nahme vum Aschihv vun dä Väsjohn för wider drop zerök ze jon.",
        "apihelp-filerevert-example-revert": "Donn <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Wiki.png</kbd> op di Väsohn vum <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">2011-03-05T15:27:40Z</kbd> zerök säze.",
        "apihelp-help-description": "zeisch Hölp för de aanjejovve Moduhle.",
        "apihelp-help-param-submodules": "Donn Hölp för de Ongermoduhle vun dämm aanjejovve Moduhl enschschlehße.",
        "apihelp-import-param-interwikipage": "För et Empottehre us enem andere Wikki: De Sigg zom Empottehre.",
        "apihelp-import-param-fullhistory": "För et Empottehre us enem andere Wikki: Donn de jannze Verjangeheid empottehre, nit blohß de aktoälle Väsjohn.",
        "apihelp-import-param-templates": "För et Empottehre us enem andere Wikki: Donn all de nühdejje Schablohne met empottehre.",
-       "apihelp-import-param-namespace": "För et Empottehre us enem andere Wikki: Donn ene heh dat Appachtemang empottehre.",
-       "apihelp-import-param-rootpage": "Als Ongersiff vun heh dä Sigg empottehre-",
+       "apihelp-import-param-namespace": "En heh dat Appachtemang emmpotehre. Övverjangk der Parramehter „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1rootpage</kbd>“ derbei.",
+       "apihelp-import-param-rootpage": "Als Ongersigg vun heh dä Sigg empottehre. Weed ävver övverjange, wann dä der Parramehter „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1namespace</kbd>“ derbei aanjejovve es.",
        "apihelp-import-example-import": "Donn di Sigg „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[meta:Help:Parserfunctions]]</code>“ en et Appachtemang 100 empottehre, met alle älldere Väsjohne.",
        "apihelp-login-param-name": "Metmaacher_Nahme.",
        "apihelp-login-param-password": "Paßwoot.",
        "apihelp-login-param-domain": "De Domaijn (kann fott bliehve)",
        "apihelp-login-example-login": "Enlogge.",
+       "apihelp-logout-description": "Donn ußlogge un maach de Dahte övver de Sezong fott.",
        "apihelp-logout-example-logout": "Donn dä aktoälle Metmaacher ußlogge.",
+       "apihelp-managetags-param-reason": "Ene Jrond för et Aanlähje, Fottschmiiße, Aanschallde un Ußschallde vun dä Makehrong, dä mer ävver nit aanjävve moß.",
        "apihelp-managetags-param-ignorewarnings": "Ov alle Warnonge övverjange wöhde sull, die bei dämm Opdracht opkumme.",
        "apihelp-managetags-example-create": "Donn en Makkehrong aanlähje mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">spam</kbd>“ mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">For use in edit patrolling</kbd>“.",
        "apihelp-managetags-example-delete": "Schmiiß de Makkehrong mem Nahme „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">vandlaism</kbd>“ fott mem Jrond „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Misspelt</kbd>“.",
        "apihelp-opensearch-param-search": "Noh wat söhke?",
        "apihelp-opensearch-param-limit": "De hühßte Aanzahl vun Äjeebnesse för zeröck ze jävve",
        "apihelp-opensearch-param-namespace": "En wällschem Appachtemang söhke.",
+       "apihelp-opensearch-param-suggest": "Don nix wann „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var>“ op „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">false</code>“ jesaz es.",
        "apihelp-opensearch-param-redirects": "Wi met Ömleidonge ömjonn?\n;return:Jivv de Ömleidonge sällver uß.\n;resolve:Jiff de Sigg uß, woh de Ömleidong hen jeiht. Dat künnt winnijer wi „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1limit</code>“ Sigge ußjävve.\nTradizonäll es dä Schtandatt „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">return</code>“ för „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1format=json</code>“ un „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">resolve</code>“ för alle anndere.",
        "apihelp-opensearch-param-format": "Et Fommaht zom Ußjävve.",
        "apihelp-opensearch-example-te": "Fengk Sigge, di met <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Te</kbd> aanfange.",
        "apihelp-query+deletedrevisions-param-limit": "De hühßde Aanzahl Väsjohne för opzeleßte.",
        "apihelp-query+deletedrevisions-param-prop": "Wat för en Eijeschaffte holle:\n;revid:Deiht de Kännong vun de fottjeschmeße Väsjohn derbei.\n;parentid:Deiht de Kännong vun de vörrejje Väsjohn vun dä Sigg derbei.\n;user:Deiht dä Metmaacher derbei, dä di Väsjohn jemaat hät.\n;userid:Deiht de Kännong vun däm Metmaacher derbei, dä di Väsjohn jemaat hät.\n;comment:Deiht et Väld „{{int:summary}}“ vun dä Väsjohn derbei.\n;parsedcomment:Deiht et jepaaste Väld „{{int:summary}}“ vun dä Väsjohn derbei.\n;minor:Makehronge, wann di Väsjohn en klein Mini_Änderong es.\n;len:Deiht de Läng (Aanzahl <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Bytes</i>) vun dä Väsjohn derbei.\n;sha1:Deiht dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"secure hash algorithm\">SHA-1 (base 16)</i> vun dä Väsjohn derbei.\n;content:Deiht der Ennhalld vun dä Väsjohn derbei.\n;tags:Makehronge för di Väsjohn.",
        "apihelp-query+deletedrevisions-example-revids": "Donn de Aanjahbe för de fottjeschmeße Väsjohn <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">123456</kbd> holle.",
+       "apihelp-query+deletedrevs-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
+       "apihelp-query+deletedrevs-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
+       "apihelp-query+deletedrevs-param-from": "Bejenn de Leß bei heh dä Överschreff.",
+       "apihelp-query+deletedrevs-param-to": "Hühr de Leß bei heh dä Överschreff oop.",
+       "apihelp-query+deletedrevs-param-prefix": "Söhk noh Sigge, woh de Övverschrevv esu aanfängk.",
+       "apihelp-query+deletedrevs-param-unique": "Donn blohß ein Väsjohn för jehde Sigg opleßte.",
+       "apihelp-query+deletedrevs-param-tag": "Donn blohß Väsjohne met heh dä Makehrong opleßte.",
+       "apihelp-query+deletedrevs-param-user": "Donn blohß Väsjohne vun heh däm Metmaacher opleßte.",
+       "apihelp-query+deletedrevs-param-excludeuser": "Donn kein Väsjohne vun heh däm Metmaacher opleßte.",
+       "apihelp-query+deletedrevs-param-namespace": "Donn blohß Sigge en heh däm Appachtemang opleßte.",
+       "apihelp-query+deletedrevs-param-limit": "De hühßde Aanzahl Väsjohne för opzeleßte.",
+       "apihelp-query+disabled-description": "Dat Moduhl för Frohre ze schtälle wohd affjeschalldt.",
+       "apihelp-query+duplicatefiles-description": "Donn alle Datteije opleßte, di desällve Prööfsomm han wi de aanjejovve Datteije.",
+       "apihelp-query+duplicatefiles-param-limit": "Wi vell datteije ußjävve.",
        "apihelp-query+duplicatefiles-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+duplicatefiles-param-localonly": "Lohr blohß noh Datteije heh em Wikki.",
+       "apihelp-query+duplicatefiles-example-simple": "Lohr noh Datteije, di dubbelte vun dä Dattei „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">[[:File:Albert Einstein Head.jpg]]</code>“ sin.",
+       "apihelp-query+duplicatefiles-example-generated": "Lohr noh Dubbelte vun alle Datteije.",
+       "apihelp-query+embeddedin-description": "Fengk alle Sigge, di di aanjejovve Dattei enneschlehße.",
        "apihelp-query+embeddedin-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+filearchive-description": "Donn alle fottjeschmeße Datteije der Reih noh opzälle.",
+       "apihelp-query+filearchive-param-from": "De Övverschreff vun däm Beld, woh de Leß medd aanfange sull.",
+       "apihelp-query+filearchive-param-to": "De Övverschreff vun däm Beld, woh de Leß medd ophühre sull.",
+       "apihelp-query+filearchive-param-prefix": "Söhk noh alle Övverschreffte vun Bellder, di met heh dämm Wäät bejenne.",
+       "apihelp-query+filearchive-param-limit": "Wi vell Bellder ensjesamp zeröckjävve.",
        "apihelp-query+filearchive-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+filearchive-example-simple": "Zeijsch en leß met alle fottjeschmeße Datteije.",
        "apihelp-query+images-param-dir": "En wälsche Reijefollsch opleßte.",
        "apihelp-query+imageusage-param-namespace": "Dat Appachtemang zom opzälle.",
        "apihelp-query+imageusage-param-dir": "En wälsche Reijefollsch opleßte.",
        "apihelp-query+links-param-dir": "En wälsche Reihjefollsch opleßte.",
        "apihelp-query+pagepropnames-param-limit": "De jrüüßte Zahl Nahme för ußzejävve.",
        "apihelp-query+pagepropnames-example-simple": "Holl de eezde zehn Nahme vun Eijeschaffte.",
+       "apihelp-query+pageprops-example-simple": "Holl de Eijeschaffte för di Sigge „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Main Page</kbd>“ un „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MediaWiki</kbd>“.",
        "apihelp-query+pageswithprop-param-limit": "De jrüüßte Zahl Sigge för ußzejävve.",
        "apihelp-query+pageswithprop-param-dir": "En wälsche Reihjefollsch opleßte.",
        "apihelp-query+prefixsearch-param-namespace": "En wällschem Appachtemang söhke.",
index a40e4c1..95c7e86 100644 (file)
@@ -4,6 +4,11 @@
                        "George Animal"
                ]
        },
+       "apihelp-block-param-reason": "Sedemê bo astengkirinê.",
+       "apihelp-createaccount-param-name": "Navê bikarhêner.",
        "apihelp-delete-description": "Rûpelekê jê bibe.",
-       "apihelp-expandtemplates-param-title": "Sernavê rûpelê."
+       "apihelp-edit-param-text": "Naveroka rûpelê.",
+       "apihelp-edit-example-edit": "Rûpelekê biguherîne.",
+       "apihelp-expandtemplates-param-title": "Sernavê rûpelê.",
+       "apihelp-tag-param-reason": "Sedemê bo guherandinê."
 }
index 449031f..9c953fb 100644 (file)
@@ -4,13 +4,13 @@
                        "Bjankuloski06"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page Документација]\n* [https://www.mediawiki.org/wiki/API:FAQ ЧПП]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Поштенски список]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Соопштенија за Извршникот]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Грешки и барања]\n</div>\n<strong>Статус:</strong> Сите ставки на страницава би требало да работат, но Извршникот сепак е во активна разработка, што значи дека може да се смени во секое време. Објавите за измени можете да ги дознавате ако се пријавите на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ поштенскиот список „the mediawiki-api-announce“].\n\n<strong>Погрешни барања:</strong> Кога Извршникот ќе добие погрешни барања, ќе се испрати HTTP-заглавие со клучот „MediaWiki-API-Error“ и потоа на вредностите на заглавието и шифрата на грешката што ќе се појават ќе им биде зададена истата вредност. ПОвеќе информации ќе најдете на https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Документација]]\n*  [[mw:API:FAQ|ЧПП]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Поштенски список]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Соопштенија за Извршникот]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Грешки и барања]\n</div>\n<strong>Статус:</strong> Сите ставки на страницава би требало да работат, но Извршникот сепак е во активна разработка, што значи дека може да се смени во секое време. Објавите за измени можете да ги дознавате ако се пријавите на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ поштенскиот список „the mediawiki-api-announce“].\n\n<strong>Погрешни барања:</strong> Кога Извршникот ќе добие погрешни барања, ќе се испрати HTTP-заглавие со клучот „MediaWiki-API-Error“ и потоа на вредностите на заглавието и шифрата на грешката што ќе се појават ќе им биде зададена истата вредност. ПОвеќе информации ќе најдете на  [[mw:API:Errors_and_warnings|Извршник: Грешки и предупредувања]].",
        "apihelp-main-param-action": "Кое дејство да се изврши.",
        "apihelp-main-param-format": "Формат на изводот.",
-       "apihelp-main-param-maxlag": "Максималниот заостаток може да се користи кога МедијаВики е воспоставен на грозд умножен од базата. За да спречите дополнителни заостатоци од дејства, овој параметар му наложува на клиентот да почека додека заостатокот не се намали под укажаната вредност. Во случај на преголем заостаток, системт ја дава грешката со код „maxlag“ со порака од обликот „Го чекам $host: има заостаток од $lag секунди“.<br />Погл. https://www.mediawiki.org/wiki/Manual:Maxlag_parameter за повеќе информации.",
+       "apihelp-main-param-maxlag": "Максималниот заостаток може да се користи кога МедијаВики е воспоставен на грозд умножен од базата. За да спречите дополнителни заостатоци од дејства, овој параметар му наложува на клиентот да почека додека заостатокот не се намали под укажаната вредност. Во случај на преголем заостаток, системт ја дава грешката со код <samp>maxlag</samp> со порака од обликот <samp>Го чекам $host: има заостаток од $lag секунди</samp>.<br />Погл. [[mw:Manual:Maxlag_parameter|Прирачник: Параметар Maxlag]]",
        "apihelp-main-param-smaxage": "Задајте му олку секунди на заглавитето <code>s-maxage</code>. Грешките никогаш не се чуваат во меѓускладот.",
        "apihelp-main-param-maxage": "Задајте му олку секунди на заглавитето <code>max-age</code>. Грешките никогаш не се чуваат во меѓускладот.",
-       "apihelp-main-param-assert": "Провери дали корисникот е најавен ако е зададено „user“ или дали го има корисничкото право на бот, ако е зададено „bot“.",
+       "apihelp-main-param-assert": "Провери дали корисникот е најавен ако е зададено <kbd>user</kbd> или дали го има корисничкото право на бот, ако е зададено <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Тука внесената вредност ќе биде вклучена во извештајот. Може да се користи за разликување на барањата.",
        "apihelp-main-param-servedby": "Вклучи го домаќинското име што го услужило барањето во резултатите.",
        "apihelp-main-param-curtimestamp": "Бклучи тековно време и време и датум во резултатот.",
index 924f38b..2c45c7d 100644 (file)
        "apihelp-query+allimages-example-recent": "显示一个最近上传文件的列表,类似[[Special:NewFiles]]。",
        "apihelp-query+allimages-example-mimetypes": "显示带MIME类型<kbd>image/png</kbd>或<kbd>image/gif</kbd>的文件列表",
        "apihelp-query+allimages-example-generator": "显示有关4个以<kbd>T</kbd>开头的文件的信息。",
+       "apihelp-query+alllinks-param-from": "要列举的起始标题链接。",
+       "apihelp-query+alllinks-param-to": "要列举的最终标题链接。",
        "apihelp-query+alllinks-param-namespace": "要列举的名字空间。",
        "apihelp-query+alllinks-param-limit": "总共要返回多少个项目。",
        "apihelp-query+alllinks-param-dir": "列出方向。",
        "apihelp-query+allmessages-param-prefix": "返回带有该前缀的消息。",
        "apihelp-query+allmessages-example-ipb": "显示以<kbd>ipb-</kbd>开始的消息。",
        "apihelp-query+allmessages-example-de": "显示德语版的<kbd>august</kbd>和<kbd>mainpage</kbd>消息。",
+       "apihelp-query+allpages-param-from": "枚举的起始页面标题。",
+       "apihelp-query+allpages-param-to": "枚举的结束页面标题。",
        "apihelp-query+allpages-param-namespace": "要列举的名字空间。",
        "apihelp-query+allpages-param-filterredir": "要列出哪些页面。",
        "apihelp-query+allpages-param-minsize": "限于至少这么多字节的页面。",
        "apihelp-query+allpages-example-generator": "显示有关4个以字母<kbd>T</kbd>开头的页面的信息。",
        "apihelp-query+allpages-example-generator-revisions": "显示前2个以<kbd>Re</kbd>开头的非重定向页面的内容。",
        "apihelp-query+allredirects-description": "列出至一个名字空间的重定向。",
+       "apihelp-query+allredirects-param-from": "要列举的起始重定向标题。",
+       "apihelp-query+allredirects-param-to": "要列举的最终重定向标题。",
        "apihelp-query+allredirects-param-namespace": "要列举的名字空间。",
        "apihelp-query+allredirects-param-limit": "返回的总计项目数。",
        "apihelp-query+allredirects-param-dir": "罗列所采用的方向。",
        "apihelp-query+imageinfo-param-prop": "要获取的文件信息:",
        "apihelp-query+imageinfo-paramvalue-prop-timestamp": "添加时间戳至上传的版本。",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "此版本的摘要。",
+       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "解析版本上的注释。",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "添加文件的规范标题。",
+       "apihelp-query+imageinfo-paramvalue-prop-url": "为文件及其描述页面提供URL。",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "大小别名。",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "为文件加入SHA-1哈希值。",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "添加文件的MIME类型。",
        "apihelp-query+imageinfo-paramvalue-prop-mediatype": "添加文件媒体类型。",
+       "apihelp-query+imageinfo-param-limit": "每个文件返回多少文件修订。",
        "apihelp-query+imageinfo-param-start": "开始列举的时间戳。",
        "apihelp-query+imageinfo-param-end": "列举的结束时间戳。",
        "apihelp-query+imageinfo-param-urlheight": "与$1urlwidth类似。",
        "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。",
        "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
        "apihelp-query+info-paramvalue-prop-readable": "用户是否可以阅读此页面。",
+       "apihelp-query+info-paramvalue-prop-preload": "提供由EditFormPreloadText返回的文本。",
        "apihelp-query+info-param-testactions": "测试当前用户是否可以在页面上执行某种操作。",
        "apihelp-query+info-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
        "apihelp-query+info-example-simple": "获得有关页面<kbd>Main Page</kbd>的信息。",
        "apihelp-query+pagepropnames-description": "列出wiki中所有使用中的页面属性名称。",
        "apihelp-query+pagepropnames-param-limit": "返回名称的最大数量。",
        "apihelp-query+pagepropnames-example-simple": "获取前10个属性名称。",
-       "apihelp-query+pageprops-example-simple": "è\8e·å¾\97ç\94¨äº\8e<kbd>Category:Foo</kbd>的属性。",
+       "apihelp-query+pageprops-example-simple": "è\8e·å\8f\96ç\94¨äº\8e页é\9d¢<kbd>Main Page</kbd>å\92\8c<kbd>MediaWiki</kbd>的属性。",
        "apihelp-query+pageswithprop-description": "列出所有使用指定页面属性的页面。",
        "apihelp-query+pageswithprop-param-limit": "返回页面的最大数量。",
        "apihelp-query+pageswithprop-param-dir": "排序的方向。",
        "apihelp-setnotificationtimestamp-example-page": "重置用于<kbd>Main page</kbd>的通知状态。",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "设置<kbd>Main page</kbd>的通知时间戳,这样所有从2012年1月1日起的编辑都会是未复核的。",
        "apihelp-setnotificationtimestamp-example-allpages": "重置在<kbd>{{ns:user}}</kbd>名字空间中的页面的通知状态。",
+       "apihelp-tag-description": "从个别修订或日志记录中添加或移除更改标签。",
        "apihelp-tag-param-rcid": "要添加或移除标签的一个或更多的最近更改ID。",
        "apihelp-tag-param-revid": "要添加或移除标签的一个或更多的修订ID。",
        "apihelp-tag-param-logid": "要添加或移除标签的一个或更多的日志记录ID。",
        "apihelp-dump-description": "输出数据为PHP的<code>var_dump()</code>格式。",
        "apihelp-dumpfm-description": "输出数据为PHP的<code>var_dump()</code>格式(HTML优质打印效果)。",
        "apihelp-json-description": "输出数据为JSON格式。",
+       "apihelp-json-param-utf8": "如果指定,使用十六进制转义序列将大多数(但不是全部)非ASCII的字符编码为UTF-8,而不是替换它们。默认当<var>formatversion</var>不是<kbd>1</kbd>时。",
+       "apihelp-json-param-ascii": "如果指定,使用十六进制转义序列将所有非ASCII编码。默认当<var>formatversion</var>为<kbd>1</kbd>时。",
        "apihelp-json-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可以更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),可以在没有警告的情况下更改。",
        "apihelp-jsonfm-description": "输出数据为JSON格式(HTML优质打印效果)。",
        "apihelp-none-description": "不输出任何东西。",
        "api-help-param-deprecated": "不推荐使用。",
        "api-help-param-required": "这个参数是必须的。",
        "api-help-datatypes-header": "数据类型",
+       "api-help-datatypes": "一些API参数类型需要进一步解释:\n;boolean\n:布尔参数就像HTML复选框一样工作:如果指定参数,无论何值都被认为是真。如果要假值,则可完全忽略参数。\n;timestamp\n:Timestamps may be specified in several formats. ISO 8601 date and time is recommended. All times are in UTC, any included timezone is ignored.\n:* ISO 8601日期和时间,<kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd>(标点和<kbd>Z</kbd>是可选项)\n:* ISO 8601 date and time with (ignored) fractional seconds, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (dashes, colons, and <kbd>Z</kbd> are optional)\n:* MediaWiki格式,<kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Generic numeric format, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (optional timezone of <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, or <kbd>-<var>##</var></kbd> is ignored)\n:* EXIF格式,<kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 2822 format (timezone may be omitted), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* RFC 850 format (timezone may be omitted), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* C ctime format, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Seconds since 1970-01-01T00:00:00Z as a 1 to 13 digit integer",
        "api-help-param-type-limit": "类型:整数或<kbd>max</kbd>",
        "api-help-param-type-integer": "类型:{{PLURAL:$1|1=整数|2=整数列表}}",
        "api-help-param-type-boolean": "类型:布尔值([[Special:ApiHelp/main#main/datatypes|详细信息]])",
index 43f957c..cf33484 100644 (file)
@@ -382,8 +382,9 @@ class ChangeTags {
         * @return Status
         * @since 1.25
         */
-       public static function addTagsAccompanyingChangeWithChecks( array $tags,
-               $rc_id, $rev_id, $log_id, $params, User $user ) {
+       public static function addTagsAccompanyingChangeWithChecks(
+               array $tags, $rc_id, $rev_id, $log_id, $params, User $user
+       ) {
 
                // are we allowed to do this?
                $result = self::canAddTagsAccompanyingChange( $tags, $user );
@@ -393,7 +394,7 @@ class ChangeTags {
                }
 
                // do it!
-               self::addTags( $tagsToAdd, $rc_id, $rev_id, $log_id, $params );
+               self::addTags( $tags, $rc_id, $rev_id, $log_id, $params );
 
                return Status::newGood( true );
        }
index 9c2435a..f8d0879 100644 (file)
@@ -629,7 +629,7 @@ abstract class ContentHandler {
 
                // hook: get difference engine
                $differenceEngine = null;
-               if ( !wfRunHooks( 'GetDifferenceEngine',
+               if ( !Hooks::run( 'GetDifferenceEngine',
                        array( $context, $old, $new, $refreshCache, $unhide, &$differenceEngine )
                ) ) {
                        return $differenceEngine;
index 713c5cb..2ca79cd 100644 (file)
@@ -132,7 +132,7 @@ interface IContextSource {
        public function getStats();
 
        /**
-        * Get a Message object with context set
+        * Get a Message object with context set.  See wfMessage for parameters.
         *
         * @return Message
         */
diff --git a/includes/db/DBConnRef.php b/includes/db/DBConnRef.php
new file mode 100644 (file)
index 0000000..7045494
--- /dev/null
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Helper class to handle automatically marking connections as reusable (via RAII pattern)
+ * as well handling deferring the actual network connection until the handle is used
+ *
+ * @ingroup Database
+ * @since 1.22
+ */
+class DBConnRef implements IDatabase {
+       /** @var LoadBalancer */
+       private $lb;
+
+       /** @var DatabaseBase|null */
+       private $conn;
+
+       /** @var array|null */
+       private $params;
+
+       /**
+        * @param LoadBalancer $lb
+        * @param DatabaseBase|array $conn Connection or (server index, group, wiki ID) array
+        */
+       public function __construct( LoadBalancer $lb, $conn ) {
+               $this->lb = $lb;
+               if ( $conn instanceof DatabaseBase ) {
+                       $this->conn = $conn;
+               } else {
+                       $this->params = $conn;
+               }
+       }
+
+       public function __call( $name, $arguments ) {
+               if ( $this->conn === null ) {
+                       list( $db, $groups, $wiki ) = $this->params;
+                       $this->conn = $this->lb->getConnection( $db, $groups, $wiki );
+               }
+
+               return call_user_func_array( array( $this->conn, $name ), $arguments );
+       }
+
+       public function __destruct() {
+               if ( $this->conn !== null ) {
+                       $this->lb->reuseConnection( $this->conn );
+               }
+       }
+}
index 8c1ebf9..5afff91 100644 (file)
@@ -69,6 +69,8 @@ abstract class DatabaseBase implements IDatabase {
        protected $mLBInfo = array();
        protected $mDefaultBigSelects = null;
        protected $mSchemaVars = false;
+       /** @var array */
+       protected $mSessionVars = array();
 
        protected $preparedArgs;
 
@@ -813,15 +815,17 @@ abstract class DatabaseBase implements IDatabase {
                        }
                }
 
+               $this->mSessionVars = $params['variables'];
+
                /** Get the default table prefix*/
-               if ( $tablePrefix == 'get from global' ) {
+               if ( $tablePrefix === 'get from global' ) {
                        $this->mTablePrefix = $wgDBprefix;
                } else {
                        $this->mTablePrefix = $tablePrefix;
                }
 
                /** Get the database schema*/
-               if ( $schema == 'get from global' ) {
+               if ( $schema === 'get from global' ) {
                        $this->mSchema = $wgDBmwschema;
                } else {
                        $this->mSchema = $schema;
@@ -926,6 +930,7 @@ abstract class DatabaseBase implements IDatabase {
                        $p['password'] = isset( $p['password'] ) ? $p['password'] : false;
                        $p['dbname'] = isset( $p['dbname'] ) ? $p['dbname'] : false;
                        $p['flags'] = isset( $p['flags'] ) ? $p['flags'] : 0;
+                       $p['variables'] = isset( $p['variables'] ) ? $p['variables'] : array();
                        $p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : 'get from global';
                        $p['schema'] = isset( $p['schema'] ) ? $p['schema'] : $defaultSchemas[$dbType];
                        $p['foreign'] = isset( $p['foreign'] ) ? $p['foreign'] : false;
@@ -2480,7 +2485,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Quote $schema and merge it with the table name if needed
-               if ( $schema !== null ) {
+               if ( strlen( $schema ) ) {
                        if ( $format == 'quoted' && !$this->isQuotedIdentifier( $schema ) ) {
                                $schema = $this->addIdentifierQuotes( $schema );
                        }
@@ -4235,7 +4240,7 @@ abstract class DatabaseBase implements IDatabase {
        }
 
        /**
-        * Check to see if a named lock is available. This is non-blocking.
+        * Check to see if a named lock is available (non-blocking)
         *
         * @param string $lockName Name of lock to poll
         * @param string $method Name of method calling us
@@ -4249,8 +4254,7 @@ abstract class DatabaseBase implements IDatabase {
        /**
         * Acquire a named lock
         *
-        * Abstracted from Filestore::lock() so child classes can implement for
-        * their own needs.
+        * Named locks are not related to transactions
         *
         * @param string $lockName Name of lock to aquire
         * @param string $method Name of method calling us
@@ -4262,7 +4266,9 @@ abstract class DatabaseBase implements IDatabase {
        }
 
        /**
-        * Release a lock.
+        * Release a lock
+        *
+        * Named locks are not related to transactions
         *
         * @param string $lockName Name of lock to release
         * @param string $method Name of method calling us
@@ -4275,6 +4281,16 @@ abstract class DatabaseBase implements IDatabase {
                return true;
        }
 
+       /**
+        * Check to see if a named lock used by lock() use blocking queues
+        *
+        * @return bool
+        * @since 1.26
+        */
+       public function namedLocksEnqueue() {
+               return false;
+       }
+
        /**
         * Lock specific tables
         *
index aac95a8..561c811 100644 (file)
@@ -132,6 +132,15 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                if ( is_string( $wgSQLMode ) ) {
                        $set[] = 'sql_mode = ' . $this->addQuotes( $wgSQLMode );
                }
+               // Set any custom settings defined by site config
+               // (e.g. https://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html)
+               foreach ( $this->mSessionVars as $var => $val ) {
+                       // Escape strings but not numbers to avoid MySQL complaining
+                       if ( !is_int( $val ) && !is_float( $val ) ) {
+                               $val = $this->addQuotes( $val );
+                       }
+                       $set[] = $this->addIdentifierQuotes( $var ) . ' = ' . $val;
+               }
 
                if ( $set ) {
                        // Use doQuery() to avoid opening implicit transactions (DBO_TRX)
@@ -873,6 +882,10 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                return ( $row->lockstatus == 1 );
        }
 
+       public function namedLocksEnqueue() {
+               return true;
+       }
+
        /**
         * @param array $read
         * @param array $write
index ed86bab..2bad711 100644 (file)
@@ -64,16 +64,16 @@ class DatabaseSqlite extends DatabaseBase {
                $this->dbDir = isset( $p['dbDirectory'] ) ? $p['dbDirectory'] : $wgSQLiteDataDir;
 
                if ( isset( $p['dbFilePath'] ) ) {
-                       $this->mFlags = isset( $p['flags'] ) ? $p['flags'] : 0;
-                       // Standalone .sqlite file mode
+                       parent::__construct( $p );
+                       // Standalone .sqlite file mode.
+                       // Super doesn't open when $user is false, but we can work with $dbName,
+                       // which is derived from the file path in this case.
                        $this->openFile( $p['dbFilePath'] );
-                       // @FIXME: clean up base constructor so this can call super instead
-                       $this->mTrxAtomicLevels = new SplStack;
                } else {
                        $this->mDBname = $p['dbname'];
-                       // Stock wiki mode using standard file names per DB
+                       // Stock wiki mode using standard file names per DB.
                        parent::__construct( $p );
-                       // parent doesn't open when $user is false, but we can work with $dbName
+                       // Super doesn't open when $user is false, but we can work with $dbName
                        if ( $p['dbname'] && !$this->isOpen() ) {
                                if ( $this->open( $p['host'], $p['user'], $p['password'], $p['dbname'] ) ) {
                                        if ( $wgSharedDB ) {
@@ -105,8 +105,10 @@ class DatabaseSqlite extends DatabaseBase {
         */
        public static function newStandaloneInstance( $filename, array $p = array() ) {
                $p['dbFilePath'] = $filename;
+               $p['schema'] = false;
+               $p['tablePrefix'] = '';
 
-               return new self( $p );
+               return DatabaseBase::factory( 'sqlite', $p );
        }
 
        /**
index 624f46b..2ea2487 100644 (file)
@@ -845,8 +845,9 @@ class LoadBalancer {
 
        /**
         * @return int
+        * @since 1.26
         */
-       private function getWriterIndex() {
+       public function getWriterIndex() {
                return 0;
        }
 
@@ -1272,49 +1273,3 @@ class LoadBalancer {
                $this->mProcCache->clear( 'slave_lag' );
        }
 }
-
-/**
- * Helper class to handle automatically marking connections as reusable (via RAII pattern)
- * as well handling deferring the actual network connection until the handle is used
- *
- * @ingroup Database
- * @since 1.22
- */
-class DBConnRef implements IDatabase {
-       /** @var LoadBalancer */
-       private $lb;
-
-       /** @var DatabaseBase|null */
-       private $conn;
-
-       /** @var array|null */
-       private $params;
-
-       /**
-        * @param LoadBalancer $lb
-        * @param DatabaseBase|array $conn Connection or (server index, group, wiki ID) array
-        */
-       public function __construct( LoadBalancer $lb, $conn ) {
-               $this->lb = $lb;
-               if ( $conn instanceof DatabaseBase ) {
-                       $this->conn = $conn;
-               } else {
-                       $this->params = $conn;
-               }
-       }
-
-       public function __call( $name, $arguments ) {
-               if ( $this->conn === null ) {
-                       list( $db, $groups, $wiki ) = $this->params;
-                       $this->conn = $this->lb->getConnection( $db, $groups, $wiki );
-               }
-
-               return call_user_func_array( array( $this->conn, $name ), $arguments );
-       }
-
-       public function __destruct() {
-               if ( $this->conn !== null ) {
-                       $this->lb->reuseConnection( $this->conn );
-               }
-       }
-}
index 91840dd..3d853cb 100644 (file)
@@ -115,10 +115,10 @@ class LoadMonitorMySQL implements LoadMonitor {
                }
 
                # Cache key missing or expired
-               if ( $cache->add( "$memcKey:lock", 1, 10 ) ) {
+               if ( $cache->lock( $memcKey, 0, 10 ) ) {
                        # Let this process alone update the cache value
                        $unlocker = new ScopedCallback( function () use ( $cache, $memcKey ) {
-                               $cache->delete( $memcKey );
+                               $cache->unlock( $memcKey );
                        } );
                } elseif ( is_array( $times ) ) {
                        # Could not acquire lock but an old cache exists, so use it
diff --git a/includes/eventrelayer/EventRelayer.php b/includes/eventrelayer/EventRelayer.php
deleted file mode 100755 (executable)
index a3d214f..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Base class for reliable event relays
- */
-abstract class EventRelayer {
-       /**
-        * @param array $params
-        */
-       public function __construct( array $params ) {}
-
-       /**
-        * @param string $channel
-        * @param array $event Event data map
-        * @return bool Success
-        */
-       final public function notify( $channel, $event ) {
-               return $this->doNotify( $channel, array( $event ) );
-       }
-
-       /**
-        * @param string $channel
-        * @param array $events List of event data maps
-        * @return bool Success
-        */
-       final public function notifyMulti( $channel, $events ) {
-               return $this->doNotify( $channel, $events );
-       }
-
-       /**
-        * @param string $channel
-        * @param array $events List of event data maps
-        * @return bool Success
-        */
-       abstract protected function doNotify( $channel, array $events );
-}
-
-/**
- * No-op class for publishing messages into a PubSub system
- */
-class EventRelayerNull extends EventRelayer {
-       public function doNotify( $channel, array $events ) {
-               return true;
-       }
-}
diff --git a/includes/eventrelayer/EventRelayerMCRD.php b/includes/eventrelayer/EventRelayerMCRD.php
deleted file mode 100755 (executable)
index 1e8b2a4..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Relayed that uses the mcrelaypushd server
- */
-class EventRelayerMCRD extends EventRelayer {
-       /** @var MultiHttpClient */
-       protected $http;
-       /** @var string */
-       protected $baseUrl;
-
-       /**
-        * Additional params include 'mcrdConfig', which is a map of:
-        *   - url : The base URL of the service (without paths)
-        * @param array $params
-        */
-       public function __construct( array $params ) {
-               parent::__construct( $params );
-
-               $this->baseUrl = $params['mcrdConfig']['url'];
-
-               $httpConfig = isset( $params['httpConfig'] ) ? $params['httpConfig'] : array();
-               if ( !isset( $httpConfig['connTimeout'] ) ) {
-                       $httpConfig['connTimeout'] = 1;
-               }
-               if ( !isset( $httpConfig['reqTimeout'] ) ) {
-                       $httpConfig['reqTimeout'] = .25;
-               }
-
-               $this->http = new MultiHttpClient( $httpConfig );
-       }
-
-       protected function doNotify( $channel, array $events ) {
-               if ( !count( $events ) ) {
-                       return true;
-               }
-
-               $response = $this->http->run( array(
-                       'url'     => "{$this->baseUrl}/relayer/api/v1.0/" . rawurlencode( $channel ),
-                       'method'  => 'POST',
-                       'body'    => json_encode( array( 'events' => $events ) ),
-                       'headers' => array( 'content-type' => 'application/json' )
-               ) );
-
-               return $response['code'] == 201;
-       }
-}
index 926fd0b..e7e4c75 100644 (file)
@@ -90,7 +90,7 @@ class LocalRepo extends FileRepo {
                foreach ( $storageKeys as $key ) {
                        $hashPath = $this->getDeletedHashPath( $key );
                        $path = "$root/$hashPath$key";
-                       $dbw->begin( __METHOD__ );
+                       $dbw->startAtomic( __METHOD__ );
                        // Check for usage in deleted/hidden files and preemptively
                        // lock the key to avoid any future use until we are finished.
                        $deleted = $this->deletedFileHasKey( $key, 'lock' );
@@ -106,7 +106,7 @@ class LocalRepo extends FileRepo {
                                wfDebug( __METHOD__ . ": $key still in use\n" );
                                $status->successCount++;
                        }
-                       $dbw->commit( __METHOD__ );
+                       $dbw->endAtomic( __METHOD__ );
                }
 
                return $status;
index b4cced3..d368d90 100644 (file)
@@ -844,23 +844,6 @@ class LocalFile extends File {
        function purgeMetadataCache() {
                $this->loadFromDB( File::READ_LATEST );
                $this->saveToCache();
-               $this->purgeHistory();
-       }
-
-       /**
-        * Purge the shared history (OldLocalFile) cache.
-        *
-        * @note This used to purge old thumbnails as well.
-        */
-       function purgeHistory() {
-               global $wgMemc;
-
-               $hashedName = md5( $this->getName() );
-               $oldKey = $this->repo->getSharedCacheKey( 'oldfile', $hashedName );
-
-               if ( $oldKey ) {
-                       $wgMemc->delete( $oldKey );
-               }
        }
 
        /**
@@ -1667,7 +1650,6 @@ class LocalFile extends File {
                $this->purgeOldThumbnails( $archiveName );
                if ( $status->isOK() ) {
                        $this->purgeDescription();
-                       $this->purgeHistory();
                }
 
                if ( $wgUseSquid ) {
@@ -2565,7 +2547,6 @@ class LocalFileRestoreBatch {
                        } else {
                                wfDebug( __METHOD__ . " restored {$status->successCount} as archived versions\n" );
                                $this->file->purgeDescription();
-                               $this->file->purgeHistory();
                        }
                }
 
index b9de2cf..802c819 100644 (file)
@@ -4,9 +4,18 @@
                        "Peter Alberti",
                        "Christian List",
                        "Tjernobyl",
-                       "Thomsen"
+                       "Thomsen",
+                       "MGA73"
                ]
        },
+       "config-desc": "Installationsprogrammet til MediaWiki",
+       "config-title": "Installation af MediaWiki $1",
+       "config-information": "Information",
+       "config-localsettings-upgrade": "En <code>LocalSettings.php</code>-fil er blevet fundet.\nFor at opgradere imstallationen, skriv venligst værdien af <code>$wgUpgradeKey</code> i boksen nedenfor.\nDu finder denne i <code>LocalSettings.php</code>.",
+       "config-localsettings-cli-upgrade": "En <code>LocalSettings.php</code>-fil er blevet fundet.\nFor at opgradere installationen skal du køre <code>update.php</code> i stedet for",
+       "config-localsettings-key": "Opgraderingsnøgle:",
+       "config-localsettings-badkey": "Den nøgle du indtastede er forkert.",
+       "config-upgrade-key-missing": "En eksisterende installation af MediaWiki er blevet fundet.\nFor at opgradere denne installation skal du tilføje følgende linje i bunden af din <code>LocalSettings.php</code>:\n\n$1",
        "config-page-language": "Sprog",
        "config-page-welcome": "Velkommen til MediaWiki!",
        "config-page-dbconnect": "Forbind til database",
index a983651..593a303 100644 (file)
        "config-install-database": "Configurando la base de datos",
        "config-install-schema": "Creando el esquema",
        "config-install-pg-schema-not-exist": "El esquema PostgreSQL no existe.",
-       "config-install-pg-schema-failed": "La creación de las tablas ha fallado.\nAsegúrate de que el usuario \"$1\" puede escribir en el esquema \"$2\".",
+       "config-install-pg-schema-failed": "Falló la creación de las tablas.\nAsegúrate de que la cuenta «$1» tiene permiso de escritura para el esquema «$2».",
        "config-install-pg-commit": "Validando los cambios",
        "config-install-pg-plpgsql": "Comprobación de lenguaje PL/pgSQL",
        "config-pg-no-plpgsql": "Necesita instalar el lenguaje PL/pgSQL en la base de datos $1",
index d40c45a..0a147d2 100644 (file)
        "config-help-restart": "Ynskir tú at sletta øll goymd dáta sum tú hevur skrivað og byrja umaftur at installera?",
        "config-restart": "Ja, byrja umaftur",
        "config-env-php": "PHP $1 er innstallerað.",
-       "config-env-php-toolow": "PHP $1 er installerað.\nMen, MediaWiki krevur PHP $2 ella hægri.",
+       "config-env-hhvm": "HHVM $1 er lagt inn.",
+       "config-unicode-using-intl": "Brúkar [http://pecl.php.net/intl intl PECL ískoytið] til Unicode normalisering.",
+       "config-unicode-pure-php-warning": "<strong>Ávaring:</strong> [http://pecl.php.net/intl intl PECL ískoytið] er ikki tøkt at handfara Unicode normalisering, fellur aftur til eina spakuligari reina-PHP verkseting.\nUm tú koyrir eina netsíðu við høgari ferðslu, so eigur tú at lesa eitt sindur um [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalisering].",
+       "config-unicode-update-warning": "<strong>Ávaring:</strong> Tann innlagda versjónin av Unicode normalisering wrapper nýtir eina eldri versjón av [http://site.icu-project.org/ bókasavninum hjá ICU verkætlanini].\nTú eigur at [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations fremja uppstigning] um tú stúrir fyri at nýta Unicode.",
+       "config-diff3-bad": "GNU diff3 ikki funnið.",
+       "config-git": "Fann Git version control forritið: <code>$1</code>.",
+       "config-git-bad": "Git version control forritið varð ikki funnið.",
+       "config-imagemagick": "Fann ImageMagick: <code>$1</code>.\nTað at velja smámynd verður gjørt virkið um tú aktiverar møgulleikan at leggja myndir út.",
+       "config-using-server": "Brúkar servaranavnið \"<nowiki>$1</nowiki>\".",
+       "config-using-uri": "Nýtir servara URL \"<nowiki>$1$2</nowiki>\".",
+       "config-db-type": "Slag av dátugrunni:",
+       "config-db-host": "Dátugrunn vertur:",
+       "config-db-username": "Dátugrunn brúkaranavn:",
+       "config-db-password": "Dátugrunn loyniorð:",
        "mainpagetext": "'''Innlegging av Wiki-ritbúnaði væleydnað.'''"
 }
index dedc3c2..a1ca9d2 100644 (file)
@@ -59,7 +59,6 @@
        "config-env-bad": "環境を確認しました。\nMediaWiki のインストールはできません。",
        "config-env-php": "PHP $1がインストールされています。",
        "config-env-hhvm": "HHVM $1 がインストールされています。",
-       "config-unicode-using-utf8": "Unicode正規化に、Brion Vibberのutf8_normalize.soを使用。",
        "config-unicode-using-intl": "Unicode正規化に[http://pecl.php.net/intl intl PECL 拡張機能]を使用。",
        "config-unicode-pure-php-warning": "<strong>警告:</strong> Unicode 正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。\n高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
        "config-unicode-update-warning": "<strong>警告:</strong> インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。\nUnicode を少しでも利用する可能性がある場合は、[//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations アップグレード]してください。",
index e9b05cf..5ebf803 100644 (file)
@@ -8,7 +8,9 @@
                        "Trncmvsr",
                        "Sayginer",
                        "Trockya",
-                       "Aşilleus"
+                       "Aşilleus",
+                       "Nighteagle2000",
+                       "Sadrettin"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
@@ -53,7 +55,7 @@
        "config-env-good": "Ortam kontrol edildi.\nMediaWiki'yi kurabilirsiniz.",
        "config-env-bad": "Ortam kontrol edildi.\nMediaWiki'yi kuramazsınız.",
        "config-env-php": "PHP $1 kurulu.",
-       "config-unicode-using-utf8": "Unikod normalleştirmesi için Brion Vibber'in utf8_normalize.so kullanılıyor.",
+       "config-env-hhvm": "HHVM $1 kuruldu",
        "config-unicode-using-intl": "Unikod normalleştirmesi için [http://pecl.php.net/intl intl PECL uzantısı] kullanılıyor.",
        "config-xml-bad": "PHP 'nin XML modülü eksik.\nMediaWiki bu modüldeki fonksiyonlara ihtiyaç duyar ve şimdiki kurulumda çalışmayacaktır.\nMandrake kullanıyorsanız php-xml paketini yükleyin.",
        "config-pcre-old": "<strong>Ağır hata:</strong> PCRE $1 veya daha üst versiyon gerekli.\nSizin PHP kurulumunuz PCRE $2 ile bağlı.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Daha fazla bilgi].",
@@ -90,6 +92,7 @@
        "config-pg-test-error": "Veritabanıyla bağlantı kurulamıyor ''' $1 ''':$2",
        "config-sqlite-dir": "SQLite veri dizini",
        "config-oracle-def-ts": "Varsayılan tablo alanı:",
+       "config-type-mssql": "Microsoft SQL Server",
        "config-header-mysql": "MySQL ayarları",
        "config-header-postgres": "PostgreSQL ayarları",
        "config-header-sqlite": "SQLite ayarları",
        "config-advanced-settings": "Gelişmiş yapılandırma",
        "config-memcached-servers": "Memcached sunucuları:",
        "config-extensions": "Uzantılar",
+       "config-skins": "Görünümler",
        "config-install-step-done": "Yapıldı",
        "config-install-step-failed": "Başarısız",
        "config-install-database": "Veritabanı ayarlama",
index 320b1b1..b1b650b 100644 (file)
@@ -29,7 +29,6 @@
  */
 class JobQueueDB extends JobQueue {
        const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
-       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
        const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed
        const MAX_JOB_RANDOM = 2147483647; // integer; 2^31 - 1, used for job_random
        const MAX_OFFSET = 255; // integer; maximum number of rows to skip
@@ -71,15 +70,6 @@ class JobQueueDB extends JobQueue {
         * @return bool
         */
        protected function doIsEmpty() {
-               $key = $this->getCacheKey( 'empty' );
-
-               $isEmpty = $this->cache->get( $key );
-               if ( $isEmpty === 'true' ) {
-                       return true;
-               } elseif ( $isEmpty === 'false' ) {
-                       return false;
-               }
-
                $dbr = $this->getSlaveDB();
                try {
                        $found = $dbr->selectField( // unclaimed job
@@ -88,7 +78,6 @@ class JobQueueDB extends JobQueue {
                } catch ( DBError $e ) {
                        $this->throwDBException( $e );
                }
-               $this->cache->add( $key, $found ? 'false' : 'true', self::CACHE_TTL_LONG );
 
                return !$found;
        }
@@ -272,8 +261,6 @@ class JobQueueDB extends JobQueue {
                        $dbw->commit( $method );
                }
 
-               $this->cache->set( $this->getCacheKey( 'empty' ), 'false', JobQueueDB::CACHE_TTL_LONG );
-
                return;
        }
 
@@ -282,10 +269,6 @@ class JobQueueDB extends JobQueue {
         * @return Job|bool
         */
        protected function doPop() {
-               if ( $this->cache->get( $this->getCacheKey( 'empty' ) ) === 'true' ) {
-                       return false; // queue is empty
-               }
-
                $dbw = $this->getMasterDB();
                try {
                        $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
@@ -308,7 +291,6 @@ class JobQueueDB extends JobQueue {
                                }
                                // Check if we found a row to reserve...
                                if ( !$row ) {
-                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'true', self::CACHE_TTL_LONG );
                                        break; // nothing to do
                                }
                                JobQueue::incrStats( 'job-pop', $this->type );
@@ -569,7 +551,7 @@ class JobQueueDB extends JobQueue {
         * @return void
         */
        protected function doFlushCaches() {
-               foreach ( array( 'empty', 'size', 'acquiredcount' ) as $type ) {
+               foreach ( array( 'size', 'acquiredcount' ) as $type ) {
                        $this->cache->delete( $this->getCacheKey( $type ) );
                }
        }
@@ -680,8 +662,6 @@ class JobQueueDB extends JobQueue {
                                        $affected = $dbw->affectedRows();
                                        $count += $affected;
                                        JobQueue::incrStats( 'job-recycle', $this->type, $affected );
-                                       // The tasks recycled jobs or release delayed jobs into the queue
-                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'false', self::CACHE_TTL_LONG );
                                        $this->aggr->notifyQueueNonEmpty( $this->wiki, $this->type );
                                }
                        }
index 9425423..4d3da8a 100644 (file)
@@ -35,6 +35,11 @@ class JobRunner implements LoggerAwareInterface {
        /** @var callable|null Debug output handler */
        protected $debug;
 
+       /**
+        * @var LoggerInterface $logger
+        */
+       protected $logger;
+
        /**
         * @param callable $debug Optional debug output handler
         */
@@ -42,13 +47,9 @@ class JobRunner implements LoggerAwareInterface {
                $this->debug = $debug;
        }
 
-       /**
-        * @var LoggerInterface $logger
-        */
-       protected $logger;
-
        /**
         * @param LoggerInterface $logger
+        * @return void
         */
        public function setLogger( LoggerInterface $logger ) {
                $this->logger = $logger;
@@ -88,7 +89,7 @@ class JobRunner implements LoggerAwareInterface {
         * @return array Summary response that can easily be JSON serialized
         */
        public function run( array $options ) {
-               global $wgJobClasses;
+               global $wgJobClasses, $wgTrxProfilerLimits;
 
                $response = array( 'jobs' => array(), 'reached' => 'none-ready' );
 
@@ -120,7 +121,7 @@ class JobRunner implements LoggerAwareInterface {
                // Catch huge single updates that lead to slave lag
                $trxProfiler = Profiler::instance()->getTransactionProfiler();
                $trxProfiler->setLogger( LoggerFactory::getInstance( 'DBPerformance' ) );
-               $trxProfiler->setExpectation( 'maxAffected', 500, __METHOD__ );
+               $trxProfiler->setExpectations( $wgTrxProfilerLimits['JobRunner'], __METHOD__ );
 
                // Bail out if there is too much DB lag.
                // This check should not block as we want to try other wiki queues.
@@ -183,7 +184,7 @@ class JobRunner implements LoggerAwareInterface {
                                        ++$jobsRun;
                                        $status = $job->run();
                                        $error = $job->getLastError();
-                                       wfGetLBFactory()->commitMasterChanges();
+                                       $this->commitMasterChanges( $job );
                                } catch ( Exception $e ) {
                                        MWExceptionHandler::rollbackMasterChangesAndLog( $e );
                                        $status = false;
@@ -304,7 +305,6 @@ class JobRunner implements LoggerAwareInterface {
         * @return array Map of (job type => backoff expiry timestamp)
         */
        private function loadBackoffs( array $backoffs, $mode = 'wait' ) {
-
                $file = wfTempDir() . '/mw-runJobs-backoffs.json';
                if ( is_file( $file ) ) {
                        $noblock = ( $mode === 'nowait' ) ? LOCK_NB : 0;
@@ -342,7 +342,6 @@ class JobRunner implements LoggerAwareInterface {
         * @return array The new backoffs account for $backoffs and the latest file data
         */
        private function syncBackoffDeltas( array $backoffs, array &$deltas, $mode = 'wait' ) {
-
                if ( !$deltas ) {
                        return $this->loadBackoffs( $backoffs, $mode );
                }
@@ -409,4 +408,64 @@ class JobRunner implements LoggerAwareInterface {
                        call_user_func_array( $this->debug, array( wfTimestamp( TS_DB ) . " $msg\n" ) );
                }
        }
+
+       /**
+        * Commit any DB master changes from a job on all load balancers
+        *
+        * @param Job $job
+        * @throws DBError
+        */
+       private function commitMasterChanges( Job $job ) {
+               global $wgJobSerialCommitThreshold;
+
+               $lb = wfGetLB( wfWikiID() );
+               if ( $wgJobSerialCommitThreshold !== false ) {
+                       // Generally, there is one master connection to the local DB
+                       $dbwSerial = $lb->getAnyOpenConnection( $lb->getWriterIndex() );
+               } else {
+                       $dbwSerial = false;
+               }
+
+               if ( !$dbwSerial
+                       || !$dbwSerial->namedLocksEnqueue()
+                       || $dbwSerial->pendingWriteQueryDuration() < $wgJobSerialCommitThreshold
+               ) {
+                       // Writes are all to foreign DBs, named locks don't form queues,
+                       // or $wgJobSerialCommitThreshold is not reached; commit changes now
+                       wfGetLBFactory()->commitMasterChanges();
+                       return;
+               }
+
+               $ms = intval( 1000 * $dbwSerial->pendingWriteQueryDuration() );
+               $msg = $job->toString() . " COMMIT ENQUEUED [{$ms}ms of writes]";
+               $this->logger->info( $msg );
+               $this->debugCallback( $msg );
+
+               // Wait for an exclusive lock to commit
+               if ( !$dbwSerial->lock( 'jobrunner-serial-commit', __METHOD__, 30 ) ) {
+                       // This will trigger a rollback in the main loop
+                       throw new DBError( $dbwSerial, "Timed out waiting on commit queue." );
+               }
+               // Wait for the generic slave to catch up
+               $pos = $lb->getMasterPos();
+               if ( $pos ) {
+                       $lb->waitForOne( $pos );
+               }
+
+               // Re-ping all masters with transactions. This throws DBError if some
+               // connection died while waiting on locks/slaves, triggering a rollback.
+               wfGetLBFactory()->forEachLB( function( LoadBalancer $lb ) {
+                       $lb->forEachOpenConnection( function( DatabaseBase $conn ) {
+                               if ( $conn->writesOrCallbacksPending() ) {
+                                       $conn->query( "SELECT 1" );
+                               }
+                       } );
+               } );
+
+               // Actually commit the DB master changes
+               wfGetLBFactory()->commitMasterChanges();
+
+               // Release the lock
+               $dbwSerial->unlock( 'jobrunner-serial-commit', __METHOD__ );
+       }
 }
index 84cfd47..327a18f 100644 (file)
@@ -68,7 +68,7 @@ interface IJobSpecification {
  * Job queue task description base code
  *
  * Example usage:
- * <code>
+ * @code
  * $job = new JobSpecification(
  *             'null',
  *             array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
@@ -76,7 +76,7 @@ interface IJobSpecification {
  *             Title::makeTitle( NS_SPECIAL, 'nullity' )
  * );
  * JobQueueGroup::singleton()->push( $job )
- * </code>
+ * @endcode
  *
  * @ingroup JobQueue
  * @since 1.23
index 8e5c17d..16e0d4f 100644 (file)
@@ -90,9 +90,9 @@ class MultiHttpClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error     : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *      <code>
+        * @code
         *              list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $http->run( $req );
-        *  </code>
+        * @endcode
         * @param array $req HTTP request array
         * @param array $opts
         *   - connTimeout    : connection timeout per request (seconds)
@@ -114,9 +114,9 @@ class MultiHttpClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error   : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *    <code>
+        * @code
         *        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $req['response'];
-        *  </code>
+        * @endcode
         * All headers in the 'headers' field are normalized to use lower case names.
         * This is true for the request headers and the response headers. Integer-indexed
         * method/URL entries will also be changed to use the corresponding string keys.
diff --git a/includes/libs/eventrelayer/EventRelayer.php b/includes/libs/eventrelayer/EventRelayer.php
new file mode 100755 (executable)
index 0000000..a3d214f
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Base class for reliable event relays
+ */
+abstract class EventRelayer {
+       /**
+        * @param array $params
+        */
+       public function __construct( array $params ) {}
+
+       /**
+        * @param string $channel
+        * @param array $event Event data map
+        * @return bool Success
+        */
+       final public function notify( $channel, $event ) {
+               return $this->doNotify( $channel, array( $event ) );
+       }
+
+       /**
+        * @param string $channel
+        * @param array $events List of event data maps
+        * @return bool Success
+        */
+       final public function notifyMulti( $channel, $events ) {
+               return $this->doNotify( $channel, $events );
+       }
+
+       /**
+        * @param string $channel
+        * @param array $events List of event data maps
+        * @return bool Success
+        */
+       abstract protected function doNotify( $channel, array $events );
+}
+
+/**
+ * No-op class for publishing messages into a PubSub system
+ */
+class EventRelayerNull extends EventRelayer {
+       public function doNotify( $channel, array $events ) {
+               return true;
+       }
+}
diff --git a/includes/libs/eventrelayer/EventRelayerMCRD.php b/includes/libs/eventrelayer/EventRelayerMCRD.php
new file mode 100755 (executable)
index 0000000..1e8b2a4
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Relayed that uses the mcrelaypushd server
+ */
+class EventRelayerMCRD extends EventRelayer {
+       /** @var MultiHttpClient */
+       protected $http;
+       /** @var string */
+       protected $baseUrl;
+
+       /**
+        * Additional params include 'mcrdConfig', which is a map of:
+        *   - url : The base URL of the service (without paths)
+        * @param array $params
+        */
+       public function __construct( array $params ) {
+               parent::__construct( $params );
+
+               $this->baseUrl = $params['mcrdConfig']['url'];
+
+               $httpConfig = isset( $params['httpConfig'] ) ? $params['httpConfig'] : array();
+               if ( !isset( $httpConfig['connTimeout'] ) ) {
+                       $httpConfig['connTimeout'] = 1;
+               }
+               if ( !isset( $httpConfig['reqTimeout'] ) ) {
+                       $httpConfig['reqTimeout'] = .25;
+               }
+
+               $this->http = new MultiHttpClient( $httpConfig );
+       }
+
+       protected function doNotify( $channel, array $events ) {
+               if ( !count( $events ) ) {
+                       return true;
+               }
+
+               $response = $this->http->run( array(
+                       'url'     => "{$this->baseUrl}/relayer/api/v1.0/" . rawurlencode( $channel ),
+                       'method'  => 'POST',
+                       'body'    => json_encode( array( 'events' => $events ) ),
+                       'headers' => array( 'content-type' => 'application/json' )
+               ) );
+
+               return $response['code'] == 201;
+       }
+}
index 5447ee7..5507e9d 100644 (file)
@@ -37,10 +37,10 @@ use Psr\Log\NullLogger;
  * the PHP memcached client.
  *
  * backends for local hash array and SQL table included:
- * <code>
+ * @code
  *   $bag = new HashBagOStuff();
  *   $bag = new SqlBagOStuff(); # connect to db first
- * </code>
+ * @endcode
  *
  * @ingroup Cache
  */
@@ -119,10 +119,11 @@ abstract class BagOStuff implements LoggerAwareInterface {
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @param int $attempts The amount of times to attempt a merge in case of failure
         * @return bool Success
+        * @throws InvalidArgumentException
         */
        public function merge( $key, $callback, $exptime = 0, $attempts = 10 ) {
                if ( !is_callable( $callback ) ) {
-                       throw new Exception( "Got invalid callback." );
+                       throw new InvalidArgumentException( "Got invalid callback." );
                }
 
                return $this->mergeViaLock( $key, $callback, $exptime, $attempts );
@@ -166,6 +167,7 @@ abstract class BagOStuff implements LoggerAwareInterface {
         * @param mixed $value
         * @param int $exptime Either an interval in seconds or a unix timestamp for expiry
         * @return bool Success
+        * @throws Exception
         */
        protected function cas( $casToken, $key, $value, $exptime = 0 ) {
                throw new Exception( "CAS is not implemented in " . __CLASS__ );
@@ -205,7 +207,7 @@ abstract class BagOStuff implements LoggerAwareInterface {
 
        /**
         * @param string $key
-        * @param int $timeout Lock wait timeout [optional]
+        * @param int $timeout Lock wait timeout; 0 for non-blocking [optional]
         * @param int $expiry Lock expiry [optional]
         * @return bool Success
         */
diff --git a/includes/libs/objectcache/WANObjectCache.php b/includes/libs/objectcache/WANObjectCache.php
new file mode 100755 (executable)
index 0000000..7f55456
--- /dev/null
@@ -0,0 +1,603 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Cache
+ * @author Aaron Schulz
+ */
+
+/**
+ * Multi-datacenter aware caching interface
+ *
+ * All operations go to the local cache, except the delete()
+ * and touchCheckKey(), which broadcast to all clusters.
+ * This class is intended for caching data from primary stores.
+ * If the get() method does not return a value, then the caller
+ * should query the new value and backfill the cache using set().
+ * When the source data changes, the delete() method should be called.
+ * Since delete() is expensive, it should be avoided. One can do so if:
+ *   - a) The object cached is immutable; or
+ *   - b) Validity is checked against the source after get(); or
+ *   - c) Using a modest TTL is reasonably correct and performant
+ * Consider using getWithSetCallback() instead of the get()/set() cycle.
+ *
+ * Instances of this class must be configured to point to a valid
+ * PubSub endpoint, and there must be listeners on the cache servers
+ * that subscribe to the endpoint and update the caches.
+ *
+ * Broadcasted operations like delete() and touchCheckKey() are done
+ * synchronously in the local cluster, but are relayed asynchronously.
+ * This means that callers in other datacenters will see older values
+ * for a however many milliseconds the datacenters are apart. As with
+ * any cache, this should not be relied on for cases where reads are
+ * used to determine writes to source (e.g. non-cache) data stores.
+ *
+ * All values are wrapped in metadata arrays. Keys use a "WANCache:" prefix
+ * to avoid collisions with keys that are not wrapped as metadata arrays. The
+ * prefixes are as follows:
+ *   - a) "WANCache:v" : used for regular value keys
+ *   - b) "WANCache:s" : used for temporarily storing values of tombstoned keys
+ *   - c) "WANCache:t" : used for storing timestamp "check" keys
+ *
+ * @ingroup Cache
+ * @since 1.26
+ */
+class WANObjectCache {
+       /** @var BagOStuff The local cluster cache */
+       protected $cache;
+       /** @var string Cache pool name */
+       protected $pool;
+       /** @var EventRelayer */
+       protected $relayer;
+
+       /** @var int */
+       protected $lastRelayError = self::ERR_NONE;
+
+       /** Seconds to tombstone keys on delete() */
+       const HOLDOFF_TTL = 10;
+       /** Seconds to keep dependency purge keys around */
+       const CHECK_KEY_TTL = 31536000; // 1 year
+       /** Seconds to keep lock keys around */
+       const LOCK_TTL = 5;
+
+       /** Cache format version number */
+       const VERSION = 1;
+
+       /** Fields of value holder arrays */
+       const FLD_VERSION = 0;
+       const FLD_VALUE = 1;
+       const FLD_TTL = 2;
+       const FLD_TIME = 3;
+
+       /** Possible values for getLastError() */
+       const ERR_NONE = 0; // no error
+       const ERR_NO_RESPONSE = 1; // no response
+       const ERR_UNREACHABLE = 2; // can't connect
+       const ERR_UNEXPECTED = 3; // response gave some error
+       const ERR_RELAY = 4; // relay broadcast failed
+
+       const VALUE_KEY_PREFIX = 'WANCache:v:';
+       const STASH_KEY_PREFIX = 'WANCache:s:';
+       const TIME_KEY_PREFIX = 'WANCache:t:';
+
+       const PURGE_VAL_PREFIX = 'PURGED:';
+
+       /**
+        * @param array $params
+        *   - cache   : BagOStuff object
+        *   - pool    : pool name
+        *   - relayer : EventRelayer object
+        */
+       public function __construct( array $params ) {
+               $this->cache = $params['cache'];
+               $this->pool = $params['pool'];
+               $this->relayer = $params['relayer'];
+       }
+
+       /**
+        * Fetch the value of a key from cache
+        *
+        * If passed in, $curTTL is set to the remaining TTL (current time left):
+        *   - a) INF; if the key exists and has no TTL
+        *   - b) float (>=0); if the key exists and has a TTL
+        *   - c) float (<0); if the key is tombstoned or expired by $checkKeys
+        *   - d) null; if the key does not exist and is not tombstoned
+        *
+        * If a key is tombstoned, $curTTL will reflect the time since delete().
+        *
+        * The timestamp of $key will be checked against the last-purge timestamp
+        * of each of $checkKeys. Those $checkKeys not in cache will have the last-purge
+        * initialized to the current timestamp. If any of $checkKeys have a timestamp
+        * greater than that of $key, then $curTTL will reflect how long ago $key
+        * became invalid. Callers can use $curTTL to know when the value is stale.
+        * The $checkKeys parameter allow mass invalidations by updating a single key:
+        *   - a) Each "check" key represents "last purged" of some source data
+        *   - b) Callers pass in relevant "check" keys as $checkKeys in get()
+        *   - c) When the source data that "check" keys represent changes,
+        *        the touchCheckKey() method is called on them
+        *
+        * For keys that are hot/expensive, consider using getWithSetCallback() instead.
+        *
+        * @param string $key Cache key
+        * @param mixed $curTTL Approximate TTL left on the key if present [returned]
+        * @param array $checkKeys List of "check" keys
+        * @return mixed Value of cache key or false on failure
+        */
+       final public function get( $key, &$curTTL = null, array $checkKeys = array() ) {
+               $curTTLs = array();
+               $values = $this->getMulti( array( $key ), $curTTLs, $checkKeys );
+               $curTTL = isset( $curTTLs[$key] ) ? $curTTLs[$key] : null;
+
+               return isset( $values[$key] ) ? $values[$key] : false;
+       }
+
+       /**
+        * Fetch the value of several keys from cache
+        *
+        * @see WANObjectCache::get()
+        *
+        * @param array $keys List of cache keys
+        * @param array $curTTLs Map of (key => approximate TTL left) for existing keys [returned]
+        * @param array $checkKeys List of "check" keys
+        * @return array Map of (key => value) for keys that exist
+        */
+       final public function getMulti(
+               array $keys, &$curTTLs = array(), array $checkKeys = array()
+       ) {
+               $result = array();
+               $curTTLs = array();
+
+               $vPrefixLen = strlen( self::VALUE_KEY_PREFIX );
+               $valueKeys = self::prefixCacheKeys( $keys, self::VALUE_KEY_PREFIX );
+               $checkKeys = self::prefixCacheKeys( $checkKeys, self::TIME_KEY_PREFIX );
+
+               // Fetch all of the raw values
+               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeys ) );
+               $now = microtime( true );
+
+               // Get/initialize the timestamp of all the "check" keys
+               $checkKeyTimes = array();
+               foreach ( $checkKeys as $checkKey ) {
+                       $timestamp = isset( $wrappedValues[$checkKey] )
+                               ? self::parsePurgeValue( $wrappedValues[$checkKey] )
+                               : false;
+                       if ( !is_float( $timestamp ) ) {
+                               // Key is not set or invalid; regenerate
+                               $this->cache->add( $checkKey,
+                                       self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
+                               $timestamp = $now;
+                       }
+
+                       $checkKeyTimes[] = $timestamp;
+               }
+
+               // Get the main cache value for each key and validate them
+               foreach ( $valueKeys as $vKey ) {
+                       if ( !isset( $wrappedValues[$vKey] ) ) {
+                               continue; // not found
+                       }
+
+                       $key = substr( $vKey, $vPrefixLen ); // unprefix
+
+                       list( $value, $curTTL ) = $this->unwrap( $wrappedValues[$vKey], $now );
+                       if ( $value !== false ) {
+                               $result[$key] = $value;
+                               foreach ( $checkKeyTimes as $checkKeyTime ) {
+                                       // Force dependant keys to be invalid for a while after purging
+                                       // to reduce race conditions involving stale data getting cached
+                                       $safeTimestamp = $checkKeyTime + self::HOLDOFF_TTL;
+                                       if ( $safeTimestamp >= $wrappedValues[$vKey][self::FLD_TIME] ) {
+                                               $curTTL = min( $curTTL, $checkKeyTime - $now );
+                                       }
+                               }
+                       }
+
+                       $curTTLs[$key] = $curTTL;
+               }
+
+               return $result;
+       }
+
+       /**
+        * Set the value of a key from cache
+        *
+        * Simply calling this method when source data changes is not valid because
+        * the changes do not replicate to the other WAN sites. In that case, delete()
+        * should be used instead. This method is intended for use on cache misses.
+        *
+        * @param string $key Cache key
+        * @param mixed $value
+        * @param integer $ttl Seconds to live [0=forever]
+        * @return bool Success
+        */
+       final public function set( $key, $value, $ttl = 0 ) {
+               $key = self::VALUE_KEY_PREFIX . $key;
+               $wrapped = $this->wrap( $value, $ttl );
+
+               $func = function ( $cache, $key, $cWrapped ) use ( $wrapped ) {
+                       return ( is_string( $cWrapped ) )
+                               ? false // key is tombstoned; do nothing
+                               : $wrapped;
+               };
+
+               return $this->cache->merge( $key, $func, $ttl, 1 );
+       }
+
+       /**
+        * Purge a key from all clusters
+        *
+        * This instantiates a hold-off period where the key cannot be
+        * written to avoid race conditions where dependent keys get updated
+        * with a stale value (e.g. from a DB slave).
+        *
+        * This should only be called when the underlying data (being cached)
+        * changes in a significant way. If called twice on the same key, then
+        * the last TTL takes precedence.
+        *
+        * @param string $key Cache key
+        * @param integer $ttl How long to block writes to the key [seconds]
+        * @return bool True if the item was purged or not found, false on failure
+        */
+       final public function delete( $key, $ttl = self::HOLDOFF_TTL ) {
+               $key = self::VALUE_KEY_PREFIX . $key;
+               // Update the local cluster immediately
+               $ok = $this->cache->set( $key, self::PURGE_VAL_PREFIX . microtime( true ), $ttl );
+               // Publish the purge to all clusters
+               return $this->relayPurge( $key, $ttl ) && $ok;
+       }
+
+       /**
+        * Fetch the value of a timestamp "check" key
+        *
+        * @param string $key
+        * @return float|bool TS_UNIX timestamp of the key; false if not present
+        */
+       final public function getCheckKeyTime( $key ) {
+               return self::parsePurgeValue( $this->cache->get( self::TIME_KEY_PREFIX . $key ) );
+       }
+
+       /**
+        * Purge a "check" key from all clusters, invalidating keys that use it
+        *
+        * This should only be called when the underlying data (being cached)
+        * changes in a significant way, and it is impractical to call delete()
+        * on all keys that should be changed. When get() is called on those
+        * keys, the relevant "check" keys must be supplied for this to work.
+        *
+        * The "check" key essentially represents a last-modified field.
+        * It is set in the future a few seconds when this is called, to
+        * avoid race conditions where dependent keys get updated with a
+        * stale value (e.g. from a DB slave).
+        *
+        * @see WANObjectCache::get()
+        *
+        * @param string $key Cache key
+        * @return bool True if the item was purged or not found, false on failure
+        */
+       final public function touchCheckKey( $key ) {
+               $key = self::TIME_KEY_PREFIX . $key;
+               // Update the local cluster immediately
+               $ok = $this->cache->set( $key,
+                       self::PURGE_VAL_PREFIX . microtime( true ), self::CHECK_KEY_TTL );
+               // Publish the purge to all clusters
+               return $this->relayPurge( $key, self::CHECK_KEY_TTL ) && $ok;
+       }
+
+       /**
+        * Method to fetch/regenerate cache keys
+        *
+        * On cache miss, the key will be set to the callback result.
+        * The callback function returns the new value given the current
+        * value (false if not present). If false is returned, then nothing
+        * will be saved to cache.
+        *
+        * Usually, callbacks ignore the current value, but it can be used
+        * to maintain "most recent X" values that come from time or sequence
+        * based source data, provided that the "as of" id/time is tracked.
+        *
+        * Usage of $checkKeys is similar to get()/getMulti(). However,
+        * rather than the caller having to inspect a "current time left"
+        * variable (e.g. $curTTL, $curTTLs), a cache regeneration will be
+        * triggered using the callback.
+        *
+        * The simplest way to avoid stampedes for hot keys is to use
+        * the 'lockTSE' option in $opts. If cache purges are needed, also:
+        *   a) Pass $key into $checkKeys
+        *   b) Use touchCheckKey( $key ) instead of delete( $key )
+        * Following this pattern lets the old cache be used until a
+        * single thread updates it as needed. Also consider tweaking
+        * the 'lowTTL' parameter.
+        *
+        * Example usage:
+        * @code
+        *     $key = wfMemcKey( 'cat-recent-actions', $catId );
+        *     // Function that derives the new key value given the old value
+        *     $callback = function( $cValue ) { ... };
+        *     // Get the key value from cache or from source on cache miss;
+        *     // try to only let one cluster thread manage doing cache updates
+        *     $opts = array( 'lockTSE' => 5, 'lowTTL' => 10 );
+        *     $value = $cache->getWithSetCallback( $key, $callback, 60, array(), $opts );
+        * @endcode
+        *
+        * Example usage:
+        * @code
+        *     $key = wfMemcKey( 'cat-state', $catId );
+        *     // The "check" keys that represent things the value depends on;
+        *     // Calling touchCheckKey() on them invalidates "cat-state"
+        *     $checkKeys = array(
+        *         wfMemcKey( 'water-bowls', $houseId ),
+        *         wfMemcKey( 'food-bowls', $houseId ),
+        *         wfMemcKey( 'people-present', $houseId )
+        *     );
+        *     // Function that derives the new key value
+        *     $callback = function() { ... };
+        *     // Get the key value from cache or from source on cache miss;
+        *     // try to only let one cluster thread manage doing cache updates
+        *     $opts = array( 'lockTSE' => 5, 'lowTTL' => 10 );
+        *     $value = $cache->getWithSetCallback( $key, $callback, 60, $checkKeys, $opts );
+        * @endcode
+        *
+        * @see WANObjectCache::get()
+        *
+        * @param string $key Cache key
+        * @param callable $callback Value generation function
+        * @param integer $ttl Seconds to live when the key is updated [0=forever]
+        * @param array $checkKeys List of "check" keys
+        * @param array $opts Options map:
+        *   - lowTTL  : consider pre-emptive updates when the current TTL (sec)
+        *               of the key is less than this. It becomes more likely
+        *               over time, becoming a certainty once the key is expired.
+        *   - lockTSE : if the key is tombstoned or expired less (by $checkKeys)
+        *               than this many seconds ago, then try to have a single
+        *               thread handle cache regeneration at any given time.
+        *               Other threads will try to use stale values if possible.
+        *   - tempTTL : when 'lockTSE' is set, this determines the TTL of the temp
+        *               key used to cache values while a key is tombstoned.
+        *               This avoids excessive regeneration of hot keys on delete() but
+        *               may result in stale values.
+        * @return mixed Value to use for the key
+        */
+       final public function getWithSetCallback(
+               $key, $callback, $ttl, array $checkKeys = array(), array $opts = array()
+       ) {
+               $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( 10, $ttl );
+               $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : -1;
+               $tempTTL = isset( $opts['tempTTL'] ) ? $opts['tempTTL'] : 5;
+
+               // Get the current key value
+               $curTTL = null;
+               $cValue = $this->get( $key, $curTTL, $checkKeys ); // current value
+               $value = $cValue; // return value
+
+               // Determine if a regeneration is desired
+               if ( $value !== false && $curTTL > 0 && !$this->worthRefresh( $curTTL, $lowTTL ) ) {
+                       return $value;
+               }
+
+               if ( !is_callable( $callback ) ) {
+                       throw new InvalidArgumentException( "Invalid cache miss callback provided." );
+               }
+
+               // Assume a key is hot if requested soon after invalidation
+               $isHot = ( $curTTL !== null && $curTTL <= 0 && abs( $curTTL ) <= $lockTSE );
+               $isTombstone = ( $curTTL !== null && $value === false );
+
+               $locked = false;
+               if ( $isHot || $isTombstone ) {
+                       // Acquire a cluster-local non-blocking lock
+                       if ( $this->cache->lock( $key, 0, self::LOCK_TTL ) ) {
+                               // Lock acquired; this thread should update the key
+                               $locked = true;
+                       } elseif ( $value !== false ) {
+                               // If it cannot be acquired; then the stale value can be used
+                               return $value;
+                       } else {
+                               // Either another thread has the lock or the lock failed.
+                               // Use the stash value, which is likely from the prior thread.
+                               $value = $this->cache->get( self::STASH_KEY_PREFIX . $key );
+                               // Regenerate on timeout or if the other thread failed
+                               if ( $value !== false ) {
+                                       return $value;
+                               }
+                       }
+               }
+
+               // Generate the new value from the callback...
+               $value = call_user_func( $callback, $cValue );
+               // When delete() is called, writes are write-holed by the tombstone,
+               // so use a special stash key to pass the new value around threads.
+               if ( $value !== false && ( $isHot || $isTombstone ) ) {
+                       $this->cache->set( self::STASH_KEY_PREFIX . $key, $value, $tempTTL );
+               }
+
+               if ( $locked ) {
+                       $this->cache->unlock( $key );
+               }
+
+               if ( $value !== false ) {
+                       // Update the cache; this will fail if the key is tombstoned
+                       $this->set( $key, $value, $ttl );
+               }
+
+               return $value;
+       }
+
+       /**
+        * Get the "last error" registered; clearLastError() should be called manually
+        * @return int ERR_* constant for the "last error" registry
+        */
+       final public function getLastError() {
+               if ( $this->lastRelayError ) {
+                       // If the cache and the relayer failed, focus on the later.
+                       // An update not making it to the relayer means it won't show up
+                       // in other DCs (nor will consistent re-hashing see up-to-date values).
+                       // On the other hand, if just the cache update failed, then it should
+                       // eventually be applied by the relayer.
+                       return $this->lastRelayError;
+               }
+
+               $code = $this->cache->getLastError();
+               switch ( $code ) {
+                       case BagOStuff::ERR_NONE:
+                               return self::ERR_NONE;
+                       case BagOStuff::ERR_NO_RESPONSE:
+                               return self::ERR_NO_RESPONSE;
+                       case BagOStuff::ERR_UNREACHABLE:
+                               return self::ERR_UNREACHABLE;
+                       default:
+                               return self::ERR_UNEXPECTED;
+               }
+       }
+
+       /**
+        * Clear the "last error" registry
+        */
+       final public function clearLastError() {
+               $this->cache->clearLastError();
+               $this->lastRelayError = self::ERR_NONE;
+       }
+
+       /**
+        * Do the actual async bus purge of a key
+        *
+        * This must set the key to "PURGED:<UNIX timestamp>"
+        *
+        * @param string $key Cache key
+        * @param integer $ttl How long to keep the tombstone [seconds]
+        * @return bool Success
+        */
+       protected function relayPurge( $key, $ttl ) {
+               $event = $this->cache->modifySimpleRelayEvent( array(
+                       'cmd' => 'set',
+                       'key' => $key,
+                       'val' => 'PURGED:$UNIXTIME$',
+                       'ttl' => max( $ttl, 1 ),
+                       'sbt' => true, // substitute $UNIXTIME$ with actual microtime
+               ) );
+
+               $ok = $this->relayer->notify( "{$this->pool}:purge", $event );
+               if ( !$ok ) {
+                       $this->lastRelayError = self::ERR_RELAY;
+               }
+
+               return $ok;
+       }
+
+       /**
+        * Check if a key should be regenerated (using random probability)
+        *
+        * This returns false if $curTTL >= $lowTTL. Otherwise, the chance
+        * of returning true increases steadily from 0% to 100% as the $curTTL
+        * moves from $lowTTL to 0 seconds. This handles widely varying
+        * levels of cache access traffic.
+        *
+        * @param float|INF $curTTL Approximate TTL left on the key if present
+        * @param float $lowTTL Consider a refresh when $curTTL is less than this
+        * @return bool
+        */
+       protected function worthRefresh( $curTTL, $lowTTL ) {
+               if ( $curTTL >= $lowTTL ) {
+                       return false;
+               } elseif ( $curTTL <= 0 ) {
+                       return true;
+               }
+
+               $chance = ( 1 - $curTTL / $lowTTL );
+
+               return mt_rand( 1, 1e9 ) <= 1e9 * $chance;
+       }
+
+       /**
+        * Do not use this method outside WANObjectCache
+        *
+        * @param mixed $value
+        * @param integer $ttl [0=forever]
+        * @return string
+        */
+       protected function wrap( $value, $ttl ) {
+               return array(
+                       self::FLD_VERSION => self::VERSION,
+                       self::FLD_VALUE => $value,
+                       self::FLD_TTL => $ttl,
+                       self::FLD_TIME => microtime( true )
+               );
+       }
+
+       /**
+        * Do not use this method outside WANObjectCache
+        *
+        * @param array|string|bool $wrapped
+        * @param float $now Unix Current timestamp (preferrable pre-query)
+        * @return array (mixed; false if absent/invalid, current time left)
+        */
+       protected function unwrap( $wrapped, $now ) {
+               // Check if the value is a tombstone
+               $purgeTimestamp = self::parsePurgeValue( $wrapped );
+               if ( is_float( $purgeTimestamp ) ) {
+                       // Purged values should always have a negative current $ttl
+                       $curTTL = min( -0.000001, $purgeTimestamp - $now );
+                       return array( false, $curTTL );
+               }
+
+               if ( !is_array( $wrapped ) // not found
+                       || !isset( $wrapped[self::FLD_VERSION] ) // wrong format
+                       || $wrapped[self::FLD_VERSION] !== self::VERSION // wrong version
+               ) {
+                       return array( false, null );
+               }
+
+               if ( $wrapped[self::FLD_TTL] > 0 ) {
+                       // Get the approximate time left on the key
+                       $age = $now - $wrapped[self::FLD_TIME];
+                       $curTTL = max( $wrapped[self::FLD_TTL] - $age, 0.0 );
+               } else {
+                       // Key had no TTL, so the time left is unbounded
+                       $curTTL = INF;
+               }
+
+               return array( $wrapped[self::FLD_VALUE], $curTTL );
+       }
+
+       /**
+        * @param array $keys
+        * @param string $prefix
+        * @return string[]
+        */
+       protected static function prefixCacheKeys( array $keys, $prefix ) {
+               $res = array();
+               foreach ( $keys as $key ) {
+                       $res[] = $prefix . $key;
+               }
+
+               return $res;
+       }
+
+       /**
+        * @param string $value String like "PURGED:<timestamp>"
+        * @return float|bool UNIX timestamp or false on failure
+        */
+       protected static function parsePurgeValue( $value ) {
+               $m = array();
+               if ( is_string( $value ) &&
+                       preg_match( '/^' . self::PURGE_VAL_PREFIX . '([^:]+)$/', $value, $m )
+               ) {
+                       return (float)$m[1];
+               } else {
+                       return false;
+               }
+       }
+}
index e8bb38d..519da43 100644 (file)
@@ -127,9 +127,9 @@ class VirtualRESTServiceClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error   : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *      <code>
-        *              list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $client->run( $req );
-        *  </code>
+        * @code
+        *     list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $client->run( $req );
+        * @endcode
         * @param array $req Virtual HTTP request maps
         * @return array Response array for request
         */
@@ -148,9 +148,9 @@ class VirtualRESTServiceClient {
         *   - body    : HTTP response body or resource (if "stream" was set)
         *   - error   : Any cURL error string
         * The map also stores integer-indexed copies of these values. This lets callers do:
-        *    <code>
-        *        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $responses[0];
-        *  </code>
+        * @code
+        *     list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $responses[0];
+        * @endcode
         *
         * @param array $reqs Map of Virtual HTTP request maps
         * @return array $reqs Map of corresponding response values with the same keys/order
index 8b28821..dcddbd7 100644 (file)
@@ -26,7 +26,7 @@
 class LogEventsList extends ContextSource {
        const NO_ACTION_LINK = 1;
        const NO_EXTRA_USER_LINKS = 2;
-       const USE_REVDEL_CHECKBOXES = 4;
+       const USE_CHECKBOXES = 4;
 
        public $flags;
 
@@ -44,7 +44,7 @@ class LogEventsList extends ContextSource {
         *   a Skin object. Use of Skin is deprecated.
         * @param null $unused Unused; used to be an OutputPage object.
         * @param int $flags Can be a combination of self::NO_ACTION_LINK,
-        *   self::NO_EXTRA_USER_LINKS or self::USE_REVDEL_CHECKBOXES.
+        *   self::NO_EXTRA_USER_LINKS or self::USE_CHECKBOXES.
         */
        public function __construct( $context, $unused = null, $flags = 0 ) {
                if ( $context instanceof IContextSource ) {
@@ -341,14 +341,27 @@ class LogEventsList extends ContextSource {
         */
        private function getShowHideLinks( $row ) {
                // We don't want to see the links and
+               if ( $this->flags == self::NO_ACTION_LINK ) {
+                       return '';
+               }
+
+               $user = $this->getUser();
+
+               // If change tag editing is available to this user, return the checkbox
+               if ( $this->flags & self::USE_CHECKBOXES && $user->isAllowed( 'changetags' ) ) {
+                       return Xml::check(
+                               'showhiderevisions',
+                               false,
+                               array( 'name' => 'ids[' . $row->log_id . ']' )
+                       );
+               }
+
                // no one can hide items from the suppress log.
-               if ( ( $this->flags == self::NO_ACTION_LINK )
-                       || $row->log_type == 'suppress'
-               ) {
+               if ( $row->log_type == 'suppress' ) {
                        return '';
                }
+
                $del = '';
-               $user = $this->getUser();
                // Don't show useless checkbox to people who cannot hide log entries
                if ( $user->isAllowed( 'deletedhistory' ) ) {
                        $canHide = $user->isAllowed( 'deletelogentry' );
@@ -358,7 +371,7 @@ class LogEventsList extends ContextSource {
                        $canViewThisSuppressedEntry = $canViewSuppressedOnly && $entryIsSuppressed;
                        if ( $row->log_deleted || $canHide ) {
                                // Show checkboxes instead of links.
-                               if ( $canHide && $this->flags & self::USE_REVDEL_CHECKBOXES && !$canViewThisSuppressedEntry ) {
+                               if ( $canHide && $this->flags & self::USE_CHECKBOXES && !$canViewThisSuppressedEntry ) {
                                        // If event was hidden from sysops
                                        if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED, $user ) ) {
                                                $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
index 1b0eb49..5f6b965 100644 (file)
@@ -137,17 +137,6 @@ class DjVuHandler extends ImageHandler {
        function doTransform( $image, $dstPath, $dstUrl, $params, $flags = 0 ) {
                global $wgDjvuRenderer, $wgDjvuPostProcessor;
 
-               // Fetch XML and check it, to give a more informative error message than the one which
-               // normaliseParams will inevitably give.
-               $xml = $image->getMetadata();
-               if ( !$xml ) {
-                       $width = isset( $params['width'] ) ? $params['width'] : 0;
-                       $height = isset( $params['height'] ) ? $params['height'] : 0;
-
-                       return new MediaTransformError( 'thumbnail_error', $width, $height,
-                               wfMessage( 'djvu_no_xml' )->text() );
-               }
-
                if ( !$this->normaliseParams( $image, $params ) ) {
                        return new TransformParameterError( $params );
                }
index 7246072..2ae5af3 100644 (file)
@@ -1003,28 +1003,6 @@ class FormatMetadata extends ContextSource {
                return $obj->flattenArrayReal( $vals, $type, $noHtml );
        }
 
-       /**
-        * Flatten an array, using the user language for any messages.
-        *
-        * @param array $vals Array of values
-        * @param string $type Type of array (either lang, ul, ol).
-        *   lang = language assoc array with keys being the lang code
-        *   ul = unordered list, ol = ordered list
-        *   type can also come from the '_type' member of $vals.
-        * @param bool $noHtml If to avoid returning anything resembling HTML.
-        *   (Ugly hack for backwards compatibility with old MediaWiki).
-        * @param bool|IContextSource $context
-        * @return string Single value (in wiki-syntax).
-        */
-       public static function flattenArray( $vals, $type = 'ul', $noHtml = false, $context = false ) {
-               $obj = new FormatMetadata;
-               if ( $context ) {
-                       $obj->setContext( $context );
-               }
-
-               return $obj->flattenArrayReal( $vals, $type, $noHtml );
-       }
-
        /**
         * A function to collapse multivalued tags into a single value.
         * This turns an array of (for example) authors into a bulleted list.
@@ -1626,7 +1604,7 @@ class FormatMetadata extends ContextSource {
                        // This is an API-specific function so it would be cleaner to call it from
                        // outside fetchExtendedMetadata, but this way we don't need to redo the
                        // computation on a cache hit.
-                       $this->sanitizeArrayForXml( $extendedMetadata );
+                       $this->sanitizeArrayForAPI( $extendedMetadata );
                        $valueToCache = array( 'data' => $extendedMetadata, 'timestamp' => wfTimestampNow() );
                        $wgMemc->set( $cacheKey, $valueToCache, $maxCacheTime );
                }
@@ -1822,17 +1800,16 @@ class FormatMetadata extends ContextSource {
 
        /**
         * Makes sure the given array is a valid API response fragment
-        * (can be transformed into XML)
         * @param array $arr
         */
-       protected function sanitizeArrayForXml( &$arr ) {
+       protected function sanitizeArrayForAPI( &$arr ) {
                if ( !is_array( $arr ) ) {
                        return;
                }
 
                $counter = 1;
                foreach ( $arr as $key => &$value ) {
-                       $sanitizedKey = $this->sanitizeKeyForXml( $key );
+                       $sanitizedKey = $this->sanitizeKeyForAPI( $key );
                        if ( $sanitizedKey !== $key ) {
                                if ( isset( $arr[$sanitizedKey] ) ) {
                                        // Make the sanitized keys hopefully unique.
@@ -1846,20 +1823,24 @@ class FormatMetadata extends ContextSource {
                                unset( $arr[$key] );
                        }
                        if ( is_array( $value ) ) {
-                               $this->sanitizeArrayForXml( $value );
+                               $this->sanitizeArrayForAPI( $value );
                        }
                }
+
+               // Handle API metadata keys (particularly "_type")
+               $keys = array_filter( array_keys( $arr ), 'ApiResult::isMetadataKey' );
+               if ( $keys ) {
+                       ApiResult::setPreserveKeysList( $arr, $keys );
+               }
        }
 
        /**
-        * Turns a string into a valid XML identifier.
-        * Used to ensure that keys of an associative array in the
-        * API response do not break the XML formatter.
+        * Turns a string into a valid API identifier.
         * @param string $key
         * @return string
         * @since 1.23
         */
-       protected function sanitizeKeyForXml( $key ) {
+       protected function sanitizeKeyForAPI( $key ) {
                // drop all characters which are not valid in an XML tag name
                // a bunch of non-ASCII letters would be valid but probably won't
                // be used so we take the easy way
index b505280..c2f85e8 100644 (file)
@@ -95,7 +95,7 @@ class SvgHandler extends ImageHandler {
                        $metadata = $this->unpackMetadata( $metadata );
                        if ( isset( $metadata['translations'] ) ) {
                                foreach ( $metadata['translations'] as $lang => $langType ) {
-                                       if ( $langType === SvgReader::LANG_FULL_MATCH ) {
+                                       if ( $langType === SVGReader::LANG_FULL_MATCH ) {
                                                $langList[] = $lang;
                                        }
                                }
index 301336f..5da22f0 100644 (file)
@@ -57,6 +57,7 @@ class ObjectCache {
         * @param string $id
         *
         * @return WANObjectCache
+        * @since 1.26
         */
        static function getWANInstance( $id ) {
                if ( isset( self::$wanInstances[$id] ) ) {
@@ -196,6 +197,7 @@ class ObjectCache {
         *
         * @throws MWException
         * @return WANObjectCache
+        * @since 1.26
         */
        static function newWANCacheFromId( $id ) {
                global $wgWANObjectCaches;
@@ -213,4 +215,16 @@ class ObjectCache {
 
                return new $class( $params );
        }
+
+       /**
+        * Get the main WAN cache object
+        *
+        * @return WANObjectCache
+        * @since 1.26
+        */
+       static function getMainWANInstance() {
+               global $wgMainWANCache;
+
+               return self::getWANInstance( $wgMainWANCache );
+       }
 }
diff --git a/includes/objectcache/WANObjectCache.php b/includes/objectcache/WANObjectCache.php
deleted file mode 100755 (executable)
index 6e5cad6..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Cache
- * @author Aaron Schulz
- */
-
-/**
- * Multi-datacenter aware caching interface
- *
- * All operations go to the local cache, except the delete()
- * and touchCheckKey(), which broadcast to all clusters.
- * This class is intended for caching data from primary stores.
- * If the get() method does not return a value, then the caller
- * should query the new value and backfill the cache using set().
- * When the source data changes, the delete() method should be called.
- * Since delete() is expensive, it should be avoided. One can do so if:
- *   - a) The object cached is immutable; or
- *   - b) Validity is checked against the source after get(); or
- *   - c) Using a modest TTL is reasonably correct and performant
- * Consider using getWithSetCallback() instead of the get()/set() cycle.
- *
- * Instances of this class must be configured to point to a valid
- * PubSub endpoint, and there must be listeners on the cache servers
- * that subscribe to the endpoint and update the caches.
- *
- * Broadcasted operations like delete() and touchCheckKey() are done
- * synchronously in the local cluster, but are relayed asynchronously.
- * This means that callers in other datacenters will see older values
- * for a however many milliseconds the datacenters are apart. As with
- * any cache, this should not be relied on for cases where reads are
- * used to determine writes to source (e.g. non-cache) data stores.
- *
- * All values are wrapped in metadata arrays. Keys use a "WANCache:" prefix
- * to avoid collisions with keys that are not wrapped as metadata arrays. The
- * prefixes are as follows:
- *   - a) "WANCache:v" : used for regular value keys
- *   - b) "WANCache:s" : used for temporarily storing values of tombstoned keys
- *   - c) "WANCache:t" : used for storing timestamp "check" keys
- *
- * @ingroup Cache
- * @since 1.26
- */
-class WANObjectCache {
-       /** @var BagOStuff The local cluster cache */
-       protected $cache;
-       /** @var string Cache pool name */
-       protected $pool;
-       /** @var EventRelayer */
-       protected $relayer;
-
-       /** @var int */
-       protected $lastRelayError = self::ERR_NONE;
-
-       /** Seconds to tombstone keys on delete() */
-       const HOLDOFF_TTL = 10;
-       /** Seconds to keep dependency purge keys around */
-       const CHECK_KEY_TTL = 31536000; // 1 year
-       /** Seconds to keep lock keys around */
-       const LOCK_TTL = 5;
-
-       /** Cache format version number */
-       const VERSION = 1;
-
-       /** Fields of value holder arrays */
-       const FLD_VERSION = 0;
-       const FLD_VALUE = 1;
-       const FLD_TTL = 2;
-       const FLD_TIME = 3;
-
-       /** Possible values for getLastError() */
-       const ERR_NONE = 0; // no error
-       const ERR_NO_RESPONSE = 1; // no response
-       const ERR_UNREACHABLE = 2; // can't connect
-       const ERR_UNEXPECTED = 3; // response gave some error
-       const ERR_RELAY = 4; // relay broadcast failed
-
-       const VALUE_KEY_PREFIX = 'WANCache:v:';
-       const STASH_KEY_PREFIX = 'WANCache:s:';
-       const TIME_KEY_PREFIX = 'WANCache:t:';
-
-       const PURGE_VAL_PREFIX = 'PURGED:';
-
-       /**
-        * @param array $params
-        *   - cache   : BagOStuff object
-        *   - pool    : pool name
-        *   - relayer : EventRelayer object
-        */
-       public function __construct( array $params ) {
-               $this->cache = $params['cache'];
-               $this->pool = $params['pool'];
-               $this->relayer = $params['relayer'];
-       }
-
-       /**
-        * Fetch the value of a key from cache
-        *
-        * If passed in, $curTTL is set to the remaining TTL (current time left):
-        *   - a) INF; if the key exists and has no TTL
-        *   - b) float (>=0); if the key exists and has a TTL
-        *   - c) float (<0); if the key is tombstoned or expired by $checkKeys
-        *   - d) null; if the key does not exist and is not tombstoned
-        *
-        * If a key is tombstoned, $curTTL will reflect the time since delete().
-        *
-        * The timestamp of $key will be checked against the last-purge timestamp
-        * of each of $checkKeys. Those $checkKeys not in cache will have the last-purge
-        * initialized to the current timestamp. If any of $checkKeys have a timestamp
-        * greater than that of $key, then $curTTL will reflect how long ago $key
-        * became invalid. Callers can use $curTTL to know when the value is stale.
-        * The $checkKeys parameter allow mass invalidations by updating a single key:
-        *   - a) Each "check" key represents "last purged" of some source data
-        *   - b) Callers pass in relevant "check" keys as $checkKeys in get()
-        *   - c) When the source data that "check" keys represent changes,
-        *        the touchCheckKey() method is called on them
-        *
-        * For keys that are hot/expensive, consider using getWithSetCallback() instead.
-        *
-        * @param string $key Cache key
-        * @param mixed $curTTL Approximate TTL left on the key if present [returned]
-        * @param array $checkKeys List of "check" keys
-        * @return mixed Value of cache key or false on failure
-        */
-       final public function get( $key, &$curTTL = null, array $checkKeys = array() ) {
-               $curTTLs = array();
-               $values = $this->getMulti( array( $key ), $curTTLs, $checkKeys );
-               $curTTL = isset( $curTTLs[$key] ) ? $curTTLs[$key] : null;
-
-               return isset( $values[$key] ) ? $values[$key] : false;
-       }
-
-       /**
-        * Fetch the value of several keys from cache
-        *
-        * @see WANObjectCache::get()
-        *
-        * @param array $keys List of cache keys
-        * @param array $curTTLs Map of (key => approximate TTL left) for existing keys [returned]
-        * @param array $checkKeys List of "check" keys
-        * @return array Map of (key => value) for keys that exist
-        */
-       final public function getMulti(
-               array $keys, &$curTTLs = array(), array $checkKeys = array()
-       ) {
-               $result = array();
-               $curTTLs = array();
-
-               $vPrefixLen = strlen( self::VALUE_KEY_PREFIX );
-               $valueKeys = self::prefixCacheKeys( $keys, self::VALUE_KEY_PREFIX );
-               $checkKeys = self::prefixCacheKeys( $checkKeys, self::TIME_KEY_PREFIX );
-
-               // Fetch all of the raw values
-               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeys ) );
-               $now = microtime( true );
-
-               // Get/initialize the timestamp of all the "check" keys
-               $checkKeyTimes = array();
-               foreach ( $checkKeys as $checkKey ) {
-                       $timestamp = isset( $wrappedValues[$checkKey] )
-                               ? self::parsePurgeValue( $wrappedValues[$checkKey] )
-                               : false;
-                       if ( !is_float( $timestamp ) ) {
-                               // Key is not set or invalid; regenerate
-                               $this->cache->add( $checkKey,
-                                       self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
-                               $timestamp = $now;
-                       }
-
-                       $checkKeyTimes[] = $timestamp;
-               }
-
-               // Get the main cache value for each key and validate them
-               foreach ( $valueKeys as $vKey ) {
-                       if ( !isset( $wrappedValues[$vKey] ) ) {
-                               continue; // not found
-                       }
-
-                       $key = substr( $vKey, $vPrefixLen ); // unprefix
-
-                       list( $value, $curTTL ) = $this->unwrap( $wrappedValues[$vKey], $now );
-                       if ( $value !== false ) {
-                               $result[$key] = $value;
-                               foreach ( $checkKeyTimes as $checkKeyTime ) {
-                                       // Force dependant keys to be invalid for a while after purging
-                                       // to reduce race conditions involving stale data getting cached
-                                       $safeTimestamp = $checkKeyTime + self::HOLDOFF_TTL;
-                                       if ( $safeTimestamp >= $wrappedValues[$vKey][self::FLD_TIME] ) {
-                                               $curTTL = min( $curTTL, $checkKeyTime - $now );
-                                       }
-                               }
-                       }
-
-                       $curTTLs[$key] = $curTTL;
-               }
-
-               return $result;
-       }
-
-       /**
-        * Set the value of a key from cache
-        *
-        * Simply calling this method when source data changes is not valid because
-        * the changes do not replicate to the other WAN sites. In that case, delete()
-        * should be used instead. This method is intended for use on cache misses.
-        *
-        * @param string $key Cache key
-        * @param mixed $value
-        * @param integer $ttl Seconds to live [0=forever]
-        * @return bool Success
-        */
-       final public function set( $key, $value, $ttl = 0 ) {
-               $key = self::VALUE_KEY_PREFIX . $key;
-               $wrapped = $this->wrap( $value, $ttl );
-
-               $func = function ( $cache, $key, $cWrapped ) use ( $wrapped ) {
-                       return ( is_string( $cWrapped ) )
-                               ? false // key is tombstoned; do nothing
-                               : $wrapped;
-               };
-
-               return $this->cache->merge( $key, $func, $ttl, 1 );
-       }
-
-       /**
-        * Purge a key from all clusters
-        *
-        * This instantiates a hold-off period where the key cannot be
-        * written to avoid race conditions where dependent keys get updated
-        * with a stale value (e.g. from a DB slave).
-        *
-        * This should only be called when the underlying data (being cached)
-        * changes in a significant way. If called twice on the same key, then
-        * the last TTL takes precedence.
-        *
-        * @param string $key Cache key
-        * @param integer $ttl How long to block writes to the key [seconds]
-        * @return bool True if the item was purged or not found, false on failure
-        */
-       final public function delete( $key, $ttl = self::HOLDOFF_TTL ) {
-               $key = self::VALUE_KEY_PREFIX . $key;
-               // Update the local cluster immediately
-               $ok = $this->cache->set( $key, self::PURGE_VAL_PREFIX . microtime( true ), $ttl );
-               // Publish the purge to all clusters
-               return $this->relayPurge( $key, $ttl ) && $ok;
-       }
-
-       /**
-        * Fetch the value of a timestamp "check" key
-        *
-        * @param string $key
-        * @return float|bool TS_UNIX timestamp of the key; false if not present
-        */
-       final public function getCheckKeyTime( $key ) {
-               return self::parsePurgeValue( $this->cache->get( self::TIME_KEY_PREFIX . $key ) );
-       }
-
-       /**
-        * Purge a "check" key from all clusters, invalidating keys that use it
-        *
-        * This should only be called when the underlying data (being cached)
-        * changes in a significant way, and it is impractical to call delete()
-        * on all keys that should be changed. When get() is called on those
-        * keys, the relevant "check" keys must be supplied for this to work.
-        *
-        * The "check" key essentially represents a last-modified field.
-        * It is set in the future a few seconds when this is called, to
-        * avoid race conditions where dependent keys get updated with a
-        * stale value (e.g. from a DB slave).
-        *
-        * @see WANObjectCache::get()
-        *
-        * @param string $key Cache key
-        * @return bool True if the item was purged or not found, false on failure
-        */
-       final public function touchCheckKey( $key ) {
-               $key = self::TIME_KEY_PREFIX . $key;
-               // Update the local cluster immediately
-               $ok = $this->cache->set( $key,
-                       self::PURGE_VAL_PREFIX . microtime( true ), self::CHECK_KEY_TTL );
-               // Publish the purge to all clusters
-               return $this->relayPurge( $key, self::CHECK_KEY_TTL ) && $ok;
-       }
-
-       /**
-        * Method to fetch/regenerate cache keys
-        *
-        * On cache miss, the key will be set to the callback result.
-        * The callback function returns the new value given the current
-        * value (false if not present). If false is returned, then nothing
-        * will be saved to cache.
-        *
-        * Most callers should ignore the current value, but it can be used
-        * to maintain "most recent X" values that come from time or sequence
-        * based source data, provided that the "as of" id/time is tracked.
-        *
-        * Usage of $checkKeys is the same as with get().
-        *
-        * The simplest way to avoid stampedes for hot keys is to use
-        * the 'lockTSE' option in $opts. If cache purges are needed, also:
-        *   a) Pass $key into $checkKeys
-        *   b) Use touchCheckKey( $key ) instead of delete( $key )
-        * Following this pattern lets the old cache be used until a
-        * single thread updates it as needed. Also consider tweaking
-        * the 'lowTTL' parameter.
-        *
-        * Example usage:
-        * <code>
-        *     $key = wfMemcKey( 'cat-recent-actions', $catId );
-        *     // Function that derives the new key value given the old value
-        *     $callback = function( $cValue ) { ... };
-        *     // Get the key value from cache or from source on cache miss;
-        *     // try to only let one cluster thread manage doing cache updates
-        *     $opts = array( 'lockTSE' => 5, 'lowTTL' => 10 );
-        *     $value = $cache->getWithSetCallback( $key, $callback, 60, array(), $opts );
-        * </code>
-        *
-        * Example usage:
-        * <code>
-        *     $key = wfMemcKey( 'cat-state', $catId );
-        *     // The "check" keys that represent things the value depends on;
-        *     // Calling touchCheckKey() on them invalidates "cat-state"
-        *     $checkKeys = array(
-        *         wfMemcKey( 'water-bowls', $houseId ),
-        *         wfMemcKey( 'food-bowls', $houseId ),
-        *         wfMemcKey( 'people-present', $houseId )
-        *     );
-        *     // Function that derives the new key value
-        *     $callback = function() { ... };
-        *     // Get the key value from cache or from source on cache miss;
-        *     // try to only let one cluster thread manage doing cache updates
-        *     $opts = array( 'lockTSE' => 5, 'lowTTL' => 10 );
-        *     $value = $cache->getWithSetCallback( $key, $callback, 60, $checkKeys, $opts );
-        * </code>
-        *
-        * @see WANObjectCache::get()
-        *
-        * @param string $key Cache key
-        * @param callable $callback Value generation function
-        * @param integer $ttl Seconds to live when the key is updated [0=forever]
-        * @param array $checkKeys List of "check" keys
-        * @param array $opts Options map:
-        *   - lowTTL  : consider pre-emptive updates when the current TTL (sec)
-        *               of the key is less than this. It becomes more likely
-        *               over time, becoming a certainty once the key is expired.
-        *   - lockTSE : if the key is tombstoned or expired less (by $checkKeys)
-        *               than this many seconds ago, then try to have a single
-        *               thread handle cache regeneration at any given time.
-        *               Other threads will try to use stale values if possible.
-        *   - tempTTL : when 'lockTSE' is set, this determines the TTL of the temp
-        *               key used to cache values while a key is tombstoned.
-        *               This avoids excessive regeneration of hot keys on delete() but
-        *               may result in stale values.
-        * @return mixed Value to use for the key
-        */
-       final public function getWithSetCallback(
-               $key, $callback, $ttl, array $checkKeys = array(), array $opts = array()
-       ) {
-               $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( 10, $ttl );
-               $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : -1;
-               $tempTTL = isset( $opts['tempTTL'] ) ? $opts['tempTTL'] : 5;
-
-               // Get the current key value
-               $curTTL = null;
-               $cValue = $this->get( $key, $curTTL, $checkKeys ); // current value
-               $value = $cValue; // return value
-
-               // Determine if a regeneration is desired
-               if ( $value !== false && $curTTL > 0 && !$this->worthRefresh( $curTTL, $lowTTL ) ) {
-                       return $value;
-               }
-
-               if ( !is_callable( $callback ) ) {
-                       throw new InvalidArgumentException( "Invalid cache miss callback provided." );
-               }
-
-               // Assume a key is hot if requested soon after invalidation
-               $isHot = ( $curTTL !== null && $curTTL <= 0 && abs( $curTTL ) <= $lockTSE );
-               $isTombstone = ( $curTTL !== null && $value === false );
-
-               $locked = false;
-               if ( $isHot || $isTombstone ) {
-                       // Acquire a cluster-local non-blocking lock
-                       if ( $this->cache->lock( $key, 0, self::LOCK_TTL ) ) {
-                               // Lock acquired; this thread should update the key
-                               $locked = true;
-                       } elseif ( $value !== false ) {
-                               // If it cannot be acquired; then the stale value can be used
-                               return $value;
-                       } else {
-                               // Either another thread has the lock or the lock failed.
-                               // Use the stash value, which is likely from the prior thread.
-                               $value = $this->cache->get( self::STASH_KEY_PREFIX . $key );
-                               // Regenerate on timeout or if the other thread failed
-                               if ( $value !== false ) {
-                                       return $value;
-                               }
-                       }
-               }
-
-               // Generate the new value from the callback...
-               $value = call_user_func( $callback, $cValue );
-               // When delete() is called, writes are write-holed by the tombstone,
-               // so use a special stash key to pass the new value around threads.
-               if ( $value !== false && ( $isHot || $isTombstone ) ) {
-                       $this->cache->set( self::STASH_KEY_PREFIX . $key, $value, $tempTTL );
-               }
-
-               if ( $locked ) {
-                       $this->cache->unlock( $key );
-               }
-
-               if ( $value !== false ) {
-                       // Update the cache; this will fail if the key is tombstoned
-                       $this->set( $key, $value, $ttl );
-               }
-
-               return $value;
-       }
-
-       /**
-        * Get the "last error" registered; clearLastError() should be called manually
-        * @return int ERR_* constant for the "last error" registry
-        */
-       final public function getLastError() {
-               if ( $this->lastRelayError ) {
-                       // If the cache and the relayer failed, focus on the later.
-                       // An update not making it to the relayer means it won't show up
-                       // in other DCs (nor will consistent re-hashing see up-to-date values).
-                       // On the other hand, if just the cache update failed, then it should
-                       // eventually be applied by the relayer.
-                       return $this->lastRelayError;
-               }
-
-               $code = $this->cache->getLastError();
-               switch ( $code ) {
-                       case BagOStuff::ERR_NONE:
-                               return self::ERR_NONE;
-                       case BagOStuff::ERR_NO_RESPONSE:
-                               return self::ERR_NO_RESPONSE;
-                       case BagOStuff::ERR_UNREACHABLE:
-                               return self::ERR_UNREACHABLE;
-                       default:
-                               return self::ERR_UNEXPECTED;
-               }
-       }
-
-       /**
-        * Clear the "last error" registry
-        */
-       final public function clearLastError() {
-               $this->cache->clearLastError();
-               $this->lastRelayError = self::ERR_NONE;
-       }
-
-       /**
-        * Do the actual async bus purge of a key
-        *
-        * This must set the key to "PURGED:<UNIX timestamp>"
-        *
-        * @param string $key Cache key
-        * @param integer $ttl How long to keep the tombstone [seconds]
-        * @return bool Success
-        */
-       protected function relayPurge( $key, $ttl ) {
-               $event = $this->cache->modifySimpleRelayEvent( array(
-                       'cmd' => 'set',
-                       'key' => $key,
-                       'val' => 'PURGED:$UNIXTIME$',
-                       'ttl' => max( $ttl, 1 ),
-                       'sbt' => true, // substitute $UNIXTIME$ with actual microtime
-               ) );
-
-               $ok = $this->relayer->notify( "{$this->pool}:purge", $event );
-               if ( !$ok ) {
-                       $this->lastRelayError = self::ERR_RELAY;
-               }
-
-               return $ok;
-       }
-
-       /**
-        * Check if a key should be regenerated (using random probability)
-        *
-        * This returns false if $curTTL >= $lowTTL. Otherwise, the chance
-        * of returning true increases steadily from 0% to 100% as the $curTTL
-        * moves from $lowTTL to 0 seconds. This handles widely varying
-        * levels of cache access traffic.
-        *
-        * @param float|INF $curTTL Approximate TTL left on the key if present
-        * @param float $lowTTL Consider a refresh when $curTTL is less than this
-        * @return bool
-        */
-       protected function worthRefresh( $curTTL, $lowTTL ) {
-               if ( $curTTL >= $lowTTL ) {
-                       return false;
-               } elseif ( $curTTL <= 0 ) {
-                       return true;
-               }
-
-               $chance = ( 1 - $curTTL / $lowTTL );
-
-               return mt_rand( 1, 1e9 ) <= 1e9 * $chance;
-       }
-
-       /**
-        * Do not use this method outside WANObjectCache
-        *
-        * @param mixed $value
-        * @param integer $ttl [0=forever]
-        * @return string
-        */
-       protected function wrap( $value, $ttl ) {
-               return array(
-                       self::FLD_VERSION => self::VERSION,
-                       self::FLD_VALUE => $value,
-                       self::FLD_TTL => $ttl,
-                       self::FLD_TIME => microtime( true )
-               );
-       }
-
-       /**
-        * Do not use this method outside WANObjectCache
-        *
-        * @param array|string|bool $wrapped
-        * @param float $now Unix Current timestamp (preferrable pre-query)
-        * @return array (mixed; false if absent/invalid, current time left)
-        */
-       protected function unwrap( $wrapped, $now ) {
-               // Check if the value is a tombstone
-               $purgeTimestamp = self::parsePurgeValue( $wrapped );
-               if ( is_float( $purgeTimestamp ) ) {
-                       // Purged values should always have a negative current $ttl
-                       $curTTL = min( -0.000001, $purgeTimestamp - $now );
-                       return array( false, $curTTL );
-               }
-
-               if ( !is_array( $wrapped ) // not found
-                       || !isset( $wrapped[self::FLD_VERSION] ) // wrong format
-                       || $wrapped[self::FLD_VERSION] !== self::VERSION // wrong version
-               ) {
-                       return array( false, null );
-               }
-
-               if ( $wrapped[self::FLD_TTL] > 0 ) {
-                       // Get the approximate time left on the key
-                       $age = $now - $wrapped[self::FLD_TIME];
-                       $curTTL = max( $wrapped[self::FLD_TTL] - $age, 0.0 );
-               } else {
-                       // Key had no TTL, so the time left is unbounded
-                       $curTTL = INF;
-               }
-
-               return array( $wrapped[self::FLD_VALUE], $curTTL );
-       }
-
-       /**
-        * @param array $keys
-        * @param string $prefix
-        * @return string
-        */
-       protected static function prefixCacheKeys( array $keys, $prefix ) {
-               $res = array();
-               foreach ( $keys as $key ) {
-                       $res[] = $prefix . $key;
-               }
-
-               return $res;
-       }
-
-       /**
-        * @param string $value String like "PURGED:<timestamp>"
-        * @return float|bool UNIX timestamp or false on failure
-        */
-       protected static function parsePurgeValue( $value ) {
-               $m = array();
-               if ( is_string( $value ) &&
-                       preg_match( '/^' . self::PURGE_VAL_PREFIX . '([^:]+)$/', $value, $m )
-               ) {
-                       return (float)$m[1];
-               } else {
-                       return false;
-               }
-       }
-}
index 68ef668..9062251 100644 (file)
@@ -35,7 +35,7 @@ class ProfileSection {
         * the same moment that the function to be profiled terminates.
         *
         * This is typically called like:
-        * <code>$section = new ProfileSection( __METHOD__ );</code>
+        * @code$section = new ProfileSection( __METHOD__ );@endcode
         *
         * @param string $name Name of the function to profile
         */
old mode 100755 (executable)
new mode 100644 (file)
index f02d66f..5f2a57a 100644 (file)
@@ -25,6 +25,7 @@
 use Psr\Log\LoggerInterface;
 use Psr\Log\LoggerAwareInterface;
 use Psr\Log\NullLogger;
+
 /**
  * Helper class that detects high-contention DB queries via profiling calls
  *
@@ -52,11 +53,13 @@ class TransactionProfiler implements LoggerAwareInterface {
        );
        /** @var array */
        protected $expect = array(
-               'writes'      => INF,
-               'queries'     => INF,
-               'conns'       => INF,
-               'masterConns' => INF,
-               'maxAffected' => INF
+               'writes'         => INF,
+               'queries'        => INF,
+               'conns'          => INF,
+               'masterConns'    => INF,
+               'maxAffected'    => INF,
+               'readQueryTime'  => INF,
+               'writeQueryTime' => INF,
        );
        /** @var array */
        protected $expectBy = array();
@@ -77,7 +80,7 @@ class TransactionProfiler implements LoggerAwareInterface {
        /**
         * Set performance expectations
         *
-        * With conflicting expect, the most specific ones will be used
+        * With conflicting expectations, the most narrow ones will be used
         *
         * @param string $event (writes,queries,conns,mConns)
         * @param integer $value Maximum count of the event
@@ -93,6 +96,21 @@ class TransactionProfiler implements LoggerAwareInterface {
                }
        }
 
+       /**
+        * Set multiple performance expectations
+        *
+        * With conflicting expectations, the most narrow ones will be used
+        *
+        * @param array $expects Map of (event => limit)
+        * @param $fname
+        * @since 1.26
+        */
+       public function setExpectations( array $expects, $fname ) {
+               foreach ( $expects as $event => $value ) {
+                       $this->setExpectation( $event, $value, $fname );
+               }
+       }
+
        /**
         * Reset performance expectations and hit counters
         *
@@ -170,7 +188,8 @@ class TransactionProfiler implements LoggerAwareInterface {
                $elapsed = ( $eTime - $sTime );
 
                if ( $isWrite && $n > $this->expect['maxAffected'] ) {
-                       $this->logger->info( "Query affected $n row(s):\n" . $query . "\n" . wfBacktrace( true ) );
+                       $this->logger->info( "Query affected $n row(s):\n" . $query . "\n" .
+                               wfBacktrace( true ) );
                }
 
                // Report when too many writes/queries happen...
@@ -180,6 +199,13 @@ class TransactionProfiler implements LoggerAwareInterface {
                if ( $isWrite && $this->hits['writes']++ == $this->expect['writes'] ) {
                        $this->reportExpectationViolated( 'writes', $query );
                }
+               // Report slow queries...
+               if ( !$isWrite && $elapsed > $this->expect['readQueryTime'] ) {
+                       $this->reportExpectationViolated( 'readQueryTime', $query );
+               }
+               if ( $isWrite && $elapsed > $this->expect['writeQueryTime'] ) {
+                       $this->reportExpectationViolated( 'writeQueryTime', $query );
+               }
 
                if ( !$this->dbTrxHoldingLocks ) {
                        // Short-circuit
@@ -268,7 +294,8 @@ class TransactionProfiler implements LoggerAwareInterface {
                $n = $this->expect[$expect];
                $by = $this->expectBy[$expect];
                $this->logger->info(
-                       "[{$wgRequest->getMethod()}] Expectation ($expect <= $n) by $by not met:\n$query\n" . wfBacktrace( true )
+                       "[{$wgRequest->getMethod()}] Expectation ($expect <= $n) by $by not met:\n$query\n" .
+                       wfBacktrace( true )
                );
        }
 }
index f8d8d2f..7da3aec 100644 (file)
@@ -764,6 +764,9 @@ class ResourceLoader {
 
                                header( 'HTTP/1.0 304 Not Modified' );
                                header( 'Status: 304 Not Modified' );
+
+                               // Send content type and cache headers
+                               $this->sendResponseHeaders( $context, $mtime, false );
                                return true;
                        }
                }
@@ -798,18 +801,18 @@ class ResourceLoader {
                }
                if ( $good ) {
                        $ts = $fileCache->cacheTimestamp();
-                       // Send content type and cache headers
-                       $this->sendResponseHeaders( $context, $ts, false );
                        // If there's an If-Modified-Since header, respond with a 304 appropriately
                        if ( $this->tryRespondLastModified( $context, $ts ) ) {
                                return false; // output handled (buffers cleared)
                        }
-                       $response = $fileCache->fetchText();
                        // Capture any PHP warnings from the output buffer and append them to the
                        // response in a comment if we're in debug mode.
                        if ( $context->getDebug() && strlen( $warnings = ob_get_contents() ) ) {
                                $response = "/*\n$warnings\n*/\n" . $response;
                        }
+                       // Send content type and cache headers
+                       $this->sendResponseHeaders( $context, $ts, false );
+                       $response = $fileCache->fetchText();
                        // Remove the output buffer and output the response
                        ob_end_clean();
                        echo $response . "\n/* Cached {$ts} */";
index 7efdb26..53e0815 100644 (file)
@@ -28,6 +28,8 @@
  */
 class ResourceLoaderImageModule extends ResourceLoaderModule {
 
+       private $definition = null;
+
        /**
         * Local base path, see __construct()
         * @var string
@@ -57,6 +59,8 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         *     array(
         *         // Base path to prepend to all local paths in $options. Defaults to $IP
         *         'localBasePath' => [base path],
+        *         // Path to JSON file that contains any of the settings below
+        *         'data' => [file path string]
         *         // CSS class prefix to use in all style rules
         *         'prefix' => [CSS class prefix],
         *         // Alternatively: Format of CSS selector to use in all style rules
@@ -90,6 +94,26 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        public function __construct( $options = array(), $localBasePath = null ) {
                $this->localBasePath = self::extractLocalBasePath( $options, $localBasePath );
 
+               $this->definition = $options;
+       }
+
+       /**
+        * Parse definition and external JSON data, if referenced.
+        */
+       private function ensureStuffLoaded() {
+               if ( $this->definition === null ) {
+                       return;
+               }
+
+               $options = $this->definition;
+               $this->definition = null;
+
+               if ( isset( $options['data'] ) ) {
+                       $dataPath = $this->localBasePath . '/' . $options['data'];
+                       $data = json_decode( file_get_contents( $dataPath ), true );
+                       $options = array_merge( $data, $options );
+               }
+
                // Accepted combinations:
                // * prefix
                // * selector
@@ -144,6 +168,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return string
         */
        public function getPrefix() {
+               $this->ensureStuffLoaded();
                return $this->prefix;
        }
 
@@ -152,6 +177,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return string
         */
        public function getSelectors() {
+               $this->ensureStuffLoaded();
                return array(
                        'selectorWithoutVariant' => $this->selectorWithoutVariant,
                        'selectorWithVariant' => $this->selectorWithVariant,
@@ -164,6 +190,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return ResourceLoaderImage|null
         */
        public function getImage( $name ) {
+               $this->ensureStuffLoaded();
                $images = $this->getImages();
                return isset( $images[$name] ) ? $images[$name] : null;
        }
@@ -174,6 +201,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         */
        public function getImages() {
                if ( !isset( $this->imageObjects ) ) {
+                       $this->ensureStuffLoaded();
                        $this->imageObjects = array();
 
                        foreach ( $this->images as $name => $options ) {
@@ -213,6 +241,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         */
        public function getGlobalVariants() {
                if ( !isset( $this->globalVariants ) ) {
+                       $this->ensureStuffLoaded();
                        $this->globalVariants = array();
 
                        if ( isset( $this->variants ) ) {
@@ -232,6 +261,8 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return array
         */
        public function getStyles( ResourceLoaderContext $context ) {
+               $this->ensureStuffLoaded();
+
                // Build CSS rules
                $rules = array();
                $script = $context->getResourceLoader()->getLoadScript( $this->getSource() );
@@ -310,6 +341,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
+               $this->ensureStuffLoaded();
                $summary = parent::getDefinitionSummary( $context );
                foreach ( array(
                        'localBasePath',
@@ -332,6 +364,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         * @return int UNIX timestamp
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
+               $this->ensureStuffLoaded();
                $files = array();
                foreach ( $this->getImages() as $name => $image ) {
                        $files[] = $image->getPath( $context );
index ed16521..d1b024f 100644 (file)
@@ -520,6 +520,12 @@ abstract class ResourceLoaderModule {
 
                wfDebugLog( 'resourceloader', __METHOD__ . ": New definition for module "
                        . "{$this->getName()} in context \"{$context->getHash()}\"" );
+               // WMF logging for T94810
+               global $wgRequest;
+               if ( isset( $wgRequest ) && $context->getUser() ) {
+                       wfDebugLog( 'resourceloader', __METHOD__ . ": Request with user parameter in "
+                       . "context \"{$context->getHash()}\" from " . $wgRequest->getRequestURL() );
+               }
 
                $timestamp = time();
                $cache->set( $key, $timestamp );
index 62f6ca3..169c0d8 100644 (file)
@@ -57,13 +57,13 @@ class SiteExporter {
                        'xmlns' => 'http://www.mediawiki.org/xml/sitelist-1.0/',
                );
 
-               fwrite( $this->sink, XML::openElement( 'sites', $attributes ) . "\n" );
+               fwrite( $this->sink, Xml::openElement( 'sites', $attributes ) . "\n" );
 
                foreach ( $sites as $site ) {
                        $this->exportSite( $site );
                }
 
-               fwrite( $this->sink, XML::closeElement( 'sites' ) . "\n" );
+               fwrite( $this->sink, Xml::closeElement( 'sites' ) . "\n" );
                fflush( $this->sink );
        }
 
@@ -79,36 +79,36 @@ class SiteExporter {
                        $siteAttr = null;
                }
 
-               fwrite( $this->sink, "\t" . XML::openElement( 'site', $siteAttr ) . "\n" );
+               fwrite( $this->sink, "\t" . Xml::openElement( 'site', $siteAttr ) . "\n" );
 
-               fwrite( $this->sink, "\t\t" . XML::element( 'globalid', null, $site->getGlobalId() ) . "\n" );
+               fwrite( $this->sink, "\t\t" . Xml::element( 'globalid', null, $site->getGlobalId() ) . "\n" );
 
                if ( $site->getGroup() !== Site::GROUP_NONE ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'group', null, $site->getGroup() ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'group', null, $site->getGroup() ) . "\n" );
                }
 
                if ( $site->getSource() !== Site::SOURCE_LOCAL ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'source', null, $site->getSource() ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'source', null, $site->getSource() ) . "\n" );
                }
 
                if ( $site->shouldForward() ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'forward', null, '' ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'forward', null, '' ) . "\n" );
                }
 
                foreach ( $site->getAllPaths() as $type => $path ) {
-                       fwrite( $this->sink, "\t\t" . XML::element( 'path', array( 'type' => $type ), $path ) . "\n" );
+                       fwrite( $this->sink, "\t\t" . Xml::element( 'path', array( 'type' => $type ), $path ) . "\n" );
                }
 
                foreach ( $site->getLocalIds() as $type => $ids ) {
                        foreach ( $ids as $id ) {
-                               fwrite( $this->sink, "\t\t" . XML::element( 'localid', array( 'type' => $type ), $id ) . "\n" );
+                               fwrite( $this->sink, "\t\t" . Xml::element( 'localid', array( 'type' => $type ), $id ) . "\n" );
                        }
                }
 
                //@todo: export <data>
                //@todo: export <config>
 
-               fwrite( $this->sink, "\t" . XML::closeElement( 'site' ) . "\n" );
+               fwrite( $this->sink, "\t" . Xml::closeElement( 'site' ) . "\n" );
        }
 
 }
index 5e2ee1c..047e941 100644 (file)
@@ -267,21 +267,24 @@ class SpecialActiveUsers extends SpecialPage {
                $out->wrapWikiMsg( "<div class='mw-activeusers-intro'>\n$1\n</div>",
                        array( 'activeusers-intro', $this->getLanguage()->formatNum( $days ) ) );
 
-               // Get the timestamp of the last cache update
+               // Mention the level of cache staleness...
                $dbr = wfGetDB( DB_SLAVE, 'recentchanges' );
-               $cTime = $dbr->selectField( 'querycache_info',
-                       'qci_timestamp',
-                       array( 'qci_type' => 'activeusers' )
-               );
-
-               $secondsOld = $cTime
-                       ? time() - wfTimestamp( TS_UNIX, $cTime )
-                       : $days * 86400; // fully stale :)
-
-               if ( $secondsOld > 0 ) {
-                       // Mention the level of staleness
-                       $out->addWikiMsg( 'cachedspecial-viewing-cached-ttl',
+               $rcMax = $dbr->selectField( 'recentchanges', 'MAX(rc_timestamp)' );
+               if ( $rcMax ) {
+                       $cTime = $dbr->selectField( 'querycache_info',
+                               'qci_timestamp',
+                               array( 'qci_type' => 'activeusers' )
+                       );
+                       if ( $cTime ) {
+                               $secondsOld = wfTimestamp( TS_UNIX, $rcMax ) - wfTimestamp( TS_UNIX, $cTime );
+                       } else {
+                               $rcMin = $dbr->selectField( 'recentchanges', 'MIN(rc_timestamp)' );
+                               $secondsOld = time() - wfTimestamp( TS_UNIX, $rcMin );
+                       }
+                       if ( $secondsOld > 0 ) {
+                               $out->addWikiMsg( 'cachedspecial-viewing-cached-ttl',
                                $this->getLanguage()->formatDuration( $secondsOld ) );
+                       }
                }
 
                $up = new ActiveUsersPager( $this->getContext(), null, $par );
index 5211e30..91eade1 100644 (file)
@@ -29,7 +29,7 @@
  */
 class SpecialAllMessages extends SpecialPage {
        /**
-        * @var AllmessagesTablePager
+        * @var AllMessagesTablePager
         */
        protected $table;
 
@@ -61,7 +61,7 @@ class SpecialAllMessages extends SpecialPage {
                $out->addModuleStyles( 'mediawiki.special' );
                $out->addHelpLink( 'Help:System message' );
 
-               $this->table = new AllmessagesTablePager(
+               $this->table = new AllMessagesTablePager(
                        $this,
                        array(),
                        wfGetLangObj( $request->getVal( 'lang', $par ) )
index f16e5ba..fe6ce68 100644 (file)
@@ -165,7 +165,7 @@ class SpecialLog extends SpecialPage {
                $loglist = new LogEventsList(
                        $this->getContext(),
                        null,
-                       LogEventsList::USE_REVDEL_CHECKBOXES
+                       LogEventsList::USE_CHECKBOXES
                );
                $pager = new LogPager(
                        $loglist,
index 1387988..7dc1158 100644 (file)
@@ -233,14 +233,21 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        return false;
                }
 
-               // rc_new is not an ENUM, but adding a redundant rc_new IN (0,1) gives mysql enough
-               // knowledge to use an index merge if it wants (it may use some other index though).
+               // array_merge() is used intentionally here so that hooks can, should
+               // they so desire, override the ORDER BY / LIMIT condition(s); prior to
+               // MediaWiki 1.26 this used to use the plus operator instead, which meant
+               // that extensions weren't able to change these conditions
+               $query_options = array_merge( array(
+                       'ORDER BY' => 'rc_timestamp DESC',
+                       'LIMIT' => $opts['limit'] ), $query_options );
                $rows = $dbr->select(
                        $tables,
                        $fields,
+                       // rc_new is not an ENUM, but adding a redundant rc_new IN (0,1) gives mysql enough
+                       // knowledge to use an index merge if it wants (it may use some other index though).
                        $conds + array( 'rc_new' => array( 0, 1 ) ),
                        __METHOD__,
-                       array( 'ORDER BY' => 'rc_timestamp DESC', 'LIMIT' => $opts['limit'] ) + $query_options,
+                       $query_options,
                        $join_conds
                );
 
index 393c3e0..78b5e06 100644 (file)
        "pool-queuefull": "Die poel se wagtou is vol",
        "pool-errorunknown": "Onbekende fout",
        "pool-servererror": "Die \"pool counter\"-diens is nie beskikbaar nie ($1).",
+       "poolcounter-usage-error": "Gebruiksfout: $1",
        "aboutsite": "Inligting oor {{SITENAME}}",
        "aboutpage": "Project:Omtrent",
        "copyright": "Inhoud is onderhewig aan $1, tensy anders vermeld",
        "disclaimers": "Voorbehoud",
        "disclaimerpage": "Project:Voorwaardes",
        "edithelp": "Wysigingshulp",
+       "helppage-top-gethelp": "Hulp",
        "mainpage": "Tuisblad",
        "mainpage-description": "Tuisblad",
        "policy-url": "Project:Beleid",
        "readonly_lag": "Die databasis is outomaties gesluit terwyl die slaafdatabasisse met die meester gesinchroniseer word",
        "internalerror": "Interne fout",
        "internalerror_info": "Interne fout: $1",
+       "internalerror-fatal-exception": "Fatale fout van tipe \"$1\"",
        "filecopyerror": "Kon nie lêer van \"$1\" na \"$2\" kopieer nie.",
        "filerenameerror": "Kon nie lêernaam van \"$1\" na \"$2\" wysig nie.",
        "filedeleteerror": "Kon nie lêer \"$1\" skrap nie.",
        "directorycreateerror": "Kon nie gids \"$1\" skep nie.",
+       "directoryreadonlyerror": "Gids \"$1\" is lees-alleen.",
+       "directorynotreadableerror": "Gids \"$1\" is nie leesbaar nie.",
        "filenotfound": "Kon nie lêer \"$1\" vind nie.",
        "unexpected": "Onverwagte waarde: \"$1\"=\"$2\".",
        "formerror": "Fout: kon vorm nie stuur nie",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "content-json-empty-object": "Leë objek",
+       "content-json-empty-array": "Leë reeks",
        "duplicate-args-category": "Bladsye met dubbele sjabloonparameters",
        "expensive-parserfunction-warning": "Waarskuwing: Die bladsy gebruik te veel duur ontlederfunksies.\n\nDaar is {{PLURAL:$1|$1 funksie|$1 funksies}}, terwyl die bladsy minder as $2 moet hê.",
        "expensive-parserfunction-category": "Bladsye wat te veel duur ontlederfunkies gebruik",
        "notextmatches": "Geen artikelteks resultate nie",
        "prevn": "vorige {{PLURAL:$1|$1}}",
        "nextn": "volgende {{PLURAL:$1|$1}}",
+       "prev-page": "vorige bladsy",
+       "next-page": "volgende bladsy",
        "prevn-title": "Vorige {{PLURAL:$1|resultaat|$1 resultate}}",
        "nextn-title": "Volgende {{PLURAL:$1|resultaat|$1 resultate}}",
        "shown-title": "$1 {{PLURAL:$1|resultaat|resultate}} per bladsy",
        "prefs-personal": "Gebruikersdata",
        "prefs-rc": "Onlangse wysigings",
        "prefs-watchlist": "Dophoulys",
+       "prefs-editwatchlist": "Wysig dophoulys",
        "prefs-watchlist-days": "Aantal dae om in dophoulys te wys:",
        "prefs-watchlist-days-max": "Maksimum $1 {{PLURAL:$1|dag|dae}}",
        "prefs-watchlist-edits": "Aantal wysigings om in uitgebreide dophoulys te wys:",
index 5658641..798815b 100644 (file)
@@ -11,7 +11,8 @@
                        "Willtron",
                        "לערי ריינהארט",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Carlos Cristia"
                ]
        },
        "tog-underline": "Subrayar os vinclos:",
        "permalink": "Vinclo permanent",
        "print": "Imprentar",
        "view": "Veyer",
+       "view-foreign": "Beyer en $1",
        "edit": "Editar",
        "create": "Creyar",
        "editthispage": "Editar ista pachina",
        "login-abort-generic": "A dentrada a la cuenta d'usuario ha fallato - Cancelato",
        "loginlanguagelabel": "Idioma: $1",
        "suspicious-userlogout": "S'ha denegau a suya demanda de zarrar a sesión ya que pareix que la ninvió un navegador defectuoso u bell proxy amagau.",
+       "pt-login": "Dentrar-ie",
        "php-mail-error-unknown": "Error desconoixito en a función mail() de PHP",
        "user-mail-no-addy": "Ha mirau de ninviar un mensache de correu sin una adreza de correu electronico.",
        "changepassword": "Cambiar a clau",
        "rcnotefrom": "Contino s'amuestran os cambeos dende '''$2''' (dica '''$1''').",
        "rclistfrom": "Amostrar cambeos recients dende $3 $2",
        "rcshowhideminor": "$1 as edicions menors",
+       "rcshowhideminor-hide": "Amagar",
        "rcshowhidebots": "$1 bots",
+       "rcshowhidebots-show": "Amostrar",
        "rcshowhideliu": "$1 usuarios rechistraus",
        "rcshowhideanons": "$1 usuarios anonimos",
        "rcshowhidepatr": "$1 edicions controlatas",
        "rcshowhidemine": "$1 as mías edicions",
+       "rcshowhidemine-hide": "Amagar",
        "rclinks": "Amostrar os zaguers $1 cambeos en os zaguers $2 días.<br />$3",
        "diff": "dif",
        "hist": "hist",
        "import-interwiki-history": "Copiar todas as versions de l'historial d'ista pachina",
        "import-interwiki-templates": "Incluir-ie todas as las plantillas",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Espacio de nombres de destín:",
        "import-upload-filename": "Nombre de fichero:",
        "import-comment": "Comentario:",
        "importtext": "Por favor, exporte o fichero dende o wiki d'orichen fendo servir a [[Special:Export|ferramienta d'exportación]].\nAlce-lo en o suyo ordenador y cargue-lo aquí.",
        "pageinfo-watchers": "Numero d'usuarios que la cosiran",
        "pageinfo-edits": "Numero d'edicions",
        "pageinfo-authors": "Numero d'autors diferents",
+       "pageinfo-toolboxlink": "Información d'a pachina",
        "markaspatrolleddiff": "Sinyalar como ya controlato",
        "markaspatrolledtext": "Sinyalar iste articlo como controlato",
        "markedaspatrolled": "Sinyalato como controlato",
        "logentry-patrol-patrol": "$1 marcó a edición $4 d'a pachina $3 como patrullada",
        "logentry-patrol-patrol-auto": "$1 marcó automaticament a edición $4 d'a pachina $3 como patrullada",
        "logentry-newusers-newusers": "$1 creyó una cuenta d'usuario",
-       "logentry-newusers-create": "$1 creyó una cuenta d'usuario",
+       "logentry-newusers-create": "A cuenta d'usuario $1 estió {{GENDER:$2|creyada}}",
        "logentry-newusers-create2": "$1 creyó una cuenta d'usuario $3",
        "logentry-newusers-autocreate": "S'ha creyau automaticament a cuenta $1",
        "rightsnone": "(garra)",
index 06899e8..2d591cb 100644 (file)
        "import-interwiki-history": "Copiar toles versiones d'historial d'esta páxina",
        "import-interwiki-templates": "Incluyir toles plantíes",
        "import-interwiki-submit": "Importar",
+       "import-mapping-default": "Importar a los llugares predeterminaos",
+       "import-mapping-namespace": "Importar a un espaciu de nomes:",
+       "import-mapping-subpage": "Importar como subpáxines de la páxina siguiente:",
        "import-upload-filename": "Nome del ficheru:",
        "import-comment": "Comentariu:",
        "importtext": "Por favor, esporta'l ficheru dende la wiki d'orixe usando la [[Special:Export|ferramienta d'esportación]].\nGuárdalu nel ordenador y xúbilu equí.",
index e6e4c07..7d9a4bd 100644 (file)
        "import-rootpage-nosubpage": "दिए गए उपसर्ग पृष्ठ \"$1\" के नामस्थान में उप-पृष्ठ नहीं बनाए जा सकते।",
        "importlogpage": "आयात सूची",
        "importlogpagetext": "अन्य विकियों से प्रबन्धकों द्वारा किए गए सम्पादन इतिहास के साथ होने वाले पृष्ठों का आयात।",
+       "import-logentry-upload-detail": "$1 अवतरण आयात {{PLURAL:$1|किया गया|किये गए}}",
+       "import-logentry-interwiki-detail": "$2 से $1 अवतरण आयात {{PLURAL:$1|किया गया|किये गए}}",
        "javascripttest": "जावास्क्रिप्ट परीक्षण",
+       "javascripttest-pagetext-noframework": "यह पृष्ठ जावास्क्रिप्ट परीक्षण चलाने के लिए है।",
        "javascripttest-pagetext-unknownframework": "अज्ञात परीक्षण ढाँचा \"$1\"",
        "javascripttest-pagetext-unknownaction": "अज्ञात काम \"$1\".",
        "javascripttest-pagetext-frameworks": "कृपया निम्न परीक्षण ढाँचों में से एक चुनें: $1",
        "tooltip-ca-protect": "इ पन्ना कय सुरक्षित करा जाय",
        "tooltip-ca-unprotect": "ई पन्ना कय सुरक्षा स्तर बदला जाय",
        "tooltip-ca-delete": "ई पन्ना मेटावा जाय",
+       "tooltip-ca-undelete": "इस पृष्ठ को हटाने से पहले किये गये बदलाव पुनर्स्थापित करें",
        "tooltip-ca-move": "ई पन्ना कय नाँव बदला जाय",
        "tooltip-ca-watch": "इ पन्ना कय अपने ध्यानसूची में डारा जाय",
        "tooltip-ca-unwatch": "इ पन्ना कय अपने ध्यानसूची से हटावा जाय",
        "pageinfo-contentpage-yes": "हाँ",
        "pageinfo-protect-cascading-yes": "हाँ",
        "pageinfo-category-info": "श्रेणी जानकारी",
+       "pageinfo-category-total": "कुल सदस्य गिन्ती",
        "pageinfo-category-pages": "पन्नन कय सङ्ख्या",
        "pageinfo-category-subcats": "उपश्रेणिन कय गिन्ती",
        "pageinfo-category-files": "फाइल कय गिन्ती",
        "patrol-log-page": "परीक्षण लॉग",
        "patrol-log-header": "यह परीक्षित अवतरणों की लॉग है।",
        "log-show-hide-patrol": "परीक्षण लॉग $1",
+       "log-show-hide-tag": "$1 चिप्पी लग",
        "deletedrevision": "पुरान अवतरण $1 हटाय दिहा गा है",
        "filedeleteerror-short": "फ़ाईल हटावै मा समस्या: $1",
        "filedeleteerror-long": "फ़ाइल हटावै में आवा गल्ती:\n\n$1",
        "file-info-png-looped": "चक्रित",
        "file-info-png-repeat": "$1 {{PLURAL:$1|दाइ}} प्ले होइ चुका है",
        "file-info-png-frames": "$1 {{PLURAL:$1|फ्रेम}}",
+       "file-no-thumb-animation": "'''सूचना: तकनीकी समस्याओं के कारण इस फ़ाइल के थम्बनेल ऐनिमेटिड नहीं होंगे।'''",
+       "file-no-thumb-animation-gif": "'''सूचना:तकनीकी समस्याओं के कारण इस फ़ाइल जैसे अधिक रेज़ोल्यूशन गिफ़ चित्रों के थम्बनेल ऐनिमेटिड नहीं होंगे।'''",
        "newimages": "नँवा फ़ाईल्स कय गैलरी",
+       "imagelisttext": "नीचे $2 के नुसार '''$1''' {{PLURAL:$1|फ़ाईल दी है।|फ़ाईलें दी हुईं हैं।}}",
+       "newimages-summary": "यह विशेष पृष्ठ हाल ही में अपलोड की गयी फ़ाइलें दिखाता है।",
        "newimages-legend": "छनना",
        "newimages-label": "फाइल नाँव (या ओकर अंश):",
        "newimages-showbots": "बाट कय अपलोड देखावा जाय",
        "saturday-at": "शनीच्चर कय $1",
        "sunday-at": "अत्तवार कय $1",
        "yesterday-at": "कल्हीँया",
+       "bad_image_list": "प्रारूप इस प्रकार है:\n\nकेवल सूची के मद (* से शुरू होने वाली पंक्तियाँ) चुने जाएँगी।\nकिसी भी पक्ति में मौजूद पहली कड़ी, गलत संचिका की कड़ी होनी चाहिए\nउसी पंक्ति मे आगे आने वाली अन्य कड़ियों को अपवाद माना जाता है, अर्थात् ये ऐसे पृष्ठ होंगे जिनके अंदर यह संचिका जड़ी हुई है।",
        "metadata": "मेटाडाटा",
        "metadata-help": "इस फ़ाइल में बढ़ाई हुई जानकारी हैं, हो सकता है कि यह फ़ाइल बनाने में इस्तेमाल किये गए स्कैनर अथवा कैमेरा से यह प्राप्त हुई हैं। अगर यह फ़ाइल बदलदी गई है तो यह जानकारी नई फ़ाइल से मेल नहीं खाने की आशंका है।",
        "metadata-expand": "अउर विवरण देखावा जाय",
        "exif-countrycodecreated": "तस्विर खिचल देश कय कोड",
        "exif-provinceorstatecreated": "प्रांत या राज्य जहां इ चित्र लै ग रहा",
        "exif-citycreated": "शहर जहां इ चित्र लै ग रहा",
+       "exif-sublocationcreated": "यह चित्र शहर कि इस जगह जहा मे लिया गया था",
        "exif-worldregiondest": "दुनिया कय क्षेत्र देखाइ गा है",
        "exif-countrydest": "देश देखाइ गा है",
        "exif-countrycodedest": "देखावल देश कय कोड",
        "exif-fixtureidentifier": "फिक्चर कय नाम",
        "exif-locationdest": "देखावल जगह",
        "exif-locationdestcode": "देखावल जगहि कय कोड",
+       "exif-objectcycle": " दिन के समय जिसके लिए यह मीडिया है",
        "exif-contact": "संपर्क जानकारी",
        "exif-writer": "लेखक",
        "exif-languagecode": "भाषा",
        "confirmemail": "आपन ई-मेल ठहर निश्चित करा जाय",
        "confirmemail_noemail": "आप कय [[Special:Preferences|पसंद]] मा वैध इ-मेल एड्रेस नाइ दिहा है।",
        "confirmemail_text": "{{SITENAME}} मा इमेल सुविधन कय लाभ उठावे खर्तीन आप कय आपन इमेल ठहर प्रमाणित करेक परि ।कन्फर्मेशन कोड भेजय खत्तीर निचे कय बटन पे क्लिक किन जाय। मेल मा कोड वाला लिन्क है ।उ लिन्क कय आप अपने ब्राउजर मा खोलि कय आपन इमेल ठहर प्रमाणित कै सका जात है ।",
+       "confirmemail_pending": "आपको पहलेसे ही एक कन्फर्मेशन कोड भेजा गया हैं;\nअगर आपने हालमें खाता खोला हैं, तो नये कोड की माँग करने से पहले कुछ पल उसका इंतज़ार करें।",
        "confirmemail_send": "कन्फर्मेशन कोड मेल करा जाय",
        "confirmemail_sent": "कन्फर्मेशन इ-मेल भेज दिहा गा है।",
        "confirmemail_oncreate": "आप कय इ-मेल  ठहर पे एकठु कन्फर्मेशन कोड भेजा गा है।\nलॉग इन करय खत्तीर एकर आवश्यकता नाइ है, लेकिन इ विकि पे उपलब्ध इ-मेल आधारित सुविधन् कय इस्तेमाल करय खत्तीर इ देब जरूरी है।",
        "confirmemail_success": "आप कय इमेल ठहर प्रमाणित होइ गवा है । अब आप [[Special:UserLogin|लाग इन]] कैकय विकि कय मजा लै सका जात है ।",
        "confirmemail_loggedin": "आप कय इमेल ठहर प्रमाणित होइ गवा है ।",
        "confirmemail_subject": "{{SITENAME}} इ-मेल एड्रेस प्रमाणिकरण",
+       "confirmemail_body": "किसीने, शायद आपने,  $1 आइपी एड्रेस से,\n{{SITENAME}} पर  \"$2\" इस नाम से खाता खोलने की माँग की हैं।\n\nयह खाता आपही का हैं और {{SITENAME}} पर उपलब्ध इ-मेल\nसुविधा शुरू करने के लिये, नीचे दी गई कड़ी अपने ब्राउज़रमें खोलें:\n\n$3\n\nअगर यह माँग आपने *नहीं* की हैं, तो इसे रद्द करने के लिये\nनीचे दी हुई कड़ी खोलें:\n\n$5\n\nयह निश्चिती कोड $4 को समाप्त हो जायेगा।",
+       "confirmemail_body_changed": "किसी ने, शायद आपने ही, आइ॰पी पते $1 से {{SITENAME}} पर \"$2\" सदस्य खाते का ई-मेल पता बदलकर ये पता दिया है।\n\nइस बात की पुष्टि करने के लिये कि यह सदस्य खाता आपका ही है, और {{SITENAME}} पर ई-मेल सुविधाएँ पुनः शुरू करने के लिये निम्न लिंक अपने ब्राउज़र में खोलें:\n\n$3\n\nयदि यह सदस्य खाता आपका नहीं है, ई-मेल पुष्टि रद्द करने के लिये निम्न लिंक पर जाएँ:\n\n$5\n\nये पुष्टिकरण लिंक $6 को $7 बजे के बाद काम नहीं करेंगे।",
+       "confirmemail_body_set": "किसी ने, शायद आपने ही, आई॰पी पते $1 से,\n{{SITENAME}} पर \"$2\" सदस्य खाते का ई-मेल पता यह ईमेल पता निर्दिष्ट किया है।\n\nइस बात की पुष्टि करने के लिए कि यह सदस्य खाता आपका ही है,\nऔर {{SITENAME}} पर ईमेल सुविधाएँ शुरू करने के लिए निम्न लिंक अपने ब्राउज़र में खोलें:\n\n$3\n\nयदि यह सदस्य खाता आपका नहीं है, ई-मेल पुष्टि रद्द करने के लिए निम्न लिंक पर जाएँ:\n\n$5\n\nयह पुष्टिकरण लिंक $6 को $7 के बाद काम नहीं करेंगे।",
        "confirmemail_invalidated": "इ-मेल एड्रेस प्रमाणिकरण रद्द कै गय",
        "invalidateemail": "इ-मेल प्रमाणिकरण रद्द करा जाय",
        "scarytranscludedisabled": "[आंतरविकि ट्रान्स्क्लुडिंग बंद है]",
        "scarytranscludefailed-httpstatus": "[$1 कय लिये साँचा नाइ मँगाइ मिला, त्रुटि: HTTP $2]",
        "scarytranscludetoolong": "[यूआरएल बहुतय लम्मा है]",
        "deletedwhileediting": "'''Warning''':आप जबसे सम्पादन शुर करा गा है तब से इ पन्ना मिटाइ दिहा है ।",
+       "confirmrecreate": "सदस्य [[User:$1|$1]] ([[User talk:$1|वार्ता]]) ने आपके द्वारा संपादन शुरू होने के बाद यह पृष्ठ निम्नलिखित कारण देकर हटाया हैं:\n: ''$2''\nक्या आप इसे फिरसे बनाना चाहतें हैं, इसकी निश्चिती करें।",
+       "confirmrecreate-noreason": "जब आपने इस पृष्ठ का सम्पादन शुरू किया था, उसके बाद से सदस्य [[User:$1|$1]] ([[User talk:$1|talk]]) ने इसे हटा दिया है।  कृपया पुष्टि करें कि आप इस पृष्ठ को पुनः बनाना चाहते हैं।",
        "recreate": "फिरसे बनावा जाय",
        "confirm_purge_button": "ठीक है",
        "confirm-purge-top": "पन्ना कय कैश साफ करा जाय ?",
        "autoredircomment": "[[$1]] पे अनुप्रेषित",
        "autosumm-new": "'$1' कय साथे नँवा पन्ना बनावा गय",
        "autosumm-newblank": "खाली पन्ना बनावा गय",
+       "lag-warn-normal": "पिछले $1 {{PLURAL:$1|सेकिंड|सेकिंड}} में हुए बदलाव संभवतः इस सूची में नहीं आएँगे।",
+       "lag-warn-high": "आँकड़ाकोष सेवक में अधिक देर की वजह से $1 {{PLURAL:$1|सेकिंड|सेकिंड}} से पहले तक के बदलाव ही इस सूची में निश्चित रूप से दिखेंगे।",
        "watchlistedit-normal-title": "ध्यानसूची बदला जाय",
        "watchlistedit-normal-legend": "ध्यानसूची से शीर्षक हटावा जाय",
+       "watchlistedit-normal-explain": "आपकी ध्यानसूची में सूचीबद्ध पृष्ठ नीचे दिये गये हैं।\nपृष्ठ सूची से हटाने के लिये उसके आगे दिये बक्से पर क्लिक करें, और \"{{int:Watchlistedit-normal-submit}}\" पर क्लिक करें।\nआप [[Special:EditWatchlist/raw|रॉ ध्यानसूची का संपादन]] भी कर सकते हैं।",
        "watchlistedit-normal-submit": "शिर्षक हटावा जाय",
        "watchlistedit-normal-done": "आप कय ध्यानसूचीसे {{PLURAL:$1|1शीर्षक|$1 शीर्षक}} हटाइ गय:",
        "watchlistedit-raw-title": "कच्चा निगरानी सूची सम्पादन करा जाय",
        "watchlistedit-raw-legend": "कच्चा निगरानी सूची सम्पादन करा जाय",
+       "watchlistedit-raw-explain": "आपकी ध्यानसूची में सूचीबद्ध पृष्ठ नीचे दिये गये हैं, और वे सूची से निकालकर या बढ़ाकर बदले जा सकते हैं;\nहर लाइन पर एक शीर्षक देकर।\nजब पूर्ण हो जाए, तो \"{{int:Watchlistedit-raw-submit}}\" पर क्लिक करें।\nआप [[Special:EditWatchlist|स्टैण्डर्ड संपादक का इस्तेमाल]] भी कर सकते हैं।",
        "watchlistedit-raw-titles": "शीर्षक:",
        "watchlistedit-raw-submit": "ध्यानसूची अपडेट करा जाय",
        "watchlistedit-raw-done": "आप कय ध्यान सुची अपडेट होइ गवा है ।",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1शीर्षक|$1 शीर्षक}} हटाइ गय:",
        "watchlistedit-clear-title": "अवलोकन सूची खाली कै गय",
        "watchlistedit-clear-legend": "अवलोकन सूची खाली कीन जाय",
+       "watchlistedit-clear-explain": "आपकी ध्यानसूची से सभी पृष्ठ हटा दिये जायेंगे",
        "watchlistedit-clear-titles": "शिर्षक",
+       "watchlistedit-clear-done": "आपकी ध्यानसूची खाली कर दी गयी है।",
+       "watchlistedit-clear-removed": "$1 पृष्ठ{{PLURAL:$1|हटाया गया|हटाये गए}}:",
+       "watchlistedit-too-many": "यहाँ दर्शाने के लिए अत्यधिक पृष्ठ हैं।",
        "watchlisttools-clear": "अवलोकन सूची खाली कीन जाय",
        "watchlisttools-view": "आधारित बदलाव देखा जाय",
        "watchlisttools-edit": "ध्यानसूची देखा जाय अव संपादित कीन जाय",
        "watchlisttools-raw": "रॉ ध्यानसूची देखा जाय अव संपादित कीन जाय",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|वार्ता]])",
+       "duplicate-defaultsort": "'''Warning:''' पुरानी मूल क्रमांकन कुंजी \"$1\" के बजाय अब मूल क्रमांकन कुंजी \"$2\" होगी।",
        "version": "संस्करण",
        "version-extensions": "इन्स्टॉल करल एक्स्टेंशन",
        "version-skins": "इन्स्टॉल करल त्वचा",
        "version-ext-colheader-description": "विवरण",
        "version-ext-colheader-credits": "लेखक",
        "version-license-title": "$1 के लिए लाइसेंस",
+       "version-license-not-found": "इस एक्सटेंशन के लिए कोई विस्तृत लाइसेंस जानकारी नहीं पायी गयी।",
        "version-credits-title": "$1 कय लिए श्रेय",
+       "version-credits-not-found": "इस एक्सटेंशन के लिए कोई विस्तृत श्रेय जानकारी नहीं पायी गयी।",
        "version-poweredby-credits": "इ विकि  '''[https://www.mediawiki.org/ MediaWiki]''' से संचालित है, कॉपीराइट © 2001 - $1  $2 ।",
        "version-poweredby-others": "अउर",
        "version-poweredby-translators": "translatewiki.net अनुवादक",
+       "version-credits-summary": "हम निम्न व्यक्तियों द्वारा [[Special:Version|मीडियाविकि]] में किये गए योगदानों को सराहते हैं।",
        "version-software": "इन्स्टॉल करल प्रणाली",
        "version-software-product": "प्रोडक्ट",
        "version-software-version": "संस्करण",
        "version-libraries": "इन्स्टाल करल लाइब्रेरी",
        "version-libraries-library": "लाइब्रेरी",
        "version-libraries-version": "संस्करण",
+       "redirect-legend": "फ़ाइल अथवा पृष्ठ को पुनर्प्रेषण",
+       "redirect-summary": "यह विशेष पृष्ठ फ़ाइलनाम प्रदान करने पर फ़ाइल नाम को, पृष्ठ आइ॰दी अथवा अवतरण आइ॰दी देने पर पृष्ठ को, और सदस्य आइ॰दी देने पर सदस्य पृष्ठ को पुनर्प्रेषित करता है। उदाहरण: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], या [[{{#Special:Redirect}}/user/101]]।",
        "redirect-submit": "जावा जाय",
        "redirect-lookup": "ढूँढा जाय:",
        "redirect-value": "मूल्य:",
        "specialpages-group-developer": "डेवलपर औजार",
        "blankpage": "खाली पन्ना",
        "intentionallyblankpage": "इ पन्ना जानबुझी कय खाली छोडा है ।",
+       "external_image_whitelist": " #यह लाइन जैसी है वैसी ही छोड़ दें<pre>\n #नीचे रेगुलर एक्सप्रेशन के टुकड़े लिखें(बस वही हिस्सा जो // के बीच में आता है)\n #इन एक्सप्रेशन का बाहरी (hotlinked) छवियों के यू॰आर॰एल के साथ मिलान किया जाएगा\n #जो छवियाँ मिलान करेंगी, उन्हें प्रदर्शित किया जाएगा, अन्यथा केवल छवि की कड़ी दिखायी जाएगी\n # # से शुरू होने वाली लाइनें टिप्पणी मानी जाती हैं\n # इस केस-असंवेदी है\n\n #सब रेगुलर एक्सप्रेशन टुकड़े इस लाइन से ऊपर रखें। यह लाइन जैसी है वैसी ही छोड़ दें</pre>",
        "tags": "वैध बदलाव चिप्पि",
        "tag-filter": "[[Special:Tags|चिप्पी]] छननी:",
        "tag-filter-submit": "फिल्टर",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|टैग}}]]: $2)",
        "tags-title": "चिप्पि",
+       "tags-intro": "यह पृष्ठ अर्थ सहित वह चिप्पियाँ दर्शाता है जिनका कोई तंत्रांश किसी संपादन पर निशान लगाने के लिए इस्तेमाल कर सकता है।",
        "tags-tag": "चिप्पी कय नाँव",
        "tags-display-header": "बदलाव सूचिन् मा प्रदर्शन",
        "tags-description-header": "अर्थ कय पूरा वर्णन",
+       "tags-source-header": "स्रोत",
        "tags-active-header": "सक्रिय?",
        "tags-hitcount-header": "चिप्पी वाला बदलाव",
+       "tags-actions-header": "काम",
        "tags-active-yes": "हाँ",
        "tags-active-no": "नाहीँ",
+       "tags-source-extension": "एक्सटेंशन द्वारा परिभाषित",
+       "tags-source-manual": "उपयोगकर्ताओं और बॉट द्वारा नियमानुसार लागू",
+       "tags-source-none": "अब प्रयोग में नहीं",
        "tags-edit": "सम्पादन",
+       "tags-delete": "मेटावा जाय",
+       "tags-activate": "सक्रिय करें",
+       "tags-deactivate": "निष्क्रिय करें",
        "tags-hitcount": "$1 {{PLURAL:$1|बदलाव|बदलाव}}",
+       "tags-create-heading": "नवाँ ट्याग बनावा जाय",
+       "tags-create-tag-name": "ट्याग नाम:",
+       "tags-create-reason": "कारण:",
+       "tags-create-submit": "बनावा जाय",
+       "tags-create-no-name": "आपको एक चिप्पि का नाम निर्दिष्ट करना चाहिए।",
+       "tags-delete-reason": "कारण:",
+       "tags-activate-reason": "कारण:",
+       "tags-activate-submit": "चालु करा जाय",
+       "tags-deactivate-title": "बन्द करा जाय",
+       "tags-deactivate-reason": "कारण:",
+       "tags-deactivate-submit": "निष्क्रिय करें",
+       "tags-edit-title": "चिप्पी सम्पादन करा जाय",
+       "tags-edit-manage-link": "चिप्पी मिलावा जाए",
+       "tags-edit-revision-selected": "[[:$2]] {{PLURAL:$1|कय}} चयनित अवतरण:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|चुनल}} लॉग इवेंट:",
+       "tags-edit-existing-tags-none": "''कवनो नाइ''",
+       "tags-edit-new-tags": "नवाँ चिप्पी",
+       "tags-edit-reason": "कारण:",
+       "tags-edit-nooldid-title": "अमान्य लक्ष्य अवतरण",
        "comparepages": "पन्ना दाँजा जाय",
        "compare-page1": "पन्ना १",
        "compare-page2": "पन्ना २",
        "compare-invalid-title": "आप कय दिहा शिर्षक अमान्य है ।",
        "compare-title-not-exists": "आप कय दिहा शिर्षक नाइ है ।",
        "compare-revision-not-exists": "आप कय दिहा संशोधन नाइ है ।",
+       "dberr-problems": "क्षमा करें! इस जालस्थल को कुछ तकनीकी परेशानियों का सामना करना पड़ रहा है।",
        "dberr-again": "कुछ मिन रुकि कय फिरसे लोड किन जाय",
+       "dberr-info": "(डाटाबेस से संपर्क नहीं हो पा रहा: $1)",
+       "dberr-info-hidden": "(डाटाबेस से संपर्क नहीं किया जा सका)",
        "dberr-usegoogle": "इही बिंचे आप गूगल से खोज कै सका जात है ।",
+       "dberr-outofdate": "ध्यान दे, हो सकता है कि हमारी सामग्री से संबंधित उनकी सूची बासी हो।",
+       "dberr-cachederror": "यह अनुरोधित पन्ने की संचित प्रति है, हो सकता है यह ताज़ी न हो।",
+       "htmlform-invalid-input": "आपके द्वारा प्रदत्त कुछ सामग्री में समस्याएँ हैं",
+       "htmlform-select-badoption": "आपके द्वारा निर्दिष्ट मान वैध विकल्प नहीं है।",
+       "htmlform-int-invalid": "आपके द्वारा निर्दिष्ट मान पूर्णांक नहीं है।",
+       "htmlform-float-invalid": "आपके द्वारा निर्दिष्ट मान संख्या नहीं है।",
+       "htmlform-int-toolow": "आपके द्वारा निर्दिष्ट मान न्यूनतम $1 से कम है",
+       "htmlform-int-toohigh": "आपके द्वारा निर्दिष्ट मान अधिकतम $1 से ज़्यादा है",
+       "htmlform-required": "इस मान की आवश्यकता है",
        "htmlform-submit": "जमा कीन जाय",
        "htmlform-reset": "बदलाव फिरसे उही जगही लावा जाय",
        "htmlform-selectorother-other": "अउर",
        "sqlite-no-fts": "$1पूर्ण-पाठ खोज समर्थन कय बिना",
        "logentry-delete-delete": "$1 ने पृष्ठ $3 {{GENDER:$2|हटा}} दिहा गय",
        "logentry-delete-restore": "$1 ने पृष्ठ $3 कय {{GENDER:$2|पुनर्स्थापित}} कै गय",
+       "logentry-delete-event": "$1 ने $3 पृष्ठ की लॉग {{PLURAL:$5|प्रविष्टि|प्रविष्टियों}} की दृश्यता {{GENDER:$2|बदली}}: $4",
+       "logentry-delete-revision": "$1 ने $3 पृष्ठ के {{PLURAL:$5|एक अवतरण|$5 अवतरणों}} की दृश्यता {{GENDER:$2|बदली}}: $4",
+       "logentry-delete-event-legacy": "$1 ने $3 पृष्ठ पर लॉग क्रियाओं की दृश्यता {{GENDER:$2|बदली}}",
+       "logentry-delete-revision-legacy": "$1 ने $3 पृष्ठ पर अवतरणों की दृश्यता {{GENDER:$2|बदली}}",
+       "logentry-suppress-delete": "$1 ने $3 पृष्ठ को {{GENDER:$2|छुपाया}}",
+       "logentry-suppress-event": "$1 ने गुप्त रूप से $3 पृष्ठ पर निम्न {{PLURAL:$5|एक लॉग क्रिया|$5 लॉग क्रियाओं}} की दृश्यता {{GENDER:$2|बदली}}: $4",
+       "logentry-suppress-revision": "$1 ने गुप्त रूप से $3 पृष्ठ के {{PLURAL:$5|एक अवतरण|$5 अवतरणों}} की दृश्यता {{GENDER:$2|बदली}}: $4",
+       "logentry-suppress-event-legacy": "$1 ने गुप्त रूप से $3 पृष्ठ पर लॉग क्रियाओं की दृश्यता {{GENDER:$2|बदली}}",
+       "logentry-suppress-revision-legacy": "$1 ने गुप्त रूप से $3 पृष्ठ के अवतरणों की दृश्यता {{GENDER:$2|बदली}}",
        "revdelete-content-hid": "सामग्री लुकुआवा है",
        "revdelete-summary-hid": "सम्पादन सारांश लुकुआवा है",
        "revdelete-uname-hid": "सदस्य नाँव लुकुआवा है",
        "revdelete-restricted": "प्रबंधक पे प्रतिबंध लागू",
        "revdelete-unrestricted": "प्रबंधक कय प्रबंधन हटावा जाय",
        "logentry-move-move": "$1 ने $3 पृष्ठ $4 पर {{GENDER:$2|स्थानांतरित}} कै गय",
+       "logentry-move-move-noredirect": "$1 ने $3 पर पुनर्निर्देश छोड़े बिना उसे $4 पर {{GENDER:$2|स्थानांतरित}} किया",
+       "logentry-move-move_redir": "$1 ने $4 से पुनर्निर्देश हटाकर $3 को उसपर {{GENDER:$2|स्थानांतरित}} किया",
+       "logentry-move-move_redir-noredirect": "$1 ने $4 से पुनार्निर्देश हटाकर $3 पर पुनर्निर्देश छोड़े बिना $3 को $4 पर {{GENDER:$2|स्थानांतरित}} किया",
+       "logentry-patrol-patrol": "$1 ने $3 पृष्ठ के $4 अवतरण को परीक्षित {{GENDER:$2|चिन्हित}} किया",
+       "logentry-patrol-patrol-auto": "$1 ने $3 पृष्ठ के $4 अवतरण को स्वचालित रूप से परीक्षित {{GENDER:$2|चिन्हित}} किया",
+       "logentry-newusers-newusers": "सदस्य खाता $1 {{GENDER:$2|बनाया}} गया",
        "logentry-newusers-create": "सदस्य खाता $1 {{GENDER:$2|बनावा}} गय",
+       "logentry-newusers-create2": "सदस्य खाता $3 $1 द्वारा {{GENDER:$2|बनाया}} गया था",
+       "logentry-newusers-byemail": "$1 द्वारा सदस्य खाता $3 {{GENDER:$2|बनाया}} गया एवं पासवर्ड ई-मेल द्वारा भेजा गया था",
+       "logentry-newusers-autocreate": "खाते $1 स्वचालित रूप से {{GENDER:$2|बनाया}} गया था",
+       "logentry-rights-rights": "$1 ने $3 के सदस्य समूह $4 से बदलकर $5 {{GENDER:$2|किये}}",
+       "logentry-rights-rights-legacy": "$1 ने $3 के सदस्य समूह {{GENDER:$2|बदले}}",
+       "logentry-rights-autopromote": "$1 के सदस्य समूह स्वतः $4 से बदलकर $5 {{GENDER:$2|किये}} गए",
        "logentry-upload-upload": "$1 {{GENDER:$2|ने}} $3 अपलोड किया",
        "rightsnone": "(कउनो नाहीं)",
        "revdelete-summary": "संपादन सारांश",
        "feedback-adding": "पृष्ठ पे प्रतिक्रिया जोडत है ...",
+       "feedback-back": "पीछे",
+       "feedback-bugcheck": "शानदार! जांच ले कहीं ये [ $1 known bugs] पहले से ही न हो ।",
+       "feedback-bugnew": "मैंने जाँच कीया। एक नया बग रिपोर्ट करें",
+       "feedback-bugornote": "यदि आप किसी तकनीकी परेशानी को विस्तार से समझाने के लिये तैयार हैं तो कृपया [$1 बग फ़ाइल करें]।\nयदि नहीं, तो आप नीचे दिये सरल फ़ॉर्म का प्रयोग कर सकते हैं। आपकी टिप्पणी आपके सदस्य नाम और आपके ब्राउज़र के नाम के सहित \"[$3 $2]\" पृष्ठ में जोड़ दी जाएगी।",
        "feedback-cancel": "रद्द करा जाय",
        "feedback-close": "होइ गवा",
+       "feedback-dialog-title": "प्रतिक्रिया भेजा जाय",
+       "feedback-error-title": "त्रुटि",
+       "feedback-error1": "त्रुटि: न पहचाना गया परिणाम एपीआई से",
        "feedback-error2": "त्रुटि: संपादन विफल रहा है",
+       "feedback-error3": "त्रुटि: एपीआई से कोई प्रतिक्रिया नहीं",
        "feedback-message": "सनेशा:",
        "feedback-subject": "विषय:",
-       "feedback-submit": "प्रतिक्रिया भेजा जाय",
+       "feedback-submit": "जमा करा जाय",
+       "feedback-thanks": "धन्यवाद! आपकी प्रतिक्रिया पृष्ठ में नियुक्त किया गया है \"[ $2  $1 ]\"।",
+       "feedback-thanks-title": "धन्यवाद!",
+       "feedback-useragent": "प्रयोगकर्ता एजेन्ट:",
        "searchsuggest-search": "खोज",
        "searchsuggest-containing": "...से युक्त",
        "api-error-badaccess-groups": "इ विकि मा आप कय फाइल अपलोड करेक अनुमति नाइ है",
        "api-error-badtoken": "आंतरिक त्रुटि: खराब टोकन।",
+       "api-error-copyuploaddisabled": "URL द्वारा इस सर्वर पर अपलोड अक्षम है।",
+       "api-error-duplicate": "वहाँ {{PLURAL:$1| [ $2 अन्य फ़ाइल] | रहे हैं [ $2 कुछ अन्य फ़ाइलों]}} एक ही सामग्री के साथ साइट पर पहले से ही है.",
+       "api-error-duplicate-archive": "वहाँ {{PLURAL:$1|था [$2 कुछ अन्य फ़ाइल] |were [$2 कुछ अन्य फ़ाइलें]}}, पहले से ही {{PLURAL:$1|यह was|they थे}} परन्तु  हटा दिये गये",
+       "api-error-duplicate-archive-popup-title": "डुप्लिकेट {{PLURAL:$1| फ़ाइल | फ़ाइलें}} है कि पहले से ही हटा दिया गया है",
        "api-error-duplicate-popup-title": "डुप्लिकेट {{PLURAL:$1| फ़ाइल | फ़ाइल}}",
        "api-error-empty-file": "आप कय दीहल फ़ाइल खाली रहा।",
        "api-error-emptypage": "नँवा अव खाली पन्ना बनावै कय अनुमति नाइ है",
+       "api-error-fetchfileerror": "आंतरिक त्रुटि: जब फ़ाइल लाया जा रहा तो कुछ गलत हो गया था।",
        "api-error-fileexists-forbidden": "\"$1\" नाँव कय फाइल मौजुद है,एकरे उप्पर नाइ लिखि सका जात है",
        "api-error-fileexists-shared-forbidden": "\"$1\" नाँव कय फाइल साझा फाइल भण्डार मा पहिलवे से मौजुद है अव एकरे उप्पर नाइ लिखि सका जात है ।",
        "api-error-file-too-large": "आप कय दीहल फ़ाइल बहुत बडा रहा।",
        "api-error-filename-tooshort": "फ़ाइल कय नाँव बहुत छोट है।",
        "api-error-filetype-banned": "अइसन फ़ाइल प्रतिबन्धित है।",
+       "api-error-filetype-banned-type": "$1 फ़ाइल {{PLURAL:$4|प्रकार|प्रकारों}} की अनुमति नहीं है। फ़ाइल प्रकार {{PLURAL:$3|जिसकी|जिनकी}} अनुमति है: $2।",
        "api-error-filetype-missing": "फाईल कय एक्सटेंशन लापता है ।",
        "api-error-hookaborted": "आपके द्वारा प्रयासरत संशोधन किसी एक्स्टेंशन द्वारा निरस्त किया गया।",
        "api-error-http": "आंतरिक त्रुटि: सर्वर से कनेक्ट करय में असमर्थ।",
        "api-error-illegal-filename": "अइसन फ़ाइल कय इजाजत नाइ है।",
+       "api-error-internal-error": "आंतरिक त्रुटि: विकि पर अपने अपलोड प्रसंस्करण के साथ कुछ गलत हो गया था.",
+       "api-error-invalid-file-key": "आंतरिक त्रुटि: फ़ाइल अस्थायी भंडारण में नहीं पाया गया.",
        "api-error-missingparam": "आंतरिक त्रुटि: अनुरोध पे  पैरामीटर लापता",
        "api-error-missingresult": "आन्तरिक त्रुटि: इ प्रतिलिपि सफल निर्धारित नाइ होइ सका",
        "api-error-mustbeloggedin": "फाइल अपलोड करेक आप कय लाग इन करेक परि",
        "api-error-mustbeposted": "आंतरिक त्रुटि: HTTP POST अनुरोध कय आवश्यकता है.",
+       "api-error-noimageinfo": "अपलोड सफल, लेकिन सर्वर ने फ़ाइल के बारे में हमें कोई जानकारी नहीं दी.",
        "api-error-nomodule": "आंतरिक त्रुटि: कवनो अपलोड मॉड्यूल सेट नाइ है",
        "api-error-ok-but-empty": "आंतरिक त्रुटि: सर्वर से कवनो जवाब नाइ है।",
        "api-error-overwrite": "मौजुदा फाइल कय उप्पर नाइ लिखि सका जात अहै ।",
        "api-error-stashfailed": "आन्तरिक त्रुटि: अस्थाई फाइल राखय मा सर्वर असफल रहा।",
+       "api-error-publishfailed": "आन्तरिक त्रुटि: अस्थाई फाइल राखय मा सर्वर असफल रहा।",
+       "api-error-timeout": "सर्वर ने अपेक्षित समय के भीतर जवाब नहीं दिया",
        "api-error-unclassified": "अज्ञात त्रुटि आइ गवा।",
        "api-error-unknown-code": "अज्ञात त्रुटि: \"$1\"",
        "api-error-unknown-error": "आंतरिक त्रुटि: आप कय फ़ाइल अपलोड प्रयास करत समय कुछ गलत होइ गवा रहा।",
        "limitreport-expansiondepth": "उच्चतम विस्तार गहराई",
        "limitreport-expensivefunctioncount": "महंगा पार्सर फंक्शन कय संख्या",
        "expandtemplates": "साँचा विस्तार",
+       "expand_templates_intro": "यह विशेष पृष्ठ पाठ इनपुट लेता है और सभी साँचों को विस्तृत करता है।\nयह <code><nowiki>{{</nowiki>#language:…}}</code> जैसे पार्सर फंक्शनों और\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code> जैसे वेरियेबलों को भी विस्तृत करता है।\nयह दोहरे कोष्ठकों में दिया लगभग सब कुछ विस्तृत करता है।",
        "expand_templates_title": "कन्टेक्स्ट शीर्षक, जैसय {{FULLPAGENAME}} आदि कय लिए:",
        "expand_templates_input": "इनपुट पाठ:",
        "expand_templates_output": "परिणाम",
        "expand_templates_generate_xml": "XML कय पार्स (parse) वृक्ष देखावा जाय",
        "expand_templates_generate_rawhtml": "सुद्ध HTML देखावा जाय",
        "expand_templates_preview": "झलक",
+       "pagelanguage": "पृष्ठ भाषा चुनाव",
        "pagelang-name": "पन्ना",
        "pagelang-language": "भाषा",
        "pagelang-use-default": "डिफ़ॉल्ट भाषा इस्तेमाल कीन जाय",
        "right-pagelang": "पन्ना कय भाषा चुना जाय",
        "action-pagelang": "पन्ना कय भाषा बदला जाय",
        "log-name-pagelang": "भाषा लाग बदला जाय",
+       "log-description-pagelang": "यह पृष्ठ भाषाओं में परिवर्तन का लॉग है।",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्षम)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''अक्षम''')",
        "mediastatistics": "मीडिया कय आँकड़ा",
        "mediastatistics-header-video": "वीडियो",
        "mediastatistics-header-office": "आफिस",
        "mediastatistics-header-text": "शाब्दिक",
-       "json-error-unknown": "JSON से समस्या रहा । गल्ती: $1"
+       "json-error-unknown": "JSON से समस्या रहा । गल्ती: $1",
+       "json-error-syntax": "सिन्टॅक्स त्रुटि",
+       "headline-anchor-title": "इस अनुभाग की कड़ी",
+       "special-characters-group-latin": "लाटिन",
+       "special-characters-group-latinextended": "लाटिन विस्तारित",
+       "special-characters-group-ipa": "आइपीए"
 }
index a2797a4..e199133 100644 (file)
        "viewyourtext": "Вы можаце праглядзець і скапіяваць крынічны тэкст <strong>вашых рэдагаваньняў</strong> на гэтай старонцы:",
        "protectedinterface": "Гэтая старонка ўтрымлівае інтэрфэйснае паведамленьне праграмнага забесьпячэньня, і яе зьмена забаронена. Каб дадаць ці зьмяніць пераклад ва ўсіх праектах, зьвярніцеся на [//translatewiki.net/ translatewiki.net], праект для перакладу MediaWiki.",
        "editinginterface": "<strong>Увага:</strong> Вы рэдагуеце старонку, якая ўтрымлівае тэкст інтэрфэйсу праграмнага забесьпячэньня.\nЯе зьмена паўплывае на вонкавы выгляд інтэрфэйсу іншых удзельнікаў у гэтай вікі.",
-       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, крыстаецеся [//translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
+       "translateinterface": "Каб дадаць ці зьмяніць пераклады для ўсіх вікі, калі ласка, карыстайцеся [//translatewiki.net/ translatewiki.net], лякалізацыйным праектам MediaWiki.",
        "cascadeprotected": "Гэтая старонка абароненая ад рэдагаваньня, таму што яна ўключаная ў {{PLURAL:$1|1=наступную старонку, якая была абароненая|наступныя старонкі, якія былі абароненыя}} з актывізаванай опцыяй «каскаднай абароны»:\n$2",
        "namespaceprotected": "Вы ня маеце правоў на рэдагаваньне старонак у прасторы назваў <strong>$1</strong>.",
        "customcssprotected": "Вы ня маеце правоў на рэдагаваньне гэтай CSS-старонкі, таму што яна ўтрымлівае пэрсанальныя налады іншага ўдзельніка.",
        "right-sendemail": "адпраўка электронных лістоў іншым удзельнікам",
        "right-passwordreset": "прагляд электронных лістоў з ачысткай паролю",
        "right-managechangetags": "ствараць і выдаляць [[Special:Tags|меткі]] з базы зьвестак",
+       "right-applychangetags": "дадаваць [[Special:Tags|меткі]] пры рэдагаваньні",
+       "right-changetags": "дадаваць і выдаляць адвольныя [[Special:Tags|меткі]] да асобных вэрсіяў і запісаў у журнале падзеяў",
        "newuserlogpage": "Журнал стварэньня рахункаў",
        "newuserlogpagetext": "Гэта журнал стварэньня рахункаў удзельнікаў і ўдзельніц.",
        "rightslog": "Журнал правоў удзельнікаў",
        "action-editmyprivateinfo": "рэдагаваньне вашых прыватных зьвестак",
        "action-editcontentmodel": "рэдагаваньне мадэлі зьместу старонкі",
        "action-managechangetags": "стварэньне і выдаленьне метак з базы зьвестак",
+       "action-applychangetags": "дадаваньне метак пры рэдагаваньні",
+       "action-changetags": "дадаваньне і выдаленьне адвольных метак да асобных вэрсіяў і запісаў у журнале падзеяў",
        "nchanges": "$1 {{PLURAL:$1|зьмена|зьмены|зьменаў}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|з апошняга візыту}}",
        "enhancedrc-history": "гісторыя",
        "listfiles-delete": "выдаліць",
        "listfiles-summary": "На гэтай спэцыяльнай старонцы паказаныя ўсе загружаныя файлы.",
        "listfiles_search_for": "Пошук па назьве файла:",
+       "listfiles-userdoesnotexist": "Рахунак удзельніка «$1» не зарэгістраваны.",
        "imgfile": "файл",
        "listfiles": "Сьпіс файлаў",
        "listfiles_thumb": "Мініятура",
        "logempty": "Падобных запісаў у журнале няма.",
        "log-title-wildcard": "Шукаць назвы, якія пачынаюцца з гэтага тэксту",
        "showhideselectedlogentries": "Паказаць/схаваць выбраныя запісы ў журнале",
+       "log-edit-tags": "Рэдагаваць меткі да абраных запісаў у журнале падзеяў",
        "allpages": "Усе старонкі",
        "nextpage": "Наступная старонка ($1)",
        "prevpage": "Папярэдняя старонка ($1)",
        "log-name-pagelang": "Журнал зьменаў мовы",
        "log-description-pagelang": "Гэта журнал зьменаў мовы старонак.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} мову старонкі $3 з $4 на $5.",
-       "default-skin-not-found": "Упс! Тэма афармленьня па змоўчаньні для вашай вікі, вызначаная ў <code dir=\"ltr\">$wgDefaultSkin</code> як <code>$1</code> недаступная.\n\nВашае ўсталяваньне, падобна, уключае наступныя тэмы афармленьня. Глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.\n\n$2\n\n; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобных тэмаў з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code dir=\"ltr\">skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча.\n\n; Калі вы толькі што абнавілі MediaWiki:\n: MediaWiki вэрсіі 1.24 і навейшыя больш не падключаюць тэмы афармленьня аўтаматычна (глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Інструкцыя:Аўтаматычнае выяўленьне тэмаў афармленьня]). Вы можаце дадаць наступныя радкі ў <code>LocalSettings.php</code>, каб падключыць усе ўсталяваныя тэмы афармленьня:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Калі вы толькі што зьмянілі <code>LocalSettings.php</code>:\n: Пераправерце назвы тэмаў афармленьня на наяўнасьць памылак.",
+       "default-skin-not-found": "Упс! Тэма афармленьня па змоўчаньні для вашай вікі, вызначаная ў <code dir=\"ltr\">$wgDefaultSkin</code> як <code>$1</code> недаступная.\n\nВашае ўсталяваньне, падобна, уключае {{PLURAL:$4|наступную тэму афармленьне|наступныя тэмы афармленьня}}. Глядзіце старонку [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць {{PLURAL:$4|яе|іх і абраць тэму па змоўчаньні}}.\n\n$2\n\n; Калі вы толькі што ўсталявалі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code>skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобных тэмаў з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code dir=\"ltr\">skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча.\n\n; Калі вы толькі што абнавілі MediaWiki:\n: MediaWiki вэрсіі 1.24 і навейшыя больш не падключаюць тэмы афармленьня аўтаматычна (глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Інструкцыя:Аўтаматычнае выяўленьне тэмаў афармленьня]). Вы можаце дадаць {{PLURAL:$5|наступны радок у|наступныя радкі ў}} <code>LocalSettings.php</code>, каб падключыць {{PLURAL:$5|усталяваную тэму|усе ўсталяваныя тэмы}} афармленьня:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Калі вы толькі што зьмянілі <code>LocalSettings.php</code>:\n: Пераправерце назвы тэмаў афармленьня на наяўнасьць памылак.",
        "default-skin-not-found-no-skins": "Упс! Тэма афармленьня па змоўчаньні для вашай вікі, вызначаная ў <code>$wgDefaultSkin</code> як <code>$1</code>, недаступная.\n\nВы ня маеце ўсталяваных тэмаў афармленьня.\n\n; Калі вы толькі што ўсталявалі або абнавілі MediaWiki:\n: Напэўна вы ўсталявалі з git або наўпрост з крынічнага коду з ужываньнем іншага мэтаду. Гэта чакана. MediaWiki вэрсіі 1.24 і навейшыя ня ўтрымліваюць тэмы афармленьня ў галоўным сховішчы. Паспрабуйце ўсталяваць некалькі тэмаў афармленьня з [https://www.mediawiki.org/wiki/Category:All_skins каталёгу тэмаў mediawiki.org]:\n:* Спампуйце [https://www.mediawiki.org/wiki/Download tarball-усталёўнік], які ўтрымлівае некалькі тэмаў і пашырэньняў. Вы можаце скапіяваць каталёг <code dir=\"ltr\">skins/</code> зь яго.\n:* Спампуйце tarball-усталёўнікі для асобны тэмаў афармленьня з [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Зрабіце клон аднаго з сховішчаў <code>mediawiki/skins/*</code> праз git у каталёг <code>skins/</code> вашай усталёўкі MediaWiki.\n: Калі вы распрацоўнік MediaWiki, гэта не павінна ўплываць на вашае git-сховішча. Глядзіце [https://www.mediawiki.org/wiki/Manual:Skin_configuration Інструкцыя:Наладка тэмаў афармленьня] дзеля інфармацыі, як падключыць іх і абраць тэму па змоўчаньні.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (уключана)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''адключана''')",
index 1583472..3b9ab74 100644 (file)
        "showpreview": "Як будзе",
        "showdiff": "Розніца",
        "blankarticle": "<strong>Увага:</strong> Вы ствараеце пустую старонку.\nКалі вы націсніце \"{{int:savearticle}}\" яшчэ раз, будзе створана старонка без аніякага зместу.",
-       "anoneditwarning": "Вы не ўвайшлі ў сістэму. Таму, калі вы запішаце старонку, у яе гісторыю трапіць ваш адрас IP.",
+       "anoneditwarning": "<strong>Увага!</strong> Вы не аўтарызаваліся на сайце. Ваш IP-адрас будзе публічна бачным, калі вы будзеце ўносіць любыя праўкі. Калі вы <strong>[$1 ўвойдзеце]</strong> ці <strong>[$2 створыце ўліковы запіс]</strong>, праўкі замест гэтага будуць звязаны з вашым імем карыстальніка, а таксама ў вас з'явяцца іншыя перавагі.",
        "anonpreviewwarning": "''Вы не прайшлі ідэнтыфікацыю Захаванне будзе запісана з вашым IP адрасам у гісторыі правак гэтай старонкі.''",
        "missingsummary": "<strong>Нагадваем:</strong> вы не ўпісалі тлумачэння для сваёй праўкі. Калі націснуць \"{{int:savearticle}}\" яшчэ раз, праўка будзе замацавана без тлумачэння.",
        "missingcommenttext": "Калі ласка, увядзіце ніжэй каментарый.",
        "searchall": "усе",
        "showingresults": "Ніжэй паказаны да {{PLURAL:$1|'''$1''' выніку|'''$1''' вынікаў}}, пачынаючы з нумару '''$2'''.",
        "showingresultsinrange": "Ніжэй паказаны да {{PLURAL:$1|<strong>1</strong> выніку|<strong>$1</strong> вынікаў}} у дыяпазоне ад #<strong>$2</strong> да #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Вынік <strong>$1</strong> з <strong>$3</strong>|Вынікі <strong>$1 — $2</strong> з <strong>$3</strong>}}",
        "search-nonefound": "Нічога не было знойдзена.",
        "powersearch-legend": "Падрабязны пошук",
        "powersearch-ns": "Шукаць у прасторах назваў:",
        "querypage-disabled": "Гэта адмысловая старонка адключана для павышэння прадукцыйнасці.",
        "booksources": "Кнігі",
        "booksources-search-legend": "Знайсці, дзе купіць кнігі",
+       "booksources-search": "Пошук",
        "booksources-text": "Ніжэй паказаны пералік спасылак на іншыя сеціўныя пляцоўкі, якія прадаюць новыя і б/у кнігі, і, магчыма, маюць больш звестак пра кнігі, якіх вы шукаеце:",
        "booksources-invalid-isbn": "Гэты ISBN не выглядае правільным; праверце правільнасць капіравання з арыгіналу.",
        "specialloguserlabel": "Выканаўца:",
        "tooltip-pt-mycontris": "Пералік вашага ўкладу",
        "tooltip-pt-login": "Уваходзіць у сістэму неабавязкова, але вас вельмі запрашаюць гэтак зрабіць.",
        "tooltip-pt-logout": "Выйсці з сістэмы",
+       "tooltip-pt-createaccount": "Вам прапануецца стварыць уліковы запіс і ўвайсці ў сістэму, але гэта не абавязкова",
        "tooltip-ca-talk": "Размовы пра змест гэтай старонкі",
        "tooltip-ca-edit": "Старонку можна правіць. Перш чым запісаць свае змены, паглядзіце на вынік, націснуўшы кнопку папярэдняга прагляду.",
        "tooltip-ca-addsection": "Дадаць новы раздзел",
index b51ddbf..a612dba 100644 (file)
        "disclaimers": "Предупреждение",
        "disclaimerpage": "Project:Предупреждение",
        "edithelp": "Помощ при редактиране",
+       "helppage-top-gethelp": "Помощ",
        "mainpage": "Начална страница",
        "mainpage-description": "Начална страница",
        "policy-url": "Project:Политика",
        "ns-specialprotected": "Специалните страници не могат да бъдат редактирани.",
        "titleprotected": "Тази страница е била защитена срещу създаване от [[User:$1|$1]].\nПосочената причина е ''$2''.",
        "filereadonlyerror": "Файлът „$1“ не може да бъде променен, тъй като файловото хранилище „$2“ е в режим само за четене.\n\nАдминистраторът, който го е заключил, е посочил следната причина: „$3“.",
-       "invalidtitle-knownnamespace": "Невалидно заглавие с именно пространство $2\" и текст \"$3\"",
+       "invalidtitle-knownnamespace": "Невалидно заглавие с именно пространство „$2“ и текст „$3“",
        "invalidtitle-unknownnamespace": "Невалидно заглавие с неразпознато именно пространство номер $1 и текст „$2“",
        "exception-nologin": "Не сте влезли в системата",
        "exception-nologin-text": "За достъп до избраното действие или страница е необходимо влизане в системата.",
        "preview": "Предварителен преглед",
        "showpreview": "Предварителен преглед",
        "showdiff": "Показване на промените",
-       "anoneditwarning": "'''Внимание:''' Не сте влезли в системата. В историята на страницата ще бъде записан вашият IP-адрес.",
+       "anoneditwarning": "<strong>Внимание:</strong> Не сте влезли в системата. Ако направите редакция IP-адресът Ви ще бъде публично видим. Ако <strong>[$1 влезете]</strong> или си <strong>[$2 създадете акаунт]</strong>, редакциите Ви ще бъдат свързани с потребителското Ви име, заедно с други преимущества.",
        "anonpreviewwarning": "Внимание: Не сте влезли в системата. Ако съхраните редакцията си, тя ще бъде записана в историята на страницата с вашият IP-адрес.",
        "missingsummary": "'''Напомняне:''' Не е въведено кратко описание на промените. При повторно натискане на бутона „Съхраняване“, редакцията ще бъде съхранена без резюме.",
        "missingcommenttext": "По-долу въведете вашето съобщение.",
        "content-model-text": "обикновен текст",
        "content-model-javascript": "Джаваскрипт",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Празен обект",
+       "content-json-empty-array": "Празен масив",
        "duplicate-args-category": "Страници, които използват повтарящи се аргументи в повикванията на шаблона",
        "duplicate-args-category-desc": "Страницата съдържа шаблонни повиквания, които използват повтарящи се аргументи, като например <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> or <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Внимание: Тази страница прекалено много пъти използва ресурсоемки парсерни функции.\n\nВ момента има {{PLURAL:$1|$1 обръщение|$1 обръщения}} към такива функции, а трябва да {{PLURAL:$1|е|са}} по-малко от $2.",
        "notextmatches": "Няма съответствия в текста на страници",
        "prevn": "предишни {{PLURAL:$1|$1}}",
        "nextn": "следващи {{PLURAL:$1|$1}}",
+       "prev-page": "предишна страница",
+       "next-page": "следваща страница",
        "prevn-title": "$1 {{PLURAL:$1|предишен резултат|предишни резултата}}",
        "nextn-title": "$1 {{PLURAL:$1|следващ резултат|следващи резултата}}",
        "shown-title": "Показване на $1 {{PLURAL:$1|резултат|резултата}} на страница",
        "viewprevnext": "Преглед ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Съществува страница с името „[[:$1]]“ в това уики.'''",
-       "searchmenu-new": "'''Създаване на страницата „[[:$1]]“ в това уики!'''",
+       "searchmenu-new": "<strong>Създаване на страницата „[[:$1]]“ в това уики!</strong> {{PLURAL:$2|0=|Вижте също страницата, която е резултат от търсенето.|Вижте също резултатите от търсенето.}}",
        "searchprofile-articles": "Съдържателни страници",
        "searchprofile-images": "Мултимедия",
        "searchprofile-everything": "Всичко",
        "searchrelated": "свързани",
        "searchall": "всички",
        "showingresults": "Показване на до {{PLURAL:$1|'''1''' резултат|'''$1''' резултата}}, като се започва от номер '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Резултат <strong>$1</strong> от <strong>$3</strong>|Резултати <strong>$1 - $2</strong> от <strong>$3</strong>}}",
        "search-nonefound": "Няма резултати, които да отговарят на заявката.",
        "powersearch-legend": "Разширено търсене",
        "powersearch-ns": "Търсене в именни пространства:",
        "prefs-personal": "Потребителски данни",
        "prefs-rc": "Последни промени",
        "prefs-watchlist": "Списък за наблюдение",
+       "prefs-editwatchlist": "Редактиране на списъка за наблюдение",
+       "prefs-editwatchlist-label": "Редактиране на записи от списъка за наблюдение:",
+       "prefs-editwatchlist-edit": "Преглед и премахване на заглавия от списъка за наблюдение",
+       "prefs-editwatchlist-raw": "Редактиране на необработения списък за наблюдение",
+       "prefs-editwatchlist-clear": "Изчистване на списъка за наблюдение",
        "prefs-watchlist-days": "Брой дни, които да се показват в списъка за наблюдение:",
        "prefs-watchlist-days-max": "Най-много $1 {{PLURAL:$1|ден|дни}}",
        "prefs-watchlist-edits": "Брой редакции, които се показват в разширения списък за наблюдение:",
        "backend-fail-notexists": "Файлът $1 не съществува.",
        "backend-fail-delete": "Файлът $1 не може да бъде изтрит.",
        "backend-fail-alreadyexists": "Файлът $1 вече съществува.",
-       "backend-fail-store": "Файлът $1 не може да бъде съхранен в $2.",
+       "backend-fail-store": "Файлът „$1“ не може да бъде съхранен в „$2“.",
        "backend-fail-copy": "Файлът „$1“ не можа да бъде копиран в „$2“.",
        "backend-fail-move": "Файлът „$1“ не можа да бъде преместен в „$2“.",
        "backend-fail-opentemp": "Временният файл не може да бъде отворен.",
        "img-auth-accessdenied": "Достъпът е отказан",
        "img-auth-nopathinfo": "Липсва PATH_INFO.\nВашият сървър не е конфигуриран да предава тази информация.\nТой може да е базиран на CGI и да не може да поддържа img_auth.\nВижте https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "img-auth-notindir": "Търсеният път не е в настроената директория за качвания.",
-       "img-auth-badtitle": "Грешка при изграждането на валидно заглавие от \"$1\".",
+       "img-auth-badtitle": "Грешка при изграждането на валидно заглавие от „$1“.",
        "img-auth-nologinnWL": "Не сте влезли в системата и „$1“ не е в белия списък.",
        "img-auth-nofile": "Файлът „$1“ не съществува.",
        "img-auth-isdir": "Опитвате се да осъществите достъп до директорията „$1“.\nРазрешен е само достъп до файловете.",
        "img-auth-public": "Функцията img_auth.php е да извлича файлове от частни уикита.\nТова уики е конфигурирано като публично.\nС цел оптимална сигурност, функцията img_auth.php е деактивирана.",
        "img-auth-noread": "Потребителят няма достъп за четене на „$1“.",
        "http-invalid-url": "Невалиден адрес: $1",
-       "http-invalid-scheme": "Не се поддържат URL адреси с префикс \"$1\".",
+       "http-invalid-scheme": "Не се поддържат URL адреси с префикс „$1“.",
        "http-request-error": "HTTP заявката пропадна поради неизвестна грешка.",
        "http-read-error": "HTTP грешка при четене.",
        "http-timed-out": "Пресрочено време за HTTP заявка.",
        "nolicense": "Нищо не е избрано",
        "license-nopreview": "(Не е наличен предварителен преглед)",
        "upload_source_url": " (правилен, публично достъпен интернет-адрес)",
-       "upload_source_file": " (файл на вашия компютър)",
+       "upload_source_file": "(файл на вашия компютър)",
        "listfiles-delete": "изтриване",
        "listfiles-summary": "Тази специална страница показва всички качени файлове.",
        "listfiles_search_for": "Търсене по име на файла:",
+       "listfiles-userdoesnotexist": "Няма регистрирана потребителска сметка за „$1“.",
        "imgfile": "файл",
        "listfiles": "Списък на файловете",
        "listfiles_thumb": "Миникартинка",
        "uploadnewversion-linktext": "Качване на нова версия на файла",
        "shared-repo-from": "от $1",
        "shared-repo": "споделено хранилище",
+       "upload-disallowed-here": "Не можете да препокриете файла.",
        "filerevert": "Възвръщане на $1",
        "filerevert-legend": "Възвръщане на файла",
        "filerevert-intro": "Възвръщане на '''[[Media:$1|$1]]''' към [$4 версията от $3, $2].",
        "ninterwikis": "$1 {{PLURAL:$1|междууики|междууикита}}",
        "nlinks": "$1 {{PLURAL:$1|препратка|препратки}}",
        "nmembers": "$1 {{PLURAL:$1|член|члена}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|член|члена}}",
        "nrevisions": "$1 {{PLURAL:$1|версия|версии}}",
        "nviews": "$1 {{PLURAL:$1|преглед|прегледа}}",
        "nimagelinks": "Използва се в $1 {{PLURAL:$1|страница|страници}}",
        "pager-older-n": "{{PLURAL:$1|по-стара 1|по-стари $1}}",
        "suppress": "Премахване от публичния архив",
        "querypage-disabled": "Тази специална страница е изключена, защото затруднява производителността на уикито.",
+       "apihelp-no-such-module": "Модул \"$1\" не беше намерен.",
        "booksources": "Източници на книги",
        "booksources-search-legend": "Търсене на информация за книга",
        "booksources-search": "Търсене",
        "watchlist-options": "Опции на списъка за наблюдение",
        "watching": "Наблюдение…",
        "unwatching": "Спиране на наблюдение…",
-       "watcherrortext": "Възникна грешка при промяна на настройките за списъка ви за наблюдение за \"$1\".",
+       "watcherrortext": "Възникна грешка при промяна на настройките за списъка ви за наблюдение за „$1“.",
        "enotif_reset": "Отбелязване на всички страници като посетени",
        "enotif_impersonal_salutation": "Потребител на {{SITENAME}}",
        "enotif_subject_deleted": "Страницата „$1“ в {{SITENAME}} беше {{GENDER:$2|изтрита}} от $2",
        "modifiedarticleprotection": "смени нивото на защита на „[[$1]]“",
        "unprotectedarticle": "свали защитата на „[[$1]]“",
        "movedarticleprotection": "преместване на настройките за защита от „[[$2]]“ на „[[$1]]“",
-       "protect-title": "Смяна на нивото на защита на \"$1\"",
+       "protect-title": "Смяна на нивото на защита на „$1“",
        "protect-title-notallowed": "Преглеждане нивото на защита за „$1“",
        "prot_1movedto2": "„[[$1]]“ преместена като „[[$2]]“",
        "protect-badnamespace-title": "Незащитимо именно пространство",
        "import-interwiki-history": "Копиране на всички версии на страницата",
        "import-interwiki-templates": "Включване на всички шаблони",
        "import-interwiki-submit": "Внасяне",
-       "import-interwiki-namespace": "Целево именно пространство:",
-       "import-interwiki-rootpage": "Целева основна страница (незадължително):",
        "import-upload-filename": "Име на файл:",
        "import-comment": "Коментар:",
        "importtext": "Изнесете файла от изходното уики чрез „[[Special:Export|инструмента за изнасяне]]“. Съхранете го на твърдия диск на компютъра си и го качете тук.",
        "tooltip-pt-mycontris": "Списък на вашите приноси",
        "tooltip-pt-login": "Насърчаваме ви да влезете, въпреки че не е задължително.",
        "tooltip-pt-logout": "Излизане от {{SITENAME}}",
+       "tooltip-pt-createaccount": "Насърчаваме Ви да си създадете сметка и да влезете, въпреки че не е задължително.",
        "tooltip-ca-talk": "Беседа относно страницата",
        "tooltip-ca-edit": "Можете да редактирате страницата. Използвайте бутона за предварителен преглед преди да съхраните.",
        "tooltip-ca-addsection": "Започване на нов раздел",
        "tooltip-diff": "Показване на направените от вас промени по текста",
        "tooltip-compareselectedversions": "Показване на разликите между двете избрани версии на страницата",
        "tooltip-watch": "Добавяне на страницата към списъка ви за наблюдение",
+       "tooltip-watchlistedit-normal-submit": "Премахване на заглавия",
        "tooltip-watchlistedit-raw-submit": "Обновяване на списъка за наблюдение",
        "tooltip-recreate": "Възстановяване на страницата независимо, че е била изтрита",
        "tooltip-upload": "Започване на качването",
        "pageinfo-length": "Дължина на страницата (в байтове)",
        "pageinfo-article-id": "Номер на страницата",
        "pageinfo-language": "Език на съдържанието на страницата",
+       "pageinfo-content-model": "Модел на съдържанието на страницата",
        "pageinfo-robot-policy": "Индексиране от роботи",
        "pageinfo-robot-index": "Позволено",
        "pageinfo-robot-noindex": "Непозволено",
        "pageinfo-protect-cascading": "Каскадни защити, започващи от тази страница",
        "pageinfo-protect-cascading-yes": "Да",
        "pageinfo-protect-cascading-from": "Каскадни защити, започващи от",
+       "pageinfo-category-info": "Информация за категория",
+       "pageinfo-category-total": "Общ брой",
        "pageinfo-category-pages": "Брой страници",
        "pageinfo-category-subcats": "Брой подкатегории",
        "pageinfo-category-files": "Брой файлове",
        "markedaspatrollederrortext": "Необходимо е да се посочи редакция, която да бъде отбелязана като проверена.",
        "markedaspatrollederror-noautopatrol": "Не е разрешено да маркирате своите редакции като проверени.",
        "markedaspatrollednotify": "Тази промяна на $1 беше отбелязана като патрулирана.",
+       "markedaspatrollederrornotify": "Неуспешно отбелязване на редакция като патрулирана.",
        "patrol-log-page": "Дневник на патрула",
        "patrol-log-header": "Тази страница съдържа дневник на проверените версии.",
        "log-show-hide-patrol": "$1 на Дневника на патрула",
        "autosumm-blank": "Премахване на цялото съдържание на страницата",
        "autosumm-replace": "Заместване на съдържанието на страницата с „$1“",
        "autoredircomment": "Пренасочване към [[$1]]",
-       "autosumm-new": "Нова страница: $1",
+       "autosumm-new": "Нова страница: „$1“",
        "lag-warn-normal": "Промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.",
        "lag-warn-high": "Поради голямото изоставане в сървърната синхронизация, промените от {{PLURAL:$1|последната $1 секунда|последните $1 секунди}} вероятно не са показани в списъка.",
        "watchlistedit-normal-title": "Редактиране на списъка за наблюдение",
        "version-entrypoints": "Адреси на входни точки",
        "version-entrypoints-header-entrypoint": "Входна точка",
        "version-entrypoints-header-url": "Адрес",
+       "version-libraries": "Инсталирани библиотеки",
+       "version-libraries-library": "Библиотека",
+       "version-libraries-version": "Версия",
        "redirect-submit": "Отваряне",
        "redirect-value": "Стойност:",
        "redirect-user": "Потребителски номер",
        "fileduplicatesearch-info": "$1 × $2 пиксела<br />Размер на файла: $3<br />MIME тип: $4",
        "fileduplicatesearch-result-1": "Файлът „$1“ няма идентично копие.",
        "fileduplicatesearch-result-n": "Файлът „$1“ има {{PLURAL:$2|едно идентично копие|$2 идентични копия}}.",
-       "fileduplicatesearch-noresults": "Не беше открит файл с име \"$1\".",
+       "fileduplicatesearch-noresults": "Не беше открит файл с име „$1“.",
        "specialpages": "Специални страници",
        "specialpages-note-top": "Легенда",
        "specialpages-note": "* Обикновени специални страници.\n* <strong class=\"mw-specialpagerestricted\">Специални страници с ограничения.</strong>",
        "tags-tag": "Име на етикета",
        "tags-display-header": "Изглед в списъците с промени",
        "tags-description-header": "Пълно описание на значението",
+       "tags-source-header": "Източник",
        "tags-active-header": "Активен?",
        "tags-hitcount-header": "Отбелязани промени",
+       "tags-actions-header": "Действия",
        "tags-active-yes": "Да",
        "tags-active-no": "Не",
+       "tags-source-extension": "Дефиниран от разширение",
+       "tags-source-none": "Вече не се използва",
        "tags-edit": "редактиране",
        "tags-hitcount": "$1 {{PLURAL:$1|промяна|промени}}",
+       "tags-create-reason": "Причина:",
+       "tags-create-submit": "Създаване",
+       "tags-create-no-name": "Трябва да посочите име на етикет.",
+       "tags-create-invalid-chars": "Имената на етикети не трябва да съдържат запетайки (<code>,</code>) или наклонени черти (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Имената на етикети не трябва да съдържат знаци, които не могат да бъдат използвани в заглавия на страници.",
+       "tags-create-already-exists": "Етикет „$1“ вече съществува.",
+       "tags-create-warnings-below": "Искате ли да продължите със създаването на етикета?",
+       "tags-delete-title": "Изтриване на етикет",
+       "tags-delete-explanation-initial": "На път сте да изтриете етикетът „$1“ от базата от данни.",
+       "tags-delete-reason": "Причина:",
+       "tags-delete-submit": "Необратимо изтриване на етикета",
+       "tags-delete-not-found": "Етикет „$1“ не съществува.",
+       "tags-activate-title": "Активиране на етикета",
+       "tags-activate-reason": "Причина:",
+       "tags-activate-not-found": "Етикет „$1“ не съществува.",
+       "tags-deactivate-reason": "Причина:",
+       "tags-edit-new-tags": "Нови етикети:",
+       "tags-edit-reason": "Причина:",
        "comparepages": "Сравняване на страници",
        "compare-page1": "Страница 1",
        "compare-page2": "Страница 2",
        "logentry-rights-rights": "$1 {{GENDER:$2|промени}} потребителската група на $3 от $4 на $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|промени}} потребителската група на $3",
        "logentry-rights-autopromote": "$1 е автоматично {{GENDER:$2|повишен|повишена}} от $4 до $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|качи}} $3",
        "rightsnone": "(никакви)",
        "revdelete-summary": "резюме",
        "feedback-adding": "Добавяне на коментар към страницата...",
        "api-error-publishfailed": "Вътрешна грешка: Сървърът не успя да съхрани временния файл.",
        "api-error-timeout": "Сървърът не отговори в рамките на предвиденото време.",
        "api-error-unclassified": "Възникна непозната грешка.",
-       "api-error-unknown-code": "Непозната грешка: \"$1\"",
+       "api-error-unknown-code": "Непозната грешка: „$1“",
        "api-error-unknown-error": "Вътрешна грешка: Нещо се обърка по време на качването на файла ви.",
-       "api-error-unknown-warning": "Непознато предупреждение: $1",
+       "api-error-unknown-warning": "Непознато предупреждение: „$1“",
        "api-error-unknownerror": "Неизвестна грешка: „$1“.",
        "api-error-uploaddisabled": "Достъпът за качване на файлове в това уики е прекратен.",
        "api-error-verification-error": "Файлът може би е повреден или има грешно разширение.",
        "mediastatistics-header-audio": "Аудио",
        "mediastatistics-header-video": "Видео",
        "json-error-syntax": "Синтактична грешка",
+       "headline-anchor-title": "Препратка към този раздел",
        "special-characters-group-latin": "Латиница",
        "special-characters-group-latinextended": "Латиница – разширена",
        "special-characters-group-ipa": "IPA",
index cbd4781..ebe3c25 100644 (file)
        "right-move-rootuserpages": "root ব্যবহারকারীর পাতাগুলো সরিয়ে ফেলুন",
        "right-move-categorypages": "বিষয়শ্রেণী পাতাসমূহ স্থানান্তর করুন",
        "right-movefile": "ফাইল স্থানান্তর",
-       "right-suppressredirect": "পাতা স্থানান্তরের সময় মূল পাতায় রিডাইরেক্ট তৈরী করছে না",
+       "right-suppressredirect": "পাতা স্থানান্তরের সময় মূল পাতা থেকে পুনর্নির্দেশ তৈরী করছে না",
        "right-upload": "ফাইল আপলোড করুন",
        "right-reupload": "বিদ্যমান ফাইল প্রতিস্থাপন করো",
        "right-reupload-own": "কারও আপলোডকৃত ফাইল ওভাররাইট করুন",
        "pagemovedsub": "সরিয়ে নেওয়া হয়েছে",
        "movepage-moved": "'''\"$1\"-কে \"$2\" শিরোনামে স্থানান্তর করা হয়েছে'''",
        "movepage-moved-redirect": "একটি পুনর্নির্দেশনা তৈরি হয়েছে।",
-       "movepage-moved-noredirect": "রিডাà¦\87রà§\87à¦\95à§\8dà¦\9f তৈরীতে বাধা দেয়া হয়েছে।",
+       "movepage-moved-noredirect": "পà§\81নরà§\8dনিরà§\8dদà§\87শ তৈরীতে বাধা দেয়া হয়েছে।",
        "articleexists": "এই শিরোনামে একটি পাতা ইতোমধ্যে সৃষ্টি হয়ে গেছে, অথবা আপনি যে শিরোনামটি পছন্দ করেছেন তা গ্রহণযোগ্য নয়। দয়া করে অন্য একটি শিরোনাম দিয়ে চেষ্টা করুন।",
        "cantmove-titleprotected": "আপনি এই অবস্থানে পাতাটিকে স্থানান্তর করতে পারেন না, কারণ এই নতুন শিরোনামটি সৃষ্টি করা থেকে সুরক্ষিত।",
        "movetalk": "সংশ্লিষ্ট আলাপের পাতা সরিয়ে নাও",
        "version-license-not-found": "এই এক্সটেনশনের জন্য কোনো বিস্তারিত লাইসেন্স তথ্য পাওয়া যায়নি।",
        "version-credits-title": "$1-এর জন্য কৃতিত্ব",
        "version-credits-not-found": "এই এক্সটেনশনটির জন্য কোনো বিস্তারিত কৃতিত্ব তথ্য পাওয়া যায়নি।",
-       "version-poweredby-credits": "এইক উইকিটি পরিচালিত হচ্ছে '''[https://www.mediawiki.org/ মিডিয়াউইকি]'''-এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।",
+       "version-poweredby-credits": "এই উইকিটি পরিচালিত হচ্ছে <strong>[https://www.mediawiki.org/ মিডিয়াউইকি]</strong> -এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।",
        "version-poweredby-others": "অন্যান্য",
        "version-poweredby-translators": "translatewiki.net অনুবাদকগণ",
        "version-credits-summary": "[[Special:Version|মিডিয়াউইকি]] সফটওয়্যারে অবদানের জন্য আমরা এই ব্যক্তিকে স্বীকৃতি দিতে চাই।",
-       "version-license-info": "মিডিয়াউইকি এ++++কটি ফ্রি সফটওয়্যার, আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। \n\nসকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। \n\nএই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি কপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।",
+       "version-license-info": "মিডিয়াউইকি একটি ফ্রি সফটওয়্যার, আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। \n\nসকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। \n\nএই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি কপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।",
        "version-software": "ইনস্টলকৃত সফটওয়্যার",
        "version-software-product": "পণ্য",
        "version-software-version": "সংস্করণ",
index 086f06a..cc56895 100644 (file)
        "searchrelated": "povezano",
        "searchall": "sve",
        "showingresults": "Dolje {{PLURAL:$1|je prikazan '''1''' rezultat|su prikazana '''$1''' rezultata|je prikazano '''$1''' rezultata}} počev od '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> od <strong>$3</strong>|Rezultati <strong>$1 - $2</strong> od <strong>$3</strong>}}",
        "search-nonefound": "Nisu pronađeni rezultati koji odgovaraju upitu.",
        "powersearch-legend": "Napredna pretraga",
        "powersearch-ns": "Pretraga u imenskim prostorima:",
        "import-interwiki-history": "Kopiraj sve verzije historije za ovu stranicu",
        "import-interwiki-templates": "Uključi sve šablone",
        "import-interwiki-submit": "Uvoz",
-       "import-interwiki-namespace": "Odredišni imenski prostor:",
-       "import-interwiki-rootpage": "Odredišna osnovna stranica (opcionalno):",
        "import-upload-filename": "Naziv datoteke:",
        "import-comment": "Komentar:",
        "importtext": "Molimo Vas da izvezete datoteku iz izvornog wikija koristeći [[Special:Export|alat za izvoz]].\nSačuvajte je na Vašem računaru i pošaljite ovdje.",
        "tooltip-pt-mycontris": "Spisak vašeg doprinosa",
        "tooltip-pt-login": "Predlažemo da se prijavite, ali nije obvezno.",
        "tooltip-pt-logout": "Odjava sa projekta {{SITENAME}}",
+       "tooltip-pt-createaccount": "Ohrabrujemo vas da otvorite nalog i prijavite se, međutim to nije obavezno",
        "tooltip-ca-talk": "Razgovor o sadržaju",
        "tooltip-ca-edit": "Možete uređivati ovaj članak. Molimo Vas, koristite dugme \"Prikaži izgled\" prije spašavanja izmjena.",
        "tooltip-ca-addsection": "Započnite novu sekciju.",
        "logentry-rights-rights": "$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3 iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|uploaded}} $3",
        "rightsnone": "(nema)",
        "revdelete-summary": "sažetak",
        "feedback-adding": "Dodajem povratne informacije na stranicu...",
index 7f1be40..910f0ba 100644 (file)
        "tags-update-add-not-allowed-one": "No es permet afegir manualment l'etiqueta «$1».",
        "tags-edit-title": "Modifica les etiquetes",
        "tags-edit-manage-link": "Gestiona les etiquetes",
+       "tags-edit-existing-tags": "Etiquetes existents:",
+       "tags-edit-new-tags": "Etiquetes noves:",
        "tags-edit-reason": "Motiu:",
        "comparepages": "Comparar pàgines",
        "compare-page1": "Pàgina 1",
index af91202..c6b964b 100644 (file)
        "userlogin-helplink2": "Системин чудахаран гӀодар",
        "userlogin-loggedin": "Хьо {{GENDER:$1|$1}} цӀарца чохь ву/ю.\nЛахара форманца кхин цӀарца чугӀо.",
        "userlogin-createanother": "Кхолла декъашхочун кхин дӀаяздар",
-       "createacct-emailrequired": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
-       "createacct-emailoptional": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес (ца яздича мега)",
-       "createacct-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
-       "createacct-another-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
+       "createacct-emailrequired": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
+       "createacct-emailoptional": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес (ца яздича мега)",
+       "createacct-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\85Ñ\8cайн Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
+       "createacct-another-email-ph": "Ð\94Ó\80аÑ\8fзде Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
        "createaccountmail": "Лела йе цахууш нисйина хана пароль, кхин язйинчу электронан адрес тӀе яийта и.",
        "createacct-realname": "Хьан цӀе (ца язйича мега)",
        "createaccountreason": "Бахьна:",
        "passwordremindertitle": "Декъашхочун {{grammar:genitive|{{SITENAME}}}}  пароль дагайаийтар",
        "passwordremindertext": "Цхьам (ахь хила мега IP-адрес $1 тӀера) керла пароль кхоллар дехна {{grammar:genitive|{{SITENAME}}}} ($4) чохь. Декъашхочун $2\nкхоьллина керла хана пароль: $3. Иза дехар ахь динехь,\nсистемин чугӀой хийца пароль.\nХьан керла пароль белх беш хира ю $5 {{PLURAL:$5|дийнахь}}.\n\nХьой дехар дийна дацахь хӀума маде Ӏад бита хӀара хаам.",
        "noemail": "ЦӀе $1 йолу декъашхочун электронан адрес яздина дац.",
-       "noemailcreate": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес дӀаяздан деза",
+       "noemailcreate": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес дӀаяздан деза",
        "passwordsent": "Керла пароль декъашхочун $1 электронан адрес тӀе дӀахьажина. Дехар до, керла пароль еъча юху системин чугӀо.",
        "blocked-mailpassword": "Хьан IP-адрес ца тадарш дан магийна дац, цуьндела пароль меттахӀотош йолу функци блоктоьхна ю.",
        "eauthentsent": "ДӀаяздинчу электронан адрес тӀе хаам баийтина.\nДаиман хаамаш баийта хааман чохь де бохург дан деза адрес хьай хилар бакъдеш.",
        "throttled-mailpassword": "Пароль дага йоуьйту функци {{PLURAL:$1|тӀехьара $1 сахьтехь}} лелина.\nЗулам цахилийта $1 {{PLURAL:$1|сахьтан чохь}} цӀа бен функци лело йиш яц.",
        "mailerror": "Кехат дохьуьйтуш гӀалат ду: $1",
        "acct_creation_throttle_hit": "Де-буьйса хена чохь хьа IP-адрес тӀера {{PLURAL:$1|кхоьллина $1 декъашхочун дӀаяздар|кхоьллина $1 декъашхочун дӀаяздарш}} оьцу хана юкъахь кхин дукха дӀаяздарш кхолла магийна дац.\nЦундела и IP-адрес лелочарна кхин керла дӀаяздарш кхолла цало.",
-       "emailauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес бакъдина $2 $3.",
-       "emailnotauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес хӀинца а бакъдина дац.\nХаамаш кхоьхьуьйтура бац.",
-       "noemailprefs": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87Ñ\82ан Ð°Ð´Ñ\80еÑ\81 Ñ\8fздина Ð´Ð°Ñ\86, Ñ\8dл. Ð¿Ð¾Ñ\87тан белхан функцеш дӀаяйина ю.",
-       "emailconfirmlink": "Ð\91акÑ\8aде Ñ\85Ñ\8cай Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес",
-       "invalidemailaddress": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес тӀелаца йиш яц, цуна формат нийса цахилар бахьнехь.\nДехар до, язъе нийса электронан адрес я и меттиг есса йита.",
-       "cannotchangeemail": "Ð¥Ó\80окÑ\85Ñ\83 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80Ñ\86а Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адресаш хуьйцийла дац хӀокху вики чохь",
+       "emailauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес бакъдина $2 $3.",
+       "emailnotauthenticated": "Ð¥Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес хӀинца а бакъдина дац.\nХаамаш кхоьхьуьйтура бац.",
+       "noemailprefs": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82ан Ð°Ð´Ñ\80еÑ\81 Ñ\8fздина Ð´Ð°Ñ\86, Ñ\8dл. Ð¿Ð¾Ñ\88тан белхан функцеш дӀаяйина ю.",
+       "emailconfirmlink": "Ð\91акÑ\8aде Ñ\85Ñ\8cай Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес",
+       "invalidemailaddress": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес тӀелаца йиш яц, цуна формат нийса цахилар бахьнехь.\nДехар до, язъе нийса электронан адрес я и меттиг есса йита.",
+       "cannotchangeemail": "Ð¥Ó\80окÑ\85Ñ\83 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80Ñ\86а Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адресаш хуьйцийла дац хӀокху вики чохь",
        "emaildisabled": "ХӀокху сайтан таро яц электронан почте хаамаш бахьийта.",
        "accountcreated": "Декъашхочун дӀаяздар кхоьллина",
        "accountcreatedtext": "Кхоьллина декъашхочун [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|дийцаре.]]) дӀаяздар.",
        "createaccount-title": "{{SITENAME}}: декъашхочун дӀаяздар кхоллар",
-       "createaccount-text": "{{SITENAME}} ($4) Ð¿Ñ\80оекÑ\82еÑ\85Ñ\8c Ñ\86Ñ\85Ñ\8cам Ñ\85Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздина хӀара «$2» декъашхочун дӀаяздар кхоьллина. \n\nДекъашхочун пароль — «$3». Ахьа дан дезарг сайтан чу гӀой пароль хийца.\n\nДекъашхочун дӀаяздар цахууш кхоьллинехь хӀума а ма де.",
+       "createaccount-text": "{{SITENAME}} ($4) Ð¿Ñ\80оекÑ\82еÑ\85Ñ\8c Ñ\86Ñ\85Ñ\8cам Ñ\85Ñ\8cан Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздина хӀара «$2» декъашхочун дӀаяздар кхоьллина. \n\nДекъашхочун пароль — «$3». Ахьа дан дезарг сайтан чу гӀой пароль хийца.\n\nДекъашхочун дӀаяздар цахууш кхоьллинехь хӀума а ма де.",
        "login-throttled": "Хьо дукха гӀиртира.\nДехар до, собар де $1 юха гӀортале.",
        "login-abort-generic": "Сестемин довзийта тарцаделира",
        "loginlanguagelabel": "Мотт: $1",
        "passwordreset-text-many": "{{PLURAL:$1|Пароль кхосса юза лахара цхьа меттиг.}}",
        "passwordreset-legend": "Пароль кхоссар",
        "passwordreset-disabled": "ХӀокху вики чохь пароль кхоссар дӀадайина ду.",
-       "passwordreset-emaildisabled": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан функцеш хӀокху вики чохь дӀаяйина ю.",
+       "passwordreset-emaildisabled": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан функцеш хӀокху вики чохь дӀаяйина ю.",
        "passwordreset-username": "Декъашхочун цӀе:",
        "passwordreset-domain": "Домен:",
        "passwordreset-capture": "Хьажа беанчу хааме?",
        "passwordreset-capture-help": "Ахьа хӀара билгало хӀотта яхь хьона гур бу декъашхочо баийта чохь хана пароль йолу хаам.",
-       "passwordreset-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес:",
+       "passwordreset-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес:",
        "passwordreset-emailtitle": "{{SITENAME}}: декъашхочун дӀаяздарх лаьцна хаам",
        "passwordreset-emailtext-ip": "{{SITENAME}} ($4) проектехь цхьам я ахьа хӀокху IP-адрес $1 тӀера хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
        "passwordreset-emailtext-user": "{{SITENAME}} ($4) проектера декъашхочо $1 хьа декъашхочун пароль кхоссар дехна,\nоьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:\n\n$2\n\n{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.\nСистемин чугӀой харжа керла пароль. \nХьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.",
        "passwordreset-emailsent-capture": "Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш. \nцуна йозане хьажа йиш ю лахахь.",
        "passwordreset-emailerror-capture": "Пароль кхоссаран хаам чохь болуш электронан кехат кхоьллина, цуна йоза хьажа йиш ю лахахь, амма иза {{GENDER:$2|декъашхочунга}} дӀадахьийта тар цаделира бахьнехь: $1",
        "changeemail": "Хийца электронан почта",
-       "changeemail-text": "Юза Ñ\85Ó\80аÑ\80а Ñ\84оÑ\80ма Ñ\85Ñ\8cайн Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес хуьйцуш. Ахьа хийцар бакъдан язъян еза пароль.",
+       "changeemail-text": "Юза Ñ\85Ó\80аÑ\80а Ñ\84оÑ\80ма Ñ\85Ñ\8cайн Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес хуьйцуш. Ахьа хийцар бакъдан язъян еза пароль.",
        "changeemail-no-info": "ХӀара агӀо лело системин чугӀо.",
-       "changeemail-oldemail": "Ð\9aаÑ\80аÑ\80а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес:",
-       "changeemail-newemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан керла адрес:",
+       "changeemail-oldemail": "Ð\9aаÑ\80аÑ\80а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес:",
+       "changeemail-newemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан керла адрес:",
        "changeemail-none": "(яц)",
        "changeemail-password": "Хьан пароль «{{SITENAME}}» проектан:",
        "changeemail-submit": "Хийца email",
        "summary-preview": "Цуьнах лаьцна хирду:",
        "subject-preview": "Коьрта могӀа хира бу:",
        "blockedtitle": "Декъашхочун блоктоьхана",
-       "blockedtext": "'''Ð¥Ñ\8cан Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80 Ñ\8f IP-адÑ\80еÑ\81 Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на Ð´Ñ\83.'''\n\nÐ\91локÑ\82оÑ\8cÑ\85на ÐºÑ\83Ñ\8cйгалÑ\85оÑ\87о $1.\nÐ\91илгалдина Ð±Ð°Ñ\85Ñ\8cна: Â«''$2''».\n\n* Ð\91локÑ\82оÑ\85аÑ\80 Ð´Ð¾Ð»Ð°Ð´ÐµÐ»Ð»Ð°: $8\n* Ð\91локÑ\82оÑ\85аÑ\80 Ñ\87екÑ\85долÑ\83: $6\n* Ð\91локÑ\82оÑ\85аÑ\80ан Ó\80алаÑ\88о: $7\n\nÐ¥Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e $1 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cнга Ð´ÐµÑ\85аÑ\80дан Ñ\8f ÐºÑ\85еÑ\87Ñ\83 Ð¼Ñ\83Ñ\8cлÑ\85а [[{{MediaWiki:Grouppage-sysop}}|кÑ\83Ñ\8cйгалÑ\85оÑ\87Ñ\83Ñ\8cнга]].\nТеÑ\80гам Ð±Ðµ, Ñ\85Ñ\8cа Ñ\82аÑ\80о Ñ\8fÑ\86 Â«Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83нга ÐºÐµÑ\85аÑ\82» Ð¾Ð»Ñ\83 Ñ\84Ñ\83нкÑ\86и Ð»ÐµÐ»Ð°Ñ\8fн, Ñ\85Ñ\8cан [[Special:Preferences|гÓ\80иÑ\80Ñ\81 Ð½Ð¸Ñ\81баÑ\80 Ñ\87оÑ\85Ñ\8c]] Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздина дацахь, я кехаташ кхехӀитарна а блоктоьхна елахь.\nХьан IP-адрес — $3, блоктохаран идентификатор — $5.\nДехар до, хьайн хаам чохь билгалде и.",
+       "blockedtext": "'''Ð¥Ñ\8cан Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80 Ñ\8f IP-адÑ\80еÑ\81 Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на Ð´Ñ\83.'''\n\nÐ\91локÑ\82оÑ\8cÑ\85на ÐºÑ\83Ñ\8cйгалÑ\85оÑ\87о $1.\nÐ\91илгалдина Ð±Ð°Ñ\85Ñ\8cна: Â«''$2''».\n\n* Ð\91локÑ\82оÑ\85аÑ\80 Ð´Ð¾Ð»Ð°Ð´ÐµÐ»Ð»Ð°: $8\n* Ð\91локÑ\82оÑ\85аÑ\80 Ñ\87екÑ\85долÑ\83: $6\n* Ð\91локÑ\82оÑ\85аÑ\80ан Ó\80алаÑ\88о: $7\n\nÐ¥Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e $1 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cнга Ð´ÐµÑ\85аÑ\80дан Ñ\8f ÐºÑ\85еÑ\87Ñ\83 Ð¼Ñ\83Ñ\8cлÑ\85а [[{{MediaWiki:Grouppage-sysop}}|кÑ\83Ñ\8cйгалÑ\85оÑ\87Ñ\83Ñ\8cнга]].\nТеÑ\80гам Ð±Ðµ, Ñ\85Ñ\8cа Ñ\82аÑ\80о Ñ\8fÑ\86 Â«Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83нга ÐºÐµÑ\85аÑ\82» Ð¾Ð»Ñ\83 Ñ\84Ñ\83нкÑ\86и Ð»ÐµÐ»Ð°Ñ\8fн, Ñ\85Ñ\8cан [[Special:Preferences|гÓ\80иÑ\80Ñ\81 Ð½Ð¸Ñ\81баÑ\80 Ñ\87оÑ\85Ñ\8c]] Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздина дацахь, я кехаташ кхехӀитарна а блоктоьхна елахь.\nХьан IP-адрес — $3, блоктохаран идентификатор — $5.\nДехар до, хьайн хаам чохь билгалде и.",
        "blockednoreason": "бахьана билгалдина дац",
        "whitelistedittext": "Ахьа да деза $1 агӀона хийцамаш бан.",
        "nosuchsectiontitle": "Дакъа каро йиш яц.",
        "prefs-misc": "Кхин гlирсаш",
        "prefs-resetpass": "Хийца пароль",
        "prefs-changeemail": "Хийца электронан почта",
-       "prefs-setemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес дӀахӀоттор",
-       "prefs-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан параметраш",
+       "prefs-setemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес дӀахӀоттор",
+       "prefs-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан параметраш",
        "prefs-rendering": "Арахьара хатl",
        "saveprefs": "Ӏалашдан",
        "restoreprefs": "МеттахӀоттабе гӀирс Iад битарца",
        "gender-female": "сте",
        "prefs-help-gender": "ТӀехь доцург: и хаам лелош бу цхьайолу хаамаш чохь декъашхочун пол гучуйоккхуш.\nИ хаам массарна гуш хир бу.",
        "email": "Email",
-       "prefs-help-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес цахӀоттийча а хӀумма дац, амма иза оьшар ю, нагахь хьуна хьай пароль йицлахь.",
+       "prefs-help-email": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес цахӀоттийча а хӀумма дац, амма иза оьшар ю, нагахь хьуна хьай пароль йицлахь.",
        "prefs-help-email-others": "Кхин дӀа цо кхечу декъашхошна йиш хуьлуьйту хьога электронан кехат даийта хьан агӀона чохь йолу хьажориган гӀоьнца.",
-       "prefs-help-email-required": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздан деза.",
+       "prefs-help-email-required": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздан деза.",
        "prefs-info": "Коьрта хаам",
        "prefs-i18n": "Юкъардекъа мотт",
        "prefs-signature": "КуьгтаӀор",
        "trackingcategories-nodesc": "Цунах лаьцна хӀума дац.",
        "trackingcategories-disabled": "Категори дӀаяйина ю",
        "mailnologin": "ДӀаяхьийта адрес дац",
-       "mailnologintext": "ЭлекÑ\82Ñ\80онан ÐºÐµÑ\85аÑ\82аÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ð¹Ð¸Ñ\88 Ñ\85илийÑ\82а [[Special:UserLogin|Ñ\81иÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о]] ÐºÑ\85ин Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\88ка Ñ\85аамаÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ñ\85Ñ\8cа [[Special:Preferences|гÓ\80иÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c]] Ð±Ð°ÐºÑ\8aалла Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес хила деза.",
+       "mailnologintext": "ЭлекÑ\82Ñ\80онан ÐºÐµÑ\85аÑ\82аÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ð¹Ð¸Ñ\88 Ñ\85илийÑ\82а [[Special:UserLogin|Ñ\81иÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о]] ÐºÑ\85ин Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\88ка Ñ\85аамаÑ\88 ÐºÑ\85еÑ\85Ñ\8cийÑ\82а Ñ\85Ñ\8cа [[Special:Preferences|гÓ\80иÑ\80Ñ\81а Ñ\87оÑ\85Ñ\8c]] Ð±Ð°ÐºÑ\8aалла Ð´Ð¾Ð»Ñ\83 Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес хила деза.",
        "emailuser": "Декъашхочун хааман кехат",
        "emailuser-title-target": "{{GENDER:$1|декъашхочунга}} электронан хаам базбар",
        "emailuser-title-notarget": "Декъашхочунга кехат яздар",
        "emailpagetext": "ХӀокху агӀона гӀоьнца йиш ю {{GENDER:$1|декъашхочун}} электронан почте хаам бахьийта.\nХьоьга жоп лур ду ахьа [[Special:Preferences|хьайн гӀирса чу]] дӀаяздина долу адрес тӀе.",
        "defemailsubject": "Хаам {{grammar:genitive|{{SITENAME}}}} чура бу",
        "usermaildisabled": "Декъашхочун электронан почта дӀаяйина ю",
-       "noemailtitle": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес дац",
+       "noemailtitle": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес дац",
        "emailusername": "Декъашхочун цӀе:",
        "emailusernamesubmit": "ДӀадахьийта",
        "email-legend": "{{grammar:genitive|{{SITENAME}}}} кхечу декъашхочунга кехат дахьийтар",
        "exif-urgency-other": "Декъашхочо билгалйина приоритет ($1)",
        "namespacesall": "массо",
        "monthsall": "массо",
-       "confirmemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес бакъдар",
-       "confirmemail_noemail": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\87тан адрес яздина дац [[Special:Preferences|гӀирсан чохь]].",
+       "confirmemail": "ЭлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес бакъдар",
+       "confirmemail_noemail": "Ð\90Ñ\85Ñ\8cа Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88тан адрес яздина дац [[Special:Preferences|гӀирсан чохь]].",
        "confirmrecreate": "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяьккхина, ахьа иза тая йолийча, дӀаяккхарна бахьна:\n: ''$2''\nДехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
        "confirmrecreate-noreason": "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяьккхина, ахьа иза тая йолийча. Дехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
        "recreate": "Юха кхолла",
index b8ed851..3601bec 100644 (file)
        "permalink": "بەستەری ھەمیشەیی",
        "print": "چاپ",
        "view": "بینین",
+       "view-foreign": "لە $1دا بیبینە",
        "edit": "دەستکاری",
        "create": "دروستکردن",
        "editthispage": "دەستکاری ئەم پەڕەیە بکە‌",
        "mycustomjsprotected": "دەسەڵاتی دەستکارییکردنی ئەم پەڕەی JavaScript ـەت نییە.",
        "myprivateinfoprotected": "دەسەڵاتی دەستکارییکردنی زانیارییە تایبەتییەکانی خۆتت نییە.",
        "mypreferencesprotected": "دەسەڵاتی دەستکارییکردنی هەڵبژاردنەکانی خۆتت نییە.",
-       "ns-specialprotected": "تۆ ناتوانی لاپەڕە تایبەتەکان دەستکاریی بکەی.",
+       "ns-specialprotected": "پەڕە تایبەتەکان دەستکاری ناکرێن.",
        "titleprotected": "ئەم سەرناوە پارێزراوە لە دروستکران لە لایەن [[User:$1|$1]].\nھۆکاری ئەمە بریتیە لە \"''$2''\".",
        "invalidtitle-knownnamespace": "سەردێڕی نادروست بە بۆشایی ناوی «$2» و دەقی «$3»",
        "invalidtitle-unknownnamespace": "سەردێڕی هەڵە لەگەڵ ناوەبۆشایی نەناسراوی ژمارە $1 و دەقی \"$2\"",
        "preview": "پێشبینین",
        "showpreview": "پێشبینین نیشان بدە",
        "showdiff": "گۆڕانکارییەکان نیشان بدە",
-       "anoneditwarning": "'''ھۆشیار بە:''' نەچوویتە ژوورەوە.\nناونیشانی IPی تۆ لە مێژووی دەستکارییەکانی ئەم پەڕەیەدا تۆماردەکرێت.",
+       "anoneditwarning": "<strong>ھۆشیار بە:</strong> نەڕۆیشتووتەتە ژوورەوە. ھەر دەستکارییەک بکەیت ناونیشانی IPیەکەت بۆ ھەموو کەسێک دیار دەبێت. بەڵام ئەگەر <strong>[$1 بچیتە ژوورەوە]</strong> یان <strong>[$2 ھەژمارێک دروست بکەیت]</strong>، دەستکارییەکانت بە ناوی بەکارھێنەرییەکەتەوە بڵاو دەبێتەوە و لە چەند قازانجی تریشی ھەیە.",
        "anonpreviewwarning": "«نەڕۆشتوویتە ژوورەوە. پاشەکەوتکردن، ئەدرەسی IPەکەت لە مێژووی دەستکاریی ئەم پەڕە تۆمار دەکات.»",
        "missingsummary": "'''وە بیر خستنەوە:''' پوختەیەکت نەنووسیوە بۆ چۆنیەتی گۆڕانکارییەکەت.\nئەگەر جارێکی تر پاشکەوت کردن لێبدەی، بێ پوختە تۆمار دەکرێ.",
        "missingcommenttext": "تکایە لە خوارەوە شرۆڤەیەک بنووسە.",
        "userrights-unchangeable-col": "ئەو گرووپانەی ناتوانی بیگۆڕی",
        "group": "گرووپ:",
        "group-user": "بەکارھێنەران",
-       "group-autoconfirmed": "بەکارھێنەرانی پەسندکراوی خۆگەڕ",
+       "group-autoconfirmed": "بەکارھێنەرە خۆبەخۆ پەسندکراوەکان",
        "group-bot": "بۆتەکان",
        "group-sysop": "بەڕێوەبەران",
        "group-bureaucrat": "بیوروکراتەکان",
        "group-suppress": "چاودێرەکان",
        "group-all": "(ھەموو)",
        "group-user-member": "{{GENDER:$1|بەکارھێنەر}}",
-       "group-autoconfirmed-member": "{{GENDER:$1|بەکارھێنەرانی پەسندکراوی خۆگەڕ}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|بەکارھێنەرە خۆبەخۆ پەسندکراوەکان}}",
        "group-bot-member": "بۆت",
        "group-sysop-member": "{{GENDER:$1|بەڕێوەبەر}}",
        "group-bureaucrat-member": "{{GENDER:$1|بیوروکرات}}",
        "group-suppress-member": "{{GENDER:$1|چاودێر}}",
        "grouppage-user": "{{ns:project}}:بەکارھێنەران",
-       "grouppage-autoconfirmed": "{{ns:project}}:بەکارھێنەرانی پەسندکراوی خۆگەڕ",
+       "grouppage-autoconfirmed": "{{ns:project}}:بەکارھێنەرە خۆبەخۆ پەسندکراوەکان",
        "grouppage-bot": "{{ns:project}}:بۆت",
        "grouppage-sysop": "{{ns:project}}:بەڕێوەبەران",
        "grouppage-bureaucrat": "{{ns:project}}:بیوروکراتەکان",
        "action-deleterevision": "سڕینەوەی ئەم پێداچوونەوەیە",
        "action-deletedhistory": "دیتنی مێژووی سڕاوەی ئەم پەڕەیە",
        "action-browsearchive": "گەران لە نێو لاپەڕە سڕاوەکان",
-       "action-undelete": "گەڕانەوەی ئەم لاپەڕە",
+       "action-undelete": "گەڕاندنەوەی ئەم پەڕەیە",
        "action-suppressrevision": "چاوپێداخشان و هاردنوەی ئەم لاپەڕە شاراوە",
        "action-suppressionlog": "دیتنی ئەم لۆگە ئەهلیە",
        "action-block": "بەربەست کردنی ئەم بەکارهێنەرە بۆ دەستکاری‌کردن",
        "rcshowhideanons": "بەکارھێنەرە نەناسراوەکان $1",
        "rcshowhideanons-show": "نیشان بدە",
        "rcshowhideanons-hide": "بشارەوە",
-       "rcshowhidepatr": "گۆرانکارییە پاس دراوەکان $1",
+       "rcshowhidepatr": "دەستکارییە پشکێنراوەکان $1",
        "rcshowhidepatr-show": "نیشان بدە",
        "rcshowhidepatr-hide": "بیشارەوە",
        "rcshowhidemine": "دەستکارییەکانم $1",
        "hide": "بشارەوە",
        "show": "نیشان بدە",
        "minoreditletter": "ب",
-       "newpageletter": "ن",
-       "boteditletter": "بۆ",
+       "newpageletter": "نوێ",
+       "boteditletter": "بۆت",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|بەکارھێنەر}}ی چاودێر]",
        "rc_categories": "بەرتەسک‌کردنەوە بە هاوپۆلەکان (به «|» جیای بکەوە‌)",
        "rc_categories_any": "هەرکام",
        "protectedpages-page": "پەڕە",
        "protectedpages-params": "پارامەترەکانی پاراستن",
        "protectedpages-reason": "ھۆکار",
-       "protectedtitles": "سەردێڕە پارێزراوەکان",
+       "protectedtitles": "سەرناوە پارێزراوەکان",
        "protectedtitlesempty": "ھیچ سەرناوێک بەم سنوورانەوە ئێستا نەپارێزراوە.",
        "listusers": "پێرستی بەکارھێنەران",
        "listusers-editsonly": "تەنیا ئەو بەکارھێنەرانە نیشان بدە کە دەستکارییان کردووە",
        "listusers-submit": "نیشانیبدە",
        "listusers-noresult": "ھیچ بەکارھێنەرێک نەدۆزرایەوە.",
        "listusers-blocked": "(بەربەست کراوە)",
-       "activeusers": "پێرستی بەکارھێنەرانی چالاک",
+       "activeusers": "پێرستی بەکارھێنەرە چالاکەکان",
        "activeusers-intro": "ئەمە لیستێکی ئەو بەکارھێنەرانەیە کە لە  $1 {{PLURAL:$1|ڕۆژ|ڕۆژ}}ی ڕابردوودا بە جۆرێک چالاکییەکیان ھەبووە.",
        "activeusers-count": "$1 {{PLURAL:$1|کردەوە}} لە دوایین {{PLURAL:$3|ڕۆژ|$3 ڕۆژ}}دا",
        "activeusers-from": "نیشاندانی بەکارھێنەران بە دەستپێکردن لە:",
        "ipusubmit": "لابردنی ئەم بەربەستە",
        "unblocked": "[[User:$1|$1]] لە بەربەست دەرهێنرا",
        "unblocked-id": "بەربەستی $1 لابرا",
-       "blocklist": "بەکارھێنەرانی بەربەسراو",
+       "blocklist": "بەکارھێنەرە بەربەستکراوەکان",
        "ipblocklist": "بەکارھێنەرە بەربەستکراوەکان",
        "ipblocklist-legend": "دۆزینەوەی بەکارهێنەرێکی بەربەست‌کراو",
        "blocklist-userblocks": "ھەژمارە بەربەستکراوەکان بشارەوە",
        "proxyblockreason": "ناونیشانی ئای‌پی تۆ بەربەست‌کراوە لەبەر ئەوەی پرۆکسیەکی کراوەیە.\nتکایە پەیوەندی بکە بە دابینکەری خزمەتی ئینتەرنەتی خۆت یان پاڵپشتی تەکنیکی و ئاگادریان کەوە لەو کێشە ئەمنیە گرینگە.",
        "sorbsreason": "ناونیشانی ئای‌پی تۆ لە DNSBLدا کە {{SITENAME}} کەڵکی لێ‌وەر دەگرێ، وەک پرۆکسیەکی کراوە لیست کراوە.",
        "sorbs_create_account_reason": "ناونیشانی ئای‌پی تۆ لە DNSBLدا کە {{SITENAME}} کەڵکی لێ‌وەر دەگرێ، وەک پرۆکسیەکی کراوە لیست کراوە.\nبۆیە ناتوانی هەژمارە درووست‌بکەی.",
-       "ipbblocked": "ناتوانی بەکارھێنەرانی تر بەربەست بکەی یان بکەیەوە، چون خۆت بەربەست کراوی.",
+       "ipbblocked": "ناتوانی بەکارھێنەرانی تر بەربەست بکەیت یان بکەیتەوە، چونکوو خۆت بەربەست کراوی.",
        "lockdb": "داخستنی بنکەدراوە",
        "unlockdb": "کردنەوەی بنکەدراوە",
        "lockdbtext": "داخستنی بنکەدراوە ئەبێتە هۆی ڕاگرتنی توانای هەموو بەکارهێنەران بۆ دەستکاری لاپەڕەکان، گۆڕانی هەڵبژاردەکانیان، دەستکاری لیستی چاودێرییەکانیان و هەموو ئەموو ئەو شتانە وا پێویستی بە گۆرانکاری لە بنکەدراوە هەیە.\nتکایە ئەرخەیان بە ئەمە هەر ئەوەیە کە دەتەوێ بیکەی و دوای چاکسازیەکەت لەیادت بێ کە بنکەدراوەکە بکەیتەوە.",
        "delete_and_move_confirm": "بەڵێ، پەڕەکە بسڕەوه",
        "delete_and_move_reason": "سڕایەوە بۆ کردنەوەی ڕیگە بۆ گواستنەوە لە «[[$1]]»ەوە",
        "selfmove": "سەردێڕەکانی سەرچاوە و مەبەست یەکێکن؛\nناکرێ لاپەڕەیەک بۆ سەر خۆی‌ بگوازرێتەوە.",
-       "immobile-source-namespace": "گواستنەوەی لاپەڕە لە بۆشایی‌ناو \"$1\" ناکرێت.",
+       "immobile-source-namespace": "پەڕەکان لە بۆشاییی ناوی \"$1\"دا ناگوێزرێنەوە.",
        "immobile-target-namespace": "گواستنەوەی لاپەڕە بۆناو بۆشایی‌ناو \"$1\" ناکرێت.",
        "immobile-target-namespace-iw": "بەستەرێکی نێوان‌ویکی ئامانجێکی گونجاو نیە بۆ گواستنەوەی لاپەڕە.",
        "immobile-source-page": "ئەمە لاپەڕە بۆ گواستنەوە نابێت.",
        "spamprotectionmatch": "ئەم دەقە ئەوەیە کە پاڵێوی سپامەکە دەبزوێنێ: $1",
        "spambot_username": "خاوێنکردنەوەی سپامی میدیاویکی",
        "spam_reverting": "گەڕانەوە بۆ دوایین پێداچوونەوە کە بەستەری لەخۆگرتووە بۆ $1",
+       "simpleantispam-label": "پشکنینی دژەھەرزە.\nئەمە پڕ <strong>مەکەرەوە</strong>!",
        "pageinfo-title": "زانیاری بۆ «$1»",
        "pageinfo-header-basic": "زانیاریی سەرەتایی",
        "pageinfo-header-edits": "مێژووی دەستکاری",
        "metadata-fields": "کێڵگەکانی میتاداتای وێنە کە لەم پەیامەدا بەڕیزکراون کاتێک خشتەی میتاداتا کۆکراوەش بێت لە پەڕەی وێنەدا نیشان دەدرێن.\nکێڵگەکانی تر لە حاڵەتی بنەڕەتیدا شاراوەن.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "پانی",
        "exif-imagelength": "بەرزی",
+       "exif-orientation": "ئاڕاستە",
        "exif-ycbcrpositioning": "شوێنی Y و C",
        "exif-datetime": "ڕێکەوتی و کاتی گۆڕانی پەڕگە",
        "exif-imagedescription": "ناونیشانی وێنە",
        "tag-filter-submit": "پاڵاوتن",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|تاگ|تاگەکان}}]]: $2)",
        "tags-title": "تاگەکان",
-       "tags-intro": "ئÛ\95Ù\85 Ù\84اپÛ\95Ú\95Û\95 Ø¦Û\95Ù\88 ØªØ§Ú¯Ø§Ù\86Û\95Û\8c Ù\84Û\8cست Ø¯Û\95کات Ú©Û\95 Ù\84Û\95Ù\88اÙ\86Û\95Û\8cÛ\95 Ù\86Û\95رÙ\85اÙ\85Û\8eر Ø¯Û\95ستکارÛ\8cÛ\95Ú©Û\8c Ø¨Û\86 Ù\86Û\8cشاÙ\86 Ø¨Ú©Ø§Øª Ù\88 Ù\85Û\95بÛ\95ستÛ\8c Ù\86Û\8cشاÙ\86 Ø¨Ø¯ات.",
+       "tags-intro": "ئÛ\95Ù\85 Ù¾Û\95Ú\95Û\95Û\8cÛ\95 Ù¾Û\8eرستÛ\8c Ù\86اÙ\88 Ù\88 Ù\85اÙ\86اÛ\8c Ø¦Û\95Ù\88 ØªØ§Ú¯Ø§Ù\86Û\95Û\8cÛ\95 Ú©Û\95 Ù\86Û\95رÙ\85اÙ\85Û\8eر Ù\84Û\95Ù\88اÙ\86Û\95Û\8cÛ\95 Ø¯Û\95ستکارÛ\8cÛ\8cÛ\95Ú©Û\8c Ù¾Û\8eÙ\88Û\95 Ø¯Û\8cارÛ\8c Ø¨Ú©ات.",
        "tags-tag": "ناوی تاگ",
-       "tags-display-header": "دÛ\8cÙ\85Û\95Ù\86 Ù\84Û\95سÛ\95ر Ù\84Û\8cستÛ\95کاÙ\86Û\8c Ú¯Û\86Ú\95اÙ\86",
-       "tags-description-header": "Ù¾Û\8eÙ\86اسÛ\95Û\8c ØªÛ\95Ù\88اÙ\88Û\8c Ù\85Û\95بÛ\95ست",
+       "tags-display-header": "دÛ\95رکÛ\95Ù\88تÙ\86Û\8c Ù\84Û\95 Ù¾Û\8eرستÛ\95کاÙ\86Û\8c Ú¯Û\86Ú\95اÙ\86کارÛ\8c",
+       "tags-description-header": "Ù\88Û\95سÙ\81Û\8c Ù\85اÙ\86اکÛ\95Û\8c Ø¨Û\95 ØªÛ\95Ù\88اÙ\88Û\8c",
        "tags-hitcount-header": "گۆڕانکاریە تاگ‌کراوەکان",
        "tags-active-yes": "بەڵێ",
        "tags-active-no": "نا",
index b018a73..958a504 100644 (file)
        "faqpage": "Project:ЫйХу",
        "variants": "Вариантсем",
        "errorpagetitle": "Йăнăш",
-       "returnto": "$1 Ñ\81Ñ\82Ñ\80аниÑ\86Ä\83на Ñ\82авÑ\80Ä\83н.",
-       "tagline": "{{GRAMMAR:genitive|{{SITENAME}}}}ри материал",
+       "returnto": "$1 таврăн.",
+       "tagline": "{{SITENAME}}",
        "help": "Пулăшу",
        "search": "Шырамалли",
        "searchbutton": "Шыра",
        "search-result-size": "$1 ({{PLURAL:$2|1 сăмах|$2 сăмах}})",
        "search-category": "(категори $1)",
        "search-interwiki-caption": "Тăван проектсем",
+       "search-interwiki-more": "(тата)",
        "search-relatedarticle": "Çыхăнă",
        "searchrelated": "çыхăнă",
        "showingresults": "Аяларах эсир <strong>$2</strong> пуçласа кăтартнă <strong>$1</strong> йĕркене куратăр.",
        "rcshowhideliu": "сайта кĕнисене $1",
        "rcshowhideliu-show": "кăтартмалла",
        "rcshowhideliu-hide": "кăтартмалла мар",
-       "rcshowhideanons": "ячĕсене палăртманскерсене $1",
+       "rcshowhideanons": "Паллă маррисене $1",
        "rcshowhideanons-show": "кăтартмалла",
        "rcshowhideanons-hide": "кăтартмалла мар",
        "rcshowhidepatr": "тĕрĕсленĕ тӳрлетӳсене $1",
        "rcshowhidepatr-hide": "кăтартмалла мар",
        "rcshowhidemine": "хăвăн тӳрлетнисене $1",
        "rcshowhidemine-show": "кăтартмалла",
-       "rcshowhidemine-hide": "кăтармалла мар",
+       "rcshowhidemine-hide": "кăтартмалла мар",
        "rclinks": "Юлашки $2 кун хушшинче тунă $1 улшăнусене кăтартмалла<br />$3",
        "diff": "танл.",
        "hist": "ист",
        "show": "Кăтартмалла",
        "minoreditletter": "п",
        "newpageletter": "Ç",
+       "boteditletter": "б",
+       "unpatrolledletter": "!",
        "rc_categories_any": "Кашни",
        "newsectionsummary": "/* $1 */ Çĕнĕ тема",
        "recentchangeslinked": "Çыхăннă улшăнусем",
        "tooltip-watch": "Çак страницăна пăхса тăмаллисем шутне хуш",
        "tooltip-summary": "Кĕскĕн ăнлантарса парăр",
        "anonymous": "{{GRAMMAR:genitive|{{SITENAME}}}} анонимлă хутшăнакансем",
-       "lastmodifiedatby": "Ку страницăна юлашки хут $2, $1 вăхăтра $3 хутшăнакан улăштарнă.",
+       "siteuser": "{{SITENAME}} усă куракан $1",
+       "lastmodifiedatby": "Ку страницăна юлашки хут $2, $1 вăхăтра $3 улăштарнă.",
        "othercontribs": "$1 ĕçĕ çинче никĕсленнĕ.",
        "others": "ыттисем",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|усă куракан|усă куракансем}} $1",
        "creditspage": "Пархатарлăх",
        "spambot_username": "MediaWiki спамран тасатни",
        "pageinfo-title": "\"$1\" çинчен",
index 6f3ab07..d936714 100644 (file)
        "searcharticle": "Gå til",
        "history": "Historik",
        "history_short": "Historik",
-       "updatedmarker": "opdateret siden sidste besøg",
+       "updatedmarker": "opdateret siden seneste besøg",
        "printableversion": "Udskriftsvenlig udgave",
        "permalink": "Permanent henvisning",
        "print": "Udskriv",
        "toolbox": "Værktøjer",
        "userpage": "Se brugersiden",
        "projectpage": "Se projektsiden",
-       "imagepage": "Se filsiden",
+       "imagepage": "Se filside",
        "mediawikipage": "Vise indholdsside",
        "templatepage": "Vise skabelonside",
        "viewhelppage": "Vise hjælpeside",
        "jumptonavigation": "Navigation",
        "jumptosearch": "Søgning",
        "view-pool-error": "Beklager, men serverne er i øjeblikket overbelastede.\nFor mange brugere prøver at se denne side.\nVent et øjeblik, før du prøver at besøge denne side igen.\n\n$1",
+       "generic-pool-error": "Beklager, men serverne er i øjeblikket overbelastede.\nFor mange brugere prøver at se denne side.\nVent et øjeblik før du prøver at besøge denne side igen.",
        "pool-timeout": "Timeout mens man venter på låsningen",
        "pool-queuefull": "Pool køen er fuld",
        "pool-errorunknown": "Ukendt fejl",
+       "poolcounter-usage-error": "Brugsfejl: $1",
        "aboutsite": "Om {{SITENAME}}",
        "aboutpage": "Project:Om",
        "copyright": "Indholdet er udgivet under $1 medmindre andet er angivet.",
        "readonly_lag": "Databasen er automatisk blevet låst mens slave database serverne synkronisere med master databasen",
        "internalerror": "Intern fejl",
        "internalerror_info": "Intern fejl: $1",
+       "internalerror-fatal-exception": "Alvorlig undtagelse af typen \"$1\"",
        "filecopyerror": "Kunne ikke kopiere filen \"$1\" til \"$2\".",
        "filerenameerror": "Kunne ikke omdøbe filen \"$1\" til \"$2\".",
        "filedeleteerror": "Kunne ikke slette filen \"$1\".",
        "badtitletext": "Den ønskede sides titel var ikke tilladt, tom eller siden er forkert henvist fra {{SITENAME}} på et andet sprog.\nDen kan indeholde et eller flere tegn, som ikke må anvendes i titler.",
        "perfcached": "Følgende data er gemt i cachen, der muligvis ikke er helt opdateret. Der gemmes højst {{PLURAL:$1|ét resultat|$1 resultater}} i cachen.",
        "perfcachedts": "Disse data stammer fra cachen, som senest blev opdateret $1. Der gemmes højst {{PLURAL:$4|ét resultat|$4 resultater}} i cachen.",
-       "querypage-no-updates": "'''Opdateringer til denne side er deaktiveret for øjeblikket. Dataene bliver indtil videre ikke fornyet.'''",
+       "querypage-no-updates": "Opdateringer til denne side er deaktiveret for øjeblikket. Dataene bliver indtil videre ikke fornyet.",
        "viewsource": "Vis kildetekst",
        "viewsource-title": "Se kildekoden til $1",
        "actionthrottled": "Begrænsning af handling",
        "viewsourcetext": "Du kan se og kopiere kildekoden til siden:",
        "viewyourtext": "Du kan se og kopiere kildekoden for '''dine redigeringer''' til denne side:",
        "protectedinterface": "Denne side indeholder teksten i brugergrænsefladen til softwaren på denne wiki, og er beskyttet for at forhindre misbrug.\nHvis du vil tilføje eller ændre oversættelser for alle wiki-websteder, så brug venligst [//translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
-       "editinginterface": "'''Advarsel:''' Du redigerer en side som bruges i programmets grænseflade. Ændringer på denne side vil påvirke udseendet af grænsefladen for andre brugere af denne wiki.\nFor at tilføje eller ændre oversættelser på alle wikier bedes du benytte [//translatewiki.net/ translatewiki.net], projektet for oversættelse af MediaWiki.",
+       "editinginterface": "<strong>Advarsel:</strong> Du redigerer en side, som bruges til at give interface-tekst til softwaren.\nÆndringer på denne side vil påvirke udseendet af brugergrænsefladen for andre brugere på denne wiki.",
+       "translateinterface": "For at tilføje eller ændre oversættelser for alle wikier, skal du bruge [//translatewiki.net/ translatewiki.net], der er MediaWikis lokaliseringsprojekt.",
        "cascadeprotected": "Denne side er skrivebeskyttet, da den er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af \"nedarvende sidebeskyttelse\":\n$2",
        "namespaceprotected": "Du har ikke rettigheder til at redigere sider i $1-navnerummet.",
        "customcssprotected": "Du har ikke tilladelse til at redigere denne CSS-side, da den indeholder en anden brugers personlige indstillinger.",
        "invalidtitle-knownnamespace": "Ugyldig titel med navnerummet \"$2\" og teksten \"$3\"",
        "invalidtitle-unknownnamespace": "Ugyldig titel med ukendt navnerum nummer $1 og tekst \"$2\"",
        "exception-nologin": "Ikke logget på",
-       "exception-nologin-text": "Du skal [[Special:Userlogin|logge på]] for at få adgang til denne side eller handling.",
+       "exception-nologin-text": "Du skal logge på for at få adgang til denne side eller handling.",
        "exception-nologin-text-manual": "Du skal $1 for at få adgang til denne side eller handling.",
        "virus-badscanner": "Konfigurationsfejl: ukendt virus-scanner: ''$1''",
        "virus-scanfailed": "virus-scan fejlede med fejlkode $1",
        "loginerror": "Logon mislykket",
        "createacct-error": "Fejl ved kontooprettelse",
        "createaccounterror": "Kunne ikke oprette brugerkonto: $1",
-       "nocookiesnew": "Din brugerkonto er nu oprettet, men du er ikke logget på. {{SITENAME}} bruger cookies til at logge brugere på. Du har slået cookies fra. Vær venlig at slå cookies til, og derefter kan du logge på med dit nye brugernavn og adgangskode.",
+       "nocookiesnew": "Din brugerkonto er nu oprettet, men du er ikke logget på. {{SITENAME}} bruger cookies til at logge brugere på.\nDu har slået cookies fra. \nVær venlig at slå cookies til og log derefter på med dit nye brugernavn og adgangskode.",
        "nocookieslogin": "{{SITENAME}} bruger cookies til at logge brugere på. Du har slået cookies fra. Slå dem venligst til og prøv igen.",
        "nocookiesfornew": "Denne brugerkonto er ikke oprettet, da vi ikke kunne bekræfte dens kilde.\nSørg for, at du har aktivereret cookies, genindlæs siden og prøv igen.",
        "noname": "Du har ikke angivet et gyldigt brugernavn.",
        "createaccount-text": "Nogen har oprettet en konto for din e-mailadresse på {{SITENAME}} ($4) med navnet \"$2\". Adgangskoden er \"$3\".\nDu opfordres til at logge på og ændre adgangskoden med det samme.\n\nDu kan ignorere denne besked hvis kontoen blev oprettet ved en fejl.",
        "login-throttled": "Du har forsøgt at logge på for mange gange.\nVent venligst $1, før du prøver igen.",
        "login-abort-generic": "Det lykkedes dig ikke at logge på - afbrudt",
+       "login-migrated-generic": "Din konto er blevet globaliseret, og dit brugernavn eksisterer ikke længere på denne wiki.",
        "loginlanguagelabel": "Sprog: $1",
        "suspicious-userlogout": "Din anmodning om at logge af blev nægtet, fordi det ser ud som den blev sendt af en ødelagt browser eller caching proxy.",
        "createacct-another-realname-tip": "Angivelse af rigtigt navn er valgfrit.\nHvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit arbejde.",
        "resetpass-submit-cancel": "Annuller",
        "resetpass-wrong-oldpass": "Ugyldig midlertidig eller gældende adgangskode.\nDu har muligvis allerede skiftet din adgangskode eller anmodet om en ny midlertidig kode.",
        "resetpass-recycled": "Vær venlig at ændre din adgangskode til noget andet end din nuværende adgangskode.",
-       "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning, skal du oprette en nyt adgangskode:",
+       "resetpass-temp-emailed": "Du loggede på med en midlertidig kode tilsendt på e-mail.\nFor at afslutte indlogning skal du angive en ny adgangskode her:",
        "resetpass-temp-password": "Midlertidig adgangskode",
        "resetpass-abort-generic": "Ændring af adgangskode er blevet afbrudt af en udvidelse",
        "resetpass-expired": "Din adgangskode er udløbet. Angiv en ny adgangskode for at logge på.",
        "media_tip": "Henvisning til fil",
        "sig_tip": "Din signatur med tidsstempel",
        "hr_tip": "Horisontal linje (brug den sparsomt)",
-       "summary": "Beskrivelse:",
+       "summary": "Sammenfatning:",
        "subject": "Emne/overskrift:",
        "minoredit": "Dette er en mindre ændring",
        "watchthis": "Overvåg denne side",
        "showpreview": "Forhåndsvisning",
        "showdiff": "Vis ændringer",
        "blankarticle": "<strong>Advarsel:</strong> Siden du opretter er tom.\nHvis du klikker på \"{{int:savearticle}}\" igen, vil siden blive oprettet uden indhold.",
-       "anoneditwarning": "'''Advarsel:''' Du er ikke logget på. I stedet for brugernavn vises din IP-adresse i versionshistorikken.",
+       "anoneditwarning": "<strong>Advarsel:</strong> Du er ikke logget på. Din IP-adresse vil blive offentligt tilgængelig, hvis du foretager nogen ændringer. Hvis du <strong>[$1 logger på]</strong> eller <strong>[$2 opretter en konto]</strong> vil dine redigeringer blive tilskrevet dit brugernavn, og du vil få flere andre fordele.",
        "anonpreviewwarning": "''Du er ikke logget på. Hvis du gemmer, registreres din IP-adresse i versionshistorikken.''",
        "missingsummary": "'''Bemærk:''' Du har ikke angivet en redigeringsbeskrivelse. Hvis du igen trykker på \"{{int:savearticle}}\", gemmes ændringerne uden en beskrivelse.",
+       "selfredirect": "<strong>Advarsel:</strong> Du er ved at omdirigere denne side til sig selv.\nDu kan have angivet det forkerte mål for omdirigeringen, eller du kan være ved at redigere den forkerte side.\nHvis du klikker på \"{{int:savearticle}}\" igen, vil omdirigeringen blive oprettet uanset dette.",
        "missingcommenttext": "Skriv venligst en kommentar nedenfor.",
        "missingcommentheader": "'''Bemærk:''' Du har ikke angivet en overskrift/emne for denne kommentar. Hvis du trykker \"{{int:savearticle}}\" én gang til, gemmes dine ændringer uden overskrift/emne.",
        "summary-preview": "Forhåndsvisning af beskrivelsen:",
        "subject-preview": "Forhåndsvisning af emnet:",
+       "previewerrortext": "Der opstod en fejl under forsøget på at lave en forhåndsvisning af dine ændringer.",
        "blockedtitle": "Du eller din IP-adresse er blokeret",
        "blockedtext": "'''Dit brugernavn eller din IP-adresse er blevet blokeret.'''\n\nBlokeringen er foretaget af $1.\nDen anførte grund er ''$2''.\n\nBlokeringen starter: $8\nBlokeringen udløber: $6\nBlokeringen er rettet mod: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\nDu kan ikke bruge funktionen 'e-mail til denne bruger' medmindre der er angivet en gyldig e-mailadresse i dine\n[[Special:Preferences|kontoindstillinger]], og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id er #$5.\nAngiv venligst alle ovenstående detaljer ved henvendelser om blokeringen.",
        "autoblockedtext": "Din IP-adresse er blevet blokeret automatisk fordi den blev brugt af en anden bruger som er blevet blokeret af $1.\nBegrundelsen for det er:\n\n:''$2''\n\n* Blokeringsperiodens start: $8\n* Blokeringen udløber: $6\n* Blokeringen er ment for: $7\n\nDu kan kontakte $1 eller en af de andre [[{{MediaWiki:Grouppage-sysop}}|administratorer]] for at diskutere blokeringen.\n\nBemærk at du ikke kan bruge funktionen \"e-mail til denne bruger\" medmindre du har en gyldig e-mailadresse registreret i din [[Special:Preferences|brugerindstilling]], og du ikke er blevet blokeret fra at bruge den.\n\nDin nuværende IP-adresse er $3, og blokerings-id'et er #$5.\nAngiv venligst alle de ovenstående detaljer ved eventuelle henvendelser.",
        "prevn": "forrige {{PLURAL:$1|$1}}",
        "nextn": "næste {{PLURAL:$1|$1}}",
        "prevn-title": "Forrige $1 {{PLURAL:$1|resultat|resultater}}",
-       "nextn-title": "Næste $1 {{PLURAL:$1|resultat|resultater}}",
+       "nextn-title": "Næste {{PLURAL:$1|resultat|$1 resultater}}",
        "shown-title": "Vis $1 {{PLURAL:$1|resultat|resultater}} per side",
        "viewprevnext": "Vis ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Der er en side med navnet \"[[:$1]]\" på denne wiki'''",
        "searchrelated": "relateret",
        "searchall": "alle",
        "showingresults": "Nedenfor vises <b>$1</b> {{PLURAL:$1|resultat|resultater}} startende med nummer <b>$2</b>.",
+       "search-showingresults": "{{PLURAL:$4|Resultat <strong>$1</strong> af <strong>$3</strong>|Resultat <strong>$1 - $2</strong> af <strong>$3</strong>}}",
        "search-nonefound": "Søgningen gav ingen resultater.",
        "powersearch-legend": "Avanceret søgning",
        "powersearch-ns": "Søg i navnerummene:",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se også [[Special:NewPages|listen over nye sider]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Nedenfor er op til '''$1''' {{PLURAL:$5|ændring|ændringer}} siden '''$2''' vist.",
-       "rclistfrom": "Vis nye ændringer startende fra $3 $2",
+       "rclistfrom": "Vis nye ændringer startende fra den $3 kl. $2",
        "rcshowhideminor": "$1 mindre ændringer",
        "rcshowhideminor-show": "Vis",
        "rcshowhideminor-hide": "Skjul",
        "recentchangeslinked": "Relaterede ændringer",
        "recentchangeslinked-feed": "Relaterede ændringer",
        "recentchangeslinked-toolbox": "Relaterede ændringer",
-       "recentchangeslinked-title": "Ændringer der relaterer til $1",
-       "recentchangeslinked-summary": "Denne specialside viser de seneste ændringer på de sider der henvises til. Sider på din overvågningsliste er vist med '''fed''' skrift.",
-       "recentchangeslinked-page": "Side:",
+       "recentchangeslinked-title": "Ændringer der relaterer til \"$1\"",
+       "recentchangeslinked-summary": "Dette er en liste over de seneste ændringer af sider, der linkes til fra en bestemt side (eller medlemmer af en bestemt kategori).\nSider på [[Special:Watchlist|din overvågningsliste]] er vist med '''fed''' skrift.",
+       "recentchangeslinked-page": "Sidenavn:",
        "recentchangeslinked-to": "Vis ændringer i sider der henviser til den angivne side i stedet",
        "upload": "Læg en fil op",
        "uploadbtn": "Læg en fil op",
        "duplicatesoffile": "Følgende {{PLURAL:$1|fil er en dublet|filer er dubletter}} af denne fil ([[Special:FileDuplicateSearch/$2|flere detaljer]]):",
        "sharedupload": "Denne fil er fra $1 og kan bruges af andre projekter.",
        "sharedupload-desc-there": "Denne fil er fra $1 og kan bruges på andre projekter.\nSe [$2 filbeskrivelsessiden] for nærmere information.",
-       "sharedupload-desc-here": "Denne fil er fra $1 og kan bruges på andre projekter.\nIndholdet på dens [$2 filbeskrivelsesside] er vist herunder.",
+       "sharedupload-desc-here": "Denne fil er fra $1 og kan bruges på andre projekter.\nIndholdet på dens [$2 filbeskrivelsesside] der er vist herunder.",
        "sharedupload-desc-edit": "Denne fil er fra $1 og kan bruges af andre projekter.\nMåske vil du redigere beskrivelsen på dens [$2 filbeskrivelsesside] der.",
        "sharedupload-desc-create": "Denne fil er fra $1 og kan bruges af andre projekter.\nMåske vil du redigere beskrivelsen på dens [$2 filbeskrivelsesside] der.",
        "filepage-nofile": "Der er ingen fil med det navn.",
        "import-interwiki-history": "Importer alle versioner af denne side",
        "import-interwiki-templates": "Inkluder alle skabeloner",
        "import-interwiki-submit": "Importer",
-       "import-interwiki-namespace": "Importer til navnerum:",
-       "import-interwiki-rootpage": "Destinationens stamside (valgfri):",
        "import-upload-filename": "Filnavn:",
        "import-comment": "Kommentar:",
        "importtext": "Eksportér filen fra kilde-wiki'en ved hjælp af [[Special:Export|eksporterings værktøjet]], gem den på din harddisk og upload den her.",
        "tooltip-pt-anonuserpage": "Brugersiden for den ip-adresse du redigerer som",
        "tooltip-pt-mytalk": "Din diskussionsside",
        "tooltip-pt-anontalk": "Diskussion om redigeringer fra denne ip-adresse",
-       "tooltip-pt-preferences": "Mine indstillinger",
+       "tooltip-pt-preferences": "Dine indstillinger",
        "tooltip-pt-watchlist": "Listen over sider du overvåger for ændringer.",
        "tooltip-pt-mycontris": "Liste over dine bidrag",
        "tooltip-pt-login": "Du opfordres til at logge på, men det er ikke obligatorisk.",
        "tooltip-search": "Søg på {{SITENAME}}",
        "tooltip-search-go": "Vis en side med præcis dette navn, hvis den findes",
        "tooltip-search-fulltext": "Søg efter sider der indeholder denne tekst",
-       "tooltip-p-logo": "Forsiden",
+       "tooltip-p-logo": "Besøg forsiden",
        "tooltip-n-mainpage": "Besøg forsiden",
        "tooltip-n-mainpage-description": "Besøg forsiden",
        "tooltip-n-portal": "Om projektet, hvad du kan gøre, hvor tingene findes",
        "tooltip-n-currentevents": "Find baggrundsinformation om aktuelle begivenheder",
        "tooltip-n-recentchanges": "Listen over de seneste ændringer i wikien.",
        "tooltip-n-randompage": "Gå til en tilfældig side",
-       "tooltip-n-help": "Hvordan gør jeg ...",
+       "tooltip-n-help": "Stedet hvor du finder hjælp",
        "tooltip-t-whatlinkshere": "Liste med alle sider som henviser hertil",
        "tooltip-t-recentchangeslinked": "Seneste ændringer i sider som denne side henviser til",
        "tooltip-feed-rss": "RSS-feed for denne side",
        "tooltip-t-specialpages": "Liste over alle specialsider",
        "tooltip-t-print": "Printervenlig udgave af denne side",
        "tooltip-t-permalink": "Permanent henvisning til denne version af denne side",
-       "tooltip-ca-nstab-main": "Se indholdet",
+       "tooltip-ca-nstab-main": "Se indholdssiden",
        "tooltip-ca-nstab-user": "Se brugersiden",
        "tooltip-ca-nstab-media": "Se mediasiden",
        "tooltip-ca-nstab-special": "Dette er en specialside; man kan ikke redigere sådanne sider",
        "tags": "Tags til sideversioner",
        "tag-filter": "[[Special:Tags|Tag]]filter:",
        "tag-filter-submit": "Filtrér",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "tags-title": "Tags",
        "tags-intro": "Denne side oplister de tags som programmet kan mærke en redigering med, og deres betydning.",
        "tags-tag": "Tagnavn",
index 19a2325..e827d01 100644 (file)
                        "לערי ריינהארט",
                        "✓",
                        "XenonX3",
-                       "Brackenheim"
+                       "Brackenheim",
+                       "Robby",
+                       "Andreasburmeister"
                ]
        },
        "tog-underline": "Links unterstreichen:",
        "tog-hideminor": "Kleine Änderungen in den „Letzten Änderungen“ ausblenden",
        "tog-hidepatrolled": "Kontrollierte Änderungen in den „Letzten Änderungen“ ausblenden",
        "tog-newpageshidepatrolled": "Kontrollierte Seiten bei den „Neuen Seiten“ ausblenden",
-       "tog-extendwatchlist": "Alle, und nicht nur die aktuellsten Änderungen in der Beobachtungsliste anzeigen",
+       "tog-extendwatchlist": "In der Beobachtungsliste alle Änderungen anzeigen, nicht nur die aktuellsten",
        "tog-usenewrc": "Änderungen auf „Letzte Änderungen“ und der Beobachtungsliste nach Seite gruppieren",
        "tog-numberheadings": "Überschriften automatisch nummerieren",
        "tog-showtoolbar": "Bearbeiten-Werkzeugleiste anzeigen",
index e4f40e8..889fbc0 100644 (file)
        "otherlanguages": "Zıwananê binan de",
        "redirectedfrom": "(Pele da $1 ra heteneyê)",
        "redirectpagesub": "Pela berdışi",
+       "redirectto": "Beno hetê:",
        "lastmodifiedat": "Ena pele tewr peyên roca $2, $1 de biya rocaniye.",
        "viewcount": "Ena pele {{PLURAL:$1|rae|$1 rey}} vêniya.",
        "protectedpage": "Pela pawıtiye",
        "preview": "Verqayt",
        "showpreview": "Verqayti bımocne",
        "showdiff": "Vurnayışan bımocne",
-       "anoneditwarning": "İqaz!: Şıma be hesabê xo nêkewtê cı. \nAdresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.",
+       "anoneditwarning": "<strong>İqaz:</strong> Şıma be hesabê xo nêkewtê cı. \nAdresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.",
        "anonpreviewwarning": "\"Şıma be hesabê xo nêkewtê cı. Eke qeyd kerê, adresê şımaê IP tarixê vırnayışê na pele de do qeyd bo.\"",
        "missingsummary": "'''DİQET:''' Şıma jû xulasa nênuşte.\nEke şıma \"{{int:savearticle}}\" reyna bıtıknê, vırnayışê şıma bê xulasa qeyd beno.",
        "missingcommenttext": "Cêr de jû fıkır bınusên, şıma rê zehmet.",
        "searchall": "pêro",
        "showingresults": "#<strong>$2</strong> netican ra {{PLURAL:$1|<strong>1</strong> netice cêr dero|<strong>$1</strong> neticey cêr derê}}.",
        "showingresultsinrange": "{{PLURAL:$1|<strong>1</strong> netice|<strong>$1</strong> neticey}} be mabeynê #<strong>$2</strong> ra be #<strong>$3</strong> cêr asenê.",
+       "search-showingresults": "{{PLURAL:$4|Netice <strong>$1</strong> be <strong>$3</strong>|Neticeyi <strong>$1 - $2</strong> be <strong>$3</strong>}}",
        "search-nonefound": "Zey perskerdışê şıma netice nêvêniya.",
        "powersearch-legend": "Cıgeyrayışo hera",
        "powersearch-ns": "Cayanê nameyan de cıgeyrayış:",
        "import-interwiki-history": "Qeydanê pele pêrune kopya ke",
        "import-interwiki-templates": "Şablonan pêro zerre ke",
        "import-interwiki-submit": "Zerre ke",
-       "import-interwiki-namespace": "Hedefê cayê nameyi:",
-       "import-interwiki-rootpage": "Hedef pelaya reçi (opsiyonel):",
        "import-upload-filename": "Nameyê dosyayi:",
        "import-comment": "Mışewre:",
        "importtext": "Kerem ke dosyay, çımeyê wiki ra pê [[Special:Export|kırıştışê teberdayişi]] bıdê teber, Komputerê xo de qeyd kerê u bar kerê tiya.",
        "logentry-rights-rights": "$1 qandê $3 rê ezayiya grube $4 ra $5 {{GENDER:$2|vuriye}}",
        "logentry-rights-rights-legacy": "$1 qandê $3 rê ezayiya grube {{GENDER:$2|vuriye}}",
        "logentry-rights-autopromote": "$1 otomatikmen $4 ra $5 {{GENDER:$2|terfi bi}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|bar kerd}} $3",
        "rightsnone": "(çıniyo)",
        "revdelete-summary": "kılmvatışê vuriyayişi",
        "feedback-adding": "Pela rê peyxeberdar defêno...",
index 41587f4..90e4661 100644 (file)
        "history-feed-description": "Stòria 'd la pàgina in sém a cól sî ché",
        "history-feed-item-nocomment": "$1 al $2",
        "history-feed-empty": "La pàgina serchêda l'an gh'é mìa; la pré èser stēda scanşlêda dal sît o gh'é stê cambiê nòm. Verifichêr cun [[Special:Search|pàgina 'd sèirca]] se gh'é dal pàgini nōvi.",
+       "history-edit-tags": "Mudéfica 'l j etichèti dal versiòun sgnêdi",
        "rev-deleted-comment": "(argumèint ed la mudéfica armôs)",
        "rev-deleted-user": "(nòm utèint armôs)",
        "rev-deleted-event": "(particulêr dal log armôs)",
        "backend-fail-create": "An n'é mìa pusébil fêr al file \"$1\".",
        "backend-fail-maxsize": "L'é impusébil fêr al file \"$1\" perché l'é pió grôs ed {{PLURAL:$2|un|$2}} byte.",
        "backend-fail-readonly": "Al prugrâma 'd memôria \"$1\" adèsa a 's pōl sōl lēzer. La ragiòun dêda l'é: \"$2\".",
+       "backend-fail-synced": "Al file \"$1\" l'é in un stêt mìa lôgich cun al sistēma 'd la memôria intêrna.",
+       "backend-fail-connect": "Impusébil coleghêres al sistēma 'd memôria \"$1\".",
+       "backend-fail-internal": "É sucès un erōr mìa cgnusû int al sistēma  ed memôria \"$1\".",
+       "backend-fail-contenttype": "Impusébil stabilîr al gèner di file 'd archiviêr in \"$1\".",
+       "backend-fail-batchsize": "Al sistēma 'd memōria l'à dê  un totêl ed \"$1\" 'd {{PLURAL:$1|operazione|operasiòun}} 'd archévi; al lémit l' é 'd \"$2\"  'd {{PLURAL:$2|operazione|operasiòun}}.",
+       "backend-fail-usable": "Impusébil lēzer o scréver al file \"$1\" a câşva ed dirét insuficînt o a mânca l'indirés al  sistēma di file/spâsi insuficînt.",
+       "lockmanager-notlocked": "Impusébil şbluchêr \"$1\"; an n'é mìa bluchê.",
+       "lockmanager-fail-closelock": "Impusébil sarêr al file 'd blôch per \"$1\"",
+       "lockmanager-fail-deletelock": "Impusébil eliminêr al file 'd blôch per \"$1\"",
+       "lockmanager-fail-acquirelock": "Impusébil utgnîr blôch per \"$1\".",
+       "lockmanager-fail-openlock": "Impusébil arvîr al file 'd blôch per \"$1\".",
+       "lockmanager-fail-releaselock": "Impusébil liberêr al blôch per \"$1\".",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
index 6c909be..256f0a1 100644 (file)
        "noarticletext": "En este momento no hay texto en esta página.\nPuedes [[Special:Search/{{PAGENAME}}|buscar el título de esta página]] en otras páginas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados],\no [{{fullurl:{{FULLPAGENAME}}|action=edit}} editar esta página]</span>.",
        "noarticletext-nopermission": "Actualmente no hay texto en esta página.\nPuedes [[Special:Search/{{PAGENAME}}|buscar este título de página]] en otras páginas, o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} buscar en los registros relacionados]</span>, pero no tienes permiso para crear esta página.",
        "missing-revision": "La revisión n.º $1 de la página «{{FULLPAGENAME}}» no existe.\n\nEsto suele ocurrir cuando se sigue un enlace de historial obsoleto que apunta a una página ya borrada.\nPuedes encontrar detalles en el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
-       "userpage-userdoesnotexist": "El usuario «$1» no está registrado. Por favor, asegúrate de que realmente quieres crear o editar esta página.",
+       "userpage-userdoesnotexist": "El usuario «$1» no está registrado. Asegúrate de que realmente quieres crear o editar esta página.",
        "userpage-userdoesnotexist-view": "El usuario «$1» no está registrado.",
        "blocked-notice-logextract": "Este usuario se encuentra actualmente bloqueado.\nA continuación se muestra la última entrada del registro de bloqueos para más información:",
        "clearyourcache": "<strong>Nota:</strong> tras guardar, quizás necesites actualizar la caché de tu navegador para ver los cambios.\n* <strong>Firefox/Safari:</strong> Mantén presionada la tecla <em>Mayús</em> mientras pulsas el botón <em>Actualizar</em>, o presiona <em>Ctrl+F5</em> o <em>Ctrl+R</em> (<em>⌘+R</em> en Mac)\n* <strong>Google Chrome:</strong> presiona <em>Ctrl+Shift+R</em> (<em>⌘+Mayús+R</em> en Mac)\n* <strong>Internet Explorer:</strong> mantén presionada <em>Ctrl</em> mientras pulsas <em>Actualizar</em>, o presiona <em>Ctrl+F5</em>\n* <strong>Opera:</strong> vacía la caché en <em>Herramientas → Preferencias</em>",
index b82291e..935795c 100644 (file)
        "revdelete-unsuppress": "Eemalda taastatud redaktsioonidelt piirangud",
        "revdelete-log": "Põhjus:",
        "revdelete-submit": "Rakenda valitud {{PLURAL:$1|redaktsiooni|redaktsioonide}} suhtes",
-       "revdelete-success": "Redaktsiooni nähtavus edukalt värskendatud.'''",
+       "revdelete-success": "Redaktsiooni nähtavus edukalt värskendatud.",
        "revdelete-failure": "'''Redaktsiooni nähtavust ei saanud värskendada:'''\n$1",
        "logdelete-success": "'''Logi nähtavus edukalt muudetud.'''",
        "logdelete-failure": "'''Logi nähtavust ei saanud paika:'''\n$1",
        "import-interwiki-history": "Kopeeri selle lehekülje kogu ajalugu",
        "import-interwiki-templates": "Liida kõik mallid",
        "import-interwiki-submit": "Impordi",
+       "import-mapping-default": "Impordi vaikeasukohta",
+       "import-mapping-namespace": "Impordi järgmisesse nimeruumi:",
+       "import-mapping-subpage": "Impordi järgmise lehekülje alamlehekülgedeks:",
        "import-upload-filename": "Failinimi:",
        "import-comment": "Kommentaar:",
        "importtext": "Palun kasuta faili allikvikist eksportimiseks [[Special:Export|ekspordivahendit]].\nSalvesta see oma arvutisse ja laadi siia üles.",
index f00525b..d30230a 100644 (file)
        "tooltip-pt-mycontris": "Nire ekarpenen zerrenda",
        "tooltip-pt-login": "Izen ematera gonbidatzen zaitugu.",
        "tooltip-pt-logout": "Saioa itxi",
+       "tooltip-pt-createaccount": "Kontu bat sortu eta horrekin saioa hastea eskatu nahi genizuke; ez da ezinbestekoa, ordea.",
        "tooltip-ca-talk": "Artikuluari buruzko eztabaida",
        "tooltip-ca-edit": "Artikulu hau aldatu dezakezu. Mesedez, aurrebista botoia erabil ezazu gorde baino lehen.",
        "tooltip-ca-addsection": "Iruzkin berria erantsi",
        "logentry-newusers-newusers": "$1 erabiltzaile kontua sortu da",
        "logentry-newusers-create": "$1 erabiltzaile kontua sortu da",
        "logentry-newusers-create2": "$1 wikilariak $3 erabiltzaile kontua sortu du",
+       "logentry-upload-upload": "$1(e)k $3 {{GENDER:$2|igo du}}",
        "rightsnone": "(bat ere ez)",
        "revdelete-summary": "aldaketaren laburpena",
        "feedback-adding": "Orriari feedbacka gehitzen...",
index 4ad8846..d011fe2 100644 (file)
        "import-interwiki-history": "تمام نسخه‌های تاریخچهٔ این صفحه انتقال داده شود",
        "import-interwiki-templates": "تمام الگوها را شامل شود",
        "import-interwiki-submit": "درون‌ریزی شود",
-       "import-interwiki-namespace": "فضای نام مقصد:",
-       "import-interwiki-rootpage": "ریشهٔ صفحهٔ مقصد (اختیاری):",
        "import-upload-filename": "نام پرونده:",
        "import-comment": "توضیح:",
        "importtext": "لطفاً پرونده را از ویکی منبع با کمک [[Special:Export|ابزار برون‌بری]] دریافت کنید.\nسپس آن را روی دستگاه‌تان ذخیره کنید و اینجا بارگذاری نمایید.",
        "patrol-log-page": "سیاههٔ گشت",
        "patrol-log-header": "این سیاهه‌ای از ویرایش‌های گشت‌خورده است.",
        "log-show-hide-patrol": "$1 سیاههٔ گشت‌زنی",
+       "log-show-hide-tag": "$1 سیاهه برچسب",
        "deletedrevision": "$1 نسخهٔ حذف شدهٔ قدیمی",
        "filedeleteerror-short": "خطا در حذف پرونده: $1",
        "filedeleteerror-long": "در زمان حذف پرونده خطا رخ داد:\n\n$1",
        "tags-deactivate-reason": "دلیل:",
        "tags-deactivate-not-allowed": "غیرفعال‌سازی تگ «$1» ممکن نیست.",
        "tags-deactivate-submit": "غیرفعال‌سازی",
+       "tags-edit-title": "ویرایش برچسب‌ها",
+       "tags-edit-manage-link": "مدیریت برچسب‌ها",
+       "tags-edit-existing-tags": "برچسب‌های موجود:",
+       "tags-edit-existing-tags-none": "\"هیچکدام\"",
+       "tags-edit-new-tags": "برچسب جدید:",
+       "tags-edit-add": "افزودن این برچسب‌ها:",
+       "tags-edit-remove": "حذف این برچسب‌ها:",
+       "tags-edit-remove-all-tags": "(حذف همهٔ برچسب‌ها)",
+       "tags-edit-chosen-placeholder": "انتخاب تعدادی برچسب",
+       "tags-edit-chosen-no-results": "برچسبی برای انتخاب یافت نشد",
+       "tags-edit-reason": "دلیل:",
        "comparepages": "مقایسهٔ صفحات",
        "compare-page1": "صفحهٔ ۱",
        "compare-page2": "صفحهٔ ۲",
        "logentry-managetags-delete": "$1 برچسب را از \"$4\" {{GENDER:$2|حذف کرد}} (حذف شده از $5 {{PLURAL:$5|نسخه یا ورودی سیاهه|نسخه یا/و ورودی سیاهه}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|برچسب}} فعال شده \"$4\" برای کاربران و ربات‌ها",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|برچسب}} غیرفعال شده \"$4\" برای کاربران و ربات‌ها",
+       "log-name-tag": "سیاهه برچسب",
        "rightsnone": "(هیچ)",
        "revdelete-summary": "خلاصه ویرایش",
        "feedback-adding": "افزودن بازخورد به صفحه...",
index a98af47..c6c3fc2 100644 (file)
        "import-interwiki-history": "Kopioi sivun koko historia ja kaikki versiot",
        "import-interwiki-templates": "Ota mukaan kaikki mallineet",
        "import-interwiki-submit": "Tuo",
+       "import-mapping-default": "Tuonti vakiokohteisiin",
+       "import-mapping-namespace": "Tuonti nimiavaruuteen:",
+       "import-mapping-subpage": "Tuonti seuraavan sivun alasivuiksi:",
        "import-upload-filename": "Tiedostonimi:",
        "import-comment": "Kommentti:",
        "importtext": "Vie sivuja lähdewikistä käyttäen [[Special:Export|vientityökalua]].\nTallenna tiedot koneellesi ja tuo ne tällä sivulla.",
index ce80478..319c398 100644 (file)
        "preview": "Forskoðan",
        "showpreview": "Forskoðan",
        "showdiff": "Sýn broytingar",
-       "anoneditwarning": "'''Ávaring:''' Tú hevur ikki ritað inn.\nTín IP-adressa verður goymd í rættisøguni fyri hesa síðuna.",
+       "anoneditwarning": "<strong>Ávaring:</strong> Tú ert ikki innritað/ur. Tín IP adressa verður alment sjónlig um tú gert rættingar. Um tú <strong>[$1 ritar inn]</strong> ella <strong>[$2 upprættar eina konto]</strong>, so verða tínar rættingar ognaðar tínum brúkaranavni, umframt aðrir fyrimunir.",
        "anonpreviewwarning": "''Tú ert ikki innritað/ur. Um tú goymir nú, so verður tín IP adressa goymd í rættingar søguni hjá hesi síðu. ''",
        "missingsummary": "'''Áminning:''' Tú hevur ikki givið nakran rættingar samandrátt.\nUm tú trýstir á \"{{int:savearticle}}\" enn einaferð, so verða tínar rættingar goymdar uttan samandrátt.",
        "missingcommenttext": "Vinarliga skriva eina viðmerking niðanfyri.",
        "showhideselectedversions": "Vís/fjal valdu versjónir",
        "editundo": "afturstilla",
        "diff-empty": "(Ongin munur)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Ein millumliggjandi broyting|$1 millumliggjandi broytingar}} av sama brúkara ikki víst/ar)",
        "diff-multi-manyusers": "({{PLURAL:$1|Ein versjón sum liggur ímillum|$1 versjónir sum liggja ímillum}} skrivaðar av meira enn $2 {{PLURAL:$2|brúkara|brúkarum}} ikki víst)",
        "searchresults": "Leitúrslit",
        "searchresults-title": "Leiti úrslit fyri \"$1\"",
        "searchall": "alt",
        "showingresults": "Niðanfyri standa upp til {{PLURAL:$1|'''$1''' úrslit, sum byrjar|'''$1''' úrslit, sum byrja}} við #<b>$2</b>.",
        "showingresultsinrange": "Niðanfyri verða víst upp til {{PLURAL:$1|<strong>1</strong> úrslit|<strong>$1</strong> úrslit}} í økinum #<strong>$2</strong> til #<strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Úrslit <strong>$1</strong> av <strong>$3</strong>|Úrslit <strong>$1 - $2</strong> av <strong>$3</strong>}}",
        "search-nonefound": "Leitingin gav onki úrslit.",
        "powersearch-legend": "Víðkað leitan",
        "powersearch-ns": "Leita í navnaøkinum:",
        "undelete-show-file-submit": "Ja",
        "namespace": "Navnarúm:",
        "invert": "Umvend val",
+       "tooltip-invert": "Set kross í henda rútin fyri at fjala broytingar á síðum ið hoyra til tað valda navnarúmið (og tilhoyrandi navnarúm, um krossur er settur í)",
        "namespace_association": "Tilknýtt navnarúm",
        "tooltip-namespace_association": "Set kross í henda kassan soleiðis at kjak- ella evnisnavnarúm, sum hava samband við tað valda navnarúmið, eisini vera tikin við",
        "blanknamespace": "(Greinir)",
        "import-interwiki-history": "Avrita alla versjónssøguna fyri hesa síðu",
        "import-interwiki-templates": "Tak allar fyrimyndir við",
        "import-interwiki-submit": "Innflyta",
-       "import-interwiki-namespace": "Innflyt til navnarúm:",
        "import-upload-filename": "Fílunavn",
        "import-comment": "Viðmerking:",
        "importtext": "Útflyt fíluna frá kelduwiki'ini við at nýta [[Special:Export|útflutningstólið]].\nGoym hana á tínari teldu og legg hana so út her.",
        "tooltip-pt-mycontris": "Yvirlit yvir títt íkast",
        "tooltip-pt-login": "Vit mæla til at tú ritar inn, tað er tó ikki eitt krav.",
        "tooltip-pt-logout": "Rita út",
+       "tooltip-pt-createaccount": "Vit mæla tær til at upprætta eina konto, tað er tó ikki eitt krav.",
        "tooltip-ca-talk": "Kjak um innihaldssíðuna",
        "tooltip-ca-edit": "Tú kanst broyta hesa síðuna. Vinarliga nýt forskoðanarknøttin áðrenn tú goymir.",
        "tooltip-ca-addsection": "Byrja eitt nýtt brot",
        "exif-imagewidth": "Breidd",
        "exif-imagelength": "Hædd",
        "exif-bitspersample": "Bits per komponent",
+       "exif-orientation": "Rætningur",
+       "exif-xresolution": "Vatnrøtt upploysn",
+       "exif-yresolution": "Loddrøtt upploysn",
+       "exif-datetime": "Broytingartíð",
+       "exif-make": "Framleiðari av myndatólinum",
        "exif-model": "Slag av myndatóli",
+       "exif-software": "Forrit brúkt",
        "exif-artist": "Rithøvundur",
        "exif-copyright": "Upphavsrætt haldari",
+       "exif-exifversion": "Exif versión",
+       "exif-colorspace": "Litrúm",
        "exif-usercomment": "Viðmerkingar frá brúkarum",
+       "exif-datetimeoriginal": "Nær myndin bleiv tikin",
+       "exif-datetimedigitized": "Tíðspunkt fyri talgildan",
        "exif-exposuretime-format": "$1 sek ($2)",
        "exif-flash": "Blits",
        "exif-jpegfilecomment": "JPEG-fíluviðmerking",
        "external_image_whitelist": "↓  #Lat hesa linjuna vera júst sum hon er<pre>\n#Skriva partar av vanligum orðingum (bert partin sum er ímillum //) niðanfyri\n#Hesar verða samanbornar við URL'ar á eksternum (hotlinkaðum) myndum\n#Tey sum passa saman verða víst sum myndir, í øðrum lagi verður bert ein slóð til myndina víst\n#Linjur sum byrja við # verða viðfarin sum viðmerkingar\n#Hetta er ikki følsamt fyri stórir og lítlir bókstavir\n\n#Skriva allar vanligar málberingar omanfyri hesa linju. Lat hesa linjuna verða júst sum hon er</pre>",
        "tag-filter": "[[Special:Tags|Tag]] filtur:",
        "tag-filter-submit": "Filtur",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Merki|Merkir}}]]: $2)",
        "tags-title": "Lyklaorð",
        "tags-edit": "rætta",
        "tags-hitcount": "$1 {{PLURAL:$1|broyting|broytingar}}",
        "compare-rev1": "Versjón 1",
        "compare-rev2": "Versjón 2",
        "compare-submit": "Samanber",
+       "logentry-delete-delete": "$1 {{GENDER:$2|slettaði}} síðuna $3",
+       "logentry-move-move": "$1 {{GENDER:$2|flutti}} síðuna $3 til $4",
        "logentry-newusers-create": "Brúkarakonta $1 varð {{GENDER:$2|upprættað}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|legði út}} $3",
        "rightsnone": "(ongin)",
        "revdelete-summary": "yvirlit yvir broytingar",
        "searchsuggest-search": "Leita",
index ab28352..0d5965c 100644 (file)
        "tags-apply-not-allowed-one": "La balise « $1 » n’est pas autorisée à être appliquée manuellement.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|La balise suivante n’est pas autorisée à être appliquée|Les balises suivantes ne sont pas autorisées à être appliquées}} manuellement : $1",
        "tags-update-no-permission": "Vous n’avez pas le droit d’ajouter ou de supprimer des balises de modification des révisions individuelles ou des entrées de journal.",
+       "tags-update-add-not-allowed-one": "La balise « $1 » ne peut pas être ajoutée manuellement.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|La balise suivante ne peut pas être ajoutée|Les balises suivantes ne peuvent pas être ajoutées}} manuellement : $1",
+       "tags-update-remove-not-allowed-one": "La balise « $1 » ne peut pas être enlevée.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|La balise suivante ne peut pas être enlevée|Les balises suivantes ne peuvent pas être enlevées}} manuellement : $1",
+       "tags-edit-title": "Modifier les balises",
+       "tags-edit-manage-link": "Gérer les balises",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Révision sélectionnée|Révisions sélectionnées}} de [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Événement de journal sélectionné|Événements de journal sélectionnés}} :",
+       "tags-edit-revision-legend": "Ajouter ou enlever des balises de {{PLURAL:$1|cette révision|toutes les $1 révisions}}",
+       "tags-edit-logentry-legend": "Ajouter ou enlever les balises de {{PLURAL:$1|cette entrée de journal|toutes les $1 entrées de journal}}",
+       "tags-edit-existing-tags": "Balises existantes :",
        "tags-edit-existing-tags-none": "\"Aucun\"",
+       "tags-edit-new-tags": "Nouvelles balises :",
+       "tags-edit-add": "Ajouter ces balises :",
+       "tags-edit-remove": "Enlever ces balises :",
+       "tags-edit-remove-all-tags": "(supprimer toutes les balises)",
+       "tags-edit-chosen-placeholder": "Sélectionner certaines balises",
+       "tags-edit-chosen-no-results": "Aucune balise correspondante trouvée",
        "tags-edit-reason": "Motif :",
+       "tags-edit-revision-submit": "Appliquer les modifications à {{PLURAL:$1|cette révision|$1 révisions}}",
+       "tags-edit-logentry-submit": "Appliquer les modifications à {{PLURAL:$1|cette entrée de journal|$1 entrées de journal}}",
        "tags-edit-success": "Les modifications ont été appliquées avec succès.",
+       "tags-edit-failure": "Les modifications n’ont pas pu être appliquées :\n$1",
+       "tags-edit-nooldid-title": "Révision cible non valide",
+       "tags-edit-nooldid-text": "Vous n’avez soit pas spécifié de révision cible sur laquelle exécuter cette fonction, soit la révision spécifiée n’existe pas.",
+       "tags-edit-none-selected": "Veuillez sélectionner au moins une balise à ajouter ou enlever.",
        "comparepages": "Comparer des pages",
        "compare-page1": "Page 1",
        "compare-page2": "Page 2",
        "logentry-managetags-delete": "$1 {{GENDER:$2|a supprimé}} la balise « $4 » (retirée {{PLURAL:$5|d'une révision ou entrée de journal|de $5 révisions ou entrées de journal}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|a activé}} la balise \"$4\" pour l’usage des utilisateurs et des robots",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|a désactivé}} la balise « $4 » pour l’usage des utilisateurs et des robots",
+       "log-name-tag": "Journal des balises",
+       "log-description-tag": "Cette page montre quand des utilisateurs ont ajouté ou supprimé des [[Special:Tags|balises]] de révisions individuelles ou d’entrées de journal. Le journal ne liste pas les actions de marquage quand elles ont lieu au cours d’une modification, d’une suppression, ou d’une action semblable.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|a ajouté}} {{PLURAL:$7|la balise|les balises}} $6 à la révision $4 de la page $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|a ajouté}} {{PLURAL:$7|la balise|les balises}} $6 à l’entrée de journal $5 de la page $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|a supprimé}} {{PLURAL:$9|la balise|les balises}} $8 de la révision $4 de la page $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|a supprimé}} {{PLURAL:$9|la balise|les balises}} $8 de l’entrée de journal $5 de la page $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|a mis à jour}} les balises de la révision $4 de la page $3 ($6 {{PLURAL:$7|ajoutée|ajoutées}} ; $8 {{PLURAL:$9|supprimée|supprimées}})",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|a mis à jour}} les balises de l’entrée de journal $5 de la page $3 ($6 {{PLURAL:$7|ajoutée|ajoutées}} ; $8 {{PLURAL:$9|supprimée|supprimées}})",
        "rightsnone": "(aucun)",
        "revdelete-summary": "résumé de modification",
        "feedback-adding": "Ajout de vos commentaires à la page...",
index 8c196eb..616650f 100644 (file)
        "otherlanguages": "Ôtres lengoues",
        "redirectedfrom": "(Redirigiêe dês $1)",
        "redirectpagesub": "Pâge de redirèccion",
+       "redirectto": "Redirigiér vers :",
        "lastmodifiedat": "Dèrriér changement de ceta pâge lo $1 a $2.",
        "viewcount": "Ceta pâge est étâye vua {{PLURAL:$1|un côp|$1 côps}}.",
        "protectedpage": "Pâge protègiêe",
        "login-abort-generic": "Voutra tentativa de branchement at pas reussi - Anulâye",
        "loginlanguagelabel": "Lengoua : $1",
        "suspicious-userlogout": "Voutra demanda de dèbranchement est étâye refusâye, semble qu’el est étâye mandâye per un navigator câsso ou ben la mêsa en cacho d’un proxi.",
+       "pt-login": "Sè branchiér",
+       "pt-login-button": "Sè branchiér",
+       "pt-createaccount": "Fâre un compto",
+       "pt-userlogout": "Sè dèbranchiér",
        "php-mail-error-unknown": "Fôta encognua dens la fonccion mail() de PHP.",
        "user-mail-no-addy": "Èprôva de mandar un mèssâjo sen adrèce èlèctronica.",
        "user-mail-no-body": "Èprôva de mandar un mèssâjo avouéc un côrp vouedo ou ben dèrêsonâblament côrt.",
        "action-siteadmin": "vèrrolyér ou ben dèvèrrolyér la bâsa de balyês",
        "action-sendemail": "mandar des mèssâjos",
        "nchanges": "$1 changement{{PLURAL:$1||s}}",
+       "enhancedrc-history": "historico",
        "recentchanges": "Dèrriérs changements",
        "recentchanges-legend": "Chouèx des dèrriérs changements",
        "recentchanges-summary": "Siude los dèrriérs changements du vouiqui sur ceta pâge.",
        "rcnotefrom": "Vê-que los changements fêts dês lo '''$2''' (tant qu’a '''$1''' montrâs).",
        "rclistfrom": "Montrar los novéls changements dês lo $3 $2",
        "rcshowhideminor": "$1 los petiôts changements",
+       "rcshowhideminor-show": "Montrar",
+       "rcshowhideminor-hide": "Cachiér",
        "rcshowhidebots": "$1 los robots",
+       "rcshowhidebots-show": "Montrar",
+       "rcshowhidebots-hide": "Cachiér",
        "rcshowhideliu": "$1 los utilisators branchiês",
+       "rcshowhideliu-hide": "Cachiér",
        "rcshowhideanons": "$1 los utilisators anonimos",
+       "rcshowhideanons-show": "Montrar",
+       "rcshowhideanons-hide": "Cachiér",
        "rcshowhidepatr": "$1 los changements gouardâs",
        "rcshowhidemine": "$1 los mins changements",
+       "rcshowhidemine-show": "Montrar",
+       "rcshowhidemine-hide": "Cachiér",
        "rclinks": "Montrar los $1 dèrriérs changements fêts pendent los $2 jorns passâs<br />$3",
        "diff": "dif",
        "hist": "hist",
        "booksources": "Ôvres de refèrence",
        "booksources-search-legend": "Rechèrchiér entre-mié les ôvres de refèrence",
        "booksources-isbn": "ISBN :",
+       "booksources-search": "Rechèrchiér",
        "booksources-text": "Vê-que na lista de lims de vers d’ôtros setos que vendont des lévros nôfs et d’ocasion, et pués pôvont avêr des enformacions de ples sur les ôvres que vos chèrchiéd :",
        "booksources-invalid-isbn": "L’ISBN balyê semble pas étre justo ; controlâd se vos éd fêt na fôta en copiyent la sôrsa originâla.",
        "specialloguserlabel": "Ôtor :",
        "import-interwiki-history": "Copiyér totes les vèrsions de l’historico de ceta pâge",
        "import-interwiki-templates": "Encllure tôs los modèlos",
        "import-interwiki-submit": "Importar",
-       "import-interwiki-namespace": "Èspâço de noms de dèstinacion :",
-       "import-interwiki-rootpage": "Pâge racena de dèstinacion (u chouèx) :",
        "import-upload-filename": "Nom du fichiér :",
        "import-comment": "Comentèro :",
        "importtext": "Volyéd èxportar lo fichiér dês lo vouiqui d’origina en utilisent son [[Special:Export|outil d’èxportacion]].\nSôvâd-lo sur voutron ordenator et pués tèlèchargiéd-lo ique.",
index d51da63..e82593c 100644 (file)
        "tooltip-pt-mycontris": "Liosta na h-obrach a rinn thu",
        "tooltip-pt-login": "Mholamaidh dhut logadh a-steach; ge-tà, cha leig thu leas seo a dhèanamh",
        "tooltip-pt-logout": "Log a-mach",
+       "tooltip-pt-createaccount": "Ged nach eil e riatanach, tha e nas fhearr ma chruthaicheas tu cunntas agus ma logas tu air.",
        "tooltip-ca-talk": "Deasbad mu dhuilleag na susbainte",
        "tooltip-ca-edit": "'S urrainn dhut an duilleag seo a dheasachadh. Saoil an cleachd thu an ro-shealladh mus sàbhail thu?",
        "tooltip-ca-addsection": "Tòisich air earrann ùr",
index b857f48..b9e018d 100644 (file)
        "import-interwiki-history": "Copiar todas as versións que hai no historial desta páxina",
        "import-interwiki-templates": "Incluír todos os modelos",
        "import-interwiki-submit": "Importar",
+       "import-mapping-default": "Importar aos lugares predeterminados",
+       "import-mapping-namespace": "Importar a un espazo de nomes:",
+       "import-mapping-subpage": "Importar como subpáxinas da seguinte páxina:",
        "import-upload-filename": "Nome do ficheiro:",
        "import-comment": "Comentario:",
        "importtext": "Por favor, exporte o ficheiro do wiki de orixe usando a [[Special:Export|ferramenta de exportación]].\nGárdeo no seu disco duro e cárgueo aquí.",
        "tags-source-manual": "Aplicado manualmente por usuarios e bots",
        "tags-source-none": "Xa non está en uso",
        "tags-edit": "editar",
-       "tags-delete": "Borrar",
+       "tags-delete": "borrar",
        "tags-activate": "activar",
-       "tags-deactivate": "Reactivar",
+       "tags-deactivate": "desactivar",
        "tags-hitcount": "$1 {{PLURAL:$1|modificación|modificacións}}",
        "tags-manage-no-permission": "Non ten os permisos necesarios para modificar etiquetas.",
        "tags-create-heading": "Crear unha nova etiqueta",
        "tags-create-explanation": "Por defecto, as etiquetas creadas recentemente poderán ser empregadas polos usuarios e os bots.",
-       "tags-create-tag-name": "Nome da páxina:",
+       "tags-create-tag-name": "Nome da etiqueta:",
        "tags-create-reason": "Motivo:",
        "tags-create-submit": "Crear",
        "tags-create-no-name": "Debe especificar unha páxina.",
        "tags-create-already-exists": "A páxina \"$1\" xa existe.",
        "tags-create-warnings-above": "{{PLURAL:$2|Atopouse o seguinte erro|Atopáronse os seguintes erros}} ao intentar crear a etiqueta \"$1\":",
        "tags-create-warnings-below": "Desexa continuar creando a etiqueta?",
-       "tags-delete-title": "Borrar etiqueta",
+       "tags-delete-title": "Borrar unha etiqueta",
        "tags-delete-explanation-initial": "Está a piques de borrar a etiqueta \"$1\" da base de datos.",
        "tags-delete-explanation-in-use": "Ha eliminarse {{PLURAL:$2|dunha revisión ou entrada|das $2 revisións e/ou entradas}} de rexistro {{PLURAL:$2|á|ás}} que actualmente se aplica.",
        "tags-delete-explanation-warning": "Esta acción é <strong>irreversible</strong> e nin sequera os administradores da base de datos poderán desfacela. Asegúrese de que é esta a etiqueta que desexa borrar.",
        "tags-delete-not-found": "A páxina \"$1\" non existe.",
        "tags-delete-too-many-uses": "A etiqueta \"$1\" aplícase a máis de $2 {{PLURAL:$2|revisión|revisións}}; isto significa que non se pode borrar.",
        "tags-delete-warnings-after-delete": "A etiqueta \"$1\" borrouse correctamente; con todo, {{PLURAL:$2|atopouse o seguinte erro|atopáronse os seguintes erros}}:",
-       "tags-activate-title": "Activar etiqueta",
+       "tags-activate-title": "Activar unha etiqueta",
        "tags-activate-question": "Está a piques de activar a etiqueta\"$1\".",
        "tags-activate-reason": "Motivo:",
        "tags-activate-not-allowed": "Non é posible activar a páxina \"$1\".",
        "tags-activate-not-found": "A páxina \"$1\" non existe.",
        "tags-activate-submit": "Activar",
-       "tags-deactivate-title": "Desactivar etiqueta",
+       "tags-deactivate-title": "Desactivar unha etiqueta",
        "tags-deactivate-question": "Está a piques de desactivar a etiqueta \"$1\".",
        "tags-deactivate-reason": "Motivo:",
        "tags-deactivate-not-allowed": "Non é posible reactivar a páxina \"$1\".",
-       "tags-deactivate-submit": "Reactivar",
+       "tags-deactivate-submit": "Desactivar",
        "tags-apply-no-permission": "Non ten permisos para aplicar etiquetas de cambios xunto cos seus tus cambios.",
        "tags-apply-not-allowed-one": "A etiqueta \"$1\" non se puede aplicar manualmente.",
        "tags-apply-not-allowed-multi": "{{PLURAL:$2|A seguinte etiqueta non se pode|As seguintes etiquetas non se poden}} aplicar manualmente: $1",
index 046f7e5..6745b80 100644 (file)
@@ -23,7 +23,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Vyom",
-                       "Macofe"
+                       "Macofe",
+                       "Arbhatt"
                ]
        },
        "tog-underline": "કડીઓની નીચે લીટી (અંડરલાઇન):",
        "personaltools": "વ્યક્તિગત સાધનો",
        "articlepage": "લેખનું પાનું જુઓ",
        "talk": "ચર્ચા",
-       "views": "દેખાવ",
+       "views": "દેખાવ",
        "toolbox": "સાધનો",
        "userpage": "સભ્યનું પાનું જુઓ",
        "projectpage": "પ્રકલ્પનું પાનું જુઓ",
        "copyrightpage": "{{ns:project}}:પ્રકાશનાધિકાર",
        "currentevents": "વર્તમાન ઘટનાઓ",
        "currentevents-url": "Project:વર્તમાન ઘટનાઓ",
-       "disclaimers": "àª\9cાહà«\87ર ઇનકાર",
-       "disclaimerpage": "Project:સામાનà«\8dય àª\9cાહà«\87ર ઇનકાર",
+       "disclaimers": "દાવà«\87દારà«\80 ઇનકાર",
+       "disclaimerpage": "Project:સરà«\8dવસાધારણ àª¦àª¾àªµà«\87દારà«\80 ઇનકાર",
        "edithelp": "ફેરફારો માટે મદદ",
        "mainpage": "મુખપૃષ્ઠ",
        "mainpage-description": "મુખપૃષ્ઠ",
        "viewsourceold": "સ્રોત જુઓ",
        "editlink": "ફેરફાર",
        "viewsourcelink": "સ્રોત જુઓ",
-       "editsectionhint": "પરિચ્છેદ ફેરફાર કરો: $1",
+       "editsectionhint": "પરિચ્છેદમાં ફેરફાર કરો: $1",
        "toc": "અનુક્રમણિકા",
        "showtoc": "બતાવો",
        "hidetoc": "છુપાવો",
        "gotaccount": "પહેલેથી ખાતું ખોલેલું છે? '''$1'''.",
        "gotaccountlink": "પ્રવેશ કરો",
        "userlogin-resetlink": "પોતાની પ્રવેશ માહિતી ભૂલી ગયા છો?",
-       "userlogin-resetpassword-link": "તમારà«\8b àªªàª¾àª¸àªµàª°à«\8dડ ભૂલી ગયા છો?",
+       "userlogin-resetpassword-link": "તમારà«\8b àª\97à«\81પà«\8dત àª¸àª\82àª\9cà«\8dàª\9eા (પાસવરà«\8dડ) ભૂલી ગયા છો?",
        "userlogin-helplink2": "પ્રવેશ કરવા માટે મદદ",
        "userlogin-loggedin": "તમે પહેલેથી {{GENDER:$1|$1}} તરીકે પ્રવેશ કરેલો જ છે.\nબીજા સભ્ય તરીકે પ્રવેશ કરવા માટે નીચેનું ફોર્મ વાપરો.",
        "userlogin-createanother": "બીજું ખાતું બનાવો",
        "createacct-imgcaptcha-ph": "તમે જે લખાણ જુઓ છો તે દાખલ કરો",
        "createacct-submit": "તમારું ખાતું બનાવો",
        "createacct-another-submit": "બીજું ખાતું બનાવો",
-       "createacct-benefit-heading": "{{SITENAME}} એ તમારા જેવા લોકો વડે બનાવેલ છે.",
+       "createacct-benefit-heading": "{{SITENAME}} એ તમારા જેવા લોકો બનાવેલ છે.",
        "createacct-benefit-body1": "{{PLURAL:$1|ફેરફાર|ફેરફારો}}",
        "createacct-benefit-body2": "{{PLURAL:$1|પાનું|પાનાં}}",
        "createacct-benefit-body3": "તાજેતરના {{PLURAL:$1|યોગદાનકર્તા|યોગદાનકર્તાઓ}}",
        "watchthis": "આ પાનાને ધ્યાનમાં રાખો",
        "savearticle": "પાનું સાચવો",
        "preview": "પૂર્વાવલોકન",
-       "showpreview": "àª\9dલàª\95 àª¦àª°à«\8dશાવો",
+       "showpreview": "àª\9dલàª\95 àª\9cà«\81વો",
        "showdiff": "ફેરફારો દર્શાવો",
        "anoneditwarning": "<strong>ચેતવણી:</strong> તમે તમારા સભ્ય નામથી પ્રવેશ કર્યો નથી.\nઆ પાનાનાં ઇતિહાસમાં તમારૂં આઇ.પી. (IP) એડ્રેસ નોંધવામાં આવશે અને તમારૂં આઈ.પી. લોકો જાહેર રીતે જોઈ શકશે. માટે <strong>[$1 પ્રવેશ કરો]</strong> અથવા તમે <strong>[$2 ખાતું બનાવો]</strong> તો ફેરફારો તમારા સભ્યનામ હેઠળ થશે અને અન્ય ફાયદાઓ પણ મળશે.",
        "anonpreviewwarning": "તમે સભ્યનામથી પ્રવેશ કર્યો નથી,આ પાનું ઈતિહાસમાંતમારા IP સરનામાના નામે  સાચવવામાં આવશે",
        "revdelete-failure": "'''પુનરાવર્તનની દ્રશ્યતા બદલીન શકાઈ:'''\n$1",
        "logdelete-success": "લોગની દ્રશ્યતા સફળતાપૂર્વક ગોઠવાઈ",
        "logdelete-failure": "'''લોગની દ્રશ્યતા ગોઠવી ન શકાઈ :'''\n$1",
-       "revdel-restore": "દà«\83ષà«\8dàª\9fિàª\95à«\8dષમતા બદલો",
+       "revdel-restore": "દà«\83ષà«\8dયતા બદલો",
        "pagehist": "પાનાનો ઇતિહાસ",
        "deletedhist": "રદ કરેલનો ઇતિહાસ",
        "revdelete-hide-current": "$2, $1 તરીખ ધરાવતી વસ્તુ સંતાડવામાં ત્રુટિ : આ હાલનો ફેરફાર છે.\nઆને છુપાવી નહીં શકાય.",
        "showhideselectedversions": "પસંદ કરેલા બતાવો / સંતાડો",
        "editundo": "રદ કરો",
        "diff-empty": "(કોઇ ભેદ નહી)",
+       "diff-multi-sameuser": "(સમાન સભ્ય દ્વારા {{PLURAL:$1|કરાયેલ એક પુનરાવર્તન| કરાયેલા $1 પુનરાવર્તનો}} દર્શાવેલ નથી)",
        "diff-multi-manyusers": "{{PLURAL:$2|એક સભ્યએ કરેલું|$2 સભ્યોએ કરેલા}} ({{PLURAL:$1|વચગાળાનું એક પુનરાવર્તન દર્શાવ્યં|વચગાળાનાં $1 પુનરાવર્તનો દર્શાવ્યાં}} નથી.)",
        "searchresults": "પરિણામોમાં શોધો",
        "searchresults-title": "પરિણામોમાં \"$1\" શોધો",
        "searchrelated": "શોધ સંબંધિત",
        "searchall": "બધા",
        "showingresults": " {{PLURAL:$1|'''1''' પરિણામ|'''$1''' પરિણામો}} સુધી #'''$2''' થી શરૂ  કરી",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong>નું પરિણામ <strong>$1</strong>|<strong>$3</strong>નાં પરિણામો <strong>$1 - $2</strong>}}",
        "search-nonefound": "તમે આપેલી માહિતી ને મળતાં આવતાં કોઈ પરિણામો નથી",
        "powersearch-legend": "વધુ પર્યાયો સાથે શોધો",
        "powersearch-ns": "નામસ્થળોમાં શોધો:",
        "sp-contributions-toponly": "માત્ર છેલ્લી આવૃત્તિના ફેરફારો જ દર્શાવો",
        "sp-contributions-submit": "શોધો",
        "whatlinkshere": "અહી શું જોડાય છે",
-       "whatlinkshere-title": "\"$1\" àª¸àª¾àª¥à«\87 àª\9cà«\8bડાયà«\87લાàª\82 પાનાં",
+       "whatlinkshere-title": "\"$1\" àª¨à«\87 àª\9cà«\8bડતા પાનાં",
        "whatlinkshere-page": "પાનું:",
        "linkshere": "નીચેના પાનાઓ '''[[:$1]]''' સાથે જોડાય છે:",
        "nolinkshere": "'''[[:$1]]'''ની સાથે કોઇ પાના જોડાતા નથી.",
        "tooltip-pt-watchlist": "તમે દેખરેખ રાખી રહ્યાં હોવ તેવા પાનાઓની યાદી",
        "tooltip-pt-mycontris": "તમારા યોગદાનની યાદી",
        "tooltip-pt-login": "આપને પ્રવેશ કરવા ભલામણ કરવામાં આવે છે, જોકે તે આવશ્યક નથી",
-       "tooltip-pt-logout": "બહાર નીકળો/લૉગ આઉટ કરો",
-       "tooltip-pt-createaccount": "તમનà«\87 àª\96ાતà«\81àª\82 àª¬àª¨àª¾àªµà«\80નà«\87 àªªà«\8dરવà«\87શ àª\95રવા àª®àª¾àª\9fà«\87 àª\86મàª\82તà«\8dરણ àª\9bà«\87; àª¤à«\87મ àª\95રવà«\81àª\82 àª\9cà«\8bàª\95à«\87, àª\9cરà«\82રà«\80 àª¨àª¥à«\80.",
+       "tooltip-pt-logout": "બહાર નીકળો",
+       "tooltip-pt-createaccount": "તમનà«\87 àª\96ાતà«\81àª\82 àª¬àª¨àª¾àªµà«\80નà«\87 àªªà«\8dરવà«\87શ àª\95રવા àª®àª¾àª\9fà«\87 àª\86મàª\82તà«\8dરણ àª\9bà«\87; àª¤à«\87મ àª\95રવà«\81àª\82 àª\9cà«\8bàª\95à«\87, àª\86વશà«\8dયàª\95 àª¨àª¥à«\80",
        "tooltip-ca-talk": "અનુક્રમણિકાનાં પાના વિષે ચર્ચા",
        "tooltip-ca-edit": "આપ આ પાનામાં ફેરફાર કરી શકો છો, કાર્ય સુરક્ષિત કરતાં પહેલાં 'ઝલક' બટન ઉપર ક્લિક કરીને જોઇ લેશો",
        "tooltip-ca-addsection": "ચર્ચાનો નવો મુદ્દો ઉમેરો.",
        "tooltip-t-recentchangeslinked": "આ પાના પરની કડીઓ વાળા લેખોમાં તાજેતરમાં થયેલા ફેરફારો",
        "tooltip-feed-rss": "આ પાના માટે આર.એસ.એસ. ફીડ",
        "tooltip-feed-atom": "આ પાના માટે એટોમ ફીડ",
-       "tooltip-t-contributions": "આ સભ્યનાં યોગદાનોની યાદી જુઓ",
+       "tooltip-t-contributions": "આ સભ્યનાં યોગદાનોની યાદી",
        "tooltip-t-emailuser": "આ સભ્યને ઇ-મેલ મોકલો",
        "tooltip-t-upload": "ફાઇલ ચડાવો",
        "tooltip-t-specialpages": "બધા ખાસ પાનાંઓની યાદી",
        "tooltip-ca-nstab-main": "સૂચિ વાળું પાનુ જુઓ",
        "tooltip-ca-nstab-user": "સભ્યનું પાનું જુઓ",
        "tooltip-ca-nstab-media": "મિડિયાનું પાનું જુઓ",
-       "tooltip-ca-nstab-special": "àª\86 àª\96ાસ àªªàª¾àª¨à«\81àª\82 àª\9bà«\87, àª¤àª®à«\87 àª¤à«\87માàª\82 àª«à«\87રફાર àª¨àª¾ àª\95રà«\80 àª¶àª\95à«\8b",
-       "tooltip-ca-nstab-project": "પરિયોજનાનું પાનું",
+       "tooltip-ca-nstab-special": "àª\86 àª\96ાસ àªªàª¾àª¨à«\81àª\82 àª\9bà«\87, àª¤àª®à«\87 àª¤à«\87માàª\82 àª«à«\87રફાર àª\95રà«\80 àª¶àª\95શà«\8b àª¨àª¹à«\80",
+       "tooltip-ca-nstab-project": "પરિયોજનાનું પાનું જુવો",
        "tooltip-ca-nstab-image": "ફાઇલ વિષેનું પાનું જુઓ",
        "tooltip-ca-nstab-mediawiki": "તંત્ર સંદેશ જુઓ",
        "tooltip-ca-nstab-template": "ઢાંચો જુઓ",
        "filedelete-current-unregistered": "જણાવેલ ફાઇલ  \"$1\" માહિતીસંચમાં નથી",
        "filedelete-archive-read-only": "ઐતિહાસિક ડાયરેક્ટરી ($1) એ વેબ બ્રાઉઝર દ્વારા લેખન યોગ્ય નથી.",
        "previousdiff": "← પહેલાનો ફેરફાર",
-       "nextdiff": "પàª\9bà«\80નà«\8b ફેરફાર →",
+       "nextdiff": "નવા ફેરફાર →",
        "mediawarning": "'''ચેતવણી''': આ ફાઇલમાં દુષ્ટ સોચનાઓ હોઇ શકે.\nતેને ચલવતા, તમારા સંગણકને ભય છે.",
        "imagemaxsize": "ચિત્રના કદની મર્યાદા:<br />''(for file description pages)''",
        "thumbsize": "લઘુચિત્ર કદ",
        "file-info": "ફાઇલ કદ : $1, MIME પ્રકાર: $2",
        "file-info-size": "$1 × $2 પીક્સલ, ફાઇલનું કદ: $3, MIME પ્રકાર: $4",
        "file-info-size-pages": "$1 × $2 પીક્સલ, ફાઈલ કદ: $3, MIME પ્રકાર: $4, $5 {{PLURAL:$5|પાનું|પાના}}",
-       "file-nohires": "àª\86થà«\80 àªµàª§à«\81 àª\86વરà«\8dતન ઉપલબ્ધ નથી.",
+       "file-nohires": "àª\86થà«\80 àªµàª§à«\81 àª\98નતà«\8dવ ઉપલબ્ધ નથી.",
        "svg-long-desc": "SVG ફાઇલ, માત્ર $1 × $2 પીક્સલ, ફાઇલનું કદ: $3",
        "svg-long-error": "અયોગ્ય SVG ફાઇલ: $1",
        "show-big-image": "મૂળભુત ફાઇલ",
        "show-big-image-preview": "આ મહાવરા દ્રશ્યનું માપ: $1.",
        "show-big-image-other": "અન્ય {{PLURAL:$2|આવર્તન|આવર્તનો}}: $1.",
-       "show-big-image-size": "$1 Ã\97 $2 àªªà«\80àª\95à«\8dસલ",
+       "show-big-image-size": "$1 Ã\97 $2 àªªàª¿àª\95à«\8dસà«\87લ",
        "file-info-gif-looped": "આવર્તન  (લુપ)",
        "file-info-gif-frames": " $1 {{PLURAL:$1|છબી|છબીઓ}}",
        "file-info-png-looped": "આવર્તન",
        "metadata-help": "આ માધ્યમ સાથે વધુ માહિતિ સંકળાયેલી છે, જે સંભવતઃ માધ્યમ (ફાઇલ) બનાવવા માટે ઉપયોગમાં લેવાયેલા ડિજીટલ કેમેરા કે સ્કેનર દ્વારા ઉમેરવામાં આવી હશે.\n<br />જો માધ્યમને તેના મુળ રૂપમાંથી ફેરફાર કરવામાં આવશે તો શક્ય છે કે અમુક માહિતિ પુરેપુરી હાલમાં છે તેવી રીતે ના જળવાઇ રહે.",
        "metadata-expand": "વિસ્તૃત કરેલી વિગતો બતાવો",
        "metadata-collapse": "વિસ્તૃત કરેલી વિગતો છુપાવો",
-       "metadata-fields": "જ્યારે મૅટાડેટાનો કોઠો વિલિન થઇ જતો હશે ત્યારે આ સંદેશામાં સુચવેલી મૅટાડેટા માહિતી ચિત્રના પાનાની દૃશ્ય આવૃત્તિમાં ઉમેરવામાં આવશે.\nઅન્ય આપોઆપ જ છુપાઇ જશે.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "જ્યારે મૅટાડેટાનો કોઠો વિલિન થઇ જતો હશે ત્યારે આ સંદેશામાં સુચવેલી મૅટાડેટા માહિતી ચિત્રના પાનાની દૃશ્ય આવૃત્તિમાં ઉમેરવામાં આવશે.\nઅન્ય આપોઆપ જ છુપાઇ જશે.\n* બનાવટ\n* મોડલ\n* મુળતારીખ\n* એક્ષપોઝરસમય\n* એફનંબર\n* એઇએસઓસ્પીડસેટિંગ્સ\n* ફોકલલેંથ\n* કલાકાર\n* કોપીરાઇટ\n* ચિત્રનું વર્ણન\n* જીપીએસરેખાંશ\n* જીપીએસઅક્ષાંશ\n* જીપીએસઉંચાઈ",
        "exif-imagewidth": "પહોળાઈ",
        "exif-imagelength": "ઊંચાઈ",
        "exif-bitspersample": "બીટ્સ પ્રતિ ભાગ",
        "logentry-newusers-create": "સભ્ય ખાતું $1 {{GENDER:$2|બનાવવામાં આવ્યું}}",
        "logentry-newusers-create2": "સભ્ય ખાતું $3 $1 વડે {{GENDER:$2|બનાવવામાં આવ્યું હતું}}",
        "logentry-newusers-autocreate": "વપરાશકર્તા ખાતું $1 આપમેળે {{GENDER:$2|બનાવવામાં આવ્યું હતું}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|દ્વારા ચડાવેલ}} $3",
        "rightsnone": "(કંઈ નહી)",
        "revdelete-summary": "સંપાદનનો સંક્ષિપ્ત અહેવાલ",
        "feedback-adding": "પ્રતિભાવ આ પાના પર ઉમેરાઈ રહ્યો છે.",
index fc7aa3a..2a1a8ac 100644 (file)
@@ -28,7 +28,8 @@
                        "Treecko",
                        "לערי ריינהארט",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "Fraxinus"
                ]
        },
        "tog-underline": "Podcrtane poveznice",
        "shown-title": "Prikaži $1 {{PLURAL:$1|rezultat|rezultata|rezultata}} po stranici",
        "viewprevnext": "Vidi ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "* Stranica '''[[$1]]'''",
-       "searchmenu-new": "'''Stvori stranicu \"[[:$1]]\" na ovoj wiki!'''",
+       "searchmenu-new": "<strong>Napravite stranicu \"[[:$1]]\" na ovom wiki projektu!</strong>\n{{PLURAL:$2|0=|Cm. i stranica koje se nalaze u rezultatima vaših pretraživanja.|Cm. također su pronađeni rezultati pretraživanja.}}",
        "searchprofile-articles": "Stranice sa sadržajem",
        "searchprofile-images": "Multimedija",
        "searchprofile-everything": "Sve",
        "import-interwiki-history": "Prenesi sve inačice ove stranice",
        "import-interwiki-templates": "Uključi sve predloške",
        "import-interwiki-submit": "Uvezi",
-       "import-interwiki-namespace": "Odredišni imenski prostor:",
-       "import-interwiki-rootpage": "Odredišna početna stranica (parametar nije nužan):",
        "import-upload-filename": "Ime datoteke:",
        "import-comment": "Komentar:",
        "importtext": "Molimo izvezite datoteku iz izvorišnog wikija koristeći [[Special:Export|izvozno pomagalo]]. \nSnimite je na svoje računalo i postavite je ovdje.",
        "tooltip-pt-mycontris": "Popis mojih doprinosa",
        "tooltip-pt-login": "Predlažemo Vam da se prijavite, ali nije obvezno.",
        "tooltip-pt-logout": "Odjavi se",
+       "tooltip-pt-createaccount": "Nudimo vam mogućnost da napravite račun i prijavite se, iako to nije nužno.",
        "tooltip-ca-talk": "Razgovor o stranici",
        "tooltip-ca-edit": "Možete uređivati ovu stranicu. Koristite Pregled kako će izgledati prije nego što snimite.",
        "tooltip-ca-addsection": "Dodaj novi odlomak",
index a2f6cc7..e29d57e 100644 (file)
        "tags-edit": "szerkesztés",
        "tags-hitcount": "{{PLURAL:$1|Egy|$1}} változtatás",
        "tags-delete-not-allowed": "A kiterjesztés által létrehozott címkék nem törölhetők, ha a kiterjesztés nem engedélyezi kifejezetten azt.",
+       "tags-edit-title": "Címkék szerkesztése",
+       "tags-edit-existing-tags": "Létező címkék:",
        "comparepages": "Lapok összehasonlítása",
        "compare-page1": "1. lap",
        "compare-page2": "2. lap",
index 7f532c9..dc8d70f 100644 (file)
@@ -19,7 +19,9 @@
                        "아라",
                        "Lilitik22",
                        "GrigorGB",
-                       "Աշոտ1997"
+                       "Աշոտ1997",
+                       "GeoO",
+                       "Դավիթ Սարոյան"
                ]
        },
        "tog-underline": "ընդգծել հղումները՝",
        "edit": "Խմբագրել",
        "edit-local": "Խմբագրել տեղական նկարագրությունը",
        "create": "Ստեղծել",
+       "create-local": "Ավելացնել տեղային նկարագիր",
        "editthispage": "Խմբագրել այս էջը",
        "create-this-page": "Ստեղծել այս էջը",
        "delete": "Ջնջել",
        "createaccount-text": "Ինչ-որ մեկը ստեղծել է «$2» անվանմամբ մասնակցային հաշիվ «$3» գաղտնաբառով {{SITENAME}} ($4) նախագծում՝ նշելով ձեր էլ-հասցեն։ Ձեզ անհրաժեշտ է մտնել համակարգ և փոխել գաղտնաբառը։\n\nԿարող եք անտեսել այս հաղորդագրությունը, եթե հաշիվը ստեղծվել է սխալմամբ։",
        "login-throttled": "Դուք կատարել եք չափից շատ մուտքի փորձ։\nԽնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։",
        "loginlanguagelabel": "Լեզու՝ $1",
-       "pt-login": "Õ\84Õ¿Õ¶ել",
+       "pt-login": "Õ\84Õ¸Ö\82Õ¿Ö\84 Õ£Õ¸Ö\80Õ®ել",
        "pt-login-button": "Մտնել",
-       "pt-createaccount": "Õ\8dÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ´Õ¡Õ½Õ¶Õ¡Õ¯Ö\81Õ« հաշիվ",
+       "pt-createaccount": "Õ\8dÕ¿Õ¥Õ²Õ®Õ¥Õ¬ Õ´Õ¡Õ½Õ¶Õ¡Õ¯Ö\81Õ¡ÕµÕ«Õ¶ հաշիվ",
        "pt-userlogout": "Դուրս գալ",
        "php-mail-error-unknown": "Անհայտ սխալ PHP-ի mail() ֆունկցիայում",
        "user-mail-no-addy": "Փորձվեց ուղարկել էլ․ նամակ առանց էլ․ հասցեի։",
        "preview": "Նախադիտում",
        "showpreview": "Նախադիտել",
        "showdiff": "Կատարված փոփոխությունները",
-       "anoneditwarning": "'''Ուշադրություն.''' Դուք չեք մտել համակարգ։\nՁեր IP հասցեն կգրանցվի այս էջի խմբագրումների պատմության մեջ։",
+       "anoneditwarning": "<strong>Ուշադրություն,</strong> Դուք չեք մտել համակարգ։ Ցանկացած խմբագրման դեպքում Ձեր IP հասցեն կդառնա բոլորին տեսանելի։ Եթե դուք <strong>[$1 մուտք գործեք]</strong> կամ <strong>[$2 ստեղծեք մասնակցային հաշիվ]</strong>, Ձեր կատարած խմբագրումները կկավեն Ձեր մասնակցային անվան հետ և Դուք կունենաք այլ առավելություններ։",
        "anonpreviewwarning": "<em>Դուք չեք մտել համակարգ։\nՀիշելով Ձեր կատարած խմբագրումը, այն կպահանվի Ձեր IP հասցեի հետ միասին այս էջի խմբագրումների պատմության մեջ։</em>",
        "missingsummary": "'''Հիշեցում.''' Դուք չեք տվել խմբագրման ամփոփում։ «Հիշել» կոճակի կրկնակի մատնահարման դեպքում փոփոխությունները կհիշվեն առանց ամփոփման։",
        "missingcommenttext": "Խնդրում ենք մեկնաբանություն ավելացնել ստորև։",
        "newarticletext": "Դուք հղվել եք դեռևս գոյություն չունեցող էջի։ \nՆոր էջ ստեղծելու համար ստորև գտնվող խմբագրման դաշտում ավելացրեք տեքստ, այնուհետև սեղմեք '''Հիշել էջը''' (այցելեք [$1 օգնության էջը]՝ մանրամասն տեղեկությունների համար)։ \n\nԵթե դուք սխալմամբ եք այստեղ հայտնվել, ապա սեղմեք ձեր դիտարկչի '''հետ''' (back) կոճակը։",
        "anontalkpagetext": "----\n''Այս քննարկման էջը պատկանում է անանուն մասնակցին, որը դեռ չի ստեղծել մասնակցային հաշիվ կամ չի մտել համակարգ մասնակցի անունով։''\nԱյդ իսկ պատճառով օգտագործվում է թվային IP-հասցեն։\nՆման IP-հասցեից կարող են օգտվել մի քանի մասնակիցներ։\nԵթե դուք անանուն մասնակից եք, բայց կարծում եք, որ ուրիշներին վերաբերող դիտողությունները արվում են ձեր հասցեով, ապա խնդրում ենք պարզապես [[Special:UserLogin/signup|գրանցվել]] կամ [[Special:UserLogin|մտնել համակարգ]], որպեսզի հետագայում ձեզ չշփոթեն այլ անանուն մասնակիցների հետ։",
        "noarticletext": "Ներկայումս այս էջում որևէ տեքստ չկա։\nԴուք կարող եք [[Special:Search/{{PAGENAME}}|որոնել այս անվանումը]] այլ էջերում, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} որոնել համապատասխան տեղեկամատյանները] կամ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ստեղծել նոր էջ այս անվանմամբ]</span>։",
-       "noarticletext-nopermission": "Ներկայումս այս էջում որևէ տեքստ չկա։\nԴուք կարող եք [[Special:Search/{{PAGENAME}}|որոնել այս անվանունը]] այլ էջերում կամ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} որոնել այն տեղեկամատյաններում]</span>։",
+       "noarticletext-nopermission": "Ներկայումս այս էջում որևէ տեքստ չկա։\nԴուք կարող եք [[Special:Search/{{PAGENAME}}|որոնել այս անվանունը]] այլ էջերում կամ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} որոնել այն տեղեկամատյաններում]</span>։ Դուք չունեք թույլտվություն ստեղծել այս էջը։",
        "userpage-userdoesnotexist": "«<nowiki>$1</nowiki>» անվանմամբ մասնակից գոյություն չունի։\nԽնդրում ենք հավաստիանալ նրանում, թե արդյոք ուզում եք ստեղծել/խմբագրել այս էջը։",
        "userpage-userdoesnotexist-view": "«$1» անվանմամբ գրանցված մասնակից չկա։",
        "blocked-notice-logextract": "Այս մասնակիցը ներկա պահին արգելափակված է։\nՍտորև ներկայացված է արգելափակման տեղեկամատյանի վերջին գրառումը.",
        "token_suffix_mismatch": "'''Ձեր խմբագրումը մերժվել է, քանի որ ձեր օգտագործած ծրագիրը աղավաղել է կետադրության նշանները խմբագրման դաշտում։ Խմբագրումը մերժվել է էջի տեքստի խաթարումը կանխելու նպատակով։ Սա երբեմն պայմանավորված է սխալներ պարունակող անանվանեցնող վեբ-փոխարինորդ (proxy) ծառայության օգտագործմամբ։'''",
        "editing": "Խմբագրվում է՝ $1 էջը",
        "creating": "Ստեղծվում է՝ $1 էջը",
-       "editingsection": "Խմբագրվում է՝ $1 էջի (բաժինը)",
+       "editingsection": "Խմբագրվում է $1 բաժինը",
        "editingcomment": "Խմբագրվում է՝ $1 էջի (նոր բաժինը)",
        "editconflict": "Խմբագրման ընդհարում. $1",
        "explainconflict": "Մեկ այլ մասնակից փոփոխել է այս տեքստը ձեր խմբագրման ընթացքում։\nՎերին խմբագրման դաշտում ընդգրկված է ընթացիկ տեքստը, որն ենթակա է հիշման։\nՁեր խմբագրումներով տեքստը գտնվում է ստորին դաշտում։\nՈրպեսզի ձեր փոփոխությունները հիշվեն, միաձուլեք դրանք վերին տեքստի մեջ։\n«{{int:savearticle}}» կոճակին սեղմելով կհիշվի '''միայն''' վերևվի դաշտի տեքստը:",
        "nextn": "հաջորդ {{PLURAL:$1|$1}}",
        "prevn-title": "Նախկին $1 {{PLURAL:$1|արդյունքը|արդյունքները}}",
        "nextn-title": "Հաջորդ $1 {{PLURAL:$1|արդյունքը|արդյունքները}}",
+       "shown-title": "Յուրաքանչյուր էջում ցույց տալ $1 {{PLURAL:$1|գրառում|գրառումներ}}",
        "viewprevnext": "Դիտել ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Այս վիքիում, գոյություն ունի \"[[:$1]]\" անվանումով էջը։'''",
-       "searchmenu-new": "'''Ստեղծե՛լ \"[[:$1]]\" էջը այս վիքիում'''",
+       "searchmenu-new": "<strong>Ստեղծել «[[:$1]]» էջը այս վիքիում։</strong> {{PLURAL:$2|0=|Տես նաև քո որոնած բառով գտնված էջը|Տես նաև որոնման արդյունքները։}}",
        "searchprofile-articles": "Հիմնական էջեր",
        "searchprofile-images": "Մուլտիմեդիա",
        "searchprofile-everything": "Ամենուրեք",
        "searchrelated": "հարակից",
        "searchall": "բոլոր",
        "showingresults": "Ստորև բերված է մինչև {{PLURAL:$1|'''1''' արդյունք|'''$1''' արդյունք}}՝ սկսած №&nbsp;<strong>$2</strong>-ից։",
+       "search-showingresults": "{{PLURAL:$4|<strong>$1</strong> արդյունք <strong>$3</strong>-ից|<strong>$1 - $2</strong> արդյունքներ <strong>$3</strong>-ից}}",
        "search-nonefound": "Որոնմանը համապատասխանող արդյունքներ չեն գտնվել։",
        "powersearch-legend": "Ընդլայնված որոնում",
        "powersearch-ns": "Որոնել անվանատարածքում.",
        "recentchanges-label-bot": "Այս խմբագրումը կատարվել է բոտի կողմից",
        "recentchanges-label-unpatrolled": "Այս խմբագրումը դեռ չի պարեկվել",
        "recentchanges-label-plusminus": "Էջի չափսը փոփոխվեց այսքան բայթով",
+       "recentchanges-legend-heading": "'''Լեգենդ՝'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (տես նաև՝  [[Special:NewPages|նոր էջերի ցանկ]])",
        "rcnotefrom": "Ստորև բերված են փոփոխությունները սկսած՝ '''$2''' (մինչև՝ '''$1''')։",
        "rclistfrom": "Ցույց տալ նոր փոփոխությունները սկսած $3 $2",
        "undelete-show-file-submit": "Այո",
        "namespace": "Անվանատարածք.",
        "invert": "Շրջել ընտրությունը",
+       "tooltip-invert": "Նշեք` տվյալ անվանատարածքի և կից անվանատարածքների (եթե նշված է) էջերի փոփոխությունները թաքցնելու համար։",
        "namespace_association": "Կից անվանատարածք",
+       "tooltip-namespace_association": "Նշեք տվյալ անվանատարածքի հետ կապված քննարկումների անվանատարածքը նույնպես ներառելու համար։",
        "blanknamespace": "(Գլխավոր)",
        "contributions": "{{GENDER:$1|Մասնակցի}} ներդրում",
        "contributions-title": "$1 մասնակցի ներդրումը",
        "nolinkshere-ns": "Ընտրված անվանատարածքում '''[[:$1]]''' էջին հղվող էջեր չկան։",
        "isredirect": "վերահղման էջ",
        "istemplate": "ներառում",
-       "isimage": "պատկերի հղումներ",
+       "isimage": "ֆայլի հղում",
        "whatlinkshere-prev": "{{PLURAL:$1|նախորդ|նախորդ $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|հաջորդ|հաջորդ $1}}",
        "whatlinkshere-links": "← հղումներ",
        "tooltip-pt-mycontris": "Ձեր ներդրումների ցանկը",
        "tooltip-pt-login": "Կոչ ենք անում մտնել համակարգ, սակայն դա պարտադիր չէ",
        "tooltip-pt-logout": "Դուրս գալ համակարգից",
+       "tooltip-pt-createaccount": "Խորհուրդ է տրվում ստեղծել մասնակցային հաշիվ և մուտք գործել համակարգ, սակայն դա անելը պարտադիր չէ։",
        "tooltip-ca-talk": "Քննարկումներ այս էջի բովանդակության մասին",
        "tooltip-ca-edit": "Դուք կարող էք խմբագրել այս էջը։ Խնդրում ենք օգտագործել նախադիտման կոճակը հիշելուց առաջ։",
        "tooltip-ca-addsection": "Ստեղծել նոր բաժին",
        "svg-long-desc": "SVG-նիշք, անվանապես $1 × $2 փիքսել, նիշքի չափը՝ $3",
        "show-big-image": "Սկզբնական նիշք",
        "show-big-image-preview": "Նախադիտման չափ՝ $1։",
+       "show-big-image-other": "Այլ {{PLURAL:$2|1=թույլտվություն|թույլտվությաններ}}: $1.",
        "show-big-image-size": "$1 × $2 պիքսել",
        "newimages": "Նոր նիշքերի սրահ",
        "imagelisttext": "Ստորև բերված է '''$1''' {{PLURAL:$1|նիշքի}} ցանկ՝ դասավորված ըստ $2։",
        "metadata-help": "Նիշքը պարունակում է ընդարձակ տվյալները, հավանաբար ավելացված թվային լուսանկարչական ապարատի կամ սկաների կողմից, որոնք օգտագործվել են նկարը ստեղծելու կամ թվայնացնելու համար։\nԵթե նիշքը ձևափոխվել է ստեղծումից ի վեր, ապա որոշ տվյալները կարող են չհամապատասխանել ձևափոխված նիշքին։",
        "metadata-expand": "Ցուց տալ ընդարձակ տվյալները",
        "metadata-collapse": "Թաքցնել ընդարձակ տվյլաները",
-       "metadata-fields": "EXIF Õ´Õ¥Õ¿Õ¡Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ« Õ¡ÕµÕ¶ Õ¤Õ¡Õ·Õ¿Õ¥Ö\80Õ¨, Õ¸Ö\80Õ¸Õ¶Ö\84 Õ¶Õ·Õ¾Õ¡Õ® Õ¥Õ¶Ö\84 Õ¡ÕµÕ½ Õ¸Ö\82Õ²Õ¥Ö\80Õ±Õ« Õ´Õ¥Õ», Õ¯Ö\81Õ¸Ö\82Ö\81Õ¡Õ¤Ö\80Õ¾Õ¥Õ¶ ÕºÕ¡Õ¿Õ¯Õ¥Ö\80Õ« Õ§Õ»Õ¸Ö\82Õ¶ Õ¬Õ¼Õ¸Ö\82Õ©ÕµÕ¡Õ´Õ¢։ Այլ տվյալները լռությամբ կթաքցվեն։\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "EXIF Õ´Õ¥Õ¿Õ¡Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ« Õ¡ÕµÕ¶ Õ¤Õ¡Õ·Õ¿Õ¥Ö\80Õ¨, Õ¸Ö\80Õ¸Õ¶Ö\84 Õ¶Õ·Õ¾Õ¡Õ® Õ¥Õ¶Ö\84 Õ¡ÕµÕ½ Õ¸Ö\82Õ²Õ¥Ö\80Õ±Õ« Õ´Õ¥Õ», Õ¯Ö\81Õ¸Ö\82Ö\81Õ¡Õ¤Ö\80Õ¾Õ¥Õ¶ ÕºÕ¡Õ¿Õ¯Õ¥Ö\80Õ« Õ§Õ»Õ¸Ö\82Õ´, Õ¥Ö\80Õ¢ Õ´Õ¥Õ¿Õ¡Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ« Õ¡Õ²ÕµÕ¸Ö\82Õ½Õ¡Õ¯Õ¨ Õ®Õ¡Õ¬Õ¾Õ¡Õ® Õ§։ Այլ տվյալները լռությամբ կթաքցվեն։\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Լայնք",
        "exif-imagelength": "Բարձրություն",
        "exif-orientation": "Դիրք",
        "exif-xresolution": "Հորիզոնական կետաչափ",
        "exif-yresolution": "Ուղղահայաց կետաչափ",
+       "exif-datetime": "Ֆայի փոփոխման ամսաթիվը և ժամանակը",
        "exif-make": "Խցիկի արտադրող",
        "exif-model": "Խցիկի մոդել",
        "exif-software": "Օգտագործված ծրագիր",
        "dberr-problems": "Այս կայքում առաջացել են տեխնիկական խնդիրներ։ Հայցում ենք ձեր ներողությունը։",
        "dberr-again": "Փորձեք մի քանի րոպե սպասել և վերաբեռնել էջը։",
        "htmlform-submit": " \nՀաշվել",
-       "logentry-delete-delete": "$1 ջնջեց էջը $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ջնջեց}} $3 էջը",
        "logentry-delete-restore": "$1 վերականգնեց էջը $3",
        "logentry-delete-event": "$1 փոխեց տեղեկամատյանի {{PLURAL:$5|1 գրանցման|$5 գրանցումների}} տեսանելությունը $3-ում. $4",
        "logentry-delete-revision": "$1 փոխեց {{PLURAL:$5|1 խմբագրման|$5 խմբագրումների}} տեսանելությունը $3 էջում. $4",
index d97d122..a1ed80d 100644 (file)
        "logempty": "該当する記録はありません。",
        "log-title-wildcard": "この文字列で始まるページ名を検索",
        "showhideselectedlogentries": "選択した記録項目を表示/非表示",
+       "log-edit-tags": "選択した記録項目のタグを編集",
        "allpages": "全ページ",
        "nextpage": "次のページ ($1)",
        "prevpage": "前のページ ($1)",
index 6445043..afe8af3 100644 (file)
@@ -22,7 +22,8 @@
                        "לערי ריינהארט",
                        "გიორგიმელა",
                        "아라",
-                       "Macofe"
+                       "Macofe",
+                       "SHOTHA"
                ]
        },
        "tog-underline": "ბმულების ხაზგასმა:",
        "pool-timeout": "ბლოკირების ლოდინის დრო ამოიწურა",
        "pool-queuefull": "მოთხოვნების დამგროვებელი სავსეა",
        "pool-errorunknown": "უცნობი შეცდომა",
+       "pool-servererror": "პულის მრიცხველის მომსახურება მიუწვდომელია ($1).",
        "poolcounter-usage-error": "გამოყენების შეცდომა: $1",
        "aboutsite": "{{SITENAME}}-ის შესახებ",
        "aboutpage": "Project:შესახებ",
        "nospecialpagetext": "<strong>თქვენ არასწორი სპეციალური გვერდი მოითხოვეთ.</strong>\n\nსწორი სპეციალური გვერდების სია შეგიძლიათ იხილოთ აქ: [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "შეცდომა",
        "databaseerror": "შეცდომა მონაცემთა ბაზაში",
+       "databaseerror-text": "მონაცემთა ბაზაში შეცდომა მოხდა.\nეს შესაძლოა პროგრამული უზრუნველყოფის შეცდომაზე მიუთითებდეს.",
+       "databaseerror-textcl": "მონაცემთა ბაზაში შეცდომა მოხდა.",
        "databaseerror-query": "მოთხოვნა: $1",
        "databaseerror-function": "ფუნქცია: $1",
        "databaseerror-error": "შეცდომა: $1",
        "readonly_lag": "მონაცემთა ბაზა ავტომატურად დაიხურა, სანამ შვილობილი ბაზის სერვერები მთავარ ბაზასთან სინქრონიზაციას ახდენს",
        "internalerror": "შიდა შეცდომა",
        "internalerror_info": "შიდა შეცდომა: $1",
+       "internalerror-fatal-exception": "ფატალური გამონაკლისის ტიპი „$1“",
        "filecopyerror": "„$1“ ფაილის „$2“-ზე კოპირება ვერ მოხერხდა.",
        "filerenameerror": "შეუძლებელია ფაილის „$1“ სათაურის შეცვლა სახელწოდებით „$2“.",
        "filedeleteerror": "ფაილის „$1“ წაშლა ვერ მოხერხდა.",
        "directorycreateerror": "დირექტორიის „$1“ შექმნა შეუძლებელია.",
+       "directoryreadonlyerror": "კატალოგი „$1“ მხოლოდ წასაკითხად არის ხელმისაწვდომი.",
+       "directorynotreadableerror": "კატალოგი „$1“ არ იკითხება.",
        "filenotfound": "ფაილის „$1“ მოძიება ვერ მოხერხდა.",
        "unexpected": "გაუთვალისწინებელი სიდიდე: „$1“=„$2“.",
        "formerror": "შეცდომა: ფორმის გაგზავნა ვერ მოხერხდა.",
        "preview": "წინასწარი გადახედვა",
        "showpreview": "წინასწარი გადახედვა",
        "showdiff": "ცვლილებების ჩვენება",
-       "anoneditwarning": "'''გაფრთხილება:''' თქვენ არ ხართ რეგისტრირებული. თქვენი IP მისამართი ჩაიწერება ამ გვერდის რედაქტირების ისტორიაში.",
+       "anoneditwarning": "<strong>გაფრთხილება:</strong> თქვენ არ ხართ ავტორიზირებული. თქვენი IP მისამართი საჯაროდ ხილული იქნება, თუკი განახორციელებთ რედაქტირებას. თუ თქვენ გაივლით <strong>[$1 ავტორიზაციას]</strong> ან <strong>[$2 შექმნით ანგარიშს]</strong>, სხვა უპირატესობებთან ერთად, თქვენი რედაქტირებები დაუკავშირდება თქვენს მომხმარებლის სახელს.",
        "anonpreviewwarning": "''თქვენ არ შესულხართ სისტემაში. თქვენი IP მისამართი შეინახება გვერდის ისტორიაში. ''",
        "missingsummary": "'''შეხსენება:''' თქვენ არ მიგითითებიათ რედაქტირების რეზიუმე.\nთუ ისევ დააწკაპუნებთ შენახვაზე, თქვენი რედაქტირება რეზიუმეს გარეშე დამახსოვრდება.",
        "missingcommenttext": "გთხოვთ კომენტარი შეიყვანოთ ქვემოთ.",
        "history-feed-empty": "თქვენს მიერ მოძიებული გვერდი არ არსებობს.\nშესაძლოა იგი წაშლილ იქნა ვიკიდან, ან მისი სათაური შეიცვალა.\nსცადეთ [[Special:Search|searching on the wiki]] მსგავსი გვერდების სანახავად.",
        "rev-deleted-comment": "(რეზიუმე წაიშალა)",
        "rev-deleted-user": "(მომხმარებლის სახელი წაიშალა)",
-       "rev-deleted-event": "(á\83\9fá\83£á\83 á\83\9cá\83\90á\83\9aá\83\98á\83¡ á\83©á\83\90á\83\9cá\83\90á\83¬á\83\94á\83 ი წაშლილია)",
+       "rev-deleted-event": "(á\83\9fá\83£á\83 á\83\9cá\83\90á\83\9aá\83\98á\83¡ á\83\93á\83\94á\83¢á\83\90á\83\9aá\83\94á\83\91ი წაშლილია)",
        "rev-deleted-user-contribs": "[მომხმარებლის სახელი ან IP დამალულია. რეაქტირება ასევე დამალულია]",
        "rev-deleted-text-permission": "გვერდის ეს ჩასწორება '''წაიშალა'''.\nგანმარტება შესაძლოა მოცემული იყოს [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} წაშლათა ჟურნალში].",
        "rev-deleted-text-unhide": "გვერდის ეს ვერსია '''წაიშალა'''.\nახსნა-განმარტება მოცემულია [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} წაშლის ჟურნალში].\nსურვილის შემთხვევაში თქვენ შეგიძლიათ [$1 იხილოთ აღნიშნული ვერსია].",
        "revdelete-legend": "შეზღუდვის დაყენება",
        "revdelete-hide-text": "შეცვლილი ტექსტი",
        "revdelete-hide-image": "ფაილის შინაარსის დამალვა",
-       "revdelete-hide-name": "á\83\93á\83\90á\83\9bá\83\90á\83\9aá\83\94á\83\97 á\83\9bá\83\9dá\83¥á\83\9bá\83\94á\83\93á\83\94á\83\91á\83\90 á\83\93á\83\90 á\83\9bá\83\98á\83¡á\83\98 á\83\9dá\83\91á\83\98á\83\94á\83¥á\83¢ი",
+       "revdelete-hide-name": "á\83\93á\83\90á\83\9bá\83\90á\83\9aá\83\94á\83\97 á\83¡á\83\90á\83\9bá\83\98á\83\96á\83\9cá\83\94 á\83\93á\83\90 á\83\9eá\83\90á\83 á\83\90á\83\9bá\83\94á\83¢á\83 á\83\94á\83\91ი",
        "revdelete-hide-comment": "რედაქტირების კომენტარი",
        "revdelete-hide-user": "რედაქტორის მომხმარებლის სახელი/IP-მისამართი",
        "revdelete-hide-restricted": "დამალეთ მონაცემები ადმინისტრატორთაგან",
        "search-result-category-size": "{{PLURAL:$1|$1 ელემენტი|$1 ელემენტი|$1 ელემენტები}} ({{PLURAL:$2|$2 ქვეკატეგორია|$2 ქვეკატეგორიები|$2 ქვეკატეგორიები}}, {{PLURAL:$3|$3 ფაილი|$3 ფაილი|$3 ფაილი}})",
        "search-redirect": "(გადამისამართება $1)",
        "search-section": "(სექცია $1)",
+       "search-category": "(კატეგორია $1)",
        "search-file-match": "(ემთხვევა ფაილის შინაარსს)",
        "search-suggest": "ხომ არ იგულისხმეთ: $1?",
        "search-interwiki-caption": "დობილი პროექტები",
        "gender-female": "ის (მდედრობითი) არედაქტირებს ვიკი-გვერდებს",
        "prefs-help-gender": "ამ პარამეტრის დაყენება არასავალდებულოა.\nპროგრამული უზრუნველყოფა ამ ინფორმაციას იყენებს მხოლოდ სწორი გრამატიკული სქესით მომართვისათვის.\nეს ინფორმაცია საჯარო იქნება ყველასათვის.",
        "email": "ელ. ფოსტა",
-       "prefs-help-realname": "á\83\9cá\83\90á\83\9bá\83\93á\83\95á\83\98á\83\9aá\83\98 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\98á\83¡ á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83\90 á\83\90á\83£á\83ªá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡, á\83\9bá\83\90á\83\92á\83 á\83\90á\83\9b á\83\97á\83£ á\83\9bá\83\98á\83£á\83\97á\83\98á\83\97á\83\94á\83\91á\83\97 á\83\98á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98 á\83\98á\83¥á\83\9cá\83\94á\83\91á\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\9cá\83\90á\83\9bá\83£á\83¨á\83\94á\83\95á\83 á\83\98á\83¡ á\83\90á\83¦á\83¡á\83\90á\83\9cá\83\98á\83¨á\83\9cá\83\90á\83\95á\83\90á\83\93.",
+       "prefs-help-realname": "á\83\9cá\83\90á\83\9bá\83\93á\83\95á\83\98á\83\9aá\83\98 á\83¡á\83\90á\83®á\83\94á\83\9aá\83\98á\83¡ á\83\9bá\83\98á\83\97á\83\98á\83\97á\83\94á\83\91á\83\90 á\83\9cá\83\94á\83\91á\83\90á\83§á\83\9dá\83¤á\83\9aá\83\9dá\83\91á\83\98á\83\97á\83\98á\83\90.\ná\83\97á\83£ á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\9bá\83\90á\83¡ á\83\9bá\83\98á\83£á\83\97á\83\98á\83\97á\83\94á\83\91á\83\97 á\83\98á\83¡ á\83¨á\83\94á\83¡á\83\90á\83«á\83\9aá\83\9dá\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\9cá\83\90á\83\9bá\83£á\83¨á\83\94á\83\95á\83 á\83\98á\83¡ á\83\90á\83¦á\83¡á\83\90á\83\9cá\83\98á\83¨á\83\9cá\83\90á\83\95á\83\90á\83\93 á\83\98á\83¥á\83\9cá\83\90á\83¡ á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98.",
        "prefs-help-email": "ელ. ფოსტის მისამართი არ არის სავალდებულო, მაგრამ მისი მითითება იძლევა ახალი პაროლის გამოგზავნის საშუალებას თქვენი პაროლის დავიწყების შემთხვევაში.",
        "prefs-help-email-others": "ის აგრეთვე მისცემს საშუალებას სხვა მომხმარებლებს, დაგიკავშირდნენ თქვენს პირად გვერდზე მითითებული ბმულის მეშვეობით. თქვენი ელ. ფოსტის მისამართი არ იქნება გამხელილი, როდესაც სხვა მომხმარებლები დაგიკავშირდებიან.",
        "prefs-help-email-required": "თქვენი ელ-ფოსტის მისამართი აუცილებელია.",
        "recentchanges-label-plusminus": "ცვლილებების ზომა ბაიტებში",
        "recentchanges-legend-heading": "'''ლეგენდა:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (იხ. აგრეთვე [[Special:NewPages|ახალი გვერდების სია]])",
-       "rcnotefrom": "ქვემოთ მოყვანილია ცვლილებები <strong>$2</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
+       "rcnotefrom": "ქვემოთ {{PLURAL:$5|ნაჩვენებია ცვლილება|ნაჩვენებია ცვლილებები}} <strong>$3, $4</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
        "rclistfrom": "ახალი ცვლილებების ჩვენება დაწყებული $3 $2-დან",
        "rcshowhideminor": "მცირე რედაქტირების $1",
        "rcshowhideminor-show": "ჩვენება",
        "uploaderror": "ატვირთვის შეცდომა",
        "upload-recreate-warning": "'''ყურადღება. ფაილი ამ სახელით წაიშალა ან გადატანილი იქნა.''\n\nჟურნალი იხილეთ ქვემოთ:",
        "uploadtext": "ამ ფორმის გამოყენებისას თქვენ შეძლებთ სერვერზე ფაილების ატვირთვას.\n\nადრე ატვირთული ფაილების სანახავად მიმართეთ  [[Special:FileList|ატვირთულ ფაილთა სიას]].ატვირთული ფაილები ასევე ჩაიწერება [[Special:Log/upload|ატვირთვათა ჟურნალში]], ხოლო წაშლილი ფაილები ჩაიწერება [[Special:Log/delete|წაშლათა ჟურნალში]].\n\nფაილის სტატიაში ჩასაწერად გამოიყენეთ:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ფაილის სრული ვერსიის ჩასასმელად;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|описание]]</nowiki></code>''' 200 პიქსელამდე შემცირებული ვერსიის ჩასასმელად აღწერის მითითების შესაძლებლობით;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ბმულის ჩასასმელად, გამოსახულების ჩვენების გარეშე.",
-       "upload-permitted": "á\83\9bá\83\98á\83¦á\83\94á\83\91á\83£á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83¢á\83\98á\83\9eá\83\94á\83\91á\83\98: $1.",
-       "upload-preferred": "á\83¡á\83\90á\83¡á\83£á\83 á\83\95á\83\94á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83¢á\83\98á\83\9eá\83\94á\83\91á\83\98: $1.",
-       "upload-prohibited": "á\83\90á\83\99á\83 á\83«á\83\90á\83\9aá\83£á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83¢á\83\98á\83\9eá\83\94á\83\91á\83\98: $1.",
+       "upload-permitted": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83\9cá\83\94á\83\91á\83\90á\83\93á\83\90á\83 á\83\97á\83£á\83\9aá\83\98 {{PLURAL:$2|á\83¢á\83\98á\83\9eá\83\98\83¢á\83\98á\83\9eá\83\98}}: $1.",
+       "upload-preferred": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83£á\83\9eá\83\98á\83 á\83\90á\83¢á\83\94á\83¡á\83\98 {{PLURAL:$2|á\83¢á\83\98á\83\9eá\83\98\83¢á\83\98á\83\9eá\83\98}}: $1.",
+       "upload-prohibited": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¡ á\83\90á\83\99á\83 á\83«á\83\90á\83\9aá\83£á\83\9aá\83\98 {{PLURAL:$2|á\83¢á\83\98á\83\9eá\83\98\83¢á\83\98á\83\9eá\83\98}}: $1.",
        "uploadlogpage": "გადმოტვირთვის რეგისტრაცია",
        "uploadlogpagetext": "ქვემოთ არის ყველაზე ბოლოს ატვირთული ფაილების სია.",
        "filename": "ფაილის სახელი",
        "wlheader-enotif": "ელ.ფოსტით შეტყობინება ჩართულია.",
        "wlheader-showupdated": "თქვენი ბოლო ვიზიტის შემდეგ შეცვლილი გვერდები, აღნიშნულია '''მუქად'''.",
        "wlnote": "ქვემოთ {{PLURAL:$1|ნაჩვენებია ბოლო ცვლილება|ნაჩვენებია ბოლო '''$1''' ცვლილება}} უკანასკნელი {{PLURAL:$2|საათის|'''$2''' საათის}} მანძილზე, $3, $4 მდგომარეობით.",
-       "wlshowlast": "á\83\90á\83©á\83\95á\83\94á\83\9cá\83\94 á\83\91á\83\9dá\83\9aá\83\9d $1 á\83¡á\83\90á\83\90á\83\97á\83\98á\83¡ $2 á\83\93á\83¦á\83\98á\83¡",
+       "wlshowlast": "á\83\91á\83\9dá\83\9aá\83\9d $1 á\83¡á\83\90á\83\90á\83\97á\83\98á\83¡ $2 á\83\93á\83¦á\83\98á\83¡ á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\90",
        "watchlist-options": "კონტროლის სიის პარამეტრები",
        "watching": "კონტროლებადი...",
        "unwatching": "არაკონტროლირებადი...",
        "unblocked": "[[User:$1|$1]] ბლოკი მოხსნილი აქვს",
        "unblocked-range": "$1 დაბლოკილი აღარ არის",
        "unblocked-id": "ბლოკი $1 მოიხსნა",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] განიბლოკა.",
        "blocklist": "დაბლოკილი მომხმარებლები",
        "ipblocklist": "დაბლოკილი მომხმარებლები",
        "ipblocklist-legend": "დაბლოკილი მომხმარებლის პოვნა",
        "change-blocklink": "ბლოკის შეცვლა",
        "contribslink": "წვლილი",
        "emaillink": "ელ-ფოსტის გაგზავნა",
-       "autoblocker": "á\83\97á\83¥á\83\95á\83\94á\83\9c á\83\90á\83\95á\83¢á\83\9dá\83\9bá\83\90á\83¢á\83£á\83 á\83\90á\83\93 á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 á\83®á\83\90á\83 á\83\97, á\83\95á\83\98á\83\9cá\83\90á\83\98á\83\93á\83\90á\83\9c á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83\90á\83®á\83\9aá\83\90á\83®á\83\90á\83\9c á\83\98á\83¥á\83\9cá\83\90 á\83\92á\83\90á\83\9bá\83\9dá\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98 \"[[User:$1|$1]]\"â\80\93á\83\98á\83¡ á\83\9bá\83\98á\83\94á\83 . $1-á\83\98á\83¡ á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\98á\83\96á\83\94á\83\96á\83\98: \"'''$2'''\"",
+       "autoblocker": "á\83\90á\83\95á\83¢á\83\9dá\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83\90, á\83\95á\83\98á\83\9cá\83\90á\83\98á\83\93á\83\90á\83\9c á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 IP á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98 á\83ªá\83\9dá\83¢á\83\90 á\83®á\83\9cá\83\98á\83¡ á\83¬á\83\98á\83\9c á\83\92á\83\90á\83\9bá\83\9dá\83\98á\83§á\83\94á\83\9cá\83\90 á\83\9bá\83\9dá\83\9bá\83®á\83\9bá\83\90á\83 á\83\94á\83\91á\83\94á\83\9aá\83\9bá\83\90 â\80\9e[[User:$1|$1]]â\80\9c. \n$1-á\83\98á\83¡ á\83\91á\83\9aá\83\9dá\83\99á\83\98á\83 á\83\94á\83\91á\83\98á\83¡ á\83\9bá\83\98á\83\96á\83\94á\83\96á\83\98: \"$2\"",
        "blocklogpage": "დაბლოკილთა აღრიცხვა",
        "blocklog-showlog": "ეს მომხმარებელი ამჟამად დაბლოკილია.\nქვემოთ მოყვანილია ამონაწერი ბოლირებათა ჟურნალი:",
        "blocklog-showsuppresslog": "ეს მომხმარებლი უკვე დამალულია და დაბლოკილია.\nდაბლოკვათა ჟურნალი ქვემოთ მოყვანილია:",
        "thumbnail_gd-library": "ბიბლიოთეკა GD-ს არასწორი კონფიგურაცია: $1 ფუნქცია არ არის აღმოჩენილი",
        "thumbnail_image-missing": "სავარაუდოდ $1 ფაილი არ არსებობს",
        "import": "გვერდების იმპორტი",
-       "importinterwiki": "á\83¢á\83 á\83\90á\83\9cá\83¡á\83\95á\83\98á\83\99á\83\98 იმპორტი",
+       "importinterwiki": "á\83¡á\83®á\83\95á\83\90 á\83\95á\83\98á\83\99á\83\98á\83\93á\83\90á\83\9c იმპორტი",
        "import-interwiki-text": "წარმოადგინეთ ვიკი და იმპორტირებადი გვერდის სახელი.\nცვლილებათა რიცხვები და ავტორთა სახელები შენნარჩუნდება.\nტრანსვიკი იმპორტის ყველა ოპერაცია რეგისტრირდება [[Special:Log/import|სპეციალურ ჟურნალში]].",
+       "import-interwiki-sourcewiki": "წყაროს ვიკი:",
+       "import-interwiki-sourcepage": "წყაროს გვერდი:",
        "import-interwiki-history": "ამ გვერდის ცვლილებათა ისტორიის კოპირება.",
        "import-interwiki-templates": "ყველა თარგის ჩართვა",
        "import-interwiki-submit": "იმპორტირება",
        "import-rootpage-nosubpage": "სახელტა სივრცეში მითითებულ ძირეულ გვერდში „$1“ ქვეგვერდები დაუშვებელია.",
        "importlogpage": "იმპორტის ჟურნალი",
        "importlogpagetext": "ადმინისტრატორთა მიერ გვერდების იმპორტირება  ცვლილებების ჩათვლით სხვა ვიკიდან.",
-       "import-logentry-upload-detail": "$1 ცვლილება",
-       "import-logentry-interwiki-detail": "$1 ცვლილება $2-დან",
+       "import-logentry-upload-detail": "$1 {{PLURAL:$1|ვერსია|ვერსია}} იმპორტირებულია",
+       "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ვერსია|ვერსია}} იმპორტირებულია $2-დან",
        "javascripttest": "JavaScript-ის ტესტირება",
        "javascripttest-pagetext-noframework": "ეს გვერდი დარეგისტრირებულია JavaScript-ის ტესტების გასაშვებად.",
        "javascripttest-pagetext-unknownframework": "„$1-ის“ ტესტირების უცნობი გარემო.",
        "tooltip-pt-mycontris": "თქვენი წვლილის სია",
        "tooltip-pt-login": "სასურველია დარეგისტრირდეთ, თუმცა აუცილებელია არაა.",
        "tooltip-pt-logout": "გასვლა",
+       "tooltip-pt-createaccount": "ჩვენ გთავაზობთ, შექმნათ ანგარიში და შეხვიდეთ სისტემაში; თუმცა ეს არ არის აუცილებელი",
        "tooltip-ca-talk": "შიგთავსის გვერდის განხილვა",
        "tooltip-ca-edit": "თქვენ შეგიძლიათ ამ გვერდის რედაქტირება. გთხოვთ გამოიყენოთ  წინასწარი ხედვის ღილაკი სანამ გვერდს შეინახავთ.",
        "tooltip-ca-addsection": "ახალი სექციის შექმნა",
        "autosumm-replace": "შინაარსი შეიცვალა „$1“-ით",
        "autoredircomment": "გადამისამართება [[$1]]-ზე",
        "autosumm-new": "ახალი გვერდი: $1",
+       "autosumm-newblank": "ცარიელი გვერდი შეიქმნა",
        "size-bytes": "$1 ბ",
        "size-kilobytes": "$1 კბ",
        "size-megabytes": "$1 მბ",
        "duplicate-defaultsort": "'''ყურადღება.'''სორტირების გასაღებს «$2»-ს გააჭრის წინა გასაღებს «$1»-ს.",
        "version": "ვერსია",
        "version-extensions": "დაყენებული გაფართოებები",
-       "version-skins": "á\83\98á\83\94á\83 á\83¡á\83\90á\83®á\83\94",
+       "version-skins": "á\83\93á\83\90á\83§á\83\94á\83\9cá\83\94á\83\91á\83£á\83\9aá\83\98 á\83\97á\83\94á\83\9bá\83\94á\83\91á\83\98",
        "version-specialpages": "სპეციალური გვერდები",
        "version-parserhooks": "სინტაქსური ანალიზატორის ჰუკები",
        "version-variables": "ცვალებადი",
        "tags": "ცვლილებათა მოქმედი მონიშვნები",
        "tag-filter": "[[Special:Tags|მონიშვნათა]] ფილტრი",
        "tag-filter-submit": "გაფილტვრა",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|იარლიყი|იარლიყები}}]]: $2)",
        "tags-title": "მონიშვნები",
        "tags-intro": "ამ გვერდზე წარმოდგენილია მონიშვნათა სია, რომლითაც პროგრამული უზრუნველყოფა მონიშნავს შესწორებებს, ასევე ამ მონიშვნათა მნიშვნელობა.",
        "tags-tag": "ტეგის სახელი",
        "tags-deactivate-title": "ტეგის დეაქტივაცია",
        "tags-deactivate-reason": "მიზეზი:",
        "tags-deactivate-submit": "დეაქტივაცია",
+       "tags-edit-reason": "მიზეზი:",
        "comparepages": "გვერდების შედარება",
        "compare-page1": "1 გვერდი",
        "compare-page2": "2 გვერდი",
        "compare-revision-not-exists": "თქვენ მიერ მითითებული ვერსია არ არსებობს.",
        "dberr-problems": "ბოდიში! საიტზე დროებითი ტექნიკური პრობლემებია",
        "dberr-again": "ეცადეთ რამდენიმე წუთით დაცდა და ამ გვერდის გადატვირთვა",
-       "dberr-info": "ვერ მოხერხდა ინფორმაციის $1 სერვერთან დაკავშირება",
-       "dberr-info-hidden": "(á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\98á\83¡ á\83¡á\83\94á\83 á\83\95á\83\94á\83 á\83\97á\83\90á\83\9c á\83\93á\83\90á\83\99á\83\90á\83\95á\83¨á\83\98á\83 á\83\94á\83\91á\83\90 á\83¨á\83\94á\83£á\83«á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98á\83\90)",
+       "dberr-info": "(მონაცემთა ბაზებთან კავშირი არ არის: $1)",
+       "dberr-info-hidden": "(á\83\9bá\83\9dá\83\9cá\83\90á\83ªá\83\94á\83\9bá\83\97á\83\90 á\83\91á\83\90á\83\96á\83\94á\83\91á\83\97á\83\90á\83\9c á\83\99á\83\90á\83\95á\83¨á\83\98á\83 á\83\98 á\83\90á\83  á\83\90á\83 á\83\98á\83¡)",
        "dberr-usegoogle": "ამ დროს კი  შეგიძლიათ Google-ით ძიება",
        "dberr-outofdate": "გაითვალისწინეთ, რომ თქვენი კონტენტის ინდექსები შეიძლება შეუსაბამო იყოს",
        "dberr-cachederror": "ეს არის მოთხოვნილი გვერდის კეშირებული ვერსია, და შესაძლება მოძველდა.",
        "rightsnone": "(არცერთი)",
        "revdelete-summary": "ცვლილებების აღწერა",
        "feedback-adding": "თქვენი შეფასების შენახვა...",
+       "feedback-back": "უკან",
        "feedback-bugcheck": "კარგია! გთხოვთ, კიდევ ერთხელ შეამოწმეთ, ხომ არ არის აქ რომელიმე უკვე [$1 ნაცნობი შეცდომა].",
        "feedback-bugnew": "მე შევამოწმე. ახალი შეცდომის შეტყობინება",
        "feedback-bugornote": "თუ თქვენ მზად ხართ დეტალურად აღწეროთ ტექნიკური პრობლემა, გთხოვთ, [$1 შეგვატყობინეთ შეცდომის შესახებ].\nწინააღმდეგ შემთხვევაში თქვენ შეგიძლიათ ისარგებლოთ ამ მარტივი ფორმით. თქვენი კომენტარი დაემატება  „[$3 $2]“ გვერდზე თქვენი მომხმარებლის სახელთან და გამოყენებულ ბრაუზერთან ერთად.",
        "feedback-cancel": "გაუქმება",
        "feedback-close": "გაკეთდა",
+       "feedback-error-title": "შეცდომა",
        "feedback-error1": "შეცდომა. API-ს მოულოდნელი რეზულტატი.",
        "feedback-error2": "შეცდომა: რედაქტირება ვერ განხორციელდა",
        "feedback-error3": "შეცდომა. არ არის API-ს პასუხი .",
        "feedback-subject": "თემა:",
        "feedback-submit": "მიღება",
        "feedback-thanks": "გმადლობთ! თქვენი შეფასება განთავსებულია „[$2 $1]“ გვერდზე.",
+       "feedback-thanks-title": "გმადლობთ!",
        "searchsuggest-search": "ძიება",
        "searchsuggest-containing": "შეიცავს...",
        "api-error-badaccess-groups": "თქვენ არ გაქვთ ამ ვიკიში ფაილების ატვირთვის უფლება.",
        "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ჩართულია)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''გამორთულია''')",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 ბაიტი|$1 ბაიტი}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "MIME-ტიპი",
+       "mediastatistics-table-extensions": "შესაძლო გაფართოებები",
+       "mediastatistics-table-count": "ფაილების რაოდენობა",
+       "mediastatistics-header-unknown": "უცნობი",
+       "mediastatistics-header-audio": "აუდიო",
+       "mediastatistics-header-video": "ვიდეოები",
+       "mediastatistics-header-office": "ოფისი",
+       "mediastatistics-header-text": "ტექსტური",
+       "json-error-syntax": "სინტაქსის შეცდომა",
        "headline-anchor-title": "ბმული ამ სექციაზე",
        "special-characters-group-latin": "ლათინური",
        "special-characters-group-latinextended": "ლათინური გაფართოება",
index 4c4a69c..e06f053 100644 (file)
        "yourtext": "تہ تحریر",
        "storedversion": "ذخیرہ شدہ نظرثانی",
        "yourdiff": "تضادات",
-       "templatesused": "ھیہ صفحا استعمال باک {{PLURAL:$1|سانچہ|سانچہ}}:",
+       "templatesused": "ھیہ صفحہا استعمال باک {{PLURAL:$1|سانچہ|سانچا}}:",
        "templatesusedpreview": " ھیہ پیش منظرا مستعمل {{PLURAL:$1|سانچہ|سانچے}}:",
        "template-protected": "(محفوظ شدہ)",
        "template-semiprotected": "(نیم محفوظ)",
        "enhancedrc-history": "تاریخچہ",
        "recentchanges": "تازہ تبدیلی",
        "recentchanges-legend": "حالیہ تبدیلیان اختیارات",
-       "recentchanges-summary": "ھیہ صفحا کھوار ویکیپیڈیا باک تازہ تریں تبدیلیان مشاہدہ کورے",
+       "recentchanges-summary": "ھیہ صفحا ویکیپیڈیا باک تازہ تریں تبدیلیان لوڑے",
        "recentchanges-feed-description": "کھوارا ترجمہ",
        "recentchanges-label-newpage": "ھیہ ترمیم نوغ صفحہ تخلیق آریر",
        "recentchanges-label-minor": "ھیہ ای معمولی ترمیم شیر",
        "pageinfo-toolboxlink": "معلومات صفحہ",
        "previousdiff": " ← پرانو تدوین",
        "nextdiff": "صفحہو نم:",
-       "file-info-size": "$1 × $2 پکسلز, فل سایز: $3, MIME ٹایپ: $4",
-       "file-nohires": "ھموغاری لوٹ ریزولیوشن دستیاب نیکی.",
+       "file-info-size": "$1 × $2 پکسلز, فل سائز: $3, MIME ٹائپ: $4",
+       "file-nohires": "ھموغاری لوٹ ریزولیوشن موجود نیکی.",
        "svg-long-desc": "SVG فایل, nominally $1 × $2 پکسلز, فایل سایز: $3",
        "show-big-image": "اصل فائل",
        "show-big-image-preview": "ھیہ نمائشو حجم:$1",
index 5585e8e..caf8107 100644 (file)
        "querypage-disabled": "Бұл арнайы бет өнімділік себептері үшін өшірілген",
        "booksources": "Кітап қайнарлары",
        "booksources-search-legend": "Кітап қайнарларын іздеу",
+       "booksources-search": "Іздеу",
        "booksources-text": "Төменде жаңа және қолданған кітаптар сататын тораптарының сілтемелері тізімделген және ізделген кітаптар туралы қосымша ақпарат болуы мүмкін:",
        "specialloguserlabel": "Орындаушы:",
        "speciallogtitlelabel": "Нысана (атауы немесе қатысушы):",
index cbd155a..06d4b65 100644 (file)
@@ -98,7 +98,7 @@
        "november": "ನವೆಂಬರ್",
        "december": "ಡಿಸೆಂಬರ್",
        "january-gen": "ಜನವರಿ",
-       "february-gen": "ಫà³\8dರà³\86ಬà³\8dರà³\81ವರಿ",
+       "february-gen": "ಫà³\86ಬà³\8dರವರಿ",
        "march-gen": "ಮಾರ್ಚ್",
        "april-gen": "ಏಪ್ರಿಲ್",
        "may-gen": "ಮೇ",
        "broken-file-category": "ಕಡತ ಕೊಂಡಿಗಳು ಮುರಿದಿರುವ ಪುಟಗಳು",
        "about": "ನಮ್ಮ ಬಗ್ಗೆ",
        "article": "ಲೇಖನ ಪುಟ",
-       "newwindow": "(ಹà³\8aಸ à²\95ಿà²\9fà²\95ಿಯನà³\8dನà³\81 ತೆರೆಯುತ್ತದೆ)",
-       "cancel": "ವà²\9cಾ à²®à²¾à²¡à²¿",
+       "newwindow": "(ಹà³\8aಸ à²\95ಿà²\9fà²\95ಿಯಲà³\8dಲಿ ತೆರೆಯುತ್ತದೆ)",
+       "cancel": "ರದà³\8dದà³\81ಮಾಡà³\81",
        "moredotdotdot": "ಇನ್ನಷ್ಟು...",
        "morenotlisted": "ಈ ಪಟ್ಟಿ ಪೂರ ಇಲ್ಲ.",
        "mypage": "ಪುಟ",
        "searchbutton": "ಹುಡುಕು",
        "go": "ಹೋಗು",
        "searcharticle": "ಹೋಗು",
-       "history": "ಪà³\81à²\9fದ à²\9aರಿತà³\8dರà³\86",
+       "history": "ಪà³\81à²\9fದ à²\87ತಿಹಾಸ",
        "history_short": "ಇತಿಹಾಸ",
        "updatedmarker": "ನನ್ನ ಕೊನೆಯ ವೀಕ್ಷಣೆಯ ನಂತರ ಬದಲಾಗಿರುವವು",
        "printableversion": "ಪ್ರಿಂಟ್ ಆವೃತ್ತಿ",
        "viewhelppage": "ಸಹಾಯ ಪುಟ ತೋರು",
        "categorypage": "ವರ್ಗ ಪುಟ ತೋರು",
        "viewtalkpage": "ಚರ್ಚೆಯನ್ನು ವೀಕ್ಷಿಸಿ",
-       "otherlanguages": "à²\87ತರ à²­à²¾à²·à³\86à²\97ಳà³\81",
+       "otherlanguages": "à²\87ತರ à²­à²¾à²·à³\86à²\97ಳಲà³\8dಲಿ",
        "redirectedfrom": "($1 ಇಂದ ಪುನರ್ನಿರ್ದೇಶಿತ)",
        "redirectpagesub": "ಪುನರ್ನಿರ್ದೇಶನ ಪುಟ",
        "redirectto": "ಪುನರ್ನಿರ್ದೇಶನ ಇದಕ್ಕೆ:",
        "aboutpage": "Project:ನಮ್ಮ ಬಗ್ಗೆ",
        "copyright": "ವಿಶೇಷವಾಗಿ ಹೇಳಲಲ್ಲಿದರೆ ಇದು \"$1\" ಕಾಪಿರೈಟ್ ಅಲ್ಲಿ ಲಭ್ಯ ಉಂಟು",
        "copyrightpage": "{{ns:project}}:ಕೃತಿಸ್ವಾಮ್ಯತೆಗಳು",
-       "currentevents": "ಪ್ರಚಲಿತ",
-       "currentevents-url": "Project:ಪ್ರಚಲಿತ",
+       "currentevents": "ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
+       "currentevents-url": "Project:ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
        "disclaimers": "ಅಬಾಧ್ಯತೆಗಳು",
        "disclaimerpage": "Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಗಳು",
        "edithelp": "ಸಂಪಾದನೆಗೆ ಸಹಾಯ",
        "newmessageslinkplural": "{{PLURAL:$1|ಒಂದು ಹೊಸ ಸಂದೇಶ|999=ಹೊಸ ಸಂದೇಶಗಳು}}",
        "newmessagesdifflinkplural": "ಇತ್ತೀಚಿನ {{PLURAL:$1|ಬದಲಾವಣೆ|999=ಬದಲಾವಣೆಗಳು}}",
        "youhavenewmessagesmulti": "$1 ಅಲ್ಲಿ ನಿಮಗೆ ಹೊಸ ಸಂದೇಶಗಳಿವೆ",
-       "editsection": "ಬದಲಾಯಿಸಿ",
+       "editsection": "ಸà²\82ಪಾದಿಸಿ",
        "editold": "ಬದಲಾಯಿಸಿ",
        "viewsourceold": "ಮೂಲವನ್ನು ನೋಡು",
        "editlink": "ಸಂಪಾದಿಸಿ",
        "viewsourcelink": "ಮೂಲವನ್ನು ವೀಕ್ಷಿಸಿ",
-       "editsectionhint": "$1 ವಿಭಾಗ ಸಂಪಾದಿಸಿ",
+       "editsectionhint": "ವಿಭಾಗ ಸಂಪಾದಿಸಿ: $1",
        "toc": "ಪರಿವಿಡಿ",
        "showtoc": "ತೋರಿಸು",
        "hidetoc": "ಅಡಗಿಸು",
        "red-link-title": "$1 (ಪುಟವು ಇನ್ನೂ ಸೃಷ್ಟಿತವಾಗಿಲ್ಲ)",
        "sort-descending": "ಇಳಿಕೆ ಕ್ರಮದಲ್ಲಿ ಜೋಡಿಸು",
        "sort-ascending": "ಏರಿಕೆ ಕ್ರಮದಲ್ಲಿ ಜೋಡಿಸು",
-       "nstab-main": "ಲà³\87à²\96ನ",
+       "nstab-main": "ಪà³\81à²\9f",
        "nstab-user": "ಸದಸ್ಯರ ಪುಟ",
        "nstab-media": "ಮೀಡಿಯ ಪುಟ",
        "nstab-special": "ವಿಶೇಷ ಪುಟ",
        "createacct-reason": "ಕಾರಣ",
        "createacct-reason-ph": "ನೀವು ಯಾಕೆ ಇನ್ನು ಒಂದು ಖಾತ ಮಾಡುತ ಇದ್ದೀರಿ ?",
        "createacct-captcha": "ಸುರಕ್ಷೆ ನಿಗ್ರಹಿಸು.",
-       "createacct-imgcaptcha-ph": "ಮೇಲೆ ಕಾಣುವಂತ ಶಬ್ದಗಳು ಮತ್ತು ಅಂಕಗಳನ್ನು ಬರಿರಿ.",
+       "createacct-imgcaptcha-ph": "ಮà³\87ಲà³\86 à²\95ಾಣà³\81ವà²\82ತ à²¶à²¬à³\8dದà²\97ಳà³\81 à²®à²¤à³\8dತà³\81 à²\85à²\82à²\95à²\97ಳನà³\8dನà³\81 à²¬à²°à³\86ಯಿರಿ.",
        "createacct-submit": "ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ",
        "createacct-another-submit": "ಇನ್ನು ಒಂದು ಖಾತ ಮಾಡಿ",
        "createacct-benefit-heading": "{{SITENAME}} ನಿಮ್ಮನ್ತವೆ ಜನರಿಂದ ಮಾಡಿದು",
        "watchthis": "ಈ ಪುಟವನ್ನು ವೀಕ್ಷಿಸಿ",
        "savearticle": "ಪುಟವನ್ನು ಉಳಿಸಿ",
        "preview": "ಮುನ್ನೋಟ",
-       "showpreview": "ಮುನ್ನೋಟ",
+       "showpreview": "ಮುನ್ನೋಟ ತೋರಿಸು",
        "showdiff": "ಬದಲಾವಣೆಗಳನ್ನು ತೋರಿಸು",
        "anoneditwarning": "'''ಎಚ್ಚರ:''' ನೀವು ಲಾಗ್ ಇನ್ ಆಗಿಲ್ಲ. ನಿಮ್ಮ ಐಪಿ ವಿಳಾಸವು ಪುಟದ ಸಂಪಾದನೆಗಳ ಇತಿಹಾಸದಲ್ಲಿ ದಾಖಲಾಗುತ್ತದೆ.",
        "anonpreviewwarning": "''ನೀವು ಲಾಗಿನ್ ಆಗಿಲ್ಲ . ಉಳಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ನಿಮ್ಮ IP ವಿಳಾಸವನ್ನು ಈ ಪುಟದ ಸಂಪಾದನೆ ಇತಿಹಾಸದಲ್ಲಿ ನಮೂದಿಸಲಗುವುದು.''",
        "previousrevision": "←ಹಿಂದಿನ ಪರಿಷ್ಕರಣೆ",
        "nextrevision": "ಮುಂದಿನ ಪರಿಷ್ಕರಣೆ",
        "currentrevisionlink": "ಈಗಿನ ಪರಿಷ್ಕರಣೆ",
-       "cur": "ಸದ್ಯದ",
+       "cur": "ಸಧ್ಯದ",
        "next": "ಮುಂದಿನದು",
        "last": "ಕೊನೆಯ",
        "page_first": "ಮೊದಲ",
        "searchprofile-everything": "ಪ್ರತಿಯೊಂದು",
        "searchprofile-advanced": "ಪರಿಣತ",
        "searchprofile-articles-tooltip": "$1 ನಲ್ಲಿ ಹುಡುಕಿ",
-       "searchprofile-images-tooltip": "ಹà³\81ದà³\81à²\95ಿ  à²¹à²²à³\86ಯನà³\81",
-       "searchprofile-everything-tooltip": "ಹà³\81ದà³\81à²\95ಿ à²¯à²² à²¸à³\81ಮನà³\81 (à²\87ಥಿಯದಿ à²®à²¾à²¥à³\81 à²¹à²²à³\86)",
-       "searchprofile-advanced-tooltip": "ಹà³\81ಧà³\81à²\95ಿ à²¨à²® à²\9cಾà²\97 à²¹à³\86ಸರà³\81ಸà³\8dತಲà³\8dಲ",
+       "searchprofile-images-tooltip": "à²\95ಡತà²\97ಳನà³\8dನà³\81 à²¹à³\81ಡà³\81à²\95ಿ",
+       "searchprofile-everything-tooltip": "à²\8eಲà³\8dಲಾ à²®à²¾à²¹à²¿à²¤à²¿à²\97ಳನà³\8dನà³\81 à²¹à³\81ಡà³\81à²\95ಿ (à²\9aರà³\8dà²\9aà³\86ಯನà³\8dನà³\82 à²¸à³\87ರಿಸಿ)",
+       "searchprofile-advanced-tooltip": "ಬಳà²\95à³\86ಯ à²¨à²¾à²®à²µà²°à³\8dà²\97à²\97ಳಲà³\8dಲಿ à²¹à³\81ಡà³\81à²\95ಿ",
        "search-result-size": "$1 ({{PLURAL:$2|೧ ಪದ|$2 ಪದಗಳು}})",
        "search-redirect": "(ಪುನರ್ನಿರ್ದೇಶನ $1)",
        "search-section": "(ವಿಭಾಗ $1)",
        "recentchanges-label-minor": "ಇದು ಚುಟುಕಾದ ಬದಲಾವಣೆ",
        "recentchanges-label-bot": "ಈ ಸಂಪಾದನೆಯನ್ನು ಒಂದು ಬಾಟ್ ಮಾಡಿದೆ",
        "recentchanges-label-unpatrolled": "ಈ ಸಂಪಾದನೆಯನ್ನು ಇನ್ನೂ ಪರೀಕ್ಷೆಗೆ ಒಳಪಡಿಸಿಲ್ಲ",
+       "recentchanges-label-plusminus": "ಪುಟದ ಗಾತ್ರವು ಇಷ್ಟು ಸಂಖ್ಯೆಯ ಬೈಟ್‍ಗಳಿಂದ ಬದಲಾಯಿಸಲ್ಪಟ್ಟಿದೆ",
+       "recentchanges-legend-heading": "'''ಪರಿವಿಡಿ:'''",
        "rcnotefrom": "'''$2''' ಇಂದ ಆಗಿರುವ ಬದಲಾವಣೆಗಳು ಕೆಳಗಿವೆ (ಕೊನೆಯ '''$1'''ರವರೆಗೆ ತೋರಿಸಲಾಗಿದೆ).",
        "rclistfrom": "$3 $2 ಇಂದ ಪ್ರಾರಂಭಿಸಿ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಿ",
        "rcshowhideminor": "ಚಿಕ್ಕಪುಟ್ಟ ಬದಲಾವಣೆಗಳನ್ನು $1",
        "rcshowhideminor-show": "ತೊರಿಸಿ",
        "rcshowhideminor-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhidebots": "ಬಾಟ್‍ಗಳನ್ನು $1",
-       "rcshowhidebots-show": "ತà³\8aರಿಸಿ",
+       "rcshowhidebots-show": "ತà³\8bರಿಸà³\81",
        "rcshowhidebots-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhideliu": "$1 ನೊಂದಾಯಿತ ಬಳಕೆದಾರರು",
        "rcshowhideliu-show": "ತೊರಿಸಿ",
        "number_of_watching_users_pageview": "[$1 ವೀಕ್ಷಿಸುತ್ತಿರುವ {{PLURAL:$1|ಸದಸ್ಯ|ಸದಸ್ಯರು}}]",
        "rc_categories": "ವರ್ಗಗಳಿಗೆ ಮಾತ್ರ ಸೀಮಿತವಾಗಿಸು (\"|\" ಇಂದ ಬೇರ್ಪಡಿಸು)",
        "rc_categories_any": "ಯಾವುದೇ",
-       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ಬದಲಾವಣೆಯ ನಂತರ change",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ಬದಲಾವಣೆಯ ನಂತರ",
        "newsectionsummary": "/* $1 */ ಹೊಸ ವಿಭಾಗ",
        "rc-enhanced-expand": "ವಿವರಗಳನ್ನು ತೋರಿಸು (JavaScript ಬೇಕಾಗುತ್ತದೆ)",
        "rc-enhanced-hide": "ವಿವರಗಳನ್ನು ಅಡಗಿಸು",
        "thumbnail_error": "ಮುನ್ನೋಟ ಚಿತ್ರವನ್ನು ಸೃಷ್ಟಿಸುವಲ್ಲಿ ದೋಷ: $1",
        "import": "ಪುಟಗಳನ್ನು ಅಮದು ಮಾಡಿ",
        "import-interwiki-submit": "ಆಮದು",
-       "import-interwiki-namespace": "ಪುಟಗಳನ್ನು ಈ ಪುಟಪ್ರಬೇಧಕ್ಕೆ ವರ್ಗಾಯಿಸು:",
        "import-comment": "ಟಿಪ್ಪಣಿ :",
        "importstart": "ಪುಟಗಳು ಆಮದಾಗುತ್ತಿದೆ...",
        "import-revision-count": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}",
        "tooltip-pt-preferences": "ನನ್ನ ಆಯ್ಕೆಗಳು",
        "tooltip-pt-watchlist": "ನೀವು ಬದಲಾವಣೆಗಳ ಮೇಲೆ ನಿಗಾ ವಹಿಸುತ್ತಿರುವ ಪುಟಗಳ ಪಟ್ಟಿ",
        "tooltip-pt-mycontris": "ನಿಮ್ಮ ಕಾಣಿಕೆಗಳ ಪಟ್ಟಿ",
-       "tooltip-pt-login": "ನà³\80ವà³\81 à²²à²¾à²\97à³\8d à²\87ನà³\8d à²\86à²\97ಬà³\87à²\95à³\86à²\82ದà³\81 à²\95à³\8bರà³\81ತà³\8dತà³\87ವà³\86, à²\86ದರà³\86 à²\85ದà³\81 à²\96ಡà³\8dಡಾಯ à²\8fನà³\81 ಅಲ್ಲ.",
+       "tooltip-pt-login": "ನà³\80ವà³\81 à²²à²¾à²\97à³\8d à²\87ನà³\8d à²\86à²\97ಬà³\87à²\95à³\86à²\82ದà³\81 à²\95à³\8bರà³\81ತà³\8dತà³\87ವà³\86, à²\86ದರà³\86 à²\85ದà³\81 à²\96ಡà³\8dಡಾಯ à²\8eನà³\82 ಅಲ್ಲ.",
        "tooltip-pt-logout": "ಲಾಗ್ ಔಟ್",
-       "tooltip-pt-createaccount": "ನà³\80ವà³\81 à²¹à³\8aಸ à²\96ಾತà³\86ಯನà³\8dನà³\81 à²¤à³\86ರà³\86ದà³\81 à²²à²¾à²\97ಿನà³\8d à²\86à²\97à³\81ವà³\81ದನà³\8dನà³\81 à²¹à³\81ರಿದà³\81à²\82ಬಿಸà³\81ತà³\8dತà³\87ವà³\86; à²\86ದಾà²\97à³\8dಯà³\82, à²\87ದà³\81 à²\85ವಶà³\8dಯವà³\87ನಿಲà³\8dಲ",
+       "tooltip-pt-createaccount": "ನೀವು ಹೊಸ ಖಾತೆಯನ್ನು ತೆರೆದು ಲಾಗಿನ್ ಆಗುವುದನ್ನು ಹುರಿದುಂಬಿಸುತ್ತೇವೆ; ಆದಾಗ್ಯೂ, ಇದು ಅವಶ್ಯವೇನಲ್ಲ",
        "tooltip-ca-talk": "ಮಾಹಿತಿ ಪುಟದ ಬಗ್ಗೆ ಚರ್ಚೆ",
        "tooltip-ca-edit": "ಈ ಪುಟವನ್ನು ನೀವು ಸಂಪಾದಿಸಬಹುದು. ಉಳಿಸುವ ಮುನ್ನ ಮುನ್ನೋಟವನ್ನು ಉಪಯೋಗಿಸಿ.",
        "tooltip-ca-addsection": "ಹೊಸ ವಿಭಾಗವನ್ನು ಪ್ರಾರಂಭಿಸಿ",
        "tooltip-upload": "ಅಪ್ಲೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸು",
        "tooltip-rollback": "ಕೊನೆ ಸಂಪಾದಕರ ಎಲ್ಲಾ ಸಂಪಾದನೆಗಳನ್ನು ಅಳಿಸುಹಾಕುತ್ತದೆ",
        "tooltip-undo": "\"ವಜಾ ಮಾಡಿ\" ಈ ಸಂಪಾದನೆಯನ್ನು ನಿಷ್ಕ್ರಿಯ ಗೊಳಿಸಿ ಸಂಪಾದನಾ ಪುಟವನ್ನು ಮುನ್ನೋಟದೊಂದಿಗೆ ತೆರೆಯುತ್ತದೆ.\nಇಲ್ಲಿ ಸಾರಾಂಶದಲ್ಲಿ ಕಾರಣವನ್ನು ಸೇರಿಸುವ ಅನುಮತಿ ಇದೆ.",
-       "tooltip-summary": "ಸನà³\8dನ à²\92ಪà³\8dಪಿà²\97à³\86 à²\87ಲà³\8dಲಿ à²¹à²\95ಿ",
+       "tooltip-summary": "à²\9aಿà²\95à³\8dà²\95 à²¸à²¾à²°à²¾à²\82ಶ à²\92à²\82ದನà³\8dನà³\81 à²¸à³\87ರಿಸಿ",
        "anonymous": "{{SITENAME}} ತಾಣದ ಅನಾಮಧೇಯ {{PLURAL:$1|ಬಳಕೆದಾರ|ಬಳಕೆದಾರರು}}",
        "siteuser": "{{SITENAME}} ಬಳಕೆದಾರ $1",
        "othercontribs": "$1 ರ ಕೆಲಸವನ್ನು ಆಧರಿಸಿ.",
index 2c3b40c..50bd507 100644 (file)
        "showhideselectedversions": "Сайланнган версияланы кёргюз/джашыр",
        "editundo": "ызына алыу",
        "diff-empty": "(башхалыкъ джокъ)",
+       "diff-multi-sameuser": "(бу къошулуучу этген {{PLURAL:$1|бир аралы версия|$1 аралы версия}} кёргюзюлмегенди)",
        "diff-multi-manyusers": "($2 {{PLURAL:$2|къошулуучудан}} кёб этген {{PLURAL:$1|бир аралыкъ тюрлениу|$1 аралыкъ тюрлениу}} кёргюзюлмегенди)",
        "difference-missing-revision": "Бу тенглешдириу ($1) ючюн {{PLURAL:$2|бир версия|$2 версия}} {{PLURAL:$2|табылмады}}.\n\n\nБу, эскирген джибериу бла кетерилген бетни версияларын тенглешдириуге кёчген сагъатда кёбюсюне болады.\nТолуракъ информация [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} кетериулени журналында] болургъа боллукъду.",
        "searchresults": "Излеуню эсеби",
        "uploadnewversion-linktext": "Бу файлны джангы версиясын джюклеу",
        "shared-repo-from": "$1-дан",
        "shared-repo": "Ортакъ сакълау джер",
+       "upload-disallowed-here": "Бу файлны юсюню джазаргъа болмайды.",
        "filerevert": "$1 файлны эски халына къайтыу",
        "filerevert-legend": "Файлны эски халына къайтар",
        "filerevert-intro": "'''[[Media:$1|$1]]''' медиясыны [$4 $3, $2 замандагъы версиясы]ны ызына къайтарыгъыз.",
        "undelete-show-file-submit": "Хоу",
        "namespace": "Атла алам:",
        "invert": "Сайланнганны айландыр",
+       "tooltip-invert": "Батледе тюрлениулени джашырыр ючюн: сайланнган ат аламда (неда, белгиленнген эсе, байланнган ат аламлада) бу энни салыгъыз",
        "namespace_association": "Байламлы ат алам",
+       "tooltip-namespace_association": "Сайланнган ат алам бла байламлы сюзюу атланы аламын да къошар ючюн бу энни салыгъын",
        "blanknamespace": "(Баш)",
        "contributions": "{{GENDER:$1|Къошулуучуну}} къошуму",
        "contributions-title": "$1 къошулуучуну къошагъы",
        "import-interwiki-history": "Бу бетни бютеу тюрлениу тарихин копия эт",
        "import-interwiki-templates": "Бютеу шаблонланы ичине сал",
        "import-interwiki-submit": "Импорт",
-       "import-interwiki-namespace": "Нюзюр ат алам:",
        "import-upload-filename": "Файлны аты:",
        "import-comment": "Эсгериу:",
        "importtext": "Бетни къайнакъ викиден [[Special:Export|адырны хайырландырыб]] эскпорт этигиз. Файлны дискде сакълагъыз эм былайгъа джюклегиз.",
index a98119a..43e3837 100644 (file)
        "import-interwiki-history": "All de Versione vun dä Sigg heh kopeere",
        "import-interwiki-templates": "All Schablone metnämme",
        "import-interwiki-submit": "Huhlade!",
+       "import-mapping-default": "Aan de schtanndattmähßeje Pläz emmpottehre:",
+       "import-mapping-namespace": "En heh dat Appachtemang emmpotehre:",
+       "import-mapping-subpage": "Als Ongersigge vun heh dä emmpottehre:",
        "import-upload-filename": "Dä Name fun dä Dattei:",
        "import-comment": "Jrond:",
        "importtext": "Dun de Daate met däm „[[Special:Export|Export]]“ vun doh vun enem Wiki Exporteere un - etwa bei Dir om Rechner - avspeichere, un dann heh wider huhlade.",
index 3551085..6048014 100644 (file)
@@ -14,7 +14,8 @@
                        "The Evil IP address",
                        "Welathêja",
                        "아라",
-                       "Bikarhêner"
+                       "Bikarhêner",
+                       "Uygar"
                ]
        },
        "tog-underline": "Xetekê di bin girêdanê de çêke:",
        "tog-extendwatchlist": "Lîsteya şopandinê berfireh bike ji bo dîtina hemû guherandinan, ne tenê yên nû",
        "tog-usenewrc": "Weşandina zêdetir (JavaScript pêwîst e)",
        "tog-numberheadings": "Sernavan otomatîk bihejmêre",
-       "tog-showtoolbar": "Tiştên guherandinê bibîne (JavaScript bibîne)",
+       "tog-showtoolbar": "Çoyê sererastkirinê nîşan bide",
        "tog-editondblclick": "Rûpelan bi du klîkan biguherîne (Java Script gireke)",
-       "tog-editsectiononrightclick": "Beşekê bi rast-klîkekê biguherîne (JavaScript gireke)",
+       "tog-editsectiononrightclick": "Beşekê bi rast-klîkekê biguherîne",
        "tog-watchcreations": "Rûpelên min çêkirin, têxe nav lîsteya min a şopandinê",
        "tog-watchdefault": "Rûpelên min guhertin, têxe nav lîsteya min a şopandinê",
        "tog-watchmoves": "Rûpelên min navê wan guhertin, têxe nav lîsteya min a şopandinê",
-       "tog-watchdeletion": "Rûpelên min jêbirin, têxe nav lîsteya min a şopandinê",
+       "tog-watchdeletion": "Rûpel û dosyeyên min jêbirin, têxe nav lîsteya min a şopandinê",
        "tog-minordefault": "Her guhertinekê weke guhertineke biçûk nîşan bide",
        "tog-previewontop": "Pêşdîtina gotarê li jorî cihê guherandinê nîşan bide",
        "tog-previewonfirst": "Li cem guherandinê hertim yekemîn pêşdîtinê nîşan bide",
-       "tog-enotifwatchlistpages": "Heke rûpeleke ez dişopînim hate guhertin ji min re E-nameyekê bişîne",
+       "tog-enotifwatchlistpages": "Heke rûpel an dosyeyek ez dişopînim were guhertin ji min re e-nameyekê bişîne",
        "tog-enotifusertalkpages": "Dema rûpela min a Gotûbêjê hate guhertin e-nameyekê ji min re bişîne",
        "tog-enotifminoredits": "Ji bo guhertinên biçûk jî E-nameyekê ji min re bişîne",
        "tog-enotifrevealaddr": "Navnîşana e-nameya min di agahdariyên e-nameyan de nîşan bide",
        "tog-shownumberswatching": "Nîşan bide, çiqas bikarhêner dişopînin",
        "tog-oldsig": "Pêşdîtina îmzeya heye:",
        "tog-fancysig": "Di îmzeyê de girêdana otomatîk a bikarhêner betal bike",
-       "tog-uselivepreview": "Pêşdîtina \"zindî\" bi kar bîne (JavaScript pêwîst e) (ceribandinî)",
+       "tog-uselivepreview": "Pêşdîtina \"zindî\" bi kar bîne",
        "tog-forceeditsummary": "Hinga kurteyeke vala hate tomarkirin min agahdar bike",
        "tog-watchlisthideown": "Guherandinên min ji lîsteya şopandinê veşêre",
        "tog-watchlisthidebots": "Guherandinên bot'an ji lîsteya şopandinê veşêre",
        "jumpto": "Here cem:",
        "jumptonavigation": "navîgasyon",
        "jumptosearch": "lêgerîn",
-       "view-pool-error": "Bibore, server niha zêde barkirî ne. Gelek bikarhêner niha hewl didin ku vê rûpelê bibînin. Ji kerema xwe kêlîkekê bisekine, berî ku tu dîsa hewl bidî rûpelê bibînî.",
+       "view-pool-error": "Bibore, server niha zêde barkirî ne. Gelek bikarhêner niha hewl didin ku vê rûpelê bibînin. Ji kerema xwe kêlîkekê bisekine, berî ku tu dîsa hewl bidî rûpelê bibînî.\n\n$1",
        "pool-errorunknown": "Çewtiyeke nenas",
+       "poolcounter-usage-error": "Çewtîyê bikaranînê: $1",
        "aboutsite": "Der barê {{SITENAME}} de",
        "aboutpage": "Project:Der barê",
        "copyright": "Naverok di $1 de derbasdar e.",
        "createacct-emailoptional": "E-name",
        "createacct-email-ph": "E-nameya xwe binivîse",
        "createacct-another-email-ph": "E-nameya xwe têkeve",
-       "createaccountmail": "Use a temporary random password and send it to the email address specified below",
+       "createaccountmail": "Şîfreyek ji bo ji bo demeke kin bikarbînin û ji navnîşana hatiye diyarkirin re e-nameyek bişînin.",
        "createacct-realname": "Navê te ya rast (Ko tu bixwazi bikeve, pêdivî nîne)",
        "createaccountreason": "Sedem:",
        "createacct-reason": "Sedem",
+       "createacct-reason-ph": "Çima hesabek din çedikîy",
+       "createacct-captcha": "Kontrola asayîşê",
        "createacct-imgcaptcha-ph": "Nivîsa ku tu li jor dibînî binivîse",
        "createacct-submit": "Hesabê xwe biafirîne",
+       "createacct-another-submit": "Hesabek din çeke",
        "createacct-benefit-body2": "{{PLURAL:$1|rûpel}}",
        "badretype": "Her du şîfreyên ku te nivîsîn li hevdu nayên.",
        "userexists": "Ev navî bikarhênerî berê tê bikaranîn. Xêra xwe navekî din dake.",
        "throttled-mailpassword": "Berî {{PLURAL:$1|saetekê|$1 saetan}} şîfreyeke nû hate xwestin. Ji bo şaşbûn bi vê fonksiyonê çênebin, serê her {{PLURAL:$1|saetekê|$1 saetan}} tenê şîfreyeke nû dikare were xwestin.",
        "mailerror": "Şaşbûnek li cem şandina e-nameyekê: $1",
        "acct_creation_throttle_hit": "Bibexşe! Te hesabê bikarhêneriyê $1 vekiriye. Tu êdî nikarî hesabên din vekî.",
-       "emailauthenticated": "Adresa e-nameya te hate naskirin: $1.",
-       "emailnotauthenticated": "Adresa e-nameyan yê te hên nehatîye naskirin. Fonksyonên e-nameyan piştî naskirina te dikarin ji te werin kirin.",
+       "emailauthenticated": "Adresa e-nameya te ji $2 $3ê hate rastandin.",
+       "emailnotauthenticated": "Adresa e-nameya te hêj nehatîye naskirin. Fonksyonên e-nameyan piştî naskirina te dikarin ji te werin kirin.",
        "noemailprefs": "'''Te hên adresa e-nameyan nenivîsandîye''', fonksyonên e-nameyan hên ji te ra ne tên qebûlkirin.",
        "emailconfirmlink": "E-Mail adresê xwe nasbike",
        "invalidemailaddress": "Adresa e-nameyan yê te ne tê qebûlkirin, ji ber ku formata xwe qedexe ye (belkî nîşanên qedexe). Xêra xwe adreseka serrast binivisîne ya vê derê vala bêle.",
+       "emaildisabled": "Ev sîte e-nameya nikara bişîne.",
        "accountcreated": "Hesab hate çêkirin",
        "accountcreatedtext": "Hesabê bikarhêneran ji $1 ra hate çêkirin.",
        "createaccount-title": "Çêkirina hesabekî ji {{SITENAME}}",
        "pt-userlogout": "Derkeve",
        "user-mail-no-addy": "Hewl da e-nameyekê bê navnîşana e-nameyê bişîne",
        "changepassword": "Şîfreyê biguherîne",
-       "resetpass_announce": "Te xwe bi şîfreyekê tomar kiriye ku bi riya e-nameyekê ji te re hatiye şandin.\nJi bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:",
+       "resetpass_announce": "Ji bo xelaskirina tomarkirinê, divê tu şîfreyeke nû binivîsî.",
        "resetpass_text": "<!-- Nivîsê li vir binivisîne -->",
        "resetpass_header": "Şîfreya hesabê xwe biguherîne",
        "oldpassword": "Şîfreya kevn",
        "blockednoreason": "sedem nehatiye gotin",
        "whitelistedittext": "Ji bo guherandina rûpelan, $1 pêwîst e.",
        "confirmedittext": "Tu gireke adrêsa e-nameya xwe nasbikê berî tu rûpelan diguherînê. Xêra xwe adrêsa e-nameya ya xwe di [[Special:Preferences|tercihên xwe]] da binivisîne û nasbike.",
-       "nosuchsectiontitle": "Beşekî wisa tune ye",
+       "nosuchsectiontitle": "Beşek wisa tune ye",
        "nosuchsectiontext": "Te dixast beşekê biguherînê yê tune ye.",
        "loginreqtitle": "Têketin pêwîst e",
        "loginreqlink": "têkeve",
        "updated": "(Hate rojanekirin)",
        "note": "'''Nîşe:'''",
        "previewnote": "'''Ji bîr neke ku ev tenê pêşdîtinek e.'''\nGuhertinên te hê nehatine tomarkirin!",
-       "continue-editing": "Guhertinê bidomîne",
+       "continue-editing": "Here qada sazandinê",
        "editing": "Biguherîne: \"$1\"",
        "creating": "$1 tê çêkirin",
        "editingsection": "Tê guherandin: $1 (beş)",
        "semiprotectedpagewarning": "'''Hişyarî:''' Ev rûpel tê parastin, lewma tenê bikarhênerên tomarkirî dikarin vê biguherînin.\nGuhertina herî dawî bi referansa li jêr hatiye piştrastkirin:",
        "templatesused": "{{PLURAL:$1|Şablona|Şablonên}} ku li ser vê rûpelê {{PLURAL:$1|tê|tên}} bikaranîn:",
        "templatesusedpreview": "{{PLURAL:$1|Şablona|Şablonên}} di vê pêşdîtinê de {{PLURAL:$1|tê|tên}} bikaranîn:",
-       "templatesusedsection": "Şablonên ku di vê parçeyê de tên bikaranîn:",
+       "templatesusedsection": "{{PLURAL:$1|Şablona ku di vê beşê de tê bikaranîn|Şablonên ku di vê beşê de tên bikaranîn}}:",
        "template-protected": "(tê parastin)",
        "template-semiprotected": "(nîv-parastî)",
        "hiddencategories": "Ev rûpel endamê {{PLURAL:$1|1 kategoriya veşartî|$1 kategoriyên veşartî}} ye:",
        "sectioneditnotsupported-title": "Guhertina beşê nayê piştgirîkirin",
        "sectioneditnotsupported-text": "Guhertina beşê di vê rûpelê de nayê piştgirîkirin.",
-       "permissionserrors": "Çewtiyên destûrê",
+       "permissionserrors": "Çewtiyê destûrê",
        "permissionserrorstext": "Tu nikanê vê tiştî bikê, ji bo {{PLURAL:$1|vê sedemê|van sedeman}}:",
        "permissionserrorstext-withaction": "Mafên te bo $2 tune ye ji bo {{PLURAL:$1|vê sedemê|van sedeman}}:",
        "recreate-moveddeleted-warn": "'''Zanibe: Tu kê rûpelekê çêkê yê niha hate jêbirin!'''\n\nZanibe ku nuhçêkirinê vê rûpelê hêja ye ya na.\nÎnformasyon li ser jêbirinê vê rûpelê li vir e:",
        "log-fulllog": "Tevahiya wê bibîne",
        "edit-conflict": "Têkçûna guherandinan.",
        "edit-no-change": "Guherandina te nehate hesibandin, ji ber ku guherandinên nivîsê tune bûn.",
+       "postedit-confirmation-created": "Ev rûpel hate çêkirin.",
+       "postedit-confirmation-restored": "Ev rûpel hate restorekirin.",
        "postedit-confirmation-saved": "Guhertina te hate tomarkirin.",
        "edit-already-exists": "Nikarî rûpeleka nuh çêke.\nEw berê heye.",
        "content-model-wikitext": "wîkînivîs",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Objeya vala",
+       "content-json-empty-array": "Rêza vala",
        "undo-success": "Ev guherandin dikare were şûndekirin. Ji kerema xwe ferqa piştî tomarkirinê bibîne, bê ka tu dixwazî vê guhertoyê tomar bikî an na. Ger te şaşîtiyek kir, ji kerema xwe derkeve.",
        "undo-failure": "Ev guhertin ji ber guherandinên piştî wê re nikare were şûndekirin.",
        "undo-summary": "Guhertoya $1 ya [[Special:Contributions/$2|$2]] ([[User talk:$2|gotûbêj]]) şûnde kir",
        "revisiondelete": "Guhertoyan jê bibe/nebe",
        "revdelete-show-file-submit": "Erê",
        "revdelete-legend": "Guherandina qebûlkirina dîtinê",
-       "revdelete-hide-text": "Nivîsa guhertoyê veşêre",
+       "revdelete-hide-text": "Nivîsa guhertoyê",
        "revdelete-hide-image": "Naveroka pelê veşêre",
-       "revdelete-hide-name": "Çalakî û hedefê veşêre",
-       "revdelete-hide-comment": "Nivîsandinê kurte yê guherandinê veşêre",
-       "revdelete-hide-user": "Navê bikarhêner/IP'yê veşêre",
+       "revdelete-hide-name": "Çalakî û parametreya veşêre",
+       "revdelete-hide-comment": "Kurteya guherandinê",
+       "revdelete-hide-user": "Navê edîtorê/Navnîşanê IP'ye",
        "revdelete-hide-restricted": "Ev qebûlkirinan ji koordînatoran ra ye jî û ev rûpela tê girtin",
        "revdelete-radio-same": "(neguherîne)",
-       "revdelete-radio-set": "Erê",
-       "revdelete-radio-unset": "Na",
+       "revdelete-radio-set": "Hatîye veşartin",
+       "revdelete-radio-unset": "Xuya",
        "revdelete-suppress": "Sedema jêbirinê ji rêveberan re jî veşêre",
        "revdelete-log": "Sedem",
        "revdel-restore": "xuyakirinê biguherîne",
        "search-result-size": "$1 ({{PLURAL:$2|peyvek|$2 peyv}})",
        "search-redirect": "(beralîkirin $1)",
        "search-section": "(beş $1)",
+       "search-category": "(kategorî $1)",
        "search-suggest": "Gelo mebesta te ev bû: $1",
        "search-interwiki-caption": "Projeyên hevçeng",
        "search-interwiki-default": "$1 encam:",
        "search-external": "Lêgerrîna derveyî",
        "searchdisabled": "<p>Tu dikarî li {{SITENAME}} bi Google an Yahoo! bigere. Têbînî: Dibe ku encamen lêgerîne ne yên herî nû ne.\n</p>",
        "preferences": "Tercîhên min",
-       "mypreferences": "Tercihên min",
+       "mypreferences": "Hevyazên min",
        "prefs-edits": "Hejmarê guherandinan:",
        "prefs-skin": "Pêste",
        "skin-preview": "Pêşdîtin",
        "prefs-personal": "Profîla bikarhêner",
        "prefs-rc": "Guherandinên dawî",
        "prefs-watchlist": "Lîsteya şopandinê",
+       "prefs-editwatchlist": "Lîsteya şopandinê biguherîne",
        "prefs-watchlist-days-max": "Maximum $1 {{PLURAL:$1|day|days}}",
        "prefs-watchlist-edits-max": "Hejmara mezintirîn: 1000",
        "prefs-misc": "Eyarên cuda",
        "prefs-email": "Vebijarkên E-nameyê",
        "prefs-rendering": "Rû",
        "saveprefs": "Tercîhan tomar bike",
-       "restoreprefs": "Hemû eyarên berê ji nû ve ava bike",
+       "restoreprefs": "Hemû eyarên berê ji nû ve ava bike (di hemû beşa da)",
        "prefs-editing": "Guherandin",
        "rows": "Rêz",
        "columns": "Stûn:",
        "timezoneregion-indian": "Okyanûsa Hindî",
        "timezoneregion-pacific": "Okyanûsa Mezin",
        "allowemail": "Ji bikarhênerên dî e-nameyan qebûl bike",
-       "prefs-searchoptions": "Tercihên lêgerînê",
+       "prefs-searchoptions": "Lê bigere",
        "prefs-namespaces": "Valahiyên nav",
        "default": "asayî",
        "prefs-files": "Dosya",
        "prefs-emailconfirm-label": "Piştrastkirina E-nameyê:",
        "youremail": "E-nameya te:",
        "username": "{{GENDER:$1|Navê bikarhêner}}:",
-       "prefs-memberingroups": "Endamê/a {{PLURAL:$1|komê|koman}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Endam}ê/a {{PLURAL:$1|komê|koman}}:",
        "prefs-registration": "Dema xweqeydkirinê:",
        "yourrealname": "Navê te yê rast:",
        "yourlanguage": "Ziman",
        "badsig": "Îmzeya ne derbasdar! Li HTML binêre ka sedema şaşbûnê çiye.",
        "badsiglength": "Navê te zêde dirêj e; pêwîst e di bin {{PLURAL:$1|nîşanekê|nîşanan}} de be.",
        "yourgender": "Zayend:",
-       "gender-unknown": "Veşartî",
-       "gender-male": "Nêr",
+       "gender-unknown": "Ez negotin çêtir dibinim",
+       "gender-male": "Ew rûpelên wîkiyê diguherîne",
        "gender-female": "Mê",
        "email": "E-name",
        "prefs-help-realname": "Navê rastî ne pêwîst e. Heke tu navê xwe binivisî, ewê ji bo karê te were bikaranîn.",
        "prefs-signature": "Îmze",
        "prefs-dateformat": "Formata dîrokê",
        "prefs-timeoffset": "Cudahiya demê",
-       "prefs-advancedediting": "Vebijarkên berfireh",
+       "prefs-advancedediting": "Vebijarkên gelemperî",
        "prefs-editor": "Edîtor",
        "prefs-preview": "Pêşdîtin",
        "prefs-advancedrc": "Vebijarkên berfireh",
        "group-sysop": "Rêveber",
        "group-bureaucrat": "Burokrat",
        "group-all": "(hemû)",
-       "group-user-member": "Bikarhêner",
+       "group-user-member": "{{GENDER:$1|bikarhêner}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|rêveber}}",
        "group-bureaucrat-member": "{{GENDER:$1|burokrat}}",
        "action-userrights": "hemû mafên bikarhêneran biguherîne",
        "action-userrights-interwiki": "mafê bikarhênerên li ser wîkiyên din biguherîne",
        "action-sendemail": "e-nameyan bişîne",
+       "action-editmywatchlist": "lîsteya şopandinê biguherîne",
+       "action-viewmywatchlist": "lîsteya xwe ya şopandinê nîşan bide",
+       "action-viewmyprivateinfo": "agahîyên xwe ye taybet nîşan bide",
+       "action-editmyprivateinfo": "agahîyên xwe ên taybet biguherîne",
        "nchanges": "$1 {{PLURAL:$1|guherandinek|guherandin}}",
        "enhancedrc-history": "dîrok",
        "recentchanges": "Guherandinên dawî",
        "rcshowhidebots": "Bot'an $1",
        "rcshowhidebots-show": "nîşan bide",
        "rcshowhidebots-hide": "veşêre",
-       "rcshowhideliu": "Bikarhênerên tomarkirî $1",
+       "rcshowhideliu": "$1 bikarhênerên tomarkirî",
        "rcshowhideliu-show": "nîşan bide",
        "rcshowhideliu-hide": "veşêre",
        "rcshowhideanons": "Bikarhênerên netomarkirî (IP) $1",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|bikarhênerek|$1 bikarhêner}} vê rûpelê {{PLURAL:$1|dişopîne|dişopînin}}.]",
        "rc_categories_any": "Hîç",
        "newsectionsummary": "/* $1 */ beşeke nû",
-       "rc-enhanced-expand": "Hûragahiyan nîşan bide (JavaScript pêdivî ye)",
+       "rc-enhanced-expand": "Hûragahiyan nîşan bide",
        "rc-enhanced-hide": "Kitûmatan veşêre",
        "recentchangeslinked": "Guherandinên têkilîdar",
        "recentchangeslinked-feed": "Guherandinên peywend",
        "uploadbtn": "Wêneyekî bar bike",
        "reuploaddesc": "Barkirinê biskîne û dîsa here rûpela barkirinê.",
        "uploadnologin": "Xwe tomar nekir",
-       "uploadnologintext": "Ji bo barkirina wêneyan divê ku tu [[Special:UserLogin|têkevî]].",
+       "uploadnologintext": "Ji kerema xwe re ji bo barkirina dosyeyan $1 dake.",
        "uploaderror": "Çewtiya barkirinê",
        "upload-recreate-warning": "'''Agahdarî: Peleke bi vî navî hatiye jêbirin an jî raguhestin.'''",
        "uploadtext": "Berê tu wêneyên nû bar bikî, ji bo dîtin an vedîtina wêneyên ku ji xwe hene binêre: [[Special:FileList|lîsteya wêneyên barkirî]]. Herwisa wêneyên ku hatine barkirin an jî jê birin li vir dikarî bibînî: [[Special:Log/upload|reşahîya barkirîyan]].\n\nYek ji lînkên jêr ji bo bikarhînana wêne an file'ê di gotarê de bikar bihîne:\n'''<nowiki>[[</nowiki>{{ns:file}}:File.jpg<nowiki>]]</nowiki>''',\n'''<nowiki>[[</nowiki>{{ns:file}}:File.png|alt text<nowiki>]]</nowiki>''',\nanjî ji bo file'ên dengî '''<nowiki>[[</nowiki>{{ns:media}}:File.ogg<nowiki>]]</nowiki>'''",
        "filedelete-reason-otherlist": "Sedemên din",
        "filedelete-reason-dropdown": "*Sedemên jêbirina wêneyan\n** wêneyekî nebaş e\n** kopiyek e",
        "filedelete-edit-reasonlist": "Sedemên jêbirinê biguherîne",
-       "mimesearch": "Gerrîna li MIME",
+       "mimesearch": "Lêgerîna li MIME",
        "download": "daxistin",
        "unwatchedpages": "Rûpelên nayên şopandin",
        "listredirects": "Lîsteya beralîkirinan",
        "mostlinked": "Rûpelên bi bêhtirîn girêdan",
        "mostlinkedcategories": "Kategoriyên bi bêhtirîn girêdan",
        "mostcategories": "Rûpelên bi pir kategorî",
+       "mostinterwikis": "Rûpelên bi bêhtirîn girêdanên înterwîkiyê",
        "prefixindex": "Hemû rûpelên bi pêşbendik",
        "shortpages": "Rûpelên kurt",
        "longpages": "Rûpelên dirêj",
        "deadendpages": "Rûpelên bê dergeh",
        "protectedpages": "Rûpelên parastî",
+       "protectedpages-noredirect": "Beralîkirinan veşêre",
+       "protectedpagesempty": "Niha ti rûpelên ku bi vê parametreyê parastî ne, tine ne.",
        "protectedpages-page": "Rûpel",
        "protectedtitles": "Sernavên parastî",
        "listusers": "Lîsteya bikarhêneran",
        "all-logs-page": "Hemû têketin",
        "alllogstext": "Hemû têketinên {{SITENAME}} li jêr tên nîşandan.\nTu dikarî ji xwe re têketinekê hilbijêrî, navê bikarhêneriyê an navê rûpelekê binivîse û agahiyan li ser wê bibîne.",
        "logempty": "Tiştek di vir de nîne.",
-       "log-title-wildcard": "Li sernavan bigere, yê bi vê destpêdikin",
+       "log-title-wildcard": "Li sernavên bi vê dest pê dikin bigere",
        "allpages": "Hemû rûpel",
        "nextpage": "Rûpela pêşî ($1)",
        "prevpage": "Rûpelê berî vê ($1)",
        "contributions-title": "Beşdariyên ji bo $1",
        "mycontris": "Beşdariyên min",
        "contribsub2": "Ji bo $1 ($2)",
-       "uctop": "(ser)",
+       "uctop": "(rojane)",
        "month": "Ji meha (û zûtir):",
        "year": "Ji sala (û zûtir):",
        "sp-contributions-newbies": "Tenê beşdariyên bikarhênerên nû nîşan bide",
        "unblockip": "IP'yekê dîsa veke",
        "unblockiptext": "Nivîsara jêr bikarwîne ji bo qebûlkirina nivîsandinê bikarhênerekî ya IP'yeka berê astengkirî.",
        "ipusubmit": "Vê astengkirinê rake",
-       "unblocked": "[[User:$1|$1]] niha vê astengkirinê ye",
+       "unblocked": "[[User:$1|$1]] hatiye astengkirin.",
        "unblocked-range": "$1 hat astengkirin.",
        "unblocked-id": "$1 dîsa vê astengkirinê ye",
        "blocklist": "Bikarhênerên astengkirî",
        "importlogpage": "Têketina tevlîkirinê",
        "javascripttest": "JavaScript tê testkirin",
        "tooltip-pt-userpage": "Rûpela min",
-       "tooltip-pt-anonuserpage": "The user page for the ip you",
+       "tooltip-pt-anonuserpage": "Rûpela bikarhênerê ji bo navnîşana ÎP ku tu sererast dikî wekî",
        "tooltip-pt-mytalk": "Gotûbêja min",
        "tooltip-pt-preferences": "Tercîhên min",
        "tooltip-pt-watchlist": "The list of pages you",
        "tooltip-feed-atom": "Atom feed'ên ji bo vê rûpelê",
        "tooltip-t-contributions": "Lîsteya beşdariyên bikarhêner bibîne",
        "tooltip-t-emailuser": "Jê re name bişîne",
+       "tooltip-t-info": "Bêhtir agahî di derbarê vê rûpelê de",
        "tooltip-t-upload": "Wêneyan bar bike",
        "tooltip-t-specialpages": "Lîsteya hemû rûpelên taybetî",
        "tooltip-t-print": "Versiyona çapkirinê ya vê rûpelê",
        "spamprotectiontitle": "Parastina spam",
        "spamprotectiontext": "Rûpela ku tu dixwazî tomar bikî ji ber parastina spamê hate astengkirin.\nJi ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.",
        "spamprotectionmatch": "Ev nivîsa parastinê spam vêxist: $1",
-       "pageinfo-header-edits": "Guherandin",
+       "pageinfo-header-basic": "Agahiyên sereke",
+       "pageinfo-header-edits": "Dîrokê biguherîne",
        "pageinfo-header-restrictions": "Parastina rûpelê",
+       "pageinfo-header-properties": "Taybetmendiyên rûpelê",
        "pageinfo-watchers": "Hejmara kesên dişopînin",
        "pageinfo-subpages-name": "Binrûpelên vê rûpelê",
        "pageinfo-edits": "Hejmara guherandinan",
        "pageinfo-redirectsto-info": "agahî",
        "pageinfo-contentpage-yes": "Erê",
        "pageinfo-protect-cascading-yes": "Erê",
+       "pageinfo-category-info": "Agahiyên kategoriyê",
        "pageinfo-category-pages": "hejmara rûpelan",
        "pageinfo-category-subcats": "Hejmara binkategoriyan",
        "markaspatrolleddiff": "Wek serrastkirî nîşan bide",
        "file-info-size": "$1 × $2 pixel, mezinbûnê data: $3, MIME-typ: $4",
        "file-nohires": "Versyonekî jê mezintir tune.",
        "svg-long-desc": "Daneya SVG, mezinbûna rast: $1 × $2 pixel; mezinbûna daneyê: $3",
-       "show-big-image": "Mezînbûn",
+       "show-big-image": "Dosyeya orjînal",
        "newimages": "Pêşangeha wêneyên nû",
        "imagelisttext": "Jêr lîsteyek ji $1 file'an heye, duxrekirin $2.",
        "newimages-summary": "Ev rûpela taybet dosyeyên ku herî dawî hatine barkirin, nîşan dide.",
        "confirmemail_loggedin": "Navnîşana te ya E-Nameyê hate qebûlkirin.",
        "confirmemail_body": "Kesek, dibê tu, bi IP adressê $1, xwe li {{SITENAME}} bi vê navnîşana e-name tomar kir (\"$2\") .\n\nEger ev rast qeydkirinê te ye û di dixwazî bikaranîna e-nama ji te ra çêbibe li {{SITENAME}}, li vê lînkê bitikîne:\n\n$3\n\nLê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê qebûlkirin.",
        "scarytranscludefailed": "[Anîna şablona $1 biserneket; biborîne]",
-       "scarytranscludetoolong": "[URL zêde dirêj e; bibore]",
+       "scarytranscludetoolong": "[URL zêde dirêj e]",
        "deletedwhileediting": "'''Hişyarî:''' Piştî te dest bi guherandinê kir ev rûpel hate jêbirin!",
        "confirmrecreate": "Piştî te dest bi guherandinê kir, bikarhêner [[User:$1|$1]] ([[User talk:$1|gotûbêj]]) ev rûpel jê bir. Sedema jêbirinê ev bû:\n: ''$2''\nJi kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
        "recreate": "Dîsa çêke",
        "table_pager_first": "Rûpela pêşîn",
        "table_pager_last": "Rûpela dawî",
        "table_pager_limit_submit": "Here",
-       "autosumm-blank": "Rûpel hate vala kirin",
+       "autosumm-blank": "Rûpel hat vala kirin",
        "autosumm-replace": "'$1' ket şûna rûpelê.",
        "autoredircomment": "Ji bo [[$1]] hate beralîkirin",
        "autosumm-new": "Rûpela nû: \"$1\"",
        "version-specialpages": "Rûpelên taybet",
        "version-other": "yên din",
        "version-version": "($1)",
-       "version-license": "Destûr",
+       "version-license": "Lîsansa MediaWiki",
        "version-software-product": "Berhem",
        "version-software-version": "Guherto",
        "version-entrypoints-header-url": "URL",
        "specialpages": "Rûpelên taybet",
        "specialpages-note": "* Rûpelên taybetî ji her kesan ra\n* <strong class=\"mw-specialpagerestricted\">Rûpelên taybetî ji bikarhêneran bi mafên zêdetir ra</strong>",
        "specialpages-group-other": "Rûpelên taybetî yên din",
-       "specialpages-group-login": "Têkeve",
+       "specialpages-group-login": "Têkeve / hesabekî nû çêke",
        "specialpages-group-changes": "Guherandinên dawî û têketin",
        "specialpages-group-media": "Nameyên medyayan û barkirinan",
        "specialpages-group-users": "Bikarhêner û maf",
index 77734a2..979b2fb 100644 (file)
@@ -29,7 +29,7 @@
        "tog-hideminor": "Celare recensiones minores in indice nuper mutatorum",
        "tog-hidepatrolled": "Redactiones censae inter nuper mutatas celandae",
        "tog-newpageshidepatrolled": "Paginae censae inter nouissime creatas celandae",
-       "tog-extendwatchlist": "Indicem paginarum obseruandarum cunctas mutatas praeter nouissimas includere decet",
+       "tog-extendwatchlist": "Extendere indicem paginarum observatarum ut omnes emendationes monstrentur, non solum emendationes recentissimae",
        "tog-usenewrc": "Indice nuper mutatarum excelsa uti",
        "tog-numberheadings": "Subtituli numeris adornandi",
        "tog-showtoolbar": "Affigere trabem redigentem",
        "actions": "Actiones",
        "namespaces": "Spatia nominalia",
        "variants": "Variantes",
+       "navigation-heading": "Tabula navigationis",
        "errorpagetitle": "Erratum",
        "returnto": "Redire ad $1.",
        "tagline": "E {{grammar:ablative|{{SITENAME}}}}",
        "mimesearch": "Quaerere per MIME",
        "mimetype": "Typus MIME:",
        "download": "depromere",
-       "unwatchedpages": "Paginae incustoditae",
+       "unwatchedpages": "Paginae non observatae",
        "listredirects": "Redirectiones",
        "unusedtemplates": "Formulae non in usu",
        "unusedtemplateswlh": "nexus alii",
        "import": "Paginas importare",
        "importinterwiki": "Adportatio transvici",
        "import-interwiki-submit": "Importare",
-       "import-interwiki-namespace": "Spatium nominale destinatum:",
        "import-upload-filename": "Nomen fasciculi:",
        "import-comment": "Sententia:",
        "importstart": "Adportare paginas...",
        "tooltip-pt-mycontris": "Index conlationum tuarum",
        "tooltip-pt-login": "Te conventum aperire hortamur, non autem requisitum",
        "tooltip-pt-logout": "Conventum concludere",
+       "tooltip-pt-createaccount": "Hortamur ut conventum crees, sed non est necesse",
        "tooltip-ca-talk": "Disputatio de hac pagina",
        "tooltip-ca-edit": "Hanc paginam recensere potes. Quaesumus praevisum inspice antequam servas.",
        "tooltip-ca-addsection": "Novam partem creare",
index 55524f6..ba2a8a3 100644 (file)
        "special-characters-group-arabic": "Arabesch",
        "special-characters-group-arabicextended": "Arabesch, erweidert",
        "special-characters-group-persian": "Persesch",
-       "special-characters-group-hebrew": "Hebräisch",
+       "special-characters-group-hebrew": "Hebräesch",
        "special-characters-group-bangla": "Bangalesch",
        "special-characters-group-tamil": "Tamilesch",
        "special-characters-group-telugu": "Telugu",
index 7a45ce7..fc58f02 100644 (file)
        "querypage-disabled": "Šī īpašā lapā ir atspējota veiktspējas iemeslu dēļ.",
        "booksources": "Grāmatu avoti",
        "booksources-search-legend": "Meklēt grāmatu avotus",
+       "booksources-search": "Meklēt",
        "specialloguserlabel": "Izpildītājs:",
        "speciallogtitlelabel": "Mērķis (nosaukums vai lietotājs):",
        "log": "Reģistri",
index 3c55d64..b9e8e4e 100644 (file)
        "november-gen": "Novembru",
        "december-gen": "Diċembru",
        "jan": "Jan",
-       "feb": "Fra",
+       "feb": "Frar",
        "mar": "Mar",
        "apr": "Apr",
-       "may": "Mej",
+       "may": "Mejj",
        "jun": "Ġun",
        "jul": "Lul",
-       "aug": "Awi",
-       "sep": "Set",
+       "aug": "Awwi",
+       "sep": "Sett",
        "oct": "Ott",
        "nov": "Nov",
        "dec": "Diċ",
        "personaltools": "Għodda personali",
        "articlepage": "Ara l-artiklu",
        "talk": "Diskussjoni",
-       "views": "Veduti",
+       "views": "Dehriet",
        "toolbox": "Għodda",
        "userpage": "Ara l-paġna tal-utent",
        "projectpage": "Ara l-paġna tal-proġett",
        "viewhelppage": "Ara l-paġna tal-għajnuna",
        "categorypage": "Ara l-kategorija",
        "viewtalkpage": "Ara d-diskussjoni",
-       "otherlanguages": "F'lingwi oħrajn",
+       "otherlanguages": "B'lingwi oħrajn",
        "redirectedfrom": "(Rindirizzat minn $1)",
        "redirectpagesub": "Paġna ta' rindirizz",
        "redirectto": "Rindirizza lejn:",
        "versionrequired": "Hija meħtieġa l-verżjoni $1 ta' MedjaWiki",
        "versionrequiredtext": "Hija meħtieġa l-verżjoni $1 ta' MedjaWiki biex tuża din il-paġna. Ara [[Special:Version|paġna tal-verżjoni]].",
        "ok": "OK",
-       "retrievedfrom": "Miġjub minn \"$1\"",
+       "retrievedfrom": "Miksub minn \"$1\"",
        "youhavenewmessages": "Għandek $1 ($2).",
        "youhavenewmessagesfromusers": "Għandek $1 minn {{PLURAL:$3|utent ieħor|$3utenti oħra}} ($2).",
        "youhavenewmessagesmanyusers": "Għandek $1 mingħand ħafna utenti ($2).",
        "currentrev": "Reviżjoni kurrenti",
        "currentrev-asof": "Reviżjoni kurrenti ta' $1",
        "revisionasof": "Reviżjoni ta' $1",
-       "revision-info": "Reviżjoni ta' $1 minn $2",
+       "revision-info": "Reviżjoni ta' $1 minn {{GENDER:$6|$2}}$7",
        "previousrevision": "←Reviżjoni eqdem",
        "nextrevision": "Reviżjoni iġded→",
        "currentrevisionlink": "Reviżjoni kurrenti",
        "compareselectedversions": "Qabbel il-verżjonijiet magħżula",
        "showhideselectedversions": "Uri/aħbi reviżjonijiet magħżula",
        "editundo": "ħassar",
+       "diff-multi-sameuser": "(Mhux qed {{PLURAL:$1|tintwera r-reviżjoni intermedja|jintwerew $1 r-reviżjonijiet intermedji}} mill-istess awtur)",
        "diff-multi-manyusers": "(Mhux qed {{PLURAL:$1|tintwera reviżjoni intermedja|jintwerew $1 reviżjonijit intermedji}} mingħand iktar minn $2 {{PLURAL:$2|utent|$2 utenti}})",
        "searchresults": "Riżultat tat-tfittxija",
        "searchresults-title": "Riżultati tat-tfittxija għal \"$1\"",
        "shown-title": "Uri {{PLURAL:$1|riżultat|$1 riżultati}} kull paġna",
        "viewprevnext": "Ara ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Hemm paġna bl-isem ta' \"[[:$1]]\" fuq din il-wiki'''",
-       "searchmenu-new": "'''Oħloq il-paġna \"[[:$1]]\" fuq din il-wiki!'''",
+       "searchmenu-new": "<strong>Oħloq il-paġna \"[[:$1]]\" fuq din il-wiki!</strong> \n{{PLURAL:$2|0=|Ara wkoll l-paġna li sibt bit-tfittxija tiegħek.|Ara wkoll ir-riżultati li sibt.}}",
        "searchprofile-articles": "Paġni ta' kontenut",
        "searchprofile-images": "Multimedja",
        "searchprofile-everything": "Kollox",
        "searchrelated": "relatati",
        "searchall": "kollha",
        "showingresults": "Hawn taħt ġie inkluż massimu ta' {{PLURAL:$1|riżultat '''1''' li jibda|'''$1''' riżultat li jibdew}} bin-numru '''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Riżultat <strong>$1</strong> ta' <strong>$3</strong>|Riżultati <strong>$1 - $2</strong> ta' <strong>$3</strong>}}",
        "search-nonefound": "It-tfittxija ma tat l-ebda riżultat.",
        "powersearch-legend": "Tfittxija avvanzata",
        "powersearch-ns": "Fittex fl-ispazju tal-isem:",
        "action-siteadmin": "timblokka jew tiżblokka d-databażi",
        "action-sendemail": "ibgħat l-ittri-e",
        "nchanges": "{{PLURAL:$1|modifika $1 |$1 modifiki}}",
-       "recentchanges": "Tibdil riċenti",
+       "enhancedrc-history": "kronoloġija",
+       "recentchanges": "Bidliet riċenti",
        "recentchanges-legend": "Opzjonijiet tat-tibdil riċenti",
        "recentchanges-summary": "Din il-paġna turi l-modifiki l-aktar riċenti għal kontenut tas-sit.",
        "recentchanges-noresult": "L-ebda bidla ma saret matul il-perjodu mogħti li tissodisfa dawn il-kriterji.",
        "recentchanges-label-bot": "Din il-modifika ġiet effettwata minn bot",
        "recentchanges-label-unpatrolled": "Din il-modifika għadha ma ġietx verifikata",
        "recentchanges-label-plusminus": "Id-daqs tal-paġna nbidel b'dan in-numru ta' bytes",
+       "recentchanges-legend-heading": "'''Leġenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ara wkoll il-[[Special:NewPages|lista tal-paġni l-ġodda]])",
        "rcnotefrom": "Ħawn taħt jinsabu l-modifiki minn '''$2''' (sa '''$1''').",
        "rclistfrom": "Uri l-modifiki ġodda li jibdew minn $3 $2",
        "rcshowhideminor": "$1 modifiki żgħar",
        "rcshowhideminor-show": "Uri",
+       "rcshowhideminor-hide": "Aħbi",
        "rcshowhidebots": "$1 bot",
        "rcshowhidebots-show": "Uri",
-       "rcshowhideliu": "Utenti reġistrati: $1",
+       "rcshowhidebots-hide": "Aħbi",
+       "rcshowhideliu": "$1 utenti reġistrati",
        "rcshowhideliu-show": "Uri",
+       "rcshowhideliu-hide": "Aħbi",
        "rcshowhideanons": "Utenti anonimi: $1",
        "rcshowhideanons-show": "Uri",
+       "rcshowhideanons-hide": "Aħbi",
        "rcshowhidepatr": "$1 modifiki kontrollati",
        "rcshowhidepatr-show": "Uri",
        "rcshowhidemine": "$1 modifiki tiegħi",
        "rcshowhidemine-show": "Uri",
+       "rcshowhidemine-hide": "Aħbi",
        "rclinks": "Uri l-aħħar $1 modifiki fl-aħħar $2 ġranet<br />$3",
        "diff": "diff",
        "hist": "kron",
        "delete-warning-toobig": "Din il-paġna għandha kronoloġija ta' modifikar kbira, l-fuq minn $1 {{PLURAL:$1|reviżjoni|reviżjonijiet}}.\nTħassara tista' toħloq problema ta' funżjoni fid-database ta' {{SITENAME}}; moħħok hemm.",
        "rollback": "Ħassar il-modifiki",
        "rollbacklink": "rollback",
+       "rollbacklinkcount": "Erġa' lura $1 {{PLURAL:$1|modifika|modifiki}}",
        "rollbackfailed": "Rollback ma ħadmitx",
        "cantrollback": "Impossibli tħassar il-modifiki; l-utent li wettaqhom huwa l-unika li għamel kontributi lil din il-paġna.",
        "alreadyrolled": "Mhuwiex possibbli li tneħħi l-modifiki ta' [[User:$2|$2]] ([[User talk:$2|diskussjoni]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) fil-paġna [[:$1]]; utent ieħor diġà immodifika din il-paġna jew inkella reġġa' lura.\n\nL-iktar modifika riċenti fuq dil-paġna saret minn [[User:$3|$3]] ([[User talk:$3|diskussjoni]]).",
        "import-interwiki-history": "Kopja l-verżjonijiet tal-kronoloġija kollha għal din il-paġna",
        "import-interwiki-templates": "Inkludi l-mudelli kollha",
        "import-interwiki-submit": "Importa",
-       "import-interwiki-namespace": "Ittrasferixxi l-paġni fl-ispazju tal-isem:",
        "import-upload-filename": "Isem tal-fajl:",
        "import-comment": "Kumment:",
        "importtext": "Jekk jogħġbok esporta l-fajl mis-sit wiki tal-oriġini bil-funzjoni [[Special:Export|funzjoni ta' esportazzjoni]], salvah fuq id-diska tiegħek u imbagħad tellgħu hawn.",
        "tooltip-pt-preferences": "Il-preferenzi tiegħek",
        "tooltip-pt-watchlist": "Il-lista ta' paġni li qiegħed tosserva",
        "tooltip-pt-mycontris": "Lista tal-kontribuzzjonijiet tiegħek",
-       "tooltip-pt-login": "Ir-reġistrazzjoni hija mħeġġa, għalkemm mhijiex obbligatorja",
+       "tooltip-pt-login": "Inħeġġuk tidħol fil-kont tiegħek, għalkemm dan mhux obbligatorju",
        "tooltip-pt-logout": "Oħroġ (illogja 'l barra)",
-       "tooltip-ca-talk": "Diskussjoni dwar il-kontenut tal-paġna",
+       "tooltip-pt-createaccount": "Nagħtuk parir toħloq kont u tidħol fih; però dan mhux obligatorju.",
+       "tooltip-ca-talk": "Diskussjoni dwar il-paġna ta' kontenut",
        "tooltip-ca-edit": "Tista' timmodifika din il-paġna. Jekk jogħġbok uża l-buttuna tad-dehra proviżorja qabel ma ssalva l-modifiki.",
        "tooltip-ca-addsection": "Ibda sezzjoni ġdida",
        "tooltip-ca-viewsource": "Din il-paġna hija protetta. Tista' tara s-sors tagħha.",
        "tooltip-ca-watch": "Żid din il-paġna mal-lista ta' osservazzjoni tiegħek",
        "tooltip-ca-unwatch": "Neħħi din il-paġna mill-osservazzjonijiet speċjali tiegħek",
        "tooltip-search": "Fittex fil-{{SITENAME}}",
-       "tooltip-search-go": "Mur fil-paġna bit-titlu indikat, jekk teżisti",
-       "tooltip-search-fulltext": "Fittex it-test indikat fil-paġni",
-       "tooltip-p-logo": "Il-Paġna prinċipali",
+       "tooltip-search-go": "Mur fil-paġna b'dan it-titlu eżatt, jekk teżisti",
+       "tooltip-search-fulltext": "Fittex dan it-test fil-paġni",
+       "tooltip-p-logo": "Żur il-paġna prinċipali",
        "tooltip-n-mainpage": "Żur il-Paġna Prinċipali",
        "tooltip-n-mainpage-description": "Żur il-paġna prinċipali",
        "tooltip-n-portal": "Dwar il-proġett, x'tista' tagħmel, fejn tista' ssib l-affarijiet",
        "tooltip-n-currentevents": "Sib aktar informazzjoni dwar il-ġrajjiet kurrenti",
-       "tooltip-n-recentchanges": "Il-lista tat-tibdil riċenti fil-wiki",
+       "tooltip-n-recentchanges": "Il-lista tal-bidliet riċenti fil-wiki",
        "tooltip-n-randompage": "Uri paġna kwalunkwe",
-       "tooltip-n-help": "Il-Post fejn issir taf.",
+       "tooltip-n-help": "Il-post fejn issir taf iżjed.",
        "tooltip-t-whatlinkshere": "Lista tal-paġni tal-wiki kollha li jwasslu hawn",
        "tooltip-t-recentchangeslinked": "Link għal modifiki riċenti ta' paġni relatati",
        "tooltip-feed-rss": "Feed RSS għal din il-paġna",
        "spam_reverting": "Erġa' lura għall-aħħar verżjoni li m'għandiex link għal $1",
        "spam_blanking": "Paġna svojtjata, kull verżjoni kellu link għal $1",
        "spam_deleting": "Paġna mħassra, ir-reviżjonijiet kollha kellhom ħoloq lejn $1",
+       "simpleantispam-label": "Konroll anti-spam.\n<strong>TIMLIHIEX</strong> din!",
        "pageinfo-title": "Informazzjoni għal \"$1\"",
        "pageinfo-not-current": "Jiddispjaċina, imma huwa impossibbli li tingħata informazzjoni fuq reviżjonijiet qodma.",
        "pageinfo-header-basic": "Informazzjoni bażika",
        "file-info-size-pages": "$1 × $2 pixels, daqs tal-fajl: $3, tip MIME: $4, $5 {{PLURAL:$5|paġna|paġni}}",
        "file-nohires": "Mhux disponibli verżjonijiet b'risoluzzjoni akbar.",
        "svg-long-desc": "Fajl fil-format SVG, dimensjoni nominali $1 × $2 pixel, dimensjoni tal-fajl: $3",
-       "show-big-image": "Verżjoni b'risoluzzjoni sħiħa",
+       "show-big-image": "Fajl oriġinali",
        "show-big-image-preview": "Daqs tad-dehra proviżorja: $1.",
        "show-big-image-other": "{{PLURAL:$2|Riżoluzzjoni|Riżoluzzjonijiet}} oħra: $1",
        "show-big-image-size": "$1 × $2 pixels",
        "tags": "Tikketti ta' modifika validi",
        "tag-filter": "Iffilitra skont it-[[Special:Tags|tikketta]]:",
        "tag-filter-submit": "Filtru",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "tags-title": "Tikketti",
        "tags-intro": "Din il-paġna telenka t-tikketti li s-softwer jista' jassoċja ma' modifika u t-tifsira tagħhom.",
        "tags-tag": "Isem tat-tikketta",
        "htmlform-selectorother-other": "Oħrajn",
        "sqlite-has-fts": "$1 bil-possibilità ta' tfittxija kompluta fit-test",
        "sqlite-no-fts": "$1 mingħajr il-possibilità ta' tfittxija kompluta fit-test",
-       "logentry-delete-delete": "$1 ħassar il-paġna $3",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ħassar|ħassret}} il-paġna $3",
        "logentry-delete-restore": "$1 reġġa' lura l-paġna $3",
        "logentry-delete-event": "$1 biddel il-viżibilità ta' {{PLURAL:$5|azzjoni tar-reġistru|$5 azzjonijiet tar-reġistru}} ta' $3: $4",
        "revdelete-content-hid": "kontenut moħbi",
        "revdelete-uname-unhid": "isem tal-utent muri mill-ġdid",
        "revdelete-restricted": "limiti applikati 'l amministraturi",
        "revdelete-unrestricted": "neħħi l-limiti 'l amministraturi",
-       "logentry-move-move": "$1 mexxa l-paġna $3 għal $4",
+       "logentry-move-move": "$1 {{GENDER:$2|mexxa l|mexxiet il}}-paġna $3 għal $4",
        "logentry-move-move-noredirect": "$1 mexxa l-paġna $3 għal $4 mingħajr ma ħalla rindirizz",
        "logentry-move-move_redir": "$1 mexxa l-paġna $3 għal $4 fuq rindrizz",
        "logentry-move-move_redir-noredirect": "$1 mexxa l-paġna $3 għal $4 fuq rindirizz mingħajr ma ħalla rindirizz",
        "logentry-newusers-newusers": "Il-kont $1 ġie maħluq",
-       "logentry-newusers-create": "Il-kont $1 ġie maħluq",
+       "logentry-newusers-create": "Inħoloq il-kont $1",
        "logentry-newusers-create2": "Il-kont $3 ġie maħluq minn $1",
        "logentry-newusers-autocreate": "Il-kont $1 ġie maħluq awtomatikament",
        "logentry-rights-rights": "$1 {{GENDER:$2|biddel|biddlet}} is-sħubija ta' $3 minn $4 għal $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|biddel|biddlet}} is-sħubija fil-gruppi ta' $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|ġie|ġiet}} awtomatikament {{GENDER:$2|promoss|promossa}} minn $4 għal $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|tella'|tellgħet}} $3",
        "rightsnone": "(xejn)",
        "revdelete-summary": "Taqsira tal-modifika",
        "feedback-bugcheck": "Tajjeb ħafna! Ivverifika li mhux diġà fost id-[$1 difetti magħrufa].",
index 640e2c2..cadd5a7 100644 (file)
        "preview": "Naokieken",
        "showpreview": "Bewarking naokieken",
        "showdiff": "Verschil bekieken",
-       "anoneditwarning": "'''Waorschuwing:''' je bin niet an-emeld.\nJoew IP-adres zal op-esleugen wörden a'j wiezigingen op disse zied anbrengen.",
+       "anoneditwarning": "<strong>Waorschuwing:</strong> je bin niet an-emeld.\nJoew IP-adres zal op-esleugen wörden a'j wiezigingen op disse zied anbrengen. A'j je eigen <strong>[$1 anmelden]</strong> of <strong>[$2 inschrieven]</strong> dan koemen joew bewarkingen onder joew gebrukersnaam te staon, samen mit aandere veurdelen.",
        "anonpreviewwarning": "''Je bin niet an-emeld.''\n''Deur de bewarking op te slaon wörden joew IP-adres op-esleugen in de ziedgeschiedenisse.''",
        "missingsummary": "'''Herinnering:''' je hebben gien samenvatting op-egeven veur de bewarking. A'j noen weer op ''Opslaon'' klikken wörden de bewarking zonder samenvatting op-esleugen.",
        "missingcommenttext": "Plaots joew opmarking hieronder.",
        "showhideselectedversions": "Ekeuzen versies bekieken/verbargen",
        "editundo": "weerummedreien",
        "diff-empty": "(Gien verschil)",
+       "diff-multi-sameuser": "({{PLURAL:$1|n Tussenliggende versie|$1 tussenliggende versies}} deur de zelfde gebruker is verbörgen)",
        "diff-multi-manyusers": "($1 tussenliggende {{PLURAL:$1|versie|versies}} deur meer as $2 {{PLURAL:$2|gebruker|gebrukers}} niet weeregeven)",
        "difference-missing-revision": "{{PLURAL:$2|Eén versie|$2 versies}} van disse verschillen ($1) {{PLURAL:$2|is|bin}} niet evunnen.\n\nDit kömp meestentieds deur t volgen van n verouwerde verwiezing naor n zied die vortedaon is.\nWaorschienlik ku'j der meer gegevens over vienen in t [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} vortdologboek].",
        "searchresults": "Zeukresultaoten",
        "searchrelated": "verwaant",
        "searchall": "alles",
        "showingresults": "Hieronder {{PLURAL:$1|steet '''1''' resultaot|staon '''$1''' resultaoten}}  <b>$1</b> vanaof nummer <b>$2</b>.",
+       "search-showingresults": "{{PLURAL:$4|Resultaot <strong>$1</strong> van <strong>$2</strong>|Resultaoten <strong>$1 - $2</strong> van <strong>$3</strong>}}",
        "search-nonefound": "Der bin gien resultaoten veur de zeukopdrachte.",
        "powersearch-legend": "Uutgebreid zeuken",
        "powersearch-ns": "Zeuken in naamruumten:",
        "recentchanges-label-bot": "Disse bewarking is uutevoerd deur n bot",
        "recentchanges-label-unpatrolled": "Disse bewarking is nog niet nao-ekeken",
        "recentchanges-label-plusminus": "Disse ziedgrootte is mit dit antal bytes ewiezigd",
+       "recentchanges-legend-heading": "'''Legenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (zie oek de [[Special:NewPages|lieste mit nieje ziejen]])",
        "rcnotefrom": "Dit bin de wiezigingen sinds <strong>$2</strong> (maximum van <strong>$1</strong> wiezigingen).",
        "rclistfrom": "Bekiek wiezigingen vanaof $3 $2",
        "querypage-disabled": "Disse spesiale zied is uutezet um prestasieredens.",
        "booksources": "Boekinformasie",
        "booksources-search-legend": "Zeuk informasie over n boek",
+       "booksources-search": "Zeuken",
        "booksources-text": "Hieronder steet n lieste mit verwiezingen naor aandere websteeën die nieje of wat ouwere boeken verkopen, en daor hebben ze warschienlik meer informasie over t boek da'j zeuken:",
        "booksources-invalid-isbn": "De op-egeven ISBN klop niet; kiek effen nao o'j gien fout emaakt hebben bie de invoer.",
        "specialloguserlabel": "Uutvoerende gebruker:",
        "import-interwiki-history": "Kopieer de hele geschiedenisse veur disse zied",
        "import-interwiki-templates": "Alle mallen opnemen",
        "import-interwiki-submit": "Invoeren",
-       "import-interwiki-namespace": "Doelnaamruumte:",
-       "import-interwiki-rootpage": "Baosiszied veur doel (opsioneel):",
        "import-upload-filename": "Bestaandsnaam:",
        "import-comment": "Opmarkingen:",
        "importtext": "Gebruuk de [[Special:Export|uutvoerfunksie]] in de wiki waor de informasie vandaon kömp.\nSlao t op joew eigen systeem op, en stuur t daornao hier op.",
        "tooltip-pt-mycontris": "Liest van oew biejdraegen",
        "tooltip-pt-login": "Iej wördt van harte oetneugd um oe an te melden as gebroeker, mer t is nich verplicht",
        "tooltip-pt-logout": "Ofmaelden",
+       "tooltip-pt-createaccount": "Schrief je eigen veural in en meld je an, mer t is niet verplicht.",
        "tooltip-ca-talk": "Loat n oaverlegtekst oaver disse ziede zeen",
        "tooltip-ca-edit": "Bewaerk disse ziede",
        "tooltip-ca-addsection": "Niej oonderwaerp tovogen",
        "logentry-rights-rights": "$1 {{GENDER:$2|hef}} groepslidmaotschap veur $3 ewiezigd van $4 naor $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|hef}} t groepslidmaotschap ewiezigd veur $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|is}} automaties bevorderd van $4 tot $5",
+       "logentry-upload-upload": "$1 hef $3 {{GENDER:$2|op-estuurd}}",
        "rightsnone": "(gien)",
        "revdelete-summary": "samenvatting bewarken",
        "feedback-adding": "Joew kommentaar wörden op de zied ezet...",
index b9aa6fb..66f7f1e 100644 (file)
        "preview": "Førehandsvising",
        "showpreview": "Førehandsvis",
        "showdiff": "Sjå skilnader",
-       "anoneditwarning": "'''Åtvaring:''' Du er ikkje innlogga.\nIP-adressa di vert lagra i endringshistorikken til sida.",
+       "anoneditwarning": "'''Åtvaring:''' Du er ikkje innlogga.\nIP-adressa di vil verta lagra i den offentlege endringshistorikken til sida. Om du <strong>[$1 loggar inn]</strong> eller <strong>[$2 lager ein konto]</strong>, vil endringane dine knyttast til brukarnamnet ditt, saman med andre fordelar.",
        "anonpreviewwarning": "''Du er ikkje innlogga. Lagrar du vil IP-adressa di verta ført opp i endringshistorikken til denne sida.''",
        "missingsummary": "'''Påminning:''' Du har ikkje skrive noko endringssamandrag. Dersom du trykkjer «Lagre» ein gong til, vert endringa di lagra utan.",
        "missingcommenttext": "Ver venleg og skriv ein kommentar nedanfor.",
        "shown-title": "Syn $1 {{PLURAL:$1|resultat|resultat}} for kvar side",
        "viewprevnext": "Vis ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "* Sida '''[[$1]]'''",
-       "searchmenu-new": "'''Opprett sida «[[:$1|$1]]» på denne wikien.'''",
+       "searchmenu-new": "'''Opprett sida «[[:$1|$1]]» på denne wikien.''' {{PLURAL:$2|0=|Sjå også sida som vart funnen med søket ditt.|Sjå også søkeresultata som blei funne.}}",
        "searchprofile-articles": "Innhaldssider",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alt",
        "searchrelated": "relatert",
        "searchall": "alle",
        "showingresults": "Nedanfor er opp til {{PLURAL:$1|'''eitt'''|'''$1'''}} resultat som byrjar med nummer '''$2''' vist{{PLURAL:$1||e}}.",
+       "search-showingresults": "Resultat <strong>{{PLURAL:$4|$1|$1–$2}}</strong> av <strong>$3</strong>",
        "search-nonefound": "Ingen resultat svarte til førespurnaden.",
        "powersearch-legend": "Avansert søk",
        "powersearch-ns": "Søk i namnerom:",
        "ipblocklist": "Blokkerte IP-adresser og brukarnamn",
        "ipblocklist-legend": "Finn ein blokkert brukar",
        "blocklist-userblocks": "Gøym kontoblokkeringar",
-       "blocklist-tempblocks": "Gøym mellombelse blokkeringar",
+       "blocklist-tempblocks": "Gøym mellombels blokkeringar",
        "blocklist-addressblocks": "Gøym einskilde IP-blokkeringar",
        "blocklist-rangeblocks": "Gøym intervallblokkeringar",
        "blocklist-timestamp": "Tidsmerke",
        "import-interwiki-history": "Kopier all historikken for denne sida",
        "import-interwiki-templates": "Inkluder alle malar",
        "import-interwiki-submit": "Importer",
-       "import-interwiki-namespace": "Målnamnerom:",
-       "import-interwiki-rootpage": "Målrotside (valfri):",
        "import-upload-filename": "Filnamn:",
        "import-comment": "Kommentar:",
        "importtext": "Lagre fila frå kjeldewikien med [[Special:Export|eksporteringsverktøyet]] på din eigen datamaskin, og last henne så opp her.",
        "tooltip-pt-mycontris": "Liste over bidraga dine",
        "tooltip-pt-login": "Det er ikkje obligatorisk å logga inn, men medfører mange fordelar.",
        "tooltip-pt-logout": "Logg ut",
+       "tooltip-pt-createaccount": "Me oppfordrar til at du oppretter ein konto og loggar inn, men det er ikkje påkravd.",
        "tooltip-ca-talk": "Diskusjon om innhaldssida",
        "tooltip-ca-edit": "Du kan endre denne sida. Bruk førehandsvisings-knappen før du lagrar.",
        "tooltip-ca-addsection": "Start ein ny bolk",
index 853ea0c..fd53485 100644 (file)
@@ -40,7 +40,7 @@
        "tog-shownumberswatching": "ଦେଖୁଥିବା ବ୍ୟବହାରକାରୀଙ୍କ ସଂଖ୍ୟା ଦେଖାନ୍ତୁ",
        "tog-oldsig": "ଏବେକାର ଦସ୍ତଖତ:",
        "tog-fancysig": "ଦସ୍ତଖତକୁ ଉଇକିଟେକ୍ସଟ ଭାବରେ ଗଣିବେ (ଆପେଆପେ ଥିବା ଲିଙ୍କ ବିନା)",
-       "tog-uselivepreview": "ସାଥେ ସାଥେ ଚାଲିଥିବା ଦେଖଣା ବ୍ୟବହାର କରିବେ (ପରୀକ୍ଷାରେ ଅଛି)",
+       "tog-uselivepreview": "ସାଥେ ସାଥେ ଚାଲିଥିବା ଦେଖଣା ବ୍ୟବହାର କରିବେ",
        "tog-forceeditsummary": "ଖାଲି ସମ୍ପାଦନା ସାରକଥାକୁ ଯିବା ବେଳେ ମୋତେ ଜଣାଇବେ",
        "tog-watchlisthideown": "ମୋ ଦେଖଣା ତାଲିକାରେ ମୋ ନିଜର ସମ୍ପାଦନାଗୁଡ଼ିକ ଲୁଚାଇବେ",
        "tog-watchlisthidebots": "ଦେଖଣା ତାଲିକାରେ ସ୍ୱୟଂଚାଳକ (Bot)ର ସମ୍ପାଦନାମାନ ଲୁଚାଇବେ",
        "lastmodifiedat": "ଏହି ପୃଷ୍ଠାଟି $1 ତାରିଖ $2 ବେଳେ ବଦଳାଯାଇଥିଲା ।",
        "viewcount": "ଏହି ପୃଷ୍ଠାଟି {{PLURAL:$1|ଥରେ|$1 ଥର}} ଖୋଲାଯାଇଛି ।",
        "protectedpage": "କିଳାଯାଇଥିବା ପୃଷ୍ଠା",
-       "jumpto": "ଡà­\87à¬\87à¬\81ଯିବେ",
+       "jumpto": "ସିଧାସଳà¬\96 ଯିବେ",
        "jumptonavigation": "ଦିଗବାରେଣିକୁ",
        "jumptosearch": "ଖୋଜିବେ",
        "view-pool-error": "କ୍ଷମା କରିବେ, ସର୍ଭରସବୁ ଏବେ ମନ୍ଦ ହୋଇଯାଇଅଛନ୍ତି ।\nଅନେକ ସଭ୍ୟ ଏହି ଏକା ପୃଷ୍ଠାଟି ଦେଖିବାକୁ ଚେଷ୍ଟାକରୁଅଛନ୍ତି ।\nଏହି ପୃଷ୍ଠାକୁ ଆଉଥରେ ଖୋଲିବା ଆଗରୁ ଦୟାକରି କିଛି କ୍ଷଣ ଅପେକ୍ଷା କରନ୍ତୁ ।\n$1",
        "pool-queuefull": "ପୁଲ ଧାଡ଼ିଟି ଭରିଯାଇଅଛି",
        "pool-errorunknown": "ଅଜଣା ଅସୁବିଧା",
        "pool-servererror": "ଏହି ପୁଲ କାଉଣ୍ଟର ସର୍ଭିସ ଉପଲବ୍ଧ ($1) ନାହିଁ ।",
+       "poolcounter-usage-error": "ବ୍ୟବହାରିକ ତ୍ରୁଟି: $1",
        "aboutsite": "{{SITENAME}} ବାବଦରେ",
        "aboutpage": "Project:ବାବଦରେ",
        "copyright": "ଯଦି ଉଲ୍ଲେଖ ହୋଇନାହିଁ ଏହା $1 ଅଧୀନରେ ବିତରିତ ।",
        "disclaimers": "ଆମେ ଦାୟୀ ନୋହୁଁ",
        "disclaimerpage": "Project:ଆମେ ଦାୟୀ ନୋହୁଁ",
        "edithelp": "ଲେଖା ସାହାଯ୍ୟ",
+       "helppage-top-gethelp": "ସାହାଯ୍ୟ",
        "mainpage": "ପ୍ରଧାନ ପୃଷ୍ଠା",
        "mainpage-description": "ପ୍ରଧାନ ପୃଷ୍ଠା",
        "policy-url": "Project:ନୀତି",
        "site-rss-feed": "$1 ଆରଏସଏସ ଫିଡ଼",
        "site-atom-feed": "$1 ଆଟମ ଫିଡ଼",
        "page-rss-feed": "$1 ଟି ଆରେସେସ ଫିଡ଼",
-       "page-atom-feed": "$1 ଟି ଆଟମ ଫିଡ଼",
+       "page-atom-feed": "\"$1\" ଆଟମ ଫିଡ଼",
        "red-link-title": "$1 (ପୃଷ୍ଠାଟି ନାହିଁ)",
        "sort-descending": "ବଡ଼ରୁ ସାନ କ୍ରମେ ସଜାନ୍ତୁ",
        "sort-ascending": "ସାନରୁ ବଡ଼ କ୍ରମେ ସଜାନ୍ତୁ",
        "readonly_lag": "ଏହି ଡାଟାବେସଟିରେ ଆପେ ଆପେ ତାଲା ପଡ଼ିଯାଇଅଛି, ଇତିମଧ୍ୟରେ ସାନ ଡାଟାବେସଟି ମୁଖ୍ୟ ଡାଟାବେସ ସହିତ ଯୋଗାଯୋଗ କରୁଅଛି",
        "internalerror": "ଭିତରର ଭୁଲ",
        "internalerror_info": "ଭିତରର ଭୁଲ : $1",
+       "internalerror-fatal-exception": "\"$1\" ପ୍ରକାରର ତ୍ରୁଟି ।",
        "filecopyerror": "\"$1\" ରୁ \"$2\" କୁ ନକଲ କରିପାରିଲୁଁ ନାହିଁ ।",
        "filerenameerror": "\"$1\" ରୁ \"$2\" କୁ ନାମ ବଦଳ କରିପାରିଲୁଁ ନାହିଁ ।",
        "filedeleteerror": "\"$1\" ଫାଇଲଟି ଲିଭାଇ ପାରିଲୁଁ ନାହିଁ ।",
        "directorycreateerror": "\"$1\" ସୂଚିଟି ତିଆରି କରିପାରିଲୁଁ ନାହିଁ ।",
+       "directoryreadonlyerror": "\"$1\" ଖାଲି ପଢି ହେଉଥିବା ଡିରୋକ୍ଟୋରୀ ।",
+       "directorynotreadableerror": "\"$1\" ଡିରୋକ୍ଟୋରୀଟି ପଢି ହେବ ନାହିଁ ।",
        "filenotfound": "\"$1\" ଫାଇଲଟି ପାଇଲୁ ନାହିଁ ।",
        "unexpected": "ଅଜଣା ନାମ ମିଳିଲା: \"$1\"=\"$2\" ।",
        "formerror": "ଭୁଲ: ଫର୍ମଟି ପଠାଇ ପାରିଲୁଁ ନାହିଁ",
        "viewsourcetext": "ଆପଣ ଏହି ପୃଷ୍ଠାର ଲେଖା ଦେଖିପାରିବେ ଓ ନକଲ କରିପାରିବେ:",
        "viewyourtext": "ଆପଣ '''ଆପଣଙ୍କ ସମ୍ପାଦିତ ''' ଅଧରଟିକୁ ଦେଖିପାରିବେ ଓ ଏହି ପୃଷ୍ଠାକୁ ନକଲ କରି ପାରିବେ",
        "protectedinterface": "ଏହି ପୃଷ୍ଠାଟି ଏହି ଉଇକିରେ ଥିବା ସଫ୍ଟୱେର ନିମନ୍ତେ ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇଥାଏ ଓ ଏହା ଅପବ୍ୟବହାରକୁ ରୋକିବା ନିମନ୍ତେ କିଳାଯାଇଅଛି । ସମସ୍ତ ଉଇକିର ଅନୁବାଦକୁ ଯୋଡ଼ିବା ଏବଂ ବଦଳାଇବା ପାଇଁ ମେଡ଼ିଆଉଇକିର ସ୍ଥାନୀୟ ପ୍ରକଳ୍ପରେ ଥିବା [//translatewiki.net/ translatewiki.net]କୁ ବ୍ୟବହାର କରନ୍ତୁ ।",
-       "editinginterface": "'''ଚେତାବନୀ:''' ଆପଣ ସଫ୍ଟୱେରର ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇବା ନିମନ୍ତେ ବ୍ୟବହାର କରାଯାଉଥିବା ଏକ ପୃଷ୍ଠାର ସମ୍ପାଦନା କରୁଅଛନ୍ତି ।\nଏହି ଉଇକିପୃଷ୍ଠାର କିଛି ବି ବଦଳ ବାକି ସଭ୍ୟମାନଙ୍କ ଇଣ୍ଟରଫେସର ଦେଖଣାକୁ ପ୍ରଭାବିତ କରିବ ।\nସମସ୍ତ ଉଇକିର ଅନୁବାଦ ନିମନ୍ତେ, ଦୟାକରି ମିଡ଼ିଆଉଇକିର ସ୍ଥାନୀୟକରଣ ପ୍ରକଳ୍ପ [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net] ବ୍ୟବହାର କରନ୍ତୁ ।",
+       "editinginterface": "'''ଚେତାବନୀ:''' ଆପଣ ସଫ୍ଟୱେରର ଇଣ୍ଟରଫେସ ଲେଖା ଯୋଗାଇବା ନିମନ୍ତେ ବ୍ୟବହାର କରାଯାଉଥିବା ଏକ ପୃଷ୍ଠାର ସମ୍ପାଦନା କରୁଅଛନ୍ତି ।\nଏହି ଉଇକିପୃଷ୍ଠାର କିଛି ବି ବଦଳ ବାକି ସଭ୍ୟମାନଙ୍କ ଇଣ୍ଟରଫେସର ଦେଖଣାକୁ ପ୍ରଭାବିତ କରିବ ।",
+       "translateinterface": "ସମସ୍ତ ଉଇକିରେ ଅନୁବାଦ ଯୋଡିବା ପାଇଁ କିମ୍ବା ବଦଳାଇବା ପାଇଁ ମେଡିଆଉଇକିର ଅଞ୍ଚଳିକୀକରଣ ପ୍ରକଳ୍ପ  [//translatewiki.net/ translatewiki.net] ବ୍ୟବହାର କରନ୍ତୁ ।",
        "cascadeprotected": "ଏହି ପୃଷ୍ଠା ସମ୍ପାଦନା କରିବାରୁ କିଳାଯାଇଅଛି, କାରଣ ଏଥିରେ ତଳଲିଖିତ {{PLURAL:$1|ପୃଷ୍ଠାଟିଏ ଅଛି|ଟି ପୃଷ୍ଠା ଅଛି}} ଯାହା \"କ୍ୟାସକେଡ଼ କରା\" ସୁବିଧା ଦେଇ କିଳାଯାଇଅଛି ।:\n$2",
        "namespaceprotected": "ଆପଣଙ୍କୁ ଏହି '''$1''' ନେମସ୍ପେସ ଥିବା ପୃଷ୍ଠାରେ ସମ୍ପାଦନା କରିବା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ ।",
        "customcssprotected": "ଆପଣଙ୍କୁ ଏହି CSS ପୃଷ୍ଠାର ସମ୍ପାଦନା ନିମନ୍ତେ ଅନୁମତି ମିଳିନାହିଁ, କାରଣ ଏଥିରେ ଆଉଜଣେ ସଭ୍ୟଙ୍କର ବ୍ୟକ୍ତିଗତ ସଜାଣି ରହିଅଛି ।",
        "createacct-another-username-ph": "ଆପଣଙ୍କ ଇଉଜର ନାମ ଟାଇପ କରନ୍ତୁ",
        "yourpassword": "ପାସୱାର୍ଡ଼",
        "userlogin-yourpassword": "ପାସୱାର୍ଡ଼",
-       "userlogin-yourpassword-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬ªà¬¾à¬¸à­±à¬¾à¬°à­\8dଡ଼ à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
-       "createacct-yourpassword-ph": "ପାସୱରà­\8dଡ଼ à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
+       "userlogin-yourpassword-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬ªà¬¾à¬¸à­±à¬¾à¬°à­\8dଡ଼ à¬¦à¬¿à¬\85ନ୍ତୁ",
+       "createacct-yourpassword-ph": "ପାସୱରà­\8dଡ଼ à¬¦à¬¿à¬\85ନ୍ତୁ",
        "yourpasswordagain": "ପାସୱାର୍ଡ଼ ଆଉଥରେ:",
        "createacct-yourpasswordagain": "ପାସୱର୍ଡ଼ ନିଶ୍ଚିତ କରିବେ",
-       "createacct-yourpasswordagain-ph": "ପà­\81ଣି à¬ªà¬¾à¬¸à­±à¬°à­\8dଡ଼ à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
+       "createacct-yourpasswordagain-ph": "à¬\86à¬\89ଥରà­\87 à¬ªà¬¾à¬¸à­±à¬°à­\8dଡ଼ à¬¦à¬¿à¬\85ନ୍ତୁ",
        "remembermypassword": "ଏହି ବ୍ରାଉଜରରେ (ସବୁଠୁ ଅଧିକ ହେଲେ $1 {{PLURAL:$1|day|ଦିନ}}) ପାଇଁ ମୋ ଲଗଇନ ମନେ ରଖିଥିବେ",
        "userlogin-remembermypassword": "ମୋତେ ଲଗ-ଇନ କରି ରଖିଥାନ୍ତୁ",
        "userlogin-signwithsecure": "ନିରାପଦ କନେକସନ ବ୍ୟବ‌ହାର କରନ୍ତୁ",
        "userlogin-createanother": "ଆଉ ଏକ ଖାତା ତିଆରି କରନ୍ତୁ",
        "createacct-emailrequired": "ଇମେଲ ଠିକଣା",
        "createacct-emailoptional": "ଇମେଲ ଠିକଣା (ଇଚ୍ଛାଧୀନ)",
-       "createacct-email-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬\87ମà­\87ଲ à¬ à¬¿à¬\95ଣା à¬¨à¬¿à¬¬à­\87ଶ à¬\95ରନ୍ତୁ",
+       "createacct-email-ph": "à¬\86ପଣà¬\99à­\8dà¬\95 à¬\87ମà­\87ଲ à¬ à¬¿à¬\95ଣା à¬¦à¬¿à¬\85ନ୍ତୁ",
        "createacct-another-email-ph": "ଆପଣଙ୍କ ଇ-ମେଲ ଠିକଣା ଦିଅନ୍ତୁ",
        "createaccountmail": "ଏକ ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ ବ୍ୟବହାର କରନ୍ତୁ ଏବଂ ଏହାକୁ ତଳେ ଦିଆଯାଇଥିବା ଇ-ମେଲ ଠିକଣାକୁ ପଠେଇ ଦିଅନ୍ତୁ",
        "createacct-realname": "ପ୍ରକୃତ ନାମ (ଇଚ୍ଛାଧୀନ)",
        "createacct-reason": "କାରଣ",
        "createacct-reason-ph": "ଆପଣ ଅନ୍ୟଏକ ଖାତା କାହିଁକି ତିଆରି କରୁଛନ୍ତି",
        "createacct-captcha": "ନିରାପତ୍ତା ଯାଞ୍ଚ",
-       "createacct-imgcaptcha-ph": "à¬\89ପରà­\87 à¬²à­\87à¬\96ାଥିବା à¬²à­\87à¬\96ାà¬\9fି ଲେଖନ୍ତୁ",
+       "createacct-imgcaptcha-ph": "à¬\89ପରà­\87 à¬²à­\87à¬\96ାଥିବା à¬\85à¬\95à­\8dଷରà¬\95à­\81 ଲେଖନ୍ତୁ",
        "createacct-submit": "ନିଜର ନୂଆ ଖାତାଟିଏ ଖୋଲନ୍ତୁ",
        "createacct-another-submit": "ଆଉ ଏକ ଖାତା ଖୋଲନ୍ତୁ",
        "createacct-benefit-heading": "{{SITENAME}} ଆପଣଙ୍କ ଭଳି ଲୋକମାନଙ୍କ ଦ୍ୱାରା ଗଢ଼ା ।",
        "wrongpassword": "ଦିଆଯାଇଥିବା ପାସୱାର୍ଡ଼ଟି ଭୁଲ ଅଟେ  ।\nଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "wrongpasswordempty": "ଦିଆଯାଇଥିବା ପାସବାର୍ଡ଼ଟି ଖାଲି ଛଡ଼ାଯାଇଛି ।\nଦୟାକରି ଆଉଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ।",
        "passwordtooshort": "ପାସୱାର୍ଡ଼ଟି ଅତି କମରେ {{PLURAL:$1|ଗୋଟିଏ ଅକ୍ଷର|$1ଟି ଅକ୍ଷର}}ର ହୋଇଥିବା ଲୋଡ଼ା ।",
+       "passwordtoolong": "ପସସ୍ୱାର୍ଡଟି {{PLURAL:$1|1 ଅକ୍ଷର|$1 ଅକ୍ଷରଗୁଡିକ}}ଠାରୁ ଅଧିକ ହୋଇ ପାରିବ ନାହିଁ ।",
        "password-name-match": "ଆପଣଙ୍କ ପାସୱାର୍ଡ଼ଟି ଆପଣଙ୍କ ଇଉଜର ନାମ ଠାରୁ ଅଲଗା ହେବା ଉଚିତ ।",
        "password-login-forbidden": "ଏହି ଇଉଜର ନାମ ଓ ପାସୱାର୍ଡ଼ର ବ୍ୟବହାରକୁ ବାରଣ କରାଯାଇଅଛି ।",
        "mailmypassword": "ପାସୱାର୍ଡ଼ଟି ରିସେଟ କରିବେ",
        "anoneditwarning": "<strong>ସାବଧାନ:</strong> ଆପଣ ଲଗ-ଇନ କରିନାହାନ୍ତି । ଅଧିକ ସମ୍ପାଦନା କଲେ ଆପଣଙ୍କ IP Address ଟି ସମସ୍ତଙ୍କୁ ଦେଖାଯିବ । <strong>[$1ଲଗ ଇନ କଲେ]</strong> କିମ୍ବା <strong>[$2 ନୂଆ ଖାତାଟିଏ ତିଆରି କଲେ]</strong>, ଆପଣଙ୍କ ସମ୍ପାଦନାର ଶ୍ରେୟ ଅନ୍ୟାନ୍ୟ ସୁବିଧା ସହିତ ଆପଣଙ୍କ ଇଉଜର ନାମରେ ଦିଆହେବ ।",
        "anonpreviewwarning": "''ଆପଣ ଲଗ ଇନ କରି ନାହାନ୍ତି । ବଦଳକରି ସାଇତିଲେ ଆପଣଙ୍କର IP ଠିକଣା ଏହି ପୃଷ୍ଠାର ଇତିହାସରେ ସାଇତା ହୋଇଯିବ ।''",
        "missingsummary": "'''ଚେତାବନୀ:''' ଆପଣ ଏକ ସମ୍ପାଦନା ସାରକଥା ଦେଇନାହାନ୍ତି ।\nଯଦି ଆପଣ \"{{int:savearticle}}\"ରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ବଦଳ ସାରକଥା ବିନା ସାଇତା ହୋଇଯିବ ।",
+       "selfredirect": "<strong>ସାବଧନ :</strong> ଆପଣ ଏହି ପୃଷ୍ଠାଟିକୁ ତା ମଧ୍ୟକୁ ଲେଇଟାଉଛନ୍ତି । ଆପଣ ବୋଧ ହୁଏ ଭୁଲ ଲକ୍ଷସ୍ଥଳ ଦେଇଛନ୍ତି କିମ୍ବା ଭୁଲ ପୃଷ୍ଠଟିକୁ ବଦଳାଉଛନ୍ତି । \nଆପଣ ଯଦି \"{{int:savearticle}}\"ରେ ଆଉଥରେ କ୍ଲିକ କରିବେ ତେବେ ଲେଉଟାଣିଟି ଯାହା ହେଲେ ସାଇତା ହେଇଯିବା ।",
        "missingcommenttext": "ଦୟାକରି ତଳେ ଏକ ମତାମତ ଦିଅନ୍ତୁ ।",
        "missingcommentheader": "'''ଚେତାବନୀ:''' ଆପଣ ଏହି ମତଟି ନିମନ୍ତେ ଏକ ଶିରୋନାମା/ମୁଖ୍ୟ ନାମ ଦେଇନାହାନ୍ତି ।\nଯଦି ଆପଣ \"{{int:savearticle}}\"ରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ବଦଳ ସାରକଥା ବିନା ସାଇତା ହୋଇଯିବ ।",
        "summary-preview": "ସାରକଥା ଦେଖଣା:",
        "subject-preview": "ବିଷୟ/ଶିରୋନାମା ଦେଖଣା:",
+       "previewerrortext": "ଆପଣ ବଦଳାଇଥିବା ବଦଳ ଗୁଡିକୁ ଦେଖାଇବା ବେଳେ ଅସୁବିଧା ହେଲା ।",
        "blockedtitle": "ସଭ୍ୟଙ୍କୁ ଅଟକାଯାଇଅଛି",
        "blockedtext": "''' ଆପଣଙ୍କ ଇଉସରନେମକୁ ପ୍ରତିରୋଧ କରାଯାଇଛି\n\n$1 ଦ୍ଵାରା ପ୍ରତିରୋଧ କରାଯାଇଛି\nଦିଆଯାଇଥିବା କାରଣଟି ହେଉଛି $2\n\n* ପ୍ରତିରୋଧ ଆରମ୍ଭ : $8\n* ପ୍ରତିରୋଧ ଶେଷ : $6\n* ଅଭିପ୍ରେତ ପ୍ରତିରୋଧକରି : $7\n\nଏହି ପ୍ରତିରୋଧ ବିଷୟରେ ଅଧିକ ଜାଣିବାକୁ ଚାହୁଥିଲେ ଆପଣ $1 କିମ୍ବା [[{{MediaWiki:Grouppage-sysop}}|administrator]]ଙ୍କୁ ଯୋଗାଯୋଗ  କରିପାରିବେ ।\nଯେ ପର୍ଯ୍ୟନ୍ତ ଆପଣଙ୍କ [[Special:Preferences|account preferences]]ରେ ଗୋଟିଏ ଉପଲବ୍ଧ ଇମେଲ ଠିକଣା ଦିଆ ଯାଇନାହି ଏବଂ ଆପଣ ଏହାକୁ ବ୍ୟବହାର କରିବାରେ କିଛି ପ୍ରତିରୋଧ ଲଗାଯାଇଅଛି ସେ ପର୍ଯ୍ୟନ୍ତ ଆପଣ 'ଏହି ସଦସ୍ୟଙ୍କୁ ଲେଖନ୍ତୁ ' ବିଭାଗଟିକୁ ବ୍ୟବହାର କରିପାରିବେନି ।\nବର୍ତମାନ ଆପଣଙ୍କ ଆଇପି ଠିକଣା ହେଇଛି $3, ଏବଂ ପ୍ରତିରୋଧ ଆଇଡି ହେଉଛି #$5 ।\nଯଦି ଅପଙ୍କର କିଛି କହିବାକୁ ଥାଏ ତାହେଲେ ଆପଣଙ୍କ ଲେଖାରେ ଉପରୋକ୍ତ ଲେଖାଗୁଡ଼ିକ ଯୋଡିଦେବେ",
        "autoblockedtext": "ଆପଣଙ୍କ IP ଠିକଣାଟି ଆପେଆପେ ପ୍ରତିରୋଧ କରାଯାଇଛି କାରଣ ଏହା ଆଉ ଜଣେ ବ୍ୟବହାରକାରୀଙ୍କ ଦେଇ ବ୍ୟବହାର କରାଯାଇଛି, ଯେ $1ଙ୍କ ଦେଇ ଅଟକାଯାଇଛନ୍ତି ।\nଦିଆଯାଇଥିବା କାରଣ:\n\n:''$2''\n\n* ଅଟକ ଆରମ୍ଭ: $8\n* ଅଟକ ମିଆଦ ପୁରା: $6\n* କାହାକୁ ଅଟକାଯାଇଛି: $7\n\nଆପଣ $1ଙ୍କ ସହିତ ଯୋଗାଯୋଗ କରିପାରିବେ କିମ୍ବା [[{{MediaWiki:Grouppage-sysop}}|ପରିଛାମାନଙ୍କ]] ସହ ଅଟକ ବାବଦରେ ଆଲୋଚନା କରିପାରିବେ ।\n\nଜାଣିରଖନ୍ତୁ ଯେ [[Special:Preferences|ଆପଣଙ୍କ ପସନ୍ଦ]]ରେ ଏକ ସଠିକ ଇମେଲ ଠିକଣା ନଦେବା ଯାଏଁ ଓ ଅଟକରୁ ଛାଡ଼ ନହେବା ଯାଏଁ \"ଏହି ସଭ୍ୟଙ୍କୁ ଇମେଲ କରନ୍ତୁ\" ସୁବିଧାଟି ବ୍ୟବହାର କରିପାରିବେ ନାହିଁ ।\n\nଆପଣଙ୍କ ଏବେକାର IP ଠିକଣା ହେଲା $3, ଆଉ ଅଟକ ID ହେଲା #$5 ।\nଦୟାକରି ଆପଣ ପଚାରୁଥିବା ଯେକୌଣସି ପ୍ରଶ୍ନରେ ଉପରେ ଥିବା ସବିଶେଷ ଯୋଗ କରି ପଚାରିବେ ।",
        "content-model-text": "ଖାଲି ଲେଖା",
        "content-model-javascript": "ଜାଭାସ୍କ୍ରିପ୍ଟ",
        "content-model-css": "CSS",
+       "content-json-empty-object": "ଖାଲି ଅବଜେକ୍ଟ",
+       "content-json-empty-array": "ଖାଲି ଆରେ",
        "expensive-parserfunction-warning": "'''ଚେତାବନୀ:''' ଏହି ପୃଷ୍ଠାରେ ଅନେକ ଗୁଡ଼ିଏ ମୂଲ୍ୟବାନ ପାର୍ସର ଫଙ୍କସନ କଲ ଅଛି ।\n\nଏଥିରେ ଅତି କମରେ $2 ଗୋଟି {{PLURAL:$2|କଲ|କଲ}} ଥିବା ଲୋଡ଼ା, ଏବେ ଏଥିରେ {{PLURAL:$1|$1 ଗୋଟି କଲ ଅଛି|$1 ଗୋଟି କଲ ଅଛି}} ।",
        "expensive-parserfunction-category": "ଖୁବ ଅଧିକ ମୂଲ୍ୟବାନ ପାର୍ସର ଫଙ୍କସନ କଲ ଥିବା ପୃଷ୍ଠା",
        "post-expand-template-inclusion-warning": "'''ସୂଚନା:''' ଛାଞ୍ଚଟି ଖୁବ ବଡ଼ ଅଟେ ।\nକେତେଗୋଟି ଛାଞ୍ଚକୁ ନିଆଯିବ ନାହିଁ ।",
        "history-feed-description": "ଉଇକିରେ ଏହି ପୃଷ୍ଠାଟିପାଇଁ ସଙ୍କଳନ ଇତିହାସ",
        "history-feed-item-nocomment": "$2 ଠାରେ $1",
        "history-feed-empty": "ଅନୁରୋଧ କରାଯାଇଥିବା ପୃଷ୍ଠାଟି ନାହିଁ ।\nଏହା ଏହି ଉଇକିରୁ ଲିଭାଇ ଦିଆଯାଇଅଛି କିମ୍ବା ନୂଆ ନାମ ଦିଆଯାଇଅଛି ।\nପାଖାପାଖି ଏକା ନାମ ଥିବା ନୂଆ ପୃଷ୍ଠାମାନ [[Special:Search|ଏହି ଉଇକିରେ ଖୋଜନ୍ତୁ]] ।",
+       "history-edit-tags": "ବଛାଯାଇଥିବା ବଦଳଗୁଡିକର ଟାଗଗୁଡିକୁ ସମ୍ପାଦନା କରିବେ ।",
        "rev-deleted-comment": "(ସମ୍ପାଦନା ଇତିହାସ ଲିଭାଇଦିଆଗଲା)",
        "rev-deleted-user": "(ଇଉଜର ନାମ ବାହର କରିଦିଆଗଲା)",
-       "rev-deleted-event": "(ଲà¬\97 à¬\95ାମ ବାହାର କରିଦିଆଗଲା)",
+       "rev-deleted-event": "(ଲà¬\97 à¬¬à¬¿à¬¬à¬°à¬£à­\80 ବାହାର କରିଦିଆଗଲା)",
        "rev-deleted-user-contribs": "[ଇଉଜର ନାମ ବା IP ଠିକଣା ବାହାର କରିଦିଆଗଲା - ଅବଦାନସମୂହରୁ ଲୁଚାଯାଇଥିବା ସମ୍ପାଦନା]",
        "rev-deleted-text-permission": "ଏହି ପୃଷ୍ଠାର ସଂସ୍କରଣ '''ଲିଭାଇଦିଆଯାଇଛି'''।\nସବିଶେଷ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ଲିଭାଯିବା ଇତିହାସ]ରୁ ମିଳିପାରିବ ।",
        "rev-suppressed-text-permission": "ଏହି ପୃଷ୍ଠାର ସଂସ୍କରଣକୁ <strong>ଦବାଇଦିଆଯାଇଛି</strong> ।\nଅଧିକ ବିବରଣୀ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ଦବାଯାଇଥିବା ଇତିହାସ]ରୁ ପଢ଼ିପାରିବେ ।",
        "revdelete-legend": "ଦେଖଣା ବାରଣ ସବୁ ଥୟ କରନ୍ତୁ",
        "revdelete-hide-text": "ସଂସ୍କରଣ ଲେଖା",
        "revdelete-hide-image": "ଫାଇଲ ଭିତର ପଦାର୍ଥସବୁ ଲୁଚାଇଦିଅନ୍ତୁ",
-       "revdelete-hide-name": "à¬\95ାମ ଓ ଲକ୍ଷ ସବୁ ଲୁଚାଇଦିଅନ୍ତୁ",
+       "revdelete-hide-name": "ପରାମିà¬\9fର ଓ ଲକ୍ଷ ସବୁ ଲୁଚାଇଦିଅନ୍ତୁ",
        "revdelete-hide-comment": "ସାରକଥା ସମ୍ପାଦନା କରନ୍ତୁ",
        "revdelete-hide-user": "ସମ୍ପାଦକଙ୍କର ସଭ୍ୟ ନାମ /IP ଲୁଚାଇଦିଅନ୍ତୁ",
        "revdelete-hide-restricted": "ପରିଚାଳକ ଓ ବାକିମାନଙ୍କ ଠାରୁ ତଥ୍ୟକୁ ଦବାଇଦିଅନ୍ତୁ",
        "notextmatches": "ପୃଷ୍ଠାଟିର ନାମ ମିଶୁନାହିଁ",
        "prevn": "{{PLURAL:$1|$1}}ର ଆଗରୁ",
        "nextn": "{{PLURAL:$1|$1}} ପର",
+       "prev-page": "ପୂର୍ବ ପୃଷ୍ଠା",
+       "next-page": "ପର ପୃଷ୍ଠା",
        "prevn-title": "ଆଗରୁ ମିଳିଥିବା $1ଟି  {{PLURAL:$1|result|ଫଳ}}",
        "nextn-title": "ପର $1 {{PLURAL:$1|ଫଳାଫଳ|ଫଳାଫଳସବୁ}}",
        "shown-title": "$1 ପ୍ରତି ପୃଷ୍ଠାର {{PLURAL:$1|ଫଳାଫଳ|ଫଳାଫଳ}} ଦେଖାଇବେ ।",
        "search-result-category-size": "{{PLURAL:$1|ଜଣେ ସଭ୍ୟ|$1 ଜଣ ସଭ୍ୟ}} ({{PLURAL:$2|ଗୋଟିଏ ଶ୍ରେଣୀy|$2ଟି ଶ୍ରେଣୀ ସମୂହ}}, {{PLURAL:$3|ଗୋଟିଏ ଫାଇଲ|$3ଟି ଫାଇଲ}})",
        "search-redirect": "($1 କୁ ଆଗକୁ ବଢେଇନିଅ )",
        "search-section": "(ଭାଗ $1)",
+       "search-category": "(ଶ୍ରେଣୀ $1)",
        "search-file-match": "(ଫାଇଲରେ ଥିବା ବିଷୟବସ୍ତୁ ସାଙ୍ଗେ ମେଳ)",
        "search-suggest": "ଆପଣ $1 ଭାବି ଖୋଜିଥିଲେ କି?",
        "search-interwiki-caption": "ସାଙ୍ଗରେ ଚାଲିଥିବା ବାକି ପ୍ରକଳ୍ପସବୁ",
        "prefs-personal": "ସଭ୍ୟ ପ୍ରଫାଇଲ",
        "prefs-rc": "ନଗଦ ବଦଳ",
        "prefs-watchlist": "ଦେଖଣା ତାଲିକା",
+       "prefs-editwatchlist": "ଦେଖାତାଲିକା ବଦଳାଇବେ",
+       "prefs-editwatchlist-label": "ଆପଣଙ୍କ ଦେଖାତାଲିକାକୁ ବଦଳାଇବେ:",
+       "prefs-editwatchlist-edit": "ଆପଣଙ୍କ ଦେଖାତାଲିକାରେ ଥିବା ଶିରୋନାମା ଗୁଡିକୁ ଦେଖିବେ ଏବଂ କାଢିଦେବେ",
+       "prefs-editwatchlist-raw": "ସଜ ଦେଖାତାଲିକା ବଦଳାଇବେ",
+       "prefs-editwatchlist-clear": "ଆପଣଙ୍କ ଦେଖାତାଲିକା ସଫା କରିଦେବେ",
        "prefs-watchlist-days": "ଦେଖଣା ତାଲିକାରେ ଦେଖାଯିବା ଦିନ:",
        "prefs-watchlist-days-max": "ସବୁଠାରୁ ଅଧିକ ହେଲେ $1 {{PLURAL:$1|ଦିନ|ଦିନ}}",
        "prefs-watchlist-edits": "ବଢ଼ନ୍ତା ଦେଖଣା ତାଲିକାରେ ଦେଖିହେବା ଭଳି ସବୁଠାରୁ ଅଧିକ ବଦଲ:",
        "rcshowhideminor": "ଛୋଟମୋଟ ବଦଳ $1",
        "rcshowhideminor-show": "ଦେଖାଇବେ",
        "rcshowhideminor-hide": "ଲୁଚାଇବେ",
-       "rcshowhidebots": "ସ୍ୱୟଂଚାଳକ&nbsp;(Bot)&nbsp;ର&nbsp;ସମ୍ପାଦନା $1",
+       "rcshowhidebots": "$1 ବଟଗୁଡିକ",
        "rcshowhidebots-show": "ଦେଖାଇବେ",
        "rcshowhidebots-hide": "ଲୁଚାଇବେ",
        "rcshowhideliu": "ପଞ୍ଜୀକୃତ ସଭ୍ୟ $1",
        "rc-enhanced-expand": "ସବିଶେଷ ଦେଖାନ୍ତୁ",
        "rc-enhanced-hide": "ବେଶି କଥାସବୁ ଲୁଚାଇଦିଅ",
        "rc-old-title": "ପ୍ରକୃତରେ \"$1\" ଭାବେ ତିଆରି କରାଯାଇକଥିଲା",
-       "recentchangeslinked": "à¬\8fà¬\87ମାତà­\8dର à¬¬à¬¦à¬³à¬¾à¬¯à¬¾à¬\87ଥିବା à¬ªà­\83ଷà­\8dଠାର à¬²à¬¿à¬\99à­\8dà¬\95",
+       "recentchangeslinked": "ସମà­\8dପରà­\8dà¬\95ିତ à¬¬à¬¦à¬³",
        "recentchangeslinked-feed": "ସମ୍ପର୍କିତ ବଦଳ",
        "recentchangeslinked-toolbox": "ସମ୍ପର୍କିତ ବଦଳ",
        "recentchangeslinked-title": "\"$1\" ସହ ସମ୍ବନ୍ଧିତ ବଦଳ",
        "whatlinkshere": "ଏଠାରେ ଥିବା ଲିଙ୍କ",
        "whatlinkshere-title": "\"$1\" କୁ ପୃଷ୍ଠା ଲିଙ୍କ",
        "whatlinkshere-page": "ପୃଷ୍ଠା:",
-       "linkshere": "ଏହି ପୃଷ୍ଠା ସବୁ  '''[[:$1]]''' ସହ ଯୋଡା ଯାଇଅଛି:",
+       "linkshere": "ଏହି ପୃଷ୍ଠା ସବୁ  <strong>[[:$1]]</strong> ସହ ଯୋଡା ଯାଇଅଛି:",
        "nolinkshere": "'''[[:$1]]''' ସହିତ କୌଣସିଟି ପୃଷ୍ଠା ଯୋଡ଼ାଯାଇନାହିଁ ।",
        "nolinkshere-ns": "ବଛା ଯାଇଥିବା ନେମସ୍ପେସରେ '''[[:$1]]''' ନାଆଁ ସହ କୌଣସି ବି ପୃଷ୍ଠା ଯୋଡ଼ାଯାଇନାହିଁ ।",
        "isredirect": "ଆଉଥରେ ଫେରିବା ପୃଷ୍ଠା",
        "tooltip-pt-mycontris": "ଆପଣଙ୍କ ଅବଦାନ",
        "tooltip-pt-login": "ଆପଣଙ୍କୁ ଲଗ-ଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ",
        "tooltip-pt-logout": "ଲଗଆଉଟ",
+       "tooltip-pt-createaccount": "ଆପଣଙ୍କୁ ଗୋଟେ ଖାତା ଖୋଲି ଲଗ ଇନ କରିବା ପାଇଁ ପ୍ରୋତ୍ସାହିତ କରାଯାଉଛି, ଏମିତିବି ଏହା କରିବା ନିତାନ୍ତ ଆବଶ୍ୟକ ନୁହେଁ ।",
        "tooltip-ca-talk": "ଏହି ପୃଷ୍ଠାଟି ଉପରେ ଆଲୋଚନା",
        "tooltip-ca-edit": "ଆପଣ ଏହି ପୃଷ୍ଠାଟିରେ ଅଦଳ ବଦଳ କରିପାରିବେ, ତେବେ ସାଇତିବା ଆଗରୁ ଦେଖଣା ଦେଖନ୍ତୁ ।",
        "tooltip-ca-addsection": "ନୂଆ ବିଭାଗଟିଏ ଆରମ୍ଭ କରିବେ",
        "tooltip-t-recentchangeslinked": "ଏହି ପୃଷ୍ଠା ସଙ୍ଗେ ଯୋଡ଼ା ଫରଦଗୁଡ଼ିକରେ ଏବେ ଏବେ କରାଯାଇଥିବା ଅଦଳବଦଳ",
        "tooltip-feed-rss": "ଏହି ପୃଷ୍ଠାଟି ପାଇଁ RSS ଫିଡ଼",
        "tooltip-feed-atom": "ଏହି ପୃଷ୍ଠାଟି ପାଇଁ ଆଟମ ଫିଡ଼",
-       "tooltip-t-contributions": "à¬\8fହି à¬\87à¬\89à¬\9cରà¬\99à­\8dà¬\95ର à¬¦à­\87à¬\87 à¬\95ରାଯାà¬\87ଥିବା à¬¸à¬¬à­\81ଯାà¬\95 à¬¦à¬¾à¬¨ à¬¦à­\87à¬\96ାà¬\87ବା",
+       "tooltip-t-contributions": "à¬\8fହି à¬\87à¬\89à¬\9cରà¬\99à­\8dà¬\95ର à¬¦à­\8dଵାରା à¬¹à­\8bà¬\87ଥିବା à¬¬à¬¦à¬³ à¬¤à¬¾à¬²à¬¿à¬\95ା",
        "tooltip-t-emailuser": "ଏହି ସଭ୍ୟଙ୍କୁ ଇ-ମେଲଟିଏ ପଠାଇବେ",
        "tooltip-t-upload": "ଫାଇଲ ଅପଲୋଡ଼ କରିବେ",
        "tooltip-t-specialpages": "ବିଶେଷ ପୃଷ୍ଠାମାନଙ୍କର ଏକ ତାଲିକା",
        "tooltip-ca-nstab-category": "ଶ୍ରେଣୀ ପୃଷ୍ଠାଟିକୁ ଦେଖାଇବେ",
        "tooltip-minoredit": "ଏହାକୁ ଏକ ସାମାନ୍ୟ ସମ୍ପାଦନା ଭାବେ ଗଣିବେ",
        "tooltip-save": "ବଦଳଗୁଡ଼ିକ ସାଇତିବେ",
-       "tooltip-preview": "ସାଇତିବା ଆଗରୁ ନିଜର ସମ୍ପାଦନା ପରଖିନିଅନ୍ତୁ!",
+       "tooltip-preview": "ଦà­\9fାà¬\95ରି à¬¸à¬¾à¬\87ତିବା à¬\86à¬\97ରà­\81 à¬¨à¬¿à¬\9cର à¬¸à¬®à­\8dପାଦନା à¬ªà¬°à¬\96ିନିà¬\85ନà­\8dତà­\81!",
        "tooltip-diff": "ଏହି ଲେଖାରେ ଆପଣ କରିଥିବା ବଦଳଗୁଡିକୁ ଦେଖନ୍ତୁ ।",
        "tooltip-compareselectedversions": "ଏହି ଫରଦର ଦୁଇଟି ବଛାଯାଇଥିବା ସଁକଳନକୁ ତଉଲିବା",
        "tooltip-watch": "ଆପଣଙ୍କ ଦେଖାତାଲିକାରେ ଏଇ ପୃଷ୍ଠାଟି ମିଶାଇବେ",
index b3b6c91..3932055 100644 (file)
        "history-feed-description": "Historia wersji tej strony wiki",
        "history-feed-item-nocomment": "$1 o $2",
        "history-feed-empty": "Wybrana strona nie istnieje.\nMogła zostać usunięta lub jej nazwa została zmieniona.\nSpróbuj [[Special:Search|poszukać]] tej strony.",
+       "history-edit-tags": "Edytuj znaczniki wybranych wersji",
        "rev-deleted-comment": "(usunięto opis zmian)",
        "rev-deleted-user": "(nazwa użytkownika usunięta)",
        "rev-deleted-event": "(szczegóły usunięte)",
        "rev-showdeleted": "pokaż",
        "revisiondelete": "Usuń/odtwórz wersje",
        "revdelete-nooldid-title": "Nieprawidłowa wersja do przeprowadzenia operacji",
-       "revdelete-nooldid-text": "Nie wybrano wersji, na których ma zostać wykonana ta operacja,\nwybrana wersja nie istnieje lub próbowano ukryć wersję bieżącą.",
+       "revdelete-nooldid-text": "Nie wybrano żadnej wersji, na której ma zostać wykonana ta operacja, wybrana wersja nie istnieje lub próbowano ukryć wersję bieżącą.",
        "revdelete-no-file": "Wybrany plik nie istnieje.",
        "revdelete-show-file-confirm": "Czy jesteś pewien, że chcesz zobaczyć usuniętą wersję pliku „<nowiki>$1</nowiki>” z $2 o $3?",
        "revdelete-show-file-submit": "Tak",
        "difference-title-multipage": "Różnica pomiędzy stronami \"$1\" i \"$2\"",
        "difference-multipage": "(Różnica między stronami)",
        "lineno": "Linia $1:",
-       "compareselectedversions": "porównaj wybrane wersje",
+       "compareselectedversions": "Porównaj wybrane wersje",
        "showhideselectedversions": "Pokaż lub ukryj zaznaczone wersje",
        "editundo": "anuluj edycję",
        "diff-empty": "(Brak różnic)",
        "right-sendemail": "Wysyłanie e‐maili do innych użytkowników",
        "right-passwordreset": "Sprawdzanie treści e‐maila o resetowaniu hasła",
        "right-managechangetags": "Tworzenie i usuwanie [[Special:Tags|znaczników]] z bazy danych",
+       "right-applychangetags": "Wprowadzanie [[Special:Tags|znaczników]] wraz z własnymi zmianami",
+       "right-changetags": "Dodawanie i usuwanie dowolnych [[Special:Tags|znaczników]] z poszczególnych wersji i wpisów w rejestrze",
        "newuserlogpage": "Nowi użytkownicy",
        "newuserlogpagetext": "To jest rejestr ostatnio utworzonych kont użytkowników",
        "rightslog": "Uprawnienia",
        "action-editmyprivateinfo": "edycji swoich prywatnych danych",
        "action-editcontentmodel": "edycji modelu zawartości strony",
        "action-managechangetags": "utwórz lub usuń znaczniki z bazy danych",
+       "action-applychangetags": "wprowadzania znaczników wraz z własnymi zmianami",
+       "action-changetags": "dodawania i usuwania dowolnych znaczników z poszczególnych wersji i wpisów w rejestrze",
        "nchanges": "$1 {{PLURAL:$1|zmiana|zmiany|zmian}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od ostatniej wizyty}}",
        "enhancedrc-history": "historia",
        "historywarning": "<strong>Uwaga:</strong> Strona, którą chcesz usunąć, ma {{PLURAL:$1|jedną starszą wersję|$1 starsze wersje|$1 starszych wersji}}:",
        "confirmdeletetext": "Zamierzasz usunąć stronę razem z całą dotyczącą jej historią.\nUpewnij się, czy na pewno chcesz to zrobić, że rozumiesz konsekwencje i że robisz to w zgodzie z [[{{MediaWiki:Policy-url}}|zasadami]].",
        "actioncomplete": "Operacja wykonana",
-       "actionfailed": "Działanie nie powiodło się",
+       "actionfailed": "Operacja się nie powiodła",
        "deletedtext": "Usunięto „$1”.\nZobacz $2, które zostały ostatnio wykonane.",
        "dellogpage": "Usunięte",
        "dellogpagetext": "Poniżej znajduje się lista ostatnio wykonanych usunięć.",
        "patrol-log-page": "Rejestr patrolowania",
        "patrol-log-header": "Poniżej znajduje się rejestr patrolowania stron.",
        "log-show-hide-patrol": "$1 rejestr sprawdzania",
+       "log-show-hide-tag": "$1 rejestr znaczników",
        "deletedrevision": "Usunięto poprzednie wersje $1",
        "filedeleteerror-short": "Błąd przy usuwaniu pliku $1",
        "filedeleteerror-long": "Wystąpiły błędy przy usuwaniu pliku:\n\n$1",
        "tag-filter-submit": "Filtr",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Znacznik|Znaczniki}}]]: $2)",
        "tags-title": "Znaczniki",
-       "tags-intro": "Na tej stronie znajduje się lista znaczników, którymi oprogramowanie może oznaczyć edycje, oraz ich opisów.",
+       "tags-intro": "Na tej stronie znajduje się lista znaczników, którymi oprogramowanie może oznaczyć edycje, oraz ich opisy.",
        "tags-tag": "Nazwa znacznika",
        "tags-display-header": "Wystąpienia na listach zmian",
        "tags-description-header": "Pełny opis znaczenia",
        "tags-active-yes": "Tak",
        "tags-active-no": "Nie",
        "tags-source-extension": "Określony przez rozszerzenie",
-       "tags-source-manual": "Są wprowadzane ręcznie przez uczestników i boty",
+       "tags-source-manual": "Ręcznie wprowadzany przez użytkowników i boty",
        "tags-source-none": "Nieużywany",
        "tags-edit": "edytuj",
        "tags-delete": "usuń",
        "tags-activate": "aktywuj",
        "tags-deactivate": "dezaktywuj",
        "tags-hitcount": "$1 {{PLURAL:$1|zmiana|zmiany|zmian}}",
-       "tags-manage-no-permission": "Nie masz uprawnień do zarządzaniem zmianami znaczników.",
+       "tags-manage-no-permission": "Nie masz uprawnień do zarządzania znacznikami.",
        "tags-create-heading": "Utwórz nowy znacznik",
        "tags-create-explanation": "Nowe znaczniki będą dostępne domyślnie dla użytkowników i botów.",
        "tags-create-tag-name": "Nazwa znacznika:",
        "tags-create-invalid-chars": "Nazwy znaczników nie mogą zawierać przecinków (<code>,</code>) ani ukośników (<code>/</code>).",
        "tags-create-invalid-title-chars": "Nazwy znaczników nie mogą zawierać znaków, które nie mogą być używane w tytułach stron.",
        "tags-create-already-exists": "Znacznik „$1” już istnieje.",
-       "tags-create-warnings-above": "Następujące {{PLURAL:$2|ostrzeżenie jest |ostrzeżenia są}} wynikiem próby utworzenia znacznika \"$1\":",
+       "tags-create-warnings-above": "Następujące {{PLURAL:$2|ostrzeżenie jest|ostrzeżenia są}} wynikiem próby utworzenia znacznika „$1”:",
        "tags-create-warnings-below": "Czy chcesz kontynuować tworzenie znacznika?",
        "tags-delete-title": "Usuwanie znacznika",
        "tags-delete-explanation-initial": "Zamierzasz usunąć znacznik „$1” z bazy danych.",
-       "tags-delete-explanation-in-use": "It will be removed from {{PLURAL:$2|$2 revision or log entry|all $2 revisions and/or log entries}} to which it is currently applied.",
+       "tags-delete-explanation-in-use": "Zostanie usunięty {{PLURAL:$2|z $2 wersji lub wpisu w rejestrze|ze wszystkich $2 wersji i/lub wpisów w rejestrze}}, w {{PLURAL:$2|którym|których}} jest obecnie stosowany.",
        "tags-delete-explanation-warning": "To działanie jest <strong>nieodwracalne</strong> i <strong>nie może być wycofane</strong>, nawet przez administratorów bazy danych. Upewnij się, że chcesz usunąć te dane.",
-       "tags-delete-explanation-active": "<strong>Znacznik \"$1\" wciąż jest aktywny i będzie stosowany w przyszłości. </strong> Dla zaprzestania jego stosowania należy przejść do miejsca, w którym znacznik określono jako stosowany i usunąć tam to wskazanie.",
+       "tags-delete-explanation-active": "<strong>Znacznik „$1” wciąż jest aktywny i będzie stosowany w przyszłości. </strong> Dla zaprzestania jego stosowania należy przejść do miejsca, w którym znacznik określono jako stosowany i usunąć tam to wskazanie.",
        "tags-delete-reason": "Powód:",
        "tags-delete-submit": "Nieodwracalnie usuń ten znacznik",
-       "tags-delete-not-allowed": "Znaczniki zdefiniowane przez rozszerzenie nie mogą być usunięte chyba że dane rozszerzenie jawnie nas to zezwala.",
+       "tags-delete-not-allowed": "Znaczniki określone przez rozszerzenie nie mogą zostać usunięte, chyba że dane rozszerzenie jawnie na to zezwala.",
        "tags-delete-not-found": "Znacznik „$1” nie istnieje.",
        "tags-delete-too-many-uses": "Znacznik „$1” jest stosowany w więcej niż {{PLURAL:$2|jednej wersji|$2 wersjach}}, co oznacza, że nie może być usunięty.",
-       "tags-delete-warnings-after-delete": "Znacznik \"$1\" został usunięty pomyślnie, ale {{PLURAL:$2|stwierdzono następujące ostrzeżenie|stwierdzono następujące ostrzeżenia}}:",
+       "tags-delete-warnings-after-delete": "Znacznik „$1” został pomyślnie usunięty, ale {{PLURAL:$2|otrzymano następujące ostrzeżenie|otrzymano następujące ostrzeżenia}}:",
        "tags-activate-title": "Aktywacja znacznika",
        "tags-activate-question": "Zamierzasz aktywować znacznik „$1”.",
        "tags-activate-reason": "Powód:",
        "tags-deactivate-reason": "Powód:",
        "tags-deactivate-not-allowed": "Nie można dezaktywować znacznika „$1”.",
        "tags-deactivate-submit": "Dezaktywuj",
+       "tags-apply-no-permission": "Nie masz uprawnień do wprowadzania znaczników wraz z własnymi zmianami.",
+       "tags-apply-not-allowed-one": "Znacznik „$1” nie może zostać wprowadzony ręcznie.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Następujący znacznik nie może zostać wprowadzony ręcznie|Następujące znaczniki nie mogą zostać wprowadzone ręcznie}}: $1",
+       "tags-update-no-permission": "Nie masz uprawnień do dodawania lub usuwania znaczników z poszczególnych wersji lub wpisów w rejestrze.",
+       "tags-update-add-not-allowed-one": "Znacznik „$1” nie może zostać dodany ręcznie.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Następujący znacznik nie może zostać dodany ręcznie|Następujące znaczniki nie mogą zostać dodane ręcznie}}: $1",
        "tags-update-remove-not-allowed-one": "Znacznika „$1” nie można usunąć.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Następujący znacznik nie może zostać usunięty ręcznie|Następujące znaczniki nie mogą zostać usunięte ręcznie}}: $1",
        "tags-edit-title": "Edycja znaczników",
+       "tags-edit-manage-link": "Zarządzaj znacznikami",
        "tags-edit-revision-selected": "{{PLURAL:$1|Wybrana wersja|Wybrane wersje}} [[:$2]]:",
+       "tags-edit-logentry-selected": "{{PLURAL:$1|Wybrana operacja|Wybrane operacje}} z rejestru:",
+       "tags-edit-revision-legend": "Dodaj lub usuń znaczniki {{PLURAL:$1|w tej wersji|we wszystkich $1 wersjach}}",
+       "tags-edit-logentry-legend": "Dodaj lub usuń znaczniki {{PLURAL:$1|w tym wpisie|we wszystkich $1 wpisach}} w rejestrze",
        "tags-edit-existing-tags": "Istniejące znaczniki:",
+       "tags-edit-existing-tags-none": "''Brak''",
        "tags-edit-new-tags": "Nowe znaczniki:",
        "tags-edit-add": "Dodaj te znaczniki:",
        "tags-edit-remove": "Usuń te znaczniki:",
        "tags-edit-remove-all-tags": "(usuń wszystkie znaczniki)",
+       "tags-edit-chosen-placeholder": "Wybierz znaczniki",
        "tags-edit-chosen-no-results": "Brak znaczników pasujących do",
        "tags-edit-reason": "Powód:",
        "tags-edit-revision-submit": "Zastosuj zmiany do {{PLURAL:$1|tej|$1}} wersji",
+       "tags-edit-logentry-submit": "Zastosuj zmiany do {{PLURAL:$1|tego wpisu|$1 wpisów}} w rejestrze",
        "tags-edit-success": "Zmiany zostały zastosowane.",
        "tags-edit-failure": "Zmiany nie mogą być zastosowane:\n$1",
+       "tags-edit-nooldid-title": "Nieprawidłowa wersja docelowa",
+       "tags-edit-nooldid-text": "Nie wybrano żadnej wersji, na której ma zostać wykonana ta operacja lub wybrana wersja nie istnieje.",
+       "tags-edit-none-selected": "Proszę zaznaczyć co najmniej jeden znacznik do dodania lub usunięcia.",
        "comparepages": "Porównanie stron",
        "compare-page1": "Strona 1",
        "compare-page2": "Strona 2",
        "logentry-managetags-delete": "$1 {{GENDER:$2|usunął|usunęła}} znacznik \"$4\" (wykluczony z $5 {{PLURAL:$5|wersji lub wpisu dziennika|wersji i/lub wpisów dziennika}})",
        "logentry-managetags-activate": "$1 aktywował{{GENDER:$2||a}} znacznik \"$4\" do korzystania przez uczestników i boty",
        "logentry-managetags-deactivate": "$1 wyłączył{{GENDER:$2||a}} znacznik \"$4\" z korzystania przez uczestników i boty",
+       "log-name-tag": "Rejestr znaczników",
+       "log-description-tag": "Ta strona pokazuje zarejestrowane operacje dodawania lub usuwania [[Special:Tags|znaczników]] z poszczególnych wersji lub wpisów w rejestrze. Niniejszy rejestr nie uwzględnia oznakowań, gdy dokonywane są w trakcie edycji, usuwania lub podobnej operacji.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|dodał|dodała}} {{PLURAL:$7|znacznik|znaczniki}} $6 do wersji $4 strony $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|dodał|dodała}} {{PLURAL:$7|znacznik|znaczniki}} $6 do wpisu w rejestrze $5 strony $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|usunął|usunęła}} {{PLURAL:$9|znacznik|znaczniki}} $8 z wersji $4 strony $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|usunął|usunęła}} {{PLURAL:$9|znacznik|znaczniki}} $8 z wpisu w rejestrze $5 strony $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2|zmienił|zmieniła}} znaczniki w wersji $4 strony $3 ({{PLURAL:$7|dodano}} $6; {{PLURAL:$9|usunięto}} $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2|zmienił|zmieniła}} znaczniki we wpisie w rejestrze $5 strony $3 ({{PLURAL:$7|dodano}} $6; {{PLURAL:$9|usunięto}} $8)",
        "rightsnone": "brak",
        "revdelete-summary": "opis zmian",
        "feedback-adding": "Dodawanie opinii do strony...",
index 04b979d..849d72c 100644 (file)
        "history-feed-description": "Stòria dla pàgina ansima a sto sit-sì",
        "history-feed-item-nocomment": "$1 al $2",
        "history-feed-empty": "La pàgina che a l'ha ciamà a-i é pa; a podrìa esse stàita scancelà da 'nt ël sit, ò pura tramudà a n'àutr nòm.\n\nChe a verìfica con la [[Special:Search|pàgina d'arserca]] se a-i fusso mai dj'àutre pàgine che a podèisso andeje bin.",
+       "history-edit-tags": "Modifiché le tichëtte dle revision selessionà",
        "rev-deleted-comment": "(resumé dla modìfica gavà)",
        "rev-deleted-user": "(stranòm gavà)",
        "rev-deleted-event": "(detaj dël registr gavà)",
        "rev-showdeleted": "Mostra",
        "revisiondelete": "Scancela/disdëscancela revision",
        "revdelete-nooldid-title": "Version nen spessificà",
-       "revdelete-nooldid-text": "A l'ha nen spessificà na version ëd la pàgina për aplicheje costa fonsion, la version spessificà a esist pa, o a preuva a stërmé la version corenta.",
+       "revdelete-nooldid-text": "A l'ha nen spessificà na version ëd la pàgina për aplicheje costa fonsion, la version spessificà a esist pa, opura a l'é an camin ch'a preuva a stërmé la version corenta.",
        "revdelete-no-file": "L'archivi sërcà a-i é pa.",
        "revdelete-show-file-confirm": "É-lo sigur ëd vorèj vëdde na vërsion scancelà dl'archivi \"<nowiki>$1</nowiki>\" da $2 a $3?",
        "revdelete-show-file-submit": "Bò!",
        "right-sendemail": "Mandé un mëssagi an pòsta eletrònica a j'àutri utent",
        "right-passwordreset": "Vëdde ij mëssagi ëd pòsta eletrònica ëd riampostassion dle ciav",
        "right-managechangetags": "Creé e dëscancelé dle [[Special:Tags|tichëtte]] da la base ëd dàit",
+       "right-applychangetags": "Apliché [[Special:Tags|le tichëtte]] con soe pròpie modìfiche",
+       "right-changetags": "Gionté e gavé dle [[Special:Tags|tichëtte]] qualsëssìa an s'dle revision andividuaj e dle vos d'argistr",
        "newuserlogpage": "Registr dla creassion dj'utent",
        "newuserlogpagetext": "Sossì a l'é un registr andova ch'as marco le creassion dj'utent.",
        "rightslog": "Argistr dij drit ëd j'utent",
        "action-editmyprivateinfo": "modifiché soe anformassion përsonaj",
        "action-editcontentmodel": "modifiché ël model ëd contnù ëd na pàgina",
        "action-managechangetags": "creé e dëscancelé dle tichëtte da la base ëd dàit",
+       "action-applychangetags": "apliché le tichëtte con soe modìfiche",
+       "action-changetags": "gionté e gavé dle tichëtte qualsëssìa an s'dle revision andividuaj e dle vos d'argistr",
        "nchanges": "$1 {{PLURAL:$1|modìfica|modìfiche}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|da l'ùltima visita}}",
        "enhancedrc-history": "stòria",
        "listfiles-delete": "scancelé",
        "listfiles-summary": "Sta pàgina special-sì a smon tuti j'archivi ch'a son ëstàit carià.",
        "listfiles_search_for": "Arserché un nòm d'archivi multimojen:",
+       "listfiles-userdoesnotexist": "Ël cont utent «$1» a l'é nen argistrà.",
        "imgfile": "archivi",
        "listfiles": "Lista d'archivi",
        "listfiles_thumb": "Miniadura",
        "logempty": "Pa gnun element parèj che a sia trovasse ant ij registr.",
        "log-title-wildcard": "Sërché ant ij tìtoj ch'as anandio për",
        "showhideselectedlogentries": "Smon-e/stërmé le vos ëd registr selessionà",
+       "log-edit-tags": "Modiché le tichëtte dle vos d'argistr selessionà",
        "allpages": "Tute le pàgine",
        "nextpage": "Pàgina che a-i ven ($1)",
        "prevpage": "Pàgina anans ($1)",
        "import-interwiki-history": "Copié tute le revision ëd la stòria ëd costa pàgina",
        "import-interwiki-templates": "Anserì tùit jë stamp",
        "import-interwiki-submit": "Amporté",
-       "import-interwiki-namespace": "Spassi nominal ëd destinassion:",
-       "import-interwiki-rootpage": "Pàgina prinsipal ëd destinassion (opsional):",
+       "import-mapping-default": "Amporté ant le locassion ëstàndard",
+       "import-mapping-namespace": "Amporté vers në spassi nominal:",
+       "import-mapping-subpage": "Amporté coma sot-pàgine ëd costa pàgina:",
        "import-upload-filename": "Nòm ëd l'archivi:",
        "import-comment": "Oget:",
        "importtext": "Për piasì, che as espòrta l'archivi da 'nt la sorgiss wiki ën dovrand l'[[Special:Export|utiss d'esportassion]]. \nChe as lo salva ansima a sò ordinator e peui che a lo caria ambelessì.",
        "pageinfo-protect-cascading-yes": "É!",
        "pageinfo-protect-cascading-from": "Le protession a son a cascada da",
        "pageinfo-category-info": "Anformassion an sla categorìa",
+       "pageinfo-category-total": "Nùmer total ëd mèmber",
        "pageinfo-category-pages": "Nùmer ëd pàgine",
        "pageinfo-category-subcats": "Nùmer ëd sot-categorìe",
        "pageinfo-category-files": "Nùmer d'archivi",
        "patrol-log-page": "Registr dij contròj",
        "patrol-log-header": "Cost-sì a l'é un registr ëd le revision controlà.",
        "log-show-hide-patrol": "$1 registr verificà",
+       "log-show-hide-tag": "tichëtta d'argistr $1",
        "deletedrevision": "Veja version scancelà $1",
        "filedeleteerror-short": "Eror ën scanceland l'archivi: $1",
        "filedeleteerror-long": "A-i son ësta-ie dj'eror ën scanceland l'archivi:\n\n$1",
        "tags-deactivate-reason": "Rason:",
        "tags-deactivate-not-allowed": "A l'é nen possìbil disativé la tichëtta «$1».",
        "tags-deactivate-submit": "Disativé",
+       "tags-apply-no-permission": "A l'ha nen ël drit d'apliché dle tichëtte ëd modìfica ansema a soe modìfiche.",
+       "tags-apply-not-allowed-one": "La tichëtta «$1» a peul nen esse aplicà a man.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|La tichëtta sì-dapress a peul|Le tichëtte sì dapress a peulo}} nen esse aplicà a man: $1",
+       "tags-update-no-permission": "A l'ha nen ël drit ëd gionté o gavé dle tichëtte ëd modìfica da dle revision andividuaj o dle vos d'argistr.",
+       "tags-update-add-not-allowed-one": "La tichëtta «$1» a peul nen esse giontà a man.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|La tichëtta sì-dapress a peul|Le tichëtte sì-dapress a peulo}} nen esse giontà a man: $1",
+       "tags-update-remove-not-allowed-one": "La tichëtta «$1» a peul nen esse gavà.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|La tichëtta sì-dapress a peul|Le tichëtte sì-dapress a peulo}} pa esse gavà a man: $1",
        "comparepages": "Confronté dle pàgine",
        "compare-page1": "Pàgina 1",
        "compare-page2": "Pàgina 2",
index 401f403..e51d30f 100644 (file)
        "missingcommentheader": "'''Lembrete:''' Você não introduziu um assunto/título para este comentário.\nSe você clicar novamente \"{{int:savearticle}}\", a sua edição será salva sem um assunto/título.",
        "summary-preview": "Previsão de sumário:",
        "subject-preview": "Previsão do assunto/título:",
+       "previewerrortext": "Ocorreu um erro ao tentar pré-visualizar suas alterações.",
        "blockedtitle": "O usuário está bloqueado",
        "blockedtext": "'''O seu nome de usuário ou endereço de IP foi bloqueado.'''\n\nO bloqueio foi realizado por $1.\nO motivo apresentado foi ''$2''.\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destino do bloqueio: $7\n\nVocê pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.\n\nVocê só poderá utilizar a funcionalidade \"Contatar usuário\" se um endereço de ''e-mail'' válido estiver especificado em suas [[Special:Preferences|preferências de usuário]] e você não tiver sido bloqueado de utilizar tal recurso.\nO seu endereço de IP atual é $3 e a ID de bloqueio é #$5.\nPor favor, inclua todos os detalhes acima em quaisquer tentativas de esclarecimento.",
        "autoblockedtext": "O seu endereço de IP foi bloqueado de forma automática, uma vez que foi utilizado recentemente por outro usuário, o qual foi bloqueado por $1.\nO motivo apresentado foi:\n\n:''$2''\n\n* Início do bloqueio: $8\n* Expiração do bloqueio: $6\n* Destino do bloqueio: $7\n\nVocê pode contatar $1 ou outro [[{{MediaWiki:Grouppage-sysop}}|administrador]] para discutir sobre o bloqueio.\n\nNote que não poderá utilizar a funcionalidade \"Contatar usuário\" se não possuir uma conta nesta wiki ({{SITENAME}}) com um endereço de ''e-mail'' válido indicado nas suas [[Special:Preferences|preferências de usuário]] ou se tiver sido bloqueado de utilizar tal recurso.\n\nSeu endereço de IP no momento é $3 e sua ID de bloqueio é #$5.\nPor favor, inclua tais dados em qualquer tentativa de esclarecimentos que for realizar.",
        "right-sendemail": "Enviar email a outros usuários",
        "right-passwordreset": "Ver todos os e-mails de reposição de senhas",
        "right-managechangetags": "Criar e apagar [[Special:Tags|tags]] na base de dados",
+       "right-applychangetags": "Aplicar [[Especial:Etiquetas|etiquetas]] juntamente com as alterações de alguém",
+       "right-changetags": "Adicionar e remover [[Especial:Etiquetas|etiquetas]] arbitrárias em revisões e ''logs'' individuais",
        "newuserlogpage": "Registro de criação de usuários",
        "newuserlogpagetext": "Este é um registro de novas contas de usuário",
        "rightslog": "Registro de privilégios de usuário",
        "action-editmyprivateinfo": "modifique suas informações privadas",
        "action-editcontentmodel": "editar o conteudo do modelo de uma pagina",
        "action-managechangetags": "Criar e apagar etiquetas da base de dados",
+       "action-applychangetags": "aplicar etiquetas juntamente com suas alterações",
+       "action-changetags": "adicionar e remover etiquetas arbitrárias em revisões e ''logs'' individuais",
        "nchanges": "$1 {{PLURAL:$1|alteração|alterações}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|desde a última visita}}",
        "enhancedrc-history": "histórico",
        "logempty": "Nenhum item idêntico no registro.",
        "log-title-wildcard": "Procurar por títulos que sejam iniciados com o seguinte texto",
        "showhideselectedlogentries": "Exibir/ocultar os itens de registros selecionados",
+       "log-edit-tags": "Editar etiquetas das entradas selecionadas",
        "allpages": "Todas as páginas",
        "nextpage": "Próxima página ($1)",
        "prevpage": "Página anterior ($1)",
        "emailccsubject": "Cópia de sua mensagem para $1: $2",
        "emailsent": "E-mail enviado",
        "emailsenttext": "Sua mensagem foi enviada.",
-       "emailuserfooter": "Este e-mail foi enviado por $1 para $2 através da opção de \"enviar e-mail ao usuário\" da {{SITENAME}}.",
+       "emailuserfooter": "Este email foi enviado por $1 para $2 através da função\"{{int:emailpage}}\" do site {{SITENAME}}.",
        "usermessage-summary": "Deixar mensagem de sistema.",
        "usermessage-editor": "Mensagens de sistema",
        "watchlist": "Páginas vigiadas",
        "import-interwiki-history": "Copiar todas as edições para esta página",
        "import-interwiki-templates": "Incluir todas as predefinições",
        "import-interwiki-submit": "Importar",
+       "import-mapping-default": "Importar locais padrão",
+       "import-mapping-namespace": "Importar para o espaço nominal:",
+       "import-mapping-subpage": "Importar como sub-página da seguinte pagina:",
        "import-upload-filename": "Nome do arquivo:",
        "import-comment": "Comentário:",
        "importtext": "Por favor, exporte o arquivo do wiki de origem utilizando a página especial [[Special:Export|exportação de páginas]].\nSalve o arquivo no seu computador e importe-o aqui.",
        "pageinfo-protect-cascading-yes": "Sim",
        "pageinfo-protect-cascading-from": "Proteções herdadas de",
        "pageinfo-category-info": "Informações da categoria",
+       "pageinfo-category-total": "Total de membros",
        "pageinfo-category-pages": "Número de páginas",
        "pageinfo-category-subcats": "Número de subcategorias",
        "pageinfo-category-files": "Número de arquivos",
        "patrol-log-page": "Registro de edições patrulhadas",
        "patrol-log-header": "Este é um registro de edições patrulhadas.",
        "log-show-hide-patrol": "$1 registro de edições patrulhadas",
+       "log-show-hide-tag": "$1 etiqueta de log",
        "deletedrevision": "Apagou a versão antiga $1",
        "filedeleteerror-short": "Erro ao eliminar arquivo: $1",
        "filedeleteerror-long": "Foram encontrados erros ao tentar eliminar o arquivo:\n\n$1",
        "tags-activate-submit": "Ativar",
        "tags-deactivate-title": "Desativar etiqueta",
        "tags-deactivate-submit": "Desativar",
+       "tags-edit-manage-link": "Gerenciar etiquetas",
+       "tags-edit-existing-tags": "Etiquetas existentes:",
+       "tags-edit-new-tags": "Novas etiquetas:",
+       "tags-edit-add": "Adicionar estas etiquetas:",
+       "tags-edit-remove": "Remover estas etiquetas:",
+       "tags-edit-chosen-placeholder": "Selecionar algumas etiquetas",
        "comparepages": "Comparar páginas",
        "compare-page1": "Página 1",
        "compare-page2": "Página 2",
index f4d1e40..a7b5524 100644 (file)
        "redirect-text": "Inside fieldset for [[Special:Redirect]]",
        "redirect-summary": "Shown at top of [[Special:Redirect]]",
        "redirect-submit": "Button label in [[Special:Redirect]].\n{{Identical|Go}}",
-       "redirect-lookup": "First field label in [[Special:Redirect]].\n\nFollowed by the select box which has the following options:\n* {{msg-mw|Redirect-user}}\n* {{msg-mw|Redirect-page}}\n* {{msg-mw|Redirect-revision}}\n* {{msg-mw|Redirect-file}}",
+       "redirect-lookup": "First field label in [[Special:Redirect]].\n\nFollowed by the select box which has the following options:\n* {{msg-mw|Redirect-user}}\n* {{msg-mw|Redirect-page}}\n* {{msg-mw|Redirect-revision}}\n* {{msg-mw|Redirect-file}}\n{{Identical|Lookup}}",
        "redirect-value": "Second field label in [[Special:Redirect]]\n{{Identical|Value}}",
        "redirect-user": "Description of lookup type for [[Special:Redirect]].\n{{Identical|User ID}}",
        "redirect-page": "Description of lookup type for [[Special:Redirect]].\n{{Identical|Page ID}}",
index d91d094..8d4a1e8 100644 (file)
        "querypage-disabled": "Kay sapaq p'anqamanqa ama nisqam allinta llamk'anapaq.",
        "booksources": "Liwrukunapi pukyukuna",
        "booksources-search-legend": "Liwrukunapi pukyukunata maskay",
+       "booksources-search": "Maskay",
        "booksources-text": "Kay qatiqpiqa huk llika tiyaykunaman t'inkikunatam rikunki, musuq icha mawk'a liwrukunata qhatuq, maskasqayki liwrukunamantachá astawan willaq:",
        "booksources-invalid-isbn": "ISBN huchhaqa manachá allinchu; pantasqata llanchiriy qallariy qillqamanta iskaychamuspa.",
        "specialloguserlabel": "Rurapuq:",
        "import-interwiki-history": "Kay p'anqapaq tukuy wiñay kawsaynintinta iskaychay",
        "import-interwiki-templates": "Tukuy plantillakunapas",
        "import-interwiki-submit": "Hawamanta chaskiy",
-       "import-interwiki-namespace": "Kay suti k'itiman churay:",
-       "import-interwiki-rootpage": "Taripana saphi p'anqa (akllanalla):",
        "import-upload-filename": "Willañiqip sutin:",
        "import-comment": "Willayniyki:",
        "importtext": "Ama hina kaspa, willañiqita qallariy wikimanta [[Special:Export|hawaman quna llamk'anawan]] hawaman quy antañiqiqniykipi waqaychaspa, chaymantataq kaypi churkuy.",
        "tooltip-pt-mycontris": "Llamk'apusqaykikuna",
        "tooltip-pt-login": "Kallpachaykiku yaykunaykiqa allinmi nispa, mana manu kanayki kaptinpas",
        "tooltip-pt-logout": "Llamk'apuy tiyaymanta lluqsiy",
+       "tooltip-pt-createaccount": "Rakiquna kamarispayki yaykunaykiqa allinchá kanman, hinaspapas ruranayki manam tiyanchu.",
        "tooltip-ca-talk": "Qillqasqap samiqninmanta rimanakuna p'anqa",
        "tooltip-ca-edit": "Kay p'anqata llamk'apuytam atinki. Ama hina kaspa, manaraq waqaychaspa ñawpaqta qhawarillay.",
        "tooltip-ca-addsection": "Musuq rakita qallariy",
index 8ce5c62..e85c1f7 100644 (file)
        "import-interwiki-history": "Copiază toate versiunile istoricului acestei pagini",
        "import-interwiki-templates": "Includeți toate formatele",
        "import-interwiki-submit": "Importă",
+       "import-mapping-default": "Importă către destinațiile implicite",
+       "import-mapping-namespace": "Importă către un spațiu de nume:",
+       "import-mapping-subpage": "Importă ca subpagini ale următoarei pagini:",
        "import-upload-filename": "Nume fișier:",
        "import-comment": "Comentariu:",
        "importtext": "Vă rugăm să exportați fișierul din wikiul sursă folosind [[Special:Export|utilitarul de exportare]].\nSalvați-l pe calculatorul dumneavoastră și încărcați-l aici.",
index 7bdaf27..ca615f0 100644 (file)
        "searchrelated": "colleghete",
        "searchall": "tutte",
        "showingresults": "Stoche a fazze vedè aqquà sotte {{PLURAL:$1|'''1''' resultete|'''$1''' resultete}} ca accumenzene cu #'''$2'''.",
+       "search-showingresults": "{{PLURAL:$4|Resultate <strong>$1</strong> de <strong>$3</strong>|Resultate <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "Non ge stonne resultete ca soddisfecene l'inderrogazione.",
        "powersearch-legend": "Ricerche avanzete",
        "powersearch-ns": "Cirche jndr'à le namespace:",
        "rcnotefrom": "Sotte {{PLURAL:$5|ste 'u cangiamende|stonne le cangiaminde}} da <strong>$3, $4</strong> ('nzigne a <strong>$1</strong> fatte vedè).",
        "rclistfrom": "Fà vedè le urteme cangiaminde partenne da $3 $2",
        "rcshowhideminor": "$1 cangiaminde stuèdeche",
+       "rcshowhideminor-hide": "Scunne",
        "rcshowhidebots": "$1 bot",
+       "rcshowhidebots-show": "Fà vedè",
        "rcshowhideliu": "$1 utinde reggistrate",
+       "rcshowhideliu-hide": "Scunne",
        "rcshowhideanons": "$1 utende scanusciute",
+       "rcshowhideanons-hide": "Scunne",
        "rcshowhidepatr": "$1 cangiaminde condrollete",
        "rcshowhidemine": "$1 cangiaminde mie",
+       "rcshowhidemine-hide": "Scunne",
        "rclinks": "Vide l'urteme $1 cangiaminde jndr'à l'urteme $2 sciurne<br />$3",
        "diff": "diff",
        "hist": "cunde",
index 93681e9..364ac15 100644 (file)
        "protect-othertime": "Другое время:",
        "protect-othertime-op": "другое время",
        "protect-existing-expiry": "Текущее время окончания: $2, $3",
-       "protect-existing-expiry-infinity": "Текущее время окончания: бесконечно",
+       "protect-existing-expiry-infinity": "Текущее время окончания: бессрочно",
        "protect-otherreason": "Другая причина/дополнение:",
        "protect-otherreason-op": "Другая причина",
        "protect-dropdown": "* Типовые причины защиты\n** частый вандализм\n** чрезмерный спам\n** непродуктивная война правок\n** популярная страница",
        "import-interwiki-history": "Копировать всю историю изменений этой страницы",
        "import-interwiki-templates": "Включить все шаблоны",
        "import-interwiki-submit": "Импортировать",
+       "import-mapping-namespace": "Импортировать в пространство имён:",
        "import-upload-filename": "Имя файла:",
        "import-comment": "Примечание:",
        "importtext": "Пожалуйста, экспортируйте страницу из исходной вики, используя [[Special:Export|соответствующий инструмент]]. Сохраните файл на диск, а затем загрузите его сюда.",
        "pageinfo-protect-cascading-yes": "Да",
        "pageinfo-protect-cascading-from": "Каскадная защита от",
        "pageinfo-category-info": "Информация о категории",
+       "pageinfo-category-total": "Общее число членов",
        "pageinfo-category-pages": "Количество страниц",
        "pageinfo-category-subcats": "Количество подкатегорий",
        "pageinfo-category-files": "Количество файлов",
index aa1c8d5..a275987 100644 (file)
        "querypage-disabled": "समाचरणकारणेन एतद्विशेषपुटं निष्क्रियम् ।",
        "booksources": "ग्रन्थस्रोतः",
        "booksources-search-legend": "ग्रन्थस्रोतः अन्विष्यताम्",
+       "booksources-search": "अन्विष्यताम्",
        "booksources-text": "अधस्था आवली नूतनप्राचीनपुस्तकानां विक्रयकेन्द्रस्य अनुबन्धान् सूचयति । यत्र ते  आवश्यकाः अन्यविषयाः अपि उपलभ्याः ।",
        "booksources-invalid-isbn": "दत्तं ISBN मान्यम् इति  न भाति । मूलस्रोततः प्रतिकृतीः कर्तुं परिशीलयतु ।",
        "specialloguserlabel": "आचारी :",
        "revdelete-uname-unhid": "योजकस्य नाम न लोपितम्",
        "revdelete-restricted": "प्रबन्धकानां प्रतिबन्धनानि आरोपितानि",
        "revdelete-unrestricted": "प्रबन्धकानां प्रतिबन्धनानि निष्कासितानि",
-       "logentry-move-move": "$1 इति प्रयोक्त्रा $3 इत्येतत् $4 इत्येतत् प्रति चालितम्",
+       "logentry-move-move": "$1 {{GENDER:$2|moved}} $3 पुटं $4 प्रति चालितम्",
        "logentry-move-move-noredirect": "$1 इति प्रयोक्त्रा $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणेन विना",
        "logentry-move-move_redir": "↓\n$1 इत्यनेन $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणम् अतिक्रम्य",
        "logentry-move-move_redir-noredirect": "$1 इति प्रयोक्त्रा $3 इति पृष्ठं $4 इत्येतत् प्रति चालितम्, अनुप्रेषणम् अतिक्रम्य, अनुप्रेषणमोचनेन च विना।",
        "logentry-rights-rights": "$1 इत्ययं $3 इत्यस्य समूहसदस्यतां $4 इत्यतः परिवर्त्य $5 इत्यकरोत्",
        "logentry-rights-rights-legacy": "$1, $3 इत्यस्मै समूहसदस्यतां पर्यवर्तयत्",
        "logentry-rights-autopromote": "$1 इत्ययं स्वचालितरूपेण $4 इत्यतः $5 इति यावत् पदोन्नतः",
+       "logentry-upload-upload": "$1 {{GENDER:$2|निवेशितम्}} $3",
        "rightsnone": "(कतम)",
        "revdelete-summary": "सम्पादनसांक्षेपिक",
        "feedback-adding": "पृष्ठे प्रतिस्पन्दः योजनीयः ...",
index b1eeec0..89fd920 100644 (file)
@@ -29,7 +29,8 @@
                        "아라",
                        "Matthew Greg",
                        "Ата",
-                       "Macofe"
+                       "Macofe",
+                       "TomášPolonec"
                ]
        },
        "tog-underline": "Podčiarkovať odkazy:",
@@ -56,7 +57,7 @@
        "tog-shownumberswatching": "Zobraziť počet používateľov sledujúcich stránku",
        "tog-oldsig": "Súčasný podpis:",
        "tog-fancysig": "Považovať podpisy za wikitext (bez automatických odkazov)",
-       "tog-uselivepreview": "Používať živý náhľad (experimentálna funkcia)",
+       "tog-uselivepreview": "Používať živý náhľad",
        "tog-forceeditsummary": "Upozoriť ma, keď nevyplním zhrnutie úprav",
        "tog-watchlisthideown": "Skryť moje úpravy zo zoznamu sledovaných",
        "tog-watchlisthidebots": "Skryť úpravy botov zo zoznamu sledovaných",
        "october-date": "$1. októbra",
        "november-date": "$1. novembra",
        "december-date": "$1. decembra",
-       "pagecategories": "{{PLURAL:$1|Kategória|Kategórie|Kategórie}}",
+       "pagecategories": "{{PLURAL:$1|Kategória|Kategórie|Kategórií}}",
        "category_header": "Stránky v kategórii „$1“",
        "subcategories": "Podkategórie",
        "category-media-header": "Multimediálne súbory v kategórii „$1“",
        "personaltools": "Osobné nástroje",
        "articlepage": "Zobraziť stránku",
        "talk": "Diskusia",
-       "views": "Zobrazení",
+       "views": "Zobrazenia",
        "toolbox": "Nástroje",
        "userpage": "Zobraziť stránku používateľa",
        "projectpage": "Zobraziť projektovú stránku",
        "pool-queuefull": "Front je plný",
        "pool-errorunknown": "Neznáma chyba",
        "pool-servererror": "Služba riadiaca prístup k serverom nieje dostupná ($1).",
+       "poolcounter-usage-error": "Chyba použitia: $1",
        "aboutsite": "O {{GRAMMAR:lokál|{{SITENAME}}}}",
        "aboutpage": "Project:Úvod",
        "copyright": "Obsah je dostupný pod $1, pokiaľ nie je uvedené inak.",
        "disclaimers": "Vylúčenie zodpovednosti",
        "disclaimerpage": "Project:Vylúčenie zodpovednosti",
        "edithelp": "Ako upravovať stránku",
+       "helppage-top-gethelp": "Pomoc",
        "mainpage": "Hlavná stránka",
        "mainpage-description": "Hlavná stránka",
        "policy-url": "Project:Zásady a smernice",
        "readonly_lag": "Databáza bola automaticky zamknutá pokým záložné databázové servery nedoženú hlavný server",
        "internalerror": "Vnútorná chyba",
        "internalerror_info": "Vnútorná chyba: $1",
+       "internalerror-fatal-exception": "Kritická výnimka typu „$1“",
        "filecopyerror": "Nebolo možné skopírovať súbor „$1“ na „$2“.",
        "filerenameerror": "Nebolo možné premenovať súbor „$1“ na „$2“.",
        "filedeleteerror": "Nebolo možné vymazať súbor „$1“.",
        "directorycreateerror": "Nebolo možné vytvoriť adresár „$1“.",
+       "directoryreadonlyerror": "Adresár \"$1\" je iba na čítanie.",
+       "directorynotreadableerror": "Adresár \"$1\" sa nedá čítať.",
        "filenotfound": "Nebolo možné nájsť súbor „$1“.",
        "unexpected": "Neočakávaná hodnota: „$1“=„$2“.",
        "formerror": "Chyba: nepodarilo sa odoslať formulár",
        "viewyourtext": "Môžete si prehliadnuť a skopírovať zdrojový kód <strong>vašich úprav</strong> tejto stránky:",
        "protectedinterface": "Táto stránka poskytuje text používateľského rozhrania tejto wiki a je zamknutá, aby sa predišlo jej zneužitiu.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
        "editinginterface": "'''Upozornenie:''' Upravujete stránku, ktorá poskytuje text používateľského rozhrania.\nZmeny tejto stránky ovplyvnia vzhľad používateľského rozhrania ostatným používateľom.\nAk chcete pridať alebo zmeniť preklady pre všetky wiki, prosím, použite [//translatewiki.net/ translatewiki.net], projekt lokalizácie MediaWiki.",
+       "translateinterface": "Na pridanie a zmeny prekladov pre všetky wiki použite [//translatewiki.net/ translatewiki.net], projekt na lokalizáciu MediaWiki.",
        "cascadeprotected": "Táto stránka bola zamknutá proti úpravám, pretože je použitá na {{PLURAL:$1|nasledovnej stránke, ktorá je zamknutá|nasledovných stránkach, ktoré sú zamknuté}} voľbou „kaskádového zamknutia“:\n$2",
        "namespaceprotected": "Nemáte povolenie upravovať stránky v mennom priestore '''$1'''.",
        "customcssprotected": "Nemáte právo upravovať túto CSS stránku, pretože obsahuje osobné nastavenie iného používateľa.",
        "currentrev": "Aktuálna verzia",
        "currentrev-asof": "Aktuálna revízia z $1",
        "revisionasof": "Verzia zo dňa a času $1",
-       "revision-info": "Revízia z $1; $2",
+       "revision-info": "Verzia z $1, ktorú {{GENDER:$6|vytvoril|vytvorila}} $2$7",
        "previousrevision": "← Staršia verzia",
        "nextrevision": "Novšia verzia →",
        "currentrevisionlink": "Aktuálna úprava",
        "showhideselectedversions": "Zobraziť/skryť vybrané revízie",
        "editundo": "vrátiť",
        "diff-empty": "(Žiaden rozdiel)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Jedna medziľahlá úprava|$1 medziľahlé úpravy|$1 medziľahlých úprav}} od rovnakého používateľa.)",
        "diff-multi-manyusers": "({{PLURAL:$1|$1 medziľahlá revízia|$1 medziľahlé revízie|$1 medziľahlých revízií}} od viac ako {{PLURAL:$2|$2 používateľa|$2 používateľov}} {{PLURAL:$1|nie je zobrazená|nie sú zobrazené|nie je zobrazených}})",
        "difference-missing-revision": "{{PLURAL:$2|$2 revízia|$2 revízie|$2 revízií}} pre požadovaný rozdiel ($1) {{PLURAL:$2|neexistuje|neexistujú|neexistuje}}.\n\nPravdepodobne ste nasledovali zastaraný odkaz na rozdiel revízií, z ktorých niektorá bola medzičasom odstránená.\nPodrobnosti nájdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} zázname zmazaní].",
        "searchresults": "Výsledky vyhľadávania",
        "searchrelated": "súvisiace",
        "searchall": "všetko",
        "showingresults": "Nižšie {{PLURAL:$1|je zobrazený jeden výsledok|sú zobrazené '''1''' výsledky|je zobrazených '''$1''' výsledkov}}, počnúc od  #<b>$2</b>.",
+       "search-showingresults": "{{PLURAL:$4|Výsledok <strong>$1</strong> z <strong>$3</strong>|Výsledky <strong>$1 - $2</strong> z <strong>$3</strong>}}",
        "search-nonefound": "Vyhľadávanie nenašlo žiadne výsledky.",
        "powersearch-legend": "Pokročilé hľadanie",
        "powersearch-ns": "Hľadať v menných priestoroch:",
        "import-interwiki-history": "Skopírovať všetky historické revízie tejto stránky",
        "import-interwiki-templates": "Vložiť všetky šablóny",
        "import-interwiki-submit": "Importovať",
-       "import-interwiki-namespace": "Cieľový menný priestor:",
-       "import-interwiki-rootpage": "Koreňová stránka cieľa (nepovinné):",
        "import-upload-filename": "Názov súboru:",
        "import-comment": "komentár:",
        "importtext": "Prosím, exportujte súbor zo zdrojovej wiki použitím [[Special:Export|nástroja na export]].\nUložte ho na svoj disk a nahrajte sem.",
        "tooltip-pt-mycontris": "Zoznam vašich príspevkov",
        "tooltip-pt-login": "Odporúčame vám prihlásiť sa, nie je to však povinné.",
        "tooltip-pt-logout": "Odhlásiť",
+       "tooltip-pt-createaccount": "Odporúčame vytvoriť si vlastný účet a prihlásiť sa, nie je to však povinné.",
        "tooltip-ca-talk": "Diskusia o obsahu stránky",
        "tooltip-ca-edit": "Môžete upravovať túto stránku. Prosím, pred uložením použite tlačidlo Zobraziť náhľad.",
        "tooltip-ca-addsection": "Začať novú sekciu",
        "tooltip-search": "Vyhľadávanie na {{GRAMMAR:datív|{{SITENAME}}}}",
        "tooltip-search-go": "Prejsť na stránku s presne takýmto názvom, ak existuje",
        "tooltip-search-fulltext": "Hľadať tento text na stránkach",
-       "tooltip-p-logo": "Navštívte Hlavnú stránku",
+       "tooltip-p-logo": "Navštív Hlavnú stránku",
        "tooltip-n-mainpage": "Navštíviť Hlavnú stránku",
        "tooltip-n-mainpage-description": "Navštíviť hlavnú stránku",
        "tooltip-n-portal": "O projekte, ako môžete prispieť, kde čo nájsť",
        "tooltip-n-currentevents": "Aktuálne udalosti a ich pozadie",
-       "tooltip-n-recentchanges": "Zoznam posledných úprav na wiki.",
+       "tooltip-n-recentchanges": "Zoznam posledných úprav na wiki",
        "tooltip-n-randompage": "Zobraziť náhodnú stránku",
        "tooltip-n-help": "Miesto, kde sa môžete dozvedieť",
        "tooltip-t-whatlinkshere": "Zoznam všetkých wiki stránok, ktoré sem odkazujú",
        "metadata-help": "Tento súbor obsahuje ďalšie informácie, pravdepodobne pochádzajúce z digitálneho fotoaparátu či skenera, ktorý ho vytvoril alebo digitalizoval. Ak bol súbor zmenený, niektoré podrobnosti sa nemusia plne zhodovať so zmeneným súborom.",
        "metadata-expand": "Zobraziť detaily EXIF",
        "metadata-collapse": "Skryť detaily EXIF",
-       "metadata-fields": "Metadáta obrázka uvedené v tejto správe budú zahrnuté na stránke obrázka, keď je tabuľka metadát zbalená.\nOstatné budú predvolene skryté.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "Metadáta obrázka uvedené v tejto správe budú zahrnuté na stránke obrázka, keď bude tabuľka metadát zbalená.\nOstatné budú predvolene skryté.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Šírka",
        "exif-imagelength": "Výška",
        "exif-bitspersample": "Bitov na zložku",
        "logentry-rights-rights": "$1 zmenil členstvo $3 v skupinách z $4 na $5",
        "logentry-rights-rights-legacy": "$1 zmenil členstvo $3 v skupinách",
        "logentry-rights-autopromote": "$1 bol automaticky povýšený z $4 na $5",
+       "logentry-upload-upload": "$1 {{GENDER:$2|pridal|pridala}} $3",
        "rightsnone": "(žiadne)",
        "revdelete-summary": "zhrnutie úprav",
        "feedback-adding": "Pridáva sa komentár na stránku...",
index 79b7d88..0f4a682 100644 (file)
        "notextmatches": "Ниједан текст странице не одговара",
        "prevn": "претходних {{PLURAL:$1|$1}}",
        "nextn": "следећих {{PLURAL:$1|$1}}",
+       "prev-page": "претходна страница",
+       "next-page": "следећа страница",
        "prevn-title": "$1 {{PLURAL:$1|претходни  резултат|претходна резултата|претходних резултата}}",
        "nextn-title": "$1 {{PLURAL:$1|следећи резултат|следећа резултата|следећих резултата}}",
        "shown-title": "Прикажи $1 {{PLURAL:$1|резултат|резултата|резултата}} по страници",
        "import-interwiki-history": "Копирај све верзије историје за ову страницу",
        "import-interwiki-templates": "Укључи све шаблоне",
        "import-interwiki-submit": "Увези",
-       "import-interwiki-namespace": "Одредишни именски простор:",
-       "import-interwiki-rootpage": "Одредишна основна страница (необавезно):",
        "import-upload-filename": "Назив датотеке:",
        "import-comment": "Коментар:",
        "importtext": "Извезите датотеку с изворног викија користећи [[Special:Export|извоз]].\nСачувајте је на рачунар и пошаљите овде.",
index eee6163..d746791 100644 (file)
        "import-interwiki-history": "Kopiera hela versionshistoriken för denna sida",
        "import-interwiki-templates": "Inkludera alla mallar",
        "import-interwiki-submit": "Importera",
+       "import-mapping-namespace": "Importera till en namnrymd:",
+       "import-mapping-subpage": "Importera som undersidor till följande sida:",
        "import-upload-filename": "Filnamn:",
        "import-comment": "Kommentar:",
        "importtext": "Var god exportera filen från ursprungs-wikin med hjälp av [[Special:Export|exporteringsverktyget]].\nSpara den på din dator och ladda upp den här.",
        "tooltip-pt-preferences": "Dina inställningar",
        "tooltip-pt-watchlist": "Listan över sidor du bevakar för ändringar",
        "tooltip-pt-mycontris": "Lista över dina bidrag",
-       "tooltip-pt-login": "Du uppmuntras att logga in, men det är inte nödvändigt",
+       "tooltip-pt-login": "Inloggning ger tillgång till fler funktioner, och kan vara nödvändigt, för den som vill redigera sidor.",
        "tooltip-pt-logout": "Logga ut",
        "tooltip-pt-createaccount": "Du uppmuntras att skapa ett konto och logga in, men det är inte obligatoriskt",
        "tooltip-ca-talk": "Diskussion om innehållssidan",
        "pageinfo-protect-cascading-yes": "Ja",
        "pageinfo-protect-cascading-from": "Skrivskydd kaskaderar från",
        "pageinfo-category-info": "Kategoriinformation",
+       "pageinfo-category-total": "Totalt antal medlemmar",
        "pageinfo-category-pages": "Antal sidor",
        "pageinfo-category-subcats": "Antal underkategorier",
        "pageinfo-category-files": "Antal filer",
index 4d2f59c..2cf534f 100644 (file)
        "otherlanguages": "மற்ற மொழிகளில்",
        "redirectedfrom": "($1 இலிருந்து வழிமாற்றப்பட்டது)",
        "redirectpagesub": "பக்கவழிமாற்றுப் பக்கம்",
+       "redirectto": "வழிமாற்றவும்:",
        "lastmodifiedat": "இப்பக்கம் கடைசியாக $1, $2 மணிக்குத் திருத்தப்பட்டது.",
        "viewcount": "இப்பக்கம் {{PLURAL:$1|ஒரு முறை|$1 முறைகள்}} அணுகப்பட்டது.",
        "protectedpage": "காக்கப்பட்ட பக்கம்",
        "suspicious-userlogout": "உங்கள் விடுபதிகை கோரிக்கை மறுக்கப்பட்டது ஏனென்றால் அது அறுபட்ட உலாவி அல்லது மாற்று இடைக்கிடங்கியால் அனுப்பப்பட்டுள்ளது.",
        "createacct-another-realname-tip": "உண்மையான பெயர் கட்டாயமற்றது.\nநீங்கள் இதை கொடுத்தால் உங்கள் ஆக்கங்களுக்கான உரிமையளிப்புகளின் போது இது பயன்படும்.",
        "pt-login": "புகுபதிகை",
+       "pt-login-button": "புகுபதிகை",
        "pt-createaccount": "புதிய கணக்கை உருவாக்கவும்",
        "pt-userlogout": "விடுபதிகை",
        "php-mail-error-unknown": "PHP 's mail() செயல்பாட்டில் அறியப்படாத பிழை.",
        "preview": "முன்தோற்றம்",
        "showpreview": "முன்தோற்றம் காட்டு",
        "showdiff": "மாற்றங்களைக் காட்டு",
-       "anoneditwarning": "'''எச்சரிக்கை:''' நீங்கள் புகுபதிகை செய்யவில்லை.\nஉங்கள் ஐ.பி. முகவரி இப்பக்கத்தின் தொகுப்பு வரலாற்றில் பதிவு செய்யப்படும்.",
+       "anoneditwarning": "<strong>எச்சரிக்கை:</strong> நீங்கள் புகுபதிகை செய்யவில்லை. நீங்கள் தொகுத்தால் உங்கள் ஐ.பி. முகவரி எல்லோருக்கும் தெரியும்படி இருக்கும். நீங்கள் <strong>[$1 புகுபதிகை செய்தாலோ]</strong> அல்லது <strong>[$2 புதிய கணக்கு உருவாக்கினாலோ]</strong>, பிற பயன்களோடு நீங்கள் செய்யும் தொகுப்புகள் உங்கள் பயனர் பெயரோடு தொடர்புப்படுத்திக்காட்டப்படும்.",
        "anonpreviewwarning": "நீங்கள் புகுபதிகை செய்யவில்லை. இந்த பக்கத்தை சேமித்தால் உஙகள் ஐ.பி. முகவரி இதன் வரலாற்றுப் பக்கத்தில் பதிவாகும்.",
        "missingsummary": "'''நினைவூட்டல்:''' நீர் தொகுப்புச் சுருக்கமொன்றைக் கொடுக்கவில்லை.\nஇன்னொரு முறை பக்கத்தை சேமி என்பதை அழுத்தினால் உங்கள் தொகுப்பு சுருக்கமெதுவுமில்லாமல் சேமிக்கப்படும்.",
        "missingcommenttext": "கீழே சுருக்கமொன்றக் குறிப்பிடவும்.",
        "currentrev": "நடைமுறையிலுள்ள திருத்தம்",
        "currentrev-asof": "$1 இல் கடைசித் திருத்தம்",
        "revisionasof": "$1 இல் நிலவும் திருத்தம்",
-       "revision-info": "$2 பயனரால் செய்யப்பட்ட $1 அன்றிருந்தவாரான திருத்தம்",
+       "revision-info": "{{GENDER:$6|$2}} பயனரால் செய்யப்பட்ட $1 அன்றிருந்தவாரான திருத்தம்$7",
        "previousrevision": "←முந்தைய தொகுப்பு",
        "nextrevision": "புதிய தொகுப்பு→",
        "currentrevisionlink": "நடப்பிலுள்ள திருத்தம்",
        "shown-title": "ஒரு பக்கத்திற்கு $1 {{PLURAL:$1|முடிவு|முடிவுகள்}} காட்டவும்",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) பக்கங்களைப் பார்.",
        "searchmenu-exists": "'''\"[[:$1]]\" என்னும் பெயருடைய பக்கம் இந்த விக்கியில் உள்ளது'''",
-       "searchmenu-new": "'''\"[[:$1]]\" பக்கத்தை இந்த விக்கியில் உருவாக்கவும்!'''",
+       "searchmenu-new": "<strong>\"[[:$1]]\" பக்கத்தை இந்த விக்கியில் உருவாக்கவும்!</strong> {{PLURAL:$2|0=|உங்கள் தேடல் மூலம் கண்டுபிடிக்கப்பட்டப்பக்கத்தைக் காண்க.| தேடல் முடிவுகளை காண்க.}}",
        "searchprofile-articles": "உள்ளடக்கப் பக்கங்களின் பட்டியல்",
        "searchprofile-images": "பல்லூடகம்",
        "searchprofile-everything": "எல்லாம்\n\nஅத்தனையும்",
        "action-editmywatchlist": "உங்கள் கவனிப்பு பட்டியலை தொகு",
        "action-viewmywatchlist": "உங்கள் கவனிப்பு பட்டியலை பார்",
        "nchanges": "{{PLURAL:$1|ஓர் மாற்றம்|$1 மாற்றங்கள்}}",
+       "enhancedrc-history": "வரலாறு",
        "recentchanges": "அண்மைய மாற்றங்கள்",
        "recentchanges-legend": "அண்மைய மாற்றங்களின் தேர்வுகள்",
        "recentchanges-summary": "இந்த விக்கிக்கு மிக அண்மையில் செய்யப்பட்ட மாற்றங்களை, இந்தப் பக்கத்தில் காணலாம்.",
        "recentchanges-label-minor": "இது ஒரு சிறு தொகுப்பு",
        "recentchanges-label-bot": "இந்த தொகுப்பானது ஒரு தானியங்கியால் செய்யப்பட்டதாகும்",
        "recentchanges-label-unpatrolled": "இந்த  தொகுப்பு  இன்னும் ரோந்திடப்படவில்லை",
-       "recentchanges-legend-newpage": "$1 - புதிய பக்கம்",
+       "recentchanges-label-plusminus": "இத்தனை பைட்டுகளுக்கு பக்கத்தின் அளவு மாற்றப்பட்டுள்ளது",
+       "recentchanges-legend-heading": "'''குறியீட்டு விளக்கம்:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|புதிய பக்கங்கள் பட்டியலையும்]] காணவும்)",
        "rcnotefrom": "கீழே காணப்படுவது '''$2''' இலிருந்து செய்யப்பட்ட மாற்றங்களாகும் ('''$1''' வரைக் காட்டப்பட்டுள்ளது).",
        "rclistfrom": "$3 $2 தொடக்கம் செய்யப்பட்ட புதிய மாற்றங்களைக் காட்டவும்",
        "rcshowhideminor": "சிறிய தொகுப்புகளை $1",
+       "rcshowhideminor-show": "காட்டு",
+       "rcshowhideminor-hide": "மறை",
        "rcshowhidebots": "தானியங்கிகளை $1",
-       "rcshowhideliu": "புகுபதிகை செய்த பயனர்களை $1",
+       "rcshowhidebots-show": "காட்டு",
+       "rcshowhidebots-hide": "மறை",
+       "rcshowhideliu": "$1 பதிவு செய்துள்ள பயனர்கள்",
+       "rcshowhideliu-hide": "மறை",
        "rcshowhideanons": "அடையாளம் காட்டாத பயனர்களை $1",
+       "rcshowhideanons-show": "காட்டு",
+       "rcshowhideanons-hide": "மறை",
        "rcshowhidepatr": "$1 கவனிக்கப்பட்ட தொகுப்புக்கள்",
        "rcshowhidemine": "என் தொகுப்புகளை $1",
+       "rcshowhidemine-show": "காட்டு",
+       "rcshowhidemine-hide": "மறை",
        "rclinks": "கடைசி $2 நாட்களில் கடைசி $1 மாற்றங்களைக் காட்டு.<br />$3",
        "diff": "வேறுபாடு",
        "hist": "வரலாறு",
        "revdelete-uname-unhid": "பயனர் பெயர் மறைக்கப்பட்டது நீக்கப்பட்டுள்ளது.",
        "revdelete-restricted": "நிர்வாகிகளுக்கு கட்டுப்பாடுகள் விதிக்கப்பட்டது",
        "revdelete-unrestricted": "நிர்வாகிகளின் கட்டுப்பாடுகள் நீக்கப்பட்டது",
-       "logentry-move-move": "$1 à®ªà®¯à®©à®°à®¾à®²à¯\8d $3, $4 à®\8eனà¯\8dà®± à®¤à®²à¯\88பà¯\8dபà¯\81à®\95à¯\8dà®\95à¯\81 à®¨à®\95à®°à¯\8dதà¯\8dதபà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளதà¯\81.",
+       "logentry-move-move": "$1 à®ªà®\95à¯\8dà®\95à®®à¯\8d $3-à®\90 $4à®\95à¯\8dà®\95à¯\81 {{GENDER:$2|நà®\95à®°à¯\8dதà¯\8dதினாரà¯\8d}}",
        "logentry-move-move-noredirect": "$1, $3 பக்கத்தை $4 என்ற தலைப்புக்கு வழிமாற்று இன்றி நகர்த்தியுள்ளார்",
        "logentry-move-move_redir": "$1 பக்கம் $3 ஐ $4 க்கு முன்னிருந்த வழிமாற்றின் மேலாக நகர்த்தியுள்ளார்",
        "logentry-move-move_redir-noredirect": "$1 பக்கம் $3 ஐ $4 க்கு முன்னிருந்த வழிமாற்றின் மேலாக, இன்னொரு வழிமாற்றின்றி நகர்த்தியுள்ளார்",
        "logentry-patrol-patrol": "பக்கம் $3 இன்  திருத்தம் $4 ஐ  $1 பார்வையிட்டுக் குறிக்கப்பட்டது. .",
        "logentry-patrol-patrol-auto": "தானாக  பக்கம்  $3  ன் பரிசீலனை  $4   ஆனது ரோந்து செய்யப்பட்டது என $1 குறியிடப்பட்டது. .",
        "logentry-newusers-newusers": "பயனர் கணக்கு $1 உருவாக்கப்பட்டது",
-       "logentry-newusers-create": "$1 à®\92à®°à¯\81 à®ªà¯\81திய à®ªà®¯à®©à®°à¯\8d à®\95ணà®\95à¯\8dà®\95à¯\88 à®\89à®°à¯\81வாà®\95à¯\8dà®\95ியà¯\81ளà¯\8dளாரà¯\8d.",
+       "logentry-newusers-create": "$1 à®ªà¯\81திய à®ªà®¯à®©à®°à¯\8d à®\95ணà®\95à¯\8dà®\95à¯\81 à®\89à®°à¯\81வாà®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dளதà¯\81.",
        "logentry-newusers-create2": "$3 பயனர் கணக்கினை $1 உருவாக்கினார்",
        "logentry-newusers-autocreate": "பயனர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
+       "logentry-upload-upload": "$1 $3ஐ {{GENDER:$2|பதிவேற்றினார்}}",
        "rightsnone": "(எதுவுமில்லை)",
        "revdelete-summary": "தொகுப்பு சுருக்கத்தை",
        "feedback-adding": "பக்கத்தில் கருத்தைச் சேர்க்கிறது...",
index 3c6da8d..80b656d 100644 (file)
        "revdelete-submit": "ఎంచుకున్న {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} ఆపాదించు",
        "revdelete-success": "కూర్పు కనబడే విధానాన్ని జయప్రదంగా తాజాకరించాం.",
        "revdelete-failure": "కూర్పు కనబడే పద్ధతిని తాజాపరచలేకపోయాం:\n$1",
-       "logdelete-success": "à°\98à°\9fà°¨ à°\95నబడà±\87 à°µà°¿à°§à°¾à°¨à°¾à°¨à±\8dని à°\9cయపà±\8dà°°à°¦à°\82à°\97à°¾ à°¸à±\86à°\9fà±\8d à°\9aà±\87à°¸ాం.",
+       "logdelete-success": "à°\98à°\9fà°¨ à°\95నబడà±\87 à°µà°¿à°§à°¾à°¨à°¾à°¨à±\8dని à°\9cయపà±\8dà°°à°¦à°\82à°\97à°¾ à°\85మరà±\8dà°\9aాం.",
        "logdelete-failure": "'''చిట్టా కనబడే పద్ధతిని అమర్చలేకపోయాం:'''\n$1",
        "revdel-restore": "దృశ్యతని మార్చు",
        "pagehist": "పేజీ చరిత్ర",
index 63528e3..8781dfc 100644 (file)
@@ -71,7 +71,9 @@
                        "Ayrıntılı Bilgi",
                        "Gokalpselamet",
                        "Macofe",
-                       "Nighteagle2000"
+                       "Nighteagle2000",
+                       "Watermelon juice",
+                       "Ömer Berkay"
                ]
        },
        "tog-underline": "Bağlantıların altını çiz:",
        "wrongpassword": "Parolayı yanlış girdiniz. Lütfen tekrar deneyiniz.",
        "wrongpasswordempty": "Boş parola girdiniz. Lütfen tekrar deneyiniz.",
        "passwordtooshort": "Parolalar en az {{PLURAL:$1|1 karakter|$1 karakter}} uzunluğunda olmalı.",
+       "passwordtoolong": "Parolalar en az {{PLURAL:$1|1 karakter|$1 karakter}} uzunluğunda olmalı.",
        "password-name-match": "Şifreniz kullanıcı adınızdan farklı olmalıdır.",
        "password-login-forbidden": "Bu kullanıcı adı ve şifre kullanımı yasaklanmıştır",
        "mailmypassword": "Parolayı sıfırla",
        "missingcommentheader": "'''Hatırlatma:''' Bu yorum için bir konu/başlık sunmadınız. Eğer \"{{int: savearticle}}\" tuşuna tekrar basarsanız, değişikliğiniz konu/başlık olmadan kaydedilecektir.",
        "summary-preview": "Ön izleme özeti:",
        "subject-preview": "Konu/Başlık ön izlemesi:",
+       "previewerrortext": "Yaptığınız değişikliklerin önizlemesi sırasında bir hata oluştu.",
        "blockedtitle": "Kullanıcı erişimi engellendi.",
        "blockedtext": "'''Kullanıcı adı veya IP adresiniz engellenmiştir.'''\n\nSizi engelleyen hizmetli: $1.<br />\nEngelleme sebebi: ''$2''.\n\n* Engellenmenin başlangıcı: $8\n* Engellenmenin bitişi: $6\n* Engellenme süresi: $7\n\nBelirtilen nedene göre engellenmenizin uygun olmadığını düşünüyorsanız, $1 ya da başka bir [[{{MediaWiki:Grouppage-sysop}}|hizmetli]] ile bu durumu görüşebilirsiniz. [[Special:Preferences|Tercihlerim]] kısmında geçerli bir e-posta adresi girmediyseniz \"Kullanıcıya e-posta gönder\" özelliğini kullanamazsınız, tercihlerinize e-posta adresinizi eklediğinizde e-posta gönderme hakkına sahip olacaksınız.\n<br />Şu anki IP adresiniz $3, engellenme numaranız #$5.\n<br />Bir hizmetliden durumunuz hakkında bilgi almak istediğinizde veya herhangi bir sorguda bu bilgiler gerekecektir, lütfen not ediniz.",
        "autoblockedtext": "IP adresiniz otomatik olarak engellendi, çünkü $1 tarafından engellenmiş başka bir kullanıcı tarafından kullanılmaktaydı.\nBelirtilen sebep şudur:\n\n:''$2''\n\n* Engellemenin başlangıcı: $8\n* Engellemenin bitişi: $6\n* Bloke edilmesi istenen: $7\n\nEngelleme hakkında tartışmak için $1 ile veya diğer [[{{MediaWiki:Grouppage-sysop}}|hizmetlilerden]] biriyle irtibata geçebilirsiniz.\n\nNot, [[Special:Preferences|kullanıcı tercihlerinize]] geçerli bir e-posta adresi kaydetmediyseniz  \"kullanıcıya e-posta gönder\" özelliğinden faydalanamayabilirsiniz ve bu özelliği kullanmaktan engellenmediniz.\n\nŞu anki IP numaranız $3 ve engellenme ID'niz #$5.\nLütfen yapacağınız herhangi bir sorguda yukarıdaki bütün detayları bulundurun.",
        "search-interwiki-more": "(daha çok)",
        "search-relatedarticle": "ilgili",
        "searchrelated": "ilgili",
-       "searchall": "hepsi",
+       "searchall": "tümü",
        "showingresults": "$2. sonuçtan başlayarak {{PLURAL:$1|'''1''' sonuç |'''$1''' sonuç }} aşağıdadır:",
        "showingresultsinrange": "<strong>$2</strong> ile <strong>$3</strong> arasında toplam <strong>$1</strong> sonuç gösteriliyor.",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> için sonuç|<strong>$3</strong> için <strong>$1 - $2</strong> sonuçlar}}",
        "search-nonefound": "Sorguyla eşleşen bir sonuç yok.",
        "powersearch-legend": "Gelişmiş arama",
        "powersearch-ns": "Ad alanlarında ara:",
        "prefs-rc": "Son değişiklikler",
        "prefs-watchlist": "İzleme listesi",
        "prefs-editwatchlist": "İzleme listesini düzenle",
-       "prefs-editwatchlist-label": "İzleme listesinizdeki girişleri düzenle",
-       "prefs-editwatchlist-edit": "İzleme listesini gör ve düzenle",
+       "prefs-editwatchlist-label": "İzleme listenizdeki girişleri düzenleyin:",
+       "prefs-editwatchlist-edit": "İzleme listenizdeki başlıkları görüntüleyin ve düzenleyin",
        "prefs-editwatchlist-raw": "Ham izleme listesini düzenle",
-       "prefs-editwatchlist-clear": "İzleme listesini temizle",
+       "prefs-editwatchlist-clear": "İzleme listenizi temizleyin",
        "prefs-watchlist-days": "İzleme listesinde görüntülenecek gün sayısı:",
        "prefs-watchlist-days-max": "en fazla $1 {{PLURAL:$1|gün|gün}}",
        "prefs-watchlist-edits": "Genişletilmiş izleme listesinde gösterilecek değişiklik sayısı:",
        "listgrouprights-removegroup-self": "Kendi hesabından {{PLURAL:$2|grup|grupları}} çıkarabilir: $1",
        "listgrouprights-addgroup-self-all": "Kendi hesabına tüm grupları ekleyebilir",
        "listgrouprights-removegroup-self-all": "Kendi hesabından tüm grupları çıkarabilir",
+       "listgrouprights-namespaceprotection-header": "Ad kısıtlamaları",
+       "listgrouprights-namespaceprotection-namespace": "Ad alanı",
        "listgrouprights-namespaceprotection-restrictedto": "Kullanıcının değişiklik yapmasına izin veren hak(lar)",
+       "trackingcategories": "Eşleşen kategoriler",
+       "trackingcategories-msg": "İzleme kategorisi",
+       "trackingcategories-name": "Mesaj Duvarı",
        "broken-file-category-desc": "Sayfa bozuk dosya bağlantısı (mevcut olmayan bir dosyayı kullanmaya çalışan bağlantı) içeriyor.",
        "trackingcategories-nodesc": "Açıklama yok.",
        "trackingcategories-disabled": "Kategori devre dışı",
        "sp-contributions-newbies-sub": "Yeni kullanıcılar için",
        "sp-contributions-newbies-title": "Yeni hesaplar için kullanıcı katkıları",
        "sp-contributions-blocklog": "Engel kaydı",
+       "sp-contributions-suppresslog": "Silinen kullanıcı katkıları",
        "sp-contributions-deleted": "silinen kullanıcı katkıları",
        "sp-contributions-uploads": "yüklenenler",
        "sp-contributions-logs": "kayıtlar",
        "unblocked": "[[User:$1|$1]] - engelleme kaldırıldı",
        "unblocked-range": "$1 engeli kaldırıldı",
        "unblocked-id": "$1 engeli çıkarıldı",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] engellenmiştir.",
        "blocklist": "Engellenmiş kullanıcılar",
        "ipblocklist": "Engellenmiş kullanıcılar",
        "ipblocklist-legend": "Engellenen kullanıcı ara",
        "import-interwiki-history": "Sayfanın tüm geçmiş sürümlerini kopyala",
        "import-interwiki-templates": "Tüm şablonları içer",
        "import-interwiki-submit": "Import",
-       "import-interwiki-namespace": "Hedef ad alanı:",
-       "import-interwiki-rootpage": "Hedeflenen kaynak sayfası (isteğe bağlı):",
        "import-upload-filename": "Dosya adı:",
        "import-comment": "Yorum:",
        "importtext": "Lütfen dosyayı [[Special:Export|dışa aktarım yardımcı yazılımıyla]] kaynak vikiden dışa aktarın.\nBilgisayarınıza kaydedin ve buraya yükleyin.",
        "pageinfo-protect-cascading-yes": "Evet",
        "pageinfo-protect-cascading-from": "Korumalar üzerinden geçiş",
        "pageinfo-category-info": "Kategori bilgileri",
+       "pageinfo-category-total": "Üye sayısı",
        "pageinfo-category-pages": "Sayfa sayısı",
        "pageinfo-category-subcats": "Alt kategori sayısı",
        "pageinfo-category-files": "Dosya sayısı",
        "patrol-log-page": "Kontrol kaydı",
        "patrol-log-header": "Bu gözlenmiş revizyonların günlüğüdür.",
        "log-show-hide-patrol": "Gözetim günlüğünü $1",
+       "log-show-hide-tag": "$1 Etiket günlüğü",
        "deletedrevision": "$1 sayılı eski sürüm silindi.",
        "filedeleteerror-short": "$1 dosyanın silinmesinde hata oldu",
        "filedeleteerror-long": "Dosyayı silerken hatalarla karşılaşıldı:\n\n$1",
        "tags-tag": "Etiket adı",
        "tags-display-header": "Değişiklik listelerindeki görünüm",
        "tags-description-header": "Anlamının tam açıklaması",
+       "tags-source-header": "Kaynak",
        "tags-active-header": "Etkin?",
        "tags-hitcount-header": "Etiketli değişiklikler",
+       "tags-actions-header": "Eylemler",
        "tags-active-yes": "Evet",
        "tags-active-no": "Hayır",
+       "tags-source-none": "Artık kullanımda",
        "tags-edit": "değiştir",
+       "tags-delete": "sil",
+       "tags-activate": "Etkinleştir",
+       "tags-deactivate": "Devre dışı bırakma",
        "tags-hitcount": "$1 {{PLURAL:$1|değişiklik|değişiklik}}",
+       "tags-manage-no-permission": "Yeni sayfalar oluşturmaya yetkiniz yok.",
+       "tags-create-heading": "Yeni bir öge oluştur",
+       "tags-create-explanation": "Varsayılan olarak, Yeni oluşturulan etiketlerin hazır hale getirilmesi kullanıcılar ve botlar tarafından yapılacaktır.",
+       "tags-create-tag-name": "Etiket adı:",
+       "tags-create-reason": "Neden:",
+       "tags-create-submit": "Oluştur",
+       "tags-create-no-name": "Etik adı belirtmeniz gerekiyor",
+       "tags-delete-title": "Etiketi Sil",
+       "tags-delete-reason": "Gerekçe:",
+       "tags-activate-title": "Aktif etiket",
+       "tags-activate-reason": "Neden:",
+       "tags-activate-submit": "Etkinleştir",
+       "tags-deactivate-title": "Aktif olmayan etiket",
+       "tags-deactivate-submit": "Aktif değil",
+       "tags-edit-title": "Etiketleri düzenle",
+       "tags-edit-manage-link": "Etiketleri yönet",
+       "tags-edit-existing-tags": "Mevcut etiketler:",
+       "tags-edit-existing-tags-none": "\"Hiçbiri\"",
+       "tags-edit-new-tags": "Yeni etiketler:",
+       "tags-edit-add": "Bu etiketleri ekleyin:",
+       "tags-edit-remove-all-tags": "(tüm etiketleri kaldır)",
+       "tags-edit-reason": "Neden:",
+       "tags-edit-none-selected": "Eklemek ya da çıkarmak için en az bir etiketi seçin lütfen.",
        "comparepages": "Sayfaları karşılaştır",
        "compare-page1": "Sayfa 1",
        "compare-page2": "Sayfa 2",
        "logentry-rights-autopromote": "$1, $4 iken $5 olarak otomatik {{GENDER:$2|terfi edildi}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|yükledi}} $3",
        "logentry-upload-overwrite": "$1 $3 dosyasının yeni bir sürümünü {{GENDER:$2|yükledi}}",
+       "log-name-tag": "Etiket günlüğü",
        "rightsnone": "(hiçbiri)",
        "revdelete-summary": "değişiklik özeti",
        "feedback-adding": "Sayfaya geribildirim ekleniyor...",
        "feedback-bugornote": "Eğer teknik bir problemi detaylarıyla açıklamaya hazırsanız lütfen [$1 bir hata raporlayın]. Diğer taraftan, aşağıdaki kolay formu kullanabilirsiniz. Yorumunuz, kullanıcı adınızla beraber \"[$3 $2]\" sayfasına eklenecektir.",
        "feedback-cancel": "İptal",
        "feedback-close": "Tamamlandı",
+       "feedback-error-title": "Hata",
        "feedback-error1": "Hata: Bilinmeyen API sonucu",
        "feedback-error2": "Hata: Düzenleme başarısız oldu",
        "feedback-error3": "Hata: API'den yanıt yok",
        "feedback-subject": "Konu:",
        "feedback-submit": "Gönder",
        "feedback-thanks": "Teşekkürler! Görüşleriniz \"[$2 $1]\" sayfasında paylaşılmıştır.",
+       "feedback-thanks-title": "Teşekkürler!",
+       "feedback-useragent": "Kullanıcı temsilcisi",
        "searchsuggest-search": "Ara",
        "searchsuggest-containing": "içeren...",
        "api-error-badaccess-groups": "Bu wiki için dosya yüklemenize izin verilmiyor.",
        "action-pagelang": "sayfa dilini değiştir",
        "log-name-pagelang": "Dil günlüğünü değiştir",
        "logentry-pagelang-pagelang": "$1, $3 sayfasının dilini $4 dilinden $5 diline {{GENDER:$2|çevirdi}}.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (etkin)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''devre dışı''')",
        "mediastatistics": "Medya istatistikleri",
        "mediastatistics-summary": "Karşıya yüklenen dosya türlerine ilişkin istatistikler. Bu yalnızca bir dosyanın en son sürümünü içerir. Eski veya silinen dosyala sürümleri hariç tutulur.",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 byte}} ($2; $3%)",
        "special-characters-group-gujarati": "Gücerat",
        "special-characters-group-thai": "Tay",
        "special-characters-group-lao": "Lao",
-       "special-characters-group-khmer": "Kmer"
+       "special-characters-group-khmer": "Kmer",
+       "special-characters-title-endash": "tire",
+       "special-characters-title-minus": "Eksi işareti"
 }
index 87dd1a9..1acc3f1 100644 (file)
@@ -22,7 +22,8 @@
                        "Calak",
                        "عرفان ارشد",
                        "Obaid Raza",
-                       "عثمان خان شاہ"
+                       "عثمان خان شاہ",
+                       "Syedalinaqinaqvi"
                ]
        },
        "tog-underline": "ربط کی خط کشیدگی:",
        "moredotdotdot": "اور...",
        "morenotlisted": "یہ فہرست مکمل نہیں ہے۔",
        "mypage": "میرا صفحہ",
-       "mytalk": "میری گفتگو",
+       "mytalk": "تبادلۂ خیال",
        "anontalk": "اس IP کیلیے بات چیت",
        "navigation": "رہنمائی",
        "and": "&#32;اور",
        "disclaimers": "اعلانات",
        "disclaimerpage": "Project:عام اعلان",
        "edithelp": "معاونت براۓ ترمیم",
+       "helppage-top-gethelp": "مدد",
        "mainpage": "صفحہ اول",
        "mainpage-description": "صفحہ اول",
        "policy-url": "Project:حکمتِ عملی",
        "badarticleerror": "اس صفحہ پر یہ عمل انجام نہیں دیا جاسکتا۔",
        "cannotdelete": "صفحہ یا ملف $1 کو حذف نہیں کیا جاسکتا.\nہوسکتا ہے کہ اسے پہلے ہی کسی نے حذف کردیا ہو.",
        "cannotdelete-title": "صفحہ ھذف نہیں کیا جا سکتا \"$1\"",
+       "delete-hook-aborted": "حذف شدگی روک دی گئی\nوضاحت نہیں کی گئی",
        "badtitle": "خراب عنوان",
        "badtitletext": "درخواست شدہ صفحہ کا عنوان ناقص، خالی، یا کوئی غلط ربط شدہ بین لسانی یا بین ویکی عنوان ہے.\nشاید اِس میں ایک یا زیادہ ایسے حروف موجود ہوں جو عنوانات میں استعمال نہیں ہوسکتے.",
        "perfcached": "ذیلی ڈیٹا ابطن شدہ (cached) ہے اور اِس کے پُرانے ہونے کا امکان ہے. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
        "gotaccountlink": "داخل ہوجائیے",
        "userlogin-resetlink": "داخلِ نوشتہ ہونے کی تفاصیل بھول گئے ہیں؟",
        "userlogin-resetpassword-link": "کلمہ شناخت بھول گئے؟",
+       "userlogin-helplink2": "داخل ہو کر ہماری مدد کریں",
        "createacct-emailrequired": "ای میل پتہ",
        "createacct-emailoptional": "ای میل ایڈریس (اختیاری)",
        "createacct-email-ph": "اپنا برقی پتہ لکھیں",
+       "createacct-another-email-ph": "برقی پتہ لکھیں",
        "createaccountmail": "بذریعۂ برقی ڈاک",
        "createacct-realname": "اصلی نام (اختیاری)",
        "createaccountreason": "وجہ:",
        "createacct-reason": "وجہ",
+       "createacct-reason-ph": "آپ دوسرا کھاتہ کیوں تخلیق کررہے ہیں",
        "createacct-captcha": "حفاظتی تدبیر",
        "createacct-imgcaptcha-ph": "آپ اوپر دیکھ متن داخل کریں",
        "createacct-submit": "آپ کا کھاتا بنائیں",
+       "createacct-another-submit": "دوسرا کھاتہ تخلیق کریں",
        "createacct-benefit-heading": "{{SITENAME}} آپ جیسے لوگوں کی طرف سے بنایا گیا ہے ۔",
        "createacct-benefit-body1": "ترمیم",
        "createacct-benefit-body2": "$1 {{PLURAL:$1|صفحہ|صفحات}}",
        "wrongpasswordempty": "کلمۂ شناخت ندارد۔ دوبارہ کوشش کریں۔",
        "passwordtooshort": "آپکا منتخب کردہ پارلفظ مختصر ہے. پارلفظ کم از کم {{PLURAL:$1|1 محرف|$1 محارف}} ہونا چاہئے.",
        "password-name-match": "آپکا پارلفظ آپکے اسمِ صارف سے مختلف ہونا چاہئے.",
+       "password-login-forbidden": "اس صارف نام یا کلمۂ شناخت (پاسورڈ) کا استعمال ممنوع ہے",
        "mailmypassword": "نیا پارلفظ برقی ڈاک میں بھیجو",
        "passwordremindertitle": "نیا عارضی کلمۂ شناخت برائے {{SITENAME}}",
        "passwordremindertext": "(IP پتہ $1 سے) کسی (یا شاید آپ) نے {{SITENAME}} ($4)\nکیلئے نئی کلمۂ شناخت کیلئے التماس کیا. ایک عارضی کلمۂ شناخت \"$3\"\nبرائے صارف \"$2\" تخلیق کیا گیا ہے. اگر یہ آپ کا ارادہ تھا، تو آپ\nکو چاہئے کہ داخلِ نوشتہ ہونے کے بعد نئے کلمۂ شناخت کا انتخاب کریں.\nآپ کا کلمۂ شناخت {{PLURAL:$5|ایک دِن|$5 دِن}} کے بعد ناکارہ ہوجائے گا.\n\nاگر کسی اَور نے یہ التماس کیا ہے، یا آپ کو اپنا کلمۂ شناخت یاد آگیا ہے،\nاور آپ اسے تبدیل نہیں کرنا چاہتے، تو آپ یہ پیغام نظر انداز کرسکتے ہیں اور\nآپنا پُرانا کلمۂ شناخت کا استعمال جاری رکھ سکتے ہیں.",
        "noemailprefs": "اِن خصائص کو کام میں لانے کیلئے اپنے ترجیحات میں برقی ڈاک کا پتہ متعین کیجئے.",
        "emailconfirmlink": "اپنے برقی پتہ کی تصدیق کیجئے",
        "invalidemailaddress": "برقی پتہ قبول نہیں کیا جاسکتا کیونکہ یہ غلط شکل میں ہے.\nبراہِ کرم! ایک برقی پتہ صحیح شکل میں درج کیجئے یا جگہ کو خالی چھوڑ دیجئے.",
+       "emaildisabled": "اس سائٹ سے برقی خط نہیں بھیجے جاسکتے",
        "accountcreated": "تخلیقِ کھاتہ",
        "accountcreatedtext": "تخیلقِ کھاتۂ صارف براۓ $1۔",
        "createaccount-title": "کھاتہ سازی برائے {{SITENAME}}",
        "pt-createaccount": "کھاتا بنائیں",
        "pt-userlogout": "خارج ہوجائیں",
        "user-mail-no-addy": "برقی ڈاک بھیجنے کی کوشش بغیر برقی ڈاک پتہ",
+       "user-mail-no-body": "خالی یا بہت ہی مختصر برقی خط بھیجنے کی کوشش",
        "changepassword": "کلمۂ شناخت تبدیل کریں",
        "resetpass_announce": "آپ ایک برقی ارسال کردہ عارضی رمز کے ساتھ داخل ہوئے ہیں.\nداخلِ نوشتہ کے عمل کو مکمل کرنے کیلئے آپ کو یہاں نیا پارلفظ متعین کرنا ہوگا:",
        "resetpass_header": "کھاتہ کا پارلفظ تبدیل کریں",
        "resetpass-submit-loggedin": "پارلفظ کی تبدیلی",
        "resetpass-submit-cancel": "منسوخ",
        "resetpass-wrong-oldpass": "عارضی یا موجودہ پارلفظ ناقص ہے.\nآپ یا تو پہلے ہی سے آپنا پارلفظ کامیابی سے تبدیل کرچکے ہیں اور یا آپ نے نئے عارضی پارلفظ کی درخواست کی ہے.",
+       "resetpass-recycled": "براہ کرم اپنے موجودہ کلمۂ شناخت (پاسورڈ) سے مختلف کلمۂ شناخت سے بازترتیب (ری‌سیٹ) کریں",
+       "resetpass-temp-emailed": "آپ عارضی برقی خط سے بھیجے گئے کوڈ سے لاگ ان ہیں\nمکمل طور پر لاگ ان ہونے کے لیے آپ کو نیا پاسورڈ سیٹ کرنا پڑے گا",
        "resetpass-temp-password": "عارضی پارلفظ:",
        "passwordreset": "پارلفظ کی بازتعینی",
        "passwordreset-username": "اسمِ صارف:",
        "lineno": "لکیر $1:",
        "compareselectedversions": "منتخب متـن کا موازنہ",
        "editundo": "استرجع",
+       "diff-multi-sameuser": "({{PLURAL: $ 1 | ایک متوسط نظرثانی | $ 1 کئی متوسط نظرثانیاں}}ایک ہی صارف کی جانب سے نہیں دکھائی گئی)",
        "searchresults": "تلاش کا نتیجہ",
        "searchresults-title": "نتائجِ تلاش برائے \"$1\"",
        "notextmatches": "کوئی بھی مماثل متن موجود نہیں",
        "search-external": "بیرونی تلاش",
        "searchdisabled": "{{SITENAME}} تلاش غیرفعال.\nآپ فی الحال گوگل کے ذریعے تلاش کرسکتے ہیں.\nیاد رکھئے کہ اُن کے {{SITENAME}} اشاریے ممکناً پرانے ہوسکتے ہیں.",
        "preferences": "ترجیحات",
-       "mypreferences": "میری ترجیہات",
+       "mypreferences": "ترجیحات",
        "prefs-edits": "تدوینات کی تعداد:",
        "prefs-skin": "جِلد",
        "skin-preview": "پیش منظر",
        "emailmessage": "پیغام:",
        "emailsend": "بھیجیں",
        "watchlist": "میری زیرنظرفہرست",
-       "mywatchlist": "میری زیرنظرفہرست",
+       "mywatchlist": "زیرنظرفہرست",
        "watchlistfor2": "براۓ $1 ($2)",
        "addedwatchtext": "یہ صفحہ \"<nowiki>$1</nowiki>\" آپکی [[Special:Watchlist|زیرنظر]] فہرست میں شامل کردیا گیا ہے۔ اب مستقل میں اس صفحے اور اس سے ملحقہ تبادلہ خیال کا صفحے میں کی جانے والی تبدیلوں کا اندراج کیا جاتا رہے گا، اور ان صفحات کی شناخت کو سہل بنانے کے لیۓ [[Special:حالیہ تبدیلیاں|حالیہ تبدیلیوں کی فہرست]] میں انکو '''مُتَجَل''' (bold) تحریر کیا جاۓ گا۔ <p> اگر آپ کسی وقت اس صفحہ کو زیرنظرفہرست سے خارج کرنا چاہیں تو اوپر دیۓ گۓ \"زیرنظرمنسوخ\" پر ٹک کیجیۓ۔",
        "removedwatchtext": "صفحہ \"[[:$1]]\" آپ کی زیر نظر فہرست سے خارج کر دیا گیا۔",
        "deletereasonotherlist": "دوسری وجہ",
        "rollback": "ترمیمات سابقہ حالت پرواپس",
        "rollbacklink": "واپس سابقہ حالت",
+       "rollbacklinkcount": "استرجع $1 {{PLURAL:$1|ترمیم|ترامیم}}",
        "rollbackfailed": "سابقہ حالت پر واپسی ناکام",
        "cantrollback": "تدوین ثانی کا اعادہ نہیں کیا جاسکتا؛ کیونکہ اس میں آخری بار حصہ لینے والا ہی اس صفحہ کا واحد کاتب ہے۔",
        "protectlogpage": "نوشتۂ محفوظ شدگی",
        "blanknamespace": "(مرکز)",
        "contributions": "{{جنس:$1|صارف}} شراکتیں",
        "contributions-title": "مساہماتِ صارف برائے $1",
-       "mycontris": "میرا حصہ",
+       "mycontris": "شراکت",
        "contribsub2": "براۓ $1 ($2)",
        "uctop": " (اوپر)",
        "month": "مہینہ (اور اُس سے قبل):",
index d51a5fc..68ddb77 100644 (file)
@@ -36,7 +36,7 @@
        "tog-shownumberswatching": "Jonön numi gebanas galädöl",
        "tog-oldsig": "Dispenäd dabinöl:",
        "tog-fancysig": "Dispenäd balugik (nen yüms lü gebanapad)",
-       "tog-uselivepreview": "Gebön büologedi itjäfidik (sperimäntik)",
+       "tog-uselivepreview": "Gebön büologedi itjäfidik",
        "tog-forceeditsummary": "Sagön obe, ven redakaplän brefik vagon",
        "tog-watchlisthideown": "Klänedön redakamis obik se galädalised",
        "tog-watchlisthidebots": "Klänedön redakamis mäikamenas se galädalised",
        "otherlanguages": "In püks votik",
        "redirectedfrom": "(Pelüodükon de pad: $1)",
        "redirectpagesub": "Lüodükömapad",
+       "redirectto": "Lüodükön lü:",
        "lastmodifiedat": "Pad at pävotükon lätiküno tü düp $2, ün $1.",
        "viewcount": "Pad at pelogon {{PLURAL:$1|balna|$1na}}.",
        "protectedpage": "Pad pejelöl",
        "toc": "Ninäd",
        "showtoc": "jonön",
        "hidetoc": "klänedön",
+       "confirmable-confirm": "Fümol-li?",
        "confirmable-yes": "Si!",
        "confirmable-no": "Nö!",
        "thisisdeleted": "Jonön u sädunön moükami $1?",
        "virus-badscanner": "Parametem badik: program tavirudik nesevädik: ''$1''",
        "virus-scanfailed": "skrutam no eplöpon (kot $1)",
        "virus-unknownscanner": "program tavirudik nesëvadik:",
-       "logouttext": "'''Esenunädol oli.'''\n\nKanol laigebön {{SITENAME}} nennemiko, u kanol <span class='plainlinks'>[$1 nunädön oli dönu]</span> me gebananem ot u gebenanem votik.\nKüpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklinükol memi no laidüpik bevüresodanaföma olik.",
+       "logouttext": "<strong>Esenunädol oli.<strong>\n\nKüpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklinükol memi no laidüpik bevüresodanaföma olik.",
        "welcomeuser": "Benokömö, o $1!",
        "yourname": "Gebananem:",
        "userlogin-yourname": "Gebananem",
        "createaccountmail": "me pot leäktronik",
        "createaccountreason": "Kod:",
        "createacct-reason": "Kod",
+       "createacct-imgcaptcha-ph": "Penolöd vödemi, keli logol löpo",
        "createacct-submit": "Jafön kali olik",
        "createacct-benefit-body1": "{{PLURAL:$1|redakam|redakams}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pad|pads}}",
        "revdelete-show-file-submit": "Si",
        "logdelete-selected": "{{PLURAL:$1|Lisedajenot|Lisedajenots}} pevälöl:",
        "revdelete-legend": "Levälön miedükamis logova:",
-       "revdelete-hide-text": "Klänedön vödemi revida",
+       "revdelete-hide-text": "Vödem revida",
        "revdelete-hide-image": "Klänedön ragivaninädi",
        "revdelete-hide-name": "Klänedön duni e zeili",
        "revdelete-hide-comment": "Redakön küpeti",
        "revdelete-hide-user": "Klänedön gebananemi u ladeti-IP redakana",
        "revdelete-hide-restricted": "Gebön miedükamis at i demü guvans e lökofärmükön fometi at",
        "revdelete-radio-same": "(no votükolös)",
-       "revdelete-radio-set": "Si",
-       "revdelete-radio-unset": "",
+       "revdelete-radio-set": "Paklänedöl",
+       "revdelete-radio-unset": "Logädik",
        "revdelete-suppress": "Klänedön moükamakodis i de guvans (äsi de votikans)",
        "revdelete-unsuppress": "Moükön miedükamis fomamas pegegetöl",
        "revdelete-log": "Kod:",
        "notextmatches": "Leigon ko nos in padavödem",
        "prevn": "büik {{PLURAL:$1|$1}}",
        "nextn": "sököl {{PLURAL:$1|$1}}",
+       "prev-page": "pad büik",
+       "next-page": "pad sököl",
        "prevn-title": "{{PLURAL:$1|Sukasek|Sukaseks}} büik $1",
        "nextn-title": "{{PLURAL:$1|Sukasek|Sukaseks}} fovik $1",
        "shown-title": "Jonön {{PLURAL:$1|sukaseki|sukasekis}} $1 a pad",
        "viewprevnext": "Logön padis ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Dabinon pad labü nem: \"[[:$1]]\" su vük at'''",
-       "searchmenu-new": "'''Jafolös padi: \"[[:$1]]\" su vük at!'''",
+       "searchmenu-new": "<strong>Jafolös padi: \"[[:$1]]\" su vük at!</strong> {{PLURAL:$2|0=|Logolös i padi me suk olik petuvöli.|Logolös i sukasekis petuvöl.}}",
        "searchprofile-articles": "Ninädapads",
        "searchprofile-images": "Mödamedäd",
        "searchprofile-everything": "Valikos",
        "prefs-info": "Nüns stabik",
        "prefs-signature": "Dispenäd",
        "prefs-dateformat": "Dätafomam",
+       "prefs-preview": "Büologed",
        "prefs-diffs": "Difs",
        "userrights": "Guvam gebanagitätas",
        "userrights-lookup-user": "Guvön gebanagrupis",
        "right-move": "Topätükön padis",
        "right-move-subpages": "Topätükön padis kobü donapads onsik",
        "right-move-rootuserpages": "Topätükön gebanapadis cifik",
+       "right-move-categorypages": "Topätükön kladapadis",
        "right-movefile": "Topätükön ragivis",
        "right-suppressredirect": "No jafön lüodükömi de nem büik posä pad petopätükon",
        "right-upload": "Löpükön ragivis",
        "action-suppressionlog": "logön jenotalisedi privatik at",
        "action-block": "blokön redakami gebana at",
        "action-protect": "votükön jelanivodis pada at",
-       "action-import": "nüveigön padi at se vük votik",
-       "action-importupload": "nüveigön padi at se ragivilöpükam",
+       "action-import": "nüveigön padis se vük votik",
+       "action-importupload": "nüveigön padis se ragivilöpükam",
        "action-patrol": "Zepön redakami votikanas",
        "action-autopatrol": "zepön redakami olik",
        "action-unwatchedpages": "Logön lisedi padas no pagalädölas",
        "action-userrights": "redakön gebanagitätis valik",
        "action-userrights-interwiki": "redakön gebanagitätis gebanas vükas votik",
        "action-siteadmin": "lökofärmükön u maifükön nünodemi",
+       "action-sendemail": "sedön penedis leäktronik",
+       "action-editmywatchlist": "redakön galädalisedi ola",
+       "action-viewmywatchlist": "logön galädalised ola",
        "nchanges": "{{PLURAL:$1|votükam|votükams}} $1",
        "enhancedrc-history": "jenotem",
        "recentchanges": "Votükams nulik",
        "license-nopreview": "(Büologed no gebidon)",
        "upload_source_url": " (el URL lonöföl ä fa valans gebovik)",
        "upload_source_file": " (ragiv pö nünöm olik)",
+       "listfiles-delete": "moükön",
        "listfiles-summary": "Su pad patik at ragivs pelöpüköl valik pelisedons.\nNomiko ragivs pelöpüköl lätikün palisedons primü lised.\nKlikolös tiädi padüla ad votükön sökaleodi at.",
        "listfiles_search_for": "Sukön ragivanemi:",
        "imgfile": "ragiv",
        "listfiles_size": "Gretot",
        "listfiles_description": "Bepenam",
        "listfiles_count": "Fomams",
+       "listfiles-latestversion-yes": "Si!",
+       "listfiles-latestversion-no": "Nö!",
        "file-anchor-link": "Ragiv",
        "filehist": "Jenotem ragiva",
        "filehist-help": "Välolös däti/timi ad logön ragivi soäsä äbinon ün tim at.",
        "filedelete-reason-dropdown": "*Kods kösömik moükama\n** Nedem kopiedagitäta\n** Ragiv petelöl",
        "filedelete-edit-reasonlist": "Redakön kodis moükama",
        "mimesearch": "Sukön (MIME)",
-       "mimesearch-summary": "Pad at mögükon ragivisulami ma MIME-sot.\nPrimanünods: ninädasot/donasot, a.s. <code>image/jpeg</code>.",
+       "mimesearch-summary": "Pad at mögükon ragivisulami ma MIME-sot.\nPrimanünods: contenttype/subtype u contenttype/*, a.s. <code>image/jpeg</code>.",
        "mimetype": "Klad ela MIME:",
        "download": "donükön",
        "unwatchedpages": "Pads no pagalädöls",
        "unusedtemplateswlh": "yüms votik",
        "randompage": "Pad fädik",
        "randompage-nopages": "Pads nonik dabinons in {{PLURAL:$2|nemaspad sököl|nemaspads sököls}}: $1.",
+       "randomincategory": "Pad fädik in klad",
+       "randomincategory-category": "Klad:",
        "randomredirect": "Lüodüköm fädik",
        "randomredirect-nopages": "Lüodüköms nonik dabinons in nemaspad: \"$1\".",
        "statistics": "Statits",
        "delete-warning-toobig": "Pad at labon jenotemi lunik: {{PLURAL:$1|revid|revids}} plu $1.\nPrudö! Moükam onik ba osäkädükon jäfidi nünodema: {{SITENAME}}.",
        "rollback": "Sädunön redakamis",
        "rollbacklink": "sädunön vali",
+       "rollbacklinkcount": "sädunön {{PLURAL:$1|redakami|redakamis}} $1",
        "rollbackfailed": "Sädunam no eplöpon",
        "cantrollback": "Redakam no kanon pasädunön; keblünan lätik binon lautan teik pada at.",
        "alreadyrolled": "No eplöpos ad sädunön redakami lätik pada: [[:$1]] fa geban: [[User:$2|$2]] ([[User talk:$2|Bespikapad]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); ek ya eredakon oni ud esädunon redakami ona.\n\nRedakam lätik päjenükon fa geban: [[User:$3|$3]] ([[User talk:$3|Bespikapad]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "import-interwiki-history": "Kopiedön fomamis valik jenotema pada at",
        "import-interwiki-templates": "Keninükön samafomotis valik",
        "import-interwiki-submit": "Nüveigön",
-       "import-interwiki-namespace": "Ini nemaspad:",
        "import-upload-filename": "Ragivanem:",
        "import-comment": "Küpet:",
        "importtext": "Seveigolös ragivi se fonätavük me [[Special:Export|stum seveiga]].\nDakipolös oni su nünöm olik e löpükolös oni isio.",
        "expand_templates_ok": "Baiced",
        "expand_templates_remove_comments": "Moükön küpetis",
        "expand_templates_generate_xml": "Jonön bimi: XML",
-       "expand_templates_preview": "Büologed"
+       "expand_templates_preview": "Büologed",
+       "special-characters-group-ipa": "LFB",
+       "special-characters-group-greek": "Grikänapük"
 }
index 6b95e78..1a3764c 100644 (file)
@@ -12,7 +12,8 @@
                        "Malafaya",
                        "Reedy",
                        "გიორგიმელა",
-                       "아라"
+                       "아라",
+                       "Silovan"
                ]
        },
        "tog-underline": "რცხუეფიშ ათოღაზუა:",
@@ -25,6 +26,8 @@
        "tog-showtoolbar": "რედაქტირაფაშ ხეჭკუდეფიშ ძირაფა (ითხინს JavaScript-ის)",
        "tog-editondblclick": "ხასჷლეფიშ რედაქტირაფა ჟირმანგი გეწკანტაფათ (ითხინს JavaScript-ის)",
        "tog-editsectiononrightclick": "ჩართი სექციაშ რედაქტირაფა სექციაშ ჯოხოშა მარძგვან გეწკანტაფათ (ითხინს JavaScript-ის)\"",
+       "tog-watchcreations": "ქიგუძინი ჩქიმ კონტროლიშ ერკბულს ჩქიმ დუნარცხუა ხასჷლეფი დო ეხარგელი ფაილეფი",
+       "tog-shownumberswatching": "მაკონტროლაფარი მახვარებუეფიშ მუდანობაშ ძირაფა",
        "tog-showhiddencats": "ქაძირი ფულირი კატეგორიეფი",
        "underline-always": "ირო",
        "underline-never": "შურო",
@@ -34,7 +37,7 @@
        "monday": "თუთაშხა",
        "tuesday": "თახაშხა",
        "wednesday": "ჯუმაშხა",
-       "thursday": "ცაშხა",
+       "thursday": "á\83ªá\83\90á\83\90á\83¨á\83®á\83\90",
        "friday": "ობიშხა",
        "saturday": "შურიშხა",
        "sun": "ჟაშ.",
@@ -56,7 +59,7 @@
        "october": "გჷმათუთა",
        "november": "გერგობათუთა",
        "december": "ქირსეთუთა",
-       "january-gen": "ღურთუთა",
+       "january-gen": "ღურთუთა",
        "february-gen": "ფურთუთაშ",
        "march-gen": "მელახიშ",
        "april-gen": "პირელიშ",
        "actions": "მოქმედალეფი",
        "namespaces": "ჯოხოეფიშ ოფირჩა",
        "variants": "ვარიანტეფი",
+       "navigation-heading": "ნავიგაციაშ მენიუ",
        "errorpagetitle": "ჩილათა",
        "returnto": "დირთი $1-შა",
        "tagline": "{{SITENAME}} ხასჷლაშე",
        "searchbutton": "გორუა",
        "go": "სტატია",
        "searcharticle": "გინულა",
-       "history": "á\83®á\83\90á\83¡á\83\98ლაშ ისტორია",
+       "history": "á\83®á\83\90á\83¡á\83·ლაშ ისტორია",
        "history_short": "ისტორია",
        "printableversion": "ობეშტალი ვერსია",
        "permalink": "პერმანენტული რცხუ",
        "print": "დობეშტი",
+       "view": "ძირაფა",
+       "view-foreign": "ქოძირით $1-ის",
        "edit": "რედაქტირაფა",
        "create": "დორსხუაფა",
+       "create-local": "ლოკალურ ეჭარუაშ გეძინა",
        "editthispage": "ხასჷლაშ რედაქტირაფა",
        "delete": "ლასუა",
        "deletethispage": "დოლასი თე ხასჷლა",
        "personaltools": "პერსონალური ხეჭკუდეფი",
        "talk": "სხუნუა",
        "views": "ძირაფეფი",
-       "toolbox": "á\83\98á\83\9cá\83¡á\83¢á\83 á\83£á\83\9bá\83\94á\83\9cá\83¢ეფი",
+       "toolbox": "á\83®á\83\94á\83­á\83\99á\83£á\83\93ეფი",
        "otherlanguages": "შხვა ნინეფს",
        "redirectedfrom": "(გინოწურაფილი რე $1-შე)",
        "redirectpagesub": "ხასჷლაშა გინოწურაფა",
-       "lastmodifiedat": "თე ხასილაქ ეკონიას გეახალუ $2-ს, $1-ის.",
+       "redirectto": "გინოღალა:",
+       "lastmodifiedat": "თე ხასჷლაქ ეკონიას გეახალუ $2-ს, $1-ის.",
        "jumpto": "გეგნორთი:",
        "jumptonavigation": "ნავიგაცია",
        "jumptosearch": "გორუა",
        "aboutpage": "Project:შენი",
        "copyright": "დინორე მიწორინაფილი რე $1–იშ ჯოხოთ.",
        "copyrightpage": "{{ns:project}}:ოავტორე ალობეფი",
-       "currentevents": "მიმალ მოლინეფი",
-       "currentevents-url": "Project:მიმალ მოლინეფი",
+       "currentevents": "მიმალ მოლინეფი",
+       "currentevents-url": "Project:მიმალ მოლინეფი",
        "disclaimers": "გამამინჯალაშ ვარება",
        "disclaimerpage": "Project:გამამინჯალაშ ვარება",
        "edithelp": "მოხვარა რედაქტირაფას",
        "nosuchspecialpage": "თეჯგუა გჷშაკერძაფილი ხასჷლეფი ვარსებენს",
        "missing-article": "სისტემას ვაძირუ მოგორაფილი ხასჷლაშ ტექსტიქ მუნაჩმეფიშ ბაზას, ჯოხოთ «$1» $2. \n\nთენა, მუჭოთ წესინი, მოხვადუ თი ბორჯის, მუჟამს მახვარებუ გიაჸუნუუ თი ხასჷლაშ ისტორიაშ რცხუს, ნამუთ ლასირი რე. \nთენა თაშ ვა რე-და, შილებე თქვა ძირით ჩილათა სისტემაშ კოდის. \nქორთხიინთ, ქატყვინუათ თენა [[Special:ListUsers/sysop|administrator]]–ს, URL–შ მეწურაფათ.",
        "missingarticle-rev": "(რედაქტირაფა#: $1)",
-       "badtitle": "á\83ªá\83\90á\83\92á\83\90á\83\9cá\83\90 á\83¡á\83\90á\83\97á\83\90á\83£á\83 á\83\98",
+       "badtitle": "á\83ªá\83\90á\83\92á\83\90á\83\9cá\83\90 á\83\93á\83£á\83\93á\83¯á\83\9dá\83®á\83\9d",
        "badtitletext": "მოთხილ ხასილაშ ჯოხო ჩილათირ რდუ, ვარა ჩოლიერ, ვარა ხოლო გოხოლუდეს ჩილათირო გინორცხუაფილ ინტერ–ნინა ვარა ინტერ–წიკი ჯოხო. \nთენა შილებე იკათუანდას ართ ვარა უმოს თიშნერ ნიშანს ნამუშ გუმორინაფა ჯოხოს ვა შილებე.",
        "viewsource": "ქოძირი წყუ",
        "viewsourcetext": "თქვა შეილებუნა ქოძირათ თე ხასჷლაშ დაჭყაფური ფაილი დო ქუდარსხუათ თიშ მანგი:",
        "yourname": "მახვარებუშ ჯოხო:",
+       "userlogin-yourname": "მახვარებუშ ჯოხო",
+       "userlogin-yourname-ph": "გენშიონით თქვანი მოხვარებუშ ჯოხო",
        "yourpassword": "პაროლი",
+       "userlogin-yourpassword": "პაროლი",
+       "userlogin-yourpassword-ph": "გენშიონით თქვანი პაროლი",
+       "createacct-yourpassword-ph": "გენშიონით პაროლი",
        "yourpasswordagain": "კჷნე გეკორობით პაროლი:",
+       "createacct-yourpasswordagain": "დადასურით პაროლი",
+       "createacct-yourpasswordagain-ph": "ხოლო ართშა გენშიონით პაროლი",
        "remembermypassword": "ქჷგიშინი ჩქიმი მიშულა თე ბრაუზერს (მაქსიმუმ $1 დღას)",
+       "userlogin-remembermypassword": "ქუდომტე მიშულირო",
        "yourdomainname": "თქვან დომენ",
        "login": "მიშულა",
        "nav-login-createaccount": "მიშულა/ანგარიშიშ გონწყუმა",
        "userlogin": "მიშულა/ანგარიშიშ გონწყუმა",
        "logout": "გიშულა",
        "userlogout": "გიშულა",
+       "userlogin-noaccount": "ვაიღჷნანო ანგარიში?",
+       "userlogin-joinproject": "ქაკათით {{SITENAME}}",
        "nologin": "დიორდე ვარეთო რეგისტრირებული? $1.",
        "nologinlink": "გონწყით ანგარიში",
        "createaccount": "ანგარიშიშ გონწყუმა",
        "gotaccount": "უკვე რეგისტრირებული რეთო? '''$1'''",
        "gotaccountlink": "მინულა",
        "userlogin-resetlink": "გუგოჭყორდესო მიშაულარო საჭირო ინფორმაციაქ?",
+       "userlogin-resetpassword-link": "დუგოჭყორდესო პაროლქ?",
+       "userlogin-helplink2": "მოხვარა:მიშულა",
+       "createacct-emailoptional": "ელ. ფოსტაშ ოწურაფუ (ვა რე უციო)",
+       "createacct-email-ph": "გენშიონით თქვანი ელ. ფოსტაშ ოწურაფუ",
+       "createacct-captcha": "თხილუაშ კონტროლი",
+       "createacct-imgcaptcha-ph": "გენშიონით ჟი მოჩამილი ტექსტი",
+       "createacct-submit": "გონწყით თქვენ ანგარიში",
+       "createacct-benefit-heading": "{{SITENAME}} გოჭყაფილი რე თქვანნერი ადამიერეფიშით.",
+       "createacct-benefit-body1": "{{PLURAL:$1|რედაქტირაფა|რედაქტირაფა}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|ხასჷლა|ხასჷლა}}",
+       "createacct-benefit-body3": "ბოლო {{PLURAL:$1|მახვარებუ|მახვარებუ}}",
        "loginsuccess": "'''ასე მიშულირ რეთ {{SITENAME}}-ს მუჭოთ \"$1\".'''",
        "nouserspecified": "საჭირო რე მახვარებუშ ჯოხოშ მიშაჭარუა.",
        "mailmypassword": "ახალ პაროლიშ მოჯღონა",
        "noemail": "\"$1\" მახვარებუშ ელ-ფოშტა წურაფილი ვარე.",
        "loginlanguagelabel": "ნინა: $1",
+       "pt-login": "მიშულა",
+       "pt-login-button": "მიშულა",
+       "pt-createaccount": "ანგარიშიშ გონწყუმა",
+       "pt-userlogout": "გიშულა",
        "bold_sample": "რუმე ტექსტი",
        "bold_tip": "რუმე ტექსტ",
        "italic_sample": "ელართელი ტექსტი",
        "subject": "თემა/დუდლანდარი:",
        "minoredit": "თენა რე ჭიჭე რედაქტირაფა",
        "watchthis": "თე ხასჷლაშ კონტროლი",
-       "savearticle": "á\83\93á\83\9dá\83©á\83\95á\83\98 á\83®á\83\90á\83¡á\83\98ლა",
+       "savearticle": "á\83\93á\83\9dá\83©á\83\95á\83\98 á\83®á\83\90á\83¡á\83·ლა",
        "preview": "გიწოთოლორაფა",
        "showpreview": "ქაძირე გიწოთოლორაფა",
        "showdiff": "თირაფეფიშ ძირაფა",
-       "anoneditwarning": "'''á\83\92á\83£á\83 á\83\98 á\83\92á\83£á\83©á\83\98á\83\97:''' á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90á\83 á\83\94á\83\97 á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83\98á\83 á\83\94á\83\91á\83£ლი. თქვან IP ოწურაფუ ინოჭარილი იჸი თე ხასჷლაშ რედაქტირაფაშ ისტორიას.",
+       "anoneditwarning": "'''á\83\92á\83£á\83 á\83\98 á\83\92á\83£á\83©á\83\98á\83\97:''' á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90á\83 á\83\94á\83\97 á\83 á\83\94á\83\92á\83\98á\83¡á\83¢á\83 á\83\98á\83 á\83\90á\83¤á\83\98ლი. თქვან IP ოწურაფუ ინოჭარილი იჸი თე ხასჷლაშ რედაქტირაფაშ ისტორიას.",
        "summary-preview": "რეზიუმეშ გიწოთოლორაფა",
        "blockedtext": "'''თქვან მახვარებუშ ჯოხო ვარა IP მიოწურაფუქ ბლოკირქ იჸუ. '''\n\nბლოკირაფა ღოლუ $-ქ.\nსამანჯელო წუმორინაფილქ იჸუ გეჸვენჯიქ: ''$2''.\n\n* ბლოკუაშ დაჭყაფური: $8\n* ბლოკიშ ვადაშ გულა ბორჯი: $6\n* ბლოკირქ იჸუ: $7\n\nშეილებუნა დეკავშირათ $1-ს ვარა ნამთინე შხვა [[{{MediaWiki:Grouppage-sysop}}|ადმინისტრატორს]] ბლოკუაშ კილასხუნალო.\nგეთოლწონით, ნამდა თქვა ვაგუმგარინენა ფუნქცია: ''მახვარებუშა ელ-ფოშტაშ ჯღონუა'', ვაგაფუნა მეღანკილი მოქმენდი ელ-ფოშტაშ მიოწურაფუ თქვანი [[Special:Preferences|ანგარიშიშ კონფიგურაციას]], ვარა დობლოკუაშ გეშა თე ფუნქციაშ გუმორინაფაშ ნება მიდაღალირ გაფუნა და.\nთქვან ასეიან IP მიოწურაფუ რე $3, დო ბლოკიშ იდენტიფიკატორი #$5.\nრთხიინთ ქიმიოღანკათ თე მუნაჩემეფშე ნამდგაიჸინი (ვარა ჟირხოლო) თქვან კორესპონდენციას.",
+       "loginreqlink": "მიშულა",
        "newarticle": "(ახალ)",
-       "newarticletext": "á\83\97á\83¥á\83\95á\83\90 á\83\92á\83\94á\83§â\80\99á\83£á\83\9cá\83\94á\83\9a á\83 á\83\94á\83\97 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83 á\83ªá\83®á\83\98á\83¡, á\83\9cá\83\90á\83\9bá\83£á\83\97 á\83\93á\83\98á\83\9d á\83\95á\83\90 á\83 á\83\94 á\83\93á\83\9dá\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\98á\83\9a.\ná\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\93á\83\90á\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\90á\83\9aá\83\9d á\83\92á\83\94á\83\9bá\83\98á\83¨á\83\94á\83§â\80\99á\83\9dá\83\9cá\83\98á\83\97 á\83¢á\83\94á\83¥á\83¡á\83¢ á\83\97á\83£á\83\93á\83\9dá\83\9c á\83\9dá\83­á\83\99á\83\9dá\83 á\83\98á\83\94á\83¨á\83\90. (á\83¥á\83\9dá\83«á\83\98á\83 á\83\98á\83\97[$1 á\83\9bá\83\9dá\83®á\83\95á\83\90á\83 á\83\90á\83¨ á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90] á\83£á\83\9bá\83\9dá\83¡ á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90á\83¨á\83\9d).\ná\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლას ჩილათირო მოხვადით–და, ქიგუნჭირით თქვან ბრაუზერიშ კონჭის '''უკახალე'''.\"",
+       "newarticletext": "á\83\97á\83¥á\83\95á\83\90 á\83\92á\83\94á\83¸á\83£á\83\9cá\83\94á\83\9aá\83· á\83 á\83\94á\83\97 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83 á\83ªá\83®á\83\98á\83¡, á\83\9cá\83\90á\83\9bá\83£á\83\97 á\83\93á\83\98á\83\9d á\83\95á\83\90 á\83 á\83\94 á\83\93á\83\9dá\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\98á\83\9aá\83\98.\ná\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\93á\83\90á\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\90á\83\9aá\83\9d á\83\92á\83\94á\83\9bá\83¨á\83\94á\83¸á\83\9dá\83\9cá\83\98á\83\97 á\83¢á\83\94á\83¥á\83¡á\83¢á\83\98 á\83\97á\83£á\83\93á\83\9dá\83\9c á\83\9dá\83­á\83\99á\83\9dá\83 á\83\98á\83\94á\83¨á\83\90. (á\83¥á\83\9dá\83«á\83\98á\83 á\83\98á\83\97[$1 á\83\9bá\83\9dá\83®á\83\95á\83\90á\83 á\83\90á\83¨ á\83®á\83\90á\83¡á\83·á\83\9aá\83\90] á\83£á\83\9bá\83\9dá\83¡ á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90á\83¨á\83\9d).\ná\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლას ჩილათირო მოხვადით–და, ქიგუნჭირით თქვან ბრაუზერიშ კონჭის '''უკახალე'''.\"",
        "noarticletext": "ასე თე ხასილას ტექსტ ვა რე. \nთქვა შეილებუნა [[Special:Search/{{PAGENAME}}|გორათ ათე ხასილაშ ჯოხო]] შხვა ხასილეფს,\n<span class=\\\"plainlinks\\\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} დოგორათ მეხუჯაფილ ჟურნალეფ],\nვარა [{{fullurl:{{FULLPAGENAME}}|action=edit}} დიჭყათ ათე ხასილაშ რედაქტირაფა]</span>.",
        "noarticletext-nopermission": "ათე ხასჷლას ასე ტექსტი ვა რე. თქვა შეილებუნა [[Special:Search/{{PAGENAME}}|დოგორათ თე ხასჷლაშ დუდჯოხო]] შხვა ხასჷლეფს,\nვარდა <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} დოგორათ გინორცხილ ჟურნალეფი]</span>.",
        "previewnote": "'''რშუდანი თენა რე ხვალე გიწოთოლორაფა'''\nთქვანი თირაფეფი დიო ვარე ჩუალირი!",
        "editing": "რედაქტირაფა $1",
+       "creating": "აკმიქიმინუაფჷ: „$1“",
        "editingsection": "$1–იშ (სექციაშ) რედაქტირაფა",
        "yourtext": "თქვან ტექსტი",
        "copyrightwarning": "გეთოლწონით, ნამდა {{SITENAME}} ხასილაშა თქვან ხეშე მიშაღალირ არძონერ თია იფორუ $2-ით (დეტალეფშო ქოძირით $1). \nვა გოკონა თქვან ნახანდაქ დუდშულო   რედაქტირებულქ დო გიონოჯღონელქ იყ’უას–და, ვა მიშეყ’ონათ თინა თაქ.<br />\nთქვა ხოლო პიჯალას დუთმოდვანთ, ნამდა თე ტექსტი თქვან ნაჭარა რე, ვარა გინოღალირ რე ოირკოჩე დომენშე დო ვარა თიშ მანგურ დუდიშულ წყუშე. \n'''ვა მიშეღათ ოავტორე ნებეფით თხილერ ნახანდი ავტორიშ ქოყ’იაშ უმშო!'''\"",
-       "templatesused": "თე ხასჷლას გიმორინაფილი {{PLURAL:$1|თანგი|თანგეფი}}:",
+       "templatesused": "თე ხასჷლას გიმორინაფილი რე {{PLURAL:$1|თანგი|თანგი}}:",
        "templatesusedpreview": "{{PLURAL:$1|თანგი|თანგეფი}} ნამუთ თე გჷწოთოლორაფას რე გიმორინაფილი",
        "template-protected": "(თხილერი)",
        "template-semiprotected": "(გვერდო თხილერი)",
-       "hiddencategories": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლა ოკათუ {{PLURAL:$1|1 ტყობინაფილ კატეგორიას|$1 ტყობინაფილ კატეგორიეფს}}:",
+       "hiddencategories": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლა ოკათუ {{PLURAL:$1|1 ტყობინაფილ კატეგორიას|$1 ტყობინაფილ კატეგორიეფს}}:",
        "nocreatetext": "თე ხასილას ვა შილებე ახალ ხასილაშ გექიმინუა დორცხუაფილ ვარიაშ გეშა. თქვა შეგილებუნა კინორთა დო გექიმინელ ხასილაშ რედაქტირაფა, ვარა [[სპეციალურ:Userlogin|მიშულა დო ანგარიშიშ დორცხუაფა]]",
-       "permissionserrorstext-withaction": "á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90 á\83\92á\83\98á\83¦á\83£á\83\9cá\83\90 $2â\80\93á\83\98á\83¨ á\83¦á\83\9dá\83\9aá\83\90á\83\9bá\83\90á\83¨ á\83\90á\83\9aá\83\9dá\83\91á\83\90 á\83\97á\83\94 á\83\92á\83\94á\83¸á\83\95á\83\94á\83\9cá\83¯á\83\98 {{PLURAL:$1|á\83¡á\83\90á\83\9bá\83\90á\83\9cá\83¯á\83\94á\83\9aá\83\98á\83\97\83¡á\83\90á\83\9bá\83\90á\83\9cá\83¯á\83\94á\83\9aá\83\94á\83¤á\83\98á\83\97}}:",
+       "permissionserrorstext-withaction": "თქვა ვა გიღუნა $2–იშ ღოლამაშ ალობა თე გეჸვენჯი {{PLURAL:$1|სამანჯელით|სამანჯელით}}:",
        "recreate-moveddeleted-warn": "'''გართხილება: თქვა კინე ახალშო ორსხუანთ ხასჷლას, ნამუქჷთ ლასირქ იჸუ ოწოხოლე'''\n\nრთხიინთ, დეფირქათ, ქორე თუ ვარ მისაღეფ თე ხასჷლაშ რედაქტირაფაშ გაგინძორება.\nთქვან ოხუჯურო, ათე ხასილაშ ლასუაშ დო გინოღალაშ ჟურნალი მოჩამილ რე თუდო:",
        "moveddeleted-notice": "თე ხასჷლაქ ლასირქ იჸუ. ლასუაშ დო გინოღალაშ ჟურნალი მოჩამილ რე თუდო გიმაწურაფალო",
        "post-expand-template-inclusion-warning": "\"გური ქუჩით:\" ინოხუნაფილ თანგეფიშ ზომა ნაბტანი დიდი რე. კანკალე თანგეფი ვენიკათინე.",
        "post-expand-template-inclusion-category": "ხასჷლეფი ნამუსუთ ინოხუნაფილი თანგეფიშ ზომა გინომეტებული რე.",
        "post-expand-template-argument-warning": "\"'''გური ქუჩით:''' თე ხასჷლას ოკათ არძოშ უკლაშ ართ თიცალ თანგიშ არგუმენტი, ნამუსუთ უღუ გოძინელოფაშ ნაბტან დიდ ზომა.\nთე არგუმენტეფქ გჷშატებულქ იჸუ.\"",
        "post-expand-template-argument-category": "უარგუმენტო თანგამი ხასჷლეფი",
-       "viewpagelogs": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლაშო ორეგისტრაციე ჟურნალეფიშ ძირაფა",
+       "viewpagelogs": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლაშო ორეგისტრაციე ჟურნალეფიშ ძირაფა",
        "currentrev": "მიმალ გიშანწყუალა",
        "currentrev-asof": "$1–შო მიმალ რედაქცია",
        "revisionasof": "$1 თარიღიშო დო საათიშო რსებულ ვერსია",
-       "revision-info": "$1-á\83\98á\83¨ á\83\95á\83\94á\83 á\83¡á\83\98á\83\90, $2-á\83\98á\83¨ á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83 ",
+       "revision-info": "$1-á\83\98á\83¨ á\83\95á\83\94á\83 á\83¡á\83\98á\83\90, $2-á\83\98á\83¨ á\83\9bá\83\98á\83¨á\83\9cá\83\90á\83¦á\83\94á\83\9a",
        "previousrevision": "←უმოს ჯვეშ ვერსია",
        "nextrevision": "უახალაშ ვერსია→",
        "currentrevisionlink": "მიმალ ვერსია",
        "revdel-restore": "ორწყენჯობაშ თირუა",
        "revertmerge": "ეკორტყუალაშ მოლასუა",
        "history-title": "\"$1\"–იშ თირაფეფიშ ისტორია",
+       "difference-title": "$1: შხვანერობა გჷნოჯინეფს შქას",
        "lineno": "ღოზი $1:",
        "compareselectedversions": "გიშაგორილ ვერსიეფიშ მეზიმაფა",
        "editundo": "გოუქვაფა",
-       "searchresults": "გორუაშ მოღალირობეფ",
-       "searchresults-title": "\"$1\"–იშ გორუაშ მოღალირობეფ",
+       "searchresults": "გორუაშ მოღალირობეფ",
+       "searchresults-title": "\"$1\"–იშ გორუაშ მოღალირობეფ",
        "notextmatches": "ნამთინ ხასილაშ ტექსტი ვა უხუჯანს",
        "prevn": "წოხლენ $1",
        "nextn": "უკულიან {{PLURAL:$1|$1}}",
        "searchprofile-advanced": "გაუჯგუშებული",
        "searchprofile-articles-tooltip": "დოგორი $1-ს",
        "searchprofile-images-tooltip": "დოგორი ფაილეფი",
-       "searchprofile-everything-tooltip": "á\83\92á\83\9dá\83 á\83£á\83\90 á\83\90á\83 á\83«á\83\9d á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¡ (á\83\9dá\83©á\83\98á\83\94á\83\91á\83\94á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98á\83¨ á\83\9bá\83\94á\83\99á\83\9dá\83 á\83\9dá\83ªá\83®á\83\98á\83\9aო)",
+       "searchprofile-everything-tooltip": "á\83\90á\83 á\83«á\83\9d á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¡ á\83\92á\83\9dá\83 á\83£á\83\90 (á\83\9dá\83¡á\83®á\83£á\83\9cá\83£á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98á\83¨á\83\90á\83\9bო)",
        "searchprofile-advanced-tooltip": "გორუა მახვარებუშ გენჭყილ ჯოხოეფიშ ოფირჩას",
-       "search-result-size": "$1 ({{PLURAL:$2|1 á\83\96á\83\98á\83¢á\83§á\83\95á\83\90|$2 á\83\96á\83\98á\83¢á\83§á\83\95á\83\94á\83¤}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 á\83\96á\83\98á\83¢á\83§á\83\95á\83\90|$2 á\83\96á\83\98á\83¢á\83§á\83\95á\83\90}})",
        "search-result-category-size": "{{PLURAL:$1|1 მაკათური|$1 მაკათური}} ({{PLURAL:$2|1 გიმენკატეგორია|$2 გიმენკატეგორია}}, {{PLURAL:$3|1 ფაილი|$3 ფაილეფი}})",
        "search-redirect": "(გინოწურაფა $1)",
        "search-section": "(სექცია $1)",
        "search-interwiki-more": "(უმოს)",
        "searchrelated": "მათანგეფ",
        "searchall": "არძო",
+       "search-showingresults": "{{PLURAL:$4|მოღალირობა <strong>$1</strong> შე <strong>$3</strong>|მოღალირობა <strong>$1 - $2</strong> შე <strong>$3</strong>}}",
        "search-nonefound": "თქვანი მოგორაფილიშ მუთუნნერ მანგი მოღალუქ ვეძირჷ.",
        "powersearch-legend": "გოძინელ გორუა",
        "powersearch-ns": "დოგორ ჯოხოეფიშ ოფირჩას:",
        "rightslog": "მახვარებუშ ნებეფიშ ჟურნალ",
        "action-edit": "თე ხასილაშ რედაქტირაფა",
        "nchanges": "$1 {{PLURAL:$1|თირაფა|თირაფეფ}}",
+       "enhancedrc-history": "ისტორია",
        "recentchanges": "ასეიანი თირაფეფი",
        "recentchanges-legend": "ასერდენ თირაფეფიშ ოფციეფ",
        "recentchanges-summary": "თე ხასჷლას ქაძირი ვიკიშა მიშაღალირ არძოშ უახალაშ თირაფეფი.",
        "recentchanges-label-minor": "თენა რე ციქა რედაქტირაფა",
        "recentchanges-label-bot": "თე რედაქტირაფა ბოტიშ ნაღოლემი რე",
        "recentchanges-label-unpatrolled": "თე რედაქტირაფა დიო ხოლო ვა რე პატრულირაფირი",
+       "recentchanges-label-plusminus": "თირაფეფიშ ზჷმა ბაიტეფს",
+       "recentchanges-legend-heading": "'''ლეგენდა:'''",
        "rcnotefrom": "თუდო მოჸუნაფილიე თირაფეფ, ”’$2””-შე (ძირაფილიე ”’$1”’)",
        "rclistfrom": "ახალ თირაფეფიშ ძირაფა დოჭყაფილ $3 $2-შე",
-       "rcshowhideminor": "$1 ჭიჭე რედაქტირაფეფ",
+       "rcshowhideminor": "$1 ჭიჭე რედაქტირაფეფი",
+       "rcshowhideminor-show": "ძირაფა",
+       "rcshowhideminor-hide": "ტყობინაფა",
        "rcshowhidebots": "ბოტეფიშ  $1",
+       "rcshowhidebots-show": "ძირაფა",
+       "rcshowhidebots-hide": "ტყობინაფა",
        "rcshowhideliu": "$1 მიშულირ მახვარებუეფ",
-       "rcshowhideanons": "$1 ანონიმურ მახვარებუეფ",
+       "rcshowhideliu-hide": "ტყობინაფა",
+       "rcshowhideanons": "$1 ანონიმურ მახვარებუეფი",
+       "rcshowhideanons-show": "ძირაფა",
+       "rcshowhideanons-hide": "ტყობინაფა",
        "rcshowhidepatr": "გოკონტროლაფირ თირაფეფიშ $1",
        "rcshowhidemine": "ჩქიმ რედაქტირაფეფიშ $1",
+       "rcshowhidemine-show": "ძირაფა",
+       "rcshowhidemine-hide": "ტყობინაფა",
        "rclinks": "ეკონია $2 დღას ღოლამირ ეკონია $1 თირაფეფიშ ძირაფა <br />$3",
        "diff": "შხვანერობა",
        "hist": "ისტ.",
        "minoreditletter": "ჭ.რ.",
        "newpageletter": "ახ.",
        "boteditletter": "ბ",
+       "rc-change-size-new": "ზჷმა თირუაშ უკული რე: {{PLURAL:$1|ბაიტი|ბაიტი}}",
        "rc-enhanced-expand": "დეტალეფიშ ძირაფა (ითხინს ჯავასქრიფთის)",
        "rc-enhanced-hide": "დეტალეფიშ ტყობინაფა",
        "recentchangeslinked": "აკოხვალამირ თირაფეფ",
        "recentchangeslinked-feed": "აკოხვალამირ თირაფეფ",
-       "recentchangeslinked-toolbox": "აკოხვალამირ თირაფეფ",
+       "recentchangeslinked-toolbox": "აკოხვალამირ თირაფეფ",
        "recentchangeslinked-title": "\"$1\"-შა მებუნაფილ თირაფეფი",
-       "recentchangeslinked-summary": "á\83\97á\83\94á\83\9cá\83\90 á\83 á\83\94 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¬á\83\99á\83£á\83\9bá\83\90 (á\83\95á\83\90á\83 á\83\90 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\90á\83¨ á\83\9bá\83\90á\83\99á\83\90á\83\97á\83£á\83 á\83\94á\83¤á\83¬á\83\99á\83£á\83\9bá\83\90) á\83\92á\83\98á\83\9cá\83\9dá\83 á\83ªá\83®á\83£á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83¡ á\83\94á\83\99á\83\9dá\83\9cá\83\98á\83\90 á\83\91á\83\9dá\83 á\83¯á\83\98á\83¡ á\83¦á\83\9dá\83\9aá\83\90á\83\9bá\83\98á\83 á\83\98 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9a. á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83\98 [[Special:Watchlist|your watchlist]] á\83\92á\83\98მორთილი რე '''ფსქელას'''.\"",
+       "recentchangeslinked-summary": "á\83\97á\83\94á\83\9cá\83\90 á\83 á\83\94 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¬á\83\99á\83·á\83\9bá\83\90 (á\83\95á\83\90á\83 á\83\90 á\83\9bá\83\94á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\90á\83¨ á\83\9bá\83\90á\83\99á\83\90á\83\97á\83£á\83 á\83\94á\83¤á\83¬á\83\99á\83·á\83\9bá\83\90) á\83\9bá\83\94á\83 á\83¡á\83®á\83£á\83\90á\83¤á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83¡ á\83\94á\83\99á\83\9dá\83\9cá\83\98á\83\90 á\83\91á\83\9dá\83 á\83¯á\83\98á\83¡ á\83¦á\83\9dá\83\9aá\83\90á\83\9bá\83\98á\83 á\83\98 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98. á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98 [[Special:Watchlist|á\83\97á\83¥á\83\95á\83\90á\83\9cá\83\98 á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83¡]] á\83\92á\83·მორთილი რე '''ფსქელას'''.\"",
        "recentchangeslinked-page": "ხასილაშ ჯოხო:",
        "recentchangeslinked-to": "მანგიერო ქაძირე ათე ხასილაშა მერცხილ ხასილეფშა მიშაღალირ თირაფეფ",
        "upload": "ფაილიშ ეხარგუა",
        "filedesc": "რეზიუმე",
        "license": "ლიცენზირაფა:",
        "license-header": "ლიცენზირაფა",
+       "imgfile": "ფაილი",
        "listfiles": "სურათეფიშ ერკებულ",
        "listfiles_name": "სახელ",
        "file-anchor-link": "ფაილი",
        "filehist": "ფაილიშ ისტორია",
        "filehist-help": "ქიგუნჭირით რიცხვის/ბორჯის თიშო, ნამდა ქოძირათ ფაილი თი რედაქციათ, მუ რედაქციას თი რიცხვის/ბორჯის რდუნ.",
        "filehist-revert": "დართინე",
-       "filehist-current": "მიმალ",
-       "filehist-datetime": "á\83 á\83\98á\83ªá\83®á\83\95á\83\98/ბორჯი",
+       "filehist-current": "მიმალ",
+       "filehist-datetime": "á\83 á\83\98á\83ªá\83®á\83£/ბორჯი",
        "filehist-thumb": "ჭკუდი",
        "filehist-thumbtext": "ჭკუდი $1-შო რსებულ ვერსიაშო",
        "filehist-user": "მახვარებუ",
-       "filehist-dimensions": "განზომილებეფ",
+       "filehist-dimensions": "განზომილებეფ",
        "filehist-filesize": "ფაილიშ ზომა",
-       "filehist-comment": "კომენტარ",
+       "filehist-comment": "კომენტარ",
        "imagelinks": "ფაილი გჷმორინაფილი რე",
        "linkstoimage": "გეყ’ვენჯი {{PLURAL:$1|ხასილა|ხასილეფ}} მერცხილ რე თე ფაილშა",
-       "nolinkstoimage": "á\83\95á\83\90 á\83 á\83\94 á\83\97á\83\94 á\83¤á\83\90á\83\98á\83\9aá\83¬á\83\99á\83£á\83\9bá\83\90 á\83\9bá\83\94á\83 á\83¡á\83®á\83\98á\83\9a á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤.",
+       "nolinkstoimage": "á\83\95á\83\90 á\83 á\83\94 á\83\97á\83\94 á\83¤á\83\90á\83\98á\83\9aá\83¬á\83\99á\83·á\83\9bá\83\90 á\83\9bá\83\94á\83 á\83¡á\83®á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98.",
        "sharedupload": "თე ფაილ რე $1-შე დო შილებე თენა შხვა პროექტეფც ხოლო გიმირინაუფუდასინ",
        "sharedupload-desc-here": "თე ფაილი რე $1-შე დო შილებე გჷმორნაფილქ იჸუას შხვა პროექტეფს. თეშ ეჭარუა [$2 ფაილიშ ეჭარუაშ ხასჷლა] თუდოლე რე მოჩამილი.",
        "uploadnewversion-linktext": "გეშახარგე ათე ფაილიშ ახალ ვერსია",
+       "upload-disallowed-here": "თქვა ვა შეილებუნა თე ფაილიშ გჷნოჭაუა.",
        "mimesearch": "MIME გორუა",
-       "randompage": "á\83\9cá\83\90á\83\9bá\83\93á\83\92á\83\90á\83 á\83\94á\83\9c á\83®á\83\90á\83¡á\83\98ლა",
+       "randompage": "á\83\9cá\83\90á\83\9bá\83\93á\83\92á\83\90á\83 á\83\94á\83\9c á\83®á\83\90á\83¡á\83·ლა",
        "statistics": "სტატისტიკა",
        "withoutinterwiki": "ხასილეფ ნინაშ რსხილეფიშ გარეშე",
        "nbytes": "$1 ბაიტი",
        "nlinks": "$1 რსხილ",
-       "nmembers": "$1 {{PLURAL:$1|მაკათურ|მაკათურეფ}}",
+       "nmembers": "$1 {{PLURAL:$1|მაკათური|მაკათური}}",
        "uncategorizedpages": "უკატეგორიე ხასილეფ",
        "uncategorizedcategories": "კატეგორიეფ კატეგორიეფიშ გარეშე",
        "uncategorizedimages": "სურათეფ კატეგორიაშ უმიშო",
        "shortpages": "ჭიჭე ხასილეფ",
        "longpages": "გინძე ხასილეფ",
        "usercreated": "{{GENDER:$3|დირსხუ}} $2-ის $1-ს",
-       "newpages": "á\83\90á\83®á\83\90á\83\9a á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤",
+       "newpages": "á\83\90á\83®á\83\90á\83\9a á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98",
        "ancientpages": "ჯვეშ ხასილეფ",
        "move": "გინოღალა",
        "movethispage": "თე გვერდიშ გინოღალა",
        "pager-newer-n": "{{PLURAL:$1|უახალაშ 1|უახალაშ $1}}",
        "pager-older-n": "{{PLURAL:$1|უმოს ჯვეში 1|უმოს ჯვეში $1}}",
-       "booksources": "წინგიშ წყუეფ",
+       "booksources": "წინგიშ წყუეფ",
        "booksources-search-legend": "წიგნიშ წყუშ გორუა",
+       "booksources-search": "გორუა",
        "specialloguserlabel": "მახვარებუ:",
        "speciallogtitlelabel": "სათაურ:",
-       "log": "ჟურნალეფ",
+       "log": "ჟურნალეფ",
        "all-logs-page": "ირ ჟურნალ",
        "allpages": "არძა ხასილა",
        "nextpage": "უკულ ხასილა ($1)",
        "deleteotherreason": "შხვა/გეძინელ სამანჯელ:",
        "deletereasonotherlist": "შხვა სამანჯელ",
        "rollbacklink": "დორთა",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|თირაფაშ|თირაფაშ}} გოუქვაფა",
        "protectlogpage": "თხილუაშ ისტორია",
        "protectedarticle": "თხილერი რე \"[[$1]]\"",
        "modifiedarticleprotection": "დოთირეთ თხილუაშ დონე \\\"[[$1]]\\-შო",
        "undeleteviewlink": "ძირაფა",
        "undelete-search-submit": "გორუა",
        "namespace": "ჯოხოეფიშ ოფირჩა:",
-       "invert": "á\83\90á\83 á\83«á\83\90, á\83\9bá\83\94á\83¦á\83\90á\83\9cá\83\99á\83\98á\83\9aá\83\98á\83¨ á\83\92á\83£á\83\9bá\83\9dá\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\9d",
+       "invert": "á\83\90á\83 á\83«á\83\9d, á\83\9bá\83\94á\83 á\83©á\83¥á\83\98á\83\9cá\83\94á\83\9aá\83\98á\83¨ á\83\9bá\83\9dá\83®",
        "blanknamespace": "(დუდ)",
        "contributions": "მახვარებუშ მიშაღალირ თია",
        "contributions-title": "$1-შა მახვარებუშ მიშაღალირ თია",
        "sp-contributions-username": "IP მიოწურაფუ ვარა მახვარებუშ ჯოხო:",
        "sp-contributions-toponly": "ქაძირი ხვალე ეკონია რევიზიეფი რენ ფერი რედაქტირაფეფი",
        "sp-contributions-submit": "გორუა",
-       "whatlinkshere": "á\83¡á\83\9dá\83\95á\83 á\83\94á\83¨á\83\94 á\83 á\83\94 á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90 á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9a",
-       "whatlinkshere-title": "á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤, ნამუთ გინორცხილ რე $1-შა",
+       "whatlinkshere": "á\83¡á\83\9dá\83\95á\83 á\83\94á\83¨á\83\94 á\83 á\83\94 á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90 á\83¬á\83£á\83 á\83\90á\83¤á\83\98á\83\9aá\83\98",
+       "whatlinkshere-title": "á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98, ნამუთ გინორცხილ რე $1-შა",
        "whatlinkshere-page": "ხასჷლა:",
        "linkshere": "გეყ’ვენჯ ხასილეფ გინარცხუაფუ '''[[:$1]]'''-ეფს",
        "nolinkshere": "ნამთინ ხასილა ვა რე გინორცხილ '''[[:$1]]'''-შა.",
-       "isredirect": "á\83\92á\83\98á\83\9cá\83\9dá\83¬á\83£á\83 á\83\90á\83¤á\83\90á\83¨ á\83®á\83\90á\83¡á\83\98ლა",
+       "isredirect": "á\83\92á\83\98á\83\9cá\83\9dá\83¬á\83£á\83 á\83\90á\83¤á\83\90á\83¨ á\83®á\83\90á\83¡á\83·ლა",
        "istemplate": "ტრანსკლუზია",
        "isimage": "ფაილიშ რცხი",
        "whatlinkshere-prev": "{{PLURAL:$1|წოხოლენ|წოხოლენ $1}}",
        "blocklink": "ბლოკირაფა",
        "unblocklink": "ბლოკიშ მონწყუმა",
        "change-blocklink": "ბლოკიშ თირუა",
-       "contribslink": "ნახანდ",
+       "contribslink": "ნახანდ",
        "blocklogpage": "ბლოკირეფიშ ერკებულ",
        "blocklogentry": "ბლოკირ რე [[$1]] ბლოკირაფაშ ვადაშ ათე გულა ბორჯით: $2 $3.",
        "unblocklogentry": "$1-შა ბლოკიშ მონწყუმა",
        "movelogpage": "ორეგისტრაციე ჟურნალიშ გინოღალა",
        "movereason": "სამანჯელი:",
        "revertmove": "გოუქვაფა",
-       "export": "á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83\98á\83¨ á\83\94á\83¥á\83¡á\83\9eá\83\9dá\83 á\83¢",
+       "export": "á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83\98á\83¨ á\83\94á\83¥á\83¡á\83\9eá\83\9dá\83 á\83¢á\83\98",
        "allmessages": "ირ სისტემურ შეტყვინაფა",
        "allmessagesname": "ჯოხო",
        "allmessagesdefault": "შატყვინაფაშ სტანდარტულ ტექსტი",
        "thumbnail-more": "მორდი",
        "thumbnail_error": "ესკიზიშ ქიმინუაშ ჩილათა: $1",
        "importlogpage": "იმპორტიშ ჟურნალ",
-       "tooltip-pt-userpage": "á\83\97á\83¥á\83\95á\83\90á\83\9cá\83\98 á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83\98ლა",
+       "tooltip-pt-userpage": "á\83\97á\83¥á\83\95á\83\90á\83\9cá\83\98 á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83·ლა",
        "tooltip-pt-mytalk": "თქვანი სხუნუაშ ხასილა",
        "tooltip-pt-preferences": "ჩქიმ კონფიგურაციეფ",
        "tooltip-pt-watchlist": "ხასილეფიშ ერკებულ, ნამუთუშ მონიტორინგის ორთუთ თირაფაშ მიზანით",
        "tooltip-pt-mycontris": "თქვანი მიშნაღელ თიეფიშ ერკებულ",
-       "tooltip-pt-login": "á\83¯á\83\92á\83\98á\83  á\83\98á\83¸á\83\98 á\83\92á\83\94á\83\9bá\83¨á\83£á\83 á\83\97á\83£â\80\93á\83\93á\83\90, á\83\9bá\83\90á\83 á\83\90 á\83\97á\83\94á\83\9cá\83\90 á\83\95á\83\90 á\83 á\83\94 á\83¡á\83\90á\83\95á\83\90á\83\9aá\83\93á\83\94á\83\91á\83£á\83\9aო",
+       "tooltip-pt-login": "á\83¯á\83\92á\83\98á\83  á\83\98á\83¸á\83\98 á\83\92á\83\94á\83\9bá\83¨á\83£á\83 á\83\97á\83£â\80\93á\83\93á\83\90, á\83\9bá\83\90á\83 á\83\90 á\83\97á\83\94á\83\9cá\83\90 á\83\95á\83\90 á\83 á\83\94 á\83£á\83ªá\83\98ო",
        "tooltip-pt-logout": "გიშულა",
-       "tooltip-ca-talk": "დინორეშ ხასილაშ სხუნუა",
-       "tooltip-ca-edit": "თქვა შეილებნა თე ხასილაშ რედაქტირაფა. რთხინთ, გეუნჭირით გიწოთოლორაფაშ კონჭის სოიშახ ხასილას ჩუანდათინ",
+       "tooltip-pt-createaccount": "ჩქი გიზალუთ, გონწყათ ანგარიში დაო გენშართათ სისტემაშა; მარა თენა ვა რე უციო",
+       "tooltip-ca-talk": "დინორეშ ხასჷლაშ სხუნუა",
+       "tooltip-ca-edit": "თქვა შეილებნა თე ხასჷლაშ რედაქტირაფა. რთხინთ, გეუნჭირით გიწოთოლორაფაშ კონჭის სოიშახ ხასჷლას ჩუანდათინ",
        "tooltip-ca-addsection": "ქიდიჭყით ახალ სექცია",
-       "tooltip-ca-viewsource": "á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90 á\83\97á\83®á\83\98á\83\9aá\83\94á\83  რე. \nშეგილებუნა ძირათ თეშ წყუ.",
-       "tooltip-ca-history": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨á\83\90 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83  á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤",
+       "tooltip-ca-viewsource": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90 á\83\97á\83®á\83\98á\83\9aá\83\94á\83 á\83\98 რე. \nშეგილებუნა ძირათ თეშ წყუ.",
+       "tooltip-ca-history": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨á\83\90 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83 á\83\98 á\83\97á\83\98á\83 á\83\90á\83¤á\83\94á\83¤á\83\98",
        "tooltip-ca-protect": "ხასილაშ თხილუა",
        "tooltip-ca-delete": "თე ხასილაშ ლასუა",
-       "tooltip-ca-move": "á\83\92á\83\94á\83\92á\83\9cá\83\98á\83¦á\83\98 á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლა",
-       "tooltip-ca-watch": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\92á\83\94á\83«á\83\98á\83\9cá\83\90 á\83\97á\83¥á\83\95á\83\90á\83\9c á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83 á\83\94á\83\91á\83£á\83\9a á\83®á\83\90á\83¡á\83\98ლეფიშ ერკებულშა",
+       "tooltip-ca-move": "á\83\92á\83\94á\83\92á\83\9cá\83\98á\83¦á\83\98 á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლა",
+       "tooltip-ca-watch": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\92á\83\94á\83«á\83\98á\83\9cá\83\90 á\83\97á\83¥á\83\95á\83\90á\83\9c á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\98 á\83®á\83\90á\83¡á\83·ლეფიშ ერკებულშა",
        "tooltip-ca-unwatch": "მონწყით თე ხასილა თქვან კონტროლებულ ხასილეფიშ ერკებულშე",
        "tooltip-search": "გორუა {{SITENAME}}",
        "tooltip-search-go": "გეგნორთი წორას ათე ჯოხოშ ხასილაშა შურო ქო რენ-და",
        "tooltip-search-fulltext": "დოგორი ხასილეფი, ნამუთ თე ტექსტის იკათუანან",
        "tooltip-p-logo": "დუდხასჷლაშ ძირაფა",
-       "tooltip-n-mainpage": "დუდ ხასილაშ ძირაფა",
+       "tooltip-n-mainpage": "დუდხასჷლაშ ძირაფა",
        "tooltip-n-mainpage-description": "დუდ ხასილაშა გინოზოჯუა",
        "tooltip-n-portal": "პროექტიშენი, მუშ ქიმინუა შეილებუნა, სოდე შილებე გორათინ",
-       "tooltip-n-currentevents": "á\83\93á\83\9dá\83\92á\83\9dá\83 á\83\98á\83\97 á\83 á\83¡á\83£á\83\9aá\83\98 á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90 á\83\90á\83¡á\83\94á\83\98á\83\90á\83\9c á\83\9bá\83\9dá\83\9aá\83\98á\83\9cá\83\94á\83¤á\83\98á\83¨á\83\94á\83\9c",
-       "tooltip-n-recentchanges": "ვიკიშა ეკონია ბორჯის მიშაღალირ თირაფეფიშ ერკებულ",
+       "tooltip-n-currentevents": "á\83\93á\83\9dá\83\92á\83\9dá\83 á\83\98á\83\97 á\83 á\83¡á\83£á\83\9aá\83\98 á\83\98á\83\9cá\83¤á\83\9dá\83 á\83\9bá\83\90á\83ªá\83\98á\83\90 á\83\90á\83¡á\83\94á\83\98á\83\90á\83\9c á\83\9bá\83\9dá\83\9aá\83\98á\83\9cá\83\94á\83¤á\83¨á\83\94á\83\9cá\83\98",
+       "tooltip-n-recentchanges": "ვიკიშა ეკონია ბორჯის მიშაღალირი თირაფეფიშ ერკებული",
        "tooltip-n-randompage": "ქუმოძირ ნამუდგარდასინ ხასილა",
        "tooltip-n-help": "\"ხასილა, სოდეთ გარკვიენთინ",
        "tooltip-t-whatlinkshere": "არძო ვიკი ხასილაშ ერკებულ, ნამუდგა თაქ იწურუანსინ",
-       "tooltip-t-recentchangeslinked": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¬á\83\99á\83£á\83\9bá\83\90 á\83\92á\83\98á\83\9cá\83\9dá\83 á\83ªá\83®á\83\98á\83\9aá\83\98 á\83®á\83\90á\83¡á\83\98á\83\9aá\83\94á\83¤á\83¨á\83\90 á\83\90á\83¡á\83\94á\83 á\83\93á\83\94 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83  თირაფეფი",
+       "tooltip-t-recentchangeslinked": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¬á\83\99á\83·á\83\9bá\83\90 á\83\9bá\83\94á\83 á\83¡á\83®á\83\98á\83\9a á\83®á\83\90á\83¡á\83·á\83\9aá\83\94á\83¤á\83¨á\83\90 á\83\90á\83¡á\83\94á\83 á\83\93á\83\94 á\83\9bá\83\98á\83¨á\83\90á\83¦á\83\90á\83\9aá\83\98á\83 á\83\98 თირაფეფი",
        "tooltip-feed-rss": "მოჩამილი ხასილაშ RSS არხიშ ტრანსლაცია",
        "tooltip-feed-atom": "ათე ხასილაშ ატომ არხიშ ტრანსლაცია",
        "tooltip-t-contributions": "თე მახვარებუშ მიშაღალირ თიაშ ერკებულიშ ძირაფა",
        "tooltip-t-emailuser": "მიდუჯღონით ელ.ფოშტა ათე მახვარებუს",
        "tooltip-t-upload": "გეხარგე ფაილი",
-       "tooltip-t-specialpages": "á\83\90á\83 á\83«á\83\9d á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9a",
-       "tooltip-t-print": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლაშ ობეშტალი ვერსია",
+       "tooltip-t-specialpages": "á\83\90á\83 á\83«á\83\9d á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¨ á\83\94á\83 á\83\99á\83\94á\83\91á\83£á\83\9aá\83\98",
+       "tooltip-t-print": "á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლაშ ობეშტალი ვერსია",
        "tooltip-t-permalink": "პერმანენტულ რცხი ხასილაშ თე ვერსიაშა",
-       "tooltip-ca-nstab-main": "á\83\93á\83\98á\83\9cá\83\9dá\83 á\83\94á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
-       "tooltip-ca-nstab-user": "á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
-       "tooltip-ca-nstab-special": "á\83\97á\83¥á\83\95á\83\90 á\83\90á\83¡á\83\94 á\83 á\83\94á\83\97 á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83\98á\83\9aá\83\90á\83¡, á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90 á\83¨á\83\94á\83\98á\83\9aá\83\94á\83\91á\83£á\83\9cá\83\90 á\83\90á\83\97á\83\94 á\83®á\83\90á\83¡á\83\98ლაშ რედაქტირაფა",
-       "tooltip-ca-nstab-project": "á\83\9eá\83 á\83\9dá\83\94á\83¥á\83¢á\83\98á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
-       "tooltip-ca-nstab-image": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¨ á\83®á\83\90á\83¡á\83\98ლაშ ძირაფა",
+       "tooltip-ca-nstab-main": "á\83\93á\83\98á\83\9cá\83\9dá\83 á\83\94á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
+       "tooltip-ca-nstab-user": "á\83\9bá\83\90á\83®á\83\95á\83\90á\83 á\83\94á\83\91á\83£á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
+       "tooltip-ca-nstab-special": "á\83\97á\83¥á\83\95á\83\90 á\83\90á\83¡á\83\94 á\83 á\83\94á\83\97 á\83¡á\83\9eá\83\94á\83ªá\83\98á\83\90á\83\9aá\83£á\83  á\83®á\83\90á\83¡á\83·á\83\9aá\83\90á\83¡, á\83\97á\83¥á\83\95á\83\90 á\83\95á\83\90 á\83¨á\83\94á\83\98á\83\9aá\83\94á\83\91á\83£á\83\9cá\83\90 á\83\90á\83\97á\83\94 á\83®á\83\90á\83¡á\83·ლაშ რედაქტირაფა",
+       "tooltip-ca-nstab-project": "á\83\9eá\83 á\83\9dá\83\94á\83¥á\83¢á\83\98á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
+       "tooltip-ca-nstab-image": "á\83¤á\83\90á\83\98á\83\9aá\83\98á\83¨ á\83®á\83\90á\83¡á\83·ლაშ ძირაფა",
        "tooltip-ca-nstab-template": "თანგიშ ძირაფა",
        "tooltip-ca-nstab-help": "ქოძირეთ დახვარებაშ გვერდ",
        "tooltip-ca-nstab-category": "ხასილაშ კატეგორიაშ ძირაფა",
        "tooltip-rollback": "\"დორთინა\" ათე ხასილაშა ეკონია გინმახანდეშ ნაღოლემ თირაფას(ეფს) გოუქვენს ართ გენჭირათ",
        "tooltip-undo": "\"გოუქვაფა\" მიშაღალირ თირაფეფს გოუქვენს დო გუთმონწყუნს რედაქტირაფაშ ფორმას გიწოთოლორაფაშ რეჟიმს. თენა შესაძლებლობას ირძენს რეზიუმეს სამანჯელქ იყ’უას დაკონკრეტებულქინ.",
        "tooltip-summary": "კუნტა რეზიუმეშ მიშაჸონაფა",
-       "previousdiff": "← წოხოლენი თირაფეფ",
+       "simpleantispam-label": "სპამიშ სააწმარენჯო შემოწმაფა.\nთენა '''ვა''' შეამსათ!",
+       "pageinfo-toolboxlink": "ხასჷლაშ ინფორმაცია",
+       "previousdiff": "← წოხოლენ თირაფეფი",
        "nextdiff": "უახალაშ თირაფა →",
        "file-info-size": "$1 × $2 პიქსელ, ფაილიშ ზომა: $3, MIME ტიპ: $4",
        "file-nohires": " უმოს მაღალ გიშაგორანჯალა ვა რე შელებუან.",
        "svg-long-desc": "SVG ფაილ, ნომინალურო $1 × $2 პიქსელ, ფაილიშ ზიმა: $3",
        "show-big-image": "რსული გიშაგორანჯალა",
+       "show-big-image-preview": "ზჷმა გიწოთოლორაფაშ ბორჯის: $1.",
+       "show-big-image-size": "$1 × $2 პიქსელი",
        "newimages": "ახალ სურათეფ",
        "ilsubmit": "გორუა",
        "bad_image_list": "ფორმატ რე უკულიანიშნერო:\\n\\n ხვალე ერკებულშე გიშნაგორეფ (ლაწკარეფ, ნამუთ იჭყაფუ *-ით) ისხუნუ.\nლაწკარიშ პირველ რცხი ოკო რდას რცხი გლახა ფაილშა.\nკინ თი ლაწკარს რინელ ნამდგაინ უკულიან რცხი კილესხუნუ მუჭოთ გიმნარკეში, ნამუთ ნიშნენს  ხასილეფს, სოდგა ფაილეფ შილებე რდას ღოზეფს შკას დინოხუნაფილ.",
-       "metadata": "á\83\9bá\83\94á\83¢á\83\90á\83\9bá\83\9dá\83©á\83\90á\83\9bá\83\98á\83\9aá\83\9dá\83¤á\83\94á\83¤",
+       "metadata": "á\83\9bá\83\94á\83¢á\83\90á\83\9bá\83£á\83\9cá\83\90á\83©á\83\94á\83\9bá\83\94á\83¤á\83\98",
        "metadata-help": "თე ფაილს ოხოლუ გეძინელ ინფორმაცია, ნამუთ ოეგებიეთ თი ციფრულ კამერაშე ვარა სკანერშე რე გეძინელ, ნამუთ რდუ გუმორინაფილ თე ფაილიშ ოქიმინჯალო ვარა დაციფრებელო. ფაილიშ ორიგინალ თირელ ქორენ-და, შილებე კანკალე დეტალ ვა გიშაძირუანდას ფაილშა მიშაღალირ თირაფეფს.",
        "metadata-expand": "დეტალეფიშ გოძინელ ძირაფა",
        "metadata-collapse": "გოძინელ დეტალეფიშ ტყობინაფა",
        "metadata-fields": "ათე მესიჯის შინაფილ მეტა მოჩამილოფეფიშ ოფირჩეფ ეკოროცხილ იჸი ნახანტიშ ხასილაშ დისფლეის მუჟამსით მეტა მოჩამილოფეფიშ ერკებულ იჸი გითოფაჩილინ \nშხვეფ, მუჭოთ წესინ, ტყობინაფილ იყ’ი.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "სიგანე",
        "exif-imagelength": "სიმაღალე",
+       "exif-datetime": "ფაილიშ თირუაშ რიცხუ დო ბორჯი",
+       "exif-software": "გჷმორინაფილი პროგრამა",
+       "exif-exifversion": "ვერსია Exif",
+       "exif-colorspace": "ფერეფიშ პალიტრა",
+       "exif-orientation-1": "ნორმალური",
        "namespacesall": "არძა",
        "monthsall": "არძა",
        "watchlisttools-view": "მერცხილ თირაფეფიშ ძირაფა",
        "watchlisttools-edit": "ოკონტროლებელ ხასილეფიშ ძირაფა დო რედაქტირაფა",
        "watchlisttools-raw": "კონტროლიშ ერკებულიშ რედაქტირაფა ტექსტიშ ფორმატის",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|სხუნუა]])",
        "duplicate-defaultsort": "''გური ქუჩით:''' სტანდარტული დანწყუალაშ კილა \"$2\"-შო გინარჯგინანს ორდონი დონწყუალაშ კილა \"$1\"-ს.",
        "version": "ვერსია",
        "specialpages": "გჷშაკერძაფილი ხასჷლეფი",
        "external_image_whitelist": "\"#ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში<pre>\n#ქინახუნე რეგულარული გამოსახულებაშ ფრაგმენტეფი (თი ნაწილი ნამუთ თეშ // შქას ინოდოხოდ) თუდოლე\n#თენეფი მეზჷმაფილ იჸე გალენ (hotlinked) სურათეფიშ URL-ეფშა.\n#ნამუთ მიორენ თინა სურათეფო გაგშარჩქინდჷ, ვარ-და ხვალე სურათიშ რცხუ ირწყებედასიი.\n#ღოზეფი #-თ დოჭყაფილი კომენტარო რე მერჩქინელი.\n#თენა გჷნაფულენს ასოეფიშ რეგისტრის.\n\n#ქინახუნე არძო regex ფრაგმენტეფი თე ღოზიშ ჟი. ქჷდიტე თე ღოზი კოკობო მუჭო რენ თეში</pre>\"",
        "tag-filter": "[[Special:Tags|ხინტკეფიშ]] ტკიბირი:",
-       "searchsuggest-search": "გორუა"
+       "logentry-delete-delete": "მოხვარებუქ $1 {{GENDER:$2|დოლასუ}} ხასჷლა: „$3“",
+       "logentry-move-move": "მახვარებუქ $1 ხასჷლა „$3“ {{GENDER:$2|გეგნიღჷ}} ხასჷლაშა „$4“",
+       "logentry-upload-upload": "მახვარებუქ $1 {{GENDER:$2|ეხარგუ}} $3",
+       "searchsuggest-search": "გორუა",
+       "special-characters-group-ipa": "IPA"
 }
index e0a6c87..55e9f0a 100644 (file)
        "cannotchangeemail": "本wiki不允许对账户的电子邮件地址进行更改。",
        "emaildisabled": "该网站无法发送电子邮件。",
        "accountcreated": "已建立账户",
-       "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]])的账户已创建。",
+       "accountcreatedtext": "[[{{ns:User}}:$1|$1]]([[{{ns:User talk}}:$1|对话]])的账户已创建。",
        "createaccount-title": "在{{SITENAME}}创建新账户",
        "createaccount-text": "有人在{{SITENAME}}中利用您的邮箱创建了一个名为 \"$2\" 的新帐户($4),密码是 \"$3\" 。您应该立即登录并更改密码。\n\n如果该账户创建错误的话,您可以忽略此信息。",
        "login-throttled": "你最近尝试登录的次数过多。请等待$1后再试。",
index f97f6dc..50b8a01 100644 (file)
@@ -603,7 +603,7 @@ abstract class Maintenance {
         * Activate the profiler (assuming $wgProfiler is set)
         */
        protected function activateProfiler() {
-               global $wgProfiler;
+               global $wgProfiler, $wgTrxProfilerLimits;
 
                $output = $this->getOption( 'profiler' );
                if ( $output && is_array( $wgProfiler ) && isset( $wgProfiler['class'] ) ) {
@@ -617,8 +617,7 @@ abstract class Maintenance {
 
                $trxProfiler = Profiler::instance()->getTransactionProfiler();
                $trxProfiler->setLogger( LoggerFactory::getInstance( 'DBPerformance' ) );
-               # Catch huge single updates that lead to slave lag
-               $trxProfiler->setExpectation( 'maxAffected', 1000, __METHOD__ );
+               $trxProfiler->setExpectations( $wgTrxProfilerLimits['Maintenance'], __METHOD__ );
        }
 
        /**
index fb25b9d..1446871 100644 (file)
@@ -66,7 +66,7 @@ class BenchmarkHooks extends Benchmarker {
        private function benchHooks( $trials = 10 ) {
                $start = microtime( true );
                for ( $i = 0; $i < $trials; $i++ ) {
-                       wfRunHooks( 'Test' );
+                       Hooks::run( 'Test' );
                }
                $delta = microtime( true ) - $start;
                $pertrial = $delta / $trials;
index 94ca604..8fdcef3 100644 (file)
@@ -73,7 +73,6 @@ class EraseArchivedFile extends Maintenance {
 
                $this->output( "Purging all thumbnails for file '$filename'..." );
                $file->purgeCache();
-               $file->purgeHistory();
                $this->output( "done.\n" );
 
                if ( $afile instanceof ArchivedFile ) {
index 990f258..0c3ea67 100644 (file)
@@ -339,7 +339,7 @@ ENDS;
 
                $blacklist = $checkBlacklist;
 
-               wfRunHooks( 'LocalisationChecksBlacklist', array( &$blacklist ) );
+               Hooks::run( 'LocalisationChecksBlacklist', array( &$blacklist ) );
 
                return $blacklist;
        }
index fb496cb..9affb9e 100644 (file)
@@ -63,7 +63,7 @@ class Languages {
         * files in the languages directory.
         */
        function __construct() {
-               wfRunHooks( 'LocalisationIgnoredOptionalMessages',
+               Hooks::run( 'LocalisationIgnoredOptionalMessages',
                        array( &$this->mIgnoredMessages, &$this->mOptionalMessages ) );
 
                $this->mLanguages = array_keys( Language::fetchLanguageNames( null, 'mwfile' ) );
index 71641ef..4ab57d4 100755 (executable)
@@ -203,13 +203,16 @@ def customRules( path ):
     fp = open( path, 'r', encoding = 'U8' )
     ret = dict()
     for line in fp:
-        elems = line.split( '#' )[0].split()
+        line = line.rstrip( '\r\n' )
+        if '#' in line:
+            line = line.split( '#' )[0].rstrip()
+        elems = line.split( '\t' )
         if len( elems ) > 1:
             ret[elems[0]] = elems[1]
     return ret
 
 def dictToSortedList( src_table, pos ):
-    return sorted( src_table.items(), key = lambda m: m[pos] )
+    return sorted( src_table.items(), key = lambda m: ( m[pos], m[1 - pos] ) )
 
 def translate( text, conv_table ):
     i = 0
@@ -229,7 +232,7 @@ def manualWordsTable( path, conv_table, reconv_table ):
     reconv_table = {}
     wordlist = [line.split( '#' )[0].strip() for line in fp]
     wordlist = list( set( wordlist ) )
-    wordlist.sort( key = len, reverse = True )
+    wordlist.sort( key = lambda w: ( len(w), w ), reverse = True )
     while wordlist:
         word = wordlist.pop()
         new_word = translate( word, conv_table )
@@ -241,7 +244,7 @@ def manualWordsTable( path, conv_table, reconv_table ):
 
 def defaultWordsTable( src_wordlist, src_tomany, char_conv_table, char_reconv_table ):
     wordlist = list( src_wordlist )
-    wordlist.sort( key = len, reverse = True )
+    wordlist.sort( key = lambda w: ( len(w), w ), reverse = True )
     word_conv_table = {}
     word_reconv_table = {}
     conv_table = char_conv_table.copy()
@@ -276,7 +279,7 @@ def PHPArray( table ):
 def main():
     #Get Unihan.zip:
     url = 'http://www.unicode.org/Public/%s/ucd/Unihan.zip' % UNIHAN_VER
-    han_dest = 'Unihan.zip'
+    han_dest = 'Unihan-%s.zip' % UNIHAN_VER
     download( url, han_dest )
     
     # Get scim-tables-$(SCIM_TABLES_VER).tar.gz:
index 4a2d9fb..3b5f3dd 100644 (file)
@@ -2718,4 +2718,4 @@ A型肝炎        甲型肝炎
 賈伯斯      乔布斯
 波里活      宝莱坞
 庫德族      库尔德族
-庫德人      库尔德人
\ No newline at end of file
+庫德人      库尔德人
index a4e4901..f765873 100644 (file)
@@ -3064,4 +3064,4 @@ IP地址  IP位址
 宝莱坞      波里活
 寶萊塢      波里活
 庫德族      库爾德族
-庫德人      库爾德人
\ No newline at end of file
+庫德人      库爾德人
index bcd8492..b0be071 100644 (file)
@@ -743,4 +743,4 @@ IP地址    IP位址
 乔布斯      賈伯斯
 波里活      寶萊塢
 库尔德族   庫德族
-库尔德人   庫德人
\ No newline at end of file
+库尔德人   庫德人
index 9157e3f..a82dd1e 100644 (file)
 灵昆 靈崑
 龙岩 龍巖
 扑冬 撲鼕
-冬冬鼓      鼕鼕鼓
\ No newline at end of file
+冬冬鼓      鼕鼕鼓
index f202c9d..5a0c6c3 100644 (file)
@@ -790,4 +790,4 @@ U+26548𦕈|U+07707眇|
 U+26D4F𦵏|U+0846C葬|
 U+28F7B𨽻|U+096B6隶|
 U+294D0𩓐|U+08116脖|
-U+295D7𩗗|U+098D3飓|
\ No newline at end of file
+U+295D7𩗗|U+098D3飓|
index d21a296..b98e95f 100644 (file)
@@ -166,7 +166,6 @@ class PurgeChangedFiles extends Maintenance {
 
                                // Purge current version and any versions in oldimage table
                                $file->purgeCache();
-                               $file->purgeHistory();
 
                                if ( $logType === 'delete' ) {
                                        // If there is an orphaned storage file... delete it
@@ -191,7 +190,6 @@ class PurgeChangedFiles extends Maintenance {
                                                $target = $params['4::target'];
                                                $targetFile = $repo->newFile( Title::makeTitle( NS_FILE, $target ) );
                                                $targetFile->purgeCache();
-                                               $targetFile->purgeHistory();
                                                $this->verbose( "Purged file {$target}; move target @{$row->log_timestamp}.\n" );
                                        }
                                }
index e1b6ac6..5d311ad 100644 (file)
@@ -83,7 +83,7 @@ class RefreshLinks extends Maintenance {
                }
 
                // Give extensions a chance to optimize settings
-               wfRunHooks( 'MaintenanceRefreshLinksInit', array( $this ) );
+               Hooks::run( 'MaintenanceRefreshLinksInit', array( $this ) );
 
                # Don't generate extension images (e.g. Timeline)
                $wgParser->clearTagHooks();
index f6245f2..d0989e2 100755 (executable)
@@ -1,8 +1,8 @@
-#!/usr/bin/env bash
+#!/bin/bash -eu
 
 # This script generates a commit that updates our copy of OOjs UI
 
-if [ -n "$2" ]
+if [ -n "${2:-}" ]
 then
        # Too many parameters
        echo >&2 "Usage: $0 [<version>]"
@@ -14,18 +14,21 @@ TARGET_DIR="resources/lib/oojs-ui" # Destination relative to the root of the rep
 NPM_DIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-oojs-ui') # e.g. /tmp/update-oojs-ui.rI0I5Vir
 
 # Prepare working tree
-cd "$REPO_DIR" &&
-git reset composer.json && git checkout composer.json &&
-git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
-git checkout -B upstream-oojs-ui origin/master || exit 1
+cd "$REPO_DIR"
+git reset composer.json
+git checkout composer.json
+git reset -- $TARGET_DIR
+git checkout -- $TARGET_DIR
+git fetch origin
+git checkout -B upstream-oojs-ui origin/master
 
 # Fetch upstream version
 cd $NPM_DIR
-if [ -n "$1" ]
+if [ -n "${1:-}" ]
 then
-       npm install "oojs-ui@$1" || exit 1
+       npm install "oojs-ui@$1"
 else
-       npm install oojs-ui || exit 1
+       npm install oojs-ui
 fi
 
 OOJSUI_VERSION=$(node -e 'console.log(require("./node_modules/oojs-ui/package.json").version);')
@@ -35,24 +38,22 @@ then
        exit 1
 fi
 
-# Copy files, excluding:
-# * the Apex theme files,
-# * the minimised distribution files, and
-# * the RTL sheets for non-CSSJanus environments
-# * the raster- and vector-only distribution sheets
-rsync --force --recursive --delete \
-       --exclude '*apex*' \
-       --exclude 'oojs-ui*.min.*' \
-       --exclude 'oojs-ui*.rtl.css' \
-       --exclude 'oojs-ui*.raster.css' \
-       --exclude 'oojs-ui*.vector.css' \
-       ./node_modules/oojs-ui/dist/ "$REPO_DIR/$TARGET_DIR" || exit 1
+# Copy files, picking the necessary ones from source and distribution
+rm -r "$REPO_DIR/$TARGET_DIR"
+mkdir -p "$REPO_DIR/$TARGET_DIR/i18n"
+mkdir -p "$REPO_DIR/$TARGET_DIR/images"
+mkdir -p "$REPO_DIR/$TARGET_DIR/themes/mediawiki/images"
+cp ./node_modules/oojs-ui/dist/{oojs-ui-mediawiki-noimages.css,oojs-ui-mediawiki.js,oojs-ui.js} "$REPO_DIR/$TARGET_DIR"
+cp -R ./node_modules/oojs-ui/dist/i18n "$REPO_DIR/$TARGET_DIR"
+cp -R ./node_modules/oojs-ui/dist/images "$REPO_DIR/$TARGET_DIR"
+cp -R ./node_modules/oojs-ui/dist/themes/mediawiki/images "$REPO_DIR/$TARGET_DIR/themes/mediawiki"
+cp ./node_modules/oojs-ui/src/themes/mediawiki/*.json "$REPO_DIR/$TARGET_DIR/themes/mediawiki"
 
 # Clean up temporary area
 rm -rf "$NPM_DIR"
 
 # Generate commit
-cd $REPO_DIR || exit 1
+cd $REPO_DIR
 
 COMMITMSG=$(cat <<END
 Update OOjs UI to v$OOJSUI_VERSION
@@ -66,4 +67,7 @@ END
 composer require oojs/oojs-ui $OOJSUI_VERSION --no-update
 
 # Stage deletion, modification and creation of files. Then commit.
-git add --update $TARGET_DIR && git add $TARGET_DIR && git add composer.json && git commit -m "$COMMITMSG" || exit 1
+git add --update $TARGET_DIR
+git add $TARGET_DIR
+git add composer.json
+git commit -m "$COMMITMSG"
index 1d5c2b1..b91cb28 100755 (executable)
@@ -1,8 +1,8 @@
-#!/usr/bin/env bash
+#!/bin/bash -eu
 
 # This script generates a commit that updates our copy of OOjs
 
-if [ -n "$2" ]
+if [ -n "${2:-}" ]
 then
        # Too many parameters
        echo >&2 "Usage: $0 [<version>]"
@@ -14,17 +14,19 @@ TARGET_DIR="resources/lib/oojs" # Destination relative to the root of the repo
 NPM_DIR=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-oojs') # e.g. /tmp/update-oojs.rI0I5Vir
 
 # Prepare working tree
-cd "$REPO_DIR" &&
-git reset $TARGET_DIR && git checkout $TARGET_DIR && git fetch origin &&
-git checkout -B upstream-oojs origin/master || exit 1
+cd "$REPO_DIR"
+git reset -- $TARGET_DIR
+git checkout -- $TARGET_DIR
+git fetch origin
+git checkout -B upstream-oojs origin/master
 
 # Fetch upstream version
 cd $NPM_DIR
-if [ -n "$1" ]
+if [ -n "${1:-}" ]
 then
-       npm install "oojs@$1" || exit 1
+       npm install "oojs@$1"
 else
-       npm install oojs || exit 1
+       npm install oojs
 fi
 
 OOJS_VERSION=$(node -e 'console.log(require("./node_modules/oojs/package.json").version);')
@@ -35,13 +37,13 @@ then
 fi
 
 # Copy file(s)
-rsync --force ./node_modules/oojs/dist/oojs.jquery.js "$REPO_DIR/$TARGET_DIR" || exit 1
+rsync --force ./node_modules/oojs/dist/oojs.jquery.js "$REPO_DIR/$TARGET_DIR"
 
 # Clean up temporary area
 rm -rf "$NPM_DIR"
 
 # Generate commit
-cd $REPO_DIR || exit 1
+cd $REPO_DIR
 
 COMMITMSG=$(cat <<END
 Update OOjs to v$OOJS_VERSION
@@ -52,4 +54,6 @@ END
 )
 
 # Stage deletion, modification and creation of files. Then commit.
-git add --update $TARGET_DIR && git add $TARGET_DIR && git commit -m "$COMMITMSG" || exit 1
+git add --update $TARGET_DIR
+git add $TARGET_DIR
+git commit -m "$COMMITMSG"
index 5e5e35d..0b56972 100644 (file)
@@ -94,7 +94,7 @@ foreach ( $wgOpenSearchTemplates as $type => $template ) {
 
 // Allow hooks to override the suggestion URL settings in a more
 // general way than overriding the whole search engine...
-wfRunHooks( 'OpenSearchUrls', array( &$urls ) );
+Hooks::run( 'OpenSearchUrls', array( &$urls ) );
 
 foreach ( $urls as $attribs ) {
        print Xml::element( 'Url', $attribs );
index e2f05b6..aeb049c 100644 (file)
@@ -1730,6 +1730,9 @@ return array(
                        'es5-shim',
                        'oojs',
                        'oojs-ui.styles',
+                       'oojs-ui.styles.icons',
+                       'oojs-ui.styles.indicators',
+                       'oojs-ui.styles.textures',
                ),
                'messages' => array(
                        'ooui-dialog-message-accept',
@@ -1751,123 +1754,142 @@ return array(
        'oojs-ui.styles' => array(
                'position' => 'top',
                'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.css',
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css',
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
 
-       // FIXME: This is a bit of a mess; T92551 requests fixing
+       'oojs-ui.styles.icons' => array(
+               'class' => 'ResourceLoaderImageModule',
+               'position' => 'top',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
+       ),
+       'oojs-ui.styles.indicators' => array(
+               'class' => 'ResourceLoaderImageModule',
+               'position' => 'top',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'indicators.json',
+       ),
+       'oojs-ui.styles.textures' => array(
+               'class' => 'ResourceLoaderImageModule',
+               'position' => 'top',
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'textures.json',
+       ),
        'oojs-ui.styles.icons-alerts' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-alerts.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-content' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-content.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-advanced' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-advanced.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-core' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-core.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-list' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-list.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-editing-styling' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-editing-styling.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-interactions' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-interactions.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-layout' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-layout.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-location' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-location.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-media' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-media.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-moderation' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-moderation.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-movement' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-movement.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-user' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-user.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
        'oojs-ui.styles.icons-wikimedia' => array(
+               'class' => 'ResourceLoaderImageModule',
                'position' => 'top',
-               'skinStyles' => array(
-                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css',
-               ),
-               'dependencies' => array( 'oojs-ui.styles' ),
-               'targets' => array( 'desktop', 'mobile' ),
+               'localBasePath' => "$IP/resources/lib/oojs-ui/themes/mediawiki",
+               'data' => 'icons-wikimedia.json',
+               'selectorWithoutVariant' => '.oo-ui-icon-{name}, .mw-ui-icon-{name}:after, .mw-ui-icon-{name}:before',
+               'selectorWithVariant' => '.oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}, .mw-ui-icon-{name}-{variant}:after, .mw-ui-icon-{name}-{variant}:before',
        ),
 
 );
index 1c3aa82..6feb110 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery JavaScript Library v1.11.2
+ * jQuery JavaScript Library v1.11.3
  * http://jquery.com/
  *
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
  * Released under the MIT license
  * http://jquery.org/license
  *
- * Date: 2014-12-17T15:27Z
+ * Date: 2015-04-28T16:19Z
  */
 
 (function( global, factory ) {
@@ -64,7 +64,7 @@ var support = {};
 
 
 var
-       version = "1.11.2",
+       version = "1.11.3",
 
        // Define a local copy of jQuery
        jQuery = function( selector, context ) {
@@ -569,7 +569,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli
 });
 
 function isArraylike( obj ) {
-       var length = obj.length,
+
+       // Support: iOS 8.2 (not reproducible in simulator)
+       // `in` check used to prevent JIT error (gh-2145)
+       // hasOwn isn't used here due to false negatives
+       // regarding Nodelist length in IE
+       var length = "length" in obj && obj.length,
                type = jQuery.type( obj );
 
        if ( type === "function" || jQuery.isWindow( obj ) ) {
index b84df25..6230cc9 100644 (file)
@@ -6,5 +6,14 @@
        },
        "ooui-outline-control-move-down": "Flyt lutin niður",
        "ooui-outline-control-move-up": "Flyt lutin upp",
-       "ooui-toolbar-more": "Meira"
+       "ooui-outline-control-remove": "Tak ein lut burtur",
+       "ooui-toolbar-more": "Meira",
+       "ooui-toolgroup-expand": "Meira",
+       "ooui-toolgroup-collapse": "Færri",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Avbrót",
+       "ooui-dialog-process-error": "Okkurt gekk galið",
+       "ooui-dialog-process-dismiss": "Lat aftur",
+       "ooui-dialog-process-retry": "Royn aftur",
+       "ooui-dialog-process-continue": "Halt fram"
 }
index b003e8c..982a3cd 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Vikassy",
                        "Nayvik",
-                       "Omshivaprakash"
+                       "Omshivaprakash",
+                       "Pavanaja"
                ]
        },
        "ooui-outline-control-move-down": "ವಸ್ತುವನ್ನು ಕೆಳಗೆ ಸರಿಸು",
@@ -14,7 +15,7 @@
        "ooui-toolgroup-collapse": "ಕೆಲವೇ ಕೆಲವು",
        "ooui-dialog-message-accept": "ಸರಿ",
        "ooui-dialog-message-reject": "ರದ್ದುಮಾಡು",
-       "ooui-dialog-process-error": "à²\8eನೋ ಎಡವಟ್ಟಾಗಿದೆ....",
+       "ooui-dialog-process-error": "à²\8fನೋ ಎಡವಟ್ಟಾಗಿದೆ....",
        "ooui-dialog-process-dismiss": "ತೆಗೆದುಹಾಕು",
        "ooui-dialog-process-retry": "ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ",
        "ooui-dialog-process-continue": "ಮುಂದುವರೆಸು"
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css
deleted file mode 100644 (file)
index 37012b2..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-bell {
-       background-image: url("themes/mediawiki/images/icons/bell.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bell.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bell.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bell.png");
-}
-.oo-ui-icon-bellOn {
-       background-image: url("themes/mediawiki/images/icons/bellOn-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bellOn-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bellOn-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bellOn-ltr.png");
-}
-.oo-ui-icon-eye {
-       background-image: url("themes/mediawiki/images/icons/eye.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eye.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eye.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/eye.png");
-}
-.oo-ui-icon-eyeClosed {
-       background-image: url("themes/mediawiki/images/icons/eyeClosed.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eyeClosed.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eyeClosed.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/eyeClosed.png");
-}
-.oo-ui-icon-message {
-       background-image: url("themes/mediawiki/images/icons/message-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/message-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/message-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/message-ltr.png");
-}
-.oo-ui-icon-signature {
-       background-image: url("themes/mediawiki/images/icons/signature-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/signature-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/signature-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/signature-ltr.png");
-}
-.oo-ui-icon-speechBubble {
-       background-image: url("themes/mediawiki/images/icons/speechBubble-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubble-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubble-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubble-ltr.png");
-}
-.oo-ui-icon-speechBubbleAdd {
-       background-image: url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.png");
-}
-.oo-ui-icon-speechBubbles {
-       background-image: url("themes/mediawiki/images/icons/speechBubbles-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbles-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbles-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubbles-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css
deleted file mode 100644 (file)
index b48bbdf..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-article {
-       background-image: url("themes/mediawiki/images/icons/article-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/article-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/article-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/article-ltr.png");
-}
-.oo-ui-icon-articleCheck {
-       background-image: url("themes/mediawiki/images/icons/articleCheck-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleCheck-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleCheck-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/articleCheck-ltr.png");
-}
-.oo-ui-icon-articleSearch {
-       background-image: url("themes/mediawiki/images/icons/articleSearch-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleSearch-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleSearch-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/articleSearch-ltr.png");
-}
-.oo-ui-icon-book {
-       background-image: url("themes/mediawiki/images/icons/book-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/book-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/book-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/book-ltr.png");
-}
-.oo-ui-icon-citeArticle {
-       background-image: url("themes/mediawiki/images/icons/citeArticle-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/citeArticle-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/citeArticle-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/citeArticle-ltr.png");
-}
-.oo-ui-icon-die {
-       background-image: url("themes/mediawiki/images/icons/die-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/die-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/die-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/die-ltr.png");
-}
-.oo-ui-icon-download {
-       background-image: url("themes/mediawiki/images/icons/download-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/download-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/download-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/download-ltr.png");
-}
-.oo-ui-icon-folderPlaceholder {
-       background-image: url("themes/mediawiki/images/icons/folderPlaceholder-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/folderPlaceholder-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/folderPlaceholder-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/folderPlaceholder-ltr.png");
-}
-.oo-ui-icon-journal {
-       background-image: url("themes/mediawiki/images/icons/journal-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/journal-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/journal-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/journal-ltr.png");
-}
-.oo-ui-icon-newspaper {
-       background-image: url("themes/mediawiki/images/icons/newspaper-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newspaper-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newspaper-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newspaper-ltr.png");
-}
-.oo-ui-icon-upload {
-       background-image: url("themes/mediawiki/images/icons/upload-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upload-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upload-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/upload-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css
deleted file mode 100644 (file)
index a61f630..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-alignCentre {
-       background-image: url("themes/mediawiki/images/icons/align-center.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-center.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-center.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/align-center.png");
-}
-.oo-ui-icon-alignLeft {
-       background-image: url("themes/mediawiki/images/icons/align-float-left.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-left.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-left.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/align-float-left.png");
-}
-.oo-ui-icon-alignRight {
-       background-image: url("themes/mediawiki/images/icons/align-float-right.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-right.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/align-float-right.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/align-float-right.png");
-}
-.oo-ui-icon-find {
-       background-image: url("themes/mediawiki/images/icons/find-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/find-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/find-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/find-ltr.png");
-}
-.oo-ui-icon-insert {
-       background-image: url("themes/mediawiki/images/icons/insert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/insert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/insert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/insert.png");
-}
-.oo-ui-icon-layout {
-       background-image: url("themes/mediawiki/images/icons/layout-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/layout-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/layout-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/layout-ltr.png");
-}
-.oo-ui-icon-newline {
-       background-image: url("themes/mediawiki/images/icons/newline-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newline-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newline-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newline-ltr.png");
-}
-.oo-ui-icon-redirect {
-       background-image: url("themes/mediawiki/images/icons/redirect-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/redirect-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/redirect-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/redirect-ltr.png");
-}
-.oo-ui-icon-noWikiText {
-       background-image: url("themes/mediawiki/images/icons/noWikiText-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/noWikiText-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/noWikiText-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/noWikiText-ltr.png");
-}
-.oo-ui-icon-outline {
-       background-image: url("themes/mediawiki/images/icons/outline-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outline-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outline-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/outline-ltr.png");
-}
-.oo-ui-icon-puzzle {
-       background-image: url("themes/mediawiki/images/icons/puzzle-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/puzzle-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/puzzle-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/puzzle-ltr.png");
-}
-.oo-ui-icon-quotes {
-       background-image: url("themes/mediawiki/images/icons/quotes-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotes-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotes-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/quotes-ltr.png");
-}
-.oo-ui-icon-quotesAdd {
-       background-image: url("themes/mediawiki/images/icons/quotesAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotesAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotesAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/quotesAdd-ltr.png");
-}
-.oo-ui-icon-searchCaseSensitive {
-       background-image: url("themes/mediawiki/images/icons/case-sensitive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/case-sensitive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/case-sensitive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/case-sensitive.png");
-}
-.oo-ui-icon-searchRegularExpression {
-       background-image: url("themes/mediawiki/images/icons/regular-expression.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/regular-expression.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/regular-expression.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/regular-expression.png");
-}
-.oo-ui-icon-specialCharacter {
-       background-image: url("themes/mediawiki/images/icons/specialCharacter.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/specialCharacter.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/specialCharacter.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/specialCharacter.png");
-}
-.oo-ui-icon-table {
-       background-image: url("themes/mediawiki/images/icons/table.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table.png");
-}
-.oo-ui-icon-tableAddColumnAfter {
-       background-image: url("themes/mediawiki/images/icons/table-insert-column-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-column-rtl.png");
-}
-.oo-ui-icon-tableAddColumnBefore {
-       background-image: url("themes/mediawiki/images/icons/table-insert-column-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-column-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-column-ltr.png");
-}
-.oo-ui-icon-tableAddRowAfter {
-       background-image: url("themes/mediawiki/images/icons/table-insert-row-after.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-after.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-after.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-row-after.png");
-}
-.oo-ui-icon-tableAddRowBefore {
-       background-image: url("themes/mediawiki/images/icons/table-insert-row-before.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-before.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-insert-row-before.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-insert-row-before.png");
-}
-.oo-ui-icon-tableCaption {
-       background-image: url("themes/mediawiki/images/icons/table-caption.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-caption.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-caption.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-caption.png");
-}
-.oo-ui-icon-tableMergeCells {
-       background-image: url("themes/mediawiki/images/icons/table-merge-cells.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-merge-cells.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table-merge-cells.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table-merge-cells.png");
-}
-.oo-ui-icon-templateAdd {
-       background-image: url("themes/mediawiki/images/icons/templateAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/templateAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/templateAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/templateAdd-ltr.png");
-}
-.oo-ui-icon-translation {
-       background-image: url("themes/mediawiki/images/icons/translation-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/translation-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/translation-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/translation-ltr.png");
-}
-.oo-ui-icon-wikiText {
-       background-image: url("themes/mediawiki/images/icons/wikiText.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikiText.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikiText.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/wikiText.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css
deleted file mode 100644 (file)
index 42c2b14..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-edit {
-       background-image: url("themes/mediawiki/images/icons/edit-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/edit-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/edit-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/edit-ltr.png");
-}
-.oo-ui-icon-editLock {
-       background-image: url("themes/mediawiki/images/icons/editLock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editLock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editLock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/editLock-ltr.png");
-}
-.oo-ui-icon-editUndo {
-       background-image: url("themes/mediawiki/images/icons/editUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/editUndo-ltr.png");
-}
-.oo-ui-icon-link {
-       background-image: url("themes/mediawiki/images/icons/link-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/link-ltr.png");
-}
-.oo-ui-icon-linkExternal {
-       background-image: url("themes/mediawiki/images/icons/external-link-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/external-link-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/external-link-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/external-link-ltr.png");
-}
-.oo-ui-icon-linkSecure {
-       background-image: url("themes/mediawiki/images/icons/secure-link.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/secure-link.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/secure-link.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/secure-link.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css
deleted file mode 100644 (file)
index 4fe87ca..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-indent {
-       background-image: url("themes/mediawiki/images/icons/indent-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/indent-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/indent-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/indent-ltr.png");
-}
-.oo-ui-icon-listBullet {
-       background-image: url("themes/mediawiki/images/icons/listBullet-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listBullet-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listBullet-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/listBullet-ltr.png");
-}
-.oo-ui-icon-listNumbered {
-       background-image: url("themes/mediawiki/images/icons/listNumbered-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listNumbered-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listNumbered-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/listNumbered-ltr.png");
-}
-.oo-ui-icon-outdent {
-       background-image: url("themes/mediawiki/images/icons/outdent-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outdent-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outdent-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/outdent-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css
deleted file mode 100644 (file)
index 6990522..0000000
+++ /dev/null
@@ -1,495 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-bigger {
-       background-image: url("themes/mediawiki/images/icons/bigger-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bigger-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bigger-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bigger-ltr.png");
-}
-.oo-ui-icon-smaller {
-       background-image: url("themes/mediawiki/images/icons/smaller-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/smaller-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/smaller-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/smaller-ltr.png");
-}
-.oo-ui-icon-subscript {
-       background-image: url("themes/mediawiki/images/icons/subscript-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/subscript-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/subscript-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/subscript-ltr.png");
-}
-.oo-ui-icon-superscript {
-       background-image: url("themes/mediawiki/images/icons/superscript-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/superscript-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/superscript-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/superscript-ltr.png");
-}
-.oo-ui-icon-bold {
-       background-image: url("themes/mediawiki/images/icons/bold-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-a.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ar) {
-       background-image: url("themes/mediawiki/images/icons/bold-arab-ain.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-ain.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-ain.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-arab-ain.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(be) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-te.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-te.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-te.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-te.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(cs) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ml) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(pl) {
-       background-image: url("themes/mediawiki/images/icons/bold-b.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-b.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-b.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(da) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(de) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(hu) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ksh) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(nn) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(no) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(sv) {
-       background-image: url("themes/mediawiki/images/icons/bold-f.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-f.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-f.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(es) {
-       background-image: url("themes/mediawiki/images/icons/bold-n.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-n.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(gl) {
-       background-image: url("themes/mediawiki/images/icons/bold-n.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-n.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(pt) {
-       background-image: url("themes/mediawiki/images/icons/bold-n.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-n.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-n.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(eu) {
-       background-image: url("themes/mediawiki/images/icons/bold-l.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-l.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(fi) {
-       background-image: url("themes/mediawiki/images/icons/bold-l.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-l.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-l.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(fa) {
-       background-image: url("themes/mediawiki/images/icons/bold-arab-dad.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-dad.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-arab-dad.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-arab-dad.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(fr) {
-       background-image: url("themes/mediawiki/images/icons/bold-g.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-g.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(it) {
-       background-image: url("themes/mediawiki/images/icons/bold-g.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-g.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-g.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(hy) {
-       background-image: url("themes/mediawiki/images/icons/bold-armn-to.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-armn-to.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-armn-to.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-armn-to.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ka) {
-       background-image: url("themes/mediawiki/images/icons/bold-geor-man.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-geor-man.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-geor-man.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-geor-man.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ky) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(ru) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-zhe.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-zhe.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(nl) {
-       background-image: url("themes/mediawiki/images/icons/bold-v.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-v.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-v.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-v.png");
-}
-/* @noflip */
-.oo-ui-icon-bold:lang(os) {
-       background-image: url("themes/mediawiki/images/icons/bold-cyrl-be.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-be.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bold-cyrl-be.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bold-cyrl-be.png");
-}
-.oo-ui-icon-italic {
-       background-image: url("themes/mediawiki/images/icons/italic-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-a.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ar) {
-       background-image: url("themes/mediawiki/images/icons/italic-arab-meem.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-meem.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-meem.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-arab-meem.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(cs) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(fr) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ml) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(pl) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(pt) {
-       background-image: url("themes/mediawiki/images/icons/italic-i.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-i.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-i.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(be) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(da) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(de) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(fi) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ky) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(nn) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(no) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(os) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(sv) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ru) {
-       background-image: url("themes/mediawiki/images/icons/italic-k.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-k.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-k.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(es) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(gl) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(it) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(nl) {
-       background-image: url("themes/mediawiki/images/icons/italic-c.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-c.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-c.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(eu) {
-       background-image: url("themes/mediawiki/images/icons/italic-e.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-e.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-e.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-e.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(fa) {
-       background-image: url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-arab-keheh-jeem.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(hu) {
-       background-image: url("themes/mediawiki/images/icons/italic-d.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-d.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-d.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-d.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(hy) {
-       background-image: url("themes/mediawiki/images/icons/italic-armn-sha.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-armn-sha.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-armn-sha.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-armn-sha.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ksh) {
-       background-image: url("themes/mediawiki/images/icons/italic-s.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-s.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-s.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-s.png");
-}
-/* @noflip */
-.oo-ui-icon-italic:lang(ka) {
-       background-image: url("themes/mediawiki/images/icons/italic-geor-kan.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-geor-kan.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/italic-geor-kan.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/italic-geor-kan.png");
-}
-.oo-ui-icon-strikethrough {
-       background-image: url("themes/mediawiki/images/icons/strikethrough-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/strikethrough-a.png");
-}
-/* @noflip */
-.oo-ui-icon-strikethrough:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/strikethrough-s.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-s.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-s.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/strikethrough-s.png");
-}
-/* @noflip */
-.oo-ui-icon-strikethrough:lang(fi) {
-       background-image: url("themes/mediawiki/images/icons/strikethrough-y.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-y.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/strikethrough-y.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/strikethrough-y.png");
-}
-.oo-ui-icon-underline {
-       background-image: url("themes/mediawiki/images/icons/underline-a.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-a.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-a.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/underline-a.png");
-}
-/* @noflip */
-.oo-ui-icon-underline:lang(en) {
-       background-image: url("themes/mediawiki/images/icons/underline-u.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-u.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/underline-u.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/underline-u.png");
-}
-.oo-ui-icon-textLanguage {
-       background-image: url("themes/mediawiki/images/icons/language.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/language.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/language.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/language.png");
-}
-.oo-ui-icon-textDirLTR {
-       background-image: url("themes/mediawiki/images/icons/text-dir-lefttoright.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-lefttoright.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-lefttoright.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/text-dir-lefttoright.png");
-}
-.oo-ui-icon-textDirRTL {
-       background-image: url("themes/mediawiki/images/icons/text-dir-righttoleft.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-righttoleft.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-dir-righttoleft.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/text-dir-righttoleft.png");
-}
-.oo-ui-icon-textStyle {
-       background-image: url("themes/mediawiki/images/icons/text-style.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-style.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/text-style.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/text-style.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css
deleted file mode 100644 (file)
index e310e39..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-beta {
-       background-image: url("themes/mediawiki/images/icons/beta.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/beta.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/beta.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/beta.png");
-}
-.oo-ui-icon-betaLaunch {
-       background-image: url("themes/mediawiki/images/icons/betaLaunch.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/betaLaunch.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/betaLaunch.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/betaLaunch.png");
-}
-.oo-ui-icon-bookmark {
-       background-image: url("themes/mediawiki/images/icons/bookmark-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bookmark-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bookmark-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bookmark-ltr.png");
-}
-.oo-ui-icon-browser {
-       background-image: url("themes/mediawiki/images/icons/browser-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/browser-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/browser-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/browser-ltr.png");
-}
-.oo-ui-icon-clock {
-       background-image: url("themes/mediawiki/images/icons/clock.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clock.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clock.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clock.png");
-}
-.oo-ui-icon-closeInput {
-       background-image: url("themes/mediawiki/images/icons/closeInput.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/closeInput.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/closeInput.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/closeInput.png");
-}
-.oo-ui-icon-funnel {
-       background-image: url("themes/mediawiki/images/icons/funnel-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/funnel-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/funnel-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/funnel-ltr.png");
-}
-.oo-ui-icon-heart {
-       background-image: url("themes/mediawiki/images/icons/heart.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/heart.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/heart.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/heart.png");
-}
-.oo-ui-icon-key {
-       background-image: url("themes/mediawiki/images/icons/key-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/key-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/key-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/key-ltr.png");
-}
-.oo-ui-icon-keyboard {
-       background-image: url("themes/mediawiki/images/icons/keyboard-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/keyboard-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/keyboard-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/keyboard-ltr.png");
-}
-.oo-ui-icon-logOut {
-       background-image: url("themes/mediawiki/images/icons/logOut-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logOut-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logOut-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logOut-ltr.png");
-}
-.oo-ui-icon-magnifyingGlass {
-       background-image: url("themes/mediawiki/images/icons/magnifyingGlass-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/magnifyingGlass-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/magnifyingGlass-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/magnifyingGlass-ltr.png");
-}
-.oo-ui-icon-newWindow {
-       background-image: url("themes/mediawiki/images/icons/newWindow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newWindow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newWindow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newWindow-ltr.png");
-}
-.oo-ui-icon-printer {
-       background-image: url("themes/mediawiki/images/icons/printer-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/printer-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/printer-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/printer-ltr.png");
-}
-.oo-ui-icon-ribbonPrize {
-       background-image: url("themes/mediawiki/images/icons/ribbonPrize.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ribbonPrize.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ribbonPrize.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ribbonPrize.png");
-}
-.oo-ui-icon-sun {
-       background-image: url("themes/mediawiki/images/icons/sun-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/sun-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/sun-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/sun-ltr.png");
-}
-.oo-ui-icon-watchlist {
-       background-image: url("themes/mediawiki/images/icons/watchlist-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/watchlist-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/watchlist-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/watchlist-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css
deleted file mode 100644 (file)
index 76f456d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-stripeFlow {
-       background-image: url("themes/mediawiki/images/icons/stripeFlow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeFlow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeFlow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeFlow-ltr.png");
-}
-.oo-ui-icon-stripeSideMenu {
-       background-image: url("themes/mediawiki/images/icons/stripeSideMenu.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSideMenu.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSideMenu.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeSideMenu.png");
-}
-.oo-ui-icon-stripeSummary {
-       background-image: url("themes/mediawiki/images/icons/stripeSummary-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSummary-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSummary-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeSummary-ltr.png");
-}
-.oo-ui-icon-stripeToC {
-       background-image: url("themes/mediawiki/images/icons/stripeToC-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeToC-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeToC-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeToC-ltr.png");
-}
-.oo-ui-icon-viewCompact {
-       background-image: url("themes/mediawiki/images/icons/viewCompact.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewCompact.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewCompact.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/viewCompact.png");
-}
-.oo-ui-icon-viewDetails {
-       background-image: url("themes/mediawiki/images/icons/viewDetails-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewDetails-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/viewDetails-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/viewDetails-ltr.png");
-}
-.oo-ui-icon-visionSimulator {
-       background-image: url("themes/mediawiki/images/icons/visionSimulator.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/visionSimulator.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/visionSimulator.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/visionSimulator.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css
deleted file mode 100644 (file)
index 2842e3b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-map {
-       background-image: url("themes/mediawiki/images/icons/map-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/map-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/map-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/map-ltr.png");
-}
-.oo-ui-icon-mapPin {
-       background-image: url("themes/mediawiki/images/icons/mapPin.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPin.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPin.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/mapPin.png");
-}
-.oo-ui-icon-mapPinAdd {
-       background-image: url("themes/mediawiki/images/icons/mapPinAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPinAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPinAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/mapPinAdd-ltr.png");
-}
-.oo-ui-icon-wikitrail {
-       background-image: url("themes/mediawiki/images/icons/wikitrail-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikitrail-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikitrail-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/wikitrail-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css
deleted file mode 100644 (file)
index 82df52f..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-image {
-       background-image: url("themes/mediawiki/images/icons/image-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/image-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/image-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/image-ltr.png");
-}
-.oo-ui-icon-imageAdd {
-       background-image: url("themes/mediawiki/images/icons/imageAdd-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageAdd-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageAdd-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/imageAdd-ltr.png");
-}
-.oo-ui-icon-imageLock {
-       background-image: url("themes/mediawiki/images/icons/imageLock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageLock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageLock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/imageLock-ltr.png");
-}
-.oo-ui-icon-photoGallery {
-       background-image: url("themes/mediawiki/images/icons/photoGallery-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/photoGallery-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/photoGallery-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/photoGallery-ltr.png");
-}
-.oo-ui-icon-play {
-       background-image: url("themes/mediawiki/images/icons/play-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/play-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/play-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/play-ltr.png");
-}
-.oo-ui-icon-stop {
-       background-image: url("themes/mediawiki/images/icons/stop.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stop.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stop.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stop.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css
deleted file mode 100644 (file)
index 6b5befd..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-block {
-       background-image: url("themes/mediawiki/images/icons/block.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/block.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/block.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/block.png");
-}
-.oo-ui-icon-blockUndo {
-       background-image: url("themes/mediawiki/images/icons/blockUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/blockUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/blockUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/blockUndo-ltr.png");
-}
-.oo-ui-icon-flag {
-       background-image: url("themes/mediawiki/images/icons/flag-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flag-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flag-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/flag-ltr.png");
-}
-.oo-ui-icon-flagUndo {
-       background-image: url("themes/mediawiki/images/icons/flagUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flagUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flagUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/flagUndo-ltr.png");
-}
-.oo-ui-icon-lock {
-       background-image: url("themes/mediawiki/images/icons/lock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/lock-ltr.png");
-}
-.oo-ui-icon-star {
-       background-image: url("themes/mediawiki/images/icons/star.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/star.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/star.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/star.png");
-}
-.oo-ui-icon-trash {
-       background-image: url("themes/mediawiki/images/icons/trash.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trash.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trash.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/trash.png");
-}
-.oo-ui-icon-trashUndo {
-       background-image: url("themes/mediawiki/images/icons/trashUndo-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trashUndo-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trashUndo-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/trashUndo-ltr.png");
-}
-.oo-ui-icon-unLock {
-       background-image: url("themes/mediawiki/images/icons/unLock-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unLock-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unLock-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/unLock-ltr.png");
-}
-.oo-ui-icon-unStar {
-       background-image: url("themes/mediawiki/images/icons/unStar.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unStar.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unStar.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/unStar.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css
deleted file mode 100644 (file)
index 5161f0a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-arrowNext {
-       background-image: url("themes/mediawiki/images/icons/arrow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arrow-ltr.png");
-}
-.oo-ui-icon-arrowLast {
-       background-image: url("themes/mediawiki/images/icons/arrow-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arrow-rtl.png");
-}
-.oo-ui-icon-caretNext {
-       background-image: url("themes/mediawiki/images/icons/caret-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caret-rtl.png");
-}
-.oo-ui-icon-caretLast {
-       background-image: url("themes/mediawiki/images/icons/caret-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caret-ltr.png");
-}
-.oo-ui-icon-caretDown {
-       background-image: url("themes/mediawiki/images/icons/caretDown.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretDown.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretDown.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caretDown.png");
-}
-.oo-ui-icon-caretUp {
-       background-image: url("themes/mediawiki/images/icons/caretUp.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretUp.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretUp.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caretUp.png");
-}
-.oo-ui-icon-downTriangle {
-       background-image: url("themes/mediawiki/images/icons/downTriangle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/downTriangle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/downTriangle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/downTriangle.png");
-}
-.oo-ui-icon-move {
-       background-image: url("themes/mediawiki/images/icons/move.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move.png");
-}
-.oo-ui-icon-upTriangle {
-       background-image: url("themes/mediawiki/images/icons/upTriangle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upTriangle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upTriangle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/upTriangle.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css
deleted file mode 100644 (file)
index 2ea8adf..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-userActive {
-       background-image: url("themes/mediawiki/images/icons/userActive-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userActive-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userActive-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userActive-ltr.png");
-}
-.oo-ui-icon-userAvatar {
-       background-image: url("themes/mediawiki/images/icons/userAvatar.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userAvatar.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userAvatar.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userAvatar.png");
-}
-.oo-ui-icon-userInactive {
-       background-image: url("themes/mediawiki/images/icons/userInactive-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userInactive-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userInactive-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userInactive-ltr.png");
-}
-.oo-ui-icon-userTalk {
-       background-image: url("themes/mediawiki/images/icons/userTalk-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userTalk-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userTalk-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userTalk-ltr.png");
-}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css
deleted file mode 100644 (file)
index fbafe17..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-.oo-ui-icon-logoCC {
-       background-image: url("themes/mediawiki/images/icons/logo-cc.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-cc.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-cc.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-cc.png");
-}
-.oo-ui-icon-logoWikimediaCommons {
-       background-image: url("themes/mediawiki/images/icons/logo-wikimediaCommons.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikimediaCommons.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikimediaCommons.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-wikimediaCommons.png");
-}
-.oo-ui-icon-logoWikipedia {
-       background-image: url("themes/mediawiki/images/icons/logo-wikipedia.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikipedia.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikipedia.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-wikipedia.png");
-}
index 54be6b4..c32d7ca 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.0
+ * OOjs UI v0.10.1
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-04-23T00:54:33Z
+ * Date: 2015-04-27T17:17:17Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
 .oo-ui-buttonGroupWidget:last-child {
        margin-right: 0;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget {
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement {
        margin-right: 0;
 }
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget:last-child {
+.oo-ui-buttonGroupWidget .oo-ui-buttonElement:last-child {
        margin-right: 0;
 }
 .oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
        border-bottom-right-radius: 2px;
        border-top-right-radius: 2px;
 }
+.oo-ui-toggleButtonWidget {
+       display: inline-block;
+       vertical-align: middle;
+       margin-right: 0.5em;
+}
+.oo-ui-toggleButtonWidget:last-child {
+       margin-right: 0;
+}
 .oo-ui-toggleSwitchWidget {
        position: relative;
        display: inline-block;
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki.css b/resources/lib/oojs-ui/oojs-ui-mediawiki.css
deleted file mode 100644 (file)
index 17ab620..0000000
+++ /dev/null
@@ -1,3062 +0,0 @@
-/*!
- * OOjs UI v0.10.0
- * https://www.mediawiki.org/wiki/OOjs_UI
- *
- * Copyright 2011–2015 OOjs Team and other contributors.
- * Released under the MIT license
- * http://oojs.mit-license.org
- *
- * Date: 2015-04-23T00:54:33Z
- */
-@-webkit-keyframes oo-ui-progressBarWidget-slide {
-       from {
-               margin-left: -40%;
-       }
-       to {
-               margin-left: 100%;
-       }
-}
-@-moz-keyframes oo-ui-progressBarWidget-slide {
-       from {
-               margin-left: -40%;
-       }
-       to {
-               margin-left: 100%;
-       }
-}
-@-ms-keyframes oo-ui-progressBarWidget-slide {
-       from {
-               margin-left: -40%;
-       }
-       to {
-               margin-left: 100%;
-       }
-}
-@-o-keyframes oo-ui-progressBarWidget-slide {
-       from {
-               margin-left: -40%;
-       }
-       to {
-               margin-left: 100%;
-       }
-}
-@keyframes oo-ui-progressBarWidget-slide {
-       from {
-               margin-left: -40%;
-       }
-       to {
-               margin-left: 100%;
-       }
-}
-/* @noflip */
-.oo-ui-rtl {
-       direction: rtl;
-}
-/* @noflip */
-.oo-ui-ltr {
-       direction: ltr;
-}
-.oo-ui-element-hidden {
-       display: none !important;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-       cursor: pointer;
-       display: inline-block;
-       vertical-align: middle;
-       font: inherit;
-       white-space: nowrap;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       display: none;
-}
-.oo-ui-buttonElement.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-       cursor: default;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       display: inline-block;
-       vertical-align: middle;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-buttonElement-frameless {
-       display: inline-block;
-       position: relative;
-}
-.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-       display: inline-block;
-       vertical-align: top;
-       text-align: center;
-}
-.oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       cursor: default;
-}
-.oo-ui-buttonElement > .oo-ui-buttonElement-button {
-       font-weight: bold;
-}
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-left: 0;
-}
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       width: 0.9375em;
-       height: 0.9375em;
-       margin: 0.46875em;
-}
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       margin-left: 0.46875em;
-}
-.oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       width: 1.875em;
-       height: 1.875em;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.2);
-       outline: none;
-}
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator {
-       margin-right: 0;
-}
-.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       margin-left: 0.25em;
-       margin-right: 0.25em;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #555555;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #444444;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #347bff;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #2962cc;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #00af89;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #008c6d;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #d11d13;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #777777;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #a7170f;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-       color: #cccccc;
-}
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       opacity: 0.2;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-       margin: 0.1em 0;
-       padding: 0.2em 0.8em;
-       border-radius: 2px;
-       -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-          -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-           -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-            -o-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-               transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
-}
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
-       outline: none;
-}
-.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       line-height: 1.875em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-left: -0.5em;
-       margin-right: -0.5em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-right: 0.3em;
-}
-.oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       /* -0.5 - 0.475 */
-       margin-left: -0.005em;
-       margin-right: -0.005em;
-}
-.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       margin-left: 0.46875em;
-       margin-right: -0.275em;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background: #dddddd;
-       border: 1px solid #dddddd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-       color: #555555;
-       background-color: #ffffff;
-       border: 1px solid #cdcdcd;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       background-color: #d0d0d0;
-       border-color: #d0d0d0;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
-       color: #347bff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #2962cc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #2962cc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #2962cc;
-       border-color: #2962cc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #2962cc;
-       border-color: #d0d0d0;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-       color: #00af89;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #008c6d;
-       border-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #008c6d;
-       border-color: #d0d0d0;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-       color: #d11d13;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #a7170f;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #a7170f;
-       border-color: #a7170f;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #a7170f;
-       border-color: #d0d0d0;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #347bff;
-       border-color: #347bff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #2962cc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #2962cc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #2962cc;
-       border-color: #2962cc;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #2962cc;
-       border-color: #2962cc;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #00af89;
-       border-color: #00af89;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #008c6d, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #008c6d;
-       border-color: #008c6d;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #008c6d;
-       border-color: #008c6d;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #d11d13;
-       border-color: #d11d13;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #a7170f, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #a7170f;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #a7170f;
-       border-color: #a7170f;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #ffffff;
-       background-color: #a7170f;
-       border-color: #a7170f;
-       box-shadow: none;
-}
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-clippableElement-clippable {
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-draggableElement {
-       cursor: -webkit-grab -moz-grab, url(images/grab.cur), move;
-       /*
-        * HACK: In order to style horizontally, we must override
-        * OO.ui.OptionWidget's display rule that is currently set
-        * to be 'block'
-        */
-}
-.oo-ui-draggableElement-dragging {
-       cursor: -webkit-grabbing -moz-grabbing, url(images/grabbing.cur), move;
-       background: rgba(0, 0, 0, 0.2);
-       opacity: 0.4;
-}
-.oo-ui-draggableGroupElement-horizontal .oo-ui-draggableElement.oo-ui-optionWidget {
-       display: inline-block;
-}
-.oo-ui-draggableGroupElement-placeholder {
-       position: absolute;
-       display: block;
-       background: rgba(0, 0, 0, 0.4);
-}
-.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-iconElement.oo-ui-iconElement-icon {
-       background-size: contain;
-       background-position: center center;
-}
-.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
-.oo-ui-indicatorElement.oo-ui-indicatorElement-indicator {
-       background-size: contain;
-       background-position: center center;
-}
-.oo-ui-lookupElement > .oo-ui-menuSelectWidget {
-       z-index: 1;
-       width: 100%;
-}
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous > .oo-ui-panelLayout-scrollable {
-       overflow-y: hidden;
-}
-.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout {
-       width: 100%;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout-scrollable {
-       overflow-y: auto;
-}
-.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout-padded {
-       padding: 2em;
-}
-.oo-ui-bookletLayout-outlinePanel-editable > .oo-ui-outlineSelectWidget {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 3em;
-       overflow-y: auto;
-}
-.oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
-       position: absolute;
-       bottom: 0;
-       left: 0;
-       right: 0;
-}
-.oo-ui-bookletLayout-stackLayout > .oo-ui-panelLayout {
-       padding: 1.5em;
-}
-.oo-ui-bookletLayout-outlinePanel {
-       border-right: 1px solid #dddddd;
-}
-.oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
-       box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
-}
-.oo-ui-fieldLayout {
-       display: block;
-       margin-bottom: 1em;
-}
-.oo-ui-fieldLayout:before,
-.oo-ui-fieldLayout:after {
-       content: " ";
-       display: table;
-}
-.oo-ui-fieldLayout:after {
-       clear: both;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
-       display: block;
-       float: left;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       text-align: right;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body {
-       display: table;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
-       display: table-cell;
-       vertical-align: middle;
-}
-.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       display: inline-block;
-}
-.oo-ui-fieldLayout > .oo-ui-fieldLayout-help {
-       float: right;
-}
-.oo-ui-fieldLayout > .oo-ui-fieldLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-       z-index: 1;
-}
-.oo-ui-fieldLayout > .oo-ui-fieldLayout-help .oo-ui-fieldLayout-help-content {
-       padding: 0.5em 0.75em;
-       line-height: 1.5em;
-}
-.oo-ui-fieldLayout:last-child {
-       margin-bottom: 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       padding-top: 0.5em;
-       margin-right: 5%;
-       width: 35%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-left > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field,
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
-       width: 60%;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       padding: 0.5em;
-       padding-left: 1em;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
-       padding: 0.5em 0;
-}
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       padding: 0.5em 0;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget {
-       margin-right: 0;
-       margin-top: 0.25em;
-}
-.oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-fieldLayout-disabled .oo-ui-labelElement-label {
-       color: #cccccc;
-}
-.oo-ui-actionFieldLayout-field {
-       display: table;
-       table-layout: fixed;
-       width: 100%;
-}
-.oo-ui-actionFieldLayout-input,
-.oo-ui-actionFieldLayout-button {
-       display: table-cell;
-       vertical-align: middle;
-}
-.oo-ui-actionFieldLayout-input {
-       padding-right: 1em;
-}
-.oo-ui-actionFieldLayout-button {
-       width: 1%;
-       white-space: nowrap;
-}
-.oo-ui-fieldsetLayout {
-       position: relative;
-       margin: 0;
-       padding: 0;
-       border: none;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-       display: block;
-       position: absolute;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-fieldsetLayout.oo-ui-labelElement > .oo-ui-labelElement-label {
-       display: inline-block;
-}
-.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help {
-       float: right;
-}
-.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help > .oo-ui-popupWidget > .oo-ui-popupWidget-popup {
-       z-index: 1;
-}
-.oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-help .oo-ui-fieldsetLayout-help-content {
-       padding: 0.5em 0.75em;
-       line-height: 1.5em;
-}
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout,
-.oo-ui-fieldsetLayout + .oo-ui-formLayout {
-       margin-top: 2em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-labelElement-label {
-       font-size: 1.1em;
-       margin-bottom: 0.5em;
-       padding: 0.25em 0;
-       font-weight: bold;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-       padding-left: 2em;
-       line-height: 1.8em;
-}
-.oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
-       left: 0;
-       top: 0.25em;
-       width: 1.875em;
-       height: 1.875em;
-}
-.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget {
-       margin-right: 0;
-}
-.oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-formLayout + .oo-ui-fieldsetLayout,
-.oo-ui-formLayout + .oo-ui-formLayout {
-       margin-top: 2em;
-}
-.oo-ui-menuLayout {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-}
-.oo-ui-menuLayout-menu,
-.oo-ui-menuLayout-content {
-       position: absolute;
-       -webkit-transition: all ease-in-out 200ms;
-          -moz-transition: all ease-in-out 200ms;
-           -ms-transition: all ease-in-out 200ms;
-            -o-transition: all ease-in-out 200ms;
-               transition: all ease-in-out 200ms;
-}
-.oo-ui-menuLayout-menu {
-       height: 18em;
-       width: 18em;
-}
-.oo-ui-menuLayout-content {
-       top: 18em;
-       left: 18em;
-       right: 18em;
-       bottom: 18em;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-menu {
-       width: 0 !important;
-       height: 0 !important;
-       overflow: hidden;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-hideMenu .oo-ui-menuLayout-content {
-       top: 0 !important;
-       left: 0 !important;
-       right: 0 !important;
-       bottom: 0 !important;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-menu {
-       width: auto !important;
-       left: 0;
-       top: 0;
-       right: 0;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-top .oo-ui-menuLayout-content {
-       right: 0 !important;
-       bottom: 0 !important;
-       left: 0 !important;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
-       height: auto !important;
-       top: 0;
-       right: 0;
-       bottom: 0;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-after .oo-ui-menuLayout-content {
-       bottom: 0 !important;
-       left: 0 !important;
-       top: 0 !important;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
-       width: auto !important;
-       right: 0;
-       bottom: 0;
-       left: 0;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
-       left: 0 !important;
-       top: 0 !important;
-       right: 0 !important;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
-       height: auto !important;
-       bottom: 0;
-       left: 0;
-       top: 0;
-}
-.oo-ui-menuLayout.oo-ui-menuLayout-showMenu.oo-ui-menuLayout-before .oo-ui-menuLayout-content {
-       top: 0 !important;
-       right: 0 !important;
-       bottom: 0 !important;
-}
-.oo-ui-panelLayout {
-       position: relative;
-}
-.oo-ui-panelLayout-scrollable {
-       overflow-y: auto;
-}
-.oo-ui-panelLayout-expanded {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-}
-.oo-ui-panelLayout-padded {
-       padding: 1.25em;
-}
-.oo-ui-panelLayout-framed {
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-       display: block;
-       position: relative;
-}
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-anchor {
-       z-index: 4;
-}
-.oo-ui-popupTool .oo-ui-popupWidget {
-       /* @noflip */
-       margin-left: 1.25em;
-       font-size: 0.8em;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup {
-       margin: 0;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle {
-       height: 1.5em;
-       padding: 0.25em;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       opacity: 0.8;
-}
-.oo-ui-toolGroupTool > .oo-ui-popupToolGroup.oo-ui-labelElement > .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       line-height: 2.1em;
-}
-.oo-ui-toolGroup {
-       display: inline-block;
-       vertical-align: middle;
-       margin: 0.3em;
-}
-.oo-ui-toolGroup-empty {
-       display: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link {
-       text-decoration: none;
-}
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
-       margin-left: 0;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
-       color: #000000;
-}
-.oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-accel {
-       color: #888888;
-}
-.oo-ui-barToolGroup > .oo-ui-iconElement-icon,
-.oo-ui-barToolGroup > .oo-ui-labelElement-label {
-       display: none;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
-       display: inline-block;
-       position: relative;
-       vertical-align: top;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
-       display: block;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-accel {
-       display: none;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       display: block;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-iconElement > .oo-ui-tool-link .oo-ui-tool-title {
-       display: none;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link {
-       cursor: default;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
-       height: 1.5em;
-       padding: 0.25em;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       opacity: 0.8;
-}
-.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-title {
-       line-height: 2.1em;
-       font-size: 0.8em;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled {
-       background-color: #eeeeee;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 0.2;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 0.8;
-}
-.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 1;
-}
-.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 0.2;
-}
-.oo-ui-popupToolGroup {
-       position: relative;
-       height: 2em;
-       min-width: 2em;
-}
-.oo-ui-popupToolGroup-handle {
-       display: block;
-       cursor: pointer;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       position: absolute;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-popupToolGroup.oo-ui-widget-disabled .oo-ui-popupToolGroup-handle {
-       cursor: default;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       display: none;
-       position: absolute;
-       z-index: 4;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconElement-icon {
-       background-repeat: no-repeat;
-       background-position: center center;
-}
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
-       display: block;
-}
-.oo-ui-popupToolGroup-left > .oo-ui-toolGroup-tools {
-       left: 0;
-}
-.oo-ui-popupToolGroup-right > .oo-ui-toolGroup-tools {
-       right: 0;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link {
-       display: table;
-       width: 100%;
-       vertical-align: middle;
-       white-space: nowrap;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon,
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       display: table-cell;
-       vertical-align: middle;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel {
-       text-align: right;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel:not(:empty) {
-       padding-left: 3em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup {
-       min-width: 1.5em;
-}
-.oo-ui-popupToolGroup.oo-ui-iconElement {
-       min-width: 2.5em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-iconElement {
-       min-width: 2em;
-}
-.oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3.5em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
-       min-width: 3em;
-}
-.oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       line-height: 2.6em;
-       font-size: 0.8em;
-       margin: 0 1em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin: 0 0.5em;
-}
-.oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-left: 3em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-left: 2.5em;
-}
-.oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-right: 2.25em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
-       margin-right: 1.75em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-       width: 0.75em;
-       height: 0.75em;
-       margin: 0.625em;
-       top: 0;
-       right: 0;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
-       right: -0.25em;
-}
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       width: 1.5em;
-       height: 1.5em;
-       margin: 0.25em;
-       top: 0;
-       left: 0.25em;
-}
-.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       left: 0;
-}
-.oo-ui-popupToolGroup-header {
-       line-height: 2.6em;
-       font-size: 0.8em;
-       margin: 0 0.6em;
-       font-weight: bold;
-}
-.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
-       top: 2em;
-       background-color: white;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link {
-       padding: 0.25em 0 0.25em 0.25em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 1.5em;
-       width: 1.5em;
-       min-width: 1.5em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       padding-left: 0.5em;
-}
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
-.oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       line-height: 2em;
-       font-size: 0.8em;
-}
-.oo-ui-listToolGroup .oo-ui-tool {
-       display: block;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-listToolGroup .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
-.oo-ui-listToolGroup .oo-ui-tool {
-       padding: 0 0.75em 0 0.25em;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-       background-color: #eeeeee;
-}
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled,
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled:hover {
-       background-color: #d0d0d0;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-       color: #cccccc;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-accel {
-       color: #dddddd;
-}
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 0.2;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled {
-       color: #cccccc;
-}
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-listToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-       opacity: 0.2;
-}
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-       padding: 0.25em 0 0.25em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup {
-       border: 1px solid #cccccc;
-       border-radius: 0.1em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-       display: block;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-       cursor: pointer;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-       cursor: default;
-}
-.oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-       min-width: 8em;
-}
-.oo-ui-toolbar-narrow .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-       min-width: 6.5em;
-}
-.oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
-       margin-left: -1px;
-       padding: 0.25em 0 0.25em 0;
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       border-top-left-radius: 0;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-}
-.oo-ui-menuToolGroup.oo-ui-widget-enabled:hover {
-       border-color: #aaaaaa;
-}
-.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-       border-color: #aaaaaa;
-}
-.oo-ui-menuToolGroup .oo-ui-tool {
-       padding: 0 1em 0 0.25em;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       background-image: none;
-}
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconElement-icon {
-       background-image: url("themes/mediawiki/images/icons/check.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check.png");
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-       background-color: #eeeeee;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-       color: #cccccc;
-}
-.oo-ui-menuToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
-       opacity: 0.2;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled {
-       color: #cccccc;
-       border-color: #cccccc;
-}
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator,
-.oo-ui-menuToolGroup.oo-ui-widget-disabled .oo-ui-iconElement-icon {
-       opacity: 0.2;
-}
-.oo-ui-toolbar {
-       clear: both;
-}
-.oo-ui-toolbar-bar {
-       line-height: 1em;
-}
-.oo-ui-toolbar-actions {
-       float: right;
-}
-.oo-ui-toolbar-tools {
-       display: inline;
-       white-space: nowrap;
-}
-.oo-ui-toolbar-narrow .oo-ui-toolbar-tools {
-       white-space: normal;
-}
-.oo-ui-toolbar-tools .oo-ui-tool {
-       white-space: normal;
-}
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-       -webkit-touch-callout: default;
-       -webkit-user-select: all;
-          -moz-user-select: all;
-           -ms-user-select: all;
-               user-select: all;
-}
-.oo-ui-toolbar-shadow {
-       background-position: left top;
-       background-repeat: repeat-x;
-       position: absolute;
-       width: 100%;
-       pointer-events: none;
-}
-.oo-ui-toolbar-bar {
-       border-bottom: 2px solid rgba(0, 0, 0, 0.15);
-       background: #ffffff;
-}
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-       border: none;
-       background: none;
-}
-.oo-ui-toolbar-shadow {
-       display: none;
-}
-.oo-ui-selectWidget {
-       border-radius: 2px;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       border-radius: 0;
-       margin-left: -1px;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-       border-bottom-left-radius: 2px;
-       border-top-left-radius: 2px;
-       margin-left: 0;
-}
-.oo-ui-selectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
-}
-.oo-ui-optionWidget {
-       position: relative;
-       display: block;
-       cursor: pointer;
-       padding: 0.25em 0.5em;
-       border: none;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-       cursor: default;
-}
-.oo-ui-optionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
-       display: block;
-       white-space: nowrap;
-       text-overflow: ellipsis;
-       overflow: hidden;
-}
-.oo-ui-optionWidget-highlighted {
-       background-color: #eeeeee;
-}
-.oo-ui-optionWidget .oo-ui-labelElement-label {
-       line-height: 1.5em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected,
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed,
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed.oo-ui-optionWidget-highlighted,
-.oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed.oo-ui-optionWidget-highlighted.oo-ui-optionWidget-selected {
-       background-color: #d0d0d0;
-}
-.oo-ui-optionWidget.oo-ui-widget-disabled {
-       color: #cccccc;
-}
-.oo-ui-decoratedOptionWidget {
-       padding: 0.5em 2em 0.5em 3em;
-}
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-       position: absolute;
-       background-repeat: no-repeat;
-       background-position: center center;
-}
-.oo-ui-decoratedOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       top: 0;
-       height: 100%;
-}
-.oo-ui-decoratedOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       width: 1.875em;
-       left: 0.5em;
-}
-.oo-ui-decoratedOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       width: 0.9375em;
-       right: 0.5em;
-}
-.oo-ui-decoratedOptionWidget.oo-ui-widget-disabled .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-       opacity: 0.2;
-}
-.oo-ui-buttonSelectWidget {
-       display: inline-block;
-       white-space: nowrap;
-       border-radius: 2px;
-       margin-right: 0.5em;
-}
-.oo-ui-buttonSelectWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       border-radius: 0;
-       margin-left: -1px;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonElement-button {
-       border-bottom-left-radius: 2px;
-       border-top-left-radius: 2px;
-       margin-left: 0;
-}
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
-}
-.oo-ui-buttonOptionWidget {
-       display: inline-block;
-       padding: 0;
-       background-color: transparent;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       position: relative;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       position: static;
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       height: 1.875em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       margin-top: 0;
-}
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-pressed,
-.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
-       background-color: transparent;
-}
-.oo-ui-buttonOptionWidget.oo-ui-widget-disabled .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-       opacity: 1;
-}
-.oo-ui-radioOptionWidget {
-       cursor: default;
-       padding: 0.25em 0;
-       background-color: transparent;
-}
-.oo-ui-radioOptionWidget .oo-ui-radioInputWidget,
-.oo-ui-radioOptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-radioOptionWidget.oo-ui-optionWidget-selected,
-.oo-ui-radioOptionWidget.oo-ui-optionWidget-pressed,
-.oo-ui-radioOptionWidget.oo-ui-optionWidget-highlighted {
-       background-color: transparent;
-}
-.oo-ui-radioOptionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
-       padding: 0.25em;
-       padding-left: 1em;
-}
-.oo-ui-radioOptionWidget .oo-ui-radioInputWidget {
-       margin-right: 0;
-}
-.oo-ui-labelWidget {
-       display: inline-block;
-}
-.oo-ui-iconWidget {
-       display: inline-block;
-       vertical-align: middle;
-       background-position: center center;
-       background-repeat: no-repeat;
-       line-height: 2.5em;
-       height: 1.875em;
-       width: 1.875em;
-}
-.oo-ui-iconWidget.oo-ui-widget-disabled {
-       opacity: 0.2;
-}
-.oo-ui-indicatorWidget {
-       display: inline-block;
-       vertical-align: middle;
-       background-position: center center;
-       background-repeat: no-repeat;
-       line-height: 2.5em;
-       height: 0.9375em;
-       width: 0.9375em;
-       margin: 0.46875em;
-}
-.oo-ui-indicatorWidget.oo-ui-widget-disabled {
-       opacity: 0.2;
-}
-.oo-ui-buttonWidget {
-       display: inline-block;
-       vertical-align: middle;
-       margin-right: 0.5em;
-}
-.oo-ui-buttonWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-buttonGroupWidget {
-       display: inline-block;
-       white-space: nowrap;
-       border-radius: 2px;
-       margin-right: 0.5em;
-}
-.oo-ui-buttonGroupWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget {
-       margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       border-radius: 0;
-       margin-left: -1px;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:first-child .oo-ui-buttonElement-button {
-       border-bottom-left-radius: 2px;
-       border-top-left-radius: 2px;
-       margin-left: 0;
-}
-.oo-ui-buttonGroupWidget .oo-ui-buttonElement-framed:last-child .oo-ui-buttonElement-button {
-       border-bottom-right-radius: 2px;
-       border-top-right-radius: 2px;
-}
-.oo-ui-toggleSwitchWidget {
-       position: relative;
-       display: inline-block;
-       vertical-align: middle;
-       overflow: hidden;
-       cursor: pointer;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       -webkit-transform: translateZ(0px);
-          -moz-transform: translateZ(0px);
-           -ms-transform: translateZ(0px);
-            -o-transform: translateZ(0px);
-               transform: translateZ(0px);
-       height: 2em;
-       width: 4em;
-       border-radius: 1em;
-       border: 1px #dddddd solid;
-       margin-right: 0.5em;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
-       cursor: default;
-}
-.oo-ui-toggleSwitchWidget-grip {
-       position: absolute;
-       display: block;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-       right: 0;
-       left: 0;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: none;
-}
-.oo-ui-toggleSwitchWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-toggleSwitchWidget-grip {
-       top: 0.25em;
-       left: 0.25em;
-       width: 1.5em;
-       height: 1.5em;
-       margin-top: -1px;
-       border-radius: 1em;
-       border: 1px #dddddd solid;
-       background-color: #f7f7f7;
-       -webkit-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-          -moz-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-           -ms-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-            -o-transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-               transition: left 0.1s ease-in-out, margin-left 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget-glow {
-       border-radius: 1em;
-       background-color: #f7f7f7;
-       -webkit-transition: background-color 0.1s ease-in-out;
-          -moz-transition: background-color 0.1s ease-in-out;
-           -ms-transition: background-color 0.1s ease-in-out;
-            -o-transition: background-color 0.1s ease-in-out;
-               transition: background-color 0.1s ease-in-out;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-grip {
-       left: 2.25em;
-       margin-left: -2px;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       display: block;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
-       left: 0.25em;
-       margin-left: 0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled {
-       border: 1px #cccccc solid;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover {
-       border-color: #aaaaaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled .oo-ui-toggleSwitchWidget-grip {
-       background-color: #ffffff;
-       border-color: #aaaaaa;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-       background-color: #d0d0d0;
-}
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-       background-color: #ffffff;
-}
-.oo-ui-progressBarWidget {
-       max-width: 50em;
-       border: 1px solid #cccccc;
-       border-radius: 0.1em;
-       overflow: hidden;
-}
-.oo-ui-progressBarWidget-bar {
-       height: 1em;
-       background: #dddddd;
-       -webkit-transition: width 200ms, margin-left 200ms;
-          -moz-transition: width 200ms, margin-left 200ms;
-           -ms-transition: width 200ms, margin-left 200ms;
-            -o-transition: width 200ms, margin-left 200ms;
-               transition: width 200ms, margin-left 200ms;
-}
-.oo-ui-progressBarWidget-indeterminate .oo-ui-progressBarWidget-bar {
-       -webkit-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
-          -moz-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
-           -ms-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
-            -o-animation: oo-ui-progressBarWidget-slide 2s infinite linear;
-               animation: oo-ui-progressBarWidget-slide 2s infinite linear;
-       width: 40%;
-       margin-left: -10%;
-       border-left-width: 1px;
-}
-.oo-ui-progressBarWidget.oo-ui-widget-disabled {
-       opacity: 0.6;
-}
-.oo-ui-actionWidget.oo-ui-pendingElement-pending {
-       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-popupWidget {
-       position: absolute;
-       /* @noflip */
-       left: 0;
-}
-.oo-ui-popupWidget-popup {
-       position: relative;
-       overflow: hidden;
-       z-index: 1;
-}
-.oo-ui-popupWidget-anchor {
-       display: none;
-       z-index: 1;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor {
-       display: block;
-       position: absolute;
-       top: 0;
-       /* @noflip */
-       left: 0;
-       background-repeat: no-repeat;
-}
-.oo-ui-popupWidget-head {
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-       float: right;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-       float: left;
-       cursor: default;
-}
-.oo-ui-popupWidget-body {
-       clear: both;
-       overflow: hidden;
-}
-.oo-ui-popupWidget-popup {
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       background-color: #ffffff;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-popup {
-       margin-top: 9px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before,
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-       content: "";
-       position: absolute;
-       width: 0;
-       height: 0;
-       border-style: solid;
-       border-color: transparent;
-       border-top: 0;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:before {
-       bottom: -10px;
-       left: -9px;
-       border-bottom-color: #888888;
-       border-width: 10px;
-}
-.oo-ui-popupWidget-anchored .oo-ui-popupWidget-anchor:after {
-       bottom: -10px;
-       left: -8px;
-       border-bottom-color: #ffffff;
-       border-width: 9px;
-}
-.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
-       -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
-          -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
-           -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
-            -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
-               transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
-}
-.oo-ui-popupWidget-head {
-       height: 2.5em;
-}
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-       margin: 0.25em;
-}
-.oo-ui-popupWidget-head .oo-ui-labelElement-label {
-       margin: 0.75em 1em;
-}
-.oo-ui-popupWidget-body-padded {
-       padding: 0 1em;
-}
-.oo-ui-popupButtonWidget {
-       position: relative;
-}
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-       position: absolute;
-       cursor: auto;
-}
-.oo-ui-popupButtonWidget.oo-ui-buttonElement-frameless > .oo-ui-popupWidget {
-       /* @noflip */
-       left: 1em;
-}
-.oo-ui-popupButtonWidget.oo-ui-buttonElement-framed > .oo-ui-popupWidget {
-       /* @noflip */
-       left: 1.75em;
-}
-.oo-ui-inputWidget {
-       margin-right: 0.5em;
-}
-.oo-ui-inputWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-buttonInputWidget {
-       display: inline-block;
-       vertical-align: middle;
-}
-.oo-ui-checkboxInputWidget {
-       position: relative;
-       line-height: 1.6em;
-       white-space: nowrap;
-}
-.oo-ui-checkboxInputWidget * {
-       font: inherit;
-       vertical-align: middle;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"] {
-       opacity: 0;
-       z-index: 1;
-       position: relative;
-       margin: 0;
-       width: 1.6em;
-       height: 1.6em;
-       max-width: none;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"] + span {
-       cursor: pointer;
-       -webkit-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-          -moz-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-           -ms-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-            -o-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-               transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       position: absolute;
-       left: 0;
-       border-radius: 2px;
-       width: 1.6em;
-       height: 1.6em;
-       background-color: white;
-       border: 1px solid #777777;
-       background-image: url("themes/mediawiki/images/icons/check-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-constructive.png");
-       background-repeat: no-repeat;
-       background-position: center center;
-       background-origin: border-box;
-       background-size: 0 0;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:checked + span {
-       background-size: 100% 100%;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:active + span {
-       background-color: #dddddd;
-       border-color: #dddddd;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:focus + span {
-       border-width: 2px;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:focus:hover + span,
-.oo-ui-checkboxInputWidget input[type="checkbox"]:hover + span {
-       border-bottom-width: 3px;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled + span {
-       cursor: default;
-       background-color: #eeeeee;
-       border-color: #eeeeee;
-}
-.oo-ui-checkboxInputWidget input[type="checkbox"]:disabled:checked + span {
-       background-image: url("themes/mediawiki/images/icons/check-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-invert.png");
-}
-.oo-ui-dropdownInputWidget {
-       position: relative;
-       vertical-align: middle;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       width: 100%;
-       max-width: 50em;
-}
-.oo-ui-dropdownInputWidget select {
-       display: inline-block;
-       width: 100%;
-       resize: none;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-dropdownInputWidget select {
-       height: 2.5em;
-       padding: 0.5em;
-       font-size: inherit;
-       font-family: inherit;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       border: 1px solid #cccccc;
-}
-.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover,
-.oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus {
-       border-color: #aaaaaa;
-       outline: none;
-}
-.oo-ui-dropdownInputWidget.oo-ui-widget-disabled select {
-       color: #cccccc;
-       border-color: #dddddd;
-       background-color: #f3f3f3;
-}
-.oo-ui-radioInputWidget {
-       position: relative;
-       line-height: 1.6em;
-       white-space: nowrap;
-}
-.oo-ui-radioInputWidget * {
-       font: inherit;
-       vertical-align: middle;
-}
-.oo-ui-radioInputWidget input[type="radio"] {
-       opacity: 0;
-       z-index: 1;
-       position: relative;
-       margin: 0;
-       width: 1.6em;
-       height: 1.6em;
-       max-width: none;
-}
-.oo-ui-radioInputWidget input[type="radio"] + span {
-       cursor: pointer;
-       -webkit-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-          -moz-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-           -ms-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-            -o-transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-               transition: background-size 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       position: absolute;
-       left: 0;
-       border-radius: 100%;
-       width: 1.6em;
-       height: 1.6em;
-       background: white;
-       border: 1px solid #777777;
-       background-image: url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-repeat: no-repeat;
-       background-position: center center;
-       background-origin: border-box;
-       background-size: 0 0;
-}
-.oo-ui-radioInputWidget input[type="radio"]:checked + span {
-       background-size: 100% 100%;
-}
-.oo-ui-radioInputWidget input[type="radio"]:active + span {
-       background-color: #dddddd;
-       border-color: #dddddd;
-}
-.oo-ui-radioInputWidget input[type="radio"]:focus + span {
-       border-width: 2px;
-}
-.oo-ui-radioInputWidget input[type="radio"]:focus:hover + span,
-.oo-ui-radioInputWidget input[type="radio"]:hover + span {
-       border-bottom-width: 3px;
-}
-.oo-ui-radioInputWidget input[type="radio"]:disabled + span {
-       cursor: default;
-       background-color: #eeeeee;
-       border-color: #eeeeee;
-}
-.oo-ui-radioInputWidget input[type="radio"]:disabled:checked + span {
-       background-image: url("themes/mediawiki/images/icons/circle-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-invert.png");
-}
-.oo-ui-textInputWidget {
-       position: relative;
-       vertical-align: middle;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-       width: 100%;
-       max-width: 50em;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-       display: inline-block;
-       width: 100%;
-       resize: none;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator,
-.oo-ui-textInputWidget > .oo-ui-labelElement-label {
-       display: none;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget.oo-ui-indicatorElement > .oo-ui-indicatorElement-indicator {
-       display: block;
-       position: absolute;
-       top: 0;
-       height: 100%;
-       background-repeat: no-repeat;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget.oo-ui-widget-enabled > .oo-ui-indicatorElement-indicator {
-       cursor: pointer;
-}
-.oo-ui-textInputWidget.oo-ui-labelElement > .oo-ui-labelElement-label {
-       display: block;
-}
-.oo-ui-textInputWidget > .oo-ui-iconElement-icon {
-       left: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-indicatorElement-indicator {
-       right: 0;
-}
-.oo-ui-textInputWidget > .oo-ui-labelElement-label {
-       position: absolute;
-       top: 0;
-}
-.oo-ui-textInputWidget-labelPosition-after > .oo-ui-labelElement-label {
-       right: 0;
-}
-.oo-ui-textInputWidget-labelPosition-before > .oo-ui-labelElement-label {
-       left: 0;
-}
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-       padding: 0.5em;
-       margin: 0;
-       font-size: inherit;
-       font-family: inherit;
-       background-color: #ffffff;
-       color: black;
-       border: solid 1px #cccccc;
-       box-shadow: inset 0 0 0 0 #347bff;
-       border-radius: 0.1em;
-       -webkit-transition: box-shadow 0.1s;
-          -moz-transition: box-shadow 0.1s;
-           -ms-transition: box-shadow 0.1s;
-            -o-transition: box-shadow 0.1s;
-               transition: box-shadow 0.1s;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-textInputWidget-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-       padding-left: 2em;
-}
-.oo-ui-textInputWidget-icon {
-       width: 2em;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea {
-       -webkit-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-          -moz-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-           -ms-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-            -o-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-               transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-       outline: none;
-       border-color: #347bff;
-       box-shadow: inset 0 0 0 0.1em #347bff;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly],
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly] {
-       color: #777777;
-       text-shadow: 0 1px 1px #ffffff;
-}
-.oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly]:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly]:focus {
-       border-color: #cccccc;
-       box-shadow: inset 0 0 0 0.1em #cccccc;
-}
-.oo-ui-textInputWidget.oo-ui-widget-disabled input,
-.oo-ui-textInputWidget.oo-ui-widget-disabled textarea {
-       color: #cccccc;
-       text-shadow: 0 1px 1px #ffffff;
-       border-color: #dddddd;
-       background-color: #f3f3f3;
-}
-.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-iconElement-icon,
-.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-       opacity: 0.2;
-}
-.oo-ui-textInputWidget.oo-ui-widget-disabled .oo-ui-labelElement-label {
-       color: #dddddd;
-       text-shadow: 0 1px 1px #ffffff;
-}
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending input,
-.oo-ui-textInputWidget.oo-ui-pendingElement-pending textarea {
-       background-color: transparent;
-       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-textInputWidget.oo-ui-iconElement input,
-.oo-ui-textInputWidget.oo-ui-iconElement textarea {
-       padding-left: 2.75em;
-}
-.oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       left: 0.4em;
-       width: 1.875em;
-       margin-left: 0.1em;
-       height: 100%;
-       background-position: right center;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement input,
-.oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-       padding-right: 1.875em;
-}
-.oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       width: 0.9375em;
-       margin: 0 0.775em;
-       height: 100%;
-}
-.oo-ui-textInputWidget > .oo-ui-labelElement-label {
-       padding: 0.4em;
-       line-height: 1.5em;
-       color: #888888;
-}
-.oo-ui-textInputWidget-labelPosition-after.oo-ui-indicatorElement > .oo-ui-labelElement-label {
-       margin-right: 2em;
-}
-.oo-ui-textInputWidget-labelPosition-before.oo-ui-iconElement > .oo-ui-labelElement-label {
-       margin-left: 2.5em;
-}
-.oo-ui-menuSelectWidget {
-       position: absolute;
-       background: #ffffff;
-       margin-top: -1px;
-       border: 1px solid #aaaaaa;
-       border-radius: 0 0 0.2em 0.2em;
-       padding-bottom: 0.25em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-}
-.oo-ui-menuSelectWidget input {
-       position: absolute;
-       width: 0;
-       height: 0;
-       overflow: hidden;
-       opacity: 0;
-}
-.oo-ui-menuOptionWidget {
-       position: relative;
-       padding: 0.5em 1em;
-}
-.oo-ui-menuOptionWidget .oo-ui-iconElement-icon {
-       display: none;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected {
-       background-color: transparent;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-       display: block;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected {
-       background-color: #999999;
-       color: #ffffff;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-selected .oo-ui-iconElement-icon {
-       display: none;
-}
-.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted {
-       background-color: #eeeeee;
-       color: black;
-}
-.oo-ui-menuSectionOptionWidget {
-       cursor: default;
-       padding: 0.33em 0.75em;
-       color: #888888;
-}
-.oo-ui-dropdownWidget {
-       display: inline-block;
-       position: relative;
-       margin: 0.25em 0;
-       width: 100%;
-       max-width: 50em;
-       margin-right: 0.5em;
-}
-.oo-ui-dropdownWidget-handle {
-       width: 100%;
-       display: inline-block;
-       cursor: pointer;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
-       position: absolute;
-       background-position: center center;
-       background-repeat: no-repeat;
-}
-.oo-ui-dropdownWidget > .oo-ui-menuSelectWidget {
-       z-index: 1;
-       width: 100%;
-}
-.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
-       cursor: default;
-}
-.oo-ui-dropdownWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-dropdownWidget-handle {
-       height: 2.5em;
-       border: 1px solid #cccccc;
-       border-radius: 0.1em;
-}
-.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
-       right: 0;
-}
-.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
-       left: 0.25em;
-}
-.oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
-       line-height: 2.5em;
-       margin: 0 1em;
-}
-.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
-       top: 0;
-       width: 0.9375em;
-       height: 0.9375em;
-       margin: 0.775em;
-}
-.oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
-       top: 0;
-       width: 1.875em;
-       height: 1.875em;
-       margin: 0.3em;
-}
-.oo-ui-dropdownWidget:hover .oo-ui-dropdownWidget-handle {
-       border-color: #aaaaaa;
-}
-.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle {
-       color: #cccccc;
-       text-shadow: 0 1px 1px #ffffff;
-       border-color: #dddddd;
-       background-color: #f3f3f3;
-}
-.oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-indicatorElement-indicator {
-       opacity: 0.2;
-}
-.oo-ui-dropdownWidget.oo-ui-iconElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
-       margin-left: 3em;
-}
-.oo-ui-dropdownWidget.oo-ui-indicatorElement .oo-ui-dropdownWidget-handle .oo-ui-labelElement-label {
-       margin-right: 2em;
-}
-.oo-ui-dropdownWidget .oo-ui-selectWidget {
-       border-top-color: #ffffff;
-}
-.oo-ui-outlineOptionWidget {
-       position: relative;
-       cursor: pointer;
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-       font-size: 1.1em;
-       padding: 0.75em;
-}
-.oo-ui-outlineOptionWidget.oo-ui-indicatorElement .oo-ui-labelElement-label {
-       padding-right: 1.5em;
-}
-.oo-ui-outlineOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       opacity: 0.5;
-}
-.oo-ui-outlineOptionWidget-level-0 {
-       padding-left: 3.5em;
-}
-.oo-ui-outlineOptionWidget-level-0 .oo-ui-iconElement-icon {
-       left: 1em;
-}
-.oo-ui-outlineOptionWidget-level-1 {
-       padding-left: 5em;
-}
-.oo-ui-outlineOptionWidget-level-1 .oo-ui-iconElement-icon {
-       left: 2.5em;
-}
-.oo-ui-outlineOptionWidget-level-2 {
-       padding-left: 6.5em;
-}
-.oo-ui-outlineOptionWidget-level-2 .oo-ui-iconElement-icon {
-       left: 4em;
-}
-.oo-ui-selectWidget-depressed .oo-ui-outlineOptionWidget.oo-ui-optionWidget-selected {
-       background-color: #d0d0d0;
-       text-shadow: 0 1px 1px #ffffff;
-}
-.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-important {
-       font-weight: bold;
-}
-.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-placeholder {
-       font-style: italic;
-}
-.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-empty .oo-ui-iconElement-icon {
-       opacity: 0.5;
-}
-.oo-ui-outlineOptionWidget.oo-ui-flaggedElement-empty .oo-ui-labelElement-label {
-       color: #777777;
-}
-.oo-ui-outlineControlsWidget {
-       height: 3em;
-       background-color: #ffffff;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-       float: left;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-       float: left;
-       background-position: right center;
-       background-repeat: no-repeat;
-}
-.oo-ui-outlineControlsWidget-items {
-       float: left;
-}
-.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
-       float: left;
-}
-.oo-ui-outlineControlsWidget-movers {
-       float: right;
-}
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
-       float: right;
-}
-.oo-ui-outlineControlsWidget-items,
-.oo-ui-outlineControlsWidget-movers {
-       height: 2em;
-       margin: 0.5em 0.5em 0.5em 0;
-       padding: 0;
-}
-.oo-ui-outlineControlsWidget > .oo-ui-iconElement-icon {
-       width: 1.5em;
-       height: 2em;
-       margin: 0.5em 0 0.5em 0.5em;
-       opacity: 0.2;
-}
-.oo-ui-comboBoxWidget {
-       display: inline-block;
-       position: relative;
-       width: 100%;
-       max-width: 50em;
-       margin-right: 0.5em;
-}
-.oo-ui-comboBoxWidget > .oo-ui-menuSelectWidget {
-       z-index: 1;
-       width: 100%;
-}
-.oo-ui-comboBoxWidget:last-child {
-       margin-right: 0;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget input,
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
-       height: 2.35em;
-}
-.oo-ui-searchWidget-query {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-       width: 100%;
-}
-.oo-ui-searchWidget-results {
-       position: absolute;
-       bottom: 0;
-       left: 0;
-       right: 0;
-       overflow-x: hidden;
-       overflow-y: auto;
-}
-.oo-ui-searchWidget-query {
-       height: 4em;
-       padding: 0 1em;
-       border-bottom: 1px solid #cccccc;
-}
-.oo-ui-searchWidget-query .oo-ui-textInputWidget {
-       margin: 0.75em 0;
-}
-.oo-ui-searchWidget-results {
-       top: 4em;
-       padding: 1em;
-       line-height: 0;
-}
-.oo-ui-window {
-       background: transparent;
-       font-size: 0.8em;
-}
-.oo-ui-window-frame {
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-window-content:focus {
-       outline: none;
-}
-.oo-ui-window-head,
-.oo-ui-window-foot {
-       -webkit-touch-callout: none;
-       -webkit-user-select: none;
-          -moz-user-select: none;
-           -ms-user-select: none;
-               user-select: none;
-}
-.oo-ui-window-body {
-       margin: 0;
-       padding: 0;
-       background: none;
-}
-.oo-ui-window-overlay {
-       position: absolute;
-       top: 0;
-       /* @noflip */
-       left: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-head,
-.oo-ui-dialog-content > .oo-ui-window-body,
-.oo-ui-dialog-content > .oo-ui-window-foot {
-       position: absolute;
-       left: 0;
-       right: 0;
-       overflow: hidden;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
-.oo-ui-dialog-content > .oo-ui-window-head {
-       z-index: 1;
-       top: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-       z-index: 2;
-       top: 0;
-       bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-foot {
-       z-index: 1;
-       bottom: 0;
-}
-.oo-ui-dialog-content > .oo-ui-window-body {
-       outline: 1px solid #aaaaaa;
-}
-.oo-ui-messageDialog-actions-horizontal {
-       display: table;
-       table-layout: fixed;
-       width: 100%;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-       display: table-cell;
-       width: 1%;
-}
-.oo-ui-messageDialog-actions-vertical {
-       display: block;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-       display: block;
-       overflow: hidden;
-       text-overflow: ellipsis;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-       position: relative;
-       text-align: center;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       display: block;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget .oo-ui-labelElement-label {
-       position: relative;
-       top: auto;
-       bottom: auto;
-       display: inline;
-       white-space: nowrap;
-}
-.oo-ui-messageDialog-title,
-.oo-ui-messageDialog-message {
-       display: block;
-       text-align: center;
-       padding-top: 0.5em;
-}
-.oo-ui-messageDialog-title {
-       font-size: 1.5em;
-       line-height: 1em;
-       color: #000000;
-}
-.oo-ui-messageDialog-message {
-       font-size: 0.9em;
-       line-height: 1.25em;
-       color: #666666;
-}
-.oo-ui-messageDialog-message-verbose {
-       font-size: 1.1em;
-       line-height: 1.5em;
-       text-align: left;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-       border-right: 1px solid #e5e5e5;
-}
-.oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
-       border-right-width: 0;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-       border-bottom: 1px solid #e5e5e5;
-}
-.oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
-       border-bottom-width: 0;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget {
-       height: 3.4em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-labelElement .oo-ui-labelElement-label {
-       text-align: center;
-       line-height: 3.4em;
-       padding: 0 2em;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:hover {
-       background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget:active {
-       background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
-       background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active {
-       background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label {
-       font-weight: bold;
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-       background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-       background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-       background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-messageDialog-actions .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-       background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog-location {
-       overflow: hidden;
-       text-overflow: ellipsis;
-       white-space: nowrap;
-}
-.oo-ui-processDialog-title {
-       display: inline;
-       padding: 0;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget {
-       white-space: nowrap;
-}
-.oo-ui-processDialog-actions-safe,
-.oo-ui-processDialog-actions-primary {
-       position: absolute;
-       top: 0;
-       bottom: 0;
-}
-.oo-ui-processDialog-actions-safe {
-       left: 0;
-}
-.oo-ui-processDialog-actions-primary {
-       right: 0;
-}
-.oo-ui-processDialog-errors {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-       z-index: 2;
-       overflow-x: hidden;
-       overflow-y: auto;
-}
-.oo-ui-processDialog-content .oo-ui-window-head {
-       height: 3.4em;
-}
-.oo-ui-processDialog-content .oo-ui-window-head.oo-ui-pendingElement-pending {
-       background-image: /* @embed */ url(themes/mediawiki/images/textures/pending.gif);
-}
-.oo-ui-processDialog-content .oo-ui-window-body {
-       top: 3.4em;
-       outline: 1px solid rgba(0, 0, 0, 0.2);
-}
-.oo-ui-processDialog-navigation {
-       position: relative;
-       height: 3.4em;
-       padding: 0 1em;
-}
-.oo-ui-processDialog-location {
-       padding: 0.75em 0;
-       height: 1.875em;
-       cursor: default;
-       text-align: center;
-}
-.oo-ui-processDialog-title {
-       font-weight: bold;
-       line-height: 1.875em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       min-width: 1.875em;
-       min-height: 1.875em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-       line-height: 1.875em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
-       margin-top: -0.125em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em 0 0.75em 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       padding: 0 1em;
-       vertical-align: middle;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
-       background-color: rgba(0, 0, 0, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
-       background-color: rgba(0, 0, 0, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       /* Adjust for border so text aligns with title */
-       margin: -1px;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
-       background-color: rgba(8, 126, 204, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:active {
-       background-color: rgba(8, 126, 204, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive .oo-ui-labelElement-label {
-       font-weight: bold;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:hover {
-       background-color: rgba(118, 171, 54, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-constructive:active {
-       background-color: rgba(118, 171, 54, 0.1);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:hover {
-       background-color: rgba(212, 83, 83, 0.05);
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
-       background-color: rgba(212, 83, 83, 0.1);
-}
-.oo-ui-processDialog > .oo-ui-window-frame {
-       min-height: 5em;
-}
-.oo-ui-processDialog-errors {
-       background-color: rgba(255, 255, 255, 0.9);
-       padding: 3em 3em 1.5em 3em;
-       text-align: center;
-}
-.oo-ui-processDialog-errors .oo-ui-buttonWidget {
-       margin: 2em 1em 2em 1em;
-}
-.oo-ui-processDialog-errors-title {
-       font-size: 1.5em;
-       color: #000000;
-       margin-bottom: 2em;
-}
-.oo-ui-processDialog-error {
-       text-align: left;
-       margin: 1em;
-       padding: 1em;
-       border: 1px solid #ff9e9e;
-       background-color: #fff7f7;
-       border-radius: 0.25em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-       position: fixed;
-       width: 0;
-       height: 0;
-       overflow: hidden;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-active {
-       width: auto;
-       height: auto;
-       top: 0;
-       right: 0;
-       bottom: 0;
-       left: 0;
-       padding: 1em;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
-       position: absolute;
-       right: 0;
-       left: 0;
-       margin: auto;
-       overflow: hidden;
-       max-width: 100%;
-       max-height: 100%;
-}
-.oo-ui-windowManager-fullscreen > .oo-ui-dialog > .oo-ui-window-frame {
-       width: 100%;
-       height: 100%;
-       top: 0;
-       bottom: 0;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog {
-       background-color: rgba(255, 255, 255, 0.5);
-       opacity: 0;
-       -webkit-transition: opacity 250ms ease-in-out;
-          -moz-transition: opacity 250ms ease-in-out;
-           -ms-transition: opacity 250ms ease-in-out;
-            -o-transition: opacity 250ms ease-in-out;
-               transition: opacity 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog > .oo-ui-window-frame {
-       top: 1em;
-       bottom: 1em;
-       background-color: #ffffff;
-       opacity: 0;
-       -webkit-transform: scale(0.5);
-          -moz-transform: scale(0.5);
-           -ms-transform: scale(0.5);
-            -o-transform: scale(0.5);
-               transform: scale(0.5);
-       -webkit-transition: all 250ms ease-in-out;
-          -moz-transition: all 250ms ease-in-out;
-           -ms-transition: all 250ms ease-in-out;
-            -o-transition: all 250ms ease-in-out;
-               transition: all 250ms ease-in-out;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
-       /* Fade window overlay */
-       opacity: 1;
-}
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
-       /* Fade frame */
-       opacity: 1;
-       -webkit-transform: scale(1);
-          -moz-transform: scale(1);
-           -ms-transform: scale(1);
-            -o-transform: scale(1);
-               transform: scale(1);
-}
-.oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-       border: 1px solid #aaaaaa;
-       border-radius: 0.2em;
-       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-icon-add {
-       background-image: url("themes/mediawiki/images/icons/add.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/add.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-add,
-.oo-ui-image-constructive.oo-ui-icon-add {
-       background-image: url("themes/mediawiki/images/icons/add-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/add-constructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-add,
-.oo-ui-image-invert.oo-ui-icon-add {
-       background-image: url("themes/mediawiki/images/icons/add-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/add-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/add-invert.png");
-}
-.oo-ui-icon-advanced {
-       background-image: url("themes/mediawiki/images/icons/advanced.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/advanced.png");
-}
-.oo-ui-image-invert .oo-ui-icon-advanced,
-.oo-ui-image-invert.oo-ui-icon-advanced {
-       background-image: url("themes/mediawiki/images/icons/advanced-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/advanced-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/advanced-invert.png");
-}
-.oo-ui-icon-alert {
-       background-image: url("themes/mediawiki/images/icons/alert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert.png");
-}
-.oo-ui-image-warning .oo-ui-icon-alert,
-.oo-ui-image-warning.oo-ui-icon-alert {
-       background-image: url("themes/mediawiki/images/icons/alert-warning.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-warning.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-warning.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert-warning.png");
-}
-.oo-ui-image-invert .oo-ui-icon-alert,
-.oo-ui-image-invert.oo-ui-icon-alert {
-       background-image: url("themes/mediawiki/images/icons/alert-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert-invert.png");
-}
-.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-check,
-.oo-ui-image-constructive.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-constructive.png");
-}
-.oo-ui-image-progressive .oo-ui-icon-check,
-.oo-ui-image-progressive.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check-progressive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-progressive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-progressive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-progressive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-check,
-.oo-ui-image-invert.oo-ui-icon-check {
-       background-image: url("themes/mediawiki/images/icons/check-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-invert.png");
-}
-.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-circle,
-.oo-ui-image-constructive.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-constructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-circle,
-.oo-ui-image-invert.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-invert.png");
-}
-.oo-ui-icon-clear {
-       background-image: url("themes/mediawiki/images/icons/clear.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clear.png");
-}
-.oo-ui-image-invert .oo-ui-icon-clear,
-.oo-ui-image-invert.oo-ui-icon-clear {
-       background-image: url("themes/mediawiki/images/icons/clear-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clear-invert.png");
-}
-.oo-ui-icon-close {
-       background-image: url("themes/mediawiki/images/icons/close-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-close,
-.oo-ui-image-invert.oo-ui-icon-close {
-       background-image: url("themes/mediawiki/images/icons/close-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-ltr-invert.png");
-}
-.oo-ui-icon-code {
-       background-image: url("themes/mediawiki/images/icons/code.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/code.png");
-}
-.oo-ui-image-invert .oo-ui-icon-code,
-.oo-ui-image-invert.oo-ui-icon-code {
-       background-image: url("themes/mediawiki/images/icons/code-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/code-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/code-invert.png");
-}
-.oo-ui-icon-collapse {
-       background-image: url("themes/mediawiki/images/icons/collapse.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/collapse.png");
-}
-.oo-ui-image-invert .oo-ui-icon-collapse,
-.oo-ui-image-invert.oo-ui-icon-collapse {
-       background-image: url("themes/mediawiki/images/icons/collapse-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/collapse-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/collapse-invert.png");
-}
-.oo-ui-icon-comment {
-       background-image: url("themes/mediawiki/images/icons/comment.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/comment.png");
-}
-.oo-ui-image-invert .oo-ui-icon-comment,
-.oo-ui-image-invert.oo-ui-icon-comment {
-       background-image: url("themes/mediawiki/images/icons/comment-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/comment-invert.png");
-}
-.oo-ui-icon-ellipsis {
-       background-image: url("themes/mediawiki/images/icons/ellipsis.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ellipsis.png");
-}
-.oo-ui-image-invert .oo-ui-icon-ellipsis,
-.oo-ui-image-invert.oo-ui-icon-ellipsis {
-       background-image: url("themes/mediawiki/images/icons/ellipsis-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ellipsis-invert.png");
-}
-.oo-ui-icon-expand {
-       background-image: url("themes/mediawiki/images/icons/expand.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/expand.png");
-}
-.oo-ui-image-invert .oo-ui-icon-expand,
-.oo-ui-image-invert.oo-ui-icon-expand {
-       background-image: url("themes/mediawiki/images/icons/expand-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/expand-invert.png");
-}
-.oo-ui-icon-help {
-       background-image: url("themes/mediawiki/images/icons/help-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr.png");
-}
-/* @noflip */
-.oo-ui-icon-help:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr.png");
-}
-/* @noflip */
-.oo-ui-icon-help:lang(yi) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-help,
-.oo-ui-image-invert.oo-ui-icon-help {
-       background-image: url("themes/mediawiki/images/icons/help-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr-invert.png");
-}
-/* @noflip */
-.oo-ui-image-invert .oo-ui-icon-help:lang(he),
-.oo-ui-image-invert.oo-ui-icon-help:lang(he) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr-invert.png");
-}
-/* @noflip */
-.oo-ui-image-invert .oo-ui-icon-help:lang(yi),
-.oo-ui-image-invert.oo-ui-icon-help:lang(yi) {
-       background-image: url("themes/mediawiki/images/icons/help-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/help-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/help-ltr-invert.png");
-}
-.oo-ui-icon-history {
-       background-image: url("themes/mediawiki/images/icons/history.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/history.png");
-}
-.oo-ui-image-invert .oo-ui-icon-history,
-.oo-ui-image-invert.oo-ui-icon-history {
-       background-image: url("themes/mediawiki/images/icons/history-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/history-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/history-invert.png");
-}
-.oo-ui-icon-info {
-       background-image: url("themes/mediawiki/images/icons/info.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/info.png");
-}
-.oo-ui-image-invert .oo-ui-icon-info,
-.oo-ui-image-invert.oo-ui-icon-info {
-       background-image: url("themes/mediawiki/images/icons/info-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/info-invert.png");
-}
-.oo-ui-icon-menu {
-       background-image: url("themes/mediawiki/images/icons/menu.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/menu.png");
-}
-.oo-ui-image-invert .oo-ui-icon-menu,
-.oo-ui-image-invert.oo-ui-icon-menu {
-       background-image: url("themes/mediawiki/images/icons/menu-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/menu-invert.png");
-}
-.oo-ui-icon-next {
-       background-image: url("themes/mediawiki/images/icons/move-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-next,
-.oo-ui-image-invert.oo-ui-icon-next {
-       background-image: url("themes/mediawiki/images/icons/move-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-ltr-invert.png");
-}
-.oo-ui-icon-picture {
-       background-image: url("themes/mediawiki/images/icons/picture.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/picture.png");
-}
-.oo-ui-image-invert .oo-ui-icon-picture,
-.oo-ui-image-invert.oo-ui-icon-picture {
-       background-image: url("themes/mediawiki/images/icons/picture-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/picture-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/picture-invert.png");
-}
-.oo-ui-icon-previous {
-       background-image: url("themes/mediawiki/images/icons/move-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-rtl.png");
-}
-.oo-ui-image-invert .oo-ui-icon-previous,
-.oo-ui-image-invert.oo-ui-icon-previous {
-       background-image: url("themes/mediawiki/images/icons/move-rtl-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-rtl-invert.png");
-}
-.oo-ui-icon-redo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-icon-redo,
-.oo-ui-image-invert.oo-ui-icon-redo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-ltr-invert.png");
-}
-.oo-ui-icon-remove {
-       background-image: url("themes/mediawiki/images/icons/remove.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/remove.png");
-}
-.oo-ui-image-destructive .oo-ui-icon-remove,
-.oo-ui-image-destructive.oo-ui-icon-remove {
-       background-image: url("themes/mediawiki/images/icons/remove-destructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-destructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-destructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/remove-destructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-remove,
-.oo-ui-image-invert.oo-ui-icon-remove {
-       background-image: url("themes/mediawiki/images/icons/remove-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/remove-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/remove-invert.png");
-}
-.oo-ui-icon-search {
-       background-image: url("themes/mediawiki/images/icons/search.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/search.png");
-}
-.oo-ui-image-invert .oo-ui-icon-search,
-.oo-ui-image-invert.oo-ui-icon-search {
-       background-image: url("themes/mediawiki/images/icons/search-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/search-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/search-invert.png");
-}
-.oo-ui-icon-settings {
-       background-image: url("themes/mediawiki/images/icons/settings.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/settings.png");
-}
-.oo-ui-image-invert .oo-ui-icon-settings,
-.oo-ui-image-invert.oo-ui-icon-settings {
-       background-image: url("themes/mediawiki/images/icons/settings-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/settings-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/settings-invert.png");
-}
-.oo-ui-icon-tag {
-       background-image: url("themes/mediawiki/images/icons/tag.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/tag.png");
-}
-.oo-ui-image-invert .oo-ui-icon-tag,
-.oo-ui-image-invert.oo-ui-icon-tag {
-       background-image: url("themes/mediawiki/images/icons/tag-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/tag-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/tag-invert.png");
-}
-.oo-ui-icon-undo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-rtl.png");
-}
-.oo-ui-image-invert .oo-ui-icon-undo,
-.oo-ui-image-invert.oo-ui-icon-undo {
-       background-image: url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arched-arrow-rtl-invert.png");
-}
-.oo-ui-icon-window {
-       background-image: url("themes/mediawiki/images/icons/window.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/window.png");
-}
-.oo-ui-image-invert .oo-ui-icon-window,
-.oo-ui-image-invert.oo-ui-icon-window {
-       background-image: url("themes/mediawiki/images/icons/window-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/window-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/window-invert.png");
-}
-
-.oo-ui-indicator-alert {
-       background-image: url("themes/mediawiki/images/indicators/alert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/alert.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-alert,
-.oo-ui-image-invert.oo-ui-indicator-alert {
-       background-image: url("themes/mediawiki/images/indicators/alert-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/alert-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/alert-invert.png");
-}
-.oo-ui-indicator-up {
-       background-image: url("themes/mediawiki/images/indicators/arrow-up.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-up.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-up,
-.oo-ui-image-invert.oo-ui-indicator-up {
-       background-image: url("themes/mediawiki/images/indicators/arrow-up-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-up-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-up-invert.png");
-}
-.oo-ui-indicator-down {
-       background-image: url("themes/mediawiki/images/indicators/arrow-down.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-down.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-down,
-.oo-ui-image-invert.oo-ui-indicator-down {
-       background-image: url("themes/mediawiki/images/indicators/arrow-down-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-down-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-down-invert.png");
-}
-.oo-ui-indicator-next {
-       background-image: url("themes/mediawiki/images/indicators/arrow-ltr.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-ltr.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-next,
-.oo-ui-image-invert.oo-ui-indicator-next {
-       background-image: url("themes/mediawiki/images/indicators/arrow-ltr-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-ltr-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-ltr-invert.png");
-}
-.oo-ui-indicator-previous {
-       background-image: url("themes/mediawiki/images/indicators/arrow-rtl.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-rtl.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-previous,
-.oo-ui-image-invert.oo-ui-indicator-previous {
-       background-image: url("themes/mediawiki/images/indicators/arrow-rtl-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/arrow-rtl-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/arrow-rtl-invert.png");
-}
-.oo-ui-indicator-required {
-       background-image: url("themes/mediawiki/images/indicators/required.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/required.png");
-}
-.oo-ui-image-invert .oo-ui-indicator-required,
-.oo-ui-image-invert.oo-ui-indicator-required {
-       background-image: url("themes/mediawiki/images/indicators/required-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/indicators/required-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/indicators/required-invert.png");
-}
-
-.oo-ui-texture-pending {
-       background-image: url("themes/mediawiki/images/textures/pending.gif");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/pending.gif");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/pending.gif");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/textures/pending.gif");
-}
-.oo-ui-texture-transparency {
-       background-image: url("themes/mediawiki/images/textures/transparency.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/transparency.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/textures/transparency.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/textures/transparency.png");
-}
index a03734a..7d346bb 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.0
+ * OOjs UI v0.10.1
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-04-23T00:54:26Z
+ * Date: 2015-04-27T17:17:10Z
  */
 /**
  * @class
index 1011949..f836042 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.10.0
+ * OOjs UI v0.10.1
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-04-23T00:54:26Z
+ * Date: 2015-04-27T17:17:10Z
  */
 ( function ( OO ) {
 
@@ -1809,7 +1809,7 @@ OO.ui.Window = function OoUiWindow( config ) {
        this.$overlay.addClass( 'oo-ui-window-overlay' );
        this.$content
                .addClass( 'oo-ui-window-content' )
-               .attr( 'tabIndex', 0 );
+               .attr( 'tabindex', 0 );
        this.$frame
                .addClass( 'oo-ui-window-frame' )
                .append( this.$content );
@@ -6399,6 +6399,7 @@ OO.ui.ClippableElement.prototype.clip = function () {
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconElement
  * @mixins OO.ui.FlaggedElement
+ * @mixins OO.ui.TabIndexedElement
  *
  * @constructor
  * @param {OO.ui.ToolGroup} toolGroup
@@ -6418,10 +6419,6 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        // Parent constructor
        OO.ui.Tool.super.call( this, config );
 
-       // Mixin constructors
-       OO.ui.IconElement.call( this, config );
-       OO.ui.FlaggedElement.call( this, config );
-
        // Properties
        this.toolGroup = toolGroup;
        this.toolbar = this.toolGroup.getToolbar();
@@ -6431,6 +6428,11 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.$link = $( '<a>' );
        this.title = null;
 
+       // Mixin constructors
+       OO.ui.IconElement.call( this, config );
+       OO.ui.FlaggedElement.call( this, config );
+       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$link } ) );
+
        // Events
        this.toolbar.connect( this, { updateState: 'onUpdateState' } );
 
@@ -6447,7 +6449,6 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        this.$link
                .addClass( 'oo-ui-tool-link' )
                .append( this.$icon, this.$title, this.$accel )
-               .prop( 'tabIndex', 0 )
                .attr( 'role', 'button' );
        this.$element
                .data( 'oo-ui-tool', this )
@@ -6464,6 +6465,7 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
 OO.inheritClass( OO.ui.Tool, OO.ui.Widget );
 OO.mixinClass( OO.ui.Tool, OO.ui.IconElement );
 OO.mixinClass( OO.ui.Tool, OO.ui.FlaggedElement );
+OO.mixinClass( OO.ui.Tool, OO.ui.TabIndexedElement );
 
 /* Events */
 
@@ -6830,7 +6832,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        // Events
        this.$element
                .add( this.$bar ).add( this.$group ).add( this.$actions )
-               .on( 'mousedown', this.onPointerDown.bind( this ) );
+               .on( 'mousedown keydown', this.onPointerDown.bind( this ) );
 
        // Initialization
        this.$group.addClass( 'oo-ui-toolbar-tools' );
@@ -7065,14 +7067,18 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        this.exclude = config.exclude || [];
        this.promote = config.promote || [];
        this.demote = config.demote || [];
-       this.onCapturedMouseUpHandler = this.onCapturedMouseUp.bind( this );
+       this.onCapturedMouseKeyUpHandler = this.onCapturedMouseKeyUp.bind( this );
 
        // Events
        this.$element.on( {
-               mousedown: this.onPointerDown.bind( this ),
-               mouseup: this.onPointerUp.bind( this ),
-               mouseover: this.onMouseOver.bind( this ),
-               mouseout: this.onMouseOut.bind( this )
+               mousedown: this.onMouseKeyDown.bind( this ),
+               mouseup: this.onMouseKeyUp.bind( this ),
+               keydown: this.onMouseKeyDown.bind( this ),
+               keyup: this.onMouseKeyUp.bind( this ),
+               focus: this.onMouseOverFocus.bind( this ),
+               blur: this.onMouseOutBlur.bind( this ),
+               mouseover: this.onMouseOverFocus.bind( this ),
+               mouseout: this.onMouseOutBlur.bind( this )
        } );
        this.toolbar.getToolFactory().connect( this, { register: 'onToolFactoryRegister' } );
        this.aggregate( { disable: 'itemDisable' } );
@@ -7155,57 +7161,64 @@ OO.ui.ToolGroup.prototype.updateDisabled = function () {
 };
 
 /**
- * Handle mouse down events.
+ * Handle mouse down and key down events.
  *
- * @param {jQuery.Event} e Mouse down event
+ * @param {jQuery.Event} e Mouse down or key down event
  */
-OO.ui.ToolGroup.prototype.onPointerDown = function ( e ) {
-       if ( !this.isDisabled() && e.which === 1 ) {
+OO.ui.ToolGroup.prototype.onMouseKeyDown = function ( e ) {
+       if (
+               !this.isDisabled() &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.pressed = this.getTargetTool( e );
                if ( this.pressed ) {
                        this.pressed.setActive( true );
-                       this.getElementDocument().addEventListener(
-                               'mouseup', this.onCapturedMouseUpHandler, true
-                       );
+                       this.getElementDocument().addEventListener( 'mouseup', this.onCapturedMouseKeyUpHandler, true );
+                       this.getElementDocument().addEventListener( 'keyup', this.onCapturedMouseKeyUpHandler, true );
                }
+               return false;
        }
-       return false;
 };
 
 /**
- * Handle captured mouse up events.
+ * Handle captured mouse up and key up events.
  *
- * @param {Event} e Mouse up event
+ * @param {Event} e Mouse up or key up event
  */
-OO.ui.ToolGroup.prototype.onCapturedMouseUp = function ( e ) {
-       this.getElementDocument().removeEventListener( 'mouseup', this.onCapturedMouseUpHandler, true );
-       // onPointerUp may be called a second time, depending on where the mouse is when the button is
+OO.ui.ToolGroup.prototype.onCapturedMouseKeyUp = function ( e ) {
+       this.getElementDocument().removeEventListener( 'mouseup', this.onCapturedMouseKeyUpHandler, true );
+       this.getElementDocument().removeEventListener( 'keyup', this.onCapturedMouseKeyUpHandler, true );
+       // onMouseKeyUp may be called a second time, depending on where the mouse is when the button is
        // released, but since `this.pressed` will no longer be true, the second call will be ignored.
-       this.onPointerUp( e );
+       this.onMouseKeyUp( e );
 };
 
 /**
- * Handle mouse up events.
+ * Handle mouse up and key up events.
  *
- * @param {jQuery.Event} e Mouse up event
+ * @param {jQuery.Event} e Mouse up or key up event
  */
-OO.ui.ToolGroup.prototype.onPointerUp = function ( e ) {
+OO.ui.ToolGroup.prototype.onMouseKeyUp = function ( e ) {
        var tool = this.getTargetTool( e );
 
-       if ( !this.isDisabled() && e.which === 1 && this.pressed && this.pressed === tool ) {
+       if (
+               !this.isDisabled() && this.pressed && this.pressed === tool &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.pressed.onSelect();
+               this.pressed = null;
+               return false;
        }
 
        this.pressed = null;
-       return false;
 };
 
 /**
- * Handle mouse over events.
+ * Handle mouse over and focus events.
  *
- * @param {jQuery.Event} e Mouse over event
+ * @param {jQuery.Event} e Mouse over or focus event
  */
-OO.ui.ToolGroup.prototype.onMouseOver = function ( e ) {
+OO.ui.ToolGroup.prototype.onMouseOverFocus = function ( e ) {
        var tool = this.getTargetTool( e );
 
        if ( this.pressed && this.pressed === tool ) {
@@ -7214,11 +7227,11 @@ OO.ui.ToolGroup.prototype.onMouseOver = function ( e ) {
 };
 
 /**
- * Handle mouse out events.
+ * Handle mouse out and blur events.
  *
- * @param {jQuery.Event} e Mouse out event
+ * @param {jQuery.Event} e Mouse out or blur event
  */
-OO.ui.ToolGroup.prototype.onMouseOut = function ( e ) {
+OO.ui.ToolGroup.prototype.onMouseOutBlur = function ( e ) {
        var tool = this.getTargetTool( e );
 
        if ( this.pressed && this.pressed === tool ) {
@@ -9575,6 +9588,7 @@ OO.ui.BarToolGroup.static.name = 'bar';
  * @mixins OO.ui.LabelElement
  * @mixins OO.ui.TitledElement
  * @mixins OO.ui.ClippableElement
+ * @mixins OO.ui.TabIndexedElement
  *
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
@@ -9594,23 +9608,26 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        // Parent constructor
        OO.ui.PopupToolGroup.super.call( this, toolbar, config );
 
+       // Properties
+       this.active = false;
+       this.dragging = false;
+       this.onBlurHandler = this.onBlur.bind( this );
+       this.$handle = $( '<span>' );
+
        // Mixin constructors
        OO.ui.IconElement.call( this, config );
        OO.ui.IndicatorElement.call( this, config );
        OO.ui.LabelElement.call( this, config );
        OO.ui.TitledElement.call( this, config );
        OO.ui.ClippableElement.call( this, $.extend( {}, config, { $clippable: this.$group } ) );
-
-       // Properties
-       this.active = false;
-       this.dragging = false;
-       this.onBlurHandler = this.onBlur.bind( this );
-       this.$handle = $( '<span>' );
+       OO.ui.TabIndexedElement.call( this, $.extend( {}, config, { $tabIndexed: this.$handle } ) );
 
        // Events
        this.$handle.on( {
-               mousedown: this.onHandlePointerDown.bind( this ),
-               mouseup: this.onHandlePointerUp.bind( this )
+               keydown: this.onHandleMouseKeyDown.bind( this ),
+               keyup: this.onHandleMouseKeyUp.bind( this ),
+               mousedown: this.onHandleMouseKeyDown.bind( this ),
+               mouseup: this.onHandleMouseKeyUp.bind( this )
        } );
 
        // Initialization
@@ -9640,6 +9657,7 @@ OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.IndicatorElement );
 OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.LabelElement );
 OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.TitledElement );
 OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.ClippableElement );
+OO.mixinClass( OO.ui.PopupToolGroup, OO.ui.TabIndexedElement );
 
 /* Static Properties */
 
@@ -9660,9 +9678,9 @@ OO.ui.PopupToolGroup.prototype.setDisabled = function () {
 /**
  * Handle focus being lost.
  *
- * The event is actually generated from a mouseup, so it is not a normal blur event object.
+ * The event is actually generated from a mouseup/keyup, so it is not a normal blur event object.
  *
- * @param {jQuery.Event} e Mouse up event
+ * @param {jQuery.Event} e Mouse up or key up event
  */
 OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
        // Only deactivate when clicking outside the dropdown element
@@ -9674,33 +9692,44 @@ OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
 /**
  * @inheritdoc
  */
-OO.ui.PopupToolGroup.prototype.onPointerUp = function ( e ) {
+OO.ui.PopupToolGroup.prototype.onMouseKeyUp = function ( e ) {
        // Only close toolgroup when a tool was actually selected
-       if ( !this.isDisabled() && e.which === 1 && this.pressed && this.pressed === this.getTargetTool( e ) ) {
+       if (
+               !this.isDisabled() && this.pressed && this.pressed === this.getTargetTool( e ) &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.setActive( false );
        }
-       return OO.ui.PopupToolGroup.super.prototype.onPointerUp.call( this, e );
+       return OO.ui.PopupToolGroup.super.prototype.onMouseKeyUp.call( this, e );
 };
 
 /**
- * Handle mouse up events.
+ * Handle mouse up and key up events.
  *
- * @param {jQuery.Event} e Mouse up event
+ * @param {jQuery.Event} e Mouse up or key up event
  */
-OO.ui.PopupToolGroup.prototype.onHandlePointerUp = function () {
-       return false;
+OO.ui.PopupToolGroup.prototype.onHandleMouseKeyUp = function ( e ) {
+       if (
+               !this.isDisabled() &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
+               return false;
+       }
 };
 
 /**
- * Handle mouse down events.
+ * Handle mouse down and key down events.
  *
- * @param {jQuery.Event} e Mouse down event
+ * @param {jQuery.Event} e Mouse down or key down event
  */
-OO.ui.PopupToolGroup.prototype.onHandlePointerDown = function ( e ) {
-       if ( !this.isDisabled() && e.which === 1 ) {
+OO.ui.PopupToolGroup.prototype.onHandleMouseKeyDown = function ( e ) {
+       if (
+               !this.isDisabled() &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
                this.setActive( !this.active );
+               return false;
        }
-       return false;
 };
 
 /**
@@ -9714,6 +9743,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
                this.active = value;
                if ( value ) {
                        this.getElementDocument().addEventListener( 'mouseup', this.onBlurHandler, true );
+                       this.getElementDocument().addEventListener( 'keyup', this.onBlurHandler, true );
 
                        // Try anchoring the popup to the left first
                        this.$element.addClass( 'oo-ui-popupToolGroup-active oo-ui-popupToolGroup-left' );
@@ -9728,6 +9758,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
                        }
                } else {
                        this.getElementDocument().removeEventListener( 'mouseup', this.onBlurHandler, true );
+                       this.getElementDocument().removeEventListener( 'keyup', this.onBlurHandler, true );
                        this.$element.removeClass(
                                'oo-ui-popupToolGroup-active oo-ui-popupToolGroup-left  oo-ui-popupToolGroup-right'
                        );
@@ -9846,16 +9877,18 @@ OO.ui.ListToolGroup.prototype.getExpandCollapseTool = function () {
 /**
  * @inheritdoc
  */
-OO.ui.ListToolGroup.prototype.onPointerUp = function ( e ) {
-       var ret = OO.ui.ListToolGroup.super.prototype.onPointerUp.call( this, e );
-
+OO.ui.ListToolGroup.prototype.onMouseKeyUp = function ( e ) {
        // Do not close the popup when the user wants to show more/fewer tools
-       if ( $( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length ) {
-               // Prevent the popup list from being hidden
-               this.setActive( true );
+       if (
+               $( e.target ).closest( '.oo-ui-tool-name-more-fewer' ).length &&
+               ( e.which === 1 || e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER )
+       ) {
+               // HACK: Prevent the popup list from being hidden. Skip the PopupToolGroup implementation (which
+               // hides the popup list when a tool is selected) and call ToolGroup's implementation directly.
+               return OO.ui.ListToolGroup.super.super.prototype.onMouseKeyUp.call( this, e );
+       } else {
+               return OO.ui.ListToolGroup.super.prototype.onMouseKeyUp.call( this, e );
        }
-
-       return ret;
 };
 
 OO.ui.ListToolGroup.prototype.updateCollapsibleState = function () {
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json b/resources/lib/oojs-ui/themes/mediawiki/icons-alerts.json
new file mode 100644 (file)
index 0000000..5fbf34d
--- /dev/null
@@ -0,0 +1,33 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "bell": { "file": "images/icons/bell.svg" },
+               "bellOn": { "file": {
+                       "ltr": "images/icons/bellOn-ltr.svg",
+                       "rtl": "images/icons/bellOn-rtl.svg"
+               } },
+               "eye": { "file": "images/icons/eye.svg" },
+               "eyeClosed": { "file": "images/icons/eyeClosed.svg" },
+               "message": { "file": {
+                       "ltr": "images/icons/message-ltr.svg",
+                       "rtl": "images/icons/message-rtl.svg"
+               } },
+               "signature": { "file": {
+                       "ltr": "images/icons/signature-ltr.svg",
+                       "rtl": "images/icons/signature-rtl.svg"
+               } },
+               "speechBubble": { "file": {
+                       "ltr": "images/icons/speechBubble-ltr.svg",
+                       "rtl": "images/icons/speechBubble-rtl.svg"
+               } },
+               "speechBubbleAdd": { "file": {
+                       "ltr": "images/icons/speechBubbleAdd-ltr.svg",
+                       "rtl": "images/icons/speechBubbleAdd-rtl.svg"
+               } },
+               "speechBubbles": { "file": {
+                       "ltr": "images/icons/speechBubbles-ltr.svg",
+                       "rtl": "images/icons/speechBubbles-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-content.json b/resources/lib/oojs-ui/themes/mediawiki/icons-content.json
new file mode 100644 (file)
index 0000000..29681c0
--- /dev/null
@@ -0,0 +1,50 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "article": { "file": {
+                       "ltr": "images/icons/article-ltr.svg",
+                       "rtl": "images/icons/article-rtl.svg"
+               } },
+               "articleCheck": { "file": {
+                       "ltr": "images/icons/articleCheck-ltr.svg",
+                       "rtl": "images/icons/articleCheck-rtl.svg"
+               } },
+               "articleSearch": { "file": {
+                       "ltr": "images/icons/articleSearch-ltr.svg",
+                       "rtl": "images/icons/articleSearch-rtl.svg"
+               } },
+               "book": { "file": {
+                       "ltr": "images/icons/book-ltr.svg",
+                       "rtl": "images/icons/book-rtl.svg"
+               } },
+               "citeArticle": { "file": {
+                       "ltr": "images/icons/citeArticle-ltr.svg",
+                       "rtl": "images/icons/citeArticle-rtl.svg"
+               } },
+               "die": { "file": {
+                       "ltr": "images/icons/die-ltr.svg",
+                       "rtl": "images/icons/die-rtl.svg"
+               } },
+               "download": { "file": {
+                       "ltr": "images/icons/download-ltr.svg",
+                       "rtl": "images/icons/download-rtl.svg"
+               } },
+               "folderPlaceholder": { "file": {
+                       "ltr": "images/icons/folderPlaceholder-ltr.svg",
+                       "rtl": "images/icons/folderPlaceholder-rtl.svg"
+               } },
+               "journal": { "file": {
+                       "ltr": "images/icons/journal-ltr.svg",
+                       "rtl": "images/icons/journal-rtl.svg"
+               } },
+               "newspaper": { "file": {
+                       "ltr": "images/icons/newspaper-ltr.svg",
+                       "rtl": "images/icons/newspaper-rtl.svg"
+               } },
+               "upload": { "file": {
+                       "ltr": "images/icons/upload-ltr.svg",
+                       "rtl": "images/icons/upload-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-advanced.json
new file mode 100644 (file)
index 0000000..8fdc505
--- /dev/null
@@ -0,0 +1,75 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "alignCentre": { "file": "images/icons/align-center.svg" },
+               "alignLeft": { "file": "images/icons/align-float-left.svg" },
+               "alignRight": { "file": "images/icons/align-float-right.svg" },
+               "find": { "file": {
+                       "ltr": "images/icons/find-ltr.svg",
+                       "rtl": "images/icons/find-rtl.svg"
+               } },
+               "insert": { "file": "images/icons/insert.svg" },
+               "layout": { "file": {
+                       "ltr": "images/icons/layout-ltr.svg",
+                       "rtl": "images/icons/layout-rtl.svg"
+               } },
+               "newline": { "file": {
+                       "ltr": "images/icons/newline-ltr.svg",
+                       "rtl": "images/icons/newline-rtl.svg"
+               } },
+               "redirect": { "file": {
+                       "ltr": "images/icons/redirect-ltr.svg",
+                       "rtl": "images/icons/redirect-rtl.svg"
+               } },
+               "noWikiText": { "file": {
+                       "ltr": "images/icons/noWikiText-ltr.svg",
+                       "rtl": "images/icons/noWikiText-rtl.svg"
+               } },
+               "outline": { "file": {
+                       "ltr": "images/icons/outline-ltr.svg",
+                       "rtl": "images/icons/outline-rtl.svg"
+               } },
+               "puzzle": { "file": {
+                       "ltr": "images/icons/puzzle-ltr.svg",
+                       "rtl": "images/icons/puzzle-rtl.svg"
+               } },
+               "quotes": { "file": {
+                       "ltr": "images/icons/quotes-ltr.svg",
+                       "rtl": "images/icons/quotes-rtl.svg"
+               } },
+               "quotesAdd": { "file": {
+                       "ltr": "images/icons/quotesAdd-ltr.svg",
+                       "rtl": "images/icons/quotesAdd-rtl.svg"
+               } },
+               "redirect": { "file": {
+                       "ltr": "images/icons/redirect-ltr.svg",
+                       "rtl": "images/icons/redirect-rtl.svg"
+               } },
+               "searchCaseSensitive": { "file": "images/icons/case-sensitive.svg" },
+               "searchRegularExpression": { "file": "images/icons/regular-expression.svg" },
+               "specialCharacter": { "file": "images/icons/specialCharacter.svg" },
+               "table": { "file": "images/icons/table.svg" },
+               "tableAddColumnAfter": { "file": {
+                       "ltr": "images/icons/table-insert-column-rtl.svg",
+                       "rtl": "images/icons/table-insert-column-ltr.svg"
+               } },
+               "tableAddColumnBefore": { "file": {
+                       "ltr": "images/icons/table-insert-column-ltr.svg",
+                       "rtl": "images/icons/table-insert-column-rtl.svg"
+               } },
+               "tableAddRowAfter": { "file": "images/icons/table-insert-row-after.svg" },
+               "tableAddRowBefore": { "file": "images/icons/table-insert-row-before.svg" },
+               "tableCaption": { "file": "images/icons/table-caption.svg" },
+               "tableMergeCells": { "file": "images/icons/table-merge-cells.svg" },
+               "templateAdd": { "file": {
+                       "ltr": "images/icons/templateAdd-ltr.svg",
+                       "rtl": "images/icons/templateAdd-rtl.svg"
+               } },
+               "translation": { "file": {
+                       "ltr": "images/icons/translation-ltr.svg",
+                       "rtl": "images/icons/translation-rtl.svg"
+               } },
+               "wikiText": { "file": "images/icons/wikiText.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-core.json b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-core.json
new file mode 100644 (file)
index 0000000..46b45f1
--- /dev/null
@@ -0,0 +1,27 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "edit": { "file": {
+                       "ltr": "images/icons/edit-ltr.svg",
+                       "rtl": "images/icons/edit-rtl.svg"
+               } },
+               "editLock": { "file": {
+                       "ltr": "images/icons/editLock-ltr.svg",
+                       "rtl": "images/icons/editLock-rtl.svg"
+               } },
+               "editUndo": { "file": {
+                       "ltr": "images/icons/editUndo-ltr.svg",
+                       "rtl": "images/icons/editUndo-rtl.svg"
+               } },
+               "link": { "file": {
+                       "ltr": "images/icons/link-ltr.svg",
+                       "rtl": "images/icons/link-rtl.svg"
+               } },
+               "linkExternal": { "file": {
+                       "ltr": "images/icons/external-link-ltr.svg",
+                       "rtl":  "images/icons/external-link-rtl.svg"
+               } },
+               "linkSecure": { "file": "images/icons/secure-link.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-list.json b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-list.json
new file mode 100644 (file)
index 0000000..490f8fa
--- /dev/null
@@ -0,0 +1,22 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "indent": { "file": {
+                       "ltr": "images/icons/indent-ltr.svg",
+                       "rtl": "images/icons/indent-rtl.svg"
+               } },
+               "listBullet": { "file": {
+                       "ltr": "images/icons/listBullet-ltr.svg",
+                       "rtl": "images/icons/listBullet-rtl.svg"
+               } },
+               "listNumbered": { "file": {
+                       "ltr": "images/icons/listNumbered-ltr.svg",
+                       "rtl": "images/icons/listNumbered-rtl.svg"
+               } },
+               "outdent": { "file": {
+                       "ltr": "images/icons/outdent-ltr.svg",
+                       "rtl": "images/icons/outdent-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-editing-styling.json b/resources/lib/oojs-ui/themes/mediawiki/icons-editing-styling.json
new file mode 100644 (file)
index 0000000..65fbc21
--- /dev/null
@@ -0,0 +1,72 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "bigger": { "file": {
+                       "ltr": "images/icons/bigger-ltr.svg",
+                       "rtl": "images/icons/bigger-rtl.svg"
+               } },
+               "smaller": { "file": {
+                       "ltr": "images/icons/smaller-ltr.svg",
+                       "rtl": "images/icons/smaller-rtl.svg"
+               } },
+               "subscript": { "file": {
+                       "ltr": "images/icons/subscript-ltr.svg",
+                       "rtl": "images/icons/subscript-rtl.svg"
+               } },
+               "superscript": { "file": {
+                       "ltr": "images/icons/superscript-ltr.svg",
+                       "rtl": "images/icons/superscript-rtl.svg"
+               } },
+               "bold": { "file": {
+                       "default": "images/icons/bold-a.svg",
+                       "lang": {
+                               "ar": "images/icons/bold-arab-ain.svg",
+                               "be": "images/icons/bold-cyrl-te.svg",
+                               "cs,en,he,ml,pl": "images/icons/bold-b.svg",
+                               "da,de,hu,ksh,nn,no,sv": "images/icons/bold-f.svg",
+                               "es,gl,pt": "images/icons/bold-n.svg",
+                               "eu,fi": "images/icons/bold-l.svg",
+                               "fa": "images/icons/bold-arab-dad.svg",
+                               "fr,it": "images/icons/bold-g.svg",
+                               "hy": "images/icons/bold-armn-to.svg",
+                               "ka": "images/icons/bold-geor-man.svg",
+                               "ky,ru": "images/icons/bold-cyrl-zhe.svg",
+                               "nl": "images/icons/bold-v.svg",
+                               "os": "images/icons/bold-cyrl-be.svg"
+                       }
+               } },
+               "italic": { "file": {
+                       "default": "images/icons/italic-a.svg",
+                       "lang": {
+                                       "ar": "images/icons/italic-arab-meem.svg",
+                                       "cs,en,fr,he,ml,pl,pt": "images/icons/italic-i.svg",
+                                       "be,da,de,fi,ky,nn,no,os,sv,ru": "images/icons/italic-k.svg",
+                                       "es,gl,it,nl": "images/icons/italic-c.svg",
+                                       "eu": "images/icons/italic-e.svg",
+                                       "fa": "images/icons/italic-arab-keheh-jeem.svg",
+                                       "hu": "images/icons/italic-d.svg",
+                                       "hy": "images/icons/italic-armn-sha.svg",
+                                       "ksh": "images/icons/italic-s.svg",
+                                       "ka": "images/icons/italic-geor-kan.svg"
+                               }
+               } },
+               "strikethrough": { "file": {
+                       "default": "images/icons/strikethrough-a.svg",
+                       "lang": {
+                               "en": "images/icons/strikethrough-s.svg",
+                               "fi": "images/icons/strikethrough-y.svg"
+                       }
+               } },
+               "underline": { "file": {
+                       "default": "images/icons/underline-a.svg",
+                       "lang": {
+                               "en": "images/icons/underline-u.svg"
+                       }
+               } },
+               "textLanguage": { "file": "images/icons/language.svg" },
+               "textDirLTR": { "file": "images/icons/text-dir-lefttoright.svg" },
+               "textDirRTL": { "file": "images/icons/text-dir-righttoleft.svg" },
+               "textStyle": { "file": "images/icons/text-style.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json b/resources/lib/oojs-ui/themes/mediawiki/icons-interactions.json
new file mode 100644 (file)
index 0000000..3c8376b
--- /dev/null
@@ -0,0 +1,56 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "beta": { "file": "images/icons/beta.svg" },
+               "betaLaunch": { "file": "images/icons/betaLaunch.svg" },
+               "bookmark": { "file": {
+                       "ltr": "images/icons/bookmark-ltr.svg",
+                       "rtl": "images/icons/bookmark-rtl.svg"
+               } },
+               "browser": { "file": {
+                       "ltr": "images/icons/browser-ltr.svg",
+                       "rtl": "images/icons/browser-rtl.svg"
+               } },
+               "clock": { "file": "images/icons/clock.svg" },
+               "closeInput": { "file": "images/icons/closeInput.svg" },
+               "funnel": { "file": {
+                       "ltr": "images/icons/funnel-ltr.svg",
+                       "rtl": "images/icons/funnel-rtl.svg"
+               } },
+               "heart": { "file": "images/icons/heart.svg" },
+               "key": { "file": {
+                       "ltr": "images/icons/key-ltr.svg",
+                       "rtl": "images/icons/key-rtl.svg"
+               } },
+               "keyboard": { "file": {
+                       "ltr": "images/icons/keyboard-ltr.svg",
+                       "rtl": "images/icons/keyboard-rtl.svg"
+               } },
+               "logOut": { "file": {
+                       "ltr": "images/icons/logOut-ltr.svg",
+                       "rtl": "images/icons/logOut-rtl.svg"
+               } },
+               "magnifyingGlass": { "file": {
+                       "ltr": "images/icons/magnifyingGlass-ltr.svg",
+                       "rtl": "images/icons/magnifyingGlass-rtl.svg"
+               } },
+               "newWindow": { "file": {
+                       "ltr": "images/icons/newWindow-ltr.svg",
+                       "rtl": "images/icons/newWindow-rtl.svg"
+               } },
+               "printer": { "file": {
+                       "ltr": "images/icons/printer-ltr.svg",
+                       "rtl": "images/icons/printer-rtl.svg"
+               } },
+               "ribbonPrize": { "file": "images/icons/ribbonPrize.svg" },
+               "sun": { "file": {
+                       "ltr": "images/icons/sun-ltr.svg",
+                       "rtl": "images/icons/sun-rtl.svg"
+               } },
+               "watchlist": { "file": {
+                       "ltr": "images/icons/watchlist-ltr.svg",
+                       "rtl": "images/icons/watchlist-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json b/resources/lib/oojs-ui/themes/mediawiki/icons-layout.json
new file mode 100644 (file)
index 0000000..28e3c05
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "stripeFlow": { "file": {
+                       "ltr": "images/icons/stripeFlow-ltr.svg",
+                       "rtl": "images/icons/stripeFlow-rtl.svg"
+               } },
+               "stripeSideMenu": { "file": "images/icons/stripeSideMenu.svg" },
+               "stripeSummary": { "file": {
+                       "ltr": "images/icons/stripeSummary-ltr.svg",
+                       "rtl": "images/icons/stripeSummary-rtl.svg"
+               } },
+               "stripeToC": { "file": {
+                       "ltr": "images/icons/stripeToC-ltr.svg",
+                       "rtl": "images/icons/stripeToC-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-location.json b/resources/lib/oojs-ui/themes/mediawiki/icons-location.json
new file mode 100644 (file)
index 0000000..9eec19b
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "map": { "file": {
+                       "ltr": "images/icons/map-ltr.svg",
+                       "rtl": "images/icons/map-rtl.svg"
+               } },
+               "mapPin": { "file": "images/icons/mapPin.svg" },
+               "mapPinAdd": { "file": {
+                       "ltr": "images/icons/mapPinAdd-ltr.svg",
+                       "rtl": "images/icons/mapPinAdd-rtl.svg"
+               } },
+               "wikitrail": { "file": {
+                       "ltr": "images/icons/wikitrail-ltr.svg",
+                       "rtl": "images/icons/wikitrail-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-media.json b/resources/lib/oojs-ui/themes/mediawiki/icons-media.json
new file mode 100644 (file)
index 0000000..960079b
--- /dev/null
@@ -0,0 +1,27 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "image": { "file": {
+                       "ltr": "images/icons/image-ltr.svg",
+                       "rtl": "images/icons/image-rtl.svg"
+               } },
+               "imageAdd": { "file": {
+                       "ltr": "images/icons/imageAdd-ltr.svg",
+                       "rtl": "images/icons/imageAdd-rtl.svg"
+               } },
+               "imageLock": { "file": {
+                       "ltr": "images/icons/imageLock-ltr.svg",
+                       "rtl": "images/icons/imageLock-rtl.svg"
+               } },
+               "photoGallery": { "file": {
+                       "ltr": "images/icons/photoGallery-ltr.svg",
+                       "rtl": "images/icons/photoGallery-rtl.svg"
+               } },
+               "play": { "file": {
+                       "ltr": "images/icons/play-ltr.svg",
+                       "rtl": "images/icons/play-rtl.svg"
+               } },
+               "stop": { "file": "images/icons/stop.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json b/resources/lib/oojs-ui/themes/mediawiki/icons-moderation.json
new file mode 100644 (file)
index 0000000..4fc043b
--- /dev/null
@@ -0,0 +1,34 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "block": { "file": "images/icons/block.svg" },
+               "blockUndo": { "file": {
+                       "ltr": "images/icons/blockUndo-ltr.svg",
+                       "rtl": "images/icons/blockUndo-rtl.svg"
+               } },
+               "flag": { "file": {
+                       "ltr": "images/icons/flag-ltr.svg",
+                       "rtl": "images/icons/flag-rtl.svg"
+               } },
+               "flagUndo": { "file": {
+                       "ltr": "images/icons/flagUndo-ltr.svg",
+                       "rtl": "images/icons/flagUndo-rtl.svg"
+               } },
+               "lock": { "file": {
+                       "ltr": "images/icons/lock-ltr.svg",
+                       "rtl": "images/icons/lock-rtl.svg"
+               } },
+               "star": { "file": "images/icons/star.svg" },
+               "trash": { "file": "images/icons/trash.svg" },
+               "trashUndo": { "file": {
+                       "ltr": "images/icons/trashUndo-ltr.svg",
+                       "rtl": "images/icons/trashUndo-rtl.svg"
+               } },
+               "unLock": { "file": {
+                       "ltr": "images/icons/unLock-ltr.svg",
+                       "rtl": "images/icons/unLock-rtl.svg"
+               } },
+               "unStar": { "file": "images/icons/unStar.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json b/resources/lib/oojs-ui/themes/mediawiki/icons-movement.json
new file mode 100644 (file)
index 0000000..9aa1b80
--- /dev/null
@@ -0,0 +1,27 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "arrowNext": { "file": {
+                       "ltr": "images/icons/arrow-ltr.svg",
+                       "rtl": "images/icons/arrow-rtl.svg"
+               } },
+               "arrowLast": { "file": {
+                       "ltr": "images/icons/arrow-rtl.svg",
+                       "rtl": "images/icons/arrow-ltr.svg"
+               } },
+               "caretNext": { "file": {
+                       "ltr": "images/icons/caret-rtl.svg",
+                       "rtl": "images/icons/caret-ltr.svg"
+               } },
+               "caretLast": { "file": {
+                       "ltr": "images/icons/caret-ltr.svg",
+                       "rtl": "images/icons/caret-rtl.svg"
+               } },
+               "caretDown": { "file": "images/icons/caretDown.svg" },
+               "caretUp": { "file": "images/icons/caretUp.svg" },
+               "downTriangle": { "file": "images/icons/downTriangle.svg" },
+               "move": { "file": "images/icons/move.svg" },
+               "upTriangle": { "file": "images/icons/upTriangle.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-user.json b/resources/lib/oojs-ui/themes/mediawiki/icons-user.json
new file mode 100644 (file)
index 0000000..2bda575
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "userActive": { "file": {
+                       "ltr": "images/icons/userActive-ltr.svg",
+                       "rtl": "images/icons/userActive-rtl.svg"
+               } },
+               "userAvatar": { "file": "images/icons/userAvatar.svg" },
+               "userInactive": { "file": {
+                       "ltr": "images/icons/userInactive-ltr.svg",
+                       "rtl": "images/icons/userInactive-rtl.svg"
+               } },
+               "userTalk": { "file": {
+                       "ltr": "images/icons/userTalk-ltr.svg",
+                       "rtl": "images/icons/userTalk-rtl.svg"
+               } }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json b/resources/lib/oojs-ui/themes/mediawiki/icons-wikimedia.json
new file mode 100644 (file)
index 0000000..fd13c95
--- /dev/null
@@ -0,0 +1,9 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "logoCC": { "file": "images/icons/logo-cc.svg" },
+               "logoWikimediaCommons": { "file": "images/icons/logo-wikimediaCommons.svg" },
+               "logoWikipedia": { "file": "images/icons/logo-wikipedia.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/icons.json b/resources/lib/oojs-ui/themes/mediawiki/icons.json
new file mode 100644 (file)
index 0000000..6d8e4ad
--- /dev/null
@@ -0,0 +1,72 @@
+{
+       "selectorWithoutVariant": ".oo-ui-icon-{name}",
+       "selectorWithVariant": ".oo-ui-image-{variant} .oo-ui-icon-{name}, .oo-ui-image-{variant}.oo-ui-icon-{name}",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               },
+               "progressive": {
+                       "color": "#347BFF"
+               },
+               "constructive": {
+                       "color": "#00AF89"
+               },
+               "destructive": {
+                       "color": "#D11D13"
+               },
+               "warning": {
+                       "color": "#FF5D00"
+               }
+       },
+       "images": {
+               "add": { "file": "images/icons/add.svg", "variants": [ "constructive" ] },
+               "advanced": { "file": "images/icons/advanced.svg" },
+               "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] },
+               "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive" ] },
+               "circle": { "file": "images/icons/circle.svg", "variants": [ "constructive" ] },
+               "clear": { "file": "images/icons/clear.svg" },
+               "close": { "file": {
+                       "ltr": "images/icons/close-ltr.svg",
+                       "rtl": "images/icons/close-rtl.svg"
+               } },
+               "code": { "file": "images/icons/code.svg" },
+               "collapse": { "file": "images/icons/collapse.svg" },
+               "comment": { "file": "images/icons/comment.svg" },
+               "ellipsis": { "file": "images/icons/ellipsis.svg" },
+               "expand": { "file": "images/icons/expand.svg" },
+               "help": { "file": {
+                       "ltr": "images/icons/help-ltr.svg",
+                       "rtl": "images/icons/help-rtl.svg",
+                       "lang": {
+                               "he,yi": "images/icons/help-ltr.svg"
+                       }
+               } },
+               "history": { "file": "images/icons/history.svg" },
+               "info": { "file": "images/icons/info.svg" },
+               "menu": { "file": "images/icons/menu.svg" },
+               "next": { "file": {
+                       "ltr": "images/icons/move-ltr.svg",
+                       "rtl": "images/icons/move-rtl.svg"
+               } },
+               "picture": { "file": "images/icons/picture.svg" },
+               "previous": { "file": {
+                       "ltr": "images/icons/move-rtl.svg",
+                       "rtl": "images/icons/move-ltr.svg"
+               } },
+               "redo": { "file": {
+                       "ltr": "images/icons/arched-arrow-ltr.svg",
+                       "rtl": "images/icons/arched-arrow-rtl.svg"
+               } },
+               "remove": { "file": "images/icons/remove.svg", "variants": [ "destructive" ] },
+               "search": { "file": "images/icons/search.svg" },
+               "settings": { "file": "images/icons/settings.svg" },
+               "tag": { "file": "images/icons/tag.svg" },
+               "undo": { "file": {
+                       "ltr": "images/icons/arched-arrow-rtl.svg",
+                       "rtl": "images/icons/arched-arrow-ltr.svg"
+               } },
+               "window": { "file": "images/icons/window.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/indicators.json b/resources/lib/oojs-ui/themes/mediawiki/indicators.json
new file mode 100644 (file)
index 0000000..ced5e79
--- /dev/null
@@ -0,0 +1,25 @@
+{
+       "selectorWithoutVariant": ".oo-ui-indicator-{name}",
+       "selectorWithVariant": ".oo-ui-image-{variant} .oo-ui-indicator-{name}, .oo-ui-image-{variant}.oo-ui-indicator-{name}",
+       "intro": "@import '../../../../src/styles/common';",
+       "variants": {
+               "invert": {
+                       "color": "#FFFFFF",
+                       "global": true
+               }
+       },
+       "images": {
+               "alert": { "file": "images/indicators/alert.svg" },
+               "up": { "file": "images/indicators/arrow-up.svg" },
+               "down": { "file": "images/indicators/arrow-down.svg" },
+               "next": { "file": {
+                       "ltr": "images/indicators/arrow-ltr.svg",
+                       "rtl": "images/indicators/arrow-rtl.svg"
+               } },
+               "previous": { "file": {
+                       "ltr": "images/indicators/arrow-rtl.svg",
+                       "rtl": "images/indicators/arrow-ltr.svg"
+               } },
+               "required": { "file": "images/indicators/required.svg" }
+       }
+}
diff --git a/resources/lib/oojs-ui/themes/mediawiki/textures.json b/resources/lib/oojs-ui/themes/mediawiki/textures.json
new file mode 100644 (file)
index 0000000..e90730a
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "prefix": "oo-ui-texture",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "pending": { "file": "images/textures/pending.gif" },
+               "transparency": { "file": "images/textures/transparency.svg" }
+       }
+}
index 18dc564..d87183e 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs v1.1.6 optimised for jQuery
+ * OOjs v1.1.7 optimised for jQuery
  * https://www.mediawiki.org/wiki/OOjs
  *
  * Copyright 2011-2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-03-19T00:42:55Z
+ * Date: 2015-04-29T01:13:49Z
  */
 ( function ( global ) {
 
@@ -108,12 +108,12 @@ oo.inheritClass = function ( targetFn, originFn ) {
  *
  * The 'constructor' (whether implicit or explicit) is not copied over.
  *
- * This does not create inheritance to the origin. If inheritance is needed
- * use oo.inheritClass instead.
+ * This does not create inheritance to the origin. If you need inheritance,
+ * use OO.inheritClass instead.
  *
  * Beware: This can redefine a prototype property, call before setting your prototypes.
  *
- * Beware: Don't call before oo.inheritClass.
+ * Beware: Don't call before OO.inheritClass.
  *
  *     function Foo() {}
  *     function Context() {}
@@ -826,12 +826,18 @@ oo.mixinClass( oo.Registry, oo.EventEmitter );
  * @param {Mixed} data
  */
 
+/**
+ * @event unregister
+ * @param {string} name
+ * @param {Mixed} data Data removed from registry
+ */
+
 /* Methods */
 
 /**
  * Associate one or more symbolic names with some data.
  *
- * Only the base name will be registered, overriding any existing entry with the same base name.
+ * Any existing entry with the same name will be overridden.
  *
  * @param {string|string[]} name Symbolic name or list of symbolic names
  * @param {Mixed} data Data to associate with symbolic name
@@ -853,9 +859,31 @@ oo.Registry.prototype.register = function ( name, data ) {
 };
 
 /**
- * Get data for a given symbolic name.
+ * Remove one or more symbolic names from the registry
  *
- * Lookups are done using the base name.
+ * @param {string|string[]} name Symbolic name or list of symbolic names
+ * @fires unregister
+ * @throws {Error} Name argument must be a string or array
+ */
+oo.Registry.prototype.unregister = function ( name ) {
+       var i, len, data;
+       if ( typeof name === 'string' ) {
+               data = this.lookup( name );
+               if ( data !== undefined ) {
+                       delete this.registry[name];
+                       this.emit( 'unregister', name, data );
+               }
+       } else if ( Array.isArray( name ) ) {
+               for ( i = 0, len = name.length; i < len; i++ ) {
+                       this.unregister( name[i] );
+               }
+       } else {
+               throw new Error( 'Name must be a string or array, cannot be a ' + typeof name );
+       }
+};
+
+/**
+ * Get data for a given symbolic name.
  *
  * @param {string} name Symbolic name
  * @return {Mixed|undefined} Data associated with symbolic name
@@ -873,10 +901,8 @@ oo.Registry.prototype.lookup = function ( name ) {
  * @constructor
  */
 oo.Factory = function OoFactory() {
+       // Parent constructor
        oo.Factory.parent.call( this );
-
-       // Properties
-       this.entries = [];
 };
 
 /* Inheritance */
@@ -911,11 +937,33 @@ oo.Factory.prototype.register = function ( constructor ) {
        if ( typeof name !== 'string' || name === '' ) {
                throw new Error( 'Name must be a string and must not be empty' );
        }
-       this.entries.push( name );
 
+       // Parent method
        oo.Factory.parent.prototype.register.call( this, name, constructor );
 };
 
+/**
+ * Unregister a constructor from the factory.
+ *
+ * @param {Function} constructor Constructor to unregister
+ * @throws {Error} Name must be a string and must not be empty
+ * @throws {Error} Constructor must be a function
+ */
+oo.Factory.prototype.unregister = function ( constructor ) {
+       var name;
+
+       if ( typeof constructor !== 'function' ) {
+               throw new Error( 'constructor must be a function, cannot be a ' + typeof constructor );
+       }
+       name = constructor.static && constructor.static.name;
+       if ( typeof name !== 'string' || name === '' ) {
+               throw new Error( 'Name must be a string and must not be empty' );
+       }
+
+       // Parent method
+       oo.Factory.parent.prototype.unregister.call( this, name );
+};
+
 /**
  * Create an object based on a name.
  *
index f01115b..387b020 100644 (file)
@@ -2,7 +2,7 @@
 
 .mw-category {
        .column-count(3);
-       .column-width(25em);
+       .column-width(24em);
        .mw-category-group {
                li {
                        .column-break-inside-avoid;
index 3f4c6f9..a33b86a 100644 (file)
@@ -1,4 +1,4 @@
-.PHONY: help test phpunit install coverage warning destructive parser noparser safe databaseless list-groups
+.PHONY: help test phpunit coverage warning destructive parser noparser safe databaseless list-groups
 .DEFAULT: warning
 
 SHELL = /bin/sh
@@ -35,9 +35,6 @@ destructive: phpunit
 phpunit:
        ${PU}
 
-install:
-       ./install-phpunit.sh
-
 tap:
        ${PU} --tap
 
index f2fcb4a..f0d8455 100644 (file)
@@ -106,6 +106,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       ApiResult::setValue( $arr, null, $fh );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        $obj->file = $fh;
                        ApiResult::setValue( $arr, 'sub', $obj );
@@ -117,6 +127,17 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $obj->file = $fh;
+                       ApiResult::setValue( $arr, null, $obj );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                fclose( $fh );
 
                try {
@@ -129,6 +150,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       ApiResult::setValue( $arr, null, INF );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        ApiResult::setValue( $arr, 'nan', NAN );
                        $this->fail( 'Expected exception not thrown' );
@@ -139,6 +170,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       ApiResult::setValue( $arr, null, NAN );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
 
                $arr = array();
                $result2 = new ApiResult( 8388608 );
@@ -155,10 +196,14 @@ class ApiResultTest extends MediaWikiTestCase {
                ApiResult::setValue( $arr, 'foo', "foo\x80bar" );
                ApiResult::setValue( $arr, 'bar', "a\xcc\x81" );
                ApiResult::setValue( $arr, 'baz', 74 );
+               ApiResult::setValue( $arr, null, "foo\x80bar" );
+               ApiResult::setValue( $arr, null, "a\xcc\x81" );
                $this->assertSame( array(
                        'foo' => "foo\xef\xbf\xbdbar",
                        'bar' => "\xc3\xa1",
                        'baz' => 74,
+                       0 => "foo\xef\xbf\xbdbar",
+                       1 => "\xc3\xa1",
                ), $arr );
        }
 
@@ -288,6 +333,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $result->addValue( null, null, $fh );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        $obj->file = $fh;
                        $result->addValue( null, 'sub', $obj );
@@ -299,6 +354,17 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $obj->file = $fh;
+                       $result->addValue( null, null, $obj );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add resource(stream) to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                fclose( $fh );
 
                try {
@@ -311,6 +377,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $result->addValue( null, null, INF );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
                try {
                        $result->addValue( null, 'nan', NAN );
                        $this->fail( 'Expected exception not thrown' );
@@ -321,6 +397,16 @@ class ApiResultTest extends MediaWikiTestCase {
                                'Expected exception'
                        );
                }
+               try {
+                       $result->addValue( null, null, NAN );
+                       $this->fail( 'Expected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+                       $this->assertSame(
+                               'Cannot add non-finite floats to ApiResult',
+                               $ex->getMessage(),
+                               'Expected exception'
+                       );
+               }
 
                $result->reset();
                $result->addParsedLimit( 'foo', 12 );
@@ -374,10 +460,14 @@ class ApiResultTest extends MediaWikiTestCase {
                $result->addValue( null, 'foo', "foo\x80bar" );
                $result->addValue( null, 'bar', "a\xcc\x81" );
                $result->addValue( null, 'baz', 74 );
+               $result->addValue( null, null, "foo\x80bar" );
+               $result->addValue( null, null, "a\xcc\x81" );
                $this->assertSame( array(
                        'foo' => "foo\xef\xbf\xbdbar",
                        'bar' => "\xc3\xa1",
                        'baz' => 74,
+                       0 => "foo\xef\xbf\xbdbar",
+                       1 => "\xc3\xa1",
                        ApiResult::META_TYPE => 'assoc',
                ), $result->getResultData() );
        }
index 645baf1..451d82a 100644 (file)
@@ -1,12 +1,13 @@
 <?php
 
-class MockDatabaseSqlite extends DatabaseSqlite {
+class DatabaseSqliteMock extends DatabaseSqlite {
        private $lastQuery;
 
        public static function newInstance( array $p = array() ) {
                $p['dbFilePath'] = ':memory:';
+               $p['schema'] = false;
 
-               return new self( $p );
+               return DatabaseBase::factory( 'SqliteMock', $p );
        }
 
        function query( $sql, $fname = '', $tempIgnore = false ) {
@@ -29,7 +30,7 @@ class MockDatabaseSqlite extends DatabaseSqlite {
  * @group medium
  */
 class DatabaseSqliteTest extends MediaWikiTestCase {
-       /** @var MockDatabaseSqlite */
+       /** @var DatabaseSqliteMock */
        protected $db;
 
        protected function setUp() {
@@ -38,7 +39,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
                if ( !Sqlite::isPresent() ) {
                        $this->markTestSkipped( 'No SQLite support detected' );
                }
-               $this->db = MockDatabaseSqlite::newInstance();
+               $this->db = DatabaseSqliteMock::newInstance();
                if ( version_compare( $this->db->getServerVersion(), '3.6.0', '<' ) ) {
                        $this->markTestSkipped( "SQLite at least 3.6 required, {$this->db->getServerVersion()} found" );
                }
index 54758f9..b666c83 100644 (file)
@@ -36,39 +36,6 @@ class FormatMetadataTest extends MediaWikiMediaTestCase {
                        'File with invalid date metadata (bug 29471)' );
        }
 
-       /**
-        * @param string $filename
-        * @param int $expected Total image area
-        * @dataProvider provideFlattenArray
-        * @covers FormatMetadata::flattenArray
-        */
-       public function testFlattenArray( $vals, $type, $noHtml, $ctx, $expected ) {
-               $actual = FormatMetadata::flattenArray( $vals, $type, $noHtml, $ctx );
-               $this->assertEquals( $expected, $actual );
-       }
-
-       public static function provideFlattenArray() {
-               return array(
-                       array(
-                               array( 1, 2, 3 ), 'ul', false, false,
-                               "<ul><li>1</li>\n<li>2</li>\n<li>3</li></ul>",
-                       ),
-                       array(
-                               array( 1, 2, 3 ), 'ol', false, false,
-                               "<ol><li>1</li>\n<li>2</li>\n<li>3</li></ol>",
-                       ),
-                       array(
-                               array( 1, 2, 3 ), 'ul', true, false,
-                               "\n*1\n*2\n*3",
-                       ),
-                       array(
-                               array( 1, 2, 3 ), 'ol', true, false,
-                               "\n#1\n#2\n#3",
-                       ),
-                       // TODO: more test cases
-               );
-       }
-
        /**
         * @param mixed $input
         * @param mixed $output
diff --git a/tests/phpunit/install-phpunit.sh b/tests/phpunit/install-phpunit.sh
deleted file mode 100755 (executable)
index 022f998..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-has_binary () {
-    if [ -z `which $1` ]; then
-        return 1
-    fi
-    return 0
-}
-
-if [ `id -u` -ne 0 ]; then
-    echo '*** ERROR: Must be root to run'
-    exit 1
-fi
-
-if ( has_binary phpunit ); then
-    echo PHPUnit already installed
-else if ( has_binary pear ); then
-    echo Installing phpunit with pear
-    pear channel-discover pear.phpunit.de
-    pear channel-discover components.ez.no
-    pear channel-discover pear.symfony.com
-    pear update-channels
-    #Temporary fix for 64597
-    pear install --alldeps phpunit/PHPUnit-3.7.35
-else if ( has_binary apt-get ); then
-    echo Installing phpunit with apt-get
-    apt-get install phpunit
-else if ( has_binary yum ); then
-    echo Installing phpunit with yum
-    yum install phpunit
-else if ( has_binary port ); then
-    echo Installing phpunit with macports
-    port install php5-unit
-fi
-fi
-fi
-fi
-fi
index 3dd2af6..7c3d699 100644 (file)
                mwTester = new CompletenessTest( mw, mwTestIgnore );
        }
 
-       /**
-        * Test environment recommended for all QUnit test modules
-        *
-        * Whether to log environment changes to the console
-        */
-       QUnit.config.urlConfig.push( 'mwlogenv' );
-
        /**
         * Reset mw.config and others to a fresh copy of the live config for each test(),
         * and restore it back to the live one afterwards.
         * </code>
         */
        QUnit.newMwEnvironment = ( function () {
-               var warn, error, log, liveConfig, liveMessages,
+               var warn, error, liveConfig, liveMessages,
                        ajaxRequests = [];
 
                liveConfig = mw.config.values;
                        ajaxRequests.push( { xhr: jqXHR, options: ajaxOptions } );
                }
 
-               log = QUnit.urlParams.mwlogenv ? mw.log : function () {};
-
                return function ( localEnv ) {
                        localEnv = $.extend( {
                                // QUnit
 
                        return {
                                setup: function () {
-                                       log( 'MwEnvironment> SETUP    for "' + QUnit.config.current.module
-                                               + ': ' + QUnit.config.current.testName + '"' );
 
                                        // Greetings, mock environment!
                                        mw.config.values = freshConfigCopy( localEnv.config );
 
                                teardown: function () {
                                        var timers, active;
-                                       log( 'MwEnvironment> TEARDOWN for "' + QUnit.config.current.module
-                                               + ': ' + QUnit.config.current.testName + '"' );
 
                                        localEnv.teardown.call( this );
 
index 2ea3f07..2079a64 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -502,7 +502,7 @@ function wfExtractThumbParams( $file, $params ) {
        unset( $params['thumbName'] );
 
        // Do the hook first for older extensions that rely on it.
-       if ( !wfRunHooks( 'ExtractThumbParameters', array( $thumbname, &$params ) ) ) {
+       if ( !Hooks::run( 'ExtractThumbParameters', array( $thumbname, &$params ) ) ) {
                // Check hooks if parameters can be extracted
                // Hooks return false if they manage to *resolve* the parameters
                // This hook should be considered deprecated