Merge "Add another Bengali synonym for HIDDENCAT in MessagesBn.php"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 10 May 2019 17:03:17 +0000 (17:03 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 10 May 2019 17:03:17 +0000 (17:03 +0000)
48 files changed:
RELEASE-NOTES-1.34
includes/EditPage.php
includes/GlobalFunctions.php
includes/MagicWord.php
includes/MagicWordArray.php
includes/OutputPage.php
includes/actions/WatchAction.php
includes/api/ApiBase.php
includes/api/ApiFormatRaw.php
includes/api/ApiUpload.php
includes/api/i18n/uk.json
includes/collation/IcuCollation.php
includes/filerepo/file/LocalFileDeleteBatch.php
includes/htmlform/HTMLForm.php
includes/htmlform/fields/HTMLUserTextField.php
includes/libs/IP.php
includes/libs/MWMessagePack.php
includes/objectcache/ObjectCache.php
includes/page/PageArchive.php
includes/parser/ParserOutput.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/search/SearchDatabase.php
includes/skins/BaseTemplate.php
includes/skins/QuickTemplate.php
includes/title/MediaWikiTitleCodec.php
includes/title/TitleParser.php
includes/upload/UploadStash.php
includes/user/User.php
languages/Language.php
languages/i18n/be-tarask.json
languages/i18n/bjn.json
languages/i18n/fr.json
languages/i18n/hr.json
languages/i18n/id.json
languages/i18n/io.json
languages/i18n/ja.json
languages/i18n/lv.json
languages/i18n/nqo.json
languages/i18n/sr-ec.json
resources/lib/foreign-resources.yaml
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/MagicWordFactoryTest.php
tests/phpunit/includes/actions/WatchActionTest.php
tests/phpunit/includes/libs/MWMessagePackTest.php
tests/phpunit/includes/page/PageArchivePreMcrTest.php
tests/phpunit/includes/page/PageArchiveTestBase.php
tests/phpunit/includes/user/UserTest.php
tests/phpunit/languages/LanguageTest.php

index f5edaa0..03a42c2 100644 (file)
@@ -39,7 +39,8 @@ For notes on 1.33.x and older releases, see HISTORY.
 * …
 
 === New developer features in 1.34 ===
-* …
+* Language::formatTimePeriod now supports the new 'avoidhours' option to output
+  strings like "5 days ago" instead of "5 days 13 hours ago".
 
 === External library changes in 1.34 ===
 
@@ -120,6 +121,32 @@ because of Phabricator reports.
 * User::makeGroupLinkWiki(), deprecated in 1.29, has been removed. Use
   UserGroupMembership::getLink() instead.
 * SavepointPostgres, deprecated in 1.31, has been removed.
+* Output::sectionEditLinksEnabled(), ParserOutput::getEditSectionTokens,
+  ::getTOCEnabled, ::setEditSectionTokens, ::setTOCEnabled, deprecated in 1.31,
+  have been removed.
+* EditPage::safeUnicodeInput() and ::safeUnicodeOutput(), deprecated in 1.30,
+  have been removed.
+* Four methods in OutputPage, deprecated in 1.32, have been removed. You should
+  use OutputPage::showFatalError or throw a FatalError instead. The methods are
+  ::showFileCopyError(), ::showFileRenameError(), ::showFileDeleteError(), and
+  ::showFileNotFoundError().
+* ApiBase::truncateArray(), deprecated in 1.32, has been removed.
+* IcuCollation::getICUVersion(), deprecated in 1.32, has been removed. Use PHP's
+  INTL_ICU_VERSION constant directly.
+* HTMLForm::setSubmitProgressive(), deprecated in 1.32, has been removed.
+* ResourceLoaderStartUpModules::getStartupModules() and ::getLegacyModules(),
+  both deprecated in 1.32, have been removed.
+* BaseTemplate::msgHtml() and QuickTemplate::msgHtml(), deprecated in 1.32, have
+  been removed. Use ->msg() or ->getMsg() instead.
+* WatchAction::getUnwatchToken(), deprecated in 1.32, has been removed. Instead,
+  use WatchAction::getWatchToken() with action 'unwatch' directly.
+* Language::initEncoding(), ::recodeForEdit(), and recodeInput(), deprecated in
+  1.28, have been removed.
+* PageArchive::getTextFromRow(), ::listAllPages(), and ::getLastRevisionText(),
+  deprecated in 1.32, have been removed.
+* OutputPage::getModuleScripts(), ParserOutput::getModuleScripts(), deprecated
+  in 1.33, have been removed.
+* User::getPasswordValidity(), deprecated in 1.33, has been removed.
 * …
 
 === Deprecations in 1.34 ===
@@ -154,6 +181,7 @@ because of Phabricator reports.
   deprecated. Use MediaWikiServices instead.
 * The getSubjectPage, getTalkPage, and getOtherPage of Title are deprecated.
   Use NamespaceInfo's getSubjectPage, getTalkPage, and getAssociatedPage.
+* MWMessagePack class, no longer used, has been deprecated in 1.34.
 
 === Other changes in 1.34 ===
 * …
index 2d5b9e2..7908fcc 100644 (file)
@@ -2934,7 +2934,7 @@ ERROR;
                }
 
                if ( !$this->mTitle->isUserConfigPage() ) {
-                       $out->addHTML( self::getEditToolbar( $this->mTitle ) );
+                       $out->addHTML( self::getEditToolbar() );
                }
 
                if ( $this->blankArticle ) {
@@ -4101,10 +4101,9 @@ ERROR;
        /**
         * Allow extensions to provide a toolbar.
         *
-        * @param Title|null $title Title object for the page being edited (optional)
         * @return string|null
         */
-       public static function getEditToolbar( $title = null ) {
+       public static function getEditToolbar() {
                $startingToolbar = '<div id="toolbar"></div>';
                $toolbar = $startingToolbar;
 
@@ -4360,33 +4359,6 @@ ERROR;
                $out->addReturnTo( $this->getContextTitle(), [ 'action' => 'edit' ] );
        }
 
-       /**
-        * Filter an input field through a Unicode de-armoring process if it
-        * came from an old browser with known broken Unicode editing issues.
-        *
-        * @deprecated since 1.30, does nothing
-        *
-        * @param WebRequest $request
-        * @param string $field
-        * @return string
-        */
-       protected function safeUnicodeInput( $request, $field ) {
-               return rtrim( $request->getText( $field ) );
-       }
-
-       /**
-        * Filter an output field through a Unicode armoring process if it is
-        * going to an old browser with known broken Unicode editing issues.
-        *
-        * @deprecated since 1.30, does nothing
-        *
-        * @param string $text
-        * @return string
-        */
-       protected function safeUnicodeOutput( $text ) {
-               return $text;
-       }
-
        /**
         * @since 1.29
         */
index 66a4d9a..486dfe4 100644 (file)
@@ -2627,7 +2627,7 @@ function wfGetLB( $wiki = false ) {
  * @return \Wikimedia\Rdbms\LBFactory
  */
 function wfGetLBFactory() {
-       wfDeprecated( __METHOD__, '1.34' );
+       wfDeprecated( __METHOD__, '1.27' );
        return MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
 }
 
index 3c77234..0984786 100644 (file)
@@ -109,11 +109,7 @@ class MagicWord {
                $this->mId = $id;
                $this->mSynonyms = (array)$syn;
                $this->mCaseSensitive = $cs;
-               $this->contLang = $contLang;
-
-               if ( !$contLang ) {
-                       $this->contLang = MediaWikiServices::getInstance()->getContentLanguage();
-               }
+               $this->contLang = $contLang ?: MediaWikiServices::getInstance()->getContentLanguage();
        }
 
        /**
index 707c644..73d5173 100644 (file)
@@ -49,10 +49,7 @@ class MagicWordArray {
         */
        public function __construct( $names = [], MagicWordFactory $factory = null ) {
                $this->names = $names;
-               $this->factory = $factory;
-               if ( !$factory ) {
-                       $this->factory = MediaWikiServices::getInstance()->getMagicWordFactory();
-               }
+               $this->factory = $factory ?: MediaWikiServices::getInstance()->getMagicWordFactory();
        }
 
        /**
index 56e2370..c45fce7 100644 (file)
@@ -548,15 +548,6 @@ class OutputPage extends ContextSource {
                $this->mModules = array_merge( $this->mModules, (array)$modules );
        }
 
-       /**
-        * @deprecated since 1.33 Use getModules() instead.
-        * @return array
-        */
-       public function getModuleScripts() {
-               wfDeprecated( __METHOD__, '1.33' );
-               return [];
-       }
-
        /**
         * Get the list of style-only modules to load on this page.
         *
@@ -2998,46 +2989,6 @@ class OutputPage extends ContextSource {
                $this->addHTML( $message );
        }
 
-       /**
-        * @deprecated 1.32 Use OutputPage::showFatalError or throw FatalError instead.
-        */
-       public function showUnexpectedValueError( $name, $val ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               $this->showFatalError( $this->msg( 'unexpected', $name, $val )->escaped() );
-       }
-
-       /**
-        * @deprecated 1.32 Use OutputPage::showFatalError or throw FatalError instead.
-        */
-       public function showFileCopyError( $old, $new ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               $this->showFatalError( $this->msg( 'filecopyerror', $old, $new )->escaped() );
-       }
-
-       /**
-        * @deprecated 1.32 Use OutputPage::showFatalError or throw FatalError instead.
-        */
-       public function showFileRenameError( $old, $new ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               $this->showFatalError( $this->msg( 'filerenameerror', $old, $new )->escaped() );
-       }
-
-       /**
-        * @deprecated 1.32 Use OutputPage::showFatalError or throw FatalError instead.
-        */
-       public function showFileDeleteError( $name ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               $this->showFatalError( $this->msg( 'filedeleteerror', $name )->escaped() );
-       }
-
-       /**
-        * @deprecated 1.32 Use OutputPage::showFatalError or throw FatalError instead.
-        */
-       public function showFileNotFoundError( $name ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               $this->showFatalError( $this->msg( 'filenotfound', $name )->escaped() );
-       }
-
        /**
         * Add a "return to" link pointing to a specified title
         *
@@ -4231,16 +4182,6 @@ class OutputPage extends ContextSource {
                wfDeprecated( __METHOD__, '1.31' );
        }
 
-       /**
-        * @return bool
-        * @since 1.23
-        * @deprecated since 1.31, use $poOptions to addParserOutput() instead.
-        */
-       public function sectionEditLinksEnabled() {
-               wfDeprecated( __METHOD__, '1.31' );
-               return true;
-       }
-
        /**
         * Helper function to setup the PHP implementation of OOUI to use in this request.
         *
index aaccc0c..0eba613 100644 (file)
@@ -173,21 +173,6 @@ class WatchAction extends FormAction {
                return $user->getEditToken( $action );
        }
 
-       /**
-        * Get token to unwatch (or watch) a page for a user
-        *
-        * @param Title $title Title object of page to unwatch
-        * @param User $user User for whom the action is going to be performed
-        * @param string $action Optionally override the action to 'watch'
-        * @return string Token
-        * @since 1.18
-        * @deprecated since 1.32 Use WatchAction::getWatchToken() with action 'unwatch' directly.
-        */
-       public static function getUnwatchToken( Title $title, User $user, $action = 'unwatch' ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               return self::getWatchToken( $title, $user, $action );
-       }
-
        public function doesWrites() {
                return true;
        }
index bc62906..8d0d314 100644 (file)
@@ -2685,24 +2685,6 @@ abstract class ApiBase extends ContextSource {
                ] ];
        }
 
-       /**
-        * Truncate an array to a certain length.
-        * @deprecated since 1.32, no replacement
-        * @param array &$arr Array to truncate
-        * @param int $limit Maximum length
-        * @return bool True if the array was truncated, false otherwise
-        */
-       public static function truncateArray( &$arr, $limit ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               $modified = false;
-               while ( count( $arr ) > $limit ) {
-                       array_pop( $arr );
-                       $modified = true;
-               }
-
-               return $modified;
-       }
-
        /**@}*/
 }
 
