Merge "Deprecate User::getPasswordValidity()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 21 Dec 2018 05:06:40 +0000 (05:06 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 21 Dec 2018 05:06:40 +0000 (05:06 +0000)
50 files changed:
RELEASE-NOTES-1.32
RELEASE-NOTES-1.33
includes/DefaultSettings.php
includes/Html.php
includes/Storage/DerivedPageDataUpdater.php
includes/api/ApiBase.php
includes/api/ApiBlock.php
includes/api/ApiDelete.php
includes/api/ApiErrorFormatter.php
includes/api/ApiMain.php
includes/cache/localisation/LCStoreStaticArray.php
includes/installer/i18n/da.json
includes/installer/i18n/diq.json
includes/installer/i18n/sr-ec.json
includes/mail/EmailNotification.php
includes/pager/IndexPager.php
includes/shell/Command.php
includes/specials/SpecialBlock.php
includes/specials/SpecialUnblock.php
includes/specials/pagers/ContribsPager.php
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/br.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/en.json
languages/i18n/fr.json
languages/i18n/he.json
languages/i18n/hu.json
languages/i18n/io.json
languages/i18n/ml.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sr-ec.json
languages/i18n/sv.json
languages/i18n/tl.json
languages/i18n/ur.json
languages/i18n/zh-hant.json
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
tests/phpunit/includes/Storage/PageUpdaterTest.php
tests/phpunit/includes/api/ApiBlockTest.php
tests/phpunit/includes/api/ApiDeleteTest.php
tests/phpunit/includes/api/ApiErrorFormatterTest.php
tests/phpunit/includes/specials/ContribsPagerTest.php

index 5f034b5..cac65ab 100644 (file)
@@ -133,6 +133,8 @@ production.
 * Added a new hook, 'UserGetRightsRemove', which can be used to remove rights
   from user. Unlike the 'UserGetRights' it will ensure that removed rights
   will not be reinserted.
+* (T197535) Extensions can now specify PHP versions and PHP extensions they
+  depend on.
 
 === External library changes in 1.32 ===
 
index 7567252..f357aae 100644 (file)
@@ -75,7 +75,9 @@ production.
     exceptions will now include the "Wikimedia\Rdbms\" prefix in the class name.
   * The code including an exception class name is deprecated. In the future,
     all internal errors will use code "internal_api_error".
-* …
+* (T212356) When using action=delete on pages with many revisions, the module
+  may return a boolean-true 'scheduled' and no 'logid'. This signifies that the
+  deletion will be processed via the job queue.
 
 === Action API internal changes in 1.33 ===
 * A number of deprecated methods for API documentation, intended for overriding
@@ -196,6 +198,8 @@ because of Phabricator reports.
 === Other changes in 1.33 ===
 * (T208871) The hard-coded Google search form on the database error page was
   removed.
+* (T201747) Html::openElement() warns if given an element name wiht a space
+  in it.
 * …
 
 == Compatibility ==
index c76b8c1..420da4f 100644 (file)
@@ -5840,6 +5840,7 @@ $wgGrantPermissions['editmycssjs']['editmyuserjson'] = true;
 $wgGrantPermissions['editmycssjs']['editmyuserjs'] = true;
 
 $wgGrantPermissions['editmyoptions']['editmyoptions'] = true;
+$wgGrantPermissions['editmyoptions']['editmyuserjson'] = true;
 
 $wgGrantPermissions['editinterface'] = $wgGrantPermissions['editpage'];
 $wgGrantPermissions['editinterface']['editinterface'] = true;
