Merge "Removed Toki Pona localization files"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 24 Oct 2017 21:57:13 +0000 (21:57 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 24 Oct 2017 21:57:13 +0000 (21:57 +0000)
103 files changed:
.phpcs.xml [new file with mode: 0644]
RELEASE-NOTES-1.30
RELEASE-NOTES-1.31
composer.json
includes/DefaultSettings.php
includes/OutputPage.php
includes/api/ApiMain.php
includes/api/i18n/zh-hant.json
includes/diff/DifferenceEngine.php
includes/filerepo/file/LocalFile.php
includes/http/PhpHttpRequest.php
includes/installer/i18n/eu.json
includes/installer/i18n/ia.json
includes/libs/objectcache/WANObjectCache.php
includes/logging/BlockLogFormatter.php
includes/logging/ContentModelLogFormatter.php
includes/logging/DeleteLogFormatter.php
includes/logging/LogFormatter.php
includes/logging/MergeLogFormatter.php
includes/logging/MoveLogFormatter.php
includes/logging/PatrolLogFormatter.php
includes/logging/ProtectLogFormatter.php
includes/parser/ParserOptions.php
includes/registration/ExtensionProcessor.php
includes/resourceloader/ResourceLoaderSkinModule.php
includes/shell/Shell.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialEmailuser.php
includes/tidy/Balancer.php
includes/widget/search/InterwikiSearchResultSetWidget.php
languages/Language.php
languages/i18n/af.json
languages/i18n/ais.json
languages/i18n/ast.json
languages/i18n/az.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bs.json
languages/i18n/de-ch.json
languages/i18n/de.json
languages/i18n/en.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gom-latn.json
languages/i18n/he.json
languages/i18n/hr.json
languages/i18n/ia.json
languages/i18n/jv.json
languages/i18n/ko.json
languages/i18n/mwl.json
languages/i18n/nb.json
languages/i18n/or.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/qqq.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sat.json
languages/i18n/sl.json
languages/i18n/sv.json
languages/i18n/tg-cyrl.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/language/transstat.php
package.json
phpcs.xml [deleted file]
resources/Resources.php
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ChangesListViewModel.js
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.less
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesListWrapperWidget.less
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.SavedLinksListItemWidget.less
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FormWrapperWidget.js
resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css
resources/src/mediawiki/api.js
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-ltr.png [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-ltr.svg [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-rtl.png [deleted file]
resources/src/mediawiki/images/pager-arrow-forward-rtl.svg [deleted file]
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/registration/ExtensionProcessorTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderSkinModuleTest.php

diff --git a/.phpcs.xml b/.phpcs.xml
new file mode 100644 (file)
index 0000000..3170381
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<ruleset name="MediaWiki">
+       <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+               <exclude name="Generic.ControlStructures.InlineControlStructure" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamComment" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturn" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.ParamNameNoMatch" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.ExtraParamComment" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.WrongStyle" />
+               <exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentStart" />
+               <exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentEnd" />
+               <exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" />
+               <exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
+               <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
+               <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.SingleSpaceBeforeSingleLineComment" />
+               <exclude name="MediaWiki.Usage.DbrQueryUsage.DbrQueryFound" />
+               <exclude name="MediaWiki.Usage.ExtendClassUsage.FunctionVarUsage" />
+               <exclude name="MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals" />
+               <exclude name="MediaWiki.Files.ClassMatchesFilename.WrongCase" />
+               <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
+               <exclude name="MediaWiki.Files.OneClassPerFile.MultipleFound" />
+               <exclude name="MediaWiki.VariableAnalysis.ForbiddenGlobalVariables.ForbiddenGlobal$wgTitle" />
+               <exclude name="MediaWiki.Usage.DeprecatedConstantUsage.NS_IMAGE" />
+               <exclude name="MediaWiki.Usage.DeprecatedConstantUsage.NS_IMAGE_TALK" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.SpacingDocStar" />
+               <exclude name="MediaWiki.Commenting.FunctionComment.SpacingDocTag" />
+       </rule>
+       <rule ref="MediaWiki.NamingConventions.PrefixedGlobalFunctions">
+               <properties>
+                       <!--
+                       includes/compat/normal/UtfNormalUtil.php
+                       * codepointToUtf8
+                       * escapeSingleString
+                       * hexSequenceToUtf8
+                       * utf8ToCodepoint
+                       * utf8ToHexSequence
+                       includes/GlobalFunctions.php
+                       * mimeTypeMatch
+                       maintenance/benchmarks/bench_strtr_str_replace.php
+                       * bfNormalizeTitleStrReplace
+                       * bfNormalizeTitleStrTr
+                       maintenance/cdb.php
+                       * cdbShowHelp
+                       maintenance/language/transstat.php
+                       * showUsage
+                       maintenance/mcc.php
+                       * mccGetHelp
+                       * mccShowUsage
+                       maintenance/storage/moveToExternal.php
+                       * moveToExternal
+                       maintenance/storage/resolveStubs.php
+                       * resolveStub
+                       * resolveStubs
+                       profileinfo.php
+                       * compare_point
+                       * getEscapedProfileUrl
+                       tests/phpunit/includes/HooksTest.php
+                       * NothingFunction
+                       * NothingFunctionData
+                       tests/qunit/data/styleTest.css.php
+                       * cssfilter
+                       -->
+                       <property name="ignoreList" type="array" value="bfNormalizeTitleStrReplace,bfNormalizeTitleStrTr,cdbShowHelp,codepointToUtf8,compare_point,cssfilter,escapeSingleString,getEscapedProfileUrl,hexSequenceToUtf8,mccGetHelp,mccShowUsage,mimeTypeMatch,moveToExternal,NothingFunction,NothingFunctionData,resolveStub,resolveStubs,showUsage,utf8ToCodepoint,utf8ToHexSequence" />
+               </properties>
+       </rule>
+       <rule ref="MediaWiki.NamingConventions.ValidGlobalName">
+               <properties>
+                       <property name="ignoreList" type="array" value="$IP,$messageMemc,$parserMemc" />
+               </properties>
+       </rule>
+       <rule ref="Generic.Files.LineLength">
+               <exclude-pattern>*/languages/messages/Messages*.php</exclude-pattern>
+       </rule>
+       <rule ref="PSR2.Methods.MethodDeclaration.Underscore">
+               <exclude-pattern>*/includes/StubObject.php</exclude-pattern>
+       </rule>
+       <file>.</file>
+       <arg name="encoding" value="UTF-8"/>
+       <arg name="extensions" value="php,php5,inc,sample"/>
+       <exclude-pattern type="relative">^extensions/</exclude-pattern>
+       <exclude-pattern type="relative">^skins/</exclude-pattern>
+       <exclude-pattern>AdminSettings\.php</exclude-pattern>
+       <exclude-pattern>LocalSettings\.php</exclude-pattern>
+       <exclude-pattern>StartProfiler\.php</exclude-pattern>
+</ruleset>
index a7585ea..f79ae83 100644 (file)
@@ -241,6 +241,9 @@ changes to languages because of Phabricator reports.
 * (T138166) SpecialEmailUser::getTarget() now requires a second argument, the sending
   user object. Using the method without the second argument is deprecated.
 * (T67297) Browsers that don't support Unicode will have their edits rejected.
+* (T178450) The module 'jquery.badge' is deprecated and will be removed in a future
+  release. For notifying the user of an event, the Notifications ("Echo") system
+  should be used instead.
 
 == Compatibility ==
 MediaWiki 1.30 requires PHP 5.5.9 or later. There is experimental support for
index 3c22e78..fc50897 100644 (file)
@@ -11,6 +11,8 @@ production.
   essential.
 * $wgUsejQueryThree was removed, as it is now the default. This was documented as a
   temporary variable during the migration period, deprecated since 1.29.
+* $wgLogoHD has been updated to support svg images and uses $wgLogo where
+  possible for fallback images such as png.
 * …
 
 === New features in 1.31 ===
index 7364506..a0fe9a2 100644 (file)
@@ -54,7 +54,7 @@
                "jakub-onderka/php-parallel-lint": "0.9.2",
                "jetbrains/phpstorm-stubs": "dev-master#1b9906084d6635456fcf3f3a01f0d7d5b99a578a",
                "justinrainbow/json-schema": "~5.2",
-               "mediawiki/mediawiki-codesniffer": "13.0.0",
+               "mediawiki/mediawiki-codesniffer": "14.1.0",
                "monolog/monolog": "~1.22.1",
                "nikic/php-parser": "2.1.0",
                "nmred/kafka-php": "0.1.5",
index c1a518a..040f1ce 100644 (file)
@@ -290,6 +290,17 @@ $wgLogo = false;
  * ];
  * @endcode
  *
+ * SVG is also supported but when enabled, it
+ * disables 1.5x and 2x as svg will already
+ * be optimised for screen resolution.
+ *
+ * @par Example:
+ * @code
+ * $wgLogoHD = [
+ *     "svg" => "path/to/svg_version.svg",
+ * ];
+ * @endcode
+ *
  * @since 1.25
  */
 $wgLogoHD = false;
index 7a2b7df..500be8d 100644 (file)
@@ -4021,6 +4021,13 @@ class OutputPage extends ContextSource {
                        return;
                }
 
+               if ( isset( $logo['svg'] ) ) {
+                       // No media queries required if we only have a 1x and svg variant
+                       // because all preload-capable browsers support SVGs
+                       $this->addLinkHeader( '<' . $logo['svg'] . '>;rel=preload;as=image' );
+                       return;
+               }
+
                foreach ( $logo as $dppx => $src ) {
                        // Keys are in this format: "1.5x"
                        $dppx = substr( $dppx, 0, -1 );
index aea441b..edc1a3e 100644 (file)
@@ -125,7 +125,6 @@ class ApiMain extends ApiBase {
                'none' => 'ApiFormatNone',
        ];
 
-       // @codingStandardsIgnoreStart String contenation on "msg" not allowed to break long line
        /**
         * List of user roles that are specifically relevant to the API.
         * [ 'right' => [ 'msg'    => 'Some message with a $1',
@@ -142,7 +141,6 @@ class ApiMain extends ApiBase {
                        'params' => [ ApiBase::LIMIT_SML2, ApiBase::LIMIT_BIG2 ]
                ]
        ];
-       // @codingStandardsIgnoreEnd
 
        /**
         * @var ApiFormatBase
index 105a19c..ea5f2dd 100644 (file)
@@ -13,7 +13,8 @@
                        "烈羽",
                        "Corainn",
                        "A2093064",
-                       "Wwycheuk"
+                       "Wwycheuk",
+                       "Wbxshiori"
                ]
        },
        "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|說明文件]]\n* [[mw:Special:MyLanguage/API:FAQ|常見問題]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 郵遞清單]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 報告錯誤及請求功能]\n</div>\n<strong>狀態資訊:</strong>本頁所展示的所有功能都應正常運作,但API仍在開發,會隨時變化。請訂閱[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 郵遞清單]以便獲得更新通知。\n\n<strong>錯誤的請求:</strong>當API收到錯誤的請求,會發出以「MediaWiki-API-Error」為鍵的HTTP標頭欄位,隨後標頭欄位的值,以及傳回的錯誤碼會設為相同值。詳細資訊請參閱[[mw:Special:MyLanguage/API:Errors_and_warnings|API: 錯誤與警告]]。\n\n<strong>測試:</strong>要簡化API請求的測試過程,請見[[Special:ApiSandbox]]。",
        "apihelp-protect-param-protections": "保護層級清單,格式為 <kbd>action=level</kbd> (例如 <kbd>edit=sysop</kbd>)。<kbd>all</kbd> 層級代表所有人都可以進行行動,亦即無限制。\n\n<strong>注意:</strong>未列入清單項目的限制皆會移除。",
        "apihelp-protect-param-expiry": "期限時間戳記,若只設定一個時間戳記,該時間戳記將會套用至所有的保護層級。 使用 <kbd>infinite</kbd>、<kbd>indefinite</kbd>、<kbd>infinity</kbd> 或 <kbd>never</kbd> 來設定保護層級期限為永遠。",
        "apihelp-protect-param-reason": "(解除)保護的原因。",
+       "apihelp-protect-param-tags": "修改標籤以套用於保護日誌裡的項目。",
+       "apihelp-protect-param-cascade": "啟用連鎖保護(也就是保護包含於此頁面的頁面)。如果所有提供的保護等級不支援連鎖,就將其忽略。",
+       "apihelp-protect-param-watch": "如果被設定,就將被(解除)保護的頁面加至目前使用者的監視列表。",
+       "apihelp-protect-param-watchlist": "無條件地將該頁面加入至或移除自目前使用者的監視列表、使用偏好設定或不更改監視。",
+       "apihelp-protect-example-protect": "保護一個頁面。",
+       "apihelp-purge-summary": "為指定標題清除快取。",
+       "apihelp-purge-example-generator": "重新整理主要命名空間的前10個頁面。",
        "apihelp-query-summary": "擷取來自及有關MediaWiki的數據。",
        "apihelp-query+allcategories-param-limit": "要回傳的分類數量。",
        "apihelp-query+allfileusages-param-limit": "要回傳的項目總數。",
index 899054d..ef67477 100644 (file)
@@ -605,14 +605,15 @@ class DifferenceEngine extends ContextSource {
                $out->addHTML( "<hr class='diff-hr' id='mw-oldid' />
                <h2 class='diff-currentversion-title'>{$revHeader}</h2>\n" );
                # Page content may be handled by a hooked call instead...
-               # @codingStandardsIgnoreStart Ignoring long lines.
                if ( Hooks::run( 'ArticleContentOnDiff', [ $this, $out ] ) ) {
                        $this->loadNewText();
                        $out->setRevisionId( $this->mNewid );
                        $out->setRevisionTimestamp( $this->mNewRev->getTimestamp() );
                        $out->setArticleFlag( true );
 
-                       if ( !Hooks::run( 'ArticleContentViewCustom', [ $this->mNewContent, $this->mNewPage, $out ] ) ) {
+                       if ( !Hooks::run( 'ArticleContentViewCustom',
+                               [ $this->mNewContent, $this->mNewPage, $out ] )
+                       ) {
                                // Handled by extension
                        } else {
                                // Normal page
@@ -631,13 +632,14 @@ class DifferenceEngine extends ContextSource {
                                # WikiPage::getParserOutput() should not return false, but just in case
                                if ( $parserOutput ) {
                                        // Allow extensions to change parser output here
-                                       if ( Hooks::run( 'DifferenceEngineRenderRevisionAddParserOutput', [ $this, $out, $parserOutput, $wikiPage ] ) ) {
+                                       if ( Hooks::run( 'DifferenceEngineRenderRevisionAddParserOutput',
+                                               [ $this, $out, $parserOutput, $wikiPage ] )
+                                       ) {
                                                $out->addParserOutput( $parserOutput );
                                        }
                                }
                        }
                }
-               # @codingStandardsIgnoreEnd
 
                // Allow extensions to optionally not show the final patrolled link
                if ( Hooks::run( 'DifferenceEngineRenderRevisionShowFinalPatrolLink' ) ) {
index 410a794..a36bec3 100644 (file)
@@ -2463,7 +2463,7 @@ class LocalFileDeleteBatch {
        }
 
        function doDBDeletes() {
-               global $wgUpdateCompatibleMetadata;
+               global $wgCommentTableSchemaMigrationStage;
 
                $dbw = $this->file->repo->getMasterDB();
                list( $oldRels, $deleteCurrent ) = $this->getOldRels();
@@ -2478,7 +2478,7 @@ class LocalFileDeleteBatch {
 
                if ( $deleteCurrent ) {
                        $dbw->delete( 'image', [ 'img_name' => $this->file->getName() ], __METHOD__ );
-                       if ( $wgUpdateCompatibleMetadata > MIGRATION_OLD ) {
+                       if ( $wgCommentTableSchemaMigrationStage > MIGRATION_OLD ) {
                                $dbw->delete(
                                        'image_comment_temp', [ 'imgcomment_name' => $this->file->getName() ], __METHOD__
                                );
index 0c5d162..0636314 100644 (file)
@@ -47,13 +47,11 @@ class PhpHttpRequest extends MWHttpRequest {
                if ( $this->caInfo ) {
                        $certLocations = [ 'manual' => $this->caInfo ];
                } elseif ( version_compare( PHP_VERSION, '5.6.0', '<' ) ) {
-                       // @codingStandardsIgnoreStart Generic.Files.LineLength
                        // Default locations, based on
                        // https://www.happyassassin.net/2015/01/12/a-note-about-ssltls-trusted-certificate-stores-and-platforms/
                        // PHP 5.5 and older doesn't have any defaults, so we try to guess ourselves.
                        // PHP 5.6+ gets the CA location from OpenSSL as long as it is not set manually,
                        // so we should leave capath/cafile empty there.
-                       // @codingStandardsIgnoreEnd
                        $certLocations = array_filter( [
                                getenv( 'SSL_CERT_DIR' ),
                                getenv( 'SSL_CERT_PATH' ),
index 492da03..4d6095c 100644 (file)
@@ -17,7 +17,7 @@
        "config-localsettings-badkey": "Sartu duzun eguneratze-gakoa ez da zuzena.",
        "config-upgrade-key-missing": "Detektatu egin da dagoeneko MediaWiki instalatu dagoela.\n\nInstalazio hau gaurkotzeko, jarri hurrengo lerroa behekoaldean <code> LocalSettings.php </code>\n\n$1",
        "config-localsettings-incomplete": "Existitzen den <code>LocalSettings.php</code> bukatu gabe dagoela ematen du.\n$1 aldagaia ez dago finkatuta.\nMesedez, aldatu <code>LocalSettings.php</code>, aldagaia aldatzeko eta gero klikatu {{int:Config-continue}}\".",
-       "config-localsettings-connection-error": "Arazo bat sortu da datu-basearekin konektatzen <code>LocalSettings.php</code>-ean zehaztutako ezarpenak erabilita. Mesedez konpondu ezarpen hauek eta berriro saiatu.",
+       "config-localsettings-connection-error": "Arazo bat sortu da datu-basearekin konektatzen <code>LocalSettings.php</code>-ean zehaztutako ezarpenak erabilita. Mesedez konpondu ezarpen hauek eta berriro saiatu.\n\n$1",
        "config-session-error": "Saio hasierako errorea: $1",
        "config-session-expired": "Saioren informazio galdu egin dela ematen du.\nSaioak konfiguratutak daude $1 -eko iraupenerako.\nHau handitu ahal duzu <code>code>session.gc_maxlifetime</code> jartzen  php.ini -n.\n\nBerrabiatu instalazio prozesua.",
        "config-no-session": "Saioren informazio galdu egin da!\nEgiaztatu zure php.ini eta ziurtatu <code>session.save_path</code> egoki zaion direktorioan kokatu dagoela.",
@@ -70,6 +70,9 @@
        "config-diff3-bad": "GNU diff3 ez da aurkitu.",
        "config-git": "Git bertsio-kontrol software aurkitu da: <code>$1</code>",
        "config-git-bad": "Git bertsio-kontrol software ez da aurkitu.",
+       "config-imagemagick": "ImageMagick aurkitu da: <code>$1</code>.\nIrudi koadro txikiak gaitu egingo dira igoerak gaitzen badituzu.",
+       "config-gd": "Liburutegiko GD grafiko integratua aurkitu da.\nIrudi koadro txikiak gaitu egingo dira igoerak gaitzen badituzu.",
+       "config-no-scaling": "Ezin izan da GD liburutegia edo ImageMagick aurkitu.\nIrudiaren miniatura desgaitu egingo da.",
        "config-no-uri": "<strong>Errore:</strong> Ezin izan da zehaztu URI. Instalazio geldiarazi egin da.",
        "config-no-cli-uri": "<strong>Oharra</strong>. Ez da zehaztu <code>--scriptpath</code>, erabiltzen estandar <code>$1</code> .",
        "config-using-server": "\"<nowiki>$1</nowiki>\" zerbitzari-izena erabiltzen.",
        "config-brokenlibxml": "Zure sistemak dauka PHP-ko eta libxml2-ko konbinazio akastun bat eta eragin ahal du korrupzioa datarekin MediaWikin eta beste web aplikazioetan.\nAktualizatu libxml2 2.7.3-era edo berrietara ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nInstalazioa geldiarazi egin da.",
        "config-db-type": "Datu-base mota:",
        "config-db-host": "Datu-basearen zerbitzaria:",
+       "config-db-host-help": "Zure datu-basearen zerbitzaria beste zerbitzari batean badago, sartu ostalariaren izena edo IP helbidea hemen.\n\nPartekatutako web-ostatua erabiltzen ari bazara, zure ostalaritza-hornitzaileak dokumentazio-ostalariaren izen egokia eman beharko lizuke.\n\nWindows zerbitzari batean instalatzen bazara eta MySQL erabiliz, \"localhost\" agian ez du zerbitzariaren izenerako funtzionatuko. Ez badago, saiatu \"127.0.0.1\" tokiko IP helbideetarako.\n\nPostgreSQL erabiltzen ari bazara, utzi eremu hau hutsik Unix socket bidez konektatzeko.",
        "config-db-host-oracle": "Datu-baseko TNS:",
        "config-db-wiki-settings": "Wiki hau identifikatu",
        "config-db-name": "Datu-base izena:",
        "config-db-name-help": "Aukeratu zure Wikia identifikatzen duen izena.\nEzin dira espazioak eabili.\n\nErabiltzen ari bazara web hosting partekatua, hostin-eko hornitzaileak emango dizu datu-basearen izen espezifikoa edo kontrol panel baten bitzrtez zure datu-basea sortzea utziko dizu.",
        "config-db-name-oracle": "Datu-baseko eskema:",
+       "config-db-account-oracle-warn": "Hiru euskarri onartzen dira Oracle datu-basearen euskarri gisa instalatzeko:\n\nInstalazio-prozesuaren zati gisa datu-basearen kontua sortu nahi baduzu, hornitu kontu bat SYSDBA rol datu-baseko kontu gisa instalatzeko eta webgunerako sarbide konturako nahi dituzun kredentzialak zehazteko; bestela, web-sarbideen kontua eskuz sortu eta hornitu kontu hori bakarrik (eskemaren objektuak sortzeko baimenak behar baditu) edo bi kontu ezberdin, bi pribilegio sortu eta sarbide mugatua eskaintzen dutenak.\n\nBeharrezko baimenak dituen kontu bat sortzeko gidoia instalazio honen \"mantentze/orakulu/\" direktorioan aurki daiteke. Kontuan izan kontu mugatu bat erabiliz kontu lehenetsiarekin mantentze-gaitasun guztiak desgaituko dituela.",
        "config-db-install-account": "Instalazio prozesuan erabili erabiltzaile kontua.",
        "config-db-username": "Datu-base lankide izena:",
        "config-db-password": "Datu-base pasahitza:",
        "config-db-schema-help": "Patroi hau normalean egokia da. Bakarrik aldatu beharrezkoa bada.",
        "config-pg-test-error": "Ezin da datu-basearekin konektatu <strong>$1</strong>: $2",
        "config-sqlite-dir": "SQLite -eko informazioaren direktorioa:",
+       "config-oracle-def-ts": "Taula-toki lehenetsia:",
        "config-oracle-temp-ts": "Aldi baterako taula:",
        "config-type-mysql": "MySQL (edo bateragarria)",
        "config-type-postgres": "PostgreSQL",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki-k onartzen du hurrengo datu-base sistemak:\n\n$1\n\nListan ez baduzu ikusten erabili nahi duzun sistema, jarraitu goiko argibideak aktibatzeko.",
+       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] MediaWikiren lehenengoko helburua da eta primeran babesturik dago. MediaWikik ere [{{int:version-db-mariadb-url}} MariaDB]-rekin egiten du lan baita [{{int:version-db-percona-url}} Percona Server]-kin, MySQL-rekin balio dutenak. ([http://www.php.net/manual/en/mysqli.installation.php How to compile PHP with MySQL support])",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] iturburu irekiko datu basea sistema famatua da MySQL-rako alternatiba bezala. ([http://www.php.net/manual/en/pgsql.installation.php How to compile PHP with PostgreSQL support])",
+       "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] oso ondo onartzen duen datu-basearen sistema arina da.\n ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], uses PDO)",
+       "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] enpresa komertzial baten datu-basea da. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])",
+       "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] Windows-entzako enpresa komertzial baten datu-basea da.  ([http://www.php.net/manual/en/sqlsrv.installation.php How to compile PHP with SQLSRV support])",
        "config-header-mysql": "MySQL hobespenak",
        "config-header-postgres": "PostgreSQL hobespenak",
        "config-header-sqlite": "SQLite hobespenak",
        "config-missing-db-name": "\"{{int:config-db-name}}\"-rentzako balioa sartu behar duzu.",
        "config-missing-db-host": "\"{{int:config-db-host}}\"-rentzako balioa sartu behar duzu.",
        "config-missing-db-server-oracle": "\"{{int:config-db-host-oracle}}\"-rentzako balioa sartu behar duzu.",
+       "config-invalid-db-server-oracle": "\"$1\" TNS datu basea baliogabea.\nErabili \"TNS izena\" edo \"Konektagarritasun erraza\" katea ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).",
        "config-connection-error": "$1\n\nHost-a, erabiltzaile izena eta pasahitza egiaztatu eta saiatu berriro.",
        "config-db-sys-create-oracle": "Instalatzaileak bakarrik jasaten du SYSBDA kontu bat erabiltzaile kontu berri bat sortzeko.",
        "config-db-sys-user-exists-oracle": "$1 erabiltzaile kontua dagoeneko existitzen da. SYSDBA kontu berri bat sortzeko erabili daiteke soilik!",
        "config-sqlite-connection-error": "$1.\n\nDatu direktorioa eta datu-basea egiaztatu eta berriro saiatu.",
        "config-sqlite-readonly": "Ezin da idatzi <code>$1</code> fitxategian.",
        "config-sqlite-cant-create-db": "Ezin izan da <code>$1</code> datu-basearen artxiboa sortu.",
+       "config-sqlite-fts3-downgrade": "PHPn FTS3 laguntza falta da, taulen gradua jeisten.",
+       "config-can-upgrade": "Datu base honetan MediaWiki taulak daude.\nMediaWiki $1ra graduz igotzeko, <strong>Jarraitu</strong> klikatu.",
        "config-upgrade-done-no-regenerate": "Eguneratze prozesua amaitu egin da.\n\nHasi ahal zara [ $1 wikia arabiltzen]",
        "config-regenerate": "Birsortu LocalSettings.php →",
        "config-show-table-status": "<code>SHOW TABLE STATUS</code> kontsulta huts egin du!",
        "config-mysql-engine": "Biltegiratze motorea:",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
+       "config-mysql-myisam-dep": "<strong>Oharra:</strong> MyISAM MySQL biltegiratze-motor gisa aukeratu duzu, MediaWikirekin erabiltzeko gomendagarria ez dena honengatik:\n*taula blokeoak direla-eta gauza gutxi onartu ohi du\n*beste motore batzuek baino ustelkeria gehiago izateko aukerak ditu\n*MediaWiki-ren kode baseak ez du beti kudeatzen MyISAM behar bezala\n\nZure MySQL instalazioa InnoDB onartzen badu, hori aukeratzeko gomendatzen da.\nZure MySQL instalazioa InnoDB ez badu onartzen, baliteke bertsioa berritzeko ordua izatea.",
+       "config-mysql-only-myisam-dep": "<strong> Oharra: </strong> MyISAM makinaren MySQL biltegiratze motarako bakarra da, eta hau ez da MediaWiki-rekin erabiltzeko gomendatzen, honengatik:\n* maiztasunez taula blokeoek konkurrentzia ez dute onartzen \n* Beste motore batzuek baino ustelkeria gehiago izaten dute\n* MediaWiki-ren kodekak ez du beti kudeatzen MyISAM behar bezala\n\nZure MySQL instalazioak ez du InnoDB onartzen, agian bertsio berritzeko ordua da.",
        "config-mysql-binary": "Bitarra",
        "config-mysql-utf8": "UTF-8",
        "config-mssql-auth": "Autentifikazio mota:",
index 13e7a6b..e1625fb 100644 (file)
@@ -79,6 +79,7 @@
        "config-no-cli-uploads-check": "'''Attention:''' Le directorio predefinite pro files incargate (<code>$1</code>) non es verificate contra le vulnerabilitate\nal execution arbitrari de scripts durante le installation de CLI.",
        "config-brokenlibxml": "Vostre systema ha un combination de versiones de PHP e libxml2 que es defectuose e pote causar corruption celate de datos in MediaWiki e altere applicationes web.\nActualisa a libxml2 2.7.3 o plus recente ([https://bugs.php.net/bug.php?id=45996 problema reportate presso PHP]).\nInstallation abortate.",
        "config-suhosin-max-value-length": "Suhosin es installate e limita parametro <code>length</code> de GET a $1 bytes.\nLe componente ResourceLoader de MediaWiki va contornar iste limite, ma isto prejudicara le rendimento.\nSi possibile, tu deberea mitter <code>suhosin.get.max_value_length</code> a 1024 o superior in <code>php.ini</code>, e mitter <code>$wgResourceLoaderMaxQueryLength</code> al mesme valor in <code>LocalSettings.php</code>.",
+       "config-using-32bit": "<strong>Attention:</strong> tu systema pare operar con integres de 32 bits. Isto [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:32-bit non es recommendate].",
        "config-db-type": "Typo de base de datos:",
        "config-db-host": "Servitor de base de datos:",
        "config-db-host-help": "Si tu servitor de base de datos es in un altere servitor, entra hic le nomine o adresse IP del servitor.\n\nSi tu usa un servitor web usate in commun, tu providitor deberea dar te le correcte nomine de servitor in su documentation.\n\nSi tu face le installation in un servitor Windows e usa MySQL, le nomine \"localhost\" possibilemente non functiona como nomine de servitor. In tal caso, essaya \"127.0.0.1\", i.e. le adresse IP local.\n\nSi tu usa PostgreSQL, lassa iste campo vacue pro connecter via un \"socket\" de Unix.",
        "config-help-tooltip": "clicca pro displicar",
        "config-nofile": "Le file \"$1\" non poteva esser trovate. Ha illo essite delite?",
        "config-extension-link": "Sapeva tu que tu wiki supporta [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions extensiones]?\n\nTu pote explorar le [https://www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category extensiones per category] o le [https://www.mediawiki.org/wiki/Extension_Matrix matrice de extensiones] pro vider le lista complete de extensiones.",
+       "config-skins-screenshots": "$1 (capturas de schermo: $2)",
+       "config-screenshot": "captura de schermo",
        "mainpagetext": "<strong>MediaWiki ha essite installate.</strong>",
        "mainpagedocfooter": "Consulta le [https://meta.wikimedia.org/wiki/Help:Contents Guida del usator] pro information sur le uso del software wiki.\n\n== Pro initiar ==\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Lista de configurationes]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ a proposito de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducer MediaWiki in tu lingua]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Como combatter le spam in tu wiki]"
 }
index 15e5759..0531d7f 100644 (file)
@@ -686,8 +686,11 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * having to inspect a "current time left" variable (e.g. $curTTL, $curTTLs), a cache
         * regeneration will automatically be triggered using the callback.
         *
-        * The simplest way to avoid stampedes for hot keys is to use
-        * the 'lockTSE' option in $opts. If cache purges are needed, also:
+        * The $ttl argument and "hotTTR" option (in $opts) use time-dependant randomization
+        * to avoid stampedes. Keys that are slow to regenerate and either heavily used
+        * or subject to explicit (unpredictable) purges, may need additional mechanisms.
+        * The simplest way to avoid stampedes for such keys is to use 'lockTSE' (in $opts).
+        * If explicit purges are needed, also:
         *   - a) Pass $key into $checkKeys
         *   - b) Use touchCheckKey( $key ) instead of delete( $key )
         *
@@ -839,11 +842,13 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *      This is useful if the source of a key is suspected of having possibly changed
         *      recently, and the caller wants any such changes to be reflected.
         *      Default: WANObjectCache::MIN_TIMESTAMP_NONE.
-        *   - hotTTR: Expected time-till-refresh for keys that average ~1 hit/second.
-        *      This should be greater than "ageNew". Keys with higher hit rates will regenerate
-        *      more often. This is useful when a popular key is changed but the cache purge was
-        *      delayed or lost. Seldom used keys are rarely affected by this setting, unless an
-        *      extremely low "hotTTR" value is passed in.
+        *   - hotTTR: Expected time-till-refresh (TTR) for keys that average ~1 hit/second (1 Hz).
+        *      Keys with a hit rate higher than 1Hz will refresh sooner than this TTR and vise versa.
+        *      Such refreshes won't happen until keys are "ageNew" seconds old. The TTR is useful at
+        *      reducing the impact of missed cache purges, since the effect of a heavily referenced
+        *      key being stale is worse than that of a rarely referenced key. Unlike simply lowering
+        *      $ttl, seldomly used keys are largely unaffected by this option, which makes it possible
+        *      to have a high hit rate for the "long-tail" of less-used keys.
         *      Default: WANObjectCache::HOT_TTR.
         *   - lowTTL: Consider pre-emptive updates when the current TTL (seconds) of the key is less
         *      than this. It becomes more likely over time, becoming certain once the key is expired.
@@ -964,6 +969,10 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
 
                // A deleted key with a negative TTL left must be tombstoned
                $isTombstone = ( $curTTL !== null && $value === false );
+               if ( $isTombstone && $lockTSE <= 0 ) {
+                       // Use the INTERIM value for tombstoned keys to reduce regeneration load
+                       $lockTSE = 1;
+               }
                // Assume a key is hot if requested soon after invalidation
                $isHot = ( $curTTL !== null && $curTTL <= 0 && abs( $curTTL ) <= $lockTSE );
                // Use the mutex if there is no value and a busy fallback is given
@@ -1032,7 +1041,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
 
                if ( $lockAcquired ) {
                        // Avoid using delete() to avoid pointless mcrouter broadcasting
-                       $this->cache->changeTTL( self::MUTEX_KEY_PREFIX . $key, 1 );
+                       $this->cache->changeTTL( self::MUTEX_KEY_PREFIX . $key, (int)$preCallbackTime - 60 );
                }
 
                return $value;
@@ -1534,7 +1543,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        }
 
        /**
-        * Check if a key should be regenerated (using random probability)
+        * Check if a key is nearing expiration and thus due for randomized regeneration
         *
         * This returns false if $curTTL >= $lowTTL. Otherwise, the chance
         * of returning true increases steadily from 0% to 100% as the $curTTL
@@ -1751,7 +1760,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                return array_diff( $keys, $keysFound );
        }
 
-               /**
+       /**
         * @param array $keys
         * @param array $checkKeys
         * @return array Map of (cache key => mixed)
index 1ed18cd..a5af026 100644 (file)
@@ -22,8 +22,6 @@
  * @since 1.25
  */
 
-use MediaWiki\MediaWikiServices;
-
 /**
  * This class formats block log entries.
  *
@@ -99,7 +97,7 @@ class BlockLogFormatter extends LogFormatter {
 
        public function getActionLinks() {
                $subtype = $this->entry->getSubtype();
-               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+               $linkRenderer = $this->getLinkRenderer();
                if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
                        || !( $subtype === 'block' || $subtype === 'reblock' )
                        || !$this->context->getUser()->isAllowed( 'block' )
index 861ea30..e05357c 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 
-use MediaWiki\MediaWikiServices;
-
 class ContentModelLogFormatter extends LogFormatter {
        protected function getMessageParameters() {
                $lang = $this->context->getLanguage();
@@ -20,7 +18,7 @@ class ContentModelLogFormatter extends LogFormatter {
                }
 
                $params = $this->extractParameters();
-               $revert = MediaWikiServices::getInstance()->getLinkRenderer()->makeKnownLink(
+               $revert = $this->getLinkRenderer()->makeKnownLink(
                        SpecialPage::getTitleFor( 'ChangeContentModel' ),
                        $this->msg( 'logentry-contentmodel-change-revertlink' )->text(),
                        [],
index ceb0052..ef00634 100644 (file)
@@ -23,8 +23,6 @@
  * @since 1.22
  */
 
-use MediaWiki\MediaWikiServices;
-
 /**
  * This class formats delete log entries.
  *
@@ -135,7 +133,7 @@ class DeleteLogFormatter extends LogFormatter {
 
        public function getActionLinks() {
                $user = $this->context->getUser();
-               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+               $linkRenderer = $this->getLinkRenderer();
                if ( !$user->isAllowed( 'deletedhistory' )
                        || $this->entry->isDeleted( LogPage::DELETED_ACTION )
                ) {
index 0f1e1f7..b28bb7d 100644 (file)
@@ -261,19 +261,15 @@ class LogFormatter {
                                                $text = wfMessage( 'undeletedarticle' )
                                                        ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
-                                       // @codingStandardsIgnoreStart Long line
                                        //case 'revision': // Revision deletion
                                        //case 'event': // Log deletion
                                        // see https://github.com/wikimedia/mediawiki/commit/a9c243b7b5289dad204278dbe7ed571fd914e395
                                        //default:
-                                       // @codingStandardsIgnoreEnd
                                }
                                break;
 
                        case 'patrol':
-                               // @codingStandardsIgnoreStart Long line
                                // https://github.com/wikimedia/mediawiki/commit/1a05f8faf78675dc85984f27f355b8825b43efff
-                               // @codingStandardsIgnoreEnd
                                // Create a diff link to the patrolled revision
                                if ( $entry->getSubtype() === 'patrol' ) {
                                        $diffLink = htmlspecialchars(
@@ -644,12 +640,13 @@ class LogFormatter {
         * @return string
         */
        protected function makePageLink( Title $title = null, $parameters = [], $html = null ) {
+               if ( !$title instanceof Title ) {
+                       throw new MWException( 'Expected title, got null' );
+               }
                if ( !$this->plaintext ) {
-                       $link = Linker::link( $title, $html, [], $parameters );
+                       $html = $html !== null ? new HtmlArmor( $html ) : $html;
+                       $link = $this->getLinkRenderer()->makeLink( $title, $html, [], $parameters );
                } else {
-                       if ( !$title instanceof Title ) {
-                               throw new MWException( "Expected title, got null" );
-                       }
                        $link = '[[' . $title->getPrefixedText() . ']]';
                }
 
index b0edd4c..8775097 100644 (file)
@@ -54,9 +54,9 @@ class MergeLogFormatter extends LogFormatter {
 
                // Show unmerge link
                $params = $this->extractParameters();
-               $revert = Linker::linkKnown(
+               $revert = $this->getLinkRenderer()->makeKnownLink(
                        SpecialPage::getTitleFor( 'MergeHistory' ),
-                       $this->msg( 'revertmerge' )->escaped(),
+                       $this->msg( 'revertmerge' )->text(),
                        [],
                        [
                                'target' => $params[3],
index afbf8e9..43ca0ea 100644 (file)
@@ -71,9 +71,9 @@ class MoveLogFormatter extends LogFormatter {
                        return '';
                }
 
-               $revert = Linker::linkKnown(
+               $revert = $this->getLinkRenderer()->makeKnownLink(
                        SpecialPage::getTitleFor( 'Movepage' ),
-                       $this->msg( 'revertmove' )->escaped(),
+                       $this->msg( 'revertmove' )->text(),
                        [],
                        [
                                'wpOldTitle' => $destTitle->getPrefixedDBkey(),
index bbd8bad..894f59b 100644 (file)
@@ -22,7 +22,6 @@
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
  * @since 1.22
  */
-use MediaWiki\MediaWikiServices;
 
 /**
  * This class formats patrol log entries.
@@ -55,8 +54,7 @@ class PatrolLogFormatter extends LogFormatter {
                                'oldid' => $oldid,
                                'diff' => 'prev'
                        ];
-                       $revlink = MediaWikiServices::getInstance()->getLinkRenderer()->makeLink(
-                               $target, $revision, [], $query );
+                       $revlink = $this->getLinkRenderer()->makeLink( $target, $revision, [], $query );
                } else {
                        $revlink = htmlspecialchars( $revision );
                }
index 9e5eea5..64ec626 100644 (file)
@@ -21,7 +21,6 @@
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
  * @since 1.26
  */
-use MediaWiki\MediaWikiServices;
 
 /**
  * This class formats protect log entries.
@@ -78,7 +77,7 @@ class ProtectLogFormatter extends LogFormatter {
        }
 
        public function getActionLinks() {
-               $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
+               $linkRenderer = $this->getLinkRenderer();
                $subtype = $this->entry->getSubtype();
                if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
                        || $subtype === 'move_prot' // the move log entry has the right action link
index c7146a1..5e2845f 100644 (file)
@@ -1062,13 +1062,11 @@ class ParserOptions {
                                'speculativeRevIdCallback' => null,
                        ];
 
-                       // @codingStandardsIgnoreStart Squiz.WhiteSpace.OperatorSpacing.NoSpaceAfterAmp
                        Hooks::run( 'ParserOptionsRegister', [
                                &self::$defaults,
                                &self::$inCacheKey,
                                &self::$lazyOptions,
                        ] );
-                       // @codingStandardsIgnoreEnd
 
                        ksort( self::$inCacheKey );
                }
index ffc7a7e..5dc0b40 100644 (file)
@@ -450,7 +450,7 @@ class ExtensionProcessor implements Processor {
                        }
                        foreach ( $info['config'] as $key => $val ) {
                                if ( $key[0] !== '@' ) {
-                                       $this->globals["$prefix$key"] = $val;
+                                       $this->addConfigGlobal( "$prefix$key", $val );
                                }
                        }
                }
@@ -478,11 +478,26 @@ class ExtensionProcessor implements Processor {
                                if ( isset( $data['path'] ) && $data['path'] ) {
                                        $value = "$dir/$value";
                                }
-                               $this->globals["$prefix$key"] = $value;
+                               $this->addConfigGlobal( "$prefix$key", $value );
                        }
                }
        }
 
+       /**
+        * Helper function to set a value to a specific global, if it isn't set already.
+        *
+        * @param string $key The config key with the prefix and anything
+        * @param mixed $value The value of the config
+        */
+       private function addConfigGlobal( $key, $value ) {
+               if ( array_key_exists( $key, $this->globals ) ) {
+                       throw new RuntimeException(
+                               "The configuration setting '$key' was already set by another extension,"
+                               . " and cannot be set again." );
+               }
+               $this->globals[$key] = $value;
+       }
+
        protected function extractServiceWiringFiles( $dir, array $info ) {
                if ( isset( $info['ServiceWiringFiles'] ) ) {
                        foreach ( $info['ServiceWiringFiles'] as $path ) {
index ca6e59f..fbd0a24 100644 (file)
@@ -32,7 +32,7 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
         * @return array
         */
        public function getStyles( ResourceLoaderContext $context ) {
-               $logo = $this->getLogo( $this->getConfig() );
+               $logo = $this->getLogoData( $this->getConfig() );
                $styles = parent::getStyles( $context );
                $this->normalizeStyles( $styles );
 
@@ -42,25 +42,34 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
                                '; }';
 
                if ( is_array( $logo ) ) {
-                       if ( isset( $logo['1.5x'] ) ) {
-                               $styles[
-                                       '(-webkit-min-device-pixel-ratio: 1.5), ' .
-                                       '(min--moz-device-pixel-ratio: 1.5), ' .
+                       if ( isset( $logo['svg'] ) ) {
+                               $styles['all'][] = '.mw-wiki-logo { ' .
+                                       'background-image: -webkit-linear-gradient(transparent, transparent), ' .
+                                               CSSMin::buildUrlValue( $logo['svg'] ) . '; ' .
+                                       'background-image: linear-gradient(transparent, transparent), ' .
+                                               CSSMin::buildUrlValue( $logo['svg'] ) . ';' .
+                                       'background-size: 135px auto; }';
+                       } else {
+                               if ( isset( $logo['1.5x'] ) ) {
+                                       $styles[
+                                               '(-webkit-min-device-pixel-ratio: 1.5), ' .
+                                               '(min--moz-device-pixel-ratio: 1.5), ' .
                                        '(min-resolution: 1.5dppx), ' .
-                                       '(min-resolution: 144dpi)'
-                               ][] = '.mw-wiki-logo { background-image: ' .
-                               CSSMin::buildUrlValue( $logo['1.5x'] ) . ';' .
-                               'background-size: 135px auto; }';
-                       }
-                       if ( isset( $logo['2x'] ) ) {
-                               $styles[
-                                       '(-webkit-min-device-pixel-ratio: 2), ' .
-                                       '(min--moz-device-pixel-ratio: 2),' .
-                                       '(min-resolution: 2dppx), ' .
-                                       '(min-resolution: 192dpi)'
-                               ][] = '.mw-wiki-logo { background-image: ' .
-                               CSSMin::buildUrlValue( $logo['2x'] ) . ';' .
-                               'background-size: 135px auto; }';
+                                               '(min-resolution: 144dpi)'
+                                       ][] = '.mw-wiki-logo { background-image: ' .
+                                       CSSMin::buildUrlValue( $logo['1.5x'] ) . ';' .
+                                       'background-size: 135px auto; }';
+                               }
+                               if ( isset( $logo['2x'] ) ) {
+                                       $styles[
+                                               '(-webkit-min-device-pixel-ratio: 2), ' .
+                                               '(min--moz-device-pixel-ratio: 2), ' .
+                                               '(min-resolution: 2dppx), ' .
+                                               '(min-resolution: 192dpi)'
+                                       ][] = '.mw-wiki-logo { background-image: ' .
+                                       CSSMin::buildUrlValue( $logo['2x'] ) . ';' .
+                                       'background-size: 135px auto; }';
+                               }
                        }
                }
 
@@ -83,11 +92,21 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
                }
        }
 
+       /**
+        * @since 1.31
+        * @param Config $conf
+        * @return string|array
+        */
+       protected function getLogoData( Config $conf ) {
+               return static::getLogo( $conf );
+       }
+
        /**
         * @param Config $conf
-        * @return string|array Single url if no variants are defined
-        *  or array of logo urls keyed by dppx in form "<float>x".
-        *  Key "1x" is always defined.
+        * @return string|array Single url if no variants are defined,
+        *  or an array of logo urls keyed by dppx in form "<float>x".
+        *  Key "1x" is always defined. Key "svg" may also be defined,
+        *  in which case variants other than "1x" are omitted.
         */
        public static function getLogo( Config $conf ) {
                $logo = $conf->get( 'Logo' );
@@ -103,18 +122,25 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
                        '1x' => $logo1Url,
                ];
 
-               // Only 1.5x and 2x are supported
-               if ( isset( $logoHD['1.5x'] ) ) {
-                       $logoUrls['1.5x'] = OutputPage::transformResourcePath(
+               if ( isset( $logoHD['svg'] ) ) {
+                       $logoUrls['svg'] = OutputPage::transformResourcePath(
                                $conf,
-                               $logoHD['1.5x']
-                       );
-               }
-               if ( isset( $logoHD['2x'] ) ) {
-                       $logoUrls['2x'] = OutputPage::transformResourcePath(
-                               $conf,
-                               $logoHD['2x']
+                               $logoHD['svg']
                        );
+               } else {
+                       // Only 1.5x and 2x are supported
+                       if ( isset( $logoHD['1.5x'] ) ) {
+                               $logoUrls['1.5x'] = OutputPage::transformResourcePath(
+                                       $conf,
+                                       $logoHD['1.5x']
+                               );
+                       }
+                       if ( isset( $logoHD['2x'] ) ) {
+                               $logoUrls['2x'] = OutputPage::transformResourcePath(
+                                       $conf,
+                                       $logoHD['2x']
+                               );
+                       }
                }
 
                return $logoUrls;
index a660a22..604c96a 100644 (file)
@@ -113,14 +113,12 @@ class Shell {
 
                        if ( wfIsWindows() ) {
                                // Escaping for an MSVC-style command line parser and CMD.EXE
-                               // @codingStandardsIgnoreStart For long URLs
                                // Refs:
                                //  * https://web.archive.org/web/20020708081031/http://mailman.lyra.org/pipermail/scite-interest/2002-March/000436.html
                                //  * https://technet.microsoft.com/en-us/library/cc723564.aspx
                                //  * T15518
                                //  * CR r63214
                                // Double the backslashes before any double quotes. Escape the double quotes.
-                               // @codingStandardsIgnoreEnd
                                $tokens = preg_split( '/(\\\\*")/', $arg, -1, PREG_SPLIT_DELIM_CAPTURE );
                                $arg = '';
                                $iteration = 0;
index 67f68ea..eab31bc 100644 (file)
@@ -21,6 +21,7 @@
  * @ingroup SpecialPage
  */
 use MediaWiki\Logger\LoggerFactory;
+use Wikimedia\Rdbms\DBQueryTimeoutError;
 use Wikimedia\Rdbms\ResultWrapper;
 use Wikimedia\Rdbms\FakeResultWrapper;
 use Wikimedia\Rdbms\IDatabase;
@@ -542,45 +543,57 @@ abstract class ChangesListSpecialPage extends SpecialPage {
 
                $this->considerActionsForDefaultSavedQuery();
 
-               $rows = $this->getRows();
                $opts = $this->getOptions();
-               if ( $rows === false ) {
-                       $rows = new FakeResultWrapper( [] );
-               }
+               try {
+                       $rows = $this->getRows();
+                       if ( $rows === false ) {
+                               $rows = new FakeResultWrapper( [] );
+                       }
 
-               // Used by Structured UI app to get results without MW chrome
-               if ( $this->getRequest()->getVal( 'action' ) === 'render' ) {
-                       $this->getOutput()->setArticleBodyOnly( true );
-               }
+                       // Used by Structured UI app to get results without MW chrome
+                       if ( $this->getRequest()->getVal( 'action' ) === 'render' ) {
+                               $this->getOutput()->setArticleBodyOnly( true );
+                       }
 
-               // Used by "live update" and "view newest" to check
-               // if there's new changes with minimal data transfer
-               if ( $this->getRequest()->getBool( 'peek' ) ) {
+                       // Used by "live update" and "view newest" to check
+                       // if there's new changes with minimal data transfer
+                       if ( $this->getRequest()->getBool( 'peek' ) ) {
                        $code = $rows->numRows() > 0 ? 200 : 204;
-                       $this->getOutput()->setStatusCode( $code );
-                       return;
-               }
+                               $this->getOutput()->setStatusCode( $code );
+                               return;
+                       }
 
-               $batch = new LinkBatch;
-               foreach ( $rows as $row ) {
-                       $batch->add( NS_USER, $row->rc_user_text );
-                       $batch->add( NS_USER_TALK, $row->rc_user_text );
-                       $batch->add( $row->rc_namespace, $row->rc_title );
-                       if ( $row->rc_source === RecentChange::SRC_LOG ) {
-                               $formatter = LogFormatter::newFromRow( $row );
-                               foreach ( $formatter->getPreloadTitles() as $title ) {
-                                       $batch->addObj( $title );
+                       $batch = new LinkBatch;
+                       foreach ( $rows as $row ) {
+                               $batch->add( NS_USER, $row->rc_user_text );
+                               $batch->add( NS_USER_TALK, $row->rc_user_text );
+                               $batch->add( $row->rc_namespace, $row->rc_title );
+                               if ( $row->rc_source === RecentChange::SRC_LOG ) {
+                                       $formatter = LogFormatter::newFromRow( $row );
+                                       foreach ( $formatter->getPreloadTitles() as $title ) {
+                                               $batch->addObj( $title );
+                                       }
                                }
                        }
-               }
-               $batch->execute();
+                       $batch->execute();
+
+                       $this->setHeaders();
+                       $this->outputHeader();
+                       $this->addModules();
+                       $this->webOutput( $rows, $opts );
 
-               $this->setHeaders();
-               $this->outputHeader();
-               $this->addModules();
-               $this->webOutput( $rows, $opts );
+                       $rows->free();
+               } catch ( DBQueryTimeoutError $timeoutException ) {
+                       MWExceptionHandler::logException( $timeoutException );
 
-               $rows->free();
+                       $this->setHeaders();
+                       $this->outputHeader();
+                       $this->addModules();
+
+                       $this->getOutput()->setStatusCode( 500 );
+                       $this->webOutputHeader( 0, $opts );
+                       $this->outputTimeout();
+               }
 
                if ( $this->getConfig()->get( 'EnableWANCacheReaper' ) ) {
                        // Clean up any bad page entries for titles showing up in RC
@@ -791,6 +804,17 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                );
        }
 
+       /**
+        * Add the "timeout" message to the output
+        */
+       protected function outputTimeout() {
+               $this->getOutput()->addHTML(
+                       '<div class="mw-changeslist-timeout">' .
+                       $this->msg( 'recentchanges-timeout' )->parse() .
+                       '</div>'
+               );
+       }
+
        /**
         * Get the database result for this special page instance. Used by ApiFeedRecentChanges.
         *
@@ -1437,16 +1461,26 @@ abstract class ChangesListSpecialPage extends SpecialPage {
        }
 
        /**
-        * Send output to the OutputPage object, only called if not used feeds
+        * Send header output to the OutputPage object, only called if not using feeds
         *
-        * @param ResultWrapper $rows Database rows
+        * @param int $rowCount Number of database rows
         * @param FormOptions $opts
         */
-       public function webOutput( $rows, $opts ) {
+       private function webOutputHeader( $rowCount, $opts ) {
                if ( !$this->including() ) {
                        $this->outputFeedLinks();
-                       $this->doHeader( $opts, $rows->numRows() );
+                       $this->doHeader( $opts, $rowCount );
                }
+       }
+
+       /**
+        * Send output to the OutputPage object, only called if not used feeds
+        *
+        * @param ResultWrapper $rows Database rows
+        * @param FormOptions $opts
+        */
+       public function webOutput( $rows, $opts ) {
+               $this->webOutputHeader( $rows->numRows(), $opts );
 
                $this->outputChangesList( $rows, $opts );
        }
index 249be7f..30eb38d 100644 (file)
@@ -280,7 +280,9 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                        return "blockedemailuser";
                }
 
-               if ( $user->pingLimiter( 'emailuser' ) ) {
+               // Check the ping limiter without incrementing it - we'll check it
+               // again later and increment it on a successful send
+               if ( $user->pingLimiter( 'emailuser', 0 ) ) {
                        wfDebug( "Ping limiter triggered.\n" );
 
                        return 'actionthrottledtext';
@@ -376,6 +378,11 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                $text .= $context->msg( 'emailuserfooter',
                        $from->name, $to->name )->inContentLanguage()->text();
 
+               // Check and increment the rate limits
+               if ( $context->getUser()->pingLimiter( 'emailuser' ) ) {
+                       throw new ThrottledError();
+               }
+
                $error = false;
                if ( !Hooks::run( 'EmailUser', [ &$to, &$from, &$subject, &$text, &$error ] ) ) {
                        if ( $error instanceof Status ) {
index fbe9270..82c35bb 100644 (file)
@@ -1669,13 +1669,11 @@ class BalanceActiveFormattingElements {
                $this->addToNoahList( $b );
        }
 
-       // @codingStandardsIgnoreStart Generic.Files.LineLength.TooLong
        /**
         * Reconstruct the active formatting elements.
         * @param BalanceStack $stack The open elements stack
         * @see https://html.spec.whatwg.org/multipage/syntax.html#reconstruct-the-active-formatting-elements
         */
-       // @codingStandardsIgnoreEnd
        public function reconstruct( $stack ) {
                $entry = $this->tail;
                // If there are no entries in the list of active formatting elements,
index 81a1a43..b4e3414 100644 (file)
@@ -168,7 +168,7 @@ class InterwikiSearchResultSetWidget implements SearchResultSetWidget {
         *
         * @param string $iwPrefix Interwiki prefix
         * @return OOUI\IconWidget
-        **/
+        */
        protected function iwIcon( $iwPrefix ) {
                $interwiki = $this->iwLookup->fetch( $iwPrefix );
                $parsed = wfParseUrl( wfExpandUrl( $interwiki ? $interwiki->getURL() : '/' ) );
index 435f058..8517f26 100644 (file)
@@ -178,6 +178,7 @@ class Language {
        /**
         * Get a cached or new language object for a given language code
         * @param string $code
+        * @throws MWException
         * @return Language
         */
        static function factory( $code ) {
index b5fb3d4..0f9548b 100644 (file)
        "october-date": "$1 Oktober",
        "november-date": "$1 November",
        "december-date": "$1 Desember",
-       "period-am": "AM",
-       "period-pm": "PM",
+       "period-am": "vm.",
+       "period-pm": "nm.",
        "pagecategories": "{{PLURAL:$1|Kategorie|Kategorieë}}",
        "category_header": "Bladsye in kategorie \"$1\"",
        "subcategories": "Subkategorieë",
index 5273aaa..5359320 100644 (file)
        "hidden-categories": "{{PLURAL:$1|midimut kakuniza}}",
        "hidden-category-category": "midimut kakuniza",
        "category-subcat-count": "{{PLURAL:$2|uyni kakuniza hatiza ku cacay yamalyilu sailuc-kakuniza. kina kakuniza yamalyilu isasa $2 a sailuc-kasasizuma, ilabu {{PLURAL:$1}}mahiza ku isasaay}}",
+       "category-subcat-count-limited": "uyni kakuniza yamalyilu isasa’ay {{PLURAL:$1|sailuc-kakuniza}}.",
        "category-article-count": "{{PLURAL:$2|uyni kakuniza hatiza ku cacay yamalyilu sailuc-kakuniza. kina kakuniza yamalyilu isasa $2 a sailuc-kasasizuma, ilabu {{PLURAL:$1}}mahiza ku isasaay}}",
+       "category-article-count-limited": "isasa’ay a {{PLURAL:$1|kasabelih ku}} i masitudungay a kakuniza.",
        "category-file-count": "{{PLURAL:$2|kakuniza yamalyilu isasaay a cacay ku tangan. kakuniza yamalyilu isasaay izaway $1 ku tangan, pulung $2 makalaan.}}",
        "listingcontinuesabbrev": "palalid",
        "index-category": "mapatayza kapah pikiliman tu nisulitan miasipay kasabelih",
        "versionrequired": "maydih $1 baziyong a MediaWiki",
        "ok": "malucekay",
        "retrievedfrom": "miala i \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|izaw kisu}} $1 ($2).",
        "youhavenewmessagesmanyusers": "izaw kisu namakay katuud misaungayay a $1 ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|cacay baluhay palatuh|999=baluhay palatuh}}",
        "youhavenewmessagesmulti": "izaw $1 baluhay palatuh kisu",
        "editsection": "mikawaway-kalumyiti",
        "editold": "mikawaway tu kalumyiti",
-       "viewsourceold": "ciwsace sakatizeng bangu",
+       "viewsourceold": "ciwsace yuensma-kodo",
        "editlink": "mikawaway-kalumyiti",
-       "viewsourcelink": "ciwsace sakatizeng bangu",
+       "viewsourcelink": "ciwsace yuensma-kodo",
        "editsectionhint": "mikawaway-kalumyiti tusil: $1",
        "toc": "dilyikotoling",
        "showtoc": "paazih",
        "internalerror-fatal-exception": "pihaceng a bahal nikalahizaan \"$1\"",
        "filecopyerror": "la’cus mikopi tangan \"$1\" tayza \"$2\".",
        "filerenameerror": "la’cus miliyaw pangangan tu tangan \"$1\" ku \"$2\".",
+       "filedeleteerror": "la’cus misipu ku tangan \"$1\".",
        "directorycreateerror": "la’cus patizeng dilyikotoling \"$1\"",
        "directoryreadonlyerror": "dilyikotoling \"$1\" ku asip dada’.",
        "directorynotreadableerror": "dilyikotoling \"$1\" la’cu miasip.",
        "title-invalid-talk-namespace": "milungucay a kasabelih satangahan nimicaliw hakay inayi’ay a sasukamu belih",
        "title-invalid-characters": "milungucay a kasabelih satangahan yamalyilu la’cusay a tatebanan-nisulitan: \"$1\".",
        "title-invalid-leading-colon": "milungucay a kasabelih  satangahan yamalyilu la’cusay a mahaw-bacu i lalingatuan.",
-       "viewsource": "ciwsace sakatizeng bangu",
+       "viewsource": "ciwsace yuensma-kodo",
        "viewsource-title": "ciwsace $1 a sakatizeng banggu",
        "actionthrottled": "makelec saungay tuway",
        "protectedpagetext": "tina kasabelih masetin midiput  mitena’ mikawaway-kalumyiti saca zuma saungay tuway.",
        "yourpasswordagain": "pisuliten tu mima cacay aca:",
        "createacct-yourpasswordagain": "malucekay tu mima",
        "createacct-yourpasswordagain-ph": "pisulitan ku mima kinacacay aca",
-       "userlogin-remembermypassword": "pabalucu'en patalabu setyitase nu maku",
+       "userlogin-remembermypassword": "pabalucuen patalabu setyitase nu maku",
        "userlogin-signwithsecure": "pisaungay zahkez misiket tu calay-zazan(wanglu)",
        "cannotlogin-title": "la’cus patalabu",
        "cannotlogin-text": "la’cus patalabu.",
        "nouserspecified": "kanca matuzu’ay cacay misaungayay a kalungangan kisu.",
        "login-userblocked": "tina misaungayay mapalangat tuway, caay mahasa patalabu tuway.",
        "wrongpassword": "nasulitan nu misu a mima mungangaw, pitaneng aca.",
+       "wrongpasswordempty": "nasuliten a mima inayi’.\npitaneng aca.",
        "passwordtoopopular": "amana pisaungay sawsawni maazihay a mima,pipili’en pisaungay uzumaay a mima.",
        "password-name-match": "mima nu misu la’cus kalecad tu misaungayay a kalungangan",
        "password-login-forbidden": "tina misaungayay a kalungangan  atu mima masatezep pisaungay tuway.",
        "passwordreset-domain": "calay-subal(wangyi) kalungangan:",
        "passwordreset-email": "imyiyo(email) puenengan:",
        "passwordreset-emailtitle": "i {{SITENAME}} a canghaw pulita kalunasulitan",
+       "passwordreset-emailelement": "misaungayay a kalungangan:\n$1\n\nnanunuzay a mima:\n$2",
        "passwordreset-nocaller": "manakanca nipabeli caller",
        "passwordreset-nosuchcaller": "Caller inayi’: $1",
        "passwordreset-ignored": "caay pilisimet miliyaw patizeng mima. hakay caay henay misetin nipabeliay?",
        "changeemail-submit": "misumad imyiyo(email)",
        "changeemail-nochange": "pisulitan caay kalecaday baluhay imyiyo(email) puenengan.",
        "resettokens": "miliyaw patizeng sabuhat a mima",
-       "resettokens-no-tokens": "inayi’ ku miliyaw tu setinay a mima-sacukcuk.",
+       "resettokens-no-tokens": "inayi’ ku miliyaw tu setinay a mima-sabuhat.",
        "resettokens-tokens": "sabuhat:",
        "resettokens-token-label": "$1 (ayza sa ku $2)",
-       "resettokens-resetbutton": "miliyaw patizeng mapili’ay a sabuhat-sacukcuk",
+       "resettokens-done": "maliyaw tu patizeng mima-sabuhat",
+       "resettokens-resetbutton": "miliyaw patizeng mapili’ay a mima-sabuhat",
        "bold_sample": "kibetulay a sulit",
        "bold_tip": "kibetulay a sulit",
        "italic_sample": "tukenihay nisulit",
        "nosuchsectiontitle": "caykatepa tu tusil",
        "loginreqtitle": "maydih patalabu",
        "loginreqlink": "patalabu",
+       "loginreqpagetext": "$1 iayaw kyu kapah miciwsace zuma kasabelih.",
        "accmailtitle": "mima patigamitu",
        "newarticle": "(baluhay)",
        "newarticletext": "masasiket kisu tu nayi’ay tu kasabelih.\namipatizeng tina kasabelih, kaisasa mikawaway tu kalumyiti atilad misulit ku lacul (kahica nu kawaw piazih tu tatenga’ay [$1 misaungay a buhci tu kamu  kasabelih ]).\namahica caay padeteng tayza tina kasabelih kisu haw, pihaymaw sapecec saazihay a <strong>tatiku</strong> pipenecan.",
        "noarticletext": "kina kasabelih inayi’ lacul ayza,kapah tu kisu i zumaay a kasabelih [[Special:Search/{{PAGENAME}}| mikilim kina kasabelih pyawti ]]、<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  mikilim sasuala nasulitan nakawawan ] caay sa[{{fullurl:{{FULLPAGENAME}}|action=edit}} patizeng kina kasabelih ]</span>.",
        "noarticletext-nopermission": "tina kasabelih ayza inayi’ lacul,\nkapah tu kisu i zuma kasabelih [[Special:Search/{{PAGENAME}}| kilim kina kasabelih pyawti ]],acasa <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  kilim sasuala nasulitan nakawawan ]</span>,uyzasa  inayi’  ku tungus patizeng tina kasabelih.",
-       "userpage-userdoesnotexist-view": "misaungayay canghaw \"$1\" caay henay pangangan.",
+       "userpage-userdoesnotexist-view": "misaungayay canghaw \"$1\" caay henay mapangangan.",
        "blocked-notice-logextract": "tina misaungayay malangat tu ayza.\nisasa’ay ku capi demiad malangatay a nasulitan apabeli miazih tu tatenga’ay:",
        "updated": "(misabaluh tuway)",
        "note": "<strong>azihen:</strong>",
        "creating": "patizeng ayza $1",
        "editingsection": "mikawaway tu kalumyiti ayza $1 (tusil)",
        "editingcomment": "imahini mikawaway-kalumyiti $1 (baluhay tusil)",
+       "editconflict": "mikawaway-kalumyiti sasula’cus: $1",
        "yourtext": "numisuay a sulit",
        "storedversion": "misupedtu tu sumad",
        "yourdiff": "sasizuma",
        "moveddeleted-notice": "kina kasabelih masipu tu.\nisasa nipabeli kina kasabelihay a masipu atu milimad nasulitan nakawawan, taneng miazih tu tatenga’ay.",
        "log-fulllog": "ciwsace leku nasulitan-nazipa’an",
        "edit-hook-aborted": "mikawaway-kalumyiti masatezep tuway nay Hook.\nzumasatu caay patukil inayi’ amahicahica buhci tu kamu.",
+       "edit-gone-missing": "la’cus misabaluh kasabelih.\nkya kasabelih hakay masipu tuway.",
        "edit-conflict": "mikawaway-kalumyiti sasula’cus",
        "edit-no-change": "izay kisu caay misumad amahicahica tu sulit, masekipo tina mikawaway-kalumyiti tuway.",
        "postedit-confirmation-created": "mapatizeng tu kasabelih.",
        "duplicate-args-category": "anu taazihan-mitudung muawaw haw pisaungay misaliyaway a aazihen-sulyang a kasabelih",
        "expensive-parserfunction-category": "pisaungay sayadah eluc sisetyimo katahkalan nu kalisiw a mapulita kasabelih",
        "post-expand-template-inclusion-category": "nicaliwan taazihan-mitudung mangasiw kelec nu kasabelih",
-       "post-expand-template-argument-category": "taazihan-mitudung aazihen a sulyang izaw layad masekipoay a kasabelih",
+       "post-expand-template-argument-category": "taazihan-mitudung aazihen-sulyang izaw layad masekipoay a kasabelih",
        "parser-template-loop-warning": "masedap taazihan-mitudung musaliyut: [[$1]]",
        "template-loop-category": "sitatutungay masaliyut a kasabelih",
        "template-loop-category-desc": "kasabelih yamalyilumaazihan masaliyut, mahizatuay niza miawaw nizaay a maazihan.",
        "rev-delundel": "misumad ku maazihay",
        "rev-showdeleted": "paazih",
        "revisiondelete": "masipu/palawpes misipu masumad nu ayaway",
+       "revdelete-nooldid-title": "la’cusay a pamutekan masumad nu ayaway",
        "revdelete-no-file": "matuzu’ay a tangan inayi’ tu.",
        "revdelete-show-file-submit": "hang",
        "logdelete-selected": "mapili’ {{PLURAL:$1|cacay|yadah}} nasulitan nazipa’an saungay nu binawlan.",
        "revdelete-legend": "misetin paazih a kelec",
        "revdelete-hide-text": "masumad nu ayaway a sulit",
        "revdelete-hide-image": "midimut lacul nu tangan",
+       "revdelete-hide-name": "midimut pamutekan atu aazihen-sulyang",
        "revdelete-hide-comment": "pecu’ nu lacul mikawaway-kalumyiti",
        "revdelete-hide-user": "mikawaway-kalumyitiay a misaungayay a kalungangan/IP  puenengan",
        "revdelete-hide-restricted": "la’cus paazih kalunasulitan tu mikuwanay atu zuma misaungayay",
        "mergehistory-list": "kapah mikabuay a mikawaway-kalumyiti nazipa’an",
        "mergehistory-go": "paazih kapah mikabuay a mikawaway-kalumyiti",
        "mergehistory-empty": "inayi’ amikabuay a sumad.",
+       "mergehistory-done": "$1 izaw $3 {{PLURAL:$3|baziyong}} masumad nu ayaway makabu tu i [[:$2]]",
        "mergehistory-fail": "la’cus miteka nazipa’an mikabu, piliyaw kinsa kya kasabelih atu tuki aazihen-sulyang",
        "mergehistory-fail-bad-timestamp": "tatukian a suyling la’cus.",
        "mergehistory-fail-invalid-source": "saangangan kasabelih la’cus.",
        "mergehistory-fail-permission": "mangadis tungus,la’cus mikabu nazipa’an.",
        "mergehistory-fail-self-merge": "malecad ku kalungangan nu saangangan kasabelih atu papatuzu’an kasabelih.",
        "mergehistory-fail-timestamps-overlap": "angangan masumad nu ayaway baziyong misaliyaw, saca i zikuz nu papatuzu’an masumad nu ayaway baziyong sa matahkal.",
-       "mergehistory-fail-toobig": "mangasiw $1 masumad nu ayaway milimadan pabaw-sahezek, la’cus miteka nazipa’an mikabu",
+       "mergehistory-fail-toobig": "mangasiw {{PLURAL:$1|baziyong}} masumad nu ayaway milimaday a pabaw-sahezek, la’cus mikabu nazipa’an.",
        "mergehistory-no-source": "saangangan kasabelih $1 inayi’.",
        "mergehistory-no-destination": "papatuzu’an kasabelih $1 inayi’.",
        "mergehistory-invalid-source": "saangangan kasabelih kanca pisaungay kapahay a satangahan.",
        "searchprofile-everything-tooltip": "kilim saca hamin lacul (yamalyilu sasukamu kasabelih)",
        "searchprofile-advanced-tooltip": "mikilim pakuniza misanga’ pangangananay a salaedan",
        "search-result-size": "$1 ({{PLURAL:$2|$2 ku sulit}})",
+       "search-result-category-size": "{{PLURAL:$1|$1 sakawaway}} ({{PLURAL:$2|$2 sailuc-kasasizuma}}, {{PLURAL:$3|$3 tangan }})",
        "search-redirect": "(miliyaw tazuma namakay $1)",
        "search-section": "(tusil $1)",
        "search-category": "(kakuniza $1)",
        "prefs-editwatchlist-label": "mikawaway-kalumyiti i numisuay  miazihay a piazihan-tu-sulit kasacacay:",
        "prefs-editwatchlist-edit": "ciwsace atu misipu satangahan ilabu nu miazihay a piazihan-tu-sulit",
        "prefs-editwatchlist-raw": "mikawaway-kalumyiti saayaway misisip a piazihan-tu-sulit",
-       "prefs-editwatchlist-clear": "misipu sacahamin mikibi tu labuay sulit",
+       "prefs-editwatchlist-clear": "misipu miazihay a piazihan-tu-sulit nu misu",
        "prefs-watchlist-days": "ilabu nu miazihay a piazihan-tu-sulit paazih a demiad nikayadah:",
        "prefs-watchlist-days-max": "sayadahay $1 {{PLURAL:$1|a demiad}}",
        "prefs-watchlist-edits-max": "makelec nikayadah:1000",
-       "prefs-watchlist-token": "miazihay a piazihan tu sulit sabuhat:",
+       "prefs-watchlist-token": "miazihay a piazihan-tu-sulit mima-sabuhat:",
        "prefs-misc": "zuma",
        "prefs-resetpass": "misumad tu mima",
        "prefs-changeemail": "misumad saca misipu imyiyo(email) puenengan",
        "yourvariant": "lacul kamu masazumaay:",
        "prefs-help-variant": "maydih kisu sapaazih tina kakacawan a lacul kalukamu saca sasuala tu sulit nu kamu.",
        "yournick": "baluhay sulitan a ngangan:",
+       "badsig": "mungangaw a saayaway sulitan a ngangan.\npikinsa HTML aazihen-paya.",
        "yourgender": "milunguc kisu pisaungay canan a etul muawaw tisuwanan?",
        "gender-unknown": "anu miawaw tisuwan sa, tina zwanti hakay amana misaungay tu etul-sulit.",
        "gender-male": "mikawaway-kalumyiti Wiki kasabelih ciniza",
        "userrights-expiry-current": "kakatekuhan $1",
        "userrights-expiry-none": "inayi’ kakatekuhan",
        "userrights-expiry": "kakatekuhan:",
-       "userrights-expiry-existing": "masetin tu kakatekuhan: $3, $2",
+       "userrights-expiry-existing": "ayzaay a kakatekuhan: $3, $2",
        "userrights-expiry-othertime": "zuma a tatukian:",
        "userrights-invalid-expiry": "luyaluy \"$1\" a kakatekuhan la’cus tu.",
        "userrights-expiry-in-past": "luyaluy \"$1\" a kakatekuhan mangliw tu.",
        "grouppage-autoconfirmed": "{{ns:project}}: lunuk malucekay tu misaungayay",
        "grouppage-bot": "{{ns:project}}:kikay a tademaw",
        "grouppage-sysop": "{{ns:project}}:mikuwanay",
-       "grouppage-bureaucrat": "{{ns:project}}:situngusay a mikawaway",
+       "grouppage-bureaucrat": "{{ns:project}}:situngusay mikawaw",
        "grouppage-suppress": "{{ns:project}}:misisipay",
        "right-read": "miasip kasabelih",
        "right-edit": "kasabelih mikawaway-kalumyiti",
        "right-hideuser": "milangat misaungayay a kalungangan, amana pabibawlan paazih",
        "right-ipblock-exempt": "sekipo IP milangat, lunuk milangat atu subal milangat kinsa",
        "right-unblockself": "mihulak tu ku langat nu maku",
-       "right-protect": "misumad midiput saselal atu mikawaway-kalumyiti mapatatusul midiputay a kasabelih",
+       "right-protect": "misumad midiput tindud atu mikawaway-kalumyiti mapatatusul midiputay a kasabelih",
        "right-editcontentmodel": "mikawaway-kalumyiti kasabelih a lacul tatudungen-misanga’",
        "right-editinterface": "mikawaway-kalumyiti misaungayay taypuolayta",
        "right-editusercss": "mikawaway-kalumyiti zuma misaungayay a CSS tangan",
        "right-edituserjs": "mikawaway-kalumyiti zuma misaungayay a JavaScript tangan",
+       "right-editmyusercss": "mikawaway-kalumyiti numisuay a misaungayay CSS tangan",
        "right-editmyuserjs": "mikawaway-kalumyiti numisuay misaungayay a JavaScript tangan",
        "right-viewmywatchlist": "ciwsace misuay a miazihay a piazihan-tu-sulit",
        "right-viewmyprivateinfo": "ciwsace numisuay a dimut kalunasulitan (tinaku, imyiyo(email) puenengan atu tatenga’ay a ngangan)",
        "right-userrights": "mikawaway-kalumyiti sacahamin  misaungayay a tungus",
        "right-userrights-interwiki": "mikawaway-kalumyiti misaungayay a tungus i zuma a Wiki",
        "right-siteadmin": "pamutek atu mihulak azihen sulu nu nasulitan",
-       "right-override-export-depth": "patahkal ku kasabelih yamalyilu  masasiket lacul, ilabu pabaw-sahezek silima kasaselal",
+       "right-override-export-depth": "patahkal ku kasabelih yamalyilu masasiket lacul, ilabu pabaw-sahezek silima tindud",
        "right-sendemail": "pabahel imyiyo(email) patakus zuma misaungayay",
        "right-deletechangetags": "nay kalunasulitan-sulu masipu [[Special:Tags|aazihen-paya]]",
        "grant-generic": "\"$1\" tungus pulung han",
        "action-deletedhistory": "ciwsace kasabelih a masipu nazipa’an",
        "action-deletedtext": "ciwsac masipuay a sulit nu masumad ayaway baziyong",
        "action-browsearchive": "mikilim masipuay a kasabelih",
+       "action-undelete": "palawpes masipuay kasabelih",
        "action-suppressrevision": "miciwsace atu patiku midimut masumad nu ayaway",
        "action-suppressionlog": "ciwsace tina caay pabinawlanay nasulitan-nazipa’an",
        "action-block": "miangat tina saungayay a tungus nu mikawaway-kalumyiti",
-       "action-protect": "misumad tina kasabelih a midiput saselal",
+       "action-protect": "misumad tina kasabelih a midiput tindud",
+       "action-rollback": "kalamkam patiku sazikuzay a cacay misaungayay patatapalen zuma a cacay kasabelih a mikawaway-kalumyiti.",
        "action-import": "nay zuma Wiki pacumud kasabelih",
        "action-importupload": "nay tangan patapabaw pacumud kasabelih",
        "action-patrol": "sacuzu’ zumaay a mikawaway-kalumyiti tu tayza-mikibi",
        "minoreditletter": "adidi’",
        "newpageletter": "baluhay",
        "boteditletter": "kikay a tademaw",
+       "number_of_watching_users_pageview": "[$1 imahini miazihay a {{PLURAL:$1|misaungayay}}]",
        "rc_categories": "kakuniza kelec (ku \"|\" palaliyas):",
        "rc_categories_any": "amahicahica tu mipili’ay",
        "rc-change-size-new": "masumadtu sa u $1 {{PLURAL:$1|wyiyincu}}",
        "recentchangeslinked-summary": "uyni kasabelih pasilsil micuzu’ kasabelih masasiketay saca hamin kasabelihan (hakya u matuzu’ay kakuniza\nilabu saca hamin mamikawaw)izaw ku  misumaday kasabelih piazihan tu sulit.\nizawtu ku [[Special:Watchlist|sapacukat a sulit nu misu]] ilabuay a kasabelih apatahkal ku <strong>kibetulay a sulit</strong> sacuzu’.",
        "recentchangeslinked-page": "kasabelih kalungangan:",
        "recentchangeslinked-to": "Show changes to pages linked to the given page instead\nmisumad ku paazih masasiket tayza matuzu’ay kasabelih a nisumad",
+       "recentchanges-page-added-to-category": "[[:$1]] macunus tu ta kakuniza",
        "recentchanges-page-removed-from-category": "[[:$1]] masipu tu nay kakuniza",
        "autochange-username": "MediaWiki lunuk misumad",
        "upload": "patapabaw ku tangan",
        "upload_directory_missing": "ma’ngadis patapabaw dilyikotoling ($1) zumasa calay-belih(wangyi) sefu-kikay inayi’ tungus mipatizeng.",
        "upload_directory_read_only": "calay-belih(wangyi) sefu-sakaluk inayi’ patapabaw dilyikotoling ($1) a suliten  tungus.",
        "uploaderror": "patapabaw mungangaw",
+       "upload-permitted": "mahasa tangan {{PLURAL:$2|nikalahizaan}}: $1.",
+       "upload-preferred": "patahkal nizateng a tangan {{PLURAL:$2|nikalahizaan}}: $1",
+       "upload-prohibited": "satezep a tangan {{PLURAL:$2|nikalahizaan}}: $1",
        "uploadlogpage": "patapabaw nasulitan nazipa’an",
        "filename": "kalungangan nu tangan",
        "filedesc": "pecu’ nu lacul",
        "filename-toolong": "tangan kalungangan amana mangsiw 240 wyiyincu.",
        "badfilename": "masumad tuway tangan kalungangan ku \"$1\"",
        "filetype-badmime": "amana mahasa patapabaw MIME nikalahizaan ku \"$1\" a tangan.",
+       "filetype-missing": "kya tangan inayi’ mikilulay ngangan nu tangan (tinaku \".jpg\")",
        "empty-file": "patayzaan nu misu a tangan u inayi’ay.",
        "file-too-large": "patayzaan tangan nu misu micalapay.",
        "filename-tooshort": "tangan kalungangan tada apuyu’.",
        "backend-fail-hashes": "la’cus maala tangan macamel-sulyang (Hash) miteka sasutili’ay.",
        "backend-fail-notsame": "i \"$1\" izaw tu zumaay caay kalecaday a tangan.",
        "backend-fail-invalidpath": "\"$1\" caykaw kapahay a suped pazazan.",
+       "backend-fail-delete": "la’cus misipu ku tangan \"$1\".",
        "backend-fail-describe": "la’cus misumad tangan \"$1\" a kalunasulitan misaheci.",
        "backend-fail-alreadyexists": "tangan \"$1\" izaw tu.",
        "backend-fail-store": "la’cus misuped tangan \"$1\" i \"$2\".",
        "zip-wrong-format": "matuzu’ay a tangan caay ku ZIP tangan.",
        "zip-bad": "ZIP tangan malepi’tu saca la’cus miasip.\nla’cus habutud han miteka zahkez kinsa.",
        "uploadstash": "patapabaw ku sulu nu pisipetan",
-       "uploadstash-clear": "palamadac tu sulu nu tangan",
+       "uploadstash-clear": "palamadac tu suped-sulu nu tangan",
        "uploadstash-nofiles": "inayi’ masupetay a tangan nu misu.",
        "uploadstash-badtoken": "miteka saungay mungangaw. mikawaway-kalumyitiay nu misu a pincen hakay mangasiw, piliyaw aca.",
        "uploadstash-errclear": "palamadac tu tangan masepay.",
        "fewestrevisions": "sainayi'ay masumaday nu kasabelih",
        "nbytes": "$1 {{PLURAL:$1|wyiyincu}}",
        "ncategories": "{{PLURAL:$1|kakuniza}}",
+       "ninterwikis": "$1 {{PLURAL:$1|interwiki masasiket}}",
        "nlinks": "$1 {{PLURAL:$1|masasiket}}",
        "nmembers": "$1 {{PLURAL:$1|ku mamikawaw}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|sakawaway}}",
        "nrevisions": "$1 {{PLURAL:$1|masumad nu ayaway}}",
        "nimagelinks": "{{PLURAL:$1|kasabelih}}",
        "ntransclusions": "$1 {{PLURAL:$1|ku kasabelih}}",
        "wantedpages-badtitle": "kyu i lecapuay a satangahan la’cus: $1",
        "wantedfiles": "maydihay a tangan",
        "wantedtemplates": "maydihay a taazihan mitudung",
+       "mostlinked": "masasiket sayadahay a kasabelih",
        "mostlinkedcategories": "masasiket sayadahay a kakuniza",
        "mostlinkedtemplates": "nipacaliwan kayadahay a kasabelih",
        "mostcategories": "iyadah ku kakunizaay nu kasabelih",
        "notargettext": "caay henay kisu matuzu’ papatuzu'an kasabelih saca misaungayay amiteka tina saungay.",
        "nopagetitle": "inayi’ku pamutekan tu kasabelih",
        "nopagetext": "matuzu’ay a papatuzu’an a kasabelih nu misu inayi’.",
-       "pager-newer-n": "{{PLURAL:$1|baluhay $1}}",
+       "pager-newer-n": "{{PLURAL:$1|hatiya baluhayay $1}}",
        "pager-older-n": "{{PLURAL:$1| kusa malumanay}}",
        "suppress": "malangat",
        "querypage-disabled": "uyni sazumaay a kasabelih zayhan mizateng ku icelang a munday mapasatezep tuway.",
        "apisandbox-request-url-label": "milunguc URL:",
        "apisandbox-request-json-label": "milunguc JSON:",
        "apisandbox-request-time": "milungucay a tatukian:{{PLURAL:$1|$1 ms}}",
-       "apisandbox-results-fixtoken": "misumad mima-sacukcuk sa miliyaw patayzaan",
-       "apisandbox-results-fixtoken-fail": "maala \"$1\" mima-sacukcuk mungangaw.",
+       "apisandbox-results-fixtoken": "misumad mima-sabuhat sa miliyaw patayzaan",
+       "apisandbox-results-fixtoken-fail": "maala \"$1\" mima-sabuhat mungangaw.",
        "apisandbox-alert-page": "tina kasabelih a pisinga’an  la’cus.",
        "apisandbox-alert-field": "la’cus tina pisinga’an a sulyang.",
        "apisandbox-continue": "palalid",
        "listusers-noresult": "caykatepa misaungayay.",
        "listusers-blocked": "(malangat tuway)",
        "activeusers": "saungay nu binawlanay misaungayay piazihan tu sulit",
+       "activeusers-intro": "tina piazihan-tu-sulit sa ku capi $1 {{PLURAL:$1|demiad}} izaw ku saungay a misaungayay.",
+       "activeusers-count": "{{PLURAL:$1|saungay}} capi {{PLURAL:$3|demiad}}",
        "activeusers-from": "paazih misaungayay miteka nay:",
        "activeusers-groups": "paazih tungusay nu sasa’ay a luyaluy misaungayay:",
        "activeusers-excludegroups": "palawpes tungusay nu isasa’ay luyaluy a misaungayay:",
        "wlshowhidepatr": "tayza mikibi mikawaway-kalumyiti",
        "wlshowhidemine": "numakuay a mikawaway-kalumyiti",
        "wlshowhidecategorization": "kasabelih nu kakuniza",
-       "watchlist-options": "misisipa piazihan-tu-sulit a syinsiang",
+       "watchlist-options": "miazihay piazihan-tu-sulit a mapiliay",
        "watching": "imahini miazih...",
        "unwatching": "imahini pahanhan mikantuk…",
        "watcherrortext": "imahini misumad \"$1\" miazihay a piazihan-tu-sulit setin sa mungangaw",
        "rollbacklinkcount": "patiku {{PLURAL:$1|mikawaway tu kalumyiti}}",
        "rollbacklinkcount-morethan": "$1 {{PLURAL:$1|mikawaway-kalumyiti}}",
        "rollbackfailed": "patiku mungangaw",
-       "rollback-missingparam": "milunguc caay kataneng kasasulul aazihen a sulyang.",
+       "rollback-missingparam": "milunguc caay kataneng kasasulul aazihen-sulyang.",
        "rollback-missingrevision": "la’cus pacumud masumad nu ayaway a kalunasulitan.",
        "cantrollback": "la’cus patiku mikawaway-kalumyiti;\ntina kasabelih a sazikuz paaninay u kinacacay a masacudaday.",
        "editcomment": "mikawaway-kalumyiti pecu’ nu lacul ku: <em>$1</em>.",
        "log-name-contentmodel": "lacul tatudungen misanga’ misumad nasulitan nazipa’an",
        "protectlogpage": "midiput nasulitan nakawawan",
        "protectedarticle": "madiput tuway \"[[$1]]\"",
-       "modifiedarticleprotection": "masumad tuway \"[[$1]]\" a midiput kasaselal",
+       "modifiedarticleprotection": "masumad tuway \"[[$1]]\" a midiput tindud",
        "unprotectedarticle": "mahulak tu \"[[$1]]\" a diput",
        "movedarticleprotection": "malimad \"[[$2]]\" a midiput setin tu \"[[$1]]\"",
        "protectedarticle-comment": "{{GENDER:$2|madiputay}} \"[[$1]]\"",
        "unprotectedarticle-comment": "{{GENDER:$2|masipu tu }} \"[[$1]]\" a midiput",
-       "protect-title": "misumad \"$1\" a midiputay a saselal",
+       "protect-title": "misumad \"$1\" a midiputay a tindud",
+       "protect-title-notallowed": "ciwsace \"$1\" a midiput tindud",
        "prot_1movedto2": "malimad [[$1]] tayza [[$2]]",
        "protect-badnamespace-title": "pangangananay a salaedan amana midiput",
        "protect-badnamespace-text": "tina ilabu nupangangananay a salaedan a kasabelih la’cusay setin tu midiput.",
        "protect-expiring": "kakatekuhan $1 (UTC)",
        "protect-expiring-local": "kakatekuhan katukuh i $1",
        "protect-expiry-indefinite": "inayi’ u sungliw",
-       "protect-cantedit": "inayi’ mikawaway-kalumyiti a tungus kisu, la’cus misumad tina kasabelih a midiput kasaselal.",
+       "protect-cantedit": "inayi’ mikawaway-kalumyiti a tungus kisu,la’cus misumad tina kasabelih a midiput tindud.",
        "protect-othertime": "zuma a tatukian:",
-       "protect-existing-expiry": "masetin tu kakatekuhan: $3, $2",
+       "protect-existing-expiry": "ayzaay a kakatekuhan: $3, $2",
        "protect-existing-expiry-infinity": "masetin tuway a kakatekuhan: inayi’kakatekuhan",
        "protect-otherreason": "zumaay/nicunusay a mahicaay:",
        "protect-otherreason-op": "zuma a mahicaay",
        "undeletepage": "ciwsace atu patiku masipuay tu kasabelih",
        "viewdeletedpage": "ciwsace masipuay tu kasabelih",
        "undelete-fieldset-title": "patiku misumad nu ayaway",
+       "undeleterevisions": "$1{{PLURAL:$1|baziyong}}misipu",
        "undelete-revision": "masipu nu $3 a $1 (i $4 $5) masumad nu ayaway",
        "undelete-nodiff": "inayi’ nasawniay a sumad.",
        "undeletebtn": "patiku",
        "undelete-cleanup-error": "yu misipu caay pisaungay a misinga’ tangan \"$1\" sa mungangaw.",
        "undelete-error": "palawpes masipu kasabelih  mungangaw",
        "undelete-error-short": "palawpes masipu tangan mungangaw: $1",
+       "undelete-error-long": "imahini palawpes misipu tangan bahal mungangaw:\n\n$1",
        "undelete-show-file-submit": "hang",
        "namespace": "pangangananay a salaedan:",
        "invert": "kabelihan mipili’",
        "sp-contributions-hideminor": "midimut mikilulay mikawaway-kalumyiti",
        "sp-contributions-submit": "kilim",
        "whatlinkshere": "masasiket katukuh uyniyay a kasabelih",
-       "whatlinkshere-title": "masasiket tazumaay a \"$1\" kasabelih",
+       "whatlinkshere-title": "masasiket tayza \"$1\" a kasabelih",
        "whatlinkshere-page": "Kasabelih:",
        "linkshere": "isasaay a kasabelih masasiket tazuma tu <strong>[[:$1]]</strong>:",
        "nolinkshere-ns": "mapili’ay a pangangananay a salaedan inayi’ kasabelih  masasiket tu [[:$1]].",
        "infiniteblock": "inayi’ u sungliw",
        "expiringblock": "$1 $2 hatinitu",
        "anononlyblock": "wiza dada’ paceba panganganay ku misaungayay",
-       "noautoblockblock": "mapasatezep lunuk milangat",
+       "noautoblockblock": "lunuk malangat mapasatezep tu",
        "createaccountblock": "canghaw patizeng mapasatezep tuway",
        "emailblock": "mapasatezep imyiyo(email)",
        "blocklist-nousertalk": "la’cus mikawaway-kalumyiti sasukamu kasabelih nu misu",
        "unblocklogentry": "mahulak malangat $1 tuway",
        "block-log-flags-anononly": "wiza dada’ paceba panganganay ku misaungayay",
        "block-log-flags-nocreate": "canghaw patizeng mapasatezep tuway",
-       "block-log-flags-noautoblock": "mapasatezep lunuk milangat",
+       "block-log-flags-noautoblock": "lunuk malangat mapasatezep tu",
        "block-log-flags-noemail": "mapasatezep imyiyo(email)",
        "block-log-flags-nousertalk": "la’cus mikawaway-kalumyiti sasukamu kasabelih nu misu",
        "block-log-flags-angry-autoblock": "pangaleb lunuk-langat mawawah tuway",
        "range_block_disabled": "mikuwanay kapah patizeng subal milangat a tungus maedeb tuway.",
        "ipb_expiry_old": "kakatukuhan a demiad mangasiw tuway.",
        "ipb_expiry_temp": "midimut misaungayay a kalungangan langat amana misetin kakatekuhan.",
+       "ipb_hide_invalid": "la’cus satezep paazih tina canghaw; izaw mangasiw {{PLURAL:$1|cacay mikawaway-kalumyiti}} ciniza.",
        "ipb_already_blocked": "malangat \"$1\" tuway.",
        "ipb-needreblock": "$1 mapalangat tu. maydih kisu misetin haw?",
        "ipb-otherblocks-header": "zuma {{PLURAL:$1|milangat}}",
        "ipb_cant_unblock": "mungangaw: inayi’ milangat ID $1, hakay mahulak tu kya langat.",
        "ip_range_invalid": "la’cusay IP subal.",
        "ip_range_toolarge": "caay mahasa milangat kya taliyuk mangasiw /$1.",
-       "proxyblocker": "kutay sefuci-kikay milangat-kikay",
+       "proxyblocker": "kutay sefu-kikay milangat-kikay",
        "softblockrangesreason": "IP puenengan nu misu ($1) inayi’ mahasa paceba pangangan paanin, pipatalabu.",
        "ipbblocked": "izay kisu malangat, sisa la’cus milangat saca mihulak malangatay a zuma  misaungayay",
        "ipbnounblockself": "caay mahasa mihulak malangat tu kisu.",
        "movelogpage": "milimad ku nasulitan nakawawan",
        "movelogpagetext": "isasa’ay sa u sacahamin milimad kasabelih a saungay nasulitan piazihan-tu-sulit.",
        "movesubpage": "{{PLURAL:$1|sailuc-kasabelih}}",
+       "movesubpagetext": "tina kasabelih izaw $1 {{PLURAL:$1|sailuc-kasabelih}} mahiza isasa’ay.",
        "movenosubpage": "tina kasabelih inayi’ amahicahica tu sailuc-kasabelih.",
        "movereason": "mahicaay:",
        "delete_and_move_confirm": "hang, masipu tina kasabelih",
        "immobile-source-namespace": "la’cus milimad i pangangananay a salaedan \"$1\" a kasabelih.",
        "immobile-target-namespace": "la’cus milimad kasabelih tayza pangangananay a salaedan \"$1\"",
        "immobile-target-namespace-iw": "milimad kasabelih amana pisaungay Interwiki masasiket sanu papatuzu'an.",
-       "immobile-source-page": "tina belih la’cus milimad.",
+       "immobile-source-page": "tina kasabelih la’cus milimad.",
        "immobile-target-page": "la’cus milimad katukuh nabalucu’a satangahan.",
        "bad-target-model": "matuzu’ay a patusukan pisaungay caay kalecaday a lacul  tatudungen misanga’. la’cus miliyaw $1 tu $2.",
+       "imagenocrossnamespace": "amana milimad tangan tayza caay ku nu tangan panganganay a salaedan.",
        "nonfile-cannot-move-to-file": "caay kakapah milimad paceba’ay a tangan tayza tangan  pangangananay a salaedan",
        "imagetypemismatch": "baluhayay a tangan mikilulay-tangan-ngangan caay matatungus kya tangan a nikalahizaan.",
        "imageinvalidfilename": "papatuzu’an a tangan  kalungangan la’cus.",
        "djvu_no_xml": "la’cus i DjVu tangan miala XML",
        "thumbnail-temp-create": "la’cus patizeng nanunuz misukep tu zunga tangan",
        "thumbnail-dest-create": "la’cus misuped sukep tu zunga ta pabalucu’an",
+       "thumbnail_invalid_params": "la’cusay a sukep tu zunga aazihen-sulyang",
        "thumbnail_toobigimagearea": "tangan a ditek mangasiw $1",
        "thumbnail_dest_directory": "la’cus patizeng papatuzu’an a dilyikotoling",
        "thumbnail_image-type": "caypi damaenay a zunga nikalahizaan",
        "importstart": "pacumud tayza pataayaw tu kawaw kakitizaan",
        "import-revision-count": "$1 {{PLURAL:$1|masumad nu ayaway}}",
        "importnopages": "inayi’ mapacumuday a kasabelih.",
+       "imported-log-entries": "pacumud tuway $1 {{PLURAL:$1|nasulitan-nazipa’an kasacacay}}",
        "importfailed": "pacumud mungangaw:<nowiki>$1</nowiki>",
        "importunknownsource": "caykapulita a nikalahizaan nu pacumud a saangangan",
        "importcantopen": "la’cusay miwawah pacumuday a tangan",
        "importsuccess": "pahezek tuway pacumud!",
        "importnofile": "caay henay papabaw pacumud tangan.",
        "importuploaderrorsize": "patapabaw pacumud tangan mungangaw.\ntangan hacica-tabaki mangasiw mahasa patapabaw hacica-tabaki.",
+       "importuploaderrorpartial": "patapabaw pacumud tu tangan mungangaw.\npatapabaw dada’ liyad a tangan.",
+       "importuploaderrortemp": "patapabaw pacumud tu tangan mungangaw.\nmahedaw nanunuz kalunasulita-emic",
        "import-parse-failure": "XML pacumud tingalaw mungangaw",
        "import-noarticle": "inayi’ amahicahica kapah pacumuday a kasabelih!",
        "import-nonewrevisions": "inayi’ pacumud amahicahica tu masumad nu ayaway (masumad nu ayaway izaw tuway, saca zayhan mungangaw sekipo)",
        "tooltip-ca-delete": "misipu tina kasabelih",
        "tooltip-ca-undelete": "patiku tina kasabelih tu ayaw setyitase nu masipu",
        "tooltip-ca-move": "milimad tina kasabelih",
-       "tooltip-ca-watch": "paynien kasabelih micunus misuay cyinse piazihan tu sulit",
+       "tooltip-ca-watch": "micunus tina kasabelih tayza numisuay a miazihay a piazihan-tu-sulit",
        "tooltip-ca-unwatch": "tina kasabelih nay misipu ilabu nu miazihay a piazihan-tu-sulit",
        "tooltip-search": "kilim {{SITENAME}}",
        "tooltip-search-go": "amahica milihiza tuyni kalungangan malalanepay kasabelih izaay tu, taayawen ku tiza kasabelih",
        "tooltip-preview": "kay iayaw nu pisuped miazih tu nu misuay nisumad.",
        "tooltip-diff": "paazih hica sa kisu labuay a nisumadan",
        "tooltip-compareselectedversions": "piazih tina kasabelih yatatusa mapili’ay a sasizuma nu sumad",
-       "tooltip-watch": "paynien kasabelih micunus misuay cyinse piazihan tu sulit",
+       "tooltip-watch": "micunus tina kasabelih tayza numisuay a miazihay a piazihan-tu-sulit",
        "tooltip-watchlistedit-normal-submit": "misipu satangahan",
        "tooltip-watchlistedit-raw-submit": "misabaluhay misisip tu piazihan-tu-sulit",
        "tooltip-recreate": "namahicahica masipu caay haw, miliyaw patizeng kya kasabelih",
        "pageinfo-robot-noindex": "amana",
        "pageinfo-watchers": "kasabelih miazihay a nikayadah",
        "pageinfo-visiting-watchers": "mazizaw capi demiad mikawaway-kalumyiti a kasabelih miazihay kinapina",
+       "pageinfo-few-watchers": "ma'ngadis mangalep $1 {{PLURAL:$1|misisipay}}",
        "pageinfo-few-visiting-watchers": "miazih capi demiad mikawaway-kalumyiti a misaungayay hakay ku miazihay a misaungayay.",
        "pageinfo-redirects-name": "patuzu’ tina kasabelih a miliyaw patatuzu’ kasabelih nikayadah",
        "pageinfo-subpages-name": "tina belih a sailuc-kasabelih nikayadah",
        "pageinfo-recent-edits": "capi demiad mikawaway-kalumyiti kinapina (naayaw $1 ilabu)",
        "pageinfo-recent-authors": "capiay masacudaday a nikayadah",
        "pageinfo-magic-words": "mosu {{PLURAL:$1|sulit}} ($1)",
+       "pageinfo-hidden-categories": "midimut {{PLURAL:$1|kakuniza}} ($1)",
+       "pageinfo-templates": "nicaliwan{{PLURAL:$1|taazihan-mitudung}} ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|kasabelih}} nanicaliwan i ($1)",
        "pageinfo-toolboxlink": "kasabelih cesyun",
        "pageinfo-redirectsto-info": "katinengan",
        "pageinfo-contentpage": "miasip papi lacul kasabelih",
        "pageinfo-category-files": "tangan nikayadah",
        "pageinfo-user-id": "misaungayay ID",
        "markaspatrolleddiff": "silusi natayza mikibi tuway",
+       "markaspatrolledtext": "silusi tina belih ku tayza-mikibi",
        "markaspatrolledtext-file": "silusi tina tangan baziyong tu tayza-mikibi",
        "markedaspatrolled": "silusi natayza mikibi tuway",
        "markedaspatrolledtext": "masilusi mipili’ay a sumad [[:$1]] ku tayza-mikibiay.",
        "patrol-log-page": "tayza mikibi nasulitan nazipa’an",
        "patrol-log-header": "uyniyan sa u tayza-mikibi masumaday baziyong a nasulitan-nazipa’an.",
        "log-show-hide-patrol": "$1 tayza mikibi nasulitan nazipa’an",
-       "log-show-hide-tag": "$1 aazihen a paya nasulitan nazipa’an",
+       "log-show-hide-tag": "$1 tazihan-paya nasulitan nazipa’an",
        "confirm-markpatrolled-button": "malucekay",
        "confirm-markpatrolled-top": "silusi $2 a sumad $3 ku tayza-mikibi?",
        "deletedrevision": "masipu malumanay misumad nu ayaway $1",
        "exif-subjectarea": "sausi a kakitizaan",
        "exif-flashenergy": "sabelabelatay a tinghuy u icelang",
        "exif-focalplanexresolution": "X couciaw kimpi’ katingalaw",
+       "exif-focalplaneyresolution": "Y couciaw kimpi’ katingalaw",
        "exif-focalplaneresolutionunit": "edil-sanat a sapat katingalaw  tatebanan nu nisulitan",
        "exif-subjectlocation": "kakitizaan nu satangahan",
        "exif-exposureindex": "mapaedil a sulyang",
        "exif-sharpness": "kacidem",
        "exif-devicesettingdescription": "sakaluk setin sapuelac",
        "exif-subjectdistancerange": "baat nu tatizengan a liwliw",
-       "exif-imageuniqueid": "sassing dada’ sakatineng mipulita",
+       "exif-imageuniqueid": "kinacacay sakatineng-kodo nu sasing",
        "exif-gpsversionid": "GPS baziyong nu aazihen a paya",
        "exif-gpslatituderef": "pyiwyi asaca nanwyi",
        "exif-gpslongituderef": "tongcing asaca sicing",
        "exif-gpsdestbearingref": "pamutekan sasakawawen miazih tu tatenga’ay sulyang",
        "exif-gpsdestdistanceref": "pamutekan baat miazih tu tatenga’ay sulyang",
        "exif-gpsprocessingmethod": "GPS saungay sasakawawen kalungangan",
+       "exif-gpsareainformation": "GPS subal kalungangan",
        "exif-gpsdatestamp": "GPS a demiad",
        "exif-gpsdifferential": "GPS chafen misumad",
        "exif-jpegfilecomment": "JPEG tangan pacunus sakacaay kapawan",
        "exif-provinceorstatecreated": "yakuwanan a sasing",
        "exif-citycreated": "yatukay a sasing",
        "exif-sublocationcreated": "zunga masasing tukay pulita kahicelaan",
-       "exif-worldregiondest": "paazih tu subal nu kitakit",
+       "exif-worldregiondest": "paazih ku subal nu kitakit",
        "exif-countrydest": "paazih tu kanatal",
        "exif-countrycodedest": "paazih kanatal a kodo",
        "exif-provinceorstatedest": "paazih seng asaca cou",
        "exif-copyrightowner": "nizaay nisanga’an tu tungus a kawaw",
        "exif-usageterms": "mamaala a cedang",
        "exif-webstatement": "nabalucu'an nu i telay nisanga’an niza tu tungus a kawaw",
-       "exif-originaldocumentid": "kinacacay mapulitaay a kodo nu saayaway a cudad",
+       "exif-originaldocumentid": "kinacacay sakatineng-kodo nu saayaway a cudad",
        "exif-licenseurl": "nisanga’an niza tu tungus a kawaw pabeli tu kinli  masasiket",
        "exif-morepermissionsurl": "paliyuh pabeli tu kinli a cesyun",
        "exif-attributionurl": "anu misaliyaw pisaungay tina nalimaan, pisasiket tu",
        "exif-meteringmode-255": "zuma",
        "exif-lightsource-1": "likat",
        "exif-lightsource-2": "inkwang a tinghuy",
-       "exif-lightsource-3": "useteng-tinghuy (白熾燈)",
+       "exif-lightsource-3": "useteng-tinghuy",
        "exif-lightsource-4": "sabelabelatay a tinghuy",
        "exif-lightsource-9": "cilalah a demiad",
        "exif-lightsource-10": "kenutan",
        "exif-lightsource-255": "zuma katahkalan nu likat",
        "exif-flash-fired-0": "sabelabelatay a tinghui caay henay miwawah",
        "exif-flash-fired-1": "sabelabelatay a tinghui miwawah tuway",
+       "exif-flash-return-0": "inayi’ belabelatan-kikay a sasahicaan",
        "exif-flash-return-2": "sabelabela-sedap-sakaluk caay sedap tu edil",
        "exif-flash-return-3": "sabelabelatay sedap-sakaluk sedap tu edil",
        "exif-flash-mode-1": "pacici sabelabelatay tinghuy mawawah",
        "namespacesall": "hamin",
        "monthsall": "hamin",
        "confirmemail": "milucekay tu imyiyo(email) puengan",
+       "confirmemail_send": "imyiyo(email) malucekay-kodo",
        "confirmemail_sent": "malucekay mapatigami tuway.",
+       "confirmemail_invalid": "la’cus malucekay-kodo.\nkya kodo hakay mangasiw tuway.",
+       "confirmemail_needlogin": "$1 pilucek tu misuay a imyiyo(email) puenengan nu misu.",
        "confirmemail_loggedin": "malucekay tu misuay imyiyo(email) puengengan.",
        "confirmemail_subject": "{{SITENAME}} imyiyo(email) puenengan malucekay tuway",
        "confirmemail_invalidated": "palawpes tu imyiyo(email) puenengan palucekay",
        "confirm-purge-top": "amisipu tina kasabelih a kalamkam-miala haw?",
        "confirm-purge-bottom": "palawpes kasabelih amalawpes kasabelih a kyasiw nasulitan zumasatu pacici paazih capi demiad kasabelih masumad nu ayaway.",
        "confirm-watch-button": "malucekay",
+       "confirm-watch-top": "micunus tina kasabelih tayza numisuay a miazihay a piazihan-tu-sulit?",
        "confirm-unwatch-button": "malucekay",
        "confirm-unwatch-top": "nay misuay a miazihay a piazihan-tu-sulit sa misipu tina kasabelih?",
        "confirm-rollback-button": "malucekay",
+       "confirm-rollback-top": "patiku mikawaway-kalumyiti tu tina kasabelih?",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "ayaway cacay a belih",
        "imgmultipagenext": "zikuzan a belih →",
        "watchlistedit-raw-title": "mikawaway-kalumyiti saayaway misisip a piazihan-tu-sulit",
        "watchlistedit-raw-submit": "misabaluhay misisip tu piazihan-tu-sulit",
        "watchlistedit-raw-done": "misabaluh tuway miazihay a piazihan-tu-sulit nu misu.",
+       "watchlistedit-raw-added": "macunus tu {{PLURAL:$1|atangahan}}",
+       "watchlistedit-raw-removed": "masipu tu {{PLURAL:$1|satangahan}}:",
        "watchlistedit-clear-title": "misipu miazihay a piazihan tu sulit",
        "watchlistedit-clear-explain": "amisipu nu misuay a sacahamin a satangahan nay miazihay a piazihan-tu-sulit",
        "watchlistedit-clear-submit": "palawpes amin miazihay a piazihan-tu-sulit (la’cus patiku)",
        "watchlistedit-clear-done": "malawpes tu miazihay a piazihan-tu-sulit nu misu.",
+       "watchlistedit-clear-removed": "masipu tu {{PLURAL:$1|satangahan}}:",
        "watchlistedit-too-many": "iyadah apaazihay a kasabelih itini.",
        "watchlisttools-clear": "misipu miazihay a piazihan tu sulit",
        "watchlisttools-view": "ciwsace mahizaay a sumad",
        "version-ext-colheader-credits": "masacudaday",
        "version-license-title": "$1 a sapabeli tu kinli a cedang",
        "version-license-not-found": "caay katepa tina sacunusay a pulita sapabeli tu kinli a cedang cesyun.",
-       "version-credits-title": "$1 a kasakumi nu misayingaay",
+       "version-credits-title": "$1 a kasakumi nu paaninay",
        "version-credits-not-found": "caay katepa tina sacunusay a pulita kasakumi nu misayingaay  cesyun",
        "version-poweredby-others": "zuma",
        "version-poweredby-translators": "translatewiki.net mibelihay",
        "fileduplicatesearch-filename": "kalungangan nu tangan:",
        "fileduplicatesearch-submit": "kilim",
        "fileduplicatesearch-result-1": "tangan $1 inayi’ misaliyaw tu tangan.",
+       "fileduplicatesearch-result-n": "tina tangan \"$1\" izaw {{PLURAL:$2|1 malecad misaliyaw|$2 malecad misaliyaw}}.",
        "fileduplicatesearch-noresults": "inayi’ ku kalungangan nu \"$1\" a tangan.",
        "specialpages": "sazumaay a kasabelih",
        "specialpages-group-maintenance": "aazihen a cudad nu midiputay",
        "tags-edit-existing-tags": "izaway tu a taazihen-paya:",
        "tags-edit-existing-tags-none": "<em>inayi’</em>",
        "tags-edit-new-tags": "baluhay aazihen a paya:",
-       "tags-edit-add": "micunus uyniyay aazihen a paya:",
+       "tags-edit-add": "micunus uyniyay taazihen-paya:",
        "tags-edit-remove": "misipu uyniyay taazihen-paya:",
        "tags-edit-remove-all-tags": "(misipu sacahamin taazihen-paya)",
        "tags-edit-chosen-placeholder": "mipili’ hatizaay aazihen a paya",
        "tags-edit-revision-submit": "caedung kya sumad katukuh i {{PLURAL:$1|tina misumad nu ayaway|$1 masumad nu ayaway}}",
        "tags-edit-success": "macaedung tu ku sasumad.",
        "tags-edit-failure": "misumad la’cus micaedung:\n$1",
+       "tags-edit-nooldid-title": "la’cusay a pamutekan masumad nu ayaway",
        "tags-edit-nooldid-text": "inayi’ kisu matuzu’ amahicahica amiteka tina sasahicaan a papatuzu'an masumad nu ayaway saca matuzu’ay sumad inayi’.",
        "tags-edit-none-selected": "anu inayi’ i pipili’ cacay amicunusay saca amisipuay a aazihen-paya.",
        "comparepages": "sasutili’ay a kasabelih",
        "diff-form": "sasizuma",
        "permanentlink": "saluimengay misiket",
        "dberr-problems": "ahicanaca! tina calay-kakacawan(wangcan) tahkal tuway hatizaay sitanengay a munday.",
+       "dberr-again": "sawsawni pinapina ku widi pitanam aca.",
+       "dberr-info": "(la’cus misuped-miala kalunasulitan-sulu: $1)",
        "dberr-info-hidden": "(la’cus misuped-miala sulu nu nasulitan)",
        "dberr-usegoogle": "kapah tu kisu mitanam ilabu nu kakatekuhan pisaungay Google kilim.",
        "dberr-outofdate": "azihen, napatizeng nu heni pikiliman tu nisulitan miasip a lacul hakay caay kawbaluhayay.",
        "htmlform-time-placeholder": "HH:MM:SS",
        "htmlform-datetime-placeholder": "YYYY-MM-DD HH:MM:SS",
        "htmlform-date-toolow": "matuzu’ay a sulyang nu misu mahasaay a demiad i ayaw nu $1.",
-       "htmlform-date-toohigh": "matuzu’ay a sulyang nu misu mahasaay a demiad i ayaw nu $1.",
+       "htmlform-date-toohigh": "matuzu’ay a sulyang i zikuz nu mahasaay a demiad $1.",
        "htmlform-time-toolow": "namatuzu’ kisu a sulyang i ayaw nu saayaw mahasa a tuki $1.",
        "htmlform-time-toohigh": "namituzu’ kisu a sulyang i zikuz nu sazikuz mahasa a tuki $1.",
        "htmlform-datetime-toolow": "matuzu’ay a sulyangnu misu iayaw saayaw mahasa a demiad atu tuki $1.",
        "feedback-message": "palatuh:",
        "feedback-subject": "satangahan:",
        "feedback-submit": "patayzaan",
+       "feedback-termsofuse": "patubeli kaku kilulen mamaala a cedang nipabeli nabalucu’an hwidubaku.",
        "feedback-thanks": "kukay! nu misu a nabalucu’an hwidubaku mapatiyak tu kasabelih \"[$2 $1]\"",
        "feedback-thanks-title": "kukay tisuwanan!",
        "feedback-useragent": "misaungayay tayli:",
        "searchsuggest-search": "kilim {{SITENAME}}",
-       "api-error-badtoken": "labuay a mungangaw: mima-sacukcuk mungangaw.",
+       "api-error-badtoken": "labuay a mungangaw: mima-sabuhat mungangaw",
        "api-error-emptypage": "la’cus mahasa patizeng inayi’ ku cacan a kasabelih.",
        "api-error-publishfailed": "nu labuay a mungangaw: sefu’kikay patiyak nanunuz mungangaw.",
        "api-error-stashfailed": "nu labuay a mungangaw: sefu’kikay suped nanunuz mungangaw.",
        "limitreport-ppgeneratednodes": "pataayaw-saungay-sakaluk masanga’ ciyityin kinapina",
        "limitreport-postexpandincludesize": "namicuwat nicaliwan hacica-tabaki",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|wyiyincu}}",
+       "limitreport-templateargumentsize": "taazihan mitudung aazihen-sulyang hacica tabaki",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|wyiyincu}}",
        "limitreport-expansiondepth": "satakalaw micuwat ilabu",
        "limitreport-expensivefunctioncount": "sayadah-eluc tingalaw-sakaluk hansu kinapina",
        "log-description-pagelang": "tina kasabelih sa ku kasabelih kamu sumad nasulitan-nazipa’an.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (mawawah tu)",
        "mediastatistics": "myiti sausi cesyun",
+       "mediastatistics-allbytes": "sacahamin tangan a pulung tangan pinalu hacica-tabaki: {{PLURAL:$1|$1 wyiyincu}} ($2).",
        "mediastatistics-table-mimetype": "MIME nikalahizaan",
        "mediastatistics-table-extensions": "kapah saungay a mikilulay a ngangan nu tangan",
        "mediastatistics-table-count": "tangan nikayadah",
        "json-error-ctrl-char": "misimaw tatebanan-nisulitan mungangaw, hakay caay tatenga’ay tu sakababalic a banggu",
        "json-error-syntax": "sakilul nu kamu mungangaw",
        "json-error-utf8": "UTF-8 tatebanan-nisulitan a kese caay tatenga’ay, hakay caay tatenga’ kya  sakababalic a banggu",
+       "json-error-recursion": "ilabu nu kalunasulitan izaw cacay saca yadah musaliyuliyud sulyang nu tanengnengan masakababalic tu banggu",
        "json-error-inf-or-nan": "i kalunasulitan izaw ku cacay saca yadayay a NAN saca INF sulyang masakababalic a banggu",
        "json-error-unsupported-type": "isasa’ay a kalunasulitan kakuniza la’cus sakababalic tu banggu",
        "headline-anchor-title": "misasiket tina tusil",
index 3c81a63..e9d42dd 100644 (file)
        "anonpreviewwarning": "''Nun aniciasti sesión. Al guardar quedará rexistrada la to direición IP nel historial d'edición d'esta páxina.''",
        "missingsummary": "'''Recordatoriu:''' Nun conseñasti un resume d'edición.\nSi calques nuevamente \"$1\", la to edición guardaráse ensin nengún resume.",
        "selfredirect": "<strong>Atención:</strong> Tas redirixendo esta páxina a ella mesma.\nSeique conseñaras un oxetivu enquivocáu pa la redireición, o que teas editando una páxina enquivocada. Si vuelves a facer clic en «$1», crearáse la redireición de toles maneres.",
-       "missingcommenttext": "Por favor, escribi un comentariu abaxo.",
+       "missingcommenttext": "Escribi un comentariu.",
        "missingcommentheader": "<strong>Recordatoriu:</strong> Nun conseñasti un asuntu pa esti comentariu.\nSi calques nuevamente «$1», la to edición guardaráse ensin nengunu.",
        "summary-preview": "Vista previa del resume d'edición:",
        "subject-preview": "Vista previa del asuntu:",
        "timezoneregion-europe": "Europa",
        "timezoneregion-indian": "Océanu Índicu",
        "timezoneregion-pacific": "Océanu Pacíficu",
-       "allowemail": "Dexar a los otros usuarios mandate correos",
-       "email-blacklist-label": "Torgar a estos usuarios unviame correos electrónicos:",
+       "allowemail": "Permitir qu'otros usuarios m'unvien correos",
+       "email-blacklist-label": "Torgar qu'estos usuarios m'unvien correos electrónicos:",
        "prefs-searchoptions": "Buscar",
        "prefs-namespaces": "Espacios de nome",
        "default": "predetermináu",
        "recentchanges-legend": "Opciones de cambios recientes",
        "recentchanges-summary": "Sigui los cambios más recientes na wiki nesta páxina.",
        "recentchanges-noresult": "Nengún cambiu nel periodu conseñáu coincide con esos criterios.",
+       "recentchanges-timeout": "Esta gueta escosó'l tiempu. Escurque quieras tentar con parámetros de gueta distintos.",
        "recentchanges-feed-description": "Sigui nesta canal los últimos cambios de la wiki.",
        "recentchanges-label-newpage": "Esta edición creó una páxina nueva",
        "recentchanges-label-minor": "Esta ye una edición menor",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|hora|hores}}",
        "rcfilters-highlighted-filters-list": "Resaltao: $1",
        "rcfilters-quickfilters": "Filtros guardaos",
-       "rcfilters-quickfilters-placeholder-title": "Entá nun se guardaron enllaces",
+       "rcfilters-quickfilters-placeholder-title": "Entá nun se guardó nengún filtru",
        "rcfilters-quickfilters-placeholder-description": "Pa guardar les preferencies del filtru y volver a usales sero, pulsia nel iconu del marcador del área de Filtru Activu más abaxo.",
        "rcfilters-savedqueries-defaultlabel": "Filtros guardaos",
        "rcfilters-savedqueries-rename": "Renomar",
        "rcfilters-filter-user-experience-level-unregistered-label": "Non rexistraos",
        "rcfilters-filter-user-experience-level-unregistered-description": "Editores que nun tán coneutaos.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Recién llegaos",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Editores rexistraos con menos de 10 ediciones y 4 díes d'actividá.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Editores rexistraos que tienen menos de 10 ediciones o 4 díes d'actividá.",
        "rcfilters-filter-user-experience-level-learner-label": "Aprendices",
        "rcfilters-filter-user-experience-level-learner-description": "Editores rexistraos con esperiencia ente «Recién llegaos» y «Usuarios espertos».",
        "rcfilters-filter-user-experience-level-experienced-label": "Usuarios espertos",
        "uploaded-script-svg": "Alcontróse l'elementu «$1» que puede recibir scripts nel ficheru SVG xubíu.",
        "uploaded-hostile-svg": "Alcontróse CSS inseguru nel elementu d'estilu del ficheru SVG xubíu.",
        "uploaded-event-handler-on-svg": "Nun se permite configurar los atributos de controladores de socesos <code>$1=\"$2\"</code> nos ficheros SVG.",
-       "uploaded-href-attribute-svg": "Los atributos href de los ficheros SVG are sólo pueden enllazar a destinos http:// o https://, alcontróse <code>&lt;$1 $2=\"$3\"&gt;</code>.",
+       "uploaded-href-attribute-svg": "<a> los elementos solo pueden enllazar (href) con destinos «data:» (ficheru incrustáu), «http://», «https://» o de fragmentu («#», «same-document»). Pa otros elementos como <image>, sólo se permiten «data:» y fragmentu. Tenta incrustar les imaxes al esportar el SVG. Atopóse <code>&lt;$1 $2=\"$3\"&gt;</code>",
        "uploaded-href-unsafe-target-svg": "Alcontróse un href a datos inseguros: la URI de destín <code>&lt;$1 $2=\"$3\"&gt;</code> nel ficheru SVG xubíu.",
        "uploaded-animate-svg": "Alcontróse la etiqueta \"animate\" que puede cambiar href, usando l'atributu \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code> nel ficheru SVG xubíu.",
        "uploaded-setting-event-handler-svg": "Ta torgada la configuración d'atributos del xestor de socesos. Alcontróse <code>&lt;$1 $2=\"$3\"&gt;</code> nel ficheru SVG xubíu.",
index 1e34a73..8126296 100644 (file)
        "views": "Görünüş",
        "toolbox": "Alətlər",
        "tool-link-userrights": "{{GENDER:$1|İstifadəçi}} qruplarını dəyişdir",
-       "tool-link-userrights-readonly": "İstifadəçi qruplarına bax",
+       "tool-link-userrights-readonly": "{{GENDER:$1|İstifadəçi}} qruplarına bax",
        "imagepage": "Fayl səhifəsini göstər",
        "mediawikipage": "Mesaj səhifəsini göstər",
        "templatepage": "Şablon səhifəsini göstər",
        "password-login-forbidden": "Bu istifadəçi adından və paroldan istifadə qadağan olunub.",
        "mailmypassword": "E-mail ilə yeni parol göndər",
        "passwordremindertitle": "{{SITENAME}} parol xatırladıcı",
-       "passwordremindertext": "Kimsə (ehtimal ki siz özünüz, $1 IP ünvanından) {{SITENAME}} ($4) layihəsi \nüçün yeni bir parol göndərilməsini istəyib. \"$2\" adlı istifadəçi üçün müvəqqəti \nolaraq \"$3\" parolu yaradılıb. Əgər bu sizin istəyiniz əsasında olubsa, \nhesabınıza daxil olaraq yeni bir parol yaratmağınız vacibdir. Müvəqqəti parolunuz\n{{PLURAL:$5|1 gün|$5 gün}} ərzində qüvvədə olacaqdır.\n\nParol dəyişdirməni siz istəməmisinizsə və ya parolunuzu xatırladınızsa \nvə artıq parolunuzu dəyişdirmək istəmirsinizsə, bu mesaja əhəmiyyət vermədən \nəvvəlki parolunuzdan istifadə etməyə davam edə bilərsiniz.",
+       "passwordremindertext": "Kimsə (ehtimal ki, siz özünüz, $1 IP ünvanından) {{SITENAME}} ($4) layihəsi \nüçün yeni bir parol göndərilməsini istəyib. \"$2\" adlı istifadəçi üçün müvəqqəti \nolaraq \"$3\" parolu yaradılıb. Əgər bu sizin istəyiniz əsasında olubsa, \nhesabınıza daxil olaraq yeni bir parol yaratmağınız vacibdir. Müvəqqəti parolunuz\n{{PLURAL:$5|1 gün|$5 gün}} ərzində qüvvədə olacaqdır.\n\nParol dəyişdirməni siz istəməmisinizsə və ya parolunuzu xatırladınızsa \nvə artıq parolunuzu dəyişdirmək istəmirsinizsə, bu mesaja əhəmiyyət vermədən \nəvvəlki parolunuzdan istifadə etməyə davam edə bilərsiniz.",
        "noemail": "\"$1\" adlı istifadəçi e-poçt ünvanını qeyd etməmişdir.",
        "noemailcreate": "Düzgün e-poçt ünvanı qeyd etməlisiniz",
        "passwordsent": "Yeni parol \"$1\" üçün qeydiyyata alınan e-poçt ünvanına göndərilmişdir.\nXahiş edirik, e-məktubu aldıqdan sonra yenidən daxil olasınız.",
        "anoneditwarning": "<strong>Diqqət:</strong> Siz sistemə daxil olmamısınız. Hər hansı dəyişiklik etsəniz, sizin IP-ünvanınız hamıya görünəcək. Əgər <strong>[$1 daxil olsanız]</strong> və ya <strong>[$2 hesab yaratsanız]</strong>, redaktələriniz sizin istifadəçi adınıza yazılacaq və digər üstünlüklər də qazanacaqsınız.",
        "anonpreviewwarning": "Sistemə daxil olmamısınız. \"Səhifəni qeyd et\" düyməsini bassanız IP ünvanınız səhifənin tarixçəsində qeyd olunacaq.",
        "missingsummary": "'''Xatırlatma.''' Siz dəyişikliklərin qısa şərhini verməmisiniz. \"Səhifəni qeyd et\" düyməsinə təkrar basandan sonra sizin dəyişiklikləriniz şərhsiz qeyd olunacaq.",
-       "missingcommenttext": "Zəhmət olmasa, aşağıda şərhinizi yazın.",
+       "missingcommenttext": "Zəhmət olmasa, şərh yazın.",
        "summary-preview": "Dəyişikliyin izahının görünüşü:",
        "subject-preview": "Sərlövhə belə olacaq:",
        "blockedtitle": "İstifadəçi bloklanıb",
        "timezoneregion-europe": "Avropa",
        "timezoneregion-indian": "Hind Okeanı",
        "timezoneregion-pacific": "Sakit Okean",
-       "allowemail": "Digər istifadəçilər mənə e-məktub göndərə bilər",
+       "allowemail": "Digər istifadəçilərin mənə e-məktub göndərməsinə icazə ver",
        "prefs-searchoptions": "Axtar",
        "prefs-namespaces": "Adlar fəzası",
        "default": "boş",
        "prefs-custom-css": "Xüsusi CSS",
        "prefs-custom-js": "Xüsusi JavaScript",
        "prefs-common-css-js": "Bütün skinlər üçün ümumi CSS/JavaScript:",
+       "prefs-reset-intro": "Bu səhifəni nizamlamalarınızı ilkin vəziyyətə gətirmək üçün istifadə edə bilərsiniz. Bu əməliyyat geri qaytarıla bilməz.",
        "prefs-emailconfirm-label": "E-poçtun təsdiqlənməsi:",
        "youremail": "E-məktub:",
        "username": "{{GENDER:$1|İstifadəçi adı}}:",
        "editusergroup": "İstifadəçi qruplarını yüklə",
        "editinguser": "İstifadəçi <strong>[[User:$1|$1]]</strong> $2 üçün istifadəçi hüquqları dəyişdirilir",
        "userrights-editusergroup": "İstifadəçinin qruplarını redaktə et",
-       "userrights-viewusergroup": "İstifadəçi qruplarına bax",
+       "userrights-viewusergroup": "{{GENDER:$1|İstifadəçi}} qruplarına bax",
        "saveusergroups": "{{GENDER:$1|İstifadəçi}} qruplarını qeyd et",
        "userrights-groupsmember": "Daxil olduğu qruplar:",
        "userrights-groupsmember-auto": "Güman edilən üzv:",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|gün|gün}}",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|saat|saat}}",
        "rcfilters-quickfilters": "Yaddaşdakı filtrlər",
-       "rcfilters-quickfilters-placeholder-title": "Yaddaşa verilmiş keçid yoxdur",
+       "rcfilters-quickfilters-placeholder-title": "Yaddaşa verilmiş filtr yoxdur",
        "rcfilters-quickfilters-placeholder-description": "Filtr nizamlamalarını yaddaşda saxlamaq və sonradan təkrar istifadə etmək üçün aşağıdakı Aktiv Filtrlər bölməsindəki əlfəcin nişanını tıqlayın.",
        "rcfilters-savedqueries-rename": "Adını dəyiş",
        "rcfilters-savedqueries-setdefault": "Standart filtr et",
        "exbeforeblank": "Silinmədən əvvəlki məzmun: '$1'",
        "delete-confirm": "Silinən səhifə: \"$1\"",
        "delete-legend": "Sil",
-       "historywarning": "'''Xəbərdarlıq:''' Silinəcək səhifənin tarixçəsində qeyd olunmuş $1 {{PLURAL:$1|redaktə|redaktə}} var:",
+       "historywarning": "'''Xəbərdarlıq:''' Silmək istədiyiniz səhifənin tarixçəsində qeyd olunmuş $1 {{PLURAL:$1|redaktə|redaktə}} var:",
        "historyaction-submit": "Göstər",
        "confirmdeletetext": "Bu səhifə və ya fayl bütün tarixçəsi ilə birlikdə birdəfəlik silinəcək. Bunu [[{{MediaWiki:Policy-url}}|qaydalara]] uyğun etdiyinizi və əməliyyatın nəticələrini başa düşdüyünüzü təsdiq edin.",
        "actioncomplete": "Fəaliyyət tamamlandı",
        "rollbackfailed": "Geri qaytarma uğursuzdur",
        "cantrollback": "Redaktə geri qaytarıla bilməz; axırıncı redaktə səhifədə olan yeganə fəaliyyətdir.",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Müzakirə]]) tərəfindən edilmiş dəyişikliklər [[User:$1|$1]] tərəfindən edilmiş dəyişikliklərə qaytarıldı.",
-       "revertpage-nouser": "(istifadəçi adı çıxarılmış) tərəfindən edilən dəyişikliklər [[User:$1|$1]] tərəfindən edilən son dəyişikliyə geri alındı",
+       "revertpage-nouser": "İstifadəçi adı gizlədilmiş istifadəçi tərəfindən edilən dəyişikliklər  {{GENDER:$1|[[User:$1|$1]]}} tərəfindən edilmiş son redaktəyə geri qaytarıldı",
        "rollback-success": "$1 tərəfindən edilmiş redaktələr geri qaytarıldı; $2 tərəfindən yaradılmış son versiya bərpa olundu.",
        "sessionfailure-title": "Giriş səhvi",
        "changecontentmodel-reason-label": "Səbəb:",
index 5750fd3..edab7c0 100644 (file)
        "prefs-misc": "Рознае",
        "prefs-resetpass": "Зьмяніць пароль",
        "prefs-changeemail": "Зьмяніць ці выдаліць адрас электроннай пошты",
-       "prefs-setemail": "УÑ\81Ñ\82анавÑ\96ць адрас электроннай пошты",
+       "prefs-setemail": "Ð\92Ñ\8bзнаÑ\87Ñ\8bць адрас электроннай пошты",
        "prefs-email": "Налады электроннай пошты",
        "prefs-rendering": "Выгляд",
        "saveprefs": "Захаваць",
index 9a6dd50..7e4665b 100644 (file)
@@ -82,7 +82,6 @@
        "underline-never": "Ніколі",
        "underline-default": "Як у браўзеры",
        "editfont-style": "Шрыфт у абшары праўкі:",
-       "editfont-default": "Як у браўзеры",
        "editfont-monospace": "Роўна-шырокі",
        "editfont-sansserif": "Без засечак",
        "editfont-serif": "З засечкамі",
        "explainconflict": "Нехта іншы змяніў старонку пасля таго, як вы пачалі працу з ёю.\nВерхняе тэкставае поле паказвае актуальны зыходны тэкст старонкі.\nВашы праўкі паказаны ў ніжнім тэкставым полі.\nВам трэба будзе далучыць іх да актуальнага зыходнага тэксту.\nКалі націснуць \"$1\", будзе запісаны '''толькі''' тэкст у верхнім полі.",
        "yourtext": "Свой тэкст",
        "storedversion": "Захаваная версія",
-       "nonunicodebrowser": "<strong>Увага: ваш браўзер не працуе з Unicode-кадаваннем.</strong> Каб вы маглі карэктна правіць старонкі, усе знакі, не ўключаныя ў ASCII, паказваюцца ў рэдактарскім акне як шаснаццаткавыя коды.",
        "editingold": "<strong>Увага: Вы правіце састарэлую версію гэтай старонкі.</strong>\nКалі Вы паспрабуеце захаваць яе, то страціце змены ў артыкуле, зробленыя пасля колішняга запісу гэтай версіі.",
        "yourdiff": "Адрозненні",
        "copyrightwarning": "Заўважце, што ўсе ўклады на {{GRAMMAR:месны|{{SITENAME}}}} лічацца выданымі на ўмовах $2 (гл. падрабязнасці на $1). Калі вы не жадаеце, каб вашыя матэрыялы бязлітасна правіліся, і свабодна распаўсюджваліся, то і не аддавайце іх сюды.<br />\nТаксама вы нам абяцаеце, што напісалі гэта самі, або скапіравалі з рэсурсу, які знаходзіцца ў публічнай уласнасці, або з аналагічнага свабоднага рэсурсу.\n<strong>Нельга без дазволу дадаваць матэрыялы, абароненыя аўтарскім правам!</strong>",
        "expensive-parserfunction-warning": "Увага: На старонцы занадта шмат працаёмістых зваротаў да парсера.\n\nТрэба, каб зваротаў было меней за $2, а зараз ёсць $1.<!--In this particular lingual case, there's no need for plurals at all, so let's make checker happy by adding commented out {{PLURAL:$2|call|calls}} and {{PLURAL:$1|is now $1 call|are now $1 calls}}-->",
        "expensive-parserfunction-category": "Старонкі, дзе шмат працаёмістых зваротаў да парсера",
        "post-expand-template-inclusion-warning": "Увага: аб'ём улучанага шаблона занадта вялікі.\nНекаторыя шаблоны не будуць улучаныя.",
-       "post-expand-template-inclusion-category": "Старонкі, на якіх перавышаны максімальны аб'ём шаблона",
+       "post-expand-template-inclusion-category": "Старонкі, на якіх перавышаны максімальны абём шаблона",
        "post-expand-template-argument-warning": "Увага: на гэтай старонцы ёсць прынамсі адзін параметр шаблона, які занадта доўгі ў разгорнутым выглядзе.\nТакія параметры былі прапушчаныя.",
        "post-expand-template-argument-category": "Старонкі, на якіх прапушчаны параметры шаблонаў",
        "parser-template-loop-warning": "Цыклічнае ўключэнне шаблона: [[$1]]",
        "block": "Заблакаваць удзельніка",
        "unblock": "Разблакаваць удзельніка",
        "blockip": "Заблакаваць {{GENDER:$1|удзельніка|удзельніцу}}",
-       "blockip-legend": "Заблакаваць удзельніка",
        "blockiptext": "Гэты фармуляр дазваляе заблакаваць магчымасць запісу для пэўнага адрасу IP ці імя ўдзельніка.\nГэта трэба рабіць толькі дзеля засцерагання ад вандалізму і ў адпаведнасці з [[{{MediaWiki:Policy-url}}|правіламі]].\nНіжэй трэба ўпісаць канкрэтную прычыну (напрыклад, пералічваючы канкрэтныя старонкі, якія былі вандалізаваныя).",
        "ipaddressorusername": "IP-адрас ці імя ўдзельніка:",
        "ipbexpiry": "Згасае:",
        "compare-invalid-title": "Абраная вамі назва недапушчальная.",
        "compare-title-not-exists": "Не існуе названай вамі назвы.",
        "compare-revision-not-exists": "Паказанай вамі версіі не існуе.",
+       "diff-form": "'''фармуляр'''",
        "dberr-problems": "Прабачце, на пляцоўцы здарыліся тэхнічныя цяжкасці.",
        "dberr-again": "Паспрабуйце перачытаць праз некалькі хвілін.",
        "dberr-info": "(Немагчыма звязацца з базай даных: $1)",
index f7d6085..352aaec 100644 (file)
        "action-editcontentmodel": "редактиране на модела на съдържанието на страница",
        "action-managechangetags": "създаване и (де)активиране на етикети",
        "action-applychangetags": "прилагане на етикетите заедно с промените ви",
-       "action-deletechangetags": "изтриване на етикети от базата данни",
+       "action-deletechangetags": "изÑ\82Ñ\80иване Ð½Ð° ÐµÑ\82икеÑ\82и Ð¾Ñ\82 Ð±Ð°Ð·Ð°Ñ\82а Ð¾Ñ\82 Ð´Ð°Ð½Ð½Ð¸",
        "action-purge": "почисти кеша на тази страница",
        "nchanges": "$1 {{PLURAL:$1|промяна|промени}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|от последното посещение}}",
        "changecontentmodel-submit": "Променяне",
        "changecontentmodel-success-title": "Моделът на съдържанието беше променен",
        "changecontentmodel-success-text": "Типът на съдържанието на [[:$1]] е успешно променен.",
-       "changecontentmodel-cannot-convert": "СÑ\8aдÑ\8aÑ\80жаниеÑ\82о Ð½Ð° [[:$1]] Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ñ\80евÑ\8aÑ\80наÑ\82о в тип $2.",
+       "changecontentmodel-cannot-convert": "СÑ\8aдÑ\8aÑ\80жаниеÑ\82о Ð½Ð° [[:$1]] Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ð¿Ñ\80еобÑ\80азÑ\83вано в тип $2.",
        "changecontentmodel-nodirectediting": "Моделът на съдържание $1 не поддържа пряко редактиране",
        "changecontentmodel-emptymodels-title": "Не са налични модели на съдържание",
        "changecontentmodel-emptymodels-text": "Съдържанието в [[:$1]] не може да бъде превърнато в никакъв тип.",
        "watchlistedit-clear-submit": "Изчистване на списъка за наблюдение (Необратимо!)",
        "watchlistedit-clear-done": "Списъкът за наблюдение беше изчистен.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 заглавие беше премахнато|$1 заглавия бяха премахнати}}:",
-       "watchlistedit-too-many": "Има твърде много страници за показване тук.",
+       "watchlistedit-too-many": "Има твърде много страници за показване.",
        "watchlisttools-clear": "Изчистване на списъка за наблюдение",
        "watchlisttools-view": "Преглед на списъка за наблюдение",
        "watchlisttools-edit": "Преглед и редактиране на списъка за наблюдение",
index 5f3ca3b..713fd06 100644 (file)
        "mergelog": "Zapisnik spajanja",
        "revertmerge": "Vrati spajanje",
        "mergelogpagetext": "Ispod je spisak nedavnih spajanja historija stranica.",
-       "history-title": "$1: Historija izmjena",
-       "difference-title": "$1: Razlike između izmjena",
+       "history-title": "Historija izmjena stranice \"$1\"",
+       "difference-title": "Razlike između verzija stranice \"$1\"",
        "difference-title-multipage": "$1 i $2: Razlike između stranica",
        "difference-multipage": "(Razlika između stranica)",
        "lineno": "Red $1:",
        "log-action-filter-contentmodel-change": "Izmjena modela sadržaja",
        "log-action-filter-contentmodel-new": "Nova stranica s nestandardnim modelom sadržaja",
        "log-action-filter-delete-delete": "Brisanje stranice",
-       "log-action-filter-delete-delete_redir": "Prepisivanje preusmjerenja",
+       "log-action-filter-delete-delete_redir": "Presnimavanje preusmjerenja",
        "log-action-filter-delete-restore": "Vraćanje obrisane stranice",
        "log-action-filter-delete-event": "Brisanje unosa u zapisniku",
        "log-action-filter-delete-revision": "Brisanje izmjene",
index 6132476..d37dc57 100644 (file)
@@ -9,7 +9,11 @@
                        "SVG",
                        "The Evil IP address",
                        "Umherirrender",
-                       "Das Schäfchen"
+                       "Das Schäfchen",
+                       "FriedhelmW",
+                       "J. 'mach' wust",
+                       "Macofe",
+                       "Marcell0"
                ]
        },
        "tog-hideminor": "Kleine Änderungen in den «Letzten Änderungen» ausblenden",
        "tog-newpageshidepatrolled": "Kontrollierte Seiten bei den «Neuen Seiten» ausblenden",
        "tog-usenewrc": "Seitenbezogene Gruppierung in den «Letzten Änderungen» und auf der Beobachtungsliste",
        "tog-minordefault": "Eigene Änderungen standardmässig als minim markieren",
+       "january": "Januar",
+       "february": "Februar",
+       "march": "März",
+       "april": "April",
+       "may_long": "Mai",
+       "june": "Juni",
+       "july": "Juli",
+       "august": "August",
+       "september": "September",
+       "october": "Oktober",
+       "november": "November",
+       "december": "Dezember",
+       "jan": "Jan.",
+       "feb": "Feb.",
+       "mar": "Mär.",
+       "apr": "Apr.",
+       "may": "Mai",
+       "jun": "Jun.",
+       "jul": "Juli",
+       "aug": "Aug.",
+       "sep": "Sep.",
+       "oct": "Okt.",
+       "nov": "Nov.",
+       "dec": "Dez.",
        "category_header": "Seiten in der Kategorie «$1»",
        "category-media-header": "Medien in der Kategorie «$1»",
+       "navigation": "Navigation",
+       "namespaces": "Namensräume",
+       "variants": "Varianten",
+       "navigation-heading": "Navigationsmenü",
+       "help": "Hilfe",
+       "search": "Suche",
+       "searchbutton": "Suche",
+       "searcharticle": "Gehe",
+       "printableversion": "Druckbare Version",
+       "edit": "Bearbeiten",
+       "talkpagelinktext": "Diskussion",
+       "personaltools": "Meine Werkzeuge",
+       "talk": "Diskussion",
+       "views": "Ansichten",
+       "toolbox": "Werkzeuge",
+       "jumpto": "Wechseln zu:",
+       "jumptonavigation": "Navigation",
+       "jumptosearch": "Suche",
+       "aboutsite": "Über {{SITENAME}}",
+       "aboutpage": "Project:Über_{{SITENAME}}",
+       "disclaimers": "Impressum",
+       "disclaimerpage": "Project:Impressum",
+       "privacy": "Datenschutz",
+       "privacypage": "Project:Datenschutz",
        "badaccess-groups": "Diese Aktion ist auf Benutzer beschränkt, die {{PLURAL:$2|der Gruppe|einer der Gruppen}} «$1» angehören.",
        "retrievedfrom": "Von «$1»",
+       "editsection": "Bearbeiten",
+       "editsectionhint": "Abschnitt bearbeiten: $1",
        "site-atom-feed": "Atom-Feed für «$1»",
        "page-rss-feed": "RSS-Feed für «$1»",
        "page-atom-feed": "Atom-Feed für «$1»",
+       "red-link-title": "$1 (Seite nicht vorhanden)",
        "missing-article": "Der Text von «$1» $2 wurde nicht in der Datenbank gefunden.\n\nDie Seite ist möglicherweise gelöscht oder verschoben worden.\n\nFalls dies nicht  zutrifft, hast du eventuell einen Fehler in der Software gefunden. Bitte melde dies einem [[Special:ListUsers/sysop|Administrator]] unter Nennung der URL.",
        "filecopyerror": "Die Datei «$1» konnte nicht nach «$2» kopiert werden.",
        "filerenameerror": "Die Datei «$1» konnte nicht nach «$2» umbenannt werden.",
        "cannotdelete-title": "Seite «$1» kann nicht gelöscht werden",
        "actionthrottledtext": "Im Rahmen einer Anti-Spam-Massnahme oder aufgrund eines Missbrauchsfilters kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze hast du überschritten.\nBitte versuche es in ein paar Minuten erneut.",
        "editinginterface": "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.\nNutze bitte [https://translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
-       "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung ''«$2»'' eingerichtet.",
+       "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung <em>$2</em> eingerichtet.",
        "filereadonlyerror": "Die Datei «$1» kann nicht verändert werden, da auf das Dateirepositorium «$2» nur Lesezugriff möglich ist.\n\nDer Administrator, der den Schreibzugriff sperrte, gab folgenden Grund an: «$3».",
        "createacct-realname": "Richtiger Name (optional)",
        "loginsuccess": "Du bist jetzt als «$1» bei {{SITENAME}} angemeldet.",
-       "nosuchuser": "Der Benutzername «$1» existiert nicht.\nÜberprüfe die Schreibweise (Gross-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melde dich als neuer Benutzer an]].",
+       "nosuchuser": "Der Benutzername «$1» existiert nicht.\nÜberprüfe die Schreibweise (Gross-/Kleinschreibung beachten) oder [[Special:CreateAccount|melde dich als neuer Benutzer an]].",
        "nosuchusershort": "Der Benutzername «$1» ist nicht vorhanden. Bitte überprüfe die Schreibweise.",
        "passwordremindertext": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.\n\nDas automatisch generierte Passwort für Benutzer «$2» lautet nun: $3\n\nFalls du dies wirklich gewünscht hast, solltest du dich jetzt anmelden und das Passwort ändern.\nDas neue Passwort ist {{PLURAL:$5|1 Tag|$5 Tage}} gültig.\n\nBitte ignoriere dieses E-Mail, falls du es nicht selbst angefordert hast. Das alte Passwort bleibt weiterhin gültig.",
        "noemail": "{{GENDER:$1|Benutzer|Benutzerin|Benutzer}} «$1» hat keine E-Mail-Adresse angegeben.",
        "mailerror": "Fehler beim Senden des E-Mails: $1",
        "createaccount-text": "Es wurde für dich ein Benutzerkonto «$2» auf {{SITENAME}} ($4) erstellt. Das automatisch generierte Passwort für «$2» ist «$3». Du solltest dich nun anmelden und das Passwort ändern.\n\nFalls das Benutzerkonto irrtümlich angelegt wurde, kannst du diese Nachricht ignorieren.",
        "createacct-another-realname-tip": "Der richtige Name ist optional.\nWenn du ihn angibst, wird er für die Zuordnung der Beiträge verwendet.",
+       "pt-login": "Anmelden",
+       "pt-createaccount": "Benutzerkonto erstellen",
        "user-mail-no-addy": "Versuchte, ein E-Mail ohne Angabe einer E-Mail-Adresse zu versenden",
        "user-mail-no-body": "Es wurde versucht, ein E-Mail mit einem leeren oder zu kurzen Textkörper zu versenden.",
        "resetpass_announce": "Um die Anmeldung abzuschliessen, musst du ein neues Passwort festlegen.",
-       "passwordreset-emailsent": "Ein Passwortzurücksetzungs-E-Mail wurde versandt.",
-       "passwordreset-emailsent-capture": "Ein Passwortzurücksetzungs-E-Mail wurde versandt, das unten angezeigt wird.",
-       "passwordreset-emailerror-capture": "Die unten angezeigte Passwortzurücksetzungs-E-Mail wurde generiert, allerdings ist der Versand an {{GENDER:$2|den Benutzer|die Benutzerin}} gescheitert: $1",
-       "missingsummary": "'''Hinweis:''' Du hast keine Zusammenfassung angegeben. Wenn du erneut auf «{{int:savearticle}}» klickst, wird deine Änderung ohne Zusammenfassung übernommen.",
-       "missingcommentheader": "'''Achtung:''' Du hast kein Betreff/Überschrift eingegeben. Wenn du erneut auf «{{int:savearticle}}» klickst, wird deine Bearbeitung ohne Überschrift gespeichert.",
+       "passwordreset-emailsentemail": "Ein Passwortzurücksetzungs-E-Mail wurde versandt.",
+       "missingsummary": "'''Hinweis:''' Du hast keine Zusammenfassung angegeben. Wenn du erneut auf «$1» klickst, wird deine Änderung ohne Zusammenfassung übernommen.",
+       "missingcommentheader": "'''Achtung:''' Du hast kein Betreff/Überschrift eingegeben. Wenn du erneut auf «$1» klickst, wird deine Bearbeitung ohne Überschrift gespeichert.",
        "blockedtext": "'''Dein Benutzername oder deine IP-Adresse wurde gesperrt.'''\n\nDie Sperrung wurde von $1 durchgeführt.\nAls Grund wurde ''$2'' angegeben.\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\nDu kannst die «E-Mail an diesen Benutzer»-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
        "autoblockedtext": "Deine IP-Adresse wurde automatisch gesperrt, da sie von einem anderen Benutzer genutzt wurde, der von $1 gesperrt wurde.\nAls Grund wurde angegeben:\n\n:''$2''\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\n\nDu kannst die «E-Mail an diesen Benutzer»-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\n\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
        "confirmedittext": "Du musst deine E-Mail-Adresse erst bestätigen, bevor du Bearbeitungen durchführen kannst. Bitte ergänze und bestätige dein E-Mail in den [[Special:Preferences|Einstellungen]].",
        "creating": "Erstellen von «$1»",
        "editingsection": "Bearbeiten von «$1» (Abschnitt)",
        "editingcomment": "Bearbeiten von «$1» (Neuer Abschnitt)",
-       "explainconflict": "Jemand anders hat diese Seite geändert, nachdem du angefangen hast, sie zu bearbeiten.\nDas obere Textfeld enthält den aktuellen Bearbeitungsstand der Seite.\nDas untere Textfeld enthält deine Änderungen.\nBitte füge deine Änderungen in das obere Textfeld ein.\n'''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn du auf «{{int:savearticle}}» klickst.",
+       "explainconflict": "Jemand anders hat diese Seite geändert, nachdem du angefangen hast, sie zu bearbeiten.\nDas obere Textfeld enthält den aktuellen Bearbeitungsstand der Seite.\nDas untere Textfeld enthält deine Änderungen.\nBitte füge deine Änderungen in das obere Textfeld ein.\n'''Nur''' der Inhalt des oberen Textfeldes wird gespeichert, wenn du auf «$1» klickst.",
        "copyrightwarning": "'''Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!'''<br />\nDu gibst uns hiermit deine Zusage, dass du den Text '''selbst verfasst''' hast, dass der Text Allgemeingut '''(public domain)''' ist, oder dass der '''Urheber''' seine '''Zustimmung''' gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin.\n<i>Bitte beachte, dass alle {{SITENAME}}-Beiträge automatisch unter der «$2» stehen (siehe $1 für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann drücke nicht auf «Seite speichern».</i>",
        "longpageerror": "'''Fehler: Der Text, den du zu speichern versuchst, ist {{PLURAL:$1|ein Kilobyte|$1 Kilobytes}} gross. Dies ist grösser als das erlaubte Maximum von {{PLURAL:$2|ein Kilobyte|$2 Kilobytes}}.'''\nEr kann nicht gespeichert werden.",
        "post-expand-template-inclusion-warning": "Warnung: Die Grösse eingebundener Vorlagen ist zu gross, einige Vorlagen können nicht eingebunden werden.",
        "revdelete-show-no-access": "Fehler beim Anzeigen des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als «eingeschränkt» markiert.\nDu hast darauf keinen Zugriff.",
        "revdelete-modify-no-access": "Fehler beim Bearbeiten des Eintrags vom $1, $2 Uhr: Dieser Eintrag wurde als «eingeschränkt» markiert.\nDu hast darauf keinen Zugriff.",
        "mergehistory-merge": "Die folgenden Versionen von «[[:$1]]» können nach «[[:$2]]» übertragen werden. Markiere die Version, bis zu der (einschliesslich) die Versionen übertragen werden sollen. Bitte beachte, dass die Nutzung der Navigationslinks die Auswahl zurücksetzt.",
-       "mergehistory-success": "{{PLURAL:$3|1 Version|$3 Versionen}} von «[[:$1]]» erfolgreich nach «[[:$2]]» vereinigt.",
+       "mergehistory-done": "{{PLURAL:$3|1 Version|$3 Versionen}} von «$1» erfolgreich nach «[[:$2]]» vereinigt.",
        "mergehistory-no-source": "Ursprungsseite «$1» ist nicht vorhanden.",
        "mergehistory-no-destination": "Zielseite «$1» ist nicht vorhanden.",
        "mergehistory-autocomment": "«[[:$1]]» vereinigt nach «[[:$2]]»",
        "recentchangescount": "Anzahl der standardmässig angezeigten Bearbeitungen:",
        "yourrealname": "Richtiger Name:",
        "prefs-help-signature": "Beiträge auf Diskussionsseiten sollten mit «<nowiki>~~~~</nowiki>» signiert werden, was dann in die Signatur mit Zeitstempel umgewandelt wird.",
+       "gender-unknown": "«Der Benutzer», «seine Diskussion», «er bearbeitet» usw.",
+       "gender-male": "«Der Benutzer», «seine Diskussion», «er bearbeitet» usw. (männlich)",
+       "gender-female": "«Die Benutzerin», «ihre Diskussion», «sie bearbeitet» usw. (weiblich)",
        "prefs-help-realname": "Dies ist eine freiwillige Angabe. Damit kann dein richtiger Name deinen Beiträgen zugeordnet werden.",
        "right-createpage": "Seiten erstellen (ausser Diskussionsseiten)",
        "right-nominornewtalk": "Kleine Bearbeitungen an Diskussionsseiten führen zu keiner «Neue Nachrichten»-Anzeige",
        "right-viewmyprivateinfo": "Eigene private Daten ansehen (beispielsweise E-Mail-Adresse, richtiger Name)",
        "right-editmyprivateinfo": "Eigene private Daten bearbeiten (beispielsweise E-Mail-Adresse, richtiger Name)",
        "right-override-export-depth": "Exportiere Seiten einschliesslich verlinkter Seiten bis zu einer Tiefe von 5",
-       "right-passwordreset": "Passwort eines Benutzers zurücksetzen und das dazu verschickte E-Mail einsehen",
        "recentchanges-label-plusminus": "Die Änderung der Seitengrösse in Bytes",
        "rc_categories": "Nur Seiten aus den Kategorien (getrennt mit «|»):",
+       "rc-change-size-new": "$1 {{PLURAL:$1|Byte|Bytes}} nach der Änderung",
        "rc-old-title": "ursprünglich erstellt als «$1»",
        "recentchangeslinked-title": "Änderungen an Seiten, die von «$1» verlinkt sind",
        "uploadtext": "Benutze dieses Formular, um neue Dateien hochzuladen.\n\nGehe zu der [[Special:FileList|Liste hochgeladener Dateien]], um vorhandene Dateien zu suchen und anzuzeigen. Siehe auch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Lösch-Logbuch]].\n\nUm ein '''Bild''' in einer Seite zu verwenden, nutze einen Link in der folgenden Form:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für ein Vollbild\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für ein 200px breites Bild innerhalb einer Box, mit «Alternativer Text» als Bildbeschreibung\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
        "randomredirect-nopages": "Im Namensraum «$1» sind keine Weiterleitungen vorhanden.",
        "alllogstext": "Dies ist die kombinierte Anzeige aller in {{SITENAME}} geführten Logbücher.\nDie Ausgabe kann durch die Auswahl des Logbuchtyps, des Benutzers oder des Seitentitels eingeschränkt werden (Gross-/Kleinschreibung muss beachtet werden).",
        "allpages-bad-ns": "Der Namensraum «$1» ist in {{SITENAME}} nicht vorhanden.",
-       "linksearch-text": "Diese Spezialseite ermöglicht die Suche nach Seiten, in denen bestimmte Weblinks enthalten sind. Dabei können Platzhalter wie beispielsweise <code>*.beispiel.ch</code> benutzt werden. Es muss mindestens eine Top-Level-Domain, z. B. «*.org». angegeben werden. <br />{{PLURAL:$2|Unterstütztes Protokoll|Unterstützte Protokolle}}: <code>$1</code> (Standard ist http, falls kein Protokoll angegeben ist.)",
-       "post-expand-template-inclusion-category-desc": "Nach dem Expandieren aller Vorlagen ist die Seitengrösse grösser als <code>$wgMaxArticleSize</code>, sodass einige Vorlagen nicht expandiert werden.",
+       "linksearch-text": "Diese Spezialseite ermöglicht die Suche nach Seiten, in denen bestimmte Weblinks enthalten sind. Dabei können Platzhalter wie beispielsweise <code>*.beispiel.ch</code> benutzt werden. Es muss mindestens eine Top-Level-Domain, z. B. «*.org». angegeben werden. <br />{{PLURAL:$2|Unterstütztes Protokoll|Unterstützte Protokolle}}: $1 (Standard ist http, falls kein Protokoll angegeben ist.)",
+       "post-expand-template-inclusion-category-desc": "Die Seitengrösse ist nach dem Expandieren aller Vorlagen grösser als <code>$wgMaxArticleSize</code>, so dass einige Vorlagen nicht expandiert wurden.",
        "post-expand-template-argument-category-desc": "Nach dem Expandieren eines Vorlagenargumentes (etwas in dreifach geschweiften Klammern, z.&nbsp;B. <code>{{{Foo}}})</code> ist die Seite grösser als <code>$wgMaxArticleSize</code>.",
        "hidden-category-category-desc": "Dies ist eine Kategorie mit <code><nowiki>__HIDDENCAT__</nowiki></code>, die standardmässig nicht auf Seiten im Kategorienbereich angezeigt wird.",
        "emailpagetext": "Du kannst {{GENDER:$1|dem Benutzer|der Benutzerin}} mit dem unten stehenden Formular ein E-Mail senden.\nAls Absender wird die E-Mail-Adresse aus deinen [[Special:Preferences|Einstellungen]] eingetragen, damit {{GENDER:$1|der Benutzer|die Benutzerin}} dir direkt antworten kann.",
-       "defemailsubject": "{{SITENAME}} - E-Mail von Benutzer «$1»",
+       "defemailsubject": "{{SITENAME}} - E-Mail von {{GENDER:$1|Benutzer|Benutzerin}} «$1»",
        "emailnotarget": "Nicht vorhandener oder ungültiger Benutzername für den Empfang eines E-Mails.",
        "emailccme": "Sende eine Kopie des E-Mails an mich",
        "emailsenttext": "Dein E-Mail wurde verschickt.",
        "exbeforeblank": "Inhalt vor dem Leeren der Seite: «$1»",
        "delete-confirm": "Löschen von «$1»",
        "deletedtext": "«$1» wurde gelöscht. Im $2 findest du eine Liste der letzten Löschungen.",
-       "editcomment": "Die Änderungszusammenfassung lautet: ''«$1»''.",
+       "editcomment": "Die Änderungszusammenfassung lautet: <em>$1</em>.",
        "protectedarticle": "schützte «[[$1]]»",
        "modifiedarticleprotection": "änderte den Schutz von «[[$1]]»",
        "unprotectedarticle": "hob den Schutz von «[[$1]]» auf",
        "undeletedpage": "'''«$1»''' wurde wiederhergestellt.\n\nIm [[Special:Log/delete|Lösch-Logbuch]] findest du eine Übersicht der gelöschten und wiederhergestellten Seiten.",
        "undelete-cleanup-error": "Fehler beim Löschen der unbenutzten Archiv-Version «$1».",
        "undelete-show-file-confirm": "Bist du sicher, dass du eine gelöschte Version der Datei «<nowiki>$1</nowiki>» vom $2, $3 Uhr sehen willst?",
+       "blanknamespace": "(Hauptseite)",
        "contributions-title": "Benutzerbeiträge von «$1»",
        "whatlinkshere-title": "Seiten, die auf «$1» verlinken",
        "linkshere": "Die folgenden Seiten verlinken auf '''«[[:$1]]»''':",
        "ipb-confirmhideuser": "Du bist gerade dabei, einen Benutzer im Modus «Benutzer verstecken» zu sperren. Dies führt dazu, dass der Benutzername in allen Listen und Logbüchern unterdrückt wird. Möchtest du das wirklich tun?",
        "ipb-unblock-addr": "«$1» freigeben",
        "ipb-blocklist-contribs": "Benutzerbeiträge von «$1»",
+       "contribslink": "Beiträge",
        "autoblocker": "Automatische Sperre, da du eine gemeinsame IP-Adresse mit [[User:$1|$1]] benutzt.\nGrund der Benutzersperre: «$2»",
        "blocklogentry": "sperrte «[[$1]]» für den Zeitraum: $2 $3",
        "reblock-logentry": "änderte die Sperre von «[[$1]]» für den Zeitraum: $2 $3",
        "import-error-interwiki": "Die Seite «$1» wurde nicht importiert, da deren Name für externe Links (Interwiki) reserviert ist.",
        "import-error-special": "Die Seite «$1» wurde nicht importiert, da sie zu einem besonderen Namensraum gehört, in dem keine Seiten möglich sind.",
        "import-error-invalid": "Seite «$1» wurde nicht importiert, da deren Name ungültig ist.",
-       "import-logentry-upload": "importierte «[[$1]]» von einer Datei",
-       "import-logentry-interwiki": "importierte «$1» (Transwiki)",
-       "javascripttest-pagetext-unknownframework": "Unbekanntes Framework «$1».",
+       "tooltip-pt-createaccount": "Wir ermutigen dich ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich.",
+       "tooltip-search": "{{SITENAME}} durchsuchen",
+       "tooltip-search-go": "Gehe zur Seite mit diesem exakten Namen, falls diese existiert.",
+       "tooltip-search-fulltext": "Durchsuche die Seiten nach diesem Text",
+       "tooltip-p-logo": "Hauptseite aufsuchen",
+       "tooltip-n-recentchanges": "Liste der letzten Änderungen in diesem Wiki",
+       "tooltip-n-help": "Der Platz um herauszufinden",
        "tooltip-t-emailuser": "Ein E-Mail an diesen Benutzer senden",
+       "tooltip-t-specialpages": "Liste aller Spezialseiten",
        "pageinfo-title": "Informationen zu «$1»",
+       "pageinfo-toolboxlink": "Informationen zur Seite",
        "markedaspatrollederror": "Markierung als «kontrolliert» nicht möglich.",
        "filedelete-missing": "Die Datei «$1» kann nicht gelöscht werden, da sie nicht vorhanden ist.",
        "filedelete-old-unregistered": "Die angegebene Datei-Version «$1» ist nicht in der Datenbank vorhanden.",
        "autosumm-new": "Die Seite wurde neu angelegt: «$1»",
        "watchlistedit-normal-explain": "Dies sind die Einträge deiner Beobachtungsliste. Um Einträge zu entfernen, markiere die Kästchen neben den Einträgen und klicke am Ende der Seite auf «{{int:Watchlistedit-normal-submit}}». Du kannst deine Beobachtungsliste auch im [[Special:EditWatchlist/raw|Listenformat bearbeiten]].",
        "watchlistedit-raw-explain": "Dies sind die Einträge deiner Beobachtungsliste im Listenformat. Die Einträge können zeilenweise gelöscht oder hinzugefügt werden.\nPro Zeile ist ein Eintrag erlaubt. Sobald du fertig bist, klicke auf «{{int:Watchlistedit-raw-submit}}».\nDu kannst auch die [[Special:EditWatchlist|Standardseite]] zum Bearbeiten benutzen.",
-       "unknown_extension_tag": "Unbekanntes Parsertag «$1»",
        "duplicate-defaultsort": "Achtung: Der Sortierungsschlüssel «$2» überschreibt den vorher verwendeten Schlüssel «$1».",
        "version-license-info": "MediaWiki ist freie Software, d. h. sie kann, gemäss den Bedingungen der von der Free Software Foundation veröffentlichten ''GNU General Public License'', weiterverteilt und/oder modifiziert werden. Dabei kann die Version 2, oder nach eigenem Ermessen, jede neuere Version der Lizenz verwendet werden.\n\nMediaWiki wird in der Hoffnung verteilt, dass es nützlich sein wird, allerdings OHNE JEGLICHE GARANTIE und sogar ohne die implizierte Garantie einer MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Hierzu sind weitere Hinweise in der ''GNU General Public License'' enthalten.\n\nEine [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie der ''GNU General Public License''] sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [//www.gnu.org/licenses/old-licenses/gpl-2.0.html online gelesen] werden.",
        "fileduplicatesearch-info": "$1 × $2 Pixel<br />Dateigrösse: $3<br />MIME-Typ: $4",
        "fileduplicatesearch-result-1": "Die Datei «$1» hat keine identischen Duplikate.",
        "fileduplicatesearch-result-n": "Die Datei «$1» hat {{PLURAL:$2|ein identisches Duplikat|$2 identische Duplikate}}.",
        "fileduplicatesearch-noresults": "Es wurde keine Datei namens «$1» gefunden.",
+       "specialpages": "Spezialseiten",
        "external_image_whitelist": " #Diese Zeile nicht verändern.<pre>\n#Untenstehend können Fragmente regulärer Ausdrücke (der Teil zwischen den //) eingegeben werden.\n#Diese werden mit den URLs von Bildern aus externen Quellen verglichen.\n#Ein positiver Vergleich führt zur Anzeige des Bildes, andernfalls wird das Bild nur als Link angezeigt.\n#Zeilen, die mit einem # beginnen, werden als Kommentar behandelt.\n#Es wird nicht zwischen Gross- und Kleinschreibung unterschieden.\n\n#Fragmente regulärer Ausdrücke nach dieser Zeile eintragen. Diese Zeile nicht verändern.</pre>",
        "feedback-bugornote": "Sofern Du detailliert ein technisches Problem beschreiben möchtest, melde bitte [$1 einen Fehler].\nAnderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kommentar wird, zusammen mit deinem Benutzernamen und der Version des von Dir verwendeten Webbrowsers sowie Betriebssystems, auf der Seite «[$3 $2]» hinzugefügt.",
        "feedback-thanks": "Vielen Dank. Deine Rückmeldung wurde auf der Seite «[$2 $1]» gespeichert.",
-       "api-error-file-too-large": "Die hochgeladene Datei war zu gross.",
-       "api-error-hookaborted": "Die von dir vorgesehene Anpassung kann nicht durchgeführt werden (Unterbruch durch eine Programmschnittstelle).",
-       "api-error-unknown-code": "Unbekannter Fehler: «$1»",
+       "searchsuggest-search": "Suche",
        "api-error-unknown-warning": "Unbekannte Warnung: «$1»",
        "api-error-unknownerror": "Unbekannter Fehler: «$1»"
 }
index 17af153..48024fe 100644 (file)
        "recentchanges-legend": "Anzeigeoptionen",
        "recentchanges-summary": "Auf dieser Seite kannst du die letzten Änderungen in diesem Wiki nachverfolgen.",
        "recentchanges-noresult": "Keine Änderungen während des angegebenen Zeitraums entsprechen diesen Kriterien.",
+       "recentchanges-timeout": "Die Zeit für diese Suche wurde überschritten. Du kannst verschiedene Suchparameter ausprobieren.",
        "recentchanges-feed-description": "Verfolge mit diesem Feed die letzten Änderungen in {{SITENAME}}.",
        "recentchanges-label-newpage": "Neue Seite",
        "recentchanges-label-minor": "Kleine Änderung",
        "emailccsubject": "Kopie deiner Nachricht an $1: $2",
        "emailsent": "E-Mail verschickt",
        "emailsenttext": "Deine E-Mail wurde verschickt.",
-       "emailuserfooter": "Diese E-Mail wurde von „$1“ an „{{GENDER:$2|$2}}“ durch die Funktion „{{int:emailuser}}“ bei {{SITENAME}} {{GENDER:$1|gesendet}}. Falls {{GENDER:$2|du}} auf diese E-Mail antwortest, wird sie direkt an {{GENDER:$1|den Originalabsender|die Originalabsenderin}} gesendet. Dabei erfährt {{GENDER:$1|er|sie}} {{GENDER:$2|deine}} E-Mail-Adresse.",
+       "emailuserfooter": "Diese E-Mail wurde von „$1“ an „{{GENDER:$2|$2}}“ durch die Funktion „{{int:emailuser|$2}}“ bei {{SITENAME}} {{GENDER:$1|gesendet}}. Falls {{GENDER:$2|du}} auf diese E-Mail antwortest, wird sie direkt an {{GENDER:$1|den Originalabsender|die Originalabsenderin}} gesendet. Dabei erfährt {{GENDER:$1|er|sie}} {{GENDER:$2|deine}} E-Mail-Adresse.",
        "usermessage-summary": "Systemnachricht gespeichert.",
        "usermessage-editor": "System-Messenger",
        "usermessage-template": "MediaWiki:Benutzernachricht",
index 995d15e..de493ef 100644 (file)
        "recentchanges-summary": "Track the most recent changes to the wiki on this page.",
        "recentchangestext": "-",
        "recentchanges-noresult": "No changes during the given period match these criteria.",
+       "recentchanges-timeout": "This search has timed out. You may wish to try different search parameters.",
        "recentchanges-feed-description": "Track the most recent changes to the wiki in this feed.",
        "recentchanges-label-newpage": "This edit created a new page",
        "recentchanges-label-minor": "This is a minor edit",
index fe26028..0092884 100644 (file)
        "diff-multi-sameuser": "(Erabiltzaile berdinaren {{PLURAL:$1|erdiko ekarpen bat ez da|$1 erdiko ekarpen ez dira}} erakusten)",
        "diff-multi-otherusers": "({{PLURAL:$1|Tarteko berrikusketa bat|$1 tarteko berrikusketak}}  {{PLURAL:$2|beste erabiltzaile bat|$2 erabiltzaileak}} egina ez da erakusten)",
        "diff-multi-manyusers": "({{PLURAL:$1|Tarteko berrikusketa bat|$1 tarteko berrikusketak}} by more than $2 {{PLURAL:$2|erabiltzaile batek|erabiltzaile batzuek}} baino gehiagok egina ez erakutsia)",
+       "difference-missing-revision": " ($1) ezberdinatasunaren  {{PLURAL:$2|Berrikusketa bat|$2 berrikusketa}} ez {{PLURAL:$2|da|dira}} aurkitu.\n\nHau, orokorrean ezabatu egin den orri batera deskonektatua dagoen esteka desegonkor baten ondorioz gertatzen da.\n\nHemen xehetasunak aurki daitezke: [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "searchresults": "Bilaketaren emaitzak",
        "searchresults-title": "«$1» bilaketaren  emaitzak",
        "titlematches": "Emaitzak artikuluen izenburuetan",
        "recentchanges-legend": "Azken aldaketen aukerak",
        "recentchanges-summary": "Orrialde honetan ikus ditzakezu wiki honetan egindako azken aldaketak.",
        "recentchanges-noresult": "Ez da egon aldaketarik emandako tartean irizpide hau betetzen dutenik.",
+       "recentchanges-timeout": "Bilaketa honek denbora muga gainditu du. Agian beste parametro batzuekin bilatu nahi duzu.",
        "recentchanges-feed-description": "Sindikazio honetan wikian eginiko azkeneko aldaketak jarrai daitezke.",
        "recentchanges-label-newpage": "Aldaketa honek orri berri bat sortu du",
        "recentchanges-label-minor": "Aldaketa hau txikia da",
        "uploaded-script-svg": "Igotako SVG fitxategian \"$1\" elementu aldagarria aurkitu egin da.",
        "uploaded-hostile-svg": "Igotako SVG fitxategiko estilo elementuan segurua ez den CSS-a aurkitu da.",
        "uploaded-event-handler-on-svg": "Ekitaldiaren <code>$1=\"$2\"</code> kudeatze-atributuak ezartzea ez da onartzen SVG fitxategietan.",
+       "uploaded-href-attribute-svg": "<a> elementuek soilik (href) datuei lotu diezaiekete: (fitxategi kapsulatua), http: // edo https: //, edo fragment (#, same-document) helburuak. Beste elementu batzuetarako, adibidez, <image>, soilik datuak eta zatiak onartzen dira. Saiatu zure irudiak SVG esportatzerakoan txikiagotzen. <code>&lt;$1 $2=\"$3\"&gt; </code> aurkitua.",
        "uploaded-href-unsafe-target-svg": "Babesgabeko datuentzako aurkitutako href-a: URI <code>&lt;$1 $2=\"$3\"&gt;</code> xedea igotako SVG fitxategian.",
+       "uploaded-animate-svg": "Igotako SVG fitxategian <code>&lt;$1 $2=\"$3\"&gt;</code> atributua erabiltzen ari da, href aldatzen ari daitekeen \"animate\" aurkitu den etiketarekin.",
        "uploaded-setting-event-handler-svg": "Ekitaldi-kudeatzailearen atributuak ezartzea blokeatuta, bilatu <code>&lt;$1 $2=\"$3\"&gt;</code> igotako SVG fitxategian.",
        "uploaded-setting-href-svg": "\"set\" etiketa \"href\" atributua guraso elementuetara gehitzeko blokeatuta dago.",
        "uploaded-wrong-setting-svg": "\"Set\" etiketa erabiltzea urruneko/datu/script helburu bat gehitzeko edozein atributurako blokeatuta, bilatu <code>&lt;set to=\"$1\"&gt;</code> igotako SVG fitxategian.",
+       "uploaded-setting-handler-svg": "Urruneko/datu/scriptarekin \"eskuliburua\" atributua  ezartzen duen SVGa blokeatuta dago. <code>$1=\"$2\"</ code> aurkitu da SVG kargatutako fitxategian.",
+       "uploaded-remote-url-svg": "Edozein estiloko atributua kanpoko URL-arekin ezartzen duen SVGa blokeatuta dago. SVG fitxategian <code>$1=\"$2\"</code> aurkitu da.",
        "uploaded-image-filter-svg": "Irudi iragazkia aurkitua URL-arekin: <code>&lt;$1 $2=\"$3\"&gt;</code> igotako SVG fitxategian.",
        "uploadscriptednamespace": "SVG fitxategi hau legez kanpoko \"<nowiki>$1</nowiki>\" izen eremua dauka.",
        "uploadinvalidxml": "Ezin izan da analizatu XMLa igotako fitxategian.",
        "img-auth-nofile": "Ez dago \"$1\" fitxategirik.",
        "img-auth-isdir": "\"$1\" direktorio batera iristen saiatzen ari zara.\nFitxategien sarbidea baino ez da onartzen.",
        "img-auth-streaming": "\"$1\" sekuentziatzen.",
+       "img-auth-public": "Img_auth.php-ren funtzioa wiki pribatuetako fitxategiak irteerazteko da.\nWiki hau wiki publiko gisa konfiguratuta dago.\nSegurtasun ezin hobea lortzeko, img_auth.php desgaituta dago.",
        "img-auth-noread": "Erabiltzaileak ez du \"$1\" irakurtzeko sarbiderik.",
        "http-invalid-url": "URL baliogabea: $1",
        "http-invalid-scheme": "\"$1\" eskema duten URLak ez dira baliagarriak.",
        "deadendpagestext": "Jarraian zerrendatutako orrialdeek ez daukate wikiko beste edozein orrialdetarako loturarik.",
        "protectedpages": "Babestutako orrialdeak",
        "protectedpages-indef": "Babes mugagabeak bakarrik",
+       "protectedpages-summary": "Orrialde honetan unean babestutako orriak zerrendatzen dira. Sorkuntza babesten duten izenen zerrenda lortzeko, ikusi [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Kaskada moduko babesak bakarrik",
        "protectedpages-noredirect": "Birzuzenketak ezkutatu",
        "protectedpagesempty": "Ez dago parametro horiek dituen babesturiko orrialderik oraintxe.",
        "protectedpages-unknown-timestamp": "Ezezaguna",
        "protectedpages-unknown-performer": "Erabiltzaile ezezaguna",
        "protectedtitles": "Babestutako tituluak",
+       "protectedtitles-summary": "Orrialde honetan sorkuntzatik babesturiko izenburuak zerrendatzen dira. Babestutako orrialdeen zerrenda ikusteko, ikusi [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Ez dago parametro horiek dituen babesturiko izenbururik oraintxe.",
        "protectedtitles-submit": "Izenburuak erakutsi",
        "listusers": "Erabiltzaileen zerrenda",
        "apisandbox": "API proba orria",
        "apisandbox-jsonly": "API sandbox-a erabiltzeko JavaScript eskatzen da.",
        "apisandbox-api-disabled": "APIa desgaituta dago gune honetan.",
+       "apisandbox-intro": "Erabili orri hau <strong>MediaWiki web zerbitzuen APIa</ strong>rekin esperimentatzeko.\nIkusi [[mw:API:Main page|API dokumentazioa]] API erabilerari buruzko xehetasun gehiago lortzeko. Adibidez: [https://www.mediawiki.org/wiki/API#A_simple_example orri nagusiko edukia lortu]. Hautatu ekintza bat adibide gehiago ikusteko.\n\nKontuan izan, hau da sandbox bat bada ere, orri honetan egiten dituzun ekintzak wikiak alda ditzaketela.",
        "apisandbox-fullscreen": "Zabaldu panela",
        "apisandbox-fullscreen-tooltip": "Zabaldu sandbox panela arakatzailearen leihoa betetzeko.",
        "apisandbox-unfullscreen": "Erakutsi orria",
        "apisandbox-sending-request": "APIari eskaera bidaltzen...",
        "apisandbox-loading-results": "APIaren emaitzak jasotzen...",
        "apisandbox-results-error": "Errore bat gertatu da API kontsulta-erantzuna kargatzean: $1",
+       "apisandbox-results-login-suppressed": "Eskaera hau erregistratu gabeko erabiltzaile bezala prozesatu da, Same-Originaren segurtasuna arakatzailean nabigatzeko erabil daitekelako bestela. Kontuan izan API sandboxeko token automatikoko manipulazioa ez dela behar bezala funtzionatzen horrelako eskaerekin, eskuz bete itzazu mesedez.",
        "apisandbox-request-selectformat-label": "Erakutsi eskaera datuak horrela:",
        "apisandbox-request-format-url-label": "URL kontsulta katea",
        "apisandbox-request-url-label": "Eskatutako URLa:",
        "apisandbox-alert-field": "Zelai honetako balioak ez du balio.",
        "apisandbox-continue": "Jarraitu",
        "apisandbox-continue-clear": "Garbitu",
+       "apisandbox-continue-help": "{{int:apisandbox-continue}} [https://www.mediawiki.org/wiki/API:Query#Continuing_queries continue] azken eskaera prozesatuko du; {{int:apisandbox-continue-clear}} jarraipenarekin zerikusia duten parametroak ezabatuko ditu.",
        "apisandbox-param-limit": "<kbd>max</kbd> sartu gehienezko muga erabiltzeko.",
        "apisandbox-multivalue-all-namespaces": "$1 (Izen eremu guztiak)",
        "apisandbox-multivalue-all-values": "$1 (balio guztiak)",
        "trackingcategories-desc": "Kategoria inklusio irizpideak",
        "restricted-displaytitle-ignored": "Bistaratze izen ezezagunak dituzten orriak",
        "restricted-displaytitle-ignored-desc": "Orriak <code><nowiki>{{DISPLAYTITLE}}</nowiki></code> ez du kontuan hartu orriaren oraingo izenburuarekin bat ez datorrelako.",
+       "noindex-category-desc": "Orri honek sarrera erroboten eskutik ez dauka eginda hitz magikoa daukalako <code><nowiki>__NOINDEX__</nowiki></code> barruan eta banderatxoa onartzen ez duen izen-eremuan dagoelako.",
+       "index-category-desc": "Orriak <code><nowiki>__INDEX__</nowiki></code> darama (eta banderatxoa onartua dagoen izen-eremuan dago), beraz, sarrera erroboten esku dago nahiz eta normalean horrela izan behar ez den.",
+       "post-expand-template-inclusion-category-desc": "Orri hau  <code>$wgMaxArticleSize</code> baino handiagoa txantilioi guztiak zabaldu eta gero, horregatik batzuk ez dira zabaldu.",
+       "post-expand-template-argument-category-desc": "Orrialdea <code>$wgMaxArticleSize</ code> baino handiagoa da, txantiloiaren argumentua zabaldu ondoren (triple giltza duen zerbait, <code>{{{Foo}}}</ code> bezalakoa).",
+       "expensive-parserfunction-category-desc": "Orriak analisi funtzional garesti gehiegi erabiltzen ditu (like <code>#ifexist</code>). \nIkusi [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Orriak fitxategi hautsitako esteka bat du (fitxategi bat txertatzeko esteka fitxategia ez denean existitzen).",
        "hidden-category-category-desc": "Kategoriak <code><nowiki>__HIDDENCAT__</nowiki></code> darama bere orrialde edukian, orrien esteken kutxa orrian lehenespenez erakusteko saihesten duena.",
        "trackingcategories-nodesc": "Ez dago deskribapenik eskuragarri.",
        "undeletehistorynoadmin": "Artikulua ezabatu egin da. Ezabatzeko azalpena beheko laburpenean erakusten da, ezabatu aurretik parte hartu zuten erabiltzaileen xehetasunekin batera. Ezabatutako berrikuspenen oraingo testua administratzaileek bakarrik ikus dezakete.",
        "undelete-revision": "$1(e)n berrikuspen $3(e)k ezabatu du ($4(e)ko $5(e)tan):",
        "undeleterevision-missing": "Baliogabeko berrikuspena. Baliteke lotura ezegokia izatea, edo berriskupena leheneratu edo kendu izana.",
+       "undeleterevision-duplicate-revid": "{{PLURAL:$1|Berrikusketa bat ezin izan da|$1 berrikusketa ezin izan dira}} berregin, {{PLURAL:$1|bere|beraien}} <code>rev_id</code> erabiltzen zegoelako jada.",
        "undelete-nodiff": "Ez da aurkitu aurreko berrikuspenik.",
        "undeletebtn": "Leheneratu",
        "undeletelink": "ikusi/leheneratu",
        "import-nonewrevisions": "Ez da berrikuspenik inportatu (guztiak aurretiaz aurkeztu dira edo akatsengatik behertan behera utzi ziren).",
        "xml-error-string": "$1 $2 lerroan, $3 zutabean ($4 byte): $5",
        "import-upload": "Igo XML datuak",
-       "import-token-mismatch": "Sesio data galdu da. Saia saitez berriro ere, mesedez.",
+       "import-token-mismatch": "Saioaren datuen galera.\n\nBaliteke saioa amaituta egotea. '''Egiaztatu oraindik saioa hasita duzula eta saiatu berriro'''.\nOraindik ez badu funtzionatzen, saiatu [[Special:UserLogout|logout out]] eta saioa hasi berriro, eta egiaztatu zure nabigatzaileak gune honetako cookieak onartzen dituela.",
        "import-invalid-interwiki": "Ezin da esandako wikitik inportatu.",
        "import-error-edit": "\"$1\" orrialdea ez da inportatu aldatzeko baimenik ez duzulako.",
        "import-error-create": "\"$1\" orrialdea ez da inportatu sortzeko baimenik ez duzulako.",
        "import-error-interwiki": "\"$1\" orrialdea ez da inportatu bere izena kanpo loturetarako gordeta dagoelako (interwiki).",
        "import-error-special": "\"$1\" orrialdea ez da inportatu izen-tarte berezi bati dagokiolako eta horretan orrialderik ezin delako egon.",
        "import-error-invalid": "\"$1\" orrialdea ez da inportatu horretarako dagokion izena ez delako baliagarria wiki honetan.",
+       "import-error-unserialize": "\"$1\" orriko $2 berrikusketa ezin izan da deskategorizatu. Berrikusketa $4 bezala sailkatutako $3 eduki eredua erabiltzeko txostena bidali da.",
+       "import-error-bad-location": "$3 eduki eredua erabiltzen duen $2 berrikusketak ezin da wiki honetako $1 lekuan bildu, orri horretan eredu hori ez delako onartzen.",
        "import-options-wrong": "Aukera {{PLURAL:$2|ez-egokia|ez-egokiak}}:<nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Emandako jatorri orrialdea izenburu ez-baliagarria da.",
        "import-rootpage-nosubpage": "Jatorri orrialdearen «$1» izen-tarteak ez du baimentzen azpi-orrialderik.",
        "file-info-png-repeat": "{{PLURAL:$1|Behin|$1 aldiz}} ikusia",
        "file-info-png-frames": "{{PLURAL:$1|Frame bat|$1 frame}}",
        "file-no-thumb-animation": "'''Oharra: Muga teknikoak direla eta, fitxategi honen iruditxoak ezin dira animatu.'''",
+       "file-no-thumb-animation-gif": "<strong>Oharra: muga teknikoak direla eta, erresoluzio handiko GIF irudi hau bezalakoak ez dira animatuak izango. </strong>",
        "newimages": "Fitxategi berrien galeria",
        "imagelisttext": "Jarraian duzu $2(e)z ordenatutako {{PLURAL:$1|fitxategi baten|'''$1''' fitxategiren}} zerrenda.",
        "newimages-summary": "Orrialde berezi honek igotako azkeneko fitxategiak erakusten ditu.",
        "scarytranscludetoolong": "[URLa luzeegia da]",
        "deletedwhileediting": "'''Oharra''': Zu aldaketak egiten hasi ondoren orrialdea ezabatua izan da!",
        "confirmrecreate": "[[User:$1|$1]] erabiltzaileak ([[User talk:$1|eztabaida]]) {{GENDER:$1|deleted}} orrialde hau ezabatu zu aldatzen hasi eta gero arrazoi honekin:\n: <em>$2</em>\nMesedez, baieztatu benetan orrialde hau berriz sortu nahi duzula.",
+       "confirmrecreate-noreason": "[[User:$1|$1]] wikilariak ([[User talk:$1|talk]]) orri hau {{GENDER:$1|ezabatu}} du zuk aldatzen hasi eta gero. Mesedez, konfirmatu ezazu orri hau berregin nahi duzula.",
        "recreate": "Birsortu",
        "confirm-purge-title": "Orri hau purgatu",
        "confirm_purge_button": "Ados",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|eztabaida]])",
        "timezone-local": "Lokala",
        "duplicate-defaultsort": "Adi: Berezko \"$2\" antolatzeak aurreko berezko \"$1\" antolatzea gainditzen du.",
+       "duplicate-displaytitle": "<strong>Abisua:</strong> \"$2\" aurkezpen izenburua aurretiazko \"$1\"  aurkezpen izenburua baliogabetzen du.",
+       "restricted-displaytitle": "<strong>Abisua:</strong> \"$1\" aurkezpen izenburua ez da kontuan hartu orriak orain daukan izenburuarekin ez delako baliokidea.",
+       "invalid-indicator-name": "<strong>Akatsa:</strong> Orriaren egoera indikatzaileen atributu <code>izena</code> ezin da hutsik egon.",
        "version": "Bertsioa",
        "version-extensions": "Instalatutako luzapenak",
        "version-skins": "Instalatutako itxurak",
        "version-poweredby-others": "beste batzuk",
        "version-poweredby-translators": "translatewiki.net itzultzaileak",
        "version-credits-summary": "Hurrengo pertsonak gogoan izan nahi ditugu [[Special:Version|MediaWikiri]] egindako ekarpena dela eta.",
+       "version-license-info": "MediaWiki software librea da; birbanatu daitekena edota alda dezakezuna GNU Lizentzia Publiko Orokorraren baldintzapean, Free Software Foundation-ek argitaratutakoaren arabera; Lizentziaren 2. bertsioa edo (nahiago baduzu) bertsio berriago bat.\n\nMediaWiki partekatzen da erabilgarria izango delakoan, baina BERMERIK GABE; MERKATURATZEKO ez dela bermerik gabe edo HELBURU PARTIKULARRETARAKO izango den jakin gabe. Ikus GNU Lizentzia Publiko Orokorra xehetasun gehiagorako.\n\n{{SERVER}}{{SCRIPTPATH}}/COPYING lizentzia programa publiko orokorraren kopia bat jaso beharko zenuke honekin batera; bestela, idatzi Free Software Foundation-en, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, AEB edo [//www.gnu.org/licenses/old-licenses/gpl-2.0.html irakurri sarean].",
        "version-software": "Instalatutako softwarea",
        "version-software-product": "Produktua",
        "version-software-version": "Bertsioa",
        "tag-filter-submit": "Iragazkia",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Etiketa|Etiketak}}]]: $2)",
        "tag-mw-contentmodelchange": "Eduki eredu aldaketa",
+       "tag-mw-contentmodelchange-description": "Orri baten [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel change the content model] aldaketak",
        "tags-title": "Etiketak",
        "tags-intro": "Orri honek softwareak aldatzeko bezala marka ditzazkeen etiketak zerrendatzen ditu, eta berauen esanahia.",
        "tags-tag": "Etiketaren izena",
        "tags-create-invalid-chars": "Etiketak izenek ezin dezakete komak (<code>,</code>), hodi (<code>|</code>), edo barruti aurreraturik (<code>/</code>) eraman.",
        "tags-create-invalid-title-chars": "Etiketa izenak ezin du orri-tituluetan erabili ezin diren karaktererik eduki.",
        "tags-create-already-exists": "\"$1\" etiketa badago.",
+       "tags-create-warnings-above": "Hurrengo {{PLURAL:$2|abisua aurkitu da|abisuak aurkitu dira}} \"$1\" etiketa sortzen saiatzerakoan:",
        "tags-create-warnings-below": "Etiketaren sorrerarekin jarraitu nahi duzu?",
        "tags-delete-title": "Etiketa ezabatu",
        "tags-delete-explanation-initial": "Datu-basetik \"$1\" etiketa ezabatzera zoaz",
+       "tags-delete-explanation-in-use": "{{PLURAL:$2|$2 berrikusketa edo erregistro sarrera kenduko da|all $2 berrikusketa edota erregistro sarrera guztiak kenduko dira}} orain aplikatutako lekutik.",
+       "tags-delete-explanation-warning": "Akzio hau <strong>atzeraezina</strong> eta <strong>desegin</strong>ezin daitekeena da, ezta datu baseak antolatzen dituzten administratzaileen partez.Ezabatu nahi duzun etiketa hau dela ziurtatu.",
+       "tags-delete-explanation-active": "<strong>\"$1\" etiketa aktibo dago oraindik, eta etorkizunean aplikatzen jarraituko da.</strong> Hau ez gertatzea nahi bada, etiketa aplikatzeko jarrita dagoen leku(eta)ra jo, bertan ezgaitutzeko.",
        "tags-delete-reason": "Arrazoia:",
        "tags-delete-submit": "Betirako ezabatu etiketa hau",
        "tags-delete-not-allowed": "Luzapen batek definitutako etiketak ezin dira ezabatu, luzapenak bereziki baimendu ezean.",
        "tags-delete-not-found": "\"$1\" etiketa  ez da existitzen.",
+       "tags-delete-too-many-uses": "\"$1\" etiketa $2 {{PLURAL:$2|berrikusketa bat|berrikusketa}} baino gehiagotan aplikatu egin denez ezingo da ezabatu",
        "tags-delete-warnings-after-delete": "\"$1\" etiketa ezabatu egin da, baina hurrengo {{PLURAL:$2|abisua|abisuak}} aurkitu d(ir)a:",
        "tags-delete-no-permission": "Ez daukazu baimenik etiketa aldaketak ezabatzeko.",
        "tags-activate-title": "Etiketa aktibatu",
        "logentry-managetags-activate": "$1 {{GENDER:$2|erabiltzaileak}} \"$4\" etiketa erabiltzaile eta errobotek erabiltzeko aktibatu du",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|erabiltzaileak}} \"$4\" etiketa erabiltzaile eta errobotek erabiltzeko desaktibatu du",
        "log-name-tag": "Etiketen erregistroa",
+       "log-description-tag": "Orrialde honek erabiltzaileek [[Special:Tags|tags]] berrikuspenak bakarko edo erregistroko sarreretan gehitu edo kendu duten erakusten du. Erregistroak ez ditu zerrendatzen etiketatze-ekintzak editatzean, ezabatzean edo antzeko ekintzetan.",
        "logentry-tag-update-add-revision": "$1 wikilariak $6 {{PLURAL:$7|etiketa|etiketak}} $3 orriko $4 berrikusketara  {{GENDER:$2|gehitu}} egin d(it)u",
        "logentry-tag-update-add-logentry": "$1 wikilariak $6 {{PLURAL:$7|etiketa|etiketak}} $3 orriko $5 erregistro sarrerara  {{GENDER:$2|gehitu}} egin d(it)u",
        "logentry-tag-update-remove-revision": "$1 wikilariak $8 {{PLURAL:$9|etiketa|etiketak}} $3 orriko $4 berrikusketatik  {{GENDER:$2|kendu}} egin d(it)u",
        "logentry-tag-update-remove-logentry": "$1 wikilariak $8 {{PLURAL:$9|etiketa|etiketak}} $3 orriko $5 erregistro sarreratik  {{GENDER:$2|kendu}} egin d(it)u",
        "logentry-tag-update-revision": "$1 wikilariak $3 orriko $4 berrikusketan etiketak  {{GENDER:$2|eguneratu}} egin ditu ({{PLURAL:$7|gehitutakoak}}$6; {{PLURAL:$9|kendutakoak}} $8)",
+       "logentry-tag-update-logentry": "$1 wikilariak etiketak {{GENDER:$2|igo}} egin ditu $3 orriko $5 sarreran. ({{PLURAL:$7|gehituak}} $6; {{PLURAL:$9|kenduak}} $8)",
        "rightsnone": "(bat ere ez)",
        "rightslogentry-temporary-group": "$1 (momentuz, $2rarte)",
        "feedback-adding": "Orriari feedbacka gehitzen...",
        "feedback-back": "Atzera",
        "feedback-bugcheck": "Primeran! Soilik egiaztatu ez dagoela [$1 ezagututako zomorroak] barruan.",
        "feedback-bugnew": "Txekeatu dut. Bug berria bidaliko",
+       "feedback-bugornote": "Arazo tekniko bat xehetasunez deskribatzeko prest bazaude [bug baten berri eman $1] mesedez. Bestela, beheko formulario erraza erabil dezakezu. Zure iruzkina \"[$3 $2]\" orrialdean gehituko da, zure erabiltzaile-izenarekin batera.",
        "feedback-cancel": "Utzi",
        "feedback-close": "Egina",
        "feedback-external-bug-report-button": "Artxibatu lan tekniko bat",
        "expand_templates_generate_xml": "Erakutsi XML parse zuhaitza",
        "expand_templates_generate_rawhtml": "Erakutsi HTML gordina",
        "expand_templates_preview": "Aurreikusi",
+       "expand_templates_preview_fail_html": "<em> {{SITENAME}} HTML morroia gaituta duelako eta saio datuak galdu direnez,  aurrebista ezkutuko gisa ezkutatuta dago javascript-erasoen aurka babesteko. \n</em>\n\n<strong> Aurreikuspen saiakera bidezko bat bada, saiatu berriro mesedez. </strong>\nOraindik ez badu funtzionatzen, saiatu [[Special:UserLogout|logging out]] eta saioa berriro hasiz, eta egiaztatu zure nabigatzaileak gune honetako cookieak onartzen dituela.",
+       "expand_templates_preview_fail_html_anon": "<em> {{SITENAME}} HTML morroia gaituta duenez eta ez duzulako saioa hasi, aurrebista ezkutuan ezkutatuta dago javascript erasoen aurka. </em>\n\n<strong> Bidezkoa den aurrebista saiakera bat bada, mesedez [[Special:UserLogin|log in]] eta saiatu berriro. </strong>",
        "expand_templates_input_missing": "Gutxienez sarrera testuren bat eman behar duzu.",
        "pagelanguage": "Orriaren hizkuntza aldatu",
        "pagelang-name": "Orria",
        "log-name-pagelang": "Hizkuntza aldatu:",
        "log-description-pagelang": "Orrialdeetako hizkuntzen aldaketa saioa da hau.",
        "logentry-pagelang-pagelang": "$1k {{GENDER:$2|}} $3ren hizkuntza $4tik $5ra aldatu du",
+       "default-skin-not-found": "Whoops! Zure wikiaren azala lehenetsia, <code dir=\"ltr\">$wgDefaultSkin </code>n<code>$1</code> gisa definitua, ez dago erabilgarri.\n\nZure instalazioa {{PLURAL:$4|azal|azalak}} d(it)uela badirudi. Ikusi [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuala: Skin konfigurazioa] {{PLURAL:$4|it|horiek gaitu eta aukeratu lehenetsia}}.\n\n$2\n\n;MediaWiki instalatu baduzu:\n:Git-etik edo beste iturri kode batetik zuzenean instalatu duzu. Hau espero da. Saiatu larruazal batzuk instalatzen [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-en azala direktorioa], honela:\n:* [Https://www.mediawiki.org/wiki/Download tarball installer] deskargatzen du, hainbat motatako eta luzapenekin dator. Kopiatu eta itsatsi dezakezu <code>skins/</code> direktorioan.\n:* Azaleko tarballs banakako deskargatzea [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git erabiliz pantaila deskargatzeko].\n: Egiteko hau ez du zure git biltegian oztopatuko MediaWiki garatzailea bada.\n\n; MediaWiki bertsioa berritua baduzu:\n: MediaWiki 1.24 eta bertsio berriagoak ez dituzte automatikoki instalatutako pantailak automatikoki gaitzen (ikus [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). {{PLURAL:$5| linea|lineak}} ondorengoa itsats dezakezu <code>LocalSettings.php</code> sisteman {{PLURAL:$5|hori|guztiak}} instalatuta izateko {{PLURAL: $5|azala|azalak}}:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Aldatu baduzu <code>LocalSettings.php</code>:\n: Egiaztatu erroreen azalaren izenak bi aldiz.",
+       "default-skin-not-found-no-skins": "Whoops! Zure wikierako azala lehenetsia, <code>$wgDefaultSkin</code>, <code>$1</code> gisa definituta dagoena, ez dago erabilgarri.\n\nEz dago instalatutako egiturarik.\n\n; MediaWiki instalatu edo berritu baduzu:\n: Git-etik edo beste iturri kode batetik zuzenean instalatu duzu seguruenik. Hau espero da. MediaWiki 1.24 eta berriagoak ez dira biltegi nagusiko inongo azalpenik espero. Saiatu larruazal batzuk instalatzen [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org-en azala direktorioa], honela:\n: * [Https://www.mediawiki.org/wiki/Download tarball installer] deskargatzen du, hainbat motatako luzapenekin datorrena. Kopiatu eta itsatsi dezakezu <code>skins/</code> direktorioa hortik.\n: * Azaleko tarballs banaka deskargatzea [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n: * [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Git erabiliz pantaila deskargatzeko].\n:Egiteko hau ez du zure git biltegian oztopatuko MediaWiki garatzailea bada. Ikusi [https://www.mediawiki.org/wiki/Manual:Skin_configuration eskuliburua: Skin konfigurazioa] larruen gaitasunak nola egin jakiteko eta lehenetsi aukeratzeko.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (gaituta)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>desgaituta</strong>)",
        "mediastatistics": "Media estatistikak",
index 16a2cd8..19ba617 100644 (file)
        "anonpreviewwarning": "''شما به سامانه وارد نشده‌اید. ذخیره کردن باعث می‌شود که نشانی آی‌پی شما در تاریخچهٔ این صفحه ثبت گردد.''",
        "missingsummary": "'''یادآوری:''' شما خلاصهٔ ویرایش ننوشته‌اید.\nاگر دوباره دکمهٔ «$1» را فشار دهید ویرایش شما بدون آن ذخیره خواهد شد.",
        "selfredirect": "<strong>هشدار:</strong> شما در حال تغییرمسیر صفحه به خودش هستید.\nامکان دارد هدف اشتباهی را برای تغییرمسیر انتخاب کردید، یا ممکن است صفحهٔ اشتباهی را ویرایش می‌کنید.\n\nاگر بر روی «$1» دوباره کلیک کنید، تغییرمسیر ساخته خواهد شد.",
-       "missingcommenttext": "Ù\84Ø·Ù\81اÙ\8b ØªÙ\88ضÛ\8cØ­Û\8c Ø¯Ø± Ø²Û\8cر Ø¨Û\8cÙ\81زاÛ\8cÛ\8cد.",
+       "missingcommenttext": "لطفاً توضیحی بیفزایید.",
        "missingcommentheader": "<strong>یادآوری:</strong> شما موضوع/عنوان این یادداشت را مشخص نکرده‌اید.\nاگر دوباره دکمهٔ «$1» را فشار دهید ویرایش شما بدون آن ذخیره خواهد شد.",
        "summary-preview": "پیش‌نمایش خلاصه:",
        "subject-preview": "پیش‌نمایش موضوع:",
        "recentchanges-legend": "گزینه‌های تغییرات اخیر",
        "recentchanges-summary": "آخرین تغییرات ویکی را در این صفحه پی‌گیری کنید.",
        "recentchanges-noresult": "در فاصله زمانی ارائه شده هیچ تغییری با این معیارهای صورت نگرفته است",
+       "recentchanges-timeout": "این جستجو زمانش تمام شد. اگر مایلید کلیدواژه‌های دیگری را جستجو کنید.",
        "recentchanges-feed-description": "آخرین تغییرات ویکی را در این خوراک پی‌گیری کنید.",
        "recentchanges-label-newpage": "این ویرایش صفحه‌ای تازه ایجاد کرد",
        "recentchanges-label-minor": "این یک ویرایش جزئی است",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|ساعت|ساعت}}",
        "rcfilters-highlighted-filters-list": "پررنگ شده: $1",
        "rcfilters-quickfilters": "پالایه‌های ذخیره‌شده",
-       "rcfilters-quickfilters-placeholder-title": "هنوز پیوندی ذخیره نشده‌است",
+       "rcfilters-quickfilters-placeholder-title": "هنوز پالایه‌ای ذخیره نشده‌است",
        "rcfilters-quickfilters-placeholder-description": "برای ذخیره پالایه‌هایتان و استفاده مجدد آنها، در محیط فعال پالایه در پایین بر روی دکمهٔ بوک‌مارک کلیک کنید.",
        "rcfilters-savedqueries-defaultlabel": "پالایه‌های ذخیره‌شده",
        "rcfilters-savedqueries-rename": "تغییر نام",
index f5eab1e..28c580e 100644 (file)
        "anonpreviewwarning": "''Et ole kirjautunut sisään. Tallentaminen kirjaa IP-osoitteesi tämän sivun muutoshistoriaan.''",
        "missingsummary": "Et ole antanut yhteenvetoa. Jos valitset Tallenna uudelleen, niin muokkauksesi tallennetaan ilman yhteenvetoa.",
        "selfredirect": "<strong>Varoitus:</strong> Olet tekemässä uudelleenohjausta, joka johtaa tästä sivusta tähän samaan sivuun. \n\nOlet ehkä määrittänyt ohjauksen kohteen väärin tai kenties muokkaat parhaillaan väärää sivua.\n\nJos painat toimintoa \"$1\" uudestaan, tämä ohjaussivu luodaan joka tapauksessa.",
-       "missingcommenttext": "Kirjoita viesti alle.",
+       "missingcommenttext": "Kirjoita kommentti.",
        "missingcommentheader": "<strong>Muistutus:</strong> Et ole antanut aiheotsikkoa tälle kommentille. Napsauta ”$1”, jos haluat tallentaa kommenttisi ilman sellaista.",
        "summary-preview": "Yhteenvedon esikatselu:",
        "subject-preview": "Aiheotsikon esikatselu:",
        "grant-editprotected": "Muokata suojattuja sivuja",
        "grant-highvolume": "Suorittaa paljon muokkauksia",
        "grant-oversight": "Piilottaa käyttäjiä ja häivyttää yksittäisiä versioita",
-       "grant-patrol": "Partioida sivuihin tehtyjä muutoksia",
+       "grant-patrol": "Tarkastaa sivuihin tehtyjä muutoksia",
        "grant-privateinfo": "Päästä näkemään yksityiset tiedot",
        "grant-protect": "Suojata sivuja tai poistaa suojauksia",
        "grant-rollback": "Palauttaa sivuun tehtyjä muutoksia",
        "rcfilters-filter-user-experience-level-unregistered-label": "Rekisteröimätön",
        "rcfilters-filter-user-experience-level-unregistered-description": "Muokkaajat, jotka eivät ole kirjautuneet sisään.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Tulokkaat",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Rekisteröityneet muokkaajat, joilla vähemmän kuin 10 muokkausta ja 4 päivää aktiivisuutta.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Rekisteröityneet muokkaajat, joilla vähemmän kuin 10 muokkausta tai 4 päivää aktiivisuutta.",
        "rcfilters-filter-user-experience-level-learner-label": "Oppijat",
        "rcfilters-filter-user-experience-level-learner-description": "Rekisteröityneet muokkaajat, joiden kokemus on välillä \"tulokas\" ja \"kokenut käyttäjä\".",
        "rcfilters-filter-user-experience-level-experienced-label": "Kokeneet käyttäjät",
        "delete-warning-toobig": "Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistaminen voi haitata sivuston suorituskykyä.",
        "deleteprotected": "Et voi poistaa tätä sivua, koska se on suojattu.",
        "deleting-backlinks-warning": "<strong>Varoitus:</strong> Sivulle, jota olet poistamassa, johtaa [[Special:WhatLinksHere/{{FULLPAGENAME}}|linkkejä muilta sivuilta]], taikka sivu on sisällytetty muuhun sivuun.",
+       "deleting-subpages-warning": "<strong>Varoitus:</strong> Sivu jota olet poistamassa on [[Special:PrefixIndex/{{FULLPAGENAME}}/|{{PLURAL:$1|alasivu|$1 alasivua|51=yli 50 alasivua}}]].",
        "rollback": "palauta aiempaan versioon",
        "rollbacklink": "palauta",
        "rollbacklinkcount": "palauta $1 {{PLURAL:$1|muutos|muutosta}}",
        "undelete-search-title": "Etsi poistettuja sivuja",
        "undelete-search-box": "Etsi poistettuja sivuja",
        "undelete-search-prefix": "Näytä sivut, jotka alkavat merkkijonolla:",
+       "undelete-search-full": "Näytä sivut, joiden otsikko sisältää:",
        "undelete-search-submit": "Hae",
        "undelete-no-results": "Poistoarkistosta ei löytynyt haettuja sivuja.",
        "undelete-filename-mismatch": "Tiedoston versiota, jonka aikaleima on $1, ei voi palauttaa, koska tiedostonimi ei ole sama.",
        "compare-title-not-exists": "Määrittämääsi sivua ei ole.",
        "compare-revision-not-exists": "Määrittämääsi versiota ei ole.",
        "diff-form": "Eroavaisuudet",
+       "permanentlink": "Pysyvä linkki",
        "dberr-problems": "Tällä sivustolla on teknisiä ongelmia.",
        "dberr-again": "Odota hetki ja lataa sivu uudelleen.",
        "dberr-info": "(Tietokantaan ei saada yhteyttä: $1)",
index 4cce904..202f247 100644 (file)
        "recentchanges-legend": "Options des modifications récentes",
        "recentchanges-summary": "Suivez les changements les plus récents du wiki sur cette page.",
        "recentchanges-noresult": "Aucune modification correspondant à ces critères sur la période indiquée.",
+       "recentchanges-timeout": "Cette recherche a dépassé le délai imparti. Vous pouvez vouloir essayer avec des paramètres de recherche différents.",
        "recentchanges-feed-description": "Suivez les dernières modifications du wiki dans ce flux.",
        "recentchanges-label-newpage": "Cette modification a créé une nouvelle page",
        "recentchanges-label-minor": "Cette modification est mineure.",
index 3ce34b0..afe6cb6 100644 (file)
@@ -26,7 +26,6 @@
        "underline-always": "Soddankal",
        "underline-never": "Kednach na",
        "underline-default": "Skin vo browsera pormonnem",
-       "editfont-default": "Browsera pormonnem",
        "sunday": "Aitar",
        "monday": "Somar",
        "tuesday": "Mongllar",
        "mytalk": "Bhasabhas",
        "navigation": "Dixa-niontronn",
        "and": "&#32;ani",
-       "qbfind": "Sod",
-       "qbbrowse": "Bhovndi mar",
-       "qbedit": "Bodol",
-       "qbpageoptions": "Hem pan",
-       "qbmyoptions": "Mhoji panam",
        "faq": "Porot porot vicharlele prosn",
-       "faqpage": "Project:Porot porot vicharlele prosn",
        "actions": "Kornnio",
        "namespaces": "Nanvthollam",
        "variants": "Dusre",
        "edit-local": "Thollavem vornon bodol",
        "create": "Roch",
        "create-local": "Thollavem vornon zod",
-       "editthispage": "Hem pan bodol",
-       "create-this-page": "Ho pan roch",
        "delete": "Kadun udoi",
-       "deletethispage": "Hem pan kad",
-       "undeletethispage": "Hem pan punorsthapit kor",
        "undelete_short": "{{PLURAL:$1|Ek kadun udoil'lo bodol|$1 kadun udoil'le bodlopam}} portun had",
        "viewdeleted_short": "{{PLURAL:$1|Ek kadun udoil'lo bodol|$1 kadun udoil'le bodlopam}} dakhoi",
        "protect": "Rakh",
        "protect_change": "bodol",
-       "protectthispage": "Hem pan rakh",
        "unprotect": "Surokxechem sthor bodol",
-       "unprotectthispage": "Hem panachem surokxechem sthor bodol",
        "newpage": "Novem pan",
-       "talkpage": "Hea panachem bhasabhas kor",
        "talkpagelinktext": "Bhasabhas",
        "specialpage": "Vixex pan",
        "personaltools": "Khasgi avtam",
-       "articlepage": "Vixoi sombondhi pan poloi",
        "talk": "Bhasabhas",
        "views": "Drishya",
        "toolbox": "Avtam",
-       "userpage": "Vangddiacho pan poloi",
-       "projectpage": "Prokolpachem pan poloi",
        "imagepage": "Imazichem pan poloi",
        "mediawikipage": "Sondexachem pan polloi",
        "templatepage": "Sanchechem pan polloi",
        "hiddencategories": "Hem pan {{PLURAL:$1|1 lipoilelea vorgacho vangddi|$1 lipoileleam vorgancho vangddi}}:",
        "permissionserrorstext-withaction": "$2, hem korpak tuka porvangi na, {{PLURAL:$1|hea karnnak lagon|hea karnnank lagun}}:",
        "recreate-moveddeleted-warn": "<strong>Xittkavnni: Tum ek pan porot rochtai jem fattim kadun udoilelem.<strong>\n\nPanacho sudar korop sarkem zalear dhean di.\nPan kadoupachem ani halovpachem sotr, sovloti khatir hangasor dilelem asa:",
-       "moveddeleted-notice": "Hem pan kadun udoilelem asa.\nPanachea kadun udounechi ani hallovnechi sotr sondorba khatir sokoil dilea.",
+       "moveddeleted-notice": "Hem pan kadun udoilelem asa.\nPanachea kadun udounechi, rakhpachi, ani hallovnechi sotr sondorba khatir sokoil dilea.",
        "content-model-wikitext": "wikimozkur",
        "content-model-text": "Sado mozkur",
        "post-expand-template-inclusion-warning": "'''Chotrai:''' Sacho zoddpacho akar chod vhodlem asa.\nThodde sache zoddchenant",
index e7d8bfb..455ecac 100644 (file)
        "recentchanges-legend": "אפשרויות בשינויים האחרונים",
        "recentchanges-summary": "ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.",
        "recentchanges-noresult": "לא היו בתקופה זו שינויים המתאימים לאפשרויות שנבחרו.",
+       "recentchanges-timeout": "נגמר זמן ההמתנה לקבלת תוצאות החיפוש. ניתן לנסות פרמטרים אחרים לחיפוש.",
        "recentchanges-feed-description": "ניתן לעקוב אחרי השינויים האחרונים באתר בדף זה.",
        "recentchanges-label-newpage": "בעריכה זו נוצר דף חדש",
        "recentchanges-label-minor": "זוהי עריכה משנית",
index d4d6037..547a2fd 100644 (file)
        "prefs-email": "Mogućnosti e-maila",
        "prefs-rendering": "Izgled",
        "saveprefs": "Spremi",
-       "restoreprefs": "Vrati sve postavke na prvotno zadane",
+       "restoreprefs": "Vrati sve postavke na prvobitno zadane (u svim odjeljcima)",
        "prefs-editing": "Uređivanje",
        "searchresultshead": "Prikaz rezultata pretrage",
        "stub-threshold": "Prag za formatiranje poveznice na mrve ($1):",
        "email-blacklist-label": "Zabrani sljedećim suradnicima da mi šalju e-poruke:",
        "prefs-searchoptions": "Način traženja",
        "prefs-namespaces": "Imenski prostori",
-       "default": "prvotno",
+       "default": "predodređeno",
        "prefs-files": "Datoteke",
        "prefs-custom-css": "Prilagođen CSS",
        "prefs-custom-js": "Prilagođen JS",
        "rcfilters-filter-watchlist-notwatched-label": "Izvan popisa praćenja",
        "rcfilters-filter-watchlist-notwatched-description": "Sve izmjene na stranicama osim onih na popisu praćenja.",
        "rcfilters-filtergroup-changetype": "Vrste promjena",
-       "rcfilters-filter-pageedits-label": "Uređivanja stranice",
+       "rcfilters-filter-pageedits-label": "Uređivanja stranica",
        "rcfilters-filter-pageedits-description": "Uređivanja wikisadržaja, rasprave, opisi kategorija...",
        "rcfilters-filter-newpages-label": "Stvaranje stranica",
        "rcfilters-filter-newpages-description": "Uređivanja kojima su stvorene nove stranice.",
index 9e993e2..cb8d5ec 100644 (file)
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|hora|horas}}",
        "rcfilters-highlighted-filters-list": "Mittite in evidentia: $1",
        "rcfilters-quickfilters": "Filtros salveguardate",
-       "rcfilters-quickfilters-placeholder-title": "Nulle ligamine salveguardate ancora",
+       "rcfilters-quickfilters-placeholder-title": "Nulle filtro salveguardate ancora",
        "rcfilters-quickfilters-placeholder-description": "Pro salveguardar tu filtros pro uso posterior, clicca sur le icone marcapaginas in le area Filtro Active hic infra.",
        "rcfilters-savedqueries-defaultlabel": "Filtros salveguardate",
        "rcfilters-savedqueries-rename": "Renominar",
        "uploaded-script-svg": "Un elemento de script \"$1\" se trova in le file SVG incargate.",
        "uploaded-hostile-svg": "Certe codice CSS insecur se trova in le elemento de stilo del file SVG incargate.",
        "uploaded-event-handler-on-svg": "Fixar attributos de gestion de eventos <code>$1=\"$2\"</code> non es permittite in files SVG.",
-       "uploaded-href-attribute-svg": "Le attributos href in files SVG pote solmente ligar a adresses http:// o https://, ma un adresse <code>&lt;$1 $2=\"$3\"&gt;</code> ha essite trovate.",
+       "uploaded-href-attribute-svg": "Le elementos <a> in files SVG pote solmente ligar (href) a datos: files incastrate, adresses http:// o https:// o marcatores de fragmento (#, same-document). Pro altere elementos, solmente data: e fragmentos es permittite. Essaya a incastrar imagines quando tu exporta tu SVG. Trovate: <code>&lt;$1 $2=\"$3\"&gt;</code>.",
        "uploaded-href-unsafe-target-svg": "Un href a datos non secur: le URI <code>&lt;$1 $2=\"$3\"&gt;</code> se trova in le file SVG incargate.",
        "uploaded-animate-svg": "Un etiqueta \"animate\" que poterea cambiar le href, usante le attributo \"from\" <code>&lt;$1 $2=\"$3\"&gt;</code>, se trova in le file SVG incargate.",
        "uploaded-setting-event-handler-svg": "Fixar le attributos de gestion de eventos non es permittite, ma le codice <code>&lt;$1 $2=\"$3\"&gt;</code> se trova in le file SVG incargate.",
index 0d8565d..7cae851 100644 (file)
        "rev-delundel": "owah pakatonan",
        "rev-showdeleted": "tuduhaké",
        "revisiondelete": "Busak/wurung busak révisi",
-       "revdelete-nooldid-title": "Rèvisi tujuan ora sah",
+       "revdelete-nooldid-title": "Révisi tujuan ora trep",
        "revdelete-nooldid-text": "Panjenengan durung mènèhi target revisi kanggo nglakoni fungsi iki.",
        "revdelete-no-file": "Barkas sing dipéngini ora ana.",
        "revdelete-show-file-confirm": "Apa panjenengan yakin arep mirsani révisi sing wis kabusak saka berkas \"<nowiki>$1</nowiki>\" ing $2, jam $3?",
        "revdelete-log": "Alesan:",
        "revdelete-submit": "Trapna ing {{PLURAL:$1|révisi|révisi}} kapilih",
        "revdelete-success": "Kekatonan owahan wis dianyari.",
-       "revdelete-failure": "'''Panampakan rèvisi ora bisa dianyari:'''\n$1",
+       "revdelete-failure": "Pakatonané révisiné ora bisa dianyari:\n$1",
        "logdelete-success": "Kekatonan log wis disetèl.",
        "logdelete-failure": "'''Aturan pandhelikan ora bisa disèt:'''\n$1",
        "revdel-restore": "Ngowahi visiblitas (pangatonan)",
        "mergehistory-fail": "Ora bisa nggabung sajarah, coba dipriksa manèh kacané lan paramèter wektuné.",
        "mergehistory-fail-invalid-source": "Kaca sumber ora trep.",
        "mergehistory-fail-invalid-dest": "Kaca paran ora trep.",
-       "mergehistory-fail-no-change": "Panggabung sajarah ora nggabungaké rèvisi. Mangga priksanen kaca lan paramèter wektuné.",
+       "mergehistory-fail-no-change": "Panggabung ing kala kawuri ora kasil nggabungaké révisi babar blas. Mangga priksanen manèh kaca lan paramèter wektuné.",
        "mergehistory-fail-self-merge": "Kaca asal lan kaca paran padha.",
-       "mergehistory-fail-timestamps-overlap": "Rèvisi asal tumpuk-undhung utawa njedhul sawisé révisi paran.",
+       "mergehistory-fail-timestamps-overlap": "Révisi asal tumpuk-undhung utawa njedhul sawisé révisi tujuan.",
        "mergehistory-fail-toobig": "Ora bisa nggabungaké sajarah amarga {{PLURAL:$1|révisi}} sing arep dilih munjuli $1.",
        "mergehistory-no-source": "Kaca sumber $1 ora ana.",
        "mergehistory-no-destination": "Kaca paran $1 ora ana.",
        "difference-title-multipage": "Béda antarané kaca \"$1\" lan \"$2\"",
        "difference-multipage": "(Prabédhan antar kaca)",
        "lineno": "Larik $1:",
-       "compareselectedversions": "Bandhingaké rèvisi sing kapilih",
+       "compareselectedversions": "Bandhingaké révisi sing kapilih",
        "showhideselectedversions": "Tampilaké/dhelikaké révisi kapilih",
        "editundo": "wurung",
        "diff-empty": "(Ora ana béda)",
        "diff-multi-sameuser": "({{PLURAL:$1|Sarévisi antara|$1 révisi antara}} déning panganggo sing padha sing ora katuduhaké)",
        "diff-multi-otherusers": "({{PLURAL:$1|Siji révisi langsung|$1 révisi langsung}} déning {{PLURAL:$2|siji panganggo liyané|$2 panganggo}} ora dituduhaké)",
-       "diff-multi-manyusers": "({{PLURAL:$1Siji rèvisi sedhengan|$1 rèvisi sedhengan}} déning luwih saka $2 {{PLURAL:$2|panganggo|panganggo}} ora dituduhaké)",
+       "diff-multi-manyusers": "({{PLURAL:$1|Siji révisi langsung|$1 révisi langsung}} déning {{PLURAL:$2|panganggo|panganggo}} $2 ora katuduhaké)",
        "difference-missing-revision": "{{PLURAL:$2|Sak pambenahan|$2 pambenahan}} saka prabédan iki ($1) {{PLURAL:$2|ora ditemokaké|ora ditemokaké}}.\n\nIki biasané kasebab pranala prabedan sing wis ora kanggo saka kaca isi wis dibusak.\nRinciané bisa ditemokaké nèng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log busak].",
        "searchresults": "Kasiling golèk",
        "searchresults-title": "Kasiling golèk \"$1\"",
        "rcshowhidecategorization": "$1 kategorisasi kaca",
        "rcshowhidecategorization-show": "Tuduhaké",
        "rcshowhidecategorization-hide": "Dhelikaké",
-       "rclinks": "Tuduhaké $1 owahan pungkasan kawit $2 dina kapungkur.",
+       "rclinks": "Tuduhaké $1 owahan pungkasan ing dalem $2 dina pungkasan.",
        "diff": "béd",
        "hist": "saj",
        "hide": "Dhelikaké",
        "undeletepagetitle": "'''Ing ngisor iki kapacak daftar révisi sing dibusak saka [[:$1]]'''.",
        "viewdeletedpage": "Deleng kaca sing wis dibusak",
        "undeletepagetext": "{{PLURAL:$1|kaca iki wis dibusak nanging isih|$1 kaca iki wis dibusak nanging isih}} ana ing arsip lan bisa dibalèkaké.\nArsip bisa diresiki sakala-kala.",
-       "undelete-fieldset-title": "Mulihaké rèvisi",
+       "undelete-fieldset-title": "Pulihaké révisi",
        "undeleteextrahelp": "Saperlu mulihaké kabèh surajah kaca, jaraké kothak cèk kosong banjur klik <strong><em>{{int:undeletebtn}}</em></strong>.\nSaperlu ngayahi réstorasi sèlèktif, cèk kothak sing magepokan karo révisi sing arep dipulihaké, banjur klik <strong><em>{{int:undeletebtn}}</em></strong>.",
        "undeleterevisions": "$1 {{PLURAL:$1|révisi|révisi}} diarsipaké",
        "undeletehistory": "Yèn panjenengan mbalèkaké kaca, kabèh révisi bakal dibalèkaké jroning sajarah.\nYèn sawijining kaca anyar kanthi jeneng sing padha wis digawé wiwit nalika pambusakan, révisi sing wis dibalèkaké bakal katon jroning sajarah sadurungé.",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ngalih}} kaca $3 menyang $4 tanpa ninggal alihan",
        "logentry-move-move_redir": "$1 {{GENDER:$2|ngalih}} kaca $3 menyang $4 kanthi nindhihi alihan",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|ngalih}} kaca $3 menyang $4 kanthi nindhihi alihan tanpa nginggal alihan",
-       "logentry-patrol-patrol": "$1 {{GENDER:$2|nengeri}} rèvisi $4 saka kaca $3 sing diawasi",
+       "logentry-patrol-patrol": "$1 {{GENDER:$2|nengeri}} révisi $4 saka kaca $3 sing diawasi",
        "logentry-patrol-patrol-auto": "$1 otomatis {{GENDER:$2|nandhani}} benahan $4 saka kaca $3 kaawasake",
        "logentry-newusers-newusers": "Akun panganggo $1 {{GENDER:$2|digawé}}",
        "logentry-newusers-create": "Akun panganggo $1 {{GENDER:$2|digawé}}",
index 8f966cc..e404fda 100644 (file)
        "tooltip-minoredit": "이 편집을 사소한 편집으로 표시하기",
        "tooltip-save": "바뀐 내용 저장하기",
        "tooltip-publish": "변경사항 게시",
-       "tooltip-preview": "ë°\94ë\80\9cì\9d\84 ë¯¸ë¦¬ ë´\85ë\8b\88ë\8b¤. ì \80ì\9e¥í\95\98기 ì \84ì\97\90 ë¯¸ë¦¬ ë³´ê¸°ë¥¼ í\95´ì£¼ì\84¸ì\9a\94!",
+       "tooltip-preview": "ë°\94ë\80\90 ë\82´ì\9a©ì\9d\84 ë¯¸ë¦¬ ë´\85ë\8b\88ë\8b¤. ì \80ì\9e¥í\95\98기 ì \84ì\97\90 ë¯¸ë¦¬ ë³´ê¸°ë¥¼ í\95´ì£¼ì\84¸ì\9a\94.",
        "tooltip-diff": "자신이 바꾼 내용 보기",
        "tooltip-compareselectedversions": "이 문서에서 선택한 두 판 간의 차이를 비교",
        "tooltip-watch": "이 문서를 주시문서 목록에 추가",
index f129579..47c997f 100644 (file)
        "badaccess": "Erro de premisson",
        "versionrequired": "Ye percisa la beson $1 de l MediaWiki",
        "ok": "OK",
+       "pagetitle": "$1 - {{SITENAME}}",
        "retrievedfrom": "Sacado an \"$1\"",
        "youhavenewmessages": "{{PLURAL:$3|Tu tenes}} $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|Ten}} $1 de {{PLURAL:$3|outro outelizador|$3 outelizadores}} ($2).",
        "year": "De l anho (i atrasados):",
        "sp-contributions-newbies": "Percurar solo an las cuntribuiçones de nuobas cuontas",
        "sp-contributions-newbies-sub": "Pa cuontas nuobas",
+       "sp-contributions-newbies-title": "Cuntrebuiçones de cuontas nuobas",
        "sp-contributions-blocklog": "registro de bloqueios",
        "sp-contributions-uploads": "cargaduras",
        "sp-contributions-logs": "registros",
        "blocklink": "bloquiar",
        "unblocklink": "zbloquiar",
        "change-blocklink": "altarar bloqueio",
-       "contribslink": "cuntribs",
+       "contribslink": "cuntrebuiçones",
        "blocklogpage": "Registro de bloqueios",
        "blocklogentry": "\"[[$1]]\" fui bloquiado cun un tiempo de balidade de $2 $3",
        "reblock-logentry": "modificou ls parámetros de l bloqueio de [[$1]] cun spiraçon de $2, $3",
        "tag-filter": "Filtrar las [[Special:Tags|etiquetas]]:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Eitiqueta|Eitiquetas}}]]: $2)",
        "tags-title": "Eitiquetas",
+       "tags-source-header": "Ourige",
        "tags-active-yes": "Si",
        "tags-active-no": "Nó",
        "tags-edit": "eiditar",
index 3e775b3..c9bdf45 100644 (file)
        "anonpreviewwarning": "<em>Du er ikke logget inn. Ved lagring vil IP-adressen din lagres i sidens redigeringshistorikk.</em>",
        "missingsummary": "'''Påminnelse:''' Du har ikke lagt inn en redigeringsforklaring.\nVelger du ''Lagre siden'' en gang til blir endringene lagret uten forklaring.",
        "selfredirect": "<strong>Advarsel:</strong> Du omdirigerer denne siden til seg selv. Du kan ha oppgitt feil mål for omdirigeringen, eller kanskje du redigerer feil side. Om du klikker «$1» igjen vil omdirigeringen bli opprettet uansett.",
-       "missingcommenttext": "Vennligst legg inn en kommentar under.",
+       "missingcommenttext": "Vennligst legg inn en kommentar.",
        "missingcommentheader": "<strong>Påminnelse:</strong> Du har ikke angitt et emne/overskrift for denne kommentaren.\nOm du trykker «$1» igjen vil redigeringen din bli lagret uten forklaring.",
        "summary-preview": "Forhåndsvisning av redigeringsforklaring:",
        "subject-preview": "Forhåndsvisning av overskrift:",
        "rcfilters-filter-user-experience-level-unregistered-label": "Uregistrerte",
        "rcfilters-filter-user-experience-level-unregistered-description": "Brukere som ikke er logget inn.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Nykommere",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Registrerte brukere med færre enn 10 redigeringer og 4 dagers aktivitet.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Registrerte brukere som har gjort færre enn 10 redigeringer eller vært aktive i mindre enn 4 dager.",
        "rcfilters-filter-user-experience-level-learner-label": "Nybegynnere",
        "rcfilters-filter-user-experience-level-learner-description": "Registrerte brukere med mer erfaring enn «Nykommere», men mindre enn «Erfarne brukere».",
        "rcfilters-filter-user-experience-level-experienced-label": "Erfarne brukere",
        "apisandbox": "API-sandkasse",
        "apisandbox-jsonly": "JavaScript kreves for å bruke API-sandkassa.",
        "apisandbox-api-disabled": "API er deaktivert på dette nettstedet.",
-       "apisandbox-intro": "Bruk denne siden for å eksperimentere med <strong>MediaWiki webtjeneste-APIet</strong>.\nSjekk [[mw:API:Main page|API-dokumentasjonen]] for mer informasjon om bruk av APIet. Eksempel: [https://www.mediawiki.org/wiki/API#A_simple_example hente innholdet til en hovedside]. Velg en handling for å se flere eksempler.\n\nMerk at du kan utføre handlinger her som fører til endringer på wikien.",
+       "apisandbox-intro": "Bruk denne siden for å eksperimentere med <strong>webtjenesteprogrammeringsgrensesnittet til MediaWiki</strong>.\nSe [[mw:API:Main page|API-dokumentasjonen]] for mer informasjon om bruk. Eksempel: [https://www.mediawiki.org/wiki/API#A_simple_example hente innholdet til en hovedside]. Velg en handling for å se flere eksempler.\n\nMerk at selv om dette er en sandkasse så kan du utføre handlinger her som fører til endringer på wikien.",
        "apisandbox-fullscreen": "Utvid panelet",
        "apisandbox-fullscreen-tooltip": "Utvid sandkassepanelet så det dekker nettleservinduet.",
        "apisandbox-unfullscreen": "Vis siden",
index 62f0c48..3f7ec0d 100644 (file)
@@ -64,7 +64,6 @@
        "underline-never": "କେବେନୁହେଁ",
        "underline-default": "ବ୍ରାଉଜର କିମ୍ବା ସ୍କିନରେ ଆଗରୁ ଥିବା ସୁବିଧା",
        "editfont-style": "ଫଣ୍ଟ ଶୈଳୀକୁ ବଦଳାଇବେ:",
-       "editfont-default": "ବ୍ରାଉଜରରେ ଆଗରୁ ଥିବା ସୁବିଧା",
        "editfont-monospace": "ମନୋସ୍ପେସ ଥିବା ଫଣ୍ଟ",
        "editfont-sansserif": "ସାନ୍ସ-ସେରିଫ ଫଣ୍ଟ",
        "editfont-serif": "ସେରିଫ ଫଣ୍ଟ",
        "savearticle": "ସାଇତିବେ [Save]",
        "savechanges": "ସାଇତିବେ [Save]",
        "publishpage": "ପୃଷ୍ଠା ପ୍ରକାଶ କରନ୍ତୁ",
-       "publishchanges": "ବଦଳଗୁଡିକ ପ୍ରକାଶ କରନ୍ତୁ",
+       "publishchanges": "ବଦଳà¬\97à­\81ଡ଼ିà¬\95 à¬ªà­\8dରà¬\95ାଶ à¬\95ରନà­\8dତà­\81",
        "preview": "ସାଇତିବା ଆଗରୁ ଦେଖନ୍ତୁ",
        "showpreview": "ଦେଖଣା [Preview]",
        "showdiff": "ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ",
        "explainconflict": "ଆପଣ ବଦଳାଇବା ଆରମ୍ଭ କରିବା ଭିତରେ କେହିଜଣେ ଏହି ପୃଷ୍ଠାକୁ ବଦଳାଇଛନ୍ତି ।\nଉପର ଲେଖା ଜାଗାଟି ଏହା ଯେମିତି ଅଛି ସେମିତି ଥିବା ଲେଖାଟି ଦେଖାଉଛି ।\nତଳ ଜାଗାଟିରେ ଆପଣ କରିଥିବା ବଦଳ ଦେଖାଉଛି ।\nଏବେ ଥିବା ଲେଖାରେ ଆପଣଙ୍କୁ ନିଜ ବଦଳକୁ ମିଶାଇବାକୁ ହେବ ।\nଯଦି ଆପଣ \"$1\" ଦବାନ୍ତି ତେବେ '''କେବଳ''' ଉପର ଲେଖାଟି ସାଇତା ହୋଇଯିବ ।",
        "yourtext": "ଆପଣଙ୍କ ଲେଖା",
        "storedversion": "ସାଇତା ସଙ୍କଳନ",
-       "nonunicodebrowser": "'''ଚେତାବନୀ: ଆପଣଙ୍କ ବ୍ରାଉଜରରେ ଇଉନିକୋଡ଼ ସଚଳ କରାଯାଇନାହିଁ ।'''\nଏକ ୱର୍କାଆରାଉଣ୍ଡ ଏକ ଏହିପରି ଜାଗା ଯାହା ଆପଣଙ୍କୁ ନିରାପଦ ଭାବରେ ପୃଷ୍ଠା ସମ୍ପାଦନ କରିବାରେ ସାହାଯ୍ୟ କରିଥାଏ: ଅଣ-ASCII ଅକ୍ଷରସମୂହ ସମ୍ପାଦନା ଘରେ ହେକ୍ସାଡେସିମାଲ କୋଡ଼ ରୂପେ ଦେଖାଯିବ ।",
        "editingold": "'''ଚେତାବନୀ: ଆପଣ ଏହି ପୃଷ୍ଠାର ଏକ ଅଚଳ ପୁରାତନ ସଙ୍କଳନକୁ ବଦଳାଉଛନ୍ତି ।'''\nଯଦି ଆପଣ ଏହାକୁ ସାଇତିବେ, ନୂଆ ସଙ୍କଳନ ଯାଏଁ କରାଯାଇଥିବା ସବୁ ବଦଳ ନଷ୍ଟ ହୋଇଯିବ ।",
        "yourdiff": "ତଫାତ",
        "copyrightwarning": "ଦୟାକରି ଜାଣିରଖନ୍ତୁ ଯେ {{SITENAME}}କୁ ସବୁଯାକ ଅବଦାନ $2 ଅଧିନରେ ପ୍ରକାଶ କରାଯିବ । (ଅଧିକ ଜାଣିବା ପାଇଁ $1 ଦେଖନ୍ତୁ)\nଯଦି ଆପଣ ନିଜର ଲେଖା ନିର୍ଦୟ ଭାବେ ସମ୍ପାଦିତ ହେଉ ବୋଲି ଚାହୁଁନାହାନ୍ତି ବା ବଣ୍ଟନ କରାଯାଉ ବୋଲି ଚାହୁଁ ନାହାନ୍ତି ତେବେ ତାହା ଏଠାରେ ଦିଅନ୍ତୁ ନାହିଁ ।<br />\nଆପଣ ଆମପକ୍ଷେ ମଧ୍ୟ ପ୍ରତିଜ୍ଞା କରୁଛନ୍ତି ଯେ ଏହା ଆପଣ ନିଜେ ଲେଖିଛନ୍ତି, କିମ୍ବା ଏକ ପବ୍ଲିକ ଡୋମେନରୁ ବା ମାଗଣା ଓ ଖୋଲା ଲାଇସେନ୍ସ ଥିବା ସାଇଟରୁ ନକଲ କରି ଆଣିଛନ୍ତି ।\n'''ଅନୁମତି ବିନା ସ୍ଵତ୍ତ୍ଵାଧିକାର ଥିବା କାମ ଏଠାରେ ଦିଅନ୍ତୁ ନାହିଁ !'''",
        "block": "ସଭ୍ୟଙ୍କୁ ଅଟକାଇବେ",
        "unblock": "ବାସନ୍ଦ ହୋଇଥିବା ସଭ୍ୟଙ୍କୁ ମୁକୁଳାଇବେ",
        "blockip": "{{GENDER:$1|ଜଣ ସଭ୍ୟଙ୍କୁ}} ଅଟକାନ୍ତୁ",
-       "blockip-legend": "ସଭ୍ୟଙ୍କୁ ବାସନ୍ଦ କରିବେ",
        "blockiptext": "ଏକ ନିର୍ଦିଷ୍ଟ IP ଠିକଣା ବା ବ୍ୟବହାରକାରୀଙ୍କ ଲେଖିବା ସୁବିଧାକୁ ବାରାଁ କରିବା ନିମନ୍ତେ ଏହି ତଳ ଫର୍ମଟି ବ୍ୟବହାର କରନ୍ତୁ ।\nଏହା କେବଳ ଅପବ୍ୟବହାରକୁ ରୋକିବା ନିମନ୍ତେ କରାଯାଇଥାଏ, ଏହା [[{{MediaWiki:Policy-url}}|ନୀତି]] ଅନୁସାରେ କରାଯାଇଥାଏ ।\nଏହା ତଳେ ଏକ ନିର୍ଦିଷ୍ଟ କାରଣ ଦିଅନ୍ତୁ (ଯଥା, ଯେଉଁସବୁ ପୃଷ୍ଠାରେ କିଛି ପ୍ରକାରର ଅପବ୍ୟବହାର କରାଯାଇଛି) ।",
        "ipaddressorusername": "ବ୍ୟବହାରକାରୀଙ୍କର IP ଠିକଣା ବା ଇଉଜର ନାମ:",
        "ipbexpiry": "ମିଆଦ:",
index 6d1a70e..1e13db1 100644 (file)
        "page_first": "لومړنی",
        "page_last": "وروستنی",
        "histlegend": "د توپير ټاکنه: د هرې هغې بڼې پرتلنه چې تاسې غواړۍ نو د هماغې بڼې چوکاټک په نښه کړی او بيا په لاندينۍ تڼۍ وټوکۍ.<br />\nلنډيز: (اوس) = د اوسنۍ بڼې سره توپير،\n(وروست) = د وروستۍ بڼې سره توپير، و = وړه سمونه.",
-       "history-fieldset-title": "پېښليک سپړل",
+       "history-fieldset-title": "پېښليک ولټوي",
        "history-show-deleted": "يواځې ړنگ شوي",
        "histfirst": "تر ټولو زاړه",
        "histlast": "تر ټولو نوي",
        "rev-delundel": "ښکارېدنه بدلول",
        "rev-showdeleted": "ښکاره کول",
        "revisiondelete": "د ړنگولو/ناړنگولو مخکتنې",
+       "revdelete-nooldid-title": "ناباوره پيښنليک ته اشاره",
        "revdelete-no-file": "ځانگړې شوې دوتنه نشته.",
        "revdelete-show-file-submit": "هو",
        "revdelete-selected-text": "د [[:$2]] {{PLURAL:$1|ټاکلې بڼه|ټاکلې بڼې}}:",
        "revdelete-reasonotherlist": "بل سبب",
        "revdelete-edit-reasonlist": "د ړنگولو سببونه سمول",
        "revdelete-offender": "د مخکتنې ليکوال:",
+       "suppressionlog": "ننوتل لوستل",
        "mergehistory": "د مخ پېښليکونه سره يوځای کول",
        "mergehistory-box": "د دوه مخونو بڼې سره اخږل:",
        "mergehistory-from": "د سرچينې مخ:",
        "mergehistory-submit": "بڼې سره يوځای کول",
        "mergehistory-done": "د $1 $3 {{PLURAL:$3|بڼه|بڼې}} په برياليتوب سره و [[:$2]] کې {{PLURAL:$3|واخږل شو|واخږل شول}}.",
        "mergehistory-fail-bad-timestamp": "وخت ټاپه ناسمه ده.",
+       "mergehistory-fail-invalid-source": "د مخ سرچينې ناباوره دي.",
        "mergehistory-no-source": "د سرچينې مخ $1 نشته.",
        "mergehistory-no-destination": "د $1 موخنيز مخ نشته.",
        "mergehistory-invalid-source": "د سرچينې مخ بايد يو سم سرليک وي.",
        "search-category": "(وېشنيزه $1)",
        "search-file-match": "(د دوتنو مېنځپانگې سره ورته دي)",
        "search-suggest": "آيا همدا مو موخه وه: $1",
-       "search-interwiki-caption": "Ø®Ù\88رÙ\84Ú¼Û\90 Ù¾Ø±Ù\88Ú\98ې",
+       "search-interwiki-caption": "د Ø®Ù\88رÙ\84Ú¼Ù\88 Ù¾Ø±Ù\88Ú\98Ù\88 Ù¾Ø§Û\8cÙ\84ې",
        "search-interwiki-default": "پايلې له $1 څخه:",
        "search-interwiki-more": "(نور)",
        "search-interwiki-more-results": "نورې پايلې",
        "prefs-watchlist-days": "د ورځو شمېر چې په کتنلړ کې به ښکاري:",
        "prefs-watchlist-days-max": "حد اکثر $1 {{PLURAL:$1|ورځ|ورځې}}",
        "prefs-watchlist-edits-max": "د شمېر اکثر بريد: 1000",
+       "prefs-watchlist-token": "د کتنې ټوکن:",
        "prefs-misc": "بېلابېل",
        "prefs-resetpass": "پټنوم بدلول",
        "prefs-changeemail": "برېښليک پته بدلول يا ليرې کول",
        "recentchangescount": "د هغو سمونو شمېر چې په تلواليزه بڼه ښکاره بايد شي:",
        "prefs-help-recentchangescount": "پدې کې د وروستني بدلونونو، د مخونو د پېښليکونو او يادښتونه شامل دي.",
        "savedprefs": "غوره توبونه مو خوندي شول.",
+       "savedrights": "د کاروونکو ګروپونه {{GENDER:$1|$1}} خوندي شوه.",
        "timezonelegend": "د وخت سيمه:",
        "localtime": "سيمه ايز وخت:",
        "timezoneuseserverdefault": "د ويکي تلواليزه بڼه کارول ($1)",
        "username": "{{GENDER:$1|کارن نوم}}:",
        "prefs-memberingroups": "د {{PLURAL:$1|ډله|ډلې}} {{GENDER:$2|غړی}}:",
        "prefs-memberingroups-type": "$1",
+       "group-membership-link-with-expiry": "$1 (تر $2)",
        "prefs-registration": "د نومليکنې وخت:",
        "prefs-registration-date-time": "$1",
        "yourrealname": "اصلي نوم:",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "ښکاره کول",
        "rcfilters-tag-remove": "لرې کړئ'$1'",
+       "rcfilters-activefilters": "فعال فيلټرونه",
+       "rcfilters-advancedfilters": "پرمختللي فلټرونه",
+       "rcfilters-limit-title": "د ښودلو لپاره بدلونونه",
+       "rcfilters-limit-shownum": "آخري ښودنه {{PLURAL:$1|changes|$1 بدلونونه}}",
+       "rcfilters-days-title": "وروستي ورځي",
+       "rcfilters-hours-title": "وروستي ساعتونه",
+       "rcfilters-days-show-days": "$1 {{PLURAL:$1|day|ورځې}}",
+       "rcfilters-days-show-hours": "$1 {{PLURAL:$1|hour|ساعتونه}}",
+       "rcfilters-highlighted-filters-list": "لوړ شوی: $1",
+       "rcfilters-quickfilters": "خوندي شوی فلټرونه",
+       "rcfilters-quickfilters-placeholder-title": "هيڅ فيلټر نه دي صفت سوي",
+       "rcfilters-savedqueries-defaultlabel": "خوندي شوی فيلټرونه",
        "rcfilters-savedqueries-rename": "نوم بدلول",
+       "rcfilters-savedqueries-setdefault": "د فرض په ډول کښېږدي.",
+       "rcfilters-savedqueries-unsetdefault": "د فرض په ډول لري کونه",
+       "rcfilters-savedqueries-remove": "لري کول",
        "rcfilters-savedqueries-new-name-label": "نوم",
        "rcfilters-savedqueries-new-name-placeholder": "د فلټر هدف بیان کړئ",
+       "rcfilters-savedqueries-apply-label": "جوړ فيلټرونه",
+       "rcfilters-savedqueries-apply-and-setdefault-label": "د فرض په ډول د فيلټر جوړول",
+       "rcfilters-savedqueries-cancel-label": "ناگارل",
+       "rcfilters-savedqueries-add-new-title": "د امستنې اوسنۍ فيلټر خوندي کړي",
        "rcfilters-filterlist-title": "چاڼگران",
+       "rcfilters-highlightmenu-title": "يو رنګ وټاکۍ",
        "rcfilters-filter-user-experience-level-newcomer-label": "نوي راغلي",
        "rcfilters-filter-user-experience-level-learner-label": "زده کوونکي",
        "rcnotefrom": "دلته لاندې د <strong>$2</strong> څخه راپدېخوا پېښ شوي بدلونونه راغلي (تر <strong>$1</strong> پورې ښکاري).",
        "upload-http-error": "د HTTP يوه ستونزه رامېنځ ته شوې: $1",
        "upload-dialog-title": "دوتنه پورته کول",
        "upload-dialog-button-cancel": "ناگارل",
+       "upload-dialog-button-back": "پر شا کېدل",
        "upload-dialog-button-done": "ترسره شو",
        "upload-dialog-button-save": "خوندي کول",
        "upload-dialog-button-upload": "پورته کول",
        "uploadstash-refresh": "د دوتنو لړليک بياتازه کول",
        "img-auth-accessdenied": "لاسرسی رد شو",
        "img-auth-nofile": "د $1 په نوم کومه دوتنه نشته.",
+       "img-auth-streaming": "سټريمينګ \"$1\".",
        "http-invalid-url": "ناسم URL: $1",
        "http-read-error": "د HTTP د لوستلو ستونزه.",
        "http-timed-out": "د HTTP غوښتنې وخت اوښتی.",
        "exif-unknowndate": "ناڅرگنده نېټه",
        "exif-orientation-1": "نورمال",
        "exif-componentsconfiguration-0": "نشته دی",
-       "exif-exposureprogram-1": "Ù\84اسÙ\8a",
+       "exif-exposureprogram-1": "Ù\84ارÚ\9aÙ\88Ù\88Ù\86Ù\8aز",
        "exif-exposureprogram-2": "نورماله پروگرام",
        "exif-subjectdistance-value": "$1 متره",
        "exif-meteringmode-0": "ناجوت",
        "changecredentials-submit": "بدلول",
        "removecredentials-submit": "غورځول",
        "credentialsform-account": "گڼون نوم:",
+       "linkaccounts": "ورګډ سوي ګڼونونه",
+       "linkaccounts-success-text": "ګڼون ورګډ سو.",
+       "linkaccounts-submit": "لينک کڼوڼونه",
+       "unlinkaccounts": "ناخوښه ګڼونونه",
+       "unlinkaccounts-success": "ګڼون ناخوښه سو.",
+       "restrictionsfield-badip": "ناباوره آي پي  آدرس او حدود د : $1",
+       "restrictionsfield-label": "اجازه ورکړل شوي آي پي حدودونه:",
+       "revid": "بیاکتنه $1",
        "pageid": "د مخ پېژند$1",
        "rawhtml-notallowed": "لیبلونه &lt;html&gt; د منظمو ليکنو څخه بهر نشي کارول کیدی.",
        "gotointerwiki": "{{SITENAME}} پريښودل",
        "gotointerwiki-invalid": "ټاکل شوی سرلیک نامعلوم دی.",
        "gotointerwiki-external": "تاسي د  {{SITENAME}} د پريښودلو په حال کې یاست لیدلو لپاره [[$2]]، کوم یو جلا ویب پاڼه ده.\n\n'''[$1 دوام ورکونه و $1 ته]'''",
        "undelete-cantedit": "تاسو دا مخ شيه ړنګولي ځکه چې تاسو د دا پامخ د سمون اجازه نه لرئ.",
+       "pagedata-title": "د پاڼې ډاټا",
        "pagedata-not-acceptable": "د سمون نمونه ونه موندل شوه. ملاتړ شوي ميمي ډولونه: $1",
        "pagedata-bad-title": "ناسم سرليک: $1"
 }
index 9160ade..ba89a66 100644 (file)
        "anonpreviewwarning": "''Você não está logado. Gravar registará o seu endereço IP no histórico de edições desta página.''",
        "missingsummary": "'''Lembrete:''' Você não introduziu um sumário de edição. Se clicar novamente em Salvar, a sua edição será salva sem um sumário.",
        "selfredirect": "<strong>Aviso:</strong> Você esta redirecionando esta pagina para ela mesmo. Você pode ter especificado o caminho errado para redirecionar, ou você pode estar editando a pagina errada. Se você clicar \"$1\" novamente, o redirecionamento será criado de qualquer modo.",
-       "missingcommenttext": "Por favor, introduzida um comentário abaixo.",
+       "missingcommenttext": "Por favor, digite um comentário.",
        "missingcommentheader": "'''Lembrete:''' Você não introduziu um assunto/título para este comentário.\nSe você clicar novamente \"$1\", a sua edição será salva sem um assunto/título.",
        "summary-preview": "Previsão do resumo de edição:",
        "subject-preview": "Previsão do assunto/título:",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|hora|horas}}",
        "rcfilters-highlighted-filters-list": "Realçado: $1",
        "rcfilters-quickfilters": "Filtros salvos",
-       "rcfilters-quickfilters-placeholder-title": "Ainda não foi gravado nenhum link",
+       "rcfilters-quickfilters-placeholder-title": "Ainda não foi salvado nenhum filtro",
        "rcfilters-quickfilters-placeholder-description": "Para gravar as suas configurações dos filtros e reutilizá-las mais tarde, clique o ícone do marcador de página, na área Filtro Ativo abaixo.",
        "rcfilters-savedqueries-defaultlabel": "Filtros salvos",
        "rcfilters-savedqueries-rename": "Renomear",
        "rcfilters-filter-user-experience-level-unregistered-label": "Não registados",
        "rcfilters-filter-user-experience-level-unregistered-description": "Editores que não estão autenticados.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Recém-chegados",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Menos de 10 edições e 4 dias de atividade.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Editores registrados com menos de 10 edições ou 4 dias de atividade.",
        "rcfilters-filter-user-experience-level-learner-label": "Aprendizes",
        "rcfilters-filter-user-experience-level-learner-description": "Mais experiência do que \"Novatos\", mas menos do que \"Usuários experientes\".",
        "rcfilters-filter-user-experience-level-experienced-label": "Usuários experientes",
index c1cf86c..d731322 100644 (file)
        "recentchanges-summary": "Summary of [[Special:RecentChanges]].",
        "recentchangestext": "Text in [[Special:RecentChanges]]",
        "recentchanges-noresult": "Used in [[Special:RecentChanges]], [[Special:RecentChangesLinked]], and [[Special:Watchlist]] when there are no changes to be shown.",
+       "recentchanges-timeout": "Used in [[Special:RecentChanges]], [[Special:RecentChangesLinked]], and [[Special:Watchlist]] when a query times out.",
        "recentchanges-feed-description": "Used in feed of RecentChanges. See example [{{canonicalurl:Special:RecentChanges|feed=atom}} feed].",
        "recentchanges-label-newpage": "# Used as tooltip for {{msg-mw|Newpageletter}}.\n# Also used as legend. Preceded by {{msg-mw|Newpageletter}} and followed by {{msg-mw|Recentchanges-legend-newpage}}.",
        "recentchanges-label-minor": "# Used as tooltip for {{msg-mw|Minoreditletter}}\n# Also used as legend. Preceded by {{msg-mw|Minoreditletter}}",
        "recentchanges-legend-unpatrolled": "Used as legend on [[Special:RecentChanges]] and [[Special:Watchlist]].\n\nRefers to {{msg-mw|Recentchanges-label-unpatrolled}}.",
        "recentchanges-legend-plusminus": "{{optional}}\nA plus/minus sign with a number for the legend.",
        "recentchanges-submit": "Label for submit button in [[Special:RecentChanges]]\n{{Identical|Show}}",
-       "rcfilters-tag-remove": "A tooltip for the button that removes a filter from the active filters area in [[Special:RecentChanges]] and [[Special:Watchlist]] when RCFilters are enabled. \n\nParameters: $1 - Tag label",
+       "rcfilters-tag-remove": "A tooltip for the button that removes a filter from the active filters area in [[Special:RecentChanges]] and [[Special:Watchlist]] when RCFilters are enabled. \n\nParameters: $1 - Tag label\n{{Identical|Remove}}",
        "rcfilters-legend-heading": "Used as a heading for legend box on [[Special:RecentChanges]] and [[Special:Watchlist]] when RCFilters are enabled.",
        "rcfilters-other-review-tools": "Used as a heading for the community collection of other links on [[Special:RecentChanges]] when RCFilters are enabled.",
        "rcfilters-group-results-by-page": "A label for the checkbox describing whether the results in [[Special:RecentChanges]] are grouped by page when RCFilters are enabled.",
index c1d219f..3dd7689 100644 (file)
        "databaseerror-query": "Inderrogazione: $1",
        "databaseerror-function": "Funzione: $1",
        "databaseerror-error": "Errore: $1",
+       "transaction-duration-limit-exceeded": "Pe evità 'nu retarde ierte de repliche, sta operazzione ha state inderrotte peurcé 'a durate d'u tiembe de scretture ($1) ave supranate 'u limite de $2 {{PLURAL:$2|seconde}}.\n\nCe se ste cange 'nu sbuénne de vôsce jndr'à 'na botta sole, pruève a ffà cchiù operazziune cu mene vôsce a vote.",
        "laggedslavemode": "Attenzione: 'A pàgene no ge tène cangiaminde recente.",
        "readonly": "Archivie blocchete",
        "enterlockreason": "Mitte 'na raggione p'u blocche, 'ncludenne 'na stime de quanne 'u blocche avène luate.",
        "rcfilters-filter-user-experience-level-unregistered-description": "Cangiature ca non g'onne trasute.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Utinde nuève",
        "rcfilters-filter-user-experience-level-learner-label": "Uecchieachiuse",
+       "rcfilters-filter-user-experience-level-experienced-label": "Utinde cu esperienze",
+       "rcfilters-filter-user-experience-level-experienced-description": "Utinde reggistrate cu cchiù de 500 cangiaminde e 30 sciurne de attivitate.",
+       "rcfilters-filtergroup-automated": "Condrebbute automatece",
        "rcfilters-filter-bots-label": "Bot",
+       "rcfilters-filter-bots-description": "Cangiaminde fatte da struminde automatece.",
+       "rcfilters-filter-humans-label": "Umane (none bot)",
+       "rcfilters-filter-humans-description": "Cangiaminde fatte da condrebbuture umane.",
+       "rcfilters-filtergroup-reviewstatus": "State d'a revisione",
        "rcfilters-filter-patrolled-label": "Condrollate",
        "rcfilters-filter-patrolled-description": "Cangiaminde signate cumme condrollate.",
        "rcfilters-filter-unpatrolled-label": "Non condrollate",
index 719389a..d15f30f 100644 (file)
        "parser-template-loop-warning": "Обнаружена петля в шаблонах: [[$1]]",
        "template-loop-category": "Страницы с петлями в шаблонах",
        "template-loop-category-desc": "Эта страница содержит петлю в шаблоне, т.е. шаблон, который рекурсивно вызывает сам себя.",
-       "template-loop-warning": "<strong>Предупреждение:</ strong> Эта страница вызывает [[:$1]], который приводит к возникновению цикла в шаблоне (бесконечный рекурсивный вызов).",
+       "template-loop-warning": "<strong>Предупреждение:</strong> Эта страница вызывает [[:$1]], который приводит к возникновению цикла в шаблоне (бесконечный рекурсивный вызов).",
        "parser-template-recursion-depth-warning": "Превышен предел глубины рекурсии шаблона ($1)",
        "language-converter-depth-warning": "Превышен предел глубины преобразователя языков ($1)",
        "node-count-exceeded-category": "Страницы, на которых превышено число узлов",
index 8d1b4fb..629efd2 100644 (file)
        "redirectedfrom": "$1 khon ạcur heć akana",
        "redirectpagesub": "Bań sojhe sakam",
        "redirectto": "Ar hõ udugoḱakana:",
-       "lastmodifiedat": "á±±á±\9aá±­á±\9f á±¥á±\9fᱦᱴá±\9f á±¨á±®á±±á±\9fá±\9c á±\9aá±\9e á±¢á±©á±ªá±\9fᱹᱫᱫᱷá±\9fá±£ á±µá±\9aᱫá±\9aá±\9e á±\9fá± á±\9fá±±á±\9f  $1, at $2",
+       "lastmodifiedat": "á±±á±\9aᱶá±\9f á±¥á±\9fᱦᱴá±\9f á±¢á±©á±ªá±\9fᱹᱫ á±«á±·á±\9fá±£ á±µá±\9aᱫá±\9aá±\9e á±\9fá± á±\9fá±±á±\9f  $1 á±¢á±\9fᱹᱦᱤá±\9b,  $2 á±\9aá± á±\9bá±\9aᱨᱮ",
        "viewcount": "Noa sakamdo {{PLURAL:$1 dhom $1 dhom}} udug hoena.",
        "protectedpage": "Rukhíạ sakamko",
        "jumpto": "Donme :",
        "summary-preview": "Guṭ katha unuduḱ:",
        "subject-preview": "Babot/Guṭkatha unuduḱ:",
        "blockedtitle": "Beoharić doe eset ocoakana.",
+       "blockedtext": "<strong>ᱟᱢᱟᱜ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱧᱩᱛᱩᱢ ᱟᱨᱵᱟᱝ IP ᱵᱩᱴᱟᱹ ᱫᱚ ᱵᱚᱸᱫᱽ ᱟᱠᱟᱱᱟ ᱾ </strong>\n\nᱱᱚᱶᱟ ᱵᱚᱸᱫᱽ ᱫᱚ $1 ᱫᱟᱨᱟᱭᱛᱮ ᱦᱩᱭᱟᱠᱱᱟ ᱾\nᱱᱚᱶᱟ ᱨᱮᱱᱟᱜ ᱚᱡᱮ ᱫᱚ ᱮᱢᱮᱱᱟ <em>$2</em>.\n\n* ᱵᱚᱸᱫᱽ ᱮᱦᱚᱵ: $8\n* ᱵᱚᱸᱫᱽ ᱢᱩᱪᱟᱹᱫ: $6\n* ᱟᱥᱟᱦᱟᱱ ᱵᱚᱸᱫᱽᱠᱚ: $7\n\nᱟᱢ $1 ᱮᱢ ᱥᱟᱹᱜᱟᱹᱭ ᱫᱟᱲᱮᱭᱟᱭᱟ ᱵᱟᱝᱠᱷᱟᱱ ᱮᱴᱟᱜ [[{{MediaWiki:Grouppage-sysop}}|ᱟᱰᱢᱤᱱᱤᱥᱴᱨᱮᱴᱚᱨ]] ᱵᱚᱸᱫᱽ ᱵᱟᱵᱚᱫᱽ ᱛᱮ ᱜᱟᱞᱚᱪ ᱞᱟᱹᱜᱤᱫ ᱾\nᱟᱢ ᱵᱟᱢ ᱵᱮᱵᱷᱟᱨ ᱫᱟᱲᱮᱭᱟᱜ \"email this user\" ᱥᱩᱵᱤᱫᱷᱟ ᱡᱚᱛᱷᱟᱛ ᱤᱢᱮᱞ ᱵᱩᱴᱟᱹ ᱛᱟᱢ ᱵᱟᱝ ᱛᱟᱦᱮᱸᱱ ᱠᱷᱟᱱ ᱟᱨ ᱱᱚᱶᱟ ᱫᱚ ᱪᱤᱱᱦᱟᱹᱣ-ᱟ [[Special:Preferences|ᱠᱷᱟᱛᱟ ᱧᱮᱞᱚᱚᱜ]] ᱠᱷᱚᱱ ᱟᱨ ᱟᱢ ᱫᱚ ᱵᱟᱢ ᱵᱚᱸᱫᱽ ᱟᱠᱟᱱᱟ ᱱᱚᱶᱟ ᱵᱮᱵᱷᱟᱨ ᱠᱷᱚᱱ ᱾\nᱟᱢᱟᱜ ᱱᱤᱛᱚᱜᱟᱜ IP ᱵᱩᱴᱟᱹ ᱫᱚ $3, ᱟᱨ ᱵᱚᱸᱫᱽ ID ᱫᱚ #$5  \nᱫᱟᱭᱟᱠᱟᱛᱮ ᱥᱮᱞᱮᱫᱽ ᱢᱮ ᱪᱮᱛᱟᱱᱟᱜ ᱠᱟᱛᱷᱟᱠᱚ ᱡᱚᱛᱚ ᱞᱮᱠᱟᱱ ᱠᱩᱠᱞᱤ ᱨᱮ ᱾",
        "blockednoreason": "jahan babot baṅ em akana",
        "whitelistedittext": "Sakamre sompadon lạgit́te $1 em hoyoḱa.",
        "nosuchsectiontitle": "Pahaṭa bȧn ńamlena",
        "deletedhist": "Get giḍi jạṛ",
        "revdelete-reasonotherlist": "Eṭaḱak karon",
        "mergehistory-reason": "Babot:",
+       "mergelog": "ᱞᱚᱜᱽ ᱢᱮᱥᱟ",
        "revertmerge": "bań mit́",
        "history-title": "\"$1\": Jạṛ nãwã aroe",
        "lineno": "Sạr $1:",
        "compareselectedversions": "Noa barea nãwã bachawanaḱ talare tolonayme",
        "editundo": "ruạṛ",
+       "diff-empty": "(ᱵᱷᱮᱜᱮᱫ ᱵᱟᱹᱱᱩᱜ)",
        "searchresults": "Se̠ndra pho̠l",
        "searchresults-title": "\"$1\"  renaḱ Sẽndra  phol",
        "prevn": "Laha reaḱ {{PLURAL:$1|$1}}",
        "editusergroup": "Beoharićaḱ gãotako toṅgeymẽ",
        "userrights-editusergroup": "Beoharićaḱ gãotako toṅgeymẽ",
        "saveusergroups": "Beoharićaḱ gãotako rukhiyaymẽ",
+       "group-bot": "ᱵᱚᱴᱠᱚ",
+       "group-sysop": "ᱟᱰᱢᱤᱱᱤᱥᱴᱨᱮᱴᱚᱨ",
+       "grouppage-bot": "{{ns:project}}:ᱵᱚᱴᱠᱚ",
+       "grouppage-sysop": "{{ns:project}}:ᱯᱟᱨᱜᱟᱱᱟᱠᱚ",
        "right-read": "Sakamko paṛhaomẽ",
        "right-edit": "Sakamko toṅge",
        "right-createpage": "Sakamko benoamẽ (Okako do galmarao sakamko baṅkan)",
        "newuserlogpage": "Laṛcaṛićaḱ tear cạbi",
        "rightslog": "ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱟᱹᱭᱫᱟᱹᱨ ᱞᱚᱜᱽ",
        "action-edit": "noa sakam joṛao",
+       "action-createaccount": "ᱱᱚᱶᱟ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱷᱟᱛᱟ ᱵᱮᱱᱟᱣ",
        "nchanges": "$1 {{PLURAL:$1 bodol bodolko}}",
        "enhancedrc-history": "Jạṛ",
        "recentchanges": "Nãwã bo̠do̠lko",
        "rc-enhanced-expand": "Purạote uduḱ",
        "rc-enhanced-hide": "Purạo cuku",
        "recentchangeslinked": "Sãotenaḱ bodolko",
+       "recentchangeslinked-feed": "ᱥᱟᱹᱜᱟᱹᱭᱟᱱ ᱵᱚᱫᱚᱞᱠᱚ",
        "recentchangeslinked-toolbox": "Noṛjoṛ palaṭko",
        "recentchangeslinked-title": "Bodolaḱko do \"$1\" sãote joṛao geya",
        "recentchangeslinked-summary": "Noa do ona tạlika kana oka do nebetarge bodol hoyakan oka do asokayte hatao akan sakam khon.\n\n[[Special:Watchlist|your watchlist]] renaḱ sakamko do '''bold''' .",
        "filehist-datetime": "̣Tạrikh/So̠mo̠y",
        "filehist-thumb": "Ṭip",
        "filehist-thumbtext": "$1 lekan thambnail varson",
+       "filehist-nothumb": "ᱵᱟᱹᱱᱩᱜ-ᱟ ᱴᱤᱯ-ᱨᱟᱢᱟ",
        "filehist-user": "Laṛcaṛić",
        "filehist-dimensions": "Maṕ",
        "filehist-comment": "Roṛ",
        "allpages": "joto sakam",
        "allarticles": "Sanam sakam",
        "allpagessubmit": "Calaḱme",
+       "allpages-hide-redirects": "ᱢᱚᱦᱰᱟᱦᱟᱜᱠᱚ ᱫᱟᱱᱟᱝ",
        "categories": "rokom sokom",
        "linksearch-line": "$2 khon $1 re joṛao hoeakana",
        "listusers-submit": "Udugmẽ",
        "wlshowlast": "Mucạtet́ udukmẽ $1 baje $2 maha",
        "watchlist-options": "Ńelok tạlika reak sonketko",
        "watching": "Ńeloḱ kana...",
+       "enotif_reset": "ᱱᱤᱱᱦᱟᱹᱭᱢᱮ ᱡᱚᱛᱚ ᱥᱟᱦᱴᱟ ᱦᱤᱨᱤᱭᱟᱠᱟᱱᱟ",
        "changed": "Bodolena",
        "deletepage": "Sakam get giḍikam",
        "delete-legend": "Get giḍi",
        "undeleteviewlink": "Ńel",
        "namespace": "Ńutum reaḱ ṭhai",
        "invert": "Seć bachao",
+       "tooltip-invert": "ᱱᱚᱶᱟ ᱵᱟᱠᱥᱟ ᱴᱤᱠ ᱢᱮ ᱥᱟᱦᱴᱟ ᱠᱷᱚᱱ ᱵᱚᱫᱚᱞᱟᱜᱠᱚ ᱫᱟᱱᱟᱝ ᱞᱟᱹᱜᱤᱫ  ᱵᱟᱛᱷᱚᱱ ᱨᱟᱠᱷᱟ ᱧᱩᱛᱩᱢ ᱥᱟᱶᱛᱮ (ᱟᱨ ᱡᱚᱯᱚᱲᱟᱣᱟᱱ ᱨᱟᱠᱷᱟ ᱧᱩᱛᱩᱢ ᱡᱩᱫᱤ ᱴᱤᱠ ᱟᱠᱟᱱᱟ)",
+       "tooltip-namespace_association": "ᱱᱚᱶᱟ ᱵᱟᱠᱥᱟ ᱴᱤᱠ ᱢᱮ ᱨᱚᱯᱚᱲ ᱵᱟᱝᱠᱷᱟᱱ ᱥᱟᱛᱟᱢ ᱨᱟᱠᱷᱟ ᱧᱩᱛᱩᱢ ᱵᱟᱪᱷᱚᱱ ᱟᱠᱟᱱ ᱨᱟᱠᱷᱟ ᱧᱩᱛᱩᱢ ᱥᱟᱶ ᱡᱚᱯᱚᱲᱟᱣ ᱟᱠᱟᱱᱟᱜ",
        "blanknamespace": "Mukhiạ̣",
        "contributions": "{{GENDER:$1|Beoharićaḱ }} Kạmiko",
        "contributions-title": "$1 Beoharićaḱ kạmiko",
        "ipboptions": "2 Ghonṭa : 2 hours, 1 maha:1 day, 3 maha : 3 days,1 hapta :1 week, 2 hapta : 2 weeks, 1 cando :1 month, 3 cando : 3 months,6 cando :6 months,  1 serma :1 year,  Aemamaha : infinite",
        "ipblocklist": "Beoharic esetgeyay",
        "ipblocklist-submit": "Sendra",
+       "infiniteblock": "ᱚᱦᱤᱥᱟᱹᱵᱽ",
        "emailblock": "E-mail do esetgea",
        "blocklink": "Eset́",
        "unblocklink": "bań block",
        "emaillink": "E-mail kulmẽ",
        "blocklogpage": "Tala eset",
        "blocklogentry": "Eset [[$1]] sãote cabaḱ okte oka do $2 $3",
+       "reblock-logentry": "ᱵᱚᱫᱚᱞᱮᱱᱟ ᱵᱚᱸᱫ ᱥᱟᱡᱟᱣᱠᱚ [[$1]] ᱞᱟᱹᱜᱤᱫ ᱪᱟᱵᱟᱜ ᱚᱠᱛᱚ $2 $3 ᱥᱟᱶ",
        "block-log-flags-nocreate": "Ekaunṭ benao do bondogeya",
        "block-log-flags-noemail": "E-mail do esetgea",
        "block-log-flags-hiddenname": "Beoharićaḱ ńutum do ukugea",
        "thumbnail-more": "Lạṭui mẽ",
        "thumbnail_error": "Benawakan unuduḱ kạṭuṕ do baṅ ṭhika: $1",
        "import-upload-filename": "Rẽt ńutum",
+       "importlogpage": "ᱞᱚᱜᱽ ᱟᱹᱜᱩ",
        "tooltip-pt-userpage": "{{GENDER:|am beoharićaḱ}} sakam",
        "tooltip-pt-mytalk": "{{GENDER:|Amaḱ}} ro̠ṛreaḱ́ sakam",
        "tooltip-pt-preferences": "{{GENDER:|Amaḱ}} pạsindko",
        "pageinfo-header-basic": "ᱢᱩᱬ ᱥᱩᱪᱱᱟ",
        "pageinfo-header-edits": "Toṅgeko",
        "pageinfo-header-restrictions": "ᱥᱟᱦᱴᱟ ᱵᱟᱧᱪᱟᱣ",
+       "pageinfo-header-properties": "ᱥᱟᱦᱴᱟ ᱜᱩᱱᱠᱚ",
        "pageinfo-display-title": "ᱩᱫᱩᱜ ᱧᱩᱛᱩᱢ",
        "pageinfo-default-sort": "ᱯᱟᱹᱦᱤᱞᱟᱜ ᱠᱷᱟᱴᱚ ᱪᱟᱹᱵᱤ",
        "pageinfo-length": "ᱥᱟᱦᱴᱟ ᱡᱤᱞᱤᱝ (ᱵᱟᱭᱤᱴ ᱛᱮ)",
        "pageinfo-language": "ᱥᱟᱦᱴᱟ ᱩᱱᱩᱫᱩᱜ ᱯᱟᱹᱨᱥᱤ",
        "pageinfo-content-model": "ᱥᱟᱦᱴᱟ ᱩᱱᱩᱫᱩᱜ ᱥᱟᱢᱟᱝ",
        "pageinfo-robot-policy": "ᱨᱚᱵᱚᱴ ᱫᱟᱨᱟᱭᱛᱮ ᱩᱱᱩᱫᱩᱜ",
+       "pageinfo-robot-index": "ᱚᱪᱚᱣᱟᱜ",
+       "pageinfo-robot-noindex": "ᱵᱟᱝᱚᱪᱚ",
        "pageinfo-watchers": "Ńeńelkoaḱ nombor",
+       "pageinfo-few-watchers": "$1 ᱠᱷᱚᱱ ᱠᱚᱢ {{PLURAL:$1|ᱧᱮᱧᱮᱞᱤᱭᱟᱹ|ᱧᱮᱧᱮᱞᱤᱭᱟᱹᱠᱚ}}",
        "pageinfo-redirects-name": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟᱛᱮ ᱢᱚᱸᱦᱰᱟᱜᱠᱟᱱ ᱮᱞ",
+       "pageinfo-subpages-name": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱪᱟᱸᱜᱟ ᱥᱟᱦᱴᱟ ᱠᱚᱣᱟᱜ ᱮᱞ",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|ᱢᱚᱦᱰᱟ|ᱢᱚᱦᱰᱟᱠᱚ}}; $3 {{PLURAL:$3|ᱵᱟᱝ-ᱢᱚᱦᱰᱟ|ᱵᱟᱝ-ᱢᱚᱦᱰᱟᱠᱚ}})",
        "pageinfo-firstuser": "ᱥᱟᱦᱴᱟ ᱛᱮᱜ-ᱭᱟᱨᱠᱚ",
        "pageinfo-firsttime": "ᱥᱟᱦᱴᱟ ᱛᱮᱭᱟᱨ ᱨᱮᱱᱟᱜ ᱢᱟᱺᱦᱤᱛ",
        "pageinfo-lastuser": "ᱨᱚᱠᱟ ᱥᱟᱯᱲᱮᱛ",
        "pageinfo-authors": "ᱴᱷᱟᱹᱣᱠᱟᱹ ᱚᱱᱚᱞᱤᱭᱟᱹ ᱠᱚᱣᱟᱜ ᱜᱩᱴ ᱮᱞ",
        "pageinfo-recent-edits": "ᱨᱚᱠᱟ ᱥᱟᱯᱲᱟᱣᱟᱜ ᱮᱞ (ᱢᱟᱨᱮᱭᱟᱜ ᱢᱮᱥᱟ $1)",
        "pageinfo-recent-authors": "ᱴᱷᱟᱹᱣᱠᱟᱹ ᱚᱱᱚᱞᱤᱭᱟᱹ ᱠᱚᱣᱟᱜ ᱨᱚᱠᱟ ᱮᱞ",
+       "pageinfo-magic-words": "ᱢᱤᱡᱤᱠ {{PLURAL:$1|ᱟᱹᱲᱟ|ᱟᱹᱲᱟᱹᱠᱚ}} ($1)",
+       "pageinfo-hidden-categories": "ᱫᱟᱱᱟᱝ {{PLURAL:$1|ᱦᱟᱹᱴᱤᱧ|ᱦᱟᱹᱹᱴᱤᱧᱠᱚ}} ($1)",
+       "pageinfo-templates": "ᱚᱞᱩᱪᱟᱹᱲᱟᱜ {{PLURAL:$1|ᱪᱷᱟᱸᱪ|ᱪᱷᱟᱸᱪᱠᱚ}} ($1)",
        "pageinfo-toolboxlink": "Sakam reaḱ baḍaejońaḱko",
+       "pageinfo-contentpage": "ᱩᱱᱩᱫᱩᱜ ᱥᱟᱦᱴᱟ ᱞᱮᱠᱟᱛᱮ ᱞᱮᱠᱷᱟ ᱦᱟᱠᱟᱱᱟ",
        "pageinfo-contentpage-yes": "ᱦᱮᱸ",
        "patrol-log-page": "ᱛᱩᱱᱠᱷᱤᱭᱤᱡᱟᱜ ᱞᱚᱜᱽ",
        "previousdiff": "Marenaḱ toṅgeko",
        "nextdiff": "Nãwã joṛao",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|ᱥᱟᱦᱴᱟ|ᱥᱟᱦᱴᱟᱠᱚ}}",
        "file-info-size": "$1 x $2 pixels, file size: $3, MIME type: $4",
+       "file-info-size-pages": "$1 × $2 ᱯᱤᱠᱥᱮᱞ, ᱨᱮᱫ ᱥᱚᱝ: $3, MIME ᱞᱮᱠᱟᱱ: $4, $5 {{PLURAL:$5|ᱥᱟᱦᱴᱟ|ᱥᱟᱦᱴᱟᱠᱚ}}",
        "file-nohires": "Aema resulation nondḍe banuḱa",
        "svg-long-desc": "SVG rẽt, normalte $1 x $2 pixels, rẽt sayej: $3",
        "show-big-image": "Mukhiạ phayel",
        "exif-orientation-1": "ᱥᱟᱫᱷᱟᱨᱚᱱ",
        "namespacesall": "sanam",
        "monthsall": "Sanamak",
+       "imgmultipagenext": "ᱫᱟᱨᱟᱭ ᱥᱟᱦᱴᱟ 'n",
+       "imgmultigo": "ᱥᱮᱱᱚᱜ!",
+       "imgmultigoto": "ᱥᱮᱱᱚᱜ ᱢᱮ ᱥᱟᱦᱴᱟ $1",
+       "watchlisttools-clear": "ᱠᱩᱥᱤᱭᱟᱜ ᱞᱤᱥᱴᱤ ᱥᱟᱯᱷᱟ",
        "watchlisttools-view": "Jońgṛao bodolaḱko ńel",
        "watchlisttools-edit": "Ńelok tạlika ńel ar joṛao",
        "watchlisttools-raw": "Baṇ purạo akan ńelok tạlika purạomẽ",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|galmarao]])",
        "duplicate-defaultsort": "'''Sontoroḱmẽ:''' ḍifolṭ sajao reaḱ cạbi: $2 lahare ḍifolṭ sajao reaḱ sakam: ''$1'' e bae luturaḱ kana.",
+       "redirect": "ᱨᱮᱫ, ᱵᱮᱵᱷᱟᱨᱩᱭᱟᱹ, ᱥᱟᱦᱴᱟ, ᱧᱮᱞ-ᱟᱹᱨᱩ, ᱵᱟᱝᱠᱷᱟᱱ ᱞᱚᱜᱽ ID ᱫᱟᱨᱟᱭᱛᱮ ᱢᱚᱦᱰᱟ",
+       "redirect-submit": "ᱥᱮᱱᱚᱜ",
+       "redirect-lookup": "ᱧᱮᱞᱢᱮ",
+       "redirect-user": "ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ID",
+       "redirect-page": "ᱥᱟᱦᱴᱟ ID",
+       "redirect-revision": "ᱥᱟᱦᱴᱟ ᱧᱮᱞ-ᱟᱹᱨᱩ",
+       "redirect-file": "ᱨᱮᱫᱧᱩᱛᱩᱢ",
        "specialpages": "Osokayteaḱ sakamko",
        "external_image_whitelist": "#Noa sakam do cet leka menaḱa oṅkage dohoemẽ\n#Sanam okte re jạhiren kuṭrạ latar re (khạli hạtiń //talare) bạisạomẽ\n#Noako do bahre reaḱ (hotlinked) chubi reaḱ URL saõte milạo hoyoḱa\n#Okako milạḱa, onako do chubi lekate udugoḱa, baṅkhan do khali chubi joṛao udugoḱa\n#Noa layen reaḱ ehoṕre # menaḱa ona layenko menko hisapte beohar hoyoḱka\n#Noa do kas-baṅ rimjhạoaḱge\n#Noa dag cetanre regex kuṭrạ bạsạomẽ. Noa layen cetleka menaḱa oṅkage dohoemẽ</pre>",
        "tag-filter": "[[Special:Tags|Tag]] saphay:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ᱥᱟᱛᱚᱢ|ᱥᱟᱛᱚᱢᱠᱩ}}]]: $2)",
+       "tags-active-yes": "ᱦᱮᱸ",
+       "tags-active-no": "ᱵᱟᱝ",
        "logentry-delete-delete": "$3 ᱥᱟᱦᱴᱟ $1 {{GENDER:$2|ᱜᱮᱫ ᱠᱮᱜ-ᱟᱭ}}",
+       "logentry-delete-restore": "$1 {{GENDER:$2|ᱨᱟᱠᱷᱟ ᱫᱚᱲᱦᱟ}} ᱠᱮᱜ-ᱟ ᱥᱟᱦᱴᱟ $3 ($4)",
+       "revdelete-content-hid": "ᱩᱱᱩᱫᱩᱜ ᱫᱟᱱᱟᱝ",
        "logentry-move-move": "$1 beoharić $3 sakam do $4 ńutumre {{GENDER:$2|ạcạr}} akada",
        "logentry-move-move_redir": "$1 {{GENDER:$2|ᱩᱪᱟᱹᱲᱮᱱᱟ}} ᱥᱟᱦᱴᱟ $3 ᱠᱷᱚᱱ $4 ᱪᱮᱛᱟᱱ ᱢᱚᱸᱦᱰᱟ ᱦᱟᱠᱟᱱᱟ",
        "logentry-newusers-create": "Beoharićaḱ hisạb khata $1 do jhićena",
+       "logentry-newusers-autocreate": "ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱷᱟᱛᱟ $1 ᱫᱚ {{GENDER:$2|ᱛᱮᱭᱟᱨᱮᱱᱟ}} ᱟᱡᱛᱮᱜᱮ",
        "logentry-upload-upload": "$1 {{GENDER:$2|rakaṕ akadae}} $3",
        "searchsuggest-search": "ᱥᱮᱸᱫᱽᱨᱟ {{SITENAME}}",
-       "duration-days": "$1 {{PLURAL:$1|ᱢᱟᱦᱟᱸ|ᱢᱟᱸᱦᱟᱸ}}"
+       "duration-days": "$1 {{PLURAL:$1|ᱢᱟᱦᱟᱸ|ᱢᱟᱸᱦᱟᱸ}}",
+       "randomrootpage": "ᱟᱹᱛᱷᱟᱣᱲᱤ ᱨᱮᱦᱮᱫ ᱥᱟᱦᱴᱟ"
 }
index e9ca049..89ff58d 100644 (file)
        "recentchanges-legend": "Možnosti zadnjih sprememb",
        "recentchanges-summary": "Na tej strani lahko spremljate najnovejše spremembe wikija.",
        "recentchanges-noresult": "V danem obdobju nobena sprememba ne ustreza tem merilom.",
+       "recentchanges-timeout": "Čas iskanja je potekel. Poskusite uporabiti drugačne parametre iskanja.",
        "recentchanges-feed-description": "Spremljajte zadnje spremembe wikija prek tega vira.",
        "recentchanges-label-newpage": "To urejanje je ustvarilo novo stran",
        "recentchanges-label-minor": "To je manjše urejanje",
index facf480..300a037 100644 (file)
        "rcfilters-filter-user-experience-level-unregistered-label": "Oregistrerade",
        "rcfilters-filter-user-experience-level-unregistered-description": "Redigerare som inte är inloggade.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Nykomlingar",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Registrerade redigerare med färre än 10 redigeringar och 4 dagars aktivitet.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Registrerade redigerare som har färre än 10 redigeringar eller 4 dagars aktivitet.",
        "rcfilters-filter-user-experience-level-learner-label": "Nybörjare",
        "rcfilters-filter-user-experience-level-learner-description": "Registrerade redigerare vars erfarenhet hamnar mellan \"Nybörjare\" och \"Erfarna användare\".",
        "rcfilters-filter-user-experience-level-experienced-label": "Erfarna användare",
index 973741b..c9845d6 100644 (file)
        "ncategories": "$1 {{PLURAL:$1|гурӯҳ|гурӯҳҳо}}",
        "nlinks": "$1 {{PLURAL:$1|пайванд|пайвандҳо}}",
        "nmembers": "$1 {{PLURAL:$1|узв}}",
-       "nrevisions": "$1 {{PLURAL:$1|вироиш|вироиш}}",
+       "nrevisions": "{{PLURAL:$1|вироиш|вироиши}} $1",
        "specialpage-empty": "Барои ин ҳисобот натиҷае вуҷуд надорад.",
        "lonelypages": "Саҳифаҳои ятим",
        "lonelypagestext": "Ба саҳифаҳои зерин дар дигар саҳифаи {{SITENAME}} пайванд дода нашудааст.",
        "import-comment": "Тавзеҳ:",
        "importtext": "Лутфан парвандаро аз вики манбаъ содир кунед, аз тариқи саҳифа [[Special:Export|абзори содирот]].\nПас онро ба компютератон захира карда инҷо боргузорӣ кунед.",
        "importstart": "Дар ҳоли ворид кардани саҳифаҳо...",
-       "import-revision-count": "$1 {{PLURAL:$1|вироиш|вироиш}}",
+       "import-revision-count": "{{PLURAL:$1|вироиш|вироиши}} $1",
        "importnopages": "Саҳифаҳо барои ворид кардан нест.",
        "importfailed": "Ворид кардани саҳифаҳо шикаст хӯрд: $1",
        "importunknownsource": "Навъи манбаи номаълум барои воридкуни",
index 3dc3b49..f662c07 100644 (file)
        "compare-invalid-title": "ชื่อเรื่องที่คุณระบุไม่ถูกต้อง",
        "compare-title-not-exists": "ชื่อเรื่องที่คุณระบุไม่มีอยู่",
        "compare-revision-not-exists": "รุ่นที่คุณระบุไม่มีอยู่",
-       "diff-form": "'''แบบฟอร์ม'''",
+       "diff-form": "ความแตกต่าง",
        "dberr-problems": "ขออภัย เว็บไซต์นี้กำลังพบกับข้อผิดพลาดทางเทคนิค",
        "dberr-again": "กรุณารอสักครู่แล้วจึงโหลดใหม่",
        "dberr-info": "(ไม่สามารถเข้าถึงฐานข้อมูล: $1)",
index 7fd6173..8564c55 100644 (file)
        "anonpreviewwarning": "''Giriş yapmadınız. Kaydederseniz, sayfanın değişiklik geçmişine IP adresiniz yazılır.''",
        "missingsummary": "'''Uyarı:''' Herhangi bir özet yazmadın.\nKaydet tuşuna tekrar basarsan sayfa özetsiz kaydedilecek.",
        "selfredirect": "<strong>Uyarı:</strong> Bu sayfanın kendisine yönlendirme vardır.\nYönlendirme için yanlış hedef belirtmiş olabilirsiniz, ya da yanlış sayfa düzenlemeye çalışmış olabilirsiniz.\n\n\"$1\" sayfasına tıklayarak, yönlendirmeyi zaten oluşturabilirsiniz.",
-       "missingcommenttext": "Lütfen aşağıda bir açıklama yazınız.",
+       "missingcommenttext": "Lütfen bir açıklama yazınız.",
        "missingcommentheader": "<strong>Hatırlatma:</strong> Bu yorum için bir konu girmediniz.\nEğer \"{{int: savearticle}}\" tuşuna tekrar basarsanız, değişikliğiniz konu olmadan kaydedilecektir.",
        "summary-preview": "Değişiklik özeti ön izlemesi:",
        "subject-preview": "Konu ön izlemesi:",
        "timezoneregion-europe": "Avrupa",
        "timezoneregion-indian": "Hint Okyanusu",
        "timezoneregion-pacific": "Pasifik Okyanusu",
-       "allowemail": "Diğer kullanıcılar bana e-posta atabilsin",
+       "allowemail": "Diğer kullanıcıların bana e-posta gönderebilmesine izin ver",
+       "email-blacklist-label": "Şu kullanıcıların bana e-posta göndermesine izin verme:",
        "prefs-searchoptions": "Arama",
        "prefs-namespaces": "İsim alanları",
        "default": "varsayılan",
        "rcfilters-filter-user-experience-level-unregistered-label": "Kayıtsız",
        "rcfilters-filter-user-experience-level-unregistered-description": "Oturum açmamış editörler.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Yeni gelenler",
-       "rcfilters-filter-user-experience-level-newcomer-description": "10'dan az düzenleme ve 4 günden az etkinlik.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "10'dan az düzenlemesi veya 4 günden az etkinliği olan kayıtlı kullanıcılar.",
        "rcfilters-filter-user-experience-level-learner-label": "Öğreniciler",
        "rcfilters-filter-user-experience-level-learner-description": "\"Yeni gelenler\"den daha fazla gün boyunca etkinlik ve daha fazla düzenleme, ancak \"Deneyimli kullanıcılar\"dan daha az etkinlik ve düzenleme.",
        "rcfilters-filter-user-experience-level-experienced-label": "Deneyimli kullanıcılar",
        "tooltip-pt-login": "Oturum açmanız tavsiye edilmektedir; ancak bu zorunlu değildir",
        "tooltip-pt-logout": "Sistemden çık",
        "tooltip-pt-createaccount": "Bir hesap oluşturup oturum açmanız tavsiye edilmektedir ancak bu zorunlu değildir",
-       "tooltip-ca-talk": "İçerik ile ilgili tartışma",
+       "tooltip-ca-talk": "Kullanıcı mesaj sayfası",
        "tooltip-ca-edit": "Bu sayfayı düzenleyin",
        "tooltip-ca-addsection": "Yeni bir altbaşlık aç",
        "tooltip-ca-viewsource": "Bu sayfa koruma altında. Sadece kaynağını görebilirsiniz.",
index 4f72f70..04faef2 100644 (file)
        "anonpreviewwarning": "''Ви не увійшли в систему. Якщо ви виконаєте збереження, то в історію сторінки буде записана ваша IP-адреса.''",
        "missingsummary": "'''Нагадування''': Ви не дали короткого опису змін.\nНатиснувши кнопку «Зберегти» ще раз, ви збережете зміни без коментаря.",
        "selfredirect": "<strong>Попередження:</strong> Ви створюєте перенаправлення на цю ж сторінку.\nВи могли вказати невірну цільову сторінку, або ж редагуєте хибну сторінку.\nЯкщо Ви натиснете \"$1\" ще раз, перенаправлення буде створено.",
-       "missingcommenttext": "Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ð²Ð²ÐµÐ´Ñ\96Ñ\82Ñ\8c Ð½Ð¸Ð¶Ñ\87е Ð²Ð°Ñ\88е Ð¿Ð¾Ð²Ñ\96домленнÑ\8f.",
+       "missingcommenttext": "Ð\91Ñ\83дÑ\8c Ð»Ð°Ñ\81ка, Ð²Ð²ÐµÐ´Ñ\96Ñ\82Ñ\8c ÐºÐ¾Ð¼ÐµÐ½Ñ\82аÑ\80.",
        "missingcommentheader": "<strong>Нагадування</strong>: Ви не вказали тему для цього коментаря.\nНатиснувши кнопку «$1» ще раз, Ви збережете редагування без заголовка.",
        "summary-preview": "Попередній перегляд опису редагування:",
        "subject-preview": "Попередній перегляд теми:",
        "recentchanges-legend": "Налаштування нових редагувань",
        "recentchanges-summary": "Відстеження останніх змін на сторінках {{grammar:genitive|{{SITENAME}}}}.",
        "recentchanges-noresult": "Немає змін за даний період, що відповідають цим критеріям.",
+       "recentchanges-timeout": "Час, відведений на цей пошук, вичерпано. Можливо, Ви захочете спробувати інші пошукові параметри.",
        "recentchanges-feed-description": "Відстежувати останні зміни у вікі в цьому потоці.",
        "recentchanges-label-newpage": "Цим редагуванням створена нова сторінка",
        "recentchanges-label-minor": "Це незначна зміна",
        "rcfilters-filter-user-experience-level-unregistered-label": "Незареєстровані",
        "rcfilters-filter-user-experience-level-unregistered-description": "Користувачі, які не ввійшли в систему.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Новачки",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Зареєстровані редактори, які мають менш ніж 10 редагувань і 4 дні активності.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Зареєстровані редактори, які мають менш ніж 10 редагувань або менш ніж 4 дні активності.",
        "rcfilters-filter-user-experience-level-learner-label": "Учні",
        "rcfilters-filter-user-experience-level-learner-description": "Зареєстровані редактори, рівень досвіду яких перебуває між «новачками» та «досвідченими користувачами».",
        "rcfilters-filter-user-experience-level-experienced-label": "Досвідчені користувачі",
index d331384..2c161b8 100644 (file)
        "rcfilters-filter-user-experience-level-learner-label": "初学者",
        "rcfilters-filter-user-experience-level-learner-description": "比“新手”拥有更多经验,但少于“有经验的用户”。",
        "rcfilters-filter-user-experience-level-experienced-label": "有经验的用户",
-       "rcfilters-filter-user-experience-level-experienced-description": "超过30天活跃和500次编辑。",
+       "rcfilters-filter-user-experience-level-experienced-description": "超过500次编辑和30天活跃的注册编辑者。",
        "rcfilters-filtergroup-automated": "自动化贡献者",
        "rcfilters-filter-bots-label": "机器人",
        "rcfilters-filter-bots-description": "由自动化工具做出的编辑。",
index 335a236..564c932 100644 (file)
        "rcfilters-filter-newpages-label": "頁面建立",
        "rcfilters-filter-newpages-description": "建立新頁面的編輯。",
        "rcfilters-filter-categorization-label": "分類變更",
-       "rcfilters-filter-categorization-description": "å·²å\8a å\85¥å\88°å\88\86é¡\9eæ\88\96å¾\9eå\88\86é¡\9e中移é\99¤ç\9a\84é \81é\9d¢記錄。",
+       "rcfilters-filter-categorization-description": "å¾\9eå\88\86é¡\9e中添å\8a æ\88\96移é\99¤é \81é\9d¢ç\9a\84記錄。",
        "rcfilters-filter-logactions-label": "日誌動作",
        "rcfilters-filter-logactions-description": "管理動作、帳號建立、頁面刪除、上傳…",
        "rcfilters-hideminor-conflicts-typeofchange-global": "\"次要編輯\" 過濾條件與一個或多個變更類型過濾條件衝突,因為某些變更類型無法指定為 \"次要\"。衝突的過濾條件已在上方使用的過濾條件區域中標示。",
        "rcfilters-view-tags": "標記的編輯",
        "rcfilters-view-namespaces-tooltip": "按命名空間過濾結果",
        "rcfilters-view-tags-tooltip": "按編輯標籤過濾結果",
+       "rcfilters-view-return-to-default-tooltip": "返回主過濾選單",
        "rcfilters-view-tags-help-icon-tooltip": "了解更多關於標記編輯的資訊",
        "rcfilters-liveupdates-button": "實時更新",
        "rcfilters-liveupdates-button-title-on": "關閉實時更新",
index 7202952..986fa62 100644 (file)
@@ -42,7 +42,7 @@ if ( !isset( $options['output'] ) ) {
        $options['output'] = 'wiki';
 }
 
-/** Print a usage message*/
+/** Print a usage message */
 function showUsage() {
        print <<<TEXT
 Usage: php transstat.php [--help] [--output=csv|text|wiki]
index 96a425f..c30e150 100644 (file)
@@ -23,9 +23,9 @@
     "karma-chrome-launcher": "2.0.0",
     "karma-firefox-launcher": "1.0.1",
     "karma-mocha-reporter": "2.2.3",
-    "karma-qunit": "1.0.0",
+    "karma-qunit": "1.2.1",
     "nodemw": "0.10.1",
-    "qunitjs": "1.23.1",
+    "qunitjs": "2.4.0",
     "stylelint": "7.8.0",
     "stylelint-config-wikimedia": "0.4.1",
     "wdio-junit-reporter": "0.2.0",
diff --git a/phpcs.xml b/phpcs.xml
deleted file mode 100644 (file)
index 4be45b1..0000000
--- a/phpcs.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0"?>
-<ruleset name="MediaWiki">
-       <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
-               <exclude name="Generic.ControlStructures.InlineControlStructure" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamComment" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturn" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.ParamNameNoMatch" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.ExtraParamComment" />
-               <exclude name="MediaWiki.Commenting.FunctionComment.WrongStyle" />
-               <exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentStart" />
-               <exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentEnd" />
-               <exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" />
-               <exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
-               <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
-               <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.SingleSpaceBeforeSingleLineComment" />
-               <exclude name="MediaWiki.Usage.DbrQueryUsage.DbrQueryFound" />
-               <exclude name="MediaWiki.Usage.ExtendClassUsage.FunctionVarUsage" />
-               <exclude name="MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals" />
-               <exclude name="MediaWiki.Files.ClassMatchesFilename.WrongCase" />
-               <exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
-               <exclude name="MediaWiki.Files.OneClassPerFile.MultipleFound" />
-               <exclude name="MediaWiki.VariableAnalysis.ForbiddenGlobalVariables.ForbiddenGlobal$wgTitle" />
-               <exclude name="MediaWiki.Usage.DeprecatedConstantUsage.NS_IMAGE" />
-               <exclude name="MediaWiki.Usage.DeprecatedConstantUsage.NS_IMAGE_TALK" />
-       </rule>
-       <rule ref="MediaWiki.NamingConventions.PrefixedGlobalFunctions">
-               <properties>
-                       <!--
-                       includes/compat/normal/UtfNormalUtil.php
-                       * codepointToUtf8
-                       * escapeSingleString
-                       * hexSequenceToUtf8
-                       * utf8ToCodepoint
-                       * utf8ToHexSequence
-                       includes/GlobalFunctions.php
-                       * mimeTypeMatch
-                       maintenance/benchmarks/bench_strtr_str_replace.php
-                       * bfNormalizeTitleStrReplace
-                       * bfNormalizeTitleStrTr
-                       maintenance/cdb.php
-                       * cdbShowHelp
-                       maintenance/language/transstat.php
-                       * showUsage
-                       maintenance/mcc.php
-                       * mccGetHelp
-                       * mccShowUsage
-                       maintenance/storage/moveToExternal.php
-                       * moveToExternal
-                       maintenance/storage/resolveStubs.php
-                       * resolveStub
-                       * resolveStubs
-                       profileinfo.php
-                       * compare_point
-                       * getEscapedProfileUrl
-                       tests/phpunit/includes/HooksTest.php
-                       * NothingFunction
-                       * NothingFunctionData
-                       tests/qunit/data/styleTest.css.php
-                       * cssfilter
-                       -->
-                       <property name="ignoreList" type="array" value="bfNormalizeTitleStrReplace,bfNormalizeTitleStrTr,cdbShowHelp,codepointToUtf8,compare_point,cssfilter,escapeSingleString,getEscapedProfileUrl,hexSequenceToUtf8,mccGetHelp,mccShowUsage,mimeTypeMatch,moveToExternal,NothingFunction,NothingFunctionData,resolveStub,resolveStubs,showUsage,utf8ToCodepoint,utf8ToHexSequence" />
-               </properties>
-       </rule>
-       <rule ref="MediaWiki.NamingConventions.ValidGlobalName">
-               <properties>
-                       <property name="ignoreList" type="array" value="$IP,$messageMemc,$parserMemc" />
-               </properties>
-       </rule>
-       <rule ref="Generic.Files.LineLength">
-               <exclude-pattern>*/languages/messages/Messages*.php</exclude-pattern>
-       </rule>
-       <rule ref="PSR2.Methods.MethodDeclaration.Underscore">
-               <exclude-pattern>*/includes/StubObject.php</exclude-pattern>
-       </rule>
-       <file>.</file>
-       <arg name="encoding" value="UTF-8"/>
-       <arg name="extensions" value="php,php5,inc,sample"/>
-       <exclude-pattern type="relative">^extensions/</exclude-pattern>
-       <exclude-pattern type="relative">^skins/</exclude-pattern>
-       <exclude-pattern>AdminSettings\.php</exclude-pattern>
-       <exclude-pattern>LocalSettings\.php</exclude-pattern>
-       <exclude-pattern>StartProfiler\.php</exclude-pattern>
-</ruleset>
index 7afd89d..b9986fe 100644 (file)
@@ -165,6 +165,7 @@ return [
                'targets' => [ 'desktop', 'mobile' ],
        ],
        'jquery.badge' => [
+               'deprecated' => 'Please use Notifications instead.',
                'scripts' => 'resources/src/jquery/jquery.badge.js',
                'styles' => 'resources/src/jquery/jquery.badge.css',
                'dependencies' => 'mediawiki.language',
@@ -1911,6 +1912,7 @@ return [
                        'namespaces',
                        'invert',
                        'recentchanges-noresult',
+                       'recentchanges-timeout',
                        'quotation-marks',
                ],
                'dependencies' => [
index debe0b9..3c03c70 100644 (file)
@@ -33,6 +33,7 @@
         * @event update
         * @param {jQuery|string} $changesListContent List of changes
         * @param {jQuery} $fieldset Server-generated form
+        * @param {boolean} isDatabaseTimeout Whether this is an error state due to a database query
         * @param {boolean} isInitialDOM Whether the previous dom variables are from the initial page load
         * @param {boolean} fromLiveUpdate These are new changes fetched via Live Update
         *
         *
         * @param {jQuery|string} changesListContent
         * @param {jQuery} $fieldset
+        * @param {boolean} isDatabaseTimeout Whether this is an error state due to a database query
+        *   timeout.
         * @param {boolean} [isInitialDOM] Using the initial (already attached) DOM elements
         * @param {boolean} [separateOldAndNew] Whether a logical separation between old and new changes is needed
         * @fires update
         */
-       mw.rcfilters.dm.ChangesListViewModel.prototype.update = function ( changesListContent, $fieldset, isInitialDOM, separateOldAndNew ) {
+       mw.rcfilters.dm.ChangesListViewModel.prototype.update = function ( changesListContent, $fieldset, isDatabaseTimeout, isInitialDOM, separateOldAndNew ) {
                var from = this.nextFrom;
                this.valid = true;
                this.extractNextFrom( $fieldset );
                this.checkForUnseenWatchedChanges( changesListContent );
-               this.emit( 'update', changesListContent, $fieldset, isInitialDOM, separateOldAndNew ? from : null );
+               this.emit( 'update', changesListContent, $fieldset, isDatabaseTimeout, isInitialDOM, separateOldAndNew ? from : null );
        };
 
        /**
index ac998d7..8d36cf5 100644 (file)
         * @param {Object} [tagList] Tag definition
         */
        mw.rcfilters.Controller.prototype.initialize = function ( filterStructure, namespaceStructure, tagList ) {
-               var parsedSavedQueries,
+               var parsedSavedQueries, pieces,
                        displayConfig = mw.config.get( 'StructuredChangeFiltersDisplayConfig' ),
                        defaultSavedQueryExists = mw.config.get( 'wgStructuredChangeFiltersDefaultSavedQueryExists' ),
                        controller = this,
                        views = {},
                        items = [],
-                       uri = new mw.Uri(),
-                       $changesList = $( '.mw-changeslist' ).first().contents();
+                       uri = new mw.Uri();
 
                // Prepare views
                if ( namespaceStructure ) {
                        // again
                        this.updateStateFromUrl( false );
 
+                       pieces = this._extractChangesListInfo( $( '#mw-content-text' ) );
+
                        // Update the changes list with the existing data
                        // so it gets processed
                        this.changesListModel.update(
-                               $changesList.length ? $changesList : 'NO_RESULTS',
-                               $( 'fieldset.cloptions' ).first(),
+                               pieces.changes,
+                               pieces.fieldset,
+                               pieces.noResultsDetails === 'NO_RESULTS_TIMEOUT',
                                true // We're using existing DOM elements
                        );
                }
                }
        };
 
+       /**
+        * Extracts information from the changes list DOM
+        *
+        * @param {jQuery} $root Root DOM to find children from
+        * @return {Object} Information about changes list
+        * @return {Object|string} return.changes Changes list, or 'NO_RESULTS' if there are no results
+        *   (either normally or as an error)
+        * @return {string} [return.noResultsDetails] 'NO_RESULTS_NORMAL' for a normal 0-result set,
+        *   'NO_RESULTS_TIMEOUT' for no results due to a timeout, or omitted for more than 0 results
+        * @return {jQuery} return.fieldset Fieldset
+        */
+       mw.rcfilters.Controller.prototype._extractChangesListInfo = function ( $root ) {
+               var info, isTimeout,
+                       $changesListContents = $root.find( '.mw-changeslist' ).first().contents(),
+                       areResults = !!$changesListContents.length;
+
+               info = {
+                       changes: $changesListContents.length ? $changesListContents : 'NO_RESULTS',
+                       fieldset: $root.find( 'fieldset.cloptions' ).first()
+               };
+
+               if ( !areResults ) {
+                       isTimeout = !!$root.find( '.mw-changeslist-timeout' ).length;
+                       info.noResultsDetails = isTimeout ? 'NO_RESULTS_TIMEOUT' : 'NO_RESULTS_NORMAL';
+               }
+
+               return info;
+       };
+
        /**
         * Create filter data from a number, for the filters that are numerical value
         *
                                        this.changesListModel.update(
                                                $changesListContent,
                                                $fieldset,
+                                               pieces.noResultsDetails === 'NO_RESULTS_TIMEOUT',
                                                false,
                                                // separator between old and new changes
                                                updateMode === this.SHOW_NEW_CHANGES || updateMode === this.LIVE_UPDATE
                return this._queryChangesList( 'updateChangesList' )
                        .then(
                                function ( data ) {
-                                       var $parsed = $( '<div>' ).append( $( $.parseHTML( data.content ) ) ),
-                                               pieces = {
-                                                       // Changes list
-                                                       changes: $parsed.find( '.mw-changeslist' ).first().contents(),
-                                                       // Fieldset
-                                                       fieldset: $parsed.find( 'fieldset.cloptions' ).first()
-                                               };
-
-                                       if ( pieces.changes.length === 0 ) {
-                                               pieces.changes = 'NO_RESULTS';
-                                       }
+                                       var $parsed = $( '<div>' ).append( $( $.parseHTML( data.content ) ) );
 
-                                       return pieces;
-                               }
+                                       return this._extractChangesListInfo( $parsed );
+
+                               }.bind( this )
                        );
        };
 
index bab8ee5..dd095dd 100644 (file)
                                savedLinksListWidget = new mw.rcfilters.ui.SavedLinksListWidget(
                                        controller, savedQueriesModel, { $overlay: $overlay }
                                ),
-                               specialPage = mw.config.get( 'wgCanonicalSpecialPageName' );
+                               specialPage = mw.config.get( 'wgCanonicalSpecialPageName' ),
+                               $changesListRoot = $( '.mw-changeslist, .mw-changeslist-empty, .mw-changeslist-timeout' );
 
                        // TODO: The changesListWrapperWidget should be able to initialize
                        // after the model is ready.
+
                        // eslint-disable-next-line no-new
                        new mw.rcfilters.ui.ChangesListWrapperWidget(
-                               filtersModel, changesListModel, controller, $( '.mw-changeslist, .mw-changeslist-empty' ) );
+                               filtersModel, changesListModel, controller, $changesListRoot );
 
                        // Remove the -loading class that may have been added on the server side.
                        // If we are in fact going to load a default saved query, this .initialize()
index 7e2a67d..ef358e0 100644 (file)
        }
 
        .mw-changeslist {
-               &-empty {
-                       // Hide the 'empty' message when we load rcfilters
-                       // since we replace it anyways with a specific
-                       // message of our own
-                       display: none;
-               }
-
                // Reserve space for the highlight circles
                ul,
                table.mw-enhanced-rc {
                }
        }
 
+       // Temporarily hide any 'empty' or 'timeout' message while we
+       // load rcfilters.
+       .mw-changeslist-empty,
+       .mw-changeslist-timeout {
+               display: none;
+       }
+
        body.mw-rcfilters-ui-loading .mw-changeslist {
                opacity: 0.5;
        }
index 8f3bacf..0fa3137 100644 (file)
 
        // Correction for Enhanced RC
        // This is outside the scope of the 'highlights' wrapper
-       table.mw-enhanced-rc td {
-               vertical-align: middle;
-
-               &:last-child {
+       table.mw-enhanced-rc {
+               td:last-child {
                        width: 100%;
                }
        }
index a6f3644..701eb72 100644 (file)
@@ -42,6 +42,7 @@
                display: inline-block;
                vertical-align: middle;
                text-overflow: ellipsis;
+               white-space: nowrap;
                overflow: hidden;
                cursor: pointer;
                margin-left: 0.5px;
index 83e68a5..d4faf83 100644 (file)
@@ -46,6 +46,8 @@
                this.$element
                        .addClass( 'mw-rcfilters-ui-changesListWrapperWidget' )
                        // We handle our own display/hide of the empty results message
+                       // We keep the timeout class here and remove it later, since at this
+                       // stage it is still needed to identify that the timeout occurred.
                        .removeClass( 'mw-changeslist-empty' );
 
                this.setupNewChangesButtonContainer();
         *
         * @param {jQuery|string} $changesListContent The content of the updated changes list
         * @param {jQuery} $fieldset The content of the updated fieldset
+        * @param {boolean} isDatabaseTimeout Whether this is an error state due to a database query
         * @param {boolean} isInitialDOM Whether $changesListContent is the existing (already attached) DOM
         * @param {boolean} from Timestamp of the new changes
         */
        mw.rcfilters.ui.ChangesListWrapperWidget.prototype.onModelUpdate = function (
-               $changesListContent, $fieldset, isInitialDOM, from
+               $changesListContent, $fieldset, isDatabaseTimeout, isInitialDOM, from
        ) {
-               var conflictItem,
+               var conflictItem, noResultsKey,
                        $message = $( '<div>' )
                                .addClass( 'mw-rcfilters-ui-changesListWrapperWidget-results' ),
                        isEmpty = $changesListContent === 'NO_RESULTS',
                                                        .text( mw.message( conflictItem.getCurrentConflictResultMessage() ).text() )
                                        );
                        } else {
+                               noResultsKey = isDatabaseTimeout ?
+                                       'recentchanges-timeout' :
+                                       'recentchanges-noresult';
+
                                $message
                                        .append(
                                                $( '<div>' )
                                                        .addClass( 'mw-rcfilters-ui-changesListWrapperWidget-results-noresult' )
-                                                       .text( mw.message( 'recentchanges-noresult' ).text() )
+                                                       .text( mw.message( noResultsKey ).text() )
                                        );
+
+                               this.$element.removeClass( 'mw-changeslist-timeout' );
                        }
 
                        this.$element.append( $message );
index 83905d5..4edc272 100644 (file)
         *
         * @param {jQuery|string} $changesList Updated changes list
         * @param {jQuery} $fieldset Updated fieldset
+        * @param {boolean} isDatabaseTimeout Whether this is an error state due to a database query
         * @param {boolean} isInitialDOM Whether $changesListContent is the existing (already attached) DOM
         */
-       mw.rcfilters.ui.FormWrapperWidget.prototype.onChangesModelUpdate = function ( $changesList, $fieldset, isInitialDOM ) {
+       mw.rcfilters.ui.FormWrapperWidget.prototype.onChangesModelUpdate = function ( $changesList, $fieldset, isDatabaseTimeout, isInitialDOM ) {
                this.$submitButton.prop( 'disabled', false );
 
                // Replace the entire fieldset
index d6b06e6..cb11332 100644 (file)
@@ -48,6 +48,10 @@ table.mw-enhanced-rc td.mw-enhanced-rc-nested {
        display: none;
 }
 
+.mw-enhancedchanges-arrow {
+       padding-top: 2px;
+}
+
 .mw-enhancedchanges-arrow-space {
        display: inline-block;
        *display: inline; /* IE7 and below */
index f178698..0e9c19b 100644 (file)
                                        } else {
                                                parameters[ key ] = '\x1f' + parameters[ key ].join( '\x1f' );
                                        }
-                               }
-                               // Boolean values are only false when not given at all
-                               if ( parameters[ key ] === false || parameters[ key ] === undefined ) {
+                               } else if ( parameters[ key ] === false || parameters[ key ] === undefined ) {
+                                       // Boolean values are only false when not given at all
                                        delete parameters[ key ];
                                }
                        }
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png
deleted file mode 100644 (file)
index 2a64fd0..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg
deleted file mode 100644 (file)
index b34fb38..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41333074,0,0,0.41333074,-183.39876,-197.95599)"
-     id="layer1">
-    <g
-       transform="translate(455.60433,484.94177)"
-       id="g3163">
-      <path
-         d="M 0,0.03543307 0,60.519684 43.192915,30.259842 z"
-         id="path3165"
-         style="fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none" />
-      <path
-         d="m 43.157481,0.03543307 5.633859,0 0,60.48425093 -5.633859,0 z"
-         id="path3167"
-         style="fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none" />
-    </g>
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png
deleted file mode 100644 (file)
index 78a493e..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg
deleted file mode 100644 (file)
index 529e8d0..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.4132798,0,0,0.4132798,-87.72955,-233.35372)"
-     id="layer1">
-    <path
-       d="m 272.96237,570.69005 0,60.4894 -43.19393,-30.2447 z"
-       id="path3023-7"
-       style="fill:#cccccc;fill-opacity:1;stroke:none" />
-    <rect
-       width="5.6406202"
-       height="60.489399"
-       x="-229.82111"
-       y="570.68774"
-       transform="scale(-1,1)"
-       id="rect3799-9"
-       style="color:#000000;fill:#cccccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png b/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png
deleted file mode 100644 (file)
index aa4fbf8..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg
deleted file mode 100644 (file)
index 9fbcf20..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-111.35036,-135.3531)"
-     id="layer1">
-    <path
-       d="m 284.11732,333.54605 0,60.4894 43.19395,-30.2447 z"
-       id="path3023-7-2"
-       style="fill:#cccccc;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png b/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png
deleted file mode 100644 (file)
index 83df068..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg
deleted file mode 100644 (file)
index 3130f10..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-139.69062,-163.69336)"
-     id="layer1">
-    <path
-       d="m 395.88269,402.11748 0,60.4894 -43.19395,-30.2447 z"
-       id="path3023-7-2-8"
-       style="fill:#cccccc;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png b/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png
deleted file mode 100644 (file)
index 8904b89..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg
deleted file mode 100644 (file)
index 57df4c0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41327999,0,0,0.41327999,-98.356798,-226.26904)"
-     id="layer1">
-    <path
-       d="m 249.89477,553.5472 0,60.4894 43.19391,-30.2447 z"
-       id="path3023"
-       style="fill:#0000aa;fill-opacity:1;stroke:none" />
-    <rect
-       width="5.6406202"
-       height="60.489399"
-       x="293.03604"
-       y="553.54492"
-       id="rect3799"
-       style="color:#000000;fill:#0000aa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png b/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png
deleted file mode 100644 (file)
index 71d0819..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg
deleted file mode 100644 (file)
index dbb473b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="pager-arrow-fastforward-rtl.svg">
-  <sodipodi:namedview
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1"
-     objecttolerance="10"
-     gridtolerance="10"
-     guidetolerance="10"
-     inkscape:pageopacity="0"
-     inkscape:pageshadow="2"
-     inkscape:window-width="1366"
-     inkscape:window-height="692"
-     id="namedview8"
-     showgrid="false"
-     inkscape:zoom="17.4"
-     inkscape:cx="7.0114943"
-     inkscape:cy="15"
-     inkscape:window-x="0"
-     inkscape:window-y="24"
-     inkscape:window-maximized="1"
-     inkscape:current-layer="svg2" />
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.07055556,0,0,0.07055556,-9.1581596,-2.7587241)"
-     id="layer1">
-    <path
-       d="m 485.26916,74.546776 0,354.317014 -253.00859,-177.15851 z"
-       id="path3023-2"
-       style="fill:#0000aa;fill-opacity:1;stroke:none"
-       inkscape:connector-curvature="0" />
-    <rect
-       width="33.039963"
-       height="354.31699"
-       x="-232.56898"
-       y="74.533081"
-       transform="scale(-1,1)"
-       id="rect3799-6"
-       style="color:#000000;fill:#0000aa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:20;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-ltr.png b/resources/src/mediawiki/images/pager-arrow-forward-ltr.png
deleted file mode 100644 (file)
index c68a4fc..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-forward-ltr.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-ltr.svg b/resources/src/mediawiki/images/pager-arrow-forward-ltr.svg
deleted file mode 100644 (file)
index 1ebf9c1..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-162.12666,-110.55537)"
-     id="layer1">
-    <path
-       d="m 406.97447,273.54605 0,60.4894 43.19391,-30.2447 z"
-       id="path3023-3-9"
-       style="fill:#0000aa;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-rtl.png b/resources/src/mediawiki/images/pager-arrow-forward-rtl.png
deleted file mode 100644 (file)
index d0a7030..0000000
Binary files a/resources/src/mediawiki/images/pager-arrow-forward-rtl.png and /dev/null differ
diff --git a/resources/src/mediawiki/images/pager-arrow-forward-rtl.svg b/resources/src/mediawiki/images/pager-arrow-forward-rtl.svg
deleted file mode 100644 (file)
index b494409..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   version="1.1"
-   width="30"
-   height="30"
-   id="svg2">
-  <defs
-     id="defs4" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     transform="matrix(0.41329555,0,0,0.41329555,-78.28671,-153.06577)"
-     id="layer1">
-    <path
-       d="m 247.31124,376.4032 0,60.4894 -43.19391,-30.2447 z"
-       id="path3023-3"
-       style="fill:#0000aa;fill-opacity:1;stroke:none" />
-  </g>
-</svg>
index d29c79d..d5948ed 100644 (file)
@@ -640,6 +640,17 @@ class OutputPageTest extends MediaWikiTestCase {
                                'not all and (min-resolution: 2dppx),' .
                                '</img/two-x.png>;rel=preload;as=image;media=(min-resolution: 2dppx)'
                        ],
+                       [
+                               [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/img/default.png',
+                                       'LogoHD' => [
+                                               'svg' => '/img/vector.svg',
+                                       ],
+                               ],
+                               'Link: </img/vector.svg>;rel=preload;as=image'
+
+                       ],
                        [
                                [
                                        'ResourceBasePath' => '/w',
index c5a1759..e23f318 100644 (file)
@@ -159,8 +159,9 @@ class WANObjectCacheTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals( 9, $hit, "Values evicted" );
 
                $key = reset( $keys );
-               // Get into cache
+               // Get into cache (default process cache group)
                $this->cache->getWithSetCallback( $key, 100, $callback, [ 'pcTTL' => 5 ] );
+               $this->assertEquals( 10, $hit, "Value calculated" );
                $this->cache->getWithSetCallback( $key, 100, $callback, [ 'pcTTL' => 5 ] );
                $this->assertEquals( 10, $hit, "Value cached" );
                $outerCallback = function () use ( &$callback, $key ) {
@@ -168,7 +169,8 @@ class WANObjectCacheTest extends PHPUnit_Framework_TestCase {
 
                        return 43 + $v;
                };
-               $this->cache->getWithSetCallback( $key, 100, $outerCallback );
+               // Outer key misses and refuses inner key process cache value
+               $this->cache->getWithSetCallback( "$key-miss-outer", 100, $outerCallback );
                $this->assertEquals( 11, $hit, "Nested callback value process cache skipped" );
        }
 
index 7b56def..5ef30e8 100644 (file)
@@ -220,6 +220,48 @@ class ExtensionProcessorTest extends MediaWikiTestCase {
                $this->assertEquals( 'somevalue', $extracted['globals']['egBar'] );
        }
 
+       /**
+        * @covers ExtensionProcessor::addConfigGlobal()
+        * @expectedException RuntimeException
+        */
+       public function testDuplicateConfigKey1() {
+               $processor = new ExtensionProcessor;
+               $info = [
+                       'config' => [
+                               'Bar' => '',
+                       ]
+               ] + self::$default;
+               $info2 = [
+                       'config' => [
+                               'Bar' => 'g',
+                       ],
+                       'name' => 'FooBar2',
+               ];
+               $processor->extractInfo( $this->dir, $info, 1 );
+               $processor->extractInfo( $this->dir, $info2, 1 );
+       }
+
+       /**
+        * @covers ExtensionProcessor::addConfigGlobal()
+        * @expectedException RuntimeException
+        */
+       public function testDuplicateConfigKey2() {
+               $processor = new ExtensionProcessor;
+               $info = [
+                       'config' => [
+                               'Bar' => [ 'value' => 'somevalue' ],
+                       ]
+               ] + self::$default;
+               $info2 = [
+                       'config' => [
+                               'Bar' => [ 'value' => 'somevalue' ],
+                       ],
+                       'name' => 'FooBar2',
+               ];
+               $processor->extractInfo( $this->dir, $info, 2 );
+               $processor->extractInfo( $this->dir, $info2, 2 );
+       }
+
        public static function provideExtractExtensionMessagesFiles() {
                $dir = __DIR__ . '/FooBar/';
                return [
index c567698..be17a69 100644 (file)
@@ -1,15 +1,16 @@
 <?php
 
 /**
- * @group Database
  * @group ResourceLoader
  */
 class ResourceLoaderSkinModuleTest extends PHPUnit_Framework_TestCase {
 
+       // @codingStandardsIgnoreStart Ignore Generic.Files.LineLength.TooLong
        public static function provideGetStyles() {
                return [
                        [
                                'parent' => [],
+                               'logo' => '/logo.png',
                                'expected' => [
                                        'all' => [ '.mw-wiki-logo { background-image: url(/logo.png); }' ],
                                ],
@@ -18,38 +19,77 @@ class ResourceLoaderSkinModuleTest extends PHPUnit_Framework_TestCase {
                                'parent' => [
                                        'screen' => '.example {}',
                                ],
+                               'logo' => '/logo.png',
                                'expected' => [
                                        'screen' => [ '.example {}' ],
                                        'all' => [ '.mw-wiki-logo { background-image: url(/logo.png); }' ],
                                ],
                        ],
+                       [
+                               'parent' => [],
+                               'logo' => [
+                                       '1x' => '/logo.png',
+                                       '1.5x' => '/logo@1.5x.png',
+                                       '2x' => '/logo@2x.png',
+                               ],
+                               'expected' => [
+                                       'all' => [ <<<CSS
+.mw-wiki-logo { background-image: url(/logo.png); }
+CSS
+                                       ],
+                                       '(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx), (min-resolution: 144dpi)' => [ <<<CSS
+.mw-wiki-logo { background-image: url(/logo@1.5x.png);background-size: 135px auto; }
+CSS
+                                       ],
+                                       '(-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (min-resolution: 2dppx), (min-resolution: 192dpi)' => [ <<<CSS
+.mw-wiki-logo { background-image: url(/logo@2x.png);background-size: 135px auto; }
+CSS
+                                       ],
+                               ],
+                       ],
+                       [
+                               'parent' => [],
+                               'logo' => [
+                                       '1x' => '/logo.png',
+                                       'svg' => '/logo.svg',
+                               ],
+                               'expected' => [
+                                       'all' => [ <<<CSS
+.mw-wiki-logo { background-image: url(/logo.png); }
+CSS
+                                       , <<<CSS
+.mw-wiki-logo { background-image: -webkit-linear-gradient(transparent, transparent), url(/logo.svg); background-image: linear-gradient(transparent, transparent), url(/logo.svg);background-size: 135px auto; }
+CSS
+                                       ],
+                               ],
+                       ],
                ];
        }
+       // @codingStandardsIgnoreEnd
 
        /**
         * @dataProvider provideGetStyles
         * @covers ResourceLoaderSkinModule::normalizeStyles
         * @covers ResourceLoaderSkinModule::getStyles
         */
-       public function testGetStyles( $parent, $expected ) {
+       public function testGetStyles( $parent, $logo, $expected ) {
                $module = $this->getMockBuilder( ResourceLoaderSkinModule::class )
                        ->disableOriginalConstructor()
-                       ->setMethods( [ 'readStyleFiles' ] )
+                       ->setMethods( [ 'readStyleFiles', 'getConfig', 'getLogoData' ] )
                        ->getMock();
                $module->expects( $this->once() )->method( 'readStyleFiles' )
                        ->willReturn( $parent );
-               $module->setConfig( new HashConfig( [
-                       'ResourceBasePath' => '/w',
-                       'Logo' => '/logo.png',
-                       'LogoHD' => false,
-               ] ) );
+               $module->expects( $this->once() )->method( 'getConfig' )
+                       ->willReturn( new HashConfig() );
+               $module->expects( $this->once() )->method( 'getLogoData' )
+                       ->willReturn( $logo );
 
                $ctx = $this->getMockBuilder( ResourceLoaderContext::class )
                        ->disableOriginalConstructor()->getMock();
 
                $this->assertEquals(
-                       $module->getStyles( $ctx ),
-                       $expected
+                       $expected,
+                       $module->getStyles( $ctx )
                );
        }
 
@@ -64,4 +104,102 @@ class ResourceLoaderSkinModuleTest extends PHPUnit_Framework_TestCase {
 
                $this->assertFalse( $module->isKnownEmpty( $ctx ) );
        }
+
+       /**
+        * @dataProvider provideGetLogo
+        * @covers ResourceLoaderSkinModule::getLogo
+        */
+       public function testGetLogo( $config, $expected, $baseDir = null ) {
+               if ( $baseDir ) {
+                       $oldIP = $GLOBALS['IP'];
+                       $GLOBALS['IP'] = $baseDir;
+                       $teardown = new Wikimedia\ScopedCallback( function () use ( $oldIP ) {
+                               $GLOBALS['IP'] = $oldIP;
+                       } );
+               }
+
+               $this->assertEquals(
+                       $expected,
+                       ResourceLoaderSkinModule::getLogo( new HashConfig( $config ) )
+               );
+       }
+
+       public function provideGetLogo() {
+               return [
+                       'simple' => [
+                               'config' => [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/img/default.png',
+                                       'LogoHD' => false,
+                               ],
+                               'expected' => '/img/default.png',
+                       ],
+                       'default and 2x' => [
+                               'config' => [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/img/default.png',
+                                       'LogoHD' => [
+                                               '2x' => '/img/two-x.png',
+                                       ],
+                               ],
+                               'expected' => [
+                                       '1x' => '/img/default.png',
+                                       '2x' => '/img/two-x.png',
+                               ],
+                       ],
+                       'default and all HiDPIs' => [
+                               'config' => [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/img/default.png',
+                                       'LogoHD' => [
+                                               '1.5x' => '/img/one-point-five.png',
+                                               '2x' => '/img/two-x.png',
+                                       ],
+                               ],
+                               'expected' => [
+                                       '1x' => '/img/default.png',
+                                       '1.5x' => '/img/one-point-five.png',
+                                       '2x' => '/img/two-x.png',
+                               ],
+                       ],
+                       'default and SVG' => [
+                               'config' => [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/img/default.png',
+                                       'LogoHD' => [
+                                               'svg' => '/img/vector.svg',
+                                       ],
+                               ],
+                               'expected' => [
+                                       '1x' => '/img/default.png',
+                                       'svg' => '/img/vector.svg',
+                               ],
+                       ],
+                       'everything' => [
+                               'config' => [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/img/default.png',
+                                       'LogoHD' => [
+                                               '1.5x' => '/img/one-point-five.png',
+                                               '2x' => '/img/two-x.png',
+                                               'svg' => '/img/vector.svg',
+                                       ],
+                               ],
+                               'expected' => [
+                                       '1x' => '/img/default.png',
+                                       'svg' => '/img/vector.svg',
+                               ],
+                       ],
+                       'versioned url' => [
+                               'config' => [
+                                       'ResourceBasePath' => '/w',
+                                       'Logo' => '/w/test.jpg',
+                                       'LogoHD' => false,
+                                       'UploadPath' => '/w/images',
+                               ],
+                               'expected' => '/w/test.jpg?edcf2',
+                               'baseDir' => dirname( dirname( __DIR__ ) ) . '/data/media',
+                       ],
+               ];
+       }
 }