index 9ec4a2c..1d83f73 100644 (file)
@@ -35,11 +35,8 @@ class ApiFormatRaw extends ApiFormatBase {
         */
        public function __construct( ApiMain $main, ApiFormatBase $errorFallback = null ) {
                parent::__construct( $main, 'raw' );
-               if ( $errorFallback === null ) {
-                       $this->errorFallback = $main->createPrinterByName( $main->getParameter( 'format' ) );
-               } else {
-                       $this->errorFallback = $errorFallback;
-               }
+               $this->errorFallback = $errorFallback ?:
+                       $main->createPrinterByName( $main->getParameter( 'format' ) );
        }
 
        public function getMimeType() {
index fc41e4e..f0d271c 100644 (file)
@@ -74,20 +74,8 @@ class ApiUpload extends ApiBase {
                }
 
                // Check if the uploaded file is sane
-               if ( $this->mParams['chunk'] ) {
-                       $maxSize = UploadBase::getMaxUploadSize();
-                       if ( $this->mParams['filesize'] > $maxSize ) {
-                               $this->dieWithError( 'file-too-large' );
-                       }
-                       if ( !$this->mUpload->getTitle() ) {
-                               $this->dieWithError( 'illegal-filename' );
-                       }
-               } elseif ( $this->mParams['async'] && $this->mParams['filekey'] ) {
-                       // defer verification to background process
-               } else {
-                       wfDebug( __METHOD__ . " about to verify\n" );
-                       $this->verifyUpload();
-               }
+               wfDebug( __METHOD__ . " about to verify\n" );
+               $this->verifyUpload();
 
                // Check if the user has the rights to modify or overwrite the requested title
                // (This check is irrelevant if stashing is already requested, since the errors
index 7bad7c0..e4c9239 100644 (file)
        "apihelp-edit-param-text": "Вміст сторінки.",
        "apihelp-edit-param-summary": "Опис редагування. Також заголовок розділу, коли $1section=new і коли $1sectiontitle не вказано.",
        "apihelp-edit-param-tags": "Змінити теги для версії.",
-       "apihelp-edit-param-minor": "Ð\9dезнаÑ\87не Ñ\80едагÑ\83ваннÑ\8f.",
-       "apihelp-edit-param-notminor": "Не «незначне» редагування.",
+       "apihelp-edit-param-minor": "Ð\9fознаÑ\87иÑ\82и Ñ\86е Ñ\80едагÑ\83ваннÑ\8f Ñ\8fк Ð½ÐµÐ·Ð½Ð°Ñ\87не.",
+       "apihelp-edit-param-notminor": "Не позначати це редагування як незначне, навіть якщо стоїть налаштування користувача «{{int:tog-minordefault}}».",
        "apihelp-edit-param-bot": "Позначити редагування як зроблене ботом.",
        "apihelp-edit-param-basetimestamp": "Мітка часу для основної версії, використовується для виявлення конфлікту редагувань. Може бути отримана через [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
        "apihelp-edit-param-starttimestamp": "Мітка часу, з якого почався процес редагування, використовується для виявлення конфліктів редагувань. Відповідне значення можна отримати з допомогою <var>[[Special:ApiHelp/main|curtimestamp]]</var> на початку процесу редагування (напр., коли завантажується вміст сторінки для редагування).",
        "apihelp-parse-paramvalue-prop-revid": "Додає ідентифікатор версії аналізованої сторінки.",
        "apihelp-parse-paramvalue-prop-displaytitle": "Додає заголовок аналізованого вікітексту.",
        "apihelp-parse-paramvalue-prop-headitems": "Дає елементи для вставки в <code>&lt;head&gt;</code> сторінки.",
-       "apihelp-parse-paramvalue-prop-headhtml": "Дає проаналізований <code>&lt;head&gt;</code> сторінки.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Дає проаналізований тип документа, початковий <code>&lt;html&gt;</code>, елемент <code>&lt;head&gt;</code> та початковий <code>&lt;body&gt;</code> сторінки.",
        "apihelp-parse-paramvalue-prop-modules": "Дає модулі ResourceLoader, використані на сторінці. Щоб завантажити, використовуйте <code>mw.loader.using()</code>. Чи <kbd>jsconfigvars</kbd>, чи <kbd>encodedjsconfigvars</kbd> має бути запитано разом з <kbd>modules</kbd>.",
        "apihelp-parse-paramvalue-prop-jsconfigvars": "Дає змінні конфігурації JavaScript, притаманні для сторінки. Щоб застосувати, використайте <code>mw.config.set()</code>.",
        "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Дає змінні конфігурації JavaScript, притаманні для сторінки, як рядок JSON.",
index 9c1c5f8..7774a60 100644 (file)
@@ -526,23 +526,6 @@ class IcuCollation extends Collation {
                return false;
        }
 
-       /**
-        * Return the version of ICU library used by PHP's intl extension,
-        * or false when the extension is not installed of the version
-        * can't be determined.
-        *
-        * The constant INTL_ICU_VERSION this function refers to isn't really
-        * documented, but see https://bugs.php.net/bug.php?id=54561.
-        *
-        * @since 1.21
-        * @deprecated since 1.32, use INTL_ICU_VERSION directly
-        * @return string
-        */
-       static function getICUVersion() {
-               wfDeprecated( __METHOD__, '1.32' );
-               return INTL_ICU_VERSION;
-       }
-
        /**
         * Return the version of Unicode appropriate for the version of ICU library
         * currently in use, or false when it can't be determined.
index ecd63e7..d447945 100644 (file)
@@ -62,12 +62,8 @@ class LocalFileDeleteBatch {
                $this->file = $file;
                $this->reason = $reason;
                $this->suppress = $suppress;
-               if ( $user ) {
-                       $this->user = $user;
-               } else {
-                       global $wgUser;
-                       $this->user = $wgUser;
-               }
+               global $wgUser;
+               $this->user = $user ?: $wgUser;
                $this->status = $file->repo->newGood();
        }
 
index 99671c0..85a2a1b 100644 (file)
@@ -1373,21 +1373,6 @@ class HTMLForm extends ContextSource {
                return $this;
        }
 
-       /**
-        * Identify that the submit button in the form has a progressive action
-        * @since 1.25
-        * @deprecated since 1.32, No need to call. Submit button already
-        * has a progressive action form.
-        *
-        * @return HTMLForm $this for chaining calls (since 1.28)
-        */
-       public function setSubmitProgressive() {
-               wfDeprecated( __METHOD__, '1.32' );
-               $this->mSubmitFlags = [ 'progressive', 'primary' ];
-
-               return $this;
-       }
-
        /**
         * Set the text for the submit button to a message
         * @since 1.19
index d672314..5b3bc25 100644 (file)
@@ -65,7 +65,7 @@ class HTMLUserTextField extends HTMLTextField {
        protected function isValidIPRange( $value ) {
                $cidrIPRanges = $this->mParams['iprangelimits'];
 
-               if ( !IP::isValidBlock( $value ) ) {
+               if ( !IP::isValidRange( $value ) ) {
                        return false;
                }
 
index da525e7..37e0076 100644 (file)
@@ -125,6 +125,7 @@ class IP {
         * @return bool True if it is valid
         */
        public static function isValidBlock( $ipRange ) {
+               wfDeprecated( __METHOD__, '1.30' );
                return self::isValidRange( $ipRange );
        }
 
index be7e93d..84b7b3e 100644 (file)
@@ -31,6 +31,7 @@
  *
  * @since 1.23
  * @file
+ * @deprecated since 1.34, no longer used
  */
 class MWMessagePack {
        /** @var bool|null Whether current system is bigendian. **/
@@ -43,11 +44,14 @@ class MWMessagePack {
         * (both indexed and associative) types. Object serialization is not
         * supported.
         *
+        * @deprecated since 1.34, no longer used
+        *
         * @param mixed $value
         * @return string
         * @throws InvalidArgumentException if $value is an unsupported type or too long a string
         */
        public static function pack( $value ) {
+               wfDeprecated( __METHOD__, '1.34' );
                if ( self::$bigendian === null ) {
                        self::$bigendian = pack( 'S', 1 ) === pack( 'n', 1 );
                }
index fed0854..bc87c70 100644 (file)
@@ -326,14 +326,6 @@ class ObjectCache {
                global $wgCommandLineMode;
 
                $services = MediaWikiServices::getInstance();
-
-               $erGroup = $services->getEventRelayerGroup();
-               if ( isset( $params['channels'] ) ) {
-                       foreach ( $params['channels'] as $action => $channel ) {
-                               $params['relayers'][$action] = $erGroup->getRelayer( $channel );
-                               $params['channels'][$action] = $channel;
-                       }
-               }
                $params['cache'] = self::newFromParams( $params['store'] );
                $params['logger'] = LoggerFactory::getInstance( $params['loggroup'] ?? 'objectcache' );
                if ( !$wgCommandLineMode ) {
index e843cf3..a314f3a 100644 (file)
@@ -21,7 +21,6 @@
 use MediaWiki\MediaWikiServices;
 use MediaWiki\Revision\RevisionRecord;
 use MediaWiki\Revision\RevisionStore;
-use MediaWiki\Storage\SqlBlobStore;
 use Wikimedia\Assert\Assert;
 use Wikimedia\Rdbms\IResultWrapper;
 use Wikimedia\Rdbms\IDatabase;
@@ -69,23 +68,6 @@ class PageArchive {
                return true;
        }
 
-       /**
-        * List all deleted pages recorded in the archive table. Returns result
-        * wrapper with (ar_namespace, ar_title, count) fields, ordered by page
-        * namespace/title.
-        *
-        * @deprecated since 1.32.
-        *
-        * @return IResultWrapper
-        */
-       public static function listAllPages() {
-               wfDeprecated( __METHOD__, '1.32' );
-
-               $dbr = wfGetDB( DB_REPLICA );
-
-               return self::listPages( $dbr, '' );
-       }
-
        /**
         * List deleted pages recorded in the archive matching the
         * given term, using search engine archive.
@@ -370,59 +352,6 @@ class PageArchive {
                return $rec;
        }
 
-       /**
-        * Get the text from an archive row containing ar_text_id.
-        *
-        * @deprecated since 1.32. In the MCR schema, ar_text_id no longer exists.
-        * Calling code should switch to getArchiveRevision().
-        *
-        * @todo remove in 1.33
-        *
-        * @param object $row Database row
-        * @return string
-        */
-       public function getTextFromRow( $row ) {
-               wfDeprecated( __METHOD__, '1.32' );
-
-               if ( empty( $row->ar_text_id ) ) {
-                       throw new InvalidArgumentException( '$row->ar_text_id must be set and not empty!' );
-               }
-
-               $address = SqlBlobStore::makeAddressFromTextId( $row->ar_text_id );
-               $blobStore = MediaWikiServices::getInstance()->getBlobStore();
-
-               return $blobStore->getBlob( $address );
-       }
-
-       /**
-        * Fetch (and decompress if necessary) the stored text of the most
-        * recently edited deleted revision of the page.
-        *
-        * If there are no archived revisions for the page, returns NULL.
-        *
-        * @note this bypasses any audience checks.
-        *
-        * @deprecated since 1.32. For compatibility with the MCR schema,
-        * calling code should switch to getLastRevisionId() and getArchiveRevision().
-        *
-        * @todo remove in 1.33
-        *
-        * @return string|null
-        */
-       public function getLastRevisionText() {
-               wfDeprecated( __METHOD__, '1.32' );
-
-               $revId = $this->getLastRevisionId();
-
-               if ( $revId ) {
-                       $rev = $this->getArchivedRevision( $revId );
-                       $content = $rev->getContent( RevisionRecord::RAW );
-                       return $content->serialize();
-               }
-
-               return null;
-       }
-
        /**
         * Returns the ID of the latest deleted revision.
         *
index f2aaeed..cc70713 100644 (file)
@@ -42,7 +42,7 @@ class ParserOutput extends CacheTime {
        public $mLanguageLinks;
 
        /**
-        * @var array $mCategoriesMap of category names to sort keys
+        * @var array $mCategories Map of category names to sort keys
         */
        public $mCategories;
 
@@ -471,14 +471,6 @@ class ParserOutput extends CacheTime {
                return $this->mSections;
        }
 
-       /**
-        * @deprecated since 1.31 Use getText() options.
-        */
-       public function getEditSectionTokens() {
-               wfDeprecated( __METHOD__, '1.31' );
-               return true;
-       }
-
        public function &getLinks() {
                return $this->mLinks;
        }
@@ -518,11 +510,6 @@ class ParserOutput extends CacheTime {
                return $this->mModules;
        }
 
-       public function getModuleScripts() {
-               wfDeprecated( __METHOD__, '1.33' );
-               return [];
-       }
-
        public function getModuleStyles() {
                return $this->mModuleStyles;
        }
@@ -566,14 +553,6 @@ class ParserOutput extends CacheTime {
                return $this->mLimitReportJSData;
        }
 
-       /**
-        * @deprecated since 1.31 Use getText() options.
-        */
-       public function getTOCEnabled() {
-               wfDeprecated( __METHOD__, '1.31' );
-               return true;
-       }
-
        public function getEnableOOUI() {
                return $this->mEnableOOUI;
        }
@@ -598,14 +577,6 @@ class ParserOutput extends CacheTime {
                return wfSetVar( $this->mSections, $toc );
        }
 
-       /**
-        * @deprecated since 1.31 Use getText() options.
-        */
-       public function setEditSectionTokens( $t ) {
-               wfDeprecated( __METHOD__, '1.31' );
-               return true;
-       }
-
        public function setIndexPolicy( $policy ) {
                return wfSetVar( $this->mIndexPolicy, $policy );
        }
@@ -618,14 +589,6 @@ class ParserOutput extends CacheTime {
                return wfSetVar( $this->mTimestamp, $timestamp );
        }
 
-       /**
-        * @deprecated since 1.31 Use getText() options.
-        */
-       public function setTOCEnabled( $flag ) {
-               wfDeprecated( __METHOD__, '1.31' );
-               return true;
-       }
-
        public function addCategory( $c, $sort ) {
                $this->mCategories[$c] = $sort;
        }
index 8cbde09..c834db1 100644 (file)
@@ -321,29 +321,6 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return true;
        }
 
-       /**
-        * Internal modules used by ResourceLoader that cannot be depended on.
-        *
-        * These module(s) should have isRaw() return true, and are not
-        * legal dependencies (enforced by structure/ResourcesTest).
-        *
-        * @deprecated since 1.32 No longer used.
-        * @return array
-        */
-       public static function getStartupModules() {
-               wfDeprecated( __METHOD__, '1.32' );
-               return [];
-       }
-
-       /**
-        * @deprecated since 1.32 No longer used.
-        * @return array
-        */
-       public static function getLegacyModules() {
-               wfDeprecated( __METHOD__, '1.32' );
-               return [];
-       }
-
        /**
         * @private For internal use by SpecialJavaScriptTest
         * @since 1.32
index 54bfd28..230cded 100644 (file)
@@ -38,11 +38,7 @@ abstract class SearchDatabase extends SearchEngine {
         * @param IDatabase|null $db The database to search from
         */
        public function __construct( IDatabase $db = null ) {
-               if ( $db ) {
-                       $this->db = $db;
-               } else {
-                       $this->db = wfGetDB( DB_REPLICA );
-               }
+               $this->db = $db ?: wfGetDB( DB_REPLICA );
        }
 
        /**
index 8fe35f0..6d108e8 100644 (file)
@@ -43,18 +43,6 @@ abstract class BaseTemplate extends QuickTemplate {
                echo $this->getMsg( $str )->escaped();
        }
 
-       /**
-        * @param string $str
-        * @warning You should never use this method. I18n messages should be escaped
-        * @deprecated 1.32 Use ->msg() or ->getMsg() instead.
-        * @suppress SecurityCheck-XSS
-        * @return-taint exec_html
-        */
-       function msgHtml( $str ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               echo $this->getMsg( $str )->text();
-       }
-
        /**
         * @deprecated since 1.33 Use ->msg() or ->getMsg() instead.
         */
index 5044301..6bcf1c3 100644 (file)
@@ -125,19 +125,6 @@ abstract class QuickTemplate {
                echo htmlspecialchars( wfMessage( $msgKey )->text() );
        }
 
-       /**
-        * @private
-        * @param string $msgKey
-        * @warning You should never use this method. I18n messages should be escaped
-        * @deprecated 1.32 Use ->msg() instead.
-        * @suppress SecurityCheck-XSS
-        * @return-taint exec_html
-        */
-       function msgHtml( $msgKey ) {
-               wfDeprecated( __METHOD__, '1.32' );
-               echo wfMessage( $msgKey )->text();
-       }
-
        /**
         * An ugly, ugly hack.
         * @deprecated since 1.33 Use ->msg() instead.
index 31a0222..778fb3f 100644 (file)
@@ -154,8 +154,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
        }
 
        /**
-        * Parses the given text and constructs a TitleValue. Normalization
-        * is applied according to the rules appropriate for the form specified by $form.
+        * Parses the given text and constructs a TitleValue.
         *
         * @param string $text The text to parse
         * @param int $defaultNamespace Namespace to assume per default (usually NS_MAIN)
index ddffed6..8569735 100644 (file)
@@ -32,8 +32,7 @@
  */
 interface TitleParser {
        /**
-        * Parses the given text and constructs a TitleValue. Normalization
-        * is applied according to the rules appropriate for the form specified by $form.
+        * Parses the given text and constructs a TitleValue.
         *
         * @note this only parses local page links, interwiki-prefixes etc. are not considered!
         *
index 2c4bc11..d39975d 100644 (file)
@@ -89,12 +89,8 @@ class UploadStash {
 
                // if a user was passed, use it. otherwise, attempt to use the global.
                // this keeps FileRepo from breaking when it creates an UploadStash object
-               if ( $user ) {
-                       $this->user = $user;
-               } else {
-                       global $wgUser;
-                       $this->user = $wgUser;
-               }
+               global $wgUser;
+               $this->user = $user ?: $wgUser;
 
                if ( is_object( $this->user ) ) {
                        $this->userId = $this->user->getId();
index 2f6deb5..18d62f5 100644 (file)
@@ -1162,35 +1162,6 @@ class User implements IDBAccessObject, UserIdentity {
                return $this->checkPasswordValidity( $password )->isGood();
        }
 
-       /**
-        * Given unvalidated password input, return error message on failure.
-        *
-        * @param string $password Desired password
-        * @return bool|string|array True on success, string or array of error message on failure
-        * @deprecated since 1.33, use checkPasswordValidity
-        */
-       public function getPasswordValidity( $password ) {
-               wfDeprecated( __METHOD__, '1.33' );
-
-               $result = $this->checkPasswordValidity( $password );
-               if ( $result->isGood() ) {
-                       return true;
-               }
-
-               $messages = [];
-               foreach ( $result->getErrorsByType( 'error' ) as $error ) {
-                       $messages[] = $error['message'];
-               }
-               foreach ( $result->getErrorsByType( 'warning' ) as $warning ) {
-                       $messages[] = $warning['message'];
-               }
-               if ( count( $messages ) === 1 ) {
-                       return $messages[0];
-               }
-
-               return $messages;
-       }
-
        /**
         * Check if this is a valid password for this user
         *
index 7b89a9c..2262fa7 100644 (file)
@@ -3033,34 +3033,6 @@ class Language {
                }
        }
 
-       /**
-        * @deprecated No-op since 1.28
-        */
-       function initEncoding() {
-               wfDeprecated( __METHOD__, '1.28' );
-               // No-op.
-       }
-
-       /**
-        * @param string $s
-        * @return string
-        * @deprecated No-op since 1.28
-        */
-       function recodeForEdit( $s ) {
-               wfDeprecated( __METHOD__, '1.28' );
-               return $s;
-       }
-
-       /**
-        * @param string $s
-        * @return string
-        * @deprecated No-op since 1.28
-        */
-       function recodeInput( $s ) {
-               wfDeprecated( __METHOD__, '1.28' );
-               return $s;
-       }
-
        /**
         * Convert a UTF-8 string to normal form C. In Malayalam and Arabic, this
         * also cleans up certain backwards-compatible sequences, converting them
@@ -4686,6 +4658,7 @@ class Language {
         *
         * @param int|float $seconds
         * @param array $format An optional argument that formats the returned string in different ways:
+        *   If $format['avoid'] === 'avoidhours': don't show hours, just show days
         *   If $format['avoid'] === 'avoidseconds': don't show seconds if $seconds >= 1 hour,
         *   If $format['avoid'] === 'avoidminutes': don't show seconds/minutes if $seconds > 48 hours,
         *   If $format['noabbrevs'] is true: use 'seconds' and friends instead of 'seconds-abbrev'
@@ -4744,12 +4717,19 @@ class Language {
                        $s = $hoursMsg->params( $this->formatNum( $hours ) )->text();
                        $s .= ' ';
                        $s .= $minutesMsg->params( $this->formatNum( $minutes ) )->text();
-                       if ( !in_array( $format['avoid'], [ 'avoidseconds', 'avoidminutes' ] ) ) {
+                       if ( !in_array( $format['avoid'], [ 'avoidseconds', 'avoidminutes', 'avoidhours' ] ) ) {
                                $s .= ' ' . $secondsMsg->params( $this->formatNum( $secondsPart ) )->text();
                        }
                } else {
                        $days = floor( $seconds / 86400 );
-                       if ( $format['avoid'] === 'avoidminutes' ) {
+                       if ( $format['avoid'] === 'avoidhours' ) {
+                               $hours = round( ( $seconds - $days * 86400 ) / 3600 );
+                               if ( $hours == 24 ) {
+                                       $hours = 0;
+                                       $days++;
+                               }
+                               $s = $daysMsg->params( $this->formatNum( $days ) )->text();
+                       } elseif ( $format['avoid'] === 'avoidminutes' ) {
                                $hours = round( ( $seconds - $days * 86400 ) / 3600 );
                                if ( $hours == 24 ) {
                                        $hours = 0;
index c441b04..efd2d4e 100644 (file)
        "action-nominornewtalk": "дробныя праўкі, якія не паведамляюць удзельніку пра зьмены на старонцы абмеркаваньня",
        "action-markbotedits": "пазначэньне адкатаў як правак робатам",
        "action-patrolmarks": "прагляд адзнакаў патруляваньня апошніх зьменаў",
+       "action-override-export-depth": "экспарт старонак, у тым ліку зьвязаных старонак з глыбінёй да 5",
        "nchanges": "$1 {{PLURAL:$1|зьмена|зьмены|зьменаў}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|з апошняга візыту}}",
        "enhancedrc-history": "гісторыя",
        "trackingcategories-nodesc": "Апісаньне адсутнічае.",
        "trackingcategories-disabled": "Катэгорыя адключаная",
        "mailnologin": "Няма адрасу атрымальніка",
-       "mailnologintext": "Вам неабходна [[Special:UserLogin|ўвайсьці ў сыстэму]] і мець пацьверджаны адрас электроннай пошты ў Вашых [[Special:Preferences|наладах]], каб дасылаць лісты іншым удзельнікам.",
+       "mailnologintext": "Вы мусіце [[Special:UserLogin|ўвайсьці ў сыстэму]] і мець пацьверджаны адрас электроннай пошты ў вашых [[Special:Preferences|наладах]], каб дасылаць лісты іншым удзельнікам.",
        "emailuser": "Даслаць ліст",
        "emailuser-title-target": "Адправіць гэта па электроннай пошце {{GENDER:$1|гэтаму ўдзельніку|гэтай удзельніцы}}",
        "emailuser-title-notarget": "Даслаць ліст ўдзельніку ці ўдзельніцы па электроннай пошце",
index 993c58d..4c77b72 100644 (file)
@@ -9,33 +9,37 @@
                        "아라",
                        "Macofe",
                        "Fitoschido",
-                       "Vlad5250"
+                       "Vlad5250",
+                       "Mnam23"
                ]
        },
        "tog-underline": "Garisi di bawah tautan",
        "tog-hideminor": "Sungkupakan babakan sapalih dalam paubahan pahanyarnya",
        "tog-hidepatrolled": "Sungkupakan babakan taawasi dalam paubahan pahanyarnya",
        "tog-newpageshidepatrolled": "Sungkupakan tungkaran nang diitihi matan daptar tungkaran hanyar",
+       "tog-hidecategorization": "Patak tumbungnya tungkaran",
        "tog-extendwatchlist": "Singkaiakan daptar itihan hagan manampaiakan samunyaan paubahan, kada nang hanyar haja.",
-       "tog-usenewrc": "Purukakan panampaian paubahan pahanyarnya tingkat tinggi (parlu ada JavaScript)",
+       "tog-usenewrc": "Garumbungakan babakan di tampilan paubahan pahanyarnya wan daptar itihan badasar tungkaran",
        "tog-numberheadings": "Bari numur judul utumatis",
-       "tog-editondblclick": "Babak tutungkaran wan klik ganda (parlu ada JavaScript)",
-       "tog-editsectiononrightclick": "Kawa'akan mambabak sub-hagian lawan mang-klik kanan pada judul hagian (parlu ada JavaScript)",
+       "tog-editondblclick": "Babak tungkaran wan dua kali klik",
+       "tog-editsectiononrightclick": "Kawa'akan mambabak sub-hagian lawan mang-klik kanan pada judul hagian",
        "tog-watchcreations": "Tambahi tungkaran nang ulun ulah ka daptar itihan",
        "tog-watchdefault": "Tambahi tungkaran nang ulun babak ka daptar itihan ulun",
        "tog-watchmoves": "Tambahi tungkaran nang ulun pindah ka daptar itihan ulun",
        "tog-watchdeletion": "Tambahi tungkaran nang ulun hapus ka daptar itihan ulun",
+       "tog-watchuploads": "Tambahi barakas hanyar nang ulun unggah ka daptar itihan ulun",
+       "tog-watchrollback": "Tambahi tungkaran nang suah ulun bulikakan ka dalam daptar itihan ulun",
        "tog-minordefault": "Tandai samunyaan babakan sawagai babakan sapalih sacara baku",
        "tog-previewontop": "Tampaiakan titilikan sabalum kutak babak",
        "tog-previewonfirst": "Tampaiakan titilikan pada babakan panambaian",
        "tog-enotifwatchlistpages": "Kirimi ulun sur-él amun sabuting tungkaran dalam daptar itihan ulun baubah",
        "tog-enotifusertalkpages": "Surili ulun amun tungkaran pamandiran ulun baubah",
-       "tog-enotifminoredits": "Kirimi ulun sur-él jua amun ada babakan sapalih matan tungkaran-tungkaran",
+       "tog-enotifminoredits": "Kirimi ulun sur-él jua amun ada babakan sapalih",
        "tog-enotifrevealaddr": "Tampaiakan alamat sur-él ulun pada sur-él pamadahan",
        "tog-shownumberswatching": "Tampaiakan barapa pamakai nang maitihi",
        "tog-oldsig": "Tandateken nang sudah ada:",
        "tog-fancysig": "Tapsirakan tandatangan sawagai naskah wiki (kada batautan utumatis)",
-       "tog-uselivepreview": "Puruk titilikan langsung (parlu ada JavaScript) (cacubaan)",
+       "tog-uselivepreview": "Tampaiakan pratayang tanpa mamuat baasa tungkaran",
        "tog-forceeditsummary": "Ingatakan ulun wayah babuat sabuting kasimpulan babakan puang",
        "tog-watchlisthideown": "Sungkupakan babakan ulun di daptar itihan",
        "tog-watchlisthidebots": "Sungkupakan babakan bot di daptar itihan",
        "tog-ccmeonemails": "Surili ulun salinan suril nang ulun kirim ka pamakai lain",
        "tog-diffonly": "Kada usah manampaiakan isi tungkaran di bawah balain",
        "tog-showhiddencats": "Tampaiakan tutumbung tasungkup",
-       "tog-norollbackdiff": "Kada usah manampaiakan lainan imbah mambulikakan",
+       "tog-norollbackdiff": "Jangan tampaiakan lainan imbah mambulikakan",
        "tog-useeditwarning": "Ingatakan ulun pabila maninggalakan tungkaran pambabakan sabalum manyimpan parubahan",
        "underline-always": "Tarus",
        "underline-never": "Kada suah",
-       "underline-default": "Default Panjalajahan web",
+       "underline-default": "Kulimbit atawa panjalajah bawaan",
        "editfont-style": "Babak wilayah gaya tulisan",
        "editfont-monospace": "Tulisan Monospace",
        "editfont-sansserif": "Tulisan Sans-serif",
        "about": "Pasal",
        "article": "Tungkaran isi",
        "newwindow": "(buka di lalungkang hanyar)",
-       "cancel": "Walangi",
+       "cancel": "Pasahakan",
        "moredotdotdot": "Lainnya...",
-       "morenotlisted": "Salanjutnya...",
-       "mypage": "Tungkaran ulun",
+       "morenotlisted": "Daptar ngini mungkin kada langkap",
+       "mypage": "Tungkaran",
        "mytalk": "Pamandiran",
-       "anontalk": "Pamandiran hagan alamat IP ini",
+       "anontalk": "Pamandiran",
        "navigation": "Napigasi",
        "and": "&#32;wan",
        "faq": "FAQ",
        "searchbutton": "Gagai",
        "go": "Tulak",
        "searcharticle": "Tulak",
-       "history": "Tungkaran halam",
-       "history_short": "Tungkaran halam",
+       "history": "Riwayat tungkaran",
+       "history_short": "Sajarah",
        "updatedmarker": "Dihanyari tumatan ilangan pauncitan ulun",
        "printableversion": "Nang kawa dicitak",
        "permalink": "Tautan tatap",
        "print": "Citak",
-       "view": "Tiringi",
+       "view": "Baca",
        "view-foreign": "Lihat di $1",
        "edit": "Babak",
        "create": "Ulah",
        "newpage": "Tungkaran hanyar",
        "talkpagelinktext": "Pandir",
        "specialpage": "Tungkaran istimiwa",
-       "personaltools": "Pakakas surang",
+       "personaltools": "Pakakas saurang",
        "talk": "Pamandiran",
-       "views": "Titiringan",
+       "views": "Tampilan",
        "toolbox": "Pakakas",
        "imagepage": "Tiringi tungkaran barakas",
        "mediawikipage": "Tiringi tungkaran pasan sistim",
        "aboutpage": "Project:Pasal",
        "copyright": "Isi tasadia sasuai lawan $1.",
        "copyrightpage": "{{ns:project}}:Hak cipta",
-       "currentevents": "Kajadian wayahini",
-       "currentevents-url": "Project:Kajadian wayahini",
+       "currentevents": "Garamaan",
+       "currentevents-url": "Project:Garamaan",
        "disclaimers": "Panyangkalan",
        "disclaimerpage": "Project:Panyangkalan umum",
        "edithelp": "Patulung mambabak",
        "laggedslavemode": "'''Paringatan:''' Tungkaran ngini tagasnya kada baisi paubahan pahanyarnya.",
        "readonly": "Basisdata tasunduk",
        "enterlockreason": "Buati sabuting alasan manyunduk, tamasuk jua wayah kapan handak dibuka pulang sundukannya.",
-       "readonlytext": "Basisdata lagi disunduk hagan masukan hanyar wan paubahan lain, pinanya pang lagi ada jadwal paharaguan basis data, limbah ngini akan babulik nangkaya biasa.\n\nPambakal nang manyunduk mamadahi nangkaini: $1",
+       "readonlytext": "Basisdata lagi disunduk gasan masukan hanyar wan paubahan lain, pinanya pang lagi ada jadwal paharaguan basis data, limbah ngini akan babulik nangkaya biasa.\n\nPambakal nang manyunduk mamadahi nangkaini: $1",
        "missing-article": "Basisdata kada ulihan manggagai kata matan tungkaran nang saharusnya ada, bangaran \"$1\" $2.\n\nNangkaini biasanya dimargakan tautan lawas ka sabuting tungkaran nang halamnya sudah dihapus.\n\nMunnya lainan ngini pasalnya, Pian mungkin batamu bug dalam perangkat lunak.\nSilakan lapurakan ngini ka saurang [[Special:ListUsers/sysop|pambakal]], ulah catatan URL nang ditulaki",
        "missingarticle-rev": "(ralatan#: $1)",
        "missingarticle-diff": "(Lain: $1, $2)",
        "viewsource": "Tiringi asal mulanya",
        "viewsource-title": "Tiringi asalmula matan $1",
        "actionthrottled": "Kalakuan dikiripi",
-       "actionthrottledtext": "Sawagai sabuting takaran anti-spam, Pian dibabatasi hagan balalaku kababanyakan dalam parhatan handap, wan Pian sudah limpuari batasan ngini.\nMuhun cubai pulang dalam babarapa minit.",
-       "protectedpagetext": "Tungkaran ngini sudah dilindungi hagan mancagah babakan.",
+       "actionthrottledtext": "Pian dibatasi gasan manggawi tindakan ngini talalu banyak dalam waktu handap, wan Pian sudah limpua batas nang dibarii. Silahkan cuba baasa imbah babarapa manit.",
+       "protectedpagetext": "Tungkaran ngini sudah disunduk gasan mancagah babakan.",
        "viewsourcetext": "Pian kawa maniringi wan manyalin asal-mula tungkaran ngini.",
-       "viewyourtext": "Pian kawa maniringi wan salain asalmula matan '''babakan pian''' ka tungkaran ngini:",
-       "protectedinterface": "Tungkaran ini manyadiakan naskah antarmuha gasan parangkat lunak, wan dilindungi hagan mancagah tasalah puruk.",
+       "viewyourtext": "Pian kawa maniringi wan manyalin asalmula matan '''babakan pian''' ka tungkaran ngini:",
+       "protectedinterface": "Tungkaran ngini manyadiakan naskah antarmuha gasan parangkat lunak, wan dilindungi tahadap panyalahpakaian. Gasan manambah atawa mambabak tarjamahan pada sabarataan wiki, muhun pakai [https://translatewiki.net translatewiki.net], pruyik palukalan MediaWiki.",
        "editinginterface": "'''Paringatan:''' Pian mambabak sabuting tungkaran nang dipuruk hagan manyadiakan naskah antarmuha gasan parangkat lunak.\nPaubahan ka tungkaran ngini akan bapangaruh matan tampaian antarmuha gasan pamakai lain.\nGasan tarjamahan, muhun pakai [https://translatewiki.net/wiki/Main_Page?setlang=bjn translatewiki.net], rangka gawian palokalan MediaWiki.",
-       "cascadeprotected": "Tungkaran ini sudah dilindungi matan pambabakan, marga nangini tamasuk dalam {{PLURAL:$1|tungkaran|tutungkaran}} dudi nang dilindungi \"barénténg\": $2",
+       "cascadeprotected": "Tungkaran ini sudah dilindungi matan pambabakan, maraga nangini tamasuk dalam {{PLURAL:$1|tungkaran|tutungkaran}} dudi nang dilindungi \"barénténg\": $2",
        "namespaceprotected": "Pian kada baisi ijin hagan mambabak tutungkaran dalam ngaran kamar '''$1'''.",
        "customcssprotected": "Pian kada baisi ijin mambabak tungkaran CSS ngini, karana ngini baisi setelan paribadi pamakai lain.",
        "customjsprotected": "Pian kada baisi ijin mambabak tungkaran JavaScript ngini, karana ngini baisi setelan paribadi pamakai lain.",
        "ns-specialprotected": "Tungkaran istimiwa kada kawa dibabak.",
        "titleprotected": "Judul ngini dilindungi matan paulahan ulih [[User:$1|$1]].\nAlasan nang dibariakan adalah <em>$2</em>.",
-       "filereadonlyerror": "Kada kawa mamudipikasi data \"$1\" marga repositori data \"$2\" ada di modus read-only.\n\nAdministrator nang takunci nintu manawarakan panjalasan: \"$3\".",
+       "filereadonlyerror": "Kada kawa mamudipikasi barakas \"$1\" maraga barakas repositori \"$2\" ada di modus baca-wara.\n\nPambakal nang manyunduknya mambarii panjalasan: \"$3\".",
        "invalidtitle-knownnamespace": "Judul nang kada sah lawan ruang-ngaran \"$2\" wan teks \"$3\"",
        "invalidtitle-unknownnamespace": "Judul nang kada sah lawan numur ruang ngaran kada dikatahui $1 wan teks \"$2\"",
        "exception-nologin": "Balum babuat log",
-       "exception-nologin-text": "Tungkaran atawa tindakan ngini maharusakan Pian babuat log di wiki ngini.",
+       "exception-nologin-text": "Silahkan babuat log gasan kawa maaksis tungkaran atau gawian ngini",
        "virus-badscanner": "Konpigurasi buruk: pamindai virus kada dipinandui: ''$1''",
        "virus-scanfailed": "Pamindaian gagal (kudi $1)",
        "virus-unknownscanner": "Antivirus kada dipinandui:",
-       "logouttext": "'''Pian parhatan ni sudah kaluar log.'''\n\nPian kawa manyambung hagan mangguna'akan {{SITENAME}} kada bangaran, atawa Pian kawa <span class='plainlinks'>[$1 babuat log pulang]</span> sawagai pamakai nang sama atawa sawagai pamakai balain.\nCatatan bahwasa babarapa tungkaran pinanya masih ha tarus manampaiakan Pian masih babuat log, sampai Pian mahabisakan timbuluk panjalajah web Pian.",
+       "logouttext": "<strong>Pian wayahini kaluar log.</strong>\n\n\nIngatakan bahwa babarapa tungkaran mungkin masih manampaiakan pian kaya masih babuat log, sampai pian mambarasihi singgahan panjalajah pian.",
        "welcomeuser": "Salamat datang,  $1 !",
-       "welcomecreation-msg": "==Salamat datang, $1!==\nAkun Pian sudah diulah.\nJangan kada ingat hagan maubah [[Special:Preferences|kakatujuan {{SITENAME}}]] Pian.",
+       "welcomecreation-msg": "Akun pian sudah diulah.\nPian kawa maubah [[Special:Preferences|preperensi]] {{SITENAME}} amun pian handak.",
        "yourname": "Ngaran pamakai:",
        "userlogin-yourname": "Ngaran pamakai",
        "userlogin-yourname-ph": "Masukakan ngaran pamakai Pian",
        "userlogin-helplink2": "Patulung babuat log",
        "createacct-emailoptional": "Alamat surél/email (bagusnya diisi)",
        "createacct-email-ph": "Masukakan alamat email Pian",
-       "createaccountmail": "Malalui suril",
+       "createaccountmail": "Pakai kata sunduk acak pahadangan wan kirim ka surèl nang dikahandaki",
        "createacct-submit": "Ulah akun Pian",
        "createacct-benefit-heading": "{{SITENAME}} diulah ulih urang-urang nangkaya Pian.",
        "createacct-benefit-body1": "{{PLURAL:$1|babakan}}",
        "nocookieslogin": "{{SITENAME}} mangguna'akan ''cookies'' hagan pamakai babuat log.\n''Cookies'' Pian lagi kada kawa.\nMuhun kawa'akan nang itu wan cubai pulang.",
        "nocookiesfornew": "Akun pamakai kada ta'ulah, sualnya kami kada kawa mamastiakan asal mula.\nYakinakan Pian hudah mangkawa-akan cookies, muat pulang tungkaran naya wan cubai ja lagi.",
        "noname": "Ngaran pamakai nang Pian ajuakan kada sah.",
-       "loginsuccesstitle": "Kulihan babuat log",
+       "loginsuccesstitle": "Kawa babuat log",
        "loginsuccess": "'''Pian parhatan ni babuat log dalam {{SITENAME}} sawagai \"$1\".'''",
-       "nosuchuser": "Kadada pamakai bangaran \"$1\".\nNgaran pamakai adalah kasus marinci.\nLihati pulang ijaan Pian, atawa [[Special:CreateAccount|ulah sabuting akun hanyar]]",
+       "nosuchuser": "Kadada pamakai nang bangaran \"$1\".\nNgaran pamakai adalah kasus marinci.\nLihati pulang hijaan Pian, atawa [[Special:CreateAccount|ulah akun hanyar]]",
        "nosuchusershort": "Kadada pamakai bangaran \"$1\".\nLihati pulang ijaan Pian.",
        "nouserspecified": "Pian harus ma'ajuakan sabuting ngaran pamakai.",
        "login-userblocked": "Pamakai naya diblukir. Babuat log kada dibulihakan.",
        "passwordtooshort": "Kata sunduk musti paling sadikit {{PLURAL:$1|1 karaktir|$1 karaktir}}.",
        "password-name-match": "Kata sunduk Pian musti babida lawan ngaran pamakai Pian.",
        "password-login-forbidden": "Mamakai ngaran wan katasunduk nangini hudah ditangati.",
-       "mailmypassword": "Kirimi kata sunduk hanyar",
+       "mailmypassword": "Bulikakan katasunduk",
        "passwordremindertitle": "Kata sunduk pahadangan gasan {{SITENAME}}",
-       "passwordremindertext": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting katasunduk hanyar gasan {{SITENAME}} ($4). Sabuting katasunduk pahadangan gasan pamakai \"$2\" hudah diulah wan disetel ka \"$3\". Amun bujur Pian nang maminta, Pian parlu babuat log wan mamilih katasunduk hanyar wayah ni jua. Katasunduk pahadangan Pian akan kadaluarsa dalam {{PLURAL:$5|asa hari|$5 hari}}.\n\nAmun urang lain nang maminta ngini, atawa amun Pian sudah paingatan awan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada mahuwal pasan ngini wan manyambung mamakai katasunduk lawas Pian.",
+       "passwordremindertext": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting katasunduk hanyar gasan {{SITENAME}} ($4). Sabuting katasunduk pahadangan gasan pamakai \"$2\" hudah diulah wan disetel ka \"$3\". Amun bujur Pian nang maminta, Pian parlu babuat log wan mamilih katasunduk hanyar wayahini jua. Katasunduk pahadangan Pian pacangan kadaluarsa dalam {{PLURAL:$5|sahari|$5 hari}}.\n\nAmun urang lain nang maminta ngini, atawa amun Pian sudah ingat lawan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada maharung pasan ngini wan manyambung mamakai katasunduk lawas Pian.",
        "noemail": "Kadada alamat suril tarakam gasan pamakai \"$1\".",
        "noemailcreate": "Pian parlu manyadiakan sabuting alamat suril nang sah",
        "passwordsent": "Sabuting kata sunduk hanyar sudah dikirim ka suril tadaptar gasan \"$1\".\nMuhun babuat log pulang habis Pian manarima nangini.",
-       "blocked-mailpassword": "Alamat IP Pian diblukir hagan mambabak, wan kada dibulihakan mamakai pungsi pamulihan kata sunduk hagan mancagah salah puruk.",
-       "eauthentsent": "Sabuting suril payakinan hudah dikirim ka alamat suril.\nSabalum ada suril lain nang takirim ka akun, Pian akan parlu maumpati anjuran dalam suril nangitu, hagan mayakinakan bahwasanya akun nangitu bujur-bujur ampun Pian.",
+       "blocked-mailpassword": "Alamat IP Pian diblukir matan pambabakan. Gasan mancagah panyalahpakaian, pian kada dibulihakan gasan mambulikakan kata sunduk pian matan alamat IP ngini.",
+       "eauthentsent": "Sabuting suril gasan payakinan sudah dikirim ka alamat suril.\nSabalum ada suril lain nang takirim ka akun, Pian harus maumpati anjuran dalam suril nangitu, gasan mayakinakan bahwasanya akun nangitu bujur-bujur ampun Pian.",
        "throttled-mailpassword": "Sabuting pangingat kata sunduk hudah takirim, dalam {{PLURAL:$1|jam|$1 jam}} pauncitnya. Hagan mancagah salah puruk, asa pangingat kata sunduk haja nang dikirim saban {{PLURAL:$1|jam|$1 jam}}.",
        "mailerror": "Kasalahan pangiriman suril: $1",
-       "acct_creation_throttle_hit": "Pa'ilang wiki nangini mamuruk alamat IP Pian hudah maulah {{PLURAL:$1|1 akun|$1 akun}} dalam asa harian ini, dimana nangitu jumlah paling banyak nang diijinakan. Sawagai hasilnya, pa'ilang awan alamat IP nangini kada kawa maulah akun pulang gasan pahadangan.",
-       "emailauthenticated": "Alamat suril Pian rasuk pada  $2, $3",
-       "emailnotauthenticated": "Alamat suril Pian baluman dirasukakan.\nKadada suril nang akan dikirim maumpati pitur.",
+       "acct_creation_throttle_hit": "Pa'ilang wiki nangini mamuruk alamat IP Pian sudah maulah {{PLURAL:$1|1 akun|$1 akun}} dalam $2 hahanyaran, dimana nangitu jumlah paling banyak nang diijinakan.\nSawagai hasilnya, pa'ilang awan alamat IP nangini kada kawa maulah akun pulang gasan pahadangan.",
+       "emailauthenticated": "Alamat suril Pian rasuk pada  $3, $2",
+       "emailnotauthenticated": "Alamat suril Pian balum dirasukakan.\nKadada suril nang pacangan dikirim gasan pitur imbahnya.",
        "noemailprefs": "Ajuakan sabuting alamat suril dalam kakatujuan Pian gasan pitur-pitur ini bagawi.",
        "emailconfirmlink": "Yakinakan alamat suril Pian",
        "invalidemailaddress": "Alamat suril ini kada kawa ditarima karana pormat kada sah.\nMuhun buati sabuting alamat suril nang bujur pormatnya atawa puangkan haja isian itu.",
        "cannotchangeemail": "Akun alamat suril kada kawa diganti pada wiki ngini.",
        "emaildisabled": "Situs naya kada kawa mangirim suril.",
        "accountcreated": "Akun diulah",
-       "accountcreatedtext": "Akun pamakai gasan $1 sudah diulah.",
+       "accountcreatedtext": "Akun pamakai gasan [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|pandiri]]) sudah diulah.",
        "createaccount-title": "Paulahan akun gasan {{SITENAME}}",
        "createaccount-text": "Ada urang nang maulah akun gasan alamat suril Pian pada {{SITENAME}} ($4) bangaran \"$2\", awan kata sunduk \"$3\".\nPian dianjurakan babuat log wan maubah kata sunduk Pian parhatan ni.\n\nPian kawa kada mahual pasan ngini, amun paulahan akun ini adalah kasalahan.",
-       "login-throttled": "Pian sudah kabanyakan mancuba babuat log.\nMuhun hadangi dahulu sapandang hanyar cubai pulang.",
-       "login-abort-generic": "Pian kada ruhui babuat  log - Diwalangi",
+       "login-throttled": "Pian sudah kabanyakan mancuba babuat log.\nMuhun hadangi dahulu $1 hanyar cubai pulang.",
+       "login-abort-generic": "Pian kada ruhui babuat log - Diwalangi",
        "loginlanguagelabel": "Basa: $1",
        "suspicious-userlogout": "Pamintaan Pian hagan kaluar log kada ditarima marga nangkaya dikirim matan panjalajah web rakai atawa tatangkap proxy.",
        "pt-login": "Babuat log",
        "user-mail-no-addy": "Mancuba mangirim suril kada baalamat suril.",
        "user-mail-no-body": "Manarai hagan mangirim suril puang atawa talalu handap.",
        "changepassword": "Ubah katasunduk",
-       "resetpass_announce": "Pian babuat log awan sabuting kode samantara nang disurili.\nHagan manuntungakan babuat log, Pian musti manyetel sabuting katasunduk hanyar di sia:",
+       "resetpass_announce": "Gasan manuntungakan babuat log, Pian musti mamasukakan sabuting katasunduk hanyar.",
        "resetpass_header": "Ubah katasunduk akun",
        "oldpassword": "Katasunduk lawas:",
        "newpassword": "Katasunduk hanyar:",
        "retypenew": "Katik pulang katasunduk hanyar:",
        "resetpass_submit": "Setel katasunduk wan babuat log",
-       "changepassword-success": "Katasunduk Pian bahasil diubah!\nWayah ni Pian sudah babuat log...",
+       "changepassword-success": "Katasunduk Pian bahasil diubah!",
        "resetpass_forbidden": "Katasunduk kada kawa diubah",
        "resetpass-no-info": "Pian musti babuat log hagan babuat ka tungkaran ini langsung.",
        "resetpass-submit-loggedin": "Ubah katasunduk",
        "resetpass-submit-cancel": "Walangi",
-       "resetpass-wrong-oldpass": "Katasunduk samantara atawa wayah ni kada sah.\nPian pinanya sudah barhasil maubah katasunduk Pian atawa maminta sabuting katasunduk samantara hanyar.",
+       "resetpass-wrong-oldpass": "Katasunduk samantara atawa wayah ni kada sah.\nPian pinanya sudah barhasil maubah katasunduk Pian atawa maminta sabuting katasunduk pahadangan nang hanyar.",
        "resetpass-temp-password": "Katasunduk samantara:",
        "passwordreset": "Bulikakan setelan katasunduk",
        "passwordreset-disabled": "Mambulikakan setelan katasunduk dipajahakan hagan wiki ngini.",
        "passwordreset-domain": "Dumain:",
        "passwordreset-email": "Alamat suril:",
        "passwordreset-emailtitle": "Rarincian akun pada {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting pangingat hagan rarincian akun Pian gasan {{SITENAME}} ($4). Pamakai barikut {{PLURAL:$3|akun|akun}}\ntarait awan suril:\n\n$2\n\n{{PLURAL:$3|katasunduk pahadangan ngini|kakatasunduk pahadangan ngini}} akan kadaluarsa dalam {{PLURAL:$5|asa hari|$5 hari}}.\nPian parlu babuat log wan mamilih katasunduk hanyar wayah ni jua. Amun urang lain nang maminta ngini, atawa amun Pian sudah paingatan awan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada mahuwal pasan ngini wan manyambung mamuruk katasunduk lawas Pian.",
+       "passwordreset-emailtext-ip": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting pangingat rarincian akun Pian gasan {{SITENAME}} ($4). Pamakai barikut {{PLURAL:$3|akun|akun}}\ntarait awan suril:\n\n$2\n\n{{PLURAL:$3|katasunduk pahadangan ngini|kakatasunduk pahadangan ngini}} akan kadaluarsa dalam {{PLURAL:$5|sahari|$5 hari}}.\nPian parlu babuat log wan mamilih katasunduk hanyar wayah ni jua. Amun urang lain nang maminta ngini, atawa amun Pian sudah paingatan awan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada maharung pasan ngini wan manyambung mamuruk katasunduk lawas Pian.",
        "passwordreset-emailtext-user": "Ada urang (pinanya Pian, matan alamat IP $1) maminta sabuting pangingat hagan rarincian akun Pian gasan {{SITENAME}} ($4). Pamakai barikut {{PLURAL:$3|akun|akun}}\ntarait awan suril:\n\n$2\n\n{{PLURAL:$3|katasunduk pahadangan ngini|kakatasunduk pahadangan ngini}} akan kadaluarsa dalam {{PLURAL:$5|asa hari|$5 hari}}.\nPian parlu babuat log wan mamilih katasunduk hanyar wayah ini jua. Amun urang lain nang maminta ngini, atawa amun Pian sudah paingatan awan katasunduk Pian, wan Pian kada handak maubahnya, Pian kawa kada mahuwal pasan ngini wan manyambung mamuruk katasunduk lawas Pian.",
        "passwordreset-emailelement": "Ngaran pamakai: \n$1\n\nKatasunduk pahadangan: \n$2",
-       "passwordreset-emailsentemail": "Sabuting suril pangingat sudah takirim.",
-       "changeemail": "Ganti alamat suril",
-       "changeemail-header": "Ganti akun alamat suril",
+       "passwordreset-emailsentemail": "Amun alamat suril ngini barait lawan akun pian, maka suril gasan mambulikakan katasunduk pacangan dikirim.",
+       "changeemail": "Babak atawa hapus alamat suril",
+       "changeemail-header": "Langkapi formulir ngini gasan mambabak alamat suril pian. Amun pian handak mahapus sabarataan alamat suril nang barait lawan akun pian, kosongakan alamat suril wayah mangirim formulir.",
        "changeemail-no-info": "Pian musti babuat log hagan babuat ka tungkaran ngini langsung.",
        "changeemail-oldemail": "Alamat suril wayah ni:",
        "changeemail-newemail": "Alamat suril puga:",
        "sig_tip": "Tandatangan Pian lawan tanda waktu",
        "hr_tip": "Garis horisontal",
        "summary": "Kasimpulan:",
-       "subject": "Subyek/judul:",
+       "subject": "Parihal:",
        "minoredit": "Ngini adalah babakan sapalih",
        "watchthis": "Itihi tungkaran ngini",
        "savearticle": "Simpan tungkaran",
        "anoneditwarning": "<strong>Paringatan:</strong> Pian kada masuk log. Alamat IP Pian akan talihat wan urang lain amun Pian handak maubah sasuatu. Amun Pian <strong>[$1 babuat log]</strong> atawa <strong>[$2 maulah akun]</strong>, babakan Pian akan diatribusiakan ka ngaran pamakai Pian, taumpat lawan babagai kauntungan lainnya.",
        "anonpreviewwarning": "''Pian baluman babuat log. Manyimpan akan tarakam alamat IP Pian pada sajarah bahari tungkaran ngini.''",
        "missingsummary": "'''Pangingat:''' Pian kada manyadiakan sabuting kasimpulan babakan.\nAmun Pian klik \"$1\" pulang, babakan Pian tasimpan kada bakasimpulan.",
-       "missingcommenttext": "Muhun buati sabuting kumintar di bawah ngini.",
+       "missingcommenttext": "Muhun buati sabuting kumintar.",
        "missingcommentheader": "'''Pangingat:''' Pian kada manyadiakan sabuting subjek/judul gasan kumin ngini.\nAmun Pian klik \"$1\" pulang, babakan Pian tasimpan kada basubjek/bajudul.",
-       "summary-preview": "Tilikan kasimpulan:",
-       "subject-preview": "Titilikan subyek/judul:",
+       "summary-preview": "Tilikan kasimpulan mambabak:",
+       "subject-preview": "Titilikan parihal:",
        "blockedtitle": "Pamakai diblukir",
-       "blockedtext": "'''Ngaran pamakai Pian atawa alamat IP sudah diblukir.'''\n\nPamblukiran diulah ulih $1.\nAlasannya ''$2''.\n\n* Mulai diblukir: $8\n* Kadaluarsa blukir: $6\n* Tujuan pamblukiran: $7\n\nPian kawa mangiyau $1 atawa [[{{MediaWiki:Grouppage-sysop}}|pambakal lainnya]] hagan mamandirakan pamblukiran nangini.\nPian kada kawa mamakai pitur 'surili pamakai naya' amun kadada sabuting alamat suril nang sah nang diajukan dalam [[Special:Preferences|kakatujuan akun]] Pian wan Pian kada lagi diblukir mamakai nangini. \nAlamat IP Pian parhatan ini $3, wan ID nang diblukir adalah $5.\nMuhun sampaiakan samunyaan rarinci di atas dalam parmintaan nang Pian ulah.",
+       "blockedtext": "'''Ngaran pamakai Pian atawa alamat IP sudah diblukir.'''\n\nPamblukiran diulah ulih $1.\nAlasannya ''$2''.\n\n* Mulai diblukir: $8\n* Kadaluarsa blukir: $6\n* Tujuan pamblukiran: $7\n\nPian kawa mangiyau $1 atawa [[{{MediaWiki:Grouppage-sysop}}|pambakal]] lainnya gasan mamandirakan pamblukiran nangini.\nPian kada kawa mamakai pitur {{int:emailuser}} kacuali pian sudah mamasukakan alamat suril nang sah nang diajukan dalam [[Special:Preferences|kakatujuan akun]] Pian wan Pian kada lagi diblukir gasan mamakainya. \nAlamat IP Pian parhatan ini $3, wan ID nang diblukir adalah $5.\nMuhun sampaiakan samunyaan rarinci di atas dalam parmintaan nang Pian ulah.",
        "autoblockedtext": "Alamat IP Pian sudah utumatis diblukir karana dipuruk ulih pamakai lain, nang diblukir ulih $1.\nAlasannya: ''$2''.\n\n* Mulai diblukir: $8\n* Kadaluarsa blukir: $6\n* Tujuan pamblukiran: $7\n\nPian kawa mangiwau $1 atawa nang lain [[{{MediaWiki:Grouppage-sysop}}|pambakal]] hagan mamandirakan pamblukiran nangini.\n\nCatatan Pian kada kawa mamuruk pitur 'surili pamakai naya' amun kadada sabuah alamat suril nang sah nang tadaptar dalam [[Special:Preferences|kakatujuan akun]] Pian wan  Pian kada lagi diblukir mamuruk nangini. \n\nAlamat IP Pian parhatan ini $3, wan ID nang diblukir adalah $5.\nMuhun sampaiakan samunyaan rarinci di atas dalam parmintaan nag Pian ulah.",
        "blockednoreason": "kadada alasan nang diunjukakan",
        "whitelistedittext": "Pian harus $1 hagan mambabak tungkaran.",
        "loginreqlink": "Babuat log",
        "loginreqpagetext": "Pian musti $1 hagan maniringi rungkaran-tungkaran lain.",
        "accmailtitle": "Katasunduk takirim.",
-       "accmailtext": "Sabuting katasunduk babarang gasan [[User talk:$1|$1]] sudah dikirim ka $2.\n\nKatasunduk gasan pamakai hanyar nangini kawa diubah pintang tungkaran ''[[Special:ChangePassword|ubah katasunduk]]'' wayah babuat log.",
+       "accmailtext": "Sabuting katasunduk babarang gasan [[User talk:$1|$1]] sudah dikirim ka $2.\n\nKatasunduk gasan pamakai hanyar nangini kawa diubah di tungkaran ''[[Special:ChangePassword|ubah katasunduk]]'' imbah babuat log.",
        "newarticle": "(Hanyar)",
        "newarticletext": "Pian maumpati sabuah tautan ka tungkaran nang baluman ada lagi. Gasan maulah tungkaran, mulai ja mangatik pada kutak di bawah (lihati [$1 tungkaran patulung] gasan panjalasan labih). Amun Pian ka sia cagaran tasalah, klik picikan '''back''' di panjalajah web Pian.",
-       "anontalkpagetext": "----''Ngini adalah tungkaran pamandiran gasan pamakai kada bangaran nang baluman ma-ulah akun pulang, atawa  kada mamakainya. Kami tapaksa mamakai numurik alamat IP hagan maminanduinya.\nAlamat IP nangkaini kawaai dipuruk ulih babarapa pamakai.\nAmun Pian adalah pamuruk kada bangaran wan marasa kumin nang kada pas ta ka Pian, muhun [[Special:CreateAccount|ulah sabuah akun]] or [[Special:UserLogin|babuat log]] hagan mahindari kabingungan awan pamuruk kada bangaran lain kaina.",
+       "anontalkpagetext": "----''Ngini adalah tungkaran pamandiran gasan pamakai kada bangaran nang baluman ma-ulah akun pulang, atawa  kada mamakainya. Kami tapaksa mamakai numurik alamat IP hagan maminanduinya.\nAlamat IP nangkaini kawaai dipuruk ulih babarapa pamakai.\nAmun Pian adalah pamuruk kada bangaran wan marasa kumin nang kada pas ta ka Pian, muhun [[Special:CreateAccount|ulah sabuah akun]] atawa [[Special:UserLogin|babuat log]] gasan mahindari kabingungan awan pamakai kada bangaran lain kaina.",
        "noarticletext": "Damini kadada naskah di tungkaran ngini.\nPian kawa [[Special:Search/{{PAGENAME}}|manggagai gasan judul tungkaran ngini]] di tutungkaran lain, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mancari log tarait], atawa [{{fullurl:{{FULLPAGENAME}}|action=edit}} maulah tungkaran ngini]</span>.",
        "noarticletext-nopermission": "!Damini kadada naskah di tungkaran ngini.\nPian kawa [[Special:Search/{{PAGENAME}}|manggagai gasan judul tungkaran ngini]] di tutungkaran lain, atawa <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} manggagai log tarait]</span>, tagal Pian kada baisi ijin gasan maulah tungkaran ngini",
        "userpage-userdoesnotexist": "Akun pamakai \"<nowiki>$1</nowiki>\" kada tadaptar.\nMuhun pariksa/ditukui amun Pian handak maulah/mambabak tungkaran ngini.",
        "userjspreview": "'''Ingatakan bahwasa Pian tis/manilik pamakai JavaScript Pian.'''\n'''Nangini baluman tasimpan pulang!'''",
        "sitecsspreview": "'''Ingatakan bahwasa Pian manilik CSS ini haja.'''\n'''Nangini lagi baluman tasimpan!'''",
        "sitejspreview": "'''Ingatakan bahwasa Pian manilik JavaScript code ini haja.'''\n'''Nangini lagi baluman tasimpan!'''",
-       "userinvalidconfigtitle": "'''Paringatan:''' Kadada kulit \"$1\".\nInatakan bahwasa saragam  tungkaran-tungkaran .css wan .js mamuruk aksara halus, cuntuh {{ns:user}}:Foo/vector.css sawagai tandingan {{ns:user}}:Foo/Vector.css.",
+       "userinvalidconfigtitle": "'''Paringatan:''' Kadada kulimbit \"$1\".\nTungkaran-tungkaran .css, .json wan .js ulahan mamuruk aksara halus, cuntuh {{ns:user}}:Foo/vector.css sawagai tandingan {{ns:user}}:Foo/Vector.css.",
        "updated": "(Dihanyarakan)",
        "note": "'''Catatan:'''",
        "previewnote": "'''Ingatakanlah bahwasa ngini titilikan haja''' Paubahan Pian baluman disimpan!",
        "continue-editing": "Lanjutakan mambabak",
        "previewconflict": "Titilikan ini mancarminakan naskah dalam naskah wilayah atas babakan sawagai mana ini akan mancungul amun disimpan.",
-       "session_fail_preview": "'''Ampun! Kami kada kawa manarusakan babakan Pian karana kahilangan sési data.'''\nCubai pang sa'asa pulang.\nAmun magun kada kulihan, cubai [[Special:UserLogout|kaluar log]] wan imbah itu babuat log pulang.",
-       "session_fail_preview_html": "'''Kami kada kawa manarusakan babakan Pian marga kahilangan wayah data.'''\n\n''Marga {{SITENAME}} mangkawa'akan HTML mantah, titilikan disungkupakan sawagai pancagahan sarangan Javascript.''\n\n'''Amun nangini adalah sabuting parcubaan babakan nang sabujurnya, muhun cubai lagi.'''\nAmun ngini masih haja kada bagawi, cubai [[Special:UserLogout|kaluar log]] wan babuat log pulang.",
+       "session_fail_preview": "Maap! Kami kada kawa mamproses babakan pian maraga tahapusnya data sesi.\n\n\nPian mungkin sudah kaluar log. <strong>Muhun pastiakan pian masih babuat log wan cubai baasa</strong>.\nAmun masih kada kawa,ubai [[Special:UserLogout|kaluar log]] wan babuat log basa, wan cek bahwa panjalajah pian maizinakan kuki matan situs ngini.",
+       "session_fail_preview_html": "'''Kami kada kawa manarusakan babakan Pian marga kahilangan wayah data.'''\n\n''Marga {{SITENAME}} mangkawa'akan HTML mantah, titilikan disungkupakan sawagai pancagahan sarangan Javascript.''\n\n'''Amun nangini adalah sabuting parcubaan babakan nang sabujurnya, muhun cubai lagi.'''\nAmun ngini masih haja kada kawa, cubai [[Special:UserLogout|kaluar log]] wan babuat log pulang, wan cek panjalajah pian manarima kuki matan situs ngini.",
        "token_suffix_mismatch": "'''Babakan Pian sudah kada ditarima marga aplikasi Pian mahancuri tanda baca pada babakan token.'''\nBabakan ini kada ditarima hagan mancagah kasalahan pada naskah tungkaran.\nNangini bahanu tajadi amun Pian mamuruk sabuting layanan proxy buggy bapandal web kada bangaran.",
        "edit_form_incomplete": "'''Babarapa hagian matan purmulir babakan kada sampai server; pariksa pulang apakah babakan Pian tatap utuh wan cubai lagi.'''",
        "editing": "Mambabak $1",
        "copyrightwarning": "Muhun dicatat bahwasanya samunyaan sumbangan ka {{SITENAME}} adalah sudah dipartimbangkan disabarakan di bawah $2 (lihati $1 gasan rincian). Amun Pian kada handak tulisan Pian dibabak wan disabarakan, kada usah mangirim ini ka sia. <br />\nPian jua bajanji ka kami amun Pian manulis ini saurangan, atawa manjumput ini matan sabuah asal mula ampun umum atawa asal mula lainnya nang samacam.\n'''Jangan kirimkan gawian bahak cipta kada baijin!'''",
        "copyrightwarning2": "Muhun dicatat bahwasanya samunyaan sumbangan ka {{SITENAME}} kawa dibabak, diubah, atawa dibuang awan panyumbang lainnya.\nAmun Pian kada hakun tulisan Pian dibabak kada baumpat lalu, lalu ai kada usah manyumbang di sia.<br />\nPian jua bajanji ka kami amun Pian manulis ini saurangan, atawa manjumput ini matan sabuah asal mula ampun umum atawa nang samacam asal mula bibas (lihati $1 gasan rarincian).\n'''Jangan kirimkan gawian bahak cipta kada baijin!'''",
        "longpageerror": "'''Kasalahan: Naskah nang Pian kirim panjangnya {{PLURAL:$1|asa kilubita|$1 kilubita}}, nangapa tapanjang pada pamanjangnya nang kawa {{PLURAL:$2|asa kilubita|$2 kilubita}}.'''\nNangini kada kawa disimpan.",
-       "readonlywarning": "'''Paringatan: Basis data sudah tasunduk gasan diharagu, jadinya Pian kada kawa manyimpan babakab Pian parhatan ini.'''\nPian kawa amun handak cut-n-paste naskah ka sabuah barakas naskah wan simpan ini gasan kaina.\n\nPambakal nang manyunduk manjalasakan kaini: $1",
+       "readonlywarning": "'''Paringatan: Basis data disunduk gasan diharagu, jadinya Pian kada kawa manyimpan babakan Pian wayahini.'''\nPian mungkin bagusnya manyalin wan malikap naskah ka sabuah barakas naskah wan simpan ngini gasan kainah.\n\nPambakal nang manyunduk manjalasakan kaini: $1",
        "protectedpagewarning": "'''Paringatan: Tungkaran ngini sudah dilindungi nang akibatnya pamakai awan hak istimiwa pambakal nang kawa mambabak ini.'''\nLog masuk pauncitnya disadiakan di bawah gasan rujukan:",
        "semiprotectedpagewarning": "'''Catatan:''' Tungkaran ngini sudah dilindungi nang akibatnya pamakai tadaptar haja nang kawa mambabak.\nLog masuk pauncitnya disadiakan di bawah gasan rujukan:",
-       "cascadeprotectedwarning": "'''Paringatan:''' Tungkaran ngini sudah dilindungi nang akibatnya pamakai awan hak istimiwa pambakal haja nang kawa mambabak, sualnya ngini tamasuk dalam baumpat parlindungan barénténg {{PLURAL:$1|tungkaran|tutungkaran}}:",
+       "cascadeprotectedwarning": "<strong>Paringatan:</strong> Tungkaran ngini dilindungi jadinya pamakai lawan [[Special:ListGroupRights|hak aksis batantu] wara nang kawa mambabaknya maraga ditransklusiakan dalam {{PLURAL:$1|tungkaran|tungkaran-tungkaran}} nangbdilindungi barinting.",
        "titleprotectedwarning": "'''Paringatan: Tungkaran ngini sudah dilindungi nang akibatnya [[Special:ListGroupRights|hak khas]] diparluakan hagan maulah ngini.'''\nLog masuk pauncitnya disadiakan di bawah gasan rujukan:",
        "templatesused": "{{PLURAL:$1|Citakan|Citakan}} nang dipakai di tungkaran ngini:",
-       "templatesusedpreview": "{{PLURAL:$1|Citakan|Citakan}} nang digunakan di titilikan ngini:",
+       "templatesusedpreview": "{{PLURAL:$1|Citakan|Citakan}} nang dipakai di titilikan ngini:",
        "templatesusedsection": "{{PLURAL:$1|Citakan|Cicitakan}} nang diguna'akan di hagian ini:",
        "template-protected": "(dilindungi)",
        "template-semiprotected": "(semi-dilindungi)",
        "nocreate-loggedin": "Pian kada baisi ijin hagan maulah tungkaran-tungkaran hanyar.",
        "sectioneditnotsupported-title": "Pambabakan hagian kada didukung",
        "sectioneditnotsupported-text": "Pambabakan hagian kada didukung pada tungkaran ini.",
-       "permissionserrors": "Parijinan tasalah",
+       "permissionserrors": "Kasalahan hak aksés",
        "permissionserrorstext": "Pian kada baisi ijin gasan malakuakan itu, karana {{PLURAL:$1|alasan|alasan}} ini:",
        "permissionserrorstext-withaction": "Pian kada baisi ijin gasan $2, karana {{PLURAL:$1|alasan|alasan}} ini:",
        "recreate-moveddeleted-warn": "'''Paringatan: Pian maulah pulang sabuah tungkaran nang sabalumnya dihapus.'''\n\nPian partimbangakan dahulu sasuaikah hagan manarusakan pambabakan tungkaran ini.\nLog pahapusan wan paugahan gasan tungkaran ini disadiakan di sia:",
        "defaultmessagetext": "Naskah baku pasan",
        "content-failed-to-parse": "Gagal manjabarakan isi $2 gasan model $1: $3",
        "invalid-content-data": "Data isi kada sah",
-       "content-not-allowed-here": "Isi \"$1\" kada diijinakan di tungkaran [[:$2]]",
+       "content-not-allowed-here": "Isi \"$1\" kada diijinakan di tungkaran [[:$2]] di bagian \"$3\"",
        "content-model-wikitext": "teks wiki",
        "content-model-text": "teks polos",
        "content-model-javascript": "JavaScript",
        "parser-template-recursion-depth-warning": "Citakan batas kadalaman recursi limpuar ($1)",
        "language-converter-depth-warning": "Batas kadalaman pangonversi basa limpuar ($1)",
        "node-count-exceeded-category": "Tungkaran di mana node-count tarlalui",
-       "node-count-exceeded-warning": "Tungkaran malabihi node-count",
+       "node-count-exceeded-warning": "Tungkaran malabihi jumlah node",
        "expansion-depth-exceeded-category": "Tungkaran dimana kadalaman ikspansi talalui",
        "expansion-depth-exceeded-warning": "Tungkaran malabihi kadalaman ikspansi",
        "parser-unstrip-loop-warning": "Lingkaran unstrip taditiksi",
        "page_last": "Pauncitan",
        "histlegend": "Pilihan mananding: tandai kutak-kutak radiu ralatan-ralatan nang handak ditanding wan picik enter atawa picikan di bawah.<br />Legend: '''({{int:cur}})''' =lainnya awan ralatan pahanyarnya, '''({{int:last}})''' = lainnya awan ralatan sabalumnya, '''{{int:minoreditletter}}''' = babakan sapalih.",
        "history-fieldset-title": "Ralatan nang disaring",
-       "history-show-deleted": "Nang dihapus haja",
+       "history-show-deleted": "Babakan nang dihapus haja",
        "histfirst": "palawasnya",
        "histlast": "pahanyarnya",
        "historysize": "($1 {{PLURAL:$1|bita|bibita}})",
-       "historyempty": "(kusung)",
+       "historyempty": "kusung",
        "history-feed-title": "Ralatan halam",
        "history-feed-description": "Ralatan halam gasan tungkaran ini pada wiki",
        "history-feed-item-nocomment": "$1 wayah $2",
        "history-feed-empty": "Tungkaran nang diminta kadada.\nIni pinanya sudah dihapus matan wiki ini, atawa dingarani lain.\nCubai [[Special:Search|gagai di wiki ini]] gasan tungkaran hanyar bakarabat.",
        "rev-deleted-comment": "(kasimpulan babakan dibuang)",
        "rev-deleted-user": "(ngaran pamuruk dibuang)",
-       "rev-deleted-event": "(log palakuan dibuang)",
+       "rev-deleted-event": "(rincian log dihapus)",
        "rev-deleted-user-contribs": "[ngaran pamuruk atawa alamat IP dibuang - babakan disungkupakan matan daptar sumbangan]",
        "rev-deleted-text-permission": "Ralatan tungkaran ini sudah '''dihapus'''.\nRarincian kawa diugai dalam [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log pahapusan].",
        "rev-deleted-text-unhide": "Ralatan tungkaran ini sudah '''dihapus'''.\nRarincian kawa diugai dalam [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log pahapusan].\nSawagai pambakal Pian masih kawa [$1 maniringi ralatan ini] amun Pian hakun manarusakan.",
        "lineno": "Baris $1:",
        "compareselectedversions": "Tandingakan ralatan nang dipilih",
        "showhideselectedversions": "Tampaiakan/sungkupakan ralatan-ralatan",
-       "editundo": "walangi",
+       "editundo": "bulikakan",
        "diff-empty": "(Kadada bida)",
        "diff-multi-sameuser": "({{PLURAL:$1|$1 ralatan antara}} ulih pamakai nang sama kada ditampaiakan)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Satu ralatan antara|$1 ralatan antara}} ulih {{PLURAL:$2|satu pamakai lainnya|$2 pamakai}} kada ditampaiakan)",
        "diff-multi-manyusers": "({{PLURAL:$1|Asa ralatan tangah|$1 raralatan tangah}} ulih labih pada $2 {{PLURAL:$2|pamuruk|papamuruk}} kada ditampaiakan)",
        "searchresults": "Kulihan panggagaian",
        "searchresults-title": "Kulihan gagai gasan \"$1\"",
        "action-edit": "babak tungkaran ini",
        "action-createpage": "ulah tutungkaran",
        "action-createtalk": "ulah tutungkaran pamandiran",
-       "action-createaccount": "ulah akun pamuruk ini",
+       "action-createaccount": "ulah akun pamakai ini",
        "action-minoredit": "tandai babakan ini sawagai sapalih",
        "action-move": "pindahakan tungkaran ini",
        "action-move-subpages": "pindahakan tungkaran ini, wan sub-tutungkarannya",
        "rcshowhidemine": "$1 babakan ulun",
        "rcshowhidemine-show": "Tampaiakan",
        "rcshowhidemine-hide": "Sungkupakan",
-       "rclinks": "Tampaiakan $1 paubahan pahanyarnya dalam $2 hari tauncit",
+       "rclinks": "Tampaiakan $1 paubahan pahanyarnya dalam $2 hari pahabisnya",
        "diff": "bida",
-       "hist": "halam",
+       "hist": "riwayat",
        "hide": "Sungkupakan",
        "show": "Tampaiakan",
        "minoreditletter": "s",
        "listfiles_description": "Pamaparan",
        "listfiles_count": "Janis",
        "file-anchor-link": "Barakas",
-       "filehist": "Barakas halam",
+       "filehist": "Riwayat barakas",
        "filehist-help": "Klik pada tanggal/waktu gasan maniringi barakas ngini pada wayah itu.",
        "filehist-deleteall": "hapus samunyaan",
        "filehist-deleteone": "hapus",
        "protectedpagesempty": "Kadada tutungkaran nang masih dilindungi awan paramitir ngitu.",
        "protectedtitles": "Jujudul nang dilindungi",
        "protectedtitlesempty": "Kadada jujudul nang masih dilindungi awan paramitir ngitu.",
-       "listusers": "Daptar pamuruk",
+       "listusers": "Daptar pamakai",
        "listusers-editsonly": "Tiringi papamuruk awan babakan",
        "listusers-creationsort": "Susun ulih tanggal paulahan",
        "usereditcount": "$1 {{PLURAL:$1|babakan|bababakan}}",
        "speciallogtitlelabel": "Tujuan (judul atawa {{ns:user}}:ngaran pamakai gasan pamakai)",
        "log": "Log",
        "all-logs-page": "Samunyaan log umum",
-       "alllogstext": "Tampaian baimbai matan sabataan log nang ada matan {{SITENAME}}.\nPian kada mawatasi tiringan lawan mamilih sabuah macam log, ngaran-pamuruk (sansitip kapital), atawa tungkaran tapangaruh (sansitip kapital jua).",
+       "alllogstext": "Tampaian baimbai matan sabataan log nang ada matan {{SITENAME}}.\nPian kada mawatasi tiringan lawan mamilih sabuah macam log, ngaran-pamakai (sansitip kapital), atawa tungkaran tapangaruh (sansitip kapital jua).",
        "logempty": "Kadada barang nang parsis pintang log.",
        "log-title-wildcard": "Gagai judul ba-awalan awan naskah ngini",
        "showhideselectedlogentries": "Tampaiakan/sungkupakan masukan log tapilih",
        "removedwatchtext": "Tungkaran \"[[:$1]]\" sudah dihapus matan [[Special:Watchlist|daptar itihan]] Pian.",
        "watch": "Itih",
        "watchthispage": "Itihi tungkaran ini",
-       "unwatch": "walang maitihi",
+       "unwatch": "Pasah maitihi",
        "unwatchthispage": "Mandak maitihi",
        "notanarticle": "Lainan sabuting tungkaran isi",
        "notvisiblerev": "Ralatan tauncit ulih saurang pamuruk babida sudah dihapus",
        "protect-locked-dblock": "Tingkat palindungan kada kawa diubah marga ada sabuting sunduk databasis aktip.\nDi sia adalah setelan pahanyarnya gasan tungkaran '''$1''':",
        "protect-locked-access": "Akun Pian kada baisi ijin gasan maubah tingkatan palindungan tungkaran.\nDi sia adalah pangaturan wayah ini gasan tungkaran '''$1''':",
        "protect-cascadeon": "Tungkaran ini rahatan dilindungi lantaran diumpatakan dalam {{PLURAL:$1|tungkaran|tungkaran-tungkaran}} barikut nang sudah aktip palindungan barénténgnya.\nPian kawa maubah tingkatan palindungan gasan tungkaran ini, tagal ini kada pacang mangaruhi palindungan barénténg.",
-       "protect-default": "Bulihakan samua pamuruk",
+       "protect-default": "Bulihakan samunyaan pamakai",
        "protect-fallback": "Wastu gasan pamakai lawan ijin \"$1\"",
        "protect-level-autoconfirmed": "Blukir pamakai hanyar wan kada tadaptar",
        "protect-level-sysop": "Wastu pambakal",
        "pageinfo-default-sort": "Kunci urut baku",
        "pageinfo-length": "Panjang tungkaran (dalam bita)",
        "pageinfo-article-id": "ID Tungkaran",
-       "pageinfo-language": "Bahasa isi tungkaran",
+       "pageinfo-language": "Basa isi tungkaran",
        "pageinfo-content-model": "Mudil isi tungkaran",
        "pageinfo-robot-policy": "Pangindéksan ulih robot",
        "pageinfo-robot-index": "Dibulihakan",
        "logentry-move-move_redir": "$1 {{GENDER:$2|mamindahakan}} tungkaran $3 ka $4 manimpa paugahan lawas",
        "logentry-move-move_redir-noredirect": "$1 diugah tungkaran $3 ka $4 lung sabuah paugahan awan-kada maninggalakan sabuah paugahan",
        "logentry-patrol-patrol": "$1 diciri'i ralatan $4 matan tungkaran $3 taawasi",
-       "logentry-patrol-patrol-auto": "$1 utumatis diciri'i ralatan $4 matan tungkaran $3 taawasi",
+       "logentry-patrol-patrol-auto": "$1 utumatis {{GENDER:$2|manandai}} ralatan $4 matan tungkaran $3 taitihi",
        "logentry-newusers-newusers": "$1 ma-ulah sabuting akun pamakai",
        "logentry-newusers-create": "$1 {{GENDER:$2|maulah}} akun pamakai",
        "logentry-newusers-create2": "$1 ma-ulah sabuting akun pamakai $3",
index 521819b..b095f08 100644 (file)
        "blocklink": "bloquer",
        "unblocklink": "débloquer",
        "change-blocklink": "modifier le blocage",
+       "empty-username": "(aucun nom d’utilisateur disponible)",
        "contribslink": "contributions",
        "emaillink": "envoyer un courriel",
        "autoblocker": "Vous avez été bloqué automatiquement parce que votre adresse IP a été récemment utilisée par « [[User:$1|$1]] ».\nLe motif fourni pour le blocage de $1 est « $2 »",
        "ip_range_exceeded": "L'intervalle des adresses IP est plus grand l'intervalle maximum. Intervalle autorisé : /$1 .",
        "ip_range_toolow": "Les intervalles d'adresses IP ne sont effectivement pas autorisés.",
        "proxyblocker": "Bloqueur de mandataires",
-       "proxyblockreason": "Votre adresse IP a été bloquée car il s’agit d’un mandataire ouvert.\nVeuillez contacter votre fournisseur d’accès à Internet ou votre service d’assistance technique et l’informer de ce sérieux problème de sécurité.",
+       "proxyblockreason": "Votre adresse IP a été bloquée car il s’agit d’un serveur mandataire ouvert.\nVeuillez contacter votre fournisseur d’accès à Internet ou votre service d’assistance technique et l’informer de ce sérieux problème de sécurité.",
        "sorbsreason": "Votre adresse IP est listée comme mandataire ouvert dans le DNSBL utilisé par {{SITENAME}}.",
        "sorbs_create_account_reason": "Votre adresse IP est listée comme mandataire ouvert dans le DNSBL utilisé par {{SITENAME}}.\nVous ne pouvez pas créer un compte.",
        "softblockrangesreason": "Les contributions anonymes ne sont pas autorisées à partir de votre adresse IP ($1). Veuillez vous connecter.",
index 028ebae..d2e27da 100644 (file)
        "redirect-page": "ID stranice",
        "redirect-revision": "Inačica stranice",
        "redirect-file": "Datotečno ime",
+       "redirect-not-exists": "Vrijednost nije pronađena",
        "fileduplicatesearch": "Traži kopije datoteka",
        "fileduplicatesearch-summary": "Traži kopije datoteka na temelju njihove hash vrijednosti.",
        "fileduplicatesearch-filename": "Ime datoteke:",
index e1c3e81..8cb1e8b 100644 (file)
@@ -63,7 +63,8 @@
                        "Palladin911",
                        "Bagas Chrisara",
                        "Pebaryan",
-                       "Veracious"
+                       "Veracious",
+                       "Mnam23"
                ]
        },
        "tog-underline": "Garis bawahi pranala:",
        "tog-norollbackdiff": "Jangan tampilkan perbedaan setelah melakukan pengembalian",
        "tog-useeditwarning": "Ingatkan saya bila meninggalkan halaman penyuntingan sebelum menyimpan perubahan",
        "tog-prefershttps": "Selalu gunakan koneksi aman ketika masuk log",
+       "tog-showrollbackconfirmation": "Tampilkan konfirmasi ketika mengeklik pranala pengembalian",
        "underline-always": "Selalu",
        "underline-never": "Tidak pernah",
        "underline-default": "Kulit atau penjelajah bawaan",
        "badretype": "Kata sandi yang Anda masukkan salah.",
        "usernameinprogress": "Pembuatan akun untuk nama pengguna ini sedang dijalankan. Silahkan tunggu.",
        "userexists": "Nama pengguna yang dimasukkan telah digunakan.\nSilakan tentukan nama yang lain.",
+       "createacct-normalization": "Nama pengguna anda akan diubah menjadi $2 dikarenakan dilarang secara teknis.",
        "loginerror": "Kesalahan masuk log",
        "createacct-error": "Pembuatan akun gagal",
        "createaccounterror": "Tidak dapat membuat akun: $1",
        "page_first": "pertama",
        "page_last": "terakhir",
        "histlegend": "Pilih dua tombol radio lalu tekan tombol ''bandingkan'' untuk membandingkan versi. Klik suatu tanggal untuk melihat versi halaman pada tanggal tersebut.<br />(skr) = perbedaan dengan versi sekarang, (akhir) = perbedaan dengan versi sebelumnya, '''k''' = suntingan kecil, '''b''' = suntingan bot, → = suntingan bagian, ← = ringkasan otomatis",
-       "history-fieldset-title": "Cari revisi",
+       "history-fieldset-title": "Saring revisi",
        "history-show-deleted": "Revisi yang dihapus saja",
        "histfirst": "terlama",
        "histlast": "terbaru",
        "historysize": "($1 {{PLURAL:$1|bita|bita}})",
-       "historyempty": "(kosong)",
+       "historyempty": "kosong",
        "history-feed-title": "Riwayat revisi",
        "history-feed-description": "Riwayat revisi halaman ini di wiki",
        "history-feed-item-nocomment": "$1 pada $2",
        "right-reupload-own": "Menimpa berkas yang sudah ada yang dimuat oleh pengguna yang sama",
        "right-reupload-shared": "Menolak berkas-berkas pada penyimpanan media lokal bersama",
        "right-upload_by_url": "Memuatkan berkas dari sebuah alamat URL",
-       "right-purge": "Menghapus singgahan suatu halaman tanpa halaman konfirmasi",
+       "right-purge": "Menghapus singgahan suatu halaman",
        "right-autoconfirmed": "Tidak dipengaruhi rate limit berbasis IP",
        "right-bot": "Diperlakukan sebagai sebuah proses otomatis",
        "right-nominornewtalk": "Ketiadaan suntingan kecil di halaman pembicaraan memicu tampilan pesan baru",
        "action-changetags": "menambah dan menghapus tag semaunya pada revisi individu dan entri log",
        "action-deletechangetags": "hapus tag dari basis data",
        "action-purge": "hapus singgahan halaman ini",
+       "action-apihighlimits": "menggunakan batasan yang lebih tinggi dalam kueri API",
+       "action-autoconfirmed": "tidak dipengaruhi rate limit berbasis IP",
+       "action-bigdelete": "hapus halaman dengan banyak versi terdahulu",
+       "action-blockemail": "blokir pengiriman surel oleh pengguna",
+       "action-bot": "diperlakukan sebagai sebuah proses otomatis",
        "action-editprotected": "menyunting halaman yang dilindungi sebagai \"{{int:protect-level-sysop}}\"",
+       "action-editsemiprotected": "sunting halaman yang dilindungi sebagai \"{{int:protect-level-autoconfirmed}}\"",
+       "action-editinterface": "sunting antarmuka pengguna",
+       "action-editusercss": "sunting berkas CSS pengguna lain",
+       "action-edituserjson": "sunting berkas JSON pengguna lain",
+       "action-edituserjs": "sunting berkas JS pengguna lain",
        "action-editsitecss": "menyunting CSS untuk keseluruhan situs",
+       "action-editsitejson": "sunting JSON untuk keseluruhan situs",
+       "action-editsitejs": "sunting JavaScript untuk keseluruhan situs",
+       "action-editmyusercss": "sunting berkas CSS pengguna Anda",
+       "action-editmyuserjson": "sunting berkas JSON pengguna Anda",
+       "action-editmyuserjs": "sunting berkas JavaScript pengguna Anda",
+       "action-viewsuppressed": "lihat revisi yang disembunyikan dari semua pengguna",
+       "action-hideuser": "blokir nama pengguna dan sembunyikan dari publik",
+       "action-ipblock-exempt": "abaikan pemblokiran IP, pemblokiran otomatis, dan rentang pemblokiran",
+       "action-unblockself": "lepaskan blokir sendiri",
+       "action-noratelimit": "jangan dipengaruhi oleh pembatasan jumlah suntingan",
+       "action-reupload-own": "menimpa berkas yang sudah ada yang dimuat oleh pengguna yang sama",
+       "action-nominornewtalk": "tiadakan suntingan kecil di halaman pembicaraan yang memicu tampilan pesan baru",
+       "action-markbotedits": "tandai pengembalian revisi sebagai suntingan bot",
+       "action-patrolmarks": "lihat penandaan patroli perubahan terbaru",
+       "action-override-export-depth": "ekspor halaman termasuk halaman-halaman terkait hingga kedalaman 5",
+       "action-suppressredirect": "jangan membuat pengalihan dari nama lama ketika memindahkan halaman",
        "nchanges": "$1 {{PLURAL:$1|perubahan|perubahan}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sejak kunjungan terakhir}}",
        "enhancedrc-history": "riwayat",
        "rcfilters-savedqueries-already-saved": "Penyaringan ini telah tersimpan. Ubah pengaturan Anda untuk membuat saringan filter tersimpan baru.",
        "rcfilters-restore-default-filters": "Kembalikan filter bawaan",
        "rcfilters-clear-all-filters": "Hapus semua penyaringan",
-       "rcfilters-show-new-changes": "Tampilkan perubahan terbaru",
+       "rcfilters-show-new-changes": "Tampilkan perubahan baru sejak $1",
        "rcfilters-search-placeholder": "Filter perubahan terbaru (gunakan menu atau pencarian untuk menyaring nama)",
        "rcfilters-invalid-filter": "Penyqringan tidak sah",
        "rcfilters-empty-filter": "Tidak ada filter aktif. Semua kontribusi ditampilkan.",
        "apisandbox-alert-field": "Nilai dalam kolom ini tidak valid.",
        "apisandbox-continue": "Lanjutkan",
        "apisandbox-continue-clear": "Kosongkan",
+       "apisandbox-continue-help": "{{int:apisandbox-continue}} akan [https://www.mediawiki.org/wiki/API:Query#Continuing_queries melanjutkan] permintaan terakhir; {{int:apisandbox-continue-clear}} akan membersihkan semua parameter berkelanjutan",
        "apisandbox-param-limit": "Masukan <kbd>max</kbd> untuk menggunakan batas maksimum.",
        "apisandbox-multivalue-all-namespaces": "$1 (Semua ruang nama)",
        "apisandbox-multivalue-all-values": "$1 (Semua nilai)",
        "delete-confirm": "Hapus \"$1\"",
        "delete-legend": "Hapus",
        "historywarning": "<strong>Peringatan:</strong> Laman yang akan Anda hapus memiliki riwayat dengan $1 perubahan:",
-       "historyaction-submit": "Tampilkan",
+       "historyaction-submit": "Tampilkan revisi",
        "confirmdeletetext": "Anda akan menghapus halaman atau berkas ini secara permanen berikut semua sejarahnya dari basis data. Pastikan bahwa Anda memang ingin melakukannya, mengetahui segala akibatnya, dan apa yang Anda lakukan ini adalah sejalan dengan [[{{MediaWiki:Policy-url}}|kebijakan {{SITENAME}}]].",
        "actioncomplete": "Proses selesai",
        "actionfailed": "Eksekusi gagal",
        "ipb-confirm": "Konfirmasi blokir",
        "ipb-sitewide": "Keseluruhan situs",
        "ipb-partial": "Parsial",
+       "ipb-sitewide-help": "Semua halaman di wiki dan aksi kontribusi lainnya",
        "ipb-partial-help": "Halaman atau ruangnama khusus.",
        "ipb-pages-label": "Halaman",
        "ipb-namespaces-label": "Ruang nama",
        "blocklist-userblocks": "Sembunyikan pemblokiran akun",
        "blocklist-tempblocks": "Sembunyikan pemblokiran sementara",
        "blocklist-addressblocks": "Sembunyikan pemblokiran IP tunggal",
+       "blocklist-type": "Jenis:",
+       "blocklist-type-opt-all": "Semua",
+       "blocklist-type-opt-sitewide": "Keseluruhan situs",
+       "blocklist-type-opt-partial": "Parsial",
        "blocklist-rangeblocks": "Menyembunyikan jangkauan blokir (http://www.mediawiki.org/wiki/Help:Range_blocks)",
        "blocklist-timestamp": "Stempel waktu",
        "blocklist-target": "Target",
        "blocklist-editing-page": "laman",
        "blocklist-editing-ns": "Ruang nama",
        "ipblocklist-empty": "Daftar pemblokiran kosong.",
-       "ipblocklist-no-results": "Alamat IP atau pengguna yang diminta tidak diblokir.",
+       "ipblocklist-no-results": "Tidak ada pemblokiran untuk alamat IP atau nama pengguna yang diminta.",
        "blocklink": "blokir",
        "unblocklink": "hilangkan blokir",
        "change-blocklink": "ubah pemblokiran",
+       "empty-username": "(nama pengguna tidak tersedia)",
        "contribslink": "kontrib",
        "emaillink": "kirim surel",
        "autoblocker": "Diblokir secara otomatis karena alamat IP Anda digunakan oleh \"[[User:$1|$1]]\".\nAlasan yang diberikan untuk pemblokiran $1 adalah: \"$2\"",
        "ipb_expiry_old": "Waktu kedaluwarsa adalah pada masa lampau.",
        "ipb_expiry_temp": "Pemblokiran atas nama pengguna yang disembunyikan harus permanen.",
        "ipb_hide_invalid": "Tak dapat menutup akun ini; akun tersebut memiliki {{PLURAL:$1|satu suntingan|$1 suntingan}}.",
+       "ipb_hide_partial": "Pemblokiran penyembunyian nama pengguna harus merupakan pemblokiran keseluruhan situs",
        "ipb_already_blocked": "\"$1\" telah diblokir.",
        "ipb-needreblock": "$1 sudah diblokir. Apakah Anda ingin mengubah set pemblokiran yang bersangkutan?",
        "ipb-otherblocks-header": "{{PLURAL:$1|Blok|Blok}} lain",
        "import-mapping-subpage": "Impor sebagai subhalaman dari halaman berikut:",
        "import-upload-filename": "Nama berkas:",
        "import-upload-username-prefix": "Awalan interwiki:",
+       "import-assign-known-users": "Berikan suntingan-suntingan ke pengguna lokal, untuk nama-nama pengguna yang ada di wiki ini.",
        "import-comment": "Komentar:",
        "importtext": "Silakan ekspor berkas dari wiki sumber dengan menggunakan [[Special:Export|fasilitas ekspor]].\nSimpan ke komputer Anda dan unggah ke sini.",
        "importstart": "Mengimpor halaman...",
        "group-bot.css": "/* CSS di sini hanya mempengaruhi bot */",
        "group-sysop.css": "/* CSS di sini hanya mempengaruhi pengurus */",
        "group-bureaucrat.css": "/* CSS di sini hanya mempengaruhi birokrat */",
+       "common.json": "/* JSON apa pun yang ada di sini akan dimuat untuk semua pengguna ketika memuat semua halaman. */",
        "common.js": "/* JavaScript yang ada di sini akan diterapkan untuk semua kulit. */",
        "group-autoconfirmed.js": "/* Semua JavaScript di sini hanya dimuatkan untuk pengguna terkonfirmasi otomatis */",
        "group-bot.js": "/* Semua JavaScript di sini hanya dimuatkan untuk bot */",
        "confirm-unwatch-top": "Hapus halaman ini dari daftar pantauan Anda?",
        "confirm-rollback-button": "OK",
        "confirm-rollback-top": "Kembalikan suntingan ke halaman ini?",
+       "confirm-rollback-bottom": "Tindakan ini akan mengembalikan revisi terkait ke halaman ini.",
        "confirm-mcrrestore-title": "Kembalikan revisi",
        "confirm-mcrundo-title": "Balikkan perubahan",
        "mcrundofailed": "Pembatalan gagal",
        "mcrundo-missingparam": "Parameter yang dibutuhkan ketika diminta tidak tersedia.",
        "mcrundo-changed": "Halaman ini telah diubah sejak Anda melihat diff. Mohon tinjau perubahan terbaru.",
+       "mcrundo-parse-failed": "Galat dalam menguraikan revisi baru: $1",
        "semicolon-separator": ";&#32;",
        "comma-separator": ",&#32;",
        "colon-separator": ":&#32;",
        "logentry-partialblock-block-ns": "{{PLURAL:$1|ruangnama|ruangnama}} $2",
        "logentry-partialblock-block": "$1 {{GENDER:$2|memblokir}} {{GENDER:$4|$3}} dari penyuntingan $7 dengan waktu kedaluwarsa $5 $6",
        "logentry-partialblock-reblock": "$1 {{GENDER:$2|mengubah}} pengaturan blokir pada {{GENDER:$4|$3}} untuk mencegah penyuntingan pada $7 dengan masa pemblokiran $5 $6",
+       "logentry-non-editing-block-block": "$1 {{GENDER:$2|memblokir}} {{GENDER:$4|$3}} dari tindakan-tindakan nonsuntingan terkait dengan waktu kedaluwarsa $5 $6",
+       "logentry-non-editing-block-reblock": "$1 {{GENDER:$2|mengubah}} pemblokiran {{GENDER:$4|$3}} dari tindakan-tindakan nonsuntingan terkait dengan waktu kedaluwarsa $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|memblokir}} {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|mengubah}} pemblokiran {{GENDER:$4|$3}} dengan waktu kedaluwarsa $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|mengimpor}} $3 melalui pemuatan berkas",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bita}}",
        "limitreport-expansiondepth": "Kedalaman ekspansi tertinggi",
        "limitreport-expensivefunctioncount": "Perhitungan fungsi parser yang mahal",
+       "limitreport-unstrip-depth": "Kedalaman rekursi Unstrip",
+       "limitreport-unstrip-size": "Ukuran Unstrip setelah ekspansi",
        "limitreport-unstrip-size-value": "$1/$2 {{PLURAL:$2|bita|bita}}",
        "expandtemplates": "Pengembangan templat",
        "expand_templates_intro": "Halaman istimewa ini mengambil teks dan mengembangkan semua templat di dalamnya secara rekursif. Halaman ini juga menerjemahkan semua fungsi parser seperti <code><nowiki>{{</nowiki>#language:…}}</code> dan variabel seperti <code><nowiki>{{</nowiki>CURRENTDAY}}</code>. Bahkan bisa dibilang mengembangkan segala sesuatu yang berada di antara dua tanda kurung.",
        "passwordpolicies-policy-passwordcannotbepopular": "Kata sandi tidak boleh {{PLURAL:$1|kata sandi populer|dalam senarai $1 kata sandi populer}}",
        "passwordpolicies-policy-passwordnotinlargeblacklist": "Kata sandi tidak boleh termasuk dalam daftar 100.000 kata sandi yang paling umum digunakan.",
        "passwordpolicies-policyflag-forcechange": "wajib diganti ketika masuk log",
-       "unprotected-js": "Karena alasan keamanan Javascript tidak dapat dimuat dari halaman yang tidak dilindungi. Mohon hanya buat javascript di ruangnama MediaWiki: atau sebagai subhalaman  Pengguna"
+       "passwordpolicies-policyflag-suggestchangeonlogin": "sarankan penggantian ketika masuk log",
+       "easydeflate-invaliddeflate": "Isi yang disediakan tidak dikempiskan secara tepat",
+       "unprotected-js": "Karena alasan keamanan Javascript tidak dapat dimuat dari halaman yang tidak dilindungi. Mohon hanya buat javascript di ruangnama MediaWiki: atau sebagai subhalaman  Pengguna",
+       "userlogout-continue": "Jika Anda yakin untuk keluar log, silakan [$1 melanjutkan].",
+       "userlogout-sessionerror": "Gagal keluar log karena galat sesi. Silakan [$1 coba lagi]."
 }
index 5d5ebc7..c2471ef 100644 (file)
        "log-action-filter-all": "Omno",
        "log-action-filter-contentmodel-change": "Modifiko di la kontenajo di ula modelo",
        "log-action-filter-suppress-reblock": "User suppression by reblock",
-       "authprovider-resetpass-skip-label": "Preterpasar"
+       "authprovider-resetpass-skip-label": "Preterpasar",
+       "authpage-cannot-login-continue": "Ne povis durar l'eniro-procedi. Posible vua sesiono finis pos kelka tempo sen uzo."
 }
index adab874..53bcc85 100644 (file)
        "page_first": "先頭",
        "page_last": "末尾",
        "histlegend": "差分の選択: 比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。<br />\n凡例: <strong>({{int:cur}})</strong>=最新版との比較、<strong>({{int:last}})</strong>=直前の版との比較、<strong>{{int:minoreditletter}}</strong>=細部の編集",
-       "history-fieldset-title": "ç\89\88ã\82\92ã\83\95ã\82£ã\83«ã\82¿ã\83¼",
+       "history-fieldset-title": "ç\89\88ã\81®çµ\9eã\82\8aè¾¼ã\81¿",
        "history-show-deleted": "削除版のみ",
        "histfirst": "最古",
        "histlast": "最新",
index 515eae1..0fd0851 100644 (file)
        "pageswithprop-submit": "Aiziet",
        "doubleredirects": "Divkāršas pāradresācijas lapas",
        "doubleredirectstext": "Šajā lapā ir uzskaitītas pāradresācijas lapas, kuras pāradresē uz citām pāradresācijas lapām.\nKatrā rindiņā ir saites uz pirmo un otro pāradresācijas lapu, kā arī pirmā rindiņa no otrās pāradresācijas lapas teksta, kas parasti ir faktiskā \"gala\" lapa, uz kuru vajadzētu būt saitei pirmajā lapā.\n<del>Nosvītrotie</del> ieraksti jau ir tikuši salaboti.",
-       "double-redirect-fixed-move": "[[$1]] bija ticis pārvietots, tas tagad ir pāradresācija uz [[$2]]",
+       "double-redirect-fixed-move": "[[$1]] ir ticis pārvietots.\nTas tika automātiski labots un tagad tas pāradresē uz [[$2]].",
        "double-redirect-fixed-maintenance": "Automātiski ar apkopes procesu labota dubultā pāradresācija no [[$1]] uz [[$2]].",
        "double-redirect-fixer": "Pāradresāciju labotājs",
        "brokenredirects": "Kļūdainas pāradresācijas",
        "blocklist-userblocks": "Paslēpt kontu bloķējumus",
        "blocklist-tempblocks": "Paslēpt pagaidu bloķējumus",
        "blocklist-addressblocks": "Paslēpt vienas IP adreses bloķējumus",
+       "blocklist-type": "Veids:",
+       "blocklist-type-opt-all": "Visi",
+       "blocklist-type-opt-sitewide": "Visā vietnē",
+       "blocklist-type-opt-partial": "Daļēji",
        "blocklist-rangeblocks": "Paslēpt IP adrešu diapazona blokus",
        "blocklist-timestamp": "Laiks",
        "blocklist-target": "Mērķis",
        "createaccountblock": "kontu veidošana atslēgta",
        "emailblock": "e-pasts bloķēts",
        "blocklist-nousertalk": "nevar izmainīt savu diskusiju lapu",
+       "blocklist-editing": "labošana",
+       "blocklist-editing-sitewide": "labošana (visā vietnē)",
        "blocklist-editing-page": "lapas",
        "blocklist-editing-ns": "vārdtelpas",
        "ipblocklist-empty": "Bloķēšanas saraksts ir tukšs.",
        "blocklink": "bloķēt",
        "unblocklink": "atbloķēt",
        "change-blocklink": "izmainīt bloku",
+       "empty-username": "(dalībnieka vārds nav pieejams)",
        "contribslink": "devums",
        "emaillink": "nosūtīt e-pastu",
        "autoblocker": "Tava IP ir nobloķēta automātiski, tāpēc, ka to nesen lietojis \"[[User:$1|$1]]\".\nViņa bloķēšanas iemesls bija: \"$2\"",
        "mw-widgets-dateinput-no-date": "Nav izvēlēts datums",
        "mw-widgets-mediasearch-noresults": "Nav atrasts neviens rezultāts.",
        "mw-widgets-titleinput-description-new-page": "lapa vēl nepastāv",
+       "mw-widgets-titleinput-description-redirect": "pāradresēt uz $1",
        "mw-widgets-categoryselector-add-category-placeholder": "Pievienot kategoriju...",
        "mw-widgets-usersmultiselect-placeholder": "Pievienot vēl...",
        "mw-widgets-titlesmultiselect-placeholder": "Pievienot vēl...",
        "date-range-to": "Līdz datumam:",
        "sessionprovider-generic": "$1 sesijas",
        "randomrootpage": "Nejauša saknes lapa",
+       "log-action-filter-block": "Bloķēšanas veids:",
        "log-action-filter-protect": "Aizsardzības veids:",
        "log-action-filter-suppress": "Cenzēšanas veids:",
        "log-action-filter-upload": "Augšupielādes veids:",
index 9c7477d..22ae6fc 100644 (file)
@@ -9,6 +9,8 @@
                        "Nafadji Mory Diané"
                ]
        },
+       "underline-always": "ߕߎ߬ߡߊ߬ ߓߍ߯",
+       "underline-never": "ߡߎ߰ߡߍ߫",
        "sunday": "ߞߊ߯ߙߌߟߏ߲",
        "monday": "ߞߐ߬ߓߊ߬ߟߏ߲",
        "tuesday": "ߞߐ߬ߟߏ߲",
        "pagecategories": "{{PLURAL:$1|ߦߌߟߡߊ |ߦߌߟߡߊ ߟߎ߬ }}",
        "category_header": "ߦߌߟߡߊ ߞߐߜߍ ߟߎ߬$1",
        "subcategories": "ߝߊ߬ߓߏ߲߬ ߘߋ߬ߣߍ߲ ߠߎ߬",
+       "category-media-header": "ߟߊߛߋߢߊ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫\"$1\"",
        "hidden-categories": "{{PLURAL:$1|ߦߌߟߡߊ߫ ߘߏ߲߰ߣߍ߲ |ߦߌߟߡߊ߫ ߘߏ߲߰ߣߍ߲ ߠߎ߬}}",
        "category-subcat-count": "{{PLURAL:$2|ߦߟߊߡߊߙߋ߲ ߣߌ߲߬ ߠߎ߫ ߜߊ߲߰ߛߊ߲ ߠߋ߫ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.|ߦߌߟߡߊ ߣߊ߬ߕߐ ߟߎ߬ ߘߐ߫߸ {{PLURAL:$1|ߦߌߟߡߊߙߋ߲|$1 ߦߌߟߡߊߙߋ߲ ߠߎ߬}} ߟߋ߬ ߦߴߊ߬ ߘߐ߫߸ ߞߙߎߞߙߍ ߟߎ߬ ߞߐߞߊ߲߬ $2}}",
        "category-article-count": "{{PLURAL:$2|ߞߐߜߍ ߣߌ߲߬ ߘߐߙߐ߲߫ ߠߋ߬ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.|ߖߡߊ߬ߦߊ߫ ߕߐ߮ ߣߊ߬ߕߊ {{PLURAL:$1|ߞߐߜߍ ߦߋ߫|$1 ߞߐߜߍ ߦߋ߫}} ߟߋ߬ ߦߋ߫ ߦߌߟߡߊ߫ ߘߌ߫߸ ߞߙߎߞߙߍ $2 ߞߐߞߊ߲߬}}",
-       "category-file-count": "{{PLURAL:$2|ߞߐߕߐ߮ ߣߌ߲߬ ߜߊ߲߰ߛߊ߲ ߠߋ߫ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.|ߡߍ߲ ߠߎ߬ ߦߋ߫ ߣߌ߲߬ {{PLURAL:$1|ߞߐߕߐ߮ ߦߋ߫|$1 ߞߐߕߐ߮ ߟߎ߬ ߦߋ߫}} ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫߸ ߞߙߎߞߙߍ ߣߌ߲߬ $2 ߕߴߊ߬ ߘߐ߫.}}",
+       "category-file-count": "{{PLURAL:$2||ߞߐߕߐ߮ ߣߌ߲߬ ߜߊ߲߰ߛߊ߲ ߠߋ߫ ߦߋ߫ ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫.ߡߍ߲ ߠߎ߬ ߦߋ߫ ߣߌ߲߬ |{{PLURAL:$1||ߞߐߕߐ߮ ߦߋ߫|$1 ߞߐߕߐ߮ ߟߎ߬ ߦߋ߫}} ߦߌߟߡߊ ߣߌ߲߬ ߘߐ߫߸ ߞߙߎߞߙߍ ߣߌ߲߬ ߕߴߊ߬ ߘߐ߫2$.}}",
        "listingcontinuesabbrev": "ߖߊ߬ߕߋ߬ߘߊ",
        "index-category": "ߞߐߜߍ߫ ߓߊߕߐ߲ߛߐ߲ ߠߎ߬",
        "noindex-category": "ߞߐߜߍ߫ ߘߐߕߐ߲ߛߐ߲ߦߊߓߊߟߌ ߟߎ߬",
        "helppage-top-gethelp": "ߘߍ߬ߡߍ߲߬ߠߌ",
        "mainpage": "ߓߏ߬ߟߏ߲߬ߘߊ",
        "mainpage-description": "ߓߏ߬ߟߏ߲߬ߘߊ",
-       "policy-url": "ߣߕߊ߬ߘߐ߬ߛߌ߮: ߕߐ߲ ߠߎ߬",
+       "policy-url": "Projet:ߓߘߍ߬ߓߘߍ߬ߟߌ",
        "portal": "ߟߊ߬ߛߣߍ߬ߟߌ ߓߏ߬ߟߏ߲߬ߘߊ",
        "portal-url": "Project:ߟߊ߬ߛߣߍ߬ߟߌ ߓߏ߬ߟߏ߲߬ߘߊ",
        "privacy": "ߘߎ߲߬ߘߎ߬ߡߊ߬ ߤߊߞߍ",
        "ok": "ߏ߬ߞߍ߫",
        "retrievedfrom": "ߊ߬ ߡߊߝߍߣߍ߲߫ ߦߊ߲߬ ߓߊ߫$1",
        "youhavenewmessages": "{{PLURAL:$3|ߌ ߓߘߊ߫ ߗߋߛߓߍ߫ ߞߎߘߊ ߛߐ߬ߘߐ߲߬$1  $2 }}",
+       "youhavenewmessagesmulti": "ߌ ߓߘߊ߫ ߗߋߛߓߍ߫ ߞߎߘߊ ߛߐ߬ߘߐ߲߬ $1 ߞߣߐ߫",
        "editsection": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߫",
        "editold": "ߡߊߦߟߍ߬ߡߊ߲߬",
        "viewsourceold": "ߊ߬ ߛߎ߲ ߘߐߜߍ߫",
        "toc": "ߞߣߐߘߐ",
        "showtoc": "ߦߌ߬ߘߊ߬ߟߌ",
        "hidetoc": "ߢߡߊߘߏ߲߯ߠߌ",
+       "collapsible-expand": "ߘߐ߬ߥߙߊ߬ߟߌ",
        "confirmable-confirm": "ߌ ߛߍ߬ߓߍ߫ ߓߊ߬ {{GENDER:$1|}}؟",
        "confirmable-yes": "ߐ߲߬ߤߐ߲߫",
        "confirmable-no": "ߍ߲߬ߍ߲߫",
        "site-atom-feed": "$1 ߝߕߌ ߓߊߟߏ",
        "page-atom-feed": "$1 ߝߕߌ ߓߊߟߏ",
        "red-link-title": "ߞߐߜߍ߫ ߕߍ߫ ߦߋ߲߬ $1",
+       "sort-descending": "ߛߙߊߛߌ߰ߟߌ ߖߌ߰ߟߌ߬ ߓߟߏߡߊ߬",
+       "sort-ascending": "ߛߙߊߛߌ߰ߟߌ ߦߟߍ߬ ߓߟߏߡߊ߬",
        "nstab-main": "ߞߐߜߍ",
        "nstab-user": "ߞߐߜߍ߫ ߟߊߓߊ߯ߙߕߊ",
+       "nstab-media": "ߟߊߛߋߢߊ߫ ߞߐߜߍ",
        "nstab-special": "ߘߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲",
        "nstab-project": "ߖߊ߬ߕߋ߬ߘߐ߬ߛߌ߰ ߞߐߜߍ",
        "nstab-image": "ߞߐߕߐ߮",
        "nstab-mediawiki": "ߗߋߛߓߍ",
        "nstab-template": "ߞߙߊߞߏ",
+       "nstab-help": "ߡߊ߬ߘߍ߬ߡߍ߲߬ߠߌ߲߬ ߞߐߜߍ",
        "nstab-category": "ߦߌߟߡߊ",
        "mainpage-nstab": "ߓߏ߬ߟߏ߲߬ߘߊ",
+       "nosuchaction": "ߞߍߟߌ߫ ߛߎ߮ ߏ߬ ߕߴߦߋ߲߬",
        "nosuchspecialpage": "ߘߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲߬ ߛߎ߮ ߏ߬ ߝߋ߲߫ ߕߍ߫ ߦߊ߲߬",
        "nospecialpagetext": "<strong>ߊߟߎ߫ ߓߘߊ߫ ߞߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲ ߘߏ߫ ߢߌߣߌ߲߫ ߡߍ߲ ߕߺߴߦߋ߲߬.</strong>\nߞߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲߫ ߓߘߍ߬ߡߊ ߟߎ߬ ߛߙߍߘߍ ߦߋ߫ ߢߌ߲߬ ߠߋ߫ ߞߊ߲߬ [[Special:SpecialPages|{{int:specialpages}}]].",
+       "error": "ߝߎ߬ߕߎ߲߬ߕߌ",
        "badtitle": "ߞߎ߲߬ߕߐ߰ ߖߎ߮",
+       "badtitletext": "ߞߐߜߍ߫ ߡߊߢߌ߬ߣߌ߲߬ߞߊ߬ߣߍ߲ ߞߎ߲߬ߕߐ߮ ߓߍ߲߬ߣߍ߲߬ ߕߍ߫߸ ߊ߬ ߘߐߞߏߟߏ߲ ߦߋ߫߸ ߥߟߊ߫ ߞߊ߲ ߠߎ߬ ߣߌ߫ ߢߐ߲߯ߕߍ߫ ߛߘߌ߬ߜߋ߲ ߓߍ߲߬ߓߊߟߌ ߤߊߡߊ߲߫ ߥߞߌ ߟߎ߬ ߕߍ߫ ߛߘߌ߬ߜߋ߲.\nߛߓߍߘߋ߲߫ ߞߋߟߋ߲߫ ߥߟߊ߫ ߛߌߦߊߡߊ߲ ߠߎ߬ ߟߋ߬ ߦߋ߫ ߞߍ߫ ߟߴߊ߬ ߘߐ߫߸ ߡߍ߲ ߠߎ߬ ߕߴߛߋ߫ ߞߍ߫ ߟߊ߫ ߞߎ߲߬ߕߐ߯ ߘߌ߫.",
        "viewsource": "ߊ߬ ߛߎ߲ ߘߐߜߍ߫",
        "viewsource-title": "ߣߌ߲߬ $1 ߛߎ߲ ߘߐߜߍ߫",
        "viewsourcetext": "ߌ ߘߌ߫ ߛߋ߫ ߞߐߜߍ ߣߌ߲߬ ߛߎ߲ ߦߋ߫ ߟߊ߫߸ ߞߵߊ߬ ߓߊߓߌ߬ߟߊ߬",
        "history-feed-description": "ߞߐߜߍ ߣߌ߲߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߘߐ߬ߝߐ߸ ߥߞߌ ߘߐ߫",
        "rev-delundel": "ߊ߬ ߦߋߢߊ ߡߊߦߟߍ߬ߡߊ߲߫",
        "history-title": "$1 ߡߛߊ߬ߦߌ߲߬ߠߌ߲ ߘߐ߬ߝߐ",
+       "difference-title": "ߘߊ߲߬ߝߘߊ߬ߓߐ ߡߍ߲ ߦߋ߫ ߡߛߊ߬ߦߌ߲߬ߠߌ߲ $1 ߕߍ߫",
        "lineno": "$1 ߛߌ߬ߕߊߙߌ",
        "compareselectedversions": "ߘߟߊߡߌߘߊ߫ ߛߎߥߊ߲ߘߌߣߍ߲ ߠߎ߬ ߟߊߢߐ߲߯ߡߊ߫",
        "editundo": "ߊ߬ ߘߐߛߊ߬߸ ߊ߬ ߓߟߏߞߊ߬߸ ߊ߬ ߓߙߐߕߐ߫",
        "diff-empty": "ߝߊߙߊ߲ߝߊ߯ߛߌ߫ ߕߴߊ߬ߟߎ߬ ߕߍ߫",
+       "diff-multi-sameuser": "({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} ߟߊ߬ߓߊ߰ߙߊ߬ ߞߋߟߋ߲ ߓߟߏ߫߸ ߏ߬ ߡߊ߫ ߦߌ߬ߘߊ߬)",
        "searchresults": "ߢߌߣߌ߲ߠߌ߲ ߞߐߝߟߌ ߟߎ߬",
        "searchresults-title": "ߢߌߣߌ߲ߠߌ߲ ߞߐߝߟߌ$1",
        "prevn": "ߕߊ߬ߡߌ߲߬ߣߍ߲ ߠߎ߬ {{PLURAL:$1|$1}}",
        "nextn": "$1{{PLURAL:$1|ߟߊߕߎ߲߰ߠߊ}}",
+       "prevn-title": "ߢߝߍߕߊ $1 {{PLURAL:$1|result|results}}",
        "nextn-title": "ߢߍߕߊ$1{{PLURAL:$1|ߞߐߖߋߓߌ}}",
        "shown-title": "ߦߌߘߊߞߊ߬ $1{{PLURAL:$1|ߞߐߝߟߌ |ߞߐߝߟߌ ߟߎ߬ }} ߞߐߜߍ߫ ߞߋ߬ߟߋ߲߬ߞߋ߬ߟߋ߲߬ߠߊ",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) ߦߋ߫",
        "searchmenu-exists": "</strong> ߞߐߜߍ ߘߏ߫ ߕߐ߯ ߦߋ߫ ߞߏ߫  \"[[:$1]]\" ߥߞߌ ߣߌ߲߬ ߘߐ߫.</strong> {{PLURAL:$2|0=|See also the other search results found.}}",