index d066eff..0aea7ea 100644 (file)
@@ -255,6 +255,12 @@ class Html {
                // consistency and better compression.
                $element = strtolower( $element );
 
+               // Some people were abusing this by passing things like
+               // 'h1 id="foo" to $element, which we don't want.
+               if ( strpos( $element, ' ' ) !== false ) {
+                       wfWarn( __METHOD__ . " given element name with space '$element'" );
+               }
+
                // Remove invalid input types
                if ( $element == 'input' ) {
                        $validTypes = [
index c401d44..9ce12b4 100644 (file)
@@ -151,6 +151,9 @@ class DerivedPageDataUpdater implements IDBAccessObject {
         */
        private $options = [
                'changed' => true,
+               // newrev is true if prepareUpdate is handling the creation of a new revision,
+               // as opposed to a null edit or a forced update.
+               'newrev' => false,
                'created' => false,
                'moved' => false,
                'restored' => false,
@@ -1110,12 +1113,14 @@ class DerivedPageDataUpdater implements IDBAccessObject {
                // Override fields defined in $this->options with values from $options.
                $this->options = array_intersect_key( $options, $this->options ) + $this->options;
 
-               if ( isset( $this->pageState['oldId'] ) ) {
-                       $oldId = $this->pageState['oldId'];
+               if ( $this->revision ) {
+                       $oldId = $this->pageState['oldId'] ?? 0;
+                       $this->options['newrev'] = ( $revision->getId() !== $oldId );
                } elseif ( isset( $this->options['oldrevision'] ) ) {
                        /** @var Revision|RevisionRecord $oldRev */
                        $oldRev = $this->options['oldrevision'];
                        $oldId = $oldRev->getId();
+                       $this->options['newrev'] = ( $revision->getId() !== $oldId );
                } else {
                        $oldId = $revision->getParentId();
                }
@@ -1611,8 +1616,8 @@ class DerivedPageDataUpdater implements IDBAccessObject {
                // Save it to the parser cache. Use the revision timestamp in the case of a
                // freshly saved edit, as that matches page_touched and a mismatch would trigger an
                // unnecessary reparse.
-               $timestamp = $this->options['changed'] ? $this->revision->getTimestamp()
-                       : $output->getTimestamp();
+               $timestamp = $this->options['newrev'] ? $this->revision->getTimestamp()
+                       : $output->getCacheTime();
                $this->parserCache->save(
                        $output, $wikiPage, $this->getCanonicalParserOptions(),
                        $timestamp, $this->revision->getId()
index d29131b..1efd747 100644 (file)
@@ -1949,9 +1949,14 @@ abstract class ApiBase extends ContextSource {
         * @since 1.29
         * @param StatusValue $status
         * @param string[] $types 'warning' and/or 'error'
+        * @param string[] $filter Message keys to filter out (since 1.33)
         */
-       public function addMessagesFromStatus( StatusValue $status, $types = [ 'warning', 'error' ] ) {
-               $this->getErrorFormatter()->addMessagesFromStatus( $this->getModulePath(), $status, $types );
+       public function addMessagesFromStatus(
+               StatusValue $status, $types = [ 'warning', 'error' ], array $filter = []
+       ) {
+               $this->getErrorFormatter()->addMessagesFromStatus(
+                       $this->getModulePath(), $status, $types, $filter
+               );
        }
 
        /**
index 8976626..ed3d01c 100644 (file)
@@ -61,7 +61,7 @@ class ApiBlock extends ApiBase {
                                $editingRestriction = 'partial';
                        }
 
-                       $pageRestrictions = implode( "\n", $params['pagerestrictions'] );
+                       $pageRestrictions = implode( "\n", (array)$params['pagerestrictions'] );
                }
 
                if ( $params['userid'] !== null ) {
index ec857b7..7e8041d 100644 (file)
@@ -75,9 +75,10 @@ class ApiDelete extends ApiBase {
                        $status = self::delete( $pageObj, $user, $reason, $params['tags'] );
                }
 
-               if ( !$status->isGood() ) {
+               if ( !$status->isOk() ) {
                        $this->dieStatus( $status );
                }
+               $this->addMessagesFromStatus( $status, [ 'warning' ], [ 'delete-scheduled' ] );
 
                // Deprecated parameters
                if ( $params['watch'] ) {
@@ -92,8 +93,14 @@ class ApiDelete extends ApiBase {
                $r = [
                        'title' => $titleObj->getPrefixedText(),
                        'reason' => $reason,
-                       'logid' => $status->value
                ];
+               if ( $status->hasMessage( 'delete-scheduled' ) ) {
+                       $r['scheduled'] = true;
+               }
+               if ( $status->value !== null ) {
+                       // Scheduled deletions don't currently have a log entry available at this point
+                       $r['logid'] = $status->value;
+               }
                $this->getResult()->addValue( null, $this->getModuleName(), $r );
        }
 
index a37ecc2..9669464 100644 (file)
@@ -153,9 +153,10 @@ class ApiErrorFormatter {
         * @param string|null $modulePath
         * @param StatusValue $status
         * @param string[]|string $types 'warning' and/or 'error'
+        * @param string[] $filter Messages to filter out (since 1.33)
         */
        public function addMessagesFromStatus(
-               $modulePath, StatusValue $status, $types = [ 'warning', 'error' ]
+               $modulePath, StatusValue $status, $types = [ 'warning', 'error' ], array $filter = []
        ) {
                if ( $status->isGood() || !$status->getErrors() ) {
                        return;
@@ -178,7 +179,9 @@ class ApiErrorFormatter {
                                ->inLanguage( $this->lang )
                                ->title( $this->getDummyTitle() )
                                ->useDatabase( $this->useDB );
-                       $this->addWarningOrError( $tag, $modulePath, $msg );
+                       if ( !in_array( $msg->getKey(), $filter, true ) ) {
+                               $this->addWarningOrError( $tag, $modulePath, $msg );
+                       }
                }
        }
 
index bc76f8f..3cc3407 100644 (file)
@@ -829,6 +829,7 @@ class ApiMain extends ApiBase {
                        'dnt',
                        'origin',
                        /* MediaWiki whitelist */
+                       'user-agent',
                        'api-user-agent',
                ] );
                foreach ( $requestedHeaders as $rHeader ) {
index c5a2512..75c8465 100644 (file)
@@ -68,21 +68,21 @@ class LCStoreStaticArray implements LCStore {
         * Encodes a value into an array format
         *
         * @param mixed $value
-        * @return array
+        * @return array|mixed
         * @throws RuntimeException
         */
        public static function encode( $value ) {
-               if ( is_scalar( $value ) || $value === null ) {
-                       // [V]alue
-                       return [ 'v', $value ];
+               if ( is_array( $value ) ) {
+                       // [a]rray
+                       return [ 'a', array_map( 'LCStoreStaticArray::encode', $value ) ];
                }
                if ( is_object( $value ) ) {
-                       // [S]erialized
+                       // [s]erialized
                        return [ 's', serialize( $value ) ];
                }
-               if ( is_array( $value ) ) {
-                       // [A]rray
-                       return [ 'a', array_map( 'LCStoreStaticArray::encode', $value ) ];
+               if ( is_scalar( $value ) || $value === null ) {
+                       // Scalar value, written directly without array
+                       return $value;
                }
 
                throw new RuntimeException( 'Cannot encode ' . var_export( $value, true ) );
@@ -91,21 +91,28 @@ class LCStoreStaticArray implements LCStore {
        /**
         * Decode something that was encoded with encode
         *
-        * @param array $encoded
+        * @param mixed $encoded
         * @return array|mixed
         * @throws RuntimeException
         */
-       public static function decode( array $encoded ) {
+       public static function decode( $encoded ) {
+               if ( !is_array( $encoded ) ) {
+                       // Scalar values are written directly without array
+                       return $encoded;
+               }
+
                $type = $encoded[0];
                $data = $encoded[1];
 
                switch ( $type ) {
-                       case 'v':
-                               return $data;
-                       case 's':
-                               return unserialize( $data );
                        case 'a':
                                return array_map( 'LCStoreStaticArray::decode', $data );
+                       case 's':
+                               return unserialize( $data );
+                       case 'v':
+                               // Support: MediaWiki 1.32 and earlier
+                               // Backward compatibility with older file format
+                               return $data;
                        default:
                                throw new RuntimeException(
                                        'Unable to decode ' . var_export( $encoded, true ) );
index 3acdec0..92d508a 100644 (file)
@@ -45,6 +45,9 @@
        "config-help-restart": "Vil du rydde alle gemte data, du har indtastet og genstarte installationen?",
        "config-restart": "Ja, genstart den",
        "config-env-php": "PHP $1 er installeret.",
+       "config-env-hhvm": "HHVM $1 er installeret.",
+       "config-apc": "[https://secure.php.net/apc APC] er installeret",
+       "config-apcu": "[https://secure.php.net/apcu APCu] er installeret",
        "config-db-type": "Databasetype:",
        "config-db-host": "Databasevært:",
        "config-db-name": "Databasenavn (ingen bindestreg):",
        "config-ns-generic": "Projekt",
        "config-ns-site-name": "Samme som wikinavnet: $1",
        "config-ns-other": "Andet (angiv)",
+       "config-ns-other-default": "MyWiki",
        "config-admin-box": "Administratorkonto",
        "config-admin-name": "Dit brugernavn:",
        "config-admin-password": "Adgangskode:",
        "config-admin-password-confirm": "Tast adgangskoden igen:",
+       "config-admin-name-blank": "Indtast et administratorbrugernavn.",
        "config-admin-email": "E-postadresse:",
        "config-admin-error-bademail": "Du har indtastet en ugyldig e-mailadresse.",
        "config-optional-continue": "Stil mig flere spørgsmål.",
        "config-extensions": "Udvidelser",
        "config-install-step-done": "udført",
        "config-install-step-failed": "mislykkedes",
+       "config-install-extensions": "Inkluderer udvidelser",
        "config-install-database": "Opsætter database",
        "config-install-user-alreadyexists": "Brugeren \"$1\" findes allerede",
        "config-install-user-create-failed": "Oprettelse af brugeren \"$1\" mislykkedes: $2",
        "config-install-tables": "Opretter tabeller",
+       "config-install-keys": "Genererer hemmelige nøgler",
        "config-install-mainpage-exists": "Forsiden findes allerede, springer over",
        "config-install-mainpage-failed": "Kunne ikke indsætte forside: $1",
        "config-help": "hjælp",
index 159b66e..7d3077f 100644 (file)
@@ -83,7 +83,7 @@
        "config-logo": "URL'ey Logoy:",
        "config-extensions": "Olekeni",
        "config-skins": "Temey",
-       "config-install-step-done": "qeyd ke",
+       "config-install-step-done": "temam",
        "config-install-step-failed": "ebe ser nêkewt",
        "config-install-schema": "Şema dek",
        "config-install-pg-commit": "Vırnayışa cemaati",
index 618e5c9..2fec602 100644 (file)
@@ -49,8 +49,8 @@
        "config-page-existingwiki": "Постојећи вики",
        "config-help-restart": "Желите ли да обришете све сачуване податке које сте унели и поново покренете процес инсталације?",
        "config-restart": "Да, покрени поново",
-       "config-welcome": "=== Провера окружења ===\nСада ће се извршити основна провера како би се утврдило да ли је ово окружење погодно за MediaWiki инсталацију.\nНе заборавите да укључите ове информације ако тражите подршку како завршити инсталацију.",
-       "config-sidebar": "* [https://www.mediawiki.org MediaWiki почетна]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Водич за кориснике]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Водич за администраторе]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧПП]\n----\n* <doclink href=Readme>Прочитај ме</doclink>\n* <doclink href=ReleaseNotes>Напомене о издању</doclink>\n* <doclink href=Copying>Копирање</doclink>\n* <doclink href=UpgradeDoc>Надоградња</doclink>",
+       "config-welcome": "=== Провера окружења ===\nСада ће се извршити основна провера како би се утврдило да ли је ово окружење погодно за инсталацију MediaWiki-ја.\nНе заборавите да укључите ове информације ако тражите подршку како завршити инсталацију.",
+       "config-sidebar": "* [https://www.mediawiki.org Почетна страна MediaWiki-ја]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Водич за кориснике]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Водич за администраторе]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ ЧПП]\n----\n* <doclink href=Readme>Прочитај ме</doclink>\n* <doclink href=ReleaseNotes>Напомене о издању</doclink>\n* <doclink href=Copying>Копирање</doclink>\n* <doclink href=UpgradeDoc>Надоградња</doclink>",
        "config-env-good": "Окружење је проверено.\nМожете да инсталирате MediaWiki.",
        "config-env-bad": "Окружење је проверено.\nНе можете да инсталирате MediaWiki.",
        "config-env-php": "PHP $1 је инсталиран.",
index 739dbec..8a089f6 100644 (file)
@@ -75,6 +75,20 @@ class EmailNotification {
         */
        protected $editor;
 
+       /**
+        * Extensions that have hooks for
+        * UpdateUserMailerFormattedPageStatus (to provide additional
+        * pageStatus indicators) need a way to make sure that, when their
+        * hook is called in SendWatchlistemailNotification, they only
+        * handle notifications using their pageStatus indicator.
+        *
+        * @since 1.33
+        * @return string
+        */
+       public function getPageStatus() {
+               return $this->pageStatus;
+       }
+
        /**
         * @deprecated since 1.27 use WatchedItemStore::updateNotificationTimestamp directly
         *
index 05af4fd..e9cadf3 100644 (file)
@@ -694,7 +694,7 @@ abstract class IndexPager extends ContextSource implements Pager {
         * Needless to say, it's really not a good idea to use a non-unique index
         * for this!  That won't page right.
         *
-        * @return string|array
+        * @return string|string[]
         */
        abstract function getIndexField();
 
@@ -712,7 +712,7 @@ abstract class IndexPager extends ContextSource implements Pager {
         * page_len,page_id avoids temp tables (given a page_len index). This would
         * also work if page_id was non-unique but we had a page_len,page_id index.
         *
-        * @return array
+        * @return string[]|array[]
         */
        protected function getExtraSortFields() {
                return [];
index 1154e05..2afc548 100644 (file)
@@ -433,8 +433,9 @@ class Command {
                        // TODO replace with clear_last_error when requirements are bumped to PHP7
                        set_error_handler( function () {
                        }, 0 );
-                       // phpcs:ignore Generic.PHP.NoSilencedErrors.Discouraged
-                       @trigger_error( '' );
+                       \MediaWiki\suppressWarnings();
+                       trigger_error( '' );
+                       \MediaWiki\restoreWarnings();
                        restore_error_handler();
 
                        $readPipes = array_filter( $pipes, function ( $fd ) use ( $desc ) {
index 67d1873..c9ce2b0 100644 (file)
@@ -882,6 +882,7 @@ class SpecialBlock extends FormSpecialPage {
                                }
 
                                $status = $currentBlock->update();
+                               // TODO handle failure
 
                                $logaction = 'reblock';
 
@@ -894,6 +895,8 @@ class SpecialBlock extends FormSpecialPage {
                                if ( (bool)$currentBlock->mHideName ) {
                                        $data['HideUser'] = true;
                                }
+
+                               $block = $currentBlock;
                        }
                } else {
                        $logaction = 'block';
@@ -938,9 +941,8 @@ class SpecialBlock extends FormSpecialPage {
                $logEntry->setComment( $data['Reason'][0] );
                $logEntry->setPerformer( $performer );
                $logEntry->setParameters( $logParams );
-               # Relate log ID to block IDs (T27763)
-               $blockIds = array_merge( [ $status['id'] ], $status['autoIds'] );
-               $logEntry->setRelations( [ 'ipb_id' => $blockIds ] );
+               # Relate log ID to block ID (T27763)
+               $logEntry->setRelations( [ 'ipb_id' => $block->getId() ] );
                $logId = $logEntry->insert();
 
                if ( !empty( $data['Tags'] ) ) {
index b2d5a16..632415c 100644 (file)
@@ -248,6 +248,7 @@ class SpecialUnblock extends SpecialPage {
                if ( isset( $data['Tags'] ) ) {
                        $logEntry->setTags( $data['Tags'] );
                }
+               $logEntry->setRelations( [ 'ipb_id' => $block->getId() ] );
                $logId = $logEntry->insert();
                $logEntry->publish( $logId );
 
index 510bf92..2bfc923 100644 (file)
@@ -87,10 +87,6 @@ class ContribsPager extends RangeChronologicalPager {
                }
                $this->getDateRangeCond( $startTimestamp, $endTimestamp );
 
-               // This property on IndexPager is set by $this->getIndexField() in parent::__construct().
-               // We need to reassign it here so that it is used when the actual query is ran.
-               $this->mIndexField = $this->getIndexField();
-
                // Most of this code will use the 'contributions' group DB, which can map to replica DBs
                // with extra user based indexes or partioning by user. The additional metadata
                // queries should use a regular replica DB since the lookup pattern is not all by user.
@@ -212,6 +208,22 @@ class ContribsPager extends RangeChronologicalPager {
                        $ipRangeConds = $user->isAnon() ? $this->getIpRangeConds( $this->mDb, $this->target ) : null;
                        if ( $ipRangeConds ) {
                                $queryInfo['tables'][] = 'ip_changes';
+                               /**
+                                * These aliases make `ORDER BY rev_timestamp, rev_id` from {@see getIndexField} and
+                                * {@see getExtraSortFields} use the replicated `ipc_rev_timestamp` and `ipc_rev_id`
+                                * columns from the `ip_changes` table, for more efficient queries.
+                                * @see https://phabricator.wikimedia.org/T200259#4832318
+                                */
+                               $queryInfo['fields'] = array_merge(
+                                       [
+                                               'rev_timestamp' => 'ipc_rev_timestamp',
+                                               'rev_id' => 'ipc_rev_id',
+                                       ],
+                                       array_diff( $queryInfo['fields'], [
+                                               'rev_timestamp',
+                                               'rev_id',
+                                       ] )
+                               );
                                $queryInfo['join_conds']['ip_changes'] = [
                                        'LEFT JOIN', [ 'ipc_rev_id = rev_id' ]
                                ];
@@ -350,17 +362,19 @@ class ContribsPager extends RangeChronologicalPager {
        }
 
        /**
-        * Override of getIndexField() in IndexPager.
-        * For IP ranges, it's faster to use the replicated ipc_rev_timestamp
-        * on the `ip_changes` table than the rev_timestamp on the `revision` table.
-        * @return string Name of field
+        * @return string
         */
        public function getIndexField() {
-               if ( $this->isQueryableRange( $this->target ) ) {
-                       return 'ipc_rev_timestamp';
-               } else {
-                       return 'rev_timestamp';
-               }
+               // Note this is run via parent::__construct() *before* $this->target is set!
+               return 'rev_timestamp';
+       }
+
+       /**
+        * @return string[]
+        */
+       protected function getExtraSortFields() {
+               // Note this is run via parent::__construct() *before* $this->target is set!
+               return [ 'rev_id' ];
        }
 
        function doBatchLookups() {
index 6aa80f5..3425ce1 100644 (file)
@@ -31,7 +31,8 @@
                        "Macofe",
                        "Archaeodontosaurus",
                        "Neriman2003",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Toghrul Rahimli"
                ]
        },
        "tog-underline": "Keçidlərin altını xətlə:",
        "editingsection": "Redaktə $1 (bölmə)",
        "editingcomment": "Redaktə et $1 (yeni bölmə)",
        "editconflict": "Eyni vaxtda redaktə: $1",
+       "explainconflict": "Siz məqaləni redaktə etməyə başlamazdan əvvəl başqa bir istifadəçi onu redaktə etmişdir. Yuxarıdakı mətn bölməsində hazırda mövcud olan səhifə mətni göstərilmişdir. Sizin düzəlişləriniz aşağıdakı mətn bölməsində göstərilmişdir. Siz dəyişiklikləri mövcud mətn ilə birləşdirməli olacaqsınız. \"$1\" düyməsini sıxdıqda <strong>yalnız</strong> yuxarıdakı mətn yayımlanacaq.",
        "yourtext": "Mətniniz",
        "storedversion": "Qeyd edilmiş versiya",
        "editingold": "'''DİQQƏT! Siz bu səhifənin köhnə versiyasını redaktə edirsiniz. Məqaləni yaddaşda saxlayacağınız halda bu versiyadan sonra edilmiş hər bir dəyişiklik itiriləcək.'''",
        "prefs-personal": "İstifadəçi profili",
        "prefs-rc": "Son dəyişikliklər",
        "prefs-watchlist": "İzləmə siyahısı",
+       "prefs-editwatchlist": "İzləmə siyahısını redaktə et",
+       "prefs-editwatchlist-label": "İzləmə siyahısındakıları redaktə et",
+       "prefs-editwatchlist-edit": "İzləmə siyahısındakı başlıqlara bax və ləğv et",
+       "prefs-editwatchlist-raw": "Mətn kimi redaktə et",
+       "prefs-editwatchlist-clear": "İzləmə siyahısını təmizlə",
        "prefs-watchlist-days": "İzləmə siyahısında göstərilən maksimal günlərin sayı:",
        "prefs-watchlist-days-max": "Maksimum $1 {{PLURAL:$1|gün|gün}}",
        "prefs-watchlist-edits": "İzləmə siyahısında göstərilən maksimal redaktələrin sayı:",
        "prefs-watchlist-edits-max": "Maksimum say: 1000",
        "prefs-watchlist-token": "İzləmə siyahısı nişanı:",
+       "prefs-watchlist-managetokens": "Tokenləri idarə et",
        "prefs-misc": "Digər seçimlər",
        "prefs-resetpass": "Parolu dəyiş",
        "prefs-changeemail": "E-poçtu dəyiş və ya sil",
        "prefs-advancedwatchlist": "Ətraflı variantlar",
        "prefs-displayrc": "Görüntü variantları",
        "prefs-displaywatchlist": "Görüntü variantları",
+       "prefs-changesrc": "Dəyişikliklərin göstərişi",
+       "prefs-pageswatchlist": "İzlənilmiş səhifələr",
        "prefs-diffs": "Fərqlər",
        "userrights": "İstifadəçi haqları",
        "userrights-lookup-user": "İstifadəçi seçimi",
        "sp-contributions-username": "IP-ünvanı və ya istifadəçi adı:",
        "sp-contributions-toponly": "Son redaktə olan dəyişiklikləri göstər",
        "sp-contributions-newonly": "Yalnız yeni səhifə yaradılan dəyişiklikləri göstər",
+       "sp-contributions-hideminor": "Kiçik redaktələri gizlət",
        "sp-contributions-submit": "Axtar",
        "whatlinkshere": "Bu səhifəyə bağlantılar",
        "whatlinkshere-title": "\"$1\" məqaləsinə keçid verən səhifələr",
        "special-characters-group-thai": "Tay",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
-       "mw-widgets-usersmultiselect-placeholder": "Əlavə et..."
+       "mw-widgets-dateinput-no-date": "Tarix seçilməyib",
+       "mw-widgets-usersmultiselect-placeholder": "Əlavə et...",
+       "date-range-from": "Tarixindən:",
+       "date-range-to": "Tarixədək:"
 }
index 3d21fcc..2e3e434 100644 (file)
        "rcfilters-group-results-by-page": "دییشیکلیکلری صفحه‌لرینه گؤره سیرالا",
        "rcfilters-activefilters": "چالیشقان فیلترلر",
        "rcfilters-activefilters-hide": "گیزلت",
+       "rcfilters-activefilters-hide-tooltip": "چالیشقان فیترلر بؤلومونو گیزلت",
        "rcfilters-advancedfilters": "گئنیش فیلترلر",
        "rcfilters-limit-title": "دَییشدیرمه سایی‌سی",
        "rcfilters-date-popup-title": "آختاریش چاغی",
        "rcfilters-filtergroup-userExpLevel": "ایشلدن آدیازدیرما و تجروبه‌سی",
        "rcfilters-filter-user-experience-level-registered-label": "آدیازدیریلمیش",
        "rcfilters-filter-user-experience-level-unregistered-label": "آدیازدیریلمامیش",
+       "rcfilters-filter-user-experience-level-newcomer-label": "یئنی گلنلر",
        "rcfilters-filter-user-experience-level-learner-label": "اؤیرننلر",
        "rcfilters-filter-user-experience-level-experienced-label": "تجروبه‌لی ایشلدنلر",
        "rcfilters-filtergroup-automated": "اوْتوماتیک دییشدیرمه‌لر",
        "rcfilters-filter-major-label": "کیچیک اوْلمایان دییشدیرمه‌لر",
        "rcfilters-filtergroup-watchlist": "ایزلنمیش صفحه‌لر",
        "rcfilters-filter-watchlist-watched-label": "ایزلنمیش",
+       "rcfilters-filter-watchlist-notwatched-label": "ایزلنمه‌میش",
        "rcfilters-filtergroup-changetype": "دَییشیکلیک نوعو",
        "rcfilters-filter-pageedits-label": "صفحه دییشدیرمه‌لری",
        "rcfilters-filter-newpages-label": "صفحه یاراتما",
index 646787e..b632df8 100644 (file)
        "filedelete-reason-otherlist": "Іншая прычына",
        "filedelete-reason-dropdown": "* Звычайныя прычыны выдаленьня\n** парушэньне аўтарскіх правоў\n** файл-дублікат",
        "filedelete-edit-reasonlist": "Рэдагаваць прычыны выдаленьня",
-       "filedelete-maintenance": "Выдаленьне і аднаўленьне файлаў часова забароненае па прычыне падтрымкі.",
+       "filedelete-maintenance": "Выдаленьне і аднаўленьне файлаў часова забароненае праз тэхнічныя працы.",
        "filedelete-maintenance-title": "Немагчыма выдаліць файл",
        "mimesearch": "Пошук па MIME",
        "mimesearch-summary": "Гэта старонка дазваляе адбор файлаў па іх MIME-тыпе.\nФармат уводу: тып_зьместу/падтып або тып_зьместу/*, напрыклад, <code>image/jpeg</code>.",
index 3bded91..c5fed42 100644 (file)
        "prefs-advancedwatchlist": "Разширени настройки",
        "prefs-displayrc": "Настройки за показване на списъка",
        "prefs-displaywatchlist": "Видими настройки",
+       "prefs-changesrc": "Показвани промени",
        "prefs-tokenwatchlist": "Маркер",
        "prefs-diffs": "Разлики",
        "prefs-help-prefershttps": "Това предпочитание ще бъде активирано при следващото влизане.",
index b38a675..7819758 100644 (file)
        "ns-specialprotected": "N'haller ket kemmañ ar pajennoù en esaouenn anv {{ns:special}}.",
        "titleprotected": "Gwarezet eo bet an titl-mañ p'eo bet krouet gant [[User:$1|$1]].\nSetu amañ perak <em>$2</em>.",
        "filereadonlyerror": "Dibosupl kemmañ ar restr \"$1\" abalamour m'emañ ar c'havlec'h restroù \"$2\" e mod lenn nemetken.\n\n\"$3\" eo an abeg roet gant merour ar reizhiad en deus prennet anezhi.",
+       "invalidtitle": "Titl direizh",
        "invalidtitle-knownnamespace": "Titl direizh gant an esaouenn anv \"$2\" hag an destenn \"$3\"",
        "invalidtitle-unknownnamespace": "Titl direizh gant an niverenn esaouenn anv $1 hag an destenn \"$2\" dianav",
        "exception-nologin": "N'oc'h ket kevreet",
        "subject-preview": "Rakwelet an danvez :",
        "previewerrortext": "C'hoarvezet ez eus ur fazi e-ser klask rakwelet ho kemmoù",
        "blockedtitle": "Implijer stanket",
-       "blockedtext": "'''Stanket eo bet ho kont implijer pe ho chomlec'h IP'''\n\nGant $1 eo bet graet.\nSetu an abeg evit se : ''$2''.\n\n* Stanket adalek : $8\n* Stanket betek : $6\n* Pad ar stankadenn : $7\n\nGallout a rit mont e darempred gant $1 pe gant unan eus ar [[{{MediaWiki:Grouppage-sysop}}|verourien]] all evit eskemm ganto war se. N'hallit implijout an arc'hwel 'kas ur postel d'an implijer-mañ' nemet ma'z eus bet spisaet ganeoc'h ur chomlec'h postel reizh en ho [[Special:Preferences|penndibaboù kont]] ha ma n'eo ket bet stanket.\n$3 eo ho chomlec'h IP, ha #$5 eo niverenn an identelezh stanket.\nMerkit anezho en ho koulennoù bep tro.",
+       "blockedtext": "<strong>Stanket eo bet ho kont implijer pe ho chomlec'h IP</strong>\n\nGant $1 eo bet graet.\nSetu an abeg evit se : <em>$2</em>.\n\n* Stanket adalek : $8\n* Stanket betek : $6\n* Kont stanket : $7\n\nGallout a rit mont e darempred gant $1 pe gant unan eus ar [[{{MediaWiki:Grouppage-sysop}}|verourien]] all evit eskemm ganto war se. N'hallit implijout an arc'hwel ''{{int:emailuser}} nemet ma'z eus bet spisaet ganeoc'h ur chomlec'h postel reizh en ho [[Special:Preferences|penndibaboù kont]] ha ma n'eo ket bet stanket.\n$3 eo ho chomlec'h IP, ha #$5 eo niverenn an identelezh stanket.\nMerkit anezho en ho koulennoù bep tro.",
        "autoblockedtext": "Stanket eo bet ho chomlec'h IP ent emgefreek rak implijet e veze gant un implijer all bet stanket gant $1.\nSetu aze an abeg :\n\n: ''$2''\n\n* Deroù ar stankadenn : $8\n* Termen ar stankadenn : $6\n* Kont stanket : $7\n\nGallout a rit mont e darempred gant $1 pe gant unan eus ar\n[[{{MediaWiki:Grouppage-sysop}}|verourien]] all ma kavit abeg er stankadenn.\n\nNotennit mat ne c'hallot implijout an dibarzh \"kas ur postel d'an implijer\" nemet ma'z eus bet merket ganeoc'h ur chomlec'h postel reizh en ho [[Special:Preferences|penndibaboù implijer]] ha ma n'eo ket bet stanket ivez.\n\n$3 eo ho chomlec'h IP evit poent ha #$5 ho niverenn stankadenn.\nMerkit mat an titouroù-se war kement goulenn savet ganeoc'h.\n\n$5 eo ho niverenn stankadenn. Merkit mat an niverenn-se pa rit goulennoù.",
        "systemblockedtext": "Stanket eo bet hoc'h anv implijer pe ho chomlec'h IP ent emgefre gant MediaWiki.\nSetu perak :\n\n:<em>$2</em>\n\n* Deroù ar stankadenn : $8\n* Termen ar stankadenn : $6\n* Hinienn a sell ar stankadenn outi : $7\n\n$3 eo ho chomlec'h IP diouzhtu.\nMerkit mat ar munudoù skrivet a-us er c'hlemmoù a c'halljec'h ober.",
        "blockednoreason": "n'eus bet roet abeg ebet",
        "diff-paragraph-moved-toold": "Ar rannbennad azo bet fiñvet. Klikit evit mont davet al lec'hiadur gozh.",
        "difference-missing-revision": "!!{{PLURAL:$2|Un adweladur|$2 adweladurioù}} eus an disheñvelder ($1) {{PLURAL:$2|n'eo ket bet kavet|n'int ket bet adkavet}}.\n\nC'hoarvezout a ra peurliesañ pa vez heuliet ul liamm disheñvel dispredet war-zu ur bajenn zo bet dilamet.\nGallout a reot kavout munudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} renabl an dilamadurioù].",
        "searchresults": "Disoc'hoù enklask",
+       "search-filter-title-prefix-reset": "Klask an holl bajennoù",
        "searchresults-title": "Disoc'hoù klask evit \"$1\"",
        "titlematches": "Klotadurioù gant an titloù",
        "textmatches": "Klotadurioù en testennoù",
        "prefs-watchlist-edits": "Niver a gemmoù da ziskouez er roll evezhiañ astennet :",
        "prefs-watchlist-edits-max": "Niver brasañ : 1000",
        "prefs-watchlist-token": "Jedouer evit ar roll evezhiañ :",
+       "prefs-watchlist-managetokens": "Merañ ar jedoueroù",
        "prefs-misc": "Penndibaboù liesseurt",
        "prefs-resetpass": "Cheñch ar ger-tremen",
        "prefs-changeemail": "Cheñch ar chomlec'h postel pe dilemel anezhañ",
        "recentchangeslinked-feed": "Heuliañ ar pajennoù liammet",
        "recentchangeslinked-toolbox": "Heuliañ ar pajennoù liammet",
        "recentchangeslinked-title": "Kemmoù a denn da \"$1\"",
-       "recentchangeslinked-summary": "Merkañ anv ur bajenn evit gwelet ar c'hemmoù war ar pajennoù liammet da pe adalek ar bajenn-se (evit gwelet izili ur rummad bennak, skrivañ Rummad:anv ar rummad).\nE <strong>tev</strong> emañ kemmoù ar pajennoù zo war ho [[Special:Watchlist|roll evezhiañ]].",
+       "recentchangeslinked-summary": "Merkañ anv ur bajenn evit gwelet ar c'hemmoù war ar pajennoù liammet da pe adalek ar bajenn-se (evit gwelet izili ur rummad bennak, skrivañ {{ns:category}}:Anv ar rummad).\nE <strong>tev</strong> emañ kemmoù ar pajennoù zo war ho [[Special:Watchlist|roll evezhiañ]].",
        "recentchangeslinked-page": "Anv ar bajenn :",
        "recentchangeslinked-to": "Diskouez ar c'hemmoù war-du ar pajennoù liammet kentoc'h eget re ar bajenn lakaet",
        "recentchanges-page-added-to-category": "[[:$1]] ouzhpennet d'ar rummad",
        "filehist-filesize": "Ment ar restr",
        "filehist-comment": "Notenn",
        "imagelinks": "Implij ar restr",
-       "linkstoimage": "Liammet eo {{PLURAL:$1|ar bajenn-mañ|an $1 pajenn-mañ}} ouzh ar restr-mañ :",
-       "linkstoimage-more": "Ouzhpenn $1 {{PLURAL:$1|bajenn zo liammet ouzh|pajenn zo liammet ouzh}} ar restr-mañ.\nNe laka ar roll-mañ war wel nemet {{PLURAL:$1|ar bajenn gentañ liammet ouzh|an $1 pajenn gentañ liammet ouzh}} ar rest-mañ.\nUr [[Special:WhatLinksHere/$2|roll klok]] a c'haller da gaout.",
-       "nolinkstoimage": "N'eus liamm ebet war-du ar skeudenn-mañ war pajenn ebet.",
+       "linkstoimage": "Implijout a ra {{PLURAL:$1|ar bajenn da heul|an $1 pajenn da heul}} ar restr-mañ :",
+       "linkstoimage-more": "Ouzhpenn $1 {{PLURAL:$1|bajenn zo liammet ouzh|pajenn zo liammet ouzh}} ar restr-mañ.\nNe ziskwel ar roll-mañ nemet {{PLURAL:$1|ar bajenn gentañ|an $1 pajenn gentañ}} a implij ar restr-mañ.\nUr [[Special:WhatLinksHere/$2|roll klok]] a c'haller da gaout.",
+       "nolinkstoimage": "Pajenn ebet ne implij ar restr-mañ.",
        "morelinkstoimage": "Gwelet [[Special:WhatLinksHere/$1|liammoù ouzhpenn]] war-du ar restr-mañ.",
        "linkstoimage-redirect": "$1 (adkas restr) $2",
        "duplicatesoffile": "Un eil eus ar restr-mañ eo {{PLURAL:$1|ar restr da-heul|ar restroù da-heul}}, ([[Special:FileDuplicateSearch/$2|evit gouzout hiroc'h]]) :",
        "deadendpages": "Pajennoù dall (hep liamm diabarzh)",
        "deadendpagestext": "Ar pajennoù da-heul n'int ket liammet ouzh pajenn ebet all eus {{SITENAME}}.",
        "protectedpages": "Pajennoù gwarezet",
+       "protectedpages-filters": "Siloù :",
        "protectedpages-indef": "Gwarezoù da badout hepken",
        "protectedpages-summary": "Rollañ a ra ar bajenn-mañ ar pajennoù zo gwarezet evit ar mare. Evit kaout roll ar pajennoù n'haller ket krouiñ, sellet ouzh [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Gwarez dre skalierad hepken",
        "ipb-disableusertalk": "Mirout ouzh an implijer-mañ da implijout e bajenn gaozeal dezhañ e-unan e-keit hag emañ stanket",
        "ipb-change-block": "Adstankañ an implijer-mañ gant an hevelep arventennoù",
        "ipb-confirm": "Kadarnaat ar stankadenn",
+       "ipb-type-label": "Seurt",
+       "ipb-pages-label": "Pajennoù",
        "badipaddress": "Kamm eo ar chomlec'h IP.",
        "blockipsuccesssub": "Stankadenn deuet da benn vat",
        "blockipsuccesstext": "Stanket eo bet [[Special:Contributions/$1|$1]].<br />\nSellit ouzh [[Special:BlockList|roll ar chomlec'hioù IP ha kontoù stanket]] evit gwiriañ ar stankadennoù.",
        "createaccountblock": "Harzet eo ar c'hrouiñ kontoù",
        "emailblock": "Postel stanket",
        "blocklist-nousertalk": "n'hall ket kemmañ e bajenn gaozeal dezhañ e-unan",
+       "blocklist-editing": "O kemmañ",
+       "blocklist-editing-sitewide": "o kemmañ (al lec'hienn a-bezh)",
        "ipblocklist-empty": "Goullo eo roll ar stankadennoù.",
        "ipblocklist-no-results": "An anv implijer pe ar chomlec'h IP goulennet n'eo ket stanket anezhañ.",
        "blocklink": "stankañ",
        "pageinfo-display-title": "Titl diskwelet",
        "pageinfo-default-sort": "Alc'hwez rummañ dre ziouer",
        "pageinfo-length": "Ment ar bajenn (en oktedoù)",
+       "pageinfo-namespace": "Esaouenn anv",
        "pageinfo-article-id": "Niverenn ar bajenn",
        "pageinfo-language": "Yezh ar bajenn",
        "pageinfo-language-change": "kemmañ",
        "confirm-unwatch-top": "Lemel ar bajenn-mañ a-ziwar ho roll evezhiañ",
        "confirm-rollback-button": "Mat eo",
        "confirm-rollback-top": "Disteurel ar c'hemmoù graet er bajenn-mañ ?",
+       "confirm-mcrundo-title": "Dizober ur c'hemm",
+       "mcrundofailed": "Dizober c'hwitet",
+       "mcrundo-missingparam": "Arventennoù rekis d'ar reked a vank.",
        "quotation-marks": "« $1 »",
        "imgmultipageprev": "← pajenn gent",
        "imgmultipagenext": "pajenn war-lerc'h →",
        "tag-mw-contentmodelchange": "cheñch ar patrom danvez",
        "tag-mw-contentmodelchange-description": "KEmmoù a [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel cheñch patrom danvez] ur bajenn",
        "tag-mw-new-redirect": "Adkas nevez",
+       "tag-mw-removed-redirect": "Nullañ an adkas",
+       "tag-mw-blank": "Goullonderiñ",
+       "tag-mw-replace": "Erlerc'hiet",
+       "tag-mw-rollback": "Dizober",
        "tag-mw-undo": "Dizober",
        "tags-title": "Tikedennoù",
        "tags-intro": "Rollañ a ra ar bajenn-mañ an tikedennoù a c'hall ar meziant implijout da verkañ kemmoù hag o zalvoudegezh.",
        "mw-widgets-titleinput-description-redirect": "adkas war-zu $1",
        "mw-widgets-categoryselector-add-category-placeholder": "Ouzhpennañ ur rummad...",
        "mw-widgets-usersmultiselect-placeholder": "Ouzhpennañ muioc'h...",
+       "mw-widgets-titlesmultiselect-placeholder": "Ouzhpennañ muioc'h...",
        "date-range-from": "Adalek deiziañ an :",
        "date-range-to": "Betek deiziad an :",
        "sessionmanager-tie": "N'hallet ket kevrediñ meur a seurt reked dilesañ : $1.",
index eda44b8..eb3c68e 100644 (file)
        "recentchangescount": "ژمارەی گۆڕانکارییەکان کە نیشان ئەدرێن لە حاڵەتی دیفاڵت:",
        "prefs-help-recentchangescount": "زۆرترین ژمارە: ١٠٠٠",
        "prefs-help-watchlist-token2": "ئەمە کلیلێکی تایبەتیی پێڕستی چاودێرییەکەتە. ھەرکەسێک بیزانێت دەتوانێت پێڕستی چاودێرییەکەت ببینێت، بۆیە لای خۆت بیپارێزە.\nئەگەر پێویستی کرد، [[Special:ResetTokens|دەتوانیت بیگۆڕیت]].",
+       "prefs-help-tokenmanagement": "دەتوانیت کلیلی نهێنی هەژمارەکەت ببینیت و بگۆڕیت، کە پێڕستی چاودێریتی پێ دەبینرێت. هەرکەسێک ئەم کلیلە بزانێت دەتوانێت پێڕستی چاودێریت ببینێت، بۆیە مەیدە بە کەس.",
        "savedprefs": "ھەڵبژاردەکانت پاشەکەوت کران",
        "savedrights": "گرووپەکانی بەکارھێنەر بۆ $1 پاشەکەوت کران.",
        "timezonelegend": "ناوچەی کاتی:",
        "prefs-advancedwatchlist": "هەڵبژاردە پێشکەوتووەکان",
        "prefs-displayrc": "ھەڵبژاردەکانی نیشاندان",
        "prefs-displaywatchlist": "ھەڵبژاردەکانی نیشاندان",
+       "prefs-changesrc": "ئەو گۆڕانکارییانەی نیشان دەدرێن",
+       "prefs-changeswatchlist": "ئەو گۆڕانکارییانەی نیشان دەدرێن",
+       "prefs-pageswatchlist": "پەڕە چاودێریکراوەکان",
        "prefs-tokenwatchlist": "نیشانە",
        "prefs-diffs": "جیاوازییەکان",
        "prefs-help-prefershttps": "بەکارخستنی ئەم تایبەتمەندییە کاریگەری لەسەر چوونەژوورەوەی داھاتووت دروست دەکات",
        "changecontentmodel-reason-label": "هۆکار:",
        "changecontentmodel-submit": "گۆڕین",
        "log-name-contentmodel": "لۆگی گۆڕینی مۆدێلی ناوەڕۆک",
+       "logentry-contentmodel-new": "$1 پەڕەی $3ی بە مۆدێلی ناوەڕۆکی نابنچینەیی «$5» دروست کرد.",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|مۆدێلی}} ناوەڕۆکی پەڕەی $3ی لە «$4» گۆڕی بە «$5»",
        "logentry-contentmodel-change-revertlink": "گەڕاندنەوە",
        "logentry-contentmodel-change-revert": "گەڕاندنەوە",
index d0cf811..35f6600 100644 (file)
        "grant-delete": "Mazat stránky, revize a protokolovací záznamy",
        "grant-editinterface": "Editovat jmenný prostor MediaWiki a celoprojektový/uživatelský JSON",
        "grant-editmycssjs": "Editovat váš uživatelský CSS/JSON/JavaScript",
-       "grant-editmyoptions": "Změna vašich uživatelských nastavení",
+       "grant-editmyoptions": "Změna vašich uživatelských nastavení a konfigurace JSON",
        "grant-editmywatchlist": "Upravovat váš seznam sledovaných stránek",
        "grant-editsiteconfig": "Editovat celoprojektové a uživatelské CSS/JS",
        "grant-editpage": "Editovat existující stránky",
        "mcrundofailed": "Vrácení editace zpět se nezdařilo",
        "mcrundo-missingparam": "V požadavku chybí povinné parametry.",
        "mcrundo-changed": "Od chvíle, kdy jste si prohlédli rozdíl, se stránka změnila. Zkontrolujte prosím novou změnu.",
+       "mcrundo-parse-failed": "Nepodařilo se analyzovat novou revizi: $1",
        "ellipsis": "…",
        "percent": "$1&#160;%",
        "quotation-marks": "„$1“",
index b703ffc..0596435 100644 (file)
@@ -70,7 +70,8 @@
                        "Saederup92",
                        "Fitoschido",
                        "Jorn Ari",
-                       "Fnielsen"
+                       "Fnielsen",
+                       "Weblars"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
        "prefs-editwatchlist-clear": "Ryd din overvågningsliste",
        "prefs-watchlist-days": "Antal dage der skal vises i overvågningslisten:",
        "prefs-watchlist-days-max": "Højst $1 {{PLURAL:$1|dag|dage}}",
-       "prefs-watchlist-edits": "Maksimalt antal redigeringer der vises i overvågningsliste:",
+       "prefs-watchlist-edits": "Maksimalt antal redigeringer der vises i overvågningslisten:",
        "prefs-watchlist-edits-max": "Maks. 1000",
-       "prefs-watchlist-token": "Overvågningslistenøgle:",
+       "prefs-watchlist-token": "Nøgle til overvågningsliste:",
+       "prefs-watchlist-managetokens": "Håndtér nøgler",
        "prefs-misc": "Forskelligt",
        "prefs-resetpass": "Skift adgangskode",
        "prefs-changeemail": "Skift eller fjern e-mailadresse",
        "stub-threshold-disabled": "Deaktiveret",
        "recentchangesdays": "Antal dage som skal vises i seneste ændringer:",
        "recentchangesdays-max": "(maks. $1 {{PLURAL:$1|dag|dage}})",
-       "recentchangescount": "Antal redigeringer som skal vises som standard i sidste ændringer, sidehistorikker og logger:",
+       "recentchangescount": "Antal redigeringer der som standard vises i seneste ændringer, sidehistorikker og logger:",
        "prefs-help-recentchangescount": "Maksimalt antal: 1000",
        "prefs-help-watchlist-token2": "Dette er den hemmelige nøgle til web-feed af din overvågningsliste.\nHvis andre kender den, vil man være i stand til at læse din overvågningsliste, så del den ikke.\n[[Special:ResetTokens|Klik her]] hvis du har brug at nulstille den.",
+       "prefs-help-tokenmanagement": "Du kan se og nulstille den hemmelige nøgle for din konto som kan få tilgang til din overvågningsliste via feeds. Alle som har nøglen vil kunne læse din overvågningsliste, så del den derfor ikke.",
        "savedprefs": "Dine indstillinger er blevet gemt.",
        "savedrights": "Brugergrupperne for {{GENDER:$1|$1}} er blevet gemt.",
        "timezonelegend": "Tidszone:",
        "prefs-changesrc": "Ændringer vist",
        "prefs-changeswatchlist": "Ændringer vist",
        "prefs-pageswatchlist": "Overvågede sider",
-       "prefs-tokenwatchlist": "Mærke",
+       "prefs-tokenwatchlist": "Nøgle",
        "prefs-diffs": "Forskelle",
        "prefs-help-prefershttps": "Denne indstilling træder i kraft næste gang du logger på.",
        "prefswarning-warning": "Du har foretaget ændringer af dine indstillinger, som ikke er gemt endnu.\nHvis du forlader denne side uden at klikke \"$1\", vil dine indstillinger ikke blive opdateret.",
        "rcfilters-watchlist-showupdated": "Ændringer til sider du ikke har besøgt siden ændringerne blev gjort vises med <strong>fed</strong>, med faste markører.",
        "rcfilters-preference-label": "Brug grænsefladesnittet uden JavaScript",
        "rcfilters-watchlist-preference-label": "Brug grænsefladesnittet uden JavaScript",
+       "rcfilters-watchlist-preference-help": "Indlæser overvågningslisten uden mulighed for søgning med filter eller fremhævelse.",
        "rcfilters-filter-showlinkedto-label": "Vis ændringer på sider der linker til",
        "rcfilters-target-page-placeholder": "Indtast et sidenavn (eller en kategori)",
        "rcnotefrom": "Nedenfor er op til '''$1''' {{PLURAL:$5|ændring|ændringer}} siden '''$2''' vist.",
        "tags-delete": "slet",
        "tags-activate": "aktiver",
        "tags-deactivate": "deaktiver",
-       "tags-hitcount": "{{PLURAL:$1|en ændring|$1 ændringer}}",
+       "tags-hitcount": "{{PLURAL:$1|1 ændring|$1 ændringer}}",
        "tags-create-heading": "Opret et nyt mærke",
        "tags-create-explanation": "Som standard vil nye mærker blive gjort tilgængelige for brugere og robotter.",
        "tags-create-tag-name": "Mærkenavn:",
index e6e6269..e051439 100644 (file)
        "grant-delete": "Seiten, Versionen und Logbucheinträge löschen",
        "grant-editinterface": "Den MediaWiki-Namensraum und wikiweites/Benutzer-JSON bearbeiten",
        "grant-editmycssjs": "Dein Benutzer-CSS/JSON/JavaScript bearbeiten",
-       "grant-editmyoptions": "Deine Benutzereinstellungen bearbeiten",
+       "grant-editmyoptions": "Deine Benutzereinstellungen und JSON-Konfiguration bearbeiten",
        "grant-editmywatchlist": "Deine Beobachtungsliste bearbeiten",
        "grant-editsiteconfig": "Wikiweites und Benutzer-CSS/JS bearbeiten",
        "grant-editpage": "Vorhandene Seiten bearbeiten",
index da00c89..9c7505d 100644 (file)
        "subject": "Mewzu:",
        "minoredit": "No yew vırnayışo werdiyo",
        "watchthis": "Şıma bewnê ena perre",
-       "savearticle": "Perre qeyd ke",
+       "savearticle": "Pele qeyd ke",
        "savechanges": "Vırnayışan qeyd kerê",
        "publishpage": "Riperri bare ke",
        "publishchanges": "Vırnayışan qeyd ke",
        "explainconflict": "Wexta ke şıma pel vurneyene yewna ten zi pel vurna.\nNuşteyo corin; halê pelo nıkayin mocneno.\nVurnayişê şıma cêr de mocya ( musya).\nVurnayişanê peyinan şıma gani qayd bıkeri.\nWexta ke şıma butonê \"$1\" tıkna '''teyna''' nuşteyo corin qayd beno.",
        "yourtext": "nuşteyê şıma",
        "storedversion": "Nuşteyo qaydbiyaye",
-       "editingold": "'''İqaz: Şıma ena perre sera yew çım ra viyarnayışê kıhani vırnenê.'''\nEger şıma ey qeyd kerê, pêro vırnayışê ke çım ra viyarnayış ra heta ewro biy, ê benê vıni.",
+       "editingold": "'''İqaz: Şıma ena pele sera yew çım ra viyarnayışê kıhani vurnenê.'''\nEger şıma ey qeyd kerê, pêro vurnayışê ke çımraviyarnayış ra heta ewro biy, ê benê vıni.",
        "yourdiff": "pêverronayiş",
        "copyrightwarning": "'''Recay iqazi:'''Sitey {{SITENAME}} ra iştıraki pêro umışiya $2 zerre deyo (teferuatan rê $1 bıvênê).\n\nİştırakê şıma, şıma qayıl niyê ke yewna merdımi kerpeyina bıvurnê ya zi yewna cayi ra vıla kerê ke, iştırakiştıraq = iştırak. mekewê.<br />\nFına zi qayılê ke iştıraq kewê, şıma qayılê ke şar vaco eno nuşte fılan kesi nusnayo ya zi meqemanê resmiyan ra zanayışê cı û malumatê cı esto / cayanê xoseran ra gırewtışi rê şıma garanti danê. '''Tiya de şıma werê telifi ra ke mısade nêgırewto, eserê cı tiya vıla mekerê! '''",
        "copyrightwarning2": "Ney bızanê ke nuşteyê ke şıma ruşnenê (şawenê) keyepela {{SITENAME}} herkes eşkeno nê nuşteyanê şıma ser kay bıkero. Eke şıma qayil niyê kes bıvurno, nuşteyanê xo meerzê ita. <br />\nWexto ke şıma nuşteyi zi erzenê ita; şıma gani teahud bıdê koti ra ardo (qandê teferuati ra referans: $1).",
        "feedback-bugnew": "Mı kontrol kı. Xetay newi xeber kı.",
        "feedback-bugornote": "Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1  jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da \"[ $3  $2 ]\", namey karber dê xoya piya u wasteriya karfiye.",
        "feedback-cancel": "Peyd kı",
-       "feedback-close": "Biya star",
+       "feedback-close": "Temam",
        "feedback-error1": "Xeta: APIi ra peyniyê nêşınasiyay",
        "feedback-error2": "Xeta: Timar kerdış nebı",
        "feedback-error3": "Xeta: API ra cewab çıno",
index 7a1cd1a..62d7d7b 100644 (file)
        "grant-delete": "Delete pages, revisions, and log entries",
        "grant-editinterface": "Edit the MediaWiki namespace and sitewide/user JSON",
        "grant-editmycssjs": "Edit your user CSS/JSON/JavaScript",
-       "grant-editmyoptions": "Edit your user preferences",
+       "grant-editmyoptions": "Edit your user preferences and JSON configuration",
        "grant-editmywatchlist": "Edit your watchlist",
        "grant-editsiteconfig": "Edit sitewide and user CSS/JS",
        "grant-editpage": "Edit existing pages",
index c2e7359..a4c57fb 100644 (file)
        "grant-delete": "Supprimer les pages, les révisions et les entrées du journal",
        "grant-editinterface": "Modifier l’espace de noms MediaWiki et le JSON du site/utilisateur",
        "grant-editmycssjs": "Modifier votre CSS/JSON/JavaScript utilisateur",
-       "grant-editmyoptions": "Modifier vos préférences utilisateur",
+       "grant-editmyoptions": "Modifier vos préférences utilisateur et votre configuration JSON",
        "grant-editmywatchlist": "Modifier votre liste de suivi",
        "grant-editsiteconfig": "Modifier les CSS/JS du site et ceux de l'utilisateur",
        "grant-editpage": "Modifier des pages existantes",
index 7e4076c..0db0b31 100644 (file)
        "grant-delete": "מחיקת דפים, גרסאות ורשומות יומן",
        "grant-editinterface": "עריכת מרחב השם מדיה ויקי וקובצי JSON של האתר כולו ושל משתמשים",
        "grant-editmycssjs": "עריכת CSS/JSON/JavaScript שלך",
-       "grant-editmyoptions": "עריכת העדפות המשתמש שלך",
+       "grant-editmyoptions": "ער×\99×\9bת ×\94×¢×\93פ×\95ת ×\94×\9eשת×\9eש ×\95תצ×\95רת ×\94Ö¾JSON ×©×\9c×\9a",
        "grant-editmywatchlist": "עריכת רשימת המעקב שלך",
        "grant-editsiteconfig": "עריכת קובצי CSS/JS של האתר כולו ושל משתמשים",
        "grant-editpage": "עריכת דפים קיימים",
index d381e4e..7a32ea2 100644 (file)
        "userlogin-createanother": "Másik felhasználói fiók létrehozása",
        "createacct-emailrequired": "E-mail-cím",
        "createacct-emailoptional": "E-mail-cím (opcionális)",
-       "createacct-email-ph": "Add meg e-mail címed",
+       "createacct-email-ph": "Add meg e-mail-címed",
        "createacct-another-email-ph": "Add meg az e-mail-címet",
        "createaccountmail": "Átmeneti, véletlenszerű jelszó beállítása és kiküldése a megadott e-mail-címre",
        "createaccountmail-help": "A jelszó megismerése nélkül készíthető valaki másnak fiók.",
index f1338df..7618bb1 100644 (file)
        "sp-contributions-logs": "registrari",
        "sp-contributions-talk": "diskutez",
        "sp-contributions-userrights": "yuri dil {{GENDER:$1|uzero}} pri administrado",
+       "sp-contributions-blocked-notice": "Ca uzero nun esas blokusata.\nVu povas vidar la lasta etiketo pri blokuso adinfre:",
        "sp-contributions-blocked-notice-anon": "Ica IP-adreso esas nune blokusita.\nLa maxim recenta etiketo pri blokuso esas videbla adinfre, por refero:",
        "sp-contributions-search": "Serchar kontributadi",
        "sp-contributions-username": "IP-adreso od uzantonomo:",
index f325592..130888a 100644 (file)
        "returnto": "$1 എന്ന താളിലേക്ക് മടങ്ങുക.",
        "tagline": "{{SITENAME}} സംരംഭത്തിൽ നിന്ന്",
        "help": "സഹായം",
+       "help-mediawiki": "മീഡിയവിക്കി സംബന്ധിച്ച സഹായം",
        "search": "തിരയൂ",
        "search-ignored-headings": " #<!-- ഈ വരി ഇതേ പോലെ വിടുക --> <pre>\n# തിരച്ചിലിൽ അവഗണിക്കപ്പെടുന്ന തലക്കെട്ടുകൾ.\n# താളിന്റെ തലക്കെട്ടുകളുടെ സൂചികവത്കരണം നടന്നാലുടൻ ഇവിടെ വരുത്തുന്ന മാറ്റങ്ങൾ ഫലത്തിൽ വരുന്നതാണ്.\n# ശൂന്യമായ തിരുത്ത് ചെയ്ത് താൾ വീണ്ടും സൂചികാവത്കരിക്കാവുന്നതാണ്.\n# എഴുത്തുരീതി ഇനി കൊടുക്കുന്നു:\n#   * \"#\" അക്ഷരത്തിൽ തുടങ്ങി വരിയുടെ അവസാനം വരെയുള്ള എന്തും സൂചനാക്കുറിപ്പ് ആയിരിക്കും.\n#   * ശൂന്യമല്ലാത്ത ഓരോ വരിയും അക്ഷരവ്യത്യാസമില്ലാതെ അവഗണിക്കപ്പെടാനുള്ള തലക്കെട്ടായിരിക്കും\nഅവലംബം\nപുറത്തേക്കുള്ള കണ്ണികൾ\nഇതും കാണുക\n #</pre> <!-- ഈ വരി ഇതേ പോലെ വിടുക-->",
        "searchbutton": "തിരയൂ",
        "badarticleerror": "താങ്കൾ ചെയ്യാനുദ്ദേശിക്കുന്നത് ഈ താളിൽ സാദ്ധ്യമല്ല",
        "cannotdelete": "\"$1\" എന്ന താൾ അഥവാ പ്രമാണം നീക്കം ചെയ്യാൻ കഴിഞ്ഞില്ല.\nഅതു മിക്കവാറും മറ്റാരെങ്കിലും നീക്കം ചെയ്തിട്ടുണ്ടാവാം.",
        "cannotdelete-title": "\"$1\" എന്ന താൾ മായ്ക്കാൻ കഴിയില്ല",
+       "delete-scheduled": "\"$1\" താൾ മായ്ക്കാൻ നിശ്ചയിച്ചിരിക്കുന്നു.\nദയവായി കാത്തിരിക്കുക.",
        "delete-hook-aborted": "മായ്ക്കൽ കൊളുത്തിനാൽ റദ്ദാക്കിയിരിക്കുന്നു.\nവിശദീകരണമൊന്നും നൽകിയിട്ടില്ല.",
        "no-null-revision": "\"$1\" എന്ന താളിന് പുതിയ ശൂന്യമായ മാറ്റമുള്ള നാൾപ്പതിപ്പ് സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല",
        "badtitle": "അസാധുവായ തലക്കെട്ട്",
        "cascadeprotected": "\"നിർഝരിത\" (cascading) സൗകര്യം ഉപയോഗിച്ച് തിരുത്തൽ നടത്തുന്നതിനു സം‌രക്ഷണം ഏർപ്പെടുത്തിയിട്ടുള്ള {{PLURAL:$1|താഴെ കൊടുത്തിട്ടുള്ള താളിന്റെ|താഴെ കൊടുത്തിട്ടുള്ള താളുകളുടെ}} ഭാഗമാണ്‌ ഈ താൾ. അതിനാൽ ഈ താൾ തിരുത്താൻ സാധിക്കില്ല:\n$2",
        "namespaceprotected": "'''$1''' നാമമേഖലയിലുള്ള താളുകൾ തിരുത്താൻ താങ്കൾക്ക് അനുവാദമില്ല.",
        "customcssprotected": "ഈ സി.എസ്.എസ്. താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.",
+       "customjsonprotected": "ഈ ജെസൺ താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.",
        "customjsprotected": "ഈ ജാവാസ്ക്രിപ്റ്റ് താളിൽ മറ്റൊരു ഉപയോക്താവിന്റെ സ്വകാര്യസജ്ജീകരണങ്ങൾ ഉൾക്കൊള്ളുന്നു, അതിനാൽ താങ്കൾക്ക് ഈ താൾ തിരുത്താൻ അനുവാദമില്ല.",
+       "sitecssprotected": "എല്ലാ സന്ദർശകരേയും ബാധിക്കാനിടയുള്ളതിനാൽ ഈ സി.എസ്.എസ്. താൾ തിരുത്താൻ താങ്കൾക്ക് അനുമതി ഇല്ല.",
+       "sitejsonprotected": "എല്ലാ സന്ദർശകരേയും ബാധിക്കാനിടയുള്ളതിനാൽ ഈ ജെസൺ താൾ തിരുത്താൻ താങ്കൾക്ക് അനുമതി ഇല്ല.",
+       "sitejsprotected": "എല്ലാ സന്ദർശകരേയും ബാധിക്കാനിടയുള്ളതിനാൽ ഈ ജാവാസ്ക്രിപ്റ്റ് താൾ തിരുത്താൻ താങ്കൾക്ക് അനുമതി ഇല്ല.",
        "mycustomcssprotected": "ഈ സി.എസ്.എസ്.  താൾ തിരുത്താനുള്ള അനുമതി താങ്കൾക്കില്ല.",
+       "mycustomjsonprotected": "ഈ ജെസൺ താൾ തിരുത്താനുള്ള അനുമതി താങ്കൾക്കില്ല.",
        "mycustomjsprotected": "ഈ ജാവാസ്ക്രിപ്റ്റ് താൾ തിരുത്താനുള്ള അനുമതി താങ്കൾക്കില്ല.",
        "myprivateinfoprotected": "താങ്കൾക്ക് സ്വന്തം സ്വകാര്യവിവരങ്ങൾ തിരുത്താനുള്ള അനുമതിയില്ല.",
        "mypreferencesprotected": "താങ്കൾക്ക് സ്വന്തം ക്രമീകരണങ്ങൾ തിരുത്താനുള്ള അനുമതിയില്ല.",
        "passwordtooshort": "രഹസ്യവാക്കിൽ കുറഞ്ഞതു {{PLURAL:$1|ഒരു അക്ഷരം|$1 അക്ഷരങ്ങൾ}} ഉണ്ടായിരിക്കണം.",
        "passwordtoolong": "രഹസ്യവാക്കിൽ പരമാവധി {{PLURAL:$1|ഒരു അക്ഷരം|$1 അക്ഷരങ്ങൾ}} മാത്രമേ പാടുള്ളു.",
        "passwordtoopopular": "പരക്കെ ഉപയോഗിക്കുന്ന രഹസ്യവാക്കുകൾ ഉപയോഗിക്കരുത്. ദയവായി ഊഹിച്ചെടുക്കാൻ ബുദ്ധിമുട്ടുള്ള രഹസ്യവാക്ക് തിരഞ്ഞെടുക്കുക.",
+       "passwordinlargeblacklist": "വളരെ സാധാരണമായി ഉപയോഗിക്കപ്പെടുന്ന രഹസ്യവാക്കുകളുടെ പട്ടികയിൽ പെട്ട രഹസ്യവാക്കാണ് നൽകിയത്. ദയവായി ഒരു അനന്യമായ രഹസ്യവാക്ക് തിരഞ്ഞെടുക്കുക.",
        "password-name-match": "താങ്കളുടെ രഹസ്യവാക്ക് ഉപയോക്തൃനാമത്തിൽ നിന്നും വ്യത്യസ്തമായിരിക്കണം.",
        "password-login-forbidden": "ഈ ഉപയോക്തൃനാമത്തിന്റെയും രഹസ്യവാക്കിന്റെയും ഉപയോഗം നിരോധിച്ചിരിക്കുന്നു.",
        "mailmypassword": "രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക",
        "changepassword-throttled": "കുറഞ്ഞ സമയത്തിനുള്ളിൽ താങ്കൾ നിരവധി തവണ പ്രവേശിക്കാൻ ശ്രമിച്ചിരിക്കുന്നു.\nവീണ്ടും ശ്രമിക്കുന്നതിനു മുമ്പ് ദയവായി $1 കാത്തിരിക്കുക.",
        "botpasswords": "യന്ത്രത്തിനുള്ള രഹസ്യവാക്കുകൾ",
        "botpasswords-disabled": "യാന്ത്രിക രഹസ്യവാക്കുകൾ അനുവദനീയമല്ല.",
+       "botpasswords-label-needsreset": "(രഹസ്യവാക്ക് പുനഃസജ്ജീകരിക്കേണ്ടതുണ്ട്)",
        "botpasswords-label-appid": "യന്ത്രത്തിന്റെ പേര്:",
        "botpasswords-label-create": "സൃഷ്ടിക്കുക",
        "botpasswords-label-update": "പുതുക്കുക",
        "passwordreset-emailsentemail": "താങ്കളുടെ അംഗത്വത്തിന് നൽകിയിട്ടുള്ള ഇമെയിൽ വിലാസം ഇതാണെങ്കിൽ,  രഹസ്യവാക്ക് പുനർസജ്ജീകരണ ഇമെയിൽ അയക്കുന്നതാണ്.",
        "passwordreset-emailsentusername": "ഈ ഉപയോക്തൃനാമത്തിന് ഒരു ഇമെയിൽ വിലാസം ചേർത്തിട്ടുണ്ടെങ്കിൽ,  രഹസ്യവാക്ക് പുനർസജ്ജീകരണ ഇമെയിൽ അയക്കുന്നതാണ്.",
        "passwordreset-invalidemail": "അസാധുവായ ഇമെയിൽ വിലാസം",
+       "passwordreset-nodata": "ഉപയോക്തൃനാമമോ ഇമെയിൽ വിലാസമോ നൽകിയിട്ടില്ല",
        "changeemail": "ഇമെയിൽ വിലാസം മാറ്റുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
        "changeemail-header": "താങ്കളുടെ ഇമെയിൽ വിലാസത്തിൽ മാറ്റംവരുത്താൻ ഈ ഫോം പൂരിപ്പിച്ചു നൽകുക.താങ്കളുടെ അംഗത്വവുമായി ഏതെങ്കിലുമൊരു ഇമെയിൽ വിലാസത്തിനുള്ള ബന്ധം ഒഴിവാക്കാൻ ഫോം പൂരിപ്പിക്കുമ്പോൾ പുതിയ ഇമെയിൽ വിലാസത്തിനുള്ള ഭാഗം ഒഴിച്ചിടുക.",
        "changeemail-no-info": "ഈ താൾ നേരിട്ടു കാണുന്നതിന് താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കണം.",
        "subject-preview": "വിഷയം എങ്ങനെയുണ്ടെന്ന് കാണുക:",
        "previewerrortext": "താങ്കളുടെ മാറ്റങ്ങൾ എങ്ങനെയുണ്ടെന്ന് കാണാൻ ശ്രമിച്ചപ്പോൾ പിഴവുണ്ടായി.",
        "blockedtitle": "ഉപയോക്താവിനെ തടഞ്ഞിരിക്കുന്നു",
+       "blocked-email-user": "<strong>ഇമെയിൽ അയക്കുന്നതിൽ നിന്നും താങ്കളുടെ ഉപയോക്തൃനാമത്തെ തടഞ്ഞിരിക്കുന്നു. ഈ വിക്കിയിലെ മറ്റ് താളുകൾ താങ്കൾക്ക് തിരുത്താവുന്നതാണ്.</strong> [[Special:MyContributions|അംഗത്വത്തിന്റെ സംഭാവനകളിൽ]] ഈ തടയലിന്റെ പൂർണ്ണവിവരങ്ങൾ താങ്കൾക്ക് കാണാവുന്നതാണ്.\n\nതടയൽ നടപ്പിലാക്കിയത് $1 ആണ്.\n\nനൽകിയിട്ടുള്ള കാരണം <em>$2</em> എന്നാണ്.\n\n* തടയൽ തുടങ്ങിയത്: $8\n* തടയൽ അവസാനിക്കുന്നത്: $6\n* തടയാൻ ഉദ്ദേശിച്ചത്: $7\n* തടയൽ ഐ.ഡി. #$5",
+       "blockedtext-partial": "<strong>താങ്കളുടെ ഉപയോക്തൃനാമത്തെ അല്ലെങ്കിൽ ഐ.പി. വിലാസത്തെ ഈ താളിൽ മാറ്റങ്ങൾ വരുത്തുന്നതിൽ നിന്നും തടഞ്ഞിരിക്കുന്നു. ഈ വിക്കിയിലെ മറ്റ് താളുകൾ താങ്കൾക്ക് തിരുത്താവുന്നതാണ്.</strong> [[Special:MyContributions|അംഗത്വത്തിന്റെ സംഭാവനകളിൽ]] ഈ തടയലിന്റെ പൂർണ്ണവിവരങ്ങൾ താങ്കൾക്ക് കാണാവുന്നതാണ്.\n\nതടയൽ നടപ്പിലാക്കിയത് $1 ആണ്.\n\nനൽകിയിട്ടുള്ള കാരണം <em>$2</em> എന്നാണ്.\n\n* തടയൽ തുടങ്ങിയത്: $8\n* തടയൽ അവസാനിക്കുന്നത്: $6\n* തടയാൻ ഉദ്ദേശിച്ചത്: $7\n* തടയൽ ഐ.ഡി. #$5",
        "blockedtext": "<strong>താങ്കളുടെ ഉപയോക്തൃനാമത്തേയോ താങ്കൾ ഇപ്പോൾ ലോഗിൻ ചെയ്തിട്ടുള്ള ഐ.പി. വിലാസത്തേയോ ഈ വിക്കി തിരുത്തുന്നതിൽ നിന്നു തടഞ്ഞിരിക്കുന്നു</strong>\n\n$1 ആണ് ഈ തടയൽ നടത്തിയത്. <em>$2</em> എന്നതാണു് അതിനു രേഖപ്പെടുത്തിയിട്ടുള്ള കാരണം.\n\n* തടയലിന്റെ തുടക്കം: $8\n* തടയലിന്റെ കാലാവധി: $6\n* തടയപ്പെട്ട ഉപയോക്താവ്: $7\n\nഈ തടയലിനെ പറ്റി ചർച്ച ചെയ്യാൻ താങ്കൾക്ക് $1 എന്ന ഉപയോക്താവിനേയോ മറ്റ് [[{{MediaWiki:Grouppage-sysop}}|കാര്യനിർവാഹകരെയോ]] സമീപിക്കാവുന്നതാണ്. [[Special:Preferences|താങ്കളുടെ ക്രമീകരണങ്ങളിൽ]] താങ്കൾ സാധുവായ ഇമെയിൽ വിലാസം കൊടുത്തിട്ടുണ്ടെങ്കിൽ, അതു അയക്കുന്നതിൽ നിന്നു താങ്കൾ തടയപ്പെട്ടിട്ടില്ലെങ്കിൽ, \"{{int:emailuser}}\" എന്ന സം‌വിധാനം ഉപയോഗിച്ച് താങ്കൾക്ക് മറ്റുപയോക്താക്കളുമായി ബന്ധപ്പെടാം. താങ്കളുടെ നിലവിലുള്ള ഐ.പി. വിലാസം $3 ഉം, താങ്കളുടെ തടയൽ ഐ.ഡി. #$5 ഉം ആണ്. ഇവ രണ്ടും താങ്കൾ കാര്യനിർവാഹകനെ ബന്ധപ്പെടുമ്പോൾ ചേർക്കുക.",
        "autoblockedtext": "താങ്കളുടെ ഐ.പി. വിലാസം സ്വയം തടയപ്പെട്ടിരിക്കുന്നു, മറ്റൊരു ഉപയോക്താവ് ഉപയോഗിച്ച കാരണത്താൽ $1 എന്ന കാര്യനിർവാഹകനാണ് തടഞ്ഞുവെച്ചത്.\nഇതിനു കാരണമായി നൽകിയിട്ടുള്ളത്:\n\n:<em>$2</em>\n\n* തടയൽ തുടങ്ങിയത്: $8\n* തടയൽ അവസാനിക്കുന്നത്: $6\n* തടയാൻ ഉദ്ദേശിച്ചത്: $7\n\nഈ തടയലിനെ കുറിച്ച് ചർച്ച ചെയ്യാൻ താങ്കൾക്കു $1 എന്ന കാര്യനിവാഹകനേയോ മറ്റു [[{{MediaWiki:Grouppage-sysop}}|കാര്യനിർവാഹകരെയോ]] ബന്ധപ്പെടാവുന്നതാണ്.\n\nശ്രദ്ധിക്കുക [[Special:Preferences|താങ്കളുടെ ക്രമീകരണങ്ങളിൽ]] സാധുവായ ഇമെയിൽ വിലാസം രേഖപ്പെടുത്താതിരിക്കുകയോ, അത് ഉപയോഗിക്കുന്നതിൽ നിന്ന് താങ്കളെ തടയുകയോ ചെയ്തിട്ടുണ്ടെങ്കിൽ \"{{int:emailuser}}\" എന്ന സം‌വിധാനം പ്രവർത്തന രഹിതമായിരിക്കും.\n\nതാങ്കളുടെ നിലവിലുള്ള ഐ.പി. വിലാസം $3 ആണ്, താങ്കളുടെ തടയലിന്റെ ഐ.ഡി. #$5 ആകുന്നു.\nദയവായി മുകളിൽ കൊടുത്തിരിക്കുന്ന വിവരങ്ങളെല്ലാം താങ്കൾ നടത്തുന്ന അന്വേഷണങ്ങളിൽ ഉൾപ്പെടുത്തുവാൻ ശ്രദ്ധിക്കുക.",
        "systemblockedtext": "താങ്കളുടെ ഉപയോക്തൃനാമം അല്ലെങ്കിൽ ഐ.പി. വിലാസം മീഡിയവിക്കി സ്വയം തടഞ്ഞിരിക്കുന്നു.\nതടയാനുള്ള കാരണം:\n\n:<em>$2</em>\n\n* തടയൽ തുടങ്ങിയത്: $8\n* തടയൽ കാലഹരണപ്പെടുന്നത്: $6\n* തടയാനുദ്ദേശിച്ചയാൾ: $7\n\nതാങ്കളുടെ നിലവിലെ ഐ.പി. വിലാസം $3 ആണ്.\nതാങ്കൾക്കെന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ മുകളിലെ എല്ലാ വിവരങ്ങളും ഉൾപ്പെടുത്തുക.",
        "editpage-invalidcontentmodel-title": "ഉള്ളടക്ക രീതി പിന്തുണയ്ക്കുന്നില്ല",
        "editpage-notsupportedcontentformat-title": "ഉള്ളടക്ക ഫോർമാറ്റ് പിന്തുണയ്ക്കുന്നില്ല",
        "editpage-notsupportedcontentformat-text": "ഉള്ളടക്കത്തിന്റെ ഫോർമാറ്റ് ആയ $1 ഉള്ളടക്ക രീതിയായ $2 പിന്തുണയ്ക്കുന്നില്ല.",
+       "slot-name-main": "മുഖ്യം",
        "content-model-wikitext": "വിക്കിഎഴുത്ത്",
        "content-model-text": "വെറും എഴുത്ത്",
        "content-model-javascript": "ജാവാസ്ക്രിപ്റ്റ്",
        "timezonelegend": "സമയ മേഖല:",
        "localtime": "പ്രാദേശിക സമയം:",
        "timezoneuseserverdefault": "വിക്കിയിൽ സ്വതേയുള്ളത് ഉപയോഗിക്കുക ($1)",
-       "timezoneuseoffset": "മറ്റുള്ളത് (എന്താണെന്നു നൽകുക)",
+       "timezoneuseoffset": "മറ്റുള്ളവ (എന്താണ് വ്യത്യാസമെന്ന് നൽകുക)",
+       "timezone-useoffset-placeholder": "ഉദാഹരണമായിട്ടുള്ള വിലകൾ: \"-07:00\" അല്ലെങ്കിൽ \"01:00\"",
        "servertime": "സെർവർ സമയം:",
        "guesstimezone": "സമയവ്യത്യാസം ബ്രൗസറിൽ നിന്നും ശേഖരിക്കൂ",
        "timezoneregion-africa": "ആഫ്രിക്ക",
        "grant-group-high-volume": "ഉയർന്ന തോതിലുള്ള പ്രവൃത്തികൾ നടത്തുക",
        "grant-group-customization": "ഇച്ഛാനുസരണമാക്കലുകളും ക്രമീകരണങ്ങളും",
        "grant-group-administration": "കാര്യനിർവ്വാഹക ജോലികൾ നടത്തുക",
+       "grant-group-private-information": "താങ്കളെക്കുറിച്ചുള്ള സ്വകാര്യവിവരങ്ങൾ എടുക്കുന്നു",
        "grant-group-other": "വിവിധ പ്രവൃത്തികൾ",
        "grant-blockusers": "ഉപയോക്താക്കളെ തടയുക, തടയൽ നീക്കുക",
        "grant-createaccount": "അംഗത്വങ്ങൾ സൃഷ്ടിക്കുക",
        "rcfilters-watchlist-edit-watchlist-button": "താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക തിരുത്തുക",
        "rcfilters-watchlist-showupdated": "മാറ്റങ്ങൾ ഉണ്ടായ ശേഷം താങ്കൾ സന്ദർശിക്കാത്ത താളുകളിലെ മാറ്റങ്ങൾ, തളിക അടയാളത്തോടൊപ്പം <strong>കടുപ്പിച്ച്</strong> കാണിച്ചിരിക്കുന്നു.",
        "rcfilters-preference-label": "ജാവാസ്ക്രിപ്റ്റ്-രഹിത സമ്പർക്കമുഖം ഉപയോഗിക്കുക",
-       "rcfilters-preference-help": "à´\85à´°à´¿à´ªàµ\8dà´ªà´\95à´³ും പ്രമുഖമാക്കിക്കാട്ടൽ സൗകര്യവും ഇല്ലാതെ സമീപകാലമാറ്റങ്ങൾ എടുക്കുക",
+       "rcfilters-preference-help": "à´\85à´°à´¿à´ªàµ\8dà´ªà´\95ൾ à´¤à´¿à´°à´¯à´²ും പ്രമുഖമാക്കിക്കാട്ടൽ സൗകര്യവും ഇല്ലാതെ സമീപകാലമാറ്റങ്ങൾ എടുക്കുക",
        "rcfilters-watchlist-preference-label": "ജാവാസ്ക്രിപ്റ്റ്-രഹിത സമ്പർക്കമുഖം ഉപയോഗിക്കുക",
-       "rcfilters-watchlist-preference-help": "à´\85à´°à´¿à´ªàµ\8dà´ªà´\95à´³ും പ്രമുഖമാക്കിക്കാട്ടൽ സൗകര്യവും ഇല്ലാതെ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക എടുക്കുക.",
+       "rcfilters-watchlist-preference-help": "à´\85à´°à´¿à´ªàµ\8dà´ªà´\95ൾ à´¤à´¿à´°à´¯à´²ും പ്രമുഖമാക്കിക്കാട്ടൽ സൗകര്യവും ഇല്ലാതെ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക എടുക്കുക.",
        "rcfilters-filter-showlinkedfrom-label": "കണ്ണി ചേർക്കപ്പെട്ട താളുകളിലെ മാറ്റങ്ങൾ കാണിക്കുക",
        "rcfilters-filter-showlinkedfrom-option-label": "തിരഞ്ഞെടുത്ത താളിൽ <strong>കണ്ണി ചേർക്കപ്പെട്ട താളുകൾ</strong>",
        "rcfilters-filter-showlinkedto-label": "കണ്ണി ചേർക്കപ്പെട്ട താളുകളിലെ മാറ്റങ്ങൾ കാണിക്കുക",
        "pageinfo-display-title": "പ്രദർശിപ്പിക്കേണ്ട തലക്കെട്ട്",
        "pageinfo-default-sort": "സ്വതേയുള്ള ക്രമപ്പെടുത്തൽ ചാവി",
        "pageinfo-length": "താളിന്റെ നീളം (ബൈറ്റിൽ)",
+       "pageinfo-namespace": "നാമമേഖല",
        "pageinfo-article-id": "താളിന്റെ ഐ.ഡി.",
        "pageinfo-language": "താളിന്റെ ഉള്ളടക്കത്തിന്റെ ഭാഷ",
        "pageinfo-language-change": "മാറ്റുക",
        "version-specialpages": "പ്രത്യേക താളുകൾ",
        "version-parserhooks": "പാഴ്‌സർ കൊളുത്തുകൾ",
        "version-variables": "ചരങ്ങൾ",
+       "version-editors": "എഡിറ്റർമാർ",
        "version-antispam": "പാഴെഴുത്ത് തടയൽ",
        "version-other": "മറ്റുള്ളവ",
        "version-mediahandlers": "മീഡിയ കൈകാര്യോപകരണങ്ങൾ",
        "redirect-file": "പ്രമാണത്തിന്റെ പേര്",
        "redirect-logid": "രേഖയുടെ ഐ.ഡി.",
        "redirect-not-exists": "വില കണ്ടെത്താൻ കഴിഞ്ഞില്ല",
+       "redirect-not-numeric": "വില അക്കത്തിലല്ല",
        "fileduplicatesearch": "ഒരേ പ്രമാണത്തിന്റെ പലപകർപ്പുകളുണ്ടോയെന്നു തിരയുക",
        "fileduplicatesearch-summary": "ഒരേ പ്രമാണം തന്നെ വിവിധ പേരിലുണ്ടോയെന്നു ഹാഷ് വാല്യൂവധിഷ്ഠിതമായി തിരയുക.",
        "fileduplicatesearch-filename": "പ്രമാണത്തിന്റെ പേര്:",
        "log-action-filter-delete": "മായ്ക്കലിന്റെ തരം:",
        "log-action-filter-import": "ഇറക്കുമതിയുടെ തരം:",
        "log-action-filter-move": "മാറ്റലിന്റെ തരം:",
+       "log-action-filter-newusers": "അംഗത്വസൃഷ്ടിയുടെ തരം:",
+       "log-action-filter-patrol": "റോന്തുചുറ്റലിന്റെ തരം:",
+       "log-action-filter-protect": "സംരക്ഷണത്തിന്റെ തരം:",
+       "log-action-filter-rights": "അവകാശമാറ്റത്തിന്റെ തരം:",
+       "log-action-filter-suppress": "ഒതുക്കലിന്റെ തരം:",
+       "log-action-filter-upload": "അപ്‌ലോഡിന്റെ തരം:",
        "log-action-filter-all": "എല്ലാം",
        "log-action-filter-block-block": "തടയൽ",
        "log-action-filter-block-reblock": "തടയലിൽ വരുത്തുന്ന മാറ്റം",
        "log-action-filter-delete-revision": "നാൾപ്പതിപ്പ് മായ്ക്കൽ",
        "log-action-filter-import-interwiki": "ട്രാൻസ്‌‌വിക്കി ഇറക്കുമതി",
        "log-action-filter-import-upload": "എക്സ്.എം.എൽ. അപ്‌ലോഡ് വഴിയുള്ള ഇറക്കുമതി",
+       "log-action-filter-managetags-create": "ടാഗ് സൃഷ്ടി",
        "log-action-filter-protect-protect": "സംരക്ഷണം",
        "log-action-filter-protect-unprotect": "സംരക്ഷണമൊഴിവാക്കൽ",
        "log-action-filter-protect-move_prot": "സംരക്ഷണം മാറ്റി",
index 4b473fb..cb67002 100644 (file)
        "usercssyoucanpreview": "'''Conziglie:''' Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u CSS nuève apprime de reggistrà.",
        "userjsyoucanpreview": "'''Conziglie:''' Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u JavaScript nuève apprime de reggistrà.",
        "usercsspreview": "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u CSS tue.'''\n'''Non g'à state angore reggistrete ninde!'''",
+       "userjsonpreview": "<strong>Arrecuerdete ca tu ste teste/'ndruche sulamende in andeprime 'a configurazione JSON tue.\nNon g'à state angore reggistrete ninde!</strong>",
        "userjspreview": "'''Arrecuerdete ca tu ste vide/teste sulamende in andeprime 'u JavaScript tue.'''\n'''Non g'à state angore reggistrete ninde!'''",
        "sitecsspreview": "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u CSS tune.'''\n'''Non g'à state angore reggistrate ninde!'''",
+       "sitejsonpreview": "<strong>Arrecuerdete ca tu ste 'ndruche sulamende in andeprime 'a configurazione JSON tue.\nNon g'à state angore reggistrete ninde!</strong>",
        "sitejspreview": "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u codece JavaScript tune.'''\n'''Non g'à state angore reggistrate ninde!'''",
        "userinvalidconfigtitle": "<strong>Attenziò:</strong> Non ge stè 'nu skin \"$1\".\nArrecuerdete ca jndr'à le file personalizzete .css, .json e .js s'ause scrivere le titele cu le lettere piccenne, pe esembie {{ns:user}}:Foo/vector.css è diverse da {{ns:user}}:Foo/Vector.css.",
        "updated": "(Cangiete)",
index b596aa8..83a05eb 100644 (file)
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
-       "tog-hideminor": "СкÑ\80Ñ\8bваÑ\82Ñ\8c Ð¼Ð°Ð»Ñ\8bе Ð¿Ñ\80авки Ð¸Ð· Ð¿Ð¾Ñ\81ледниÑ\85 Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹",
+       "tog-hideminor": "СкÑ\80Ñ\8bваÑ\82Ñ\8c Ð¼Ð°Ð»Ñ\8bе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð¸Ð· Ñ\81пиÑ\81ка Ñ\81вежиÑ\85 Ð¿Ñ\80авок",
        "tog-hidepatrolled": "Скрывать патрулированные правки в списке свежих правок",
        "tog-newpageshidepatrolled": "Скрывать отпатрулированные страницы в списке новых страниц",
        "tog-hidecategorization": "Скрывать категоризацию страниц",
        "tog-showhiddencats": "Показывать скрытые категории",
        "tog-norollbackdiff": "Не показывать разницу версий после выполнения отката",
        "tog-useeditwarning": "Предупреждать, когда я покидаю страницу с несохранёнными изменениями",
-       "tog-prefershttps": "\nВсегда используйте безопасное соединение при входе в систему",
+       "tog-prefershttps": "Всегда использовать защищённое соединение после представления системе",
        "underline-always": "Всегда",
        "underline-never": "Никогда",
        "underline-default": "Использовать настройки браузера",
        "helppage-top-gethelp": "Помощь",
        "mainpage": "Заглавная страница",
        "mainpage-description": "Заглавная страница",
-       "policy-url": "Project:Политика вики",
+       "policy-url": "Project:Правила",
        "portal": "Портал сообщества",
        "portal-url": "Project:Портал сообщества",
        "privacy": "Политика конфиденциальности",
        "pagetitle": "$1 — {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
-       "retrievedfrom": "Ð\9fолÑ\83Ñ\87ено Ð¾Ñ\82 \"$1\"",
+       "retrievedfrom": "Ð\98Ñ\81Ñ\82оÑ\87ник â\80\94 $1",
        "youhavenewmessages": "{{PLURAL:$3|Вы получили}} $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|Вы получили}} $1 от {{PLURAL:$3|$3 участника|$3 участников|1=другого участника}} ($2).",
        "youhavenewmessagesmanyusers": "Вы получили $1 от множества пользователей ($2).",
        "collapsible-expand": "развернуть",
        "confirmable-confirm": "{{GENDER:$1|Вы}} уверены?",
        "confirmable-yes": "Да",
-       "confirmable-no": "нет",
+       "confirmable-no": "Ð\9dет",
        "thisisdeleted": "Просмотреть или восстановить $1?",
        "viewdeleted": "Просмотреть $1?",
        "restorelink": "{{PLURAL:$1|$1 удалённую правку|$1 удалённые правки|$1 удалённых правок|1=удалённую правку}}",
        "sort-descending": "Упорядочить по убыванию",
        "sort-ascending": "Упорядочить по возрастанию",
        "nstab-main": "Статья",
-       "nstab-user": "\nСтраница пользователя",
+       "nstab-user": "{{GENDER:{{ROOTPAGENAME}}|Участник|Участница}}",
        "nstab-media": "Мультимедиа",
        "nstab-special": "Служебная страница",
        "nstab-project": "О проекте",
        "showingresultsinrange": "Ниже показано до {{PLURAL:$1|<strong>1</strong> результата|<strong>$1</strong> результата|<strong>$1</strong> результатов}} в диапазоне от <strong>$2</strong> до <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|1=Результат <strong>$1</strong> из <strong>$3</strong>|Результаты <strong>$1—$2</strong> из <strong>$3</strong>}}",
        "search-nonefound": "Соответствий запросу не найдено.",
-       "search-nonefound-thiswiki": "Нет результатов, соответствующих запросу на этом сайте.",
+       "search-nonefound-thiswiki": "Нет результатов, соответствующих запросу, на этом сайте.",
        "powersearch-legend": "Расширенный поиск",
        "powersearch-ns": "Поиск в пространствах имён:",
        "powersearch-togglelabel": "Отметить:",
index 45b8a2d..ff61f48 100644 (file)
        "tog-minordefault": "Подразумевано означавај све измене као мање",
        "tog-previewontop": "Прикажи претпреглед пре оквира за уређивање",
        "tog-previewonfirst": "Прикажи претпреглед при првој измени",
-       "tog-enotifwatchlistpages": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ð¸Ð¼ÐµÑ\98л када се промени страница или датотека са мог списка надгледања",
-       "tog-enotifusertalkpages": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ð¸Ð¼ÐµÑ\98л кад се промени моја корисничка страница за разговор",
-       "tog-enotifminoredits": "ТакоÑ\92е Ð¼Ð¸ Ð¿Ð¾Ñ\88аÑ\99и Ð¸Ð¼ÐµÑ\98л код мањих измена страница и датотека",
-       "tog-enotifrevealaddr": "Ð\9eÑ\82кÑ\80иÑ\98 Ð¼Ð¾Ñ\98Ñ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83 Ñ\83 Ð¸Ð¼ÐµÑ\98ловима Ð¾Ð±Ð°Ð²ÐµÑ\88Ñ\82еÑ\9aа",
+       "tog-enotifwatchlistpages": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ðµ-поÑ\80Ñ\83кÑ\83 када се промени страница или датотека са мог списка надгледања",
+       "tog-enotifusertalkpages": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ðµ-поÑ\80Ñ\83кÑ\83 кад се промени моја корисничка страница за разговор",
+       "tog-enotifminoredits": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ðµ-поÑ\80Ñ\83кÑ\83 Ð¸ код мањих измена страница и датотека",
+       "tog-enotifrevealaddr": "Ð\9eÑ\82кÑ\80иÑ\98 Ð¼Ð¾Ñ\98Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е Ñ\83 Ðµ-поÑ\80Ñ\83кама Ð·Ð° Ð¾Ð±Ð°Ð²ÐµÑ\88Ñ\82аваÑ\9aе",
        "tog-shownumberswatching": "Прикажи број корисника који надгледају",
        "tog-oldsig": "Ваш постојећи потпис:",
        "tog-fancysig": "Сматрај потпис као викитекст (без аутоматског повезивања)",
@@ -80,7 +80,7 @@
        "tog-watchlisthideanons": "Сакриј измене анонимних корисника са списка надгледања",
        "tog-watchlisthidepatrolled": "Сакриј патролиране измене са списка надгледања",
        "tog-watchlisthidecategorization": "Сакриј категоризацију страница",
-       "tog-ccmeonemails": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\98е Ð¸Ð¼ÐµÑ\98лова које пошаљем другим корисницима",
+       "tog-ccmeonemails": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\98е Ðµ-поÑ\80Ñ\83ка које пошаљем другим корисницима",
        "tog-diffonly": "Не приказуј садржај странице испод разлика",
        "tog-showhiddencats": "Прикажи скривене категорије",
        "tog-norollbackdiff": "Не приказуј разлику након извршеног враћања",
        "navigation-heading": "Мени за навигацију",
        "errorpagetitle": "Грешка",
        "returnto": "Назад на страницу „$1”.",
-       "tagline": "Из {{GRAMMAR:генитив|{{SITENAME}}}}",
+       "tagline": "Извор: {{SITENAME}}",
        "help": "Помоћ",
        "help-mediawiki": "Помоћ о MediaWiki-ју",
        "search": "Претрага",
        "toolbox": "Алатке",
        "tool-link-userrights": "Промена {{GENDER:$1|корисничких}} група",
        "tool-link-userrights-readonly": "Приказ {{GENDER:$1|корисничких}} група",
-       "tool-link-emailuser": "СлаÑ\9aе Ð¸Ð¼ÐµÑ\98ла {{GENDER:$1|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ници}}",
+       "tool-link-emailuser": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ке {{GENDER:$1|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и|коÑ\80иÑ\81никÑ\83/ци}}",
        "imagepage": "Прикажи страницу датотеке",
        "mediawikipage": "Прикажи страницу поруке",
        "templatepage": "Прикажи страницу шаблона",
        "pool-errorunknown": "Непозната грешка",
        "pool-servererror": "Услуга бројача редова није доступна ($1).",
        "poolcounter-usage-error": "Грешка при употреби: $1",
-       "aboutsite": "О {{GRAMMAR:датив|{{SITENAME}}}}",
-       "aboutpage": "Project:О_{{GRAMMAR:датив|{{SITENAME}}}}",
+       "aboutsite": "О пројекту {{SITENAME}}",
+       "aboutpage": "Project:О_пројекту_{{SITENAME}}",
        "copyright": "Садржај је доступан под лиценцом $1 осим ако је другачије наведено.",
        "copyrightpage": "{{ns:project}}:Ауторска права",
        "currentevents": "Актуелности",
        "userlogout": "Одјава",
        "notloggedin": "Нисте пријављени",
        "userlogin-noaccount": "Немате налог?",
-       "userlogin-joinproject": "Придружите се {{GRAMMAR:датив|{{SITENAME}}}}",
+       "userlogin-joinproject": "Придружите се пројекту {{SITENAME}}",
        "createaccount": "Отварање налога",
        "userlogin-resetpassword-link": "Заборавили сте лозинку?",
        "userlogin-helplink2": "Помоћ при пријављивању",
        "userlogin-loggedin": "Већ сте пријављени као {{GENDER:$1|$1}}.\nКористите доњи образац да бисте се пријавили као други корисник.",
        "userlogin-reauth": "Морате да се поново пријавите да бисте верификовали да сте {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Отвори још један налог",
-       "createacct-emailrequired": "Ð\98меÑ\98л-адÑ\80еÑ\81а",
-       "createacct-emailoptional": "Ð\98меÑ\98л-адÑ\80еÑ\81а (опционално)",
-       "createacct-email-ph": "УнеÑ\81иÑ\82е Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83",
-       "createacct-another-email-ph": "УнеÑ\81иÑ\82е Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83",
-       "createaccountmail": "Ð\9aоÑ\80иÑ\81Ñ\82и Ð¿Ñ\80ивÑ\80еменÑ\83, Ð½Ð°Ñ\81Ñ\83миÑ\87нÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83 Ð¸ Ð¿Ð¾Ñ\88аÑ\99и Ñ\98е Ð½Ð° Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ñ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83",
+       "createacct-emailrequired": "Ð\90дÑ\80еÑ\81а Ðµ-поÑ\88Ñ\82е",
+       "createacct-emailoptional": "Ð\90дÑ\80еÑ\81а Ðµ-поÑ\88Ñ\82е (опционално)",
+       "createacct-email-ph": "УнеÑ\81иÑ\82е Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е",
+       "createacct-another-email-ph": "УнеÑ\81иÑ\82е Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е",
+       "createaccountmail": "Ð\9aоÑ\80иÑ\81Ñ\82и Ð¿Ñ\80ивÑ\80еменÑ\83, Ð½Ð°Ñ\81Ñ\83миÑ\87нÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83 Ð¸ Ð¿Ð¾Ñ\88аÑ\99и Ñ\98е Ð½Ð° Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е",
        "createaccountmail-help": "Може се користити да се некоме отвори налог без сазнања лозинке.",
        "createacct-realname": "Право име (опционално)",
        "createacct-reason": "Разлог",
        "password-name-match": "Лозинка се мора разликовати од корисничког имена.",
        "password-login-forbidden": "Коришћење овог корисничког имена и лозинке је забрањено.",
        "mailmypassword": "Ресетуј лозинку",
-       "passwordremindertitle": "Нова привремена лозинка за {{GRAMMAR:акузатив|{{SITENAME}}}}",
+       "passwordremindertitle": "{{SITENAME}} — привремена лозинка",
        "passwordremindertext": "Неко са IP адресе $1 је затражио нову лозинку на викију {{SITENAME}} ($4).\nСтворена је привремена лозинка за {{GENDER:$2|корисника|корисницу|корисника}} $2 која гласи $3.\nУколико је ово ваш захтев, сада се пријавите и поставите нову лозинку.\nПривремена лозинка истиче за {{PLURAL:$5|један дан|$5 дана}}.\n\nАко је неко други затражио промену лозинке, или сте се сетили ваше лозинке и не желите да је мењате, занемарите ову поруку.",
-       "noemail": "Не постоји имејл-адреса за {{GENDER:$1|корисника|корисницу}} $1.",
-       "noemailcreate": "Ð\9cоÑ\80аÑ\82е Ð´Ð° Ð½Ð°Ð²ÐµÐ´ÐµÑ\82е Ð²Ð°Ð¶ÐµÑ\9bÑ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83.",
-       "passwordsent": "Ð\9dова Ð»Ð¾Ð·Ð¸Ð½ÐºÐ° Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а Ð½Ð° Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83 {{GENDER:$1|коÑ\80иÑ\81ника|коÑ\80иÑ\81нице}} $1.\nПоново се пријавите након што је примите.",
+       "noemail": "{{GENDER:$1|Корисник „$1” није навео|Корисница „$1” није навела|Корисник/ца „$1” није навео/ла}} адресу е-поште.",
+       "noemailcreate": "Ð\9cоÑ\80аÑ\82е Ð´Ð° Ð½Ð°Ð²ÐµÐ´ÐµÑ\82е Ð²Ð°Ð¶ÐµÑ\9bÑ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е.",
+       "passwordsent": "Ð\9dова Ð»Ð¾Ð·Ð¸Ð½ÐºÐ° Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а Ð½Ð° Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е {{GENDER:$1|коÑ\80иÑ\81ника|коÑ\80иÑ\81ниÑ\86е|коÑ\80иÑ\81ника/це}} $1.\nПоново се пријавите након што је примите.",
        "blocked-mailpassword": "Уређивање са ваше IP адресе је блокирано. Ради спречавања злоупотребе, забрањена је и функција враћања лозинке са ње.",
-       "eauthentsent": "Ð\98меÑ\98л Ð¾ Ð¿Ð¾Ñ\82вÑ\80ди Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82 Ð½Ð° Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ñ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83.\nÐ\9fÑ\80е Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ\98иÑ\85 Ð´Ñ\80Ñ\83гиÑ\85 Ñ\81лаÑ\9aа Ð¸Ð¼ÐµÑ\98лова Ð½Ð° Ð½Ð°Ð»Ð¾Ð³, Ð¼Ð¾Ñ\80аÑ\9bеÑ\82е Ð¿Ñ\80аÑ\82иÑ\82и Ñ\83пÑ\83Ñ\82Ñ\81Ñ\82ва Ñ\83 Ð¸Ð¼ÐµÑ\98лÑ\83 да бисте потврдили да је налог заиста ваш.",
+       "eauthentsent": "Ð\95-поÑ\80Ñ\83ка Ð¾ Ð¿Ð¾Ñ\82вÑ\80ди Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а Ð½Ð° Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е.\nÐ\9fÑ\80е Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ\98иÑ\85 Ð´Ñ\80Ñ\83гиÑ\85 Ñ\81лаÑ\9aа Ðµ-поÑ\80Ñ\83ка Ð½Ð° Ð½Ð°Ð»Ð¾Ð³, Ð¼Ð¾Ñ\80аÑ\9bеÑ\82е Ð¿Ñ\80аÑ\82иÑ\82и Ñ\83пÑ\83Ñ\82Ñ\81Ñ\82ва Ñ\83 Ðµ-поÑ\80Ñ\83Ñ\86и да бисте потврдили да је налог заиста ваш.",
        "throttled-mailpassword": "Порука за промену лозинке је послата у {{PLURAL:$1|1=последњих сат времена|последња $1 сата|последњих $1 сати}}.\nДа бисмо спречили злоупотребу, подсетник шаљемо само једном у року од {{PLURAL:$1|1=сат времена|$1 сата|$1 сати}}.",
        "mailerror": "Грешка при слању поруке: $1",
        "acct_creation_throttle_hit": "Посетиоци овог викија који користе вашу IP адресу су отворили {{PLURAL:$1|1=један налог|$1 налога}} у претходних $2, што је највећа дозвољена вредност у овом временском периоду.\nКао резултат тога, ти посетиоци тренутно не могу отварати више налога.",
-       "emailauthenticated": "Ð\92аÑ\88а Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а је потврђена на дан $2 у $3 ч.",
-       "emailnotauthenticated": "Ð\92аÑ\88а Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а Ñ\98оÑ\88 Ð½Ð¸Ñ\98е Ð¿Ð¾Ñ\82вÑ\80Ñ\92ена.\nÐ\9dиÑ\98едан Ð¸Ð¼ÐµÑ\98л Ð½ÐµÑ\9bе Ð´Ð° Ð±Ñ\83де Ð¿Ð¾Ñ\81лаÑ\82 ни у једном од следећих случајева.",
-       "noemailprefs": "Ð\9dаведиÑ\82е Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83 у подешавањима за оспособљавање ових функција.",
-       "emailconfirmlink": "Потврдите своју имејл-адресу",
-       "invalidemailaddress": "Ð\98меÑ\98л-адÑ\80еÑ\81а Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð±Ñ\83де Ð¿Ñ\80иÑ\85ваÑ\9bена Ñ\98еÑ\80 Ñ\98е Ñ\83 Ð½ÐµÐ²Ð°Ð¶ÐµÑ\9bем Ð¾Ð±Ð»Ð¸ÐºÑ\83.\nУнеÑ\81иÑ\82е Ð¸Ñ\81пÑ\80авну адресу или оставите празно поље.",
+       "emailauthenticated": "Ð\92аÑ\88а Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е је потврђена на дан $2 у $3 ч.",
+       "emailnotauthenticated": "Ð\92аÑ\88а Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е Ñ\98оÑ\88 Ð½Ð¸Ñ\98е Ð¿Ð¾Ñ\82вÑ\80Ñ\92ена.\nÐ\9dиÑ\98една Ðµ-поÑ\80Ñ\83ка Ð½ÐµÑ\9bе Ð±Ð¸Ñ\82и Ð¿Ð¾Ñ\81лаÑ\82а ни у једном од следећих случајева.",
+       "noemailprefs": "Ð\9dаведиÑ\82е Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е у подешавањима за оспособљавање ових функција.",
+       "emailconfirmlink": "Потврдите адресу е-поште",
+       "invalidemailaddress": "Ð\9dиÑ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе Ð¿Ñ\80иÑ\85ваÑ\82иÑ\82и Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е Ñ\98еÑ\80 Ñ\98е Ñ\83 Ð½ÐµÐ²Ð°Ð¶ÐµÑ\9bем Ñ\84оÑ\80маÑ\82Ñ\83.\nУнеÑ\81иÑ\82е Ð´Ð¾Ð±Ñ\80о Ñ\84оÑ\80маÑ\82иÑ\80ану адресу или оставите празно поље.",
        "cannotchangeemail": "Адресе е-поште налога не могу се променити на овом викију.",
-       "emaildisabled": "Овај сајт не може да шаље имејлове.",
+       "emaildisabled": "Ова локација не може да шаље е-поруке.",
        "accountcreated": "Налог је отворен",
        "accountcreatedtext": "Кориснички налог [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) је отворен.",
        "createaccount-title": "Отварање корисничког налога за {{SITENAME}}",
-       "createaccount-text": "Ð\9dеко Ñ\98е Ð¾Ñ\82воÑ\80ио Ð½Ð°Ð»Ð¾Ð³ Ñ\81а Ð²Ð°Ñ\88ом Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81ом Ð½Ð° Ð¿Ñ\80оÑ\98екÑ\82Ñ\83 {{SITENAME}} ($4) Ð¿Ð¾Ð´ Ð¸Ð¼ÐµÐ½Ð¾Ð¼ â\80\9e$2â\80\9c Ð¸ Ñ\81а Ð»Ð¾Ð·Ð¸Ð½ÐºÐ¾Ð¼ â\80\9e$3â\80\9c.\nОдмах требате да се пријавите и промените своју лозинку.\n\nМожете да занемарите ову поруку, ако је овај налог отворен грешком.",
+       "createaccount-text": "Ð\9dеко Ñ\98е Ð¾Ñ\82воÑ\80ио Ð½Ð°Ð»Ð¾Ð³ Ñ\81а Ð²Ð°Ñ\88ом Ð°Ð´Ñ\80еÑ\81ом Ðµ-поÑ\88Ñ\82е Ð½Ð° Ð¿Ñ\80оÑ\98екÑ\82Ñ\83 {{SITENAME}} ($4) Ð¿Ð¾Ð´ Ð¸Ð¼ÐµÐ½Ð¾Ð¼ â\80\9e$2â\80\9d Ð¸ Ñ\81а Ð»Ð¾Ð·Ð¸Ð½ÐºÐ¾Ð¼ â\80\9e$3â\80\9d.\nОдмах требате да се пријавите и промените своју лозинку.\n\nМожете да занемарите ову поруку, ако је овај налог отворен грешком.",
        "login-throttled": "Превише пута сте покушали да се пријавите.\nСачекајте $1 пре него што покушате поново.",
        "login-abort-generic": "Неуспешна пријава – прекинуто",
        "login-migrated-generic": "Ваш налог је мигриран. Ваше корисничко више не постоји на овом викију.",
        "pt-createaccount": "Отварање налога",
        "pt-userlogout": "Одјави ме",
        "php-mail-error-unknown": "Непозната грешка у функцији PHP mail().",
-       "user-mail-no-addy": "Ð\9fокÑ\83Ñ\88али Ñ\81Ñ\82е Ð´Ð° Ð¿Ð¾Ñ\88аÑ\99еÑ\82е Ð¸Ð¼ÐµÑ\98л Ð±ÐµÐ· Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е.",
-       "user-mail-no-body": "Ð\9fокÑ\83Ñ\88ано Ñ\81лаÑ\9aе Ð¸Ð¼ÐµÑ\98ла Ñ\81 празним или неразумно кратким садржајем.",
+       "user-mail-no-addy": "Ð\9fокÑ\83Ñ\88али Ñ\81Ñ\82е Ð´Ð° Ð¿Ð¾Ñ\88аÑ\99еÑ\82е Ðµ-поÑ\80Ñ\83кÑ\83 Ð±ÐµÐ· Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е.",
+       "user-mail-no-body": "Ð\9fокÑ\83Ñ\88али Ñ\81Ñ\82е Ð´Ð° Ð¿Ð¾Ñ\88аÑ\99еÑ\82е Ðµ-поÑ\80Ñ\83кÑ\83 Ñ\81а празним или неразумно кратким садржајем.",
        "changepassword": "Промена лозинке",
        "resetpass_announce": "Да бисте завршили пријаву, подесите нову лозинку овде.",
        "resetpass_text": "<!-- Овде унесите текст -->",
        "resetpass-submit-cancel": "Откажи",
        "resetpass-wrong-oldpass": "Неважећа привремена или тренутна лозинка.\nМожда сте већ променили лозинку или сте захтевали нову привремену лозинку.",
        "resetpass-recycled": "Унели сте садашњу лозинку, да бисте променили лозинку морате унети нову.",
-       "resetpass-temp-emailed": "Ð\9fÑ\80иÑ\98авили Ñ\81Ñ\82е Ñ\81е Ñ\81а Ð¿Ñ\80ивÑ\80еменим ÐºÐ¾Ð´Ð¾Ð¼ Ð¸Ð· Ð¸Ð¼ÐµÑ\98ла.\nÐ\94а Ð±Ð¸Ñ\81Ñ\82е Ð·Ð°Ð²Ñ\80Ñ\88или Ð¿Ñ\80иÑ\98авÑ\99иваÑ\9aе морате поставити нову лозинку овде:",
+       "resetpass-temp-emailed": "Ð\9fÑ\80иÑ\98авили Ñ\81Ñ\82е Ñ\81е Ñ\81а Ð¿Ñ\80ивÑ\80еменим ÐºÐ¾Ð´Ð¾Ð¼ Ð¸Ð· Ðµ-поÑ\80Ñ\83ке.\nÐ\94а Ð±Ð¸Ñ\81Ñ\82е Ð·Ð°Ð²Ñ\80Ñ\88или Ð¿Ñ\80иÑ\98авÑ\99иваÑ\9aе, морате поставити нову лозинку овде:",
        "resetpass-temp-password": "Привремена лозинка:",
        "resetpass-abort-generic": "Промену лозинке је прекинуо додатак.",
        "resetpass-expired": "Ваша лозинка је истекла. Поставите нову лозинку да бисте се пријавили.",
        "resetpass-expired-soft": "Ваша лозинка је истекла и морате је променити. Поставите нову лозинку или кликните „{{int:authprovider-resetpass-skip-label}}“ да је промените касније.",
        "resetpass-validity-soft": "Ваша лозинка није важећа: $1\n\nИзаберите нову одмах или кликните на „{{int:authprovider-resetpass-skip-label}}“ да је промените касније.",
        "passwordreset": "Ресетовање лозинке",
-       "passwordreset-text-one": "Ð\9fопÑ\83ниÑ\82е Ð¾Ð²Ð°Ñ\98 Ð¾Ð±Ñ\80азаÑ\86 Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ð´Ð¾Ð±Ð¸Ð»Ð¸ Ð¿Ñ\80ивÑ\80еменÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83 Ð½Ð° Ð¸Ð¼ÐµÑ\98л.",
-       "passwordreset-text-many": "{{PLURAL:$1|Ð\98Ñ\81пÑ\83ниÑ\82е Ñ\98едно Ð¾Ð´ Ð¿Ð¾Ñ\99а ÐºÐ°ÐºÐ¾ Ð±Ð¸Ñ\81Ñ\82е Ð´Ð¾Ð±Ð¸Ð»Ð¸ Ð¿Ñ\80ивÑ\80еменÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83 Ð¿Ñ\83Ñ\82ем Ð¸Ð¼ÐµÑ\98ла.}}",
+       "passwordreset-text-one": "Ð\9fопÑ\83ниÑ\82е Ð¾Ð²Ð°Ñ\98 Ð¾Ð±Ñ\80азаÑ\86 Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ð¿Ñ\80имили Ð¿Ñ\80ивÑ\80еменÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83 Ð¿Ñ\83Ñ\82ем Ðµ-поÑ\88Ñ\82е.",
+       "passwordreset-text-many": "{{PLURAL:$1|Ð\98Ñ\81пÑ\83ниÑ\82е Ñ\98едно Ð¾Ð´ Ð¿Ð¾Ñ\99а Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ð¿Ñ\80имили Ð¿Ñ\80ивÑ\80еменÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83 Ð¿Ñ\83Ñ\82ем Ðµ-поÑ\88Ñ\82е.}}",
        "passwordreset-disabled": "Ресетовање лозинке је онемогућено на овом викију.",
-       "passwordreset-emaildisabled": "Ð\98меÑ\98л Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bен на овом викију.",
+       "passwordreset-emaildisabled": "ФÑ\83нкÑ\86иÑ\98а Ðµ-поÑ\88Ñ\82е Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bена на овом викију.",
        "passwordreset-username": "Корисничко име:",
        "passwordreset-domain": "Домен:",
-       "passwordreset-email": "Ð\98меÑ\98л-адÑ\80еÑ\81а:",
+       "passwordreset-email": "Ð\90дÑ\80еÑ\81а Ðµ-поÑ\88Ñ\82е:",
        "passwordreset-emailtitle": "Детаљи налога на викију {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Ð\9dеко (веÑ\80оваÑ\82но Ð²Ð¸, Ñ\81а IP Ð°Ð´Ñ\80еÑ\81е $1) Ð·Ð°Ñ\82Ñ\80ажио Ñ\98е Ñ\80еÑ\81еÑ\82оваÑ\9aе Ð²Ð°Ñ\88е \nлозинке Ð·Ð° Ð¿Ñ\80оÑ\98екаÑ\82 {{SITENAME}} ($4). Ð¡Ð»ÐµÐ´ÐµÑ\9bи ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки {{PLURAL:$3|налог Ñ\98е Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½|налози Ñ\81Ñ\83 Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð¸}} \nÑ\81а Ð¾Ð²Ð¾Ð¼ Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81ом:\n\n$2\n\n{{PLURAL:$3|Ð\9eва Ð¿Ñ\80ивÑ\80емена Ð»Ð¾Ð·Ð¸Ð½ÐºÐ°|Ð\9eве Ð¿Ñ\80ивÑ\80емене Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ}} Ñ\9bе Ð¸Ñ\81Ñ\82еÑ\9bи Ð·Ð° {{PLURAL:$5|Ñ\98едан Ð´Ð°Ð½|$5 Ð´Ð°Ð½Ð°}}.\nÐ\9eдмаÑ\85 Ñ\82Ñ\80ебаÑ\82е Ð´Ð° Ñ\81е Ð¿Ñ\80иÑ\98авиÑ\82е Ð¸ Ð¾Ð´Ð°Ð±ÐµÑ\80иÑ\82е Ð½Ð¾Ð²Ñ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83. Ð\90ко Ñ\98е Ð½ÐµÐºÐ¾ Ð´Ñ\80Ñ\83ги Ð½Ð°Ð¿Ñ\80авио Ð¾Ð²Ð°Ñ\98 \nзаÑ\85Ñ\82ев Ð¸Ð»Ð¸ Ñ\81Ñ\82е Ñ\81е Ñ\81еÑ\82или Ñ\81воÑ\98е Ð¿Ñ\80вобиÑ\82не Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ, Ð° Ð½Ðµ \nжелиÑ\82е Ð´Ð° Ñ\98е Ð¿Ñ\80омениÑ\82е, Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ð·Ð°Ð½ÐµÐ¼Ð°Ñ\80иÑ\82е Ð¾Ð²Ñ\83 Ð¿Ð¾Ñ\80Ñ\83кÑ\83 Ð¸ Ð½Ð°Ñ\81Ñ\82авиÑ\82е Ð´Ð° ÐºÐ¾Ñ\80иÑ\81Ñ\82иÑ\82е Ñ\81воÑ\98Ñ\83 Ñ\81Ñ\82аÑ\80Ñ\83 \nлозинку.",
-       "passwordreset-emailtext-user": "{{GENDER:$1|Корисник је затражио|Корисница је затражила}} подсетник о подацима за пријаву на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} са овом имејл-адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.",
+       "passwordreset-emailtext-ip": "Ð\9dеко (веÑ\80оваÑ\82но Ð²Ð¸, Ñ\81а IP Ð°Ð´Ñ\80еÑ\81е $1) Ð·Ð°Ñ\82Ñ\80ажио Ñ\98е Ñ\80еÑ\81еÑ\82оваÑ\9aе Ð²Ð°Ñ\88е \nлозинке Ð·Ð° Ð¿Ñ\80оÑ\98екаÑ\82 {{SITENAME}} ($4). Ð¡Ð»ÐµÐ´ÐµÑ\9bи ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки {{PLURAL:$3|налог Ñ\98е Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½|налози Ñ\81Ñ\83 Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð¸}} \nÑ\81а Ð¾Ð²Ð¾Ð¼ Ð°Ð´Ñ\80еÑ\81ом Ðµ-поÑ\88Ñ\82е:\n\n$2\n\n{{PLURAL:$3|Ð\9eва Ð¿Ñ\80ивÑ\80емена Ð»Ð¾Ð·Ð¸Ð½ÐºÐ°|Ð\9eве Ð¿Ñ\80ивÑ\80емене Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ}} Ð¸Ñ\81Ñ\82еÑ\9bи Ñ\9bе Ð·Ð° {{PLURAL:$5|Ñ\98едан Ð´Ð°Ð½|$5 Ð´Ð°Ð½Ð°}}.\nÐ\9eдмаÑ\85 Ñ\82Ñ\80ебаÑ\82е Ð´Ð° Ñ\81е Ð¿Ñ\80иÑ\98авиÑ\82е Ð¸ Ð¾Ð´Ð°Ð±ÐµÑ\80иÑ\82е Ð½Ð¾Ð²Ñ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÑ\83. \nÐ\90ко Ñ\98е Ð½ÐµÐºÐ¾ Ð´Ñ\80Ñ\83ги Ð½Ð°Ð¿Ñ\80авио Ð¾Ð²Ð°Ñ\98 Ð·Ð°Ñ\85Ñ\82ев Ð¸Ð»Ð¸ Ñ\81Ñ\82е Ñ\81е Ñ\81еÑ\82или \nоÑ\80игиналне Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ, Ð° Ð½Ðµ Ð¶ÐµÐ»Ð¸Ñ\82е Ð´Ð° Ñ\98е Ð¿Ñ\80омениÑ\82е, \nможеÑ\82е Ð´Ð° Ð·Ð°Ð½ÐµÐ¼Ð°Ñ\80иÑ\82е Ð¾Ð²Ñ\83 Ð¿Ð¾Ñ\80Ñ\83кÑ\83 Ð¸ Ð½Ð°Ñ\81Ñ\82авиÑ\82е Ð´Ð° \nкоÑ\80иÑ\81Ñ\82иÑ\82е Ñ\81воÑ\98Ñ\83 Ñ\81Ñ\82аÑ\80Ñ\83 лозинку.",
+       "passwordreset-emailtext-user": "Корисник/ца $1 затражио/ла је ресетовање ваше лозинке на пројекту {{SITENAME}} ($4).\nСледећи кориснички {{PLURAL:$3|налог је повезан|налози су повезани}} са овом адресом е-поште:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nОдмах требате да се пријавите и одаберите нову лозинку. \nАко је неко други направио овај захтев или сте се сетили \nоригиналне лозинке, а не желите да је промените, \nможете да занемарите ову поруку и наставите да \nкористите своју стару лозинку.",
        "passwordreset-emailelement": "Корисничко име: \n$1\n\nПривремена лозинка: \n$2",
-       "passwordreset-emailsentemail": "Ð\90ко Ñ\98е Ð¾Ð²Ð° Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð° Ñ\81а Ð²Ð°Ñ\88им Ð½Ð°Ð»Ð¾Ð³Ð¾Ð¼, Ð¾Ð½Ð´Ð° Ñ\9bе Ð¸Ð¼ÐµÑ\98л Ð¾ Ñ\80еÑ\81еÑ\82оваÑ\9aÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ Ð±Ð¸Ñ\82и Ð¿Ð¾Ñ\81лаÑ\82.",
-       "passwordreset-emailsentusername": "Ð\90ко Ð¿Ð¾Ñ\81Ñ\82оÑ\98и Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð° Ñ\81а Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ñ\80иÑ\81ниÑ\87ким Ð¸Ð¼ÐµÐ½Ð¾Ð¼, Ð¾Ð½Ð´Ð° Ñ\9bе Ð¸Ð¼ÐµÑ\98л Ð¾ Ñ\80еÑ\81еÑ\82оваÑ\9aÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ Ð±Ð¸Ñ\82и Ð¿Ð¾Ñ\81лаÑ\82.",
+       "passwordreset-emailsentemail": "Ð\90ко Ñ\98е Ð¾Ð²Ð° Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð° Ñ\81а Ð²Ð°Ñ\88им Ð½Ð°Ð»Ð¾Ð³Ð¾Ð¼, Ð¾Ð½Ð´Ð° Ñ\9bе Ðµ-поÑ\80Ñ\83ка Ð¾ Ñ\80еÑ\81еÑ\82оваÑ\9aÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ Ð±Ð¸Ñ\82и Ð¿Ð¾Ñ\81лаÑ\82а.",
+       "passwordreset-emailsentusername": "Ð\90ко Ð¿Ð¾Ñ\81Ñ\82оÑ\98и Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð° Ñ\81а Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ñ\80иÑ\81ниÑ\87ким Ð¸Ð¼ÐµÐ½Ð¾Ð¼, Ð¾Ð½Ð´Ð° Ñ\9bе Ðµ-поÑ\80Ñ\83ка Ð¾ Ñ\80еÑ\81еÑ\82оваÑ\9aÑ\83 Ð»Ð¾Ð·Ð¸Ð½ÐºÐµ Ð±Ð¸Ñ\82и Ð¿Ð¾Ñ\81лаÑ\82а.",
        "passwordreset-nocaller": "Позивалац се мора навести",
        "passwordreset-nosuchcaller": "Позивалац не постоји: $1",
        "passwordreset-ignored": "Ресетовање лозинке није успело. Можда послужилац није конфигурисан?",
-       "passwordreset-invalidemail": "Ð\9dеважеÑ\9bа Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а",
+       "passwordreset-invalidemail": "Ð\9dеважеÑ\9bа Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е",
        "passwordreset-nodata": "Корисничко име и адреса е-поште нису наведени",
-       "changeemail": "Ð\9fÑ\80омена Ð¸Ð»Ð¸ Ñ\83клаÑ\9aаÑ\9aе Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е",
-       "changeemail-header": "Ð\9fопÑ\83ниÑ\82е Ð¾Ð²Ð°Ñ\98 Ð¾Ð±Ñ\80азаÑ\86 Ð´Ð° Ð±Ð¸ Ñ\81Ñ\82е Ð¿Ñ\80оменили Ð²Ð°Ñ\88Ñ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83. Ð\90ко Ð±Ð¸Ñ\81Ñ\82е Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð´Ð° Ñ\83клониÑ\82е Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð¾Ñ\81Ñ\82 Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ\98е Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е Ñ\81а Ð²Ð°Ñ\88ег Ð½Ð°Ð»Ð¾Ð³Ð°, Ð¾Ñ\81Ñ\82авиÑ\82е Ð¿Ñ\80азно Ð¿Ð¾Ñ\99е Ð·Ð° Ð½Ð¾Ð²Ñ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83 када шаљете образац.",
+       "changeemail": "Ð\9fÑ\80омена Ð¸Ð»Ð¸ Ñ\83клаÑ\9aаÑ\9aе Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е",
+       "changeemail-header": "Ð\94овÑ\80Ñ\88иÑ\82е Ð¾Ð²Ð°Ñ\98 Ð¾Ð±Ñ\80азаÑ\86 Ð´Ð° Ð±Ð¸ Ñ\81Ñ\82е Ð¿Ñ\80оменили Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е. Ð\90ко Ð±Ð¸Ñ\81Ñ\82е Ð¶ÐµÐ»ÐµÐ»Ð¸ Ð´Ð° Ñ\83клониÑ\82е Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ð¾Ñ\81Ñ\82 Ð±Ð¸Ð»Ð¾ ÐºÐ¾Ñ\98е Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е Ñ\81а Ð²Ð°Ñ\88ег Ð½Ð°Ð»Ð¾Ð³Ð°, Ð¾Ñ\81Ñ\82авиÑ\82е Ð¿Ñ\80азно Ð¿Ð¾Ñ\99е Ð·Ð° Ð½Ð¾Ð²Ñ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е када шаљете образац.",
        "changeemail-no-info": "Морате бити пријављени да бисте приступили овој страници.",
-       "changeemail-oldemail": "Ð\90кÑ\82Ñ\83елна Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а:",
-       "changeemail-newemail": "Ð\9dова Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а:",
+       "changeemail-oldemail": "ТÑ\80енÑ\83Ñ\82на Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е:",
+       "changeemail-newemail": "Ð\9dова Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е:",
        "changeemail-newemail-help": "Ово поље треба да оставите празно ако желите да уклоните адресу е-поште. Нећете бити у могућности да ресетујете заборављену лозинку и нећете примати е-поруке са овог викија ако је адреса е-поште уклоњена.",
        "changeemail-none": "(ништа)",
        "changeemail-password": "Ваша лозинка за пројекат {{SITENAME}}:",
-       "changeemail-submit": "Ð\9fÑ\80омени Ð¸Ð¼ÐµÑ\98л",
+       "changeemail-submit": "Ð\9fÑ\80омени Ðµ-поÑ\88Ñ\82Ñ\83",
        "changeemail-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
-       "changeemail-nochange": "УнеÑ\81иÑ\82е Ð´Ñ\80Ñ\83гÑ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83.",
+       "changeemail-nochange": "УнеÑ\81иÑ\82е Ð´Ñ\80Ñ\83гÑ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е.",
        "resettokens": "Ресетовање токена",
        "resettokens-text": "Овде можете да ресетујете токене који омогућавају приступ одређеним приватним подацима повезаним са вашим налогом.\n\nТребали бисте то урадити ако их случајно поделите са неким или ако је ваш налог угрожен.",
        "resettokens-no-tokens": "Нема жетона за ресетовање.",
        "subject-preview": "Преглед теме:",
        "previewerrortext": "Дошло је до грешке при покушају прегледа промена.",
        "blockedtitle": "Корисник је блокиран",
-       "blocked-email-user": "<strong>Ð\92аÑ\88ем ÐºÐ¾Ñ\80иÑ\81ниÑ\87ком Ð¸Ð¼ÐµÐ½Ñ\83 Ñ\98е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ано Ñ\81лаÑ\9aе Ð¸Ð¼ÐµÑ\98лова. Још увек можете да уређујете друге странице на овом викију.</strong> Можете да видите потпуне детаље блокаде на [[Special:MyContributions|доприносима налога]].\n\nБлокаду је извршио/ла $1.\n\nНаведен је следећи разлог: <em>$2</em>.\n\n* Почетак блокаде: $8\n* Истек блокаде: $6\n* Намењена кориснику/ци или IP адреси: $7\n* ID блокаде #$5",
+       "blocked-email-user": "<strong>Ð\92аÑ\88ем ÐºÐ¾Ñ\80иÑ\81ниÑ\87ком Ð¸Ð¼ÐµÐ½Ñ\83 Ñ\98е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ано Ñ\81лаÑ\9aе Ðµ-поÑ\80Ñ\83ка. Још увек можете да уређујете друге странице на овом викију.</strong> Можете да видите потпуне детаље блокаде на [[Special:MyContributions|доприносима налога]].\n\nБлокаду је извршио/ла $1.\n\nНаведен је следећи разлог: <em>$2</em>.\n\n* Почетак блокаде: $8\n* Истек блокаде: $6\n* Намењена кориснику/ци или IP адреси: $7\n* ID блокаде #$5",
        "blockedtext-partial": "<strong>Вашем корисничком имену или IP адреси је блокирано прављење промена на овој страници. Још увек можете да уређујете друге странице на овом викију.</strong> Можете да видите потпуне детаље блокаде на [[Special:MyContributions|доприносима налога]].\n\nБлокаду је извршио/ла $1.\n\nНаведен је следећи разлог: <em>$2</em>.\n\n* Почетак блокаде: $8\n* Истек блокаде: $6\n* Намењена кориснику/ци или IP адреси: $7\n* ID блокаде #$5",
        "blockedtext": "<strong>Ваше корисничко име или IP адреса је блокирана.</strong>\n\nБлокирање је {{GENDER:$4|извршио|извршила}} $1.\nРазлог је <em>$2</em>.\n\n* Почетак блокирања: $8\n* Истек блокирања: $6\n* Блокирани: $7\n\nМожете да се обратите {{GENDER:$4|кориснику|корисници}} $1 или [[{{MediaWiki:Grouppage-sysop}}|администратору]] ради дискусије о блокирању.\nНе можете да користите могућност „{{int:emailuser}}” осим ако сте унели валидну имејл адресу у својим [[Special:Preferences|подешавањима]] налога и нисте блокирани од коришћења исте.\nВаша тренутна IP адреса је $3, а ID блокирања #$5.\nНаведите све информације одозго при стварању било каквих упита.",
-       "autoblockedtext": "Ваша IP адреса је аутоматски блокирана јер ју је користио други корисник, кога је {{GENDER:$4|блокирао|блокирала}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Почетак блокаде: $8\n* Крај блокаде: $6\n* Име корисника: $7\n\nМожете да контактирате {{GENDER:$4|корисника|корисницу}} $1 или другог [[{{MediaWiki:Grouppage-sysop}}|администратора]] да бисте расправљали о блокади.\n\nЗапамтите да не можете да користите функцију „{{int:emailuser}}“ осим ако сте навели важећу имејл-адресу у својим [[Special:Preferences|подешавањима]].\n\nВаша тренутна IP адреса је $3, а ID блокаде $5.\nУкључите све горње детаље при прављењу било каквих упита.",
+       "autoblockedtext": "Ваша IP адреса је аутоматски блокирана јер ју је користио други корисник, кога је {{GENDER:$4|блокирао|блокирала|блокирао/ла}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Почетак блокаде: $8\n* Крај блокаде: $6\n* Име корисника: $7\n\nМожете да контактирате {{GENDER:$4|корисника|корисницу|корисника/цу}} $1 или другог [[{{MediaWiki:Grouppage-sysop}}|администратора]] да бисте расправљали о блокади.\n\nЗапамтите да не можете да користите функцију „{{int:emailuser}}“ осим ако сте навели важећу адресу е-поште у [[Special:Preferences|подешавањима]].\n\nВаша тренутна IP адреса је $3, а ID блокаде $5.\nУкључите све горње детаље при прављењу било каквих упита.",
        "blockednoreason": "разлог није наведен",
        "whitelistedittext": "$1 да бисте уређивали странице.",
-       "confirmedittext": "Морате да потврдите своју имејл адресу пре уређивања страница.\nПоставите и потврдите имејл адресу преко [[Special:Preferences|подешавања]].",
+       "confirmedittext": "Морате да потврдите адресу е-поште пре уређивања страница.\nПоставите и проверите ваљаност адресе преко [[Special:Preferences|подешавања]].",
        "nosuchsectiontitle": "Није могуће пронаћи одељак",
        "nosuchsectiontext": "Покушали сте да уредите одељак који не постоји.\nМожда је премештен или избрисан док сте прегледали страницу.",
        "loginreqtitle": "Потребна је пријава",
        "prefs-watchlist-managetokens": "Управљање токенима",
        "prefs-misc": "Разно",
        "prefs-resetpass": "Промена лозинке",
-       "prefs-changeemail": "Ð\9fÑ\80омена Ð¸Ð»Ð¸ Ñ\83клаÑ\9aаÑ\9aе Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е",
-       "prefs-setemail": "Ð\9fоÑ\81Ñ\82авÑ\99аÑ\9aе Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е",
-       "prefs-email": "Ð\9eпÑ\86иÑ\98е Ð¸Ð¼ÐµÑ\98ла",
+       "prefs-changeemail": "Ð\9fÑ\80омена Ð¸Ð»Ð¸ Ñ\83клаÑ\9aаÑ\9aе Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е",
+       "prefs-setemail": "Ð\9fоÑ\81Ñ\82авÑ\99аÑ\9aе Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е",
+       "prefs-email": "Ð\9eпÑ\86иÑ\98е Ðµ-поÑ\88Ñ\82е",
        "prefs-rendering": "Изглед",
        "saveprefs": "Сачувај",
        "restoreprefs": "Врати сва подешавања на подразумеване вредности (у свим одељцима)",
        "timezoneregion-europe": "Европа",
        "timezoneregion-indian": "Индијски океан",
        "timezoneregion-pacific": "Тихи океан",
-       "allowemail": "Ð\94озволи Ð¿Ñ\80имаÑ\9aе Ð¸Ð¼ÐµÑ\98лова Ð¾Ð´ Ð´Ñ\80Ñ\83гиÑ\85 ÐºÐ¾Ñ\80иÑ\81ника",
-       "email-allow-new-users-label": "Ð\94озволи Ð¿Ñ\80имаÑ\9aе Ð¸Ð¼ÐµÑ\98лова од новајлија",
-       "email-blacklist-label": "Ð\97абÑ\80ани Ð¿Ñ\80имаÑ\9aе Ð¸Ð¼ÐµÑ\98лова Ð¾Ð´ Ñ\81ледеÑ\9bиÑ\85 ÐºÐ¾Ñ\80иÑ\81ника:",
+       "allowemail": "Ð\94озволи Ð´Ñ\80Ñ\83гим ÐºÐ¾Ñ\80иÑ\81ниÑ\86има Ð´Ð° Ð¼Ð¸ Ñ\88аÑ\99Ñ\83 Ðµ-поÑ\80Ñ\83ке",
+       "email-allow-new-users-label": "Ð\94озволи Ð¿Ñ\80имаÑ\9aе Ðµ-поÑ\80Ñ\83ка од новајлија",
+       "email-blacklist-label": "Ð\97абÑ\80ани Ð¾Ð²Ð¸Ð¼ ÐºÐ¾Ñ\80иÑ\81ниÑ\86има Ð´Ð° Ð¼Ð¸ Ñ\88аÑ\99Ñ\83 Ðµ-поÑ\80Ñ\83ке:",
        "prefs-searchoptions": "Претрага",
        "prefs-namespaces": "Именски простори",
        "default": "подразумевано",
        "prefs-custom-js": "прилагођени JavaScript",
        "prefs-common-config": "Дељени CSS/JSON/JavaScript за све теме:",
        "prefs-reset-intro": "Можете користити ову страницу да поново поставите своја подешавања на подразумеване вредности сајта.\nОво се не може опозвати.",
-       "prefs-emailconfirm-label": "Ð\9fоÑ\82вÑ\80да Ð¸Ð¼ÐµÑ\98ла:",
-       "youremail": "Ð\98меÑ\98л:",
+       "prefs-emailconfirm-label": "Ð\9fоÑ\82вÑ\80да Ðµ-поÑ\88Ñ\82е:",
+       "youremail": "Ð\95-поÑ\88Ñ\82а:",
        "username": "{{GENDER:$1|Корисничко име}}:",
        "prefs-memberingroups": "{{GENDER:$2|Члан|Чланица}} {{PLURAL:$1|групе|група}}:",
        "prefs-memberingroups-type": "$1",
        "gender-male": "Он уређује вики странице",
        "gender-female": "Она уређује вики странице",
        "prefs-help-gender": "Постављање овог подешавања је опционално.\nСофтвер користи дату вредност да би вам се обратио и споменуо вас другима користећи одговарајући граматички род.\nОва информација ће бити јавна.",
-       "email": "Ð\98меÑ\98л",
+       "email": "Ð\95-поÑ\88Ñ\82а",
        "prefs-help-realname": "Право име је опционално.\nАко је наведено, биће коришћено за приписивање вашег рада.",
-       "prefs-help-email": "Ð\98меÑ\98л Ð°Ð´Ñ\80еÑ\81а је опционална, али је потребна за ресетовање лозинке, ако је заборавите.",
-       "prefs-help-email-others": "ТакоÑ\92е Ð¼Ð¾Ð¶ÐµÑ\82е Ð¸Ð·Ð°Ð±Ñ\80аÑ\82и Ð´Ð° Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Ð´Ñ\80Ñ\83гима Ð´Ð° Ð²Ð°Ñ\81 ÐºÐ¾Ð½Ñ\82акÑ\82иÑ\80аÑ\98Ñ\83 Ð¿Ñ\80еко Ð¸Ð¼ÐµÑ\98ла Ð¿Ñ\83Ñ\82ем Ð²ÐµÐ·Ðµ Ð½Ð° Ð²Ð°Ñ\88оÑ\98 ÐºÐ¾Ñ\80иÑ\81ниÑ\87коÑ\98 Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸Ð»Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80.\nÐ\92аÑ\88а Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81а неће бити приказана другим корисницима који вас контактирају.",
-       "prefs-help-email-required": "Ð\9fоÑ\82Ñ\80ебна Ñ\98е Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а.",
+       "prefs-help-email": "Ð\90дÑ\80еÑ\81а Ðµ-поÑ\88Ñ\82е је опционална, али је потребна за ресетовање лозинке, ако је заборавите.",
+       "prefs-help-email-others": "ТакоÑ\92е Ð¼Ð¾Ð¶ÐµÑ\82е Ð¾Ð°Ð±Ñ\80аÑ\82и Ð´Ð° Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Ð´Ñ\80Ñ\83гима Ð´Ð° Ð²Ð°Ñ\81 ÐºÐ¾Ð½Ñ\82акÑ\82иÑ\80аÑ\98Ñ\83 Ð¿Ñ\80еко Ðµ-поÑ\88Ñ\82е Ð¿Ñ\83Ñ\82ем Ð²ÐµÐ·Ðµ Ð½Ð° Ð²Ð°Ñ\88оÑ\98 ÐºÐ¾Ñ\80иÑ\81ниÑ\87коÑ\98 Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸Ð»Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80.\nÐ\92аÑ\88а Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е неће бити приказана другим корисницима који вас контактирају.",
+       "prefs-help-email-required": "Ð\9fоÑ\82Ñ\80ебна Ñ\98е Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е.",
        "prefs-info": "Основне информације",
        "prefs-i18n": "Интернационализација",
        "prefs-signature": "Потпис",
        "right-viewsuppressed": "прегледање измена скривених од свих корисника",
        "right-suppressionlog": "прегледање приватних дневника",
        "right-block": "блокирање даљих измена других корисника",
-       "right-blockemail": "блокирање корисника да шаљу имејл",
+       "right-blockemail": "блокирање функције слања е-порука кориснику",
        "right-hideuser": "блокирање корисничког имена и његово сакривање од јавности",
        "right-ipblock-exempt": "заобилажење IP блокада, аутоблокада и блокада опсега",
        "right-unblockself": "деблокирање самог себе",
        "right-editmyuserjs": "уређивање сопствених JavaScript датотека",
        "right-viewmywatchlist": "преглед сопственог списка надгледања",
        "right-editmywatchlist": "уређивање сопственог списка надгледања; неке предузете радње ће свеједно додати странице на списак и без овог права",
-       "right-viewmyprivateinfo": "пÑ\80еглед Ñ\81воÑ\98иÑ\85 Ð¿Ñ\80иваÑ\82ниÑ\85 Ð¿Ð¾Ð´Ð°Ñ\82ака (нпÑ\80. Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83, право име)",
-       "right-editmyprivateinfo": "Ñ\83Ñ\80еÑ\92иваÑ\9aе Ñ\81опÑ\81Ñ\82вениÑ\85 Ð¿Ñ\80иваÑ\82ниÑ\85 Ð¿Ð¾Ð´Ð°Ñ\82ака (нпÑ\80. Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е, правог имена)",
+       "right-viewmyprivateinfo": "пÑ\80еглед Ñ\81опÑ\81Ñ\82вениÑ\85 Ð¿Ñ\80иваÑ\82ниÑ\85 Ð¿Ð¾Ð´Ð°Ñ\82ака (нпÑ\80. Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е, право име)",
+       "right-editmyprivateinfo": "Ñ\83Ñ\80еÑ\92иваÑ\9aе Ñ\81опÑ\81Ñ\82вениÑ\85 Ð¿Ñ\80иваÑ\82ниÑ\85 Ð¿Ð¾Ð´Ð°Ñ\82ака (нпÑ\80. Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е, правог имена)",
        "right-editmyoptions": "уређивање сопствених подешавања",
        "right-rollback": "брзо враћање измена последњег корисника који је мењао одређену страницу",
        "right-markbotedits": "означавање враћених измена као измене бота",
        "right-userrights-interwiki": "уређивање корисничких права на другим викијима",
        "right-siteadmin": "закључавање и откључавање базе података",
        "right-override-export-depth": "извоз страница укључујући и повазене странице до дубине од пет веза",
-       "right-sendemail": "Ñ\81лаÑ\9aе Ð¸Ð¼ÐµÑ\98ла другим корисницима",
+       "right-sendemail": "Ñ\81лаÑ\9aе Ðµ-поÑ\80Ñ\83ка другим корисницима",
        "right-managechangetags": "прављење и (де)активирање [[Special:Tags|ознака]]",
        "right-applychangetags": "примењивање [[Special:Tags|ознака]] на нечије промене",
        "right-changetags": "додавање и уклањање разних [[Special:Tags|ознака]] на појединачним изменама и уносима у дневницима",
        "grant-group-page-interaction": "Уређивање страница",
        "grant-group-file-interaction": "Интеракција са медијима",
        "grant-group-watchlist-interaction": "Уређивање вашег списка надгледања",
-       "grant-group-email": "Ð\9fоÑ\88аÑ\99и Ð¸Ð¼ÐµÑ\98л",
+       "grant-group-email": "Ð\9fоÑ\88аÑ\99и Ðµ-поÑ\80Ñ\83кÑ\83",
        "grant-group-high-volume": "Извршавање великог броја радњи",
        "grant-group-customization": "Прилагођавање и подешавања",
        "grant-group-administration": "Извршавање административних радњи",
        "grant-privateinfo": "Приступи приватним информацијама",
        "grant-protect": "Закључавање и откључавање страница",
        "grant-rollback": "Враћање промена на страницама",
-       "grant-sendemail": "СлаÑ\9aе Ð¸Ð¼ÐµÑ\98лова другим корисницима",
+       "grant-sendemail": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ка другим корисницима",
        "grant-uploadeditmovefile": "Отпремање, замена и премештање датотека",
        "grant-uploadfile": "Отпремање нових датотека",
        "grant-basic": "Основна права",
        "action-userrights": "уређујете сва корисничка права",
        "action-userrights-interwiki": "уређујете корисничка права корисника на другим викијима",
        "action-siteadmin": "закључавате или откључавате базу података",
-       "action-sendemail": "Ñ\88аÑ\99еÑ\82е Ð¸Ð¼ÐµÑ\98лове",
+       "action-sendemail": "Ñ\88аÑ\99еÑ\82е Ðµ-поÑ\80Ñ\83ке",
        "action-editmyoptions": "уређујете сопствена подешавања",
        "action-editmywatchlist": "уређујете сопствени списак надгледања",
        "action-viewmywatchlist": "прегледате сопствени списак надгледања",
        "trackingcategories-nodesc": "Опис није доступан.",
        "trackingcategories-disabled": "Категорија је онемогућена",
        "mailnologin": "Нема адресе за слање",
-       "mailnologintext": "Ð\9cоÑ\80аÑ\82е Ð±Ð¸Ñ\82и [[Special:UserLogin|пÑ\80иÑ\98авÑ\99ени]] Ð¸ Ð¸Ð¼Ð°Ñ\82и Ð²Ð°Ñ\99анÑ\83 Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81Ñ\83 Ñ\83 [[Special:Preferences|подеÑ\88аваÑ\9aима]] Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ñ\81лали Ð¸Ð¼ÐµÑ\98лове другим корисницима.",
-       "emailuser": "Ð\9fоÑ\88аÑ\99и Ð¸Ð¼ÐµÑ\98л овом кориснику/ци",
-       "emailuser-title-target": "СлаÑ\9aе Ð¸Ð¼ÐµÑ\98ла {{GENDER:$1|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ници}}",
-       "emailuser-title-notarget": "СлаÑ\9aе Ð¸Ð¼ÐµÑ\98ла ÐºÐ¾Ñ\80иÑ\81никÑ\83",
+       "mailnologintext": "Ð\9cоÑ\80аÑ\82е Ð´Ð° Ñ\81е [[Special:UserLogin|пÑ\80иÑ\98авиÑ\82е]] Ð¸ Ð¸Ð¼Ð°Ñ\82е Ð²Ð°Ð¶ÐµÑ\9bи Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е Ñ\83 [[Special:Preferences|подеÑ\88аваÑ\9aима]] Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ñ\81лали Ðµ-поÑ\80Ñ\83ке другим корисницима.",
+       "emailuser": "Ð\9fоÑ\88аÑ\99и Ðµ-поÑ\80Ñ\83кÑ\83 овом кориснику/ци",
+       "emailuser-title-target": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ке {{GENDER:$1|коÑ\80иÑ\81никÑ\83|коÑ\80иÑ\81ниÑ\86и|коÑ\80иÑ\81никÑ\83/ци}}",
+       "emailuser-title-notarget": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ке ÐºÐ¾Ñ\80иÑ\81никÑ\83\86и",
        "emailpagetext": "Можете да користите доњи образац да пошаљете имејл {{GENDER:$1|овом кориснику|овој корисници}}.\nИмејл који сте унели у вашим [[Special:Preferences|подешавањима]] ће се приказати у пољу „Од“, тако да ће прималац моћи да вам одговори директно.",
-       "defemailsubject": "{{SITENAME}} â\80\94 Ð\98меÑ\98л Ð¾Ð´ {{GENDER:$1|коÑ\80иÑ\81ника|коÑ\80иÑ\81нице}} „$1”",
-       "usermaildisabled": "Ð\9aоÑ\80иÑ\81ниÑ\87ки Ð¸Ð¼ÐµÑ\98л Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bен",
-       "usermaildisabledtext": "Ð\9dе Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\88аÑ\99еÑ\82е Ð¸Ð¼ÐµÑ\98лове другим корисницима на овом викију",
-       "noemailtitle": "Ð\9dема Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е",
-       "noemailtext": "Ð\9eваÑ\98 ÐºÐ¾Ñ\80иÑ\81ник Ð½Ð¸Ñ\98е Ð½Ð°Ð²ÐµÐ¾ Ð²Ð°Ð¶ÐµÑ\9bÑ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83.",
-       "nowikiemailtext": "Ð\9eваÑ\98 ÐºÐ¾Ñ\80иÑ\81ник Ñ\98е Ð¾Ð´Ð»Ñ\83Ñ\87ио Ð´Ð° Ð½Ðµ Ð¿Ñ\80има Ð¸Ð¼ÐµÑ\98лове од других корисника.",
+       "defemailsubject": "{{SITENAME}} â\80\94 Ðµ-поÑ\80Ñ\83ка Ð¾Ð´ {{GENDER:$1|коÑ\80иÑ\81ника|коÑ\80иÑ\81ниÑ\86е|коÑ\80иÑ\81ника/це}} „$1”",
+       "usermaildisabled": "Ð\9aоÑ\80иÑ\81ниÑ\87ка Ðµ-поÑ\88Ñ\82а Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bена",
+       "usermaildisabledtext": "Ð\9dе Ð¼Ð¾Ð¶ÐµÑ\82е Ð´Ð° Ñ\88аÑ\99еÑ\82е Ðµ-поÑ\80Ñ\83ке другим корисницима на овом викију",
+       "noemailtitle": "Ð\9dема Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е",
+       "noemailtext": "Ð\9eваÑ\98 ÐºÐ¾Ñ\80иÑ\81ник Ð½Ð¸Ñ\98е Ð½Ð°Ð²ÐµÐ¾ Ð²Ð°Ð¶ÐµÑ\9bÑ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е.",
+       "nowikiemailtext": "Ð\9eваÑ\98 ÐºÐ¾Ñ\80иÑ\81ник Ñ\98е Ð¾Ð´Ð°Ð±Ñ\80ао Ð´Ð° Ð½Ðµ Ð¿Ñ\80има Ðµ-поÑ\80Ñ\83ке од других корисника.",
        "emailnotarget": "Непостојеће или наважеће корисничко име примаоца.",
        "emailtarget": "Унос корисничког имена примаоца",
        "emailusername": "Корисничко име:",
        "emailusernamesubmit": "Пошаљи",
-       "email-legend": "СлаÑ\9aе Ð¸Ð¼ÐµÑ\98ла Ð´Ñ\80Ñ\83гом ÐºÐ¾Ñ\80иÑ\81никÑ\83 пројекта {{SITENAME}}",
+       "email-legend": "СлаÑ\9aе Ðµ-поÑ\80Ñ\83ке ÐºÐ¾Ñ\80иÑ\81никÑ\83\86и пројекта {{SITENAME}}",
        "emailfrom": "Од:",
        "emailto": "За:",
        "emailsubject": "Тема:",
        "emailmessage": "Порука:",
        "emailsend": "Пошаљи",
-       "emailccme": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ ÐºÐ¾Ð¿Ð¸Ñ\98Ñ\83 Ð¿Ð¾Ñ\80Ñ\83ке Ð½Ð° Ð¼Ð¾Ñ\98 Ð¸Ð¼ÐµÑ\98л.",
+       "emailccme": "Ð\9fоÑ\88аÑ\99и Ð¼Ð¸ Ðµ-поÑ\80Ñ\83кÑ\83 Ñ\81а ÐºÐ¾Ð¿Ð¸Ñ\98ом Ð¼Ð¾Ñ\98е Ð¿Ð¾Ñ\80Ñ\83ке.",
        "emailccsubject": "Копија поруке кориснику/ци $1: $2",
-       "emailsent": "Ð\98меÑ\98л Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82",
-       "emailsenttext": "Ð\92аÑ\88а Ð¸Ð¼ÐµÑ\98л порука је послата.",
-       "emailuserfooter": "Овај имејл је {{GENDER:$1|послао|послала}} $1 {{GENDER:$2|кориснику|корисници}} $2 помоћу опције „{{int:emailuser}}“ на викију {{SITENAME}}. Ако одговорите на овај имејл, {{GENDER:$2|Ваш}} имејл ће бити непосредно прослеђен ка {{GENDER:$1|првобитном пошиљаоцу}}, чиме ћете {{GENDER:$2|му|јој}} открити {{GENDER:$2|своју}} имејл адресу.",
+       "emailsent": "Ð\95-поÑ\80Ñ\83ка Ñ\98е Ð¿Ð¾Ñ\81лаÑ\82а",
+       "emailsenttext": "Ð\92аÑ\88а Ðµ-порука је послата.",
+       "emailuserfooter": "Ову е-поруку је {{GENDER:$1|послао|послала|послао/ла}} $1 {{GENDER:$2|кориснику|корисници|кориснику/ци}} $2 помоћу опције „{{int:emailuser}}” на пројекту {{SITENAME}}. Ако одговорите на ову е-поруку, {{GENDER:$2|ваша}} е-порука биће непосредно прослеђена ка {{GENDER:$1|оригиналном пошиљаоцу}}, чиме ћете {{GENDER:$2|му|јој}} открити {{GENDER:$2|адресу е-поште}}.",
        "usermessage-summary": "Слање системске поруке.",
        "usermessage-editor": "Уређивач системских порука",
        "usermessage-template": "MediaWiki:UserMessage",
        "notanarticle": "Није страница са садржајем",
        "notvisiblerev": "Последња измена другог корисника је избрисана.",
        "watchlist-details": "Имате {{PLURAL:$1|$1 страницу|$1 странице|$1 страница}} на свом списку надгледања (плус странице за разговор).",
-       "wlheader-enotif": "Ð\9eбавеÑ\88Ñ\82еÑ\9aе Ð¸Ð¼ÐµÑ\98лом је омогућено.",
+       "wlheader-enotif": "Ð\9eбавеÑ\88Ñ\82аваÑ\9aе Ðµ-поÑ\80Ñ\83ком је омогућено.",
        "wlheader-showupdated": "Странице које су промењене откад сте их последњи пут посетили су <strong>подебљане</strong>.",
        "wlnote": "Испод {{PLURAL:$1|је последња промена|су последње <strong>$1</strong> промене|је последњих <strong>$1</strong> промена}} у {{PLURAL:$2|претходном сату|претходна <strong>$2</strong> сата|претходних <strong>$2</strong> сати}}, закључно са $3, $4.",
        "wlshowlast": "Прикажи последњих $1 сати, $2 дана",
        "ipbreason-dropdown": "*Најчешћи разлози за блокирање\n** Уметање лажних информација\n** Уклањање садржаја са страница\n** Додавање непожељних веза до спољашњих сајтова\n** Уношење бесмислица/графита у странице\n** Непристојно понашање\n** Употреба више налога\n** Неприхватљиво корисничко име",
        "ipb-hardblock": "Спречи пријављене кориснике да уређују с ове IP адресе",
        "ipbcreateaccount": "Онемогући отварање налога",
-       "ipbemailban": "Спречи корисника да шаље имејлове",
+       "ipbemailban": "Спречи функцију слања е-поруке корисника",
        "ipbenableautoblock": "Аутоматски блокирај последњу IP адресу овог корисника и све даљње адресе с којих покуша да уређује",
        "ipbsubmit": "Блокирај овог корисника",
        "ipbother": "Друго време:",
        "anononlyblock": "само анонимни",
        "noautoblockblock": "аутоматско блокирање је онемогућено",
        "createaccountblock": "отварање налога је онемогућено",
-       "emailblock": "имеÑ\98л Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bен",
+       "emailblock": "е-поÑ\88Ñ\82а Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bена",
        "blocklist-nousertalk": "забрањено уређивање сопствене странице за разговор",
        "blocklist-editing": "уређивање",
        "blocklist-editing-sitewide": "уређивање (на целом сајту)",
        "unblocklink": "деблокирај",
        "change-blocklink": "промени блокаду",
        "contribslink": "доприноси",
-       "emaillink": "поÑ\88аÑ\99и Ð¸Ð¼ÐµÑ\98л",
+       "emaillink": "поÑ\88аÑ\99и Ðµ-поÑ\80Ñ\83кÑ\83",
        "autoblocker": "Аутоматски сте блокирани јер делите IP адресу с корисником/цом [[User:$1|$1]].\nРазлог блокирања корисника/це $1 је „$2“",
        "blocklogpage": "Дневник блокирања",
        "blocklog-showlog": "{{GENDER:$1|Овај корисник је раније блокиран|Ова корисница је раније блокирана}}.\nДневник блокирања је наведен испод као референца:",
        "block-log-flags-anononly": "само анонимни корисници",
        "block-log-flags-nocreate": "онемогућено отварање налога",
        "block-log-flags-noautoblock": "аутоматско блокирање је онемогућено",
-       "block-log-flags-noemail": "имеÑ\98л Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bен",
+       "block-log-flags-noemail": "е-поÑ\88Ñ\82а Ñ\98е Ð¾Ð½ÐµÐ¼Ð¾Ð³Ñ\83Ñ\9bена",
        "block-log-flags-nousertalk": "забрањено уређивање сопствене странице за разговор",
        "block-log-flags-angry-autoblock": "проширено аутоматско блокирање је омогућено",
        "block-log-flags-hiddenname": "корисничко име је сакривено",
        "tooltip-ca-move": "Преместите ову страницу",
        "tooltip-ca-watch": "Додајте ову страницу на списак надгледања",
        "tooltip-ca-unwatch": "Уклоните ову страницу са списка надгледања",
-       "tooltip-search": "Претражите {{GRAMMAR:акузатив|{{SITENAME}}}}",
+       "tooltip-search": "Претражите пројекат {{SITENAME}}",
        "tooltip-search-go": "Идите на страницу са тачно овим именом ако постоји",
        "tooltip-search-fulltext": "Претражите странице са овим текстом",
        "tooltip-p-logo": "Посетите главну страну",
        "tooltip-feed-rss": "RSS фид за ову страницу",
        "tooltip-feed-atom": "Atom фид за ову страницу",
        "tooltip-t-contributions": "Списак доприноса {{GENDER:$1|овог корисника|ове кориснице|овог корисника}}",
-       "tooltip-t-emailuser": "Ð\9fоÑ\88аÑ\99иÑ\82е Ð¸Ð¼ÐµÑ\98л {{GENDER:$1|овом ÐºÐ¾Ñ\80иÑ\81никÑ\83|овоÑ\98 ÐºÐ¾Ñ\80иÑ\81ници}}",
+       "tooltip-t-emailuser": "Ð\9fоÑ\88аÑ\99иÑ\82е Ðµ-поÑ\80Ñ\83кÑ\83 {{GENDER:$1|овом ÐºÐ¾Ñ\80иÑ\81никÑ\83|овоÑ\98 ÐºÐ¾Ñ\80иÑ\81ниÑ\86и|коÑ\80иÑ\81никÑ\83/ци}}",
        "tooltip-t-info": "Више информација о овој страници",
        "tooltip-t-upload": "Отпремите датотеке",
        "tooltip-t-specialpages": "Списак свих посебних страница",
        "exif-urgency-other": "Прилагођени приоритет ($1)",
        "namespacesall": "сви",
        "monthsall": "све",
-       "confirmemail": "Ð\9fоÑ\82вÑ\80да Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е",
-       "confirmemail_noemail": "Ð\9dиÑ\81Ñ\82е Ð¿Ð¾Ñ\81Ñ\82авили Ð²Ð°Ð¶ÐµÑ\9bÑ\83 Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81Ñ\83 у [[Special:Preferences|корисничким подешавањима]].",
+       "confirmemail": "Ð\9fоÑ\82вÑ\80да Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е",
+       "confirmemail_noemail": "Ð\9dиÑ\81Ñ\82е Ð¿Ð¾Ñ\81Ñ\82авили Ð²Ð°Ð¶ÐµÑ\9bÑ\83 Ð°Ð´Ñ\80еÑ\81Ñ\83 Ðµ-поÑ\88Ñ\82е у [[Special:Preferences|корисничким подешавањима]].",
        "confirmemail_text": "{{SITENAME}} захтева да проверите ваљаност имејл-адресе пре него што почнете да користите функцију имејла.\nАктивирајте дугме испод да бисте послали мејл за потврду на своју адресу.\nМејл ће укључивати везу са кодом;\nучитајте везу у свом прегледачу да бисте потврдили да је ваша имејл-адреса важећа.",
        "confirmemail_pending": "Код за потврду вам је већ послат имејлом.\nАко сте недавно отворили налог, можда треба да сачекате неколико минута да пристигне пре него што поново затражите нови код.",
        "confirmemail_send": "Пошаљи код за потврду",
        "confirmemail_sent": "Потврдна порука је послата.",
        "confirmemail_oncreate": "Кôд за потврду је послат на вашу имејл-адресу.\nОвај кôд није неопходан за пријављивање, али ћете морати да га наведете пре омогућавања било каквих функција заснованих на имејлу на викију.",
-       "confirmemail_sendfailed": "{{SITENAME}} Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ð¾Ñ\88аÑ\99е Ð¸Ð¼ÐµÑ\98л Ð¿Ð¾Ñ\82вÑ\80дÑ\83.\nÐ\9fÑ\80овеÑ\80иÑ\82е Ð´Ð° Ð»Ð¸ Ñ\98е Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81а Ð¿Ñ\80авилно Ð½Ð°Ð¿Ð¸Ñ\81ана.\n\nÐ\93Ñ\80еÑ\88ка: $1",
+       "confirmemail_sendfailed": "{{SITENAME}} Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ð¾Ñ\88аÑ\99е Ðµ-поÑ\80Ñ\83кÑ\83 Ð·Ð° Ð¿Ð¾Ñ\82вÑ\80дÑ\83.\nÐ\9fÑ\80овеÑ\80иÑ\82е Ð´Ð° Ð»Ð¸ Ñ\98е Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е Ñ\81адÑ\80жи Ð½ÐµÐ²Ð°Ð¶ÐµÑ\9bе Ð·Ð½Ð°ÐºÐµ.\n\nÐ\9fоÑ\88иÑ\99алаÑ\86 Ñ\98е Ð²Ñ\80аÑ\82ио Ð³Ñ\80еÑ\88кÑ\83: $1",
        "confirmemail_invalid": "Неважећи код за потврду.\nКод је можда истекао.",
-       "confirmemail_needlogin": "$1 да бисте потврдили своју имејл-адресу.",
-       "confirmemail_success": "Ð\92аÑ\88а Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а је потврђена.\nСада можете да се [[Special:UserLogin|пријавите]] и уживате у викију.",
-       "confirmemail_loggedin": "Ð\92аÑ\88а Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81а је сада потврђена.",
-       "confirmemail_subject": "{{SITENAME}} â\80\93 Ð¿Ð¾Ñ\82вÑ\80да Ð¸Ð¼ÐµÑ\98л-адÑ\80еÑ\81е",
+       "confirmemail_needlogin": "$1 да бисте потврдили адресу е-поште.",
+       "confirmemail_success": "Ð\92аÑ\88а Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е је потврђена.\nСада можете да се [[Special:UserLogin|пријавите]] и уживате у викију.",
+       "confirmemail_loggedin": "Ð\92аÑ\88а Ð°Ð´Ñ\80еÑ\81а Ðµ-поÑ\88Ñ\82е је сада потврђена.",
+       "confirmemail_subject": "{{SITENAME}} â\80\93 Ð¿Ð¾Ñ\82вÑ\80да Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е",
        "confirmemail_body": "Неко, вероватно Ви, са IP адресе $1,\nрегистровао је налог „$2“ са овом имејл адресом на пројекту {{SITENAME}}.\n\nДа бисте потврдили да овај налог стварно припада вама и активирали функцију имејла на пројекту {{SITENAME}}, отворите ова у прегледачу:\n\n$3\n\nАко ви *нисте* регистровали налог, пратите ову везу\nда бисте отказали потврду имејл адресе:\n\n$5\n\nОвај код за потврду истиче у $4.",
        "confirmemail_body_changed": "Неко, вероватно Ви, с IP адресе $1,\nпроменио је имејл адресу налога „$2“ у ову адресу на пројекту {{SITENAME}}.\n\nДа бисте потврдили да овај налог стварно припада вама и поново активирали функцију имејла, отворите следећу везу у прегледачу:\n\n$3\n\nАко налог *не* припада вама, пратите следећу везу да откажете потврду имејл адресе:\n\n$5\n\nОвај код за потврду истиче $6 у $7",
        "confirmemail_body_set": "Неко, вероватно Ви, с IP адресе $1,\nпроменио је имејл адресу налога „$2“ у ову адресу на {{SITENAME}}.\n\nДа бисмо потврдили да овај налог стварно припада вама и поново активирали\nфункцију имејла на {{SITENAME}}, отворите следећу везу у прегледачу:\n\n$3\n\nАко налог *не* припада вама, пратите следећу везу да откажете потврду имејл адресе:\n\n$5\n\nОвај код за потврду истиче $4.",
-       "confirmemail_invalidated": "Ð\9fоÑ\82вÑ\80да Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81е је отказана",
-       "invalidateemail": "Ð\9eÑ\82казиваÑ\9aе Ð¿Ð¾Ñ\82вÑ\80де Ð¸Ð¼ÐµÑ\98ла",
+       "confirmemail_invalidated": "Ð\9fоÑ\82вÑ\80да Ð°Ð´Ñ\80еÑ\81е Ðµ-поÑ\88Ñ\82е је отказана",
+       "invalidateemail": "Ð\9eÑ\82казиваÑ\9aе Ð¿Ð¾Ñ\82вÑ\80де Ðµ-поÑ\88Ñ\82е",
        "notificationemail_subject_changed": "Регистрована имејл адреса на пројекту {{SITENAME}} је промењена",
        "notificationemail_subject_removed": "Регистрована имејл адреса на пројекту {{SITENAME}} је уклоњена",
        "notificationemail_body_changed": "Неко, вероватно Ви је променио имејл адресу налога из $2“ у „$3“ са IP адресе $1 на сајту {{SITENAME}}.\n\nАко ово нисте били Ви, одмах обавестите администраторе сајта.",
        "log-action-filter-newusers-create": "отворио анониман корисник",
        "log-action-filter-newusers-create2": "отворио регистрован корисник",
        "log-action-filter-newusers-autocreate": "аутоматски отворен",
-       "log-action-filter-newusers-byemail": "оÑ\82ваÑ\80аÑ\9aе Ð»Ð¾Ð·Ð¸Ð½ÐºÐ¾Ð¼ Ð¿Ð¾Ñ\81ланом Ð½Ð° Ð¸Ð¼ÐµÑ\98лÑ\83",
+       "log-action-filter-newusers-byemail": "оÑ\82ваÑ\80аÑ\9aе Ð»Ð¾Ð·Ð¸Ð½ÐºÐ¾Ð¼ Ð¿Ð¾Ñ\81ланом Ðµ-поÑ\80Ñ\83ком",
        "log-action-filter-patrol-patrol": "ручно",
        "log-action-filter-patrol-autopatrol": "аутоматско",
        "log-action-filter-protect-protect": "закључавање",
        "authmanager-password-help": "Лозинка за потврду идентитета.",
        "authmanager-domain-help": "Домен за спољашњу потврду идентитета.",
        "authmanager-retype-help": "Поновите лозинку да би сте потврдили.",
-       "authmanager-email-label": "Ð\98меÑ\98л",
-       "authmanager-email-help": "Ð\98меÑ\98л-адÑ\80еÑ\81а",
+       "authmanager-email-label": "Ð\95-поÑ\88Ñ\82а",
+       "authmanager-email-help": "Ð\90дÑ\80еÑ\81а Ðµ-поÑ\88Ñ\82е:",
        "authmanager-realname-label": "Право име",
        "authmanager-realname-help": "Право име корисника",
        "authmanager-provider-password": "Потврда идентитета лозинком",
index 6ef0b47..29c7a57 100644 (file)
        "grant-delete": "Radera sidor, revideringar och loggposter",
        "grant-editinterface": "Redigera JSON för MediaWiki-namnrymden och hela webbplatsen/användare",
        "grant-editmycssjs": "Redigera din egen CSS/JSON/JavaScript",
-       "grant-editmyoptions": "Redigera dina användarinställningar",
+       "grant-editmyoptions": "Redigera dina användarinställningar och JSON-konfiguration",
        "grant-editmywatchlist": "Redigera din bevakningslista",
        "grant-editsiteconfig": "Redigera CSS/JS för hela webbplatsen och användare",
        "grant-editpage": "Redigera befintliga sidor",
index eec84ac..b56f9cc 100644 (file)
        "login-userblocked": "Hinarang ang tagagamit na ito.  Hindi pinahihintulutan ang paglalagda.",
        "wrongpassword": "Mali ang ipinasok na password o pangalan ng tagagamit.\nPakisubok muli.",
        "wrongpasswordempty": "Walang laman ang ipinasok na password.\nPakisubok muli.",
-       "passwordtooshort": "Ang mga password ay dapat mayroong {{PLURAL:$1|1 panitik|$1 panitik}} (karakter).",
+       "passwordtooshort": "Ang mga password ay kailangan di bababa sa $1 karakter.",
        "passwordtoolong": "Ang mga password ay hindi maaaring mas mahaba sa {{PLURAL:$1|1 panitik|$1 panitik}}.",
        "passwordtoopopular": "Hindi maaaring gamitin ang mga piniling pangkaraniwang password. Mangyaring pumili ng higit na natatanging password na mahirap hulaan.",
        "password-name-match": "Dapat magkaiba ang password mo sa bansag o username mo.",
index aa4cafc..b8dc840 100644 (file)
@@ -74,7 +74,7 @@
        "tog-watchlisthidebots": "زیرِنظر فہرست سے روبہ جاتی ترامیم چھپائیں",
        "tog-watchlisthideminor": "زیرِنظر فہرست سے معمولی ترامیم چھپائیں",
        "tog-watchlisthideliu": "زیرِنظر فہرست سے داخلِ نوشتہ شدہ صارفین کی ترامیم چھپائیں",
-       "tog-watchlistreloadautomatically": "کسÛ\8c Ù\85Ù\82طار Ù\85Û\8cÚº ØªØ¨Ø¯Û\8cÙ\84Û\8c Ú©Û\92 Ø¨Ø¹Ø¯ Ø²Û\8cر Ù\86ظر Ù\81Û\81رست Ú©Ù\88 Ø®Ù\88دکار Ø·Ù\88ر Ù¾Ø± ØªØ§Ø²Û\81 Ú©Ø±Û\8cÚº (جاÙ\88ا Ø§Ø³Ú©Ø±Ù¾Ù¹ Ø¯Ø±Ú©Ø§Ø±)",
+       "tog-watchlistreloadautomatically": "کسی مقطر میں تبدیلی کے بعد زیر نظر فہرست کو خودکار طور پر تازہ کریں (جاوا اسکرپٹ درکار)",
        "tog-watchlistunwatchlinks": "زیر نظر فہرست کے اندراجات میں زیر نظر کرنے اور ہٹانے کے براہ راست روابط شامل کریں (اس سہولت کے لیے جاوا اسکرپٹ درکار ہے)",
        "tog-watchlisthideanons": "زیرِنظر فہرست سے نامعلوم صارفین کی ترامیم چھپائیں",
        "tog-watchlisthidepatrolled": "زیرِنظر فہرست سے مراجع شدہ ترامیم چھپائیں",
        "whatlinkshere-hidetrans": "استعمالات $1",
        "whatlinkshere-hidelinks": "روابط $1",
        "whatlinkshere-hideimages": "تصویر کے روابط $1",
-       "whatlinkshere-filters": "Ù\85Ù\82طارات",
+       "whatlinkshere-filters": "مقطرات",
        "whatlinkshere-submit": "ٹھیک",
        "autoblockid": "خودکار پابندی #$1",
        "block": "صارف مسدود کریں",
        "allmessagescurrent": "موجودہ متن",
        "allmessagestext": "ذیل میں میڈیاویکی نام فضا میں دستیاب نظامی پیغامات کی فہرست موجود ہے۔\nاگر آپ میڈیاویکی کا ترجمہ کرنا چاہتے ہیں تو [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation میڈیاویکی مقامیت کاری] اور [https://translatewiki.net translatewiki.net] ملاحظہ فرمائیں۔",
        "allmessagesnotsupportedDB": "اس صفحہ کو استعمال نہیں کیا جا سکتا کیونکہ <strong>$wgUseDatabaseMessages</strong> کو غیر فعال کر دیا گیا ہے۔",
-       "allmessages-filter-legend": "Ù\85Ù\82طار",
+       "allmessages-filter-legend": "مقطر",
        "allmessages-filter": "تلاش بلحاظ:",
        "allmessages-filter-unmodified": "غیر تبدیل شدہ",
        "allmessages-filter-all": "تمام",
        "anonusers": "{{SITENAME}} {{PLURAL:$2|کا|کے}} گمنام {{PLURAL:$2|{{GENDER:$1|صارف}}|صارفین}} $1",
        "creditspage": "صفحہ کے انتسابات",
        "nocredits": "اس صفحہ کے انتسابات سے متعلق معلومات دستیاب نہیں ہیں۔",
-       "spamprotectiontitle": "Ù\85Ù\82طار Ù\81اضÙ\84 Ú©Ø§Ø±Û\8c",
-       "spamprotectiontext": "آپ جس عبارت کو محفوظ کرنا چاہتے ہیں اسے مقطار فاضل کاری نے ممنوع کر رکھا ہے۔\nعین ممکن ہے یہ فہرست سیاہ میں درج کسی بیرونی سائٹ کے ربط کی وجہ سے ہو رہا ہو۔",
-       "spamprotectionmatch": "Ø°Û\8cÙ\84 Ù\85Û\8cÚº Ù\85Ù\88جÙ\88د Ù\85تÙ\86 Ú©Ù\88 Ù\85Ù\82طار Ù\81اضÙ\84 Ú©Ø§Ø±Û\8c Ù\86Û\92 Ø±Ù\88Ú© Ø¯Û\8cا Û\81Û\92: $1",
+       "spamprotectiontitle": "مقطر فاضل کاری",
+       "spamprotectiontext": "آپ جس عبارت کو محفوظ کرنا چاہتے ہیں اس پر مقطر فاضل کاری نے پابندی عائد کر رکھی ہے۔\nعین ممکن ہے کہ فہرست سیاہ میں درج کسی بیرونی ویب سائٹ کے ربط کی وجہ سے ایسا ہو رہا ہو۔",
+       "spamprotectionmatch": "ذیل میں موجود متن کو مقطر فاضل کاری نے روک دیا ہے: $1",
        "spambot_username": "میڈیاویکی محافظ فاضل کاری",
        "spam_reverting": "اس آخری نسخہ کی جانب واپس پھیرا جا رہا ہے جس میں $1 کے روابط شامل نہیں",
        "spam_blanking": "$1 کے روابط پر مشتمل تمام نسخے، صفائی جاری ہے",
        "newimages": "نئی فائلوں کی گیلری",
        "imagelisttext": "ذیل میں $2 <strong>$1</strong> {{PLURAL:$1|فائل|فائلوں}} کی فہرست موجود ہے۔",
        "newimages-summary": "اس خصوصی صفحہ میں تازہ ترین اپلوڈ شدہ فائلوں کی فہرست موجود ہے۔",
-       "newimages-legend": "Ù\85Ù\82طار",
+       "newimages-legend": "مقطر",
        "newimages-label": "فائل کا نام (یا اس کا جزو):",
        "newimages-user": "آئی پی پتہ یا صارف نام",
        "newimages-newbies": "محض نئے کھاتوں کی شراکتیں دکھائیں",
        "intentionallyblankpage": "اس صفحہ کو دانستہ خالی چھوڑا گیا ہے۔",
        "external_image_whitelist": "#اس سطر کو ہو بہو ایسا ہی رہنے دیں<pre>\n#ذیل میں ریجیکس کی عبارتیں درج کریں (محض // کے درمیان)\n#ان عبارتوں کی بیرونی تصویروں کے روابط سے مطابقت کی جائے گی\n#جو مطابق ہو جائیں وہ تصویر کے طور پر نظر آئیں گے ورنہ محض تصویر کا ربط ظاہر ہوگا\n# علامت # سے شرع ہونے والی سطروں کو تبصرہ سمجھا جائے گا\n#چھوٹے بڑے حروف کو نظر انداز کیا جائے گا\n\nریجیکس کی تمام عبارتوں کو اس سطر کے اوپر رکھیں۔ اس سطر کو ہو بہو ایسا ہی رہنے دیں</pre>",
        "tags": "درست تبدیلی کے ٹیگ",
-       "tag-filter": "Ù\85Ù\82طار [[Special:Tags|Ù¹Û\8cÚ¯]]:",
-       "tag-filter-submit": "Ù\85Ù\82طار",
+       "tag-filter": "مقطر [[Special:Tags|ٹیگ]]:",
+       "tag-filter-submit": "مقطر",
        "tag-list-wrapper": "[[Special:Tags|{{PLURAL:$1|ٹیگ}}]]: $2",
        "tag-mw-contentmodelchange": "مواد کے ماڈل میں تبدیلی",
        "tag-mw-contentmodelchange-description": "ترامیم جو صفحہ کے [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel مواد کے ماڈل کو تبدیل کرتی ہیں]",
index 347a832..e05f1b4 100644 (file)
        "prefs-email": "電子郵件選項",
        "prefs-rendering": "外觀",
        "saveprefs": "儲存",
-       "restoreprefs": "還原所有預設設定 (所有項目)",
+       "restoreprefs": "還原所有預設設定(所有項目)",
        "prefs-editing": "編輯",
        "searchresultshead": "搜尋",
        "stub-threshold": "短頁面連結格式門檻值 ($1):",
        "rollback-missingparam": "請求缺少必要參數。",
        "rollback-missingrevision": "無法載入修訂資料。",
        "cantrollback": "無法還原編輯;\n此頁面的最後貢獻者是唯一的作者。",
-       "alreadyrolled": "無法還原由 [[User:$2|$2]] ([[User talk:$2|對話]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]] 所作的最後一次編輯 [[:$1]],已有其他人編輯或還原了該頁面。\n\n最後一次編輯該頁面的使用者是 [[User:$3|$3]] ([[User talk:$3|對話]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])。",
+       "alreadyrolled": "無法還原由[[User:$2|$2]]([[User talk:$2|對話]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])所作的最後一次編輯[[:$1]],已有其他人編輯或還原了該頁面。\n\n最後一次編輯該頁面的使用者是[[User:$3|$3]]([[User talk:$3|對話]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])。",
        "editcomment": "編輯摘要為:<em>$1</em>。",
        "revertpage": "已還原[[Special:Contributions/$2|$2]]([[User talk:$2|對話]])的編輯為最後由[[User:$1|$1]]所修訂的版本",
        "revertpage-nouser": "已還原隱藏使用者的編輯為最後 {{GENDER:$1|[[User:$1|$1]]}} 修訂的版本",
index 5410644..1d687e5 100644 (file)
@@ -76,6 +76,15 @@ class HtmlTest extends MediaWikiTestCase {
                parent::tearDown();
        }
 
+       /**
+        * @expectedException PHPUnit_Framework_Error_Notice
+        * @expectedExceptionMessage given element name with space
+        * @covers Html::openElement
+        */
+       public function testOpenElement() {
+               Html::openElement( 'span id="x"' );
+       }
+
        /**
         * @covers Html::element
         * @covers Html::rawElement
index 5f3cba3..3339749 100644 (file)
@@ -656,7 +656,7 @@ class DerivedPageDataUpdaterTest extends MediaWikiTestCase {
                RevisionSlotsUpdate $update,
                User $user,
                $comment,
-               $id,
+               $id = 0,
                $parentId = 0
        ) {
                $rev = new MutableRevisionRecord( $title );
@@ -664,10 +664,13 @@ class DerivedPageDataUpdaterTest extends MediaWikiTestCase {
                $rev->applyUpdate( $update );
                $rev->setUser( $user );
                $rev->setComment( CommentStoreComment::newUnsavedComment( $comment ) );
-               $rev->setId( $id );
                $rev->setPageId( $title->getArticleID() );
                $rev->setParentId( $parentId );
 
+               if ( $id ) {
+                       $rev->setId( $id );
+               }
+
                return $rev;
        }
 
@@ -942,6 +945,79 @@ class DerivedPageDataUpdaterTest extends MediaWikiTestCase {
                // TODO: test category membership update (with setRcWatchCategoryMembership())
        }
 
+       /**
+        * @covers \MediaWiki\Storage\DerivedPageDataUpdater::doParserCacheUpdate()
+        */
+       public function testDoParserCacheUpdate() {
+               if ( $this->hasMultiSlotSupport() ) {
+                       MediaWikiServices::getInstance()->getSlotRoleRegistry()->defineRoleWithModel(
+                               'aux',
+                               CONTENT_MODEL_WIKITEXT
+                       );
+               }
+
+               $page = $this->getPage( __METHOD__ );
+               $this->createRevision( $page, 'Dummy' );
+
+               $user = $this->getTestUser()->getUser();
+
+               $update = new RevisionSlotsUpdate();
+               $update->modifyContent( 'main', new WikitextContent( 'first [[Main]]' ) );
+
+               if ( $this->hasMultiSlotSupport() ) {
+                       $update->modifyContent( 'aux', new WikitextContent( 'Aux [[Nix]]' ) );
+               }
+
+               // Emulate update after edit ----------
+               $pcache = MediaWikiServices::getInstance()->getParserCache();
+               $pcache->deleteOptionsKey( $page );
+
+               $rev = $this->makeRevision( $page->getTitle(), $update, $user, 'rev', null );
+               $rev->setTimestamp( '20100101000000' );
+               $rev->setParentId( $page->getLatest() );
+
+               $updater = $this->getDerivedPageDataUpdater( $page );
+               $updater->prepareContent( $user, $update, false );
+
+               $rev->setId( 11 );
+               $updater->prepareUpdate( $rev );
+
+               // Force the page timestamp, so we notice whether ParserOutput::getTimestamp
+               // or ParserOutput::getCacheTime are used.
+               $page->setTimestamp( $rev->getTimestamp() );
+               $updater->doParserCacheUpdate();
+
+               // The cached ParserOutput should not use the revision timestamp
+               $cached = $pcache->get( $page, $updater->getCanonicalParserOptions(), true );
+               $this->assertInternalType( 'object', $cached );
+               $this->assertSame( $updater->getCanonicalParserOutput(), $cached );
+
+               $this->assertSame( $rev->getTimestamp(), $cached->getCacheTime() );
+               $this->assertSame( $rev->getId(), $cached->getCacheRevisionId() );
+
+               // Emulate forced update of an old revision ----------
+               $pcache->deleteOptionsKey( $page );
+
+               $updater = $this->getDerivedPageDataUpdater( $page );
+               $updater->prepareUpdate( $rev );
+
+               // Force the page timestamp, so we notice whether ParserOutput::getTimestamp
+               // or ParserOutput::getCacheTime are used.
+               $page->setTimestamp( $rev->getTimestamp() );
+               $updater->doParserCacheUpdate();
+
+               // The cached ParserOutput should not use the revision timestamp
+               $cached = $pcache->get( $page, $updater->getCanonicalParserOptions(), true );
+               $this->assertInternalType( 'object', $cached );
+               $this->assertSame( $updater->getCanonicalParserOutput(), $cached );
+
+               $this->assertGreaterThan( $rev->getTimestamp(), $cached->getCacheTime() );
+               $this->assertSame( $rev->getId(), $cached->getCacheRevisionId() );
+       }
+
+       /**
+        * @return bool
+        */
        private function hasMultiSlotSupport() {
                global $wgMultiContentRevisionSchemaMigrationStage;
 
index 4e09077..89e1d4e 100644 (file)
@@ -29,6 +29,9 @@ class PageUpdaterTest extends MediaWikiTestCase {
                        'aux',
                        CONTENT_MODEL_WIKITEXT
                );
+
+               $this->tablesUsed[] = 'logging';
+               $this->tablesUsed[] = 'recentchanges';
        }
 
        private function getDummyTitle( $method ) {
index e229f0c..feafdef 100644 (file)
@@ -215,6 +215,19 @@ class ApiBlockTest extends ApiTestCase {
                $this->doBlock( [ 'expiry' => '' ] );
        }
 
+       public function testBlockWithoutRestrictions() {
+               $this->setMwGlobals( [
+                       'wgEnablePartialBlocks' => true,
+               ] );
+
+               $this->doBlock();
+
+               $block = Block::newFromTarget( $this->mUser->getName() );
+
+               $this->assertTrue( $block->isSitewide() );
+               $this->assertCount( 0, $block->getRestrictions() );
+       }
+
        public function testBlockWithRestrictions() {
                $this->setMwGlobals( [
                        'wgEnablePartialBlocks' => true,
index fc546ff..803eefb 100644 (file)
@@ -41,6 +41,35 @@ class ApiDeleteTest extends ApiTestCase {
                $this->assertFalse( Title::newFromText( $name )->exists() );
        }
 
+       public function testBatchedDelete() {
+               $this->setMwGlobals( 'wgDeleteRevisionsBatchSize', 1 );
+
+               $name = 'Help:' . ucfirst( __FUNCTION__ );
+               for ( $i = 1; $i <= 3; $i++ ) {
+                       $this->editPage( $name, "Revision $i" );
+               }
+
+               $apiResult = $this->doApiRequestWithToken( [
+                       'action' => 'delete',
+                       'title' => $name,
+               ] )[0];
+
+               $this->assertArrayHasKey( 'delete', $apiResult );
+               $this->assertArrayHasKey( 'title', $apiResult['delete'] );
+               $this->assertSame( $name, $apiResult['delete']['title'] );
+               $this->assertArrayHasKey( 'scheduled', $apiResult['delete'] );
+               $this->assertTrue( $apiResult['delete']['scheduled'] );
+               $this->assertArrayNotHasKey( 'logid', $apiResult['delete'] );
+
+               // Run the jobs
+               JobQueueGroup::destroySingletons();
+               $jobs = new RunJobs;
+               $jobs->loadParamsAndArgs( null, [ 'quiet' => true ], null );
+               $jobs->execute();
+
+               $this->assertFalse( Title::newFromText( $name )->exists( Title::GAID_FOR_UPDATE ) );
+       }
+
        public function testDeleteNonexistent() {
                $this->setExpectedException( ApiUsageException::class,
                        "The page you specified doesn't exist." );
index 312ef55..d7628e0 100644 (file)
@@ -634,6 +634,40 @@ class ApiErrorFormatterTest extends MediaWikiLangTestCase {
                ];
        }
 
+       public function testAddMessagesFromStatus_filter() {
+               $result = new ApiResult( 8388608 );
+               $formatter = new ApiErrorFormatter( $result, Language::factory( 'qqx' ), 'plaintext', false );
+
+               $status = Status::newGood();
+               $status->warning( 'mainpage' );
+               $status->warning( 'parentheses', 'foobar' );
+               $status->warning( wfMessage( 'mainpage' ) );
+               $status->error( 'mainpage' );
+               $status->error( 'parentheses', 'foobaz' );
+               $formatter->addMessagesFromStatus( 'status', $status, [ 'warning', 'error' ], [ 'mainpage' ] );
+               $this->assertSame( [
+                       'errors' => [
+                               [
+                                       'code' => 'parentheses',
+                                       'text' => '(parentheses: foobaz)',
+                                       'module' => 'status',
+                                       ApiResult::META_CONTENT => 'text',
+                               ],
+                               ApiResult::META_INDEXED_TAG_NAME => 'error',
+                       ],
+                       'warnings' => [
+                               [
+                                       'code' => 'parentheses',
+                                       'text' => '(parentheses: foobar)',
+                                       'module' => 'status',
+                                       ApiResult::META_CONTENT => 'text',
+                               ],
+                               ApiResult::META_INDEXED_TAG_NAME => 'warning',
+                       ],
+                       ApiResult::META_TYPE => 'assoc',
+               ], $result->getResultData() );
+       }
+
        /**
         * @dataProvider provideIsValidApiCode
         * @covers ApiErrorFormatter::isValidApiCode
index 1147805..dc02922 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+use Wikimedia\TestingAccessWrapper;
+
 /**
  * @group Database
  */
@@ -23,7 +25,7 @@ class ContribsPagerTest extends MediaWikiTestCase {
         * @param array $inputOpts Input options
         * @param array $expectedOpts Expected options
         */
-       public function testDateFilterOptionProcessing( $inputOpts, $expectedOpts ) {
+       public function testDateFilterOptionProcessing( array $inputOpts, array $expectedOpts ) {
                $this->assertArraySubset( $expectedOpts, ContribsPager::processDateFilter( $inputOpts ) );
        }
 
@@ -115,4 +117,50 @@ class ContribsPagerTest extends MediaWikiTestCase {
                        [ '2001:db8::/9999' ],
                ];
        }
+
+       /**
+        * @covers \ContribsPager::getExtraSortFields
+        * @covers \ContribsPager::getIndexField
+        * @covers \ContribsPager::getQueryInfo
+        */
+       public function testUniqueSortOrderWithoutIpChanges() {
+               $pager = new ContribsPager( new RequestContext(), [
+                       'start' => '',
+                       'end' => '',
+               ] );
+
+               /** @var ContribsPager $pager */
+               $pager = TestingAccessWrapper::newFromObject( $pager );
+               $queryInfo = $pager->buildQueryInfo( '', 1, false );
+
+               $this->assertNotContains( 'ip_changes', $queryInfo[0] );
+               $this->assertArrayNotHasKey( 'ip_changes', $queryInfo[5] );
+               $this->assertContains( 'rev_timestamp', $queryInfo[1] );
+               $this->assertContains( 'rev_id', $queryInfo[1] );
+               $this->assertSame( [ 'rev_timestamp DESC', 'rev_id DESC' ], $queryInfo[4]['ORDER BY'] );
+       }
+
+       /**
+        * @covers \ContribsPager::getExtraSortFields
+        * @covers \ContribsPager::getIndexField
+        * @covers \ContribsPager::getQueryInfo
+        */
+       public function testUniqueSortOrderOnIpChanges() {
+               $pager = new ContribsPager( new RequestContext(), [
+                       'target' => '116.17.184.5/32',
+                       'start' => '',
+                       'end' => '',
+               ] );
+
+               /** @var ContribsPager $pager */
+               $pager = TestingAccessWrapper::newFromObject( $pager );
+               $queryInfo = $pager->buildQueryInfo( '', 1, false );
+
+               $this->assertContains( 'ip_changes', $queryInfo[0] );
+               $this->assertArrayHasKey( 'ip_changes', $queryInfo[5] );
+               $this->assertSame( 'ipc_rev_timestamp', $queryInfo[1]['rev_timestamp'] );
+               $this->assertSame( 'ipc_rev_id', $queryInfo[1]['rev_id'] );
+               $this->assertSame( [ 'rev_timestamp DESC', 'rev_id DESC' ], $queryInfo[4]['ORDER BY'] );
+       }
+
 }