+       "searchmenu-new": "<strong>ߞߐߜߍ ߘߏ߫ ߟߊߘߊ߲߫ \"[[:$1]]\" ߥߞߌ ߣߌ߲߬ ߘߐ߫߹</strong>  {{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}",
        "searchprofile-articles": "ߞߐߜߍ ߞߣߐߘߐ",
        "searchprofile-images": "ߡߍ߲ߕߊߦߋߕߊ",
        "searchprofile-everything": "ߊ߬ ߡߎ߰ߡߍ",
        "search-showingresults": "{{PLURAL:$4|Result <strong>$1</strong> of <strong>$3</strong>|Results <strong>$1 – $2</strong> of <strong>$3</strong>}}",
        "search-nonefound": "ߖߋ߬ߓߟߌ߬ ߛߌ߫ ߕߍ߫ ߢߌ߬ߣߌ߲߬ߞߊ߬ߟߌ ߣߌ߲߫ ߞߊ߲߬.",
        "mypreferences": "ߟߊ߬ߝߌ߬ߛߦߊ߬ߟߌ",
+       "group-bot": "ߓߏߕ",
        "group-sysop": "ߡߙߊ߬ߟߌ߬ߟߊ",
+       "grouppage-bot": "{{ns:project}}:ߓߏߕ",
        "right-writeapi": "ߛߓߍߟߌ API ߟߊߓߊ߯ߙߊ߫",
        "newuserlogpage": "ߖߊ߬ߕߋ߬ߘߊ߬ ߓߘߊ߫ ߟߊߞߊ߬ ߌ ߜߊ߲߬ߞߎ߲߬",
        "action-edit": "ߞߐߜߍ ߣߌ߲߬ ߡߊߦߟߍ߬ߡߊ߲߬",
        "file-anchor-link": "ߞߐߕߐ߮",
        "filehist": "ߞߐߕߐ߮ ߟߊ߫ ߘߐ߬ߝߐ",
        "filehist-help": "ߕߎ߬ߡߊ߬ߘߊ/ߕߎ߬ߡߊ ߛߐ߲߬ߞߌ߲߬ ߓߊ߫߸ ߞߊ߬ ߕߎ߬ߡߊ߬ߘߊ ߞߐߕߐ߮ ߟߎ߬ ߦߋ߫.",
+       "filehist-revert": "ߊ߬ ߟߊߢߊ߬",
        "filehist-current": "ߞߍߛߊ߲ߞߏ",
        "filehist-datetime": "ߕߎ߬ߡߊ߬ߘߊ/ߕߎ߬ߡߊ߬ߟߊ߲",
        "filehist-thumb": "ߞߝߊ߬ߟߋ߲ߛߋ߲",
        "listusers": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߛߙߍߘߍ",
        "newpages": "ߘߐߜߍ߫ ߞߎߘߊ",
        "move": "ߊ߬ ߛߋ߲߬ߓߐ߫",
+       "pager-newer-n": "{{PLURAL:$1|ߞߎߘߡߊ1|ߞߎߘߡߊ$1}}",
        "pager-older-n": "{{PLURAL:$1|ߞߘߐ߬ߡߊ߲ ߁|ߞߘߐ߬ߡߊ߲ ߠߎ߬ $1}}",
        "booksources": "ߞߊ߬ߝߊ ߛߎ߲",
        "booksources-search-legend": "ߞߊ߬ߝߊ ߛߎ߲ ߕߌߙߌ߲߫",
        "allpages": "ߞߐߜߍ ߟߎ߬ ߓߍ߯",
        "allarticles": "ߞߐߜߍ ߟߎ߬ ߓߍ߯",
        "allpagessubmit": "ߥߊ߫",
+       "allpages-hide-redirects": "ߟߊ߬ߞߎ߲߬ߛߌ߲߬ߠߌ߲ ߢߡߊߘߏ߲߰",
        "categories": "ߦߌߟߡߊ ߟߎ߬",
        "listgrouprights-members": "ߛߌ߲߬ߝߏ߲ ߠߎ߫ ߛߙߍߘߍ",
        "emailuser": "ߗߋߛߓߍ ߗߋ߫ ߣߌ߲߬ ߕߌ߭ ߡߊ߬",
        "mywatchlist": "ߘߐߜߍ߫ ߘ߲ߜߍߕߊ",
        "watch": "ߊ߬ ߘߐߜߍ߫",
        "unwatch": "ߊ߬ ߞߍ߫ ߦߋߓߊߟߌ ߘߌ߫",
+       "wlnote": "ߘߎ߰ߟߊ ߘߐ߫ {{PLURAL:$1|is the last change|are the last <strong>$1</strong> changes}} ߞߐ߯ߟߕߊ ߘߐ߫ {{PLURAL:$2|hour|<strong>$2</strong> hours}}, as of $3, $4.",
        "wlshowlast": "ߕߎ߬ߡߊ߬ߙߋ߲ $1 ߞߐߟߕߊ $2 ߕߋ߬ߟߋ ߟߎ߬ ߦߌ߬ߘߊ߬",
+       "enotif_reset": "ߞߐߜߍ߫ ߞߎ߲ߝߊ߲ߓߐߣߍ߲ ߠߎ߬ ߓߍ߯ ߕߐ߰ߡߊ߬ߛߙߋ߫",
        "dellogpage": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߖߏ߬ߛߌ߬ߣߍ߲",
        "rollbacklink": "ߘߐߛߵߊ߬ ߡߊ߬",
        "protectlogpage": "ߜߊ߲߬ߞߎ߲߬ߠߌ߲߬ ߠߊߞߊ߲ߘߊߣߍ߲",
        "protectedarticle": "ߟߊ߬ߞߊ߲߬ߘߊ߬ߣߍ߲ \"[[$1]]\"",
+       "modifiedarticleprotection": "ߟߊ߬ߞߊ߲߬ߘߊ߬ߟߌ ߞߊߓߋ ߡߊߦߟߍ߬ߡߊ߲߬ \"[[$1]]\"",
        "protect-default": "ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߎ߬ ߓߍ߯ ߟߊߘߌ߬ߢߍ߬",
        "restriction-edit": "ߊ߬ ߡߊߦߟߍ߬ߡߊ߲߬",
        "restriction-move": "ߕߐ߯ߦߊ߫",
        "whatlinkshere-next": "{{PLURAL:$1|ߢߍߕߊ|ߢߍߕߊ $1}}",
        "whatlinkshere-links": "→ ߛߘߌ߬ߜߋ߲",
        "whatlinkshere-hideredirs": "ߟߊ߬ߞߎ߲߬ߛߌ߲߬ߠߌ߲ ߠߎ߬ $1",
-       "whatlinkshere-hidetrans": "ߟߊ߬ߘߏ߲߬ߘߐ߬ߟߌ ߓߊ߲ߓߊ߲ߣߍ߲",
+       "whatlinkshere-hidetrans": "ߟߊ߬ߘߏ߲߬ߘߐ߬ߟߌ ߓߊ߲ߓߊ߲ߣߍ߲ $1",
        "whatlinkshere-hidelinks": "ߛߘߌ߬ߜߋ߲$1",
        "whatlinkshere-hideimages": "ߞߐߕߐ߮ ߛߘߌ߬ߜߋ߲$1",
        "whatlinkshere-filters": "ߢߡߊߘߏ߲߰ߣߍ߲",
        "infiniteblock": "ߘߊ߲߬ߓߊߟߌ",
        "blocklink": "ߟߊ߬ߢߊ߬ߙߊ߲߬ߠߌ",
        "contribslink": "ߡߊߛߐ߯ߟߌ",
+       "block-log-flags-nocreate": "ߖߊ߬ߕߋ߬ߘߊ ߛߌ߲ߘߟߌ ߟߊߕߐ߲",
        "movelogpage": "ߜߊ߲߬ߞߎ߲ ߓߐ߫ ߊ߬ ߡߊ߬",
        "export": "ߞߐߜߍ ߟߎ߬ ߟߊߝߏ߬ߦߌ߬",
        "thumbnail-more": "ߊ߬ ߟߊߞߎ߲߬ߓߦߊ߬",
        "tooltip-diff": "ߌ ߟߊ߫ ߛߓߍߟߌ߫ ߡߊߦߟߍ߬ߣߍ߲ ߦߌ߬ߘߊ߬",
        "tooltip-watch": "ߞߐߜߍ ߣߌ߲߬ ߓߌ߬ߟߊ߬ ߌ ߟߊ߫ ߜߋ߬ߟߎ߬ߠߌ߲߬ ߛߙߍߘߍ ߘߐ߫",
        "tooltip-rollback": "\"Rollback\" ߓߟߏߓߌߟߊߢߐ߲߯ߞߊ߲ߠߊ ߟߊߓߊ߲ ߠߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߡߊߛߊ߬ߦߌ߬ ߞߐߜߍ ߣߌ߲߬ ߘߐ߫ ߛߐ߲߬ߞߌ߲߬ߠߌ߲߬ ߞߋߟߋ߲߫ ߘߐ߫",
+       "tooltip-undo": "\"ߊ߬ ߘߐߛߊ߬\" ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߣߌ߲߬ ߞߐߛߊ߬ߦߌ߬ ߞߊ߬ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߝߊ߬ߘߌ ߟߊߞߊ߬ ߢߍߦߋߟߌ ߝߊ߬ߘߌ ߘߐ߫.\nߖߡߊ߬ߙߌ߬ߦߊ ߘߌ߫ ߟߊ߬ߘߛߏ߬ߟߌ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߡߊ߬.",
        "tooltip-summary": "ߟߊ߬ߘߛߏ߬ߣߍ߲߬ ߛߎ߬ߘߎ߲߬ߣߍ߲ ߘߏ߫ ߟߊߘߏ߲߬",
        "simpleantispam-label": "ߛߑߔߊߡ ߛߌ߬ߣߊ ߡߊ߬ߝߍ߬ߣߍ߲߬ߠߌ߲.\nߊ߬ ߞߍ߫ <strong>not</strong> ߣߌ߲߬ ߠߝߊ߫߹",
        "pageinfo-header-basic": "ߞߎ߲߬ߠߊ߬ߝߎ߬ߟߋ߲߬ ߓߊߖߎ ߟߎ߬",
        "pageinfo-language": "ߞߐߜߍ ߣߌ߲߬ ߞߣߐߘߐ ߞߊ߲",
        "pageinfo-robot-policy": "ߡߐ߰ߡߐ߮ ߕߐ߰ߡߊ߬ߛߙߋ߬ߟߌ߬ ߣߐ ߟߋ߬",
        "pageinfo-robot-index": "ߟߊߘߌ߬ߢߍ߬ߣߍ߲",
+       "pageinfo-robot-noindex": "ߟߊߘߌ߬ߢߍ߬ߓߊߟߌ",
        "pageinfo-few-watchers": "ߘߐ߯ߡߊ߲߫ $1{{PLURAL:$1|ߜߋ߬ߟߎ߲߬ߓߊ߮ |ߜߋ߬ߟߎ߲߬ߓߊ߮ ߟߎ߬ }}",
        "pageinfo-subpages-name": "ߞߐߜߍߙߋ߲ ߦߙߌߞߊ ߡߍ߲ ߠߎ߬ ߦߋ߫ ߞߐߜߍ ߣߌ߲߬ ߘߐ߫",
        "pageinfo-firstuser": "ߞߐߜߍ ߟߊߘߊ߲ߓߊ߮",
        "pageinfo-edits": "ߡߊߦߟߍ߬ߡߊ߲߬ߠߌ߲ ߠߎ߫ ߖߊ߬ߕߋ ߡߎ߰ߡߍ",
        "pageinfo-authors": "ߛߓߍߦߟߊ߫ ߦߙߌߞߊ߫ ߖߊ߬ߕߋ߫ ߡߎ߰ߡߍ",
        "pageinfo-recent-edits": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߟߊߓߊ߲ ߠߎ߬ ߖߊ߬ߕߋ (ߕߊ߬ߡߌ߲߬ߣߍ߲ ߞߘߐ߫ $1)",
+       "pageinfo-hidden-categories": "ߢߡߊߘߏ߲߰ߠߌ߲ {{PLURAL:$1|ߦߌߟߡߊ|ߦߌߟߡߊ ߟߎ߬(1$)}}",
        "pageinfo-toolboxlink": "ߞߐߜߍ ߞߌ߬ߓߊ߬ߙߏ߬ߦߊ",
        "pageinfo-contentpage-yes": "ߐ߲߬ߤߐ߲߫",
        "previousdiff": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߬ ߞߘߐ",
        "nextdiff": "ߊ߬ ߡߊ߫ ߡߊߦߟߍ߬ߡߊ߲߬",
+       "widthheightpage": "$1 × $2,$3 {{PLURAL:$3|page|pages}}",
        "file-info-size": "$1 × $2 ߖߌ߬ߦߊ߬ߘߊ߲ߕߊ߸ ߞߐߕߐ߮ ߢߊ߲ߞߊ߲: $3߸ MIME ߛߎ߮ߦߊ:$4",
        "file-nohires": "ߢߊߓߐߣߍ߲ ߛߊ߲ߘߐߕߊ߫ ߜߘߍ߫ ߕߍ߫ ߦߋ߲߬",
+       "svg-long-desc": "SVG ߞߐߕߐ߮,ߕߐ߯ߦߊߟߌ $1 × $2 ߖߌ߬ߦߊ߬ߘߊ߲ߕߊ, ߞߐߕߐ߮ ߢߊ߲ߞߊ߲:$3",
        "show-big-image": "ߞߐߕߐ߮ ߓߊߛߎ߲",
        "show-big-image-preview": "ߊ߬ ߢߍߦߋߟߌ ߢߊ߲ߞߊ߲$1",
        "show-big-image-other": "{{PLURAL:$2|ߢߊߓߐߟߌ|ߢߊߓߐߟߌ ߟߎ߬}} ߕߐ߬ߡߊ $1.",
        "show-big-image-size": "$1 × $2 ߖߌ߬ߦߊ߬ߘߊ߲ߕߊ",
        "metadata": "ߡߋߕߊߘߊ߯ߕߊ߫",
+       "metadata-help": "ߞߌ߬ߓߊ߬ߙߏ߬ߦߊ߬ߟߌ߬ ߜߘߍ߫ ߟߎ߫ ߦߋ߫ ߞߐߕߐ߮ ߣߌ߲߬ ߘߐ߫߸ ߊ߬ ߟߊߘߏ߲߬ߣߍ߲߬ ߦߋ߫ ߞߍ߫ ߟߊ߫ ߞߍߟߊ߲߫ ߡߍ߲ߛߍ߲ߡߊ ߟߋ߫ ߟߊ߫ ߥߟߊ߫ ߖߌ߬ߦߊ߬ߕߍ߬ߟߊ߲߸ ߞߵߊ߬ ߟߊߓߊ߯ߙߊ߫ ߥߟߊ߫ ߞߵߊ߬ ߡߍ߲ߛߍ߲ߡߊ.\nߣߴߊ߬ ߡߊߦߟߍ߬ߡߊ߲߬ ߣߍ߲߬ ߞߍ߫ ߘߊ߫ ߞߊ߬ ߓߴߊ߬ ߛߎ߲ߞߎ߲ ߡߊ߬߸ ߞߌ߬ߓߊ߬ߙߏ߬ߦߊ ߘߏ߫ ߟߎ߫ ߕߍ߫ ߣߊ߬ ߟߊߞߊ߲߬ߘߏ߬ ߟߊ߫ ߞߐߕߐ߯ ߡߊߦߟߍ߬ߡߊ߲߬ߣߍ߲ ߘߐ߫.",
        "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "namespacesall": "ߊ߬ ߓߍ߯",
        "monthsall": "ߡߎ߰ߡߍ",
        "imgmultipagenext": "ߞߐߜߍ ߢߍߕߊ",
        "imgmultigo": "ߥߊ߫",
        "imgmultigoto": "ߥߊ߫ ߞߐߜߍ ߣߌ߲߬ ߞߊ߲߬$1",
+       "watchlisttools-view": "ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߫ ߕߣߐ߬ߡߊ ߟߎ߫ ߦߌ߬ߘߊ߬ߟߌ",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
        "redirect-summary": "ߞߐߜߍ߫ ߓߟߏߡߊߞߊ߬ߣߍ߲ ߟߊߞߎ߲߬ߛߌ߲߬ߣߍ߲߬ ߦߋ߫ ߞߐߕߐ߮ (ߞߐߕߐ߮ ߕߐ߮ ߘߌ߫),ߞߐߜߍ (ߦߋ߫ ߡߛߊ߬ߦߌ߲߬ߠߌ߲ ID ߥߟߊ߫ ߞߐߜߍ ID ߘߌ ߞߊ߲߬), ߞߐߜߍ߫ ߟߊߓߊ߯ߙߕߊ ߦߋ߫ (ߟߊ߬ߓߊ߰ߙߟߊ߬ ߦߙߌߞߊ ID ߘߌ ߞߊ߲߬), ߥߟߊ߫ ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ߘߏ߲߬ߕߐ߬ߟߊ ߦߋ߫ (ߜߊ߲߬ߞߎ߲߬ߠߌ߲ ID ߘߌ ߞߊ߲߬). ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ:\n[[{{#Special:Redirect}}/file/Example.jpg]], \n[[{{#Special:Redirect}}/page/64308]],\n[[{{#Special:Redirect}}/revision/328429]], \n[[{{#Special:Redirect}}/user/101]], ߥߟߊ߫ \n[[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "ߕߊ߯",
index c262c70..0e9330e 100644 (file)
        "rcfilters-savedqueries-already-saved": "Ови филтери су већ сачувани. Промените своја подешавања да бисте направили нове сачуване филтере.",
        "rcfilters-restore-default-filters": "Врати подразумеване филтере",
        "rcfilters-clear-all-filters": "Обришите све филтере",
-       "rcfilters-show-new-changes": "Ð\9fÑ\80икажи Ð½ове промене од $1",
+       "rcfilters-show-new-changes": "Ð\9dове промене од $1",
        "rcfilters-search-placeholder": "Филтрирајте промене (користите мени или претрагу за име филтера)",
        "rcfilters-invalid-filter": "Неважећи филтер",
        "rcfilters-empty-filter": "Нема активних филтера. Сви доприноси су приказани.",
index 9572cba..3adca1b 100644 (file)
@@ -163,7 +163,17 @@ jquery.hoverIntent:
   src: https://raw.githubusercontent.com/briancherne/jquery-hoverIntent/823603fdac/jquery.hoverIntent.js
   integrity: sha384-lca0haN0hqFGGh2aYUhtAgX9dhVHfQnTADH4svDeM6gcXnL7aFGeAi1NYwipDMyS
 
-# TODO: jquery.i18n
+jquery.i18n:
+  type: tar
+  src: https://codeload.github.com/wikimedia/jquery.i18n/tar.gz/v1.0.5
+  integrity: sha384-bkmmKC2byOVjTg4di3o6sSISU49JwXynV9gNGH2zl4U9nh8vZJiauiIvoWgvhwsK
+  dest:
+    jquery.i18n-1.0.5/CODE_OF_CONDUCT.md:
+    jquery.i18n-1.0.5/CREDITS:
+    jquery.i18n-1.0.5/GPL-LICENSE:
+    jquery.i18n-1.0.5/MIT-LICENSE:
+    jquery.i18n-1.0.5/README.md:
+    jquery.i18n-1.0.5/src:
 
 jquery.jStorage:
   type: file
index 1e70c57..329f0ba 100644 (file)
@@ -2367,7 +2367,7 @@ abstract class MediaWikiTestCase extends PHPUnit\Framework\TestCase {
                if ( $createIfMissing ) {
                        if ( !file_exists( $fileName ) ) {
                                file_put_contents( $fileName, $actualData );
-                               $this->markTestSkipped( 'Data file $fileName does not exist' );
+                               $this->markTestSkipped( "Data file $fileName does not exist" );
                        }
                } else {
                        self::assertFileExists( $fileName );
index 63ca139..065024b 100644 (file)
@@ -7,10 +7,7 @@
  */
 class MagicWordFactoryTest extends MediaWikiTestCase {
        private function makeMagicWordFactory( Language $contLang = null ) {
-               if ( $contLang === null ) {
-                       return new MagicWordFactory( Language::factory( 'en' ) );
-               }
-               return new MagicWordFactory( $contLang );
+               return new MagicWordFactory( $contLang ?: Language::factory( 'en' ) );
        }
 
        public function testGetContentLanguage() {
index 044c30a..cdd7576 100644 (file)
@@ -270,17 +270,6 @@ class WatchActionTest extends MediaWikiTestCase {
                WatchAction::getWatchToken( $this->watchAction->getTitle(), $user );
        }
 
-       /**
-        * @covers WatchAction::getUnwatchToken()
-        */
-       public function testGetUnwatchToken() {
-               $user = $this->getMock( User::class );
-               $user->expects( $this->once() )->method( 'getEditToken' );
-               $this->hideDeprecated( 'WatchAction::getUnwatchToken' );
-
-               WatchAction::getUnWatchToken( $this->watchAction->getTitle(), $user );
-       }
-
        /**
         * @covers WatchAction::doWatchOrUnwatch()
         */
index 695a734..3890cf8 100644 (file)
@@ -3,7 +3,7 @@
  * PHP Unit tests for MWMessagePack
  * @covers MWMessagePack
  */
-class MWMessagePackTest extends PHPUnit\Framework\TestCase {
+class MWMessagePackTest extends MediaWikiTestCase {
 
        use MediaWikiCoversValidator;
 
@@ -71,6 +71,7 @@ class MWMessagePackTest extends PHPUnit\Framework\TestCase {
         * @dataProvider providePacks
         */
        public function testPack( $type, $value, $expected ) {
+               $this->hideDeprecated( MWMessagePack::class . '::pack' );
                $actual = bin2hex( MWMessagePack::pack( $value ) );
                $this->assertEquals( $expected, $actual, $type );
        }
index 8d7ed61..fcb10e7 100644 (file)
@@ -18,24 +18,6 @@ class PageArchivePreMcrTest extends PageArchiveTestBase {
 
        use PreMcrSchemaOverride;
 
-       /**
-        * @covers PageArchive::getTextFromRow
-        */
-       public function testGetTextFromRow() {
-               $this->hideDeprecated( PageArchive::class . '::getTextFromRow' );
-
-               /** @var SqlBlobStore $blobStore */
-               $blobStore = MediaWikiServices::getInstance()->getBlobStore();
-
-               $textId = $blobStore->getTextIdFromAddress(
-                       $this->firstRev->getSlot( SlotRecord::MAIN )->getAddress()
-               );
-
-               $row = (object)[ 'ar_text_id' => $textId ];
-               $text = $this->archivedPage->getTextFromRow( $row );
-               $this->assertSame( 'testing', $text );
-       }
-
        protected function getExpectedArchiveRows() {
                /** @var SqlBlobStore $blobStore */
                $blobStore = MediaWikiServices::getInstance()->getBlobStore();
index 218d4ce..15c64a9 100644 (file)
@@ -252,27 +252,6 @@ abstract class PageArchiveTestBase extends MediaWikiTestCase {
                yield 'ar_text_id is "0"' => [ [ 'ar_text_id' => '0' ] ];
        }
 
-       /**
-        * @dataProvider provideGetTextFromRowThrowsInvalidArgumentException
-        * @covers PageArchive::getTextFromRow
-        */
-       public function testGetTextFromRowThrowsInvalidArgumentException( array $row ) {
-               $this->hideDeprecated( PageArchive::class . '::getTextFromRow' );
-               $this->setExpectedException( InvalidArgumentException::class );
-
-               $this->archivedPage->getTextFromRow( (object)$row );
-       }
-
-       /**
-        * @covers PageArchive::getLastRevisionText
-        */
-       public function testGetLastRevisionText() {
-               $this->hideDeprecated( PageArchive::class . '::getLastRevisionText' );
-
-               $text = $this->archivedPage->getLastRevisionText();
-               $this->assertSame( 'Lorem Ipsum', $text );
-       }
-
        /**
         * @covers PageArchive::getLastRevisionId
         */
index aeeae11..c90e988 100644 (file)
@@ -366,7 +366,6 @@ class UserTest extends MediaWikiTestCase {
         *      - ensure the password is not the same as the username
         *      - ensure the username/password combo isn't forbidden
         * @covers User::checkPasswordValidity()
-        * @covers User::getPasswordValidity()
         * @covers User::isValidPassword()
         */
        public function testCheckPasswordValidity() {
@@ -394,7 +393,6 @@ class UserTest extends MediaWikiTestCase {
                                ],
                        ],
                ] );
-               $this->hideDeprecated( 'User::getPasswordValidity' );
 
                $user = static::getTestUser()->getUser();
 
@@ -405,24 +403,20 @@ class UserTest extends MediaWikiTestCase {
                $this->assertFalse( $user->isValidPassword( 'a' ) );
                $this->assertFalse( $user->checkPasswordValidity( 'a' )->isGood() );
                $this->assertTrue( $user->checkPasswordValidity( 'a' )->isOK() );
-               $this->assertEquals( 'passwordtooshort', $user->getPasswordValidity( 'a' ) );
 
                // Maximum length
                $longPass = str_repeat( 'a', 41 );
                $this->assertFalse( $user->isValidPassword( $longPass ) );
                $this->assertFalse( $user->checkPasswordValidity( $longPass )->isGood() );
                $this->assertFalse( $user->checkPasswordValidity( $longPass )->isOK() );
-               $this->assertEquals( 'passwordtoolong', $user->getPasswordValidity( $longPass ) );
 
                // Matches username
                $this->assertFalse( $user->checkPasswordValidity( $user->getName() )->isGood() );
                $this->assertTrue( $user->checkPasswordValidity( $user->getName() )->isOK() );
-               $this->assertEquals( 'password-name-match', $user->getPasswordValidity( $user->getName() ) );
 
                // On the forbidden list
                $user = User::newFromName( 'Useruser' );
                $this->assertFalse( $user->checkPasswordValidity( 'Passpass' )->isGood() );
-               $this->assertEquals( 'password-login-forbidden', $user->getPasswordValidity( 'Passpass' ) );
        }
 
        /**
index b9b8306..2f6fa39 100644 (file)
@@ -135,6 +135,18 @@ class LanguageTest extends LanguageClassesTestCase {
                                '48 hours 0 minutes',
                                'formatTimePeriod() rounding (=48h), avoidseconds'
                        ],
+                       [
+                               259199.55,
+                               'avoidhours',
+                               '3 d',
+                               'formatTimePeriod() rounding (>48h), avoidhours'
+                       ],
+                       [
+                               259199.55,
+                               [ 'avoid' => 'avoidhours', 'noabbrevs' => true ],
+                               '3 days',
+                               'formatTimePeriod() rounding (>48h), avoidhours'
+                       ],
                        [
                                259199.55,
                                'avoidminutes',