Merge "Made SqlBagOStuff set() wrap setMulti()"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 2 Jul 2015 08:14:36 +0000 (08:14 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 2 Jul 2015 08:14:36 +0000 (08:14 +0000)
260 files changed:
.gitattributes
RELEASE-NOTES-1.26
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
includes/CdbCompat.php [deleted file]
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/GlobalFunctions.php
includes/MediaWiki.php
includes/MimeMagic.php
includes/Setup.php
includes/Title.php
includes/User.php
includes/ZhConversion.php
includes/actions/InfoAction.php
includes/api/ApiBase.php
includes/api/ApiDelete.php
includes/api/ApiEditPage.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiFormatBase.php
includes/api/ApiFormatDump.php [deleted file]
includes/api/ApiFormatPhp.php
includes/api/ApiFormatWddx.php [deleted file]
includes/api/ApiFormatXml.php
includes/api/ApiMain.php
includes/api/ApiParse.php
includes/api/ApiQueryRevisionsBase.php
includes/api/i18n/de.json
includes/api/i18n/el.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/fa.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/ja.json
includes/api/i18n/ksh.json
includes/api/i18n/or.json [new file with mode: 0644]
includes/api/i18n/pl.json
includes/api/i18n/qqq.json
includes/api/i18n/vi.json
includes/api/i18n/yi.json
includes/api/i18n/zh-hans.json
includes/cache/HTMLFileCache.php
includes/cache/MessageCache.php
includes/changes/ChangesList.php
includes/changes/EnhancedChangesList.php
includes/compat/CdbCompat.php [new file with mode: 0644]
includes/compat/normal/.gitignore [new file with mode: 0644]
includes/compat/normal/UtfNormal.php [new file with mode: 0644]
includes/compat/normal/UtfNormalDefines.php [new file with mode: 0644]
includes/compat/normal/UtfNormalUtil.php [new file with mode: 0644]
includes/content/ContentHandler.php
includes/context/DerivativeContext.php
includes/context/RequestContext.php
includes/db/Database.php
includes/db/DatabaseMysql.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseMysqli.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/filebackend/FileBackendMultiWrite.php
includes/filerepo/file/ArchivedFile.php
includes/htmlform/HTMLButtonField.php
includes/htmlform/HTMLCheckMatrix.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLMultiSelectField.php
includes/htmlform/HTMLRadioField.php
includes/htmlform/HTMLSubmitField.php
includes/htmlform/HTMLTextAreaField.php
includes/htmlform/HTMLTextField.php
includes/htmlform/OOUIHTMLForm.php
includes/htmlform/VFormHTMLForm.php
includes/installer/i18n/fa.json
includes/installer/i18n/ja.json
includes/installer/i18n/kn.json
includes/installer/i18n/mr.json
includes/installer/i18n/or.json
includes/installer/i18n/uk.json
includes/jobqueue/Job.php
includes/jobqueue/JobRunner.php
includes/jobqueue/jobs/EnqueueJob.php [changed mode: 0755->0644]
includes/libs/BufferingStatsdDataFactory.php
includes/libs/RiffExtractor.php [new file with mode: 0644]
includes/libs/composer/ComposerLock.php
includes/libs/eventrelayer/EventRelayer.php [changed mode: 0755->0644]
includes/libs/eventrelayer/EventRelayerMCRD.php [changed mode: 0755->0644]
includes/libs/normal/.gitignore [deleted file]
includes/libs/normal/UtfNormal.php [deleted file]
includes/libs/normal/UtfNormalDefines.php [deleted file]
includes/libs/normal/UtfNormalUtil.php [deleted file]
includes/libs/objectcache/WANObjectCache.php [changed mode: 0755->0644]
includes/logging/ContentModelLogFormatter.php [new file with mode: 0644]
includes/media/Bitmap.php
includes/media/FormatMetadata.php
includes/media/WebP.php [new file with mode: 0644]
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserOutput.php
includes/poolcounter/PoolCounter.php
includes/profiler/output/ProfilerOutputDump.php
includes/profiler/output/ProfilerOutputText.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderModule.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialChangeContentModel.php [new file with mode: 0644]
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialDoubleRedirects.php
includes/specials/SpecialPageLanguage.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialResetTokens.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/title/MalformedTitleException.php
includes/utils/AutoloadGenerator.php
includes/widget/AUTHORS.txt [new file with mode: 0644]
includes/widget/LICENSE.txt [new file with mode: 0644]
includes/widget/TitleInputWidget.php [new file with mode: 0644]
languages/i18n/ar.json
languages/i18n/as.json
languages/i18n/awa.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/cs.json
languages/i18n/de.json
languages/i18n/dty.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/gu.json
languages/i18n/gv.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hil.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hu.json
languages/i18n/ia.json
languages/i18n/ilo.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/km.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lrc.json
languages/i18n/luz.json
languages/i18n/lv.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mr.json
languages/i18n/mzn.json
languages/i18n/nan.json
languages/i18n/nb.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/or.json
languages/i18n/pa.json
languages/i18n/pdc.json
languages/i18n/pl.json
languages/i18n/ps.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sh.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/te.json
languages/i18n/uk.json
languages/i18n/uz.json
languages/i18n/vi.json
languages/i18n/yi.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesBs.php
maintenance/convertExtensionToRegistration.php
maintenance/language/generateNormalizerDataAr.php
maintenance/language/generateNormalizerDataMl.php
maintenance/language/zhtable/simpphrases.manual
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/tradphrases.manual
maintenance/language/zhtable/tradphrases_exclude.manual
maintenance/populateContentModel.php [new file with mode: 0644]
maintenance/update.php
resources/Resources.php
resources/lib/oojs-ui/i18n/eu.json
resources/lib/oojs-ui/i18n/fi.json
resources/lib/oojs-ui/i18n/hrx.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/ku-latn.json
resources/lib/oojs-ui/i18n/nb.json
resources/lib/oojs-ui/i18n/sv.json
resources/lib/oojs-ui/i18n/yue.json
resources/lib/oojs-ui/oojs-ui-apex-noimages.css
resources/lib/oojs-ui/oojs-ui-apex.js
resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.svg
resources/src/mediawiki.less/mediawiki.ui/mixins.less
resources/src/mediawiki.less/mediawiki.ui/variables.less
resources/src/mediawiki.page/mediawiki.page.ready.js
resources/src/mediawiki.skinning/elements.css
resources/src/mediawiki.special/mediawiki.special.version.css
resources/src/mediawiki.ui/components/buttons.less
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css
resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js
resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.htmlform.ooui.js [deleted file]
resources/src/mediawiki/mediawiki.js
tests/phpunit/data/media/2_webp_a.webp [new file with mode: 0644]
tests/phpunit/data/media/2_webp_ll.webp [new file with mode: 0644]
tests/phpunit/data/media/webp_animated.webp [new file with mode: 0644]
tests/phpunit/includes/MediaWikiTest.php
tests/phpunit/includes/api/ApiEditPageTest.php
tests/phpunit/includes/api/format/ApiFormatDumpTest.php [deleted file]
tests/phpunit/includes/api/format/ApiFormatWddxTest.php [deleted file]
tests/phpunit/includes/libs/composer/ComposerLockTest.php
tests/phpunit/includes/media/WebPTest.php [new file with mode: 0644]
tests/phpunit/includes/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/specials/SpecialSearchTest.php
tests/phpunit/phpunit.php
tests/phpunit/structure/ResourcesTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js

index 69d7b1b..09f86a3 100644 (file)
@@ -1,2 +1,3 @@
 *.sh eol=lf
 *.icc binary
+*.webp binary
index c2228ae..aed6de9 100644 (file)
@@ -14,8 +14,12 @@ production.
 * New-style continuation is now the default for API action=continue. Clients may
   use the 'rawcontinue' parameter to receive raw query-continue data, but the
   new style is encouraged as it's harder to implement incorrectly.
+* Deprecated API formats dump and wddx have been completely removed.
 
 === New features in 1.26 ===
+* (T51506) Now action=info gives estimates of actual watchers for a page.
+  See $wgRCMaxAge, $wgWatchersMaxAge and $wgUnwatchedPageSecret
+  to learn how to configure if needed.
 * Change tags can now be hidden in the interface by disabling the associated
   "tag-<id>" interface message.
 * ':' (colon) is now invalid in usernames for new accounts. Existing accounts
@@ -30,6 +34,12 @@ production.
 * (T68699) The expiration of the UserID and Token login cookies
   ($wgExtendedLoginCookieExpiration) can be configured independently of the
   expiration of all other cookies ($wgCookieExpiration).
+* (T50519) Support for generating JPEG/PNG thumbnails from WebP images added
+  if ImageMagick is used as image scaler ($wgUseImageMagick = true). Uploading
+  of WebP images still disabled by default. Add $wgFileExtensions[] =
+  'webp'; to LocalSettings.php to enable uploading of WebP images.
+* Added a new hook 'EnhancedChangesListModifyLineData', to
+  modify the data used to build lines in enhanced recentchanges and watchlist.
 
 ==== External libraries ====
 * Update es5-shim from v4.0.0 to v4.1.5.
@@ -39,13 +49,14 @@ production.
 * Added mediawiki/at-ease 1.0.0
 
 === Bug fixes in 1.26 ===
-* (bug 51283) load.php sometimes sends 304 response without full headers
+* (T53283) load.php sometimes sends 304 response without full headers
 * (T65198) Talk page tabs now have a "rel=discussion" attribute
 
 === Action API changes in 1.26 ===
 * New-style continuation is now the default for action=continue. Clients may
   use the 'rawcontinue' parameter to receive raw query-continue data, but the
   new style is encouraged as it's harder to implement incorrectly.
+* Deprecated API formats dump and wddx have been completely removed.
 * API action=query&list=tags: The displayname can now be boolean false if the
   tag is meant to be hidden from user interfaces.
 * action=import no longer allows both the namespace= and rootpage= parameters
@@ -65,7 +76,7 @@ production.
 
 MediaWiki supports over 350 languages. Many localisations are updated
 regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Bugzilla reports.
+changes to languages because of Phabricator reports.
 
 * Languages added:
 ** dty (डोटेली/Doteli), thanks to translators जनक राज भट्ट, बिप्लब आनन्द,
@@ -111,7 +122,9 @@ changes to languages because of Bugzilla reports.
   instead of many optional positional arguments. Calling the constructor the old
   way will issue a deprecation warning.
 * The jquery.mwExtension module was deprecated.
-
+* $wgSpecialPageGroups was removed (deprecated in 1.21).
+* SpecialPageFactory::setGroup was removed (deprecated in 1.21).
+* SpecialPageFactory::getGroup was removed (deprecated in 1.21).
 
 == Compatibility ==
 
@@ -178,4 +191,3 @@ going to run a public MediaWiki, so you can be notified of security fixes.
 == IRC help ==
 
 There's usually someone online in #mediawiki on irc.freenode.net.
-
index 504eaf2..8e4da1e 100644 (file)
@@ -37,14 +37,12 @@ $wgAutoloadLocalClasses = array(
        'ApiFileRevert' => __DIR__ . '/includes/api/ApiFileRevert.php',
        'ApiFormatBase' => __DIR__ . '/includes/api/ApiFormatBase.php',
        'ApiFormatDbg' => __DIR__ . '/includes/api/ApiFormatDbg.php',
-       'ApiFormatDump' => __DIR__ . '/includes/api/ApiFormatDump.php',
        'ApiFormatFeedWrapper' => __DIR__ . '/includes/api/ApiFormatFeedWrapper.php',
        'ApiFormatJson' => __DIR__ . '/includes/api/ApiFormatJson.php',
        'ApiFormatNone' => __DIR__ . '/includes/api/ApiFormatNone.php',
        'ApiFormatPhp' => __DIR__ . '/includes/api/ApiFormatPhp.php',
        'ApiFormatRaw' => __DIR__ . '/includes/api/ApiFormatRaw.php',
        'ApiFormatTxt' => __DIR__ . '/includes/api/ApiFormatTxt.php',
-       'ApiFormatWddx' => __DIR__ . '/includes/api/ApiFormatWddx.php',
        'ApiFormatXml' => __DIR__ . '/includes/api/ApiFormatXml.php',
        'ApiFormatXmlRsd' => __DIR__ . '/includes/api/ApiRsd.php',
        'ApiFormatYaml' => __DIR__ . '/includes/api/ApiFormatYaml.php',
@@ -202,9 +200,9 @@ $wgAutoloadLocalClasses = array(
        'CategoryPage' => __DIR__ . '/includes/page/CategoryPage.php',
        'CategoryPager' => __DIR__ . '/includes/specials/SpecialCategories.php',
        'CategoryViewer' => __DIR__ . '/includes/CategoryViewer.php',
-       'CdbException' => __DIR__ . '/includes/CdbCompat.php',
-       'CdbReader' => __DIR__ . '/includes/CdbCompat.php',
-       'CdbWriter' => __DIR__ . '/includes/CdbCompat.php',
+       'CdbException' => __DIR__ . '/includes/compat/CdbCompat.php',
+       'CdbReader' => __DIR__ . '/includes/compat/CdbCompat.php',
+       'CdbWriter' => __DIR__ . '/includes/compat/CdbCompat.php',
        'CgzCopyTransaction' => __DIR__ . '/maintenance/storage/recompressTracked.php',
        'ChangePassword' => __DIR__ . '/maintenance/changePassword.php',
        'ChangeTags' => __DIR__ . '/includes/changetags/ChangeTags.php',
@@ -258,6 +256,7 @@ $wgAutoloadLocalClasses = array(
        'ConstantDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
        'Content' => __DIR__ . '/includes/content/Content.php',
        'ContentHandler' => __DIR__ . '/includes/content/ContentHandler.php',
+       'ContentModelLogFormatter' => __DIR__ . '/includes/logging/ContentModelLogFormatter.php',
        'ContextSource' => __DIR__ . '/includes/context/ContextSource.php',
        'ContribsPager' => __DIR__ . '/includes/specials/SpecialContributions.php',
        'ConvertExtensionToRegistration' => __DIR__ . '/maintenance/convertExtensionToRegistration.php',
@@ -754,6 +753,7 @@ $wgAutoloadLocalClasses = array(
        'MediaWiki\\Logger\\Monolog\\WikiProcessor' => __DIR__ . '/includes/debug/logger/monolog/WikiProcessor.php',
        'MediaWiki\\Logger\\NullSpi' => __DIR__ . '/includes/debug/logger/NullSpi.php',
        'MediaWiki\\Logger\\Spi' => __DIR__ . '/includes/debug/logger/Spi.php',
+       'MediaWiki\\Widget\\TitleInputWidget' => __DIR__ . '/includes/widget/TitleInputWidget.php',
        'MemCachedClientforWiki' => __DIR__ . '/includes/objectcache/MemcachedClient.php',
        'MemcLockManager' => __DIR__ . '/includes/filebackend/lockmanager/MemcLockManager.php',
        'MemcachedBagOStuff' => __DIR__ . '/includes/objectcache/MemcachedBagOStuff.php',
@@ -1040,6 +1040,7 @@ $wgAutoloadLocalClasses = array(
        'RevisionList' => __DIR__ . '/includes/RevisionList.php',
        'RevisionListBase' => __DIR__ . '/includes/RevisionList.php',
        'RevisiondeleteAction' => __DIR__ . '/includes/actions/RevisiondeleteAction.php',
+       'RiffExtractor' => __DIR__ . '/includes/libs/RiffExtractor.php',
        'RightsLogFormatter' => __DIR__ . '/includes/logging/RightsLogFormatter.php',
        'RollbackAction' => __DIR__ . '/includes/actions/RollbackAction.php',
        'RollbackEdits' => __DIR__ . '/maintenance/rollbackEdits.php',
@@ -1108,6 +1109,7 @@ $wgAutoloadLocalClasses = array(
        'SpecialBookSources' => __DIR__ . '/includes/specials/SpecialBooksources.php',
        'SpecialCachedPage' => __DIR__ . '/includes/specials/SpecialCachedPage.php',
        'SpecialCategories' => __DIR__ . '/includes/specials/SpecialCategories.php',
+       'SpecialChangeContentModel' => __DIR__ . '/includes/specials/SpecialChangeContentModel.php',
        'SpecialChangeEmail' => __DIR__ . '/includes/specials/SpecialChangeEmail.php',
        'SpecialChangePassword' => __DIR__ . '/includes/specials/SpecialChangePassword.php',
        'SpecialComparePages' => __DIR__ . '/includes/specials/SpecialComparePages.php',
@@ -1306,7 +1308,7 @@ $wgAutoloadLocalClasses = array(
        'UserloginTemplate' => __DIR__ . '/includes/templates/Userlogin.php',
        'UserrightsPage' => __DIR__ . '/includes/specials/SpecialUserrights.php',
        'UsersPager' => __DIR__ . '/includes/specials/SpecialListusers.php',
-       'UtfNormal' => __DIR__ . '/includes/libs/normal/UtfNormal.php',
+       'UtfNormal' => __DIR__ . '/includes/compat/normal/UtfNormal.php',
        'UzConverter' => __DIR__ . '/languages/classes/LanguageUz.php',
        'VFormHTMLForm' => __DIR__ . '/includes/htmlform/VFormHTMLForm.php',
        'ValidateRegistrationFile' => __DIR__ . '/maintenance/validateRegistrationFile.php',
@@ -1342,6 +1344,7 @@ $wgAutoloadLocalClasses = array(
        'WebInstallerUpgrade' => __DIR__ . '/includes/installer/WebInstallerPage.php',
        'WebInstallerUpgradeDoc' => __DIR__ . '/includes/installer/WebInstallerPage.php',
        'WebInstallerWelcome' => __DIR__ . '/includes/installer/WebInstallerPage.php',
+       'WebPHandler' => __DIR__ . '/includes/media/WebP.php',
        'WebRequest' => __DIR__ . '/includes/WebRequest.php',
        'WebRequestUpload' => __DIR__ . '/includes/WebRequest.php',
        'WebResponse' => __DIR__ . '/includes/WebResponse.php',
index 7419eb5..929b3e5 100644 (file)
                "leafo/lessphp": "0.5.0",
                "liuggio/statsd-php-client": "1.0.12",
                "mediawiki/at-ease": "1.0.0",
-               "oojs/oojs-ui": "0.11.6",
+               "oojs/oojs-ui": "0.11.7",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
                "wikimedia/assert": "0.2.2",
-               "wikimedia/composer-merge-plugin": "1.1.0",
+               "wikimedia/composer-merge-plugin": "1.2.0",
                "wikimedia/utfnormal": "1.0.2",
                "zordius/lightncandy": "0.21"
        },
        "require-dev": {
-               "jakub-onderka/php-parallel-lint": "~0.8",
+               "jakub-onderka/php-parallel-lint": "0.9",
                "justinrainbow/json-schema": "~1.3",
                "phpunit/phpunit": "3.7.37",
-               "mediawiki/mediawiki-codesniffer": "0.2.0"
+               "mediawiki/mediawiki-codesniffer": "0.3.0"
        },
        "suggest": {
                "ext-fileinfo": "*",
index d7d9e47..c9f629c 100644 (file)
                        "type": "object"
                },
                "FilterLogTypes": {
-                       "type": "array"
+                       "type": "object"
                },
                "LogNames": {
                        "type": "object"
index 8cfdee9..bcdfa40 100644 (file)
@@ -1304,6 +1304,13 @@ $changesList: EnhancedChangesList object
 &$links: The links that were generated by EnhancedChangesList
 $block: The RecentChanges objects in that block
 
+'EnhancedChangesListModifyLineData': to alter data used to build
+a recent change inner line in EnhancedChangesList.
+$changesList: EnhancedChangesList object
+&$data: An array with all the components that will be joined in order to create the line
+$block: An array of RecentChange objects in that block
+$rc: The RecentChange object for this line
+
 'ExemptFromAccountCreationThrottle': Exemption from the account creation
 throttle.
 $ip: The ip address of the user
@@ -2403,7 +2410,9 @@ such as Special:MyPage and Special:MyTalk.
 &$redirectParams: An array of parameters preserved by redirecting special pages.
 
 'RejectParserCacheValue': Return false to reject an otherwise usable
-cached value from the Parser cache.
+cached value from the Parser cache. NOTE: CARELESS USE OF THIS HOOK CAN
+HAVE CATASTROPHIC CONSEQUENCES FOR HIGH-TRAFFIC INSTALLATIONS. USE WITH
+EXTREME CARE.
 $parserOutput: ParserOutput value.
 $wikiPage: WikiPage object.
 $parserOptions: ParserOptions object.
diff --git a/includes/CdbCompat.php b/includes/CdbCompat.php
deleted file mode 100644 (file)
index 0074cc9..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/***
- * This file contains a set of backwards-compatability class names
- * after the cdb functions were moved out into a separate library
- * and put under a proper namespace
- *
- * @since 1.25
- */
-
-/**
- * @deprecated since 1.25
- */
-abstract class CdbReader extends \Cdb\Reader {
-}
-
-/**
- * @deprecated since 1.25
- */
-abstract class CdbWriter extends \Cdb\Writer {
-}
-
-/**
- * @deprecated since 1.25
- */
-class CdbException extends \Cdb\Exception {
-}
index 45102ee..7dbe35a 100644 (file)
@@ -884,6 +884,7 @@ $wgMediaHandlers = array(
        'image/png' => 'PNGHandler',
        'image/gif' => 'GIFHandler',
        'image/tiff' => 'TiffHandler',
+       'image/webp' => 'WebPHandler',
        'image/x-ms-bmp' => 'BmpHandler',
        'image/x-bmp' => 'BmpHandler',
        'image/x-xcf' => 'XCFHandler',
@@ -2175,6 +2176,19 @@ $wgObjectCaches = array(
        CACHE_ACCEL => array( 'factory' => 'ObjectCache::newAccelerator' ),
        CACHE_MEMCACHED => array( 'factory' => 'ObjectCache::newMemcached', 'loggroup' => 'memcached' ),
 
+       'db-replicated' => array(
+               'class'       => 'ReplicatedBagOStuff',
+               'readFactory' => array(
+                       'class' => 'SqlBagOStuff',
+                       'args'  => array( array( 'slaveOnly' => true ) )
+               ),
+               'writeFactory' => array(
+                       'class' => 'SqlBagOStuff',
+                       'args'  => array( array( 'slaveOnly' => false ) )
+               ),
+               'loggroup'  => 'SQLBagOStuff'
+       ),
+
        'apc' => array( 'class' => 'APCBagOStuff' ),
        'xcache' => array( 'class' => 'XCacheBagOStuff' ),
        'wincache' => array( 'class' => 'WinCacheBagOStuff' ),
@@ -2237,6 +2251,7 @@ $wgWANObjectCaches = array(
  * lightweight data like hit counters and user activity. Sites with multiple
  * data-centers should have this use a store that replicates all writes. The
  * store should have enough consistency for CAS operations to be usable.
+ * Reads outside of those needed for merge() may be eventually consistent.
  *
  * The options are:
  *   - db:      Store cache objects in the DB
@@ -2245,7 +2260,7 @@ $wgWANObjectCaches = array(
  *
  * @since 1.26
  */
-$wgMainStash = 'db';
+$wgMainStash = 'db-replicated';
 
 /**
  * The expiry time for the parser cache, in seconds.
@@ -5678,6 +5693,29 @@ $wgAggregateStatsID = false;
  */
 $wgStatsFormatString = "stats/%s - %s 1 1 1 1 %s\n";
 
+/**
+ * Destination of statsd metrics.
+ *
+ * A host or host:port of a statsd server. Port defaults to 8125.
+ *
+ * If not set, statsd metrics will not be collected.
+ *
+ * @see wfLogProfilingData
+ * @since 1.25
+ */
+$wgStatsdServer = false;
+
+/**
+ * Prefix for metric names sent to wgStatsdServer.
+ *
+ * Defaults to "MediaWiki".
+ *
+ * @see RequestContext::getStats
+ * @see BufferingStatsdDataFactory
+ * @since 1.25
+ */
+$wgStatsdMetricPrefix = false;
+
 /**
  * InfoAction retrieves a list of transclusion links (both to and from).
  * This number puts a limit on that query in the case of highly transcluded
@@ -6010,6 +6048,21 @@ $wgGitRepositoryViewers = array(
  */
 $wgRCMaxAge = 90 * 24 * 3600;
 
+/**
+ * Page watchers inactive for more than this many seconds are considered inactive.
+ * Used mainly by action=info. Default: 180 days = about six months.
+ * @since 1.26
+ */
+$wgWatchersMaxAge = 180 * 24 * 3600;
+
+/**
+ * If active watchers (per above) are this number or less, do not disclose it.
+ * Left to 1, prevents unprivileged users from knowing for sure that there are 0.
+ * Set to -1 if you want to always complement watchers count with this info.
+ * @since 1.26
+ */
+$wgUnwatchedPageSecret = 1;
+
 /**
  * Filter $wgRCLinkDays by $wgRCMaxAge to avoid showing links for numbers
  * higher than what will be stored. Note that this is disabled by default
@@ -6795,6 +6848,7 @@ $wgLogTypes = array(
        'suppress',
        'tag',
        'managetags',
+       'contentmodel',
 );
 
 /**
@@ -6929,6 +6983,7 @@ $wgLogActionsHandlers = array(
        'suppress/reblock' => 'BlockLogFormatter',
        'import/upload' => 'LogFormatter',
        'import/interwiki' => 'LogFormatter',
+       'contentmodel/change' => 'ContentModelLogFormatter',
 );
 
 /**
@@ -6954,14 +7009,6 @@ $wgAllowSpecialInclusion = true;
  */
 $wgDisableQueryPageUpdate = false;
 
-/**
- * List of special pages, followed by what subtitle they should go under
- * at Special:SpecialPages
- *
- * @deprecated since 1.21 Override SpecialPage::getGroupName instead
- */
-$wgSpecialPageGroups = array();
-
 /**
  * On Special:Unusedimages, consider images "used", if they are put
  * into a category. Default (false) is not to count those as used.
index 262471e..d55bbcf 100644 (file)
@@ -198,7 +198,7 @@ define( 'LIST_OR', 4 );
 /**
  * Unicode and normalisation related
  */
-require_once __DIR__ . '/libs/normal/UtfNormalDefines.php';
+require_once __DIR__ . '/compat/normal/UtfNormalDefines.php';
 
 /**@{
  * Hook support constants
index 3600fb2..bf322ae 100644 (file)
@@ -1671,6 +1671,7 @@ class EditPage {
                        }
                }
 
+               $changingContentModel = false;
                if ( $this->contentModel !== $this->mTitle->getContentModel() ) {
                        if ( !$wgContentHandlerUseDB ) {
                                $status->fatal( 'editpage-cannot-use-custom-model' );
@@ -1679,7 +1680,10 @@ class EditPage {
                        } elseif ( !$wgUser->isAllowed( 'editcontentmodel' ) ) {
                                $status->setResult( false, self::AS_NO_CHANGE_CONTENT_MODEL );
                                return $status;
+
                        }
+                       $changingContentModel = true;
+                       $oldContentModel = $this->mTitle->getContentModel();
                }
 
                if ( $this->changeTags ) {
@@ -1978,9 +1982,39 @@ class EditPage {
                        } );
                }
 
+               // If the content model changed, add a log entry
+               if ( $changingContentModel ) {
+                       $this->addContentModelChangeLogEntry(
+                               $wgUser,
+                               $oldContentModel,
+                               $this->contentModel,
+                               $this->summary
+                       );
+               }
+
                return $status;
        }
 
+       /**
+        * @param Title $title
+        * @param string $oldModel
+        * @param string $newModel
+        * @param string $reason
+        */
+       protected function addContentModelChangeLogEntry( User $user, $oldModel, $newModel, $reason ) {
+               $log = new ManualLogEntry( 'contentmodel', 'change' );
+               $log->setPerformer( $user );
+               $log->setTarget( $this->mTitle );
+               $log->setComment( $reason );
+               $log->setParameters( array(
+                       '4::oldmodel' => $oldModel,
+                       '5::newmodel' => $newModel
+               ) );
+               $logid = $log->insert();
+               $log->publish( $logid );
+       }
+
+
        /**
         * Register the change of watch status
         */
index c618426..97042fd 100644 (file)
@@ -1248,7 +1248,7 @@ function wfLogProfilingData() {
        $profiler->logData();
 
        $config = $context->getConfig();
-       if ( $config->has( 'StatsdServer' ) ) {
+       if ( $config->get( 'StatsdServer' ) ) {
                $statsdServer = explode( ':', $config->get( 'StatsdServer' ) );
                $statsdHost = $statsdServer[0];
                $statsdPort = isset( $statsdServer[1] ) ? $statsdServer[1] : 8125;
index 932dea2..5510d35 100644 (file)
@@ -279,6 +279,8 @@ class MediaWiki {
         * - Normalise empty title:
         *   /wiki/ -> /wiki/Main
         *   /w/index.php?title= -> /wiki/Main
+        * - Normalise non-standard title urls:
+        *   /w/index.php?title=Foo_Bar -> /wiki/Foo_Bar
         * - Don't redirect anything with query parameters other than 'title' or 'action=view'.
         *
         * @return bool True if a redirect was set.
@@ -289,8 +291,6 @@ class MediaWiki {
 
                if ( $request->getVal( 'action', 'view' ) != 'view'
                        || $request->wasPosted()
-                       || ( $request->getVal( 'title' ) !== null
-                               && $title->getPrefixedDBkey() == $request->getVal( 'title' ) )
                        || count( $request->getValueNames( array( 'action', 'title' ) ) )
                        || !Hooks::run( 'TestCanonicalRedirect', array( $request, $title, $output ) )
                ) {
@@ -305,7 +305,19 @@ class MediaWiki {
                }
                // Redirect to canonical url, make it a 301 to allow caching
                $targetUrl = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
-               if ( $targetUrl == $request->getFullRequestURL() ) {
+
+               if ( $targetUrl != $request->getFullRequestURL() ) {
+                       $output->setSquidMaxage( 1200 );
+                       $output->redirect( $targetUrl, '301' );
+                       return true;
+               }
+
+               // If there is no title, or the title is in a non-standard encoding, we demand
+               // a redirect. If cgi somehow changed the 'title' query to be non-standard while
+               // the url is standard, the server is misconfigured.
+               if ( $request->getVal( 'title' ) === null
+                       || $title->getPrefixedDBkey() != $request->getVal( 'title' )
+               ) {
                        $message = "Redirect loop detected!\n\n" .
                                "This means the wiki got confused about what page was " .
                                "requested; this sometimes happens when moving a wiki " .
@@ -327,9 +339,7 @@ class MediaWiki {
                        }
                        throw new HttpError( 500, $message );
                }
-               $output->setSquidMaxage( 1200 );
-               $output->redirect( $targetUrl, '301' );
-               return true;
+               return false;
        }
 
        /**
index 3b06525..2b240c3 100644 (file)
@@ -695,7 +695,7 @@ class MimeMagic {
                }
 
                /* Look for WebP */
-               if ( strncmp( $head, "RIFF", 4 ) == 0 && strncmp( substr( $head, 8, 8 ), "WEBPVP8 ", 8 ) == 0 ) {
+               if ( strncmp( $head, "RIFF", 4 ) == 0 && strncmp( substr( $head, 8, 7 ), "WEBPVP8", 7 ) == 0 ) {
                        wfDebug( __METHOD__ . ": recognized file as image/webp\n" );
                        return "image/webp";
                }
index a97cfa6..0c1e99d 100644 (file)
@@ -492,7 +492,7 @@ if ( !class_exists( 'AutoLoader' ) ) {
 
 MWExceptionHandler::installHandler();
 
-require_once "$IP/includes/libs/normal/UtfNormalUtil.php";
+require_once "$IP/includes/compat/normal/UtfNormalUtil.php";
 
 $ps_default2 = Profiler::instance()->scopedProfileIn( $fname . '-defaults2' );
 
@@ -536,7 +536,9 @@ if ( $wgTmpDirectory === false ) {
 
 // We don't use counters anymore. Left here for extensions still
 // expecting this to exist. Should be removed sometime 1.26 or later.
-$wgDisableCounters = true;
+if ( !isset( $wgDisableCounters ) ) {
+       $wgDisableCounters = true;
+}
 
 if ( $wgMainWANCache === false ) {
        // Setup a WAN cache from $wgMainCacheType with no relayer.
index 7aa4113..9c8ed47 100644 (file)
@@ -3632,7 +3632,7 @@ class Title {
                        );
                }
 
-               return $errors ? : true;
+               return $errors ?: true;
        }
 
        /**
index 1ee8173..63c0d37 100644 (file)
@@ -369,7 +369,8 @@ class User implements IDBAccessObject {
                                Hooks::run( 'UserLoadAfterLoadFromSession', array( $this ) );
                                break;
                        default:
-                               throw new MWException( "Unrecognised value for User->mFrom: \"{$this->mFrom}\"" );
+                               throw new UnexpectedValueException(
+                                       "Unrecognised value for User->mFrom: \"{$this->mFrom}\"" );
                }
        }
 
@@ -378,7 +379,7 @@ class User implements IDBAccessObject {
         * @param integer $flags User::READ_* constant bitfield
         * @return bool False if the ID does not exist, true otherwise
         */
-       public function loadFromId( $flags = self::READ_LATEST ) {
+       public function loadFromId( $flags = self::READ_NORMAL ) {
                if ( $this->mId == 0 ) {
                        $this->loadDefaults();
                        return false;
@@ -943,7 +944,7 @@ class User implements IDBAccessObject {
         *   - 'usable'     Valid for batch processes and login
         *   - 'creatable'  Valid for batch processes, login and account creation
         *
-        * @throws MWException
+        * @throws InvalidArgumentException
         * @return bool|string
         */
        public static function getCanonicalName( $name, $validate = 'valid' ) {
@@ -990,7 +991,8 @@ class User implements IDBAccessObject {
                                }
                                break;
                        default:
-                               throw new MWException( 'Invalid parameter value for $validate in ' . __METHOD__ );
+                               throw new InvalidArgumentException(
+                                       'Invalid parameter value for $validate in ' . __METHOD__ );
                }
                return $name;
        }
@@ -2324,6 +2326,10 @@ class User implements IDBAccessObject {
 
        /**
         * Get the user touched timestamp
+        *
+        * Use this value only to validate caches via inequalities
+        * such as in the case of HTTP If-Modified-Since response logic
+        *
         * @return string TS_MW Timestamp
         */
        public function getTouched() {
@@ -2332,14 +2338,9 @@ class User implements IDBAccessObject {
                if ( $this->mId ) {
                        if ( $this->mQuickTouched === null ) {
                                $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
+                               $cache = ObjectCache::getMainWANInstance();
 
-                               $timestamp = ObjectCache::getMainWANInstance()->getCheckKeyTime( $key );
-                               if ( $timestamp ) {
-                                       $this->mQuickTouched = wfTimestamp( TS_MW, (int)$timestamp );
-                               } else {
-                                       # Set the timestamp to get HTTP 304 cache hits
-                                       $this->touch();
-                               }
+                               $this->mQuickTouched = wfTimestamp( TS_MW, $cache->getCheckKeyTime( $key ) );
                        }
 
                        return max( $this->mTouched, $this->mQuickTouched );
index b59be8c..87cc48e 100644 (file)
@@ -3186,6 +3186,7 @@ $zh2Hant = array(
 '下签' => '下籤',
 '下课钟' => '下課鐘',
 '不干不净' => '不乾不淨',
+'不干胶' => '不乾膠',
 '不克自制' => '不克自制',
 '不加自制' => '不加自制',
 '不占凶吉' => '不占凶吉',
@@ -3372,7 +3373,6 @@ $zh2Hant = array(
 '干擦' => '乾擦',
 '干支剌' => '乾支剌',
 '干支支' => '乾支支',
-'干敲梆子不卖油' => '乾敲梆子不賣油',
 '干料' => '乾料',
 '干旱' => '乾旱',
 '干暖' => '乾暖',
@@ -3480,8 +3480,7 @@ $zh2Hant = array(
 '乱发生' => '亂發生',
 '乱发脾气' => '亂發脾氣',
 '乱发' => '亂髮',
-'乱哄' => '亂鬨',
-'乱哄不过来' => '亂鬨不過來',
+'乱哄哄' => '亂鬨鬨',
 '了然后' => '了然後',
 '事有斗巧' => '事有鬥巧',
 '事里' => '事裡',
@@ -3726,6 +3725,7 @@ $zh2Hant = array(
 '亮钟' => '亮鐘',
 '人云' => '人云',
 '人如风后入江云' => '人如風後入江雲',
+'人干的' => '人幹的',
 '人欲' => '人慾',
 '人数只' => '人數只',
 '人数里' => '人數裡',
@@ -3734,6 +3734,7 @@ $zh2Hant = array(
 '什锦面' => '什錦麵',
 '仇仇' => '仇讎',
 '介胄' => '介冑',
+'他干的' => '他幹的',
 '他钟' => '他鐘',
 '付托' => '付託',
 '仙后' => '仙后',
@@ -3846,6 +3847,7 @@ $zh2Hant = array(
 '个里' => '個裡',
 '个钟' => '個鐘',
 '个钟表' => '個鐘錶',
+'们干的' => '們幹的',
 '幸免' => '倖免',
 '幸存' => '倖存',
 '幸幸' => '倖幸',
@@ -4109,7 +4111,6 @@ $zh2Hant = array(
 '利于' => '利於',
 '刮来刮去' => '刮來刮去',
 '刮起来' => '刮起來',
-'刮风下雪倒便宜' => '刮風下雪倒便宜',
 '刮胡' => '刮鬍',
 '到山里' => '到山裡',
 '制冷机' => '制冷機',
@@ -4235,7 +4236,6 @@ $zh2Hant = array(
 '博尔术' => '博爾朮',
 '卜云吉' => '卜云吉',
 '占了卜' => '占了卜',
-'占便宜的是呆' => '占便宜的是獃',
 '印累绶若' => '印纍綬若',
 '印制' => '印製',
 '印鉴' => '印鑑',
@@ -4702,7 +4702,6 @@ $zh2Hant = array(
 '太后' => '太后',
 '太丑' => '太醜',
 '太阁' => '太閤',
-'夯干' => '夯幹',
 '夸克' => '夸克',
 '夸父' => '夸父',
 '夸特' => '夸特',
@@ -4839,6 +4838,7 @@ $zh2Hant = array(
 '对准表' => '對準錶',
 '对准钟' => '對準鐘',
 '对准钟表' => '對準鐘錶',
+'对着干' => '對着幹',
 '对华发' => '對華發',
 '对表中' => '對表中',
 '对表扬' => '對表揚',
@@ -4934,7 +4934,6 @@ $zh2Hant = array(
 '工作台' => '工作檯',
 '工致' => '工緻',
 '左冲右突' => '左衝右突',
-'巧妇做不得无面馎饦' => '巧婦做不得無麵餺飥',
 '巧干' => '巧幹',
 '巧历' => '巧曆',
 '巧历史' => '巧歷史',
@@ -4996,6 +4995,7 @@ $zh2Hant = array(
 '干吗' => '幹嗎',
 '干嘛' => '幹嘛',
 '干坏事' => '幹壞事',
+'干大事' => '幹大事',
 '干完' => '幹完',
 '干家' => '幹家',
 '干得' => '幹得',
@@ -5013,7 +5013,8 @@ $zh2Hant = array(
 '干甚么' => '幹甚麼',
 '干略' => '幹略',
 '干当' => '幹當',
-'干的停当' => '幹的停當',
+'干的事' => '幹的事',
+'干的好事' => '幹的好事',
 '干细胞' => '幹細胞',
 '干线' => '幹線',
 '干练' => '幹練',
@@ -5141,6 +5142,7 @@ $zh2Hant = array(
 '很凶' => '很兇',
 '很准' => '很準',
 '很丑' => '很醜',
+'很松' => '很鬆',
 '律历志' => '律曆志',
 '后印' => '後印',
 '后台老板' => '後台老板',
@@ -5356,7 +5358,9 @@ $zh2Hant = array(
 '怪里怪气' => '怪裡怪氣',
 '怫郁' => '怫鬱',
 '恂栗' => '恂慄',
+'恒基' => '恒基',
 '恒生' => '恒生',
+'恒隆' => '恒隆',
 '恕乏价催' => '恕乏价催',
 '息交绝游' => '息交絕遊',
 '息谷' => '息穀',
@@ -5503,7 +5507,6 @@ $zh2Hant = array(
 '批复' => '批覆',
 '批注' => '批註',
 '批斗' => '批鬥',
-'承制' => '承製',
 '抑制作用' => '抑制作用',
 '抑制剂' => '抑制劑',
 '抑郁' => '抑鬱',
@@ -6547,6 +6550,7 @@ $zh2Hant = array(
 '滃郁' => '滃鬱',
 '滑借' => '滑藉',
 '汇丰' => '滙豐',
+'渗漓' => '滲灕',
 '卤了' => '滷了',
 '卤五花' => '滷五花',
 '卤味' => '滷味',
@@ -6590,7 +6594,6 @@ $zh2Hant = array(
 '澄江县' => '澂江縣',
 '澄澹精致' => '澄澹精致',
 '澒蒙' => '澒濛',
-'泽渗漓而下降' => '澤滲灕而下降',
 '淀乃不耕之地' => '澱乃不耕之地',
 '淀北片' => '澱北片',
 '淀山' => '澱山',
@@ -6659,6 +6662,7 @@ $zh2Hant = array(
 '烘制' => '烘製',
 '烤干' => '烤乾',
 '烤卤' => '烤滷',
+'烹制' => '烹製',
 '焙干' => '焙乾',
 '无征不信' => '無徵不信',
 '无业游民' => '無業游民',
@@ -6730,7 +6734,6 @@ $zh2Hant = array(
 '犹如表' => '猶如錶',
 '犹如钟' => '猶如鐘',
 '犹如钟表' => '猶如鐘錶',
-'呆串了皮' => '獃串了皮',
 '狱里' => '獄裡',
 '奖杯' => '獎盃',
 '独裁制' => '獨裁制',
@@ -6743,6 +6746,7 @@ $zh2Hant = array(
 '玉米面' => '玉米面',
 '王侯后' => '王侯后',
 '王后' => '王后',
+'王添灯' => '王添灯',
 '王田里' => '王田里',
 '王鉴' => '王鑑',
 '王余鱼' => '王餘魚',
@@ -7336,7 +7340,6 @@ $zh2Hant = array(
 '系辞' => '繫辭',
 '系鞋带' => '繫鞋帶',
 '系风捕影' => '繫風捕影',
-'继承制' => '繼承制',
 '累囚' => '纍囚',
 '累堆' => '纍堆',
 '累瓦结绳' => '纍瓦結繩',
@@ -7462,6 +7465,7 @@ $zh2Hant = array(
 '卧游' => '臥遊',
 '臧谷亡羊' => '臧穀亡羊',
 '临潼斗宝' => '臨潼鬥寶',
+'自干五' => '自乾五',
 '自制一下' => '自制一下',
 '自制下来' => '自制下來',
 '自制不' => '自制不',
@@ -8396,7 +8400,6 @@ $zh2Hant = array(
 '鄭凱云' => '鄭凱云',
 '配制饲料' => '配制飼料',
 '配图里' => '配圖裡',
-'配水干管' => '配水幹管',
 '配制' => '配製',
 '酒帘' => '酒帘',
 '酒气冲天' => '酒氣衝天',
@@ -8893,6 +8896,7 @@ $zh2Hant = array(
 '飘荡' => '飄蕩',
 '飘游' => '飄遊',
 '飘飘荡荡' => '飄飄蕩蕩',
+'飘发自由女神' => '飄髮自由女神',
 '飞扎' => '飛紮',
 '飞刍挽粟' => '飛芻輓粟',
 '飞行钟' => '飛行鐘',
@@ -9181,6 +9185,7 @@ $zh2Hant = array(
 '斗合' => '鬥合',
 '斗嘴' => '鬥嘴',
 '斗地主' => '鬥地主',
+'斗垮' => '鬥垮',
 '斗士' => '鬥士',
 '斗富' => '鬥富',
 '斗巧' => '鬥巧',
@@ -9196,6 +9201,7 @@ $zh2Hant = array(
 '斗打' => '鬥打',
 '斗批改' => '鬥批改',
 '斗技' => '鬥技',
+'斗败' => '鬥敗',
 '斗文' => '鬥文',
 '斗智' => '鬥智',
 '斗暴' => '鬥暴',
@@ -9211,6 +9217,7 @@ $zh2Hant = array(
 '斗牛' => '鬥牛',
 '斗犀台' => '鬥犀臺',
 '斗犬' => '鬥犬',
+'斗狗' => '鬥狗',
 '斗狠' => '鬥狠',
 '斗兽' => '鬥獸',
 '斗叠' => '鬥疊',
@@ -9225,6 +9232,7 @@ $zh2Hant = array(
 '斗草' => '鬥草',
 '斗叶儿' => '鬥葉兒',
 '斗叶子' => '鬥葉子',
+'斗蛐' => '鬥蛐',
 '斗蟋蟀' => '鬥蟋蟀',
 '斗话' => '鬥話',
 '斗艳' => '鬥豔',
@@ -9358,7 +9366,6 @@ $zh2Hant = array(
 '曲霉' => '麴黴',
 '麹霉' => '麴黴',
 '面人儿' => '麵人兒',
-'面价' => '麵價',
 '面包' => '麵包',
 '面坊' => '麵坊',
 '面坯儿' => '麵坯兒',
@@ -9370,7 +9377,6 @@ $zh2Hant = array(
 '面条' => '麵條',
 '面汤' => '麵湯',
 '面浆' => '麵漿',
-'面灰' => '麵灰',
 '面疙瘩' => '麵疙瘩',
 '面皮' => '麵皮',
 '面码儿' => '麵碼兒',
@@ -9380,6 +9386,7 @@ $zh2Hant = array(
 '面团' => '麵糰',
 '面缸' => '麵缸',
 '面茶' => '麵茶',
+'面制品' => '麵製品',
 '面食' => '麵食',
 '面饺' => '麵餃',
 '面饼' => '麵餅',
@@ -13327,7 +13334,6 @@ $zh2Hans = array(
 '乾崗' => '乾岗',
 '乾巛' => '乾巛',
 '乾州' => '乾州',
-'乾式' => '乾式',
 '乾录' => '乾录',
 '乾錄' => '乾录',
 '乾律' => '乾律',
@@ -14090,6 +14096,7 @@ $zh2TW = array(
 '老挝语' => '寮語',
 '老撾語' => '寮語',
 '波里活' => '寶萊塢',
+'对着干' => '對著幹',
 '高峰时段' => '尖峰時段',
 '高峰时间' => '尖峰時間',
 '贊比亞' => '尚比亞',
@@ -17765,6 +17772,7 @@ $zh2CN = array(
 '東南亞國家協會' => '东南亚国家联盟',
 '亚细安' => '东盟',
 '東協' => '东盟',
+'仲介' => '中介',
 '臨著' => '临着',
 '臨著書' => '临著书',
 '臨著作' => '临著作',
@@ -19249,6 +19257,7 @@ $zh2CN = array(
 '涵著者' => '涵著者',
 '涵著述' => '涵著述',
 '混帳' => '混账',
+'清澈' => '清澈',
 '清帳' => '清账',
 '渴著' => '渴着',
 '渴著書' => '渴著书',
@@ -20438,8 +20447,8 @@ $zh2CN = array(
 '髭著稱' => '髭著称',
 '髭著者' => '髭著者',
 '髭著述' => '髭著述',
-'魚雷射' => '鱼雷射',
-'鱼雷射' => '鱼雷射',
+'魚雷' => '鱼雷',
+'鱼雷' => '鱼雷',
 '咪高峰' => '麦克风',
 '黏著' => '黏着',
 '黏著書' => '黏著书',
index 203c687..0c1a344 100644 (file)
@@ -234,7 +234,7 @@ class InfoAction extends FormlessAction {
 
                // Display title
                $displayTitle = $title->getPrefixedText();
-               if ( !empty( $pageProperties['displaytitle'] ) ) {
+               if ( isset( $pageProperties['displaytitle'] ) ) {
                        $displayTitle = $pageProperties['displaytitle'];
                }
 
@@ -259,7 +259,7 @@ class InfoAction extends FormlessAction {
 
                // Default sort key
                $sortKey = $title->getCategorySortkey();
-               if ( !empty( $pageProperties['defaultsort'] ) ) {
+               if ( isset( $pageProperties['defaultsort'] ) ) {
                        $sortKey = $pageProperties['defaultsort'];
                }
 
@@ -325,8 +325,27 @@ class InfoAction extends FormlessAction {
                ) {
                        // Number of page watchers
                        $pageInfo['header-basic'][] = array(
-                               $this->msg( 'pageinfo-watchers' ), $lang->formatNum( $pageCounts['watchers'] )
+                               $this->msg( 'pageinfo-watchers' ),
+                               $lang->formatNum( $pageCounts['watchers'] )
                        );
+                       if (
+                               $config->get( 'ShowUpdatedMarker' ) &&
+                               isset( $pageCounts['visitingWatchers'] )
+                       ) {
+                               $minToDisclose = $config->get( 'UnwatchedPageSecret' );
+                               if ( $pageCounts['visitingWatchers'] > $minToDisclose ||
+                                       $user->isAllowed( 'unwatchedpages' ) ) {
+                                       $pageInfo['header-basic'][] = array(
+                                               $this->msg( 'pageinfo-visiting-watchers' ),
+                                               $lang->formatNum( $pageCounts['visitingWatchers'] )
+                                       );
+                               } else {
+                                       $pageInfo['header-basic'][] = array(
+                                               $this->msg( 'pageinfo-visiting-watchers' ),
+                                               $this->msg( 'pageinfo-few-visiting-watchers' )
+                                       );
+                               }
+                       }
                } elseif ( $unwatchedPageThreshold !== false ) {
                        $pageInfo['header-basic'][] = array(
                                $this->msg( 'pageinfo-watchers' ),
@@ -448,7 +467,8 @@ class InfoAction extends FormlessAction {
                                }
                        }
                        $expiry = $title->getRestrictionExpiry( $restrictionType );
-                       $formattedexpiry = $this->msg( 'parentheses', $this->getLanguage()->formatExpiry( $expiry ) )->escaped();
+                       $formattedexpiry = $this->msg( 'parentheses',
+                               $this->getLanguage()->formatExpiry( $expiry ) )->escaped();
                        $message .= $this->msg( 'word-separator' )->escaped() . $formattedexpiry;
 
                        // Messages: restriction-edit, restriction-move, restriction-create,
@@ -670,6 +690,26 @@ class InfoAction extends FormlessAction {
                );
                $result['watchers'] = $watchers;
 
+               if ( $config->get( 'ShowUpdatedMarker' ) ) {
+                       // Threshold: last visited about 26 weeks before latest edit
+                       $updated = wfTimestamp( TS_UNIX, $this->page->getTimestamp() );
+                       $age = $config->get( 'WatchersMaxAge' );
+                       $threshold = $dbr->timestamp( $updated - $age );
+                       // Number of page watchers who also visited a "recent" edit
+                       $visitingWatchers = (int)$dbr->selectField(
+                               'watchlist',
+                               'COUNT(*)',
+                               array(
+                                       'wl_namespace' => $title->getNamespace(),
+                                       'wl_title' => $title->getDBkey(),
+                                       'wl_notificationtimestamp >= ' . $dbr->addQuotes( $threshold ) .
+                                       ' OR wl_notificationtimestamp IS NULL'
+                               ),
+                               __METHOD__
+                       );
+                       $result['visitingWatchers'] = $visitingWatchers;
+               }
+
                // Total number of edits
                $edits = (int)$dbr->selectField(
                        'revision',
index 4b76e65..393ff49 100644 (file)
@@ -2481,7 +2481,7 @@ abstract class ApiBase extends ContextSource {
         * Returns the description string for this module
         *
         * Ignored if an i18n message exists for
-        * "apihelp-{$this->getModulePathString()}-description".
+        * "apihelp-{$this->getModulePath()}-description".
         *
         * @deprecated since 1.25
         * @return Message|string|array
@@ -2495,7 +2495,7 @@ abstract class ApiBase extends ContextSource {
         *
         * For each parameter, ignored if an i18n message exists for the parameter.
         * By default that message is
-        * "apihelp-{$this->getModulePathString()}-param-{$param}", but it may be
+        * "apihelp-{$this->getModulePath()}-param-{$param}", but it may be
         * overridden using ApiBase::PARAM_HELP_MSG in the data returned by
         * self::getFinalParams().
         *
index d8b5718..6279dfd 100644 (file)
@@ -131,7 +131,7 @@ class ApiDelete extends ApiBase {
                $error = '';
 
                // Luckily, Article.php provides a reusable delete function that does the hard work for us
-               return $page->doDeleteArticleReal( $reason, false, 0, true, $error );
+               return $page->doDeleteArticleReal( $reason, false, 0, true, $error, $user );
        }
 
        /**
index e70b8f0..b623849 100644 (file)
@@ -96,9 +96,11 @@ class ApiEditPage extends ApiBase {
                        $contentHandler = ContentHandler::getForModelID( $params['contentmodel'] );
                }
 
+               $name = $titleObj->getPrefixedDBkey();
+               $model = $contentHandler->getModelID();
                if ( $contentHandler->supportsDirectApiEditing() === false ) {
                        $this->dieUsage(
-                               'Direct editing via API is not supported for this content type.',
+                               "Direct editing via API is not supported for content model $model used by $name",
                                'no-direct-editing'
                        );
                }
@@ -110,8 +112,6 @@ class ApiEditPage extends ApiBase {
                $contentFormat = $params['contentformat'];
 
                if ( !$contentHandler->isSupportedFormat( $contentFormat ) ) {
-                       $name = $titleObj->getPrefixedDBkey();
-                       $model = $contentHandler->getModelID();
 
                        $this->dieUsage( "The requested format $contentFormat is not supported for content model " .
                                " $model used by $name", 'badformat' );
index d1beef8..853b138 100644 (file)
@@ -126,7 +126,8 @@ class ApiFeedWatchlist extends ApiBase {
 
                        $msg = wfMessage( 'watchlist' )->inContentLanguage()->text();
 
-                       $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg . ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']';
+                       $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg .
+                               ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']';
                        $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL();
 
                        $feed = new $feedClasses[$params['feedformat']] (
index 47c8128..4d80163 100644 (file)
@@ -246,7 +246,7 @@ abstract class ApiFormatBase extends ApiBase {
        }
 
        /**
-        * To avoid code duplication with the deprecation of dbg, dump, txt, wddx,
+        * To avoid code duplication with the deprecation of dbg, txt
         * and yaml, this method is added to do the necessary work. It should be
         * removed when those deprecated formats are removed.
         */
@@ -312,7 +312,7 @@ abstract class ApiFormatBase extends ApiBase {
                // Escape everything first for full coverage
                $text = htmlspecialchars( $text );
 
-               if ( $this->mFormat === 'XML' || $this->mFormat === 'WDDX' ) {
+               if ( $this->mFormat === 'XML' ) {
                        // encode all comments or tags as safe blue strings
                        $text = str_replace( '&lt;', '<span style="color:blue;">&lt;', $text );
                        $text = str_replace( '&gt;', '&gt;</span>', $text );
diff --git a/includes/api/ApiFormatDump.php b/includes/api/ApiFormatDump.php
deleted file mode 100644 (file)
index f34e1ae..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- *
- *
- * Created on August 8, 2010
- *
- * Copyright © 2010 Soxred93
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * API PHP's var_dump() output formatter
- * @deprecated since 1.24
- * @ingroup API
- */
-class ApiFormatDump extends ApiFormatBase {
-
-       public function getMimeType() {
-               // This looks like it should be text/plain, but IE7 is so
-               // brain-damaged it tries to parse text/plain as HTML if it
-               // contains HTML tags. Using MIME text/text works around this bug
-               return 'text/text';
-       }
-
-       public function execute() {
-               $this->markDeprecated();
-               $data = $this->getResult()->getResultData( null, array(
-                       'BC' => array(),
-                       'Types' => array(),
-                       'Strip' => 'all',
-               ) );
-               ob_start();
-               var_dump( $data );
-               $result = ob_get_contents();
-               ob_end_clean();
-               $this->printText( $result );
-       }
-
-       public function isDeprecated() {
-               return true;
-       }
-}
index d88dd40..6420a5b 100644 (file)
@@ -68,7 +68,8 @@ class ApiFormatPhp extends ApiFormatBase {
                        preg_match( '/\<\s*cross-domain-policy\s*\>/i', $text )
                ) {
                        $this->dieUsage(
-                               'This response cannot be represented using format=php. See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776',
+                               'This response cannot be represented using format=php. ' .
+                               'See https://bugzilla.wikimedia.org/show_bug.cgi?id=66776',
                                'internalerror'
                        );
                }
diff --git a/includes/api/ApiFormatWddx.php b/includes/api/ApiFormatWddx.php
deleted file mode 100644 (file)
index c18353f..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/**
- *
- *
- * Created on Oct 22, 2006
- *
- * Copyright © 2006 Yuri Astrakhan "<Firstname><Lastname>@gmail.com"
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * API WDDX output formatter
- * @deprecated since 1.24
- * @ingroup API
- */
-class ApiFormatWddx extends ApiFormatBase {
-
-       public function getMimeType() {
-               return 'text/xml';
-       }
-
-       public function execute() {
-               $this->markDeprecated();
-
-               $data = $this->getResult()->getResultData( null, array(
-                       'BC' => array(),
-                       'Types' => array( 'AssocAsObject' => true ),
-                       'Strip' => 'all',
-               ) );
-
-               if ( !$this->getIsHtml() && !static::useSlowPrinter() ) {
-                       $txt = wddx_serialize_value( $data );
-                       $txt = str_replace(
-                               '<struct><var name=\'php_class_name\'><string>stdClass</string></var>',
-                               '<struct>',
-                               $txt
-                       );
-                       $this->printText( $txt );
-               } else {
-                       // Don't do newlines and indentation if we weren't asked
-                       // for pretty output
-                       $nl = ( $this->getIsHtml() ? "\n" : '' );
-                       $indstr = ( $this->getIsHtml() ? ' ' : '' );
-                       $this->printText( "<?xml version=\"1.0\"?>$nl" );
-                       $this->printText( "<wddxPacket version=\"1.0\">$nl" );
-                       $this->printText( "$indstr<header />$nl" );
-                       $this->printText( "$indstr<data>$nl" );
-                       $this->slowWddxPrinter( $data, 4 );
-                       $this->printText( "$indstr</data>$nl" );
-                       $this->printText( "</wddxPacket>$nl" );
-               }
-       }
-
-       public static function useSlowPrinter() {
-               if ( !function_exists( 'wddx_serialize_value' ) ) {
-                       return true;
-               }
-
-               // Some versions of PHP have a broken wddx_serialize_value, see
-               // PHP bug 45314. Test encoding an affected character (U+00A0)
-               // to avoid this.
-               $expected =
-                       "<wddxPacket version='1.0'><header/><data><string>\xc2\xa0</string></data></wddxPacket>";
-               if ( wddx_serialize_value( "\xc2\xa0" ) !== $expected ) {
-                       return true;
-               }
-
-               // Some versions of HHVM don't correctly encode ampersands.
-               $expected =
-                       "<wddxPacket version='1.0'><header/><data><string>&amp;</string></data></wddxPacket>";
-               if ( wddx_serialize_value( '&' ) !== $expected ) {
-                       return true;
-               }
-
-               // Some versions of HHVM don't correctly encode empty arrays as subvalues.
-               $expected =
-                       "<wddxPacket version='1.0'><header/><data><array length='1'><array length='0'></array></array></data></wddxPacket>";
-               if ( wddx_serialize_value( array( array() ) ) !== $expected ) {
-                       return true;
-               }
-
-               // Some versions of HHVM don't correctly encode associative arrays with numeric keys.
-               $expected =
-                       "<wddxPacket version='1.0'><header/><data><struct><var name='2'><number>1</number></var></struct></data></wddxPacket>";
-               if ( wddx_serialize_value( array( 2 => 1 ) ) !== $expected ) {
-                       return true;
-               }
-
-               return false;
-       }
-
-       /**
-        * Recursively go through the object and output its data in WDDX format.
-        * @param mixed $elemValue
-        * @param int $indent
-        */
-       function slowWddxPrinter( $elemValue, $indent = 0 ) {
-               $indstr = ( $this->getIsHtml() ? str_repeat( ' ', $indent ) : '' );
-               $indstr2 = ( $this->getIsHtml() ? str_repeat( ' ', $indent + 2 ) : '' );
-               $nl = ( $this->getIsHtml() ? "\n" : '' );
-
-               if ( is_array( $elemValue ) ) {
-                       $cnt = count( $elemValue );
-                       if ( $cnt != 0 && array_keys( $elemValue ) !== range( 0, $cnt - 1 ) ) {
-                               $elemValue = (object)$elemValue;
-                       }
-               }
-
-               if ( is_array( $elemValue ) ) {
-                       // Regular array
-                       $this->printText( $indstr . Xml::element( 'array', array(
-                               'length' => count( $elemValue ) ), null ) . $nl );
-                       foreach ( $elemValue as $subElemValue ) {
-                               $this->slowWddxPrinter( $subElemValue, $indent + 2 );
-                       }
-                       $this->printText( "$indstr</array>$nl" );
-               } elseif ( is_object( $elemValue ) ) {
-                       // Associative array (<struct>)
-                       $this->printText( "$indstr<struct>$nl" );
-                       foreach ( $elemValue as $subElemName => $subElemValue ) {
-                               $this->printText( $indstr2 . Xml::element( 'var', array(
-                                       'name' => $subElemName
-                               ), null ) . $nl );
-                               $this->slowWddxPrinter( $subElemValue, $indent + 4 );
-                               $this->printText( "$indstr2</var>$nl" );
-                       }
-                       $this->printText( "$indstr</struct>$nl" );
-               } elseif ( is_int( $elemValue ) || is_float( $elemValue ) ) {
-                       $this->printText( $indstr . Xml::element( 'number', null, $elemValue ) . $nl );
-               } elseif ( is_string( $elemValue ) ) {
-                       $this->printText( $indstr . Xml::element( 'string', null, $elemValue, false ) . $nl );
-               } elseif ( is_bool( $elemValue ) ) {
-                       $this->printText( $indstr . Xml::element( 'boolean',
-                               array( 'value' => $elemValue ? 'true' : 'false' ) ) . $nl
-                       );
-               } elseif ( $elemValue === null ) {
-                       $this->printText( $indstr . Xml::element( 'null', array() ) . $nl );
-               } else {
-                       ApiBase::dieDebug( __METHOD__, 'Unknown type ' . gettype( $elemValue ) );
-               }
-       }
-
-       public function isDeprecated() {
-               return true;
-       }
-}
index 4c7d720..4be7d93 100644 (file)
@@ -267,7 +267,7 @@ class ApiFormatXml extends ApiFormatBase {
                return '_' . preg_replace_callback(
                        "/[^$nc]/uS",
                        function ( $m ) {
-                               return sprintf( '.%X.', utf8ToCodepoint( $m[0] ) );
+                               return sprintf( '.%X.', UtfNormal\Utils::utf8ToCodepoint( $m[0] ) );
                        },
                        str_replace( '.', '.2E.', $name )
                );
index a8db20c..f2059d7 100644 (file)
@@ -100,8 +100,6 @@ class ApiMain extends ApiBase {
                'jsonfm' => 'ApiFormatJson',
                'php' => 'ApiFormatPhp',
                'phpfm' => 'ApiFormatPhp',
-               'wddx' => 'ApiFormatWddx',
-               'wddxfm' => 'ApiFormatWddx',
                'xml' => 'ApiFormatXml',
                'xmlfm' => 'ApiFormatXml',
                'yaml' => 'ApiFormatYaml',
@@ -111,8 +109,6 @@ class ApiMain extends ApiBase {
                'txtfm' => 'ApiFormatTxt',
                'dbg' => 'ApiFormatDbg',
                'dbgfm' => 'ApiFormatDbg',
-               'dump' => 'ApiFormatDump',
-               'dumpfm' => 'ApiFormatDump',
                'none' => 'ApiFormatNone',
        );
 
index fa6f30e..577b525 100644 (file)
@@ -410,9 +410,12 @@ class ApiParse extends ApiBase {
                        $result_array[ApiResult::META_BC_SUBELEMENTS][] = 'limitreporthtml';
                }
 
-               if ( $params['generatexml'] ) {
+               if ( isset( $prop['parsetree'] ) || $params['generatexml'] ) {
+                       if ( !isset( $prop['parsetree'] ) ) {
+                               $this->logFeatureUsage( 'action=parse&generatexml' );
+                       }
                        if ( $this->content->getModel() != CONTENT_MODEL_WIKITEXT ) {
-                               $this->dieUsage( "generatexml is only supported for wikitext content", "notwikitext" );
+                               $this->dieUsage( "parsetree is only supported for wikitext content", "notwikitext" );
                        }
 
                        $wgParser->startExternalParse( $titleObj, $popts, Parser::OT_PREPROCESS );
@@ -745,8 +748,11 @@ class ApiParse extends ApiBase {
                                        'properties',
                                        'limitreportdata',
                                        'limitreporthtml',
+                                       'parsetree',
+                               ),
+                               ApiBase::PARAM_HELP_MSG_PER_VALUE => array(
+                                       'parsetree' => array( 'apihelp-parse-paramvalue-prop-parsetree', CONTENT_MODEL_WIKITEXT ),
                                ),
-                               ApiBase::PARAM_HELP_MSG_PER_VALUE => array(),
                        ),
                        'pst' => false,
                        'onlypst' => false,
@@ -762,6 +768,7 @@ class ApiParse extends ApiBase {
                                ApiBase::PARAM_HELP_MSG => array(
                                        'apihelp-parse-param-generatexml', CONTENT_MODEL_WIKITEXT
                                ),
+                               ApiBase::PARAM_DEPRECATED => true,
                        ),
                        'preview' => false,
                        'sectionpreview' => false,
index 64f6120..76da0db 100644 (file)
@@ -37,7 +37,7 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
        protected $fld_ids = false, $fld_flags = false, $fld_timestamp = false,
                $fld_size = false, $fld_sha1 = false, $fld_comment = false,
                $fld_parsedcomment = false, $fld_user = false, $fld_userid = false,
-               $fld_content = false, $fld_tags = false, $fld_contentmodel = false;
+               $fld_content = false, $fld_tags = false, $fld_contentmodel = false, $fld_parsetree = false;
 
        public function execute() {
                $this->run();
@@ -104,6 +104,7 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                $this->fld_userid = isset( $prop['userid'] );
                $this->fld_user = isset( $prop['user'] );
                $this->fld_tags = isset( $prop['tags'] );
+               $this->fld_parsetree = isset( $prop['parsetree'] );
 
                if ( !empty( $params['contentformat'] ) ) {
                        $this->contentFormat = $params['contentformat'];
@@ -112,7 +113,7 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                $this->limit = $params['limit'];
 
                $this->fetchContent = $this->fld_content || !is_null( $this->diffto )
-                       || !is_null( $this->difftotext );
+                       || !is_null( $this->difftotext ) || $this->fld_parsetree;
 
                $smallLimit = false;
                if ( $this->fetchContent ) {
@@ -273,10 +274,11 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                                $vals['textmissing'] = true;
                        }
                }
-               if ( $this->fld_content && $content ) {
-                       $text = null;
-
-                       if ( $this->generateXML ) {
+               if ( $this->fld_parsetree || ( $this->fld_content && $this->generateXML ) ) {
+                       if ( !$this->fld_parsetree ) {
+                               $this->logFeatureUsage( 'action=query&prop=revisions+base&generatexml' );
+                       }
+                       if ( $content ) {
                                if ( $content->getModel() === CONTENT_MODEL_WIKITEXT ) {
                                        $t = $content->getNativeData(); # note: don't set $text
 
@@ -299,6 +301,10 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                                                " uses content model " . $content->getModel() );
                                }
                        }
+               }
+
+               if ( $this->fld_content && $content ) {
+                       $text = null;
 
                        if ( $this->expandTemplates && !$this->parseContent ) {
                                #XXX: implement template expansion for all content types in ContentHandler?
@@ -431,7 +437,8 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                                        'comment',
                                        'parsedcomment',
                                        'content',
-                                       'tags'
+                                       'tags',
+                                       'parsetree',
                                ),
                                ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-prop',
                        ),
@@ -448,6 +455,7 @@ abstract class ApiQueryRevisionsBase extends ApiQueryGeneratorBase {
                        ),
                        'generatexml' => array(
                                ApiBase::PARAM_DFLT => false,
+                               ApiBase::PARAM_DEPRECATED => true,
                                ApiBase::PARAM_HELP_MSG => 'apihelp-query+revisions+base-param-generatexml',
                        ),
                        'parse' => array(
index 6c81ff0..d84ac0c 100644 (file)
        "apihelp-imagerotate-param-rotation": "Anzahl der Grad, um die das Bild im Uhrzeigersinn gedreht werden soll.",
        "apihelp-imagerotate-example-simple": "<kbd>Datei:Beispiel.png</kbd> um <kbd>90</kbd> Grad drehen.",
        "apihelp-imagerotate-example-generator": "Alle Bilder in der <kbd>Kategorie:Flip</kbd> um <kbd>180</kbd> Grad drehen.",
-       "apihelp-import-description": "Importiert eine Seite von einem anderen Wiki oder einer XML-Datei.\n\nBitte beachte, dass der HTTP-POST-Vorgang als Dateiupload ausgeführt werden muss (z.B. durch multipart/form-data), um eine Datei über den <var>xml</var>-Parameter zu senden.",
+       "apihelp-import-description": "Importiert eine Seite aus einem anderen Wiki oder von einer XML-Datei.\n\nBitte beachte, dass der HTTP-POST-Vorgang als Dateiupload ausgeführt werden muss (z.B. durch multipart/form-data), um eine Datei über den <var>xml</var>-Parameter zu senden.",
        "apihelp-import-param-summary": "Import-Zusammenfassung.",
        "apihelp-import-param-xml": "Hochgeladene XML-Datei.",
        "apihelp-import-param-interwikisource": "Für Interwiki-Importe: Wiki, von dem importiert werden soll.",
        "apihelp-paraminfo-description": "Ruft Informationen über API-Module ab.",
        "apihelp-paraminfo-param-helpformat": "Format der Hilfe-Zeichenfolgen.",
        "apihelp-parse-param-summary": "Zu parsende Zusammenfassung.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Gibt die Sprachlinks im geparsten Wikitext zurück.",
+       "apihelp-parse-paramvalue-prop-categories": "Gibt die Kategorien im geparsten Wikitext zurück.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Gibt die HTML-Version der Kategorien zurück.",
+       "apihelp-parse-paramvalue-prop-links": "Gibt die internen Links im geparsten Wikitext zurück.",
+       "apihelp-parse-paramvalue-prop-templates": "Gibt die Vorlagen im geparsten Wikitext zurück.",
+       "apihelp-parse-paramvalue-prop-images": "Gibt die Bilder im geparsten Wikitext zurück.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Gibt die externen Links im geparsten Wikitext zurück.",
        "apihelp-parse-param-section": "Gibt nur den Inhalt dieses Abschnittes zurück oder erstellt einen neuen Abschnitt, wenn <kbd>new</kbd> angegeben wird.\n\n<kbd>new</kbd> wird nur ausgewertet, wenn auch <var>text</var> angegeben wurde.",
        "apihelp-parse-param-sectiontitle": "Überschrift des neuen Abschnittes, wenn <var>section</var> = <kbd>new</kbd> ist.\n\nAnders als beim Bearbeiten der Seite wird der Parameter nicht durch die <var>summary</var> ersetzt, wenn er weggelassen oder leer ist.",
        "apihelp-parse-param-disableeditsection": "Deaktiviert Abschnittsbearbeitungslinks in der Parserausgabe.",
        "apihelp-query-param-export": "Exportiert die aktuellen Versionen der angegebenen oder generierten Seiten.",
        "apihelp-query-param-exportnowrap": "Gibt den XML-Export zurück, ohne ihn in ein XML-Ergebnis einzuschließen (gleiches Format wie durch [[Special:Export]]). Kann nur zusammen mit $1export genutzt werden.",
        "apihelp-query-param-iwurl": "Gibt an, ob die komplette URL zurückgegeben werden soll, wenn der Titel ein Interwikilink ist.",
-       "apihelp-query-param-rawcontinue": "Gibt rohe <samp>query-continue</samp>-Daten zur Fortsetzung zurück.",
+       "apihelp-query-param-rawcontinue": "Gibt <samp>query-continue</samp>-Rohdaten zur Fortsetzung zurück.",
        "apihelp-query-example-revisions": "Bezieht [[Special:ApiHelp/query+siteinfo|Seiteninformationen]] und [[Special:ApiHelp/query+revisions|Versionen]] der <kbd>Main Page</kbd>.",
        "apihelp-query-example-allpages": "Bezieht Versionen von Seiten, die mit <kbd>API/</kbd> beginnen.",
        "apihelp-query+allcategories-description": "Alle Kategorien aufzählen.",
        "apihelp-format-example-generic": "Das Abfrageergebnis im $1-Format formatieren",
        "apihelp-dbg-description": "Daten im PHP-<code>var_export()</code>-Format ausgeben.",
        "apihelp-dbgfm-description": "Daten im PHP-<code>var_export()</code>-Format ausgeben (schöngedruckt in HTML).",
-       "apihelp-dump-description": "Daten im PHP-<code>var_dump()</code>-Format ausgeben.",
-       "apihelp-dumpfm-description": "Daten im PHP-<code>var_dump()</code>-Format ausgeben (schöngedruckt in HTML).",
        "apihelp-json-description": "Daten im JSON-Format ausgeben.",
        "apihelp-json-param-callback": "Falls angegeben, wird die Ausgabe in einen angegebenen Funktionsaufruf eingeschlossen. Aus Sicherheitsgründen sind benutzerspezifische Daten beschränkt.",
        "apihelp-json-param-utf8": "Falls angegeben, kodiert die meisten (aber nicht alle) Nicht-ASCII-Zeichen als UTF-8 anstatt sie mit hexadezimalen Escape-Sequenzen zu ersetzen. Standard, wenn <var>formatversion</var> nicht <kbd>1</kbd> ist.",
        "apihelp-rawfm-description": "Daten mit den Fehlerbehebungselementen im JSON-Format ausgeben (schöngedruckt in HTML).",
        "apihelp-txt-description": "Daten im PHP-<code>print_r()</code>-Format ausgeben.",
        "apihelp-txtfm-description": "Daten im PHP-<code>print_r()</code>-Format ausgeben (schöngedruckt in HTML).",
-       "apihelp-wddx-description": "Daten im WDDX-Format ausgeben.",
-       "apihelp-wddxfm-description": "Daten im WDDX-Format ausgeben (schöngedruckt in HTML).",
        "apihelp-xml-description": "Daten im XML-Format ausgeben.",
        "apihelp-xml-param-xslt": "Falls angegeben, fügt die benannte Seite als XSL-Stylesheet hinzu. Der Wert muss ein Titel im Namensraum „{{ns:mediawiki}}“ sein und mit <code>.xsl</code> enden.",
        "apihelp-xml-param-includexmlnamespace": "Falls angegeben, ergänzt einen XML-Namensraum.",
index 1279f59..867f594 100644 (file)
@@ -14,6 +14,7 @@
        "apihelp-createaccount-param-email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου χρήστη (προαιρετικό).",
        "apihelp-createaccount-param-realname": "Πραγματικό όνομα χρήστη (προαιρετικό).",
        "apihelp-createaccount-param-mailpassword": "Εάν οριστεί σε οποιαδήποτε τιμή, ένας τυχαίος κωδικός πρόσβασης θα αποσταλεί μέσω ηλεκτρονικού ταχυδρομείου στο χρήστη.",
+       "apihelp-createaccount-param-language": "Κωδικός γλώσσας που να οριστεί ως προεπιλογή για το χρήστη (προαιρετικό, έχει ως προεπιλογή τη γλώσσα περιεχομένου).",
        "apihelp-delete-description": "Διαγραφή σελίδας.",
        "apihelp-delete-example-simple": "Διαγραφή <kbd>Αρχικής Σελίδας</kbd>.",
        "apihelp-edit-description": "Δημιουργία και επεξεργασία σελίδων.",
@@ -26,6 +27,7 @@
        "apihelp-edit-param-nocreate": "Να εμφανιστεί μήνυμα σφάλματος εάν η σελίδα δεν υπάρχει.",
        "apihelp-edit-param-watch": "Να προστεθεί η σελίδα στη λίστα παρακολούθησης του τρέχοντα χρήστη.",
        "apihelp-edit-param-unwatch": "Να αφαιρεθεί η σελίδα από τη λίστα παρακολούθησης του τρέχοντα χρήστη.",
+       "apihelp-edit-param-contentmodel": "Μοντέλο περιεχομένου για το νέο περιεχόμενο.",
        "apihelp-edit-example-edit": "Επεξεργασία κάποιας σελίδας.",
        "apihelp-emailuser-description": "Αποστολή μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη.",
        "apihelp-emailuser-param-target": "Χρήστης στον οποίον να σταλεί το μήνυμα ηλεκτρονικού ταχυδρομείου.",
index 792febc..c0633bc 100644 (file)
@@ -12,7 +12,7 @@
        "apihelp-main-param-maxlag": "Maximum lag can be used when MediaWiki is installed on a database replicated cluster. To save actions causing any more site replication lag, this parameter can make the client wait until the replication lag is less than the specified value. In case of excessive lag, error code <samp>maxlag</samp> is returned with a message like <samp>Waiting for $host: $lag seconds lagged</samp>.<br />See [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]] for more information.",
        "apihelp-main-param-smaxage": "Set the <code>s-maxage</code> HTTP cache control header to this many seconds. Errors are never cached.",
        "apihelp-main-param-maxage": "Set the <code>max-age</code> HTTP cache control header to this many seconds. Errors are never cached.",
-       "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot userright if <kbd>bot</kbd>.",
+       "apihelp-main-param-assert": "Verify the user is logged in if set to <kbd>user</kbd>, or has the bot user right if <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Any value given here will be included in the response. May be used to distinguish requests.",
        "apihelp-main-param-servedby": "Include the hostname that served the request in the results.",
        "apihelp-main-param-curtimestamp": "Include the current timestamp in the result.",
        "apihelp-imagerotate-example-simple": "Rotate <kbd>File:Example.png</kbd> by <kbd>90</kbd> degrees.",
        "apihelp-imagerotate-example-generator": "Rotate all images in <kbd>Category:Flip</kbd> by <kbd>180</kbd> degrees.",
 
-       "apihelp-import-description": "Import a page from another wiki, or an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.",
+       "apihelp-import-description": "Import a page from another wiki, or from an XML file.\n\nNote that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when sending a file for the <var>xml</var> parameter.",
        "apihelp-import-param-summary": "Import summary.",
        "apihelp-import-param-xml": "Uploaded XML file.",
        "apihelp-import-param-interwikisource": "For interwiki imports: wiki to import from.",
        "apihelp-parse-paramvalue-prop-properties": "Gives various properties defined in the parsed wikitext.",
        "apihelp-parse-paramvalue-prop-limitreportdata": "Gives the limit report in a structured way. Gives no data, when <var>$1disablepp</var> is set.",
        "apihelp-parse-paramvalue-prop-limitreporthtml": "Gives the HTML version of the limit report. Gives no data, when <var>$1disablepp</var> is set.",
+       "apihelp-parse-paramvalue-prop-parsetree": "The XML parse tree of revision content (requires content model <code>$1</code>)",
        "apihelp-parse-param-pst": "Do a pre-save transform on the input before parsing it. Only valid when used with text.",
        "apihelp-parse-param-onlypst": "Do a pre-save transform (PST) on the input, but don't parse it. Returns the same wikitext, after a PST has been applied. Only valid when used with <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Includes language links supplied by extensions (for use with <kbd>$1prop=langlinks</kbd>).",
        "apihelp-parse-param-sectiontitle": "New section title when <var>section</var> is <kbd>new</kbd>.\n\nUnlike page editing, this does not fall back to <var>summary</var> when omitted or empty.",
        "apihelp-parse-param-disablepp": "Disable the PP Report from the parser output.",
        "apihelp-parse-param-disableeditsection": "Disable edit section links from the parser output.",
-       "apihelp-parse-param-generatexml": "Generate XML parse tree (requires content model <code>$1</code>).",
+       "apihelp-parse-param-generatexml": "Generate XML parse tree (requires content model <code>$1</code>; replaced by <kbd>$2prop=parsetree</kbd>).",
        "apihelp-parse-param-preview": "Parse in preview mode.",
        "apihelp-parse-param-sectionpreview": "Parse in section preview mode (enables preview mode too).",
        "apihelp-parse-param-disabletoc": "Disable table of contents in output.",
        "apihelp-query+revisions-example-first5-after": "Get first 5 revisions of the <kbd>Main Page</kbd> made after 2006-05-01.",
        "apihelp-query+revisions-example-first5-not-localhost": "Get first 5 revisions of the <kbd>Main Page</kbd> that were not made by anonymous user <kbd>127.0.0.1</kbd>.",
        "apihelp-query+revisions-example-first5-user": "Get first 5 revisions of the <kbd>Main Page</kbd> that were made by the user <kbd>MediaWiki default</kbd>.",
-       "apihelp-query+revisions+base-param-prop": "Which properties to get for each revision:\n;ids:The ID of the revision.\n;flags:Revision flags (minor).\n;timestamp:The timestamp of the revision.\n;user:User that made the revision.\n;userid:User ID of the revision creator.\n;size:Length (bytes) of the revision.\n;sha1:SHA-1 (base 16) of the revision.\n;contentmodel:Content model ID of the revision.\n;comment:Comment by the user for the revision.\n;parsedcomment:Parsed comment by the user for the revision.\n;content:Text of the revision.\n;tags:Tags for the revision.",
+       "apihelp-query+revisions+base-param-prop": "Which properties to get for each revision:\n;ids:The ID of the revision.\n;flags:Revision flags (minor).\n;timestamp:The timestamp of the revision.\n;user:User that made the revision.\n;userid:User ID of the revision creator.\n;size:Length (bytes) of the revision.\n;sha1:SHA-1 (base 16) of the revision.\n;contentmodel:Content model ID of the revision.\n;comment:Comment by the user for the revision.\n;parsedcomment:Parsed comment by the user for the revision.\n;content:Text of the revision.\n;tags:Tags for the revision.\n;parsetree:The XML parse tree of revision content.",
        "apihelp-query+revisions+base-param-limit": "Limit how many revisions will be returned.",
        "apihelp-query+revisions+base-param-expandtemplates": "Expand templates in revision content (requires $1prop=content).",
-       "apihelp-query+revisions+base-param-generatexml": "Generate XML parse tree for revision content (requires $1prop=content).",
+       "apihelp-query+revisions+base-param-generatexml": "Generate XML parse tree for revision content (requires $1prop=content; replaced by <kbd>$1prop=parsetree</kbd>).",
        "apihelp-query+revisions+base-param-parse": "Parse revision content (requires $1prop=content). For performance reasons, if this option is used, $1limit is enforced to 1.",
        "apihelp-query+revisions+base-param-section": "Only retrieve the content of this section number.",
        "apihelp-query+revisions+base-param-diffto": "Revision ID to diff each revision to. Use <kbd>prev</kbd>, <kbd>next</kbd> and <kbd>cur</kbd> for the previous, next and current revision respectively.",
        "apihelp-watch-example-unwatch": "Unwatch the page <kbd>Main Page</kbd>.",
        "apihelp-watch-example-generator": "Watch the first few pages in the main namespace.",
 
-       "apihelp-format-example-generic": "Format the query result in the $1 format.",
+       "apihelp-format-example-generic": "Return the query result in the $1 format.",
        "apihelp-dbg-description": "Output data in PHP's <code>var_export()</code> format.",
        "apihelp-dbgfm-description": "Output data in PHP's <code>var_export()</code> format (pretty-print in HTML).",
-       "apihelp-dump-description": "Output data in PHP's <code>var_dump()</code> format.",
-       "apihelp-dumpfm-description": "Output data in PHP's <code>var_dump()</code> format (pretty-print in HTML).",
        "apihelp-json-description": "Output data in JSON format.",
        "apihelp-json-param-callback": "If specified, wraps the output into a given function call. For safety, all user-specific data will be restricted.",
        "apihelp-json-param-utf8": "If specified, encodes most (but not all) non-ASCII characters as UTF-8 instead of replacing them with hexadecimal escape sequences. Default when <var>formatversion</var> is not <kbd>1</kbd>.",
        "apihelp-rawfm-description": "Output data with the debugging elements in JSON format (pretty-print in HTML).",
        "apihelp-txt-description": "Output data in PHP's <code>print_r()</code> format.",
        "apihelp-txtfm-description": "Output data in PHP's <code>print_r()</code> format (pretty-print in HTML).",
-       "apihelp-wddx-description": "Output data in WDDX format.",
-       "apihelp-wddxfm-description": "Output data in WDDX format (pretty-print in HTML).",
        "apihelp-xml-description": "Output data in XML format.",
        "apihelp-xml-param-xslt": "If specified, adds the named page as an XSL stylesheet. The value must be a title in the {{ns:mediawiki}} namespace ending in <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "If specified, adds an XML namespace.",
index 97c38a6..63e865f 100644 (file)
@@ -9,7 +9,8 @@
                        "Edslov",
                        "Carlos Cristia",
                        "Ryo567",
-                       "Csbotero"
+                       "Csbotero",
+                       "Chris TR"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentación]]\n* [[mw:API:FAQ|Preguntas frecuentes]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Lista de correos]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API de anuncios]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Errores y peticiones]\n</div>\n<strong>Estado:</strong> Todas las características que se muestran en esta página debería funcionar, pero la API aún está en desarrollo activo y puede cambiar en cualquier momento. Suscríbete a [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la lista de correo de mediawiki-api-announce] para estar al día de las actualizaciones.\n\n<strong>Solicitudes erróneas:</strong> Cuando se envían solicitudes erróneas a la API, se envía un encabezado HTTP con la clave \"MediaWiki-API-Error\" y ambos valores, del encabezado y el código de error, se establecerán en el mismo valor. Para más información, véase [[mw:API:Errors_and_warnings|API: Errores y advertencias]].",
@@ -17,6 +18,7 @@
        "apihelp-main-param-format": "El formato de la salida.",
        "apihelp-main-param-smaxage": "Establece el encabezado <code>s-maxage</code> durante estos segundos. Los errores nunca se almacenan en caché.",
        "apihelp-main-param-maxage": "Establece el encabezado <code>max-age</code> durante estos segundos. Los errores nunca se almacenan en caché.",
+       "apihelp-main-param-assert": "Comprobar que el usuario haya iniciado sesión si el valor es <kbd>user</kbd> o si tiene el permiso de bot si es <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Cualquier valor dado aquí se incluirá en la respuesta. Se puede utilizar para distinguir solicitudes.",
        "apihelp-main-param-servedby": "Incluir el nombre del host que ha servido la solicitud en los resultados.",
        "apihelp-main-param-curtimestamp": "Incluir la marca de tiempo actual en el resultado.",
index d792fd6..737ff4b 100644 (file)
@@ -8,7 +8,8 @@
                        "KhabarNegar",
                        "Sahehco",
                        "Signal89",
-                       "Mjbmr"
+                       "Mjbmr",
+                       "Ebraminio"
                ]
        },
        "apihelp-main-param-action": "کدام عملیات را انجام دهد.",
@@ -40,7 +41,7 @@
        "apihelp-createaccount-param-name": "نام کاربری.",
        "apihelp-createaccount-param-password": "رمز عبور (نادیده گرفته می‌شود اگر <var>$1mailpassword</var> تنظیم شده‌باشد).",
        "apihelp-createaccount-param-domain": "دامنه برای احراز هویت خارجی (اختیاری).",
-       "apihelp-createaccount-param-email": "آدرس ایمیل کاربر (اختیاری)",
+       "apihelp-createaccount-param-email": "نشانی ایمیل کاربر (اختیاری)",
        "apihelp-createaccount-param-realname": "نام واقعی کاربر (اختیاری).",
        "apihelp-createaccount-param-mailpassword": "اگر به هر مقداری تنظیم شود، یک رمز عبور تصادفی به کاربر ایمیل خواهد شد.",
        "apihelp-createaccount-param-reason": "دلیل اختیاری برای ایجاد حساب کاربری جهت قرارگرفتن در سیاهه‌ها.",
index 68ed4e8..bda8113 100644 (file)
        "apihelp-expandtemplates-paramvalue-prop-properties": "Propriétés de la page définies par le développement des mots magiques dans le wikitexte.",
        "apihelp-expandtemplates-paramvalue-prop-volatile": "Si la sortie est volatile et ne devrait pas être réutilisée ailleurs dans la page.",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "Le délai maximum après lequel la mise en cache de ce résultat doit être invalidée.",
+       "apihelp-expandtemplates-paramvalue-prop-modules": "Tous les modules ResourceLoader que les fonctions d’analyse ont demandé d’ajouter à la sortie. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Donne les variables de configuration JavaScript spécifiques à la page.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Donne les variables de configuration JavaScript spécifiques à la page sous forme de chaîne JSON.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "L’arbre d’analyse XML de l’entrée.",
        "apihelp-expandtemplates-param-includecomments": "S’il faut inclure les commentaires HTML dans la sortie.",
        "apihelp-expandtemplates-param-generatexml": "Générer l’arbre d’analyse XML (remplacé par $1prop=parsetree).",
        "apihelp-expandtemplates-example-simple": "Développe le wikitexte <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-imagerotate-param-rotation": "Degrés de rotation de l’image dans le sens des aiguilles d’une montre.",
        "apihelp-imagerotate-example-simple": "Faire pivoter <kbd>File:Example.png</kbd> de <kbd>90</kbd> degrés.",
        "apihelp-imagerotate-example-generator": "Faire pivoter toutes les images de <kbd>Category:Flip</kbd> de <kbd>180</kbd> degrés.",
-       "apihelp-import-description": "Importer une page depuis un autre wiki, ou un fichier XML.\n\nNoter que le POST HTTP doit être effectué comme un import de fichier (c’est-à-dire en utilisant multipart/form-data) lors de l’envoi d’un fichier pour le paramètre <var>xml</var>.",
+       "apihelp-import-description": "Importer une page depuis un autre wiki, ou depuis un fichier XML.\n\nNoter que le POST HTTP doit être effectué comme un import de fichier (c’est-à-dire en utilisant multipart/form-data) lors de l’envoi d’un fichier pour le paramètre <var>xml</var>.",
        "apihelp-import-param-summary": "Importer le résumé.",
        "apihelp-import-param-xml": "Fichier XML téléchargé.",
        "apihelp-import-param-interwikisource": "Pour les importations interwiki : wiki depuis lequel importer.",
        "apihelp-import-param-interwikipage": "Pour les importations interwiki : page à importer.",
        "apihelp-import-param-fullhistory": "Pour les importations interwiki : importer tout l’historique, et pas seulement la version courante.",
        "apihelp-import-param-templates": "Pour les importations interwiki : importer aussi tous les modèles inclus.",
-       "apihelp-import-param-namespace": "Importer vers cet espace de noms. Écrase le paramètre <kbd>$1rootpage</kbd>.",
-       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Ignoré si le paramètre <kbd>$1namespace</kbd> est fourni.",
+       "apihelp-import-param-namespace": "Importer vers cet espace de noms. Impossible à utiliser avec <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "Importer comme une sous-page de cette page. Impossible à utiliser avec <var>$1namespace</var>.",
        "apihelp-import-example-import": "Importer [[meta:Help:ParserFunctions]] vers l’espace de noms 100 avec tout l’historique.",
        "apihelp-login-description": "Se connecter et obtenir les cookies d’authentification.\n\nDans le cas d’une connexion réussie, les cookies nécessaires seront inclus dans les entêtes de la réponse HTTP. Dans le cas d’une connexion en échec, les essais ultérieurs pourront être réduits afin de limiter les attaques automatisées de découverte du mot de passe.",
        "apihelp-login-param-name": "Nom d’utilisateur.",
        "apihelp-opensearch-param-suggest": "Ne rien faire si <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> vaut faux.",
        "apihelp-opensearch-param-redirects": "Comment gérer les redirections :\n;return:Renvoie la redirection elle-même.\n;resolve:Renvoie la page cible. Peut renvoyer moins de $1limit résultats.\nPour des raisons historiques, la valeur par défaut est « return » pour $1format=json et « resolve » pour les autres formats.",
        "apihelp-opensearch-param-format": "Le format de sortie.",
+       "apihelp-opensearch-param-warningsaserror": "Si des avertissements sont levés avec <kbd>format=json</kbd>, renvoyer une erreur d’API au lieu de les ignorer.",
        "apihelp-opensearch-example-te": "Trouver les pages commençant par <kbd>Te</kbd>.",
        "apihelp-options-description": "Modifier les préférences de l’utilisateur courant.\n\nSeules les options enregistrées dans le cœur ou dans l’une des extensions installées, ou les options avec une clé préfixée par « userjs- » (devant être utilisées dans les scripts utilisateur), peuvent être définies.",
        "apihelp-options-param-reset": "Réinitialise les préférences aux valeurs par défaut du site.",
        "apihelp-parse-param-pageid": "Analyser le contenu de cette page. Écrase <var>$1page</var>.",
        "apihelp-parse-param-redirects": "Si le paramètre <var>$1page</var> ou <var>$1pageid</var> est positionné sur une redirection, la résoudre.",
        "apihelp-parse-param-oldid": "Analyser le contenu de cette révision. Écrase <var>$1page</var> et <var>$1pageid</var>.",
-       "apihelp-parse-param-prop": "Quelles informations obtenir :\n;text:Fournit le texte analysé du wikitexte.\n;langlinks:Fournit les liens de langue dans le wikitexte analysé.\n;categories:Fournit les catégories dans le wikitexte analysé.\n;categorieshtml:Fournit la version HTML des catégories.\n;links:Fournit les liens internes dans le wikitexte analysé.\n;templates:Fournit les modèles dans le wikitexte analysé.\n;images:Fournit les images dans le wikitexte analysé.\n;externallinks:Fournit les liens externes dans le wikitexte analysé.\n;sections:Fournit les sections dans le wikitexte analysé.\n;revid:Ajoute l’ID de révision de la page analysée.\n;displaytitle:Ajoute le titre du wikitexte analysé.\n;headitems:Fournit les éléments à mettre dans le &lt;head&gt; de la page.\n;headhtml:Fournit le &lt;head&gt; analysé de la page.\n;modules:Fournit les modules ResourceLoader utilisés sur la page.\n;indicators:Fournit le HTML des indicateurs d’état de la page utilisés dans la page.\n;iwlinks:Fournit les liens interwiki dans le wikitexte analysé.\n;wikitext:Fournit le wikitexte d’origine qui a été analysé.\n;properties:Fournit différentes propriétés définies dans le wikitexte analysé.\n;limitreportdata:Fournit le rapport de limite de façon structurée. Ne fournit aucune donnée, quand $1disablepp est activé.\n;limitreporthtml:Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, quand $1disablepp est activé.",
+       "apihelp-parse-param-prop": "Quelles informations obtenir :",
+       "apihelp-parse-paramvalue-prop-text": "Fournit le texte analysé du wikitexte.",
+       "apihelp-parse-paramvalue-prop-langlinks": "Fournit les liens de langue du wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-categories": "Fournit les catégories dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "Fournit la version HTML des catégories.",
+       "apihelp-parse-paramvalue-prop-links": "Fournit les liens internes dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-templates": "Fournit les modèles dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-images": "Fournit les images dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-externallinks": "Fournit les liens externes dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-sections": "Fournit les sections dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-revid": "Ajoute l’ID de révision de la page analysée.",
+       "apihelp-parse-paramvalue-prop-displaytitle": "Ajoute le titre du wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-headitems": "Fournit les éléments à mettre dans le <code>&lt;head&gt;</code> de la page.",
+       "apihelp-parse-paramvalue-prop-headhtml": "Fournit le <code>&lt;head&gt;</code> analysé de la page.",
+       "apihelp-parse-paramvalue-prop-modules": "Fournit les modules ResourceLoader utilisés sur la page. Soit <kbd>jsconfigvars</kbd> soit <kbd>encodedjsconfigvars</kbd> doit être demandé avec <kbd>modules</kbd>.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page.",
+       "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Fournit les variables de configuration JavaScript spécifiques à la page comme chaîne JSON.",
+       "apihelp-parse-paramvalue-prop-indicators": "Fournit le HTML des indicateurs d’état de page utilisés sur la page.",
+       "apihelp-parse-paramvalue-prop-iwlinks": "Fournit les liens interwikis dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-wikitext": "Fournit le wikitexte d’origine qui a été analysé.",
+       "apihelp-parse-paramvalue-prop-properties": "Fournit les diverses propriétés définies dans le wikitexte analysé.",
+       "apihelp-parse-paramvalue-prop-limitreportdata": "Fournit le rapport de limite d’une manière structurée. Ne fournit aucune donnée, si <var>$1disablepp</var> est positionné.",
+       "apihelp-parse-paramvalue-prop-limitreporthtml": "Fournit la version HTML du rapport de limite. Ne fournit aucune donnée, si <var>$1disablepp</var> est positionné.",
        "apihelp-parse-param-pst": "Faire une transformation avant enregistrement de l’entrée avant de l’analyser. Valide uniquement quand utilisé avec du texte.",
        "apihelp-parse-param-onlypst": "Faire une transformation avant enregistrement (PST) de l’entrée, mais ne pas l’analyser. Renvoie le même wikitexte, après que la PST a été appliquée. Valide uniquement quand utilisé avec <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Inclut les liens de langue fournis par les extensions (à utiliser avec <kbd>$1prop=langlinks</kbd>).",
        "apihelp-query-param-export": "Exporter les révisions actuelles de toutes les pages fournies ou générées.",
        "apihelp-query-param-exportnowrap": "Renvoyer le XML exporté sans l’inclure dans un résultat XML (même format que [[Special:Export]]). Utilisable uniquement avec $1export.",
        "apihelp-query-param-iwurl": "S’il faut obtenir l’URL complète si le titre est un lien interwiki.",
-       "apihelp-query-param-rawcontinue": "Actuellement ignoré. Plus tard, <var>$1continue</var> deviendra la valeur par défaut et sera nécessaire pour recevoir les données brutes de <samp>query-continue</samp>.",
+       "apihelp-query-param-rawcontinue": "Renvoyer les données <samp>query-continue</samp> brutes pour continuer.",
        "apihelp-query-example-revisions": "Récupérer [[Special:ApiHelp/query+siteinfo|l’info du site]] et [[Special:ApiHelp/query+revisions|les révisions]] de <kbd>Page principale</kbd>.",
        "apihelp-query-example-allpages": "Récupérer les révisions des pages commençant par <kbd>API/</kbd>.",
        "apihelp-query+allcategories-description": "Énumérer toutes les catégories.",
        "apihelp-query+revisions+base-param-difftotext": "Texte auquel comparer chaque révision. Compare uniquement un nombre limité de révisions. Écrase <var>$1diffto</var>. Si <var>$1section</var> est positionné, seule cette section sera comparée avec ce texte",
        "apihelp-query+revisions+base-param-contentformat": "Format de sérialisation utilisé pour <var>$1difftotext</var> et attendu pour la sortie du contenu.",
        "apihelp-query+search-description": "Effectuer une recherche en texte intégral.",
-       "apihelp-query+search-param-search": "Rechercher les titres (ou le contenu) de toutes les pages ayant cette valeur.",
+       "apihelp-query+search-param-search": "Rechercher les titres de page ou le contenu correspondant à cette valeur. Vous pouvez utiliser la chaîne de recherche pour invoquer des fonctionnalités de recherche spéciales, selon ce que le serveur de recherche du wiki implémente.",
        "apihelp-query+search-param-namespace": "Rechercher uniquement dans ces espaces de nom.",
        "apihelp-query+search-param-what": "Quel type de recherche effectuer.",
        "apihelp-query+search-param-info": "Quelles métadonnées renvoyer.",
-       "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :\n;size:Ajoute la taille de la page en octets.\n;wordcount:Ajoute le nombre de mots de la page.\n;timestamp:Ajoute l’horodatage de la dernière modification de la page.\n;snippet:Ajoute un extrait analysé de la page.\n;titlesnippet:Ajoute un extrait analysé du titre de la page.\n;redirectsnippet:Ajoute un extrait analysé du titre de la redirection.\n;redirecttitle:Ajoute le titre de la redirection correspondante.\n;sectionsnippet:Ajoute un extrait analysé du titre de la section correspondante.\n;sectiontitle:Ajoute le titre de la section correspondante.\n;score:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>",
+       "apihelp-query+search-param-prop": "Quelles propriétés renvoyer :\n;size:Ajoute la taille de la page en octets.\n;wordcount:Ajoute le nombre de mots de la page.\n;timestamp:Ajoute l’horodatage de la dernière modification de la page.\n;snippet:Ajoute un extrait analysé de la page.\n;titlesnippet:Ajoute un extrait analysé du titre de la page.\n;redirectsnippet:Ajoute un extrait analysé du titre de la redirection.\n;redirecttitle:Ajoute le titre de la redirection correspondante.\n;sectionsnippet:Ajoute un extrait analysé du titre de la section correspondante.\n;sectiontitle:Ajoute le titre de la section correspondante.\n;categorysnippet:Ajoute un extrait analysé de la catégorie correspondante.\n;isfilematch:Ajoute un booléen indiquant si la recherche correspond au contenu du fichier.\n;score:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>\n;hasrelated:<span class=\"apihelp-deprecated\">Obsolète et ignoré.</span>",
        "apihelp-query+search-param-limit": "Combien de pages renvoyer au total.",
        "apihelp-query+search-param-interwiki": "Inclure les résultats interwiki dans la recherche, s’ils sont disponibles.",
        "apihelp-query+search-param-backend": "Quel serveur de recherche utiliser, si ce n’est pas celui par défaut.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixer l’horodatage de notification pour <kbd>Page principale</kbd> afin que toutes les modifications depuis le 1 janvier 2012 soient non vues",
        "apihelp-setnotificationtimestamp-example-allpages": "Réinitialiser l’état de notification sur les pages dans l’espace de noms <kbd>{{ns:user}}</kbd>.",
        "apihelp-tag-description": "Ajouter ou enlever des balises de modification aux révisions ou ou aux entrées de journal individuelles.",
+       "apihelp-tag-param-rcid": "Un ou plus IDs de modification récente à partir desquels ajouter ou supprimer la balise.",
+       "apihelp-tag-param-revid": "Un ou plus IDs de révision à partir desquels ajouter ou supprimer la balise.",
+       "apihelp-tag-param-logid": "Un ou plus IDs d’entrée de journal à partir desquels ajouter ou supprimer la balise.",
        "apihelp-tag-param-add": "Balises à ajouter. Seules les balises définies manuellement peuvent être ajoutées.",
+       "apihelp-tag-param-remove": "Balises à supprimer. Seules les balises qui sont soit définies manuellement soit pas du tout définies peuvent être supprimées.",
        "apihelp-tag-param-reason": "Motif de la modification.",
+       "apihelp-tag-example-rev": "Ajoute la balise <kbd>vandalism</kbd> à partir de l’ID de révision 123 sans indiquer de motif",
+       "apihelp-tag-example-log": "Supprimer la balise <kbd>spam</kbd> à partir de l’ID d’entrée de journal 123 avec le motif <kbd>Wrongly applied</kbd>",
        "apihelp-tokens-description": "Obtenir les jetons pour les actions modifiant les données.\n\nCe module est obsolète, remplacé par [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-tokens-param-type": "Types de jeton à demander.",
        "apihelp-tokens-example-edit": "Récupérer un jeton de modification (par défaut).",
        "apihelp-format-example-generic": "Mettre en forme le résultat de la requête dans le format $1",
        "apihelp-dbg-description": "Extraire les données au format de <code>var_export()</code> de PHP.",
        "apihelp-dbgfm-description": "Extraire les données au format de <code>var_export()</code> de PHP (affiché proprement en HTML).",
-       "apihelp-dump-description": "Extraire les données au format de <code>var_dump()</code> de PHP.",
-       "apihelp-dumpfm-description": "Extraire les données au format de <code>var_dump()</code> de PHP (affiché proprement en HTML).",
        "apihelp-json-description": "Extraire les données au format JSON.",
        "apihelp-json-param-callback": "Si spécifié, inclut la sortie dans l’appel d’une fonction fournie. Pour plus de sûreté, toutes les données spécifiques à l’utilisateur seront restreintes.",
-       "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale.",
+       "apihelp-json-param-utf8": "Si spécifié, encode la plupart (mais pas tous) des caractères non ASCII en URF-8 au lieu de les remplacer par leur séquence d’échappement hexadécimale. Valeur par défaut quand <var>formatversion</var> ne vaut pas <kbd>1</kbd>.",
+       "apihelp-json-param-ascii": "Si spécifié, encode toutes ses séquences d’échappement non ASCII utilisant l’hexadécimal. Valeur par défaut quand <var>formatversion</var> vaut <kbd>1</kbd>.",
+       "apihelp-json-param-formatversion": "Mise en forme de sortie :\n;1:Format rétro-compatible (booléens de style XML, clés <samp>*</samp> pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement <kbd>2</kbd>), peut changer sans avertissement.",
        "apihelp-jsonfm-description": "Extraire les données au format JSON (affiché proprement en HTML).",
        "apihelp-none-description": "Ne rien extraire.",
        "apihelp-php-description": "Extraire les données au format sérialisé de PHP.",
+       "apihelp-php-param-formatversion": "Mise en forme de la sortie :\n;1:Format rétro-compatible (bool&ens de style XML, clés <samp>*</samp> pour les nœuds de contenu, etc.).\n;2:Format moderne expérimental. Des détails peuvent changer !\n;latest:Utilise le dernier format (actuellement <kbd>2</kbd>), peut changer sans avertissement.",
        "apihelp-phpfm-description": "Extraire les données au format sérialisé de PHP (affiché proprement en HTML).",
        "apihelp-rawfm-description": "Extraire les données avec les éléments de débogage au format JSON (affiché proprement en HTML).",
        "apihelp-txt-description": "Extraire les données au format de <code>print_r()</code> de PHP.",
        "apihelp-txtfm-description": "Extraire les données au format de <code>print_r()</code> de PHP (affiché proprement en HTML).",
-       "apihelp-wddx-description": "Extraire les données au format WDDX.",
-       "apihelp-wddxfm-description": "Extraire les données au format WDDX (affiché proprement en HTML).",
        "apihelp-xml-description": "Extraire les données au format XML.",
        "apihelp-xml-param-xslt": "Si spécifié, ajoute la page nommée comme une feuille de style XSL. La valeur doit être un titre dans l’espace de noms {{ns:mediawiki}} se terminant par <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Si spécifié, ajoute un espace de noms XML.",
        "apihelp-yamlfm-description": "Extraire les données YAML (affiché proprement en HTML).",
        "api-format-title": "Résultat de l’API de MédiaWiki",
        "api-format-prettyprint-header": "Voici la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.\n\nSpécifiez le paramètre <var>format</var> pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez <kbd>format=$2</kbd>.\n\nVoyez la [[mw:API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
+       "api-format-prettyprint-header-only-html": "Ceci est une représentation HTML à des fins de déboguage, et n’est pas approprié à une utilisation applicative.\n\nVoir la [[mw:API|documentation complète]], ou l’[[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
        "api-orm-param-props": "Champs à rechercher.",
        "api-orm-param-limit": "Nombre maximal de lignes à renvoyer.",
        "api-pageset-param-titles": "Une liste des titres sur lesquels travailler.",
        "api-help-param-deprecated": "Obsolète.",
        "api-help-param-required": "Ce paramètre est obligatoire.",
        "api-help-datatypes-header": "Type de données",
+       "api-help-datatypes": "Certains types de paramètre dans les requêtes de l’API nécessitent plus d’explication :\n;boolean\n:Les paramètres booléens fonctionnent comme des cases à cocher HTML : si le paramètre est spécifié, quelle que soit sa valeur, il est considéré comme vrai. Pour une valeur fausse, enlever complètement le paramètre.\n;timestamp\n:Les horodatages peuvent être spécifiés sous différentes formes. Date et heure ISO 8601 est recommandé. Toutes les heures sont en UTC, tout fuseau horaire inclus est ignoré.\n:* Date et heure ISO 8601, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (la ponctuation et <kbd>Z</kbd> sont facultatifs)\n:* Date et heure ISO 8601 avec fractions de seconde (ignorées), <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (tirets, deux-points et <kbd>Z</kbd> sont facultatifs)\n:* Format MédiaWiki, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* Format numérique générique, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (fuseau horaire facultatif en <kbd>GMT</kbd>, <kbd>+<var>##</var></kbd>, ou <kbd>-<var>##</var></kbd> sont ignorés)\n:* Format EXIF, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:*Format RFC 2822 (le fuseau horaire est facultatif), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Format RFC 850 (le fuseau horaire est facultatif), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* Format ctime C, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* Secondes depuis 1970-01-01T00:00:00Z sous forme d’entier de 1 à 13 chiffres (sans <kbd>0</kbd>)\n:* La chaîne <kbd>now</kbd>",
+       "api-help-param-type-limit": "Type : entier ou <kbd>max</kbd>",
+       "api-help-param-type-integer": "Type : {{PLURAL:$1|1=entier|2=liste d’entiers}}",
+       "api-help-param-type-boolean": "Type : booléen ([[Special:ApiHelp/main#main/datatypes|détails]])",
+       "api-help-param-type-timestamp": "Type : {{PLURAL:$1|1=horodatage|2=liste d’horodatages}} ([[Special:ApiHelp/main#main/datatypes|formats autorisés]])",
+       "api-help-param-type-user": "Type : {{PLURAL:$1|1=nom d’utilisateur|2=liste de noms d’utilisateur}}",
        "api-help-param-list": "{{PLURAL:$1|1=Une valeur|2=Valeurs (séparées par <kbd>{{!}}</kbd>)}} : $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Doit être vide|Peut être vide, ou $2}}",
        "api-help-param-limit": "Pas plus de $1 autorisé.",
index 3a98d08..4fe6c8f 100644 (file)
        "apihelp-query-param-export": "Exportar as revisións actuais de todas as páxinas dadas ou xeneradas.",
        "apihelp-query-param-exportnowrap": "Devolver o XML exportado sen incluílo nun resultado XML (mesmo formato que [[Special:Export]]). Só pode usarse con  $1export.",
        "apihelp-query-param-iwurl": "Se fai falta obter a URL completa se o título é unha ligazón interwiki.",
-       "apihelp-query-param-continue": "Cando está presente, formatea query-continue como pares clave-valor que simplemente serán mesturados na consulta orixinal. Este parámetro debe fixarse a unha cadea baleira na consulta inicial.\n\nEste parámetro está recomendado para todos os novos desenvolvementos, e será o usado por defecto na seguinte versión da API.",
-       "apihelp-query-param-rawcontinue": "Actualmente ignorado. No futuro, <var>$1continue</var> virá por defecto e será necesario para recibir os datos en bruto de <samp>query-continue</samp>.",
+       "apihelp-query-param-rawcontinue": "Devolver os datos en bruto de <samp>query-continue</samp> para continuar.",
        "apihelp-query-example-revisions": "Consultar [[Special:ApiHelp/query+siteinfo|información do sitio]] e [[Special:ApiHelp/query+revisions|as revisións]] da <kbd>Páxina Principal</kbd>.",
        "apihelp-query-example-allpages": "Buscar revisións de páxinas que comecen por <kbd>API/</kbd>.",
        "apihelp-query+allcategories-description": "Numerar tódalas categorías",
        "apihelp-format-example-generic": "Formatar o resultado da consulta no formato $1.",
        "apihelp-dbg-description": "Datos de saída en formato <code>var_export()</code> de PHP.",
        "apihelp-dbgfm-description": "Datos de saída en formato <code>var_export()</code> de PHP(impresión en HTML).",
-       "apihelp-dump-description": "Datos de saída en formato PHP <code>var_dump()</code>.",
-       "apihelp-dumpfm-description": "Datos de saída en formato <code>var_dump()</code> de PHP(impresión en HTML).",
        "apihelp-json-description": "Datos de saída en formato JSON.",
        "apihelp-json-param-callback": "Se está especificado, inclúe a saída na chamada da función indicada. Para maior seguridade, todos os datos específicos do usuario serán restrinxidos.",
        "apihelp-json-param-utf8": "Se está especificado, codifica a maioría (pero non todos) dos caracteres ASCII como UTF-8 no canto de reemprazalos con secuencias de escape hexadecimais. Por defecto cando <var>formatversion</var> non é <kbd>1</kbd>.",
        "apihelp-rawfm-description": "Datos de saída cos elementos de depuración en formato JSON(impresión en HTML).",
        "apihelp-txt-description": "Datos de saída en formato PHP <code>print_r()</code>.",
        "apihelp-txtfm-description": "Datos de saída en formato <code>print_r()</code> de PHP(impresión en HTML).",
-       "apihelp-wddx-description": "Datos de saída en formato WDDX.",
-       "apihelp-wddxfm-description": "Datos de saída en formato WDDX(impresión en HTML).",
        "apihelp-xml-description": "Datos de saída en formato XML.",
        "apihelp-xml-param-xslt": "Se está indicado, engade o nome da páxina como unha folla de estilo XSL. O valor debe ser un título no espazo de nomes {{ns:mediawiki}} rematando con <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Se está indicado, engade un espazo de nomes XML.",
        "api-help-param-type-limit": "Tipo: enteiro ou <kbd>max</kbd>",
        "api-help-param-type-integer": "Tipo: {{PLURAL:$1|1=enteiro|2=lista de enteiros}}",
        "api-help-param-type-boolean": "Tipo: booleano ([[Special:ApiHelp/main#main/datatypes|detalles]])",
-       "api-help-param-type-password": "",
        "api-help-param-type-timestamp": "Tipo: {{PLURAL:$1|1=selo de tempo|2=lista de selos de tempo}} ([[Special:ApiHelp/main#main/datatypes|formatos permitidos]])",
        "api-help-param-type-user": "Tipo: {{PLURAL:$1|1=nome de usuario|2=lista de nomes de usuarios}}",
        "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados con <kbd>{{!}}</kbd>)}}: $2",
index 23cca40..c6a959f 100644 (file)
                        "Elyashiv"
                ]
        },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|תיעוד]]\n* [[mw:API:FAQ|שו\"ת]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api רשימת דיוור]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce הודעות על 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, תישלח כותרת HTTP עם המפתח \"MediaWiki-API-Error\" ואז גם הערך של הכותרת וגם קוד השגיאה יוגדרו לאותו ערך. למידע נוסף ר' [[mw:API:Errors_and_warnings|API: שגיאות ואזהרות]].",
        "apihelp-main-param-action": "איזו פעולה לבצע.",
-       "apihelp-main-param-format": "התבנית של הפלט.",
+       "apihelp-main-param-format": "תסדיר הפלט.",
+       "apihelp-main-param-maxlag": "שיהוי מרבי יכול לשמש כשמדיה־ויקי מותקנת בצביר עם מסד נתונים משוכפל. כדי לחסוך בפעולות שגורמות יותר שיהוי בשכפול אתר, הפרמטר הזה יכול לגרום ללקוח להמתין עד ששיהוי השכפול יורד מתחת לערך שצוין. במקרה של שיהוי מוגזם, קוד השגיאה <samp>maxlag</samp> מוחזר עם הודעה כמו <samp>Waiting for $host: $lag seconds lagged</samp>.<br />ר' [[mw:Manual:Maxlag_parameter|מדריך למשתמש: פרמטר maxlag]] למידע נוסף.",
        "apihelp-main-param-smaxage": "הגדרת כותרת בקרת מטמון HTTP‏ <code>s-maxage</code> למספר כזה של שניות.",
        "apihelp-main-param-maxage": "הגדרת כותרת בקרת מטמון HTTP‏ <code>max-age</code> למספר כזה של שניות.",
+       "apihelp-main-param-assert": "לוודא שהמשתמש נכנס אם זה מוגדר ל־<kbd>user</kbd>, או שיש לו הרשאת בוט אם זה <kbd>bot</kbd>.",
+       "apihelp-main-param-requestid": "כל ערך שיינתן כאן ייכלל בתשובה. אפשר להשתמש בזה כדי להבדיל בין בקשות.",
+       "apihelp-main-param-servedby": "לכלול את שם המארח ששירת את הבקשה בתוצאות.",
        "apihelp-main-param-curtimestamp": "הכללת חותמת הזמן הנוכחית בתוצאה.",
+       "apihelp-main-param-origin": "בעת גישה ל־API עם בקשת AJAX חוצה מתחמים (CORS), יש להציב כאן את המתחם שממנו יוצאת הבקשה. זה היה להיות כלול בכל בקשה מקדימה, ולכן הוא חייב להיות חלק מה־URI של הבקשה (לא גוף ה־POST). זה חייב להיות תואם במדויק לאחד המקורות בכותרת <code>Origin</code>, כך שזה צריך להיות מוגדר למשהו כמו <kbd>https://en.wikipedia.org</kbd> או <kbd>https://meta.wikimedia.org</kbd>. אם הפרמטר הזה אינו תואם לכותרת <code>Origin</code>, תוחזר תשובת 403. אם הפרמטר הזה תורם לכותרת <code>Origin</code> והמקור נמצא ברשימה הלבנה, תוגדר כותרת <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-uselang": "באיזו שפה להשתמש לתרגומי הודעות. אפשר לקבל רשימת קודים מ־<kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> עם <kbd>siprop=languages</kbd> או לציין <kbd>user</kbd> כדי להשתמש בהעדפת השפה של המשתמש הנוכחי, או להגדיר את <kbd>content</kbd> להשתמש בקוד השפה של הוויקי הזה.",
        "apihelp-block-description": "חסימת משתמש.",
        "apihelp-block-param-user": "שם משתמש, כתובת IP, או טווח IP שהנך רוצה לחסום.",
+       "apihelp-block-param-expiry": "זמן תפוגה. יכול להיות יחסי (למשל <kbd>5 months</kbd> או <kbd>2 weeks</kbd>) או מוחלט (למשל <kbd>2014-09-18T12:34:56Z</kbd>). אם זה מוגדר ל־<kbd>infinite</kbd>‏, <kbd>indefinite</kbd>, או <kbd>never</kbd>, החסימה לא תפוג לעולם.",
        "apihelp-block-param-reason": "סיבה לחסימה.",
        "apihelp-block-param-anononly": "לחסום משתמשים אלמוניים בלבד (דהיינו, השבתת עריכות אלמוניות מכתובת ה־IP הזאת)",
        "apihelp-block-param-nocreate": "מניעת יצירת חשבונות",
        "apihelp-block-param-autoblock": "חסימה אוטומטית גם של כתובת ה־IP האחרונה שהשתמש בה ושל כל כתובת IP שינסה להשתמש בה בעתיד.",
+       "apihelp-block-param-reblock": "אם המשתמש כבר חסום, לדרוס את החסימה הנוכחית.",
+       "apihelp-block-param-watchuser": "לעקוב אחרי דף המשתמש ודף השיחה של המשתמש או של כתובת ה־IP.",
+       "apihelp-checktoken-param-type": "סוג האסימון שבבדיקה.",
+       "apihelp-checktoken-param-token": "איזה אסימון לבדוק.",
+       "apihelp-checktoken-param-maxtokenage": "הגיל המרבי המותר של האסימון, בשניות.",
+       "apihelp-checktoken-example-simple": "בדיקת התקינות של אסימון <kbd>csrf</kbd>.",
+       "apihelp-clearhasmsg-description": "מנקה את דגל <code>hasmsg</code> עבור המשתמש הנוכחי.",
+       "apihelp-clearhasmsg-example-1": "לנקות את דגל <code>hasmsg</code> עבור המשתמש הנוכחי.",
        "apihelp-compare-param-fromtitle": "כותרת ראשונה להשוואה.",
        "apihelp-compare-param-fromid": "מס׳ זיהוי של העמוד הראשון להשוואה.",
        "apihelp-compare-param-fromrev": "גרסה ראשונה להשוואה.",
        "apihelp-delete-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.",
        "apihelp-delete-example-simple": "מחיקת <kbd>Main Page</kbd>.",
        "apihelp-delete-example-reason": "מחיקת <kbd>Main Page</kbd>. סיבה: <kbd>Preparing for move</kbd>.",
+       "apihelp-disabled-description": "היחידה הזאת כובתה.",
        "apihelp-edit-description": "יצירה ועריכה של דפים.",
        "apihelp-edit-param-title": "שם הדף לעריכה. לא לשימוש עם <var>$1pageid</var>.",
        "apihelp-edit-param-pageid": "מזהה הדף לעריכה. לא לשימוש עם <var>$1title</var>.",
+       "apihelp-edit-param-section": "מספר הפסקה <kbd>0</kbd> לפסקה העליונה, <kbd>new</kbd> לפסקה חדשה.",
+       "apihelp-edit-param-sectiontitle": "הכותרת לפסקה החדשה.",
        "apihelp-edit-param-text": "תוכן הדף.",
+       "apihelp-edit-param-summary": "תקציר עריכה. גם גותרת פסקה כש־$1section=new ו־$1sectiontitle אינו מוגדר.",
        "apihelp-edit-param-tags": "אילו תגי שינוי להחיל על הגרסה.",
        "apihelp-edit-param-minor": "עריכה משנית.",
        "apihelp-edit-param-notminor": "שינוי לא משני.",
        "apihelp-edit-param-bot": "סימון עריכה זו כבוט.",
+       "apihelp-edit-param-basetimestamp": "חותם־זמן של גרסת הבסיס, משמש לזיהוי התנגשויות עריכה. אפשר לקבל אותו באמצעות [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-recreate": "לעקוב את כל הטעויות על כך שהדף נמחק בינתיים.",
+       "apihelp-edit-param-createonly": "לא לערוך את הדף אם הוא כבר קיים.",
+       "apihelp-edit-param-nocreate": "לזרוק שגיאה אם הדף אינו קיים.",
        "apihelp-edit-param-watch": "הוספת העמוד לרשימת המעקב של המשתמש הנוכחי.",
        "apihelp-edit-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.",
+       "apihelp-edit-param-watchlist": "להוסיף את הדף לרשימת המעקב של המשתמש הנוכחי או להסיר אותו משם, להשתמש בהעדפות, או לא לשנות את מצב המעקב.",
+       "apihelp-edit-param-prependtext": "הוספת הטקסט הזה לתחילת הדף. דורס את $1text.",
+       "apihelp-edit-param-redirect": "לפתור הפניות אוטומטית.",
+       "apihelp-edit-param-contentformat": "תסדיר להסדרת תוכן שמשמש את טקסט הקלט.",
        "apihelp-edit-example-edit": "עריכת דף",
        "apihelp-emailuser-description": "שליחת דוא\"ל למשתמש.",
+       "apihelp-emailuser-param-target": "לאיזה משתמש לשלוח דוא\"ל.",
+       "apihelp-emailuser-param-subject": "כותרת נושא.",
+       "apihelp-emailuser-param-text": "גוף הדואר.",
+       "apihelp-emailuser-param-ccme": "שליחת עותק של הדואר הזה אליי.",
+       "apihelp-expandtemplates-description": "הרחבת כל התבניות בקוד הוויקי.",
        "apihelp-expandtemplates-param-title": "כותרת הדף.",
+       "apihelp-expandtemplates-param-text": "איזה קוד ויקי להמיר.",
+       "apihelp-expandtemplates-param-prop": "אילו חלקי מידע לקבל.\n\nיש לשים לכך שאם לא נבחרו ערכים, התוצאה תכיל את קוד הוויקי, אבל הפלט יהיה בתסדיר מיושן.",
+       "apihelp-expandtemplates-paramvalue-prop-wikitext": "קוד הוויקי המורחב.",
        "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
        "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
+       "apihelp-expandtemplates-paramvalue-prop-parsetree": "עץ פענוח XML של הקלט.",
+       "apihelp-expandtemplates-param-includecomments": "האם לכלול הערות HTML בפלט.",
+       "apihelp-expandtemplates-param-generatexml": "יצירת עץ פענוח XML (מוחלף ב־$1prop=parsetree).",
+       "apihelp-feedcontributions-description": "החזרת הזנת תרומות משתמש.",
        "apihelp-feedcontributions-param-feedformat": "תסדיר ההזנה.",
+       "apihelp-feedcontributions-param-user": "לקבל תרומות של אילו משמשים.",
+       "apihelp-feedcontributions-param-namespace": "לפי איזה מרחב שם לסנן את התרומות.",
        "apihelp-feedcontributions-param-year": "החל משנה (ולפני כן).",
        "apihelp-feedcontributions-param-month": "החל מחודש (ולפני כן).",
        "apihelp-feedcontributions-param-tagfilter": "סינון תרומות בעלות התגיות הבאות.",
        "apihelp-feedcontributions-param-deletedonly": "הצגת תרומות שנמחקו בלבד.",
        "apihelp-feedcontributions-param-toponly": "הצגת עריכות שהן הגרסה העדכנית ביותר בלבד.",
+       "apihelp-feedcontributions-param-newonly": "להציג רק עריכות שהן יצירות דפים.",
+       "apihelp-feedcontributions-param-showsizediff": "להציג את ההבדל בגודל בין גרסאות.",
        "apihelp-feedcontributions-example-simple": "החזרת תרומות עבור המשתמש <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-description": "להחזיר הזנת שינויים אחרונים.",
        "apihelp-feedrecentchanges-param-feedformat": "תסדיר ההזנה.",
+       "apihelp-feedrecentchanges-param-namespace": "לאיזה מרחב שם להגביל את התוצאות.",
+       "apihelp-feedrecentchanges-param-invert": "כל מרחבי השם למעט זה שנבחר.",
+       "apihelp-feedrecentchanges-param-associated": "לכלול מרחב שם משויך (שיחה או ראשי).",
+       "apihelp-feedrecentchanges-param-days": "לכמה ימים להגביל את התוצאות.",
+       "apihelp-feedrecentchanges-param-limit": "המספר המרבי של התוצאות להחזיר.",
+       "apihelp-feedrecentchanges-param-from": "להציג תוצאות מאז.",
        "apihelp-feedrecentchanges-param-hideminor": "הסתרת שינוים משניים.",
        "apihelp-feedrecentchanges-param-hidebots": "הסתרת שינויים שנעשו על ידי בוטים.",
        "apihelp-feedrecentchanges-param-hideanons": "הסתרת שינויים שנעשו על ידי אנונימים.",
        "apihelp-feedrecentchanges-param-hidemyself": "הסתרת שינוים שנעשו על ידי המשתמש הנוכחי.",
        "apihelp-feedrecentchanges-param-tagfilter": "סינון לפי תגית.",
        "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.",
+       "apihelp-feedrecentchanges-param-showlinkedto": "להציג את השינויים בדפים שמקושרים לדף שנבחר במקום זה.",
        "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.",
        "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.",
+       "apihelp-feedwatchlist-description": "החזרת הזנת רשימת מעקב.",
        "apihelp-feedwatchlist-param-feedformat": "תסדיר ההזנה.",
+       "apihelp-feedwatchlist-param-hours": "רשימת דפים ששונו בתוך מספר כזה של שעות מעכשיו.",
+       "apihelp-feedwatchlist-param-linktosections": "לקשר ישר לפסקאות ששונו אם אפשר.",
+       "apihelp-feedwatchlist-example-default": "הצגת הזנת רשימת מעקב.",
+       "apihelp-feedwatchlist-example-all6hrs": "להציג את כל השינויים בדפים שבמעקב ב־6 השעות האחרונות.",
+       "apihelp-filerevert-description": "לשחזר את הקובץ לגרסה ישנה יותר.",
+       "apihelp-filerevert-param-filename": "שם קובץ היעד, ללא התחילית File:.",
+       "apihelp-filerevert-param-comment": "הערת העלאה.",
+       "apihelp-filerevert-param-archivename": "שם הארכיון של הגרסה שאליה ישוחזר הקובץ.",
        "apihelp-help-description": "הצגת עזרה עבור היחידות שצוינו.",
+       "apihelp-help-param-modules": "עזרה של אילו יחידות להציג (ערכים של הפרמטרים <var>action</var> ו־<var>format</var>, או <kbd>main</kbd>). אפשר להגדיר תת־יחידות עם <kbd>+</kbd>.",
+       "apihelp-help-param-recursivesubmodules": "לכלול עזרה לתת־יחידות באופן רקורסיבי.",
        "apihelp-help-param-helpformat": "תסדיר פלט העזרה.",
        "apihelp-help-param-toc": "לכלול תוכן עניינים בפלט HTML.",
+       "apihelp-help-example-main": "עזרה ליחידה הראשית.",
+       "apihelp-help-example-recursive": "כל העזרה בדף אחד.",
+       "apihelp-help-example-help": "עזרה ליחידת העזרה עצמה.",
+       "apihelp-help-example-query": "עזרה לשתי תת־יחידות של שאילתה.",
+       "apihelp-imagerotate-description": "סיבוב של תמונה אחת או יותר.",
+       "apihelp-imagerotate-param-rotation": "בכמה מעלות לסובב בכיוון השעון.",
+       "apihelp-imagerotate-example-simple": "לסובב את <kbd>File:Example.png</kbd> ב־<kbd>90</kbd> מעלות.",
+       "apihelp-imagerotate-example-generator": "לסובב את כל התמונות ב־<kbd>Category:Flip</kbd> ב־<kbd>180</kbd> מעלות.",
+       "apihelp-import-description": "לייבא דף מוויקי אחר או מקובץ XML.\n\nיש לשים לב לכך שפעולת HTTP POST צריכה להיעשות בתור העלאת קובץ (כלומר, עם multipart/form-data) בזמן שליחת קובץ לפרמטר <var>xml</var>.",
+       "apihelp-import-param-summary": "תקציר יבוא.",
        "apihelp-import-param-xml": "קובץ XML שהועלה.",
+       "apihelp-import-param-interwikisource": "ליבוא בין אתרי ויקי: מאיזה ויקי לייבא.",
+       "apihelp-import-param-interwikipage": "ליבוא בין אתרי ויקי: איזה דף לייבא.",
+       "apihelp-import-param-fullhistory": "ליבוא בין אתרי ויקי: לייבר את ההיסטוריה המלאה, לא רק את הגרסה הנוכחית.",
+       "apihelp-import-param-templates": "ליבוא בין אתרי ויקי: לייבא גם את כל התבניות המוכללות.",
+       "apihelp-import-param-namespace": "לייבא למרחב השם הזה. לא ניתן להשתמש בזה יחד עם <var>$1rootpage</var>.",
+       "apihelp-import-param-rootpage": "לייבא בתור תת־משנה של הדף הזה. לא ניתן להשתמש בזה יחד עם <var>$1namespace</var>.",
+       "apihelp-import-example-import": "לייבא את [[meta:Help:ParserFunctions]] למרחב השם 100 עם היסטוריה מלאה.",
        "apihelp-login-param-name": "שם משתמש.",
        "apihelp-login-param-password": "ססמה.",
        "apihelp-login-param-domain": "שם מתחם (רשות).",
        "apihelp-move-param-ignorewarnings": "להתעלם מכל האזהרות.",
        "apihelp-opensearch-param-search": "מחרוזת לחיפוש.",
        "apihelp-opensearch-param-namespace": "שמות מתחם לחיפוש.",
+       "apihelp-opensearch-param-redirects": "איך לטפל בהפניות:\n;return:להחזיר את ההפניה עצמה.\n;resolve:להחזיר את דף היעד. יכול להחזיר פחות מ־$1limit תוצאות.\nמסיבות היסטוריות, בררת המחדל היא \"return\" עבור $1format=json ו־\"resolve\" עבור תסדירים אחרים.",
        "apihelp-opensearch-param-format": "תסדיר הפלט.",
+       "apihelp-opensearch-param-warningsaserror": "אם אזהרות מוּעלות עם <kbd>format=json</kbd>, להחזיר שגיאת API במקום להתעלם מהן.",
+       "apihelp-options-param-reset": "אתחול ההעדפות לבררות המחדל של האתר.",
+       "apihelp-options-param-change": "רשימת שינויים, בתסדיר name=value (למשל skin=vector). הערך אינו יכול להכיל תווי מקל (|). אם לא ניתן ערך, אפילו לא סימן שווה, למשל optionname|otheroption|...‎, האפשרות תאופס לערך בררת המחדל שלה.",
+       "apihelp-options-example-reset": "אתחול כל ההעדפות.",
+       "apihelp-paraminfo-description": "קבלת מידע על יחידות של API.",
+       "apihelp-paraminfo-param-modules": "רשימה של שמות יחידות (ערכים של הפרמטרים <var>action</var> ו־<var>format</var>, או <kbd>main</kbd>). אפשר להגדיר תת־יחידות עם <kbd>+</kbd>.",
+       "apihelp-paraminfo-param-helpformat": "תסדיר מחרוזות העזרה.",
+       "apihelp-paraminfo-param-pagesetmodule": "קבלת מידע גם על יחידת pageset (שמספק את titles=‎ וידידיו).",
+       "apihelp-paraminfo-param-formatmodules": "רשימת שמות תסדירים (ערכים של הפרמטר <var>format</var>). יש להשתמש ב־<var>$1modules</var> במקום זה.",
+       "apihelp-paraminfo-example-1": "הצגת מידע עבור <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>‏, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>‏, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>‏, ו־<kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
+       "apihelp-parse-param-summary": "התקציר שצריך לפענח.",
+       "apihelp-parse-param-prop": "אילו פריטי מידע לקבל:",
+       "apihelp-parse-paramvalue-prop-text": "נותן טקסט מפוענח של קוד הוויקי.",
+       "apihelp-parse-paramvalue-prop-langlinks": "נותן קישורי שפה בקוד הוויקי המפוענח.",
+       "apihelp-parse-paramvalue-prop-categories": "נותן קטגוריות בקוד ויקי מפוענח.",
+       "apihelp-parse-paramvalue-prop-categorieshtml": "נותן את גרסת ה־HTML של הקטגוריות.",
+       "apihelp-parse-paramvalue-prop-links": "נותן קישורים פנימיים בקוד הוויקי המפוענח.",
+       "apihelp-parse-paramvalue-prop-templates": "נותן תבניות בקוד הוויקי המפוענח.",
+       "apihelp-parse-paramvalue-prop-images": "נותן תמונות בקוד הוויקי המפוענח.",
        "apihelp-parse-paramvalue-prop-jsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה.",
        "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "נותן משתני הגדרות של JavaScript שייחודיים לדף הזה בתור מחרוזת JSON.",
+       "apihelp-parse-param-contentformat": "תסדיר הסדרת תוכן שישמש לטקסט הקלט. תקף רק עם $1text.",
+       "apihelp-protect-param-protections": "רשימת רמות הכנה, בתסדיר <kbd>action=level</kbd> (למשל <kbd>edit=sysop</kbd>).",
        "apihelp-protect-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-protect-example-protect": "הגנה על דף.",
        "apihelp-query-param-list": "אילו רשימות לקבל.",
+       "apihelp-query-param-exportnowrap": "להחזיר את ה־XML של היצוא בלי לעטוף אותו בתוצאת XML (אותו תסדיר כמו [[Special:Export]]). אפשר להשתמש בזה רק עם $1export.",
        "apihelp-query+allcategories-description": "מניין של כל הקטגוריות.",
        "apihelp-query+allcategories-param-from": "הקטגוריה ממנה להתחיל למנות.",
+       "apihelp-query+allcategories-param-to": "באיזו קטגוריה להפסיק לרשום.",
+       "apihelp-query+allcategories-param-prefix": "חיפוש כל כותרות הקטגוריות שמתחילות בערך הזה.",
        "apihelp-query+allcategories-param-dir": "באיזה כיוון למיין.",
+       "apihelp-query+allcategories-param-min": "להחזיר רק קטגוריות עם מספר כזה לפחות של חברים.",
+       "apihelp-query+allcategories-param-max": "להחזיר רק קטגוריות עם מספר כזה לכל היותר של חברים.",
        "apihelp-query+allcategories-param-limit": "כמה קטגוריות להחזיר.",
+       "apihelp-query+allcategories-param-prop": "אילו מאפיינים לקבל:\n;size:הוספת מספר הדפים בקטגוריה.\n;hidden:מתייג קטגוריות מוסתרות עם _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+allcategories-example-size": "רשימת קטגוריות עם מידע על מספר הדפים בכל אחת מהן.",
        "apihelp-query+alldeletedrevisions-param-start": "באיזה חותם זמן להתחיל לרשום.",
        "apihelp-query+alldeletedrevisions-param-end": "באיזה חותם זמן להפסיק לרשום.",
        "apihelp-query+alldeletedrevisions-param-from": "להתחיל את הרשימה בשם הזה.",
        "apihelp-query+fileusage-param-limit": "כמה להחזיר.",
        "apihelp-query+fileusage-param-show": "לחפש רק פריטים שמתאימים לאמות המידה הבאות:\n;redirect:להציג רק הפניות.\n;!redirect:לא להציג הפניות.",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "תגובה על הגרסה.",
+       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata": "רשימת מטא־נתונים כלליים על תסדיר הקובץ עבור גרסת הקובץ.",
+       "apihelp-query+imageinfo-paramvalue-prop-extmetadata": "רשימת מטא־נתונים מעוצבים משולבים ממספר מקורות. התוצאה מעוצבת ב־HTML.",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "באיזו שפה לאחזר את המטא־נתונים. זה משפיע על אילו תרגומים לאחזר, האם יש כמה, וגם איך דברים כמו מספרים וערכים שונים מעוצבים.",
        "apihelp-query+imageinfo-param-localonly": "חיפוש אחר קבצים במאגר המקומי בלבד.",
        "apihelp-query+imageinfo-example-simple": "קבלת פרטים על הגרסה הנוכחית של [[:קובץ:Albert Einstein Head.jpg]].",
        "apihelp-query+images-param-limit": "כמה קבצים להחזיר.",
        "apihelp-query+redirects-param-show": "לחפש רק פריטים שמתאימים לאמות המידה הבאות:\n;fragment:להציג רק הפניות עם מקטע.\n;!fragment:להציג רק הפניות ללא מקטע.",
        "apihelp-query+revisions-param-tag": "לרשום רק גרסאות עם התג הזה.",
        "apihelp-query+revisions+base-param-limit": "הגבלת מספר הגרסאות שיוחזרו.",
+       "apihelp-query+revisions+base-param-contentformat": "תסדיר ההסדרה שמשמש את <var>$1difftotext</var> וצפוי לפלט של תוכן.",
        "apihelp-query+search-param-limit": "כמה דפים להחזיר בסך הכול.",
        "apihelp-query+siteinfo-param-inlanguagecode": "קוד שפה ששמות שפות מתורגמות (מאמץ טוב ביותר) ושמות עיצובים.",
        "apihelp-query+stashimageinfo-param-filekey": "מפתח שמזהה העלאה קודמת שהונחה בצד באופן זמני.",
        "apihelp-query+watchlistraw-param-limit": "כמה תוצאות סך הכול להחזיר בכל בקשה.",
        "apihelp-rollback-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-tag-param-reason": "סיבה לשינוי.",
+       "apihelp-undelete-param-reason": "סיבה לשחזור.",
        "apihelp-undelete-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
+       "apihelp-upload-param-filename": "שם קובץ היעד.",
        "apihelp-upload-param-watchlist": "הוספה או הסרה של הדף ללא תנאי מרשימת המעקב של המשתמש הנוכחי, להשתמש בהעדפות או לא לשנות את המעקב.",
        "apihelp-upload-param-ignorewarnings": "להתעלם מכל האזהרות.",
        "apihelp-upload-param-filekey": "מפתח שמזהה העלאה קודמת שהונחה בצד באופן זמני.",
        "apihelp-userrights-param-user": "שם משתמש.",
        "apihelp-userrights-param-reason": "סיבה לשינוי.",
+       "apihelp-format-example-generic": "לעצב את תוצאות השאילתה בתסדיר $1.",
        "apihelp-dbg-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">var_export()</code> של PHP.",
-       "apihelp-dump-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">var_dump()</code> של PHP.",
+       "apihelp-dbgfm-description": "לפלוט את הנתונים בתסדיר <code dir=\"ltr\">var_export()</code> של PHP (עם הדפסה יפה ב־HTML).",
        "apihelp-json-description": "לפלוט נתונים בתסדיר JSON.",
+       "apihelp-json-param-utf8": "אם זה צוין, רוב התווים שאינם ASCII (אבל לא כולם) יקודדו בתור UTF-8 במקום להתחלף בסדרות חילוף הקסדצימליות. זאת בררת המחדל אם הערך של <var>formatversion</var> הוא לא <kbd>1</kbd>.",
+       "apihelp-json-param-ascii": "אם זה צוין, לקודד את כל מה שאינו ASCII בסדרות חילוף הקסדצימליות. זאת בררת המחדל כש־<var>formatversion</var> היא <kbd>1</kbd>.",
+       "apihelp-json-param-formatversion": "תסדיר הפלט:\n;1:תסדיר עם תאימות אחורה (ערכים בוליאניים בסגנון XML, מפתחות <samp>*</samp> לצומתי תוכן, וכו').\n;2:תסדיר מודרני ניסיוני. הפרטים יכולים להשתנות!\n;latest:להשתמש בתסדיר החדש ביותר (כרגע <kbd>2</kbd>), יכול להשתנות ללא התראה.",
        "apihelp-jsonfm-description": "לפלוט נתונים בתסדיר JSON (עם הדפסה יפה ב־HTML).",
        "apihelp-php-description": "לפלוט נתונים בתסדיר PHP מוסדר.",
+       "apihelp-php-param-formatversion": "תסדיר הפלט:\n;1:תסדיר עם תאימות אחורה (ערכים בוליאניים בסגנון XML, מפתחות <samp>*</samp> לצומתי תוכן, וכו').\n;2:תסדיר מודרני ניסיוני. הפרטים יכולים להשתנות!\n;latest:להשתמש בתסדיר החדש ביותר (כרגע <kbd>2</kbd>), יכול להשתנות ללא התראה.",
        "apihelp-phpfm-description": "לפלוט נתונים בתסדיר PHP מוסדר (עם הדפסה יפה ב־HTML).",
+       "apihelp-rawfm-description": "לפלוט את הנתונים עם אלמנטים לניפוי שגיאות בתסדיר JSON (עם הדפסה יפה ב־HTML).",
        "apihelp-txt-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">print_r()</code> של PHP.",
-       "apihelp-wddx-description": "לפלוט נתונים בתסדיר WDDX.",
+       "apihelp-txtfm-description": "לפלוט את הנתונים בתסדיר <code dir=\"ltr\">print_r()</code> של PHP (עם הדפסה יפה ב־HTML).",
        "apihelp-xml-description": "לפלוט נתונים בתסדיר XML.",
        "apihelp-xml-param-xslt": "אם צוין, יש להוסיף את שם הדף כגיליון עיצוב XSL. על הערך להיות כותרת ב {{ns:mediawiki}} במרחב שם המשתמש, המסתיים ב-  <code>.xsl</code>.",
        "apihelp-xmlfm-description": "לפלוט נתונים בתסדיר XML (עם הדפסה יפה ב־HTML).",
+       "apihelp-yaml-description": "לפלוט את הנתונים בתסדיר YAML.",
        "apihelp-yamlfm-description": "לפלוט נתונים בתסדיר YAML (עם הדפסה יפה ב־HTML).",
        "api-format-title": "תוצאה של API של מדיה־ויקי",
-       "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר format כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום format=$2.\n\nר' את [https://www.mediawiki.org/wiki/API התיעוד המלא], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
+       "api-format-prettyprint-header": "זהו ייצוג ב־HTML של תסדיר $1. תסדיר HTML טוב לתיקון שגיאות, אבל אינו מתאים ליישומים.\n\nיש לציין את הפרמטר <var>format</var> כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום <kbd>format=$2</kbd>.\n\nר' את [[mw:API|התיעוד המלא]], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
        "api-orm-param-props": "באילו שדות לעשות שאילתה.",
        "api-orm-param-limit": "מספר מרבי של שורות להחזיר.",
        "api-pageset-param-titles": "רשימת כותרות.",
        "api-pageset-param-pageids": "רשימת מזהי דף לעובד עליהם.",
        "api-pageset-param-revids": "רשימת מזהי גרסה לעבוד עליהם.",
-       "api-pageset-param-generator": "קבלת רשימת דפים לעבוד עליהם על־ידי הרצת יחידת שאילתה שצוינה.\n\n'''לתשומת לבך:''' לשמות בפרמטר generator צריכה להיות התחילית \"g\", ר' דוגמאות.",
-       "api-pageset-param-redirects-generator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids, וב־$1revids, ודפים שמחזיר $1generator.",
-       "api-pageset-param-redirects-nogenerator": "פתרון אוטומטי של הפניות ב־$1titles, ב־$1pageids וב־$1revids.",
+       "api-pageset-param-generator": "קבלת רשימת דפים לעבוד עליהם על־ידי הרצת יחידת שאילתה שצוינה.\n\n<strong>לתשומת לבך:</strong> לשמות בפרמטר generator צריכה להיות התחילית \"g\", ר' דוגמאות.",
+       "api-pageset-param-redirects-generator": "פתרון אוטומטי של הפניות ב־<var>$1titles</var>, ב־<var>$1pageids</var>, וב־<var>$1revids</var>, ודפים שמחזיר <var>$1generator</var>.",
+       "api-pageset-param-redirects-nogenerator": "פתרון אוטומטי של הפניות ב־<var>$1titles</var>, ב־<var>$1pageids</var> וב־<var>$1pageids</var>.",
        "api-pageset-param-converttitles": "המרת כותרות לסוגי כתב אחרים אם זה נחוץ. זה עובד רק אם שפת הכותרת של הוויקי תומכת בהמרת סוגי כתב. השפות שתמכות בהמרת סוגי כתב הן $1.",
        "api-help-title": "עזרה של MediaWiki API",
        "api-help-lead": "זהו דף תיעוד של API שנוצר באופן אוטומטי.\n\nתיעוד ודוגמאות: https://www.mediawiki.org/wiki/API",
        "api-help-main-header": "יחידה ראשית",
        "api-help-flag-deprecated": "יחידה זו אינה מומלצת לשימוש.",
-       "api-help-flag-internal": "<strong>×\99×\97×\99×\93×\94 ×\96×\95 ×\94×\99×\90 ×¤× ×\99×\9e×\99ת ×\90×\95 ×\9c×\90 ×\99צ×\99×\91×\94.</strong>\n×\94פע×\95×\9c×\94 ×©×\9c×\94 ×¢×©×\95×\99ה להשתנות ללא הודעה מוקדמת.",
+       "api-help-flag-internal": "<strong>×\94×\99×\97×\99×\93×\94 ×\94×\96×\90ת ×\94×\99×\90 ×¤× ×\99×\9e×\99ת ×\90×\95 ×\91×\9cת×\99Ö¾×\99צ×\99×\91×\94.</strong> ×\94פע×\95×\9c×\94 ×©×\9c×\94 ×\99×\9b×\95×\9cה להשתנות ללא הודעה מוקדמת.",
        "api-help-flag-readrights": "יחידה זו דורשת הרשאות קריאה.",
        "api-help-flag-writerights": "יחידה זו דורשת הרשאות כתיבה.",
        "api-help-flag-mustbeposted": "יחידה זו מקבלת רק בקשות POST.",
-       "api-help-flag-generator": "×\94×\99×\97×\99×\93×\94 ×\94×\96×\90ת ×\99×\9b×\95×\9c×\94 ×\9c×\94×\99×\95ת מחולל.",
+       "api-help-flag-generator": "×\90פשר ×\9c×\94שת×\9eש ×\91×\99×\97×\99×\93×\94 ×\94×\96×\90ת ×\91ת×\95ר מחולל.",
        "api-help-source": "מקור: $1",
        "api-help-source-unknown": "מקור: <span class=\"apihelp-unknown\">לא ידוע</span>",
-       "api-help-license": "רישיון: [[$1|$2]]",
+       "api-help-license": "רישיון: <span dir=\"auto\">[[$1|$2]]</span>",
        "api-help-license-noname": "רישיון: [[$1|ראו קישור]]",
        "api-help-license-unknown": "רישיון: <span class=\"apihelp-unknown\">לא ידוע</span>",
        "api-help-parameters": "{{PLURAL:$1|פרמטר|פרמטרים}}:",
        "api-help-param-deprecated": "מיושן.",
        "api-help-param-required": "פרמטר זה נדרש.",
-       "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"{{!}}\")}}: $2",
+       "api-help-datatypes-header": "סוגי נתונים",
+       "api-help-datatypes": "חלק מסוגי הפרמטרים בבקשות API דורשים הסבר נוסף:\n;בוליאני (boolean)\n:פרמטרים בוליאניים עובדים כמו תיבות סימון של HTML: אם הפרמטר צוין, בלי קשר לערך שלו, הוא אמת (true). בשביל ערך שקר (false), יש להשמיט את הפרמטר לגמרי.\n;חותם־זמן (timestamp)\n:אפשר לכתוב חותמי־זמן במספר תסדירים. תאריך ושעה לפי ISO 8601 הוא הדבר המומלת. כל הזמנים מצוינים ב־ UTC, לא תהיה השפעה לשום אזור זמן שיצוין.\n:* תאריך ושעה לפי ISO 8601‏, <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>Z</kbd> (לא חובה לכתוב פיסוק ו־<kbd>Z</kbd>)\n:* תאריך ושעה לפי ISO 8601 עם חלקי שנייה (שלא תהיה להם שום השפעה), <kbd><var>2001</var>-<var>01</var>-<var>15</var>T<var>14</var>:<var>56</var>:<var>00</var>.<var>00001</var>Z</kbd> (לא חובה לכתוב קווים מפרידים, נקודתיים ו־<kbd>Z</kbd>)\n:* תסדיר MediaWiki‏, <kbd><var>2001</var><var>01</var><var>15</var><var>14</var><var>56</var><var>00</var></kbd>\n:* תסדיר מספרי כללי, <kbd><var>2001</var>-<var>01</var>-<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd> (לאזור זמן אופציונלי של <kbd>GMT</kbd>‏, <kbd dir=\"ltr\">+<var>##</var></kbd>, או <kbd dir=\"ltr\">-<var>##</var></kbd> אין השפעה)\n:* תסדיר EXIF‏, <kbd><var>2001</var>:<var>01</var>:<var>15</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* תסדיר RFC 2822 (אפשר להשמיט את אזור הזמן), <kbd><var>Mon</var>, <var>15</var> <var>Jan</var> <var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* תסדיר RFC 850 (אפשר להשמיט את אזור הזמן), <kbd><var>Monday</var>, <var>15</var>-<var>Jan</var>-<var>2001</var> <var>14</var>:<var>56</var>:<var>00</var></kbd>\n:* תסדיר C ctime‏, <kbd><var>Mon</var> <var>Jan</var> <var>15</var> <var>14</var>:<var>56</var>:<var>00</var> <var>2001</var></kbd>\n:* שניות מאז 1970-01-01T00:00:00Z בתור מספר שלך בין 1 ל־13 (לא כולל <kbd>0</kbd>)\n:* המחרוזת <kbd>now</kbd>",
+       "api-help-param-type-integer": "סוג: {{PLURAL:$1|1=מספר שלם|2=רשימת מספרים שלמים}}",
+       "api-help-param-type-boolean": "סוג: בוליאני ([[Special:ApiHelp/main#main/datatypes|פרטים]])",
+       "api-help-param-type-timestamp": "סוג: {{PLURAL:$1|חותם־זמן|רשימת חותמי־זמן}} ([[Special:ApiHelp/main#main/datatypes|תסדירים מורשים]])",
+       "api-help-param-list": "{{PLURAL:$1|1=ערך אחד|2=ערכים (מופרדים באמצעות \"<kbd>{{!}}</kbd>\")}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=חייב להיות ריק|יכול להיות ריק או $2}}",
        "api-help-param-limit": "מספר הפרמטרים לא יכול להיות גדול מ־$1.",
        "api-help-param-limit2": "המספר המרבי המותר הוא $1 (עבור בוטים – $2).",
        "api-help-param-default-empty": "ברירת מחדל: <span class=\"apihelp-empty\">(ריק)</span>",
        "api-help-param-token": "אסימון \"$1\" אוחזר מ־[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
        "api-help-param-token-webui": "לשם תאימות, גם האסימון שמשמש בממשק דפדפן מתקבל.",
-       "api-help-param-disabled-in-miser-mode": "כבוי בשל [https://www.mediawiki.org/wiki/Manual:$wgMiserMode מצב חיסכון].",
-       "api-help-param-limited-in-miser-mode": "'''לתשומת לבך:''' בשל [https://www.mediawiki.org/wiki/Manual:$wgMiserMode מצב חיסכון], שימוש בזה יכול להוביל לפחות מ־\"$1limit\" תוצאות לפני המשך; במצבים קיצוניים ייתכן שיחזרו אפס תוצאות.",
+       "api-help-param-disabled-in-miser-mode": "כבוי בשל [[mw:Manual:$wgMiserMode|מצב חיסכון]].",
+       "api-help-param-limited-in-miser-mode": "<strong>לתשומת לבך:</strong> בשל [[mw:Manual:$wgMiserMode|מצב חיסכון]], שימוש בזה יכול להוביל לפחות מ־<var>$1limit</var> תוצאות לפני המשך; במצבים קיצוניים ייתכן שיחזרו אפס תוצאות.",
        "api-help-param-direction": "באיזה כיוון למספר:\n;newer:לרשום את הישנים ביותר בהתחלה. לתשומת לבך: $1start חייב להיות לפני $1end.\n;older:לרשום את החדשים ביותר בהתחלה (בררת מחדל). לתשומת לבך: $1start חייב להיות אחרי $1end.",
        "api-help-param-continue": "כשיש עוד תוצאות, להשתמש בזה בשביל להמשיך.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(ללא תיאור)</span>",
index 22538cd..1443603 100644 (file)
@@ -6,13 +6,14 @@
                        "Los688",
                        "Whym",
                        "Mfuji",
-                       "Otokoume"
+                       "Otokoume",
+                       "Sujiniku"
                ]
        },
        "apihelp-main-param-action": "実行する操作です。",
        "apihelp-main-param-format": "出力する形式です。",
-       "apihelp-main-param-smaxage": "<code>s-maxage</code> ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
-       "apihelp-main-param-maxage": "<code>max-age</code> ヘッダーにこの秒数を設定します。エラーがキャッシュされることはありません。",
+       "apihelp-main-param-smaxage": "<code>s-maxage</code> HTTP キャッシュ コントロール ヘッダー に、この秒数を設定します。エラーがキャッシュされることはありません。",
+       "apihelp-main-param-maxage": "<code>max-age</code> HTTP キャッシュ コントロール ヘッダー に、この秒数を設定します。エラーがキャッシュされることはありません。",
        "apihelp-main-param-assert": "<kbd>user</kbd> を設定した場合は利用者がログイン済みかどうかを、<kbd>bot</kbd> を指定した場合はボット権限があるかどうかを、それぞれ検証します。",
        "apihelp-main-param-requestid": "任意の値を指定でき、その値が結果に含められます。リクエストを識別するために使用できます。",
        "apihelp-main-param-servedby": "リクエストを処理したホスト名を結果に含めます。",
        "apihelp-query+revisions-example-first5-not-localhost": "<kbd>Main Page</kbd> の匿名利用者 <kbd>127.0.0.1</kbd> 以外による最初の5版を取得する。",
        "apihelp-query+revisions-example-first5-user": "<kbd>Main Page</kbd> の <kbd>MediaWiki default</kbd> による最初の5版を取得する。",
        "apihelp-query+search-description": "全文検索を行います。",
-       "apihelp-query+search-param-search": "ã\81\93ã\81®å\80¤ã\82\92å\90«ã\82\80ã\81\99ã\81¹ã\81¦ã\81®ã\83\9aã\83¼ã\82¸å\90\8d (ã\81¾ã\81\9fã\81¯æ\9c¬æ\96\87) ã\82\92æ¤\9cç´¢ã\81\97ます。",
+       "apihelp-query+search-param-search": "ã\81\93ã\81®å\80¤ã\82\92å\90«ã\82\80ã\83\9aã\83¼ã\82¸å\90\8dã\81¾ã\81\9fã\81¯æ\9c¬æ\96\87ã\82\92æ¤\9cç´¢ã\81\97ã\81¾ã\81\99ã\80\82Wikiã\81®æ¤\9cç´¢ã\83\90ã\83\83ã\82¯ã\82¨ã\83³ã\83\89å®\9fè£\85ã\81«å¿\9cã\81\98ã\81¦ã\80\81ã\81\82ã\81ªã\81\9fã\81¯ç\89¹å\88¥ã\81ªæ¤\9cç´¢æ©\9fè\83½ã\82\92å\91¼ã\81³å\87ºã\81\99ã\81\9fã\82\81ã\81®æ\96\87å­\97å\88\97ã\82\92æ¤\9cç´¢ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dます。",
        "apihelp-query+search-param-namespace": "この名前空間内のみを検索します。",
        "apihelp-query+search-param-what": "実行する検索の種類です。",
        "apihelp-query+search-param-limit": "返すページの総数です。",
        "apihelp-format-example-generic": "クエリの結果を $1 形式に整形します",
        "apihelp-dbg-description": "データを PHP の <code>var_export()</code> 形式で出力します。",
        "apihelp-dbgfm-description": "データを PHP の <code>var_export()</code> 形式 (HTML に埋め込んだ形式) で出力します。",
-       "apihelp-dump-description": "データを PHP の <code>var_dump()</code> 形式で出力します。",
-       "apihelp-dumpfm-description": "データを PHP の <code>var_dump()</code> 形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-json-description": "データを JSON 形式で出力します。",
        "apihelp-json-param-callback": "指定すると、指定した関数呼び出しで出力をラップします。安全のため、利用者固有のデータはすべて制限されます。",
        "apihelp-json-param-utf8": "指定すると、大部分の非 ASCII 文字 (すべてではありません) を、16 進のエスケープ シーケンスに置換する代わりに UTF-8 として符号化します。<var>formatversion</var> が <kbd>1</kbd> でない場合は既定です。",
        "apihelp-rawfm-description": "データをデバッグ要素付きで JSON 形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-txt-description": "データを PHP の <code>print_r()</code> 形式で出力します。",
        "apihelp-txtfm-description": "データを PHP の <code>print_r()</code> 形式 (HTML に埋め込んだ形式) で出力します。",
-       "apihelp-wddx-description": "データを WDDX 形式で出力します。",
-       "apihelp-wddxfm-description": "データを WDDX 形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-xml-description": "データを XML 形式で出力します。",
        "apihelp-xml-param-xslt": "指定すると、スタイルシートとして &lt;xslt&gt; を追加します。MediaWiki 名前空間の、ページ名の末尾が \".xsl\" のウィキページに対して使用すべきです。",
        "apihelp-xml-param-includexmlnamespace": "指定すると、XML 名前空間を追加します。",
index 9be0c62..351bac7 100644 (file)
        "apihelp-query-param-prop": "Wat för en Eijeschaffte holle för de affjerohchte Sigge.",
        "apihelp-query-param-list": "Wat för en Leßte holle.",
        "apihelp-query-param-meta": "Wat för en Metta_Dahte ze holle.",
+       "apihelp-query-param-rawcontinue": "Jivv Rühdahte „<var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">query-continue</var>“ för et Wigger Maache us.",
        "apihelp-query-example-allpages": "Holl Väsjohne vun Sigge, di met „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">API</kbd>“ bejenne.",
        "apihelp-query+allcategories-description": "Alle Saachjroppe opzälle.",
        "apihelp-query+allcategories-param-from": "De Saachjropp, vun woh aan opzälle.",
diff --git a/includes/api/i18n/or.json b/includes/api/i18n/or.json
new file mode 100644 (file)
index 0000000..d7d0295
--- /dev/null
@@ -0,0 +1,14 @@
+{
+       "@metadata": {
+               "authors": [
+                       "ଶିତିକଣ୍ଠ ଦାଶ"
+               ]
+       },
+       "apihelp-main-param-action": "କେଉଁ କାମ କରାଯିବ ।",
+       "apihelp-main-param-format": "ଆଉଟପୁଟ୍‌ର ଫର୍ମାଟ ।",
+       "apihelp-block-description": "ଜଣେ ବ୍ୟବହାରକାରୀଙ୍କୁ ବ୍ଲକ କରନ୍ତୁ ।",
+       "apihelp-block-param-reason": "ବ୍ଲକ କରିବାର କାରଣ ।",
+       "apihelp-block-param-nocreate": "ଆକାଉଣ୍ଟ ତିଆରି ହେବାକୁ ପ୍ରତିରୋଧ କରନ୍ତୁ ।",
+       "apihelp-createaccount-param-name": "ବ୍ୟବହାରକାରୀଙ୍କ ନାମ",
+       "apihelp-delete-description": "ପୃଷ୍ଠାଟି ଲିଭାଇଦେବେ"
+}
index 54e0a3a..69a78b6 100644 (file)
        "apihelp-userrights-param-reason": "Powód zmiany.",
        "apihelp-dbg-description": "Dane wyjściowe w formacie <code>var_export()</code> (funkcji PHP).",
        "apihelp-dbgfm-description": "Dane wyjściowe w formacie <code>var_export()</code> (funkcji PHP) (prawidłowo wyświetlane w HTML).",
-       "apihelp-dump-description": "Dane wyjściowe w formacie <code>var_dump()</code> (funkcji PHP).",
-       "apihelp-dumpfm-description": "Dane wyjściowe w formacie <code>var_dump()</code> (funkcji PHP) (prawidłowo wyświetlane w HTML).",
        "apihelp-json-description": "Dane wyjściowe w formacie JSON.",
        "apihelp-jsonfm-description": "Dane wyjściowe w formacie JSON (prawidłowo wyświetlane w HTML).",
        "apihelp-php-description": "Dane wyjściowe w serializowany formacie PHP.",
        "apihelp-phpfm-description": "Dane wyjściowe w serializowanym formacie PHP (prawidłowo wyświetlane w HTML).",
        "apihelp-txt-description": "Dane wyjściowe w formacie <code>print_r()</code> (funkcji PHP).",
        "apihelp-txtfm-description": "Dane wyjściowe w formacie <code>print_r()</code> (funkcji PHP) (prawidłowo wyświetlane w HTML).",
-       "apihelp-wddx-description": "Dane wyjściowe w formacie WDDX.",
-       "apihelp-wddxfm-description": "Dane wyjściowe w formacie WDDX (prawidłowo wyświetlane w HTML).",
        "apihelp-xml-description": "Dane wyjściowe w formacie XML.",
        "apihelp-xml-param-xslt": "Jeśli określony, dodaje &lt;xslt&gt; jako arkusz styli. Powinna to być strona wiki w przestrzeni nazw MediaWiki, której nazwy stron kończą się na \".xsl\".",
        "apihelp-xmlfm-description": "Dane wyjściowe w formacie XML (prawidłowo wyświetlane w HTML).",
index 051ef07..cb5b9a5 100644 (file)
@@ -8,7 +8,9 @@
                        "McDutchie",
                        "Raymond",
                        "Anomie",
-                       "Nemo bis"
+                       "Nemo bis",
+                       "Amire80",
+                       "Siebrand"
                ]
        },
        "apihelp-main-description": "{{doc-apihelp-description|main}}",
        "apihelp-feedwatchlist-example-all6hrs": "{{doc-apihelp-example|feedwatchlist}}",
        "apihelp-filerevert-description": "{{doc-apihelp-description|filerevert}}",
        "apihelp-filerevert-param-filename": "{{doc-apihelp-param|filerevert|filename}}",
-       "apihelp-filerevert-param-comment": "{{doc-apihelp-param|filerevert|comment}}",
+       "apihelp-filerevert-param-comment": "Translate as \"a comment about the upload\".\n\n{{doc-apihelp-param|filerevert|comment}}",
        "apihelp-filerevert-param-archivename": "{{doc-apihelp-param|filerevert|archivename}}",
        "apihelp-filerevert-example-revert": "{{doc-apihelp-example|filerevert}}",
        "apihelp-help-description": "{{doc-apihelp-description|help}}",
        "apihelp-parse-paramvalue-prop-properties": "{{doc-apihelp-paramvalue|parse|prop|properties}}",
        "apihelp-parse-paramvalue-prop-limitreportdata": "{{doc-apihelp-paramvalue|parse|prop|limitreportdata}}",
        "apihelp-parse-paramvalue-prop-limitreporthtml": "{{doc-apihelp-paramvalue|parse|prop|limitreporthtml}}",
+       "apihelp-parse-paramvalue-prop-parsetree": "{{doc-apihelp-paramvalue|parse|prop|parsetree|params=* $1 - Value of the constant CONTENT_MODEL_WIKITEXT|paramstart=2}}",
        "apihelp-parse-param-pst": "{{doc-apihelp-param|parse|pst}}",
        "apihelp-parse-param-onlypst": "{{doc-apihelp-param|parse|onlypst}}",
        "apihelp-parse-param-effectivelanglinks": "{{doc-apihelp-param|parse|effectivelanglinks}}",
        "apihelp-format-example-generic": "{{doc-apihelp-example|format|params=* $1 - Format name|paramstart=2|noseealso=1}}",
        "apihelp-dbg-description": "{{doc-apihelp-description|dbg|seealso=* {{msg-mw|apihelp-dbgfm-description}}}}",
        "apihelp-dbgfm-description": "{{doc-apihelp-description|dbgfm|seealso=* {{msg-mw|apihelp-dbg-description}}}}",
-       "apihelp-dump-description": "{{doc-apihelp-description|dump|seealso=* {{msg-mw|apihelp-dumpfm-description}}}}",
-       "apihelp-dumpfm-description": "{{doc-apihelp-description|dumpfm|seealso=* {{msg-mw|apihelp-dump-description}}}}",
        "apihelp-json-description": "{{doc-apihelp-description|json|seealso=* {{msg-mw|apihelp-jsonfm-description}}}}",
        "apihelp-json-param-callback": "{{doc-apihelp-param|json|callback}}",
        "apihelp-json-param-utf8": "{{doc-apihelp-param|json|utf8}}",
        "apihelp-rawfm-description": "{{doc-apihelp-description|rawfm|seealso=* {{msg-mw|apihelp-raw-description}}}}",
        "apihelp-txt-description": "{{doc-apihelp-description|txt|seealso=* {{msg-mw|apihelp-txtfm-description}}}}",
        "apihelp-txtfm-description": "{{doc-apihelp-description|txtfm|seealso=* {{msg-mw|apihelp-txt-description}}}}",
-       "apihelp-wddx-description": "{{doc-apihelp-description|wddx|seealso=* {{msg-mw|apihelp-wddxfm-description}}}}",
-       "apihelp-wddxfm-description": "{{doc-apihelp-description|wddxfm|seealso=* {{msg-mw|apihelp-wddx-description}}}}",
        "apihelp-xml-description": "{{doc-apihelp-description|xml|seealso=* {{msg-mw|apihelp-xmlfm-description}}}}",
        "apihelp-xml-param-xslt": "{{doc-apihelp-param|xml|xslt}}",
        "apihelp-xml-param-includexmlnamespace": "{{doc-apihelp-param|xml|includexmlnamespace}}",
        "api-help-fallback-description": "{{notranslate}}",
        "api-help-fallback-parameter": "{{notranslate}}",
        "api-help-fallback-example": "{{notranslate}}",
-       "api-help-flags": "{{optional}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed",
+       "api-help-flags": "{{ignored}} Label for the API help flags box\n\nParameters:\n* $1 - Number of flags to be displayed",
        "api-help-flag-deprecated": "Flag displayed for an API module that is deprecated",
        "api-help-flag-internal": "Flag displayed for an API module that is considered internal or unstable",
        "api-help-flag-readrights": "Flag displayed for an API module that requires read rights",
        "api-help-license": "Displayed in the flags box to indicate the license of an API module.\n\nParameters:\n* $1 - Page to link to display the full license text\n* $2 - Display text for the link\n\nSee also:\n* {{msg-mw|api-help-license-noname}}\n* {{msg-mw|api-help-license-unknown}}",
        "api-help-license-noname": "Displayed in the flags box to indicate the license of an API module, when the tag for the license is not known.\n\nParameters:\n* $1 - Page to link to display the full license text\n\nSee also:\n* {{msg-mw|api-help-license}}\n* {{msg-mw|api-help-license-unknown}}",
        "api-help-license-unknown": "Displayed in the flags box to indicate that the license of the API module is not known.\n\nSee also:\n* {{msg-mw|api-help-license}}\n* {{msg-mw|api-help-license-noname}}",
-       "api-help-help-urls": "{{optional}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed",
+       "api-help-help-urls": "{{ignored}} Label for the API help urls section\n\nParameters:\n* $1 - Number of urls to be displayed",
        "api-help-parameters": "Label for the API help parameters section\n\nParameters:\n* $1 - Number of parameters to be displayed\n{{Identical|Parameter}}",
        "api-help-param-deprecated": "Displayed in the API help for any deprecated parameter\n{{Identical|Deprecated}}",
        "api-help-param-required": "Displayed in the API help for any required parameter",
        "api-help-param-type-limit": "{{technical}} {{doc-important|Do not translate text inside &lt;kbd%gt; tags}} Used to indicate that a parameter is a \"limit\" type. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-integer": "{{technical}} Used to indicate that a parameter is an integer or list of integers. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-boolean": "{{technical}} {{doc-important|Do not translate <code>Special:ApiHelp</code> in this message.}} Used to indicate that a parameter is a boolean. Parameters:\n* $1 - Always 1.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
-       "api-help-param-type-password": "{{optional}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
+       "api-help-param-type-password": "{{ignored}}{{technical}} Used to indicate that a parameter is a password or list of passwords. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-timestamp": "{{technical}} {{doc-important|Do not translate <code>Special:ApiHelp</code> in this message.}} Used to indicate that a parameter is a timestamp or list of timestamps. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-type-user": "{{technical}} Used to indicate that a parameter is a username or list of usernames. Parameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes a list of values.\nSee also:\n* {{msg-mw|api-help-datatypes}}\n* [[Special:PrefixIndex/MediaWiki:api-help-param-type]]",
        "api-help-param-list": "Used to display the possible values for a parameter taking a list of values\n\nParameters:\n* $1 - 1 if the parameter takes one value, 2 if the parameter takes any number of values\n* $2 - Comma-separated list of values, possibly formatted using {{msg-mw|api-help-param-list-can-be-empty}}\n{{Identical|Value}}",
index a027d9d..8c9f8c8 100644 (file)
@@ -8,10 +8,12 @@
        },
        "apihelp-main-param-action": "Tác vụ để thực hiện.",
        "apihelp-main-param-format": "Định dạng của dữ liệu được cho ra.",
+       "apihelp-main-param-uselang": "Ngôn ngữ để sử dụng cho các phiên dịch thông điệp. Một danh sách các mã có thể được lấy từ <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> với <kbd>siprop=languages</kbd>, hoặc <kbd>user</kbd> cụ thể sử dụng ngôn ngữ tham khảo của người dùng hiện tại, hoặc <kbd>content</kbd> cụ thể để sử dụng ngôn ngữ nội dung của wiki này.",
        "apihelp-block-description": "Cấm người dùng.",
        "apihelp-block-param-user": "Tên truy nhập, địa chỉ IP hoặc dãi IP mà bạn muốn chặn.",
        "apihelp-block-param-reason": "Lý do cấm.",
        "apihelp-block-param-nocreate": "Cấm tạo tài khoản.",
+       "apihelp-block-param-reblock": "Nếu người dùng này đã bị khóa, ghi đè lên người này.",
        "apihelp-clearhasmsg-description": "Xóa cờ <code>hasmsg</code> cho người dùng hiện tại.",
        "apihelp-clearhasmsg-example-1": "Xóa cờ <code>hasmsg</code> cho người dùng hiện tại",
        "apihelp-compare-param-fromtitle": "So sánh tiêu đề đầu tiên.",
        "apihelp-format-example-generic": "Định dạng kết quả truy vấn dưới dạng $1",
        "apihelp-dbg-description": "Cho ra dữ liệu dưới dạng var_export() của PHP.",
        "apihelp-dbgfm-description": "Cho ra dữ liệu dưới dạng var_export() của PHP (định dạng bằng HTML).",
-       "apihelp-dump-description": "Cho ra dữ liệu dưới dạng var_dump() của PHP.",
-       "apihelp-dumpfm-description": "Cho ra dữ liệu dưới dạng var_dump() của PHP (định dạng bằng HTML).",
        "apihelp-json-description": "Cho ra dữ liệu dưới dạng JSON.",
        "apihelp-jsonfm-description": "Cho ra dữ liệu dưới dạng JSON (định dạng bằng HTML).",
        "apihelp-none-description": "Không cho ra gì.",
        "apihelp-rawfm-description": "Cho ra dữ liệu với các phần tử gỡ lỗi dưới dạng JSON (định dạng bằng HTML).",
        "apihelp-txt-description": "Cho ra dữ liệu dưới dạng print_r() của PHP.",
        "apihelp-txtfm-description": "Cho ra dữ liệu dưới dạng print_r() của PHP (định dạng bằng HTML).",
-       "apihelp-wddx-description": "Cho ra dữ liệu dưới dạng WDDX.",
-       "apihelp-wddxfm-description": "Cho ra dữ liệu dưới dạng WDDX (định dạng bằng HTML).",
        "apihelp-xml-description": "Cho ra dữ liệu dưới dạng XML.",
        "apihelp-xmlfm-description": "Cho ra dữ liệu dưới dạng XML (định dạng bằng HTML).",
        "apihelp-yaml-description": "Cho ra dữ liệu dưới dạng YAML.",
index c24d4ce..c2acd42 100644 (file)
@@ -4,5 +4,7 @@
                        "פוילישער"
                ]
        },
+       "apihelp-main-param-action": "וועלכע אקציע אויסצופירן.",
+       "apihelp-main-param-format": "פארמאט פונעם אויסגאב.",
        "api-help-source": "מקור: $1"
 }
index d0c124c..314ec9c 100644 (file)
        "apihelp-imagerotate-param-rotation": "顺时针旋转图像的度数。",
        "apihelp-imagerotate-example-simple": "<kbd>90</kbd>度旋转<kbd>File:Example.png</kbd>。",
        "apihelp-imagerotate-example-generator": "将<kbd>Category:Flip</kbd>之中的所有图像旋转<kbd>180</kbd>度。",
-       "apihelp-import-description": "从另一个wiki导入一个页面,或一个XML文件。\n\n注意当发送一个用于<var>xml</var>参数的文件时,HTTP POST必须作为一次文件上传完成(也就是使用multipart/form-data)。",
+       "apihelp-import-description": "从另一个wiki或从一个XML文件导入页面。\n\n注意当发送一个用于<var>xml</var>参数的文件时,HTTP POST必须作为一次文件上传完成(也就是使用multipart/form-data)。",
        "apihelp-import-param-summary": "导入摘要。",
        "apihelp-import-param-xml": "上传的XML文件。",
        "apihelp-import-param-interwikisource": "用于跨wiki导入:导入的来源wiki。",
        "apihelp-purge-param-forcelinkupdate": "更新链接表。",
        "apihelp-purge-param-forcerecursivelinkupdate": "更新链接表中,并更新任何使用此页作为模板的页面的链接表。",
        "apihelp-purge-example-simple": "刷新<kbd>Main Page</kbd>和<kbd>API</kbd>页面。",
-       "apihelp-purge-example-generator": "刷新主名字空间的前10个页面",
+       "apihelp-purge-example-generator": "刷新主名字空间的前10个页面",
        "apihelp-query-description": "获取来自和有关MediaWiki的数据。\n\n所有数据修改将首先要使用查询以获得令牌以阻止来自恶意网站的滥用破坏。",
        "apihelp-query-param-prop": "要为已查询页面获取的属性。",
        "apihelp-query-param-list": "要获取的列表。",
        "apihelp-query-param-meta": "要获取的元数据。",
-       "apihelp-query-param-rawcontinue": "目前被忽略。将来<var>$1continue</var>将成为默认,且这里将需要得到原始的<samp>query-continue</samp>数据。",
+       "apihelp-query-param-exportnowrap": "返回导出XML,不需要将其包裹在一个XML结果中(与[[Special:Export]]格式相同)。只能与$1export一起使用。",
+       "apihelp-query-param-rawcontinue": "为继续返回原始<samp>query-continue</samp>数据。",
        "apihelp-query-example-revisions": "获取<kbd>Main Page</kbd>的[[Special:ApiHelp/query+siteinfo|网站信息]]和[[Special:ApiHelp/query+revisions|修订版本]]。",
        "apihelp-query-example-allpages": "获取以<kbd>API/</kbd>开头的页面的修订版本",
        "apihelp-query+allcategories-description": "枚举所有类别。",
        "apihelp-query+allimages-description": "按顺序枚举所有图像。",
        "apihelp-query+allimages-param-sort": "要作为排序方式的属性。",
        "apihelp-query+allimages-param-dir": "罗列所采用的方向。",
+       "apihelp-query+allimages-param-from": "要列举的起始图片标题。只能与$1sort=name一起使用。",
+       "apihelp-query+allimages-param-to": "要列举的最终图片标题。只能与$1sort=name一起使用。",
+       "apihelp-query+allimages-param-start": "要列举的起始时间戳。只能与$1sort=timestamp一起使用。",
+       "apihelp-query+allimages-param-end": "要列举的最终时间戳。只能与$1sort=timestamp一起使用。",
        "apihelp-query+allimages-param-minsize": "限于至少这么多字节的图像。",
        "apihelp-query+allimages-param-maxsize": "限于顶多这么多字节的图像。",
        "apihelp-query+allimages-param-sha1": "图像的 SHA1 哈希。覆盖$1sha1base36。",
        "apihelp-query+alltransclusions-param-limit": "要返回的总计项目。",
        "apihelp-query+alltransclusions-param-dir": "罗列所采用的方向。",
        "apihelp-query+alltransclusions-example-unique": "列出孤立嵌入标题",
+       "apihelp-query+alltransclusions-example-unique-generator": "获取所有嵌入的标题,并标记缺失的。",
        "apihelp-query+alltransclusions-example-generator": "获得包含嵌入内容的页面。",
        "apihelp-query+allusers-description": "列举所有注册用户。",
        "apihelp-query+allusers-param-from": "枚举的起始用户名。",
        "apihelp-query+backlinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+backlinks-param-limit": "返回总计页面数。如果<var>$1redirect</var>被启用,则限定分别适用于每一等级(这意味着将返回多达2 * <var>$1limit</var>个结果)。",
        "apihelp-query+backlinks-example-simple": "显示至<kbd>Main page<kbd>的链接。",
-       "apihelp-query+backlinks-example-generator": "è\8e·å¾\97关于链接至<kbd>Main page<kbd>的页面的信息。",
+       "apihelp-query+backlinks-example-generator": "è\8e·å\8f\96关于链接至<kbd>Main page<kbd>的页面的信息。",
        "apihelp-query+blocks-description": "列出所有被封禁的用户和IP地址。",
        "apihelp-query+blocks-param-start": "枚举的起始时间戳。",
        "apihelp-query+blocks-param-end": "枚举的结束时间戳。",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|模式}}:$2",
        "apihelp-query+deletedrevs-param-from": "从此标题开始列出。",
        "apihelp-query+deletedrevs-param-to": "列出至此标题为止。",
+       "apihelp-query+deletedrevs-param-unique": "每个页面只列出一个修订。",
        "apihelp-query+deletedrevs-param-tag": "只列出被此标签标记的修订。",
        "apihelp-query+deletedrevs-param-user": "只列出此用户做出的修订。",
        "apihelp-query+deletedrevs-param-excludeuser": "不要列出此用户做出的修订。",
        "apihelp-query+extlinks-param-protocol": "URL协议。如果为空并且<var>$1query</var>被设置,协议为<kbd>http</kbd>。将此和<var>$1query</var>都留空以列举所有外部链接。",
        "apihelp-query+extlinks-param-query": "不使用协议搜索字符串。对于检查某一页面是否包含某一外部URL很有用。",
        "apihelp-query+extlinks-param-expandurl": "扩展协议相对URL与规范协议。",
-       "apihelp-query+extlinks-example-simple": "获取<kbd>首页</kbd>的外部链接列表。",
+       "apihelp-query+extlinks-example-simple": "获取<kbd>Main Page<kbd>的外部链接列表。",
        "apihelp-query+exturlusage-param-protocol": "URL协议。如果为空并且<var>$1query</var>被设置,协议为<kbd>http</kbd>。将此和<var>$1query</var>都留空以列举所有外部链接。",
        "apihelp-query+exturlusage-param-query": "不包括协议的搜索字符串。参见[[Special:LinkSearch]]。留空以列出所有外部链接。",
        "apihelp-query+exturlusage-param-namespace": "要列举的页面名字空间。",
        "apihelp-query+filearchive-param-sha1": "图片的SHA1哈希值。覆盖$1sha1base36。",
        "apihelp-query+filearchive-param-sha1base36": "基于base 36的图片的SHA1哈希值(用于MediaWiki)。",
        "apihelp-query+filearchive-example-simple": "显示已删除文件列表",
+       "apihelp-query+filerepoinfo-description": "返回有关wiki配置的图片存储库的元信息。",
        "apihelp-query+filerepoinfo-example-simple": "获得有关文件存储库的信息。",
        "apihelp-query+fileusage-description": "查找所有使用指定文件的页面。",
        "apihelp-query+fileusage-param-prop": "要获取的属性:\n;pageid:每个页面的页面ID。\n;title:每个页面的标题。\n;redirect:标记作为重定向的页面。",
        "apihelp-query+images-description": "返回指定页面上包含的所有文件。",
        "apihelp-query+images-param-limit": "返回多少文件。",
        "apihelp-query+images-param-dir": "罗列所采用的方向。",
-       "apihelp-query+images-example-simple": "获取[[首页]]使用的文件列表",
-       "apihelp-query+images-example-generator": "获取有关[[首页]]使用的文件的信息",
+       "apihelp-query+images-example-simple": "获取[[Main Page]]使用的文件列表。",
+       "apihelp-query+images-example-generator": "获取有关[[Main Page]]使用的文件的信息。",
        "apihelp-query+imageusage-description": "查找所有使用指定图片标题的页面。",
        "apihelp-query+imageusage-param-title": "要搜索的标题。不能与$1pageid一起使用。",
        "apihelp-query+imageusage-param-pageid": "要搜索的页面ID。不能与$1title一起使用。",
        "apihelp-query+info-description": "获取基本页面信息。",
        "apihelp-query+info-param-prop": "要获取的额外属性:",
        "apihelp-query+info-paramvalue-prop-protection": "列出每个页面的保护等级。",
+       "apihelp-query+info-paramvalue-prop-talkid": "每个非讨论页面的讨论页的页面ID。",
        "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。",
        "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
        "apihelp-query+info-paramvalue-prop-subjectid": "每个讨论页的母页面的页面ID。",
        "apihelp-query+info-paramvalue-prop-preload": "提供由EditFormPreloadText返回的文本。",
        "apihelp-query+info-param-testactions": "测试当前用户是否可以在页面上执行某种操作。",
        "apihelp-query+info-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
-       "apihelp-query+info-example-simple": "è\8e·å¾\97有关页面<kbd>Main Page</kbd>的信息。",
-       "apihelp-query+info-example-protection": "获取<kbd>首页</kbd>相关的常规和保护信息。",
+       "apihelp-query+info-example-simple": "è\8e·å\8f\96有关页面<kbd>Main Page</kbd>的信息。",
+       "apihelp-query+info-example-protection": "获取<kbd>Main Page</kbd>相关的常规和保护信息。",
        "apihelp-query+iwbacklinks-param-prefix": "跨维基前缀。",
        "apihelp-query+iwbacklinks-param-title": "要搜索的跨wiki链接。必须与<var>$1blprefix</var>一起使用。",
        "apihelp-query+iwbacklinks-param-limit": "返回的总计页面数。",
        "apihelp-query+langlinks-param-title": "要搜索的链接。必须与<var>$1lang</var>一起使用。",
        "apihelp-query+langlinks-param-dir": "罗列所采用的方向。",
        "apihelp-query+langlinks-param-inlanguagecode": "本地化语言名称的语言代码。",
-       "apihelp-query+langlinks-example-simple": "ä»\8e页é\9d¢<kbd>Main Page</kbd>è\8e·å¾\97跨语言链接。",
+       "apihelp-query+langlinks-example-simple": "ä»\8e页é\9d¢<kbd>Main Page</kbd>è\8e·å\8f\96跨语言链接。",
        "apihelp-query+links-description": "从指定页面返回所有链接。",
        "apihelp-query+links-param-namespace": "只显示这些名字空间的链接。",
        "apihelp-query+links-param-limit": "返回多少链接。",
        "apihelp-query+links-param-dir": "罗列所采用的方向。",
-       "apihelp-query+links-example-simple": "ä»\8e页é\9d¢<kbd>Main Page</kbd>è\8e·å¾\97链接",
-       "apihelp-query+links-example-generator": "è\8e·å¾\97有关在页面<kbd>Main Page</kbd>中连接的页面的信息。",
-       "apihelp-query+links-example-namespaces": "è\8e·å¾\97在{{ns:user}}和{{ns:template}}名字空间中来自页面<kbd>Main Page</kbd>的链接。",
+       "apihelp-query+links-example-simple": "ä»\8e页é\9d¢<kbd>Main Page</kbd>è\8e·å\8f\96链接",
+       "apihelp-query+links-example-generator": "è\8e·å\8f\96有关在页面<kbd>Main Page</kbd>中连接的页面的信息。",
+       "apihelp-query+links-example-namespaces": "è\8e·å\8f\96在{{ns:user}}和{{ns:template}}名字空间中来自页面<kbd>Main Page</kbd>的链接。",
        "apihelp-query+linkshere-description": "查找所有链接至指定页面的页面。",
        "apihelp-query+linkshere-param-prop": "要获得的属性:\n;pageid:每个页面的页面ID。\n;title:每个页面的标题。\n;redirect:如果页面是一个重定向就标记。",
        "apihelp-query+linkshere-param-namespace": "只包括这些名字空间的页面。",
        "apihelp-query+linkshere-param-limit": "返回多少。",
        "apihelp-query+linkshere-param-show": "只显示符合以下标准的项:\n;redirect:只显示重定向。\n;!redirect:只显示非重定向。",
-       "apihelp-query+linkshere-example-simple": "获取链接至[[首页]]的页面列表",
-       "apihelp-query+linkshere-example-generator": "获取有关链接至[[首页]]的页面的信息",
+       "apihelp-query+linkshere-example-simple": "获取链接至[[Main Page]]的页面列表。",
+       "apihelp-query+linkshere-example-generator": "获取有关链接至[[Main Page]]的页面的信息。",
        "apihelp-query+logevents-description": "从日志获取事件。",
        "apihelp-query+logevents-param-start": "枚举的起始时间戳。",
        "apihelp-query+logevents-param-end": "枚举的结束时间戳。",
        "apihelp-query+protectedtitles-example-generator": "找到主命名空间中已保护的标题的链接。",
        "apihelp-query+querypage-param-limit": "返回的结果数。",
        "apihelp-query+querypage-example-ancientpages": "返回[[Special:Ancientpages]]的结果。",
+       "apihelp-query+random-description": "获取一组随机页面。\n\n页面列举在一个固定序列中,只有起始点是随机的。这意味着如果<samp>Main Page</samp>是列表中第一个随机页面的话,<samp>List of fictional monkeys</samp>将<em>总是</em>第二个,<samp>List of people on stamps of Vanuatu</samp>是第三个等。\n\n如果名字空间中的页面数低于<var>$1limit</var>,将只会返回少量的页面。同一页面不会返回两次。",
        "apihelp-query+random-param-namespace": "只返回这些名字空间的页面。",
        "apihelp-query+random-param-limit": "限制返回多少随机页面。",
        "apihelp-query+random-param-redirect": "加载一个随机重定向而不是一个随机页面。",
        "apihelp-query+random-example-simple": "从主名字空间返回两个随机页面。",
+       "apihelp-query+random-example-generator": "返回有关来自主名字空间的两个随机页面的页面信息",
        "apihelp-query+recentchanges-description": "枚举最近更改。",
        "apihelp-query+recentchanges-param-start": "枚举的起始时间戳。",
        "apihelp-query+recentchanges-param-end": "枚举的结束时间戳。",
        "apihelp-query+redirects-description": "返回至指定页面的所有重定向。",
        "apihelp-query+redirects-param-namespace": "只包含这些名字空间的页面。",
        "apihelp-query+redirects-param-limit": "返回多少重定向。",
-       "apihelp-query+redirects-example-simple": "获取至[[Project:首页]]的重定向列表",
-       "apihelp-query+redirects-example-generator": "获取所有重定向至[[首页]]的信息",
+       "apihelp-query+redirects-example-simple": "获取至[[Main Page]]的重定向列表。",
+       "apihelp-query+redirects-example-generator": "获取所有重定向至[[Main Page]]的信息。",
        "apihelp-query+revisions-paraminfo-singlepageonly": "可能只能与单一页面使用(模式#2)。",
-       "apihelp-query+revisions-example-content": "è\8e·å¾\97带内容的数据,用于标题<kbd>API</kbd>和<kbd>Main Page</kbd>的最近修订。",
+       "apihelp-query+revisions-example-content": "è\8e·å\8f\96带内容的数据,用于标题<kbd>API</kbd>和<kbd>Main Page</kbd>的最近修订。",
        "apihelp-query+revisions-example-last5": "获取<kbd>Main Page</kbd>的最近5次修订。",
        "apihelp-query+revisions-example-first5": "获取<kbd>Main Page</kbd>的前5次修订。",
-       "apihelp-query+revisions-example-first5-after": "è\8e·å¾\97<kbd>Main Page</kbd>于2006年05月01日之后做出的前5次修订版本。",
+       "apihelp-query+revisions-example-first5-after": "è\8e·å\8f\96<kbd>Main Page</kbd>于2006年05月01日之后做出的前5次修订版本。",
        "apihelp-query+revisions-example-first5-not-localhost": "获取<kbd>Main Page</kbd>的前5次不是由匿名用户<kbd>127.0.0.1</kbd>做出的修订。",
        "apihelp-query+revisions-example-first5-user": "获取<kbd>Main Page</kbd>的前5次由用户<kbd>MediaWiki default</kbd>做出的修订。",
        "apihelp-query+revisions+base-param-limit": "限制返回多少修订。",
        "apihelp-query+search-example-simple": "搜索<kbd>meaning</kbd>。",
        "apihelp-query+search-example-text": "搜索文本<kbd>meaning</kbd>。",
        "apihelp-query+search-example-generator": "获得有关搜索<kbd>meaning</kbd>返回页面的页面信息。",
+       "apihelp-query+siteinfo-description": "返回有关网站的一般信息。",
+       "apihelp-query+siteinfo-param-prop": "要获取的信息:\n;general:全部系统信息。\n;namespaces:注册的名字空间及其规范名称列表。\n;namespacealiases:注册的名字空间别名列表。\n;specialpagealiases:特殊页面别名列表。\n;magicwords:魔术字及其别名列表。\n;statistics:返回网站统计。\n;interwikimap:返回跨wiki映射(可选过滤,可选择使用<var>$1inlanguagecode</var>本地化)。\n;dbrepllag:返回数据库服务器与最高反应延迟。\n;usergroups:返回用户组及其相关权限。\n;libraries:返回wiki上安装的库。\n;extensions:返回wiki上安装的扩展。\n;fileextensions:返回允许上传的文件扩展名列表。\n;rightsinfo:如果可用,返回wiki的版权信息。\n;restrictions:返回可用的编辑限制(保护)类型信息。\n;languages:返回MediaWiki支持的语言列表(可选择使用<var>$1inlanguagecode</var>本地化)。\n;skins:返回所有启用的皮肤列表(可选择使用<var>$1inlanguagecode</var>本地化,否则是内容语言)。\n;extensiontags:返回解析器扩展标签列表。\n;functionhooks:返回解析器函数钩列表。\n;showhooks:返回所有订阅的钩列表(<var>[[mw:Manual:$wgHooks|$wgHooks]]</var>的内容)。\n;variables:返回变量ID列表。\n;protocols:返回外部链接中允许的协议列表。\n;defaultoptions:返回用户设置的默认值。",
        "apihelp-query+siteinfo-param-showalldb": "列出所有数据库服务器,不只是最落后的那个。",
        "apihelp-query+siteinfo-param-numberingroup": "列出用户组中的用户数。",
        "apihelp-query+siteinfo-param-inlanguagecode": "用于本地化语言名称(尽可能)和皮肤名称的语言代码。",
        "apihelp-query+templates-example-simple": "获取在页面<kbd>Main Page</kbd>使用的模板。",
        "apihelp-query+templates-example-generator": "获取有关<kbd>Main Page</kbd>中使用的模板页面的信息。",
        "apihelp-query+templates-example-namespaces": "获取在{{ns:user}}和{{ns:template}}名字空间中,嵌入在<kbd>Main Page</kbd>页面的页面。",
+       "apihelp-query+tokens-description": "获取可修改数据的操作的令牌。",
        "apihelp-query+tokens-param-type": "要请求的令牌类型。",
+       "apihelp-query+tokens-example-simple": "检索一个csrf令牌(默认)。",
+       "apihelp-query+tokens-example-types": "检索一个监视令牌和一个巡查令牌。",
        "apihelp-query+transcludedin-param-namespace": "至包含这些名字空间的页面。",
        "apihelp-query+transcludedin-param-limit": "返回多少。",
-       "apihelp-query+transcludedin-example-simple": "è\8e·å¾\97嵌入<kbd>Main Page</kbd>的页面列表。",
-       "apihelp-query+transcludedin-example-generator": "è\8e·å¾\97有关嵌入<kbd>Main Page</kbd>的页面的信息。",
+       "apihelp-query+transcludedin-example-simple": "è\8e·å\8f\96嵌入<kbd>Main Page</kbd>的页面列表。",
+       "apihelp-query+transcludedin-example-generator": "è\8e·å\8f\96有关嵌入<kbd>Main Page</kbd>的页面的信息。",
        "apihelp-query+usercontribs-description": "获取一位用户的所有编辑。",
        "apihelp-query+usercontribs-param-limit": "返回贡献的最大数量。",
        "apihelp-query+usercontribs-param-start": "返回的起始时间戳。",
        "apihelp-rollback-example-summary": "回退由IP用户<kbd>192.0.2.5</kbd>对页面<kbd>Main Page</kbd>做出的最近编辑,带编辑摘要<kbd>Reverting vandalism</kbd>,并将这些编辑和回退标记为机器人编辑。",
        "apihelp-rsd-description": "导出一个RSD(Really Simple Discovery)架构",
        "apihelp-rsd-example-simple": "导出RSD架构",
+       "apihelp-setnotificationtimestamp-description": "更新用于监视页面的通知时间戳。\n\n这会影响监视列表和历史中已更改页面的高亮度,并且如果“当我的监视列表中的页面被更改时发送电子邮件通知我”的设置被启用的话,也会影响电子邮件的发送。",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "工作于所有已监视页面。",
+       "apihelp-setnotificationtimestamp-param-timestamp": "要设置通知时间戳的时间戳。",
+       "apihelp-setnotificationtimestamp-param-torevid": "要设置通知时间戳的修订(只限一个页面)。",
+       "apihelp-setnotificationtimestamp-param-newerthanrevid": "要设置通知时间戳的较新修订(只限一个页面)。",
        "apihelp-setnotificationtimestamp-example-all": "重置整个监视列表的通知状态。",
        "apihelp-setnotificationtimestamp-example-page": "重置用于<kbd>Main page</kbd>的通知状态。",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "设置<kbd>Main page</kbd>的通知时间戳,这样所有从2012年1月1日起的编辑都会是未复核的。",
        "apihelp-tag-param-reason": "更改原因。",
        "apihelp-tag-example-rev": "从修订ID 123添加<kbd>vandalism</kbd>标签,而不指定原因",
        "apihelp-tag-example-log": "从日志记录ID 123移除<kbd>spam</kbd>标签,原因为<kbd>Wrongly applied</kbd>",
+       "apihelp-tokens-description": "获取可修改数据的操作的令牌。\n\n此模块被弃用以有利于[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
        "apihelp-tokens-param-type": "要请求的令牌类型。",
+       "apihelp-tokens-example-edit": "检索一个编辑令牌(默认)。",
+       "apihelp-tokens-example-emailmove": "检索一个电子邮件令牌和一个移动令牌。",
        "apihelp-unblock-description": "解封一位用户。",
        "apihelp-unblock-param-id": "解封时需要的封禁ID(通过<kbd>list=blocks</kbd>获得)。不能与<var>$1user</var>一起使用。",
        "apihelp-unblock-param-user": "要解封的用户名、IP地址或IP段。不能与<var>$1id</var>一起使用。",
        "apihelp-undelete-param-reason": "恢复的原因。",
        "apihelp-undelete-param-fileids": "要恢复的文件修订ID。如果<var>$1timestamps</var>和<var>$1fileids</var>都为空,所有将被恢复。",
        "apihelp-undelete-example-page": "恢复页面<kbd>Main Page</kbd>。",
-       "apihelp-undelete-example-revisions": "恢复<kbd>首页</kbd>的两个修订。",
+       "apihelp-undelete-example-revisions": "恢复<kbd>Main Page</kbd>的两个修订。",
        "apihelp-upload-param-filename": "目标文件名。",
        "apihelp-upload-param-comment": "上传注释。如果没有指定<var>$1text</var>,那么它也被用于新文件的初始页面文本。",
        "apihelp-upload-param-watch": "监视页面。",
        "apihelp-upload-param-ignorewarnings": "忽略任何警告。",
        "apihelp-upload-param-file": "文件内容。",
        "apihelp-upload-param-stash": "如果设置,服务器将临时藏匿文件而不是加入存储库。",
+       "apihelp-upload-param-filesize": "全部上传的文件大小。",
        "apihelp-upload-param-offset": "块的偏移量(字节)。",
        "apihelp-upload-param-chunk": "大块内容。",
        "apihelp-upload-example-url": "从URL上传",
        "apihelp-userrights-example-userid": "将ID为<kbd>123</kbd>的用户加入至<kbd>机器人</kbd>组,并将其从<kbd>管理员</kbd>和<kbd>行政员</kbd>组移除。",
        "apihelp-watch-param-title": "要(取消)监视的页面。也可使用<var>$1titles</var>。",
        "apihelp-watch-example-watch": "监视页面<kbd>Main Page</kbd>。",
-       "apihelp-watch-example-unwatch": "取消监视页面<kbd>首页</kbd>。",
+       "apihelp-watch-example-unwatch": "取消监视页面<kbd>Main Page</kbd>。",
+       "apihelp-watch-example-generator": "监视主名字空间中的最少几个页面。",
        "apihelp-format-example-generic": "格式化查询结果为$1格式。",
        "apihelp-dbg-description": "输出数据为PHP的<code>var_export()</code>格式。",
        "apihelp-dbgfm-description": "输出数据为PHP的<code>var_export()</code>格式(HTML优质打印效果)。",
-       "apihelp-dump-description": "输出数据为PHP的<code>var_dump()</code>格式。",
-       "apihelp-dumpfm-description": "输出数据为PHP的<code>var_dump()</code>格式(HTML优质打印效果)。",
        "apihelp-json-description": "输出数据为JSON格式。",
+       "apihelp-json-param-callback": "如果指定,将输出内容包裹在一个指定的函数调用中。出于安全考虑,所有用户相关的数据将被限制。",
        "apihelp-json-param-utf8": "如果指定,使用十六进制转义序列将大多数(但不是全部)非ASCII的字符编码为UTF-8,而不是替换它们。默认当<var>formatversion</var>不是<kbd>1</kbd>时。",
        "apihelp-json-param-ascii": "如果指定,使用十六进制转义序列将所有非ASCII编码。默认当<var>formatversion</var>为<kbd>1</kbd>时。",
        "apihelp-json-param-formatversion": "输出格式:\n;1:向后兼容格式(XML样式布尔值、用于内容节点的<samp>*</samp>键等)。\n;2:实验现代格式。细节可以更改!\n;latest:使用最新格式(当前为<kbd>2</kbd>),可以在没有警告的情况下更改。",
        "apihelp-rawfm-description": "输出数据为JSON格式,带调试元素(HTML优质打印效果)。",
        "apihelp-txt-description": "输出数据为PHP的<code>print_r()</code>格式。",
        "apihelp-txtfm-description": "输出数据为PHP的<code>print_r()</code>格式(HTML优质打印效果)。",
-       "apihelp-wddx-description": "输出数据为WDDX格式。",
-       "apihelp-wddxfm-description": "输出数据为WDDX格式(HTML优质打印效果)。",
        "apihelp-xml-description": "输出数据为XML格式。",
        "apihelp-xml-param-xslt": "如果指定,加入已命名的页面作为一个XSL样式表。值必须是在{{ns:mediawiki}}名字空间以<code>.xsl</code>为结尾的标题。",
        "apihelp-xmlfm-description": "输出数据为XML格式(HTML优质打印效果)。",
        "api-format-prettyprint-header": "这是$1格式的HTML表示。HTML对调试很有用,但不适合应用程序使用。\n\n指定<var>format</var>参数以更改输出格式。要查看$1格式的非HTML表示,设置<kbd>format=$2</kbd>。\n\n参见[[mw:API|完整文档]],或[[Special:ApiHelp/main|API 帮助]]以获取更多信息。",
        "api-orm-param-props": "要查询的字段。",
        "api-orm-param-limit": "返回的总行数。",
+       "api-pageset-param-titles": "要工作的标题列表。",
+       "api-pageset-param-pageids": "要工作的页面ID列表。",
+       "api-pageset-param-revids": "要工作的修订ID列表。",
        "api-pageset-param-generator": "通过执行指定查询模块获得页面列表以工作。\n\n<strong>注意:</strong>发生器参数名称必须以“g”开头,参见例子。",
        "api-pageset-param-redirects-nogenerator": "自动解决<var>$1titles</var>、<var>$1pageids</var>和<var>$1revids</var>中的重定向。",
        "api-help-title": "MediaWiki API 帮助",
        "api-help-param-default": "默认:$1",
        "api-help-param-default-empty": "默认:<span class=\"apihelp-empty\">(空)</span>",
        "api-help-param-token": "从[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]取回的“$1”令牌",
+       "api-help-param-token-webui": "出于兼容性考虑,web UI中使用的令牌也被接受。",
        "api-help-param-disabled-in-miser-mode": "由于[[mw:Manual:$wgMiserMode|miser模式]]而禁用。",
        "api-help-param-limited-in-miser-mode": "<strong>注意:</strong>由于[[mw:Manual:$wgMiserMode|miser模式]],使用这个可能导致继续前返回少于<var>$1limit</var>个结果;极端情况下可能不会返回任何结果。",
        "api-help-param-direction": "列举的方向:\n;newer:最早的优先。注意:$1start应早于$1end。\n;older:最新的优先(默认)。注意:$1start应晚于$1end。",
        "api-help-examples": "{{PLURAL:$1|例子}}:",
        "api-help-permissions": "{{PLURAL:$1|权限}}:",
        "api-help-permissions-granted-to": "{{PLURAL:$1|授予}}:$2",
+       "api-help-right-apihighlimits": "在API查询中使用更高的上限(慢查询:$1;快查询:$2)。慢查询的限制也适用于多值参数。",
        "api-credits-header": "制作人员",
        "api-credits": "API 开发人员:\n* Roan Kattouw(2007年9月~2009年的开发组领导)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan(创建者,2006年9月~2007年9月的开发组领导)\n* Brad Jorsch(2013年至今的开发组领导)\n\n请将您的评论、建议和问题发送至mediawiki-api@lists.wikimedia.org,或提交错误请求在https://phabricator.wikimedia.org/。"
 }
index c07032b..483eaa5 100644 (file)
@@ -48,6 +48,7 @@ class HTMLFileCache extends FileCacheBase {
         * @throws MWException
         */
        public function __construct( $title, $action ) {
+               parent::__construct();
                $allowedTypes = self::cacheablePageActions();
                if ( !in_array( $action, $allowedTypes ) ) {
                        throw new MWException( 'Invalid file cache type given.' );
index 79f4d6c..585fcd3 100644 (file)
@@ -1113,7 +1113,8 @@ class MessageCache {
 
                if ( !$title || !$title instanceof Title ) {
                        global $wgTitle;
-                       wfDebugLog( 'GlobalTitleFail', __METHOD__ . ' called by ' . wfGetAllCallers( 5 ) . ' with no title set.' );
+                       wfDebugLog( 'GlobalTitleFail', __METHOD__ . ' called by ' .
+                               wfGetAllCallers( 5 ) . ' with no title set.' );
                        $title = $wgTitle;
                }
                // Sometimes $wgTitle isn't set either...
index 932006d..8989b2a 100644 (file)
@@ -204,7 +204,8 @@ class ChangesList extends ContextSource {
                $code = $lang->getCode();
                static $fastCharDiff = array();
                if ( !isset( $fastCharDiff[$code] ) ) {
-                       $fastCharDiff[$code] = $config->get( 'MiserMode' ) || $context->msg( 'rc-change-size' )->plain() === '$1';
+                       $fastCharDiff[$code] = $config->get( 'MiserMode' )
+                               || $context->msg( 'rc-change-size' )->plain() === '$1';
                }
 
                $formattedSize = $lang->formatNum( $szdiff );
@@ -542,6 +543,17 @@ class ChangesList extends ContextSource {
                }
        }
 
+       /**
+        * @param RecentChange $rc
+        * @return string
+        * @since 1.26
+        */
+       public function getRollback( RecentChange $rc ) {
+               $s = '';
+               $this->insertRollback( $s, $rc );
+               return $s;
+       }
+
        /**
         * @param string $s
         * @param RecentChange $rc
@@ -560,6 +572,18 @@ class ChangesList extends ContextSource {
                $s .= ' ' . $tagSummary;
        }
 
+       /**
+        * @param RecentChange $rc
+        * @param array $classes
+        * @return string
+        * @since 1.26
+        */
+       public function getTags( RecentChange $rc, array &$classes ) {
+               $s = '';
+               $this->insertTags( $s, $rc, $classes );
+               return $s;
+       }
+
        public function insertExtra( &$s, &$rc, &$classes ) {
                // Empty, used for subclasses to add anything special.
        }
index 54cde0d..545ea26 100644 (file)
@@ -304,18 +304,18 @@ class EnhancedChangesList extends ChangesList {
                        # Classes to apply -- TODO implement
                        $classes = array();
                        $type = $rcObj->mAttribs['rc_type'];
+                       $data = array();
 
                        $trClass = $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched
                                ? ' class="mw-enhanced-watched"' : '';
+                       $separator = ' <span class="mw-changeslist-separator">. .</span> ';
 
-                       $r .= '<tr' . $trClass . '><td></td><td class="mw-enhanced-rc">';
-                       $r .= $this->recentChangesFlags( array(
+                       $data['recentChangesFlags'] = array(
                                'newpage' => $type == RC_NEW,
                                'minor' => $rcObj->mAttribs['rc_minor'],
                                'unpatrolled' => $rcObj->unpatrolled,
                                'bot' => $rcObj->mAttribs['rc_bot'],
-                       ) );
-                       $r .= '&#160;</td><td class="mw-enhanced-rc-nested"><span class="mw-enhanced-rc-time">';
+                       );
 
                        $params = $queryParams;
 
@@ -340,40 +340,65 @@ class EnhancedChangesList extends ChangesList {
                                        $link = '<span class="history-deleted">' . $link . '</span> ';
                                }
                        }
-                       $r .= $link . '</span>';
+                       $data['timestampLink'] = $link;
 
+                       $currentAndLastLinks = '';
                        if ( !$type == RC_LOG || $type == RC_NEW ) {
-                               $r .= ' ' . $this->msg( 'parentheses' )->rawParams(
+                               $currentAndLastLinks .= ' ' . $this->msg( 'parentheses' )->rawParams(
                                        $rcObj->curlink .
                                                $this->message['pipe-separator'] .
                                                $rcObj->lastlink
                                )->escaped();
                        }
-                       $r .= ' <span class="mw-changeslist-separator">. .</span> ';
+                       $data['currentAndLastLinks'] = $currentAndLastLinks;
+                       $data['separatorAfterCurrentAndLastLinks'] = $separator;
 
                        # Character diff
                        if ( $RCShowChangedSize ) {
                                $cd = $this->formatCharacterDifference( $rcObj );
                                if ( $cd !== '' ) {
-                                       $r .= $cd . ' <span class="mw-changeslist-separator">. .</span> ';
+                                       $data['characterDiff'] = $cd;
+                                       $data['separatorAfterCharacterDiff'] = $separator;
                                }
                        }
 
                        if ( $rcObj->mAttribs['rc_type'] == RC_LOG ) {
-                               $r .= $this->insertLogEntry( $rcObj );
+                               $data['logEntry'] = $this->insertLogEntry( $rcObj );
                        } else {
                                # User links
-                               $r .= $rcObj->userlink;
-                               $r .= $rcObj->usertalklink;
-                               $r .= $this->insertComment( $rcObj );
+                               $data['userLink'] = $rcObj->userlink;
+                               $data['userTalkLink'] = $rcObj->usertalklink;
+                               $data['comment'] = $this->insertComment( $rcObj );
                        }
 
                        # Rollback
-                       $this->insertRollback( $r, $rcObj );
+                       $data['rollback'] = $this->getRollback( $rcObj );
+
                        # Tags
-                       $this->insertTags( $r, $rcObj, $classes );
+                       $data['tags'] = $this->getTags( $rcObj, $classes );
+
+                       // give the hook a chance to modify the data
+                       Hooks::run( 'EnhancedChangesListModifyLineData',
+                               array( $this, &$data, $block, $rcObj ) );
+
+                       $line = '<tr' . $trClass . '><td></td><td class="mw-enhanced-rc">';
+                       if ( isset( $data['recentChangesFlags'] ) ) {
+                               $line .= $this->recentChangesFlags( $data['recentChangesFlags'] );
+                               unset( $data['recentChangesFlags'] );
+                       }
+                       $line .= '&#160;</td><td class="mw-enhanced-rc-nested">';
+
+                       if ( isset( $data['timestampLink'] ) ) {
+                               $line .= '<span class="mw-enhanced-rc-time">' . $data['timestampLink'] . '</span>';
+                               unset( $data['timestampLink'] );
+                       }
+
+                       // everything else: makes it easier for extensions to add or remove data
+                       $line .= implode( '', $data );
+
+                       $line .= "</td></tr>\n";
 
-                       $r .= "</td></tr>\n";
+                       $r .= $line;
                }
                $r .= "</table>\n";
 
diff --git a/includes/compat/CdbCompat.php b/includes/compat/CdbCompat.php
new file mode 100644 (file)
index 0000000..0074cc9
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/***
+ * This file contains a set of backwards-compatability class names
+ * after the cdb functions were moved out into a separate library
+ * and put under a proper namespace
+ *
+ * @since 1.25
+ */
+
+/**
+ * @deprecated since 1.25
+ */
+abstract class CdbReader extends \Cdb\Reader {
+}
+
+/**
+ * @deprecated since 1.25
+ */
+abstract class CdbWriter extends \Cdb\Writer {
+}
+
+/**
+ * @deprecated since 1.25
+ */
+class CdbException extends \Cdb\Exception {
+}
diff --git a/includes/compat/normal/.gitignore b/includes/compat/normal/.gitignore
new file mode 100644 (file)
index 0000000..5af0afa
--- /dev/null
@@ -0,0 +1,6 @@
+/CompositionExclusions.txt
+/DerivedNormalizationProps.txt
+/NormalizationCorrections.txt
+/NormalizationTest.txt
+/UnicodeData.txt
+/testdata
diff --git a/includes/compat/normal/UtfNormal.php b/includes/compat/normal/UtfNormal.php
new file mode 100644 (file)
index 0000000..c9c05a0
--- /dev/null
@@ -0,0 +1,129 @@
+<?php
+/**
+ * Unicode normalization routines
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup UtfNormal
+ */
+
+/**
+ * @defgroup UtfNormal UtfNormal
+ */
+
+use UtfNormal\Validator;
+
+/**
+ * Unicode normalization routines for working with UTF-8 strings.
+ * Currently assumes that input strings are valid UTF-8!
+ *
+ * Not as fast as I'd like, but should be usable for most purposes.
+ * UtfNormal::toNFC() will bail early if given ASCII text or text
+ * it can quickly determine is already normalized.
+ *
+ * All functions can be called static.
+ *
+ * See description of forms at http://www.unicode.org/reports/tr15/
+ *
+ * @deprecated since 1.25, use UtfNormal\Validator directly
+ * @ingroup UtfNormal
+ */
+class UtfNormal {
+       /**
+        * The ultimate convenience function! Clean up invalid UTF-8 sequences,
+        * and convert to normal form C, canonical composition.
+        *
+        * Fast return for pure ASCII strings; some lesser optimizations for
+        * strings containing only known-good characters. Not as fast as toNFC().
+        *
+        * @param string $string a UTF-8 string
+        * @return string a clean, shiny, normalized UTF-8 string
+        */
+       static function cleanUp( $string ) {
+               return Validator::cleanUp( $string );
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form C, canonical composition.
+        * Fast return for pure ASCII strings; some lesser optimizations for
+        * strings containing only known-good characters.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form C
+        */
+       static function toNFC( $string ) {
+               return Validator::toNFC( $string );
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form D, canonical decomposition.
+        * Fast return for pure ASCII strings.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form D
+        */
+       static function toNFD( $string ) {
+               return Validator::toNFD( $string );
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form KC, compatibility composition.
+        * This may cause irreversible information loss, use judiciously.
+        * Fast return for pure ASCII strings.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form KC
+        */
+       static function toNFKC( $string ) {
+               return Validator::toNFKC( $string );
+       }
+
+       /**
+        * Convert a UTF-8 string to normal form KD, compatibility decomposition.
+        * This may cause irreversible information loss, use judiciously.
+        * Fast return for pure ASCII strings.
+        *
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return string a UTF-8 string in normal form KD
+        */
+       static function toNFKD( $string ) {
+               return Validator::toNFKD( $string );
+       }
+
+       /**
+        * Returns true if the string is _definitely_ in NFC.
+        * Returns false if not or uncertain.
+        * @param string $string a valid UTF-8 string. Input is not validated.
+        * @return bool
+        */
+       static function quickIsNFC( $string ) {
+               return Validator::quickIsNFC( $string );
+       }
+
+       /**
+        * Returns true if the string is _definitely_ in NFC.
+        * Returns false if not or uncertain.
+        * @param string $string a UTF-8 string, altered on output to be valid UTF-8 safe for XML.
+        * @return bool
+        */
+       static function quickIsNFCVerify( &$string ) {
+               return Validator::quickIsNFCVerify( $string );
+       }
+}
diff --git a/includes/compat/normal/UtfNormalDefines.php b/includes/compat/normal/UtfNormalDefines.php
new file mode 100644 (file)
index 0000000..b8e44c7
--- /dev/null
@@ -0,0 +1,186 @@
+<?php
+/**
+ * Backwards-compatability constants which are now provided by the
+ * UtfNormal library. They are hardcoded here since they are needed
+ * before the composer autoloader is initialized.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup UtfNormal
+ */
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_FIRST', 0xac00 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_LAST', 0xd7a3 );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_LBASE', 0x1100 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_VBASE', 0x1161 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_TBASE', 0x11a7 );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_LCOUNT', 19 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_VCOUNT', 21 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_TCOUNT', 28 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_NCOUNT', UNICODE_HANGUL_VCOUNT * UNICODE_HANGUL_TCOUNT );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_LEND', UNICODE_HANGUL_LBASE + UNICODE_HANGUL_LCOUNT - 1 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_VEND', UNICODE_HANGUL_VBASE + UNICODE_HANGUL_VCOUNT - 1 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_HANGUL_TEND', UNICODE_HANGUL_TBASE + UNICODE_HANGUL_TCOUNT - 1 );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_SURROGATE_FIRST', 0xd800 );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_SURROGATE_LAST', 0xdfff );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_MAX', 0x10ffff );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UNICODE_REPLACEMENT', 0xfffd );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_FIRST', "\xea\xb0\x80" /*codepointToUtf8( UNICODE_HANGUL_FIRST )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_LAST', "\xed\x9e\xa3" /*codepointToUtf8( UNICODE_HANGUL_LAST )*/ );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_LBASE', "\xe1\x84\x80" /*codepointToUtf8( UNICODE_HANGUL_LBASE )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_VBASE', "\xe1\x85\xa1" /*codepointToUtf8( UNICODE_HANGUL_VBASE )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_TBASE', "\xe1\x86\xa7" /*codepointToUtf8( UNICODE_HANGUL_TBASE )*/ );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_LEND', "\xe1\x84\x92" /*codepointToUtf8( UNICODE_HANGUL_LEND )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_VEND', "\xe1\x85\xb5" /*codepointToUtf8( UNICODE_HANGUL_VEND )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HANGUL_TEND', "\xe1\x87\x82" /*codepointToUtf8( UNICODE_HANGUL_TEND )*/ );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_SURROGATE_FIRST', "\xed\xa0\x80" /*codepointToUtf8( UNICODE_SURROGATE_FIRST )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_SURROGATE_LAST', "\xed\xbf\xbf" /*codepointToUtf8( UNICODE_SURROGATE_LAST )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_MAX', "\xf4\x8f\xbf\xbf" /*codepointToUtf8( UNICODE_MAX )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_REPLACEMENT', "\xef\xbf\xbd" /*codepointToUtf8( UNICODE_REPLACEMENT )*/ );
+#define( 'UTF8_REPLACEMENT', '!' );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_OVERLONG_A', "\xc1\xbf" );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_OVERLONG_B', "\xe0\x9f\xbf" );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_OVERLONG_C', "\xf0\x8f\xbf\xbf" );
+
+# These two ranges are illegal
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_FDD0', "\xef\xb7\x90" /*codepointToUtf8( 0xfdd0 )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_FDEF', "\xef\xb7\xaf" /*codepointToUtf8( 0xfdef )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_FFFE', "\xef\xbf\xbe" /*codepointToUtf8( 0xfffe )*/ );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_FFFF', "\xef\xbf\xbf" /*codepointToUtf8( 0xffff )*/ );
+
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_HEAD', false );
+/**
+ * @deprecated since 1.25, use UtfNormal\Constants instead
+ */
+define( 'UTF8_TAIL', true );
diff --git a/includes/compat/normal/UtfNormalUtil.php b/includes/compat/normal/UtfNormalUtil.php
new file mode 100644 (file)
index 0000000..9ed9bc2
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Some of these functions are adapted from places in MediaWiki.
+ * Should probably merge them for consistency.
+ *
+ * Copyright © 2004 Brion Vibber <brion@pobox.com>
+ * https://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup UtfNormal
+ */
+
+
+use UtfNormal\Utils;
+
+/**
+ * Return UTF-8 sequence for a given Unicode code point.
+ *
+ * @param $codepoint Integer:
+ * @return String
+ * @throws InvalidArgumentException if fed out of range data.
+ * @public
+ * @deprecated since 1.25, use UtfNormal\Utils directly
+ */
+function codepointToUtf8( $codepoint ) {
+       return Utils::codepointToUtf8( $codepoint );
+}
+
+/**
+ * Take a series of space-separated hexadecimal numbers representing
+ * Unicode code points and return a UTF-8 string composed of those
+ * characters. Used by UTF-8 data generation and testing routines.
+ *
+ * @param $sequence String
+ * @return String
+ * @throws InvalidArgumentException if fed out of range data.
+ * @private
+ * @deprecated since 1.25, use UtfNormal\Utils directly
+ */
+function hexSequenceToUtf8( $sequence ) {
+       return Utils::hexSequenceToUtf8( $sequence );
+}
+
+/**
+ * Take a UTF-8 string and return a space-separated series of hex
+ * numbers representing Unicode code points. For debugging.
+ *
+ * @fixme this is private but extensions + maint scripts are using it
+ * @param string $str UTF-8 string.
+ * @return string
+ * @private
+ */
+function utf8ToHexSequence( $str ) {
+       $buf = '';
+       foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) {
+               $buf .= sprintf( '%04x ', UtfNormal\Utils::utf8ToCodepoint( $cp ) );
+       }
+
+       return rtrim( $buf );
+}
+
+/**
+ * Determine the Unicode codepoint of a single-character UTF-8 sequence.
+ * Does not check for invalid input data.
+ *
+ * @param $char String
+ * @return Integer
+ * @public
+ * @deprecated since 1.25, use UtfNormal\Utils directly
+ */
+function utf8ToCodepoint( $char ) {
+       return Utils::utf8ToCodepoint( $char );
+}
+
+/**
+ * Escape a string for inclusion in a PHP single-quoted string literal.
+ *
+ * @param string $string string to be escaped.
+ * @return String: escaped string.
+ * @public
+ * @deprecated since 1.25, use UtfNormal\Utils directly
+ */
+function escapeSingleString( $string ) {
+       return Utils::escapeSingleString( $string );
+}
index 468c7e9..bf91a4f 100644 (file)
@@ -355,16 +355,20 @@ abstract class ContentHandler {
         *
         * @param string $name The content model ID, as given by a CONTENT_MODEL_XXX
         *    constant or returned by Revision::getContentModel().
+        * @param Language|null $lang The language to parse the message in (since 1.26)
         *
         * @throws MWException If the model ID isn't known.
         * @return string The content model's localized name.
         */
-       public static function getLocalizedName( $name ) {
+       public static function getLocalizedName( $name, Language $lang = null ) {
                // Messages: content-model-wikitext, content-model-text,
                // content-model-javascript, content-model-css
                $key = "content-model-$name";
 
                $msg = wfMessage( $key );
+               if ( $lang ) {
+                       $msg->inLanguage( $lang );
+               }
 
                return $msg->exists() ? $msg->plain() : $name;
        }
index 00323ca..aaa1fa7 100644 (file)
@@ -67,6 +67,11 @@ class DerivativeContext extends ContextSource {
         */
        private $config;
 
+       /**
+        * @var Stats
+        */
+       private $stats;
+
        /**
         * Constructor
         * @param IContextSource $context Context to inherit from
index d1bc597..e676ec9 100644 (file)
@@ -131,7 +131,7 @@ class RequestContext implements IContextSource {
        public function getStats() {
                if ( $this->stats === null ) {
                        $config = $this->getConfig();
-                       $prefix = $config->has( 'StatsdMetricPrefix' )
+                       $prefix = $config->get( 'StatsdMetricPrefix' )
                                ? rtrim( $config->get( 'StatsdMetricPrefix' ), '.' )
                                : 'MediaWiki';
                        $this->stats = new BufferingStatsdDataFactory( $prefix );
index 94cf1f2..e74fe80 100644 (file)
@@ -1019,6 +1019,17 @@ abstract class DatabaseBase implements IDatabase {
                return $closed;
        }
 
+       /**
+        * Make sure isOpen() returns true as a sanity check
+        *
+        * @throws DBUnexpectedError
+        */
+       protected function assertOpen() {
+               if ( !$this->isOpen() ) {
+                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
+               }
+       }
+
        /**
         * Closes underlying database connection
         * @since 1.20
@@ -1175,9 +1186,7 @@ abstract class DatabaseBase implements IDatabase {
                $queryId = MWDebug::query( $sql, $fname, $isMaster );
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                # Do the query and handle errors
                $startTime = microtime( true );
@@ -3648,9 +3657,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                $this->doBegin( $fname );
                $this->mTrxTimestamp = microtime( true );
@@ -3715,9 +3722,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                $this->runOnTransactionPreCommitCallbacks();
                $writeTime = $this->pendingWriteQueryDuration();
@@ -3774,9 +3779,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                # Avoid fatals if close() was called
-               if ( !$this->isOpen() ) {
-                       throw new DBUnexpectedError( $this, "DB connection was already closed." );
-               }
+               $this->assertOpen();
 
                $this->doRollback( $fname );
                $this->mTrxIdleCallbacks = array(); // cancel
@@ -3829,6 +3832,7 @@ abstract class DatabaseBase implements IDatabase {
         * @param string $prefix Only show tables with this prefix, e.g. mw_
         * @param string $fname Calling function name
         * @throws MWException
+        * @return array
         */
        function listTables( $prefix = null, $fname = __METHOD__ ) {
                throw new MWException( 'DatabaseBase::listTables is not implemented in descendant class' );
@@ -3851,6 +3855,7 @@ abstract class DatabaseBase implements IDatabase {
         * @param string $prefix Only show VIEWs with this prefix, eg. unit_test_
         * @param string $fname Name of calling function
         * @throws MWException
+        * @return array
         * @since 1.22
         */
        public function listViews( $prefix = null, $fname = __METHOD__ ) {
@@ -3862,6 +3867,7 @@ abstract class DatabaseBase implements IDatabase {
         *
         * @param string $name Name of the database-structure to test.
         * @throws MWException
+        * @return bool
         * @since 1.22
         */
        public function isView( $name ) {
index 823d9b6..5b15147 100644 (file)
@@ -33,10 +33,12 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return resource False on error
         */
        protected function doQuery( $sql ) {
+               $conn = $this->getBindingHandle();
+
                if ( $this->bufferResults() ) {
-                       $ret = mysql_query( $sql, $this->mConn );
+                       $ret = mysql_query( $sql, $conn );
                } else {
-                       $ret = mysql_unbuffered_query( $sql, $this->mConn );
+                       $ret = mysql_unbuffered_query( $sql, $conn );
                }
 
                return $ret;
@@ -48,8 +50,7 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @throws DBConnectionError
         */
        protected function mysqlConnect( $realServer ) {
-               # Fail now
-               # Otherwise we get a suppressed fatal error, which is very hard to track down
+               # Avoid a suppressed fatal error, which is very hard to track down
                if ( !extension_loaded( 'mysql' ) ) {
                        throw new DBConnectionError(
                                $this,
@@ -73,6 +74,9 @@ class DatabaseMysql extends DatabaseMysqlBase {
 
                $conn = false;
 
+               # The kernel's default SYN retransmission period is far too slow for us,
+               # so we use a short timeout plus a manual retry. Retrying means that a small
+               # but finite rate of SYN packet loss won't cause user-visible errors.
                for ( $i = 0; $i < $numAttempts && !$conn; $i++ ) {
                        if ( $i > 1 ) {
                                usleep( 1000 );
@@ -93,8 +97,10 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return bool
         */
        protected function mysqlSetCharset( $charset ) {
+               $conn = $this->getBindingHandle();
+
                if ( function_exists( 'mysql_set_charset' ) ) {
-                       return mysql_set_charset( $charset, $this->mConn );
+                       return mysql_set_charset( $charset, $conn );
                } else {
                        return $this->query( 'SET NAMES ' . $charset, __METHOD__ );
                }
@@ -104,14 +110,18 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return bool
         */
        protected function closeConnection() {
-               return mysql_close( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_close( $conn );
        }
 
        /**
         * @return int
         */
        function insertId() {
-               return mysql_insert_id( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_insert_id( $conn );
        }
 
        /**
@@ -129,7 +139,9 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return int
         */
        function affectedRows() {
-               return mysql_affected_rows( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_affected_rows( $conn );
        }
 
        /**
@@ -137,9 +149,11 @@ class DatabaseMysql extends DatabaseMysqlBase {
         * @return bool
         */
        function selectDB( $db ) {
+               $conn = $this->getBindingHandle();
+
                $this->mDBname = $db;
 
-               return mysql_select_db( $db, $this->mConn );
+               return mysql_select_db( $db, $conn );
        }
 
        protected function mysqlFreeResult( $res ) {
@@ -183,10 +197,14 @@ class DatabaseMysql extends DatabaseMysqlBase {
        }
 
        protected function mysqlRealEscapeString( $s ) {
-               return mysql_real_escape_string( $s, $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_real_escape_string( $s, $conn );
        }
 
        protected function mysqlPing() {
-               return mysql_ping( $this->mConn );
+               $conn = $this->getBindingHandle();
+
+               return mysql_ping( $conn );
        }
 }
index a189648..e326909 100644 (file)
@@ -59,22 +59,16 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        function open( $server, $user, $password, $dbName ) {
                global $wgAllDBsAreLocalhost, $wgSQLMode;
 
-               # Debugging hack -- fake cluster
-               if ( $wgAllDBsAreLocalhost ) {
-                       $realServer = 'localhost';
-               } else {
-                       $realServer = $server;
-               }
+               # Close/unset connection handle
                $this->close();
+
+               # Debugging hack -- fake cluster
+               $realServer = $wgAllDBsAreLocalhost ? 'localhost' : $server;
                $this->mServer = $server;
                $this->mUser = $user;
                $this->mPassword = $password;
                $this->mDBname = $dbName;
 
-               # The kernel's default SYN retransmission period is far too slow for us,
-               # so we use a short timeout plus a manual retry. Retrying means that a small
-               # but finite rate of SYN packet loss won't cause user-visible errors.
-               $this->mConn = false;
                $this->installErrorHandler();
                try {
                        $this->mConn = $this->mysqlConnect( $realServer );
@@ -586,9 +580,12 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
        function ping() {
                $ping = $this->mysqlPing();
                if ( $ping ) {
+                       // Connection was good or lost but reconnected...
+                       // @note: mysqlnd (php 5.6+) does not support this (PHP bug 52561)
                        return true;
                }
 
+               // Try a full disconnect/reconnect cycle if ping() failed
                $this->closeConnection();
                $this->mOpened = false;
                $this->mConn = false;
@@ -1058,6 +1055,28 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                        ( $this->lastErrno() == 1290 && strpos( $this->lastError(), '--read-only' ) !== false );
        }
 
+       /**
+        * Get the underlying binding handle, mConn
+        *
+        * Makes sure that mConn is set (disconnects and ping() failure can unset it).
+        * This catches broken callers than catch and ignore disconnection exceptions.
+        * Unlike checking isOpen(), this is safe to call inside of open().
+        *
+        * @return resource|object
+        * @throws DBUnexpectedError
+        * @since 1.26
+        */
+       protected function getBindingHandle() {
+               if ( !$this->mConn ) {
+                       throw new DBUnexpectedError(
+                               $this,
+                               'DB connection was already closed or the connection dropped.'
+                       );
+               }
+
+               return $this->mConn;
+       }
+
        /**
         * @param string $oldName
         * @param string $newName
index d2b5ecb..8ca2362 100644 (file)
  * @see Database
  */
 class DatabaseMysqli extends DatabaseMysqlBase {
+       /** @var mysqli */
+       protected $mConn;
+
        /**
         * @param string $sql
         * @return resource
         */
        protected function doQuery( $sql ) {
+               $conn = $this->getBindingHandle();
+
                if ( $this->bufferResults() ) {
-                       $ret = $this->mConn->query( $sql );
+                       $ret = $conn->query( $sql );
                } else {
-                       $ret = $this->mConn->query( $sql, MYSQLI_USE_RESULT );
+                       $ret = $conn->query( $sql, MYSQLI_USE_RESULT );
                }
 
                return $ret;
@@ -50,8 +55,8 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         */
        protected function mysqlConnect( $realServer ) {
                global $wgDBmysql5;
-               # Fail now
-               # Otherwise we get a suppressed fatal error, which is very hard to track down
+
+               # Avoid suppressed fatal error, which is very hard to track down
                if ( !function_exists( 'mysqli_init' ) ) {
                        throw new DBConnectionError( $this, "MySQLi functions missing,"
                                . " have you compiled PHP with the --with-mysqli option?\n" );
@@ -116,8 +121,10 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return bool
         */
        protected function mysqlSetCharset( $charset ) {
-               if ( method_exists( $this->mConn, 'set_charset' ) ) {
-                       return $this->mConn->set_charset( $charset );
+               $conn = $this->getBindingHandle();
+
+               if ( method_exists( $conn, 'set_charset' ) ) {
+                       return $conn->set_charset( $charset );
                } else {
                        return $this->query( 'SET NAMES ' . $charset, __METHOD__ );
                }
@@ -127,14 +134,18 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return bool
         */
        protected function closeConnection() {
-               return $this->mConn->close();
+               $conn = $this->getBindingHandle();
+
+               return $conn->close();
        }
 
        /**
         * @return int
         */
        function insertId() {
-               return (int)$this->mConn->insert_id;
+               $conn = $this->getBindingHandle();
+
+               return (int)$conn->insert_id;
        }
 
        /**
@@ -152,7 +163,9 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return int
         */
        function affectedRows() {
-               return $this->mConn->affected_rows;
+               $conn = $this->getBindingHandle();
+
+               return $conn->affected_rows;
        }
 
        /**
@@ -160,9 +173,11 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return bool
         */
        function selectDB( $db ) {
+               $conn = $this->getBindingHandle();
+
                $this->mDBname = $db;
 
-               return $this->mConn->select_db( $db );
+               return $conn->select_db( $db );
        }
 
        /**
@@ -289,11 +304,15 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         * @return string
         */
        protected function mysqlRealEscapeString( $s ) {
-               return $this->mConn->real_escape_string( $s );
+               $conn = $this->getBindingHandle();
+
+               return $conn->real_escape_string( $s );
        }
 
        protected function mysqlPing() {
-               return $this->mConn->ping();
+               $conn = $this->getBindingHandle();
+
+               return $conn->ping();
        }
 
        /**
index 069185b..52dca08 100644 (file)
@@ -60,8 +60,6 @@ class LoadBalancer {
        private $mLastError = 'Unknown error';
        /** @var integer Total connections opened */
        private $connsOpened = 0;
-       /** @var ProcessCacheLRU */
-       private $mProcCache;
 
        /** @var integer Warn when this many connection are held */
        const CONN_HELD_WARN_THRESHOLD = 10;
@@ -113,8 +111,6 @@ class LoadBalancer {
                                }
                        }
                }
-
-               $this->mProcCache = new ProcessCacheLRU( 30 );
        }
 
        /**
@@ -650,10 +646,7 @@ class LoadBalancer {
        public function openConnection( $i, $wiki = false ) {
                if ( $wiki !== false ) {
                        $conn = $this->openForeignConnection( $i, $wiki );
-
-                       return $conn;
-               }
-               if ( isset( $this->mConns['local'][$i][0] ) ) {
+               } elseif ( isset( $this->mConns['local'][$i][0] ) ) {
                        $conn = $this->mConns['local'][$i][0];
                } else {
                        $server = $this->mServers[$i];
@@ -670,6 +663,15 @@ class LoadBalancer {
                        }
                }
 
+               if ( $conn && !$conn->isOpen() ) {
+                       // Connection was made but later unrecoverably lost for some reason.
+                       // Do not return a handle that will just throw exceptions on use,
+                       // but let the calling code (e.g. getReaderIndex) try another server.
+                       // See DatabaseMyslBase::ping() for how this can happen.
+                       $this->mErrorConnection = $conn;
+                       $conn = false;
+               }
+
                return $conn;
        }
 
@@ -1234,16 +1236,8 @@ class LoadBalancer {
                        return array( 0 => 0 ); // no replication = no lag
                }
 
-               if ( $this->mProcCache->has( 'slave_lag', 'times', 1 ) ) {
-                       return $this->mProcCache->get( 'slave_lag', 'times' );
-               }
-
                # Send the request to the load monitor
-               $times = $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki );
-
-               $this->mProcCache->set( 'slave_lag', 'times', $times );
-
-               return $times;
+               return $this->getLoadMonitor()->getLagTimes( array_keys( $this->mServers ), $wiki );
        }
 
        /**
@@ -1270,8 +1264,10 @@ class LoadBalancer {
 
        /**
         * Clear the cache for slag lag delay times
+        *
+        * This is only used for testing
         */
        public function clearLagTimeCache() {
-               $this->mProcCache->clear( 'slave_lag' );
+               $this->getLoadMonitor()->clearCaches();
        }
 }
index 8c4d0ed..7dc2da0 100644 (file)
@@ -75,13 +75,17 @@ class LoadMonitorMySQL implements LoadMonitor {
        /** @var LoadBalancer */
        public $parent;
        /** @var BagOStuff */
-       protected $cache;
+       protected $srvCache;
+       /** @var BagOStuff */
+       protected $mainCache;
 
        public function __construct( $parent ) {
                global $wgMemc;
 
                $this->parent = $parent;
-               $this->cache = $wgMemc ?: wfGetMainCache();
+
+               $this->srvCache = ObjectCache::newAccelerator( array(), 'hash' );
+               $this->mainCache = $wgMemc ?: wfGetMainCache();
        }
 
        public function scaleLoads( &$loads, $group = false, $wiki = false ) {
@@ -89,65 +93,79 @@ class LoadMonitorMySQL implements LoadMonitor {
 
        public function getLagTimes( $serverIndexes, $wiki ) {
                if ( count( $serverIndexes ) == 1 && reset( $serverIndexes ) == 0 ) {
-                       // Single server only, just return zero without caching
+                       # Single server only, just return zero without caching
                        return array( 0 => 0 );
                }
 
-               $expiry = 5;
-               $requestRate = 10;
-
-               $cache = $this->cache;
-               $masterName = $this->parent->getServerName( 0 );
-               $memcKey = wfMemcKey( 'lag_times', $masterName );
-               $times = $cache->get( $memcKey );
-               if ( is_array( $times ) ) {
-                       # Randomly recache with probability rising over $expiry
-                       $elapsed = time() - $times['timestamp'];
-                       $chance = max( 0, ( $expiry - $elapsed ) * $requestRate );
-                       if ( mt_rand( 0, $chance ) != 0 ) {
-                               unset( $times['timestamp'] ); // hide from caller
-
-                               return $times;
-                       }
-                       wfIncrStats( 'lag_cache.miss.expired' );
-               } else {
-                       wfIncrStats( 'lag_cache.miss.absent' );
+               $key = $this->getLagTimeCacheKey();
+               # Randomize TTLs to reduce stampedes (4.0 - 5.0 sec)
+               $ttl = mt_rand( 4e6, 5e6 ) / 1e6;
+               # Keep keys around longer as fallbacks
+               $staleTTL = 60;
+
+               # (a) Check the local APC cache
+               $value = $this->srvCache->get( $key );
+               if ( $value && $value['timestamp'] > ( microtime( true ) - $ttl ) ) {
+                       wfDebugLog( 'replication',  __FUNCTION__ . ": got lag times ($key) from local cache" );
+                       return $value['lagTimes']; // cache hit
+               }
+               $staleValue = $value ?: false;
+
+               # (b) Check the shared cache and backfill APC
+               $value = $this->mainCache->get( $key );
+               if ( $value && $value['timestamp'] > ( microtime( true ) - $ttl ) ) {
+                       $this->srvCache->set( $key, $value, $staleTTL );
+                       wfDebugLog( 'replication',  __FUNCTION__ . ": got lag times ($key) from main cache" );
+
+                       return $value['lagTimes']; // cache hit
                }
+               $staleValue = $value ?: $staleValue;
 
-               # Cache key missing or expired
-               if ( $cache->lock( $memcKey, 0, 10 ) ) {
+               # (c) Cache key missing or expired; regenerate and backfill
+               if ( $this->mainCache->lock( $key, 0, 10 ) ) {
                        # Let this process alone update the cache value
-                       $unlocker = new ScopedCallback( function () use ( $cache, $memcKey ) {
-                               $cache->unlock( $memcKey );
+                       $cache = $this->mainCache;
+                       $unlocker = new ScopedCallback( function () use ( $cache, $key ) {
+                               $cache->unlock( $key );
                        } );
-               } elseif ( is_array( $times ) ) {
+               } elseif ( $staleValue ) {
                        # Could not acquire lock but an old cache exists, so use it
-                       unset( $times['timestamp'] ); // hide from caller
-
-                       return $times;
+                       return $value['lagTimes'];
                }
 
-               $times = array();
+               $lagTimes = array();
                foreach ( $serverIndexes as $i ) {
                        if ( $i == 0 ) { # Master
-                               $times[$i] = 0;
+                               $lagTimes[$i] = 0;
                        } elseif ( false !== ( $conn = $this->parent->getAnyOpenConnection( $i ) ) ) {
-                               $times[$i] = $conn->getLag();
+                               $lagTimes[$i] = $conn->getLag();
                        } elseif ( false !== ( $conn = $this->parent->openConnection( $i, $wiki ) ) ) {
-                               $times[$i] = $conn->getLag();
-                               // Close the connection to avoid sleeper connections piling up.
-                               // Note that the caller will pick one of these DBs and reconnect,
-                               // which is slightly inefficient, but this only matters for the lag
-                               // time cache miss cache, which is far less common that cache hits.
+                               $lagTimes[$i] = $conn->getLag();
+                               # Close the connection to avoid sleeper connections piling up.
+                               # Note that the caller will pick one of these DBs and reconnect,
+                               # which is slightly inefficient, but this only matters for the lag
+                               # time cache miss cache, which is far less common that cache hits.
                                $this->parent->closeConnection( $conn );
                        }
                }
 
                # Add a timestamp key so we know when it was cached
-               $times['timestamp'] = time();
-               $cache->set( $memcKey, $times, $expiry + 10 );
-               unset( $times['timestamp'] ); // hide from caller
+               $value = array( 'lagTimes' => $lagTimes, 'timestamp' => microtime( true ) );
+               $this->mainCache->set( $key, $value, $staleTTL );
+               $this->srvCache->set( $key, $value, $staleTTL );
+               wfDebugLog( 'replication',  __FUNCTION__ . ": re-calculated lag times ($key)" );
+
+               return $value['lagTimes'];
+       }
+
+       public function clearCaches() {
+               $key = $this->getLagTimeCacheKey();
+               $this->srvCache->delete( $key );
+               $this->mainCache->delete( $key );
+       }
 
-               return $times;
+       private function getLagTimeCacheKey() {
+               # Lag is per-server, not per-DB, so key on the master DB name
+               return wfForeignMemcKey( $this->parent->getServerName( 0 ), '', 'lag_times' );
        }
 }
index 6a699f9..d27d2c6 100644 (file)
@@ -433,7 +433,7 @@ class FileBackendMultiWrite extends FileBackend {
         */
        protected function substPaths( $paths, FileBackendStore $backend ) {
                return preg_replace(
-                       '!^mwstore://' . preg_quote( $this->name ) . '/!',
+                       '!^mwstore://' . preg_quote( $this->name, '!' ) . '/!',
                        StringUtils::escapeRegexReplacement( "mwstore://{$backend->getName()}/" ),
                        $paths // string or array
                );
index 0713a92..1aec446 100644 (file)
@@ -587,6 +587,6 @@ class ArchivedFile {
                $this->load();
 
                $title = $this->getTitle();
-               return Revision::userCanBitfield( $this->deleted, $field, $user, $title ? : null );
+               return Revision::userCanBitfield( $this->deleted, $field, $user, $title ?: null );
        }
 }
index 9f30ee3..afd7cf6 100644 (file)
 class HTMLButtonField extends HTMLFormField {
        protected $buttonType = 'button';
 
+       /** @var array $mFlags Flags to add to OOUI Button widget */
+       protected $mFlags = array();
+
        public function __construct( $info ) {
                $info['nodata'] = true;
+               if ( isset( $info['flags'] ) )
+                       $this->mFlags = $info['flags'];
                parent::__construct( $info );
        }
 
@@ -33,9 +38,11 @@ class HTMLButtonField extends HTMLFormField {
                return new OOUI\ButtonInputWidget( array(
                        'name' => $this->mName,
                        'value' => $value,
+                       'label' => $value,
                        'type' => $this->buttonType,
                        'classes' => array( 'mw-htmlform-submit', $this->mClass ),
                        'id' => $this->mID,
+                       'flags' => $this->mFlags,
                ) + $this->getAttributes( array( 'disabled', 'tabindex' ), array( 'tabindex' => 'tabIndex' ) ) );
        }
 
index 7ccb60e..a0566a0 100644 (file)
@@ -119,9 +119,8 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                        foreach ( $columns as $columnTag ) {
                                $thisTag = "$columnTag-$rowTag";
                                // Construct the checkbox
-                               $thisId = "{$this->mID}-$thisTag";
                                $thisAttribs = array(
-                                       'id' => $thisId,
+                                       'id' => "{$this->mID}-$thisTag",
                                        'value' => $thisTag,
                                );
                                $checked = in_array( $thisTag, (array)$value, true );
@@ -132,18 +131,13 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                                        $checked = true;
                                        $thisAttribs['disabled'] = 1;
                                }
-                               $chkBox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs );
 
-                               if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
-                                       $chkBox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
-                                               $chkBox .
-                                               Html::element( 'label', array( 'for' => $thisId ) ) .
-                                               Html::closeElement( 'div' );
-                               }
+                               $checkbox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs );
+
                                $rowContents .= Html::rawElement(
                                        'td',
                                        array(),
-                                       $chkBox
+                                       $checkbox
                                );
                        }
                        $tableContents .= Html::rawElement( 'tr', array(), "\n$rowContents\n" );
@@ -162,11 +156,18 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                        return new OOUI\CheckboxInputWidget( array(
                                'name' => "{$this->mName}[]",
                                'selected' => $checked,
-                               'value' => '1',
+                               'value' => $attribs['value'],
                        ) + $attribs );
+               } else {
+                       $checkbox = Xml::check( "{$this->mName}[]", $checked, $attribs );
+                       if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                               $checkbox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                       $checkbox .
+                                       Html::element( 'label', array( 'for' => $attribs['id'] ) ) .
+                                       Html::closeElement( 'div' );
+                       }
+                       return $checkbox;
                }
-
-               return Xml::check( "{$this->mName}[]", $checked, $attribs );
        }
 
        protected function isTagForcedOff( $tag ) {
index 65fc0e8..702651e 100644 (file)
@@ -165,7 +165,7 @@ class HTMLForm extends ContextSource {
        protected $mFieldTree;
        protected $mShowReset = false;
        protected $mShowSubmit = true;
-       protected $mSubmitModifierClass = 'mw-ui-constructive';
+       protected $mSubmitFlag = 'constructive';
 
        protected $mSubmitCallback;
        protected $mValidationErrorMessage;
@@ -972,7 +972,7 @@ class HTMLForm extends ContextSource {
                        $attribs['class'] = array( 'mw-htmlform-submit' );
 
                        if ( $useMediaWikiUIEverywhere ) {
-                               array_push( $attribs['class'], 'mw-ui-button', $this->mSubmitModifierClass );
+                               array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-' . $this->mSubmitFlag );
                        }
 
                        $buttons .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
@@ -1099,7 +1099,7 @@ class HTMLForm extends ContextSource {
         * @since 1.24
         */
        public function setSubmitDestructive() {
-               $this->mSubmitModifierClass = 'mw-ui-destructive';
+               $this->mSubmitFlag = 'destructive';
        }
 
        /**
@@ -1107,7 +1107,7 @@ class HTMLForm extends ContextSource {
         * @since 1.25
         */
        public function setSubmitProgressive() {
-               $this->mSubmitModifierClass = 'mw-ui-progressive';
+               $this->mSubmitFlag = 'progressive';
        }
 
        /**
index 8d28b59..523f045 100644 (file)
@@ -38,34 +38,19 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
                $html = '';
 
                $attribs = $this->getAttributes( array( 'disabled', 'tabindex' ) );
-               $elementFunc = array( 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' );
 
                foreach ( $options as $label => $info ) {
                        if ( is_array( $info ) ) {
                                $html .= Html::rawElement( 'h1', array(), $label ) . "\n";
                                $html .= $this->formatOptions( $info, $value );
                        } else {
-                               $thisAttribs = array( 'id' => "{$this->mID}-$info", 'value' => $info );
-
-                               // @todo: Make this use checkLabel for consistency purposes
-                               $checkbox = Xml::check(
-                                       $this->mName . '[]',
-                                       in_array( $info, $value, true ),
-                                       $attribs + $thisAttribs
-                               );
-                               $checkbox .= '&#160;' . call_user_func( $elementFunc,
-                                       'label',
-                                       array( 'for' => "{$this->mID}-$info" ),
-                                       $label
+                               $thisAttribs = array(
+                                       'id' => "{$this->mID}-$info",
+                                       'value' => $info,
                                );
+                               $checked = in_array( $info, $value, true );
 
-                               if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
-                                       $checkbox = Html::rawElement(
-                                               'div',
-                                               array( 'class' => 'mw-ui-checkbox' ),
-                                               $checkbox
-                                       );
-                               }
+                               $checkbox = $this->getOneCheckbox( $checked, $attribs + $thisAttribs, $label );
 
                                $html .= ' ' . Html::rawElement(
                                        'div',
@@ -78,6 +63,41 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
                return $html;
        }
 
+       protected function getOneCheckbox( $checked, $attribs, $label ) {
+               if ( $this->mParent instanceof OOUIHTMLForm ) {
+                       if ( $this->mOptionsLabelsNotFromMessage ) {
+                               $label = new OOUI\HtmlSnippet( $label );
+                       }
+                       return new OOUI\FieldLayout(
+                               new OOUI\CheckboxInputWidget( array(
+                                       'name' => "{$this->mName}[]",
+                                       'selected' => $checked,
+                                       'value' => $attribs['value'],
+                               ) + $attribs ),
+                               array(
+                                       'label' => $label,
+                                       'align' => 'inline',
+                               )
+                       );
+               } else {
+                       $elementFunc = array( 'Html', $this->mOptionsLabelsNotFromMessage ? 'rawElement' : 'element' );
+                       $checkbox =
+                               Xml::check( "{$this->mName}[]", $checked, $attribs ) .
+                               '&#160;' .
+                               call_user_func( $elementFunc,
+                                       'label',
+                                       array( 'for' => $attribs['id'] ),
+                                       $label
+                               );
+                       if ( $this->mParent->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
+                               $checkbox = Html::openElement( 'div', array( 'class' => 'mw-ui-checkbox' ) ) .
+                                       $checkbox .
+                                       Html::closeElement( 'div' );
+                       }
+                       return $checkbox;
+               }
+       }
+
        /**
         * @param WebRequest $request
         *
index 0f00540..19b45be 100644 (file)
@@ -38,6 +38,23 @@ class HTMLRadioField extends HTMLFormField {
                return $html;
        }
 
+       function getInputOOUI( $value ) {
+               $options = array();
+               foreach ( $this->getOptions() as $label => $value ) {
+                       $options[] = array(
+                               'data' => $value,
+                               'label' => $this->mOptionsLabelsNotFromMessage ? new OOUI\HtmlSnippet( $label ) : $label,
+                       );
+               }
+
+               return new OOUI\RadioSelectInputWidget( array(
+                       'name' => $this->mName,
+                       'value' => $value,
+                       'options' => $options,
+                       'classes' => 'mw-htmlform-flatlist-item',
+               ) + $this->getAttributes( array( 'disabled', 'tabindex' ), array( 'tabindex' => 'tabIndex' ) ) );
+       }
+
        function formatOptions( $options, $value ) {
                $html = '';
 
index 653c08c..938e428 100644 (file)
@@ -6,4 +6,6 @@
  */
 class HTMLSubmitField extends HTMLButtonField {
        protected $buttonType = 'submit';
+
+       protected $mFlags = array( 'primary', 'constructive' );
 }
index 22e96f6..e4f78b2 100644 (file)
@@ -12,11 +12,21 @@ class HTMLTextAreaField extends HTMLFormField {
                return isset( $this->mParams['rows'] ) ? $this->mParams['rows'] : static::DEFAULT_ROWS;
        }
 
+       function getSpellCheck() {
+               $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null;
+               if ( is_bool( $val ) ) {
+                       // "spellcheck" attribute literally requires "true" or "false" to work.
+                       return $val === true ? 'true' : 'false';
+               }
+               return null;
+       }
+
        function getInputHTML( $value ) {
                $attribs = array(
                                'id' => $this->mID,
                                'cols' => $this->getCols(),
                                'rows' => $this->getRows(),
+                               'spellcheck' => $this->getSpellCheck(),
                        ) + $this->getTooltipAndAccessKey();
 
                if ( $this->mClass !== '' ) {
index 2958274..5c04ee2 100644 (file)
@@ -5,6 +5,15 @@ class HTMLTextField extends HTMLFormField {
                return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
        }
 
+       function getSpellCheck() {
+               $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null;
+               if ( is_bool( $val ) ) {
+                       // "spellcheck" attribute literally requires "true" or "false" to work.
+                       return $val === true ? 'true' : 'false';
+               }
+               return null;
+       }
+
        function getInputHTML( $value ) {
                $attribs = array(
                                'id' => $this->mID,
@@ -12,6 +21,7 @@ class HTMLTextField extends HTMLFormField {
                                'size' => $this->getSize(),
                                'value' => $value,
                                'dir' => $this->mDir,
+                               'spellcheck' => $this->getSpellCheck(),
                        ) + $this->getTooltipAndAccessKey();
 
                if ( $this->mClass !== '' ) {
@@ -103,6 +113,11 @@ class HTMLTextField extends HTMLFormField {
                        'tabindex' => 'tabIndex',
                ) );
 
+               if ( isset( $attribs['readOnly'] ) ) {
+                       // This needs to be set to a boolean value
+                       $attribs['readOnly'] = true;
+               }
+
                $type = $this->getType( $attribs );
 
                return new OOUI\TextInputWidget( array(
index 6c9952a..80e91f7 100644 (file)
@@ -34,7 +34,6 @@ class OOUIHTMLForm extends HTMLForm {
        public function __construct( $descriptor, $context = null, $messagePrefix = '' ) {
                parent::__construct( $descriptor, $context, $messagePrefix );
                $this->getOutput()->enableOOUI();
-               $this->getOutput()->addModules( 'mediawiki.htmlform.ooui' );
                $this->getOutput()->addModuleStyles( 'mediawiki.htmlform.ooui.styles' );
        }
 
@@ -54,7 +53,7 @@ class OOUIHTMLForm extends HTMLForm {
                $buttons = '';
 
                if ( $this->mShowSubmit ) {
-                       $attribs = array();
+                       $attribs = array( 'infusable' => true );
 
                        if ( isset( $this->mSubmitID ) ) {
                                $attribs['id'] = $this->mSubmitID;
@@ -68,15 +67,11 @@ class OOUIHTMLForm extends HTMLForm {
                                $attribs += Linker::tooltipAndAccesskeyAttribs( $this->mSubmitTooltip );
                        }
 
-                       $attribs['classes'] = array(
-                               'mw-htmlform-submit',
-                               $this->mSubmitModifierClass,
-                       );
-
+                       $attribs['classes'] = array( 'mw-htmlform-submit' );
                        $attribs['type'] = 'submit';
                        $attribs['label'] = $this->getSubmitText();
                        $attribs['value'] = $this->getSubmitText();
-                       $attribs['flags'] = array( 'primary', 'constructive' );
+                       $attribs['flags'] = array( $this->mSubmitFlag );
 
                        $buttons .= new OOUI\ButtonInputWidget( $attribs );
                }
index 0c0e425..f1fd05d 100644 (file)
@@ -95,7 +95,7 @@ class VFormHTMLForm extends HTMLForm {
                        $attribs['class'] = array(
                                'mw-htmlform-submit',
                                'mw-ui-button mw-ui-big mw-ui-block',
-                               $this->mSubmitModifierClass,
+                               'mw-ui-' . $this->mSubmitFlag,
                        );
 
                        $buttons .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
index 2d06d42..490ee48 100644 (file)
        "config-admin-name-invalid": "نام کاربری تعیین شدهٔ \"<nowiki>$1</nowiki>\" نامعتبر است.\nیک نام کاربری دیگر تعیین کنید.",
        "config-admin-password-blank": "برای حساب سرپرست یک رمز عبور وارد کنید.",
        "config-admin-password-mismatch": "دو رمز عبوری که وارد کرده‌اید با هم مطابقت ندارند.",
-       "config-admin-email": "آدرس ایمیل:",
+       "config-admin-email": "نشانی ایمیل:",
        "config-admin-email-help": "یک آدرس ایمیل برای اجازهٔ دریافت ایمیل از دیگر کاربران ویکی، اینجا وارد کنید، رمز عبور خود را دوباره تنظیم کنید، و از تغییرات صفحه در فهرست پیگیری‌ها مطلع باشید. می‌توانید این بخش را خالی بگذارید.",
        "config-admin-error-user": "خطای داخلی هنگام ایجاد یک مدیر با نام \"<nowiki>$1</nowiki>\".",
        "config-admin-error-password": "خطای داخلی هنگام تنظیم یک رمز عبور برای مدیر \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
index a1ca9d2..8f4107b 100644 (file)
@@ -13,7 +13,8 @@
                        "青子守歌",
                        "아라",
                        "Shield-9",
-                       "Takot"
+                       "Takot",
+                       "Sujiniku"
                ]
        },
        "config-desc": "MediaWiki のインストーラー",
@@ -71,7 +72,7 @@
        "config-magic-quotes-sybase": "<strong>致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] が動作しています!</strong>\nこのオプションは、予期せずデータ入力を破壊します。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
        "config-mbstring": "<strong>致命的エラー: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] が動作しています!</strong>\nこのオプションは、エラーを引き起こし、予期せずデータを破壊するおそれがあります。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
        "config-safe-mode": "<strong>警告:</strong> PHPの[http://www.php.net/features.safe-mode セーフモード]が有効になっています。\n特に、ファイルのアップロードや<code>math</code>機能で、問題が発生するおそれがあります。",
-       "config-xml-bad": "PHPのXMLモジュールが不足しています。\nMediaWikiは、このモジュールの関数を必要としているため、この構成では動作しません。\nMandrakeを実行している場合、php-xmlパッケージをインストールしてください。",
+       "config-xml-bad": "PHPのXMLモジュールが不足しています。\nMediaWikiは、このモジュールの関数を必要としているため、この構成では動作しません。\nphp-xml RPM パッケージをインストールする必要があります。",
        "config-pcre-old": "<strong>致命的エラー:</strong> PCRE $1 以降が必要です。\nご使用中の PHP のバイナリは PCRE $2 とリンクされています。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 詳細情報]",
        "config-pcre-no-utf8": "<strong>致命的エラー:</strong> PHP の PCRE が PCRE_UTF8 対応なしでコンパイルされているようです。\nMediaWiki を正しく動作させるには、UTF-8 対応が必要です。",
        "config-memory-raised": "PHPの<code>memory_limit</code>は$1で、$2に引き上げられました。",
index 2c84dc3..b7f71b1 100644 (file)
@@ -1,9 +1,11 @@
 {
        "@metadata": {
                "authors": [
-                       "VASANTH S.N."
+                       "VASANTH S.N.",
+                       "Pavanaja"
                ]
        },
+       "config-title": "ಮೀಡಿಯಾವಿಕಿ ಆವೃತ್ತಿ $1 ರ ಅನುಸ್ಥಾಪನೆ",
        "config-information": "ಮಾಹಿತಿ",
        "config-localsettings-key": "ಉನ್ನತೀಕರಣ ಕೀಲಿ",
        "config-localsettings-badkey": "ನೀವು ನೀಡಿದ ಕೀಲಿ ಸರಿಯಾಗಿಲ್ಲ",
index 632951b..78683ad 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "V.narsikar"
+                       "V.narsikar",
+                       "Suyog"
                ]
        },
        "config-information": "माहिती",
@@ -11,6 +12,7 @@
        "config-your-language": "आपली भाषा:",
        "config-your-language-help": "उभारणी प्रक्रियेत वापरावयाची भाषा निवडा.",
        "config-wiki-language": "विकी भाषा:",
+       "config-wiki-language-help": "तुमची लेखन भाषा निवडा",
        "config-back": "← परत",
        "config-continue": "चालू ठेवा →",
        "config-page-language": "भाषा",
@@ -23,6 +25,7 @@
        "config-page-readme": "हे वाचा",
        "config-page-releasenotes": "विमोचन टिप्पण्या",
        "config-page-existingwiki": "साध्याचा विकि",
+       "config-restart": "हो, परत चालू करा",
        "config-pg-test-error": "विदागाराशी अनुबंधन करता येत नाही <strong>$1</strong>: $2",
        "config-type-mssql": "मायक्रोसॉफ्ट एसक्युएल सर्व्हर",
        "config-header-mssql": "मायक्रोसॉफ्ट एसक्युएल सर्व्हर मांडणावळ",
index 83fb3d8..fecf474 100644 (file)
@@ -5,6 +5,7 @@
                        "Psubhashish"
                ]
        },
+       "config-information": "ସୂଚନା",
        "config-session-error": "ଅଧିବେଶନ ଆରମ୍ଭରେ ଅସୁବିଧା: $1",
        "config-your-language": "ଆପଣଙ୍କ ଭାଷା:",
        "config-your-language-help": "ଇନଷ୍ଟଲ କରିବା ବେଳେ ବ୍ୟବହାର ପାଇଁ ଏକ ଭାଷା ବାଛନ୍ତୁ ।",
        "config-page-existingwiki": "ଏବେକାର ଉଇକି",
        "config-restart": "ହଁ, ଏହାକୁ ପୁନରାରମ୍ଭ କରନ୍ତୁ",
        "config-env-php": "PHP $1 ଇନଷ୍ଟଲ ହେଲା ।",
+       "config-db-type": "ଡାଟାବେସ ପ୍ରକାର:",
+       "config-db-host": "ଡାଟାବେସ ହୋଷ୍ଟ:",
+       "config-db-name": "ଡାଟାବେସ ନାମ:",
+       "config-site-name": "ଉଇକିର ନାମ:",
+       "config-site-name-blank": "ସାଇଟ ନାମ ଦିଅନ୍ତୁ ।",
+       "config-project-namespace": "ପ୍ରକଳ୍ପ ନେମସ୍ପେସ:",
+       "config-ns-generic": "ପ୍ରକଳ୍ପ",
+       "config-ns-other": "ଅନ୍ୟ (ଦର୍ଶାଇବେ)",
+       "config-ns-other-default": "ମୋଉଇକି",
+       "config-admin-box": "ପରିଚାଳକ ଆକାଉଣ୍ଟ",
+       "config-admin-name": "ଆପଣଙ୍କର ବ୍ୟବହାରକାରୀ ନାମ:",
+       "config-admin-password": "ପାସୱାର୍ଡ",
+       "config-admin-password-confirm": "ଆଉଥରେ ପାସୱାର୍ଡ",
        "config-license-cc-by-sa": "କ୍ରିଏଟିଭ କମନ୍ସ ଆଟ୍ରିବ୍ୟୁସନ-ସେଆର ଏଲାଇକ",
-       "config-license-cc-by-nc-sa": "କ୍ରିଏଟିଭ କମନ୍ସ ଆଟ୍ରିବ୍ୟୁସନ-ନନକମର୍ସିଆଲ ସେଆର ଏଲାଇକ"
+       "config-license-cc-by-nc-sa": "କ୍ରିଏଟିଭ କମନ୍ସ ଆଟ୍ରିବ୍ୟୁସନ-ନନକମର୍ସିଆଲ ସେଆର ଏଲାଇକ",
+       "config-install-step-done": "ହୋଇଗଲା"
 }
index 345b475..73e1764 100644 (file)
@@ -68,7 +68,7 @@
        "config-magic-quotes-sybase": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
        "config-mbstring": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
        "config-safe-mode": "'''Увага:''' Опція PHP [http://www.php.net/features.safe-mode «безпечний режим»] увімкнена.\nЦе може спричинити проблеми, зокрема із завантаженням файлів та вставкою математичних формул.",
-       "config-xml-bad": "XML-модÑ\83Ñ\82Ñ\8c PHP Ð²Ñ\96дÑ\81Ñ\83Ñ\82нÑ\96й.\nMediaWiki Ð½ÐµÐ¾Ð±Ñ\85Ñ\96днÑ\96 Ð¹Ð¾Ð³Ð¾ Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97, Ð±ÐµÐ· Ñ\86Ñ\8cого Ð¼Ð¾Ð´Ñ\83лÑ\8f Ð²Ð¾Ð½Ð° Ð¿Ñ\80аÑ\86Ñ\8eваÑ\82и Ð½Ðµ Ð±Ñ\83де.\nЯкÑ\89о Ð\92и Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83Ñ\94Ñ\82е Mandrake, Ð²Ñ\81Ñ\82ановÑ\96Ñ\82Ñ\8c php-xml пакет.",
+       "config-xml-bad": "XML-модÑ\83Ñ\82Ñ\8c PHP Ð²Ñ\96дÑ\81Ñ\83Ñ\82нÑ\96й.\nMediaWiki Ð½ÐµÐ¾Ð±Ñ\85Ñ\96днÑ\96 Ð¹Ð¾Ð³Ð¾ Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97, Ð±ÐµÐ· Ñ\86Ñ\8cого Ð¼Ð¾Ð´Ñ\83лÑ\8f Ð²Ð¾Ð½Ð° Ð¿Ñ\80аÑ\86Ñ\8eваÑ\82и Ð½Ðµ Ð±Ñ\83де.\nÐ\92ам Ð¼Ð¾Ð¶Ðµ Ð·Ð½Ð°Ð´Ð¾Ð±Ð¸Ñ\82иÑ\81Ñ\8f Ð²Ñ\81Ñ\82ановиÑ\82и php-xml RPM пакет.",
        "config-pcre-old": "'''Фатальна помилка:''' потрібно PCRE версії $1 або пізнішої.\nВаш виконуваний файл PHP пов'язаний з PCRE версії $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробиці].",
        "config-pcre-no-utf8": "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.\nMediaWiki вимагає підтримку UTF-8 для коректної роботи.",
        "config-memory-raised": "Обмеження пам'яті PHP (<code>memory_limit</code>) $1, піднято до $2.",
index f7ef8a9..3e23391 100644 (file)
@@ -144,6 +144,14 @@ abstract class Job implements IJobSpecification {
                        : null;
        }
 
+       /**
+        * @return int|null UNIX timestamp of when the job was runnable, or null
+        * @since 1.26
+        */
+       public function getReadyTimestamp() {
+               return $this->getReleaseTimestamp() ?: $this->getQueuedTimestamp();
+       }
+
        /**
         * Whether the queue should reject insertion of this job if a duplicate exists
         *
index 77c4238..3982134 100644 (file)
@@ -199,12 +199,12 @@ class JobRunner implements LoggerAwareInterface {
                                $timeMsTotal += $timeMs;
                                $profiler->scopedProfileOut( $psection );
 
-                               $queuedTs = $job->getQueuedTimestamp();
-                               if ( $queuedTs ) {
+                               $readyTs = $job->getReadyTimestamp();
+                               if ( $readyTs ) {
                                        // Record time to run for the job type
-                                       $pickupDelay = $popTime - $queuedTs;
-                                       $stats->timing( 'jobqueue.pickup_delay.all', $queuedTs );
-                                       $stats->timing( "jobqueue.pickup_delay.$jType", $queuedTs );
+                                       $pickupDelay = $popTime - $readyTs;
+                                       $stats->timing( 'jobqueue.pickup_delay.all', $pickupDelay );
+                                       $stats->timing( "jobqueue.pickup_delay.$jType", $pickupDelay );
                                }
 
                                // Mark the job as done on success or when the job cannot be retried
old mode 100755 (executable)
new mode 100644 (file)
index 457237a..0caf90b 100644 (file)
@@ -23,7 +23,6 @@
 use Liuggio\StatsdClient\Entity\StatsdDataInterface;
 use Liuggio\StatsdClient\Factory\StatsdDataFactory;
 
-
 /**
  * A factory for application metric data.
  *
diff --git a/includes/libs/RiffExtractor.php b/includes/libs/RiffExtractor.php
new file mode 100644 (file)
index 0000000..f987c59
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/**
+ * Extractor for the Resource Interchange File Format
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Bryan Tong Minh
+ * @ingroup Media
+ */
+
+class RiffExtractor {
+       public static function findChunksFromFile( $filename, $maxChunks = -1 ) {
+               $file = fopen( $filename, 'rb' );
+               $info = self::findChunks( $file, $maxChunks );
+               fclose( $file );
+               return $info;
+       }
+
+       public static function findChunks( $file, $maxChunks = -1 ) {
+               $riff = fread( $file, 4 );
+               if ( $riff !== 'RIFF' ) {
+                       return false;
+               }
+
+               // Next four bytes are fileSize
+               $fileSize = fread( $file, 4 );
+               if ( !$fileSize || strlen( $fileSize ) != 4 ) {
+                       return false;
+               }
+
+               // Next four bytes are the FourCC
+               $fourCC = fread( $file, 4 );
+               if ( !$fourCC || strlen( $fourCC ) != 4 ) {
+                       return false;
+               }
+
+               // Create basic info structure
+               $info = array(
+                       'fileSize' => self::extractUInt32( $fileSize ),
+                       'fourCC' => $fourCC,
+                       'chunks' => array(),
+               );
+               $numberOfChunks = 0;
+
+               // Find out the chunks
+               while ( !feof( $file ) && !( $numberOfChunks >= $maxChunks && $maxChunks >= 0 ) ) {
+                       $chunkStart = ftell( $file );
+
+                       $chunkFourCC = fread( $file, 4 );
+                       if ( !$chunkFourCC || strlen( $chunkFourCC ) != 4 ) {
+                               return $info;
+                       }
+
+                       $chunkSize = fread( $file, 4 );
+                       if ( !$chunkSize || strlen( $chunkSize ) != 4 ) {
+                               return $info;
+                       }
+                       $intChunkSize = self::extractUInt32( $chunkSize );
+
+                       // Add chunk info to the info structure
+                       $info['chunks'][] = array(
+                               'fourCC' => $chunkFourCC,
+                               'start' => $chunkStart,
+                               'size' => $intChunkSize
+                       );
+
+                       // Uneven chunks have padding bytes
+                       $padding = $intChunkSize % 2;
+                       // Seek to the next chunk
+                       fseek( $file, $intChunkSize + $padding, SEEK_CUR );
+
+               }
+
+               return $info;
+       }
+
+       /**
+        * Extract a little-endian uint32 from a 4 byte string
+        * @param string $string 4-byte string
+        * @return int
+        */
+       public static function extractUInt32( $string ) {
+               $unpacked = unpack( 'V', $string );
+               return $unpacked[1];
+       }
+};
index 9c7bf2f..22c3319 100644 (file)
@@ -30,6 +30,9 @@ class ComposerLock {
                        $deps[$installed['name']] = array(
                                'version' => ComposerJson::normalizeVersion( $installed['version'] ),
                                'type' => $installed['type'],
+                               'licenses' => isset( $installed['license'] ) ? $installed['license'] : array(),
+                               'authors' => isset( $installed['authors'] ) ? $installed['authors'] : array(),
+                               'description' => isset( $installed['description'] ) ? $installed['description']: '',
                        );
                }
 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/includes/libs/normal/.gitignore b/includes/libs/normal/.gitignore
deleted file mode 100644 (file)
index 5af0afa..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-/CompositionExclusions.txt
-/DerivedNormalizationProps.txt
-/NormalizationCorrections.txt
-/NormalizationTest.txt
-/UnicodeData.txt
-/testdata
diff --git a/includes/libs/normal/UtfNormal.php b/includes/libs/normal/UtfNormal.php
deleted file mode 100644 (file)
index c9c05a0..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<?php
-/**
- * Unicode normalization routines
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup UtfNormal
- */
-
-/**
- * @defgroup UtfNormal UtfNormal
- */
-
-use UtfNormal\Validator;
-
-/**
- * Unicode normalization routines for working with UTF-8 strings.
- * Currently assumes that input strings are valid UTF-8!
- *
- * Not as fast as I'd like, but should be usable for most purposes.
- * UtfNormal::toNFC() will bail early if given ASCII text or text
- * it can quickly determine is already normalized.
- *
- * All functions can be called static.
- *
- * See description of forms at http://www.unicode.org/reports/tr15/
- *
- * @deprecated since 1.25, use UtfNormal\Validator directly
- * @ingroup UtfNormal
- */
-class UtfNormal {
-       /**
-        * The ultimate convenience function! Clean up invalid UTF-8 sequences,
-        * and convert to normal form C, canonical composition.
-        *
-        * Fast return for pure ASCII strings; some lesser optimizations for
-        * strings containing only known-good characters. Not as fast as toNFC().
-        *
-        * @param string $string a UTF-8 string
-        * @return string a clean, shiny, normalized UTF-8 string
-        */
-       static function cleanUp( $string ) {
-               return Validator::cleanUp( $string );
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form C, canonical composition.
-        * Fast return for pure ASCII strings; some lesser optimizations for
-        * strings containing only known-good characters.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form C
-        */
-       static function toNFC( $string ) {
-               return Validator::toNFC( $string );
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form D, canonical decomposition.
-        * Fast return for pure ASCII strings.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form D
-        */
-       static function toNFD( $string ) {
-               return Validator::toNFD( $string );
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form KC, compatibility composition.
-        * This may cause irreversible information loss, use judiciously.
-        * Fast return for pure ASCII strings.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form KC
-        */
-       static function toNFKC( $string ) {
-               return Validator::toNFKC( $string );
-       }
-
-       /**
-        * Convert a UTF-8 string to normal form KD, compatibility decomposition.
-        * This may cause irreversible information loss, use judiciously.
-        * Fast return for pure ASCII strings.
-        *
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return string a UTF-8 string in normal form KD
-        */
-       static function toNFKD( $string ) {
-               return Validator::toNFKD( $string );
-       }
-
-       /**
-        * Returns true if the string is _definitely_ in NFC.
-        * Returns false if not or uncertain.
-        * @param string $string a valid UTF-8 string. Input is not validated.
-        * @return bool
-        */
-       static function quickIsNFC( $string ) {
-               return Validator::quickIsNFC( $string );
-       }
-
-       /**
-        * Returns true if the string is _definitely_ in NFC.
-        * Returns false if not or uncertain.
-        * @param string $string a UTF-8 string, altered on output to be valid UTF-8 safe for XML.
-        * @return bool
-        */
-       static function quickIsNFCVerify( &$string ) {
-               return Validator::quickIsNFCVerify( $string );
-       }
-}
diff --git a/includes/libs/normal/UtfNormalDefines.php b/includes/libs/normal/UtfNormalDefines.php
deleted file mode 100644 (file)
index b8e44c7..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-<?php
-/**
- * Backwards-compatability constants which are now provided by the
- * UtfNormal library. They are hardcoded here since they are needed
- * before the composer autoloader is initialized.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup UtfNormal
- */
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_FIRST', 0xac00 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_LAST', 0xd7a3 );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_LBASE', 0x1100 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_VBASE', 0x1161 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_TBASE', 0x11a7 );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_LCOUNT', 19 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_VCOUNT', 21 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_TCOUNT', 28 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_NCOUNT', UNICODE_HANGUL_VCOUNT * UNICODE_HANGUL_TCOUNT );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_LEND', UNICODE_HANGUL_LBASE + UNICODE_HANGUL_LCOUNT - 1 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_VEND', UNICODE_HANGUL_VBASE + UNICODE_HANGUL_VCOUNT - 1 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_HANGUL_TEND', UNICODE_HANGUL_TBASE + UNICODE_HANGUL_TCOUNT - 1 );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_SURROGATE_FIRST', 0xd800 );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_SURROGATE_LAST', 0xdfff );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_MAX', 0x10ffff );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UNICODE_REPLACEMENT', 0xfffd );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_FIRST', "\xea\xb0\x80" /*codepointToUtf8( UNICODE_HANGUL_FIRST )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_LAST', "\xed\x9e\xa3" /*codepointToUtf8( UNICODE_HANGUL_LAST )*/ );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_LBASE', "\xe1\x84\x80" /*codepointToUtf8( UNICODE_HANGUL_LBASE )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_VBASE', "\xe1\x85\xa1" /*codepointToUtf8( UNICODE_HANGUL_VBASE )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_TBASE', "\xe1\x86\xa7" /*codepointToUtf8( UNICODE_HANGUL_TBASE )*/ );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_LEND', "\xe1\x84\x92" /*codepointToUtf8( UNICODE_HANGUL_LEND )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_VEND', "\xe1\x85\xb5" /*codepointToUtf8( UNICODE_HANGUL_VEND )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HANGUL_TEND', "\xe1\x87\x82" /*codepointToUtf8( UNICODE_HANGUL_TEND )*/ );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_SURROGATE_FIRST', "\xed\xa0\x80" /*codepointToUtf8( UNICODE_SURROGATE_FIRST )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_SURROGATE_LAST', "\xed\xbf\xbf" /*codepointToUtf8( UNICODE_SURROGATE_LAST )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_MAX', "\xf4\x8f\xbf\xbf" /*codepointToUtf8( UNICODE_MAX )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_REPLACEMENT', "\xef\xbf\xbd" /*codepointToUtf8( UNICODE_REPLACEMENT )*/ );
-#define( 'UTF8_REPLACEMENT', '!' );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_OVERLONG_A', "\xc1\xbf" );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_OVERLONG_B', "\xe0\x9f\xbf" );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_OVERLONG_C', "\xf0\x8f\xbf\xbf" );
-
-# These two ranges are illegal
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_FDD0', "\xef\xb7\x90" /*codepointToUtf8( 0xfdd0 )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_FDEF', "\xef\xb7\xaf" /*codepointToUtf8( 0xfdef )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_FFFE', "\xef\xbf\xbe" /*codepointToUtf8( 0xfffe )*/ );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_FFFF', "\xef\xbf\xbf" /*codepointToUtf8( 0xffff )*/ );
-
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_HEAD', false );
-/**
- * @deprecated since 1.25, use UtfNormal\Constants instead
- */
-define( 'UTF8_TAIL', true );
diff --git a/includes/libs/normal/UtfNormalUtil.php b/includes/libs/normal/UtfNormalUtil.php
deleted file mode 100644 (file)
index ad9a2b9..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-/**
- * Some of these functions are adapted from places in MediaWiki.
- * Should probably merge them for consistency.
- *
- * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * https://www.mediawiki.org/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup UtfNormal
- */
-
-
-use UtfNormal\Utils;
-/**
- * Return UTF-8 sequence for a given Unicode code point.
- *
- * @param $codepoint Integer:
- * @return String
- * @throws InvalidArgumentException if fed out of range data.
- * @public
- * @deprecated since 1.25, use UtfNormal\Utils directly
- */
-function codepointToUtf8( $codepoint ) {
-       return Utils::codepointToUtf8( $codepoint );
-}
-
-/**
- * Take a series of space-separated hexadecimal numbers representing
- * Unicode code points and return a UTF-8 string composed of those
- * characters. Used by UTF-8 data generation and testing routines.
- *
- * @param $sequence String
- * @return String
- * @throws InvalidArgumentException if fed out of range data.
- * @private
- * @deprecated since 1.25, use UtfNormal\Utils directly
- */
-function hexSequenceToUtf8( $sequence ) {
-       return Utils::hexSequenceToUtf8( $sequence );
-}
-
-/**
- * Take a UTF-8 string and return a space-separated series of hex
- * numbers representing Unicode code points. For debugging.
- *
- * @fixme this is private but extensions + maint scripts are using it
- * @param string $str UTF-8 string.
- * @return string
- * @private
- */
-function utf8ToHexSequence( $str ) {
-       $buf = '';
-       foreach ( preg_split( '//u', $str, -1, PREG_SPLIT_NO_EMPTY ) as $cp ) {
-               $buf .= sprintf( '%04x ', UtfNormal\Utils::utf8ToCodepoint( $cp ) );
-       }
-
-       return rtrim( $buf );
-}
-
-/**
- * Determine the Unicode codepoint of a single-character UTF-8 sequence.
- * Does not check for invalid input data.
- *
- * @param $char String
- * @return Integer
- * @public
- * @deprecated since 1.25, use UtfNormal\Utils directly
- */
-function utf8ToCodepoint( $char ) {
-       return Utils::utf8ToCodepoint( $char );
-}
-
-/**
- * Escape a string for inclusion in a PHP single-quoted string literal.
- *
- * @param string $string string to be escaped.
- * @return String: escaped string.
- * @public
- * @deprecated since 1.25, use UtfNormal\Utils directly
- */
-function escapeSingleString( $string ) {
-       return Utils::escapeSingleString( $string );
-}
old mode 100755 (executable)
new mode 100644 (file)
index 5d9557a..c32efb9
@@ -279,13 +279,32 @@ class WANObjectCache {
        /**
         * Fetch the value of a timestamp "check" key
         *
+        * The key will be *initialized* to the current time if not set,
+        * so only call this method if this behavior is actually desired
+        *
+        * The timestamp can be used to check whether a cached value is valid.
+        * Callers should not assume that this returns the same timestamp in
+        * all datacenters due to relay delays.
+        *
+        * The level of staleness can roughly be estimated from this key, but
+        * if the key was evicted from cache, such calculations may show the
+        * time since expiry as ~0 seconds.
+        *
         * Note that "check" keys won't collide with other regular keys
         *
         * @param string $key
-        * @return float|bool TS_UNIX timestamp of the key; false if not present
+        * @return float UNIX timestamp of the key
         */
        final public function getCheckKeyTime( $key ) {
-               return self::parsePurgeValue( $this->cache->get( self::TIME_KEY_PREFIX . $key ) );
+               $key = self::TIME_KEY_PREFIX . $key;
+
+               $time = self::parsePurgeValue( $this->cache->get( $key ) );
+               if ( $time === false ) {
+                       $time = microtime( true );
+                       $this->cache->add( $key, self::PURGE_VAL_PREFIX . $time, self::CHECK_KEY_TTL );
+               }
+
+               return $time;
        }
 
        /**
diff --git a/includes/logging/ContentModelLogFormatter.php b/includes/logging/ContentModelLogFormatter.php
new file mode 100644 (file)
index 0000000..982fcc3
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+class ContentModelLogFormatter extends LogFormatter {
+       protected function getMessageParameters() {
+               $lang = $this->context->getLanguage();
+               $params = parent::getMessageParameters();
+               $params[3] = ContentHandler::getLocalizedName( $params[3], $lang );
+               $params[4] = ContentHandler::getLocalizedName( $params[4], $lang );
+               return $params;
+       }
+
+       public function getActionLinks() {
+               if ( $this->entry->isDeleted( LogPage::DELETED_ACTION ) // Action is hidden
+                       || $this->entry->getSubtype() !== 'change'
+                       || !$this->context->getUser()->isAllowed( 'editcontentmodel' )
+               ) {
+                       return '';
+               }
+
+               $params = $this->extractParameters();
+               $revert = Linker::linkKnown(
+                       SpecialPage::getTitleFor( 'ChangeContentModel' ),
+                       $this->msg( 'logentry-contentmodel-change-revertlink' )->escaped(),
+                       array(),
+                       array(
+                               'pagetitle' => $this->entry->getTarget()->getPrefixedText(),
+                               'model' => $params[3],
+                               'reason' => $this->msg( 'logentry-contentmodel-change-revert' )->inContentLanguage()->text(),
+                       )
+               );
+
+               return $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
+       }
+}
index 5af7fbe..4be20b2 100644 (file)
@@ -93,9 +93,8 @@ class BitmapHandler extends TransformationalImageHandler {
                                // JPEG decoder hint to reduce memory, available since IM 6.5.6-2
                                $decoderHint = array( '-define', "jpeg:size={$params['physicalDimensions']}" );
                        }
-               } elseif ( $params['mimeType'] == 'image/png' ) {
+               } elseif ( $params['mimeType'] == 'image/png' || $params['mimeType'] == 'image/webp' ) {
                        $quality = array( '-quality', '95' ); // zlib 9, adaptive filtering
-
                } elseif ( $params['mimeType'] == 'image/gif' ) {
                        if ( $this->getImageArea( $image ) > $wgMaxAnimatedGifArea ) {
                                // Extract initial frame only; we're so big it'll
index 17e3dda..0fee8cc 100644 (file)
@@ -1732,8 +1732,9 @@ class FormatMetadata extends ContextSource {
        }
 
        /**
-        * Turns an XMP-style multivalue array into a single value by dropping all but the first value.
-        * If the value is not a multivalue array (or a multivalue array inside a multilang array), it is returned unchanged.
+        * Turns an XMP-style multivalue array into a single value by dropping all but the first
+        * value. If the value is not a multivalue array (or a multivalue array inside a multilang
+        * array), it is returned unchanged.
         * See mediawiki.org/wiki/Manual:File_metadata_handling#Multi-language_array_format
         * @param mixed $value
         * @return mixed The value, or the first value if there were multiple ones
@@ -1742,7 +1743,8 @@ class FormatMetadata extends ContextSource {
        protected function resolveMultivalueValue( $value ) {
                if ( !is_array( $value ) ) {
                        return $value;
-               } elseif ( isset( $value['_type'] ) && $value['_type'] === 'lang' ) { // if this is a multilang array, process fields separately
+               } elseif ( isset( $value['_type'] ) && $value['_type'] === 'lang' ) {
+                       // if this is a multilang array, process fields separately
                        $newValue = array();
                        foreach ( $value as $k => $v ) {
                                $newValue[$k] = $this->resolveMultivalueValue( $v );
diff --git a/includes/media/WebP.php b/includes/media/WebP.php
new file mode 100644 (file)
index 0000000..05d12c4
--- /dev/null
@@ -0,0 +1,306 @@
+<?php
+/**
+ * Handler for Google's WebP format <https://developers.google.com/speed/webp/>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Media
+ */
+
+/**
+ * Handler for Google's WebP format <https://developers.google.com/speed/webp/>
+ *
+ * @ingroup Media
+ */
+class WebPHandler extends BitmapHandler {
+       const BROKEN_FILE = '0'; // value to store in img_metadata if error extracting metadata.
+       /**
+        * @var int Minimum chunk header size to be able to read all header types
+        */
+       const MINIMUM_CHUNK_HEADER_LENGTH = 18;
+       /**
+        * @var int version of the metadata stored in db records
+        */
+       const _MW_WEBP_VERSION = 1;
+
+       const VP8X_ICC = 32;
+       const VP8X_ALPHA = 16;
+       const VP8X_EXIF = 8;
+       const VP8X_XMP = 4;
+       const VP8X_ANIM = 2;
+
+       public function getMetadata( $image, $filename ) {
+               $parsedWebPData = self::extractMetadata( $filename );
+               if ( !$parsedWebPData ) {
+                       return self::BROKEN_FILE;
+               }
+
+               $parsedWebPData['metadata']['_MW_WEBP_VERSION'] = self::_MW_WEBP_VERSION;
+               return serialize( $parsedWebPData );
+       }
+
+       public function getMetadataType( $image ) {
+               return 'parsed-webp';
+       }
+
+       public function isMetadataValid( $image, $metadata ) {
+               if ( $metadata === self::BROKEN_FILE ) {
+                               // Do not repetitivly regenerate metadata on broken file.
+                               return self::METADATA_GOOD;
+               }
+
+               wfSuppressWarnings();
+               $data = unserialize( $metadata );
+               wfRestoreWarnings();
+
+               if ( !$data || !is_array( $data ) ) {
+                               wfDebug( __METHOD__ . " invalid WebP metadata\n" );
+
+                               return self::METADATA_BAD;
+               }
+
+               if ( !isset( $data['metadata']['_MW_WEBP_VERSION'] )
+                               || $data['metadata']['_MW_WEBP_VERSION'] != self::_MW_WEBP_VERSION
+               ) {
+                               wfDebug( __METHOD__ . " old but compatible WebP metadata\n" );
+
+                               return self::METADATA_COMPATIBLE;
+               }
+               return self::METADATA_GOOD;
+       }
+
+       /**
+        * Extracts the image size and WebP type from a file
+        *
+        * @param string $chunks Chunks as extracted by RiffExtractor
+        * @return array|bool Header data array with entries 'compression', 'width' and 'height',
+        * where 'compression' can be 'lossy', 'lossless', 'animated' or 'unknown'. False if
+        * file is not a valid WebP file.
+        */
+       public static function extractMetadata( $filename ) {
+               wfDebugLog( 'WebP', __METHOD__ . ": Extracting metadata from $filename\n" );
+
+               $info = RiffExtractor::findChunksFromFile( $filename, 100 );
+               if ( $info === false ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ": Not a valid RIFF file\n" );
+                       return false;
+               }
+
+               if ( $info['fourCC'] != 'WEBP' ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ': FourCC was not WEBP: ' .
+                               bin2hex( $info['fourCC'] ) .  " \n" );
+                       return false;
+               }
+
+               $metadata = self::extractMetadataFromChunks( $info['chunks'], $filename );
+               if ( !$metadata ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ": No VP8 chunks found\n" );
+                       return false;
+               }
+
+               return $metadata;
+       }
+
+       /**
+        * Extracts the image size and WebP type from a file based on the chunk list
+        * @param array $chunks Chunks as extracted by RiffExtractor
+        * @return array Header data array with entries 'compression', 'width' and 'height', where
+        * 'compression' can be 'lossy', 'lossless', 'animated' or 'unknown'
+        */
+       public static function extractMetadataFromChunks( $chunks, $filename ) {
+               $vp8Info = array();
+
+               foreach ( $chunks as $chunk ) {
+                       if ( !in_array( $chunk['fourCC'], array( 'VP8 ', 'VP8L', 'VP8X' ) ) ) {
+                               // Not a chunk containing interesting metadata
+                               continue;
+                       }
+
+                       $chunkHeader = file_get_contents( $filename, false, null,
+                               $chunk['start'], self::MINIMUM_CHUNK_HEADER_LENGTH );
+                       wfDebugLog( 'WebP', __METHOD__ . ": {$chunk['fourCC']}\n" );
+
+                       switch ( $chunk['fourCC'] ) {
+                               case 'VP8 ':
+                                       return array_merge( $vp8Info,
+                                               self::decodeLossyChunkHeader( $chunkHeader ) );
+                               case 'VP8L':
+                                       return array_merge( $vp8Info,
+                                               self::decodeLosslessChunkHeader( $chunkHeader ) );
+                               case 'VP8X':
+                                       $vp8Info = array_merge( $vp8Info,
+                                               self::decodeExtendedChunkHeader( $chunkHeader ) );
+                                       // Continue looking for other chunks to improve the metadata
+                                       break;
+                       }
+               }
+               return $vp8Info;
+       }
+
+       /**
+        * Decodes a lossy chunk header
+        * @param string $header Header string
+        * @return boolean|array See WebPHandler::decodeHeader
+        */
+       protected static function decodeLossyChunkHeader( $header ) {
+               // Bytes 0-3 are 'VP8 '
+               // Bytes 4-7 are the VP8 stream size
+               // Bytes 8-10 are the frame tag
+               // Bytes 11-13 are 0x9D 0x01 0x2A called the sync code
+               $syncCode = substr( $header, 11, 3 );
+               if ( $syncCode != "\x9D\x01\x2A" ) {
+                       wfDebugLog( 'WebP', __METHOD__ . ': Invalid sync code: ' .
+                               bin2hex( $syncCode ) . "\n" );
+                       return array();
+               }
+               // Bytes 14-17 are image size
+               $imageSize = unpack( 'v2', substr( $header, 14, 4 ) );
+               // Image sizes are 14 bit, 2 MSB are scaling parameters which are ignored here
+               return array(
+                       'compression' => 'lossy',
+                       'width' => $imageSize[1] & 0x3FFF,
+                       'height' => $imageSize[2] & 0x3FFF
+               );
+       }
+
+       /**
+        * Decodes a lossless chunk header
+        * @param string $header Header string
+        * @return boolean|array See WebPHandler::decodeHeader
+        */
+       public static function decodeLosslessChunkHeader( $header ) {
+               // Bytes 0-3 are 'VP8L'
+               // Bytes 4-7 are chunk stream size
+               // Byte 8 is 0x2F called the signature
+               if ( $header{8} != "\x2F" ) {
+                       wfDebugLog( 'WebP',  __METHOD__ . ': Invalid signature: ' .
+                               bin2hex( $header{8} ) . "\n" );
+                       return array();
+               }
+               // Bytes 9-12 contain the image size
+               // Bits 0-13 are width-1; bits 15-27 are height-1
+               $imageSize = unpack( 'C4', substr( $header, 9, 4 ) );
+               return array(
+                               'compression' => 'lossless',
+                               'width' => ( $imageSize[1] | ( ( $imageSize[2] & 0x3F ) << 8 ) ) + 1,
+                               'height' => ( ( ( $imageSize[2] & 0xC0 ) >> 6 ) |
+                                               ( $imageSize[3] << 2 ) | ( ( $imageSize[4] & 0x03 ) << 10 ) ) + 1
+               );
+       }
+
+       /**
+        * Decodes an extended chunk header
+        * @param string $header Header string
+        * @return boolean|array See WebPHandler::decodeHeader
+        */
+       public static function decodeExtendedChunkHeader( $header ) {
+               // Bytes 0-3 are 'VP8X'
+               // Byte 4-7 are chunk length
+               // Byte 8-11 are a flag bytes
+               $flags = unpack( 'c', substr( $header, 8, 1 ) );
+
+               // Byte 12-17 are image size (24 bits)
+               $width = unpack( 'V', substr( $header, 12, 3 ) . "\x00" );
+               $height = unpack( 'V', substr( $header, 15, 3 ) . "\x00" );
+
+               return array(
+                       'compression' => 'unknown',
+                       'animated' => ($flags[1] & self::VP8X_ANIM) == self::VP8X_ANIM,
+                       'transparency' => ($flags[1] & self::VP8X_ALPHA) == self::VP8X_ALPHA,
+                       'width' => ( $width[1] & 0xFFFFFF ) + 1,
+                       'height' => ( $height[1] & 0xFFFFFF ) + 1
+               );
+       }
+
+       public function getImageSize( $file, $path, $metadata = false ) {
+               if ( $file === null ) {
+                       $metadata = self::getMetadata( $file, $path );
+               }
+               if ( $metadata === false ) {
+                       $metadata = $file->getMetadata();
+               }
+
+               wfSuppressWarnings();
+               $metadata = unserialize( $metadata );
+               wfRestoreWarnings();
+
+               if ( $metadata == false ) {
+                       return false;
+               }
+               return array( $metadata['width'], $metadata['height'] );
+       }
+
+       /**
+        * @param $file
+        * @return bool True, not all browsers support WebP
+        */
+       public function mustRender( $file ) {
+               return true;
+       }
+
+       /**
+        * @param $file
+        * @return bool False if we are unable to render this image
+        */
+       public function canRender( $file ) {
+               if ( self::isAnimatedImage( $file ) ) {
+                       return false;
+               }
+               return true;
+       }
+
+       /**
+        * @param File $image
+        * @return bool
+        */
+       public function isAnimatedImage( $image ) {
+               $ser = $image->getMetadata();
+               if ( $ser ) {
+                       $metadata = unserialize( $ser );
+                       if ( isset($metadata['animated']) && $metadata['animated'] === true ) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
+       public function canAnimateThumbnail( $file ) {
+               return false;
+       }
+
+       /**
+        * Render files as PNG
+        *
+        * @param $ext
+        * @param $mime
+        * @param $params
+        * @return array
+        */
+       public function getThumbType( $ext, $mime, $params = null ) {
+               return array( 'png', 'image/png' );
+       }
+
+       /**
+        * Must use "im" for XCF
+        *
+        * @return string
+        */
+       protected function getScalerType( $dstPath, $checkDstPath = true ) {
+               return 'im';
+       }
+}
index 2847485..3b46249 100644 (file)
@@ -30,6 +30,7 @@ class SqlBagOStuff extends BagOStuff {
        /** @var LoadBalancer */
        protected $lb;
 
+       /** @var array */
        protected $serverInfos;
 
        /** @var array */
@@ -53,6 +54,9 @@ class SqlBagOStuff extends BagOStuff {
        /** @var string */
        protected $tableName = 'objectcache';
 
+       /** @var bool */
+       protected $slaveOnly = false;
+
        /** @var array UNIX timestamps */
        protected $connFailureTimes = array();
 
@@ -84,6 +88,10 @@ class SqlBagOStuff extends BagOStuff {
         *                  required to hold the largest shard index. Data will be
         *                  distributed across all tables by key hash. This is for
         *                  MySQL bugs 61735 and 61736.
+        *   - slaveOnly:   Whether to only use slave DBs and avoid triggering
+        *                  garbage collection logic of expired items. This only
+        *                  makes sense if the primary DB is used and only if get()
+        *                  calls will be used. This is used by ReplicatedBagOStuff.
         *
         * @param array $params
         */
@@ -112,6 +120,7 @@ class SqlBagOStuff extends BagOStuff {
                if ( isset( $params['shards'] ) ) {
                        $this->shards = intval( $params['shards'] );
                }
+               $this->slaveOnly = !empty( $params['slaveOnly'] );
        }
 
        /**
@@ -155,12 +164,13 @@ class SqlBagOStuff extends BagOStuff {
                                 * However, SQLite has an opposite behavior. And PostgreSQL needs to know
                                 * if we are in transaction or no
                                 */
-                               if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
+                               $index = $this->slaveOnly ? DB_SLAVE : DB_MASTER;
+                               if ( wfGetDB( $index )->getType() == 'mysql' ) {
                                        $this->lb = wfGetLBFactory()->newMainLB();
-                                       $db = $this->lb->getConnection( DB_MASTER );
+                                       $db = $this->lb->getConnection( $index );
                                        $db->clearFlag( DBO_TRX ); // auto-commit mode
                                } else {
-                                       $db = wfGetDB( DB_MASTER );
+                                       $db = wfGetDB( $index );
                                }
                        }
                        if ( $wgDebugDBTransactions ) {
@@ -274,12 +284,7 @@ class SqlBagOStuff extends BagOStuff {
                                try {
                                        $db = $this->getDB( $row->serverIndex );
                                        if ( $this->isExpired( $db, $row->exptime ) ) { // MISS
-                                               $this->debug( "get: key has expired, deleting" );
-                                               # Put the expiry time in the WHERE condition to avoid deleting a
-                                               # newly-inserted value
-                                               $db->delete( $row->tableName,
-                                                       array( 'keyname' => $key, 'exptime' => $row->exptime ),
-                                                       __METHOD__ );
+                                               $this->debug( "get: key has expired" );
                                        } else { // HIT
                                                $values[$key] = $this->unserialize( $db->decodeBlob( $row->value ) );
                                        }
@@ -514,7 +519,7 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        protected function garbageCollect() {
-               if ( !$this->purgePeriod ) {
+               if ( !$this->purgePeriod || $this->slaveOnly ) {
                        // Disabled
                        return;
                }
@@ -726,6 +731,8 @@ class SqlBagOStuff extends BagOStuff {
         * @param int $serverIndex
         */
        protected function markServerDown( $exception, $serverIndex ) {
+               unset( $this->conns[$serverIndex] ); // bug T103435
+
                if ( isset( $this->connFailureTimes[$serverIndex] ) ) {
                        if ( time() - $this->connFailureTimes[$serverIndex] >= 60 ) {
                                unset( $this->connFailureTimes[$serverIndex] );
index 053753e..f213f6a 100644 (file)
@@ -1706,10 +1706,8 @@ class Article implements Page {
 
                if ( $user->isAllowed( 'suppressrevision' ) ) {
                        $suppress = Html::openElement( 'div', array( 'id' => 'wpDeleteSuppressRow' ) ) .
-                               "<strong>" .
-                                               Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
-                                                       'wpSuppress', 'wpSuppress', false, array( 'tabindex' => '4' ) ) .
-                                       "</strong>" .
+                               Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
+                                       'wpSuppress', 'wpSuppress', false, array( 'tabindex' => '4' ) ) .
                                Html::closeElement( 'div' );
                } else {
                        $suppress = '';
@@ -1797,8 +1795,10 @@ class Article implements Page {
         */
        public function doDelete( $reason, $suppress = false ) {
                $error = '';
-               $outputPage = $this->getContext()->getOutput();
-               $status = $this->mPage->doDeleteArticleReal( $reason, $suppress, 0, true, $error );
+               $context = $this->getContext();
+               $outputPage = $context->getOutput();
+               $user = $context->getUser();
+               $status = $this->mPage->doDeleteArticleReal( $reason, $suppress, 0, true, $error, $user );
 
                if ( $status->isGood() ) {
                        $deleted = $this->getTitle()->getPrefixedText();
index 3183689..1603fc6 100644 (file)
@@ -5075,7 +5075,7 @@ class Parser {
         * in the Parser class.
         *
         * This interface (introduced r61913) appears to be undocumented, but
-        * 'markerName' is used by some core tag hooks to override which strip
+        * 'markerType' is used by some core tag hooks to override which strip
         * array their results are placed in. **Use great caution if attempting
         * this interface, as it is not documented and injudicious use could smash
         * private variables.**
index 117b6e7..44b0bc9 100644 (file)
@@ -217,7 +217,6 @@ class ParserCache {
                        ? $article->getPage()
                        : $article;
 
-
                if ( !$useOutdated && $value->expired( $touched ) ) {
                        wfIncrStats( "pcache.miss.expired" );
                        $cacheTime = $value->getCacheTime();
index a8db1c9..7068bd7 100644 (file)
@@ -103,7 +103,7 @@ class ParserOutput extends CacheTime {
                        $text = str_replace( array( Parser::TOC_START, Parser::TOC_END ), '', $text );
                } else {
                        $text = preg_replace(
-                               '#' . preg_quote( Parser::TOC_START ) . '.*?' . preg_quote( Parser::TOC_END ) . '#s',
+                               '#' . preg_quote( Parser::TOC_START, '#' ) . '.*?' . preg_quote( Parser::TOC_END, '#' ) . '#s',
                                '',
                                $text
                        );
index 5692d73..1ec14aa 100644 (file)
@@ -192,10 +192,11 @@ abstract class PoolCounter {
        }
 
        /**
-        * Given a key (any string) and the number of lots, returns a slot number (an integer from the [0..($slots-1)] range).
-        * This is used for a global limit on the number of instances  of a given type that can acquire a lock.
-        * The hashing is deterministic so that PoolCounter::$workers is always an upper limit of how many instances with
-        * the same key can acquire a lock.
+        * Given a key (any string) and the number of lots, returns a slot number (an integer from
+        * the [0..($slots-1)] range). This is used for a global limit on the number of instances of
+        * a given type that can acquire a lock. The hashing is deterministic so that
+        * PoolCounter::$workers is always an upper limit of how many instances with the same key
+        * can acquire a lock.
         *
         * @param string $key PoolCounter instance key (any string)
         * @param int $slots The number of slots (max allowed value is 65536)
index bf4b85c..09f5688 100644 (file)
@@ -45,7 +45,11 @@ class ProfilerOutputDump extends ProfilerOutput {
 
        public function log( array $stats ) {
                $data = $this->collector->getRawData();
-               $filename = sprintf( "%s/%s.%s%s", $this->params['outputDir'], uniqid(), $this->collector->getProfileID(), $this->suffix );
+               $filename = sprintf( "%s/%s.%s%s",
+                       $this->params['outputDir'],
+                       uniqid(),
+                       $this->collector->getProfileID(),
+                       $this->suffix );
                file_put_contents( $filename, serialize( $data ) );
        }
 }
index 6752779..dc24f18 100644 (file)
@@ -35,7 +35,7 @@ class ProfilerOutputText extends ProfilerOutput {
                parent::__construct( $collector, $params );
                $this->thresholdMs = isset( $params['thresholdMs'] )
                        ? $params['thresholdMs']
-                       : .25;
+                       : 1.0;
        }
        public function log( array $stats ) {
                if ( $this->collector->getTemplated() ) {
index 92b0156..5d0ed3c 100644 (file)
@@ -206,7 +206,7 @@ class ResourceLoader implements LoggerAwareInterface {
                if ( !$options['cache'] ) {
                        $result = $this->applyFilter( $filter, $data );
                } else {
-                       $key = wfMemcKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
+                       $key = wfGlobalCacheKey( 'resourceloader', 'filter', $filter, self::$filterCacheVersion, md5( $data ) );
                        $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
                        $cacheEntry = $cache->get( $key );
                        if ( is_string( $cacheEntry ) ) {
@@ -215,8 +215,12 @@ class ResourceLoader implements LoggerAwareInterface {
                        }
                        $result = '';
                        try {
-                               wfIncrStats( "resourceloader_cache.$filter.miss" );
+                               $stats = RequestContext::getMain()->getStats();
+                               $statStart = microtime( true );
+
                                $result = $this->applyFilter( $filter, $data );
+
+                               $stats->timing( "resourceloader_cache.$filter.miss", microtime( true ) - $statStart );
                                if ( $options['cacheReport'] ) {
                                        $result .= "\n/* cache key: $key */";
                                }
@@ -234,16 +238,17 @@ class ResourceLoader implements LoggerAwareInterface {
        }
 
        private function applyFilter( $filter, $data ) {
-                       switch ( $filter ) {
-                               case 'minify-js':
-                                       return JavaScriptMinifier::minify( $data,
-                                               $this->config->get( 'ResourceLoaderMinifierStatementsOnOwnLine' ),
-                                               $this->config->get( 'ResourceLoaderMinifierMaxLineLength' )
-                                       );
-                               case 'minify-css':
-                                       return CSSMin::minify( $data );
-                       }
-                       return $data;
+               switch ( $filter ) {
+                       case 'minify-js':
+                               return JavaScriptMinifier::minify( $data,
+                                       $this->config->get( 'ResourceLoaderMinifierStatementsOnOwnLine' ),
+                                       $this->config->get( 'ResourceLoaderMinifierMaxLineLength' )
+                               );
+                       case 'minify-css':
+                               return CSSMin::minify( $data );
+               }
+
+               return $data;
        }
 
        /* Methods */
index 5e7067f..94edb36 100644 (file)
@@ -480,6 +480,8 @@ abstract class ResourceLoaderModule {
         */
        final protected function buildContent( ResourceLoaderContext $context ) {
                $rl = $context->getResourceLoader();
+               $stats = RequestContext::getMain()->getStats();
+               $statStart = microtime( true );
 
                // Only include properties that are relevant to this context (e.g. only=scripts)
                // and that are non-empty (e.g. don't include "templates" for modules without
@@ -568,6 +570,11 @@ abstract class ResourceLoaderModule {
                        $content['templates'] = $templates;
                }
 
+               $statTiming = microtime( true ) - $statStart;
+               $statName = str_replace( '.', '_', $this->getName() );
+               $stats->timing( "resourceloader_build.all", $statTiming );
+               $stats->timing( "resourceloader_build.$statName", $statTiming );
+
                return $content;
        }
 
index b913235..23bd394 100644 (file)
@@ -434,7 +434,8 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        $legend .= Html::element( 'dt',
                                array( 'class' => $cssClass ), $context->msg( $letter )->text()
                        ) . "\n" .
-                       Html::rawElement( 'dd', array(),
+                       Html::rawElement( 'dd',
+                               array( 'class' => Sanitizer::escapeClass( 'mw-changeslist-legend-' . $key ) ),
                                $context->msg( $label )->parse()
                        ) . "\n";
                }
index a7a43b0..eb18b8f 100644 (file)
@@ -662,7 +662,6 @@ class SpecialPage {
         */
        public function getFinalGroupName() {
                $name = $this->getName();
-               $specialPageGroups = $this->getConfig()->get( 'SpecialPageGroups' );
 
                // Allow overbidding the group from the wiki side
                $msg = $this->msg( 'specialpages-specialpagegroup-' . strtolower( $name ) )->inContentLanguage();
@@ -671,18 +670,6 @@ class SpecialPage {
                } else {
                        // Than use the group from this object
                        $group = $this->getGroupName();
-
-                       // Group '-' is used as default to have the chance to determine,
-                       // if the special pages overrides this method,
-                       // if not overridden, $wgSpecialPageGroups is checked for b/c
-                       if ( $group === '-' && isset( $specialPageGroups[$name] ) ) {
-                               $group = $specialPageGroups[$name];
-                       }
-               }
-
-               // never give '-' back, change to 'other'
-               if ( $group === '-' ) {
-                       $group = 'other';
                }
 
                return $group;
@@ -697,8 +684,6 @@ class SpecialPage {
         * @since 1.21
         */
        protected function getGroupName() {
-               // '-' used here to determine, if this group is overridden or has a hardcoded 'other'
-               // Needed for b/c in getFinalGroupName
-               return '-';
+               return 'other';
        }
 }
index 3786b36..e794a5d 100644 (file)
@@ -218,7 +218,7 @@ class SpecialPageFactory {
                global $wgSpecialPages;
                global $wgDisableInternalSearch, $wgEmailAuthentication;
                global $wgEnableEmail, $wgEnableJavaScriptTest;
-               global $wgPageLanguageUseDB;
+               global $wgPageLanguageUseDB, $wgContentHandlerUseDB;
 
                if ( !is_array( self::$list ) ) {
 
@@ -244,6 +244,9 @@ class SpecialPageFactory {
                        if ( $wgPageLanguageUseDB ) {
                                self::$list['PageLanguage'] = 'SpecialPageLanguage';
                        }
+                       if ( $wgContentHandlerUseDB ) {
+                               self::$list['ChangeContentModel'] = 'SpecialChangeContentModel';
+                       }
 
                        self::$list['Activeusers'] = 'SpecialActiveUsers';
 
@@ -260,14 +263,13 @@ class SpecialPageFactory {
        }
 
        /**
-        * Initialise and return the list of special page aliases.  Returns an object with
-        * properties which can be accessed $obj->pagename - each property name is an
-        * alias, with the value being the canonical name of the special page. All
-        * registered special pages are guaranteed to map to themselves.
-        * @return object
+        * Initialise and return the list of special page aliases. Returns an array where
+        * the key is an alias, and the value is the canonical name of the special page.
+        * All registered special pages are guaranteed to map to themselves.
+        * @return array
         */
-       private static function getAliasListObject() {
-               if ( !is_object( self::$aliases ) ) {
+       private static function getAliasList() {
+               if ( is_null( self::$aliases ) ) {
                        global $wgContLang;
                        $aliases = $wgContLang->getSpecialPageAliases();
                        $pageList = self::getPageList();
@@ -310,9 +312,6 @@ class SpecialPageFactory {
                                        }
                                }
                        }
-
-                       // Cast to object: func()[$key] doesn't work, but func()->$key does
-                       self::$aliases = (object)self::$aliases;
                }
 
                return self::$aliases;
@@ -332,8 +331,9 @@ class SpecialPageFactory {
 
                $caseFoldedAlias = $wgContLang->caseFold( $bits[0] );
                $caseFoldedAlias = str_replace( ' ', '_', $caseFoldedAlias );
-               if ( isset( self::getAliasListObject()->$caseFoldedAlias ) ) {
-                       $name = self::getAliasListObject()->$caseFoldedAlias;
+               $aliases = self::getAliasList();
+               if ( isset( $aliases[$caseFoldedAlias] ) ) {
+                       $name = $aliases[$caseFoldedAlias];
                } else {
                        return array( null, null );
                }
@@ -347,34 +347,6 @@ class SpecialPageFactory {
                return array( $name, $par );
        }
 
-       /**
-        * Add a page to a certain display group for Special:SpecialPages
-        *
-        * @param SpecialPage|string $page
-        * @param string $group
-        * @deprecated since 1.21 Override SpecialPage::getGroupName
-        */
-       public static function setGroup( $page, $group ) {
-               wfDeprecated( __METHOD__, '1.21' );
-
-               global $wgSpecialPageGroups;
-               $name = is_object( $page ) ? $page->getName() : $page;
-               $wgSpecialPageGroups[$name] = $group;
-       }
-
-       /**
-        * Get the group that the special page belongs in on Special:SpecialPage
-        *
-        * @param SpecialPage $page
-        * @return string
-        * @deprecated since 1.21 Use SpecialPage::getFinalGroupName
-        */
-       public static function getGroup( &$page ) {
-               wfDeprecated( __METHOD__, '1.21' );
-
-               return $page->getFinalGroupName();
-       }
-
        /**
         * Check if a given name exist as a special page or as a special page alias
         *
@@ -637,7 +609,7 @@ class SpecialPageFactory {
        public static function getLocalNameFor( $name, $subpage = false ) {
                global $wgContLang;
                $aliases = $wgContLang->getSpecialPageAliases();
-               $aliasList = self::getAliasListObject();
+               $aliasList = self::getAliasList();
 
                // Find the first alias that maps back to $name
                if ( isset( $aliases[$name] ) ) {
@@ -645,8 +617,8 @@ class SpecialPageFactory {
                        foreach ( $aliases[$name] as $alias ) {
                                $caseFoldedAlias = $wgContLang->caseFold( $alias );
                                $caseFoldedAlias = str_replace( ' ', '_', $caseFoldedAlias );
-                               if ( isset( $aliasList->$caseFoldedAlias ) &&
-                                       $aliasList->$caseFoldedAlias === $name
+                               if ( isset( $aliasList[$caseFoldedAlias] ) &&
+                                       $aliasList[$caseFoldedAlias] === $name
                                ) {
                                        $name = $alias;
                                        $found = true;
index f3e896a..41c2f93 100644 (file)
@@ -130,7 +130,7 @@ class AllMessagesTablePager extends TablePager {
 
                if ( $prefix !== null ) {
                        $this->displayPrefix = $prefix->getDBkey();
-                       $this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i';
+                       $this->prefix = '/^' . preg_quote( $this->displayPrefix, '/' ) . '/i';
                } else {
                        $this->displayPrefix = false;
                        $this->prefix = false;
diff --git a/includes/specials/SpecialChangeContentModel.php b/includes/specials/SpecialChangeContentModel.php
new file mode 100644 (file)
index 0000000..7647999
--- /dev/null
@@ -0,0 +1,234 @@
+<?php
+
+class SpecialChangeContentModel extends FormSpecialPage {
+
+       public function __construct() {
+               parent::__construct( 'ChangeContentModel', 'editcontentmodel' );
+       }
+
+       /**
+        * @var Title|null
+        */
+       private $title;
+
+       /**
+        * @var Revision|bool|null
+        *
+        * A Revision object, false if no revision exists, null if not loaded yet
+        */
+       private $oldRevision;
+
+       protected function setParameter( $par ) {
+               $par = $this->getRequest()->getVal( 'pagetitle', $par );
+               $title = Title::newFromText( $par );
+               if ( $title ) {
+                       $this->title = $title;
+                       $this->par = $title->getPrefixedText();
+               } else {
+                       $this->par = '';
+               }
+       }
+
+       protected function getDisplayFormat() {
+               return 'ooui';
+       }
+
+       protected function alterForm( HTMLForm $form ) {
+               if ( !$this->title ) {
+                       $form->setMethod( 'GET' );
+               }
+       }
+
+       public function validateTitle( $title ) {
+               if ( !$title ) {
+                       // No form input yet
+                       return true;
+               }
+               try {
+                       $titleObj = Title::newFromTextThrow( $title );
+               } catch ( MalformedTitleException $e ) {
+                       $msg = $this->msg( $e->getErrorMessage() );
+                       $params = $e->getErrorMessageParameters();
+                       if ( $params ) {
+                               $msg->params( $params );
+                       }
+                       return $msg->parse();
+               }
+               if ( !$titleObj->canExist() ) {
+                       return $this->msg(
+                               'changecontentmodel-title-cantexist',
+                               $titleObj->getPrefixedText()
+                       )->escaped();
+               }
+
+               $this->oldRevision = Revision::newFromTitle( $titleObj ) ?: false;
+
+               if ( $this->oldRevision ) {
+                       $oldContent = $this->oldRevision->getContent();
+                       if ( !$oldContent->getContentHandler()->supportsDirectEditing() ) {
+                               return $this->msg( 'changecontentmodel-nodirectediting' )
+                                       ->params( ContentHandler::getLocalizedName( $oldContent->getModel() ) )
+                                       ->escaped();
+                       }
+               }
+
+               return true;
+       }
+
+       protected function getFormFields() {
+               $that = $this;
+               $fields = array(
+                       'pagetitle' => array(
+                               'type' => 'text',
+                               'name' => 'pagetitle',
+                               'default' => $this->par,
+                               'label-message' => 'changecontentmodel-title-label',
+                               'validation-callback' => array( $this, 'validateTitle' ),
+                       ),
+               );
+               if ( $this->title ) {
+                       $fields['pagetitle']['readonly'] = true;
+                       $fields += array(
+                               'model' => array(
+                                       'type' => 'select',
+                                       'name' => 'model',
+                                       'options' => $this->getOptionsForTitle( $this->title ),
+                                       'label-message' => 'changecontentmodel-model-label'
+                               ),
+                               'reason' => array(
+                                       'type' => 'text',
+                                       'name' => 'reason',
+                                       'validation-callback' => function( $reason ) use ( $that ) {
+                                               $match = EditPage::matchSummarySpamRegex( $reason );
+                                               if ( $match ) {
+                                                       return $that->msg( 'spamprotectionmatch', $match )->parse();
+                                               }
+
+                                               return true;
+                                       },
+                                       'label-message' => 'changecontentmodel-reason-label',
+                               ),
+                       );
+               }
+
+               return $fields;
+       }
+
+       private function getOptionsForTitle( Title $title = null ) {
+               $models = ContentHandler::getContentModels();
+               $options = array();
+               foreach ( $models as $model ) {
+                       $handler = ContentHandler::getForModelID( $model );
+                       if ( !$handler->supportsDirectEditing() ) {
+                               continue;
+                       }
+                       if ( $title ) {
+                               if ( $title->getContentModel() === $model ) {
+                                       continue;
+                               }
+                               if ( !$handler->canBeUsedOn( $title ) ) {
+                                       continue;
+                               }
+                       }
+                       $options[ContentHandler::getLocalizedName( $model )] = $model;
+               }
+
+               return $options;
+       }
+
+       public function onSubmit( array $data ) {
+               global $wgContLang;
+
+               if ( $data['pagetitle'] === '' ) {
+                       // Initial form view of special page, pass
+                       return false;
+               }
+
+               // At this point, it has to be a POST request. This is enforced by HTMLForm,
+               // but lets be safe verify that.
+               if ( !$this->getRequest()->wasPosted() ) {
+                       throw new RuntimeException( "Form submission was not POSTed" );
+               }
+
+               $this->title = Title::newFromText( $data['pagetitle' ] );
+               $user = $this->getUser();
+               // Check permissions and make sure the user has permission to edit the specific page
+               $errors = $this->title->getUserPermissionsErrors( 'editcontentmodel', $user );
+               $errors = wfMergeErrorArrays( $errors, $this->title->getUserPermissionsErrors( 'edit', $user ) );
+               if ( $errors ) {
+                       $out = $this->getOutput();
+                       $wikitext = $out->formatPermissionsErrorMessage( $errors );
+                       // Hack to get our wikitext parsed
+                       return Status::newFatal( new RawMessage( '$1', array( $wikitext ) ) );
+               }
+
+               $page = WikiPage::factory( $this->title );
+               if ( $this->oldRevision === null ) {
+                       $this->oldRevision = $page->getRevision() ?: false;
+               }
+               $oldModel = $this->title->getContentModel();
+               if ( $this->oldRevision ) {
+                       $oldContent = $this->oldRevision->getContent();
+                       try {
+                               $newContent = ContentHandler::makeContent(
+                                       $oldContent->getNativeData(), $this->title, $data['model']
+                               );
+                       } catch ( MWException $e ) {
+                               return Status::newFatal(
+                                       $this->msg( 'changecontentmodel-cannot-convert' )
+                                               ->params(
+                                                       $this->title->getPrefixedText(),
+                                                       ContentHandler::getLocalizedName( $data['model'] )
+                                               )
+                               );
+                       }
+               } else {
+                       // Page doesn't exist, create an empty content object
+                       $newContent = ContentHandler::getForModelID( $data['model'] )->makeEmptyContent();
+               }
+               $flags = $this->oldRevision ? EDIT_UPDATE : EDIT_NEW;
+               if ( $user->isAllowed( 'bot' ) ) {
+                       $flags |= EDIT_FORCE_BOT;
+               }
+
+               $log = new ManualLogEntry( 'contentmodel', 'change' );
+               $log->setPerformer( $user );
+               $log->setTarget( $this->title );
+               $log->setComment( $data['reason'] );
+               $log->setParameters( array(
+                       '4::oldmodel' => $oldModel,
+                       '5::newmodel' => $data['model']
+               ) );
+
+               $formatter = LogFormatter::newFromEntry( $log );
+               $formatter->setContext( RequestContext::newExtraneousContext( $this->title ) );
+               $reason = $formatter->getPlainActionText();
+               if ( $data['reason'] !== '' ) {
+                       $reason .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $data['reason'];
+               }
+               # Truncate for whole multibyte characters.
+               $reason = $wgContLang->truncate( $reason, 255 );
+
+               $status = $page->doEditContent(
+                       $newContent,
+                       $reason,
+                       $flags,
+                       $this->oldRevision ? $this->oldRevision->getId() : false,
+                       $user
+               );
+               if ( !$status->isOK() ) {
+                       return $status;
+               }
+
+               $logid = $log->insert();
+               $log->publish( $logid );
+
+               return $status;
+       }
+
+       public function onSuccess() {
+               $out = $this->getOutput();
+               $out->setPageTitle( $this->msg( 'changecontentmodel-success-title' ) );
+               $out->addWikiMsg( 'changecontentmodel-success-text', $this->title );
+       }
+}
index babb315..c2aa704 100644 (file)
@@ -107,7 +107,7 @@ class SpecialChangeEmail extends FormSpecialPage {
        }
 
        protected function getDisplayFormat() {
-               return 'vform';
+               return 'ooui';
        }
 
        protected function alterForm( HTMLForm $form ) {
index c364f70..47b426d 100644 (file)
@@ -156,7 +156,6 @@ class DoubleRedirectsPage extends QueryPage {
                        $this->msg( 'parentheses', $this->msg( 'editlink' )->text() )->escaped(),
                        array(),
                        array(
-                               'redirect' => 'no',
                                'action' => 'edit'
                        )
                );
index 9476819..6756f27 100644 (file)
@@ -94,7 +94,7 @@ class SpecialPageLanguage extends FormSpecialPage {
        }
 
        protected function getDisplayFormat() {
-               return 'vform';
+               return 'ooui';
        }
 
        public function alterForm( HTMLForm $form ) {
index a2dc2ad..8cad616 100644 (file)
@@ -104,7 +104,7 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        protected function getDisplayFormat() {
-               return 'vform';
+               return 'ooui';
        }
 
        public function alterForm( HTMLForm $form ) {
index ba2b9a5..27a3a69 100644 (file)
@@ -123,6 +123,10 @@ class SpecialResetTokens extends FormSpecialPage {
                }
        }
 
+       protected function getDisplayFormat() {
+               return 'ooui';
+       }
+
        public function onSubmit( array $formData ) {
                if ( $formData['tokens'] ) {
                        $user = $this->getUser();
index 8a66273..5732ef9 100644 (file)
@@ -757,7 +757,7 @@ class SpecialUndelete extends SpecialPage {
         * @return bool
         */
        protected function isAllowed( $permission, User $user = null ) {
-               $user = $user ? : $this->getUser();
+               $user = $user ?: $this->getUser();
                if ( $this->mTargetObj !== null ) {
                        return $this->mTargetObj->userCan( $permission, $user );
                } else {
index ab53951..0158fdb 100644 (file)
@@ -106,7 +106,7 @@ class UserrightsPage extends SpecialPage {
                        }
                }
 
-               if ( User::getCanonicalName( $this->mTarget ) === $user->getName() ) {
+               if ( $this->mTarget !== null && User::getCanonicalName( $this->mTarget ) === $user->getName() ) {
                        $this->isself = true;
                }
 
@@ -145,6 +145,7 @@ class UserrightsPage extends SpecialPage {
                if (
                        $request->wasPosted() &&
                        $request->getCheck( 'saveusergroups' ) &&
+                       $this->mTarget !== null &&
                        $user->matchEditToken( $request->getVal( 'wpEditToken' ), $this->mTarget )
                ) {
                        // save settings
index 4442d81..0a91957 100644 (file)
@@ -522,6 +522,9 @@ class SpecialVersion extends SpecialPage {
                $out .= Html::openElement( 'tr' )
                        . Html::element( 'th', array(), $this->msg( 'version-libraries-library' )->text() )
                        . Html::element( 'th', array(), $this->msg( 'version-libraries-version' )->text() )
+                       . Html::element( 'th', array(), $this->msg( 'version-libraries-license' )->text() )
+                       . Html::element( 'th', array(), $this->msg( 'version-libraries-description' )->text() )
+                       . Html::element( 'th', array(), $this->msg( 'version-libraries-authors' )->text() )
                        . Html::closeElement( 'tr' );
 
                foreach ( $lock->getInstalledDependencies() as $name => $info ) {
@@ -530,13 +533,28 @@ class SpecialVersion extends SpecialPage {
                                // in their proper section
                                continue;
                        }
+                       $authors = array_map( function( $arr ) {
+                               // If a homepage is set, link to it
+                               if ( isset( $arr['homepage'] ) ) {
+                                       return "[{$arr['homepage']} {$arr['name']}]";
+                               }
+                               return $arr['name'];
+                       }, $info['authors'] );
+                       $authors = $this->listAuthors( $authors, false, "$IP/vendor/$name" );
                        $out .= Html::openElement( 'tr' )
                                . Html::rawElement(
                                        'td',
                                        array(),
-                                       Linker::makeExternalLink( "https://packagist.org/packages/$name", $name )
+                                       Linker::makeExternalLink(
+                                               "https://packagist.org/packages/$name", $name,
+                                               true, '',
+                                               array( 'class' => 'mw-version-library-name' )
+                                       )
                                )
                                . Html::element( 'td', array(), $info['version'] )
+                               . Html::element( 'td', array(), $this->listToText( $info['licenses'] ) )
+                               . Html::element( 'td', array(), $info['description'] )
+                               . Html::rawElement( 'td', array(), $authors )
                                . Html::closeElement( 'tr' );
                }
                $out .= Html::closeElement( 'table' );
@@ -959,7 +977,8 @@ class SpecialVersion extends SpecialPage {
         *   'and others' will be added to the end of the credits.
         *
         * @param string|array $authors
-        * @param string $extName Name of the extension for link creation
+        * @param string|bool $extName Name of the extension for link creation,
+        *   false if no links should be created
         * @param string $extDir Path to the extension root directory
         *
         * @return string HTML fragment
@@ -972,7 +991,7 @@ class SpecialVersion extends SpecialPage {
                        if ( $item == '...' ) {
                                $hasOthers = true;
 
-                               if ( $this->getExtAuthorsFileName( $extDir ) ) {
+                               if ( $extName && $this->getExtAuthorsFileName( $extDir ) ) {
                                        $text = Linker::link(
                                                $this->getPageTitle( "Credits/$extName" ),
                                                $this->msg( 'version-poweredby-others' )->escaped()
@@ -991,7 +1010,7 @@ class SpecialVersion extends SpecialPage {
                        }
                }
 
-               if ( !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) {
+               if ( $extName && !$hasOthers && $this->getExtAuthorsFileName( $extDir ) ) {
                        $list[] = $text = Linker::link(
                                $this->getPageTitle( "Credits/$extName" ),
                                $this->msg( 'version-poweredby-others' )->escaped()
index fb89e4f..0892ce4 100644 (file)
@@ -30,7 +30,8 @@ class MalformedTitleException extends Exception {
        /**
         * @param string $errorMessage Localisation message describing the error (since MW 1.26)
         * @param string $titleText The invalid title text (since MW 1.26)
-        * @param string[] $errorMessageParameters Additional parameters for the error message. $titleText will be appended if it's not null. (since MW 1.26)
+        * @param string[] $errorMessageParameters Additional parameters for the error message.
+        * $titleText will be appended if it's not null. (since MW 1.26)
         */
        public function __construct( $errorMessage = null, $titleText = null, $errorMessageParameters = array() ) {
                $this->errorMessage = $errorMessage;
index dd1a38a..7d63156 100644 (file)
@@ -119,85 +119,88 @@ class AutoloadGenerator {
        }
 
        /**
-        * Write out all known classes to autoload.php in
-        * the provided basedir
+        * Updates the AutoloadClasses field at the given
+        * filename.
         *
-        * @param string $commandName Value used in file comment to direct
-        *  developers towards the appropriate way to update the autoload.
+        * @param {string} $filename Filename of JSON
+        *  extension/skin registration file
         */
-       public function generateAutoload( $commandName = 'AutoloadGenerator' ) {
-
-               // We need to check whether an extenson.json exists or not, and
-               // incase it doesn't, update the autoload.php file.
-
-               if ( file_exists( $this->basepath . '/extension.json' ) ) {
-                       require_once __DIR__ . '/../../includes/json/FormatJson.php';
-                       $key = 'AutoloadClasses';
-                       $json = FormatJson::decode( file_get_contents( $this->basepath
-                               . '/extension.json' ), true );
-                       unset( $json[$key] );
-                       // Inverting the key-value pairs so that they become of the
-                       // format class-name : path when they get converted into json.
-                       foreach ( $this->classes as $path => $contained ) {
-                               foreach ( $contained as $fqcn ) {
-
-                                       // Using substr to remove the leading '/'
-                                       $json[$key][$fqcn] = substr( $path, 1 );
-                               }
-                       }
-                       foreach ( $this->overrides as $path => $fqcn ) {
+       protected function generateJsonAutoload( $filename ) {
+               require_once __DIR__ . '/../../includes/json/FormatJson.php';
+               $key = 'AutoloadClasses';
+               $json = FormatJson::decode( file_get_contents( $filename ), true );
+               unset( $json[$key] );
+               // Inverting the key-value pairs so that they become of the
+               // format class-name : path when they get converted into json.
+               foreach ( $this->classes as $path => $contained ) {
+                       foreach ( $contained as $fqcn ) {
 
                                // Using substr to remove the leading '/'
                                $json[$key][$fqcn] = substr( $path, 1 );
                        }
+               }
+               foreach ( $this->overrides as $path => $fqcn ) {
 
-                       // Sorting the list of autoload classes.
-                       ksort( $json[$key] );
+                       // Using substr to remove the leading '/'
+                       $json[$key][$fqcn] = substr( $path, 1 );
+               }
 
-                       // Update extension.json, using constants for the required
-                       // formatting.
-                       file_put_contents( $this->basepath . '/extension.json',
-                               FormatJson::encode( $json, true ) . "\n" );
-               } else {
-                       $content = array();
-
-                       // We need to generate a line each rather than exporting the
-                       // full array so __DIR__ can be prepended to all the paths
-                       $format = "%s => __DIR__ . %s,";
-                       foreach ( $this->classes as $path => $contained ) {
-                               $exportedPath = var_export( $path, true );
-                               foreach ( $contained as $fqcn ) {
-                                       $content[$fqcn] = sprintf(
-                                               $format,
-                                               var_export( $fqcn, true ),
-                                               $exportedPath
-                                       );
-                               }
-                       }
+               // Sorting the list of autoload classes.
+               ksort( $json[$key] );
 
-                       foreach ( $this->overrides as $fqcn => $path ) {
+               // Update file, using constants for the required
+               // formatting.
+               file_put_contents( $filename,
+                       FormatJson::encode( $json, true ) . "\n" );
+       }
+
+       /**
+        * Generates a PHP file setting up autoload information.
+        *
+        * @param {string} $commandName Command name to include in comment
+        * @param {string} $filename of PHP file to put autoload information in.
+        */
+       protected function generatePHPAutoload( $commandName, $filename ) {
+               // No existing JSON file found; update/generate PHP file
+               $content = array();
+
+               // We need to generate a line each rather than exporting the
+               // full array so __DIR__ can be prepended to all the paths
+               $format = "%s => __DIR__ . %s,";
+               foreach ( $this->classes as $path => $contained ) {
+                       $exportedPath = var_export( $path, true );
+                       foreach ( $contained as $fqcn ) {
                                $content[$fqcn] = sprintf(
                                        $format,
                                        var_export( $fqcn, true ),
-                                       var_export( $path, true )
+                                       $exportedPath
                                );
                        }
+               }
 
-                       // sort for stable output
-                       ksort( $content );
+               foreach ( $this->overrides as $fqcn => $path ) {
+                       $content[$fqcn] = sprintf(
+                               $format,
+                               var_export( $fqcn, true ),
+                               var_export( $path, true )
+                       );
+               }
 
-                       // extensions using this generator are appending to the existing
-                       // autoload.
-                       if ( $this->variableName === 'wgAutoloadClasses' ) {
-                               $op = '+=';
-                       } else {
-                               $op = '=';
-                       }
+               // sort for stable output
+               ksort( $content );
+
+               // extensions using this generator are appending to the existing
+               // autoload.
+               if ( $this->variableName === 'wgAutoloadClasses' ) {
+                       $op = '+=';
+               } else {
+                       $op = '=';
+               }
 
-                       $output = implode( "\n\t", $content );
-                       file_put_contents(
-                               $this->basepath . '/autoload.php',
-                               <<<EOD
+               $output = implode( "\n\t", $content );
+               file_put_contents(
+                       $filename,
+                       <<<EOD
 <?php
 // This file is generated by $commandName, do not adjust manually
 // @codingStandardsIgnoreFile
@@ -208,7 +211,33 @@ global \${$this->variableName};
 );
 
 EOD
-                       );
+               );
+
+       }
+
+       /**
+        * Write out all known classes to autoload.php, extension.json, or skin.json in
+        * the provided basedir
+        *
+        * @param string $commandName Value used in file comment to direct
+        *  developers towards the appropriate way to update the autoload.
+        */
+       public function generateAutoload( $commandName = 'AutoloadGenerator' ) {
+
+               // We need to check whether an extenson.json or skin.json exists or not, and
+               // incase it doesn't, update the autoload.php file.
+
+               $jsonFilename = null;
+               if ( file_exists( $this->basepath . "/extension.json" ) ) {
+                       $jsonFilename = $this->basepath . "/extension.json";
+               } elseif ( file_exists( $this->basepath . "/skin.json" ) ) {
+                       $jsonFilename = $this->basepath . "/skin.json";
+               }
+
+               if ( $jsonFilename !== null ) {
+                       $this->generateJsonAutoload( $jsonFilename );
+               } else {
+                       $this->generatePHPAutoload( $commandName, $this->basepath . '/autoload.php' );
                }
        }
        /**
diff --git a/includes/widget/AUTHORS.txt b/includes/widget/AUTHORS.txt
new file mode 100644 (file)
index 0000000..10064b2
--- /dev/null
@@ -0,0 +1,10 @@
+Authors (alphabetically)
+
+Alex Monk <krenair@wikimedia.org>
+Bartosz Dziewoński <bdziewonski@wikimedia.org>
+Ed Sanders <esanders@wikimedia.org>
+James D. Forrester <jforrester@wikimedia.org>
+Roan Kattouw <roan@wikimedia.org>
+Sucheta Ghoshal <sghoshal@wikimedia.org>
+Timo Tijhof <timo@wikimedia.org>
+Trevor Parscal <trevor@wikimedia.org>
diff --git a/includes/widget/LICENSE.txt b/includes/widget/LICENSE.txt
new file mode 100644 (file)
index 0000000..b03ca80
--- /dev/null
@@ -0,0 +1,25 @@
+Copyright (c) 2011-2015 MediaWiki Widgets Team and others under the
+terms of The MIT License (MIT), as follows:
+
+This software consists of voluntary contributions made by many
+individuals (AUTHORS.txt) For exact contribution history, see the
+revision history and logs, available at https://gerrit.wikimedia.org
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/includes/widget/TitleInputWidget.php b/includes/widget/TitleInputWidget.php
new file mode 100644 (file)
index 0000000..173dbb0
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+/**
+ * MediaWiki Widgets – TitleInputWidget class.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+namespace MediaWiki\Widget;
+
+use OOUI\TextInputWidget;
+
+/**
+ * Title input widget.
+ */
+class TitleInputWidget extends TextInputWidget {
+
+       protected $namespace = null;
+
+       /**
+        * @param array $config Configuration options
+        * @param number|null $config['namespace'] Namespace to prepend to queries
+        */
+       public function __construct( array $config = array() ) {
+               // Parent constructor
+               parent::__construct( array_merge( $config, array( 'infusable' => true ) ) );
+
+               // Properties
+               if ( isset( $config['namespace'] ) ) {
+                       // Actually ignored in PHP, we just ship it back to JS
+                       $this->namespace = $config['namespace'];
+               }
+
+               // Initialization
+               $this->addClasses( array( 'mw-widget-TitleInputWidget' ) );
+       }
+
+       public function getConfig( &$config ) {
+               if ( $this->namespace !== null ) {
+                       $config['namespace'] = $this->namespace;
+               }
+               return parent::getConfig( $config );
+       }
+}
index e21a6c2..528a700 100644 (file)
        "no-null-revision": "تعذر إنشاء مراجعة جديدة فارغة لصفحة \"$1\"",
        "badtitle": "عنوان سيء",
        "badtitletext": "عنوان الصفحة المطلوب إما غير صحيح أو فارغ، وربما الرابط بين اللغات أو بين المشاريع خاطئ.\nربما يحوي محارف لا تصلح للاستخدام في العناوين.",
+       "title-invalid-empty": "عنوان الصفحة المطلوبة فارغ أو يحتوي اسم النطاق فقط.",
        "title-invalid-interwiki": "عنوان الصفحة المطلوب يتضمن وصلة لحلقة لغة وهو ما لا يمكن استخدامه في العناوين.",
        "title-invalid-talk-namespace": "عنوان الصفحة المطلوبة يشير إلى صفحة نقاش غير موجودة.",
        "title-invalid-characters": "عنوان الصفحة المطلوب يتضمن محارف غير صالحة: \"$1\"",
        "passwordreset": "إعادة ضبط كلمة السر",
        "passwordreset-text-one": "أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.",
        "passwordreset-text-many": "{{PLURAL:$1||املأ الحقل لتستعيد كلمة السر|املأ أحد الحقلين لتستعيد كلمة السر|املأ أحد الحقول لتستعيد كلمة السر}}.",
-       "passwordreset-legend": "إعادة تعيين كلمة السر",
        "passwordreset-disabled": "عُطّلت إعادة تعيين كلمة السر على هذه الويكي.",
        "passwordreset-emaildisabled": "تم تعطيل ميزات البريد الإلكتروني على هذه الويكي.",
        "passwordreset-username": "اسم المستخدم:",
        "resettokens": "غير المفاتيح",
        "resettokens-text": " يمكن تغيير المفاتيح من الاطلاع على البيانات الخصوصية المتعلقة بحسابك.\nغير المفاتيح إذا أطلعت عليها أحدهم عن طريف الخطأ أو إذا كان حسابك قد اخترق.",
        "resettokens-no-tokens": "ما من مفاتيح للتغيير.",
-       "resettokens-legend": "غير المفاتيح",
        "resettokens-tokens": "مفاتيح:",
        "resettokens-token-label": "$1 (القيمة الحالية: $2)",
        "resettokens-watchlist-token": "رمز تغذية الوب (آتوم/آس إس إس) [[Special:Watchlist|للتغيرات التي على قائمة مراقبتك]]",
        "right-override-export-depth": "تصدير الصفحات متضمنة الصفحات الموصولة حتى عمق 5",
        "right-sendemail": "إرسال رسائل بريد إلكتروني إلى مستخدمين آخرين",
        "right-passwordreset": "عرض رسائل إعادة ضبط كلمات السر",
+       "right-managechangetags": "إنشاء وحذف [[Special:Tags|الوسوم]] من قاعدة البيانات",
+       "right-applychangetags": "تطبيق [[Special:Tags|الوسوم]]  مع التغييرات التي أجريتها.",
        "newuserlogpage": "سجل إنشاء المستخدمين",
        "newuserlogpagetext": "هذا سجل بعمليات إنشاء المستخدمين.",
        "rightslog": "سجل صلاحيات المستخدمين",
        "nmembers": "{{PLURAL:$1|لا أعضاء|عضو واحد|عضوان|$1 أعضاء|$1 عضوا|$1 عضو}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|عضو|أعضاء}}",
        "nrevisions": "{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}",
-       "nviews": "{{PLURAL:$1|مشاهدة واحدة|مشاهدتان|$1 مشاهدات|$1 مشاهدة}}",
        "nimagelinks": "مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}",
        "ntransclusions": "مستخدم في {{PLURAL:$1||صفحة واحدة|صفحتين|$1 صفحات|$1 صفحة}}",
        "specialpage-empty": "لا توجد نتائج لهذا التقرير.",
        "version-libraries": "مكتبات مثبته",
        "version-libraries-library": "المكتبة",
        "version-libraries-version": "الإصدارة",
+       "version-libraries-license": "الترخيص",
+       "version-libraries-description": "الوصف",
+       "version-libraries-authors": "المؤلفون",
        "redirect": "تحويل حسب رقم الملف أو رقم المستخدم أو رقم الصفحة أو رقم مراجعة",
        "redirect-legend": "تحويل إلى ملف أو صفحة",
        "redirect-summary": "هذه الصفحة الخاصة تحوّل إلى ملف (باسمه) أو صفحة (برقم إحدى مراجعاتها) أو إلى صفحة مستخدم (برقمه التعريفي). الاستخدام [[{{#Special:Redirect}}/file/Example.jpg]] أو [[{{#Special:Redirect}}/revision/328429]] أو [[{{#Special:Redirect}}/user/101]].",
        "tags-activate": "نشط",
        "tags-deactivate": "تعطيل",
        "tags-hitcount": "{{PLURAL:$1|لا تغييرات|تغيير واحد|تغييران|$1 تغييرات|$1 تغييرا|$1 تغيير}}",
+       "tags-manage-no-permission": "ليس لديك صلاحية إدارة وسوم التغيير.",
        "tags-create-heading": "إنشاء وسم جديد",
        "tags-create-explanation": "في الوضع الافتراضي، الوسوم الجديدة المنشأة سيتاح استخدامها للبوتات والمستخدمين.",
        "tags-create-tag-name": "اسم الوسم:",
        "tags-activate-submit": "تفعيل",
        "tags-deactivate-title": "عطل الوسم",
        "tags-deactivate-reason": "سبب",
+       "tags-deactivate-not-allowed": "من غير الممكن تعطيل الوسم \"$1\".",
+       "tags-deactivate-submit": "عطل",
        "tags-update-remove-not-allowed-one": "من غير المسموح بإزالة وسم \"$1\".",
        "tags-edit-title": "تعديل الوسوم",
        "tags-edit-manage-link": "التحكم بالوسوم",
        "special-characters-group-khmer": "خميرية",
        "special-characters-title-endash": "واصلة قصيرة",
        "special-characters-title-emdash": "واصلة طويلة",
-       "special-characters-title-minus": "علامة الطرح"
+       "special-characters-title-minus": "علامة الطرح",
+       "mw-widgets-titleinput-description-new-page": "الصفحة غير موجودة بعد",
+       "mw-widgets-titleinput-description-redirect": "تحويل إلى $1"
 }
index d5916eb..cac1671 100644 (file)
        "passwordreset": "গুপ্তশব্দ ন-কৈ বহুৱাওক",
        "passwordreset-text-one": "আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ এই প্ৰপত্ৰ পূৰণ কৰক।",
        "passwordreset-text-many": "{{PLURAL:$1|ইমেইলত এটা অস্থায়ী গুপ্তশব্দ পাবলৈ এই তথ্যসমূহৰ যিকোনো এটা দিয়ক।}}",
-       "passwordreset-legend": "গুপ্তশব্দ ন-কৈ বহাওক",
        "passwordreset-disabled": "এই ৱিকিত গুপ্তশব্দ নবীকৰণ নিষ্ক্ৰিয় কৰা হৈছে ।",
        "passwordreset-emaildisabled": "এই ৱিকিত ই-মেইল বৈশিষ্টসমূহ নিষ্ক্ৰিয় কৰা হৈছে।",
        "passwordreset-username": "সদস্যনাম",
        "resettokens": "ট'কেন ৰিছে'ট কৰক",
        "resettokens-text": "আপোনাৰ একাউণ্টৰ সৈতে জড়িত কিছুমান ব্যক্তিগত তথ্য চাবলৈ আপুনি ট'কেন ৰিছে'ট কৰিব পাৰে।\n\nআপুনি দুৰ্ঘটনাবশতঃ আন কাৰোবাক সেই ট'কেন দিলে বা আপোনাৰ একাউণ্টৰ বিসংগতি হ'লে আপুনি এনে কৰাটো উচিত।",
        "resettokens-no-tokens": "ৰিছে'ট কৰিবলৈ কোনো ট'কেন নাই।",
-       "resettokens-legend": "ট'কেন ৰিছে'ট কৰক",
        "resettokens-tokens": "ট'কেনসমূহ:",
        "resettokens-token-label": "$1 (বর্তমান: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|আপোনাৰ লক্ষ্যতালিকাৰ পৃষ্ঠাৰ সালসলনিৰ]] ৱেব ফীডৰ বাবে ট'কেন (Atom/RSS)",
        "right-passwordreset": "পাছৱৰ্ড ৰি-চেটৰ ই-মেইলসমূহ দেখুৱাওক",
        "newuserlogpage": "সদস্যৰ সৃষ্টি অভিলেখ",
        "newuserlogpagetext": "এইখন এখন সদস্য সৃষ্টিৰ ল’গ।",
-       "rightslog": "সভ্যৰ অধিকাৰৰ লেখ",
+       "rightslog": "সদস্যৰ অধিকাৰৰ লেখ",
        "rightslogtext": "সদস্য অধিকাৰৰ পৰিৱৰ্তনসমূহৰ ল’গ",
        "action-read": "এই পৃষ্ঠা পঢ়ক",
        "action-edit": "এই পৃষ্ঠা সম্পাদনা কৰক",
        "nmembers": "{{PLURAL:|$1 টা প্ৰবন্ধ বা উপশ্ৰেণী|$1 টা প্ৰবন্ধ বা উপশ্ৰেণী}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|জন সদস্য}}",
        "nrevisions": "$1টা {{PLURAL:$1|সংশোধন|সংশোধন}}",
-       "nviews": "$1 {{PLURAL:$1|টা দৰ্শন|টা দৰ্শন}}",
        "nimagelinks": "$1 {{PLURAL:$1|টা পৃষ্ঠাত}} ব্যৱহৃত",
        "ntransclusions": "$1 {{PLURAL:$1|টা পৃষ্ঠাত}} ব্যৱহৃত",
        "specialpage-empty": "এই বিৱৰণৰ কোনো ফলাফল নাই ।",
        "tooltip-t-print": "এই পৃষ্ঠাৰ ছপা উপযোগী সংস্কৰণ",
        "tooltip-t-permalink": "পৃষ্ঠাৰ এই সংস্কৰণৰ স্থায়ী সংযোগ",
        "tooltip-ca-nstab-main": "এই ৱিকিৰ সূচী চাওক",
-       "tooltip-ca-nstab-user": "সভà§\8dযৰ à¦¬à§\8dযà¦\95à§\8dতিà¦\97ত à¦ªà§\83ষà§\8dঠালà§\88",
+       "tooltip-ca-nstab-user": "সদসà§\8dয à¦ªà§\83ষà§\8dঠা à¦\9aাà¦\93à¦\95",
        "tooltip-ca-nstab-media": "মিডিয়া পৃষ্ঠাটো চাওক",
        "tooltip-ca-nstab-special": "এইটো এটা বিশেষ পৃষ্ঠা, আপুনি সম্পাদনা কৰিব নোৱাৰে",
        "tooltip-ca-nstab-project": "প্ৰকল্প পৃষ্ঠা চাওক",
index c5158a4..61c5195 100644 (file)
        "aboutpage": "Project:परिचय",
        "copyright": "उपलब्ध चिज $1 कय अधीन है जब तक अलग से उल्लेख नाई कई गा है।",
        "copyrightpage": "{{ns:project}}:कॉपीराइट",
-       "currentevents": "à¤\85भिन à¤\95य à¤\98à¤\9fना à¤¸à¤¬",
-       "currentevents-url": "Project:à¤\85भिन à¤\95य à¤\98à¤\9fना à¤¸à¤¬",
+       "currentevents": "नà¤\81वा à¤\98à¤\9fना",
+       "currentevents-url": "Project:नà¤\81वा à¤\98à¤\9fना",
        "disclaimers": "अस्वीकरण",
        "disclaimerpage": "Project:साधारण अस्वीकरण",
        "edithelp": "सम्पादन सहायता",
        "no-null-revision": "\"$1\" पृष्ठ के लिए बिना बदलावों का नया अवतरण बनाने में असफल।",
        "badtitle": "खराब शीर्षक",
        "badtitletext": "आप कय द्वारा अनुरोधित शीर्षक अयोग्य, ख़ाली या गलत जोड़ान अंतर-भाषीय या अंतर-विकि शीर्षक होय।\nएहमा एक या एक से ढेर अईसन कॅरेक्टर होई सकत हैं जवन शीर्षक में प्रयोग नाई कई  सका जात अहै।",
+       "title-invalid-empty": "निवेदित पन्ना कय शीर्षक खाली है या खाली नामस्थान है।",
+       "title-invalid-utf8": "निवेदित पन्ना कय शीर्षक अवैध यू०टी०एफ़-८ कय सिलसिला राखत है।",
+       "title-invalid-interwiki": "निवेदित पन्ना कय शीर्षक एकठु अंतर-विकी कड़ी रक्खत है जवने कय शीर्षक मा प्रयोग नाइ कै सका जात है।",
        "perfcached": "नीचे दिया हुआ डेटा कैशे मेमोरी से लिया हुआ है, अतः हो सकता है कि इसका पूर्ण अद्यतन न हुआ हो। कैशे मेमोरी में अधिकतम {{PLURAL:$1|एक  नतीजा|$1 नतीजे}} उपलब्ध हैं।",
        "perfcachedts": "नीचे दिया हुआ डेटा कैशे मेमोरी से है, और इसका अंतिम अद्यतन $1 को हुआ था। कैशे मेमोरी में अधिकतम {{PLURAL:$4|एक  नतीजा|$4 नतीजे}} उपलब्ध हैं।",
        "querypage-no-updates": "इस पृष्ठ का नवीनीकरण करना मना है। अभी यहाँ के डाटा को ताज़ा नहीं कर सकते।",
        "virus-badscanner": "गलत जमाव: अज्ञात वायरस जाँचक: ''$1''",
        "virus-scanfailed": "जाँच विफल (कूट $1)",
        "virus-unknownscanner": "अज्ञात ऐंटीवायरस:",
-       "logouttext": "'''à¤\85ब à¤\86प à¤²à¥\89à¤\97 à¤\86à¤\89à¤\9f à¤\95à¤\88 à¤\9aà¥\81à¤\95ा à¤¹à¤µà¥¤'''\nधà¥\8dयान à¤¦à¥\87वा à¤\9cाय à¤\95ि à¤\9cब à¤¤à¤\95 à¤\86प à¤\86पन à¤¬à¥\8dराà¤\89à¤\9c़र à¤\95à¥\88शà¥\87 à¤\96ालà¥\80 à¤¨à¤¾à¤\88 à¤\95रा à¤\9cाà¤\88, à¤\95à¥\81à¤\9b à¤ªà¤¨à¥\8dना à¤\85भà¥\80नà¥\8b à¤\85à¤\88सन à¤¦à¥\87à¤\96ाय à¤¸à¤\95तà¥\87 à¤¹à¥\88à¤\82 à¤\9cà¥\88सय à¤\95ि à¤\86प à¤\85भà¥\80नà¥\8b à¤²à¥\89à¤\97िन à¤\95रà¥\87 à¤¹à¤µ।",
+       "logouttext": "'''à¤\85ब à¤\86प à¤\96ाता à¤¸à¥\87 à¤¬à¤¹à¤°à¥\87 à¤\86à¤\87 à¤\97वा à¤\97य।'''\nधà¥\8dयान à¤¦à¤¿à¤¹à¤¾ à¤\9cाय à¤\95ि à¤\9cब à¤¤à¤\95 à¤\86प à¤\86पन à¤¬à¥\8dराà¤\89à¤\9c़र à¤\95à¥\88शà¥\87 à¤\96ालà¥\80 à¤¨à¤¾à¤\88 à¤\95रा à¤\9cाà¤\88, à¤\95à¥\81à¤\9b à¤ªà¤¨à¥\8dना à¤\85à¤\88सन à¤¦à¥\87à¤\96ाà¤\87 à¤\9cà¥\88सय à¤\95ि à¤\86प à¤\85बहिनà¥\8b à¤²à¥\89à¤\97िन à¤\95रा à¤\97ा à¤¹à¥\88।",
        "welcomeuser": "आप कय स्वागत है, $1!",
        "welcomecreation-msg": "आप कय खाता बनी गए।\nआपन [[Special:Preferences|{{SITENAME}} वरीयता]] बदलेक ना भूलावा जाइ।",
        "yourname": "सदस्यनावँ:",
        "passwordreset": "गुप्त कुंजी पुनःस्थापित(रीसेट) करा जाय",
        "passwordreset-text-one": "आपन गुप्तकुंजी रीसेट करेक लिए ई फ़ॉर्म भरा जाय।",
        "passwordreset-text-many": "{{PLURAL:$1|ईमेल कय माध्यम से एक अस्थायी पासवर्ड पावेक लिए कवनो एक डिब्बा भरा जाय।}}",
-       "passwordreset-legend": "गुप्तकुंजी पुनःस्थापित(रीसेट) करा जाय",
        "passwordreset-disabled": "गुप्तकुंजी रीसेट करेक इ विकी अक्षम है।",
        "passwordreset-emaildisabled": "इ विकि पे ई-मेल सुविधा अक्षम कई दीहा है।",
        "passwordreset-username": "सदस्यनाँव:",
        "resettokens": "टोकन रीसेट करा जाय",
        "resettokens-text": "जो टोकन आपके खाते से सम्बद्ध कुछ विशिष्ट व्यक्तिगत जानकारी प्रदान करते हैं, आप उन्हें यहाँ रीसेट कर सकते हैं।\n\nयदि आपने उन्हें गलती से किसी को दिखा दिया है या फिर आपका खाता हैक हो गया है तो आपको इन्हें रीसेट कर देना चाहिए।",
        "resettokens-no-tokens": "रीसेट करेक लिए कवनो टोकन नाई है।",
-       "resettokens-legend": "टोकन रीसेट करा जाय",
        "resettokens-tokens": "टोकन:",
        "resettokens-token-label": "$1 (वर्तमान मूल्य: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|आप कय ध्यानसूची कय पन्नन् में बदलाव]] कय वेब फ़ीड (Atom/RSS)कय नाते टोकन",
        "prefs-help-signature": "बातचीत पन्नन पे करल टिप्पणिन् पे \"<nowiki>~~~~</nowiki>\" से हस्ताक्षर करेक परि, इ आप कय हस्ताक्षर अव समय में परिवर्तित होई जाइ।",
        "badsig": "गलत कच्चा हस्ताक्षर।\nHTML टैग कय जाँच करा जाय।",
        "badsiglength": "ई हस्ताक्षर बहुत बड़ा है।\nई $1 {{PLURAL:$1|कैरैक्टर}} से ढेर कय नाई होएक चाहि।",
-       "yourgender": "à¤\86प à¤\85पनà¥\87 à¤\86प à¤\95य à¤\95à¥\88सन à¤¬à¤¤à¤¾à¤µà¥\87 à¤\9aाहा à¤\9cाà¤\87?",
-       "gender-unknown": "हम à¤\95à¥\81à¤\9b à¤¨à¤¾à¤\88 à¤\95हय à¤\9aाहित à¤\85हन",
-       "gender-male": "à¤\8fन à¤¸à¤®à¥\8dपादन à¤\95रत à¤¹à¤\81य।",
-       "gender-female": "à¤\8fन à¤¸à¤®à¥\8dपादन à¤\95रत à¤\85हिन।",
+       "yourgender": "à¤\86प à¤\95य à¤\95ाव à¤\95हा à¤\9cाय ?",
+       "gender-unknown": "हम à¤¨à¤¾à¤\87 à¤¬à¤¤à¤¾à¤\87ब",
+       "gender-male": "यन à¤¸à¤®à¥\8dपादन à¤\95रा à¤²à¤\81य ।",
+       "gender-female": "यन à¤¸à¤®à¥\8dपादन à¤\95रा à¤²à¤¿à¤¨ ।",
        "prefs-help-gender": "ई जानकारी देब वैकल्पिक होय।\nई सॉफ़्टवेयर में लिंग कय आधार पे आप कय लिए सही संबोधन कय नाते प्रयुक्त होत है।\nई जानकारी सार्वजनिक होइ।",
        "email": "ई-मेल",
        "prefs-help-realname": "असली नाँव कय कवनो जरुरत नाइ है।यकर इस्तेमाल आप कय काम कय बडाइ करय में होइ सकत है ।",
        "nmembers": "$1 {{PLURAL:$1|सदस्य}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्य}}",
        "nrevisions": "$1 {{PLURAL:$1|अवतरण}}",
-       "nviews": "{{PLURAL:$1|एक|$1}} दाइ देखि गा है",
        "nimagelinks": "$1 {{PLURAL:$1|पन्ना|पन्नन्}} पे प्रयुक्त",
        "ntransclusions": "$1 {{PLURAL:$1|पन्ना|पन्नन}} पे प्रयुक्त",
        "specialpage-empty": "इ ब्यौरा कय खर्तीन कवनो परिणाम नाई है।",
index ee90db2..8bf790b 100644 (file)
        "passwordreset": "Ачыстка паролю",
        "passwordreset-text-one": "Запоўніце гэтую форму, каб скінуць пароль.",
        "passwordreset-text-many": "{{PLURAL:$1|Запоўніце адно з палёў, каб атрымаць часовы пароль праз электронную пошту.}}",
-       "passwordreset-legend": "Ачысьціць пароль",
        "passwordreset-disabled": "Магчымасьць ачысткі паролю была забароненая ў {{GRAMMAR:месны|{{SITENAME}}}}.",
        "passwordreset-emaildisabled": "Функцыі e-mail у гэтай вікі былі адключаныя.",
        "passwordreset-username": "Імя ўдзельніка:",
        "resettokens": "Скідваньне токенаў",
        "resettokens-text": "Тут вы можаце скінуць токены, якія даюць вамд доступ да пэўных прыватных зьвестак, асацыяваных з вашым рахункам.\n\nКалі вы выпадкова падзяліліся токенамі зь іншымі, або калі ваш рахунак быў скампрамэтаваны, скарыстайцеся гэтай магчымасьцю і скіньце токены.",
        "resettokens-no-tokens": "Няма што скідаць.",
-       "resettokens-legend": "Скінуць токены",
        "resettokens-tokens": "Токены:",
        "resettokens-token-label": "$1 (бягучае значэньне: $2)",
        "resettokens-watchlist-token": "Токен стужкі (Atom/RSS) [[Special:Watchlist|зьменаў у вашым сьпісе назіраньня]]",
        "version-libraries": "Усталяваныя бібліятэкі",
        "version-libraries-library": "Бібліятэка",
        "version-libraries-version": "Вэрсія",
+       "version-libraries-license": "Ліцэнзія",
+       "version-libraries-description": "Апісаньне",
+       "version-libraries-authors": "Аўтары",
        "redirect": "Перанакіраваньне да файла, удзельніка, старонкі або вэрсіі старонкі",
        "redirect-legend": "Перанакіраваньне да файла або старонкі",
        "redirect-summary": "Гэтая спэцыяльная старонка перанакіруе да файла (паводле імя файла), старонкі (паводле нумару вэрсіі або старонкі) або старонкі ўдзельніка (паводле нумару ўдзельніка). Ужываньне: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] або [[{{#Special:Redirect}}/user/101]].",
        "tags-delete-submit": "Незваротна выдаліць гэтую метку",
        "tags-delete-not-allowed": "Меткі, вызначаныя пашырэньнем, ня могуць быць выдаленыя, акрамя выпадку, калі пашырэньне дазваляе гэта.",
        "tags-delete-not-found": "Метка «$1» не існуе.",
+       "tags-delete-too-many-uses": "Метка «$1» выкарыстаная ў больш чым $2 {{PLURAL:$2|вэрсіі|вэрсіях}}, адпаведна, яна ня можа быць выдаленая.",
+       "tags-delete-warnings-after-delete": "Метка «$1» была пасьпяхова выдаленая, але {{PLURAL:$2|1=атрыманае наступнае папярэджаньне|атрыманыя наступныя папярэджаньні}}:",
+       "tags-activate-title": "Актываваць метку",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
        "compare-page2": "Старонка 2",
        "special-characters-group-khmer": "Кхмэрскія",
        "special-characters-title-endash": "кароткі працяжнік",
        "special-characters-title-emdash": "доўгі працяжнік",
-       "special-characters-title-minus": "мінус"
+       "special-characters-title-minus": "мінус",
+       "mw-widgets-titleinput-description-new-page": "старонка яшчэ не існуе"
 }
index 44672a9..bd5c489 100644 (file)
        "passwordreset": "পাসওয়ার্ড রিসেট",
        "passwordreset-text-one": "আপনার পাসওয়ার্ড পুনরায় সেট করতে এই ফর্মটি পূরণ করুন।",
        "passwordreset-text-many": "{{PLURAL:$1|ইমেইলের মাধ্যমে একটি অস্থায়ী পাসওয়ার্ড পেতে ঘরগুলির একটি পূরণ করুন।}}",
-       "passwordreset-legend": "পাসওয়ার্ড রিসেট",
        "passwordreset-disabled": "এই উইকিতে পাসওয়ার্ড রিসেটের সুবিধা নিষ্ক্রিয় রয়েছে।",
        "passwordreset-emaildisabled": "এই উইকিতে ইমেইল অপশনটি বন্ধ করা হয়েছে।",
        "passwordreset-username": "ব্যবহারকারী নাম:",
        "resettokens": "রিসেট টোকেন",
        "resettokens-text": "আপনি টোকেন রিসেট করতে পারেন, যা অ্যাকাউন্টের সাথে সম্পর্কিত আপনার ব্যক্তিগত তথ্য দেখার কাজে ব্যবহার করা হয়।",
        "resettokens-no-tokens": "রিসেট করার মত কোনো টোকেন নেই।",
-       "resettokens-legend": "রিসেট টোকেন",
        "resettokens-tokens": "টোকেন:",
        "resettokens-token-label": "$1 (বর্তমান: $2)",
        "resettokens-watchlist-token": "ওয়েব ফিড (Atom/RSS) টোকেন পরিবর্তনের জন্য [[Special:Watchlist|নজরতালিকায় থাকা পাতাগুলোতে পরিবর্তন এসেছে]]",
        "yourdiff": "পার্থক্য",
        "copyrightwarning": "অনুগ্রহ করে লক্ষ্য করুন {{SITENAME}}-তে সমস্ত অবদান $2-এর আওতায় প্রাপ্য (বিস্তারিত $1-তে দেখুন)। আপনার জমা দেয়া লেখা যে কেউ হৃদয়হীনভাবে সম্পাদনা করতে এবং যথেচ্ছভাবে পুনর্বিতরণ করতে পারেন। আপনি যদি এ ব্যাপারে একমত না হন, তাহলে এখানে আপনার লেখা জমা দেবেন না।<br />\nআপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন, বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন।\n'''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না!'''",
        "copyrightwarning2": "অনুগ্রহ করে লক্ষ করুন: {{SITENAME}}-এর এই ভুক্তিতে আপনার লেখা বা অবদান অন্যান্য ব্যবহারকারীরা পরিবর্তন বা পরিবর্ধন করতে, এমনকি মুছে ফেলতে পারবেন। {{SITENAME}} এ আপনার সকল লেখালেখি/অবদান গনু ফ্রি ডকুমেন্টেশনের ($1) আওতায় বিনামূল্যে প্রাপ্য ও হস্তান্তরযোগ্য। আপনার জমা দেয়া লেখা যে কেউ হৃদয়হীনভাবে সম্পাদনা করতে এবং যথেচ্ছভাবে ব্যবহার করতে পারেন। আপনি যদি এ ব্যাপারে একমত না হন, তাহলে এখানে আপনার লেখা জমা দেবেন না। আপনি আরো প্রতিজ্ঞা করছেন যে, এই লেখাগুলো আপনি নিজে লিখেছেন (তবে কোন মৌলিক গবেষণা নয়) বা সাধারণের ব্যবহারের জন্য উন্মুক্ত কোন উৎস থেকে সংগ্রহ করেছেন। '''স্বত্ব সংরক্ষিত কোন লেখা স্বত্বাধিকারীর অনুমতি ছাড়া এখানে জমা দেবেন না।'''",
+       "editpage-cannot-use-custom-model": "এই পাতার বিষয়বস্তুর মডেল পরিবর্তন করা যাবে না।",
        "longpageerror": "'''ত্রুটি:  আপনার জমা দেয়া টেক্সটের পরিমাণ {{PLURAL:$1|এক কিলোবাইট|$1 কিলোবাইট}}, যা সর্বোচ্চ সীমা {{PLURAL:$2|এক কিলোবাইটের|$2 কিলোবাইটের}} চেয়ে বেশি।'''\nএটি সংরক্ষণ করা সম্ভব নয়।",
        "readonlywarning": "'''সতর্কীকরণ: রক্ষণাবেক্ষণের জন্য ডাটাবেজ অবরুদ্ধ রাখা হয়েছে, তাই এই মুহূর্তে আপনার সম্পাদনা সংরক্ষণ করতে পারবেন না।'''\nআপনি চাইলে লেখাটি কাট এবং পেষ্ট করে ভবিষ্যতের জন্য কোন টেক্সট ফাইলে সংরক্ষণ করতে পারেন।\n\nযে প্রশাসক এই ডাটাবেজটি অবরুদ্ধ করেছেন তিনি যা ব্যাখ্যা দিয়েছেন: $1",
        "protectedpagewarning": "'''সতর্কীকরণ: এই পাতাটি বন্ধ করা হয়েছে; কেবলমাত্র প্রশাসক মর্যাদার ব্যবহারকারীরাই এটি সম্পাদনা করতে পারবেন।'''\nআপনার সুবিধার্থে পাতাটির সাম্প্রতিক সংরক্ষণ লগের বিবরণ নিচে দেওয়া হলো।",
        "special-characters-group-khmer": "খেমার",
        "special-characters-title-endash": "en ড্যাশ",
        "special-characters-title-emdash": "em ড্যাশ",
-       "special-characters-title-minus": "বিয়োগ চিহ্ন"
+       "special-characters-title-minus": "বিয়োগ চিহ্ন",
+       "mw-widgets-titleinput-description-new-page": "পাতা এখনো বিদ্যমান নয়",
+       "mw-widgets-titleinput-description-redirect": "$1-এ পুনঃনির্দেশিত"
 }
index 01a3af0..e4661d8 100644 (file)
        "category-empty": "''Ova kategorija trenutno ne sadrži članke ni medije.''",
        "hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}}",
        "hidden-category-category": "Skrivene kategorije",
-       "category-subcat-count": "{{PLURAL:$2|Ova kategorija ima sljedeću podkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću podkategoriju|sljedeće $1 podkategorije|sljedećih $1 podkategorija}}, od $2 ukupno.}}",
-       "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|slijedeću $1 podkategoriju|slijedeće $1 podkategorije|slijedećih $1 podkategorija}}.",
+       "category-subcat-count": "{{PLURAL:$2|Ova kategorija samo ima sljedeću potkategoriju.|Ova kategorija ima {{PLURAL:$1|sljedeću potkategoriju|sljedeće $1 potkategorije|sljedećih $1 potkategorija}}, od $2 ukupno.}}",
+       "category-subcat-count-limited": "Ova kategorija sadrži {{PLURAL:$1|sljedeću $1 potkategoriju|sljedeće $1 potkategorije|sljedećih $1 potkategorija}}.",
        "category-article-count": "{{PLURAL:$2|U ovoj kategoriji nalazi se $1 članak.|{{PLURAL:$1|Prikazan je $1 članak|Prikazana su $1 članka|Prikazano je $1 članaka}} od ukupno $2 u ovoj kategoriji.}}",
        "category-article-count-limited": "{{PLURAL:$1|Slijedeća $1 stranica je|Slijedeće $1 stranice su|Slijedećih $1 stranica je}} u ovoj kategoriji.",
        "category-file-count": "{{PLURAL:$2|Ova kategorija ima slijedeću $1 datoteku.|{{PLURAL:$1|Prikazana je $1 datoteka|Prikazane su $1 datoteke|Prikazano je $1 datoteka}} u ovoj kategoriji, od ukupno $2.}}",
        "title-invalid-talk-namespace": "Vaš zatraženi naslov stranice se odnosi na stranicu za razgovor koja ne može postojati.",
        "title-invalid-characters": "Vaš zatraženi naslov stranice sadrži nevažeće znakove: \"$1\".",
        "title-invalid-leading-colon": "Zahtjevani naslov stranice sadrži nevažeću dvotačku na početku.",
-       "perfcached": "Slijedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.",
+       "perfcached": "Sljedeći podaci su keširani i možda neće biti u potpunosti ažurirani. Keš sadrži najviše {{PLURAL:$1|jedan rezultat|$1 rezultata}}.",
        "perfcachedts": "Sljedeći podaci nalaze se u memoriji i posljednji put ažurirani su $1. Keš sadrži najviše {{PLURAL:$4|jedan rezultat|$4 rezultata}}.",
        "querypage-no-updates": "Ažuriranje ove stranice je isključeno.\nPodaci koji se ovdje nalaze ne moraju biti aktuelni.",
        "viewsource": "Pogledaj izvor",
        "passwordreset": "Poništavanje šifre",
        "passwordreset-text-one": "Ispunite ovaj obrazac da biste resetovali Vašu šifru/lozinku.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako biste dobili privremenu lozinku putem e-pošte.}}",
-       "passwordreset-legend": "Poništi šifru",
        "passwordreset-disabled": "Poništavanje šifre  je onemogućeno na ovoj wiki.",
        "passwordreset-emaildisabled": "E-pošta je onemogućena na ovom wikiju.",
        "passwordreset-username": "Korisničko ime:",
        "resettokens": "Resetovanje žetona",
        "resettokens-text": "Možete ponovno postaviti tokene koji će vam omogućiti pristup određenim privatnim podacima povezanim sa vašim računom ovdje.\n\nTrebali bi to učiniti ako ih mimo volje podijelite s nekim ili ako je vaš račun ugrožen.",
        "resettokens-no-tokens": "Nema žetona za resetovanje.",
-       "resettokens-legend": "Resetovanje žetona",
        "resettokens-tokens": "Žetoni:",
        "resettokens-token-label": "$1 (trenutna vrijednost: $2)",
        "resettokens-watchlist-token": "Token za web niz (Atom/RSS) [[Special:Watchlist|promjena na stranicama sa vašeg spiska praćenja]]",
        "subject-preview": "Pregled tema/naslova:",
        "previewerrortext": "Dogodila se greška prilikom prikazivanja vaših izmjena.",
        "blockedtitle": "Korisnik je blokiran",
-       "blockedtext": "'''Vaše korisničko ime ili IP adresa je blokirana.'''\n\nBlokada izvršena od strane $1.\nDati razlog je slijedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati $1 ili nekog drugog [[{{MediaWiki:Grouppage-sysop}}|administratora]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''Pošalji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|Vaše postavke]].\nVaša trenutna IP adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.",
-       "autoblockedtext": "Vaša IP adresa je automatski blokirana jer je korištena od strane drugog korisnika, a blokirao ju je $1.\nNaveden je slijedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati $1 ili nekog drugog iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"pošalji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u Vašim [[Special:Preferences|korisničkim postavkama]] te Vas ne spriječava ga je koristite.\n\nVaša trenutna IP adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.",
+       "blockedtext": "'''Vaše korisničko ime ili IP-adresa je blokirana.'''\n\nBlokada izvršena od strane $1.\nDati razlog je sljedeći: ''$2''.\n\n*Početak blokade: $8\n*Kraj perioda blokade: $6\n*Ime blokiranog korisnika: $7\n\nMožete kontaktirati sa $1 ili nekim drugim [[{{MediaWiki:Grouppage-sysop}}|administratorom]] da biste razgovarali o blokadi.\n\nNe možete koristiti opciju ''Pošalji e-mail korisniku'' osim ako niste unijeli e-mail adresu u [[Special:Preferences|Vaše postavke]].\nVaša trenutna IP-adresa je $3, a oznaka blokade je #$5.\nMolimo Vas da navedete gornje podatke pri zahtjevu za deblokadu.",
+       "autoblockedtext": "Vaša IP-adresa automatski je blokirana jer ju je koristio drugi korisnik, a blokirao ju je $1.\nNaveden je sljedeći razlog:\n\n:''$2''\n\n* Početak blokade: $8\n* Kraj blokade: $6\n* Blokirani korisnik: $7\n\nMožete kontaktirati sa $1 ili nekim drugim iz grupe [[{{MediaWiki:Grouppage-sysop}}|administratora]] i zahtijevati da Vas deblokira.\n\nZapamtite da ne možete koristiti opciju \"pošalji e-mail ovom korisniku\" sve dok ne unesete validnu e-mail adresu pri registraciji u Vašim [[Special:Preferences|korisničkim postavkama]] i dok niste spriječeni (blokadom) da je koristite.\n\nVaša trenutna IP-adresa je $3, a ID blokade je $5.\nMolimo da navedete sve gore navedene detalje u zahtjevu za deblokadu.",
        "blockednoreason": "razlog nije naveden",
        "whitelistedittext": "Da bi ste uređivali stranice, morate se $1.",
        "confirmedittext": "Morate potvrditi Vašu e-mail adresu prije nego počnete mijenjati stranice.\nMolimo da postavite i verifikujete Vašu e-mail adresu putem Vaših [[Special:Preferences|korisničkih opcija]].",
        "nonunicodebrowser": "'''UPOZORENJE: Vaš preglednik ne podržava Unicode zapis znakova.\nMolimo Vas promijenite ga prije sljedećeg uređivanja članaka. Znakovi koji nisu po ASCII standardu će se u prozoru za izmjene pojaviti kao heksadecimalni kodovi.'''",
        "editingold": "'''PAŽNJA:  Vi mijenjate stariju\nreviziju ove stranice.\nAko je snimite, sve promjene učinjene od ove revizije će biti izgubljene.'''",
        "yourdiff": "Razlike",
-       "copyrightwarning": "Za sve priloge poslate na projekat {{SITENAME}} smatramo da su objavljeni pod $2 (konsultujte $1 za detalje).\nUkoliko ne želite da vaši članci budu podložni izmjenama i slobodnom rasturanju i objavljivanju,\nnemojte ih slati ovdje. Takođe, slanje članka podrazumijeva i vašu izjavu da ste ga napisali sami, ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.\n\n'''NEMOJTE SLATI RAD ZAŠTIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!'''",
+       "copyrightwarning": "Za sve priloge poslane na projekt {{SITENAME}} smatramo da su objavljeni pod $2 (konsultirajte $1 za detalje).\nAko ne želite da vaši članci budu podložni izmjenama i slobodnoj distribuciji i objavljivanju,\nnemojte ih slati ovdje. Također, slanje članka podrazumijeva i Vašu izjavu da ste ga napisali sami ili da ste ga kopirali iz izvora u javnom domenu ili sličnog slobodnog izvora.\n\n'''NEMOJTE SLATI RAD ZAŠTIĆEN AUTORSKIM PRAVIMA BEZ DOZVOLE AUTORA!'''",
        "copyrightwarning2": "Zapamtite da svi doprinosi na stranici {{SITENAME}} može biti izmijenjen, promijenjen ili uklonjen od strane ostalih korisnika. Ako ne želite da ovo desi sa Vašim tekstom, onda ga nemojte slati ovdje.<br />\nTakođer nam garantujete da ste ovo Vi napisali, ili da ste ga kopirali iz javne domene ili sličnog slobodnog izvora informacija (pogledajte $1 za više detalja).\n'''NE ŠALJITE AUTORSKIM PRAVOM ZAŠTIĆENE TEKSTOVE BEZ DOZVOLE!'''",
        "longpageerror": "'''Greška: Tekst, koji ste poslali, je dug {{PLURAL:$1|jedan kilobajt|$1 kilobajta}}, što je veće od maksimuma, koji iznosi {{PLURAL:$2|jedan kilobajt|$2 kilobajta}}.'''\nStranica ne može biti sačuvana.",
        "readonlywarning": "'''PAŽNJA: Baza je zaključana zbog održavanja, tako da nećete moći da sačuvate svoje izmjene za sada.'''\nMožda želite da kopirate i nalijepite tekst u tekst editor i sačuvate ga za kasnije.\n\nAdministrator koji je zaključao bazu je naveo slijedeće objašnjenje: $1",
        "mergehistory-comment": "Spojeno [[:$1]] u [[:$2]]: $3",
        "mergehistory-same-destination": "Izvorne i odredišne stranice ne mogu biti iste",
        "mergehistory-reason": "Razlog:",
-       "mergelog": "Zapis spajanja",
+       "mergelog": "Zapisnik spajanja",
        "revertmerge": "Vrati spajanje",
        "mergelogpagetext": "Ispod je spisak nedavnih spajanja historija stranica.",
        "history-title": "Historija revizija \"$1\"",
        "textmatches": "Tekst stranice odgovara",
        "notextmatches": "Tekst članka ne odgovara",
        "prevn": "{{PLURAL:$1|prethodni $1|prethodnih $1}}",
-       "nextn": "{{PLURAL:$1|slijedeći $1|slijedećih $1}}",
+       "nextn": "{{PLURAL:$1|sljedeći $1|sljedećih $1}}",
        "prev-page": "prethodna stranica",
        "next-page": "sljedeća stranica",
        "prevn-title": "{{PLURAL:$1|Prethodni $1 rezultat|Prethodna $1 rezultata|Prethodnih $1 rezultata}}",
-       "nextn-title": "{{PLURAL:$1|Slijedeći $1 rezultat|Slijedeća $1 rezultata|Slijedećih $1 rezultata}}",
+       "nextn-title": "{{PLURAL:$1|Sljedeći $1 rezultat|Sljedeća $1 rezultata|Sljedećih $1 rezultata}}",
        "shown-title": "Pokaži $1 {{PLURAL:$1|rezultat|rezultata}} po stranici",
        "viewprevnext": "Pogledaj ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''Postoji stranica pod nazivom \"[[:$1]]\" na ovoj wiki'''",
        "searchprofile-everything-tooltip": "Pretraži sve sadržaje (ukljujući i stranice za razgovor)",
        "searchprofile-advanced-tooltip": "Traži u ostalim imenskim prostorima",
        "search-result-size": "$1 ({{PLURAL:$2|$2 riječ|$2 riječi}})",
-       "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 podkategorija|$2 podkategorije|$2 podkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
+       "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}} ({{PLURAL:$2|1 potkategorija|$2 potkategorije|$2 potkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
        "search-redirect": "(preusmjeravanje $1)",
        "search-section": "(sekcija $1)",
        "search-category": "(kategorija $1)",
        "searchrelated": "povezano",
        "searchall": "sve",
        "showingresults": "Dolje {{PLURAL:$1|je prikazan '''1''' rezultat|su prikazana '''$1''' rezultata|je prikazano '''$1''' rezultata}} počev od '''$2'''.",
+       "showingresultsinrange": "Ispod {{PLURAL:$1|je prikazan <strong>1</strong> rezultat|su prikazana <strong>$1</strong> rezultata|je prikazano <strong>$1</strong> rezultata}}, u rasponu od <strong>$2</strong> do <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> od <strong>$3</strong>|Rezultati <strong>$1 - $2</strong> od <strong>$3</strong>}}",
        "search-nonefound": "Nisu pronađeni rezultati koji odgovaraju upitu.",
        "powersearch-legend": "Napredna pretraga",
        "default": "standardno",
        "prefs-files": "Datoteke",
        "prefs-custom-css": "Prilagođeni CSS",
-       "prefs-custom-js": "Prilagođeni JS",
+       "prefs-custom-js": "Prilagođeni JavaScript",
        "prefs-common-css-js": "Dijeljeni CSS/JS za sve kože:",
        "prefs-reset-intro": "Možete koristiti ovu stranicu da poništite Vaše postavke na ovom sajtu na pretpostavljene vrijednosti.\nOvo se ne može vratiti unazad.",
        "prefs-emailconfirm-label": "E-mail potvrda:",
        "right-sendemail": "Slanje e-maila drugim korisnicima",
        "right-passwordreset": "Pogledaj e-mailove za obnavljanje šifre",
        "right-managechangetags": "Napravi i briši [[Special:Tags|oznake]] iz baze podataka",
-       "newuserlogpage": "Zapis novih korisnika",
+       "right-applychangetags": "Primijeni [[Special:Tags|oznake]] na nečije izmjene",
+       "newuserlogpage": "Zapisnik novih korisnika",
        "newuserlogpagetext": "Ovo je zapis o registraciji novih korisnika.",
        "rightslog": "Zapisnik korisničkih prava",
        "rightslogtext": "Ovo je zapis promjena korisničkih prava.",
        "action-createpage": "napravite stranicu",
        "action-createtalk": "kreirate stranice za razgovor",
        "action-createaccount": "napravite ovaj korisnički račun",
+       "action-history": "gledate historiju ove stranice",
        "action-minoredit": "da označite ovu izmjenu kao malu",
        "action-move": "premjestite ovu stranicu",
        "action-move-subpages": "premjestite ovu stranicu, i njene podstranice",
        "action-viewmywatchlist": "pogledajte svoj spisak praćenih stranica",
        "action-viewmyprivateinfo": "pogledajte svoje privatne informacije",
        "action-editmyprivateinfo": "uredite svoje privatne podatke",
+       "action-managechangetags": "napravite i uklonite oznake iz baze podataka",
        "nchanges": "$1 {{PLURAL:$1|promjena|promjene|promjena}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmjena od Vaše posljedne posjete}}",
        "enhancedrc-history": "historija",
        "recentchanges": "Nedavne izmjene",
        "recentchanges-legend": "Postavke nedavnih izmjena",
        "recentchanges-summary": "Na ovoj stranici možete pratiti nedavne izmjene.",
+       "recentchanges-noresult": "U zadanom vremenu nema promjena za zadane kriterije.",
        "recentchanges-feed-description": "Na ovoj stranici možete pratiti nedavne izmjene.",
        "recentchanges-label-newpage": "Ovom izmjenom pravi se nova stranica",
        "recentchanges-label-minor": "Ovo je mala izmjena",
        "upload-permitted": "Podržane vrste datoteka: $1.",
        "upload-preferred": "Preferirane vrste datoteka: $1.",
        "upload-prohibited": "Zabranjene vrste datoteka: $1.",
-       "uploadlogpage": "Protokol postavljanja",
-       "uploadlogpagetext": "Ispod je spisak najskorijih slanja.",
+       "uploadlogpage": "Zapisnik postavljanja",
+       "uploadlogpagetext": "Ispod je spisak nedavno postavljenih datoteka.\nZa vizualni pregled datoteka, [[Special:NewFiles|pogledajte galeriju novih slika]].",
        "filename": "Ime datoteke",
        "filedesc": "Sažetak",
        "fileuploadsummary": "Sažetak:",
        "filehist-comment": "Komentar",
        "imagelinks": "Upotreba datoteke",
        "linkstoimage": "{{PLURAL:$1|Slijedeća stranica koristi|Slijedećih $1 stranica koriste}} ovu sliku:",
-       "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} je povezano s ovom datotekom.\nSlijedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].",
+       "linkstoimage-more": "Više od $1 {{PLURAL:$1|datoteke|datoteka}} povezano je s ovom datotekom.\nSljedeći spisak pokazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nOvdje je dostupan [[Special:WhatLinksHere/$2|potpuni spisak]].",
        "nolinkstoimage": "Nema stranica koje koriste ovu sliku.",
        "morelinkstoimage": "Vidi [[Special:WhatLinksHere/$1|ostale linkove]] prema ovoj datoteci.",
        "linkstoimage-redirect": "$1 (preusmjerenje datoteke) $2",
        "statistics-users": "Registrovani [[Special:ListUsers|korisnici]]",
        "statistics-users-active": "Aktivni korisnici",
        "statistics-users-active-desc": "Korisnici koji su izvršili akciju u toku {{PLURAL:$1|posljednjeg dana|posljednja $1 dana|posljednjih $1 dana}}",
+       "pageswithprop": "Stranice sa svojstvom stranice",
+       "pageswithprop-legend": "Stranice sa svojstvom stranice",
+       "pageswithprop-text": "Ova stranica prikazuje stranice koje imaju određeno svojstvo.",
        "pageswithprop-prop": "Naziv svojstva:",
        "pageswithprop-submit": "Idi",
        "doubleredirects": "Dvostruka preusmjerenja",
        "booksources-invalid-isbn": "Navedeni ISBN broj nije validan; molimo da provjerite da li je došlo do greške pri kopiranju iz prvobitnog izvora.",
        "specialloguserlabel": "Izvršilac:",
        "speciallogtitlelabel": "Cilj (naslov ili korisnik):",
-       "log": "Protokoli",
-       "all-logs-page": "Svi javni registri",
-       "alllogstext": "Zajednički prikaz svih dostupnih zapisa sa {{SITENAME}}.\nMožete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena ili promjenjenog članka (razlikovati velika slova).",
-       "logempty": "Ne postoji takav zapis.",
+       "log": "Zapisnici",
+       "all-logs-page": "Svi javni zapisnici",
+       "alllogstext": "Zajednički prikaz svih dostupnih zapisnika sa {{SITENAME}}.\nMožete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena ili promjenjenog članka (razlikovati velika slova).",
+       "logempty": "Nema zatraženih članaka u zapisniku.",
        "log-title-wildcard": "Traži naslove koji počinju ovim tekstom",
        "showhideselectedlogentries": "Pokaži/sakrij izabrane zapise u evidenciji",
        "allpages": "Sve stranice",
        "watchlistanontext": "Molimo logujte se da vidite ili uredite stavke na Vašem spisku praćenja.",
        "watchnologin": "Niste prijavljeni",
        "addwatch": "Dodaj na spisak praćenja",
-       "addedwatchtext": "Stranica \"[[:$1]]\" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]]. \nBuduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde.",
+       "addedwatchtext": "Stranica \"[[:$1]]\" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]]. \nBuduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovdje.",
        "addedwatchtext-short": "Stranica \"$1\" je dodana na vaš spisak praćenja.",
        "removewatch": "Ukloni sa spiska praćenja",
        "removedwatchtext": "Stranica \"[[:$1]]\" je uklonjena iz [[Special:Watchlist|vašeg spiska praćenih članaka]].",
        "actioncomplete": "Akcija završena",
        "actionfailed": "Akcija nije uspjela",
        "deletedtext": "Članak \"$1\" je obrisan.\nPogledajte $2 za zapisnik nedavnih brisanja.",
-       "dellogpage": "Protokol brisanja",
+       "dellogpage": "Zapisnik brisanja",
        "dellogpagetext": "Ispod je spisak najskorijih brisanja.",
-       "deletionlog": "zapis brisanja",
+       "deletionlog": "zapisnik brisanja",
        "reverted": "Vraćeno na prijašnju reviziju",
        "deletecomment": "Razlog:",
        "deleteotherreason": "Ostali/dodatni razlozi:",
        "rollback-success": "Poništene izmjene korisnika $1;\nvraćeno na posljednju verziju koju je sačuvao $2.",
        "sessionfailure-title": "Greška u sesiji",
        "sessionfailure": "Izgleda da postoji problem sa vašom sesijom; ova akcija je otkazana kao prevencija protiv napadanja sesija. Kliknite \"back\" (''nazad'') i osvježite stranicu sa koje ste došli, i opet pokušajte.",
-       "protectlogpage": "Protokol zaključavanja",
+       "protectlogpage": "Zapisnik zaključavanja",
        "protectlogtext": "Ispod je spisak promjena zaštićenja stranice.\nPogledajte [[Special:ProtectedPages|spisak zaštićenih stranica]] za pregled trenutno operativnih zaštita stranica.",
        "protectedarticle": "stranica \"[[$1]]\" je zaštićena",
        "modifiedarticleprotection": "promijenjen stepen zaštite za \"[[$1]]\"",
        "restriction-level-all": "svi nivoi",
        "undelete": "Pogledaj izbrisane stranice",
        "undeletepage": "Pogledaj i vrati izbrisane stranice",
-       "undeletepagetitle": "'''Slijedeći sadržaj prikazuje obrisane revizije od [[:$1|$1]]'''.",
+       "undeletepagetitle": "'''Sljedeći sadržaj prikazuje obrisane revizije od [[:$1|$1]]'''.",
        "viewdeletedpage": "Pogledaj izbrisane stranice",
        "undeletepagetext": "{{PLURAL:$1|Slijedeća $1 stranica je obrisana|Slijedeće $1 stranice su obrisane|Slijedećih $1 je obrisano}} ali su još uvijek u arhivi i mogu biti vraćene.\nArhiva moše biti periodično čišćena.",
        "undelete-fieldset-title": "Vraćanje revizija",
        "contribslink": "doprinosi",
        "emaillink": "pošalji e-mail",
        "autoblocker": "Automatski ste blokirani jer dijelite IP-adresu sa \"[[User:$1|$1]]\".\nRazlog za blokiranje korisnika $1 je ''$2''",
-       "blocklogpage": "Evidencija blokiranja",
+       "blocklogpage": "Zapisnik blokiranja",
        "blocklog-showlog": "Ovaj korisnik je ranije blokiran. Zapisnik blokiranja je prikazan ispod kao referenca:",
        "blocklog-showsuppresslog": "Ovaj korisnik je ranije blokiran i sakriven. Zapisnik sakrivanja je prikazan ispod kao referenca:",
        "blocklogentry": "je blokirao [[$1]] sa vremenom isticanja blokade od $2 $3",
        "lockfilenotwritable": "Datoteka zaključavanja baze je zaštićena za pisanje.\nAko želite otključati ili zaključati bazu, ova datoteka mora biti omogućena za pisanje od strane web servera.",
        "databasenotlocked": "Baza podataka nije zaključana.",
        "lockedbyandtime": "(od $1 dana $2 u $3)",
-       "move-page": "Premještanje $1",
-       "move-page-legend": "Premjestite stranicu",
+       "move-page": "Premjesti $1",
+       "move-page-legend": "Premjesti stranicu",
        "movepagetext": "Korištenjem ovog formulara možete preimenovati stranicu, premještajući cijelu historiju na novo ime.\nČlanak pod starim imenom postat će stranica koja preusmjerava na članak pod novim imenom. \nMožete automatski izmijeniti preusmjerenje do izvornog naslova.\nAko se ne odlučite na to, provjerite [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|neispravna preusmjeravanja]].\nDužni ste provjeriti da svi linkovi i dalje nastave voditi na prave stranice.\n\nImajte na umu da članak '''neće''' biti premješten ako već postoji članak pod imenom na koje ga namjeravate preusmjeriti osim u slučaju stranice za preusmjeravanje koja nema nikakvih starih izmjena.\nTo znači da možete vratiti stranicu na prethodno mjesto ako pogriješite, ali ne možete zamijeniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može biti drastična i neočekivana promjena kad su u pitanju popularne stranice.\nMolimo da dobro razmislite prije no što premjestite stranicu.",
-       "movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da preusmjeravanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.",
-       "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, će automatski biti premještena istovremeno '''osim:'''\n*Ako premještate stranicu preko imenskih prostora,\n*Neprazna stranica za razgovor već postoji pod novim imenom, ili\n*Odčekirajte donju kutiju.\n\nU tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.",
-       "movearticle": "Premjestite stranicu",
+       "movepagetext-noredirectfixer": "Koristeći donji obrazac, preimenovat ćete stranicu i premjestiti cijelu njenu historiju na novi naziv.\nStari naziv postat će preusmjerenje na novi naziv.\nMolimo da provjerite postoje li [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|nedovršena preusmjerenja]].\nVi ste za to odgovorni te morate provjeriti jesu li linkovi ispravni i vode li tamo kamo bi trebali voditi.\n\nImajte na umu da stranica '''neće''' biti premještena ako već postoji stranica s tim imenom, osim ako je prazna ili je preusmjerenje ili nema ranije historije.\nOvo znači da možete preimenovati stranicu nazad gdje je ranije bila preimenovana ako ste pogriješili, ali ne možete ponovo preimenovati postojeću stranicu.\n\n'''Pažnja!'''\nImajte na umu da premještanje popularnog članka može biti\ndrastična i neočekivana promjena za korisnike; molimo da budete sigurni da ste shvatili posljedice prije no što nastavite.",
+       "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, automatski će biti premještena istovremeno '''osim ako:'''\n*premještate stranicu preko imenskih prostora\n*neprazna stranica za razgovor već postoji pod novim imenom\n*odčekirate donju kutiju.\n\nU tim slučajevima morat ćete ručno premjestiti ili prekopirati stranicu ako to želite.",
+       "movearticle": "Premjesti stranicu:",
        "moveuserpage-warning": "'''Upozorenje:''' Premještate korisničku stranicu. Molimo da zapamtite da će se samo stranica premjestiti a korisnik se ''neće'' preimenovati.",
        "movenologintext": "Morate biti registrovani korisnik i [[Special:UserLogin|prijavljeni]] da biste premjestili stranicu.",
        "movenotallowed": "Nemate dopuštenje za premještanje stranica.",
        "cant-move-to-user-page": "Nemate dopuštenje da premjestite stranicu na korisničku stranicu (osim na korisničku podstranicu).",
        "newtitle": "Novi naslov",
        "move-watch": "Prati ovu stranicu",
-       "movepagebtn": "premjestite stranicu",
+       "movepagebtn": "Premjesti stranicu",
        "pagemovedsub": "Premještanje uspjelo",
        "movepage-moved": "'''\"$1\" je premještena na \"$2\"'''",
        "movepage-moved-redirect": "Preusmjerenje je napravljeno.",
        "movepage-page-moved": "Stranica $1 je premještena na $2.",
        "movepage-page-unmoved": "Stranica $1 ne može biti premještena na $2.",
        "movepage-max-pages": "Maksimum od $1 {{PLURAL:$1|stranice|stranice|stranica}} je premješteno i više nije moguće premjestiti automatski.",
-       "movelogpage": "Protokol premještanja",
+       "movelogpage": "Zapisnik premještanja",
        "movelogpagetext": "Ispod je spisak stranica koje su premještene.",
        "movesubpage": "{{PLURAL:$1|Podstranica|Podstranice}}",
        "movesubpagetext": "Ova stranica ima $1 {{PLURAL:$1|podstranicu|podstranice|podstranica}} prikazanih ispod.",
        "nocredits": "Autori ove stranice nisu navedeni.",
        "spamprotectiontitle": "Filter za zaštitu od neželjenih poruka",
        "spamprotectiontext": "Strana koju želite da sačuvate je blokirana od strane filtera za neželjene poruke.\nOvo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.",
-       "spamprotectionmatch": "Slijedeći tekst je izazvao naš filter za neželjene poruke: $1",
+       "spamprotectionmatch": "Sljedeći tekst aktivirao je naš filter za neželjene poruke: $1",
        "spambot_username": "MediaWiki čišćenje spama",
        "spam_reverting": "Vraćanje na posljednju verziju koja ne sadrži linkove ka $1",
        "spam_blanking": "Sve revizije koje sadrže linkove ka $1, očisti",
        "pageinfo-category-info": "Informacije o kategoriji",
        "pageinfo-category-total": "Ukupan broj članova",
        "pageinfo-category-pages": "Broj stranica",
-       "pageinfo-category-subcats": "Broj podkategorija",
+       "pageinfo-category-subcats": "Broj potkategorija",
        "pageinfo-category-files": "Broj datoteka",
        "markaspatrolleddiff": "Označi kao patrolirano",
        "markaspatrolledtext": "Označi ovaj članak kao patroliran",
        "watchlistedit-clear-submit": "Isprazni spisak nadgledanja (Ovo je trajno!)",
        "watchlistedit-clear-done": "Vaš spisak praćenja je očišćen.",
        "watchlisttools-clear": "Očisti spisak nadgledanja",
-       "watchlisttools-view": "Pregled promjena praćenih stranica",
-       "watchlisttools-edit": "Pogledaj i uredi listu praćenih članaka.",
-       "watchlisttools-raw": "Uređivanje praćenih stranica u okviru praćenja.",
+       "watchlisttools-view": "Pogledaj srodne izmjene",
+       "watchlisttools-edit": "Pogledaj i uredi spisak praćenja",
+       "watchlisttools-raw": "Uredi spisak praćenja u okviru za uređivanje",
        "iranian-calendar-m1": "Farvardin (Iranski kalendar)",
        "iranian-calendar-m2": "Ordibehesht",
        "iranian-calendar-m3": "Khordad",
        "tags-delete-title": "Izbriši oznaku",
        "tags-delete-reason": "Razlog:",
        "tags-delete-not-found": "Oznaka \"$1\" ne postoji.",
+       "tags-activate-reason": "Razlog:",
+       "tags-activate-not-found": "Oznaka \"$1\" ne postoji.",
        "comparepages": "Usporedi stranice",
        "compare-page1": "Stranica 1",
        "compare-page2": "Stranica 2",
        "dberr-info": "(ne može se spojiti server baze podataka: $1)",
        "dberr-usegoogle": "U međuvremenu, možete pokušati pretraživanje putem Google.",
        "dberr-outofdate": "Zapamtite da njihovi indeksi našeg sadržaja ne moraju uvijek biti ažurni.",
-       "dberr-cachederror": "Slijedeći tekst je keširana kopija zahtjevane stranice i možda nije potpuno ažurirana.",
+       "dberr-cachederror": "Sljedeći tekst je keširana kopija zahtijevane stranice, koja možda nije potpuno ažurirana.",
        "htmlform-invalid-input": "Postoje određeni problemi s Vašim unosom",
        "htmlform-select-badoption": "Vrijednost koju ste naveli nije valjana opcija.",
        "htmlform-int-invalid": "Vrijednost koju ste naveli nije cijeli broj.",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|uploaded}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|postavio|postavila}} је novu verziju $3",
+       "log-name-managetags": "Zapisnik upravljanja oznaka",
+       "log-name-tag": "Zapisnik oznaka",
        "rightsnone": "(nema)",
        "revdelete-summary": "sažetak",
        "feedback-adding": "Dodajem povratne informacije na stranicu...",
        "pagelang-language": "Jezik",
        "pagelang-use-default": "Koristi podrazumijevani jezik",
        "pagelang-select-lang": "Izaberi jezik",
+       "log-name-pagelang": "Zapisnik promjene jezika",
        "mediastatistics-table-count": "Broj datoteka",
        "mediastatistics-table-totalbytes": "Kombinirana veličina",
        "mediastatistics-header-unknown": "Nepoznato",
index ab1be9f..41d9499 100644 (file)
        "passwordreset": "Restablir contrasenya",
        "passwordreset-text-one": "Cal completar aquest formulari per reiniciar la contrasenya",
        "passwordreset-text-many": "{{PLURAL:$1|Ompliu un dels camps per a rebre una contrasenya temporal al vostre correu electrònic.}}",
-       "passwordreset-legend": "Restablir contrasenya",
        "passwordreset-disabled": "S'ha desactivat el restabliment de contranyes en aquest wiki.",
        "passwordreset-emaildisabled": "Les opcions de correu electrònic no estan habilitades en aquest wiki.",
        "passwordreset-username": "Nom d'usuari:",
        "resettokens": "Reinicia els testimonis",
        "resettokens-text": "Des d'aquí podeu reiniciar els testimonis que permeten l'accés a certes dades privades associades amb el vostre compte.\n\nHo hauríeu de fer si accidentalment els heu compartit amb algú o si el vostre compte ha estat compromès.",
        "resettokens-no-tokens": "No hi ha testimonis per reiniciar.",
-       "resettokens-legend": "Reinicia els testimonis",
        "resettokens-tokens": "Testimonis:",
        "resettokens-token-label": "$1 (valor actual: $2)",
        "resettokens-watchlist-token": "Testimoni del canal web (Atom/RSS) dels [[Special:Watchlist|canvis a la llista de seguiment]]",
        "filedelete-reason-dropdown": "*Motius d'eliminació comuns\n** Violació dels drets d'autor / copyright\n** Fitxer duplicat",
        "filedelete-edit-reasonlist": "Edita els motius d'eliminació",
        "filedelete-maintenance": "L'esborrament i recuperació de fitxers està temporalment deshabilitada durant el manteniment.",
-       "filedelete-maintenance-title": "No pot suprimir arxiu",
+       "filedelete-maintenance-title": "No es pot suprimir el fitxer",
        "mimesearch": "Cerca per MIME",
        "mimesearch-summary": "Aquesta pàgina habilita el filtratge de fitxers per llur tipus MIME. Contingut: contenttype/subtype o contenttype/*, p. ex. <code>image/jpeg</code>.",
        "mimetype": "Tipus MIME:",
        "version-libraries": "Biblioteques instal·lades",
        "version-libraries-library": "Biblioteca",
        "version-libraries-version": "Versió",
+       "version-libraries-license": "Llicència",
+       "version-libraries-description": "Descripció",
+       "version-libraries-authors": "Autors",
        "redirect": "Redirigeix per fitxer, usuari, pàgina o ID de la revisió",
        "redirect-legend": "Redirigeix a un fitxer o a una pàgina",
        "redirect-summary": "Aquesta pàgina especial redirigeix a un fitxer (donat el nom del fitxer), una pàgina (donats un ID de la revisió o un ID de pàgina), o a una pàgina d'usuari (donat un ID numèric d'usuari). Ús: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
index 52f656e..733aaf1 100644 (file)
        "faq": "СиХХ",
        "faqpage": "Project:СиХХ",
        "actions": "Дийраш",
-       "namespaces": "Цlерийн ана",
+       "namespaces": "ЦӀерийн ана",
        "variants": "Кепараш",
        "navigation-heading": "Навигацин меню",
        "errorpagetitle": "ГӀалат",
        "databaseerror-error": "ГӀалат: $1",
        "laggedslavemode": "Тергам бе: агӀона чохь керла йаьхинарш ца хила мега.",
        "readonly": "Блоктоьхна дӀайаздар хаамийн бухе",
-       "enterlockreason": "Ð\91илгалде Ð±Ð»Ð¾ÐºÑ\82оÑ\85аÑ\80ан Ð±Ð°Ñ\85Ñ\8cна Ð° и чекх йолу хан а.",
+       "enterlockreason": "Ð\91илгалде Ð±Ð»Ð¾ÐºÑ\82оÑ\85аÑ\80ан Ð±Ð°Ñ\85Ñ\8cана Ð°, и чекх йолу хан а.",
        "readonlytext": "АгӀонаш тӀетохар а кхин хийцамаш барна а блоктоьхна:\nБлокоьхначо биттина хаам: $1.",
        "missing-article": "ХӀокху чохь кароезаш йолу хьан дехарца йозан агӀонаш цакарийна «$1» $2.\n\nИштнарг наггахь хуьлу хьажорг дӀаяьккхина елахь я хийцам бина тиша хьажоргца дехьа гӀо гӀоьртича.\n\nНагахьсан гӀулкх цуьнах доьзна дацахь, хьуна карийна гӀирс латточехь гӀалат.\nДехар до, хаам бе оцуьнах [[Special:ListUsers/sysop|куьйгалхога]], гойтуш URL.",
        "missingarticle-rev": "(верси № $1)",
        "badarticleerror": "И хӀума кхочушъ дан йиш яц хӀокху агӀонехь.",
        "cannotdelete": "Цатарло дӀаяккха я цӀе хийца «$1».\nАгӀо хьалхо дӀаяьккхина хила тарло",
        "cannotdelete-title": "Цатарло агӀо дӀаяккха «$1»",
-       "delete-hook-aborted": "Нисдар юхадаьккхина тӀехьожучо.\nХӀу бахьна ду билгал дина дац.",
+       "delete-hook-aborted": "Ð\9dиÑ\81даÑ\80 Ñ\8eÑ\85адаÑ\8cккÑ\85ина Ñ\82Ó\80еÑ\85Ñ\8cожÑ\83Ñ\87о.\nÐ¥Ó\80Ñ\83 Ð±Ð°Ñ\85Ñ\8cана Ð´Ñ\83 Ð±Ð¸Ð»Ð³Ð°Ð» Ð´Ð¸Ð½Ð° Ð´Ð°Ñ\86.",
        "no-null-revision": "«$1» агӀона нисдар дан цаделира",
        "badtitle": "Цамегаш йолу цӀе",
        "badtitletext": "Дехарца йолу агӀонан цӀе нийса яц, йаьсса ю, хила мега нийса ца хӀоттийна меттаюкъар йа юкъарвики цӀе. Хила мега, цӀарца цамагош йолу символаш.",
        "myprivateinfoprotected": "Хьайн долара хаамна хийцам ба хьа йиш яц",
        "mypreferencesprotected": "Хьай гӀирс нисбан хьа бакъо яц.",
        "ns-specialprotected": "ХӀокху «{{ns:special}}» цӀерийн меттигашан агӀонаш таян йиш яц.",
-       "titleprotected": "[[Декъашхочо:$1|$1]] дихкина ишта корта болуш агӀо кхоллар.\nГайтина бахьна: ''$2''.",
+       "titleprotected": "[[Декъашхо:$1|$1]] дихкина ишта корта болуш агӀо кхоллар.\nГайтина бахьана: ''$2''.",
        "filereadonlyerror": "файл хийца цатарло «$1», «$2» Ӏалаш ечехь ешаран хьолехь хилар бахьнехь.\n\nХӀара хьал хӀоттиначу куьйгалхочо битина хаам: «''$3''».",
        "invalidtitle-knownnamespace": "Магийна боцу коьртамогӀа цӀерийн меттигца «$2» йоза  «$3»",
        "invalidtitle-unknownnamespace": "Магийна боцу коьртамогӀа ца йовза меттигца $1 «$2» йозанца",
        "createacct-another-email-ph": "ДӀаязде электронан поштан адрес",
        "createaccountmail": "Лела йе цахууш нисйина хана пароль, кхин язйинчу электронан адрес тӀе яийта и.",
        "createacct-realname": "Хьан цӀе (ца язйича мега)",
-       "createaccountreason": "Бахьна:",
-       "createacct-reason": "Бахьна",
+       "createaccountreason": "Ð\91аÑ\85Ñ\8cана:",
+       "createacct-reason": "Ð\91аÑ\85Ñ\8cана",
        "createacct-reason-ph": "Стен кхуллуш ду ахьа керла декъашхочун дӀаяздар",
        "createacct-captcha": "Кхерамзалла хьажар",
        "createacct-imgcaptcha-ph": "ДӀаязде хьайна лакхахь гуш долу йоза",
        "passwordsent": "Керла пароль декъашхочун $1 электронан адрес тӀе дӀахьажина. Дехар до, керла пароль еъча юху системин чугӀо.",
        "blocked-mailpassword": "Хьан IP-адрес ца тадарш дан магийна дац, цуьндела пароль меттахӀотош йолу функци блоктоьхна ю.",
        "eauthentsent": "ДӀаяздинчу электронан адрес тӀе хаам баийтина.\nДаиман хаамаш баийта хааман чохь де бохург дан деза адрес хьай хилар бакъдеш.",
-       "throttled-mailpassword": "Ð\9fаÑ\80олÑ\8c Ð´Ð°Ð³Ð° Ð¹Ð¾Ñ\83Ñ\8cйÑ\82Ñ\83 Ñ\84Ñ\83нкÑ\86и {{PLURAL:$1|Ñ\82Ó\80ехьара $1 сахьтехь}} лелина.\nЗулам цахилийта $1 {{PLURAL:$1|сахьтан чохь}} цӀа бен функци лело йиш яц.",
+       "throttled-mailpassword": "Ð\9fаÑ\80олÑ\8c Ð´Ð°Ð³Ð° Ð¹Ð¾Ñ\83Ñ\8cйÑ\82Ñ\83 Ñ\84Ñ\83нкÑ\86и {{PLURAL:$1|Ñ\82Ó\80аÑ\8cÑ\85хьара $1 сахьтехь}} лелина.\nЗулам цахилийта $1 {{PLURAL:$1|сахьтан чохь}} цӀа бен функци лело йиш яц.",
        "mailerror": "Кехат дохьуьйтуш гӀалат ду: $1",
        "acct_creation_throttle_hit": "Де-буьйса хена чохь хьа IP-адрес тӀера {{PLURAL:$1|кхоьллина $1 декъашхочун дӀаяздар|кхоьллина $1 декъашхочун дӀаяздарш}} оьцу хана юкъахь кхин дукха дӀаяздарш кхолла магийна дац.\nЦундела и IP-адрес лелочарна кхин керла дӀаяздарш кхолла цало.",
        "emailauthenticated": "Хьан электронан поштан адрес бакъдина $2 $3.",
        "passwordreset": "Пароль кхоссар",
        "passwordreset-text-one": "Хьай пароль кхосса, юза хӀара форма.",
        "passwordreset-text-many": "{{PLURAL:$1|Пароль кхосса юза лахара цхьа меттиг.}}",
-       "passwordreset-legend": "Пароль кхоссар",
        "passwordreset-disabled": "ХӀокху вики чохь пароль кхоссар дӀадайина ду.",
        "passwordreset-emaildisabled": "Электронан поштан функцеш хӀокху вики чохь дӀаяйина ю.",
        "passwordreset-username": "Декъашхочун цӀе:",
        "resettokens": "Токенаш кхоссар",
        "resettokens-text": "Хьан йиш ю токенаш кхосса, цара йиш хуьлуьйту цхьаболу долара хаамашна тӀекхача, уьш ю хьан дӀаяздар ца вовшахтесна. \n\nХьона иза оьшу, ахьа хьай токенаш цхьам гучу яьхна елахь я хьан аккаунт йохийна елахь.",
        "resettokens-no-tokens": "Кхосса токенаш яц.",
-       "resettokens-legend": "Токенаш кхоссар",
        "resettokens-tokens": "Токенаш:",
        "resettokens-token-label": "$1 (карара маьӀна: $2)",
        "resettokens-watchlist-token": "Веб-каналан (Atom/RSS) токен  [[Special:Watchlist|хьан тергаме могӀанан чура агӀонашна хийцамаш бар]]",
        "subject-preview": "Коьрта могӀа хира бу:",
        "previewerrortext": "Хьан хийцамашка хьалха хьажа гӀертачу хенахь гӀалат даьлла.",
        "blockedtitle": "Декъашхочун блоктоьхана",
-       "blockedtext": "'''Хьан декъашхочун дӀаяздар я IP-адрес блоктоьхна ду.'''\n\nБлоктоьхна куьйгалхочо $1.\nБилгалдина бахьна: «''$2''».\n\n* Блоктохар доладелла: $8\n* Блоктохар чекхдолу: $6\n* Блоктохаран Ӏалашо: $7\n\nХьа йиш ю $1 декъашхочуьнга дехардан я кхечу муьлха [[{{MediaWiki:Grouppage-sysop}}|куьйгалхочуьнга]].\nТергам бе, хьа таро яц «декъашхочунга кехат» олу функци лелаян, хьан [[Special:Preferences|гӀирс нисбар чохь]] нийса электронан поштан адрес яздина дацахь, я кехаташ кхехӀитарна а блоктоьхна елахь.\nХьан IP-адрес — $3, блоктохаран идентификатор — $5.\nДехар до, хьайн хаам чохь билгалде и.",
+       "blockedtext": "'''Ð¥Ñ\8cан Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð´Ó\80аÑ\8fздаÑ\80 Ñ\8f IP-адÑ\80еÑ\81 Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на Ð´Ñ\83.'''\n\nÐ\91локÑ\82оÑ\8cÑ\85на ÐºÑ\83Ñ\8cйгалÑ\85оÑ\87о $1.\nÐ\91илгалдина Ð±Ð°Ñ\85Ñ\8cана: Â«''$2''».\n\n* Ð\91локÑ\82оÑ\85аÑ\80 Ð´Ð¾Ð»Ð°Ð´ÐµÐ»Ð»Ð°: $8\n* Ð\91локÑ\82оÑ\85аÑ\80 Ñ\87екÑ\85долÑ\83: $6\n* Ð\91локÑ\82оÑ\85аÑ\80ан Ó\80алаÑ\88о: $7\n\nÐ¥Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e $1 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83Ñ\8cнга Ð´ÐµÑ\85аÑ\80дан Ñ\8f ÐºÑ\85еÑ\87Ñ\83 Ð¼Ñ\83Ñ\8cлÑ\85а [[{{MediaWiki:Grouppage-sysop}}|кÑ\83Ñ\8cйгалÑ\85оÑ\87Ñ\83Ñ\8cнга]].\nТеÑ\80гам Ð±Ðµ, Ñ\85Ñ\8cа Ñ\82аÑ\80о Ñ\8fÑ\86 Â«Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83нга ÐºÐµÑ\85аÑ\82» Ð¾Ð»Ñ\83 Ñ\84Ñ\83нкÑ\86и Ð»ÐµÐ»Ð°Ñ\8fн, Ñ\85Ñ\8cан [[Special:Preferences|гÓ\80иÑ\80Ñ\81 Ð½Ð¸Ñ\81баÑ\80 Ñ\87оÑ\85Ñ\8c]] Ð½Ð¸Ð¹Ñ\81а Ñ\8dлекÑ\82Ñ\80онан Ð¿Ð¾Ñ\88Ñ\82ан Ð°Ð´Ñ\80еÑ\81 Ñ\8fздина Ð´Ð°Ñ\86аÑ\85Ñ\8c, Ñ\8f ÐºÐµÑ\85аÑ\82аÑ\88 ÐºÑ\85еÑ\85Ó\80иÑ\82аÑ\80на Ð° Ð±Ð»Ð¾ÐºÑ\82оÑ\8cÑ\85на ÐµÐ»Ð°Ñ\85Ñ\8c.\nÐ¥Ñ\8cан IP-адÑ\80еÑ\81 â\80\94 $3, Ð±Ð»Ð¾ÐºÑ\82оÑ\85аÑ\80ан Ð¸Ð´ÐµÐ½Ñ\82иÑ\84икаÑ\82оÑ\80 â\80\94 $5.\nÐ\94еÑ\85аÑ\80 Ð´Ð¾, Ñ\85Ñ\8cайн Ñ\85аам Ñ\87оÑ\85Ñ\8c Ð±Ð¸Ð»Ð³Ð°Ð»Ð´Ðµ Ð¸.",
        "blockednoreason": "бахьана билгалдина дац",
        "whitelistedittext": "Ахьа да деза $1 агӀона хийцамаш бан.",
        "nosuchsectiontitle": "Дакъа каро йиш яц.",
        "recreate-moveddeleted-warn": "'''Тидам бе. Ахьа кхуллуш ю, хьалхо дӀаяьккхина йолу агӀо.'''\n\nХьажа, билгалла оьши хьуна хӀара агӀо юха кхолла.\nЛахахь далина ду дӀаяхарш тӀяхь долу тептарш а хӀокх агӀона цӀе хийцарш а.",
        "moveddeleted-notice": "Иза агӀо дӀаяьккхина яра.\nХаийтарна лахахьа гойту, цуьнца долу дӀаяздарш кху тептар чура дӀаяхарш а цӀе хийцарш а.",
        "log-fulllog": "Хьажа деригге тептаре",
-       "edit-hook-aborted": "Нисдар юхадаьккхина тӀехьожучо.\nХӀу бахьна ду билгал дина дац.",
+       "edit-hook-aborted": "Ð\9dиÑ\81даÑ\80 Ñ\8eÑ\85адаÑ\8cккÑ\85ина Ñ\82Ó\80еÑ\85Ñ\8cожÑ\83Ñ\87о.\nÐ¥Ó\80Ñ\83 Ð±Ð°Ñ\85Ñ\8cана Ð´Ñ\83 Ð±Ð¸Ð»Ð³Ð°Ð» Ð´Ð¸Ð½Ð° Ð´Ð°Ñ\86.",
        "edit-gone-missing": "АгӀо карлаяккха цатарло.\nИза дӀаяьккхина хила мега.",
        "edit-conflict": "Тадарна дойнаш.",
        "edit-no-change": "Хьан нисдар юхадаьккхина, ахьа хийцамаш бина цахилар бахьнехь.",
        "rev-deleted-user": "(авторан цӏе дӏаяйина)",
        "rev-deleted-event": "(дӀаяздар дӀаяьккхина)",
        "rev-deleted-user-contribs": "[декъашхочун цӀе я IP-адрес дӀаяхина — къинхьегаман агӀонгара нисдар къайлаяьккхина]",
-       "rev-deleted-text-permission": "ХӀара агӀона верси '''дӀаяьккхина''' ю.\nБахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].",
-       "rev-suppressed-text-permission": "ХӀара агӀона верси <strong>къайлаяьккхина ю</strong>.\nБахьна далина [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} къайлаяьхарш йолу тептар чохь].",
-       "rev-deleted-text-unhide": "ХӀара агӀона верси '''дӀаяьккхина''' ю.\nБахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].\nХьайна лаахь хьа йиш ю [$1 и верси хьажа].",
-       "rev-suppressed-text-unhide": "ХӀара агӀона верси '''къайлаяьккхина''' ю.\nБахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].\nХьайна лаахь хьа йиш ю [$1 и верси хьажа].",
-       "rev-deleted-text-view": "ХӀара агӀона верси '''дӀаяьккхина''' ю.\nБахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].",
-       "rev-suppressed-text-view": "ХӀара агӀона верси '''къайлаяьккхина''' ю.\nБахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].",
+       "rev-deleted-text-permission": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80она Ð²ÐµÑ\80Ñ\81и '''дÓ\80аÑ\8fÑ\8cккÑ\85ина''' Ñ\8e.\nÐ\91аÑ\85Ñ\8cана Ð´Ð°Ð»Ð¸Ð½Ð° [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Ð´Ó\80аÑ\8fÑ\8cÑ\85наÑ\80Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87оÑ\85Ñ\8c].",
+       "rev-suppressed-text-permission": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80она Ð²ÐµÑ\80Ñ\81и <strong>кÑ\8aайлаÑ\8fÑ\8cккÑ\85ина Ñ\8e</strong>.\nÐ\91аÑ\85Ñ\8cана Ð´Ð°Ð»Ð¸Ð½Ð° [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ÐºÑ\8aайлаÑ\8fÑ\8cÑ\85аÑ\80Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87оÑ\85Ñ\8c].",
+       "rev-deleted-text-unhide": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80она Ð²ÐµÑ\80Ñ\81и '''дÓ\80аÑ\8fÑ\8cккÑ\85ина''' Ñ\8e.\nÐ\91аÑ\85Ñ\8cана Ð´Ð°Ð»Ð¸Ð½Ð° [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Ð´Ó\80аÑ\8fÑ\8cÑ\85наÑ\80Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87оÑ\85Ñ\8c].\nÐ¥Ñ\8cайна Ð»Ð°Ð°Ñ\85Ñ\8c Ñ\85Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e [$1 Ð¸ Ð²ÐµÑ\80Ñ\81и Ñ\85Ñ\8cажа].",
+       "rev-suppressed-text-unhide": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80она Ð²ÐµÑ\80Ñ\81и '''кÑ\8aайлаÑ\8fÑ\8cккÑ\85ина''' Ñ\8e.\nÐ\91аÑ\85Ñ\8cана Ð´Ð°Ð»Ð¸Ð½Ð° [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Ð´Ó\80аÑ\8fÑ\8cÑ\85наÑ\80Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87оÑ\85Ñ\8c].\nÐ¥Ñ\8cайна Ð»Ð°Ð°Ñ\85Ñ\8c Ñ\85Ñ\8cа Ð¹Ð¸Ñ\88 Ñ\8e [$1 Ð¸ Ð²ÐµÑ\80Ñ\81и Ñ\85Ñ\8cажа].",
+       "rev-deleted-text-view": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80она Ð²ÐµÑ\80Ñ\81и '''дÓ\80аÑ\8fÑ\8cккÑ\85ина''' Ñ\8e.\nÐ\91аÑ\85Ñ\8cана Ð´Ð°Ð»Ð¸Ð½Ð° [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Ð´Ó\80аÑ\8fÑ\8cÑ\85наÑ\80Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87оÑ\85Ñ\8c].",
+       "rev-suppressed-text-view": "Ð¥Ó\80аÑ\80а Ð°Ð³Ó\80она Ð²ÐµÑ\80Ñ\81и '''кÑ\8aайлаÑ\8fÑ\8cккÑ\85ина''' Ñ\8e.\nÐ\91аÑ\85Ñ\8cана Ð´Ð°Ð»Ð¸Ð½Ð° [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Ð´Ó\80аÑ\8fÑ\8cÑ\85наÑ\80Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\82епÑ\82аÑ\80 Ñ\87оÑ\85Ñ\8c].",
        "rev-deleted-no-diff": "АгӀона цхьа верси '''дӀаяьккхина''' хилар бахьнехь, хӀуна версийн башхалла хьажа цало.\nМадарра каро мега [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяккхаран тептар чохь].",
        "rev-suppressed-no-diff": "Хьо хӀокху версешан башхала хьажа цало, царах цхьаъ '''дӀаяьккхина''' хилар бахьнехь.",
        "rev-delundel": "гайта/къайла",
        "revdelete-radio-unset": "Гуш ерг",
        "revdelete-suppress": "Къайлабаха хаамаш куьйгалхойх а",
        "revdelete-unsuppress": "МеттахӀоьттина версийн дихкар къайладаккха",
-       "revdelete-log": "Бахьна:",
+       "revdelete-log": "Ð\91аÑ\85Ñ\8cана:",
        "revdelete-submit": "Кхочушде {{PLURAL:$1|1=къастина версин|къастина версийн}}",
        "revdelete-success": "'''Версеш гуш хилар кхиамца хийцина.'''",
        "revdelete-failure": "'''Версеш гуш хилар хийца йиш яц:'''\n$1",
        "deletedhist": "ДӀаяккхаран истори",
        "revdelete-hide-current": "Цунах $2, $1: дӀаяздар къайладаккхаран гӀалат и верси карара ю.\nИза къайлаяккха йиш яц.",
        "revdelete-reason-dropdown": "Даржина долу дӀаяккхаран баьхьанаш \n** Авторан бакъонаш талхор\n** Бита йиш йоцу шех лаьцна хаам\n** Бакъдоцург зуламан хаам",
-       "revdelete-otherreason": "Кхин бахьна/тӀетохар:",
-       "revdelete-reasonotherlist": "Кхин бахьна",
+       "revdelete-otherreason": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана/Ñ\82Ó\80еÑ\82оÑ\85аÑ\80:",
+       "revdelete-reasonotherlist": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана",
        "revdelete-edit-reasonlist": "Бахьанин могӀам нисбар",
        "revdelete-offender": "АгӀона версин автор:",
        "suppressionlog": "Хьулдаран тептар",
        "mergehistory-invalid-destination": "Юзийна агӀона нийса корта хила еза.",
        "mergehistory-autocomment": "Дехьа яьккхина [[:$1]] [[:$2]] чу",
        "mergehistory-comment": "Дехьа яьккхина [[:$1]] [[:$2]] чу: $3",
-       "mergehistory-reason": "Бахьна:",
+       "mergehistory-reason": "Ð\91аÑ\85Ñ\8cана:",
        "mergelog": "Цхьаьнатохаршан тептар",
        "revertmerge": "Йекъа",
        "mergelogpagetext": "Лахахь гойту тӀеххьара вовшахтоьхна агӀонийн могӀам.",
        "userrights-groupsmember": "Декъашхо:",
        "userrights-groupsmember-auto": "Бакъонашан тоба:",
        "userrights-groups-help": "Хьона хийца ло декъашхочун бакъонаш.\n* Бакъона цӀера юххехь билгало елахь, цуна и бакъо йолуш ю.\n* Билгало яцахь — декъашхочун и бакъо яц.\n* Знако * билгала до ахьа бакъо еллачул тӀаьхьа хьона и дӀаяккха цалуш хилар.",
-       "userrights-reason": "Бахьна:",
+       "userrights-reason": "Ð\91аÑ\85Ñ\8cана:",
        "userrights-no-interwiki": "Хьан бакъо яц декъашхой бакъо хийца кхечу википеди чохь.",
        "userrights-nologin": "Куьйгалхочунна бакъо йолу [[Special:UserLogin|дӀаяздарца]] ло декъашхочун бакъо.",
        "userrights-notallowed": "Хьан дӀаяздарца магийна дац декъашхошна бакъо яла а дӀаяккха а.",
        "backend-fail-read": "Файл «$1» еша цаелира.",
        "backend-fail-create": "Файл $1 дӀаязъян цаелира.",
        "backend-fail-maxsize": "Файл $1 дӀаязъян цаелира, цуна барам $2 {{PLURAL:$2|байт}} сов хилар бахьнехь.",
-       "backend-fail-readonly": "ХӀара «$1» хӀинца еша бен таро яц. Бахьна: «$2»",
+       "backend-fail-readonly": "Ð¥Ó\80аÑ\80а Â«$1» Ñ\85Ó\80инÑ\86а ÐµÑ\88а Ð±ÐµÐ½ Ñ\82аÑ\80о Ñ\8fÑ\86. Ð\91аÑ\85Ñ\8cана: Â«$2»",
        "lockmanager-notlocked": "БлокдӀаяккха цаелира \"$1\"; цуна блоктоьхна яц.",
        "lockmanager-fail-closelock": "Блоктохаран «$1» файл къайлаяккха цаелира.",
        "lockmanager-fail-deletelock": "Блоктохаран файл «$1» дӀаяккха цатарло.",
        "filerevert": "Тохарлера верси юхаерзор $1",
        "filerevert-legend": "Файлан верси юхаерзо",
        "filerevert-intro": "<span class=\"plainlinks\">Файл юхаерзош ю '''[[Media:$1|$1]]''' оцу [$4 верси $3, $2].</span>",
-       "filerevert-comment": "Бахьна:",
+       "filerevert-comment": "Ð\91аÑ\85Ñ\8cана:",
        "filerevert-defaultcomment": "Юхаерзош ю оцу $2, $1 хенахь хила верси",
        "filerevert-submit": "Юхаяккха",
        "filerevert-success": "Юхаерзина файл '''[[Media:$1|$1]]''' оцу [$4 верси $3, $2].",
        "filedelete-legend": "ДӀаяккха файл",
        "filedelete-intro": "Хьо файл '''[[Media:$1|$1]]''' дӀаяккха гӀерта цунна массо истори цхьан.",
        "filedelete-intro-old": "<span class=\"plainlinks\">Ахьа дӀайоккхуш ю верси '''[[Media:$1|$1]]''' цу [$4 $3, $2].</span>",
-       "filedelete-comment": "Бахьна:",
+       "filedelete-comment": "Ð\91аÑ\85Ñ\8cана:",
        "filedelete-submit": "ДӀаяккха",
        "filedelete-success": "$1 дӀаяьккхи.",
        "filedelete-success-old": "Верси '''[[Media:$1|$1]]''' цу $3 $2 дӀаяьккхина.",
        "filedelete-nofile": "'''$1''' яц.",
-       "filedelete-otherreason": "Кхин бахьна:",
-       "filedelete-reason-otherlist": "Кхин бахьна",
+       "filedelete-otherreason": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана:",
+       "filedelete-reason-otherlist": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана",
        "filedelete-reason-dropdown": "* Даржина долу дӀаяккхаран баьхьанаш \n** Авторан бакъонаш талхор\n** ЦхӀатера файлаш хилар",
        "filedelete-edit-reasonlist": "Бахьанин могӀам нисбар",
        "filedelete-maintenance-title": "Файл дӀаяккха цало",
        "protectedpages-expiry": "Чекхйолу",
        "protectedpages-performer": "Декъашхо ларор",
        "protectedpages-params": "ГӀаролийн параметраш",
-       "protectedpages-reason": "Бахьна",
+       "protectedpages-reason": "Ð\91аÑ\85Ñ\8cана",
        "protectedpages-unknown-timestamp": "Хууш дац",
        "protectedpages-unknown-performer": "Хууш доцу декъашхо",
        "protectedtitles": "ГӀаролла дина цӀерш",
        "dellogpage": "ДӀадаьхнарш долу тéптар",
        "dellogpagetext": "Лахахь гойтуш ю тӀаьххьара дӀаяьхнарш.",
        "deletionlog": "дӀадаьхнарш долу тéптар",
-       "deletecomment": "Бахьна:",
-       "deleteotherreason": "Кхин бахьна/тӀетохар:",
-       "deletereasonotherlist": "Кхин бахьна",
+       "deletecomment": "Ð\91аÑ\85Ñ\8cана:",
+       "deleteotherreason": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана/Ñ\82Ó\80еÑ\82оÑ\85аÑ\80:",
+       "deletereasonotherlist": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана",
        "deletereason-dropdown": "* Даржина долу дӀаяккхаран баьхьанаш \n** спам\n** зулма  \n** авторан лаамца\n** авторан бакъонаш талхор\n** болх цабо дӀасхьажорг",
        "delete-edit-reasonlist": "Бахьанин могӀам нисбар",
        "deleting-backlinks-warning": "'''ДӀахьедар:''' Ахьа дӀайоккхуш йолчун тӀе товжийна [[Special:WhatLinksHere/{{FULLPAGENAME}}|кхин агӀонаш]] ю.",
        "rollbacklinkcount": "юхадаккха $1 {{PLURAL:$1|1=нисдар|нисдарш}}",
        "rollbacklinkcount-morethan": "Юхадаккха $1 дукха {{PLURAL:$1|нисдар|нисдарш|нисдарш}}",
        "rollbackfailed": "Юхайоккхуш гӀалат ду",
-       "alreadyrolled": "ТÓ\80ехьара [[User:$2|$2]] ([[User talk:$2|дийцаре]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) декъашхочо «[[:$1]]» агӀона  бина хийцамаш юхабаха цатарло,\nхӀинцале цхъаъ кхиъна хийцамаш юхабаха я агӀо тая.\n\nХийцамаш бинарг [[User:$3|$3]] ([[User talk:$3|дийцаре]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
-       "editcomment": "Хийцамаш барна гайтина бахьна: ''$1''.",
+       "alreadyrolled": "ТÓ\80аÑ\8cÑ\85хьара [[User:$2|$2]] ([[User talk:$2|дийцаре]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) декъашхочо «[[:$1]]» агӀона  бина хийцамаш юхабаха цатарло,\nхӀинцале цхъаъ кхиъна хийцамаш юхабаха я агӀо тая.\n\nХийцамаш бинарг [[User:$3|$3]] ([[User talk:$3|дийцаре]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "editcomment": "ХийÑ\86амаÑ\88 Ð±Ð°Ñ\80на Ð³Ð°Ð¹Ñ\82ина Ð±Ð°Ñ\85Ñ\8cана: ''$1''.",
        "revertpage": "Нисдарш [[Special:Contributions/$2|$2]] ([[User talk:$2|дийцаре]]) юха даьхна версин [[User:$1|$1]]",
        "revertpage-nouser": "Нисдарш (декъашхочун цӀе хьулйина) юхадаьхина версин {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Юхадаьхна $1; нисдарш, $2 версин.",
        "protect-badnamespace-text": "ХӀокху цӀерийн меттигехь йолу агӀонашна гӀараладан цало.",
        "protect-norestrictiontypes-title": "ГӀараладан цалуш йолу агӀо",
        "protect-legend": "Бакъде гӀоралла дар",
-       "protectcomment": "Бахьна:",
+       "protectcomment": "Ð\91аÑ\85Ñ\8cана:",
        "protectexpiry": "Чекхйолу:",
        "protect_expiry_invalid": "Нийса йоцу хан гlаролла дlайаларехь.",
        "protect_expiry_old": "Хан чаккхе — хьалхалера.",
        "protect-othertime-op": "кхин хан",
        "protect-existing-expiry": "Карара чекхйолу хан: $2, $3",
        "protect-existing-expiry-infinity": "Карара чекхйолу хан: чаккхе йоцу",
-       "protect-otherreason": "Кхин бахьна/тӀетохар:",
-       "protect-otherreason-op": "Кхин бахьна",
+       "protect-otherreason": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана/Ñ\82Ó\80еÑ\82оÑ\85аÑ\80:",
+       "protect-otherreason-op": "Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cана",
        "protect-dropdown": "* ГӀоралла дарна баьхьаш \n** сих-сиха зулам дар \n** дуккха спам хилар\n** нисдарийн тӀом \n** гӀараялл агӀо",
        "protect-edit-reasonlist": "Бахьанин могӀам нисбар",
        "protect-expiry-options": "1 сахьт:1 hour,1 де:1 day,1 кӀиран:1 week,2 кӀиран:2 weeks,1 бутт:1 month,3 бутт:3 months,6 бутт:6 months,1 шо:1 year,цlкъа:infinite",
        "undeletelink": "хьажа/меттахӀоттае",
        "undeleteviewlink": "хьажа",
        "undeleteinvert": "Къастае массо",
-       "undeletecomment": "Бахьна:",
+       "undeletecomment": "Ð\91аÑ\85Ñ\8cана:",
        "undeletedrevisions": "{{PLURAL:$1|меттахӀоьттина}} $1 {{PLURAL:$1|хийцам}}",
        "undeletedrevisions-files": "меттахӀоьттина $1 {{PLURAL:$1|верси}} а $2 {{PLURAL:$2|файл}} а",
        "undeletedfiles": "$1 {{PLURAL:$1|файл меттахӀоттайина|файлаш меттахӀоттайина}}",
        "undelete-error-short": "Файл меттахӀоттаяран гӀалат: $1",
        "undelete-error-long": "Файл меттахӀоттош гӀалат даьлла:\n\n$1",
        "undelete-show-file-submit": "ХӀаъ",
-       "namespace": "Цlерийн ана:",
+       "namespace": "ЦӀерийн ана:",
        "invert": "Хаьржинарг къайлаяккха",
        "tooltip-invert": "ХӀоттае хӀара билгало, хаьржинчу цӀерийн анан агӀонийн хийцамаш къайлабаха (кхин дихкина цӀерийн анаш, гайтина елахь)",
        "namespace_association": "Йихкина ана",
        "unblock": "ДекъашхонтӀера блокдӀаякхар",
        "blockip": "Блоктоха {{GENDER:$1|декъашхочун}}",
        "blockip-legend": "Декъашхочун блоктохар",
-       "blockiptext": "Бухахь йолу форманца блоктоха IP-адресна цунтӏера дӏаяздарш ца дайта.\nБлоктоха магийна цо зенаш деш делахь кхин хӏокху [[{{MediaWiki:Policy-url}}|низам ца]].\nЛахахь билгалде блоктохарна бахьна.",
+       "blockiptext": "Ð\91Ñ\83Ñ\85аÑ\85Ñ\8c Ð¹Ð¾Ð»Ñ\83 Ñ\84оÑ\80манÑ\86а Ð±Ð»Ð¾ÐºÑ\82оÑ\85а IP-адÑ\80еÑ\81на Ñ\86Ñ\83нÑ\82Ó\8fеÑ\80а Ð´Ó\8fаÑ\8fздаÑ\80Ñ\88 Ñ\86а Ð´Ð°Ð¹Ñ\82а.\nÐ\91локÑ\82оÑ\85а Ð¼Ð°Ð³Ð¸Ð¹Ð½Ð° Ñ\86о Ð·ÐµÐ½Ð°Ñ\88 Ð´ÐµÑ\88 Ð´ÐµÐ»Ð°Ñ\85Ñ\8c ÐºÑ\85ин Ñ\85Ó\8fокÑ\85Ñ\83 [[{{MediaWiki:Policy-url}}|низам Ñ\86а]].\nÐ\9bаÑ\85аÑ\85Ñ\8c Ð±Ð¸Ð»Ð³Ð°Ð»Ð´Ðµ Ð±Ð»Ð¾ÐºÑ\82оÑ\85аÑ\80на Ð±Ð°Ñ\85Ñ\8cана.",
        "ipaddressorusername": "IP-адрес я декъашхочун цӀе:",
        "ipbexpiry": "Хан чекхйолу:",
-       "ipbreason": "Бахьна:",
+       "ipbreason": "Ð\91аÑ\85Ñ\8cана:",
        "ipbreason-dropdown": "* Белхан некъ дӀакъовлар бахьанаш:\n** Харца хаам бар\n** АгӀонан чураниг дӀаяккхар\n** Спам-хьажоргаш арахьара сайташна\n** МаьӀна доцу йоза тӀетохар\n** Декъашхой хьийзабар, кхерамаш тийсар\n** Масийтта лараман яздар зуламан лелаяр\n** Магийтина йоцу декъашхочун цӀе",
        "ipb-hardblock": "Шаш довзийтина болу декъашхошна бехкам бе хӀокху IP-адресца тадарш дан",
        "ipbcreateaccount": "Цамаго керла декъашхочун дӀаяздарш кхолла",
        "blocklist-expiry": "Чекхйолу",
        "blocklist-by": "Цунна блоктоьхана куьйгалхо",
        "blocklist-params": "Блоктохаран параметраш",
-       "blocklist-reason": "Бахьна:",
+       "blocklist-reason": "Ð\91аÑ\85Ñ\8cана:",
        "ipblocklist-submit": "Лахар",
        "ipblocklist-localblock": "Локальни блоктохар",
        "ipblocklist-otherblocks": "{{PLURAL:$1|Кхин блоктохар|Кхин блоктохарш}}",
        "movesubpage": "{{PLURAL:$1|1=Бухара агӀо|Бухара агӀонаш}}",
        "movesubpagetext": "ХӀокху агӀона $1 {{PLURAL:$1|1=бухара агӀо ю|бухара агӀонаш ю}}.",
        "movenosubpage": "ХӀокху агӀона бухара агӀонаш яц.",
-       "movereason": "Бахьна:",
+       "movereason": "Ð\91аÑ\85Ñ\8cана:",
        "revertmove": "юхаяккха",
        "delete_and_move": "Цle а хуьйцуш дӀаяккха",
        "delete_and_move_text": "== ДӀаяккха хьокъ ю ==\nИ цӀе йолу аг1о «[[:$1]]» йолуш ю. \nЛаьий хьуна и дӀаяккха, цӀе хийца таро хилийта?",
        "move-leave-redirect": "Ӏадйита дӀасахьажораг",
        "protectedpagemovewarning": "'''ДӀахьедар.''' ХӀара агӀо гӀаролла йина ю; цӀе хийца я нисйа а бакъо йолуш куьйгалхой бе бац.\nЛахахьа тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "semiprotectedpagemovewarning": "'''ДӀахьедо.''' ХӀара агӀо гӀаролла йина ю; дӀабазбиначу декъашхошка бе цӀе хийцалуш яц.\nЛахахьа тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
+       "move-over-sharedrepo": "== Файл йолуш ю ==\nВикигулам чохь йолуш ю [[:$1]]. ХӀокху файлан цӀе хийцича Викигулам чуьраниг дӀакъовлу.",
        "export": "АгӀонаш араяхар",
        "exporttext": "Шуьга далур ду кхечу меттера чудахарш, йоза а хийцаме тептарш билгалла йолу агӀонаш я гулдина йолу агӀонаш хӀокху XML барамца, юха тӀаьхьа чура [[Special:Import|хьаэцалурдолш]] кхечу вики-хьалхен, болх беш йолу хӀокху MediaWiki гӀирсаца.\n\nКхечу меттера яззамаш чуяха, чу язъе цӀе тадечу метте, цхьа могӀан цӀе могӀаршкахь, юха харжа лаьий шуна кхечу меттигера чуяха массо яззамашна истори хийцамбарш я тӀаьххьарлера яззаман верси.\n\nШуьга кхи далундерг, лелаеш йолу адресан хьажорг кхечу меттера чудаха тӀаьххьарлерачу версин яззамаш. Масала оцу яззаман [[{{MediaWiki:Mainpage}}]] хӀара хира ю хьажорг [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].",
        "exportall": "Массо агӀонаш экспорт ян",
        "tooltip-recreate": "АгӀо дӀаяьккхина хиларе ца хьоьжуш меттахӀоттае агӀо",
        "tooltip-upload": "Доладе чуяккхар",
        "tooltip-rollback": "Цхьоз тlетаlийча дlабаккха кхечо бина болу тlаьххьара хийцам",
-       "tooltip-undo": "ДӀабаккха бина болу хийцам а хьалхьажар гойтуш, дӀаяккхарна бахьна гайта аьтту беш",
+       "tooltip-undo": "Ð\94Ó\80абаккÑ\85а Ð±Ð¸Ð½Ð° Ð±Ð¾Ð»Ñ\83 Ñ\85ийÑ\86ам Ð° Ñ\85Ñ\8cалÑ\85Ñ\8cажаÑ\80 Ð³Ð¾Ð¹Ñ\82Ñ\83Ñ\88, Ð´Ó\80аÑ\8fккÑ\85аÑ\80на Ð±Ð°Ñ\85Ñ\8cана Ð³Ð°Ð¹Ñ\82а Ð°Ñ\8cÑ\82Ñ\82Ñ\83 Ð±ÐµÑ\88",
        "tooltip-preferences-save": "ГӀирс нисбар Ӏалашде",
        "tooltip-summary": "Язъе йоца цӀе",
        "interlanguage-link-title-nonlang": "$1 – $2",
        "creditspage": "Баркаллаш",
        "nocredits": "Бац декъашхойн могӀам хӀокху яззамца",
        "spamprotectiontitle": "Совбиларна литтар",
-       "spamprotectiontext": "Хьо дӀаязъян гӀерта агӀо спам-литтаро дӀакъоьвлина.\nЦуна бахьна хила там бу агӀона чохь зулам литтаран чутоьхна йолу хьажорг хилар.",
+       "spamprotectiontext": "Ð¥Ñ\8cо Ð´Ó\80аÑ\8fзÑ\8aÑ\8fн Ð³Ó\80еÑ\80Ñ\82а Ð°Ð³Ó\80о Ñ\81пам-лиÑ\82Ñ\82аÑ\80о Ð´Ó\80акÑ\8aоÑ\8cвлина.\nЦÑ\83на Ð±Ð°Ñ\85Ñ\8cана Ñ\85ила Ñ\82ам Ð±Ñ\83 Ð°Ð³Ó\80она Ñ\87оÑ\85Ñ\8c Ð·Ñ\83лам Ð»Ð¸Ñ\82Ñ\82аÑ\80ан Ñ\87Ñ\83Ñ\82оÑ\8cÑ\85на Ð¹Ð¾Ð»Ñ\83 Ñ\85Ñ\8cажоÑ\80г Ñ\85илаÑ\80.",
        "spambot_username": "Спам дӀацӀаняр",
        "pageinfo-title": "Хаамаш цу «$1»",
        "pageinfo-not-current": "Шира версийн оьцу хааме хьажа таро яц.",
        "markaspatrolledtext": "Билгалъе хӀара агӀо хьаьжжина сана",
        "markedaspatrolled": "ДӀадахка теллина санна хилар",
        "markedaspatrolledtext": "Хаьржина [[:$1]] агӀона верси къобалйина сана билгалйина.",
-       "rcpatroldisabled": "ТÓ\80ехьара бина хийцамаш къобалбан магийна дац",
-       "rcpatroldisabledtext": "ТÓ\80ехьара бина хийцамаш къобалбар хӀинца дӀадайина ду.",
+       "rcpatroldisabled": "ТÓ\80аÑ\8cÑ\85хьара бина хийцамаш къобалбан магийна дац",
+       "rcpatroldisabledtext": "ТÓ\80аÑ\8cÑ\85хьара бина хийцамаш къобалбар хӀинца дӀадайина ду.",
        "markedaspatrollederror": "теллина сана билгалъян цало",
        "markedaspatrollednotify": "АгӀо «$1» пайдане хилар билгалдина",
        "markedaspatrollederrornotify": "Хийцамаш хьаьжжина сана билгал бан цабелира.",
        "exif-serialnumber": "Камеран серин номер",
        "exif-cameraownername": "Камера ерг",
        "exif-label": "Билгало",
-       "exif-datetimemetadata": "ТÓ\80ехьара метахаамаш хийцина терахь",
+       "exif-datetimemetadata": "ТÓ\80аÑ\8cÑ\85хьара метахаамаш хийцина терахь",
        "exif-nickname": "ЧӀагӀъелла йоцу суьртан цӀе",
        "exif-rating": "Мах хадор (5 нах)",
        "exif-rightscertificate": "Бакъонийн урхалладаран сертификат",
        "monthsall": "массо",
        "confirmemail": "Электронан поштан адрес бакъдар",
        "confirmemail_noemail": "Ахьа нийса электронан поштан адрес яздина дац [[Special:Preferences|гӀирсан чохь]].",
-       "confirmrecreate": "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяьккхина, ахьа иза тая йолийча, дӀаяккхарна бахьна:\n: ''$2''\nДехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
+       "confirmrecreate": "Ð\94екÑ\8aаÑ\88Ñ\85оÑ\87о [[User:$1|$1]] ([[User talk:$1|дийÑ\86аÑ\80е]]) Ñ\85Ó\80аÑ\80а Ð°Ð³Ó\80о Ð´Ó\80аÑ\8fÑ\8cккÑ\85ина, Ð°Ñ\85Ñ\8cа Ð¸Ð·Ð° Ñ\82аÑ\8f Ð¹Ð¾Ð»Ð¸Ð¹Ñ\87а, Ð´Ó\80аÑ\8fккÑ\85аÑ\80на Ð±Ð°Ñ\85Ñ\8cана:\n: ''$2''\nÐ\94еÑ\85аÑ\80 Ð´Ð¾, Ñ\82еÑ\88ал Ð´Ðµ, Ñ\85Ñ\8cо Ð¸Ð·Ð° Ð°Ð³Ó\80о Ð¼ÐµÑ\82Ñ\82аÑ\85Ó\80оÑ\82Ñ\82о Ð»Ñ\83Ñ\83Ñ\88 Ð²Ñ\83\8e Ð°Ð»Ðµ.",
        "confirmrecreate-noreason": "Декъашхочо [[User:$1|$1]] ([[User talk:$1|дийцаре]]) хӀара агӀо дӀаяьккхина, ахьа иза тая йолийча. Дехар до, тешал де, хьо иза агӀо меттахӀотто лууш ву/ю але.",
        "recreate": "Юха кхолла",
        "confirm_purge_button": "ХӀаъ",
        "tags-create-heading": "Кхолла керла билгало",
        "tags-create-explanation": "Юха кхоьллина билгалонаш декъашхошна а боташна а Ӏад йтарца тӀекхочуш хира ю.",
        "tags-create-tag-name": "Билгалонна цӀе:",
-       "tags-create-reason": "Бахьна:",
+       "tags-create-reason": "Ð\91аÑ\85Ñ\8cана:",
        "tags-create-submit": "Кхолла",
        "tags-create-no-name": "Ахьа билгалонан цӀе язъян езаш.",
        "tags-create-already-exists": "«$1» билгало яц.",
        "tags-create-warnings-below": "Лаьий хьуна билгало кхоллар чекхдакха?",
        "tags-delete-title": "ДӀаяккха билгало",
        "tags-delete-explanation-initial": "Хьо гӀерта «$1» базан чура билгало дӀаяккха.",
-       "tags-delete-reason": "Бахьна:",
+       "tags-delete-reason": "Ð\91аÑ\85Ñ\8cана:",
        "tags-activate-title": "Билгалона активациян",
        "tags-activate-question": "Хьо гӀерта «$1» билгалонан активациян.",
-       "tags-activate-reason": "Бахьна:",
+       "tags-activate-reason": "Ð\91аÑ\85Ñ\8cана:",
        "tags-activate-not-allowed": "«$1» билгалонан активациян цало.",
        "tags-activate-not-found": "«$1» билгало яц.",
        "tags-activate-submit": "Активациян",
        "tags-deactivate-title": "ДӀаяйа билгало",
-       "tags-deactivate-reason": "Бахьна:",
+       "tags-deactivate-reason": "Ð\91аÑ\85Ñ\8cана:",
        "tags-deactivate-submit": "ДӀаяйа",
        "tags-edit-title": "Тегаш таян",
        "tags-edit-manage-link": "Тегашна урхалладар",
        "tags-edit-remove": "ДӀаяха хӀара билгалонаш:",
        "tags-edit-remove-all-tags": "(дӀаяха массо билгалонаш)",
        "tags-edit-chosen-placeholder": "Харжа цхьаъ я массийта тег",
-       "tags-edit-reason": "Бахьна:",
+       "tags-edit-reason": "Ð\91аÑ\85Ñ\8cана:",
        "tags-edit-nooldid-title": "Ӏалашонан верси билгалйина яц",
        "comparepages": "АгӀонаш юстар",
        "compare-page1": "Дуьххьаралера агӀо",
        "special-characters-group-khmer": "Кхимерхойн",
        "special-characters-title-endash": "юкъар сиз",
        "special-characters-title-emdash": "деха сиз",
-       "special-characters-title-minus": "хьаьрк минус"
+       "special-characters-title-minus": "хьаьрк минус",
+       "mw-widgets-titleinput-description-redirect": "ДӀасхьажорг $1 тӀе"
 }
index 407f9cc..97253d7 100644 (file)
        "passwordreset": "Reset hesla",
        "passwordreset-text-one": "Pokud chcete e-mailem získat dočasné heslo, vyplňte tento formulář.",
        "passwordreset-text-many": "{{PLURAL:$1|Pokud chcete e-mailem získat dočasné heslo, vyplňte jeden z údajů.}}",
-       "passwordreset-legend": "Znovu nastavit heslo",
        "passwordreset-disabled": "Znovunastavení hesla je na této wiki zakázáno.",
        "passwordreset-emaildisabled": "E-mailové funkce byly na této wiki vypnuty.",
        "passwordreset-username": "Uživatelské jméno:",
        "resettokens": "Reinicializace klíčů",
        "resettokens-text": "Na této stránce můžete reinicializovat klíče, které umožňují přístup k jistým soukromým údajům spojeným s vaším účtem.\n\n{{GENDER:|Měl|Měla|Měli}} byste to provést v případě, že jste je omylem někomu {{GENDER:|prozradil|prozradila|prozradili}}, nebo byl váš účet narušen.",
        "resettokens-no-tokens": "Neexistují žádné klíče, které by bylo možno reinicializovat.",
-       "resettokens-legend": "Reinicializace klíčů",
        "resettokens-tokens": "Klíče:",
        "resettokens-token-label": "$1 (aktuální hodnota: $2)",
        "resettokens-watchlist-token": "Klíč k webovému kanálu (Atom/RSS) [[Special:Watchlist|změn sledovaných stránek]]",
        "yourdiff": "Rozdíly",
        "copyrightwarning": "Všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} jsou zveřejňovány podle $2 (podrobnosti najdete na $1).\nPokud si nepřejete, aby váš text byl nemilosrdně upravován a volně šířen, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>).\n'''NEVKLÁDEJTE DÍLA CHRÁNĚNÁ AUTORSKÝM PRÁVEM BEZ DOVOLENÍ!'''",
        "copyrightwarning2": "Uvědomte si, že všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} mohou být ostatními uživateli upraveny, pozměněny či odstraněny. Pokud si nepřejete, aby váš text byl nemilosrdně upravován, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>); podrobnosti najdete na $1. '''Nekopírujte díla chráněná autorským právem bez dovolení!'''",
+       "editpage-cannot-use-custom-model": "Model obsahu této stránky nelze změnit.",
        "longpageerror": "'''Chyba: Pokoušíte se uložit text o velikosti {{PLURAL:$1|$1 KiB}}, přičemž dovolené maximum je {{PLURAL:$2|$2 KiB}}.'''\nVaše změna nemůže být uložena.",
        "readonlywarning": "<strong>Varování: Databáze byla uzamčena kvůli údržbě, takže momentálně nebudete moci uložit své změny.</strong>\nMůžete si okopírovat text do souboru a uložit si ho na později.\n\nSprávce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1",
        "protectedpagewarning": "'''Varování: Tato stránka byla zamčena, takže ji mohou editovat pouze správci.'''\nNíže je pro přehled zobrazen nejnovější protokolovací záznam:",
        "rollback-success": "Editace uživatele $1 byly vráceny na poslední verzi od uživatele $2.",
        "sessionfailure-title": "Chyba sezení",
        "sessionfailure": "Zřejmě je nějaký problém s vaším přihlášením;\nvámi požadovaná činnost byla stornována jako prevence před neoprávněným přístupem.\nStiskněte tlačítko „zpět“, obnovte stránku, ze které jste přišli, a zkuste činnost znovu.",
+       "changecontentmodel": "Změna modelu obsahu stránky",
+       "changecontentmodel-legend": "Změnit model obsahu",
+       "changecontentmodel-title-label": "Název stránky",
+       "changecontentmodel-model-label": "Nový model obsahu",
+       "changecontentmodel-reason-label": "Důvod:",
+       "changecontentmodel-success-title": "Model obsahu byl změněn",
+       "changecontentmodel-success-text": "Model obsahu stránky [[:$1]] byl změněn.",
+       "changecontentmodel-cannot-convert": "Obsah stránky [[:$1]] nelze zkonvertovat na typ $2.",
+       "changecontentmodel-title-cantexist": "Pod názvem $1 nemůže být stránka.",
+       "changecontentmodel-nodirectediting": "Model obsahu $1 nepodporuje přímou editaci",
+       "log-name-contentmodel": "Kniha změny modelů obsahu",
+       "log-description-contentmodel": "Události týkající se modelů obsahu stránek",
+       "logentry-contentmodel-change": "$1 změnil obsah modelu stránky $3 z „$4“ na „$5“",
+       "logentry-contentmodel-change-revertlink": "vrátit",
+       "logentry-contentmodel-change-revert": "vrácení zpět",
        "protectlogpage": "Kniha zamčení",
        "protectlogtext": "Níže je uveden seznam všech změn zámků stránek.\nMůžete si prohlédnout též [[Special:ProtectedPages|seznam aktuálně platných zámků]].",
        "protectedarticle": "zamyká „[[$1]]“",
        "tooltip-pt-logout": "Odhlásit se",
        "tooltip-pt-createaccount": "Doporučujeme vytvořit si účet a přihlásit se, není to však povinné",
        "tooltip-ca-talk": "Diskuse ke stránce",
-       "tooltip-ca-edit": "Tuto stránku můžete editovat. Prosíme použijte tlačítko Ukázat náhled před uložením.",
+       "tooltip-ca-edit": "Editovat tuto stránku",
        "tooltip-ca-addsection": "Začít novou sekci",
        "tooltip-ca-viewsource": "Tato stránka je zamčena. Můžete si prohlédnout její zdrojový kód.",
        "tooltip-ca-history": "Starší verze této stránky.",
        "pageinfo-robot-index": "Dovoleno",
        "pageinfo-robot-noindex": "Zakázáno",
        "pageinfo-watchers": "Počet sledujících",
+       "pageinfo-visiting-watchers": "Počet sledujících uživatelů, kteří si prohlíželi nedávné změny",
        "pageinfo-few-watchers": "Méně než $1 {{PLURAL:$1|sledující|sledující|sledujících}}",
+       "pageinfo-few-visiting-watchers": "Není jisté, zda existují sledující uživatelé, kteří si prohlížejí nedávné změny",
        "pageinfo-redirects-name": "Počet přesměrování na tuto stránku",
        "pageinfo-subpages-name": "Podstránky této stránky",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|přesměrování}}; $3 {{PLURAL:$3|nepřesměrování}})",
        "version-libraries": "Nainstalované knihovny",
        "version-libraries-library": "Knihovna",
        "version-libraries-version": "Verze",
+       "version-libraries-license": "Licence",
+       "version-libraries-description": "Popis",
+       "version-libraries-authors": "Autoři",
        "redirect": "Přesměrování podle souboru, uživatele, stránky nebo ID revize",
        "redirect-legend": "Přesměrování na soubor či stránku",
        "redirect-summary": "Tato speciální stránka přesměrovává na soubor (podle názvu), stránku (podle ID stránky nebo revize) nebo uživatele (podle číselného uživatelského ID). Použití: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] nebo [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmerština",
        "special-characters-title-endash": "krátká pomlčka",
        "special-characters-title-emdash": "dlouhá pomlčka",
-       "special-characters-title-minus": "znaménko minus"
+       "special-characters-title-minus": "znaménko minus",
+       "mw-widgets-titleinput-description-new-page": "stránka zatím neexistuje",
+       "mw-widgets-titleinput-description-redirect": "přesměrování na $1"
 }
index ddfd448..a691ec6 100644 (file)
        "passwordreset": "Passwort zurücksetzen",
        "passwordreset-text-one": "Fülle dieses Formular aus, um dein Passwort zurückzusetzen.",
        "passwordreset-text-many": "{{PLURAL:$1|Füll eines der Felder aus, um ein temporäres Passwort per E-Mail zugesandt zu bekommen.}}",
-       "passwordreset-legend": "Passwort zurücksetzen",
        "passwordreset-disabled": "Das Zurücksetzen von Passwörtern wurde in diesem Wiki deaktiviert.",
        "passwordreset-emaildisabled": "Die E-Mail-Funktionen wurden auf diesem Wiki deaktiviert.",
        "passwordreset-username": "Benutzername:",
        "resettokens": "Tokens zurücksetzen",
        "resettokens-text": "Du kannst Tokens zurücksetzen, welche dir den Zugriff auf bestimmte private Daten ermöglichen, die mit deinem Benutzerkonto hier verknüpft sind.\n\nDu solltest dies nur machen, wenn du die Tokens versehentlich mit jemandem geteilt hast oder dein Konto gefährdet ist.",
        "resettokens-no-tokens": "Es gibt keine Tokens zum Zurücksetzen.",
-       "resettokens-legend": "Tokens zurücksetzen",
        "resettokens-tokens": "Tokens:",
        "resettokens-token-label": "$1 (aktueller Wert: $2)",
        "resettokens-watchlist-token": "Token für den Webfeed (Atom/RSS) der [[Special:Watchlist|Änderungen an Seiten auf deiner Beobachtungsliste]]",
        "resettokens-done": "Tokens zurückgesetzt.",
-       "resettokens-resetbutton": "Ausgewählte Token ändern",
+       "resettokens-resetbutton": "Ausgewählte Token zurücksetzen",
        "bold_sample": "Fetter Text",
        "bold_tip": "Fetter Text",
        "italic_sample": "Kursiver Text",
        "rollback-success": "Die Änderungen von $1 wurden rückgängig gemacht und die letzte Version von $2 wurde wiederhergestellt.",
        "sessionfailure-title": "Sitzungsfehler",
        "sessionfailure": "Es gab ein Problem bei der Übertragung deiner Benutzerdaten.\nDiese Aktion wurde daher sicherheitshalber abgebrochen, um eine falsche Zuordnung deiner Änderungen zu einem anderen Benutzer zu verhindern.\nBitte gehe zurück zur vorherigen Seite, lade sie erneut und versuche, den Vorgang erneut auszuführen.",
+       "changecontentmodel": "Inhaltsmodell einer Seite ändern",
+       "changecontentmodel-legend": "Inhaltsmodell ändern",
+       "changecontentmodel-title-label": "Seitentitel",
+       "changecontentmodel-model-label": "Neues Inhaltsmodell",
+       "changecontentmodel-reason-label": "Grund:",
+       "changecontentmodel-success-title": "Das Inhaltsmodell wurde geändert",
+       "changecontentmodel-success-text": "Der Inhaltstyp von [[:$1]] wurde geändert.",
+       "changecontentmodel-cannot-convert": "Der Inhalt von [[:$1]] kann nicht zum Typ $2 konvertiert werden.",
+       "changecontentmodel-title-cantexist": "Es ist keine Seite unter $1 möglich.",
+       "changecontentmodel-nodirectediting": "Das Inhaltsmodell $1 unterstützt keine direkten Bearbeitungen",
+       "log-name-contentmodel": "Inhaltsmodell-Änderungs-Logbuch",
+       "log-description-contentmodel": "Ereignisse bezüglich den Inhaltsmodellen einer Seite",
+       "logentry-contentmodel-change": "$1 änderte das Inhaltsmodell der Seite $3 von „$4“ nach „$5“",
+       "logentry-contentmodel-change-revertlink": "zurücksetzen",
+       "logentry-contentmodel-change-revert": "zurücksetzen",
        "protectlogpage": "Seitenschutz-Logbuch",
        "protectlogtext": "Dies ist das Seitenschutz-Logbuch.\nSiehe die [[Special:ProtectedPages|Liste der geschützten Seiten]] für alle aktuell geschützten Seiten.",
        "protectedarticle": "schützte „[[$1]]“",
        "protect-otherreason-op": "Anderer Grund",
        "protect-dropdown": "* Allgemeine Schutzgründe\n** Edit-War\n** Wiederkehrender Vandalismus\n** Wiederholtes Einstellen von Werbung\n** Häufig eingebundene Vorlage\n** Seite mit hoher Besucherzahl",
        "protect-edit-reasonlist": "Schutzgründe bearbeiten",
-       "protect-expiry-options": "1 Stunde:1 hour,1 Tag:1 day,1 Woche:1 week,2 Wochen:2 weeks,1 Monat:1 month,3 Monate:3 months,6 Monate:6 months,1 Jahr:1 year,Unbeschränkt:infinite",
+       "protect-expiry-options": "1 Stunde:1 hour,1 Tag:1 day,1 Woche:1 week,2 Wochen:2 weeks,1 Monat:1 month,3 Monaten:3 months,6 Monaten:6 months,1 Jahr:1 year,unbeschränkt:infinite",
        "restriction-type": "Schutzstatus:",
        "restriction-level": "Schutzhöhe:",
        "minimum-size": "Mindestgröße",
        "ipbenableautoblock": "Sperre die aktuell von diesem Benutzer genutzte IP-Adresse sowie automatisch alle folgenden, von denen aus er Bearbeitungen oder das Anlegen von Benutzerkonten versucht",
        "ipbsubmit": "IP-Adresse/Benutzer sperren",
        "ipbother": "Andere Dauer (englisch):",
-       "ipboptions": "2 Stunden:2 hours,1 Tag:1 day,3 Tage:3 days,1 Woche:1 week,2 Wochen:2 weeks,1 Monat:1 month,3 Monate:3 months,6 Monate:6 months,1 Jahr:1 year,unbeschränkt:infinite",
+       "ipboptions": "2 Stunden:2 hours,1 Tag:1 day,3 Tagen:3 days,1 Woche:1 week,2 Wochen:2 weeks,1 Monat:1 month,3 Monaten:3 months,6 Monaten:6 months,1 Jahr:1 year,unbeschränkt:infinite",
        "ipbhidename": "Benutzername in Bearbeitungen und Listen verstecken",
        "ipbwatchuser": "Benutzer(diskussions)seite beobachten",
        "ipb-disableusertalk": "Diesen Benutzer daran hindern, seine eigene Diskussionsseite zu bearbeiten, solange er gesperrt ist",
        "ipblocklist-submit": "Suchen",
        "ipblocklist-localblock": "Lokale Sperre",
        "ipblocklist-otherblocks": "Andere {{PLURAL:$1|Sperre|Sperren}}",
-       "infiniteblock": "unbegrenzt",
+       "infiniteblock": "unbeschränkt",
        "expiringblock": "endet am $1 um $2 Uhr",
        "anononlyblock": "nur Anonyme",
        "noautoblockblock": "Autoblock deaktiviert",
        "tooltip-pt-logout": "Abmelden",
        "tooltip-pt-createaccount": "Wir ermutigen dich dazu, ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich.",
        "tooltip-ca-talk": "Diskussion zum Seiteninhalt",
-       "tooltip-ca-edit": "Du kannst diese Seite bearbeiten. Bitte nutze die Vorschaufunktion vor dem Speichern.",
+       "tooltip-ca-edit": "Diese Seite bearbeiten",
        "tooltip-ca-addsection": "Neuen Abschnitt beginnen",
        "tooltip-ca-viewsource": "Diese Seite ist geschützt. Ihr Quelltext kann dennoch angesehen und kopiert werden.",
        "tooltip-ca-history": "Frühere Versionen dieser Seite",
        "pageinfo-robot-index": "Erlaubt",
        "pageinfo-robot-noindex": "Nicht erlaubt",
        "pageinfo-watchers": "Anzahl der Beobachter dieser Seite",
+       "pageinfo-visiting-watchers": "Anzahl der Seitenbeobachter mit kürzlich erfolgten Bearbeitungen",
        "pageinfo-few-watchers": "Weniger als {{PLURAL:$1|ein|$1}} Beobachter",
+       "pageinfo-few-visiting-watchers": "Es könnte einen beobachtenden Benutzer mit kürzlich erfolgten Bearbeitungen geben oder nicht",
        "pageinfo-redirects-name": "Anzahl der Weiterleitungen zu dieser Seite",
        "pageinfo-redirects-value": "$1",
        "pageinfo-subpages-name": "Unterseiten dieser Seite",
        "version-libraries": "Installierte Bibliotheken",
        "version-libraries-library": "Bibliothek",
        "version-libraries-version": "Version",
+       "version-libraries-license": "Lizenz",
+       "version-libraries-description": "Beschreibung",
+       "version-libraries-authors": "Autoren",
        "redirect": "Weiterleitung auf Benutzerseite, Seite, Seitenversion oder Datei",
        "redirect-legend": "Weiterleitung auf eine Benutzerseite, Seite, Seitenversion oder Datei",
        "redirect-summary": "Diese Spezialseite leitet auf eine Benutzerseite (numerische Benutzerkennung angegeben), Seite (Seitenkennung angegeben), Seitenversion (Versionskennung angegeben) oder Datei (Dateiname angegeben) weiter. Benutzung: [[{{#Special:Redirect}}/user/101]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] oder [[{{#Special:Redirect}}/file/Example.jpg]].",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "Halbgeviertstrich",
        "special-characters-title-emdash": "Geviertstrich",
-       "special-characters-title-minus": "Minus"
+       "special-characters-title-minus": "Minus",
+       "mw-widgets-titleinput-description-new-page": "Seite ist noch nicht vorhanden",
+       "mw-widgets-titleinput-description-redirect": "Weiterleitung nach $1"
 }
index 5462423..64ba82d 100644 (file)
        "hidetoc": "लुकाउन्या",
        "collapsible-collapse": "खुम्च्याउन्या",
        "collapsible-expand": "फैलाउ",
-       "confirmable-confirm": "तमरà¥\8b {{GENDER:$1|लिà¤\99à¥\8dà¤\97}} à¤¹à¥\8b?",
+       "confirmable-confirm": "à¤\95à¥\8dया {{GENDER:$1|तम}} à¤¸à¥\81निशà¥\8dà¤\9aित à¤\9bà¥\8c ?",
        "confirmable-yes": "हो",
        "confirmable-no": "नाइँ",
        "thisisdeleted": "$1 हेर्न्या या पैल्लीका रुपमी फर्काउन्या हो?",
        "resetpass-temp-password": "अस्थाइ पासवर्ड",
        "resetpass-abort-generic": "एक्सटेन्सनले पासवर्ड परिवर्तनलाई बन्द गराईया छ ।",
        "passwordreset": "पासवर्ड पूर्वनिर्धारित गर",
-       "passwordreset-legend": "पासवर्ड पूर्वनिर्धारित गर",
        "passwordreset-username": "प्रयोगकर्ता-नाम:",
        "passwordreset-domain": "डोमेन",
        "passwordreset-capture": "निस्कने इमेलको नमुना हेर्ने ?",
        "changeemail-submit": "इमेल परिवर्तन गद्या",
        "changeemail-throttled": "तमले अलै भौत फेर प्रवेशका निम्ति प्रयास गरया छौ।\nकृपया $1 पर्खेर मात्र प्रयास गर।",
        "resettokens": "टोकन पूर्वरुपमी फर्काउन्या",
+       "resettokens-text": "जो टोकन तमरो खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तम त्यसलाई यहाँ रिसेट गद्द सक्द्या हौ।\n\nयदि तमले तिनलाई भुलवस कैकनै देखाईदिया छौ वा तमरो खाता ह्याक भइसक्याको छ भन्या तम यसलाई रिसेट गर्या ।",
        "resettokens-no-tokens": "पूर्वरुमी फर्काउन्या कोई लै टोकन नाइथिन् ।",
-       "resettokens-legend": "टोकन पूर्वरुपमी फर्काउन्या",
        "resettokens-tokens": "टोकनहरू:",
        "resettokens-token-label": "$1 (यैलको मूल्यः $2)",
        "resettokens-done": "टोकन पूर्वरुपमी फर्काइयो ।",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वालोकन धेकाउन्या",
        "showdiff": "परिवर्तन धेकाउन्या",
+       "blankarticle": "<strong>चेतावनी:</strong> तम एक खालि पानाको निर्माण गद्द लाग्याछौ ।\nयदि तमले \"{{int:savearticle}}\" लाई पुनः थिच्यौ भण्या पानो बिना कुनै सामग्री नै निर्मित गरिन्याछ ।",
        "anoneditwarning": "<strong>चेतावनी:</strong> तमले प्रवेश अरेको नाइथिन । तमरो आइपि ठेगाना पाना सम्पादन इतिहासमि दर्ता गरिन्या छ र यो सब्बैले हेद्द सक्कान । यदि तमलाईँ <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउन्या] गर्याभण्या तमबठे गरियाको सम्पादन तमरो प्रयोगकर्तानाममि जोडिन्याछ ।",
+       "selfredirect": "<strong>चेतावनी:</strong> तम यै पानालाई आफुमी पुनः निर्देशित गद्द लाग्याछौ ।\nहुनसक्छ तम अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गद्द लाग्याछौ, वा गलत पानाको सम्पादन गद्द लाग्याछौ ।\nतम पुनः एकपल्ट \"{{int:savearticle}}\" क्लिक गद्दाछौ, पुनः निर्देशित तसै लै बनाइन्याछ।",
        "summary-preview": "सारांश पूर्वालोकन:",
        "subject-preview": "विषय/शीर्षपंक्ति पूर्वरुप:",
        "blockedtitle": "प्रयोककर्तालाई रोक लगाइया छ",
        "editconflict": "सम्पादन बाँझ्यो: $1",
        "yourtext": "तमरा पाठहरू",
        "storedversion": "संग्रहित पुनरावलोकन",
+       "editingold": "<strong>चेतावनी: तम यै पानाको अति पुरानो अप्रचलित संशोधनलाई सम्पादन गद्द लाग्याछौ ।<strong>\nयदि तमीले यै परिवर्तनलाई सङ्ग्रह गर्यौ भण्या यै पछिका संशोधनहरू नष्ट हुन्याछन् ।",
        "yourdiff": "भिन्नताहरू",
+       "copyrightwarning2": "कृपया ध्यान देओ यै {{SITENAME}}मी दियाका योगदानहरूलाई अन्य योगदानकर्ताहरूद्वारा सम्पादन गरिन्याछ, परिवर्तन गरिन्याछ अथवा हटाइन्याछ । यदि तमरो लेखलाई निर्दयता पूर्वक सम्पादन गरेको चाहदैनौ भण्या त्यो यहाँ जनराख।<br />\nयदि तमी किटानसाथ भन्नाछौ कि यो लेख तम आफैले लेख्याको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबठे लियाको हो (विवरणकोलागि हेर $1 ). \n'''कपीराइट भयाको रचना अनुमति बिना  यहाँ जनराख!'''",
+       "readonlywarning": "<strong>चेतावनी: तथ्याङ्क मर्मतको निम्ति बन्द गरियाकोछ, यै कारण तमी आफ्नो सम्पादन अहिले सङ्ग्रह गद्द सक्द्याहौन ।</strong>\n\nयदि तमी चाहन्छौ भण्या अहिले यहाँ भयाका पाठलाई कपि गरि कतै टेक्स्ट फाइलमी पेस्ट गरिबर सङ्ग्रह गद्द सक्द्याहौ ।\n\nप्रवन्धक जनले यो बन्द गर्याको छ उनले यसो विवरण दियाको छ: $1",
        "protectedpagewarning": "<strong>सूचना: यै पानालाई सुरक्षित गरियाको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यैलाई सम्पादन गद्द सक्द्याछन् ।</strong>\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइयाको छ:",
        "templatesused": "यै पानामी राखियाका {{PLURAL:$1|Template|ढाँचाहरू}} :",
        "template-protected": "(सुरक्षित)",
        "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, गल्ती: $3",
        "invalid-content-data": "अमान्य सामग्री डेटा",
        "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पानामी राख्न अनुमती छैन ।",
+       "editwarning-warning": "यै पानाबठे बाहिर जाँदा तमले गर्याको कुनै पनि परिवर्तन हराउन्याछ ।\nयदि तमले लग इन गर्याको छ भण्या तमी यै सूचनालाई धेकाउन आफ्नो रोजाईहरूको \"{{int:prefs-editing}}\" भागमी गइबर बन्द गद्द सक्द्याहौ।",
        "content-model-wikitext": "विकिपाठ",
        "content-model-text": "साधारण पाठ",
        "content-model-javascript": "जाभास्क्रिप्ट",
        "upload-recreate-warning": "'''चेतावनी: त्यस नाममी रह्याका फाइलहरू सारियाको या हटायाको छ।'''\n\nयै पानाको सारियाको र हटायाको लग तमरो सहजताको लागि दियाको छ।",
        "filedesc": "सारांश:",
        "large-file": "यो सिफारिस गर्याछकि फाइलहरूको आकार $1 भन्दा ठूला हुनु हुँदैन;\nयै फाइलको आकार $2 छ ।",
+       "fileexists": "यै नामको फाइल पैल्ली नैं छ, यदि तम परिवर्तन गद्या कुरडीमू सुनिश्चित छैनौ भण्या कृपया <strong>[[:$1]]</strong> जाँच गर।\n[[$1|thumb]]",
+       "filewasdeleted": "यै नामको एक फाइल पहिली पनि अपलोड गरिबर पछि हटाई सकियाको छ।\nपुनः अपलोड गद्दु पूर्व तम $1 लाई निक्करी जाँच गर ।",
        "uploadstash-nofiles": "तमरा कोइ पनि स्टाश गर्याका फाइलहरू नाइथिन् ।",
        "uploadstash-refresh": "फाइलहरूको सूची ताजा गर्न्या",
        "license-header": "कोइ केइ नाइथिन",
        "activeusers-hidesysops": "प्रवन्धकहरू लुकाउन्या",
        "activeusers-noresult": "प्रयोगकर्ताहरू भेटियानन्",
        "mailnologintext": "तमीले अरु प्रयोगकर्तानलाई ईमेल पठाउनको लागि आफु पहिली [[Special:UserLogin|प्रवेश(लगइन)गर्याको]] हुनुपडन्छ र [[Special:Preferences|आफ्नो रोजाइहरूमी]] एउटा वैध ईमेल ठेगाना भयाको हुनुपडन्छ ।",
+       "emailpagetext": "तल दियाको फार्मले तमी यै {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्द्या हौ । तमीले जो ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता रोजाईहरू]]मी दियाका छियौ त्यो यै इमेललाई \"पठाउने\" को रूपमी आउन्याछ, अतः प्राप्तकर्ता तमीलाई सिधै जवाफ दिनसक्द्याछ ।",
+       "usermaildisabledtext": "यै विकिमी तम और प्रयोगकर्तानलाई ई-मेल पठाउन नाइसक्दा",
        "mywatchlist": "मेरो ध्यान सूची",
        "watch": "ध्यान राख",
        "watchthispage": "यै पानाको ध्यान राख",
        "notanarticle": "सामाग्री छैन",
        "enotif_reset": "सब्बै पानाहरू हेर्याको भनी चिनो लाउन्या",
        "enotif_body": "प्रिय $WATCHINGUSERNAME,\n\n\n{{SITENAME}}को पाना $PAGETITLE  $PAGEEDITDATE का दिन $PAGEEDITOR द्वारा $CHANGEDORCREATED, \nअहिलको संशोधनको निउती हेर  $PAGETITLE_URL ।\n\n$NEWPAGE\n\nसम्पादकको सारांश: $PAGESUMMARY $PAGEMINOREDIT\n\nसम्पादकसित सम्पर्क राख:\nमेल: $PAGEEDITOR_EMAIL\nविकि: $PAGEEDITOR_WIKI\n\nतमी यै पानामी नगयासम्म अब उसो कुनै परिवर्तन भयाका खण्डमी कुनै सूचना दिन्याछैन ।\nतमरा सम्पूर्ण ध्यान सूचीका पानानको लागि तमीले सूचना पताकालाई ध्यान सूचीमी पुनर्बहाली गद्द सक्द्या हौ । \n\n             तमरो मित्र {{SITENAME}} सूचना प्रणाली\n--\nइमेल सूचना व्यवस्था परिवर्तन गद्द, जाओ\n{{canonicalurl:{{#special:Preferences}}}}\n\nध्यान सूची व्यवस्थित गर्न, जाओ\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nध्यान सूची मेट्न, जाओ\n$UNWATCHURL\n\nप्रतिक्रिया र अन्य सहयोगका निउती:\n$HELPPAGE",
+       "confirmdeletetext": "तमी यो पानो र यैको इतिहास मेट्ट लाग्याछौ । कृपया पुष्टि गर कि [[{{MediaWiki:Policy-url}}|नियम]] मुताबिक तम मेट्ट लाग्याछौ।",
        "dellogpage": "मेटाइयाको लग",
        "delete-toobig": "यै पानाको सम्पादन इतिहास भौतै र  $1 {{PLURAL:$1|पुनरावलोक|पुनरावलोकहरू}}भन्दा बढी रह्याको छ।\n {{SITENAME}}मी दुर्घटनाको कारणले गडबडी आउनसक्द्या कुरडीलाई रोक्न यसा पानाहरूलाई मेट्नबठे निषेध गरियाको छ ।",
        "rollback": "सम्पादनहरू उल्टाउन्या",
        "whatlinkshere-filters": "छानियाका",
        "ipbreason-dropdown": "* ब्लक गर्नुका समान्य कारणहरू\n** झूटो सूचना दियाको\n** पानानबठे सामाग्रीहरू हटायाको\n** बाहिरी जालक्षेत्र (sites)सित नचाहिंदो लिङ्क गर्याको \n** पानानमी बकवास/गाली-गलौच हाल्याको\n** भै धेकाउने व्यवहार/उत्पीडन (सताउने कार्य) गर्याको\n** धेरै गलत खाताहरू बनायाको\n** प्रयोगकर्ता नाम अस्वीकार्य",
        "ipboptions": "२ घण्टाहरू:2 hours,१ दिन :1 day,३ दिनहरू:3 days,१ हप्ता:1 week,२ हप्ताहरू:2 weeks,१ महिना:1 month,३ महिनाहरू:3 months,६ महिनाहरू:6 months,१ वर्ष:1 year,अनगिन्ती:infinite",
+       "ipb-blockingself": "तमी आफैलाई ब्लक गद्द लाग्या छौ ! क्या तम पक्का यसो गद्द चाहन्छौ ?",
        "blocklist": "ब्लक गर्याका प्रयोगकर्ताहरू",
        "ipblocklist": "ब्लक गर्याका प्रयोगकर्ताहरू",
        "ipblocklist-legend": "ब्लक गर्याका प्रयोगकर्ताहरू खोज",
        "blocklink": "रोक्न्या",
        "contribslink": "योगदानहरू",
        "block-log-flags-anononly": "नाम नभयाका प्रयोकर्ताहरू मात्र",
+       "xffblockreason": "एउटा आइपि ठेगाना जुन X-Forwarded-For हेडरमी रह्याको छ, या त तमरो हो वा त्यै प्रक्सी सर्भरको हो जैको प्रयोग तमी गद्दा छौ रे यै माथि प्रतिबन्ध लगाइयाको छ । वास्तविक कारण थ्यो:$1",
        "ipbblocked": "तमी अरु प्रयोगकर्तानहरूलाई ब्लक गर्न वा उनीहरूको ब्लक खोल्न नाइसक्दा किनभने तमी आफै ब्लक भयाका छौ ।",
+       "lockdbtext": "डेटाबेसमी ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो रौजाईमी परिवर्तन, आफ्नो ध्यानसूचीमी सम्पादन, र अन्य वस्तु जैको लागि डेटाबेसमी परिवर्तन गरें हुन्छ, त्यैबठे वन्चित हुन्याछ । कृपया यो सुनिश्चित गर कि तम यो गर्न चाहन्छौ, र तम रक्षण पश्चात ताला खोल्न्या हौ ।",
+       "movepagetext-noredirectfixer": "तल दियाको फारमले पानाको नाम परिवर्तन गद्याछ, उइको सबै इतिहास पनि नयाँ नामले धेकिन्याछ ।\nपुरानो शीर्षक नयाँ नाममी अनुप्रेषण गद्याछ ।\nमूल शीर्षक तर्फ लिएर जान्या सबै अनुप्रेषणहरूलाई तम स्वचालित रूपले परिवर्तन गद्द सक्द्या हौ ।\nयदि तम यसो नाइ गद्या भया कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]का लागि पक्कै जाँच गर ।\nलिङ्क आफ्नो स्थानमै रहोस्, यो सुनिश्चित गर्ने जिम्मेवारी तमरो हो ।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भण्या नाम परिवर्तन '''हुन''' सक्दैन । तर यदि नयाँ शीर्षक भयाको लेख खाली छ अथवा कतै अन्य स्थानमी अनुप्रेषित गद्दैछ र साथै उइको पुरानो संस्करण छैन भण्या त्यैको नाम परिवर्तन हुन्याछ ।\nयैको अभिप्राय यो हो कि यदि तमीबठे गल्ती भयाको छ भण्या तम फेरी पुरानो नाममी यस पानालाई सार्न सक्द्याछौ, र साथै तम कुनै पहिली बठे रह्याको पानाको सट्टा यो स्थानान्तरण गद्द सक्द्या हौन ।\n\n<strong>चेतावनी!<strong>\nयदि पानो खासै लोकप्रिय छ भण्या त्यैको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्ना पहिली तमी यैको नतिजासँग परिचित भयाकाछौ ।",
        "cant-move-user-page": "तमसँग प्रयोगकर्ता पानाहरू साद्या अनुमती नाइथिन् (सहपानाहरू बाहेक)",
        "cant-move-to-user-page": "तमसँग पानाहरूलाई प्रयोगकर्ता पानामी साद्या अनुमती नाइथिन् (प्रयोगकर्ता सहपृष्ठहरूमी बाहेक)",
        "move-subpages": "उप पानाहरू सार्न्या($1 सम्मको)",
        "movenosubpage": "यै पानाको उपपाना नाइथी",
        "protectedpagemovewarning": "<strong>सूचना:</strong> यै पानालाई सुरक्षित गरियाको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यैको नाम बदल्न सक्द्या छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दियाको छ:",
        "export": "पानहरु पठौन्या",
+       "exporttext": "तमी विशिष्ठ पानाको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गद्द सक्द्याहौ अथवा पानाहरूको समूहका केहि XML मी बेर्न सक्द्याहौ।\nयो [[Special:Import|आयात पाना]]को सहायताले मीडियाविकीको प्रयोग गरिवर दोश्रो विकीबठे आयात गद्द सकिन्याछ।\n\nपानाहरूको निर्यात गद्दका लागि, तल विषय वस्तु बाकसमी शीर्षक देओ, एक शीर्षक प्रति पङ्क्ति, र छान कि तम वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहन्छौ वा चाहदैनौ, वा पछिल्लो सम्पादनका बारेमी जानकारीसँग मात्रै वर्तमान अवतरण चाहन्छौ।\n\nपछीको स्थितिको लागि तमी लिङ्कको पनि प्रयोग गद्द सक्द्याहौ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
        "thumbnail-more": "ठूलो बनौन्या",
        "import-noarticle": "आयात गद्दाकी लाई पानाहरू नाइथिन्",
        "tooltip-pt-userpage": "तमरो प्रयोगकर्ता पानो",
        "exif-orientation-1": "सानतिनो",
        "namespacesall": "सब्बै",
        "monthsall": "सब्बै",
+       "confirmrecreate": "प्रयोगकर्ता [[User:$1|$1]] ([[User talk:$1|कुरडी]])ले  तमले  सम्पादन सुरु गर्यापछि यो पानो मेट्याकाछन् । कारण थ्यो:\n: ''$2''\nकृपया सुनिश्चित गर कि तम यो पानो साँच्चै निर्माण गद्द चाहन्छौ ।",
        "lag-warn-normal": " $1 {{PLURAL:$1|सेकेन्ड |सेकेन्डहरू}} भन्दा नौला फेरबदलहरू यै सूचीमी नधेकाउन सक्छ ।",
        "lag-warn-high": "डेटावेस सर्भरको मस्तै ढिलाको कारणले  $1 {{PLURAL:$1|सेकेन्ड|सेकेन्डहरू}} पछिका परिवर्तनहरू नधेकिन सक्छ ।",
        "watchlisttools-view": "आधारित फेरबदलीहरू हेर",
        "tag-filter": "[[Special:Tags|पुछड]] छानिन्या",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ट्याग|ट्यागहरू}}]]: $2)",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तन|परिवर्तनहरू}}",
+       "tags-delete-explanation-warning": "यो क्रिया <strong>अपरिवर्तनीय</strong> हो र <strong>त्यसलाई परिवर्तन गर्न नाईसकिंदो</strong>, डेटाबेस प्रवन्धक पनि यैलाई केहि गद्द सक्दाइनन् । विश्वासपूर्ण रूपले तम तय गर कि तमी यै ट्यागलाई हटाउन चाहन्छौ ।",
        "logentry-delete-delete": "$1 बठे पानो $3 {{GENDER:$2|मेटाइयो}}",
        "logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मि सारियो",
        "logentry-newusers-create": "प्रयोगकर्ता खाता $1 {{GENDER:$2|खोलियो}}",
        "logentry-upload-upload": "$1 ले $3 {{GENDER:$2|अपलोड अरेका छन्}}",
+       "feedback-bugornote": "यदि तमी कुनै प्राविधिक समस्यालाई विस्तारले सम्झाउन तयार छौ भण्या कृपया [$1 बग राख]।\nयदि हैन, भण्या तमी तल दियाको सरल फारमको प्रयोग गद्दसक्द्याहौ । तमरो टिप्पणी, तमरो प्रयोगकर्ता नाम र तमरो ब्राउजरको नाम सहित \"[$3 $2]\" पानामी जोडिन्याछ ।",
        "searchsuggest-search": "खोज",
        "api-error-duplicate": "यै साइटमी पहिलीबठे यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल छ]|भयाका  [$2 केहि अरु फाइलहरू छन्]}} ।",
        "api-error-duplicate-archive": "यै साइटमी पहिलेबाट यस्तै सामग्री {{PLURAL:$1|भयाको [$2 अर्को फाइल थियो]|भयाका  [$2 केहि अरु फाइलहरू थिए]}} ।\nतर {{PLURAL:$1|यो मेट्याको थियो|यी मेटायाका थिए}} ।",
        "api-error-duplicate-archive-popup-title": "पैल्ली  {{PLURAL:$1|मेट्याको फाइलको|मेट्याका फाइलहरूको}} नकल प्रति बनाउन्या।",
-       "api-error-duplicate-popup-title": "{{PLURAL:$1|फाइल|फाइलहरू}} नकल प्रति बनाउन्या"
+       "api-error-duplicate-popup-title": "{{PLURAL:$1|फाइल|फाइलहरू}} नकल प्रति बनाउन्या",
+       "default-skin-not-found": "ओह! तमरो विकिको पूर्व निर्धारित खोल जस्तो कि <code dir=\"ltr\">$wgDefaultSkin</code> मी बताइयाको<code>$1</code>, उपलब्ध नाईथिन् ।\n\nतमरो इन्स्टलेसन यी खोलहरूलाई सम्मिलित गर्दछ {{PLURAL:$4|खोल|खोलहरू}}। हेर [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: खोललाई सम्मिलित गर्नु] ताकि तमीलाई जानकारी होस् कि कसरि {{PLURAL:$4|उसलाई|उसलाई सम्मिलित गर्न सकियोस् र निर्धारितलाई तय गद्दे}}।\n\n$2\n\n; यदि तमीले अहिले मीडियाविकि इन्स्टाल गर्याका छौ:\n: तमीले सम्भवत गिटबठे इन्स्टाल गर्याका छौ, वा सिधै स्रोत कोडबठे गर्याका छौ जैको लागि कुनै अर्कै तारिका प्रयोग गरियाको छ । यो आशा अनुरूप छ । कोशिश गर केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गद्या], जैको लागि तमी:\n:* डाउनलोड गर [https://www.mediawiki.org/wiki/Download टरबल इन्स्टालर], जुन कयौं खोलहरू र विस्तारमी उपलब्ध छन्। तमी खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गद्द सक्द्या हौ। \n:* व्यक्तिगत खोलहरू टरबलबठे डाउनलोड गर\n[https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बठे।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गद्द सकन्छौ]।\n: यदि तमी विकासकर्ता हौ भण्या यसो गद्दा तमरो गिट-रिपजिटरीमी केहि हुनुहुँदैन । \n; यदि तमीले अहिले मीडियाविकिलाई अपग्रेड गर्याका छौ:\n: मीडियाविकि १.२४ र यैको नवीन रूप स्वतः रूपले खोलहरूलाई सक्षम गद्दैनन् (हेर [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:खोलहरूको स्वतः खोज])। तमी निम्नलिखितलाई पेस्ट गद्द सकन्छौ: {{PLURAL:$5|लाइन|लाइनहरू}}  <code>LocalSettings.php</code> मी ताकि {{PLURAL:$5|उसले|सबै}} सक्षम होस् जस्तो कि तमीले इन्स्टाल गर्याको {{PLURAL:$5|खोल|खोलहरू}}को मामिलामी:\n\n<pre dir=\"ltr\">$3</pre>\n\n; यदि तमीले अहिले परिवर्तन गर्याका छौ<code>LocalSettings.php</code>:\n: खोल नामहरूको अगाडी डबल-क्लिक गर जसले तमलाई विभिन्न प्रकारहरूको विकल्प दिन्छ।"
 }
index 9071962..47f3e9c 100644 (file)
        "jumptonavigation": "πλοήγηση",
        "jumptosearch": "αναζήτηση",
        "view-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτή τη σελίδα.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτή τη σελίδα.\n\n$1",
-       "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο ξανά.",
+       "generic-pool-error": "Λυπούμαστε, οι εξυπηρετητές είναι υπερφορτωμένοι αυτή τη στιγμή.\nΠάρα πολλοί χρήστες προσπαθούν να προβάλουν αυτό τον πόρο.\nΠαρακαλούμε περιμένετε λίγο πριν ξαναπροσπαθήσετε να προσπελάσετε αυτό τον πόρο.",
        "pool-timeout": "Χρόνος αναμονής για το κλείδωμα",
        "pool-queuefull": "Η ουρά της δεξαμενής διεργασιών είναι πλήρης",
        "pool-errorunknown": "Άγνωστο σφάλμα",
        "pool-servererror": "Η υπηρεσία καταμετρητή ομαδοποίησης δεν είναι διαθέσιμη ($1).",
-       "poolcounter-usage-error": "Σφάλμα χρήσης:$1",
+       "poolcounter-usage-error": "Σφάλμα χρήσης: $1",
        "aboutsite": "Σχετικά με {{SITENAME}}",
        "aboutpage": "Project:Σχετικά",
        "copyright": "Το περιεχόμενο είναι διαθέσιμο σύμφωνα με την $1 εκτός αν αναφέρεται διαφορετικά.",
        "policy-url": "Project:Πολιτική",
        "portal": "Πύλη κοινότητας",
        "portal-url": "Project:Πύλη κοινότητας",
-       "privacy": "Πολιτική ιδιωτικότητας",
-       "privacypage": "Project:Πολιτική ιδιωτικότητας",
+       "privacy": "Πολιτική ιδιωτικού απορρήτου",
+       "privacypage": "Project:Πολιτική ιδιωτικού απορρήτου",
        "badaccess": "Σφάλμα άδειας",
        "badaccess-group0": "Δεν επιτρέπεται να εκτελέσετε την ενέργεια που ζητήσατε.",
        "badaccess-groups": "Η ενέργεια που ζητήσατε είναι περιορισμένη σε χρήστες που ανήκουν {{PLURAL:$2|στην ομάδα|σε μία από τις ομάδες}}: $1.",
        "readonly": "Κλειδωμένη βάση δεδομένων",
        "enterlockreason": "Εισαγάγετε μια αιτία για το κλείδωμα και μια εκτίμησή για το πότε το κλείδωμα αυτό θα αρθεί",
        "readonlytext": "Η βάση δεδομένων είναι επί του παρόντος κλειδωμένη απέναντι σε νέες καταχωρίσεις και άλλες τροποποιήσεις, πιθανότατα λόγω συντήρησης ρουτίνας, μετά την οποία θα επανέλθει σε κανονική λειτουργία.  \n\nΟ διαχειριστής που την κλείδωσε έδωσε την ακόλουθη εξήγηση: $1",
-       "missing-article": "Η βάση δεδομένων δεν βρήκε κείμενο μιας σελίδας που θα έπρεπε να βρεθεί, με όνομα «$1» $2.\n\nΑυτό συνήθως προκαλείται ακολουθώντας ένα σύνδεσμο \"διαφοράς\" ή σύνδεσμο προς ιστορικό μιας σελίδας που έχει διαγραφεί.\n\nΕάν δεν πρόκειται για κάτι τέτοιο, μπορεί να βρήκατε ένα σφάλμα στο λογισμικό.\nΠαρακαλούμε αναφέρετε το σε ένα [[Special:ListUsers/sysop|διαχειριστή]], δίνοντας το URL.",
+       "missing-article": "Η βάση δεδομένων δεν βρήκε το κείμενο της σελίδας που θα έπρεπε να έχει βρεθεί, με όνομα «$1» $2.\n\nΑυτό συνήθως προκαλείται ακολουθώντας έναν παρωχημένο σύνδεσμο διαφορών ή ιστορικού κάποιας σελίδας που έχει διαγραφεί.\n\nΕάν δεν πρόκειται για κάτι τέτοιο, μπορεί να βρήκατε ένα σφάλμα στο λογισμικό.\nΠαρακαλούμε αναφέρετέ το αυτό σε κάποιο [[Special:ListUsers/sysop|διαχειριστή]], σημειώνοντας τη διεύθυνση URL.",
        "missingarticle-rev": "(αναθεώρηση#: $1)",
        "missingarticle-diff": "(Διαφ: $1, $2)",
-       "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους servers των αντιγράφων της βάσης δεδομένων (slaves) να καλύψουν τη διαφορά με τον κεντρικό server του πρωτοτύπου της βάσης (master).",
+       "readonly_lag": "Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους εξυπηρετητές των αντιγράφων της βάσης δεδομένων να καλύψουν τη διαφορά με τον κεντρικό εξυπηρετητή του πρωτοτύπου της βάσης δεδομένων.",
        "internalerror": "Εσωτερικό σφάλμα",
        "internalerror_info": "Εσωτερικό σφάλμα: $1",
        "internalerror-fatal-exception": "Ανεπανόρθωτη εξαίρεση τύπου «$1»",
        "filecopyerror": "Δεν ήταν δυνατή η αντιγραφή του αρχείου «$1» στο «$2».",
-       "filerenameerror": "Î\94εν ÎµÎ¯Î½Î±Î¹ δυνατή η μετονομασία του αρχείου «$1» σε «$2».",
+       "filerenameerror": "Î\94εν Î®Ï\84αν δυνατή η μετονομασία του αρχείου «$1» σε «$2».",
        "filedeleteerror": "Δεν ήταν δυνατή η διαγραφή του αρχείου «$1».",
-       "directorycreateerror": "Î\94εν Î¼Ï\80οÏ\81οÏ\8dÏ\83ε Î½Î± Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί Î· ÎºÎ±Ï\84ηγοÏ\81ία «$1».",
+       "directorycreateerror": "Î\94εν Î®Ï\84αν Î´Ï\85ναÏ\84ή Î· Î´Î·Î¼Î¹Î¿Ï\85Ï\81γία Ï\84ηÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίαÏ\82 «$1».",
        "directoryreadonlyerror": "Ο κατάλογος «$1» είναι μόνο για ανάγνωση.",
        "directorynotreadableerror": "Ο κατάλογος «$1» δεν είναι αναγνώσιμος.",
-       "filenotfound": "Î\94εν ÎµÎ¯Î½Î±Î¹ δυνατή η ανεύρεση του αρχείου «$1».",
-       "unexpected": "Μη προσδοκώμενη τιμή: «$1»=«$2».",
-       "formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας!",
-       "badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί στη συγκεκριμένη σελίδα.",
+       "filenotfound": "Î\94εν Î®Ï\84αν δυνατή η ανεύρεση του αρχείου «$1».",
+       "unexpected": "Μη αναμενόμενη τιμή: «$1»=«$2».",
+       "formerror": "Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας.",
+       "badarticleerror": "Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί σε αυτήν τη σελίδα.",
        "cannotdelete": "Η σελίδα ή το αρχείο «$1» δεν μπόρεσε να διαγραφεί.\nΕνδεχομένως να έχει ήδη διαγραφεί από κάποιον άλλον.",
-       "cannotdelete-title": "Î\91δÏ\8dναÏ\84η η διαγραφή της σελίδας «$1»",
+       "cannotdelete-title": "Î\94εν ÎµÎ¯Î½Î±Î¹ Î´Ï\85ναÏ\84ή η διαγραφή της σελίδας «$1»",
        "delete-hook-aborted": "Η επεξεργασία ματαιώθηκε από το άγκιστρο του συντακτικού αναλυτή.\nΔεν έδωσε εξήγηση.",
-       "no-null-revision": "Î\94εν Î¼Ï\80οÏ\81οÏ\8dÏ\83ε Î½Î± Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί Î½Î­Î± Î¼Î·Î´ÎµÎ½Î¹ÎºÎ® Î±Î½Î±Î¸ÎµÏ\8eÏ\81ηÏ\83η Î³Î¹Î± Ï\84η Ï\83ελίδα \"$1\"",
+       "no-null-revision": "Î\94εν Î®Ï\84αν Î´Ï\85ναÏ\84ή Î· Î´Î·Î¼Î¹Î¿Ï\85Ï\81γία Î½Î­Î±Ï\82 Î¼Î·Î´ÎµÎ½Î¹ÎºÎ®Ï\82 Î±Î½Î±Î¸ÎµÏ\8eÏ\81ηÏ\83ηÏ\82 Î³Î¹Î± Ï\84η Ï\83ελίδα Â«$1»",
        "badtitle": "Ακατάλληλος τίτλος",
        "badtitletext": "Ο τίτλος της σελίδας που ζητήσατε δεν είναι έγκυρος ή είναι κενός ή πρόκειται για έναν εσφαλμένα συνδεδεμένο διαγλωσσικό τίτλο ή εσφαλμένα συνδεδεμένο τίτλο ανάμεσα σε διαφορετικά wiki.",
        "title-invalid-empty": "Ο τίτλος σελίδας που ζητήσατε είναι κενός ή περιέχει μόνο όνομα ονοματοχώρου.",
        "title-invalid-utf8": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθία UTF-8.",
-       "title-invalid-interwiki": "Î\9f Ï\84ίÏ\84λοÏ\82 Ï\80εÏ\81ιέÏ\87ει Ï\83Ï\8dνδεÏ\83μο interwiki",
+       "title-invalid-interwiki": "Î\9f Ï\84ίÏ\84λοÏ\82 Ï\80οÏ\85 Î¶Î·Ï\84ήÏ\83αÏ\84ε Ï\80εÏ\81ιέÏ\87ει Ï\83Ï\8dνδεÏ\83μο interwiki Ï\80οÏ\85 Î´ÎµÎ½ Î¼Ï\80οÏ\81εί Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιηθεί Ï\83ε Ï\84ίÏ\84λοÏ\85Ï\82.",
        "title-invalid-talk-namespace": "Ο τίτλος σελίδας που ζητήσατε αναφέρεται σε σελίδα συζήτησης που δεν μπορεί να υπάρχει.",
        "title-invalid-characters": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρους χαρακτήρες: «$1».",
        "title-invalid-relative": "Ο τίτλος έχει σχετική διαδρομή. Τίτλοι παρόμοιων σελίδων (./, ../) δεν είναι έγκυροι, διότι συχνά δεν θα είναι προσβάσιμοι όταν χειρίζονται από το πρόγραμμα περιήγησης του χρήστη.",
        "title-invalid-magic-tilde": "Ο τίτλος σελίδας που ζητήσατε περιέχει μη έγκυρη ακολουθίας μαγικών περισπωμένων (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 bytes σε κωδικοποίηση UTF-8.",
+       "title-invalid-too-long": "Ο τίτλος σελίδας που ζητήσατε είναι υπερβολικά μεγάλος. Δεν πρέπει να είναι μεγαλύτερος από $1 {{PLURAL:$1|byte|bytes}} σε κωδικοποίηση UTF-8.",
        "title-invalid-leading-colon": "Ο τίτλος σελίδας που ζητήσατε περιέχει μια μη έγκυρη άνω και κάτω τελεία στην αρχή.",
        "perfcached": "Τα δεδομένα που ακολουθούν είναι cached και είναι πιθανόν να μην είναι επικαιροποιημένα. Ένα μέγιστο των  {{PLURAL:$1|one result is|$1 results are}} διαθέσιμο στην cache.",
        "perfcachedts": "Τα ακόλουθα δεδομένα είναι αποθηκευμένα στην προσωρινή μνήμη και ενημερώθηκαν τελευταία φορά στις $2 στις $3. Υπάρχει διαθέσιμο ένα μέγιστο {{PLURAL:$4|ενός αποτελέσματος|$4 αποτελεσμάτων}} στην προσωρινή μνήμη.",
        "querypage-no-updates": "Οι ενημερώσεις για αυτή τη σελίδα είναι απενεργοποιημένες. Τα δεδομένα εδώ δεν θα ανανεωθούν προς το παρόν.",
        "viewsource": "Προβολή κώδικα",
        "viewsource-title": "Προβολή πηγαίου κώδικα για τη σελίδα $1",
-       "actionthrottled": "ΠεÏ\81ιοÏ\81ιÏ\83μένη ÎµÎ½Î­Ï\81γεια",
+       "actionthrottled": "Î\97 ÎµÎ½Î­Ï\81γεια Ï\80αÏ\81εμÏ\80οδίÏ\83Ï\84ηκε",
        "actionthrottledtext": "Σαν μέτρο κατά του spam, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.",
        "protectedpagetext": "Αυτή η σελίδα έχει προστατευθεί για πρόληψη επεξεργασίας ή άλλες ενέργειες.",
-       "viewsourcetext": "Μπορείτε να δείτε και να αντιγράψετε τον κώδικα αυτής της σελίδας:",
-       "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον κώδικα των '''επεξεργασιών σας''' σε αυτήν τη σελίδα:",
-       "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για αποτροπή τυχόν βανδαλισμού.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wikis, παρακαλούμε χρησιμοποιήστε  [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικοποίησης του  MediaWiki.",
+       "viewsourcetext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα αυτής της σελίδας:",
+       "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα των <strong>επεξεργασιών σας</strong> σε αυτήν τη σελίδα:",
+       "protectedinterface": "Αυτή η σελίδα παρέχει κείμενο διεπαφής για το λογισμικό σε αυτό το wiki, και έχει κλειδωθεί για την πρόληψη κατάχρησης.\n\nΓια να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το εγχείρημα τοπικής προσαρμογής της γλώσσας του MediaWiki.",
        "editinginterface": "<strong>Προειδοποίηση:</strong> Επεξεργάζεστε μια σελίδα η οποία χρησιμοποιείται για να παρέχει κείμενο διεπαφής για το λογισμικό. Αλλαγές σε αυτήν τη σελίδα θα επηρεάσουν την εμφάνιση της διεπαφής χρήστη για άλλους χρήστες αυτού του wiki.",
        "translateinterface": "Για να προσθέσετε ή να αλλάξετε τις μεταφράσεις για όλα τα wiki, παρακαλούμε χρησιμοποιήστε το [//translatewiki.net/ translatewiki.net], το έργο τοπικοποίησης του MediaWiki.",
        "cascadeprotected": "Αυτή η σελίδα έχει προστατευθεί από επεξεργασία, επειδή περιλαμβάνεται {{PLURAL:$1|στην ακόλουθη σελίδα, που είναι προστατευμένη|στις ακόλουθες σελίδες, που είναι προστατευμένες}} με ενεργοποιημένη τη «διαδοχική» προστασία στο:\n$2",
        "passwordreset": "Κωδικός επαναφοράς",
        "passwordreset-text-one": "Συμπληρώστε την παρακάτω φόρμα για να επαναφέρετε τον κωδικό πρόσβασής σας.",
        "passwordreset-text-many": "{{PLURAL:$1|Συμπληρώστε ένα από τα πεδία για να λάβετε προσωρινό κωδικό πρόσβαση μέσω ηλεκτρονικού ταχυδρομείου.}}",
-       "passwordreset-legend": "Επαναφορά κωδικού πρόσβασης",
        "passwordreset-disabled": "Η επαναφορά κωδικού πρόσβασης έχει απενεργοποιηθεί σε αυτό το wiki",
        "passwordreset-emaildisabled": "Τα χαρακτηριστικά ηλεκτρονικού ταχυδρομείου έχουν απενεργοποιηθεί σ' αυτό το wiki.",
        "passwordreset-username": "Όνομα χρήστη:",
        "resettokens": "Επαναφορά των κλειδιών",
        "resettokens-text": "Μπορείτε να επαναφέρετε τα κλειδιά, τα οποία επιτρέπουν την πρόσβαση σε ορισμένα ιδιωτικά δεδομένα που συνδέονται με τον λογαριασμό σας εδώ.\n\nΠρέπει να το κάνετε εάν κατά λάθος τα μοιραστήκατε με κάποιον ή αν ο λογαριασμός σας έχει παραβιαστεί.",
        "resettokens-no-tokens": "Δεν υπάρχουν κλειδιά για επαναφορά.",
-       "resettokens-legend": "Επαναφορά των κλειδιών",
        "resettokens-tokens": "Κλειδιά:",
        "resettokens-token-label": "$1 (τρέχουσα τιμή: $2)",
        "resettokens-watchlist-token": "Κλειδί για την δικτυακή ροή (Atom/RSS) των [[Special:Watchlist|αλλαγών σε σελίδες στη λίστα παρακολούθησής σας]]",
        "yourdiff": "Διαφορές",
        "copyrightwarning": "Παρακαλούμε σημειώστε ότι όλες οι συνεισφορές στον ιστότοπο {{SITENAME}} θεωρούνται ότι δημοσιεύονται σύμφωνα με την $2 (βλ. $1 για λεπτομέρειες).\nΑν δεν επιθυμείτε τα κείμενά σας να τα επεξεργάζονται ανηλεώς άλλοι χρήστες και να τα διαδίδουν κατά βούληση, τότε να μην τα υποβάλλετε εδώ.<br />Μας υπόσχεστε επίσης ότι αυτό το γράψατε μόνοι σας ή το αντιγράψατε από κάποια ελεύθερη πηγή ως κοινό κτήμα ή κάτι ανάλογο.\n<strong>Μην υποβάλλετε δουλειά που προστατεύεται από πνευματικά δικαιώματα χωρίς άδεια!</strong>",
        "copyrightwarning2": "Σημειώστε ότι όλες οι συνεισφορές στον ιστότοπο {{SITENAME}} μπορούν να υποστούν επεξεργασία, να αλλαχθούν, ή να αφαιρεθούν από άλλους συνεισφέροντες. Αν δεν θέλετε τα γραπτά σας να υποστούν επεξεργασία κατά βούληση, τότε μην τα τοποθετήσετε σε αυτό το χώρο.<br />\nΕπίσης μας υπόσχεστε πως ό,τι γράφετε είναι δικό σας, ή αντιγραμμένο από μια πηγή που είναι κοινό κτήμα, ή μια παρόμοια ελεύθερη πηγή (δείτε $1 για λεπτομέρειες).\n'''ΠΑΡΑΚΑΛΟΥΜΕ ΝΑ ΜΗΝ ΤΟΠΟΘΕΤΕΙΤΕ ΠΝΕΥΜΑΤΙΚΑ ΚΑΤΟΧΥΡΩΜΕΝΟ ΕΡΓΟ ΧΩΡΙΣ ΑΔΕΙΑ!'''",
+       "editpage-cannot-use-custom-model": "Το μοντέλο περιεχομένου αυτής της σελίδας δεν μπορεί να αλλάξει.",
        "longpageerror": "'''Σφάλμα: Το κείμενο που καταχωρήσατε έχει μήκος {{PLURAL:$1|ένα kilobyte|$1 kilobytes}}, το οποίο είναι μεγαλύτερο από το μέγιστο {{PLURAL:$2|του ενός kilobyte|των $2 kilobytes}}.'''\nΔεν μπορεί να αποθηκευτεί.",
        "readonlywarning": "'''Προειδοποίηση: Η βάση δεδομένων έχει κλειδωθεί για συντήρηση, έτσι δεν θα μπορέσετε να αποθηκεύσετε τις επεξεργασίες σας αυτή τη στιγμή.'''\nΜπορείτε αν θέλετε να μεταφέρετε με αντιγραφή-επικόλληση το κείμενό σας σε αρχείο κειμένου και να το αποθηκεύσετε για αργότερα.\n\nΟ διαχειριστής που την κλείδωσε έδωσε την εξής εξήγηση: $1",
        "protectedpagewarning": "'''Προειδοποίηση: Αυτή η σελίδα έχει κλειδωθεί ώστε μόνο χρήστες με δικαιώματα διαχειριστή μπορούν να την επεξεργαστούν.'''\nΗ πιο πρόσφατη καταχώρηση στο αρχείο καταγραφής παρέχεται παρακάτω για αναφορά:",
        "revdelete-nooldid-title": "Άκυρη έκδοση-στόχος",
        "revdelete-nooldid-text": "Είτε δεν έχετε ορίσει μία έκδοση-στόχο για να εκτελεστεί η λειτουργία σε αυτή, είτε η ορισμένη έκδοση δεν υπάρχει, είτε προσπαθείτε να κρύψετε την τρέχουσα έκδοση.",
        "revdelete-no-file": "Το αρχείο που καθορίσατε δεν υπάρχει.",
-       "revdelete-show-file-confirm": "Î\95ίÏ\83Ï\84ε Ï\83ίγοÏ\85Ï\81οι Ï\8cÏ\84ι Î¸Î­Î»ÎµÏ\84ε Î½Î± Î´ÎµÎ¯Ï\84ε Î¼Î¯Î± Î´Î¹ÎµÎ³Ï\81αμμένη Î±Î½Î±Î¸ÎµÏ\8eÏ\81ηÏ\83η Ï\84οÏ\85 Î±Ï\81Ï\87είοÏ\85 \"<nowiki>$1</nowiki>\" από τις $2 στις $3;",
+       "revdelete-show-file-confirm": "Î\95ίÏ\83Ï\84ε Ï\83ίγοÏ\85Ï\81οι Ï\8cÏ\84ι Î¸Î­Î»ÎµÏ\84ε Î½Î± Î´ÎµÎ¯Ï\84ε Î¼Î¯Î± Î´Î¹Î±Î³ÎµÎ³Ï\81αμμένη Î±Î½Î±Î¸ÎµÏ\8eÏ\81ηÏ\83η Ï\84οÏ\85 Î±Ï\81Ï\87είοÏ\85 Â«<nowiki>$1</nowiki>» από τις $2 στις $3;",
        "revdelete-show-file-submit": "Ναι",
        "revdelete-selected-text": "{{PLURAL:$1|Επιλεγμένη έκδοση|Επιλεγμένες εκδόσεις}} της [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Επιλεγμένη έκδοση αρχείου|Επιλεγμένες εκδόσεις αρχείου}} του [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Επιλεγμένο γεγονός αρχείου καταγραφής|Επιλεγμένα γεγονότα αρχείου καταγραφής}}:",
-       "revdelete-text-text": "Οι διαγραμμένες αναθεωρήσεις θα εξακολουθούν να εμφανίζονται στο ιστορικό της σελίδας, αλλά τα μέρη του περιεχομένου τους θα είναι απροσπέλαστα για το κοινό.",
-       "revdelete-text-file": "Οι διαγραμμένες αναθεωρήσεις θα εξακολουθούν να εμφανίζονται στο ιστορικό του αρχείου, αλλά μέρη του περιεχομένου τους δεν θα είναι προσβάσιμα για το κοινό.",
-       "logdelete-text": "Οι διαγραμμένες καταγραφές ενεργειών θα εξακολουθούν να εμφανίζονται στις σελίδες καταγραφών, αλλά μέρη του περιεχομένου τους, θα είναι απροσπέλαστα για το κοινό.",
+       "revdelete-text-text": "Οι διαγεγραμμένες αναθεωρήσεις θα εξακολουθούν να εμφανίζονται στο ιστορικό της σελίδας, αλλά τα μέρη του περιεχομένου τους θα είναι απροσπέλαστα για το κοινό.",
+       "revdelete-text-file": "Οι διαγεγραμμένες αναθεωρήσεις θα εξακολουθούν να εμφανίζονται στο ιστορικό του αρχείου, αλλά μέρη του περιεχομένου τους θα είναι απροσπέλαστα από το κοινό.",
+       "logdelete-text": "Οι διαγεγραμμένες καταγραφές συμβάντων θα εξακολουθούν να εμφανίζονται στις σελίδες καταγραφών, αλλά μέρη του περιεχομένου τους θα είναι απροσπέλαστα για το κοινό.",
        "revdelete-text-others": "Άλλοι διαχειριστές θα εξακολουθεί να είναι σε θέση να αποκτήσουν πρόσβαση στο κρυφό περιεχόμενο και για να αναιρέσουν τη διαγραφή, εκτός αν τίθενται πρόσθετοι περιορισμοί.",
        "revdelete-confirm": "Παρακαλούμε επιβεβαιώστε ότι σκοπεύετε να το κάνετε αυτό, ότι αντιλαμβάνεσθε τις συνέπειες, και ότι το κάνετε σύμφωνα με την [[{{MediaWiki:Policy-url}}|πολιτική]].",
        "revdelete-suppress-text": "Η καταστολή μπορεί να χρησιμοποιηθεί <strong> μόνο </strong> για τις ακόλουθες περιπτώσεις:\n* Ενδεχόμενη συκοφαντική δυσφήμιση\n* Ακατάλληλες προσωπικές πληροφορίες\n*: <em>διευθύνσεις κατοικίας και αριθμοί τηλεφώνου, αριθμοί ταυτότητας, κλπ. </em>",
        "logdelete-failure": "'''Η ορατότητα του καταλόγου δεν μπορούσε να ρυθμιστεί:'''\n$1",
        "revdel-restore": "αλλαγή ορατότητας",
        "pagehist": "Ιστορικό σελίδας",
-       "deletedhist": "Διαγραμμένο ιστορικό",
+       "deletedhist": "Διαγεγραμμένο ιστορικό",
        "revdelete-hide-current": "Σφάλμα κατά την απόκρυψη του αντικειμένου στις $2, $1: αυτή είναι η τωρινή έκδοση.\nΔεν μπορεί να αποκρυφθεί.",
        "revdelete-show-no-access": "Σφάλμα στην προβολή του αντικειμένου στις $2, $1: αυτό το αντικείμενο έχει σημειωθεί ως \"περιορισμένο\".\nΔεν έχετε πρόσβαση σε αυτό.",
        "revdelete-modify-no-access": "Σφάλμα κατά τη μετατροπή του αντικειμένου στις $2, $1: αυτό το αντικείμενο σημάνθηκε ως \"περιορισμένο\".\nΔεν έχετε πρόσβαση σε αυτό.",
        "searchmenu-new": "<strong>Δημιουργήστε τη σελίδα «[[:$1]]» σε αυτό το wiki!</strong>\n{{PLURAL:$2|0=|Δείτε επίσης τη σελίδα που βρέθηκε με την αναζήτησή σας.|Δείτε επίσης τα αποτελέσματα της αναζήτησης που βρέθηκαν.}}",
        "searchprofile-articles": "Σελίδες περιεχομένου",
        "searchprofile-images": "Πολυμέσα",
-       "searchprofile-everything": "Î\9fÏ\84ιδήÏ\80οÏ\84ε",
+       "searchprofile-everything": "Τα Ï\80άνÏ\84α",
        "searchprofile-advanced": "Προχωρημένο",
        "searchprofile-articles-tooltip": "Αναζήτηση σε $1",
        "searchprofile-images-tooltip": "Αναζήτηση αρχείων",
        "badsig": "Άκυρη υπογραφή raw: ελέγξτε τις ετικέτες HTML.",
        "badsiglength": "Η υπογραφή σας είναι πολύ μεγάλη.\nΠρέπει να είναι κάτω από $1 {{PLURAL:$1|χαρακτήρα|χαρακτήρες}}.",
        "yourgender": "Πώς προτιμάτε να χαρακτηρίζεστε;",
-       "gender-unknown": "ΠÏ\81οÏ\84ιμÏ\8e Î½Î± Î¼Î·Î½ Î¼Ï\80Ï\89 Ï\83ε Î»ÎµÏ\80Ï\84ομέÏ\81ειεÏ\82",
+       "gender-unknown": "Î\8cÏ\84αν Î¸Î± Î±Î½Î±Ï\86έÏ\81ει ÎµÏ\83άÏ\82, Ï\84ο Î»Î¿Î³Î¹Ï\83μικÏ\8c Î¸Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιεί Î»Î­Î¾ÎµÎ¹Ï\82 Î¿Ï\85δέÏ\84εÏ\81εÏ\82 Ï\86Ï\8dλοÏ\85 Ï\8cÏ\80οÏ\84ε ÎµÎ¯Î½Î±Î¹ Î´Ï\85ναÏ\84Ï\8cν.",
        "gender-male": "Άντρας",
        "gender-female": "Γυναίκα",
        "prefs-help-gender": "Η ρύθμιση αυτή της προτίμησης είναι προαιρετική.\nΤο λογισμικό χρησιμοποιεί την τιμή αυτής της παραμέτρου για να απευθύνεται προς εσάς και για να αναφέρεται σε σας όταν απευθύνεται σε άλλους, χρησιμοποιώντας το κατάλληλο γραμματικό γένος.\nΑυτή η πληροφορία θα είναι δημόσια.",
        "userrights-lookup-user": "Διαχείριση ομάδων χρηστών",
        "userrights-user-editname": "Δηλώστε όνομα χρήστη:",
        "editusergroup": "Επεξεργασία ομάδων χρηστών",
-       "editinguser": "Αλλαγή δικαιωμάτων χρήστη του χρήστη '''[[User:$1|$1]]''' $2",
+       "editinguser": "Αλλαγή δικαιωμάτων χρήστη {{GENDER:$1|του χρήστη|της χρήστριας}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Επεξεργασία ομάδων χρηστών",
        "saveusergroups": "Αποθήκευση ομάδων χρηστών",
        "userrights-groupsmember": "Μέλος της ομάδας:",
        "right-deletelogentry": "Διαγραφή και επαναφορά διαγραφής συγκεκριμένων καταχωρήσεων στη λίστα καταγραφών",
        "right-deleterevision": "Διαγραφή και επαναφορά συγκεκριμένων αναθεωρήσεων σελίδων",
        "right-deletedhistory": "Προβολή διαγραμμένων εκδόσεων του ιστορικού, χωρίς το σχετικό κείμενο",
-       "right-deletedtext": "Î\95μÏ\86άνιÏ\83η Î´Î¹ÎµÎ³Ï\81αμμένοÏ\85 ÎºÎµÎ¹Î¼Î­Î½Î¿Ï\85 ÎºÎ±Î¹ Î±Î»Î»Î±Î³Ï\8eν Î±Î½Î¬Î¼ÎµÏ\83α Ï\83Ï\84ιÏ\82 Î´Î¹ÎµÎ³Ï\81αμμένεÏ\82 ÎµÎºÎ´Ï\8cÏ\83ειÏ\82",
-       "right-browsearchive": "Αναζήτηση στις διαγραμμένες σελίδες",
+       "right-deletedtext": "Î\95μÏ\86άνιÏ\83η Î´Î¹Î±Î³ÎµÎ³Ï\81αμμένοÏ\85 ÎºÎµÎ¹Î¼Î­Î½Î¿Ï\85 ÎºÎ±Î¹ Î±Î»Î»Î±Î³Ï\8eν Î¼ÎµÏ\84αξÏ\8d Î´Î¹Î±Î³ÎµÎ³Ï\81αμμένÏ\89ν ÎµÎºÎ´Ï\8cÏ\83εÏ\89ν",
+       "right-browsearchive": "Αναζήτηση στις διαγεγραμμένες σελίδες",
        "right-undelete": "Ανάκληση διαγραφής μίας σελίδας",
        "right-suppressrevision": "Προβολή, απόκρυψη και επανεμφάνιση από οποιονδήποτε χρήστη συγκεκριμένων αναθεωρήσεων σελίδων",
        "right-viewsuppressed": "Προβολή αναθεωρήσεων κρυμμένων από κάθε χρήστη",
        "action-writeapi": "να χρησιμοποιήσετε το API για εγγραφή",
        "action-delete": "να διαγράψετε αυτή τη σελίδα",
        "action-deleterevision": "να διαγράψετε αυτή την έκδοση",
-       "action-deletedhistory": "να δείτε το διαγραμμένο ιστορικό αυτής της σελίδας",
-       "action-browsearchive": "να ÎµÏ\81εÏ\85νήÏ\83εÏ\84ε Î³Î¹Î± Î´Î¹Î±γραμμένες σελίδες",
+       "action-deletedhistory": "να προβάλετε το διαγεγραμμένο ιστορικό αυτής της σελίδας",
+       "action-browsearchive": "να Î±Î½Î±Î¶Î·Ï\84ήÏ\83εÏ\84ε Î´Î¹Î±Î³Îµγραμμένες σελίδες",
        "action-undelete": "να ακυρώσετε τη διαγραφή αυτής της σελίδας",
        "action-suppressrevision": "να επιθεωρήσετε και αποκαταστήσετε αυτή την κρυμμένη αναθεώρηση",
        "action-suppressionlog": "να δείτε αυτόν τον ιδιωτικό κατάλογο",
        "uploaddisabledtext": "Το ανέβασμα αρχείων είναι απενεργοποιημένο.",
        "php-uploaddisabledtext": "Οι επιφορτώσεις αρχείων ειναι απενεργοποιημένες στην PHP. Παρακαλούμε, ελέγξτε την ρύθμιση file_uploads.",
        "uploadscripted": "Αυτό το αρχείο περιέχει κώδικα HTML ή script που μπορεί να παρερμηνευθεί από μερικούς browser.",
+       "upload-scripted-pi-callback": "Δεν είναι δυνατό να ανεβάσετε αρχείο που περιέχει οδηγία επεξεργασίας φύλλου στυλ XML.",
+       "uploaded-script-svg": "Βρέθηκε στοιχείο με δυνατότητα δημιουργίας δέσμης ενεργειών «$1» στο ανεβασμένο αρχείο SVG.",
+       "uploaded-hostile-svg": "Βρέθηκε μη ασφαλές CSS στο στοιχείο στυλ του ανεβασμένου αρχείου SVG.",
+       "uploaded-setting-href-svg": "Η χρήση της ετικέτας «set» για την προσθήκη του χαρακτηριστικού «href» στο γονικό στοιχείο είναι αποκλεισμένη.",
+       "uploaded-wrong-setting-svg": "Η χρήση της ετικέτας «set» για την προσθήκη απομακρυσμένου προορισμού/προορισμού δεδομένων/προορισμού δέσμης ενεργειών είναι αποκλεισμένη. Βρέθηκε <code>&lt;set to=\"$1\"&gt;</code> στο ανεβασμένο αρχείο SVG.",
+       "uploaded-setting-handler-svg": "Κάθε SVG που θέτει το χαρακτηριστικό «χειρισμού» με απομακρυσμένο προορισμό/προορισμό δεδομένων/προορισμό δέσμης ενεργειών είναι αποκλεισμένο. Βρέθηκε <code>$1=\"$2\"</code> στο ανεβασμένο αρχείο SVG.",
+       "uploaded-remote-url-svg": "Κάθε SVG που θέτει οποιοδήποτε χαρακτηριστικό στυλ με απομακρυσμένη διεύθυνση URL είναι αποκλεισμένο. Βρέθηκε <code>$1=\"$2\"</code> στο ανεβασμένο αρχείο SVG.",
+       "uploaded-image-filter-svg": "Βρέθηκε φίλτρο εικόνας με διεύθυνση URL: <code>&lt;$1 $2=\"$3\"&gt;</code> στο ανεβασμένο αρχείο SVG.",
        "uploadscriptednamespace": "Αυτό το αρχείο SVG περιέχει μη αποδεκτό ονοματοχώρο «$1».",
        "uploadinvalidxml": "Δεν ήταν δυνατή η ανάλυση του κώδικα XML στο αρχείο.",
        "uploadvirus": "Το αρχείο περιέχει ιό! Λεπτομέρειες: $1",
        "listfiles-delete": "διαγραφή",
        "listfiles-summary": "Αυτή η ειδική σελίδα δείχνει όλα τα επιφορτωμένα αρχεία.",
        "listfiles_search_for": "Αναζήτηση για όνομα πολυμέσου:",
+       "listfiles-userdoesnotexist": "Ο λογαριασμός χρήστη «$1» δεν είναι εγγεγραμμένος.",
        "imgfile": "αρχείο",
        "listfiles": "Κατάλογος εικόνων",
        "listfiles_thumb": "Μικρογραφία",
        "unwatchedpages": "Μη παρακολουθούμενες σελίδες",
        "listredirects": "Λίστα ανακατευθύνσεων",
        "listduplicatedfiles": "Κατάλογος αρχείων με διπλότυπα",
+       "listduplicatedfiles-entry": "Το [[:File:$1|$1]] έχει [[$3|{{PLURAL:$2|διπλότυπο|$2 διπλότυπα}}]].",
        "unusedtemplates": "Αχρησιμοποίητα πρότυπα",
        "unusedtemplatestext": "Αυτή η σελίδα περιέχει όλες τις σελίδες στην περιοχή ονομάτος των {{ns:template}}, οι οποίες δεν περιλαμβάνονται σε άλλη σελίδα. Θυμηθείτε να ελέγξετε για άλλους συνδέσμους προς τα πρότυπα πριν τα διαγράψετε.",
        "unusedtemplateswlh": "άλλοι σύνδεσμοι",
        "pageswithprop-prop": "Όνομα ιδιότητας:",
        "pageswithprop-submit": "Μετάβαση",
        "doubleredirects": "Διπλές ανακατευθύνσεις",
-       "doubleredirectstext": "Αυτή η σελίδα συγκαταλέγει σελίδες οι οποίες ανακατευθύνουν σε άλλες σελίδες ανακατεύθυνσης. Κάθε σειρά περιέχει συνδέσμους προς την πρώτη και τη δεύτερη σελίδα ανακατεύθυνσης, όπως επίσης και την πρώτη αράδα του κειμένου στη δεύτερη σελίδα ανακατεύθυνσης η οποία και είναι, κανονικά, ο πραγματικός προορισμός της ανακατεύθυνσης -εκεί δηλαδή όπου θα έπρεπε να είχατε οδηγηθεί από την αρχή. Τα <del>διεγραμμένα</del> λήμματα έχουν επιλυθεί.",
+       "doubleredirectstext": "Αυτή η σελίδα καταγράφει σελίδες οι οποίες ανακατευθύνουν σε άλλες σελίδες ανακατεύθυνσης. \nΚάθε σειρά περιέχει συνδέσμους προς την πρώτη και τη δεύτερη ανακατεύθυνση, όπως επίσης και προς τον προορισμό της δεύτερης ανακατεύθυνσης, η οποία και είναι συνήθως η «πραγματική» σελίδα προορισμού στην οποία πρέπει να δείχνει η πρώτη ανακατεύθυνση. \nΤα <del>διαγεγραμμένα</del> λήμματα έχουν επιλυθεί.",
        "double-redirect-fixed-move": "Η [[$1]] έχει μετακινηθεί.\nΕνημερώθηκε αυτόματα και τώρα είναι ανακατεύθυνση στην [[$2]].",
        "double-redirect-fixed-maintenance": "Αυτόματη διόρθωση διπλής ανακατεύθυνσης από [[$1]] σε [[$2]] σε εργασία συντήρησης.",
        "double-redirect-fixer": "Διορθωτής ανακατευθύνσεων",
        "wantedfiletext-nocat-noforeign": "Τα ακόλουθα αρχεία χρησιμοποιούνται αλλά δεν υπάρχουν.",
        "wantedtemplates": "Ζητούμενα πρότυπα",
        "mostlinked": "Σελίδες με τους περισσότερους συνδέσμους προς αυτές",
-       "mostlinkedcategories": "ΠεÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81ο Ï\87Ï\81ηÏ\83ιμοÏ\80οιοÏ\8dμενεÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίες",
+       "mostlinkedcategories": "Î\9aαÏ\84ηγοÏ\81ίεÏ\82 Î¼Îµ Ï\84οÏ\85Ï\82 Ï\80εÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81οÏ\85Ï\82 Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\82 Î±Ï\85Ï\84ές",
        "mostlinkedtemplates": "Σελίδες που έχουν ενσωματωθεί περισσότερο από όλες τις άλλες",
        "mostcategories": "Σελίδες με τις περισσότερες κατηγορίες",
-       "mostimages": "ΠεÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81ο Ï\87Ï\81ηÏ\83ιμοÏ\80οιοÏ\8dμενα Î±Ï\81Ï\87εία",
+       "mostimages": "Î\91Ï\81Ï\87εία Î¼Îµ Ï\84οÏ\85Ï\82 Ï\80εÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81οÏ\85Ï\82 Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\82 Î±Ï\85Ï\84ά",
        "mostinterwikis": "Σελίδες με τους περισσότερους διαγλωσσικούς συνδέσμους",
        "mostrevisions": "Σελίδες με τις περισσότερες αναθεωρήσεις",
        "prefixindex": "Όλες οι σελίδες με πρόθεμα",
        "categoriesfrom": "Εμφάνιση κατηγοριών που αρχίζουν από:",
        "special-categories-sort-count": "ταξινόμηση κατά απαρίθμηση",
        "special-categories-sort-abc": "αλφαβητική ταξινόμηση",
-       "deletedcontributions": "Διαγραμμένες συνεισφορές χρήστη",
-       "deletedcontributions-title": "Διαγραμμένες συνεισφορές χρήστη",
+       "deletedcontributions": "Διαγεγραμμένες συνεισφορές χρήστη",
+       "deletedcontributions-title": "Διαγεγραμμένες συνεισφορές χρήστη",
        "sp-deletedcontributions-contribs": "συνεισφορές",
        "linksearch": "Αναζήτηση εξωτερικών συνδέσμων",
        "linksearch-pat": "Μοτίβο αναζήτησης:",
        "index-category-desc": "Η σελίδα περιέχει στον κώδικά της ένα <code><nowiki>__INDEX__</nowiki></code> (και βρίσκεται σε έναν ονοματοχώρο όπου αυτή η σήμανση επιτρέπεται) και ως εκ τούτου καταλογογραφείται από ρομπότ, ενώ κανονικά δεν θα καταλογογραφείτο.",
        "post-expand-template-inclusion-category-desc": "Το μέγεθος της σελίδας είναι μεγαλύτερο από <code>$wgMaxArticleSize</code> μετά την επέκταση όλων των προτύπων, έτσι ώστε ορισμένα πρότυπα δεν έχουν αναπτυχθεί.",
        "post-expand-template-argument-category-desc": "Η σελίδα είναι μεγαλύτερη από <code>$wgMaxArticleSize</code> μετά την επέκταση της μεταβλητής ενός προτύπου (κάτι σε τρίπλές αγκύλες, όπως <code>{{{Foo}}}</code>).",
+       "expensive-parserfunction-category-desc": "Η σελίδα χρησιμοποιεί πάρα πολλές ακριβές συναρτήσεις συντακτικού αναλυτή (όπως <code>#ifexist</code>). Βλ. [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Η σελίδα περιέχει ένα σπασμένο σύνδεσμο αρχείου (σύνδεσμο για να ενσωμάτωση ενός αρχείου, ενώ το αρχείο δεν υπάρχει).",
        "hidden-category-category-desc": "Η κατηγορία περιέχει <code><nowiki>__HIDDENCAT__</nowiki></code> στο περιεχόμενο της σελίδας της, που την εμποδίζει εκ προεπιλογής να εμφανίζεται στο πλαίσιο συνδέσμων κατηγοριών των σελίδων.",
        "trackingcategories-nodesc": "Καμία διαθέσιμη περιγραφή.",
        "emailccsubject": "Αντίγραφο του μηνυματός σας στο $1: $2",
        "emailsent": "Το μήνυμα έχει σταλεί",
        "emailsenttext": "Το μήνυμά σας έχει σταλεί.",
-       "emailuserfooter": "Αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στάλθηκε από {{GENDER:$1|τον χρήστη|την χρήστρια}} $1 σ{{GENDER:$2|τον χρήστη|την χρήστρια}} $2 μέσω της λειτουργίας «αποστολής μηνύματος ηλεκτρονικού ταχυδρομείου σε χρήστη» στο {{SITENAME}}.",
+       "emailuserfooter": "Αυτό το μήνυμα ηλεκτρονικού ταχυδρομείου στάλθηκε από {{GENDER:$1|το χρήστη|τη χρήστρια}} $1 σ{{GENDER:$2|το χρήστη|τη χρήστρια}} $2 μέσω της λειτουργίας «{{int:emailpage}}» στο {{SITENAME}}.",
        "usermessage-summary": "Φεύγετε από τις ειδοποιήσεις συστήματος.",
        "usermessage-editor": "Μηνύματα συστήματος",
        "usermessage-template": "MediaWiki:UserMessage",
        "restriction-level-all": "οποιοδήποτε επίπεδο",
        "undelete": "Αποκατάσταση σελίδων που έχουν διαγραφεί",
        "undeletepage": "Εμφάνιση και αποκατάσταση σελίδων που έχουν διαγραφεί",
-       "undeletepagetitle": "'''Οι ακόλουθες είναι διαγραμμένες επεξεργασίες του [[:$1|$1]]'''.",
+       "undeletepagetitle": "<strong>Οι ακόλουθες είναι διαγεγραμμένες επεξεργασίες του [[:$1|$1]]</strong>.",
        "viewdeletedpage": "Εμφάνιση διεγραμμένων σελίδων",
        "undeletepagetext": "{{PLURAL:$1|Η σελίδα που ακολουθεί έχει|$1 Οι σελίδες που ακολουθούν έχουν}} διαγραφεί αλλά {{PLURAL:βρίσκεται|βρίσκονται}} ακόμα {{PLURAL:αποθηκευμένη|αποθηκευμένες}} στο αρχείο και {{PLURAL:μπορεί να αποκατασταθεί|μπορούν να αποκατασταθούν}}. Κατά καιρούς γίνεται εκκαθάριση του αρχείου.",
        "undelete-fieldset-title": "Αποκατάσταση αναθεωρήσεων",
        "undeleteextrahelp": "Για να επαναφέρετε ολόκληρο το ιστορικό της σελίδας, μην επιλέγετε κανένα πλαίσιο ελέγχου και κάντε κλικ στο '''''{{int:undeletebtn}}'''''.\nΓια να κάνετε μια προσαρμοσμένη επαναφορά, επιλέξτε τα πλαίσια που αντιστοιχούν στις αναθεωρήσεις που πρόκειται να επαναφερθούν και κάντε κλικ στο '''''{{int:undeletebtn}}'''''.",
        "undeleterevisions": "$1 {{PLURAL:$1|τροποποίηση|τροποποιήσεις}} αρχειοθετήθηκαν.",
        "undeletehistory": "Αν επαναφέρετε την σελίδα, όλες οι εκδόσεις θα επαναφερθούν στο ιστορικό.\n\nΑν μια νέα σελίδα με το ίδιο όνομα δημιουργήθηκε μετά την διαγραφή, οι επαναφερμένες εκδόσεις θα εμφανιστούν στο πρότερο ιστορικό.",
-       "undeleterevdel": "Η επαναφορά δεν θα εκτελεστεί αν θα έχει ως αποτέλεσμα η πιο πρόσφατη έκδοση της σελίδας ή αρχείου να είναι διαγραμμένη μερικώς. Σε τέτοιες περιπτώσεις, πρέπει να αποεπιλέξετε ή να εμφανίσετε την νεότερη διαγραμμένη έκδοση.",
+       "undeleterevdel": "Η επαναφορά δεν θα εκτελεστεί αν θα έχει ως αποτέλεσμα η πιο πρόσφατη έκδοση της σελίδας ή αρχείου να είναι διαγεγραμμένη μερικώς. Σε τέτοιες περιπτώσεις, πρέπει να αποεπιλέξετε ή να εμφανίσετε την νεότερη διαγεγραμμένη έκδοση.",
        "undeletehistorynoadmin": "Αυτό το άρθρο έχει διαγραφεί. Ο λόγος για τη διαγραφή φαίνεται\nστη σύνοψη παρακάτω, μαζί με λεπτομέρειες των χρηστών που επεξεργάστηκαν τη σελίδα\nπριν τη διαγραφή. Το αρχικό κείμενο αυτών των διεγραμμένων αναθεωρήσεων είναι διαθέσιμο μόνο στους διαχειριστές.",
-       "undelete-revision": "Διαγραμμένη αναθεώρηση του $1 (από $4, στις $5) από $3:",
+       "undelete-revision": "Διαγεγραμμένη αναθεώρηση του $1 (από τις $4, στις $5) από $3:",
        "undeleterevision-missing": "Άκυρη ή ανύπαρκτη αναθεώρηση. Μπορεί να έχετε έναν κακό σύνδεσμο, ή η\nαναθεώρηση μπορεί να έχει επαναφερθεί ή αφαιρεθεί από το αρχείο.",
        "undelete-nodiff": "Δεν βρέθηκε προηγούμενη αναθεώρηση.",
        "undeletebtn": "Επαναφορά",
        "undeletedfiles": "$1 {{PLURAL:$1|αρχείο|αρχεία}} επαναφέρθηκαν",
        "cannotundelete": "Η αναίρεση διαγραφής απέτυχε: $1",
        "undeletedpage": "'''Η $1 έχει επαναφερθεί'''\n\nΣυμβουλευτείτε το [[Special:Log/delete|αρχείο καταγραφής διαγραφών]] για ένα μητρώο των πρόσφατων διαγραφών και επαναφορών.",
-       "undelete-header": "Δείτε [[Special:Log/delete|το αρχείο καταγραφής διαγραφών]] για πρόσφατα διεγραμμένες σελίδες.",
-       "undelete-search-title": "Αναζήτηση στις διεγραμμένες σελίδες",
+       "undelete-header": "Î\94είÏ\84ε [[Special:Log/delete|Ï\84ο Î±Ï\81Ï\87είο ÎºÎ±Ï\84αγÏ\81αÏ\86ήÏ\82 Î´Î¹Î±Î³Ï\81αÏ\86Ï\8eν]] Î³Î¹Î± Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84α Î´Î¹Î±Î³ÎµÎ³Ï\81αμμένεÏ\82 Ï\83ελίδεÏ\82.",
+       "undelete-search-title": "Αναζήτηση διαγεγραμμένων σελίδων",
        "undelete-search-box": "Αναζήτηση διεγραμμένων σελίδων",
        "undelete-search-prefix": "Εμφάνισε σελίδες που αρχίζουν με:",
        "undelete-search-submit": "Αναζήτηση",
        "undelete-error": "Σφάλμα κατά την αναίρεση διαγραφής της σελίδας",
        "undelete-error-short": "Σφάλμα κατά τη διαγραφή του αρχείου: $1",
        "undelete-error-long": "Αντιμετωπίστηκαν σφάλματα καθώς επαναφερόταν το αρχείο:\n\n$1",
-       "undelete-show-file-confirm": "Είστε σίγουρος ότι θέλετε να δείτε μια διεγραμμένη έκδοση του αρχείου \"<nowiki>$1</nowiki>\" από $2 σε $3;",
+       "undelete-show-file-confirm": "Είστε σίγουροι ότι θέλετε να δείτε μια διαγεγραμμένη έκδοση του αρχείου «<nowiki>$1</nowiki>» από τις $2 στις $3;",
        "undelete-show-file-submit": "Ναι",
        "namespace": "Ονοματοχώρος:",
        "invert": "Αντιστροφή επιλογής",
        "sp-contributions-newbies-title": "Συνεισφορές χρηστών για νέους λογαριασμούς",
        "sp-contributions-blocklog": "αρχείο καταγραφών φραγών",
        "sp-contributions-suppresslog": "διαγεγραμμένες συνεισφορές χρήστη",
-       "sp-contributions-deleted": "διαγραμμένες συνεισφορές χρήστη",
+       "sp-contributions-deleted": "διαγεγραμμένες συνεισφορές χρήστη",
        "sp-contributions-uploads": "ανεβάσματα αρχείων",
        "sp-contributions-logs": "καταγραφές",
        "sp-contributions-talk": "συζήτηση",
        "immobile-target-namespace-iw": "Ο σύνδεσμος-interwiki δεν είναι έγκυρος στόχος για την μετακίνηση σελίδας.",
        "immobile-source-page": "Αυτή η σελίδα δεν είναι δυνατό να μετακινηθεί.",
        "immobile-target-page": "Δεν μπορεί να μετακινηθεί σε αυτόν τον τίτλο.",
+       "bad-target-model": "Ο επιθυμητός προορισμός χρησιμοποιεί διαφορετικό μοντέλο περιεχομένου. Δεν είναι δυνατή η μετατροπή από $1 σε $2.",
        "imagenocrossnamespace": "Δεν είναι δυνατή η μετακίνηση του αρχείου σε περιοχή ονομάτων που δεν αφορά αρχεία",
        "nonfile-cannot-move-to-file": " Δεν είναι δυνατή η μετακίνηση μη αρχείων σε αρχείο ονομάτων",
        "imagetypemismatch": "Η νέα επέκταση του αρχείου δεν ταιριάζει με τον τύπο του",
        "thumbnail_image-type": "Δεν υποστηρίζεται αυτός ο τύπος εικόνας",
        "thumbnail_gd-library": "Ατελής ενεργοποίηση της βιβλιοθήκης GD: αγνοούμενη λειτουργία $1",
        "thumbnail_image-missing": "Το αρχείο φαίνεται να λείπει: $1",
+       "thumbnail_image-failure-limit": "Έχουν γίνει πάρα πολλές πρόσφατες αποτυχημένες προσπάθειες ($1 ή περισσότερες) για να αποδοθεί αυτή μικρογραφία. Παρακαλούμε δοκιμάστε ξανά αργότερα.",
        "import": "Εισαγωγή σελίδων",
        "importinterwiki": "Εισαγωγή από άλλο wiki",
        "import-interwiki-text": "Επιλέξτε ένα wiki και τίτλο σελίδας για την εισαγωγή.\nΟι ημερομηνίες των αναθεωρήσεων και τα ονόματα των συντακτών θα διατηρηθούν.\nΌλες οι ενέργειες εισαγωγής από άλλα wiki καταγράφονται στο [[Special:Log/import|αρχείο καταγραφής εισαγωγών]].",
        "pageinfo-header-edits": "Ιστορικό επεξεργασίας",
        "pageinfo-header-restrictions": "Προστασία σελίδας",
        "pageinfo-header-properties": "Ιδιότητες σελίδας",
-       "pageinfo-display-title": "Î\95μÏ\86άνιÏ\83η Ï\84ίÏ\84λοÏ\85",
+       "pageinfo-display-title": "Î\95μÏ\86ανιζÏ\8cμενοÏ\82 Ï\84ίÏ\84λοÏ\82",
        "pageinfo-default-sort": "Προεπιλεγμένο κλειδί ταξινόμησης",
        "pageinfo-length": "Μήκος σελίδας (σε bytes)",
        "pageinfo-article-id": "Αναγνωριστικό σελίδας",
-       "pageinfo-language": "Î\93λÏ\8eÏ\83Ï\83α Ï\83ελίδαÏ\82 Ï\80εÏ\81ιεÏ\87ομένοÏ\85",
+       "pageinfo-language": "Î\93λÏ\8eÏ\83Ï\83α Ï\80εÏ\81ιεÏ\87ομένοÏ\85 Ï\83ελίδαÏ\82",
        "pageinfo-content-model": "Μοντέλο περιεχομένου σελίδας",
        "pageinfo-robot-policy": "Ευρετηρίαση από ρομπότ",
        "pageinfo-robot-index": "Επιτρεπτό",
        "specialpages-group-changes": "Πρόσφατες αλλαγές και καταγραφές γεγονότων",
        "specialpages-group-media": "Αναφορές πολυμέσων και ανέβασμα αρχείων",
        "specialpages-group-users": "Χρήστες και δικαιώματα",
-       "specialpages-group-highuse": "ΠολÏ\85Ï\83Ï\8dÏ\87ναÏ\83Ï\84εÏ\82 Ï\83ελίδες",
+       "specialpages-group-highuse": "ΣελίδεÏ\82 Ï\85Ï\88ηλήÏ\82 Ï\87Ï\81ήÏ\83ης",
        "specialpages-group-pages": "Κατάλογοι σελίδων",
        "specialpages-group-pagetools": "Εργαλεία σελίδων",
        "specialpages-group-wiki": "Δεδομένα και εργαλεία",
-       "specialpages-group-redirects": "Î\91νακαÏ\84εÏ\8dθÏ\85νÏ\83η ÎµÎ¹Î´Î¹ÎºÏ\8eν Ï\83ελίδÏ\89ν",
+       "specialpages-group-redirects": "Î\91νακαÏ\84εÏ\85θÏ\85νÏ\84ικέÏ\82 ÎµÎ¹Î´Î¹ÎºÎ­Ï\82 Ï\83ελίδεÏ\82",
        "specialpages-group-spam": "Εργαλεία κατά των ανεπιθύμητων διαφημιστικών",
        "specialpages-group-developer": "Εργαλεία προγραμματιστών",
        "blankpage": "Κενή σελίδα",
        "tag-filter-submit": "Φίλτρο",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ετικέτα|Ετικέτες}}]]: $2)",
        "tags-title": "Ετικέτες",
-       "tags-intro": "Η σελίδα συγκαταλέγει τις ετικέτες (καθώς και το τι σημαίνει η κάθε μία) με τις οποίες το software μπορεί να μαρκάρει μία επεξεργασία.",
+       "tags-intro": "Η σελίδα καταγράφει τις ετικέτες, καθώς και το τι σημαίνει η κάθε μία, με τις οποίες το λογισμικό μπορεί να μαρκάρει μία επεξεργασία.",
        "tags-tag": "Όνομα ετικέτας",
        "tags-display-header": "Εμφάνιση στις λίστες αλλαγής",
        "tags-description-header": "Πλήρης περιγραφή του νοήματος",
        "tags-actions-header": "Ενέργειες",
        "tags-active-yes": "Ναι",
        "tags-active-no": "Όχι",
+       "tags-source-extension": "Οριζόμενη από επέκταση",
+       "tags-source-manual": "Εφαρμοζόμενη με μη αυτόματο τρόπο από χρήστες και ρομπότ",
        "tags-source-none": "Όχι σε χρήση πλέον",
        "tags-edit": "επεξεργασία",
+       "tags-delete": "διαγραφή",
+       "tags-activate": "ενεργοποίηση",
+       "tags-deactivate": "απενεργοποίηση",
        "tags-hitcount": "$1 {{PLURAL:$1|αλλαγή|αλλαγές}}",
+       "tags-manage-no-permission": "Δεν έχετε δικαίωμα να διαχειριστείτε ετικέτες αλλαγής.",
        "tags-create-heading": "Δημιουργία νέας ετικέτας",
+       "tags-create-explanation": "Από προεπιλογή, οι πρόσφατα δημιουργημένες ετικέτες θα είναι διαθέσιμες για χρήση από χρήστες και ρομπότ.",
        "tags-create-tag-name": "Όνομα ετικέτας:",
        "tags-create-reason": "Αιτία:",
        "tags-create-submit": "Δημιουργία",
        "tags-create-invalid-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν κόμματα (<code>,</code>) ή καθέτους (<code>/</code>).",
        "tags-create-invalid-title-chars": "Τα ονόματα ετικετών δεν πρέπει να περιέχουν χαρακτήρες που δεν είναι δυνατό να χρησιμοποιηθούν σε τίτλους σελίδων.",
        "tags-create-already-exists": "Η ετικέτα «$1» υπάρχει ήδη.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Αντιμετωπίστηκε η ακόλουθη προειδοποίηση|Αντιμετωπίστηκαν οι ακόλουθες προειδοποιήσεις}} όταν έγινε προσπάθεια για τη δημιουργία της ετικέτας «$1»:",
+       "tags-create-warnings-below": "Θέλετε να συνεχιστεί η δημιουργία της ετικέτας;",
        "tags-delete-title": "Διαγραφή ετικέτας",
+       "tags-delete-explanation-initial": "Πρόκειται να διαγράψετε την ετικέτα «$1» από τη βάση δεδομένων.",
+       "tags-delete-explanation-warning": "Αυτή η ενέργεια είναι <strong>μη αναστρέψιμη</strong> και <strong>δεν μπορεί να αναιρεθεί</strong>, ούτε καν από διαχειριστές της βάσης δεδομένων. Φροντίστε να είστε σίγουροι ότι αυτή είναι η ετικέτα που σκοπεύετε να διαγράψετε.",
        "tags-delete-reason": "Αιτία:",
        "tags-delete-submit": "Μη αναστρέψιμη διαγραφή αυτής της ετικέτας",
        "tags-delete-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
        "tags-activate-title": "Ενεργοποίηση ετικέτας",
+       "tags-activate-question": "Πρόκειται να ενεργοποιήσετε την ετικέτα «$1».",
        "tags-activate-reason": "Αιτία:",
        "tags-activate-not-allowed": "Δεν είναι δυνατή η ενεργοποίηση της ετικέτας «$1».",
        "tags-activate-not-found": "Η ετικέτα «$1» δεν υπάρχει.",
        "tags-deactivate-not-allowed": "Δεν είναι δυνατή η απενεργοποίηση της ετικέτας «$1».",
        "tags-deactivate-submit": "Απενεργοποίηση",
        "tags-apply-no-permission": "Δεν έχετε τα απαραίτητα δικαιώματα για να εφαρμόσετε αλλαγή ετικετών μαζί με τις αλλαγές σας.",
-       "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με μη αυτόματο τρόπο.",
-       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με μη αυτόματο τρόπο: $1",
+       "tags-apply-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να εφαρμοστεί με το χέρι.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να εφαρμοστεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να εφαρμοστούν}} με το χέρι: $1",
+       "tags-update-add-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να προστεθεί με το χέρι.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Η ακόλουθη ετικέτα δεν επιτρέπεται να προστεθεί|Οι ακόλουθες ετικέτες δεν επιτρέπεται να προστεθούν}} με το χέρι: $1",
+       "tags-update-remove-not-allowed-one": "Η ετικέτα «$1» δεν επιτρέπεται να αφαιρεθεί.",
        "tags-edit-title": "Επεξεργασία ετικετών",
        "tags-edit-manage-link": "Διαχείριση ετικετών",
        "tags-edit-existing-tags": "Υπάρχουσες ετικέτες:",
        "tags-edit-chosen-placeholder": "Επιλέξτε μερικές ετικέτες",
        "tags-edit-chosen-no-results": "Δεν βρέθηκαν ετικέτες που να ταιριάζουν",
        "tags-edit-reason": "Αιτία:",
+       "tags-edit-success": "Οι αλλαγές εφαρμόστηκαν με επιτυχία.",
+       "tags-edit-failure": "Οι αλλαγές δεν ήταν δυνατόν να εφαρμοστούν:\n$1",
        "tags-edit-nooldid-title": "Μη έγκυρη αναθεώρηση προορισμού",
        "tags-edit-none-selected": "Παρακαλώ επιλέξτε τουλάχιστον μία ετικέτα για να προσθέσετε ή να αφαιρέσετε.",
        "comparepages": "Σύγκριση σελίδων",
        "revdelete-uname-unhid": "το όνομα χρήστη έπαψε να είναι κρυφό",
        "revdelete-restricted": "εφήρμοσε περιορισμούς στους sysops",
        "revdelete-unrestricted": "αφαίρεσε περιορισμούς στους sysops",
+       "logentry-block-block": "{{GENDER:$2|Ο|Η}} $1 έθεσε φραγή {{GENDER:$4|στον $3|στην $3}} με χρόνο λήξης $5 $6",
        "logentry-block-unblock": "{{GENDER:$2|Ο|Η}} $1 αφαίρεσε τη φραγή {{GENDER:$4|του|της}} $3",
+       "logentry-block-reblock": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τις ρυθμίσεις φραγής {{GENDER:$4|για τον $3|για την $3}} με χρόνο λήξης $5 $6",
+       "logentry-suppress-block": "{{GENDER:$2|Ο|Η}} $1 έθεσε φραγή {{GENDER:$4|στον $3|στην $3}} με χρόνο λήξης $5 $6",
+       "logentry-suppress-reblock": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τις ρυθμίσεις φραγής {{GENDER:$4|για τον $3|για την $3}} με χρόνο λήξης $5 $6",
+       "logentry-import-upload": "{{GENDER:$2|Ο|Η}} $1 εισήγαγε τη σελίδα $3 μέσω ανεβάσματος αρχείου",
+       "logentry-import-interwiki": "{{GENDER:$2|Ο|Η}} $1 εισήγαγε τη σελίδα $3 από άλλο wiki",
+       "logentry-merge-merge": "{{GENDER:$2|Ο|Η}} $1 συγχώνευσε τη σελίδα $3 με την $4 (αναθεωρήσεις μέχρι $5)",
        "logentry-move-move": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4",
        "logentry-move-move-noredirect": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 χωρίς να αφήσει ανακατεύθυνση",
        "logentry-move-move_redir": "{{GENDER:$2|Ο|Η}} $1 μετακίνησε τη σελίδα $3 στην $4 πάνω από την ανακατεύθυνση",
        "feedback-bugornote": "Εάν είστε έτοιμοι να περιγράψετε ένα τεχνικό πρόβλημα λεπτομερώς παρακαλούμε [$1  κάντε μια αναφορά σφάλματος].\nΔιαφορετικά, μπορείτε να χρησιμοποιήσετε την παρακάτω απλή φόρμα. Το σχόλιό σας θα προστεθεί στη σελίδα \"[$3  $2]\", μαζί με το όνομα χρήστη σας.",
        "feedback-cancel": "Ακύρωση",
        "feedback-close": "Ολοκληρώθηκε",
+       "feedback-dialog-title": "Υποβολή παρατηρήσεων",
+       "feedback-dialog-intro": "Μπορείτε να χρησιμοποιήσετε την παρακάτω εύκολη φόρμα για να υποβάλετε τις παρατηρήσεις σας. Το σχόλιό σας θα προστεθεί στην σελίδα «$1», μαζί με το όνομα χρήστη σας.",
        "feedback-error-title": "Σφάλμα",
        "feedback-error1": "Σφάλμα: Μη αναγνωρίσιμο αποτέλεσμα από το API",
        "feedback-error2": "Σφάλμα: Η επεξεργασία απέτυχε",
        "feedback-message": "Μήνυμα:",
        "feedback-subject": "Θέμα:",
        "feedback-submit": "Υποβολή",
+       "feedback-termsofuse": "Συμφωνώ να παρέχω παρατηρήσεις σύμφωνα με τους Όρους Χρήσης.",
        "feedback-thanks": "Ευχαριστούμε! Τα σχόλιά σας έχουν καταχωρηθεί στη σελίδα \"[$2 $1]\".",
        "feedback-thanks-title": "Σας ευχαριστούμε!",
        "searchsuggest-search": "Αναζήτηση",
        "pagelang-select-lang": "Επιλογή γλώσσας",
        "right-pagelang": "Αλλαγή γλώσσας σελίδας",
        "action-pagelang": "αλλαγή της γλώσσας σελίδας",
+       "log-name-pagelang": "Αρχείο καταγραφών αλλαγών γλώσσας",
        "logentry-pagelang-pagelang": "{{GENDER:$2|Ο|Η}} $1 άλλαξε τη γλώσσα σελίδας της σελίδας $3 από $4 σε $5.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> /$2 (ενεργοποιημένο)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''απενεργοποιημένο''')",
        "mediastatistics-header-executable": "Εκτελέσιμα",
        "mediastatistics-header-archive": "Συμπιεσμένες μορφές",
        "json-error-unknown": "Υπήρξε πρόβλημα με το JSON. Σφάλμα: $1",
+       "json-error-depth": "Το μέγιστο βάθος στοίβας έχει ξεπεραστεί",
+       "json-error-state-mismatch": "Μη έγκυρο ή λάθος μορφοποιημένο JSON",
        "json-error-ctrl-char": "Σφάλμα χαρακτήρα ελέγχου, πιθανόν είναι εσφαλμένα κωδικοποιημένος.",
        "json-error-syntax": "Συντακτικό λάθος",
+       "json-error-utf8": "Λάθος μορφοποιημένοι χαρακτήρες UTF-8, πιθανόν εσφαλμένα κωδικοποιημένοι",
        "json-error-recursion": "Μία ή περισσότερες αναδρομικές αναφορές στην προς κωδικοποίηση τιμή.",
        "json-error-inf-or-nan": "Μία ή περισσότερες τιμές NAN ή INF στην προς κωδικοποίηση τιμή.",
        "json-error-unsupported-type": "Δόθηκε τιμή τύπου που δεν μπορεί να κωδικοποιηθεί.",
index de4119e..2a22479 100644 (file)
        "passwordreset": "Reset password",
        "passwordreset-text-one": "Complete this form to receive a temporary password via email.",
        "passwordreset-text-many": "{{PLURAL:$1|Fill in one of the fields to receive a temporary password via email.}}",
-       "passwordreset-legend": "Reset password",
        "passwordreset-disabled": "Password resets have been disabled on this wiki.",
        "passwordreset-emaildisabled": "Email features have been disabled on this wiki.",
        "passwordreset-username": "Username:",
        "resettokens-summary": "",
        "resettokens-text": "You can reset tokens which allow access to certain private data associated with your account here.\n\nYou should do it if you accidentally shared them with someone or if your account has been compromised.",
        "resettokens-no-tokens": "There are no tokens to reset.",
-       "resettokens-legend": "Reset tokens",
        "resettokens-tokens": "Tokens:",
        "resettokens-token-label": "$1 (current value: $2)",
        "resettokens-watchlist-token": "Token for the web feed (Atom/RSS) of [[Special:Watchlist|changes to pages on your watchlist]]",
        "rollback-success": "Reverted edits by $1;\nchanged back to last revision by $2.",
        "sessionfailure-title": "Session failure",
        "sessionfailure": "There seems to be a problem with your login session;\nthis action has been canceled as a precaution against session hijacking.\nGo back to the previous page, reload that page and then try again.",
+       "changecontentmodel" : "Change content model of a page",
+       "changecontentmodel-legend": "Change content model",
+       "changecontentmodel-title-label": "Page title",
+       "changecontentmodel-model-label": "New content model",
+       "changecontentmodel-reason-label": "Reason:",
+       "changecontentmodel-success-title": "The content model was changed",
+       "changecontentmodel-success-text": "The content type of [[:$1]] has been changed.",
+       "changecontentmodel-cannot-convert": "The content on [[:$1]] cannot be converted to a type of $2.",
+       "changecontentmodel-title-cantexist": "It is not possible to have a page at $1.",
+       "changecontentmodel-nodirectediting": "The $1 content model does not support direct editing",
+       "log-name-contentmodel": "Content model change log",
+       "log-description-contentmodel": "Events related to the content models of a page",
+       "logentry-contentmodel-change": "$1 {{GENDER:$2|changed}} the content model of the page $3 from \"$4\" to \"$5\"",
+       "logentry-contentmodel-change-revertlink": "revert",
+       "logentry-contentmodel-change-revert": "revert",
        "protectlogpage": "Protection log",
        "protectlogtext": "Below is a list of changes to page protections.\nSee the [[Special:ProtectedPages|protected pages list]] for the list of currently operational page protections.",
        "protectedarticle": "protected \"[[$1]]\"",
        "tooltip-pt-logout": "Log out",
        "tooltip-pt-createaccount": "You are encouraged to create an account and log in; however, it is not mandatory",
        "tooltip-ca-talk": "Discussion about the content page",
-       "tooltip-ca-edit": "You can edit this page. Please use the preview button before saving",
+       "tooltip-ca-edit": "Edit this page",
        "tooltip-ca-addsection": "Start a new section",
        "tooltip-ca-viewsource": "This page is protected.\nYou can view its source",
        "tooltip-ca-history": "Past revisions of this page",
        "pageinfo-robot-index": "Allowed",
        "pageinfo-robot-noindex": "Disallowed",
        "pageinfo-watchers": "Number of page watchers",
+       "pageinfo-visiting-watchers": "Number of page watchers visiting recent edits",
        "pageinfo-few-watchers": "Fewer than $1 {{PLURAL:$1|watcher|watchers}}",
+       "pageinfo-few-visiting-watchers": "There may or may not be a watching user visiting recent edits",
        "pageinfo-redirects-name": "Number of redirects to this page",
        "pageinfo-redirects-value": "$1",
        "pageinfo-subpages-name": "Number of subpages of this page",
        "version-libraries": "Installed libraries",
        "version-libraries-library": "Library",
        "version-libraries-version": "Version",
+       "version-libraries-license": "License",
+       "version-libraries-description": "Description",
+       "version-libraries-authors": "Authors",
        "redirect": "Redirect by file, user, page or revision ID",
        "redirect-legend": "Redirect to a file or page",
        "redirect-text": "",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "en dash",
        "special-characters-title-emdash": "em dash",
-       "special-characters-title-minus": "minus sign"
+       "special-characters-title-minus": "minus sign",
+       "mw-widgets-titleinput-description-new-page": "page does not exist yet",
+       "mw-widgets-titleinput-description-redirect": "redirect to $1"
 }
index 71b1f5d..48d925c 100644 (file)
        "passwordreset": "Restablecer contraseña",
        "passwordreset-text-one": "Completa este formulario para recibir una contraseña temporal por correo electrónico.",
        "passwordreset-text-many": "{{PLURAL:$1|Elige una de las opciones para recibir una contraseña temporal por correo electrónico.}}",
-       "passwordreset-legend": "Restablecer contraseña",
        "passwordreset-disabled": "Se ha desactivado el restablecimiento de contraseñas en este wiki.",
        "passwordreset-emaildisabled": "Se han desactivado las funciones de correo electrónico en este wiki.",
        "passwordreset-username": "Nombre de usuario:",
        "resettokens": "Restablecer claves",
        "resettokens-text": "Aquí puedes restablecer las claves que permiten el acceso a ciertos datos privados asociados a tu cuenta.\n\nDeberías hacerlo si los has compartido por accidente, o si ha habido intrusiones en tu cuenta.",
        "resettokens-no-tokens": "No hay claves para restablecer.",
-       "resettokens-legend": "Restablecer claves",
        "resettokens-tokens": "Claves:",
        "resettokens-token-label": "$1 (valor actual: $2)",
        "resettokens-watchlist-token": "Clave para el canal (RSS/Atom) de los [[Special:Watchlist|cambios a las páginas en tu lista de seguimiento]]",
        "content-model-css": "CSS",
        "content-json-empty-object": "Objeto vacío",
        "content-json-empty-array": "Matriz vacía",
-       "duplicate-args-warning": "<strong>Aviso:</strong> [[:$1]] usa [[:$2]] con más de un valor para el parámetro «$3». Se usará solo el último valor proporcionado.",
+       "duplicate-args-warning": "<strong>Aviso:</strong> [[:$1]] convoca a [[:$2]] con más de un valor para el parámetro «$3». Se usará solo el último valor proporcionado.",
        "duplicate-args-category": "Páginas que usan argumentos duplicados en invocaciones de plantillas",
        "duplicate-args-category-desc": "La página contiene invocaciones de plantillas que utilizan argumentos duplicados, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "<strong>Advertencia:</strong> esta página contiene demasiadas llamadas a funciones sintácticas costosas.\n\nTiene {{PLURAL:$1|una llamada|$1 llamadas}}, pero debería tener menos de {{PLURAL:$2|una|$2}}.",
        "filedelete-nofile-old": "No existe una versión guardada de '''$1''' con los atributos especificados.",
        "filedelete-otherreason": "Otra razón:",
        "filedelete-reason-otherlist": "Otra razón",
-       "filedelete-reason-dropdown": "*Razones de borrado habituales\n** Violación de copyright\n** Archivo duplicado",
+       "filedelete-reason-dropdown": "*Razones habituales de borrado\n** Violación de derechos de autor\n** Archivo duplicado",
        "filedelete-edit-reasonlist": "Edita los motivos del borrado",
        "filedelete-maintenance": "Borrado y restauración de archivos temporalmente deshabilitados durante el mantenimiento.",
        "filedelete-maintenance-title": "No se puede eliminar el archivo",
        "unwatchthispage": "Dejar de vigilar",
        "notanarticle": "No es un artículo",
        "notvisiblerev": "La última revisión de un usuario diferente ha sido borrada",
-       "watchlist-details": "{{PLURAL:$1|$1 página|$1 páginas}} en su lista de seguimiento, sin contar las de discusión.",
+       "watchlist-details": "{{PLURAL:$1|$1 página|$1 páginas}} en tu lista de seguimiento, sin contar las de discusión.",
        "wlheader-enotif": "La notificación por correo está activada.",
        "wlheader-showupdated": "Las páginas modificadas desde su última visita aparecen en '''negrita'''.",
        "wlnote": "A continuación {{PLURAL:$1|se muestra el último cambio|se muestran los últimos '''$1''' cambios}} en {{PLURAL:$2|la última hora|las últimas '''$2''' horas}} a fecha de $4 $3.",
        "historywarning": "<strong>Atención:</strong> la página que estás a punto de borrar tiene un historial con $1 {{PLURAL:$1|revisión|revisiones}}:",
        "confirmdeletetext": "Estás a punto de borrar una página, así como todo su historial.\nPor favor, confirma que realmente quieres hacer eso, que entiendes las consecuencias, y que lo estás haciendo de acuerdo con [[{{MediaWiki:Policy-url}}|las políticas]].",
        "actioncomplete": "Acción completada",
-       "actionfailed": "Acción fallida",
+       "actionfailed": "Falló la acción",
        "deletedtext": "«$1» ha sido borrado.\nVéase $2 para un registro de los borrados recientes.",
        "dellogpage": "Registro de borrados",
        "dellogpagetext": "A continuación se muestra una lista de los borrados más recientes.",
        "deletereason-dropdown": "*Razones comunes de borrado\n** Spam\n** Vandalismo\n** Violación de copyright\n** A petición del mismo autor\n** Redirección incorrecta",
        "delete-edit-reasonlist": "Editar razones de borrado",
        "delete-toobig": "Esta página tiene un historial muy grande, con más de $1 {{PLURAL:$1|revisión|revisiones}}. Borrar este tipo de páginas ha sido restringido para prevenir posibles problemas en {{SITENAME}}.",
-       "delete-warning-toobig": "Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}. Eliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}. Ten cuidado al borrar.",
+       "delete-warning-toobig": "Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}.\nEliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}.\nProcede con cautela.",
        "deleteprotected": "No puedes eliminar esta página porque ha sido protegida.",
        "deleting-backlinks-warning": "'''Advertencia:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Otras páginas]] enlazan o transcluyen la página que vas a eliminar.",
        "rollback": "Revertir ediciones",
        "sp-contributions-uploads": "subidas",
        "sp-contributions-logs": "registros",
        "sp-contributions-talk": "discusión",
-       "sp-contributions-userrights": "administración de derechos de usuarios",
+       "sp-contributions-userrights": "gestión de permisos del usuario",
        "sp-contributions-blocked-notice": "Este usuario está actualmente bloqueado. La última entrada del registro de bloqueos es presentada debajo para mayor referencia:",
        "sp-contributions-blocked-notice-anon": "Esta dirección IP se encuentra actualmente bloqueada.\nA continuación se muestra la última entrada del registro de bloqueos para mayor referencia.",
        "sp-contributions-search": "Buscar contribuciones",
        "version-libraries": "Bibliotecas instaladas",
        "version-libraries-library": "Biblioteca",
        "version-libraries-version": "Versión",
+       "version-libraries-license": "Licencia",
+       "version-libraries-description": "Descripción",
+       "version-libraries-authors": "Autores",
        "redirect": "Redirigir por archivo, usuario, página o ID de revisión",
        "redirect-legend": "Redirigir a un archivo o página",
        "redirect-summary": "Esta página especial redirige a un fichero (dado un nombre de fichero), a una página (dado un identificador de revisión o de página) o a una página de usuario (dado un identificador numérico de usuario). Uso: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
        "logentry-delete-revision-legacy": "$1 ha {{GENDER:$2|cambiado}} la visibilidad de las revisiones en la página $3",
        "logentry-suppress-delete": "$1 {{GENDER:$2|borró}}, con restricciones para administradores aplicadas, la página $3",
        "logentry-suppress-event": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4",
-       "logentry-suppress-revision": "$1 modificó secretamente la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4",
+       "logentry-suppress-revision": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de {{PLURAL:$5|una edición|$5 ediciones}} en la página $3: $4",
        "logentry-suppress-event-legacy": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de los eventos del registro en $3",
        "logentry-suppress-revision-legacy": "$1 {{GENDER:$2|modificó}} secretamente la visibilidad de varias ediciones en la página $3",
        "revdelete-content-hid": "contenido ocultado",
        "logentry-import-interwiki": "$1 {{GENDER:$2|importó}} $3 desde otro wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|combinó}} $3 en $4 (revisiones hasta el $5)",
        "logentry-move-move": "$1 {{GENDER:$2|trasladó}} la página $3 a $4",
-       "logentry-move-move-noredirect": "$1 movió la página $3 a $4 sin dejar una redirección",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sin dejar una redirección",
        "logentry-move-move_redir": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sobre una redirección",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|trasladó}} la página $3 a $4 sobre una redirección y sin dejar una redirección",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|marcó}} como patrullada la edición $4 de la página $3",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|marcó}} automáticamente la edición $4 de la página $3 como patrullada",
        "logentry-newusers-newusers": "La cuenta de usuario $1 ha sido {{GENDER:$2|creada}}",
        "logentry-newusers-create": "Se ha {{GENDER:$2|creado}} la cuenta de usuario $1",
-       "logentry-newusers-create2": "La cuenta de usuario $3 ha sido creada por $1",
-       "logentry-newusers-byemail": "la cuenta de usuario $3 ha sido creada por $1 y la contraseña ha sido enviada por correo",
+       "logentry-newusers-create2": "La cuenta de usuario $3 ha sido {{GENDER:$2|creada}} por $1",
+       "logentry-newusers-byemail": "La cuenta de usuario $3 ha sido {{GENDER:$2|creada}} por $1 y la contraseña ha sido enviada por correo",
        "logentry-newusers-autocreate": "La cuenta $1 se {{GENDER:$2|creó}} automáticamente",
        "logentry-rights-rights": "$1 modificó los grupos a los que pertenece $3: de $4 a $5",
-       "logentry-rights-rights-legacy": "$1 modificó los grupos a los que pertenece $3",
+       "logentry-rights-rights-legacy": "$1 {{GENDER:$2|modificó}} los grupos a los que pertenece $3",
        "logentry-rights-autopromote": "$1 ha sido {{GENDER:$2|promocionado|promocionada}} automáticamente de $4 a $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|subió}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|subió}} una nueva versión de $3",
        "special-characters-group-khmer": "Jemer",
        "special-characters-title-endash": "semirraya",
        "special-characters-title-emdash": "raya",
-       "special-characters-title-minus": "signo de resta"
+       "special-characters-title-minus": "signo de resta",
+       "mw-widgets-titleinput-description-new-page": "la página aún no existe",
+       "mw-widgets-titleinput-description-redirect": "redirigir a $1"
 }
index 0369741..3dd92b7 100644 (file)
        "passwordreset": "Parooli lähtestamine",
        "passwordreset-text-one": "Täida see vorm, et oma parool lähtestada.",
        "passwordreset-text-many": "{{PLURAL:$1|Täida üks väljadest, et saada e-kiri ajutise parooliga.}}",
-       "passwordreset-legend": "Parooli lähtestamine",
        "passwordreset-disabled": "Selles vikis on paroolide lähtestamine keelatud.",
        "passwordreset-emaildisabled": "E-posti funktsioonid on selles vikis keelatud.",
        "passwordreset-username": "Kasutajanimi:",
        "resettokens": "Lubade lähtestamine",
        "resettokens-text": "Saad lähtestada load, mida on vaja siin sinu kontoga seotud kindlatele eraandmetele ligipääsuks.\n\nPeaksid load lähtestama, kui jagasid neid kogemata või kui su konto on kellegi teise võimusesse sattunud.",
        "resettokens-no-tokens": "Lähtestatavad load puuduvad.",
-       "resettokens-legend": "Lubade lähtestamine",
        "resettokens-tokens": "Load:",
        "resettokens-token-label": "$1 (praegune väärtus: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|Jälgimisloendis olevatel lehekülgedel tehtud muudatuste]] veebivoo (Atom/RSS) luba",
        "yourdiff": "Erinevused",
        "copyrightwarning": "Pea silmas, et kogu kaastöö võrgukohale {{SITENAME}} loetakse avaldatuks litsentsi $2 all (üksikasjad leheküljel $1). Kui sa ei soovi, et sinu kirjutatut halastamatult redigeeritakse ja oma äranägemise järgi kasutatakse, siis ära seda siia salvesta.<br />\nKinnitad ka, et kirjutasid selle ise või võtsid selle allikast, mille materjale ei kaitsta autoriõigusega või muust sarnasest vabast allikast.<br />\n'''Ära salvesta autoriõigusega kaitstud materjali ilma loata!'''",
        "copyrightwarning2": "Pea silmas, et teised kaastöölised võivad kogu {{GRAMMAR:inessive|{{SITENAME}}}} tehtud kaastööd muuta või eemaldada. Kui sa ei soovi, et su kirjutatut halastamatult redigeeritakse, siis ära seda siia salvesta.<br />\nSa kinnitad ka, et kirjutasid selle ise või võtsid selle kopeerimiskitsenduseta allikast (vaata ka $1).\n'''Ära saada autoriõigusega kaitstud materjali loata!'''",
+       "editpage-cannot-use-custom-model": "Selle lehekülje sisumudelit ei saa muuta.",
        "longpageerror": "'''Tõrge: Lehekülge ei saa salvestada, sest sinu esitatud {{PLURAL:$1|ühe|$1}} kilobaidi suurune tekst ületab {{PLURAL:$2|ühekilobaidist|$2-kilobaidist}} ülemmäära.'''",
        "readonlywarning": "'''Hoiatus: Andmebaas on lukustatud hooldustöödeks, nii et praegu ei saa parandusi salvestada.'''\nVõid teksti hilisemaks kasutamiseks alles hoida tekstifailina.\n\nAdministraator, kes andmebaasi lukustas, andis järgmise selgituse: $1",
        "protectedpagewarning": "'''Hoiatus: See lehekülg on lukustatud, nii et ainult administraatori õigustega kasutajad saavad seda redigeerida.'''\nAllpool on toodud uusim logisissekanne:",
        "version-libraries": "Paigaldatud teegid",
        "version-libraries-library": "Teek",
        "version-libraries-version": "Versioon",
+       "version-libraries-license": "Litsents",
+       "version-libraries-description": "Kirjeldus",
+       "version-libraries-authors": "Autorid",
        "redirect": "Ümbersuunamine faili, kasutaja, lehekülje või redaktsiooni identifikaatori järgi",
        "redirect-legend": "Ümbersuunamine faili juurde või leheküljele",
        "redirect-summary": "See erilehekülg suunab ümber faili (toodud failinimi), lehekülje (toodud redaktsiooni või lehekülje identifikaator) või kasutajalehekülje (toodud numbriline kasutaja identfikaator) juurde. Kasutamine: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] või [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmeeri",
        "special-characters-title-endash": "mõttekriips",
        "special-characters-title-emdash": "pikk mõttekriips",
-       "special-characters-title-minus": "miinusmärk"
+       "special-characters-title-minus": "miinusmärk",
+       "mw-widgets-titleinput-description-new-page": "lehekülge pole veel",
+       "mw-widgets-titleinput-description-redirect": "ümbersuunamine leheküljele \"$1\""
 }
index e118c55..c9d5e8c 100644 (file)
        "passwordreset": "Pasahitzaren berrezarpena",
        "passwordreset-text-one": "Bete formulario hau zure pasahitza berrezartzeko.",
        "passwordreset-text-many": "{{PLURAL:$1|Sartu datuetako bat zure pasahitza berrezartzeko.}}",
-       "passwordreset-legend": "Pasahitza berrezarri",
        "passwordreset-disabled": "Pasahitza berrezartzea ez da posible wiki honetan.",
        "passwordreset-emaildisabled": "E-posta aukerak ez daude eskuragarri wiki honetan.",
        "passwordreset-username": "Lankide izena:",
        "changeemail-submit": "E-posta aldatu",
        "resettokens": "Tokenak berrezarri",
        "resettokens-no-tokens": "Ez dago tokenik berrezartzeko.",
-       "resettokens-legend": "Tokenak berrezarri",
        "resettokens-tokens": "Tokenak:",
        "resettokens-token-label": "$1 (oraingo balioa: $2)",
        "resettokens-watchlist-token": "(Atom/RSS) jarioarentzako tokenak [[Special:Watchlist|jarraitzen dituzun orrialdeen aldaketetarako]]",
        "currentrev": "Oraingo berrikuspena",
        "currentrev-asof": "Hauxe da oraingo bertsioa, $1 data duena",
        "revisionasof": "$1(e)ko berrikuspena",
-       "revision-info": "$2(r)en berrikusketa, ordua: $1",
+       "revision-info": "{{GENDER:$6|$2}}$7(r)en berrikusketa, ordua: $1",
        "previousrevision": "←Berrikuspen zaharragoa",
        "nextrevision": "Berrikuspen berriagoa→",
        "currentrevisionlink": "Oraingo berrikuspena ikusi",
        "version-entrypoints-header-entrypoint": "Sarrera puntua",
        "version-entrypoints-header-url": "URL",
        "version-libraries-version": "Bertsioa",
+       "version-libraries-license": "Lizentzia",
+       "version-libraries-description": "Deskribapena",
+       "version-libraries-authors": "Egileak",
        "redirect": "Birzuzendu fitxategi, lankide edo berrikuspen IDaren arabera",
        "redirect-legend": "Orrialde edo fitxategi batera birzuzendu",
        "redirect-submit": "Joan",
        "tags-active-yes": "Bai",
        "tags-active-no": "Ez",
        "tags-edit": "aldatu",
+       "tags-delete": "ezabatu",
+       "tags-activate": "aktibatu",
        "tags-hitcount": "$1 {{PLURAL:$1|aldaketa|aldaketa}}",
        "tags-create-reason": "Arrazoia:",
        "tags-create-submit": "Sortu",
        "tags-delete-reason": "Arrazoia:",
        "tags-activate-reason": "Arrazoia:",
+       "tags-activate-submit": "Aktibatu",
        "tags-deactivate-reason": "Arrazoia:",
        "tags-edit-new-tags": "Etiketa berriak:",
        "tags-edit-add": "Gehitu etiketa hauek:",
index 2509fb2..3942916 100644 (file)
        "nospecialpagetext": "<strong>شما یک صفحهٔ ویژهٔ نامجاز را درخواست کرده‌اید.</strong>\n\nفهرستی از صفحه‌های ویژهٔ مجاز در [[Special:SpecialPages|{{int:specialpages}}]] وجود دارد.",
        "error": "خطا",
        "databaseerror": "خطای پایگاه داده",
-       "databaseerror-text": "مشکلی در پایگاه‌داده‌ها رخ دادهاست. \nاین ممکن است نشان‌دهندهٔ ایرادی در نرم‌افزار باشد.",
-       "databaseerror-textcl": "یک خطای پرس‌وجوی پایگاه داده‌های رخ دادهاست.",
+       "databaseerror-text": "مشکلی در پایگاه‌داده‌ها رخ داده است. \nاین ممکن است نشان‌دهندهٔ ایرادی در نرم‌افزار باشد.",
+       "databaseerror-textcl": "یک خطای پرس‌وجوی پایگاه داده‌های رخ داده است.",
        "databaseerror-query": "پرس‌وجو: $1",
        "databaseerror-function": "تابع: $1",
        "databaseerror-error": "خطا: $1",
        "userlogin-signwithsecure": "از ورود امن استفاده کنید",
        "yourdomainname": "دامنهٔ شما:",
        "password-change-forbidden": "شما نمی‌توانید گذرواژه‌ها را در این ویکی تغییر دهید.",
-       "externaldberror": "خطایی در ارتباط با پایگاه داده رخ دادهاست یا اینکه شما اجازهٔ به‌روزرسانی حساب خارجی خود را ندارید.",
+       "externaldberror": "خطایی در ارتباط با پایگاه داده رخ داده است یا اینکه شما اجازهٔ به‌روزرسانی حساب خارجی خود را ندارید.",
        "login": "ورود به سامانه",
        "nav-login-createaccount": "ورود به سامانه / ایجاد حساب کاربری",
        "userlogin": "ورود به سامانه / ایجاد حساب کاربری",
        "userlogin-helplink2": "کمک با ورود",
        "userlogin-loggedin": "شما در حال حاضر به عنوان {{GENDER:$1|$1}} وارد شده‌اید.\nاز فرم پایین برای ورود به عنوان یک کاربر دیگر استفاده کنید.",
        "userlogin-createanother": "ایجاد یک حساب کاربری دیگر",
-       "createacct-emailrequired": "آدرس ایمیل",
-       "createacct-emailoptional": "آدرس ایمیل (اختیاری)",
-       "createacct-email-ph": "آدرس ایمیل خود را وارد کنید",
+       "createacct-emailrequired": "نشانی ایمیل",
+       "createacct-emailoptional": "نشانی ایمیل (اختیاری)",
+       "createacct-email-ph": "نشانی ایمیل خود را وارد کنید",
        "createacct-another-email-ph": "آدرس ایمیل را وارد کنید",
        "createaccountmail": "استفاده از رمز عبور موقت تصادفی و ارسال آن به آدرس ایمیل مشخص شده",
        "createacct-realname": "نام واقعی (اختیاری)",
        "createacct-imgcaptcha-ph": "متن تصویری که در بالا می‌بینید، وارد کنید",
        "createacct-submit": "حسابتان را بسازید",
        "createacct-another-submit": "ایجاد حساب کاربری دیگر",
-       "createacct-benefit-heading": "{{SITENAME}} توسط افرادی مانند شما ساخته شدهاست",
+       "createacct-benefit-heading": "{{SITENAME}} توسط افرادی مانند شما ساخته شده است",
        "createacct-benefit-body1": "{{PLURAL:$1|ویرایش}}",
        "createacct-benefit-body2": "{{PLURAL:$1|صفحه}}",
        "createacct-benefit-body3": "{{PLURAL:$1|مشارکت‌کنندهٔ}} اخیر",
        "passwordreset": "بازنشانی گذرواژه",
        "passwordreset-text-one": "برای بازنشانی گذرواژه‌تان این فرم را کامل کنید.",
        "passwordreset-text-many": "{{PLURAL:$1|برای دریافت یک گذرواژهٔ موقت از طریق ایمیل، یکی از خانه‌ها را پر کنید.}}",
-       "passwordreset-legend": "بازنشانی گذرواژه",
        "passwordreset-disabled": "بازنشانی گذرواژه در این ویکی غیرفعال شده است.",
        "passwordreset-emaildisabled": "قابلیت‌های ایمیل در این ویکی غیرفعال شده‌اند.",
        "passwordreset-username": "نام کاربری:",
        "passwordreset-capture-help": "اگر این گزینه را علامت بزنید، ایمیل (حاوی گذرواژهٔ موقت) به شما نشان داده خواهد شد و برای کاربر نیز فرستاده خواهد شد.",
        "passwordreset-email": "نشانی ایمیل:",
        "passwordreset-emailtitle": "جزئیات حساب در {{SITENAME}}",
-       "passwordreset-emailtext-ip": "یک نفر (احتمالاً شما، با نشانی آی‌پی $1) درخواست بازنشانی گذرواژه‌تان در {{SITENAME}} ($4) را کرده‌است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این آدرس ایمیل مرتبط هستند:\n\n$2\n\n{{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} پس از {{PLURAL:$5|یک روز|$5 روز}} باطل خواهند شد.\nشما باید هم‌اکنون ثبت ورود کنید و گذرواژه‌ای جدید برگزینید. اگر فکر می‌کنید شخص دیگری این درخواست را دادهاست یا اگر گذرواژهٔ اصلی‌تان را به یاد آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.",
+       "passwordreset-emailtext-ip": "یک نفر (احتمالاً شما، با نشانی آی‌پی $1) درخواست بازنشانی گذرواژه‌تان در {{SITENAME}} ($4) را کرده‌است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این آدرس ایمیل مرتبط هستند:\n\n$2\n\n{{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} پس از {{PLURAL:$5|یک روز|$5 روز}} باطل خواهند شد.\nشما باید هم‌اکنون ثبت ورود کنید و گذرواژه‌ای جدید برگزینید. اگر فکر می‌کنید شخص دیگری این درخواست را داده است یا اگر گذرواژهٔ اصلی‌تان را به یاد آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.",
        "passwordreset-emailtext-user": "کاربر $1 از {{SITENAME}} درخواست بازنشانی گذرواژهٔ شما در {{SITENAME}} ($4) را کرده است. {{PLURAL:$3|حساب|حساب‌های}} کاربری زیر با این آدرس ایمیل مرتبط است:\n\n$2\n\n{{PLURAL:$3|این گذرواژهٔ موقت|این گذرواژه‌های موقت}} تا {{PLURAL:$5|یک روز|$5 روز}} باطل می‌شود.\nشما باید هم‌اکنون وارد شده و یک گذرواژهٔ جدید برگزینید. اگر شخص دیگری این درخواست را داده است، یا اگر گذرواژهٔ اصلی‌تان را به خاطر آوردید و دیگر نمی‌خواهید آن را تغییر دهید، می‌توانید این پیغام را نادیده بگیرید و به استفاده از گذرواژهٔ قبلی‌تان ادامه دهید.",
        "passwordreset-emailelement": "نام کاربری: $1\nگذرواژهٔ موقت: $2",
        "passwordreset-emailsent": "یک نامهٔ بازنشانی گذرواژه فرستاده شده‌است.",
        "passwordreset-emailsent-capture": "یک ایمیل بازنشانی که در پایین نمایش داده شده، فرستاده شده است.",
        "passwordreset-emailerror-capture": "ایمیل بازنشانی، که در زیر نمایش داده شده، ایجاد شد، ولی ارسال آن به {{GENDER:$2|کاربر}} موفقیت‌آمیز نبود: $1",
-       "changeemail": "تغییر آدرس ایمیل",
+       "changeemail": "تغییر نشانی ایمیل",
        "changeemail-text": "این فرم را تکمیل کنید تا آدرس ایمیلتان تغییر یابد. برای این که این تغییر را تأیید کنید لازم است گذرواژهٔ خود را وارد کنید.",
        "changeemail-no-info": "برای دسترسی مستقیم به این صفحه شما باید به سامانه وارد شده باشید.",
        "changeemail-oldemail": "آدرس ایمیل کنونی:",
        "resettokens": "بازنشانی شناساننده‌ها",
        "resettokens-text": "شما می توانید شناساننده‌ها که اجازهٔ دسترسی به برخی داده‌های خصوصی مرتبط با حسابتان را می‌دهد بازنشانی کنید.\nدر صورتی باید این کار را انجام دهید که تصادقاً آن‌ها را با کسی در میان گذاشته‌اید یا به حسابتان نفوذ شده است.",
        "resettokens-no-tokens": "هیچ شناساننده‌ای برای بازنشانی وجود ندارد.",
-       "resettokens-legend": "بازنشانی شناساننده‌ها",
        "resettokens-tokens": "شناساننده‌ها:",
        "resettokens-token-label": "$1 (مقدار کنونی: $2)",
        "resettokens-watchlist-token": "شناسانندهٔ خوراک وبِی [[Special:Watchlist|تغییرات صفحه‌هایی که پی‌گیری می‌کنید]] (اتم/آراس‌اس)",
        "editingsection": "در حال ویرایش $1 (بخش)",
        "editingcomment": "در حال ویرایش $1 (بخش تازه)",
        "editconflict": "تعارض ویرایشی: $1",
-       "explainconflict": "از وقتی ویرایش این صفحه را آغاز کرده‌اید شخص دیگری آن را تغییر داده‌است.\nناحیهٔ متنی بالایی شامل متن صفحه به شکل کنونی آن است.\nتغییرات شما در ناحیهٔ متنی پایینی نشان داده شده‌است.\nشما باید تغییراتتان را با متن کنونی ترکیب کنید.\nبا فشردن دکمهٔ «{{int:savearticle}}» '''فقط''' متن ناحیهٔ متنی بالایی ذخیره خواهد شد.",
+       "explainconflict": "از وقتی ویرایش این صفحه را آغاز کرده‌اید شخص دیگری آن را تغییر داده است.\nناحیهٔ متنی بالایی شامل متن صفحه به شکل کنونی آن است.\nتغییرات شما در ناحیهٔ متنی پایینی نشان داده شده‌است.\nشما باید تغییراتتان را با متن کنونی ترکیب کنید.\nبا فشردن دکمهٔ «{{int:savearticle}}» <strong>فقط</strong> متن ناحیهٔ متنی بالایی ذخیره خواهد شد.",
        "yourtext": "متن شما",
        "storedversion": "نسخهٔ ذخیره شده",
        "nonunicodebrowser": "'''هشدار: مرورگر شما با استانداردهای یونیکد سازگار نیست.'''\nراه حلی به کار گرفته شده تا شما بتوانید صفحات را با امنیت ویرایش کنید: کاراکترهای غیر ASCII به صورت کدهایی در مبنای شانزده به شما نشان داده می‌شوند.",
        "yourdiff": "تفاوت‌ها",
        "copyrightwarning": "لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در {{SITENAME}} منتشرشده تحت $2 در نظر گرفته‌می‌شوند (برای جزئیات بیش‌تر $1 را ببینید).\nاگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش و توزیع شوند؛ بنابراین، آنها را اینجا ارائه نکنید.<br />\nشما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید (برای جزئیات بیش‌تر $1 را ببینید).\n<strong>کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!</strong>",
        "copyrightwarning2": "لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در {{SITENAME}} ممکن است توسط دیگر مشارکت‌کنندگان تغییر یابند، ویرایش یا حذف شوند.\nاگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش شوند؛ بنابراین، آنها را اینجا ارائه نکنید.<br />\nشما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید ($1 را برای جزئیات بیشتر ببینید).\n<strong>کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!</strong>",
+       "editpage-cannot-use-custom-model": "مدل محتوای این صفحه نمی‌تواند عوض شود.",
        "longpageerror": "'''خطا: متنی که ارسال کرده‌اید {{PULAR:$1|یک کیلوبایت|$1 کیلوبایت}} طول دارد. این مقدار از مقدار بیشینهٔ {{PLURAL:$2|یک کیلوبایت|$2 کیلوبایت}} بیشتر است.'''\nنمی‌توان آن را ذخیره کرد.",
        "readonlywarning": "'''هشدار: پایگاه داده برای نگهداری قفل شده‌است، به همین علت هم‌اکنون نمی‌توانید ویرایش‌هایتان را ذخیره کنید.'''\nاگر می‌خواهید متن را در یک پروندهٔ متنی کپی کنید و برای آینده ذخیره‌اش کنید.\n\nمدیری که آن را قفل کرده این توضیح را ارائه کرده‌است: $1",
        "protectedpagewarning": "'''هشدار: این صفحه قفل شده‌است تا فقط کاربران با دسترسی مدیریت بتوانند ویرایشش کنند.'''\nآخرین موارد سیاهه در زیر آمده‌است:",
        "content-model-css": "سی‌اس‌اس",
        "content-json-empty-object": "ابجکت خالی",
        "content-json-empty-array": "آرایهٔ خالی",
+       "duplicate-args-warning": "<strong>هشدار:</strong> [[:$1]] [[:$2]] را با بیش از یک مقدار برای پارامتر «$3» صدا می‌زند. فقط آخرین مقدار داده شده استفاده خواهد شد.",
        "duplicate-args-category": "صفحه‌های دارای آرگومان تکراری در فراخوانی الگو",
        "duplicate-args-category-desc": "صفحاتی که دارای آرگومان تکراری هستند مانند، <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> یا <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''هشدار:''' این صفحه حاوی تعدادی زیادی فراخوانی دستورهای تجزیه‌گر است.\n\nتعداد آن‌ها باید کمتر از $2 {{PLURAL:$2|فراخوانی|فراخوانی}} باشد، و اینک {{PLURAL:$1|$1 فراخوانی|$1 فراخوانی}} است.",
        "prefs-watchlist-token": "رمز فهرست پی‌گیری:",
        "prefs-misc": "متفرقه",
        "prefs-resetpass": "تغییر گذرواژه",
-       "prefs-changeemail": "تغییر آدرس ایمیل",
+       "prefs-changeemail": "تغییر نشانی ایمیل",
        "prefs-setemail": "تنظیم آدرس ایمیل",
        "prefs-email": "گزینه‌های ایمیل",
        "prefs-rendering": "نمایش صفحه",
        "badsig": "امضای خام نامجاز.\nلطفاً برچسب‌های اچ‌تی‌ام‌ال را بررسی کنید.",
        "badsiglength": "امضای شما بیش از اندازه طولانی است.\nامضا باید کمتر از $1 {{PLURAL:$1|نویسه}} طول داشته باشد.",
        "yourgender": "ترجیح می‌دهید چگونه توصیف شوید؟",
-       "gender-unknown": "ترجیح می‌دهم مشخص نکنم",
+       "gender-unknown": "هنگام ذکر شما، نرم‌افزار تا جای ممکن از کلمات خنثی از نظر جنسیت استفاده خواهد",
        "gender-male": "مرد",
        "gender-female": "زن",
        "prefs-help-gender": "انجام این تنظیم اختیاری است.\nنرم‌افزار از این مقدار برای اشارهٔ صحیح به جنسیت و ذکر شما برای دیگران با استفاده از دستور زبان درست استفاده می‌کند.\nاین اطلاعات عمومی خواهند بود.",
        "right-createpage": "ایجاد صفحه (در مورد صفحه‌های غیر بحث)",
        "right-createtalk": "ایجاد صفحه‌های بحث",
        "right-createaccount": "ایجاد حساب‌های کاربری",
-       "right-minoredit": "علامتزدن ویرایش‌ها به عنوان جزئی",
+       "right-minoredit": "علامت زدن ویرایش‌ها به عنوان جزئی",
        "right-move": "انتقال صفحه",
        "right-move-subpages": "انتقال صفحات به همراه زیر‌صفحات‌شان",
        "right-move-rootuserpages": "انتقال صفحه‌های کاربری سرشاخه",
        "right-editmyprivateinfo": "داده‌های خصوصی خود را ویرایش کنید (مانند آدرس ایمیل و نام واقعی)",
        "right-editmyoptions": "ترجیحات خود را ویرایش",
        "right-rollback": "واگردانی سریع ویرایش‌های آخرین کاربری که یک صفحه را ویرایش کرده‌است",
-       "right-markbotedits": "علامتزدن ویرایش‌های واگردانی‌شده به عنوان ویرایش ربات",
+       "right-markbotedits": "علامت زدن ویرایش‌های واگردانی‌شده به عنوان ویرایش ربات",
        "right-noratelimit": "تاثیر نپذیرفتن از محدودیت سرعت",
        "right-import": "واردکردن صفحه از ویکی‌های دیگر",
        "right-importupload": "واردکردن صفحه از طریق بارگذاری پرونده",
        "recentchanges-feed-description": "آخرین تغییرات ویکی را در این خوراک پی‌گیری کنید.",
        "recentchanges-label-newpage": "این ویرایش صفحه‌ای تازه ایجاد کرد",
        "recentchanges-label-minor": "این یک ویرایش جزئی‌است",
-       "recentchanges-label-bot": "این ویرایش را یک ربات انجام دادهاست",
-       "recentchanges-label-unpatrolled": "این ویرایش هنوز گشت‌زنی نشدهاست",
+       "recentchanges-label-bot": "این ویرایش را یک ربات انجام داده است",
+       "recentchanges-label-unpatrolled": "این ویرایش هنوز گشت‌زنی نشده است",
        "recentchanges-label-plusminus": "حجم صفحه به اندازه این مقدار بایت تغییر یافته است",
        "recentchanges-legend-heading": "'''اختصارها:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنین به [[Special:NewPages|فهرست صفحات تازه]] نگاه کنید)",
        "uploaddisabledtext": "امکان بارگذاری پرونده غیرفعال است.",
        "php-uploaddisabledtext": "بارگذاری پرونده‌های پی‌اچ‌پی غیرفعال است.\nلطفاً تنظیمات file_uploads را بررسی کنید.",
        "uploadscripted": "این صفحه حاوی کد اچ‌تی‌ام‌ال یا اسکریپتی است که ممکن است به‌نادرست توسط مرورگر وب تفسیر شود.",
+       "upload-scripted-pi-callback": "نمی‌توان یک پرونده شامل دستورالعمل پردازش استایل‌شیت اکس‌ام‌ال بارگذاری کرد.",
+       "uploaded-script-svg": "عنصر قابل برنامه‌ریزی «$1» در پرونده بارگذاری اس‌وی‌جی یافت شد.",
+       "uploaded-hostile-svg": "سی‌اس‌اس نا امن در عنصر سبک پروندهٔ بارگذاری شدهٔ اس‌وی‌جی یافت شد.",
+       "uploaded-event-handler-on-svg": "قرار دادن ویژگی‌های مدیریت رویداد <code>$1=\"$2\"</code> در پرونده‌های اس‌وی‌جی مجاز نیست.",
+       "uploaded-href-attribute-svg": "ویژگی‌های href <code>&lt;$1 $2=\"$3\"&gt;</code> با هدف غیر محلی (برای نمونه، http://, javascript:, etc) در پرونده‌های اس‌وی‌جی مجاز نیست.",
        "uploadscriptednamespace": "این پوشه اس‌وی‌جی شامل فضای نام غیرقانونی '$1' است",
        "uploadinvalidxml": "XML در پروندهٔ بارگذاری‌شده نمی‌تواند تجزیه شود.",
        "uploadvirus": "این پرونده ویروس دارد!\nجزئیات : $1",
        "uploadstash-nofiles": "شما هیچ پروندهٔ انبارشده‌ای ندارید.",
        "uploadstash-badtoken": "انجام این اقدام ناموفق بود، احتمالاً به این دلیل که اعتبار ویرایش شما به اتمام رسیده است. دوباره امتحان کنید.",
        "uploadstash-errclear": "پاک‌کردن پرونده‌ها ناموفق بود.",
-       "uploadstash-refresh": "تازهکردن فهرست پرونده‌ها",
+       "uploadstash-refresh": "تازه کردن فهرست پرونده‌ها",
        "invalid-chunk-offset": "جابجایی نامعتبر قطعه",
        "img-auth-accessdenied": "منع دسترسی",
        "img-auth-nopathinfo": "PATH_INFO موجود نیست.\nسرور شما برای ردکردن این مقدار تنظیم نشده‌است.\nممکن است مبتنی بر سی‌جی‌آی باشد و از img_auth پشتیبانی نکند.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization را ببینید.",
        "nmembers": "$1 {{PLURAL:$1|عضو|عضو}}",
        "nmemberschanged": "$1 → $2   {{PLURAL:$2| عضو|عضو}}",
        "nrevisions": "$1 {{PLURAL:$1|نسخه|نسخه}}",
-       "nviews": "$1 {{PLURAL:$1|بازدید|بازدید}}",
        "nimagelinks": "مورد استفاده در $1 {{PLURAL:$1|صفحه|صفحه}}",
        "ntransclusions": "در $1 {{PLURAL:$1|صفحه|صفحه}} استفاده شده‌است",
        "specialpage-empty": "نتیجه‌ای برای این گزارش وجود ندارد.",
        "ip_range_toolarge": "قطع دسترسی بازه‌های بزرگتر از /$1 مجاز نیست.",
        "proxyblocker": "مسدود کننده پروکسی",
        "proxyblockreason": "نشانی آی‌پی شما بسته شده است چون متعلق به یک پروکسی باز است.\nلطفاً با ارائه دهندهً خدمات اینترنت خود یا پشتیبانی فنی تماس بگیرید و آنها را از این مشکل امنیتی جدی آگاه کنید.",
-       "sorbsreason": "نشانی آی‌پی شما توسط DNSBL مورد استفاده {{SITENAME}} به عنوان یک پروکسی باز گزارش شدهاست.",
+       "sorbsreason": "نشانی آی‌پی شما توسط DNSBL مورد استفاده {{SITENAME}} به عنوان یک پروکسی باز گزارش شده است.",
        "sorbs_create_account_reason": "نشانی آی‌پی شما توسط DNSBL مورد استفاده {{SITENAME}} به عنوان یک پروکسی باز گزارش شده‌است.\nشما اجازهٔ ساختن حساب کاربری ندارید.",
        "xffblockreason": "نشانی آی‌پی در X-Forwarded-For header موجود است و پروکسی شما یا سروری که از آن استفاده می‌کنید بسته‌شده‌است. دلیل بسته‌شدن: $1",
        "cant-see-hidden-user": "کاربری که می‌خواهید ببندید قبلاً بسته شده و پنهان گردیده است. چون شما دسترسی پنهان کردن کاربران را ندارید، نمی‌توانید قطع دسترسی کاربر را ببینید یا ویرایش کنید.",
        "confirmemail_subject": "تأیید آدرس ایمیل {{SITENAME}}",
        "confirmemail_body": "یک نفر، احتمالاً خود شما، از نشانی آی‌پی $1 حساب کاربری‌ای با نام «$2» و این آدرس ایمیل در {{SITENAME}} ایجاد کرده است.\n\nبرای تأیید این که این حساب واقعاً متعلق به شماست و نیز برای فعال سازی قابلیت ایمیل {{SITENAME}} پیوند زیر را در مرورگر اینترنت خود باز کنید:\n\n$3\n\nاگر شما این حساب کاربری را ثبت *نکرده‌اید*، لطفاً پیوند زیر را\nباز کنید تا تأیید آدرس ایمیل لغو شود:\n\n$5\n\nاین کدِ تأیید در تاریخ $4 منقضی خواهد شد.",
        "confirmemail_body_changed": "یک نفر، احتمالاً خود شما، از نشانی آی‌پی $1 آدرس ایمیل حساب «$2» در {{SITENAME}} را تغییر داده است.\n\nبرای تأیید این که این حساب واقعاً به شما تعلق دارد و فعال کردن دوبارهٔ قابلیت ایمیل در {{SITENAME}}، پیوند زیر را در مرورگرتان باز کنید:\n\n$3\n\nاگر این حساب متعلق به شما نیست، پیوند زیر را باز کنید تا تغییر آدرس ایمیل لغو شود:\n\n$5\n\nاین تأییدیه در $4 منقضی می‌گردد.",
-       "confirmemail_body_set": "یک نفر، احتمالاً خود شما، از نشانی آی‌پی $1,\nآدرس ایمیل حساب «$2» در {{SITENAME}} را به این آدرس تغییر دادهاست.\n\nبرای تأیید این که این حساب واقعاً به شما تعلق دارد و فعال کردن دوبارهٔ قابلیت ایمیل در {{SITENAME}}، پیوند زیر را در مرورگرتان باز کنید:\n\n$3\n\nاگر این حساب متعلق به شما نیست، پیوند زیر را باز تا تغییر آدرس ایمیل، لغو شود:\n\n$5\n\nاین تأییدیه در $4 منقضی می‌گردد.",
+       "confirmemail_body_set": "یک نفر، احتمالاً خود شما، از نشانی آی‌پی $1,\nآدرس ایمیل حساب «$2» در {{SITENAME}} را به این آدرس تغییر داده است.\n\nبرای تأیید این که این حساب واقعاً به شما تعلق دارد و فعال کردن دوبارهٔ قابلیت ایمیل در {{SITENAME}}، پیوند زیر را در مرورگرتان باز کنید:\n\n$3\n\nاگر این حساب متعلق به شما نیست، پیوند زیر را باز تا تغییر آدرس ایمیل، لغو شود:\n\n$5\n\nاین تأییدیه در $4 منقضی می‌گردد.",
        "confirmemail_invalidated": "تأیید آدرس ایمیل لغو شد",
        "invalidateemail": "لغو تأیید آدرس ایمیل",
        "scarytranscludedisabled": "[تراگنجانش بین‌ویکیانه فعال نیست]",
        "version-libraries": "کتابخانهٔ نصب شده",
        "version-libraries-library": "کتابخانه",
        "version-libraries-version": "نسخه",
+       "version-libraries-license": "اجازه‌نامه",
+       "version-libraries-description": "توضیحات",
+       "version-libraries-authors": "نویسندگان",
        "redirect": "تغییرمسیر توسط پرونده، کاربر، صفحه یا شناسهٔ نسخه",
        "redirect-legend": "تغییرمسیر به یک پرونده یا صفحه",
        "redirect-summary": "این صفحهٔ ویژه به پرونده (نام پرونده داده‌شده)، صفحه (شماره شناسهٔ صفحه یا شماره نسخهٔ داده‌شده) یا صفحهٔ کاربری (شناسهٔ عددی کاربری داده‌شده) تغییرمسیر می‌یابد. طرز استفاده: [[{{#Special:Redirect}}/file/Example.jpg]]، \n[[{{#Special:Redirect}}/page/64308]]، [[{{#Special:Redirect}}/revision/328429]] یا [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "خمر",
        "special-characters-title-endash": "خط فاصله",
        "special-characters-title-emdash": "خط فاسله کشیده",
-       "special-characters-title-minus": "علامت منفی"
+       "special-characters-title-minus": "علامت منفی",
+       "mw-widgets-titleinput-description-new-page": "این صفحه هنوز وجود ندارد",
+       "mw-widgets-titleinput-description-redirect": "تغییر مسیر به $1"
 }
index dc89a92..7bb3bf5 100644 (file)
        "passwordreset": "Salasanan uudistus",
        "passwordreset-text-one": "Täytä tämä lomake uudistaaksesi salasanasi.",
        "passwordreset-text-many": "{{PLURAL:$1|Täytä yksi kentistä, jotta saat väliaikaisen salasanan sähköpostitse.}}",
-       "passwordreset-legend": "Salasanan uudistus",
        "passwordreset-disabled": "Salasanojen uudistaminen ei ole mahdollista tässä wikissä.",
        "passwordreset-emaildisabled": "Sähköpostitoiminnot on poistettu käytöstä tässä wikissä.",
        "passwordreset-username": "Käyttäjätunnus:",
        "resettokens": "Uudista avaimet",
        "resettokens-text": "Tällä sivulla voit uudistaa avaimesi (''eng.'' reset tokens), jotka mahdollistavat pääsyn käyttäjätunnukseesi liittyviin tiettyihin yksityisiin tietoihin.\n\nSinun pitäisi tehdä tämä, jos olet vahingossa jakanut avaimet jonkun kanssa tai jos käyttäjätunnuksesi on vaarannettu.",
        "resettokens-no-tokens": "Avaimia ei ole uudistettavaksi.",
-       "resettokens-legend": "Uudista avaimet",
        "resettokens-tokens": "Avaimet:",
        "resettokens-token-label": "$1 (nykyinen arvo: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|Tarkkailulistan]] verkkosyötteen (Atom tai RSS) avain",
        "yourdiff": "Eroavaisuudet",
        "copyrightwarning": "'''Muutoksesi astuvat voimaan välittömästi.''' Kaikki {{GRAMMAR:illative|{{SITENAME}}}} tehtävät tuotokset katsotaan julkaistuksi $2 -lisenssin mukaisesti ($1). Jos et halua, että kirjoitustasi muokataan armottomasti ja uudelleenkäytetään vapaasti, älä tallenna kirjoitustasi. Tallentamalla muutoksesi lupaat, että kirjoitit tekstisi itse, tai kopioit sen jostain vapaasta lähteestä. '''ÄLÄ KÄYTÄ TEKIJÄNOIKEUDEN ALAISTA MATERIAALIA ILMAN LUPAA!'''",
        "copyrightwarning2": "Huomaa, että kuka tahansa voi muokata, muuttaa ja poistaa kaikkia sivustolle tekemiäsi lisäyksiä ja muutoksia. Muokkaamalla sivustoa luovutat sivuston käyttäjille tämän oikeuden ja takaat, että lisäämäsi aineisto on joko itse kirjoittamaasi tai peräisin jostain vapaasta lähteestä. Lisätietoja sivulla $1. '''TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!'''",
+       "editpage-cannot-use-custom-model": "Tämän sivun sisältömallia (content model) ei voida muuttaa.",
        "longpageerror": "'''Virhe: Lähettämäsi tekstin pituus on {{PLURAL:$1|kilotavu|$1 kilotavua}}. Tekstiä ei voida tallentaa, koska se on pitempi kuin sallittu enimmäispituus {{PLURAL:$2|yksi kilotavu|$2 kilotavua}}.'''",
        "readonlywarning": "'''Varoitus: Tietokanta on lukittu huoltoa varten, joten et pysty tallentamaan muokkauksiasi juuri nyt.'''\nSaattaa olla paras leikata ja liimata tekstisi omaan tekstitiedostoosi ja tallentaa se tänne myöhemmin.\n\nLukitsemisen syy: $1",
        "protectedpagewarning": "'''Varoitus: Tämä sivu on suojattu niin, että vain ylläpitäjät voivat muokata sitä.'''\nAlla on viimeisin lokitapahtuma:",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "ajatusviiva",
        "special-characters-title-emdash": "pitkä ajatusviiva",
-       "special-characters-title-minus": "miinusmerkki"
+       "special-characters-title-minus": "miinusmerkki",
+       "mw-widgets-titleinput-description-new-page": "sivua ei ole olemassa vielä",
+       "mw-widgets-titleinput-description-redirect": "ohjaus kohteeseen $1"
 }
index 36284b7..521de9d 100644 (file)
        "invalidtitle-unknownnamespace": "Titre invalide avec le numéro d'espace de noms $1 et l'intitulé « $2 » inconnus",
        "exception-nologin": "Non connecté",
        "exception-nologin-text": "Veuillez vous connecter pour pouvoir accéder à cette page ou cette action.",
-       "exception-nologin-text-manual": "Veuillez $1 pour pouvoir accéder à cette page ou cette action.",
+       "exception-nologin-text-manual": "Veuillez vous $1 pour pouvoir accéder à cette page ou cette action.",
        "virus-badscanner": "Mauvaise configuration : scanneur de virus inconnu : ''$1''",
        "virus-scanfailed": "Échec de la recherche (code $1)",
        "virus-unknownscanner": "antivirus inconnu :",
        "passwordreset": "Remise à zéro du mot de passe",
        "passwordreset-text-one": "Remplissez ce formulaire pour réinitialiser votre mot de passe.",
        "passwordreset-text-many": "{{PLURAL:$1|Remplissez un des champs pour recevoir un mot de passe temporaire par courriel.}}",
-       "passwordreset-legend": "Remise à zéro du mot de passe",
        "passwordreset-disabled": "La réinitialisation des mots de passe a été désactivée sur ce wiki.",
        "passwordreset-emaildisabled": "Les fonctionnalités e-mail ont été désactivées sur ce wiki.",
        "passwordreset-username": "Nom d'utilisateur :",
        "resettokens": "Réinitialiser les jetons",
        "resettokens-text": "Ici, vous pouvez réinitialiser les jetons qui permettent d’accéder à certaines données privées associées à votre compte.\n\nVous devriez le faire si vous les avez partagés accidentellement avec quelqu'un ou si votre compte a été compromis.",
        "resettokens-no-tokens": "Il n’y a aucun jeton à réinitialiser.",
-       "resettokens-legend": "Réinitialiser les jetons",
        "resettokens-tokens": "Jetons :",
        "resettokens-token-label": "$1 (valeur actuelle : $2)",
        "resettokens-watchlist-token": "Jeton pour le flux (Atom/RSS) web de [[Special:Watchlist|modifications de pages de votre liste de suivi]]",
        "blockedtext": "'''Votre compte utilisateur ou votre adresse IP a été bloqué.'''\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : ''$2''.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7.\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.\nVous ne pouvez utiliser la fonction « {{MediaWiki:emailpage}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
        "autoblockedtext": "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.\nLa raison invoquée est :\n\n:''$2''\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7\n\nVous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.\n\nNotez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
        "blockednoreason": "aucune raison donnée",
-       "whitelistedittext": "Vous devez être $1 pour avoir la permission de modifier le contenu.",
+       "whitelistedittext": "Vous devez vous $1 pour avoir la permission de modifier le contenu.",
        "confirmedittext": "Vous devez confirmer votre adresse de courriel avant de modifier les pages.\nVeuillez entrer et valider votre adresse de courriel dans vos [[Special:Preferences|préférences]].",
        "nosuchsectiontitle": "Impossible de trouver la section",
        "nosuchsectiontext": "Vous avez essayé de modifier une section qui n'existe pas.\nElle a peut-être été déplacée ou supprimée depuis que vous avez lu cette page.",
        "reuploaddesc": "Annuler et retourner au formulaire d'import",
        "upload-tryagain": "Envoyer la description du fichier modifiée",
        "uploadnologin": "Non connecté",
-       "uploadnologintext": "Vous devez $1 pour importer des fichiers.",
+       "uploadnologintext": "Vous devez vous $1 pour importer des fichiers.",
        "upload_directory_missing": "Le répertoire d’import de fichier ($1) est introuvable et n’a pas pu être créé par le serveur web.",
        "upload_directory_read_only": "Le répertoire d’import de fichier ($1) n’est pas accessible en écriture depuis le serveur web.",
        "uploaderror": "Erreur lors de l’import",
        "tooltip-pt-logout": "Se déconnecter",
        "tooltip-pt-createaccount": "Il vous est conseillé de créer un compte et de vous connecter ; cependant, ce n’est pas obligatoire",
        "tooltip-ca-talk": "Discussion au sujet de cette page de contenu",
-       "tooltip-ca-edit": "Vous pouvez modifier cette page.\nVeuillez utiliser le bouton de prévisualisation avant d'enregistrer.",
+       "tooltip-ca-edit": "Modifier le wikicode",
        "tooltip-ca-addsection": "Commencer une nouvelle section",
        "tooltip-ca-viewsource": "Cette page est protégée.\nVous pouvez toutefois en visualiser la source.",
        "tooltip-ca-history": "Les versions passées de cette page (avec leurs contributeurs)",
        "version-libraries": "Bibliothèques installées",
        "version-libraries-library": "Bibliothèque",
        "version-libraries-version": "Version",
+       "version-libraries-license": "Licence",
+       "version-libraries-description": "Description",
+       "version-libraries-authors": "Auteurs",
        "redirect": "Redirigé par fichier, utilisateur, page ou ID de révision",
        "redirect-legend": "Rediriger vers une page ou un fichier",
        "redirect-summary": "Cette page spéciale redirige vers un fichier (nom de fichier fourni), une page (ID de révision ou de page fourni) ou une page d’utilisateur (identifiant numérique de l’utilisateur fourni). Utilisation : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], ou [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "khmer",
        "special-characters-title-endash": "tiret demi-cadratin",
        "special-characters-title-emdash": "tiret cadratin",
-       "special-characters-title-minus": "signe moins"
+       "special-characters-title-minus": "signe moins",
+       "mw-widgets-titleinput-description-new-page": "la page n’existe pas encore",
+       "mw-widgets-titleinput-description-redirect": "redirection vers $1"
 }
index c1ce466..fb786c6 100644 (file)
        "passwordreset": "Restablecer o contrasinal",
        "passwordreset-text-one": "Encha este formulario para restablecer o seu contrasinal.",
        "passwordreset-text-many": "{{PLURAL:$1|Encha un dos campos para recibir por correo electrónico un contrasinal temporal.}}",
-       "passwordreset-legend": "Restablecer o contrasinal",
        "passwordreset-disabled": "O restablecemento de contrasinais está desactivado neste wiki.",
        "passwordreset-emaildisabled": "As funcións do correo electrónico están desactivadas neste wiki.",
        "passwordreset-username": "Nome de usuario:",
        "resettokens": "Restablecer os pases",
        "resettokens-text": "Aquí pode restablecer os pases que permiten acceder a certos datos privados asociados á súa conta.\n\nDebería facelo se os compartiu accidentalmente con alguén ou se a súa conta foi comprometida.",
        "resettokens-no-tokens": "Non hai ningún pase que restablecer.",
-       "resettokens-legend": "Restablecer os pases",
        "resettokens-tokens": "Pases:",
        "resettokens-token-label": "$1 (valor actual: $2)",
        "resettokens-watchlist-token": "Pase para a fonte de novas (Atom/RSS) web dos [[Special:Watchlist|cambios feitos nas páxinas da súa lista de vixilancia]]",
        "yourdiff": "Diferenzas",
        "copyrightwarning": "Por favor, teña en conta que todas as contribucións a {{SITENAME}} considéranse publicadas baixo a $2 (vexa $1 para máis detalles). Se non quere que o que escriba se edite sen piedade e se redistribúa sen límites, entón non o envíe aquí.<br />\nAo mesmo tempo, prométanos que o que escribiu é da súa autoría ou que está copiado dun recurso do dominio público ou que permite unha liberdade semellante.\n'''NON ENVÍE MATERIAL CON DEREITOS DE AUTOR SEN PERMISO!'''",
        "copyrightwarning2": "Por favor, decátese de que todas as súas contribucións a {{SITENAME}} poden ser editadas, alteradas ou eliminadas por outras persoas. Se non quere que os seus escritos sexan editados sen piedade, non os publique aquí.<br />\nDo mesmo xeito, comprométese a que o que vostede escriba sexa da súa autoría ou copiado dunha fonte de dominio público ou recurso público semellante (vexa $1 para detalles).\n'''NON ENVÍE SEN PERMISO TRABALLOS CON DEREITOS DE COPIA!'''",
+       "editpage-cannot-use-custom-model": "O modelo de contido desta páxina non se pode modificar.",
        "longpageerror": "'''Erro: O texto que pretende gardar ocupa {{PLURAL:$1|$1 kilobyte|$1 kilobytes}}, e existe un límite dun máximo de {{PLURAL:$2|$2 kilobyte|$2 kilobytes}}.'''\nPolo tanto, non se pode gardar.",
        "readonlywarning": "'''Atención: A base de datos foi pechada para facer mantemento, polo que non vai poder gardar as súas edicións polo de agora.'''\nSe cadra, pode cortar e pegar o texto nun ficheiro de texto e gardalo para despois.\n\nO administrador que a pechou deu esta explicación: $1",
        "protectedpagewarning": "'''Aviso: Esta páxina foi protexida de xeito que só os usuarios con privilexios de administrador a poidan editar.'''\nVelaquí está a última entrada no rexistro, por se quere consultala:",
        "special-characters-group-khmer": "Camboxano",
        "special-characters-title-endash": "guión",
        "special-characters-title-emdash": "raia",
-       "special-characters-title-minus": "signo menos"
+       "special-characters-title-minus": "signo menos",
+       "mw-widgets-titleinput-description-new-page": "a páxina aínda non existe",
+       "mw-widgets-titleinput-description-redirect": "redirección cara a $1"
 }
index 905bd95..037c026 100644 (file)
        "passwordreset": "ગુપ્ત સંજ્ઞા ફરી ગોઠવો",
        "passwordreset-text-one": "તમારો પાસવર્ડ બદલવા માટે આ ફોર્મ પૂરુ કરો.",
        "passwordreset-text-many": "{{PLURAL:$1|ઇમેલ વડે કામચલાઉ પાસવર્ડ મેળવવા માટે કોઈ એક ખાનું ભરો.}}",
-       "passwordreset-legend": "ગુપ્ત સંજ્ઞા ફરી ગોઠવો",
        "passwordreset-disabled": "આ વિકી પર ગુપ્ત સંજ્ઞા ફરી ગોઠવવા પર પ્રતિબંધ છે.",
        "passwordreset-emaildisabled": "આ વિકિ પર ઇમેઇલ સગવડ બંધ છે.",
        "passwordreset-username": "સભ્ય નામ:",
        "changeemail-submit": "ઈમેલ બદલો",
        "resettokens": "નિશાનીઓ ફરી ગોઠવો",
        "resettokens-no-tokens": "અહીં ફરી ગોઠવવા માટેનાં કોઇ ટોકન નથી",
-       "resettokens-legend": "નિશાનીઓ ફરી ગોઠવો",
        "resettokens-tokens": "નિશાનીઓ:",
        "resettokens-token-label": "$1 (હાલની કિંમત: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|તમારી ધ્યાનસૂચિના પાનામાં ફેરફાર ]]ની વેબ ફીડ (Atom/RSS) નિશાની",
        "special-characters-group-devanagari": "દેવનાગરી",
        "special-characters-group-thai": "થાઈ",
        "special-characters-group-lao": "લાઓ",
-       "special-characters-group-khmer": "ખ્મેર"
+       "special-characters-group-khmer": "ખ્મેર",
+       "mw-widgets-titleinput-description-new-page": "પાનું અસ્તિત્વ ધરાવતું નથી."
 }
index 9e33fee..38861a8 100644 (file)
@@ -5,7 +5,8 @@
                        "Kaganer",
                        "MacTire02",
                        "Shimmin Beg",
-                       "아라"
+                       "아라",
+                       "Xð"
                ]
        },
        "tog-underline": "Cur linnaghyn fo chianglaghyn:",
        "march-date": "$1 Mayrnt",
        "april-date": "$1 Averil",
        "may-date": "$1 Boaldyn",
-       "june-date": "1 Mean Souree",
+       "june-date": "$1 Mean Souree",
        "july-date": "$1 Jerrey Souree",
        "august-date": "$1 Luanistyn",
        "september-date": "$1 Mean Fouyir",
index 3abdeea..b72021c 100644 (file)
        "passwordreset": "איפוס סיסמה",
        "passwordreset-text-one": "מלאו טופס זה כדי לקבל סיסמה זמנית בדוא\"ל.",
        "passwordreset-text-many": "{{PLURAL:$1||מלאו אחד מהשדות הבאים כדי לקבל סיסמה זמנית בדוא\"ל.}}",
-       "passwordreset-legend": "איפוס סיסמה",
        "passwordreset-disabled": "איפוסי סיסמה בוטלו באתר ויקי זה.",
        "passwordreset-emaildisabled": "שירותי הדוא\"ל בוטלו באתר ויקי זה.",
        "passwordreset-username": "שם משתמש:",
        "resettokens": "איפוס אסימונים",
        "resettokens-text": "בעמוד זה ניתן לאפס אסימונים שמאפשרים גישה לנתונים פרטיים של החשבון שלך.\n\nרצוי לעשות זאת אם שיתפת אותם בטעות עם אחרים או אם חשבונך נפרץ.",
        "resettokens-no-tokens": "אין אסימונים לאיפוס.",
-       "resettokens-legend": "איפוס אסימונים",
        "resettokens-tokens": "אסימונים:",
        "resettokens-token-label": "$1 (ערך נוכחי: $2)",
        "resettokens-watchlist-token": "אסימון להזנת הרשת (Atom/RSS) של [[Special:Watchlist|שינויים של דפים ברשימת המעקב]]",
        "version-libraries": "ספריות מותקנות",
        "version-libraries-library": "ספריה",
        "version-libraries-version": "גרסה",
+       "version-libraries-license": "רישיון",
+       "version-libraries-description": "תיאור",
+       "version-libraries-authors": "יוצרים",
        "redirect": "הפניה לפי שם קובץ, מספר משתמש, מספר דף או מספר גרסה",
        "redirect-legend": "הפניה לקובץ או לדף",
        "redirect-summary": "דף מיוחד זה מפנה לקובץ (בהינתן שם הקובץ), לדף (בהינתן מספר גרסה או מספר דף), או לדף משתמש (בהינתן מספר משתמש). דוגמאות לשימוש: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], או [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "קמרית",
        "special-characters-title-endash": "קו מפריד",
        "special-characters-title-emdash": "קו מפריד ארוך",
-       "special-characters-title-minus": "מינוס"
+       "special-characters-title-minus": "מינוס",
+       "mw-widgets-titleinput-description-new-page": "הדף עדיין לא קיים",
+       "mw-widgets-titleinput-description-redirect": "הפניה ל{{GRAMMAR:תחילית|$1}}"
 }
index b3ee9c3..427ef41 100644 (file)
        "passwordreset": "कूटशब्द रीसेट",
        "passwordreset-text-one": "अपना कूटशब्द रीसेट करने के लिए यह फ़ॉर्म भरें।",
        "passwordreset-text-many": "{{PLURAL:$1|ईमेल के माध्यम से एक अस्थायी पासवर्ड प्राप्त करने के लिए कोई एक डिब्बा भरें।}}",
-       "passwordreset-legend": "कूटशब्द रीसेट करें",
        "passwordreset-disabled": "कूटशब्द रीसेट करना इस विकी पर अक्षम है।",
        "passwordreset-emaildisabled": "इस विकि पर ई-मेल सुविधा अक्षम कर दी गयी है।",
        "passwordreset-username": "सदस्यनाम:",
        "resettokens": "टोकन रीसेट करें",
        "resettokens-text": "जो टोकन आपके खाते से सम्बद्ध कुछ विशिष्ट व्यक्तिगत जानकारी प्रदान करते हैं, आप उन्हें यहाँ रीसेट कर सकते हैं।\n\nयदि आपने उन्हें गलती से किसी को दिखा दिया है या फिर आपका खाता हैक हो गया है तो आपको इन्हें रीसेट कर देना चाहिए।",
        "resettokens-no-tokens": "रीसेट करने के लिए कोई टोकन नहीं हैं।",
-       "resettokens-legend": "टोकन रीसेट करें",
        "resettokens-tokens": "टोकन:",
        "resettokens-token-label": "$1 (वर्तमान मूल्य: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|आपकी ध्यानसूची के पृष्ठों में बदलावों]] की वेब फ़ीड (Atom/RSS) हेतु टोकन",
        "special-characters-group-khmer": "खमेर",
        "special-characters-title-endash": "एन डैश",
        "special-characters-title-emdash": "एम डैश",
-       "special-characters-title-minus": "ऋण चिह्न"
+       "special-characters-title-minus": "ऋण चिह्न",
+       "mw-widgets-titleinput-description-new-page": "पृष्ठ अभी मौजूद नहीं है",
+       "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित"
 }
index de47187..ddb95b4 100644 (file)
        "resetpass-wrong-oldpass": "Sala nga temporaryo ukon subong nga pasword.\nMahimo nga madinalag-on mo nga nga gin-ilisan ang imo pasword ukon nagpangabay ka na sang bag-o nga temporaryo nga pasword.",
        "resetpass-temp-password": "Temporaryo nga pasword:",
        "passwordreset": "Liwaton ang pasword",
-       "passwordreset-legend": "Liwaton ang pasword",
        "passwordreset-disabled": "Ang mga pagliwat sang pasword gin-untat sa sini nga wiki.",
        "passwordreset-username": "Ngalan sang Manog-gamit\"",
        "passwordreset-domain": "Domeyn:",
index 6e74325..fbee975 100644 (file)
        "moredotdotdot": "Više...",
        "morenotlisted": "Ovaj popis nije potpun.",
        "mypage": "Stranica",
-       "mytalk": "Moj razgovor",
+       "mytalk": "Razgovor",
        "anontalk": "Razgovor za ovu IP adresu",
        "navigation": "Orijentacija",
        "and": "&#32;i",
        "pt-login": "Prijavi se",
        "pt-login-button": "Prijavi se",
        "pt-createaccount": "Otvori novi suradnički račun",
-       "pt-userlogout": "odjavi se",
+       "pt-userlogout": "Odjavi se",
        "php-mail-error-unknown": "Nepoznata pogrješka u funkciji PHP-poruke()",
        "user-mail-no-addy": "Pokušaj slanja e-maila bez e-mail adrese.",
        "user-mail-no-body": "Pokušali ste poslati e-mail bez sadržaja ili s prekratkim sadržajem.",
        "passwordreset": "Ponovno postavi lozinku",
        "passwordreset-text-one": "Ispunite ovaj obrazac ako želite ponovno postaviti Vašu zaporku.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja da biste dobili privremenu zaporku e-poštom.}}",
-       "passwordreset-legend": "Poništi zaporku",
        "passwordreset-disabled": "Poništavanje lozinke je onemogućeno na ovom wikiju.",
        "passwordreset-emaildisabled": "Funkcija e-pošte je onemogućena na ovom wikiju.",
        "passwordreset-username": "Suradničko ime:",
        "searchdisabled": "<p>Oprostite! Pretraga po cjelokupnoj bazi je zbog bržeg rada projekta {{SITENAME}} trenutačno onemogućena. Možete se poslužiti tražilicom Google.</p>",
        "search-error": "Greška prilikom pretrage: $1",
        "preferences": "Postavke",
-       "mypreferences": "Moje postavke",
+       "mypreferences": "Postavke",
        "prefs-edits": "Broj uređivanja:",
        "prefsnologintext2": "Molimo Vas prijavite se da biste promijenili postavke.",
        "prefs-skin": "Izgled",
        "usermessage-summary": "Ostavljanje poruke sustava.",
        "usermessage-editor": "Uređivač sistemskih poruka",
        "watchlist": "Moj popis praćenja",
-       "mywatchlist": "Moj popis praćenja",
+       "mywatchlist": "Popis praćenja",
        "watchlistfor2": "Za $1 $2",
        "nowatchlist": "Na Vašem popisu praćenja nema nijednog članka.",
        "watchlistanontext": "Molimo Vas prijavite se kako biste mogli vidjeti ili uređivati Vaš popis praćenih stranica.",
        "blanknamespace": "(Glavni)",
        "contributions": "Doprinosi {{GENDER:$1|suradnika|suradnice}}",
        "contributions-title": "Suradnički doprinosi za $1",
-       "mycontris": "Moji doprinosi",
+       "mycontris": "Doprinosi",
        "contribsub2": "Za {{GENDER:$3|$1}} ($2)",
        "contributions-userdoesnotexist": "Suradnički račun \"$1\" nije registriran.",
        "nocontribs": "Nema promjena koje udovoljavaju ovim kriterijima.",
        "special-characters-group-gujarati": "Gudžaratski znakovi",
        "special-characters-group-thai": "Tajlandski (tajski) znakovi",
        "special-characters-group-lao": "Laoski znakovi",
-       "special-characters-group-khmer": "kmerski"
+       "special-characters-group-khmer": "kmerski",
+       "mw-widgets-titleinput-description-redirect": "preusmjeravanje na $1"
 }
index 301fa9c..64acf51 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Paul Beppler"
+                       "Paul Beppler",
+                       "Midnight Gambler"
                ]
        },
        "tog-underline": "Links (Verbinnunge) unnerstreiche:",
@@ -28,7 +29,7 @@
        "tog-shownumberswatching": "Oonzoohl der beobachtende Benutzer oonzeiche",
        "tog-oldsig": "Voarhandne Signatuar:",
        "tog-fancysig": "Signatuar als Wikitext behandle (ohne automatische Verlinkung)",
-       "tog-uselivepreview": "Voarschau sofort oonzeiche (experimentell)",
+       "tog-uselivepreview": "Voarschau sofort oonzeiche",
        "tog-forceeditsummary": "Warne, soweit beim Speichre die Zusammerfassung fehlt",
        "tog-watchlisthideown": "Eigne Beoorbeitunge in der Beobachtungslist ausblenne",
        "tog-watchlisthidebots": "Beoorbeitunge doorrich Bots in der Beobachtungslist ausblenne",
        "otherlanguages": "In annre Sproche",
        "redirectedfrom": "(Weitergeleitet von $1)",
        "redirectpagesub": "Weiterleitung",
+       "redirectto": "Weiterleitunge noh:",
        "lastmodifiedat": "Die Seit woor zuletzt am $1 um $2 Uhr geännert.",
        "viewcount": "Die Seit woard bisher {{PLURAL:$1|einmal|$1 mal}} abgeruff.",
        "protectedpage": "Geschützte Seit",
        "disclaimers": "Impressum",
        "disclaimerpage": "Project:Impressum",
        "edithelp": "Beoorbeitungshellef",
+       "helppage-top-gethelp": "Hellef",
        "mainpage": "Hauptseit",
        "mainpage-description": "Hauptseit",
        "policy-url": "Project:Richtlinie",
        "hidetoc": "Verberriche",
        "collapsible-collapse": "Inklappe",
        "collapsible-expand": "Ausklappe",
+       "confirmable-yes": "Jo",
+       "confirmable-no": "Nee",
        "thisisdeleted": "$1 oonsiehn orrer wiederherstelle?",
        "viewdeleted": "$1 oonzeiche?",
        "restorelink": "$1 {{PLURAL:$1|gelöschte Version|gelöschte Versione}}",
        "passwordreset": "Passwort zurücksetze",
        "passwordreset-text-one": "Füll das Formular aus, um den Passwort zurückzusetze.",
        "passwordreset-text-many": "{{PLURAL:$1|Füll en von der Felder aus, um en temporäres Passwort por E-Mail zugesandt zu bekomme.}}",
-       "passwordreset-legend": "Passwort zurücksetze",
        "passwordreset-disabled": "Das Zurücksetze von Passwörter woard in dem Wiki deaktiviert.",
        "passwordreset-emaildisabled": "Die E-Mail-Funktione worre uff dem Wiki deaktiviert.",
        "passwordreset-username": "Benutzernoome:",
        "resettokens": "Tokens zurücksetze",
        "resettokens-text": "Du kannst Tokens zurücksetze, wo dir den Zugriff uff bestimmte private Date ermöchliche, wo mit deinem Benutzerkonto hier verknüpft sind.\n\nDu sollst das nuar mache, wenn du verguckt die Tokens versiehntlich mit jemandem geteilt host orrer dein Konto gefährdet ist.",
        "resettokens-no-tokens": "Do gebts ken Tokens zum Zurücksetze.",
-       "resettokens-legend": "Tokens zurücksetze",
        "resettokens-tokens": "Tokens:",
        "resettokens-token-label": "$1 (aktueller Weart: $2)",
        "resettokens-watchlist-token": "Token für den Webfeed (Atom/RSS) von der [[Special:Watchlist|Ännrunge an Seite uff deiner Beobachtungslist]]",
        "currentrev": "Aktuelle Version",
        "currentrev-asof": "Aktuelle Version vom $2, $3 Uhr",
        "revisionasof": "Version vom $2, $3 Uhr",
-       "revision-info": "Version vom $4, $5 Uhr von $2",
+       "revision-info": "Version vom $4, $5 Uhr von {{GENDER:$6|$2}}$7",
        "previousrevision": "← Nächstältre Version",
        "nextrevision": "Nächstjüngre Version →",
        "currentrevisionlink": "Aktuelle Version",
        "notextmatches": "Ken Üwereinstimmunge mit Inhalte",
        "prevn": "{{PLURAL:$1|voarhericher|vorheriche $1}}",
        "nextn": "{{PLURAL:$1|nächster|nächste $1}}",
+       "prev-page": "vorrich Seit",
+       "next-page": "nächste Seit",
        "prevn-title": "{{PLURAL:$1|Voarheriches Ergebnis|Vorherige $1 Ergebnisse}}",
        "nextn-title": "{{PLURAL:$1|Voarheriches Ergebnis|Vorherige $1 Ergebnisse}}",
        "shown-title": "Zeiche $1 {{PLURAL:$1|Ergebnis|Ergebnisse}} pro Seit",
        "search-result-category-size": "{{PLURAL:$1|1 Seit|$1 Seite}} ({{PLURAL:$2|1 Unnerkategorie|$2 Unnerkategorie}}, {{PLURAL:$3|1 Datei|$3 Dateie}})",
        "search-redirect": "(Weiterleitung von „$1“)",
        "search-section": "(Abschnitt $1)",
+       "search-category": "(Kategorie $1)",
        "search-file-match": "(treffende Dateiinhalte)",
        "search-suggest": "Host du gemeent „$1“?",
        "search-interwiki-caption": "Schwesterprojekte",
        "randomincategory": "Zufälliche Seit von en Kategorie",
        "randomincategory-invalidcategory": "\"$1\" ist ken gülticher Kategorieenoome.",
        "randomincategory-nopages": "Es gebt kene Seite in [[:Category:$1]].",
+       "randomincategory-category": "Kategorie:",
        "randomredirect": "Zufällich Weiterleitung",
        "randomredirect-nopages": "Im Noomeraum „$1“ sind ken Weiterleitunge voarhand.",
        "statistics": "Statistik",
        "nmembers": "{{PLURAL:$1|1 Eintrooch|$1 Einträche}}",
        "nmemberschanged": "$1 → {{PLURAL:$2|En Mitglied|$2 Mitglieder}}",
        "nrevisions": "{{PLURAL:$1|1 Beoorbeitung|$1 Beoorbeitunge}}",
-       "nviews": "{{PLURAL:$1|1 Abfroch|$1 Abfroche}}",
        "nimagelinks": "Verwendt uff {{PLURAL:$1|en Seit|$1 Seite}}",
        "ntransclusions": "Verwendt uff {{PLURAL:$1|en Seit|$1 Seite}}",
        "specialpage-empty": "Do sind aktuell ken zutreffende Einträche voarhand.",
        "querypage-disabled": "Die Spezialseit woard aus Gründe von der Leistungserhaltung deaktiviert.",
        "booksources": "ISBN-Suche",
        "booksources-search-legend": "Such noh Bezugsquelle für Bücher",
+       "booksources-search": "Suche",
        "booksources-text": "Dies ist en List mit Links zu Internetseite, wo neie und gebrauchte Bücher verkoofe. Dort kann das ooch weitre Informationen üwer die Bücher gebe. {{SITENAME}} ist mit kenem von der Oonbieter geschäftlich verbünd.",
        "booksources-invalid-isbn": "Vermutlich ist die ISBN ungültich.\nBittschön prüf, ob die korrekt von der Quell üwertroohr woard.",
        "specialloguserlabel": "Ausführender Benutzer:",
        "delete-warning-toobig": "Die Seit hot mit meahr wie $1 {{PLURAL:$1|Version|Versione}} en seahr lange Versionsgeschicht. Das Abwische kann zu Störunge im Datebankbetrieb führe.",
        "deleting-backlinks-warning": "'''Warnung:''' Es verweise noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|annre Seite]] uff die zu abwischende Seit orrer die Seit ist noch in en anner Platz ingebund.",
        "rollback": "Zurücksetze von der Ännrunge",
-       "rollback_short": "Zurücksetze",
        "rollbacklink": "Zurücksetze",
        "rollbacklinkcount": "{{PLURAL:$1|En Version|$1 Versione}} zurücksetze",
        "rollbacklinkcount-morethan": "Meahr wie {{PLURAL:$1|en Version|$1 Versione}} zurücksetze",
        "import": "Seite importiere",
        "importinterwiki": "Transwiki-Import",
        "import-interwiki-text": "Wähl en Wiki und en Seit für se importiere.\nDie Versionsdate und Benutzernoome bleibe dabei erhalt.\nAll Transwiki-Import-Aktione werre im [[Special:Log/import|Import-Logbuch]] protokolliert.",
+       "import-interwiki-sourcewiki": "Quellwiki:",
        "import-interwiki-history": "Alle Versione von der Seit importiere",
        "import-interwiki-templates": "Alle Vorlooche einschliesse",
        "import-interwiki-submit": "Importiere",
-       "import-interwiki-namespace": "Zielnoomeraum:",
-       "import-interwiki-rootpage": "Zielstammseit (optional):",
        "import-upload-filename": "Dateinoome:",
        "import-comment": "Grund:",
        "importtext": "Bittschön die Datei üwer die Spezialseit [[Special:Export|Exportfunktion]] aus dem Quellwiki exportiere.\nDie uff dem lokale Rechner (Komputadoar) speichre und donoh hier hochloode.",
        "import-rootpage-nosubpage": "Im Noomeraum \"$1\" von der Stammseit sind ken Unnerseite erlaubt.",
        "importlogpage": "Import-Logbuch",
        "importlogpagetext": "Administrativer Import von Seite mit Versionsgeschicht von annre Wikis.",
-       "import-logentry-upload": "importierte \"[[$1]]\" von en Datei",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|Version|Versione}}",
-       "import-logentry-interwiki": "importierte \"$1\" (Transwiki)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versione}} von $2",
        "javascripttest": "JavaScript-Test",
-       "javascripttest-title": "$1-Tests werre doorrichgeführt",
        "javascripttest-pagetext-noframework": "Die Seit ist JavaSkript-Tests voarbehalt.",
        "javascripttest-pagetext-unknownframework": "Unbekanntes Framework \"$1\".",
        "javascripttest-pagetext-frameworks": "Bittschön wähl en von der follichende Prüfumgebunge aus: $1",
        "javascripttest-pagetext-skins": "Wähl en Benutzeroberfläch zur Doorrichführung von der Test aus:",
        "javascripttest-qunit-intro": "Sieh die [$1 Dokumentation zu Tests] uff mediawiki.org",
-       "javascripttest-qunit-heading": "MediaWiki-JavaSkript-QUnit-Tester",
        "tooltip-pt-userpage": "Dein Benutzerseit",
        "tooltip-pt-anonuserpage": "Benutzerseit von der IP-Adress von der aus du Ännrunge doorrichführst",
        "tooltip-pt-mytalk": "Dein Diskussionsseit",
        "watchlisttools-edit": "normal beoorbeite",
        "watchlisttools-raw": "im Listeformat beoorbeite (Import/Export)",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Diskussion]])",
-       "unknown_extension_tag": "Unbekanntes Parser-Tag \"$1\"",
        "duplicate-defaultsort": "Achtung: Der Sortierungsschlüssel „$2“ üwerschreibt den voarher verwenndte Schlüssel „$1“.",
        "version": "Version",
        "version-extensions": "Installierte Erweitrunge",
        "version-entrypoints": "URLs von der Einstiechspunkt",
        "version-entrypoints-header-entrypoint": "Einstiechspunkt",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "Bibliothek",
+       "version-libraries-version": "Version",
+       "version-libraries-license": "Lizenz",
+       "version-libraries-description": "Beschreibung",
+       "version-libraries-authors": "Autore",
        "redirect": "Weiterleitung uff Benutzerseit, Seit, Seiteversion orrer Datei",
        "redirect-legend": "Weiterleitung uff en Benutzerseit, Seit, Seiteversion orrer Datei",
        "redirect-summary": "Die Spezialseit leitet uff en Benutzerseit (numerische Benutzerkennung oongeb), Seit (Seitekennung oongeb), Seiteversion (Versionskennung oongeb) orrer Datei (Dateinoome oongeb) weiter. Benutzung: [[{{#Special:Redirect}}/user/101]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] orrer [[{{#Special:Redirect}}/file/Example.jpg]].",
        "tags-description-header": "Vollständiche Beschreibung",
        "tags-active-header": "Aktiv?",
        "tags-hitcount-header": "Markierte Ännrunge",
+       "tags-actions-header": "Aktione",
        "tags-active-yes": "J",
        "tags-active-no": "Ne, nein",
        "tags-edit": "Beoorbeite",
        "tags-hitcount": "$1 {{PLURAL:$1|Ändrung|Ändrunge}}",
+       "tags-create-reason": "Grund:",
+       "tags-create-submit": "Erstelle",
+       "tags-delete-reason": "Grund:",
+       "tags-activate-reason": "Grund:",
+       "tags-deactivate-reason": "Grund:",
+       "tags-edit-reason": "Grund:",
        "comparepages": "Seite vergleiche",
        "compare-page1": "Seit 1",
        "compare-page2": "Seit 2",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|ännerte}} die Gruppezugehörigkeit für $3",
        "logentry-rights-autopromote": "$1 woard automatisch von $4 zu $5 {{GENDER:$2|zugeordnet}}",
        "rightsnone": "(ken)",
+       "feedback-adding": "Rückmeldung weard zur Seit hinzugefücht …",
+       "feedback-back": "Zurück",
+       "feedback-bugcheck": "Super! Bittschön üwerprüf noch, ob das sich hierbei net um en schon [$1 bekannte Fehler] handelt.",
+       "feedback-bugnew": "Ich honn das üwerprüft. Den neie Fehler melde.",
        "feedback-bugornote": "Soweit du ganz detalhiert en technisches Problem beschreiben möchst, meld bittschön [$1 en Fehler].\nAnnerfalls kannst du ooch das do unne stehende ganz enfache Formular benutze. Dein Kommentar weard, zusammer mit deinem Benutzernoome und der Version von der von dir verwenndt Webbrowsers sowie Betriebssystems, uff der Seit \"[$3 $2]\" hinzugefücht.",
-       "feedback-subject": "Betreff:",
-       "feedback-message": "Nachricht:",
        "feedback-cancel": "Abbreche",
-       "feedback-submit": "Rückmeldung schicke",
-       "feedback-adding": "Rückmeldung weard zur Seit hinzugefücht …",
+       "feedback-close": "Erledicht (fertich)",
+       "feedback-error-title": "Fehler",
        "feedback-error1": "Fehler: Unbekanntes Ergebnis von der API",
        "feedback-error2": "Fehler: Beoorbeitung gescheitert",
        "feedback-error3": "Fehler: Ken Antwort von der API",
+       "feedback-message": "Nachricht:",
+       "feedback-subject": "Betreff:",
+       "feedback-submit": "Rückmeldung schicke",
        "feedback-thanks": "Dankschön. Dein Rückmeldung woard uff der Seit \"[$2 $1]\" gespeichert.",
-       "feedback-close": "Erledicht (fertich)",
-       "feedback-bugcheck": "Super! Bittschön üwerprüf noch, ob das sich hierbei net um en schon [$1 bekannte Fehler] handelt.",
-       "feedback-bugnew": "Ich honn das üwerprüft. Den neie Fehler melde.",
        "searchsuggest-search": "Such",
        "searchsuggest-containing": "wo enthält …",
        "api-error-badaccess-groups": "Du host net die Berechtichung Dateie in des Wiki hochzuloode.",
        "expand_templates_remove_nowiki": "<nowiki>-Tags in der Ausgäb unnerdrücke",
        "expand_templates_generate_xml": "XML-Parser-Boom zeiche",
        "expand_templates_generate_rawhtml": "Rohes HTML oonzeiche",
-       "expand_templates_preview": "Voarschau"
+       "expand_templates_preview": "Voarschau",
+       "pagelang-name": "Seit",
+       "pagelang-language": "Sproch",
+       "mediastatistics-table-mimetype": "MIME-Typ",
+       "mediastatistics-header-unknown": "Unbekannt",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Videos",
+       "mediastatistics-header-office": "Office",
+       "special-characters-title-endash": "en dash",
+       "special-characters-title-emdash": "em dash"
 }
index c31a97f..01ce80c 100644 (file)
        "passwordreset": "Jelszó törlése",
        "passwordreset-text-one": "A jelszó átmeneti beállításához töltsd ki az űrlapot.",
        "passwordreset-text-many": "{{PLURAL:$1|Az átmeneti jelszó elküldéséhez töltsd ki az alábbi mezők egyikét.}}",
-       "passwordreset-legend": "Új jelszó kérése",
        "passwordreset-disabled": "Új jelszó kérése nem engedélyezett ezen a wikin.",
        "passwordreset-emaildisabled": "Az e-mail funkció le van tiltva ezen a wikin.",
        "passwordreset-username": "Felhasználónév:",
        "resettokens": "Tokenek törlése",
        "resettokens-text": "Újra generálhatod a tokeneket, amely a fiókodhoz rendelt bizonyos magánadatokhoz enged hozzáférést.\n\nEzt akkor érdemes használnod, hogy véletlenül megosztottad a tokeneket valakivel, vagy ha valaki feltörte a fiókodat.",
        "resettokens-no-tokens": "Nincs újragenerálható token.",
-       "resettokens-legend": "Tokenek újragenerálása",
        "resettokens-tokens": "Tokenek:",
        "resettokens-token-label": "$1 (jelenlegi érték: $2)",
        "resettokens-watchlist-token": "Kulcs egy hírcsatornához (Atom/RSS), ami a [[Special:Watchlist|figyelőlistádon lévő lapok változásaiból]] készül",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "kötőjel",
        "special-characters-title-emdash": "hosszú kötőjel",
-       "special-characters-title-minus": "minusz jel"
+       "special-characters-title-minus": "minusz jel",
+       "mw-widgets-titleinput-description-new-page": "a lap még nem létezik",
+       "mw-widgets-titleinput-description-redirect": "átirányítás ide: $1"
 }
index 8754712..8a542a4 100644 (file)
        "no-null-revision": "Non ha potite crear un nove version vacue del le pagina \"$1\"",
        "badtitle": "Titulo invalide",
        "badtitletext": "Le titulo de pagina requestate es invalide, vacue, o un titulo interlingual o interwiki incorrectemente ligate.\nEs possibile que illo contine un o plure characteres que non pote esser usate in titulos.",
+       "title-invalid-empty": "Le titulo de pagina requestate es vacue o contine solmente le nomine de un spatio de nomines.",
+       "title-invalid-utf8": "Le titulo de pagina requestate contine un sequentia UTF-8 invalide.",
+       "title-invalid-interwiki": "Le titulo de pagina requestate contine un ligamine interwiki que non pote esser usate in titulos.",
+       "title-invalid-talk-namespace": "Le titulo de pagina requestate refere a un pagina de discussion que non pote exister.",
        "perfcached": "Le sequente datos esseva recuperate del cache e possibilemente non es actual. Un maximo de {{PLURAL:$1|un resultato|$1 resultatos}} es disponibile in le cache.",
        "perfcachedts": "Le sequente datos esseva recuperate del cache e ha essite actualisate le $3 a $4. Un maximo de {{PLURAL:$4|un resultato|$4 resultatos}} es disponibile in le cache.",
        "querypage-no-updates": "Le actualisationes pro iste pagina es disactivate. Pro le momento, le datos hic non se cambiara.",
        "passwordreset": "Reinitialisar contrasigno",
        "passwordreset-text-one": "Completa iste formulario pro reinitialisar tu contrasigno.",
        "passwordreset-text-many": "{{PLURAL:$1|Completa un de iste campos pro reciper un contrasigno temporari in e-mail.}}",
-       "passwordreset-legend": "Reinitialisar contrasigno",
        "passwordreset-disabled": "Le reinitialisation de contrasignos ha essite disactivate in iste wiki.",
        "passwordreset-emaildisabled": "Le functionalitate de e-mail ha essite disactivate in iste wiki.",
        "passwordreset-username": "Nomine de usator:",
        "resettokens": "Reinitialisar indicios",
        "resettokens-text": "Hic tu pote reinitialisar le indicios que permitte le accesso a certe datos private associate a tu conto.\n\nTu deberea facer lo si tu los ha accidentalmente dividite con un altere persona o si tu conto ha essite compromittite.",
        "resettokens-no-tokens": "Il non ha indicios a reinitialisar.",
-       "resettokens-legend": "Reinitialisar indicios",
        "resettokens-tokens": "Indicios:",
        "resettokens-token-label": "$1 (valor actual: $2)",
        "resettokens-watchlist-token": "Indicio pro syndication web (Atom/RSS) de [[Special:Watchlist|modificationes a paginas in tu observatorio]]",
        "nmembers": "$1 {{PLURAL:$1|membro|membros}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}",
        "nrevisions": "$1 {{PLURAL:$1|version|versiones}}",
-       "nviews": "$1 {{PLURAL:$1|visita|visitas}}",
        "nimagelinks": "Usate in $1 {{PLURAL:$1|pagina|paginas}}",
        "ntransclusions": "usate in $1 {{PLURAL:$1|pagina|paginas}}",
        "specialpage-empty": "Il non ha resultatos pro iste reporto.",
index d15f6e7..21925ed 100644 (file)
        "passwordreset": "Isaad manen ti kontrasenias",
        "passwordreset-text-one": "Kompletuen daytoy a porma tapno makaawat iti temporario a kontrasenias babaen ti esurat.",
        "passwordreset-text-many": "{{PLURAL:$1|Agpunno ti maysa kadagiti pagikabilan tapno makaawat ti temporario a kontrasenias babaen ti esurat.}}",
-       "passwordreset-legend": "Isaad manen ti kontrasenias",
        "passwordreset-disabled": "Nabaldado dagiti panangisaad manen ti kontrasenias iti daytoy a wiki.",
        "passwordreset-emaildisabled": "Dagiti langa ti esurat ket nabaldado iti daytoy a wiki.",
        "passwordreset-username": "Nagan ti agar-aramat:",
        "resettokens": "Isaad manen dagiti tandaan",
        "resettokens-text": "Mabalinmo nga isaad manen dagiti tandaan a mangpalubos ti panagserrek ti naisangayan a pribado datos a mainaig ti pakabilangam ditoy.\n\nAramidem daytoy no aksidente nga inbingaymo dagitoy iti sabali wenno ti pakabilangam ket nakomprimiso.",
        "resettokens-no-tokens": "Awan dagiti maisaad manen a tandaan.",
-       "resettokens-legend": "Isaad manen dagiti tandaan",
        "resettokens-tokens": "Dagiti tandaan:",
        "resettokens-token-label": "$1 (agdama a pateg: $2)",
        "resettokens-watchlist-token": "Tandaan para iti pakan ti web (Atom/RSS) kadagiti [[Special:Watchlist|panagbalbaliw ti pampanid iti listaan ti bambantayam]]",
        "yourdiff": "Paggigiddiatan",
        "copyrightwarning": "Pangngaasi a laglagipen nga amin a kontribusion iti {{SITENAME}} ket naikeddeng a naipablaak babaen ti babaen ti $2 (kitaen ti $1 para kadagiti salaysay). \nNo dimo kayat a ti sinuratmo ket maurnos nga awanan-asi ken maiwaras nga awan sungsungbatan kenka, saanmon nga ited ditoy.<br />\nIkarkarim pay kadakami a bukodmo a sinurat daytoy, wenno kinopia manipud ti publiko a dominio wenno ti kapadpadana a nawaya a nagtaudan.\n<strong>Saan a mangited ti nakarbengan ti kopia nga obra no awan iti pammalubos!</strong>",
        "copyrightwarning2": "Pangngaasi a laglagipen nga amin a kontribusion iti {{SITENAME}} ket mabalin a maurnos, mabaliwan, wenno ikkaten dagiti sabali a kontributor.\nNo dimo kayat a ti sinuratmo ket maurnos nga awanan-asi ken maiwaras nga awan sungsungbatan kenka, saanmon nga ited ditoy.<br />\nIkarkarim pay kadakami a bukodmo a sinurat daytoy, wenno kinopia manipud ti publiko a dominio wenno ti kapadpadana a nawaya a nagtaudan. (kitaen ti $1 para kadagiti salaysay).\n<strong>Saan a mangited ti nakarbengan ti kopia nga obra no awan iti pammalubos!</strong>",
+       "editpage-cannot-use-custom-model": "Saan a mabaliwan ti modelo ti linaon iti daytoy a panid.",
        "longpageerror": "<strong>Biddut: Ti testo nga intedmo ket {{PLURAL:$1|maysa a kilobyte|$1 kilkilobyte}} ti katiddogna, nga at-atiddog ngem ti kangatuan iti  {{PLURAL:$2|maysa a kilobyte|$2 kilkilobyte}}.</strong>\nSaan a mabalin a maidulin.",
        "readonlywarning": "<strong>Ballaag: Narikepan ti database tapno mataripato, isu a saanmo a mabalin nga idulin dagita inurnosmo tattan.</strong>\nMabalinmo ti agkopia ken agipegket ti testom iti papeles ti testo ken idulinmo daytoy intono madamdama.\n\nTi administrador a nangrikep ket nangited iti daytoy a palawag: $1",
        "protectedpagewarning": "<strong>Ballaag: Daytoy a panid ket nasalakniban tapno dagiti laeng agar-aramat nga addaan iti gundaway nga administrador ti makaurnos ditoy.</strong>\nTi naudi a naikabil iti listaan ket naited dita baba para iti reperensia:",
        "stub-threshold-disabled": "Nabaldado",
        "recentchangesdays": "Al-aldaw nga ipakita iti kaudian a balbaliw:",
        "recentchangesdays-max": "Kapaut nga $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}}",
-       "recentchangescount": "Bilang dagiti inurnos nga ipakita babaen ti kinasigud:",
+       "recentchangescount": "Bilang dagiti inurnos nga ipakita babaen ti kasisigud:",
        "prefs-help-recentchangescount": "Daytoy ket mangiraman iti kaudian a balbaliw, dagiti pakasaritaan ti panid, ken dagiti listaan.",
        "prefs-help-watchlist-token2": "Daytoy ti sekreto a tulbek iti pakan ti web iti listaan ti bambantayam.\nTi sinoman a makaammo daytoy ket mabalinda a basaen ti listaan ti bambantayam, isu a saanmo nga ipabingay.\nNo masapulmo, [[Special:ResetTokens|mabalinmo nga isaad manen]].",
        "savedprefs": "Naidulinen dagiti kakaykayatam.",
        "prefs-files": "Dagiti papeles",
        "prefs-custom-css": "Naiduma a CSS",
        "prefs-custom-js": "Naiduma a JavaScript",
-       "prefs-common-css-js": "Bingay a CSS/JavaScript dagiti amin a kudil:",
+       "prefs-common-css-js": "Bingay a CSS/JavaScript para kadagiti amin a kudil:",
        "prefs-reset-intro": "Mabalinmo nga usaren daytoy a panid tapno maisublim dagita kakaykayatam iti kasisigud iti daytoy a wiki.\nNgem saanto a mabalinen nga ipasubli.",
        "prefs-emailconfirm-label": "Pammasingked ti esurat:",
        "youremail": "Esurat:",
        "booksources-search": "Biruken",
        "booksources-text": "Dita baba ket listaan dagiti silpo ti sabali a sitio nga aglaklako ti baro ken saan a nausar a liblibro, ken mabalin nga addaan pay iti adu a pakaammo a maipanggep kadagiti libro a birbirukem:",
        "booksources-invalid-isbn": "Ti naited nga ISBN ket kasla saan nga umisu; kitaen dagiti biddut ti panagtulad manipud ti kasisigud a taudan.",
-       "specialloguserlabel": "Perpormer:",
+       "specialloguserlabel": "Nangitungpal:",
        "speciallogtitlelabel": "Puntaan (titulo wenno agar-aramat):",
        "log": "Dagiti listaan",
        "all-logs-page": "Amin a listaan a publiko",
        "version-libraries": "Dagiti naisaad a biblioteka",
        "version-libraries-library": "Biblioteka",
        "version-libraries-version": "Bersion",
+       "version-libraries-license": "Lisensia",
+       "version-libraries-description": "Deskripsion",
+       "version-libraries-authors": "Dagiti mannurat",
        "redirect": "Baw-ing babaen ti papeles, agar-aramat, panid wenno ID ti rebision",
        "redirect-legend": "Ibaw-ing iti papeles wenno panid",
        "redirect-summary": "Daytoy nga espesial a panid ket maibaw-ing iti papeles (iti nagan ti papeles), ti panid (iti ID ti rebision wenno ID ti panid), wenno ti panid ti agar-aramat (iti numeriko nga ID ti agar-aramat). Panagusar:\n[[{{#Special:Redirect}}/file/Example.jpg]], \n[[{{#Special:Redirect}}/page/64308]], \n[[{{#Special:Redirect}}/revision/328429]], wenno\n[[{{#Special:Redirect}}/user/101]].",
        "tags-activate-reason": "Rason:",
        "tags-activate-not-found": "Awan ti etiketa ti \"$1\".",
        "tags-deactivate-reason": "Rason:",
+       "tags-apply-not-allowed-one": "Saan a maipalubos a manual a maipakat ti tiketa ti \"$1\".",
+       "tags-apply-not-allowed-multi": "Saan a maipalubos a manual a maipakat {{PLURAL:$2|ti sumaganad nga etiketa|dagiti sumagand nga etiketa}}: $1",
        "tags-update-remove-not-allowed-one": "Ti etiketa ti \"$1\" ket saan a maipalubos a maikkat.",
        "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Ti sumaganad nga etiketa|Dagiti sumaganad nga etiketa}} ket saan a maipalubos a manual a maikkat: $1",
        "tags-edit-title": "Urnosen dagiti etiketa",
        "htmlform-cloner-required": "Saan a basbassit ngem maysa a pateg ti masapul.",
        "sqlite-has-fts": "Ti $1 nga addaan iti suporta ti panagbiruk ti napno a testo",
        "sqlite-no-fts": "Ti $1 nga awan iti suporta ti panagbiruk ti napno a testo",
-       "logentry-delete-delete": "Ni $1 ket {{GENDER:$2|inikkatna}} ti panid ti $3",
+       "logentry-delete-delete": "{{GENDER:$2|Inikkat}} ni $1 ti panid ti $3",
        "logentry-delete-restore": "Ni $1 ket {{GENDER:$2|insublina}} ti panid ti $3",
        "logentry-delete-event": "Ni $1 ket {{GENDER:$2|binaliwanna}} ti panagkita {{PLURAL:$5|iti listaan ti pasamak |dagiti $5 a listaan ti pasamak }} iti $3: $4",
        "logentry-delete-revision": "Ni $1 ket {{GENDER:$2|binaliwanna}} ti panagkita  {{PLURAL:$5|iti panagbaliw |dagiti $5 a panagbaliw}} iti panid $3: $4",
        "revdelete-restricted": "naipakat dagiti panangigawid kadagiti administrador",
        "revdelete-unrestricted": "inikkat dagiti panangigawid para kadagiti administrador",
        "logentry-merge-merge": "Ni $1 ket {{GENDER:$2|intiponna}} ti $3 iti $4 (kadagiti rebision aginggana iti $5)",
-       "logentry-move-move": "Ni $1 ket {{GENDER:$2|inyalisna}} ti panid $3 iti $4",
-       "logentry-move-move-noredirect": "Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 iti $4 a saan a nangibati ti baw-ing",
-       "logentry-move-move_redir": "Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 iti $4 a nagtuon iti baw-ing",
+       "logentry-move-move": "{{GENDER:$2|Inyalis}} ni $1 ti panid ti $3 iti $4",
+       "logentry-move-move-noredirect": "{{GENDER:$2|Inyalis}} ni $1 ti panid ti $3 iti $4 a saan a nangibati ti baw-ing",
+       "logentry-move-move_redir": "{{GENDER:$2|Inyalis}} ni $1 ti panid ti $3 iti $4 a nagtuon iti baw-ing",
        "logentry-move-move_redir-noredirect": "Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 iti $4 a nagtuon iti baw-ing a saan a nangibati ti baw-ing",
        "logentry-patrol-patrol": "Ni $1 ket {{GENDER:$2|minarkaanna}} ti rebision ti $4 iti panid ti $3 a napatruliaan",
-       "logentry-patrol-patrol-auto": "Ni $1 ket automatiko a {{GENDER:$2|minarkaanna}} ti rebision ti $4 iti panid ti $3 a napatruliaan",
+       "logentry-patrol-patrol-auto": "Automatiko a {{GENDER:$2|minarkaan}} ni $1 ti rebision ti $4 iti panid ti $3 a napatruliaan",
        "logentry-newusers-newusers": "Ti pakabilangan idi ni $1 ket {{GENDER:$2|napartuat}}",
-       "logentry-newusers-create": "Ti pakabilangan idi ni $1 ket {{GENDER:$2|napartuat}}",
+       "logentry-newusers-create": "{{GENDER:$2|Napartuat}} ti pakabilangan ni agar-aramat $1",
        "logentry-newusers-create2": "Ti pakabilangan ti agar-aramat $3 ket {{GENDER:$2|napartuat}} idi babaen ni $1",
        "logentry-newusers-byemail": "Ti pakabilangan a $3 ket {{GENDER:$2|pinartuat}} idi babaen ni $1 ken ti kontrasenias ket naipatulod idi babaen ti esurat",
-       "logentry-newusers-autocreate": "Ti pakabilangan ti agar-aramat ni $1 ket automatiko a {{GENDER:$2|napartuat}}",
+       "logentry-newusers-autocreate": "Automatiko a {{GENDER:$2|napartuat}} ti pakabilangan ni agar-aramat $1",
        "logentry-rights-rights": "Ni $1 ket {{GENDER:$2|binaliwanna}} ti grupo a pannakaikameng para kenni $3 manipud ti $4 iti $5",
        "logentry-rights-rights-legacy": "Ni $1 ket {{GENDER:$2|binaliwanna}} ti grupo a pannakaikameng para kenni $3",
        "logentry-rights-autopromote": "Ni $1 ket automatiko idi a {{GENDER:$2|naipangato}} manipud ti $4 iti $5",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "en dash",
        "special-characters-title-emdash": "em dash",
-       "special-characters-title-minus": "senial a panagkissay"
+       "special-characters-title-minus": "senial a panagkissay",
+       "mw-widgets-titleinput-description-new-page": "awan pay ti panid",
+       "mw-widgets-titleinput-description-redirect": "ibaw-ing iti $1"
 }
index 12e502c..b9dbc03 100644 (file)
        "resetpass-abort-generic": "Breytingum á lykilorðum hefur verið hætt með viðbót.",
        "passwordreset": "Endurstilla lykilorð",
        "passwordreset-text-one": "Útfylltu þetta eyðublað til þess að endursetja lykilorðið.",
-       "passwordreset-legend": "Endurstilla lykilorð",
        "passwordreset-disabled": "Lokað hefur verið fyrir að endurstilla lykilorð á þessum wiki.",
        "passwordreset-emaildisabled": "Tölvupósteiginleikar hafa verið gerðir óvirkir á þessum wiki.",
        "passwordreset-username": "Notandanafn:",
        "resettokens": "Endurstilla lykla",
        "resettokens-text": "Hér getur þú endurstillt lykla sem veita þér aðgang að ákveðnum persónuupplýsingum um aðganginn þinn.\n\nÞú átt að gera það ef þú ert búin(n) að deila þeim með einhverjum öðrum óviljandi eða ef búið er að brjóta inn í aðganginn þinn.",
        "resettokens-no-tokens": "Það eru engir lyklar að endurstilla.",
-       "resettokens-legend": "Endurstilla lykla",
        "resettokens-tokens": "Lyklar:",
        "resettokens-token-label": "$1 (núverandi gildi: $2)",
        "resettokens-done": "Lyklarnir hafa verið endurstilltir.",
        "special-characters-group-sinhala": "Sinhalskt",
        "special-characters-group-devanagari": "Devanagari",
        "special-characters-group-thai": "Taílenskt",
-       "special-characters-group-lao": "Laoskt"
+       "special-characters-group-lao": "Laoskt",
+       "mw-widgets-titleinput-description-new-page": "síðan er ekki enn til",
+       "mw-widgets-titleinput-description-redirect": "tilvísun á $1"
 }
index 7668098..89cd04c 100644 (file)
        "passwordreset": "Reimposta password",
        "passwordreset-text-one": "Compila questo modulo per reimpostare la tua password.",
        "passwordreset-text-many": "{{PLURAL:$1|Compila uno dei campi per ricevere una password temporanea tramite email.}}",
-       "passwordreset-legend": "Reimposta password",
        "passwordreset-disabled": "La reimpostazione delle password è stata disabilitata su questa wiki",
        "passwordreset-emaildisabled": "Le funzionalità di posta elettronica sono state disabilitate su questa wiki.",
        "passwordreset-username": "Nome utente:",
        "resettokens": "Reimposta token",
        "resettokens-text": "Qui puoi reimpostare le chiavi che permettono l'accesso a determinati dati privati associati alla tua utenza.\n\nDovresti farlo se le hai accidentalmente condivise con qualcuno o se la tua utenza è stato compromessa.",
        "resettokens-no-tokens": "Non ci sono token da reimpostare.",
-       "resettokens-legend": "Reimposta token",
        "resettokens-tokens": "Token:",
        "resettokens-token-label": "$1 (valore attuale: $2)",
        "resettokens-watchlist-token": "Token per il feed web (Atom/RSS) delle [[Special:Watchlist|modifiche alle pagine nei tuoi osservati speciali]]",
        "yourdiff": "Differenze",
        "copyrightwarning": "Per favore tieni presente che tutti i contributi a {{SITENAME}} si considerano pubblicati nei termini d'uso della licenza $2 (vedi $1 per maggiori dettagli).\nSe non desideri che i tuoi testi possano essere modificati e ridistribuiti da chiunque senza alcuna limitazione, non inviarli qui.<br />\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera.\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''",
        "copyrightwarning2": "Per favore tieni presente che tutti i contributi a {{SITENAME}} possono essere modificati, stravolti o cancellati da altri contributori.\nSe non vuoi che i tuoi testi possano essere alterati, allora non inserirli.<br />\nInviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scritto da te personalmente oppure è stato copiato da una fonte di pubblico dominio o similarmente libera (vedi $1 per maggiori dettagli).\n'''Non inviare materiale protetto da copyright senza autorizzazione!'''",
+       "editpage-cannot-use-custom-model": "Il modello del contenuto di questa pagina non può essere modificato.",
        "longpageerror": "'''Errore: il testo inviato è lungo {{PLURAL:$1|1|$1}} kilobyte, che è maggiore della dimensione massima consentita ({{PLURAL:$2|1|$2}} kilobyte).'''\nIl testo non può essere salvato.",
        "readonlywarning": "<strong>ATTENZIONE</strong>: il database è bloccato per manutenzione, non è momentaneamente possibile salvare le modifiche effettuate.\nPer non perderle, copiale in un file di testo e salvalo in attesa dello sblocco del database.\n\nL'amministratore che impostato il blocco ha fornito questa spiegazione: $1.",
        "protectedpagewarning": "'''Attenzione: questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano modificarla.'''\nL'ultimo elemento del registro è riportato di seguito per informazione:",
        "unusedimages": "File non utilizzati",
        "wantedcategories": "Categorie richieste",
        "wantedpages": "Pagine più richieste",
-       "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedere [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedi [[{{#special:BrokenRedirects}}|l'elenco dei reindirizzamenti errati]].",
        "wantedpages-badtitle": "Titolo non valido nel gruppo di risultati: $1",
        "wantedfiles": "File richiesti",
        "wantedfiletext-cat": "I seguenti file sono utilizzati, ma non esistono. I file ospitati su repository esterni potrebbero essere elencati anche se di fatto esistenti. Questi falsi positivi saranno <del>barrati</del>. Le pagine che incorporano i file che non esistono sono elencate in [[:$1]].",
        "version-libraries": "Librerie installate",
        "version-libraries-library": "Libreria",
        "version-libraries-version": "Versione",
+       "version-libraries-license": "Licenza",
+       "version-libraries-description": "Descrizione",
+       "version-libraries-authors": "Autori",
        "redirect": "Reindirizzamento da file, utente, pagina o versione",
        "redirect-legend": "Reindirizza a un file o una pagina",
        "redirect-summary": "Questa pagina speciale reindirizza a un file (specificando il nome del file), a una pagina (specificando un ID di versione o un ID pagina) o a un utente (specificando un ID utente numerico).\nEsempi: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], or [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "lineetta enne",
        "special-characters-title-emdash": "lineetta emme",
-       "special-characters-title-minus": "segno meno"
+       "special-characters-title-minus": "segno meno",
+       "mw-widgets-titleinput-description-new-page": "questa pagina non esiste ancora",
+       "mw-widgets-titleinput-description-redirect": "reindirizzamento a $1"
 }
index b6d4dba..d347c63 100644 (file)
        "passwordreset": "パスワードの再設定",
        "passwordreset-text-one": "仮パスワードをメールで受け取るにはこのフォームに記入してください。",
        "passwordreset-text-many": "{{PLURAL:$1|仮パスワードをメールで受け取るにはいずれかの欄に記入してください。}}",
-       "passwordreset-legend": "パスワードの再設定",
        "passwordreset-disabled": "パスワードの再設定は、このウィキでは無効になっています。",
        "passwordreset-emaildisabled": "メール機能は、このウィキでは無効化されています。",
        "passwordreset-username": "利用者名:",
        "resettokens": "トークンの再設定",
        "resettokens-text": "ここでは、アカウントに関連付けられた特定の非公開データにアクセスするためのトークンを再設定できます。\n\nトークンを誤って他人に教えてしまった場合やあなたのアカウントが侵害された場合は、必ず再設定してください。",
        "resettokens-no-tokens": "再設定できるトークンはありません。",
-       "resettokens-legend": "トークンの再設定",
        "resettokens-tokens": "トークン:",
        "resettokens-token-label": "$1 (現在の値: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|あなたのウォッチリストに登録されているページの変更]]を列挙するフィード (Atom/RSS) のトークン",
        "tags-edit-existing-tags": "既存のタグ:",
        "tags-edit-existing-tags-none": "(なし)",
        "tags-edit-new-tags": "新しいタグ:",
+       "tags-edit-add": "これらのタグを追加:",
+       "tags-edit-remove": "これらのタグを除去:",
        "tags-edit-remove-all-tags": "(すべてのタグを除去)",
+       "tags-edit-chosen-placeholder": "いくつかのタグを選択",
        "tags-edit-chosen-no-results": "一致するタグが見つかりません",
        "tags-edit-reason": "理由:",
+       "tags-edit-revision-submit": "変更を {{PLURAL:$1|this revision|$1 revisions}} に適用",
+       "tags-edit-logentry-submit": "変更を {{PLURAL:$1|this log entry|$1 log entries}} に適用",
        "tags-edit-success": "変更が正常に適用されました。",
        "tags-edit-failure": "変更は適用できませんでした: $1",
        "tags-edit-nooldid-title": "無効な対象版",
        "log-name-pagelang": "言語変更記録",
        "log-description-pagelang": "これはページ言語の変更の記録です。",
        "logentry-pagelang-pagelang": "$1 がページ $3 の言語を $4 から $5 に{{GENDER:$2|変更しました}}",
-       "default-skin-not-found": "おっと! あなたのウィキの既定の外装「<code>$1</code>」 (<code>$wgDefaultSkin</code>)は利用できません。\n\nあなたのインストールには以下の外装が含まれています。外装の有効化と既定の選択については、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル: 外装設定] をご覧ください。\n\n$2\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。\n:* [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これにはいくつかの外装と拡張機能が含まれています。 <code>skins/</code> ディレクトリからコピー&ペーストできます。\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。\n\n; MediaWiki をアップグレードした場合:\n: MediaWiki 1.24 以降のバージョンでは、インストール済みの外装は自動的には有効になりません。 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery マニュアル:外装の自動探索] をご覧ください)。<code>LocalSettings.php</code> に以下の行をペーストして、現在インストールされている外装を有効にできます。\n\n<pre>$3</pre>\n\n; <code>LocalSettings.php</code>を編集したばかりの場合:\n: 外装名に打ち間違いがないか再度確認してください。",
-       "default-skin-not-found-no-skins": "おっと! あなたのウィキの既定の外装「<code>$1</code>」 (<code>$wgDefaultSkin</code>)は利用できません。\n\n外装をインストールしていません。\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。\n:* [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これには外装と拡張機能がいくつか含まれています。 <code>skins/</code> ディレクトリからコピー&ペーストできます。\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。外装の有効化と既定の選択についての情報は、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル:外装設定] をご覧ください。",
+       "default-skin-not-found": "おっと! あなたのウィキの既定の外装 <code>$1</code> として定義されている <code>$wgDefaultSkin</code> は利用できません。\n\nあなたのインストールには以下の{{PLURAL:$4|skin|外装}}が含まれています。{{PLURAL:$4|it|外装の有効化と既定の選択}}については、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル: 外装設定] をご覧ください。\n\n$2\n\n; MediaWikiをインストールしたばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。\n:* [https://www.mediawiki.org/wiki/Download tarball installer] をダウンロードしてみてください。これにはいくつかの外装と拡張機能が含まれています。 <code>skins/</code> ディレクトリからコピー&ペーストできます。\n:* Downloading individual skin tarballs from [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。\n\n; MediaWiki をアップグレードした場合:\n: MediaWiki 1.24 以降のバージョンでは、インストール済みの外装は自動的には有効になりません。 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery マニュアル:外装の自動探索] をご覧ください)。<code>LocalSettings.php</code> に以下の{{PLURAL:$5|line|行}}をペーストして、現在インストールされている{{PLURAL:$5|skin|外装}}を有効にできます。\n\n<pre dir=\"ltr\">$3</pre>\n\n; <code>LocalSettings.php</code>を編集したばかりの場合:\n: 外装名に打ち間違いがないか再度確認してください。",
+       "default-skin-not-found-no-skins": "おっと! <code>$1</code>で定義されている、あなたのウィキの既定の外装 (<code>$wgDefaultSkin</code>)は利用できません。\n\n外装をインストールしていません。\n\n; MediaWikiをインストールしたばかりか更新したばかりの場合:\n: gitからインストールしたか、その他の何らかの方法でソースコードから直接インストールした場合には、これは期待されたとおりの動作です。MediaWikiの1.24およびそれ以降は、メインのリポジトリ内には任意の外装が含まれていません。[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] から外装をインストールしてみてください。, by:\n:* 個々の外装 tarballs を[https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org] ダウンロードすること。\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins Using Git to download skins].\n: あなたがMediaWiki開発者の場合、これを行うことであなたのgitリポジトリに干渉することはありません。外装の有効化と既定の選択についての情報は、[https://www.mediawiki.org/wiki/Manual:Skin_configuration マニュアル:外装設定] をご覧ください。",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (有効)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''無効''')",
        "mediastatistics": "メディア統計",
        "special-characters-group-khmer": "クメール文字",
        "special-characters-title-endash": "en ダッシュ",
        "special-characters-title-emdash": "em ダッシュ",
-       "special-characters-title-minus": "マイナス記号"
+       "special-characters-title-minus": "マイナス記号",
+       "mw-widgets-titleinput-description-new-page": "ページは存在しません",
+       "mw-widgets-titleinput-description-redirect": "$1 へのリダイレクト"
 }
index 98a43a2..b376f83 100644 (file)
        "special-characters-group-khmer": "ქჰმერული",
        "special-characters-title-endash": "ტირე",
        "special-characters-title-emdash": "გრძელი ტირე",
-       "special-characters-title-minus": "მინუსის ნიშანი"
+       "special-characters-title-minus": "მინუსის ნიშანი",
+       "mw-widgets-titleinput-description-new-page": "გვერდი ჯერ არ არსებობს",
+       "mw-widgets-titleinput-description-redirect": "გადამისამართება $1-ზე"
 }
index a02df75..5b18c9b 100644 (file)
        "passwordreset": "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ",
        "passwordreset-text-one": "បំពេញសំណុំបែបបទនេះដើម្បីស្ដារពាក្យសម្ងាត់របស់អ្នក។",
        "passwordreset-text-many": "{{PLURAL:$1|សូមបំពេញក្នុងប្រអប់មួយក្នុងចំណោមប្រអប់ខាងក្រោមដើម្បីទទួលពាក្យសម្ងាត់បណ្ដោះអាសន្នមួយតាមរយៈអ៊ីមែល។}}",
-       "passwordreset-legend": "កំណត់​ពាក្យសម្ងាត់​ឡើងវិញ",
        "passwordreset-disabled": "មុខងារប្ដូរទៅពាក្យសម្ងាត់ដើមត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។",
        "passwordreset-emaildisabled": "មុខងារអ៊ីមែលត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។",
        "passwordreset-username": "អត្តនាម៖",
index 31a11c0..0ca234d 100644 (file)
@@ -22,7 +22,8 @@
                        "The Evil IP address",
                        "VASANTH S.N.",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Pavanaja"
                ]
        },
        "tog-underline": "ಕೊಂಡಿಗಳ ಕೆಳಗೆ ಗೆರೆ ತೋರಿಸಿ",
        "pool-servererror": "ಪೂಲ್ ಕೌಂಟರ್ ಸೇವೆಯು ಲಭ್ಯವಿಲ್ಲ ($1).",
        "poolcounter-usage-error": "ಬಳಕೆಯ ದೋಷ: $1",
        "aboutsite": "ಕನ್ನಡ {{SITENAME}} ಬಗ್ಗೆ",
-       "aboutpage": "Project:ನಮà³\8dಮ à²¬à²\97à³\8dà²\97à³\86",
+       "aboutpage": "Project:ಬಗ್ಗೆ",
        "copyright": "ವಿಶೇಷವಾಗಿ ಹೇಳಲಲ್ಲಿದರೆ ಇದು \"$1\" ಕಾಪಿರೈಟ್ ಅಲ್ಲಿ ಲಭ್ಯ ಉಂಟು",
        "copyrightpage": "{{ns:project}}:ಕೃತಿಸ್ವಾಮ್ಯತೆಗಳು",
        "currentevents": "ಪ್ರಚಲಿತ ಸಂಗತಿಗಳು",
        "policy-url": "Project:ನಿಯಮಾವಳಿಗಳು",
        "portal": "ಸಮುದಾಯ ಪುಟ",
        "portal-url": "Project:ಸಮುದಾಯ ಪುಟ",
-       "privacy": "à²\96ಾಸà²\97ಿ à²®à²¾à²¹à²¿à²¤à²¿à²¯ à²¬à²\97à³\8dà²\97à³\86 à²¨à²¿à²²à³\81ವà³\81",
-       "privacypage": "Project:à²\96ಾಸà²\97ಿಮಾಹಿತಿ à²¨à²¿à²¯à²®",
+       "privacy": "à²\97à³\8cಪà³\8dಯತà³\86ಯ à²\95ಾರà³\8dಯನà³\80ತಿ",
+       "privacypage": "Project:à²\97à³\8cಪà³\8dಯತà³\86ಯ à²\95ಾರà³\8dಯನà³\80ತಿ",
        "badaccess": "ಅನುಮತಿ ದೋಷ",
        "badaccess-group0": "ನೀವು ಕೋರಿರುವ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಲು ನಿಮಗೆ ಅನುಮತಿ ಇಲ್ಲ.",
        "badaccess-groups": "ನೀವು ಕೋರಿರುವ ಕ್ರಿಯೆಯು ಕೇವಲ ಈ {{PLURAL:$2|ಗುಂಪಿಗೆ|ಗುಂಪುಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ}} ಸೇರಿರುವ ಬಳಕೆದಾರರಿಗೆ ಸೀಮಿತವಾಗಿದೆ: $1.",
        "mailerror": "ಅಂಚೆ ಕಳುಹಿಸುವಲ್ಲಿ ದೋಷ: $1",
        "acct_creation_throttle_hit": "ಕ್ಷಮಿಸಿ, ನೀವಾಗಲೇ{{PLURAL:$1|೧ ಖಾತೆಯನ್ನು|$1 ಖಾತೆಗಳನ್ನು}} ತೆರೆದಿದ್ದೀರಿ.\nಇನ್ನು ಹೆಚ್ಚಿನ ಖಾತೆಗಳನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.",
        "emailauthenticated": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವು ದಿನಾಂಕ $2 ಸಮಯ $3 ಅಂದು ಧೃಡೀಕೃತವಾಗಿದೆ.",
-       "emailnotauthenticated": "ನಿಮà³\8dಮ à²\87-à²\85à²\82à²\9aà³\86 à²µà²¿à²³à²¾à²¸ à²\87ನà³\8dನà³\82 à²§à³\83ಡà³\80à²\95à³\83ತವಾà²\97ಿಲà³\8dಲ.\nà²\88 à²\95à³\86ಳà²\97ಿನ à²µà³\88ಶಿಷà³\8dà²\9fತೆಗಳಿಗೆ ಇ-ಅಂಚೆಯನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲು ಆಗುವುದಿಲ್ಲ.",
+       "emailnotauthenticated": "ನಿಮà³\8dಮ à²\87-à²\85à²\82à²\9aà³\86 à²µà²¿à²³à²¾à²¸ à²\87ನà³\8dನà³\82 à²§à³\83ಡà³\80à²\95à³\83ತವಾà²\97ಿಲà³\8dಲ.\nà²\88 à²\95à³\86ಳà²\97ಿನ à²\86ಯà³\8dà²\95ೆಗಳಿಗೆ ಇ-ಅಂಚೆಯನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲು ಆಗುವುದಿಲ್ಲ.",
        "noemailprefs": "ಈ ಸೌಲಭ್ಯಗಳು ಕೆಲಸ ಮಾಡಬೇಕಾದರೆ ಒಂದು ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ.",
        "emailconfirmlink": "ನಿಮ್ಮ ಇ-ಅಂಚೆ ವಿಳಾಸವನ್ನು ಧೃಡೀಕರಿಸಿ",
        "invalidemailaddress": "ಈ ಇ-ಅಂಚೆ ವಿಳಾಸವು ಸರಿಯಾದ ಪ್ರಕಾರದಲ್ಲಿ ಇಲ್ಲದಿರುವುದರಿಂದ ಇದನ್ನು ಸ್ವೀಕಾರ ಮಾಡಲಾಗುವುದಿಲ್ಲ.\nದಯವಿಟ್ಟು ಸರಿಯಾದ ಪ್ರಕಾರದ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ ಅಥವ ಆ ಚೌಕವನ್ನು ಖಾಲಿ ಬಿಡಿ.",
        "resetpass-recycled": "ದಯವಿಟ್ಟು ಈಗಿನ ಪ್ರವೇಶಪದದ ಬದಲು ಹೊಸಪ್ರವೇಶಪದ ಬದಲಾಯಿಸಿ ಮರುಚಾಲನೆ ನೀಡಿ.",
        "resetpass-temp-password": "ತಾತ್ಕಾಲಿಕ ಪ್ರವೇಶಪದ:",
        "passwordreset": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿ.",
-       "passwordreset-legend": "ಪ್ರವೇಶಪದವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಿ.",
        "passwordreset-username": "ಬಳಕೆದಾರ ಹೆಸರು:",
        "passwordreset-domain": "ಕ್ಷೇತ್ರ:",
        "passwordreset-email": "ಇ-ಮೇಲ್ ವಿಳಾಸ:",
        "searchmenu-exists": "'''\"[[:$1]]\" ಹೆಸರಿನ ಪುಟ ಈ ವಿಕಿಯಲ್ಲಿದೆ.'''",
        "searchmenu-new": "'''''[[:$1]]'' ಪುಟವನ್ನು ಈ ವಿಕಿಯಲ್ಲಿ ಸೃಷ್ಟಿಸಿ!'''",
        "searchprofile-articles": "ಲೇಖನ ಪುಟ",
-       "searchprofile-images": "ಬಹà³\81ಮಾಧà³\8dಯಮ",
+       "searchprofile-images": "ಮಲà³\8dà²\9fಿಮà³\80ಡಿಯ",
        "searchprofile-everything": "ಪ್ರತಿಯೊಂದು",
        "searchprofile-advanced": "ಪರಿಣತ",
        "searchprofile-articles-tooltip": "$1 ನಲ್ಲಿ ಹುಡುಕಿ",
        "listfiles-latestversion": "ಪ್ರಸಕ್ತ ಆವೃತ್ತಿ",
        "listfiles-latestversion-yes": "ಹೌದು",
        "listfiles-latestversion-no": "ಇಲ್ಲ",
-       "file-anchor-link": "à²\9aಿತà³\8dರ",
+       "file-anchor-link": "à²\95ಡತ",
        "filehist": "ಕಡತದ ಇತಿಹಾಸ",
        "filehist-help": "ದಿನ/ಕಾಲ ಒತ್ತಿದರೆ ಆ ಸಮಯದಲ್ಲಿ ಈ ಕಡತದ ವಸ್ತುಸ್ಥಿತಿ ತೋರುತ್ತದೆ.",
        "filehist-deleteall": "ಎಲ್ಲವನ್ನೂ ಅಳಿಸು",
        "nlinks": "$1 {{PLURAL:$1|ಸಂಪರ್ಕ|ಸಂಪರ್ಕಗಳು}}",
        "nmembers": "$1 {{PLURAL:$1|ಸದಸ್ಯ|ಸದಸ್ಯರು}}",
        "nrevisions": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಗಳು}}",
-       "nviews": "$1 {{PLURAL:$1|ನೋಟ|ನೋಟಗಳು}}",
        "lonelypages": "ಒಬ್ಬಂಟಿ ಪುಟಗಳು",
        "lonelypagestext": "ಈ ಕೆಳಗಿನ ಪುಟಗಳು {{SITENAME}} ಅಲ್ಲಿರುವ ಇತರ ಯಾವ ಪುಟದಿಂದಲೂ ಕೊಂಡಿಯನ್ನು ಹೊಂದಿಲ್ಲ.",
        "uncategorizedpages": "ಅವರ್ಗೀಕೃತ ಪುಟಗಳು",
        "pager-newer-n": "{{PLURAL:$1|ಹೊಸ ೧|ಹೊಸ $1}}",
        "pager-older-n": "{{PLURAL:$1|ಹಳೆ ೧|ಹಳೆ $1}}",
        "suppress": "ನಿಗಾ ಇಡುವವ",
-       "booksources": "ಪà³\81ಸà³\8dತà²\95à²\97ಳ à²®à³\82ಲ",
+       "booksources": "ಪà³\81ಸà³\8dತà²\95ದ à²®à³\82ಲà²\97ಳà³\81",
        "booksources-search-legend": "ಪುಸ್ತಕ ಮೂಲಗಳಿಗೆ ಹುಡುಕು",
        "booksources-search": "ಹುಡುಕು",
        "specialloguserlabel": "ಸದಸ್ಯ:",
index 3f5de68..0633f59 100644 (file)
        "passwordreset": "비밀번호 재설정",
        "passwordreset-text-one": "이메일을 통해 임시 비밀번호를 받으려면 이 양식을 채우세요.",
        "passwordreset-text-many": "{{PLURAL:$1|이메일을 통해 임시 비밀번호를 받으려면 필드 중 하나를 채우세요.}}",
-       "passwordreset-legend": "비밀번호 재설정",
        "passwordreset-disabled": "이 위키에서는 비밀번호를 재설정할 수 없습니다.",
        "passwordreset-emaildisabled": "이 위키에서 이메일 기능이 비활성화되어 있습니다.",
        "passwordreset-username": "사용자 계정 이름:",
        "resettokens": "토큰 재설정",
        "resettokens-text": "여기에 당신의 계정과 관련된 특정 개인 데이터에 접근을 허용하는 토큰을 재설정합니다.\n\n토큰이 다른 사람에게 알려졌거나 계정이 침해되었을 때는 재설정해야 합니다.",
        "resettokens-no-tokens": "재설정할 토큰이 없습니다.",
-       "resettokens-legend": "토큰 재설정",
        "resettokens-tokens": "토큰:",
        "resettokens-token-label": "$1 (현재 값: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|주시문서 목록에 있는 문서의 바뀜]]의 웹 피드(Atom/RSS)에 대한 토큰",
index bd52da0..8b61271 100644 (file)
        "site-atom-feed": "$1 — Atom лентасы",
        "page-rss-feed": "«$1» — RSS-лентасы",
        "page-atom-feed": "«$1» — Atom-лентасы",
+       "feed-atom": "Atom",
        "red-link-title": "$1 (быллай бет джокъду)",
        "sort-descending": "Кем болуугъа кёре тиз",
        "sort-ascending": "Ёсюуге кёре тиз",
        "passwordreset": "Паролну джибериу",
        "passwordreset-text-one": "Паролугъуз джиберилир ючюн бу форманы толтуругъуз.",
        "passwordreset-text-many": "{{PLURAL:$1|Пароль ийилир ючюн билгилени бир бёлюмюн джазыгъыз.}}",
-       "passwordreset-legend": "Паролну атыу",
        "passwordreset-disabled": "Бу викиде паролла атыу амал джукъланыбды.",
        "passwordreset-emaildisabled": "Бу викиде электрон почтаны функциялары джукъланыбдыла.",
        "passwordreset-username": "Къошулуучуну аты:",
        "changeemail-password": "«{{SITENAME}}» проектде паролугъуз:",
        "changeemail-submit": "Адресни тюрлендир",
        "resettokens": "Токенлени джибер",
-       "resettokens-legend": "Токенлени джибер",
        "resettokens-tokens": "Токенле:",
        "resettokens-token-label": "$1 (бусагъатдагъы: $2)",
        "bold_sample": "Къалын джазыу",
        "headline_tip": "2-чи дараджалы башлыкъ",
        "nowiki_sample": "Формат этилинмеген текстни бери салыгъыз",
        "nowiki_tip": "Вики-формат этиуню игнор эт",
+       "image_sample": "Юлгю.jpg",
        "image_tip": "Эндирилген файл",
+       "media_sample": "Юлгю.ogg",
        "media_tip": "Медиа-файлгъа джибериу",
        "sig_tip": "Къол салыуугъуз эмда заман",
        "hr_tip": "Горизонтал сыз (кёб хайырландырмагъыз)",
        "uploadnewversion-linktext": "Бу файлны джангы версиясын джюклеу",
        "shared-repo-from": "$1-дан",
        "shared-repo": "Ортакъ сакълау джер",
+       "shared-repo-name-wikimediacommons": "Викигёзен",
        "upload-disallowed-here": "Бу файлны юсюню джазаргъа болмайды.",
        "filerevert": "$1 файлны эски халына къайтыу",
        "filerevert-legend": "Файлны эски халына къайтар",
        "nmembers": "$1 {{PLURAL:$1|объект}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|объект}}",
        "nrevisions": "$1 {{PLURAL:$1|версия}}",
-       "nviews": "$1 {{PLURAL:$1|къарау}}",
        "nimagelinks": "$1 {{PLURAL:$1|бетде}} хайырланады",
        "ntransclusions": "$1 {{PLURAL:$1|бетде}} хайырланады",
        "specialpage-empty": "Сорма эсеб келтирмеди.",
        "special-characters-group-khmer": "Кхмер",
        "special-characters-title-endash": "орта тире",
        "special-characters-title-emdash": "узун тире",
-       "special-characters-title-minus": "минус белги"
+       "special-characters-title-minus": "минус белги",
+       "mw-widgets-titleinput-description-new-page": "Быллай бет алкъын джокъду",
+       "mw-widgets-titleinput-description-redirect": "$1 бетге редирект"
 }
index a94723e..85ef097 100644 (file)
        "passwordreset": "Et Paßwoot zeröck säze",
        "passwordreset-text-one": "Föll dat Fommolaa uß, öm Ding Paßwoot ze ändere.",
        "passwordreset-text-many": "{{PLURAL:$1|Föll ei vun dä Fälder en heh däm Fommolaa uß, öm e Zwesche_Paßwoot ze krijje.}}",
-       "passwordreset-legend": "Et Paßwoot zeröck säze",
        "passwordreset-disabled": "Et Paßwoot zeröck ze säze es heh em Wiki afjeschalldt.",
        "passwordreset-emaildisabled": "Heh dat Wiki määt nix met <i lang=\"en\">e-mail</i>!",
        "passwordreset-username": "Metmaacher_Nahme:",
        "resettokens": "Neue Schlößel maache",
        "resettokens-text": "Do kanns neue Schlößel maache lohße för op beschtemmpte päsöhnlesche Daate uohjriife ze künne, di met Dingem Zohjang heh ze donn han.\n\nDonn dat op jeede Fall, wann se enem Andere bikannt jewoode sin, udder wann Dinge Zohjang jeknack woode es.",
        "resettokens-no-tokens": "Et sin kein Schlößele doh, för neu ze maache.",
-       "resettokens-legend": "Neue Schlößel maache",
        "resettokens-tokens": "Schlößele:",
        "resettokens-token-label": "$1 (Em Momang es et: $2)",
        "resettokens-watchlist-token": "ä schlößel för dä <i lang=\"en\" xml:lang=\"en\">Atom</i>- udder <i lang=\"en\" xml:lang=\"en\">RSS</i>-Kanaal met de [[Special:Watchlist|Änderonge aan Sigge en Dinger Oppaßleß]]",
        "version-libraries": "Enschtallehrte Projrammsammlonge",
        "version-libraries-library": "Projrammsammlong",
        "version-libraries-version": "Väsjohn",
+       "version-libraries-license": "Lėzänz",
+       "version-libraries-authors": "Schrihver",
        "redirect": "Ömleide op en Dattei, ene Metmaacher udder de Väsjohn vun ener Sigg",
        "redirect-legend": "Ömleide ob_en Dattei udder Sigg",
        "redirect-summary": "Heh di {{int:specialpage}} leidt öm ob_en Dattei — doh mößd_Er ene Nahme aanjävve, för e Beischpell:[[{{#Special:Redirect}}/file/Example.jpg]] — udder en Sigg — doh mößd_Er en Kännong för, udder en Väsjuhn aanjävve, för e Beischpell esu: [[{{#Special:Redirect}}/page/64308]] udder [[{{#Special:Redirect}}/revision/328429]] — udder en Metmaachersigg — doh mößd_Er enem Metmaacher sing Kännong aanjävve, för e Beischpell: [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmer-Kambodschaanesch",
        "special-characters-title-endash": "Ene Halfjeviertschtresch",
        "special-characters-title-emdash": "Ene Jeviertschtresch",
-       "special-characters-title-minus": "Et Winnijer-Zeische"
+       "special-characters-title-minus": "Et Winnijer-Zeische",
+       "mw-widgets-titleinput-description-new-page": "di Sigg jidd_et noch nit",
+       "mw-widgets-titleinput-description-redirect": "ömleijde op „$1“"
 }
index 0867b83..00d97aa 100644 (file)
        "resetpass-validity-soft": "Şîfreya te derbasdar nîne: $1\n\nJi kerema xwe re şîfreyek nû çêke an jî ji bo paşî çêkî li \"{{int:resetpass-submit-cancel}}\" bitikîne.",
        "passwordreset": "Şîfreyê nû bike",
        "passwordreset-text-one": "Ji bo ji nû ve sazkirina şîfreyê vê formê dagire.",
-       "passwordreset-legend": "Şîfreyê nû bike",
        "passwordreset-username": "Navê bikarhêner:",
        "passwordreset-domain": "Domain:",
        "passwordreset-email": "Navnîşana e-nameyê:",
        "changeemail-none": "(nîne)",
        "changeemail-submit": "Enameyê biguherîne",
        "resettokens": "Mifteya jê bibe",
-       "resettokens-legend": "Mifteya jê bibe",
        "bold_sample": "Nivîsa stûr",
        "bold_tip": "Nivîsa stûr",
        "italic_sample": "Nivîsa xwehr (îtalîk)",
        "search-file-match": "(bi naveroka dosye re lê te)",
        "search-suggest": "Gelo mebesta te ev bû: $1",
        "search-interwiki-caption": "Projeyên hevçeng",
-       "search-interwiki-default": "$1 encam:",
+       "search-interwiki-default": "Encamên ji $1:",
        "search-interwiki-more": "(bêhtir)",
        "search-relatedarticle": "Pêwendîdar",
        "searchrelated": "pêwendîdar",
        "recentchanges-label-newpage": "Rûpeleke nû hate çêkirin",
        "recentchanges-label-minor": "Ev guherîneke biçûk e",
        "recentchanges-label-bot": "Ev guherîn ji aliyê botekê ve hate çêkirin",
-       "recentchanges-label-unpatrolled": "Ev gotar hêj nehatiye sererastkirin",
+       "recentchanges-label-unpatrolled": "Ev gotar hêjî nehatiye sererastkirin",
        "recentchanges-label-plusminus": "Qebareya vê rûpelê bi ev qas biteyan hate guherandin",
        "recentchanges-legend-heading": "'''Ravekirina kurtenavan:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (here [[Special:NewPages|lîsteya rûpelên nû]])",
        "watchthisupload": "Vê rûpelê bişopîne",
        "filewasdeleted": "Data'yek bi vê navê hatibû barkirin û jêbirin. Xêra xwe li $1 seke ku barkirina te hêja ye ya na.",
        "filename-bad-prefix": "Nava wê data'yê, yê tu niha bardikê, bi '''\"$1\"''' destpêdike. Kamêrayên dîjîtal wan navan didin wêneyên xwe. Ji kerema xwe navekî baştir binivisîne ji bo mirov zûtir zanibin ku şayeşê vê wêneyê çî ye.",
-       "upload-success-subj": "Barkirin serkeftî",
+       "upload-success-subj": "Barkirina serkeftî",
        "upload-failure-subj": "Pirsgirêka barkirinê",
        "upload-warning-subj": "Hişyariya barkirinê",
        "upload-file-error": "Çewtiya navxweyî",
        "filedelete-submit": "Jê bibe",
        "filedelete-success": "<strong>$1</strong> hate jêbirin.",
        "filedelete-success-old": "<span class=\"plainlinks\">Verzyona $2 ji data'ya '''[[Media:$1|$1]]''' di saet $3 da hate jêbirin.</span>",
-       "filedelete-nofile": "'''$1''' nîne.",
+       "filedelete-nofile": "<strong>$1</strong> tune ye.",
        "filedelete-otherreason": "Sedemên din:",
        "filedelete-reason-otherlist": "Sedemên din",
        "filedelete-reason-dropdown": "*Sedemên jêbirina wêneyan\n** wêneyekî nebaş e\n** kopiyek e",
        "contributions": "Beşdariyên {{GENDER:$1|bikarhêner}}",
        "contributions-title": "Beşdariyên ji bo $1",
        "mycontris": "Beşdariyên min",
-       "contribsub2": "Ji bo $1 ($2)",
+       "contribsub2": "Bo {{GENDER:$3|$1}} ($2)",
        "uctop": "(rojane)",
        "month": "Ji meha (û zûtir):",
        "year": "Ji sala (û zûtir):",
        "sp-contributions-uploads": "yên barkirî",
        "sp-contributions-logs": "têketin",
        "sp-contributions-talk": "gotûbêj",
-       "sp-contributions-userrights": "îdarekirina mafên bikarhêneran",
+       "sp-contributions-userrights": "birêvebirina mafên bikarhêneran",
        "sp-contributions-search": "Li beşdariyan bigere",
        "sp-contributions-username": "Navnîşana IP'yê an jî navê bikarhêner:",
        "sp-contributions-submit": "Lêgerîn",
        "ipb-unblock-addr": "Astengkirinê $1 rake",
        "ipb-unblock": "Astengkirina bikarhênerekî ya adrêsa IP'yekê rake",
        "ipb-blocklist": "Astengkirinên niha bibîne",
-       "ipb-blocklist-contribs": "Beşdariyên ji bo $1",
+       "ipb-blocklist-contribs": "Beşdariyên ji bo {{GENDER:$1|}}",
        "unblockip": "Astengkirina bikarhêner rake",
        "unblockiptext": "Nivîsara jêr bikarwîne ji bo qebûlkirina nivîsandinê bikarhênerekî ya IP'yeka berê astengkirî.",
        "ipusubmit": "Vê astengkirinê rake",
        "unblocked-range": "$1 hat astengkirin.",
        "unblocked-id": "$1 dîsa vê astengkirinê ye",
        "blocklist": "Bikarhênerên astengkirî",
-       "ipblocklist": "Listek ji adresên IP'yan û bikarhêneran yê hatine astengkirin",
+       "ipblocklist": "Bikarhênerên astengkirî",
        "ipblocklist-legend": "Bikarhênerên astengkirî bibîne",
        "blocklist-userblocks": "Astengkirina hesaban veşêre",
        "blocklist-tempblocks": "Astengkirinên demkî veşêre",
        "tooltip-watchlistedit-normal-submit": "Sernavan jê bibe",
        "tooltip-watchlistedit-raw-submit": "Lîsteya şopandinê rojane bike",
        "tooltip-upload": "Barkirinê destpêke",
+       "tooltip-summary": "Kurteyek kurt binivîse",
        "common.js": "/* Any JavaScript here will be loaded for all users on every page load. */",
        "anonymous": "Bikarhênera/ê nediyarkirî ya/yê {{SITENAME}}",
        "siteuser": "Bikarhênera $1 ê {{SITENAME}}",
        "version-software-product": "Berhem",
        "version-software-version": "Guherto",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-description": "Danasîn",
        "fileduplicatesearch-filename": "Navê dosyeyê:",
        "fileduplicatesearch-submit": "Lê bigere",
        "specialpages": "Rûpelên taybet",
        "logentry-delete-delete": "$1 rûpela $3 {{GENDER:$2|jê bir}}",
        "revdelete-content-hid": "naverok veşartî ye",
        "revdelete-uname-hid": "navê bikarhêneriyê yê veşartî",
-       "logentry-move-move": "$1 rûpela $3 ji $4e re {{GENDER:$2|barkir}}",
+       "logentry-move-move": "$1 navê $3 weke $4 guherand",
        "logentry-move-move-noredirect": "$1 navê $3 guherand û kir $4",
        "logentry-move-move_redir": "$1 navê $3 guherand û kir $4",
        "logentry-newusers-newusers": "$1 hesabekî bikarhêneriyê çêkir",
        "special-characters-group-gujarati": "Gucaratî",
        "special-characters-group-thai": "Tay",
        "special-characters-group-lao": "Lao",
-       "special-characters-group-khmer": "Khmer"
+       "special-characters-group-khmer": "Khmer",
+       "mw-widgets-titleinput-description-new-page": "rûpel hê tune ye",
+       "mw-widgets-titleinput-description-redirect": "beralî bike ber bi $1 ve"
 }
index 9011be4..cc2ff77 100644 (file)
        "resetpass-submit-loggedin": "Kambiar kontrasenya",
        "resetpass-submit-cancel": "Anular",
        "passwordreset": "Restableser kontrasenya",
-       "passwordreset-legend": "Restableser kontrasenya",
        "passwordreset-username": "Nombre de usador:",
        "passwordreset-domain": "Dominio:",
        "passwordreset-email": "Adresso de letral:",
index 1b24490..409008a 100644 (file)
        "passwordreset": "Passwuert zrécksetzen",
        "passwordreset-text-one": "Fëllt dëse Formulaire aus fir Äert Passwuert zréckzesetzen.",
        "passwordreset-text-many": "{{PLURAL:$1|Fëllt eent vun de Felder aus fir en temporäert Passwuert per E-Mail ze kréien.}}",
-       "passwordreset-legend": "Passwuert zrécksetzen",
        "passwordreset-disabled": "D'Zerécksetze vum Passwuert ass op dëser Wiki ausgeschalt.",
        "passwordreset-emaildisabled": "D'E-Mail-Funktioune goufen op dëser Wiki ausgeschalt.",
        "passwordreset-username": "Benotzernumm:",
        "changeemail-throttled": "Dir hutt zevill dacks versicht Iech anzeloggen.\nWaart w.e.g. $1 ier Dir et nach eng Kéier probéiert.",
        "resettokens": "Token zrécksetzen",
        "resettokens-no-tokens": "Et gëtt keng Tokens fir zréck ze setzen.",
-       "resettokens-legend": "Token zrécksetzen",
        "resettokens-tokens": "Token:",
        "resettokens-token-label": "$1 (aktuelle Wäert: $2)",
        "resettokens-watchlist-token": "Token fir de Webfeed (Atom/RSS) vun den [[Special:Watchlist|Ännerungen op Säite vun Ärer Iwwerwaachungslëscht]]",
        "noindex-category-desc": "D'Säit gëtt net vu Botten indexéiert, well dat magescht Wuert <code><nowiki>__NOINDEX__</nowiki></code> dran ass a well se an engem Nummraum ass, an deem déi Markéierung erlaabt ass.",
        "index-category-desc": "D'Säit huet <code><nowiki>__INDEX__</nowiki></code> an ass an engem Nummraum, wou déi Markéierung erlaabt ass an dofir gëtt d'Säit vu Sichroboter indexéiert wou dat normalerweis net de Fall wier.",
        "post-expand-template-inclusion-category-desc": "D'Säit ass méi grouss wéi <code>$wgMaxArticleSize</code> nom expandéiere vun alle Schablounen, dofir goufen e puer Schablounen net expandéiert.",
+       "post-expand-template-argument-category-desc": "D'Säit ass méi grouss wéi <code>$wgMaxArticleSize</code> nom Expandéiere vun engem Argument vun enger Schabloun (eppes an dräifachen Akkoladen, wéi <code>{{{Foo}}}</code>).",
        "broken-file-category-desc": "D'Säit huet e futtise Link op e Fichier (e Link op en agebonnene Fichier wann et de Fichier net gëtt).",
        "hidden-category-category-desc": "D'Kategorie huet <code><nowiki>__HIDDENCAT__</nowiki></code> an hirer Säit drastoen, dat verhënnert datt se standardméisseg an der Këscht mat de Kategorielinken op der Säit gewise gëtt.",
        "trackingcategories-nodesc": "Keng Beschreiwung disponibel.",
        "import-interwiki-history": "Importéier all d'Versioune vun dëser Säit",
        "import-interwiki-templates": "Mat alle Schablounen",
        "import-interwiki-submit": "Import",
+       "import-mapping-default": "Op déi Plazen importéieren déi als Standard definéiert sinn",
        "import-mapping-namespace": "Import an een Nummraum:",
        "import-mapping-subpage": "Als Ënnersäiten op dës Säit importéieren:",
        "import-upload-filename": "Numm vum Fichier:",
        "tooltip-pt-logout": "Ofmellen",
        "tooltip-pt-createaccount": "Et gëtt Iech geroden e Benotzerkont unzeleeën an Iech anzeloggen; dat ass awer net obligatoresch",
        "tooltip-ca-talk": "Diskussioun iwwer de Säiteninhalt",
-       "tooltip-ca-edit": "Dës Säit ka geännert ginn. Maacht vun der Méiglechkeet Gebrauch fir ze \"kucken ouni ofzespäicheren\" a kuckt ob alles an der Rei ass ier der ofspäichert.",
+       "tooltip-ca-edit": "Dir kënnt dës Säit änneren. Maacht vun der Méiglechkeet Gebrauch fir ze \"kucken ouni ofzespäicheren\" ier Dir ofspäichert.",
        "tooltip-ca-addsection": "En neien Abschnitt ufänken.",
        "tooltip-ca-viewsource": "Dës Säit ass gespaart. Nëmmen de Quelltext ka gewise ginn.",
        "tooltip-ca-history": "Vireg Versioune vun dëser Säit",
        "version-libraries": "Installéiert Bibliothéiken",
        "version-libraries-library": "Bibliothéik",
        "version-libraries-version": "Versioun",
+       "version-libraries-license": "Lizenz",
+       "version-libraries-description": "Beschreiwung",
+       "version-libraries-authors": "Auteuren",
        "redirect": "Viruleedung duerch e Fichier, e Benotzer, eng Säit oder eng Versiouns-ID",
        "redirect-legend": "Viruleedung op ee Fichier oder eng Säit",
        "redirect-summary": "Dës Spezialsäit ass eng Viruleedung op e Fichier (Fichiersnumm uginn), eng Säit (Versiounsnummer uginn) oder eng Benotzersäit (numeresch Benotzeridentifikatioun uginn).\nGebrauch: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], oder [[{{#Special:Redirect}}/user/101]].",
        "tags-edit-revision-submit": "Ännerungen op {{PLURAL:$1|dës Versioun|$1 Versiounen}} uwennen",
        "tags-edit-success": "D'Ännerunge goufen applizéiert.",
        "tags-edit-failure": "D'Ännerunge konnten net applizéiert ginn: $1",
+       "tags-edit-none-selected": "Sicht mindestens eng Markéierung eraus déi dir dobäisetzen oder ewechhuele wëllt.",
        "comparepages": "Säite vergläichen",
        "compare-page1": "Säit 1",
        "compare-page2": "Säit 2",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
-       "special-characters-title-minus": "Minus-Zeechen"
+       "special-characters-title-minus": "Minus-Zeechen",
+       "mw-widgets-titleinput-description-new-page": "Säit gëtt et nach net",
+       "mw-widgets-titleinput-description-redirect": "viruleeden op $1"
 }
index af04196..87049a7 100644 (file)
        "tog-numberheadings": "سأربألگە خود شمارئشت کو",
        "tog-showtoolbar": "نأڤار أڤزار ڤیرایئشت نە نئشو بیە",
        "tog-editondblclick": "بألگە یا نە ڤا د نۊ پوٙرنیئن ڤیرایئشت بأکیت",
-       "tog-editsectiononrightclick": "بهرجا ویرایشت نه وا راس پورنین د بهرجا داسونیا کنشتگر کو",
-       "tog-watchcreations": "بلگیایی که مه راس کمه و جانیایایی که مه سوار کمه اضاف کو د سیل برگه مه",
-       "tog-watchdefault": "بلگیا و جانیایی که مه ویرایشت کمه اضاف کو د سیل برگم",
-       "tog-watchmoves": "بلگیاو جانیایی  که مه جاوه جا کمه د سیل برگم اضاف کو",
-       "tog-watchdeletion": "بلگیا و جانیایی که مه پاک کمه اضاف کو د سیل برگم",
-       "tog-watchrollback": "همه بلگه یا نه د جایی که مه د سیل برگم می کم اضاف کو.",
-       "tog-minordefault": "همه ویرایشتیا کؤچک نه وا پیش فرض بیئن نشو دار کو.",
-       "tog-previewontop": "پیش سیل نه دما جعوه ویرایشت نشو بیئه",
-       "tog-previewonfirst": "پیش سیل نه د اولی ویرایشت نشو بیئه",
-       "tog-enotifwatchlistpages": "اÙ\88سÙ\87 Ú©Ù\87 Û\8cÙ\87 Ú¯Ù\84 Ø¨Ù\84Ú¯Ù\87 Û\8cا Ø¬Ø§Ù\86Û\8cا Ø¯ Ø³Û\8cÙ\84 Ø¨Ø±Ú¯ Ù\85Ù\87 Ø¢Ù\84شت Ø¨Ù\88ئÙ\87 Ù\85Ù\86Ù\87 Ù\88ا Ø§Ù\86جÙ\88Ù\85اÙ\86اÙ\85Ù\87 Ø®Ù\88ر کو",
-       "tog-enotifusertalkpages": "د گاتی که بلگه گپسن کاریار آلشت پیدا کرد منه وا انجومانامه خور کو",
-       "tog-enotifminoredits": "همچنو اوسه که ویرایشتیا کؤچکی د بلگیا یا جانیایا انجوم بوئه منه خور کو",
-       "tog-enotifrevealaddr": "نشونی انجومانامه منه د انجومانامه اشگار نشو بیه",
-       "tog-shownumberswatching": "اÙ\86ازÙ\87 Ú©Ø§Ø±Û\8cارÛ\8cاÛ\8cÛ\8c Ú©Ù\87 Ø¯ Ø­Ø§Ù\84 Ù\88 Ø¨Ø§Ù\84 Ø¯Û\8cئÙ\86Ù\86 Ù\86Ø´Ù\88 Ø¨Û\8cÙ\87",
-       "tog-oldsig": "اÙ\85ضاÙ\8aÛ\8c Ù\87Ù\8aئش:",
-       "tog-fancysig": "وا امضا چی ویکی متن رفتار داشتو",
-       "tog-uselivepreview": "پیش سیل زنه وه کار بیئر",
-       "tog-forceeditsummary": "منه د گاتی که یه گل چکسه ویرایشت حالی وارد بوئه سریع خور کو",
-       "tog-watchlisthideown": "قام كو ويرايشت منه د",
-       "tog-watchlisthidebots": "ویرایشت یا بوت نه د سیل برگ قام کو",
-       "tog-watchlisthideminor": "قام كو ويرايشت کؤچک منه د",
-       "tog-watchlisthideliu": "ویرایشت یا کاریاریا وامئن سامونه نه د سیل برگ قام کو",
-       "tog-watchlisthideanons": "ویرایشت یا کاروریا نادیار نه د سیل برگ قام کو",
-       "tog-watchlisthidepatrolled": "ویرایش تیا د تی رس نه د سیل برگ قام کو",
-       "tog-ccmeonemails": "ورداشته انجومانامه یا منه که سی کاریاریا تر می فرسنم سیم کل کو",
-       "tog-diffonly": "بلگیایی که د ور گرته فرخیا هارن نشون نیه",
-       "tog-showhiddencats": "دسÙ\87 Ù\8aا Ù\82اÙ\85 Ø¨Ù\8aئÙ\86Ù\87 Ù\86Ø´Ù\88Ù\86 Ø¨Ù\8aÙ\87",
-       "tog-norollbackdiff": "Ù\81رخÛ\8cا Ù\86Ù\87 Ø¯ Ø¨Û\8cÙ\86 Ø¨Ù\88رÛ\8cت Ù\86Ù\87ا Û\8cÙ\87 Ú¯Ù\84 Ø¹Ù\82Ù\88 Ú¯Ø±Ø¯ Ú©Ø±Ø¯Ù\86",
-       "tog-useeditwarning": "د گاتی که آلشتیا اماییه نبیه د بلگه ویرایشت وه جا می نم خورم کو",
-       "tog-prefershttps": "همیشه د گاتی که مه وامئن هئم د ارتواط امن وه کار بیئر",
-       "underline-always": "هميشه",
-       "underline-never": "هيژوخت",
-       "underline-default": "پوسه یا دوارته نیئر پیش فرض",
-       "editfont-style": "راساگه فونت شلک نه ویرایشت کو",
-       "editfont-default": "دوارته نیئر پیش بینی بیه",
-       "editfont-monospace": "فونت تک بلگه ای",
-       "editfont-sansserif": "سان سریف فونت",
-       "editfont-serif": "فونت سريف",
-       "sunday": "يه شمه",
-       "monday": "دوشمه",
-       "tuesday": "سه شمه",
-       "wednesday": "چارشمه",
-       "thursday": "پن شمه",
-       "friday": "جÙ\85Ù\87",
-       "saturday": "شمه",
-       "sun": "يه شمه",
-       "mon": "دوشمه",
-       "tue": "سه شمه",
-       "wed": "چارشمه",
-       "thu": "پن شمه",
-       "fri": "جÙ\85Ù\87",
-       "sat": "شمه",
+       "tog-editsectiononrightclick": "بأرجا ڤیرایئشت نە ڤا راس پوٙرنییئن د بأرجا داسوٙنیا کونئشتگأر کو",
+       "tog-watchcreations": "بألگە یایی کئ مئ رأڤأندیاری کئمە و جانیایی کئ مئ سوڤار کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchdefault": "بألگە یایی کئ مئ رأڤأندیاری کئمە و جانیایی کئ مئ سوڤار کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchmoves": "بألگە یایی و جانیایی کئ مئ جا ڤئ جا کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchdeletion": "بألگە یایی و جانیایی کئ مئ پاکسا کئمە ئضاف کو د سئیل بأرگە مئ",
+       "tog-watchrollback": "هأمە بألگە یا نە د جایی کئ مئ می رئم ڤأ دئماتأر د د سئیل بأرگئم ئضاف کو.",
+       "tog-minordefault": "هأمە ڤیرایئشتیا کوچئک نە ڤا حال و بار پیش فأرض بییئن نئشوٙ دار کو.",
+       "tog-previewontop": "پیش سئیل نە دئما جأڤە ڤیرایئشت نئشوٙ بییە",
+       "tog-previewonfirst": "پیش سئیل نە د أڤألی ڤیرایئشت نئشوٙ بییە",
+       "tog-enotifwatchlistpages": "ئÙ\88سئ Ú©Ø¦ Û\8cئ Ú¯Ø¦Ù\84 Ø¨Ø£Ù\84Ú¯Û\95 Û\8cا Ø¬Ø§Ù\86Û\8cا Ø¯ Ø³Ø¦Û\8cÙ\84 Ø¨Ø£Ø±Ú¯Ø¦ Ù\85ئ Ø¢Ù\84ئشت Ø¨Ù\88Ù\99Ù\87 Ù\85ئÙ\86Û\95 Ú¤Ø§ Ø£Ù\86جÙ\88Ù\85اÙ\86اÙ\85Û\95 Ø®Ø£Ú¤Ø£ر کو",
+       "tog-enotifusertalkpages": "د گاتی کئ بألگە گأپئسن کاریار آلشت کاری بی مئنە ڤا أنجومانامە خأڤأر کو",
+       "tog-enotifminoredits": "هأمچئنی ئوسئ کئ ڤیرایئشتیا کوچئکی د بألگە یا یا جانیایا أنجوم بوە مئنە ڤارئسیاری بأک",
+       "tog-enotifrevealaddr": "تیر نئشوٙن أنجومانامە مئنە د أنجومانامە دیارکو دیاری بأک",
+       "tog-shownumberswatching": "Ø£Ù\86ازÛ\95 Ú©Ø§Ø±Û\8cارÛ\8cاÛ\8cÛ\8c Ú©Ø¦ Ø¯ Ø­Ø§Ù\84 Ù\88 Ø¨Ø§Ù\84 Ø¯Û\8cئÙ\86 Ù\87ئÙ\86 Ø¯Û\8cارÛ\8c Ø¨Ø£Ú©",
+       "tog-oldsig": "ئÙ\85ضاÛ\8cÛ\8c Ù\87Û\8c:",
+       "tog-fancysig": "ڤا ئمضا چی یئ گئل ڤیکی نیسئسە رأفتار بأک",
+       "tog-uselivepreview": "پیش سئیل زئنە ڤئ کار بئیر",
+       "tog-forceeditsummary": "مئنە د گاتی کئ یئ گئل چئکئسە ڤیرایئشت حالی میا ڤامین ڤئ یە توف کونوٙ ڤارسیاری بأک",
+       "tog-watchlisthideown": "ڤیرایئشتیا مئنە د سئیل بأرگ نئهوٙ بأک",
+       "tog-watchlisthidebots": "ڤیرایئشتیا بوت نە د سئیل بأرگ نئهوٙ بأک",
+       "tog-watchlisthideminor": "ڤیرایئشیا کوچئک نە د سئیل بأرگ نئهوٙ بأک",
+       "tog-watchlisthideliu": "ڤبرایشتیایی نە کئ ڤئ دأس کاریاریا ڤامین ئوٙماە أنجوم گئرئتە د سئیل بأرگ نئهوٙ بأک",
+       "tog-watchlisthideanons": "ڤیرایئشتیا کاریاریایی کئ نادیارئن د سئیل بأرگ نئهوٙ بأک",
+       "tog-watchlisthidepatrolled": "ڤیرایشتیایی که هان د تیە رأس د سئیل بأرگ قام کو",
+       "tog-ccmeonemails": "ڤورداشتە یا أنجومانامه یا مئنە کئ سی کاریاریا هأنی کئل می کئم سیم کئل بأک",
+       "tog-diffonly": "بألگە یایی کئ د ڤأر گئرتە فأرخیا هارئن دیاریشوٙ بأک",
+       "tog-showhiddencats": "دأسÛ\95 Û\8cا Ù\86ئÙ\87Ù\88Ù\99 Ø¨Û\8cÛ\8cØ£Ù\86ئ Ø¯Û\8cارÛ\8c Ø¨Ø£Ú©",
+       "tog-norollbackdiff": "Ù\81أرخÛ\8cا Ù\86Û\95 Ø¯ Û\8cئ Ú¯Ø¦Ù\84 Ú¤Ø§Ø¯Ø¦Ù\85ا Ø±Ø£ØªØ¦Ù\86 Ø¯ Ø¨Ø¦Û\8cÙ\86 Ø¨Ù\88رÛ\8cت",
+       "tog-useeditwarning": "د گاتی کئ آلئشتیا ئمایە نأبینە د بألگە ڤیرایئشت ڤئ جا مئ نئم مئنە ڤارئسیاری بأک",
+       "tog-prefershttps": "هأمیشە د گاتی کئ مئ هام د ساموٙنە پئیڤأند أمن نە ڤئ کار بئیر",
+       "underline-always": "هأمیشە",
+       "underline-never": "هیژڤأخت",
+       "underline-default": "پوٙسە یا دوڤارتە نییأر پیش فأرض",
+       "editfont-style": "راساگه فونت شیڤات نە ڤیرایئشت کو",
+       "editfont-default": "دوڤارتە نییأر نئها بینی بییە",
+       "editfont-monospace": "فونت تأک بألگە یی",
+       "editfont-sansserif": "فونت سان سئریف",
+       "editfont-serif": "Ù\81Ù\88Ù\86ت Ø³Ø¦Ø±Ù\8aÙ\81",
+       "sunday": "يئ شأمە",
+       "monday": "دۊشأمە",
+       "tuesday": "سئ شأمە",
+       "wednesday": "چارشأمە",
+       "thursday": "پأن شأمە",
+       "friday": "جÙ\88Ù\85Û\95",
+       "saturday": "شأمە",
+       "sun": "یئ شأمە",
+       "mon": "دۊشأمە",
+       "tue": "سئ شأمە",
+       "wed": "چارشأمە",
+       "thu": "پأن شأمە",
+       "fri": "جÙ\88Ù\85Û\95",
+       "sat": "شأمە",
        "january": "جانڤیە",
        "february": "فئڤریە",
        "march": "مارس",
        "october": "ئوکتور",
        "november": "نوڤامر",
        "december": "دئسامر",
-       "january-gen": "جانويه",
-       "february-gen": "فوريه",
-       "march-gen": "Ù\85ارش",
-       "april-gen": "آوريل",
-       "may-gen": "Ù\85ا",
-       "june-gen": "جوئن",
-       "july-gen": "جولای",
-       "august-gen": "اگوست",
-       "september-gen": "سپتامر",
-       "october-gen": "اÙ\83تÙ\88ر",
-       "november-gen": "نوامر",
-       "december-gen": "دسامر",
+       "january-gen": "جانڤیە",
+       "february-gen": "فئڤریە",
+       "march-gen": "Ù\85ارس",
+       "april-gen": "آڤریل",
+       "may-gen": "Ù\85ئÛ\8c",
+       "june-gen": "جوٙأن",
+       "july-gen": "جÙ\88Ù\99Ù\84اÛ\8c",
+       "august-gen": "Ø¢گوست",
+       "september-gen": "سئپتامر",
+       "october-gen": "ئÙ\88کتÙ\88Ú¤ر",
+       "november-gen": "نوڤامر",
+       "december-gen": "دئساÙ\85ر",
        "jan": "جانڤیە",
        "feb": "فئڤریە",
        "mar": "مارس",
        "oct": "ئوکتوڤر",
        "nov": "نوڤامر",
        "dec": "دئسامر",
-       "january-date": "جانويه $1",
-       "february-date": "فوريه  $1",
+       "january-date": "جانڤیە $1",
+       "february-date": "فئڤریە $1",
        "march-date": "مارس  $1",
-       "april-date": "آوريل $1",
-       "may-date": "Ù\85ا $1",
-       "june-date": "جوئن $1",
-       "july-date": "جÙ\88Ù\84اÙ\8a  $1",
-       "august-date": "اÙ\88ت  $1",
-       "september-date": "سپتامر $1",
-       "october-date": "اÙ\83تÙ\88ر  $1",
-       "november-date": "نوامر  $1",
-       "december-date": "دسامر $1",
-       "pagecategories": "{{PLURAL:$1|دسه|دسه يا}}",
-       "category_header": "بلگيا مئن دسه \"$1\"",
-       "subcategories": "زÙ\8aردسÙ\87 Ù\8aا",
-       "category-media-header": "وارسگر د دسه \"$1\"",
-       "category-empty": "اÛ\8c Ø¯Ø³Ù\87 Ù\88اÙ\82عÙ\86 Ø¯Ù\87 Ù\88ر Ú¯Ø±ØªÙ\87 Ù\87Û\8cÚ\98 Ø¨Ù\84Ú¯Ù\87 Ø§Û\8c Û\8cا Ù\88ارسگر Ø§ی نی",
-       "hidden-categories": "{{PLURAL:$1|دستÙ\87 Ù\82اÙ\85 Ø¨Ù\8aÙ\87|دستÙ\87 Ù\8aا Ù\82اÙ\85 Ø¨Ù\8aÙ\87}}",
-       "hidden-category-category": "دسÙ\87 Û\8cا Ù\82اÙ\85 Ø¨Û\8cÙ\87",
-       "category-subcat-count": "{{PLURAL:$2|اÛ\8c Ø¯Ø³Ù\87 Ù\81Ù\82Ø· Ø²Û\8cر Ø¯Ø³Ù\87 Ø¯Û\8cÙ\86داگر Ù\87اÙ\86 Ø¯Ø´ .|اÛ\8c Ø¯Ø³Ù\87 {{جÙ\85Û\8c:$1| Ø²Û\8cردسÙ\87|$1 Ø²Û\8cردسÙ\87 Û\8cا}}Ù\87ئ , Ù\88Ù\87 Ø¯Ø± Ø¯ $2 Ú©ل.}}",
-       "category-subcat-count-limited": "اÛ\8c Ø¯Ø³Ù\87 Ù\88ا Ø¯Ù\85 {{PLURAL:$1|زÛ\8cردسÙ\87|$1زÛ\8cردسÙ\87 Û\8cا}} Ø¨Ù\88ئÙ\87",
-       "category-article-count": "{{PLURAL:$2|اÛ\8c Ø¯Ø³Ù\87 Ø¯Ù\87 Ù\88ر Ú¯Ø±ØªÙ\87 Ø¨Ù\84Ú¯Ù\87 Ù\86Ù\87اÛ\8cÛ\8cÙ\87 .| {{جÙ\85Û\8c:$1| Ø¨Ù\84Ú¯Ù\87 Ù\87ئ|$1 Ø¨Ù\84Ú¯Û\8cا Ù\87ئÙ\86}} Ø¯ Ø§Û\8c Ø¯Ø³Ù\87, Ù\88Ù\87 Ø¯Ø± $2 Ú©ل.}}",
-       "category-article-count-limited": "نها {{PLURAL:$1|بلگه هئ|$1بلگیا هئن}} د دسه ایسنی .",
-       "category-file-count": "{{PLURAL:$2|اÛ\8c Ø¯Ø³Ù\87 Ù\81Ù\82Ø· Ø¯ Ù\88ر Ú¯Ø±ØªÙ\87 Ø¬Ø§Ù\86Û\8cا Ù\86Ù\87اÛ\8cÛ\8c Ù\87ئ file.| Ù\86Ù\87اÛ\8cÛ\8c {{جÙ\85Û\8c:$1|جاÙ\86Û\8cا Ù\87ئ|$1 Ø¬Ø§Ù\86Û\8cاÛ\8cا Ù\87ئÙ\86}} Ø¯ Ø§Û\8c Ø¯Ø³Ù\87, Ù\88Ù\87 Ø¯Ø± Ø¯ Ú©ل $2 .}}",
-       "category-file-count-limited": " {{PLURAL:$1|[جانیا هئ|1$جانیایا هئن}}نهایی هان د دسه ایسنی.",
-       "listingcontinuesabbrev": "دÙ\85اÙ\84Ù\87",
-       "index-category": "بلگيا سيائه دار",
-       "noindex-category": "بلگيا بی سيائه",
-       "broken-file-category": "بلگیایی که هوم پیوند جانیایا اشکسه دارن",
+       "april-date": "آڤریل $1",
+       "may-date": "Ù\85ئÛ\8c $1",
+       "june-date": "جوٙأن $1",
+       "july-date": "جÙ\88Ù\99Ù\84اÛ\8c $1",
+       "august-date": "Ø¢Ú¯Ù\88ست $1",
+       "september-date": "سئپتامر $1",
+       "october-date": "ئÙ\88کتÙ\88ڤر $1",
+       "november-date": "نوڤامر $1",
+       "december-date": "دئساÙ\85ر $1",
+       "pagecategories": "{{PLURAL:$1|}}{{PLURAL:$1|دأسە|دأسە يا}}",
+       "category_header": "بألگە یا مین دأسە \"$1\"",
+       "subcategories": "زÙ\8aردأسÛ\95 Û\8cا",
+       "category-media-header": "ڤارئسگأر د دأسە \"$1\"",
+       "category-empty": "ئÛ\8c Ø¯Ø£Ø³Û\95 Ø¯ Ø±Ø§Ø³ØªØ£Ú©Û\8c Ø¯ Ú¤Ø£Ø± Ú¯Ø¦Ø±Ø¦ØªÛ\95 Ù\87Û\8cÚ\86 Ø¨Ø£Ù\84Ú¯Û\95 Û\8cا Ú¤Ø§Ø±Ø¦Ø³Ú¯Ø£Ø±ی نی",
+       "hidden-categories": "{{PLURAL:$1|دأسÛ\95 Ù\82اÙ\85 Ø¨Û\8cÛ\8cÛ\95|دأسÛ\95 Û\8cا Ù\82اÙ\85 Ø¨Û\8cÛ\8cÛ\95}}",
+       "hidden-category-category": "دأسÛ\95 Û\8cا Ù\82اÙ\85 Ø¨Û\8cÛ\8cÛ\95",
+       "category-subcat-count": "{{PLURAL:$2|ئÛ\8c Ø¯Ø£Ø³Û\95 Ù\81Ø£Ù\82أط Ø²Û\8cردأسÛ\95 Û\8cا Ø¯Ø¦Ù\85اگئر Ù\87اÙ\86 Ø¯Ø¦Ø´.|ئÛ\8c Ø¯Ø£Ø³Û\95 {{PLURAL:$1|زÛ\8cردأسÛ\95|$1 Ø²Û\8cردأسÛ\95 Û\8cا}}Ù\87ئ , Ú¤Ø¦ Ø¯Ø£Ø± Ø¯ $2 Ú©Ù\88ل.}}",
+       "category-subcat-count-limited": "ئÛ\8c Ø¯Ø£Ø³Û\95 Ù\87ا Ø¯ {{PLURAL:$1|زÛ\8cردأسÛ\95|$1 Ø²Û\8cردأسÛ\95 Û\8cا}} Û\8cÛ\8c Ú©Ø¦ Ù\87ا Ú¤Ø¦ Ø¯Ù\88Ù\85ئشÙ\88Ù\99",
+       "category-article-count": "{{PLURAL:$2|ئÛ\8c Ø¯Ø£Ø³Û\95 Ø¯ Ú¤Ø£Ø±Ú¯Ø¦Ø±Ø¦ØªÛ\95 Ø¨Ø£Ù\84Ú¯Û\95 Ù\86ئÙ\87اÛ\8cÛ\8cÛ\95.| {{PLURAL:$1| Ø¨Ø£Ù\84Ú¯Û\95 Ù\87Û\8c|$1 Ø¨Ø£Ù\84Ú¯Û\95 Û\8cا Ù\87ئÙ\86}} Ø¯ Ø¦Û\8c Ø¯Ø£Ø³Û\95Ø\8c Ú¤Ø¦ Ø¯Ø£Ø± Ø¯ $2 Ú©Ù\88ل.}}",
+       "category-article-count-limited": "نئها {{PLURAL:$1|بألگە هی|$1بألگە یا هئن}} د دأسە ئیسئنی.",
+       "category-file-count": "{{PLURAL:$2|ئÛ\8c Ø¯Ø£Ø³Û\95 Ù\81Ø£Ù\82أط Ø¯ Ú¤Ø£Ø±Ú¯Ø¦Ø±Ø¦ØªÛ\95 Ø¬Ø§Ù\86Û\8cا Ù\86ئÙ\87اÛ\8cÛ\8cÛ\95.| Ù\86ئÙ\87اÛ\8cÛ\8c {{PLURAL:$1|جاÙ\86Û\8cا Ù\87Û\8c|$1 Ø¬Ø§Ù\86Û\8cاÛ\8cا Ù\87Û\8cÙ\86}} Ø¯ Ø¦Û\8c Ø¯Ø£Ø³Û\95Ø\8c Ú¤Ø¦ Ø¯Ø£Ø± Ø¯ Ú©Ù\88ل $2 .}}",
+       "category-file-count-limited": " {{PLURAL:$1|[جانیا هی|1$جانیایا هین}} نئهایی هان د دأسە ئیسئنی.",
+       "listingcontinuesabbrev": "دÙ\88Ù\85اÙ\84Û\95",
+       "index-category": "بألگە یا سیاە دار",
+       "noindex-category": "بألگە یا بی سیاە",
+       "broken-file-category": "بألگە یایی کئ هوم پئیڤأند جانیایا ئشگئسئ نە دارئن",
        "categoryviewer-pagedlinks": "($1) ($2)",
-       "about": "دبارÙ\87",
-       "article": "Ù\85Û\8cÙ\86Ù\88Ù\86Ù\87 Ø¨Ù\84Ú¯Ù\87",
-       "newwindow": "(نيمدری  تازه وا کو)",
-       "cancel": "اÙ\86جÙ\88Ù\85 Ø´Û\8cÙ\88سن",
-       "moredotdotdot": "بيشتر",
-       "morenotlisted": "اÛ\8c Ù\86Ù\88Ù\85جا Ù\83اÙ\85Ù\84 Ù\86بÙ\8aÙ\87",
-       "mypage": "بلگه",
-       "mytalk": "چك چنه",
-       "anontalk": "دبارÙ\87 ØªÛ\8cرÙ\86Ø´Ù\88Ù\86 Ø§Û\8c Ø¢Û\8c Ù¾Û\8c Ù\82صÙ\87 Ø¨Ù\83Ù\8aد",
-       "navigation": "ناوجوری",
+       "about": "دئبارÛ\95",
+       "article": "Ù\85Û\8cÙ\86Ù\88Ù\99Ù\86Û\95 Û\8cا Ø¨Ø£Ù\84Ú¯Û\95",
+       "newwindow": "(د یئ گئل نیمدأری تازە ڤاش کو)",
+       "cancel": "Ø£Ù\86جÙ\88Ù\85 Ø´Û\8cڤئسئن",
+       "moredotdotdot": "بیشتئر",
+       "morenotlisted": "ئÛ\8c Ù\86Ù\88Ù\85Ú¯Û\95 Ú©Ø§Ù\85ئÙ\84 Ø¨Û\8cÛ\8cÛ\95.",
+       "mypage": "بألگە",
+       "mytalk": "چأک چئنە",
+       "anontalk": "دئبارÛ\95 ØªÛ\8cرÙ\86ئشÙ\88Ù\99Ù\86 Ø¦Û\8c Ø¢Û\8c Ù¾Û\8c Ù\82ئسÛ\95 Ø¨Ø£Ú©Û\8cت",
+       "navigation": "ناڤجوری",
        "and": "&#32;و",
-       "qbfind": "فهمسن،جسن",
-       "qbbrowse": "Ù\82رض Ú¯Ø±Øªن",
-       "qbedit": "ويرايشت",
-       "qbpageoptions": "اÛ\8c Ø¨Ù\84Ú¯Ù\87",
-       "qbmyoptions": "بلگيا مه",
-       "faq": "اÙ\81 Ø§Û\8c Ù\83Ù\8aÙ\88",
-       "faqpage": "پروجه:اف اي كيو",
-       "actions": "جمشت",
-       "namespaces": "نوم ورگه یا",
-       "variants": "Ø¢Ù\84شتگریا",
-       "navigation-heading": "Ù\85Ù\86Ù\88 Ù\86اÙ\88گشتÙ\86",
-       "errorpagetitle": "غلط",
-       "returnto": "ورگشت وه $1.",
+       "qbfind": "ڤارئسدار بییئن",
+       "qbbrowse": "Ù\82أرض Ú¯Ø¦Ø±Ø¦ØªØ¦ن",
+       "qbedit": "ڤیرایئشت",
+       "qbpageoptions": "ئÛ\8c Ø¨Ø£Ù\84Ú¯Û\95",
+       "qbmyoptions": "بألگە یا مئ",
+       "faq": "ئÙ\81 Ø¦Û\8c Ú©Û\8cÙ\88Ù\99",
+       "faqpage": "پوروٙجە: ئف ئی کیوٙ",
+       "actions": "کونئشتکاریا",
+       "namespaces": "نوم ڤأرگە یا",
+       "variants": "Ø¢Ù\84ئشگأریا",
+       "navigation-heading": "Ù\86Ù\88Ù\85 Ø¬Ø§Ú¯Û\95 Ù\86اڤگأردÛ\8c",
+       "errorpagetitle": "غألأط",
+       "returnto": "ڤورگأشتئن د $1.",
        "tagline": "د {{SITENAME}}",
        "help": "هومياری",
        "search": "پئی جوٙری",
        "searchbutton": "پئی جوٙری",
        "go": "رو",
        "searcharticle": "رو",
-       "history": "ويرگار بلگه",
-       "history_short": "ويرگار",
-       "updatedmarker": "د Ø¢Ø®Ø±Û\8cÙ\86 Ø¯Û\8cئÙ\86 Ù\85Ù\87 Ù\88Ù\87 Ù\87Ù\86Ú¯Ù\88Ù\85 Ø³Ø§Ø²Û\8c کو",
+       "history": "ڤیرگار بألگە",
+       "history_short": "ڤیرگار",
+       "updatedmarker": "د Ø¢Ø®Ø¦Ø±Û\8c Ø¯Û\8cÛ\8cئÙ\86 Ù\85ئÙ\86Û\95 Ú¤Ø¦ Ù\87Ù\86Ú¯Ù\88Ù\85 کو",
        "printableversion": "نوسقە پئلا بیئنی",
-       "permalink": "هوم پیوند هميشئی",
-       "print": "پلا كردن",
+       "permalink": "هوم پئیڤأند هأمیشئ یی",
+       "print": "چاپ گئرئتئن",
        "view": "ديئن",
        "view-foreign": "د $1 نه بوینیت",
-       "edit": "ويرايشت",
+       "edit": "ڤیرایئشت",
        "edit-local": "توضیح ولات نشینی نه ویرایشت بکیت",
-       "create": "راس Ù\83ردن",
+       "create": "راس Ù\83ئردئن",
        "create-local": "یه گل توضیح ولات نشینی اضاف بکیتو",
        "editthispage": "ويرايشت ای بلگه",
        "create-this-page": "راس كردن ای بلگه",
        "specialpage": "بلگه ويجه",
        "personaltools": "اوزاريا شصقی",
        "articlepage": "ديئن مینونه بلگه",
-       "talk": "گپ",
+       "talk": "گأپ",
        "views": "ديئنيا",
-       "toolbox": "اÙ\88زارÙ\8aا",
+       "toolbox": "أڤزارÛ\8cا",
        "userpage": "ديئن بلگه کاریار",
        "projectpage": "ديئن بلگه پروجه",
        "imagepage": "ديئن بلگه جانیا",
        "viewtalkpage": "ديئن چك چنه يا",
        "otherlanguages": "د زونا هنی",
        "redirectedfrom": "(ورگشتن د$1)",
-       "redirectpagesub": "بلگه واگردونی",
-       "redirectto": "واگردونی سی:",
+       "redirectpagesub": "بألگە ڤاگأردوٙنی",
+       "redirectto": "ڤاگأردوٙنی سی:",
        "lastmodifiedat": "ای بلگه تازه ايا وضع آلشت بيه د $1, د $2.",
        "viewcount": "ای بلگه قاول دسترسی بيه {{PLURAL:$1|once|$1 times}}.",
        "protectedpage": "بلگه پر و پیم بيه",
        "pool-queuefull": "اماییه کاری گی گرتن پر بیه",
        "pool-errorunknown": "خطا نادیار",
        "pool-servererror": "پول سنتر خذمتگه د دسرس نئ($1).",
-       "poolcounter-usage-error": "خطار Ù\88Ù\87 Ú©Ø§Ø± Ú¯Ø±Øªن:$1",
+       "poolcounter-usage-error": "خأطا Ú¤Ø¦ Ú©Ø§Ø± Ú¯Ø¦Ø±Ø¦ØªØ¦ن:$1",
        "aboutsite": "دئبارە {{SITENAME}}",
        "aboutpage": "پوروجە:دئبارە",
        "copyright": "مینونه د دسرس هئ سی $1 مر وه شلک هنی نوشته بوئه",
        "copyrightpage": "{{ان اس:پروجه}}:کپی رایت",
-       "currentevents": "پيشومدل تازه باو",
+       "currentevents": "روخ ڤأنیا ئیسئنی",
        "currentevents-url": "پروجه:پيشومدل تازه باو",
        "disclaimers": "تیە پوٙشکاریا",
        "disclaimerpage": "پوروجە: تیە پوٙشی کئردئن هأمە گئر",
        "newmessagesdifflinkplural": "آخر {{PLURAL:$1|آلشت|آلشتیا}}",
        "youhavenewmessagesmulti": "شما یه گل پیغوم تازه د $1 داریتو",
        "editsection": "ڤیرایئشت",
-       "editold": "ويرايشت",
+       "editold": "ڤیرایئشت",
        "viewsourceold": "سرچشمه نه بوينيت",
-       "editlink": "ويرايشت",
-       "viewsourcelink": "سرÚ\86Ø´Ù\85Ù\87 Ù\86Ù\87 Ø¨Ù\88Ù\8aÙ\86Ù\8aت",
+       "editlink": "ڤیرایئشت",
+       "viewsourcelink": "سئÛ\8cÙ\84 Ø¯ Ø³Ø£Ø±Ú\86ئشÙ\85Û\95 Ø¨Ø£Ú©Û\8cت",
        "editsectionhint": "ڤیرایئشت یئ گئل بأرجا:$1",
-       "toc": "Ù\85Û\8cÙ\86Ù\88Ù\86Ù\87 یا",
-       "showtoc": "Ù\86Ø´Ù\88 Ø¯ئن",
+       "toc": "Ù\85Û\8cÙ\86Ù\88Ù\99Ù\86Û\95 یا",
+       "showtoc": "Ù\86ئشÙ\88Ù\99 Ø¯Ø£ئن",
        "hidetoc": "قام كردن",
        "collapsible-collapse": "جم كردن",
        "collapsible-expand": "وا كردن",
        "thisisdeleted": "دیئن یا ورگنين $1?",
        "viewdeleted": "دیئن$1?",
        "restorelink": "{{PLURAL:$1|یه گل ویرایشت پاک بیه|$1 ویرایشتیا پاک بیه}}",
-       "feedlinks": "هوال حون:",
+       "feedlinks": "هأڤال حوٙن:",
        "feed-invalid": "نوع مشترک بین هوال حون نامعتور",
        "feed-unavailable": "هوال حونیا د دسرس نئین",
        "site-rss-feed": "هوال حون RSS سی $1",
        "nstab-special": "بلگيا ويجه",
        "nstab-project": "بلگه پروجه",
        "nstab-image": "جانیا",
-       "nstab-mediawiki": "پيغوم",
-       "nstab-template": "چوئه",
-       "nstab-help": "بلگه هومياری",
-       "nstab-category": "دسÙ\87",
+       "nstab-mediawiki": "پئیغوٙم",
+       "nstab-template": "چوٙأ",
+       "nstab-help": "بألگە هومیاری",
+       "nstab-category": "دأسÛ\95",
        "nosuchaction": "چنی کنشتگری وجود ناره",
        "nosuchactiontext": "کاری که وا یو آر ال مشقص بیه معتور نئ.\nشایت شما یو آر ال نه دروس ننشتیته، یا یه گل هوم پیوند نادرست وارد بیه.\nوه شاید وه یه گل سیسریک د نرم افزار وه کار گرته بیه وا {{نوم مالگه}} هشاره داشتوه.",
        "nosuchspecialpage": "چنی بلگه خاصی وجود ناره",
        "nospecialpagetext": "<strong>شما سی یه گل بلگه نامعتور درحاست داشتیته.</strong>\nیه گل نوم گه سی  اعتوار بلگه یا بوئه د [[Special:SpecialPages|{{int:specialpages}}]] پیدا با.",
-       "error": "خطا",
+       "error": "خأطا",
        "databaseerror": "خطا د جاگه دونسمنيا",
        "databaseerror-text": "یه خطا جست کردن د رسینه جا پیش اوما.یه ممکنه یه در کار ونن د نرم اوزار پیش بیاره",
        "databaseerror-textcl": "خطاجست گرتن رسینه جا دونسمنيا پيشومد كرده",
        "passwordreset": "د نۈ وارد كردن رازینه گواردن",
        "passwordreset-text-one": "ای نوم بلگه نه سی گرتن یه گل رازینه گواردن موقتی وا انجومانامه پر بکیت.",
        "passwordreset-text-many": "{{PLURAL:$1|یه گل د رشنه گه یا نه سی یه که رازینه گواردن موقتی وا انجومانامه گرته بوئه پر بکیت}}",
-       "passwordreset-legend": "د نۈ وارد كردن رازینه گواردن",
        "passwordreset-disabled": "نو کرد رازینه گواردن د ای ویکی ناکشتگر بیه.",
        "passwordreset-emaildisabled": "چی یا هنی انجومانامه د ای ویکی ناکشتگر بیه.",
        "passwordreset-username": "نوم کاریاری:",
        "resettokens": "تازه کردن نشونه یا",
        "resettokens-text": "شما سی صلا دئن دسرسی وه رسینه یا خصوصی که ها د حساو ایچنی تو می تونیت دیارگریا نه د نو زنه بکیت.\n\nشما اوسنی واس ای کار بکیت که رسینه یا شما سی یه کسی تر بئر بیه یا د حساو شما چل بیه.",
        "resettokens-no-tokens": "هیژ نشونه ای سی تازه کردن نئ.",
-       "resettokens-legend": "تازه کردن نشونه یا",
        "resettokens-tokens": "نشونه یا:",
        "resettokens-token-label": "$1 (ارزشت تازه: $2)",
        "resettokens-watchlist-token": "دیارگر سی حردنی تورگه(اتم/آر اس اس) سی [[ویجه:سیل برگ|آلشت دئن بلگه یا د سیل برگتو]]",
index a3cf5a1..7a0c7ae 100644 (file)
        "october": "مالبارکنۉن",
        "november": "ئا سردکنۉن",
        "december": "ئا رجکنۉن",
-       "january-gen": "اول قهاره",
+       "january-gen": "اول قهارھ",
        "february-gen": "لرشگون",
-       "march-gen": "ئنهزنون",
-       "april-gen": "نوروزماه",
-       "may-gen": "گلبارماه",
-       "june-gen": "جورش",
-       "july-gen": "میوه رسون",
+       "march-gen": "ئنهزنۉن",
+       "april-gen": "نۉرۉزماھ",
+       "may-gen": "گلبارماھ",
+       "june-gen": "جۉرش",
+       "july-gen": "میۉھ رسۉن",
        "august-gen": "مه گرمه",
-       "september-gen": "شنیارون",
-       "october-gen": "مالبارکنون",
-       "november-gen": "Ø¢Ù\88 Ø³Ø±Ø¯Ú©Ù\86Ù\88ن",
-       "december-gen": "Ø¢Ù\88 Ø±Ø¬Ú©Ù\86Ù\88ن",
+       "september-gen": "شنیارۉن",
+       "october-gen": "مالبارکنۉن",
+       "november-gen": "ئا Ø³Ø±Ø¯Ú©Ù\86Û\89ن",
+       "december-gen": "ئا Ø±Ø¬Ú©Ù\86Û\89ن",
        "jan": "اۉل قھارھ",
        "feb": "لرشگۉن",
        "mar": "ئنهزنۉن",
        "category-empty": "ای دسه الآن هیچ بلگه یا مدیا ناره",
        "hidden-categories": "{{PLURAL:$1|دسه قائم|دسه یل قائم}}",
        "hidden-category-category": "دسه بنی یل قائم",
-       "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دومنه داره.|ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زه $2 کل.}}",
+       "category-subcat-count": "{{PLURAL:$2|ای دسه فقط دسه یل فرعی دۉمنه دارھ.|ای دسه چیه یل دۉمنه دارھ {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}, بیشتر زھ $2 کل.}}",
        "category-subcat-count-limited": "ای دسه چیه یل دومنه داره {{PLURAL:$1|دسه فرعی|$1 دسه یل فرعی}}.",
-       "category-article-count": "{{PLURAL:$2|ای دسه فقط  بلگه یل دومنه داره .|دومن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زه$2 کل.}}",
+       "category-article-count": "{{PLURAL:$2|ای دسه فقط  بلگه یل دۉمنه داره .|دۉمن الذکر{{PLURAL:$1|بلگه هس|$1 بلگه هسن}} مئن ای دسه, بیشتر زھ$2 کل.}}",
        "category-article-count-limited": "دومن الذکر {{PLURAL:$1|بلگه هس|$1 بلگه هسن}} د او دسه جریانی.",
-       "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دومنه داره.|دومن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} دای دسه, بیشترزه$2 کل.}}",
+       "category-file-count": "{{PLURAL:$2|ای دسه فقط فایلل دۉمنه دارھ.|دۉمن الذکر{{PLURAL:$1|فایل هس|$1 فایلل هسن}} د ای دسه, بیشتر زھ$2 کل.}}",
        "category-file-count-limited": "دومن الذکر {{PLURAL:$1|فایل هس|$1 فایلل هسن}} د او دسه جریانی.",
        "listingcontinuesabbrev": "دنباله",
        "index-category": "بلگه یل ایندکس وابیده",
        "broken-file-category": "بلگه یل وا فایلل لینک اشکسه",
        "about": "درباره",
        "article": "بلگه محتوا",
-       "newwindow": "(د یه پنجره دیه وا کو )",
+       "newwindow": "(د یه پنجرھ دیه ۉا کۉ )",
        "cancel": "لغو",
        "moredotdotdot": "بیشتر...",
        "morenotlisted": "ای نوم بلگه کامل نی",
        "variants": "انۉاع",
        "navigation-heading": "منۉ ناۉ ۉری",
        "errorpagetitle": "خطا",
-       "returnto": "بازگشت وه $1.",
+       "returnto": "بازگشت وھ $1.",
        "tagline": "ز {{SITENAME}}",
        "help": "هومیاری",
        "search": "جستن",
        "searchbutton": "جستن",
        "go": "رو",
        "searcharticle": "رۉ",
-       "history": "ویرگارل بلگه",
+       "history": "تاریخچھ بلگه",
        "history_short": "تاریخچه",
        "updatedmarker": "بروز وابی تا موقع آخرین سیل کردن مو",
        "printableversion": "ۉرژن سی چاپ",
        "edit": "اصلاح",
        "edit-local": "اصلاح توضیحتل محلی",
        "create": "درست کردن",
-       "create-local": "وندن توضیحتل محلی",
+       "create-local": "ۉندن تۉضیحتل محلی",
        "editthispage": "اصلاح ای بلگه",
        "create-this-page": "درست کو ای بلگه نه",
        "delete": "حذف",
        "protectthispage": "ای بلگنه حفاظت کو",
        "unprotect": "تغییر دائن حالت حفاظت",
        "unprotectthispage": "تغییر دائن حالت حفاظت ای بلگه",
-       "newpage": "بلگه نو",
+       "newpage": "بلگه نۉ",
        "talkpage": "گپ زئن ای بلگه",
        "talkpagelinktext": "گپ",
        "specialpage": "بلگه مخصوص",
        "otherlanguages": "مئن زۉۉنل دیھ",
        "redirectedfrom": "(تصحیح مجدد زھ $1)",
        "redirectpagesub": "بلگه تصحیح و هدایت زه مجدد",
-       "redirectto": "تغییر دائن مسیر وه:",
+       "redirectto": "تغییر دائن مسیر ۉھ:",
        "lastmodifiedat": "ای بلگه اخیرا تغییر ۉاصلاح ۉابیه مئنه $1, مئنه $2.",
        "viewcount": "ای بلگه قابل دسترسی وابیه {{PLURAL:$1|یه بار|$1 مدتل}}.",
        "protectedpage": "بلگه حفاظت وابیه",
        "currentevents-url": "Project:اتفاقل جاری",
        "disclaimers": "انکار کنندھ یل",
        "disclaimerpage": "Project:انکار کارۉران",
-       "edithelp": "هومیاری سی اصلاح",
+       "edithelp": "هۉمیاری سی اصلاح",
        "mainpage": "بلگھ اصلی",
        "mainpage-description": "بلگھ اصلی",
        "policy-url": "Project:خط مشی",
        "site-rss-feed": "خبرخو RSS سی $1",
        "site-atom-feed": "خبرخۉ Atom سی $1",
        "page-rss-feed": "خبرخو RSS سی «$1»",
-       "page-atom-feed": "خبرخو Atom سی «$1»",
+       "page-atom-feed": "خبرخۉ Atom سی «$1»",
        "red-link-title": "(بلگھ ۉجود نارھ) $1",
        "sort-descending": "مرتب سازی وا صعودی",
        "sort-ascending": "مرتب سازی وا صعودی",
        "nstab-main": "بلگھ",
-       "nstab-user": "بلگه کارور",
+       "nstab-user": "بلگه کارۉر",
        "nstab-media": "بلگه مدیا",
        "nstab-special": "بلگھ یل ۉیجھ",
-       "nstab-project": "بلگه پروجه",
+       "nstab-project": "بلگه پرۉجه",
        "nstab-image": "فایل",
        "nstab-mediawiki": "پیوم",
-       "nstab-template": "الگو",
+       "nstab-template": "الگۉ",
        "nstab-help": "بلگه هومیاری",
        "nstab-category": "دسه",
        "nosuchaction": "چنی دستوری موجود نی",
        "formerror": "خطا:نیوا فرمنه ارسال کیت.",
        "badarticleerror": "ای عمل نیوا ری ای بلگه اجرا وابی.",
        "cannotdelete-title": "نیوا بلگنه حذف کی \"$1\"",
-       "badtitle": "عنوان بد",
-       "badtitletext": "عنوان درخواستی نامعتبر، خالی، یا عنوانی بین زوونی یا بین‌ویکی‌ای با پیوند نادرسته\nو ممکنه  یه یا چند کاراکتر داشته بوه که مئن عنوان مربوط نوا زش استفاده کنین",
-       "viewsource": "دیئن منبع",
+       "badtitle": "عنۉان بد",
+       "badtitletext": "عنۉان درخۉاستی نامعتبر، خالی، یا عنۉانی بین زۉۉنی یا بین‌ۉیکی‌ای با پیۉند نادرسته.\nۉ ممکنه  یه یا چند کاراکتر داشته بۉھ که مئن عنۉان مربۉط نۉا زش استفادھ کنین.",
+       "viewsource": "دیئن سرچشمھ",
        "viewsource-title": "دیئن منبع سی $1",
        "actionthrottled": "عمل متوقف وابی",
        "protectedpagetext": "ای بلگه سیکه اصلاح یا دیهر عملل ریش انجام نبی محافظت وابیه",
        "virus-unknownscanner": "آنتی ویروس ناشناخته",
        "welcomeuser": "خش اومیت، $1!",
        "yourname": "نوم کارور:",
-       "userlogin-yourname": "نوم کارور",
-       "userlogin-yourname-ph": "نوم خوتونه وارد بکیت",
+       "userlogin-yourname": "نۉم کارۉر",
+       "userlogin-yourname-ph": "نۉم کارۉری خۉتۉنه بنیت ایچھ",
        "createacct-another-username-ph": "نوم کارورنه وار بکیت",
        "yourpassword": "رمز:",
        "userlogin-yourpassword": "رمز",
-       "userlogin-yourpassword-ph": "رمز خوتونه وارد بکیت",
-       "createacct-yourpassword-ph": "رمزنه وارد بکیت",
+       "userlogin-yourpassword-ph": "رمز خۉتۉنه ۉارد بکنیت",
+       "createacct-yourpassword-ph": "رمزنه ۉارد بکنیت",
        "yourpasswordagain": "مجددا رمزنه تایپ بکیت",
        "createacct-yourpasswordagain": "تایید رمز",
-       "createacct-yourpasswordagain-ph": "رمزنه مجددا وارد بکیت",
-       "userlogin-remembermypassword": "منه تو نگه دار",
+       "createacct-yourpasswordagain-ph": "رمزنه دۉۉارھ ۉارد بکنیت",
+       "userlogin-remembermypassword": "منه تۉ بنھ",
        "userlogin-signwithsecure": "د اتصال ایمن استفاده کو",
        "yourdomainname": "دومین کارو:",
        "password-change-forbidden": "ایشا نیتریت مئنه ای ویکی رمزه یلنه اصلاح بکیت",
-       "login": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
+       "login": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
        "nav-login-createaccount": "اوییدن وه سیستم / درست کردن اکانت",
        "userlogin": "اوییدن وه سیستم / درست کردن اکانت",
        "userloginnocreate": "اویدن وه سیستم",
        "logout": "رهدن زه سیستم",
        "userlogout": "رهدن زه سیستم",
        "notloggedin": "نوایته",
-       "userlogin-noaccount": "اکاÙ\86ت ناریت؟",
-       "userlogin-joinproject": "ملحق شو وه {{SITENAME}}",
+       "userlogin-noaccount": "حسآÛ\89 ناریت؟",
+       "userlogin-joinproject": "ملحق شۉ ۉھ {{SITENAME}}",
        "nologin": "اکانت ناریت؟ $1.",
        "nologinlink": "راست کردن یه حساو کاروری",
-       "createaccount": "درست Ú©Ø±Ø¯Ù\86 Ø§Ú©Ø§Ù\86ت",
+       "createaccount": "راس Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Û\89",
        "gotaccount": "اکانت داریت؟ $1.",
        "gotaccountlink": "اویدن وه سیستم",
        "userlogin-resetlink": "مشخصه یل ورود خوتونه نونیت؟",
-       "userlogin-resetpassword-link": "رمزتونه نونیت؟",
-       "userlogin-helplink2": "هومیاری وا اوییدن وه سیستم",
+       "userlogin-resetpassword-link": "رمزتۉنه نۉنیتۉ؟",
+       "userlogin-helplink2": "هۉمیاری ۉا ئۉیدن ۉھ سیستم",
        "userlogin-createanother": "یه اکانت دیه بساز",
        "createacct-emailrequired": "آدرس ایمیل",
-       "createacct-emailoptional": "آدرس ایمیل (واخوتونی)",
-       "createacct-email-ph": "آدرس ایمیل خوتونه وارد بکیت",
+       "createacct-emailoptional": "آدرس ایمیل (ۉاخۉتۉنی)",
+       "createacct-email-ph": "آدرس ایمیل خۉتۉنه ۉارد بکنیت",
        "createacct-another-email-ph": "آدرس ایمیلنه وارد بکیت",
        "createacct-realname": "نوم راسکی (واخوتونی)",
        "createaccountreason": "دلیل:",
        "createacct-reason": "دلیل",
        "createacct-reason-ph": "سیچه داریت یه اکانت دیه ایسازیت",
        "createacct-captcha": "چک کردن امنیتی",
-       "createacct-imgcaptcha-ph": "ای نشتنه ک دومن سیل کی وارد کو",
-       "createacct-submit": "اکاÙ\86ت Ø®Ù\88تÙ\88Ù\86Ù\87 Ø¨Ø³Ø§Ø²یت",
+       "createacct-imgcaptcha-ph": "ای نشتنه کھ دۉمن سیل کی ۉارد کۉ",
+       "createacct-submit": "حسآÛ\89 Ø®Û\89تÛ\89Ù\86Ù\87 Ø±Ø§Ø³ Ú©Ù\86یت",
        "createacct-another-submit": "یه اکانت دیه بساز",
-       "createacct-benefit-heading": "{{SITENAME}} وا کسایی مث خوتون ساخته بیه",
+       "createacct-benefit-heading": "{{SITENAME}} ۉا بجلی کپ خۉتۉن راسھ بیه.",
        "createacct-benefit-body1": "{{PLURAL:$1|اصلاح|اصلاحل}}",
        "createacct-benefit-body2": "{{PLURAL:$1|بلگه|بلگه یل}}",
-       "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هومیارنده|هومیارنده یل}}",
+       "createacct-benefit-body3": "اخیرا {{PLURAL:$1|هۉمیارندھ|هۉمیارندھ یل}}",
        "badretype": "رمزنه ک وارد کیت وایک جور نیوان",
        "userexists": "نوم کاروری ک وارد کیت الان در حال استفاده هسس\nلطفا یه نوم دیه انتخاب کیت",
        "loginerror": "خطا ورود",
        "accountcreated": "اکانت ساخته بی",
        "createaccount-title": "اکانت سازی سی {{SITENAME}}",
        "login-abort-generic": "ورود ایشا ناموفق وابی - سقط وابی",
-       "loginlanguagelabel": "زوون:$1",
-       "pt-login": "اۉیدن ۉھ سیستم",
-       "pt-login-button": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
+       "loginlanguagelabel": "زۉۉن:$1",
+       "pt-login": "ئۉیدن ۉھ سیستم",
+       "pt-login-button": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
        "pt-createaccount": "راس کردن حسآۉ",
-       "pt-userlogout": "رهدن زه سیستم",
+       "pt-userlogout": "رتن زھ سیستم",
        "changepassword": "تغییر رمز",
        "resetpass_announce": "سی پایان ورود ، ایشا واسی یه رمز جدید سیخوت به ونی.",
        "resetpass_header": "تغییر رمز اکانت",
        "bold_tip": "متن گپ نما",
        "italic_sample": "متن شکسته",
        "italic_tip": "متن شکسته",
-       "link_sample": "عنوان لینک",
+       "link_sample": "عنۉان لینک",
        "link_tip": "لینک داخلی",
-       "extlink_sample": "http://www.example.com عنوان لینک",
+       "extlink_sample": "http://www.example.com عنۉان لینک",
        "extlink_tip": "(به خاطر بسپار http:// prefix)\nلینک خارجی",
        "headline_sample": "سرخط متن",
        "headline_tip": "2سرخط یکسان",
-       "nowiki_sample": "Ù\85تÙ\86 Ø´Ú©Ù\84 Ù\86دادÙ\87 Û\8cاÙ\81رÙ\85ت Ù\86Ù\88ابÛ\8cدÙ\87 Ø±Ø§ Ø§Û\8cÚ\86Ù\88 بنین",
-       "nowiki_tip": "زه فرمت کردن یا شکل دادن ویکی چشم پوشی کن",
-       "image_tip": "فایل محاط وابید",
+       "nowiki_sample": "Ù\85تÙ\86 Ø´Ú©Ù\84 Ù\86دائھ Û\8cاÙ\81رÙ\85ت Ù\86Û\89ابÛ\8cدھ Ø±Ø§ Ø§Û\8cÚ\86Û\89 بنین",
+       "nowiki_tip": "زھ فرمت کردن یا شکل دائن ۉیکی دس ۉردار",
+       "image_tip": "فایل محاط ۉابید",
        "media_tip": "لینک فایل",
-       "sig_tip": "امضای ایسا و برچسب زمان",
-       "hr_tip": "خط افقی (کم استفاده کنین)",
+       "sig_tip": "امضا ایشا ۉ برچسب زمان",
+       "hr_tip": "خط افقی (کم استفادھ کنین)",
        "summary": "خلاصه:",
-       "minoredit": "ای یه اصلاح کچک وابی",
+       "minoredit": "ای یه اصلاح کچک ۉابی",
        "watchthis": "پیگیری ای بلگه",
-       "savearticle": "بلگه ضبط بوه",
+       "savearticle": "بلگه ضبط بوھ",
        "showpreview": "پیش‌نمایش",
-       "showdiff": "نشودائن تغییرات",
-       "anoneditwarning": "<strong>هشدار:</strong> ایشا نوایته مئنه سیستم. آی پی ایشا سی عومو قابل رویت هی ار اصلاحی بکنیت. ار ایشا <strong>[$1 ورود]</strong> یا <strong>[$2 درست کردن یه حسآو]</strong>, اصلاحل ایشا به حسآو کاروری ایشا گذاشته ایوان وا منفعل حسآول دیه..",
-       "loginreqlink": "اÙ\88Û\8cدÙ\86 Ù\88Ù\87 سیستم",
-       "newarticletext": "ایشا یه لینک وه یه بلگنه که هنی وجود نارنه دنبال کردیته.\nسی درست کردن ای بلگه،نوشتنه مئنه جعبه زیر شروع کنیت(بینیتو [$1 help page] سی اصلاعات اضافی).\nار ایشا وا خطا ایچه هیسیت، ری <strong>back</strong> button مرورگر ایشا کلیژ کیت.",
-       "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n<کلاس دهانه=\"لینکل ساده\">[{{آدرس کامل سایت:{{#مخصوص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{آدرس کامل سایت:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کو ای بلگنه]</دهانه>.",
-       "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>، ولی ایشا نیترید ای بلگنه درس بکنیت.",
+       "showdiff": "نشۉدائن تغییرل",
+       "anoneditwarning": "<strong>هشدار:</strong> ایشا نۉایته مئنه سیستم. آی پی ایشا سی عۉمۉم قابل رۉیت هی ار اصلاحی بکنیت. ار ایشا <strong>[$1 ورود]</strong> یا <strong>[$2 راس کردن یه حسآۉ]</strong>, اصلاحل ایشا به حسآۉ کارۉری ایشا ھشتھ ایۉان ۉا منفعل حسآۉل دیه..",
+       "loginreqlink": "ئÛ\89Û\8cدÙ\86 Û\89Ú¾ سیستم",
+       "newarticletext": "ایشا یه لینک ۉھ یه بلگنه که هنی ۉجود نارنه دنبال کردیته.\nسی راس کردن ای بلگه،نوشتنه مئنه جعبه زیر شرۉع کنیت(بینیتۉ [$1 help page] سی اصلاعات اضافی).\nار ایشا ۉا خطا ایچه هیسیت، ری <strong>back</strong> button مرۉرگر ایشا کلیژ کیت.",
+       "noarticletext": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|جستن سی عنوان ای بلگه]] مئنه بلگه یل دیه.\n<span class=\"plainlinks\">[{{fullurl:{{#مخصۉص:نمایه یل}}|بلگه={{FULLPAGENAMEE}}}} جستن سی نمایل مربوط], یا [{{fullurl:{{FULLPAGENAME}}|اقدام=اصلاح}} اصلاح کۉ ای بلگنه]</span>.",
+       "noarticletext-nopermission": "د حال جاری متنی مئنه ای بلگه نیسس.\nایشا ایترید [[Special:Search/{{PAGENAME}}|search for this page title]] مئنه بلگل دیه، یا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>، ۉلی ایشا نیترید ای بلگنه راس بکنیت.",
        "editing": "درحال اصلاح $1",
-       "creating": "درست کردن $1",
+       "creating": "راس کردن $1",
        "editingsection": "درحال اصلاح $1 (قسمت)",
-       "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفاده بیه مئنه ای بلگه:",
+       "templatesused": "{{PLURAL:$1|قالب|قالبل}} اسفادھ بیه مئنه ای بلگه:",
        "template-protected": "(تحت حمایت)",
-       "template-semiprotected": "(نیمه حمایت وابیده)",
-       "hiddencategories": "ای بلگه عضو {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :",
-       "permissionserrorstext-withaction": "ایشا اجازه ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:",
-       "moveddeleted-notice": "ای بلگه حذف وابیده.\nحذف و انتقال سیاهه ای بلگه فراهم وابیده دومن سرچشمه.",
-       "viewpagelogs": "نشودائن نمایه ها سی ای بلگه",
-       "currentrev-asof": "آخرین نسخه تا $1",
+       "template-semiprotected": "(نیمه حمایت ۉابیدھ)",
+       "hiddencategories": "ای بلگه عضۉ {{PLURAL:$1|1 دسه بنی قائم|$1 دسه بنی یل قائم}} هیسس :",
+       "permissionserrorstext-withaction": "ایشا اجازھ ناریت که $2, سی ای {{PLURAL:$1|دلیل|دلیلل}}:",
+       "moveddeleted-notice": "ای بلگه حذف ۉابیدھ.\nحذف ۉ انتقال سیاهه ای بلگه فراهم ۉابیدھ دۉمن سرچشمه.",
+       "viewpagelogs": "نشۉدائن نمایه ها سی ای بلگه",
+       "currentrev-asof": "آخرین ۉرژن تا $1",
        "revisionasof": "اصلاح $1",
-       "revision-info": "نسخه $1 توسط {{GENDER:$6|$2}}$7",
+       "revision-info": "ۉرژن $1 تۉسط {{GENDER:$6|$2}}$7",
        "previousrevision": "← اصلاح قبلی",
-       "nextrevision": "نسخه جدیدتر →",
-       "currentrevisionlink": "آخرین نسخه",
+       "nextrevision": "ۉرژن نۉتر →",
+       "currentrevisionlink": "آخرین ۉرژن",
        "cur": "فعلی",
        "last": "قبلی",
        "rev-delundel": "قابلیت تغییر دائن",
        "history-title": "تاریخچه اصلاحل $1",
-       "difference-title": "تفاوت میان تجدید نطرل \"$1\"",
+       "difference-title": "فرخ ۉا بین تجدید نطرل \"$1\"",
        "lineno": "سطر $1:",
        "editundo": "لغو",
-       "diff-multi-sameuser": "({{PLURAL:$1|یه نسخه متوسط|$1 نسخه یل متوسط}} توسط کارور مشابه نشو نوابیه)",
+       "diff-multi-sameuser": "({{PLURAL:$1|یه ۉرزن متۉسط|$1 ۉرژنل متۉسط}} تۉسط کارۉر مشابه نشۉ نۉابیه)",
        "searchresults": "نتیجل جستن",
        "searchresults-title": "نتیجل جستن سی \"$1\"",
        "prevn": "قبلی {{PLURAL:$1|$1}}",
        "nextn": "بعدی {{PLURAL:$1|$1}}",
-       "nextn-title": "بعدÛ\8c $1 {{PLURAL:$1|Ù\86تÛ\8cجÙ\87\86تÛ\8cجÙ\87 Û\8cÙ\84}}",
+       "nextn-title": "بعدی $1 {{PLURAL:$1|نتیجه|نتیجل}}",
        "shown-title": "نشۉ دائن $1 {{PLURAL:$1|نتیجه|نتیجل}} د هر بلگه",
-       "viewprevnext": "مشاهده ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-new": "<strong>درست کو ای بلگنه \"[[:$1]]\" مئنه ای ویکی!</strong> {{PLURAL:$2|0=|همچنین سل کو بلگه ای که وا جستن پیداش کردیه.|همچنین سل کو نتایج جستنه.}}",
+       "viewprevnext": "مشاهدھ ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-new": "<strong>درست کۉ ای بلگنه \"[[:$1]]\" مئنه ای ۉیکی!</strong> {{PLURAL:$2|0=|همچنین سل کۉ بلگه ای که ۉا جستن پیداش کردیه.|همچنین سل کۉ نتیجل جستنه.}}",
        "searchprofile-articles": "بلگه محتۉا",
        "searchprofile-images": "چندرسانه ای",
        "searchprofile-everything": "همه چیا",
        "search-result-size": "$1 ({{PLURAL:$2|1 کلمه|$2 کلمل}})",
        "search-redirect": "(تغییر مسیر $1)",
        "search-section": "(قسمت $1)",
-       "search-suggest": "آیا منطور ایشا ای بی:$1",
+       "search-suggest": "آیا منطۉر ایشا ای بی:$1",
        "searchall": "همه",
-       "search-showingresults": "{{PLURAL:$4|Ù\86تÛ\8cجÙ\87 <strong>$1</strong> Ø² <strong>$3</strong>|Ù\86تÛ\8cجÙ\87 Û\8cÙ\84 <strong>$1 - $2</strong> Ø² <strong>$3</strong>}}",
-       "search-nonefound": "نتیجه ای مرتبط وا هونی که در خواست دیته نی.",
-       "mypreferences": "تنظیمات",
-       "right-writeapi": "استفاده د نوشتن به صورت API",
-       "newuserlogpage": "سÛ\8cاÙ\87Ù\87 Ø¯Ø±Ø³Øª Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Ù\88",
-       "enhancedrc-history": "سرÚ\86Ø´Ù\85Ù\87 Û\8cÙ\84",
+       "search-showingresults": "{{PLURAL:$4|نتیجه <strong>$1</strong> ز <strong>$3</strong>|نتیجل <strong>$1 - $2</strong> ز <strong>$3</strong>}}",
+       "search-nonefound": "نتیجه ای مرتبط ۉا هۉنی که در خۉاست دیته نی.",
+       "mypreferences": "تنظیمل",
+       "right-writeapi": "استفادھ د نوشتن ۉھ صۉرت API",
+       "newuserlogpage": "سÛ\8cاÙ\87Ù\87 Ø±Ø§Ø³ Ú©Ø±Ø¯Ù\86 Ø­Ø³Ø¢Û\89",
+       "enhancedrc-history": "تارÛ\8cØ®Ú\86Ú¾",
        "recentchanges": "تغییرل نۉ",
-       "recentchanges-legend": "گزینه یل تغییرات اخیر",
-       "recentchanges-summary": "شیار تغییرات اخیر مئنه ای بلگه به ویکی .",
+       "recentchanges-legend": "گزینه یل تغییرل اخیر",
+       "recentchanges-summary": "شیار تغییرل اخیر مئنه ای بلگه ۉھ ۉیکی .",
        "recentchanges-label-newpage": "ای اصلاح یه بلگه نو ایسازھ",
        "recentchanges-label-minor": "ای یه اصلاح کچک ۉابی",
        "recentchanges-label-bot": "ای اصلاح تۉسط یه رۉبات انجام ۉابیه",
-       "recentchanges-label-unpatrolled": "ای اصلاح هنو گشت نوابیده",
-       "recentchanges-label-plusminus": "اندازه بلگه وا ای تعداد بایت تغییر داده بیه",
-       "recentchanges-legend-heading": "'''Ø¢Ù\84شتÛ\8cا Ø§Û\8cسنی :'''",
-       "recentchanges-legend-newpage": "{{عضول انجومن:تغییرل اخیر-برچسب-بلگه نو}} (هنی سل کو [[Special:NewPages|لیست بلگل نو]])",
-       "rclistfrom": "نشودادن تغییرات نو وا شروع زه $3 $2",
-       "rcshowhideminor": "اصلاحات کوچیک $1",
-       "rcshowhideminor-show": "نشو دائن",
+       "recentchanges-label-unpatrolled": "ای اصلاح هۉنۉ گشت نۉابیدھ",
+       "recentchanges-label-plusminus": "اندازھ بلگه ۉا ای تعداد بایت تغییر دادھ بیه",
+       "recentchanges-legend-heading": "'''Ø¢Ù\84شتÛ\8cا Ø¦Û\8cÚ¾ سنی :'''",
+       "recentchanges-legend-newpage": "{{عضۉل انجۉمن:تغییرل اخیر-برچسب-بلگه نۉ}} (هنی سل کۉ [[Special:NewPages|لیست بلگل نۉ]])",
+       "rclistfrom": "نشۉدائن تغییرل نۉ ۉا شرۉع زھ $3 $2",
+       "rcshowhideminor": "اصلاحل کچک $1",
+       "rcshowhideminor-show": "نشۉ دائن",
        "rcshowhideminor-hide": "قائم کردن",
-       "rcshowhidebots": "$1 ربات‌ل یا بوتل",
-       "rcshowhidebots-show": "نشو دائن",
+       "rcshowhidebots": "$1 ربات‌ل یا بۉتل",
+       "rcshowhidebots-show": "نشۉ دائن",
        "rcshowhidebots-hide": "قائم کردن",
-       "rcshowhideliu": "$1 حسآول وارد وابیده",
+       "rcshowhideliu": "$1 حسآۉل وارد وابیدھ",
        "rcshowhideliu-hide": "قائم کردن",
-       "rcshowhideanons": "$1 کاروران داخل نوابیده",
-       "rcshowhideanons-show": "نشو دائن",
+       "rcshowhideanons": "$1 کارۉران داخل نۉابیدھ",
+       "rcshowhideanons-show": "نشۉ دائن",
        "rcshowhideanons-hide": "قائم کردن",
-       "rcshowhidemine": "$1 اصلاحات مو",
-       "rcshowhidemine-show": "نشو دائن",
+       "rcshowhidemine": "$1 اصلاحل مۉ",
+       "rcshowhidemine-show": "نشۉ دائن",
        "rcshowhidemine-hide": "قائم کردن",
-       "rclinks": "Ù\86Ø´Ù\88دادÙ\86 Ø¢Ø®Ø±Û\8cÙ\86 $1 ØªØºÛ\8cÛ\8cر Ø¯Ø± $2 روز اخیر؛ $3",
-       "diff": "تفاۉت",
+       "rclinks": "Ù\86Ø´Ù\88دائÙ\86 Ø¦Ø§Ø®Ø±Û\8cÙ\86 $1 ØªØºÛ\8cÛ\8cر Ù\85ئÙ\86 $2 روز اخیر؛ $3",
+       "diff": "فرخ",
        "hist": "گزارش",
        "hide": "قائم کردن",
-       "show": "نشو دائن",
+       "show": "نشۉ دائن",
        "minoreditletter": "رز",
        "newpageletter": "تا",
        "boteditletter": "ر",
        "rc-change-size-new": "$1 {{PLURAL:$1|بایت|بایتل}} بعد تغییر",
-       "recentchangeslinked": "تغییرل مربوط",
+       "recentchangeslinked": "تغییرل مربۉط",
        "recentchangeslinked-toolbox": "تغییرل مربوط",
-       "recentchangeslinked-title": "تغÛ\8cÛ\8cرÙ\87اÛ\8c Ù\85رتبط Ø¨ا $1",
-       "recentchangeslinked-summary": " ای بلگه خاص تغییرات اخیر مئنه بلگل لینک وابیده وه ای بلگنه نشو اده.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاه''' نشو داده ابون.",
-       "recentchangeslinked-page": "نوم بلگه:",
-       "recentchangeslinked-to": "نشو دائن تغییرات بلگلی که و بلگه داده بیه لینک داده شدنه به جای",
+       "recentchangeslinked-title": "تغÛ\8cÛ\8cرÙ\84 Ù\85رتبط Û\89ا $1",
+       "recentchangeslinked-summary": "ای بلگه خاص تغییرل اخیر مئنه بلگل لینک ۉابیدھ ۉھ ای بلگنه نشۉ ادھ.\nبلگلی که مئنه [[Special:Watchlist|لیست پیگیری یل]] ایشا هیسن به شکل '''سیاھ''' نشۉ دادھ ابۉن.",
+       "recentchangeslinked-page": "نۉم بلگه:",
+       "recentchangeslinked-to": "نشۉ دائن تغییرل بلگلی که ۉ بلگه دادھ بیه لینک دادھ شدنه به جای",
        "upload": "بلم گیر کردن فایل",
        "filedesc": "خلاصه",
-       "license-header": "صدور مجوز",
+       "license-header": "صدۉر مجۉز",
        "imgfile": "فایل",
        "file-anchor-link": "فایل",
        "filehist": "تاریخچه فایل",
        "filehist-comment": "توضیح",
        "imagelinks": "استفاده د فایل",
        "linkstoimage": "ذیل الذکر {{PLURAL:$1|لینکل بلگه|$1 لینک بلگل}} به ای فایل:",
-       "nolinkstoimage": "بلگه یلی که وه ای فایل لینک دائنه نی.",
+       "nolinkstoimage": "بلگه یلی که ۉھ ای فایل لینک دائنه نی.",
        "sharedupload-desc-here": "ای فایل ز $1 اۉمائه ۉ شاید د پرۉجه یل دیه مورد استفادھ ۉابین.\nتۉضیحتل ری [$2 بلگه تۉضیح فایل] دۉمن نشۉ ۉابیه .",
-       "upload-disallowed-here": "ایشا نیترید ای فایلنه بنویسید",
+       "upload-disallowed-here": "ایشا نیترید ای فایلنه بنۉیسید",
        "randompage": "بلگھ بختھ کی",
        "nbytes": "$1 {{PLURAL:$1|بایت|بایتل}}",
-       "nmembers": "$1 {{PLURAL:$1|عضو|اعضول}}",
+       "nmembers": "$1 {{PLURAL:$1|عضۉ|اعضۉل}}",
        "newpages": "بلگھ یل نۉ",
        "pager-older-n": "{{PLURAL:$1|قدیمی تر 1|قدیمی تر $1}}",
-       "booksources": "منوبع کتآو",
-       "booksources-search-legend": "جستن سی منوبع کتآو",
+       "booksources": "سرچشمل کتآۉ",
+       "booksources-search-legend": "جستن سی سرچشمل کتآۉ",
        "booksources-search": "جستن",
-       "log": "Ù\86Ù\85اÛ\8cÙ\87 Ù\87ا",
+       "log": "Ù\86Ù\85اÛ\8cÙ\84",
        "allarticles": "همه بلگل",
        "allpagessubmit": "رۉ",
        "categories": "دسه یل",
        "watch": "پی‌گیری",
        "dellogpage": "نمایه حذف",
        "rollbacklink": "عقب گرد",
-       "rollbacklinkcount": "ورگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}",
-       "protectlogpage": "نمایه حفاظت وحمایت",
+       "rollbacklinkcount": "ۉرگرد $1 {{PLURAL:$1|اصلاح|اصلاحل}}",
+       "protectlogpage": "نمایه حفاظت ۉحمایت",
        "namespace": "همدرنگل:",
        "invert": "انتخاب برعکس بوھ",
-       "tooltip-invert": "انتخاب کو ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشو انتخاب وابین(و همدرنگل مرتبط ار انتخاب وابین)",
+       "tooltip-invert": "انتخاب کۉ ای جعبنه سی قائم کردن تغییرل بلگلی که همدرنگلشۉ انتخاب ۉابین(ۉ همدرنگل مرتبط ار انتخاب ۉابین)",
        "namespace_association": "همدرنگل مرتبط",
-       "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا موضوع همدرنگ مرتبط وا همدرنگل انتخاب وابینه قرار بنی.",
+       "tooltip-namespace_association": "انتخاب کو ای جعبنه سیکه گپ یا مۉضۉع همدرنگ مرتبط ۉا همدرنگل انتخاب ۉابینه قرار بنی.",
        "blanknamespace": "(اصلی)",
-       "contributions": "{{GENDER:$1|کارور}} سهمل",
-       "mycontris": "مشارکتل",
-       "month": "در این ماه (و قبل زه آن):",
-       "year": "در ای سال (وقبل زه آن):",
+       "contributions": "{{GENDER:$1|سھمل}} کارۉر",
+       "mycontris": "سھمل",
+       "month": "مئنھ ای ماھ (ۉ قبل زھ ھۉ):",
+       "year": "مئنھ ای سال (ۉ قبل زھ ھۉ):",
        "whatlinkshere": "لینکل ای بلگه",
-       "whatlinkshere-title": "بلگل که لینک دائنه به \"$1\"",
+       "whatlinkshere-title": "بلگل که لینک دائنه ۉھ \"$1\"",
        "whatlinkshere-page": "بلگه",
-       "linkshere": "Ù\84Û\8cÙ\86Ú© Ø¨Ù\84Ú¯Ù\84 Ø°Û\8cÙ\84 Ø§Ù\84ذکر Ø¨Ù\87 '''[[:$1]]''':",
+       "linkshere": "Ù\84Û\8cÙ\86Ú© Ø¨Ù\84Ú¯Ù\84 Ø¯Û\89Ù\85Ù\86 Ø§Ù\84ذکر Û\89Ú¾ '''[[:$1]]''':",
        "isredirect": "بلگه تغییر مسیر",
-       "istemplate": "استفاده‌ وابیده داخل بلگه",
+       "istemplate": "استفادھ ۉابیدھ داخل بلگه",
        "isimage": "لینک فایل",
-       "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مورد قبلی$1}}",
-       "whatlinkshere-next": "{{PLURAL:$1|بعدی |مورد بعدی $1}}",
+       "whatlinkshere-prev": "{{PLURAL:$1|قبلی |مۉرد قبلی$1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|بعدی |مۉرد بعدی $1}}",
        "whatlinkshere-links": "← لینکل",
        "whatlinkshere-hideredirs": "$1 تغییرل مسیر",
        "whatlinkshere-hidetrans": "$1 تراگنجایش",
        "blocklink": "بسه بۉھ",
        "contribslink": "شراکتل",
        "movelogpage": "نمایه جابجایی",
-       "export": "بلگل صادره یل",
+       "export": "بلگل صادرھ",
        "thumbnail-more": "گپ کردن",
-       "tooltip-pt-userpage": "حسآو کاروری ایشا",
+       "tooltip-pt-userpage": "حسآۉ کارۉری ایشا",
        "tooltip-pt-mytalk": "بلگه گپ ایشا",
-       "tooltip-pt-preferences": "اولویتل مو",
-       "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرات هونونه  دنبال اکنین",
-       "tooltip-pt-mycontris": "لیست مشارکتل ایشا",
+       "tooltip-pt-preferences": "اۉلۉیتل مۉ",
+       "tooltip-pt-watchlist": "لیست بلگلی که ایشا تغییرل هۉنۉنه  دنبال اکنین",
+       "tooltip-pt-mycontris": "لیست سھمل ایشا",
        "tooltip-pt-login": "تۉصیه ۉابۉھ که ۉھ سیستم داخل بۉین. اما اجباری نیسس",
-       "tooltip-pt-logout": "رهدن زه سیستم",
+       "tooltip-pt-logout": "رتن زھ سیستم",
        "tooltip-pt-createaccount": "تۉصیه ۉابۉھ که حسآۉ کارۉری راس بکنیت یا ۉارد بۉین. اما اجباری نیسس",
        "tooltip-ca-talk": "قسھ د بلگه محتۉا",
        "tooltip-ca-edit": "ایسھ ترین ای بلگھ نھ اصلاح کنیت.لطفا قبل اصلاح ای بلگھ ز دۉکمه پیش نمایش استفاده کنیت",
-       "tooltip-ca-addsection": "آغاز کردن یه قسمت نو",
-       "tooltip-ca-viewsource": "اÛ\8c Ø¨Ù\84Ú¯Ù\87  ØªØ­Øª Ø­Ù\85اÛ\8cتÙ\87 Ø§Û\8cساترÛ\8cÙ\86 Ù\85Ù\86بعسÙ\87 Ø¨Ù\88ینین",
+       "tooltip-ca-addsection": "آغاز کردن یه قسمت نۉ",
+       "tooltip-ca-viewsource": "اÛ\8c Ø¨Ù\84Ú¯Ù\87  Ø¯Û\89Ù\85Ù\86 Ø­Ù\85اÛ\8cتÙ\87. \nاÛ\8cشا ØªØ±Û\8cÙ\86 Ø³Ø±Ú\86Ø´Ù\85Ú¾ Ø³Ú¾ Ø¨Û\89ینین",
        "tooltip-ca-history": "ۉیرگار",
        "tooltip-ca-move": "جابجاکردن ای بلگه",
        "tooltip-ca-watch": "اضاف کردن ای بلگه ۉھ لیست پیگیری یل ایشا",
        "tooltip-n-help": "ینه جا سی سیل کردن",
        "tooltip-t-whatlinkshere": "فهرست همه بلگه یل ۉیکی که ایچۉ لینک دارن",
        "tooltip-t-recentchangeslinked": "تغییرل آخر مئن بلگھ کھ لینک دانه وھ ای بلگھ",
-       "tooltip-feed-atom": "تغذیه کوچیک ترین جزء  ای بلگه",
-       "tooltip-t-contributions": "یه لیس ز مشارکت کننده یل و مقاله دهنده یل ای بلگه",
+       "tooltip-feed-atom": "تغذیه کچک ترین جزء  ای بلگه",
+       "tooltip-t-contributions": "یه لیست ز مشارکت کنندھ یل ۉ مقاله دهندھ یل ای بلگه",
        "tooltip-t-upload": "بلم گیر کردن فایلل",
        "tooltip-t-specialpages": "بلگھ یل ۉیجه",
        "tooltip-t-print": "ورژن سی چاپ ای بلگھ",
        "tooltip-t-permalink": "لینکل دائمی ۉھ ای ۉرژن ای بلگھ",
        "tooltip-ca-nstab-main": "دیئن بلگھ محتۉا",
-       "tooltip-ca-nstab-user": "دیئن بلگه کارور",
+       "tooltip-ca-nstab-user": "دیئن بلگه کارۉر",
        "tooltip-ca-nstab-special": "ای بلگه ھا ۉیجھ و ایشا نیترین خود ای بلگنه اصلاح کنیت",
-       "tooltip-ca-nstab-project": "دیئن بلگه پروجه",
+       "tooltip-ca-nstab-project": "دیئن بلگه پرۉجه",
        "tooltip-ca-nstab-image": "دیئن بلگه فایل",
        "tooltip-ca-nstab-template": "دیئن قالب",
        "tooltip-ca-nstab-category": "دیئن بلگه دسه بنی",
-       "tooltip-save": "ضبط کردن تغییراتت",
-       "tooltip-preview": " دیئن تغییرات ، لطفا قبل ضبط کردن د ای خدمت استفاده کنیت!",
-       "tooltip-diff": "دÛ\8cدÙ\86 ØªØºÛ\8cÛ\8cراتÛ\8c Ú©Ù\87 Ø§Û\8cسا Ù\85ن ای متن انجام دادینه",
+       "tooltip-save": "ضبط کردن تغییرل ایشا",
+       "tooltip-preview": " دیئن تغییرل ، لطفا قبل ضبط کردن د ای خدمت استفادھ کنیت!",
+       "tooltip-diff": "دÛ\8cئÙ\86 ØªØºÛ\8cÛ\8cرÙ\84Û\8c Ú©Ù\87 Ø§Û\8cشا Ù\85ئن ای متن انجام دادینه",
        "tooltip-rollback": "\"اعادھ\" ۉرگردۉندن به وضع اولیه سی ای بلگه که سی مشارکت  آخر اصلاح ۉابیدھ ۉا یھ کلیک",
-       "tooltip-undo": "\"لغو\"ورگشت ای اصلاح و وا ویدن فرم اصلاح مئنه پیش نمایش.اجازه ایده که یه دلیل وه خلاصه اضافه بکنی.",
-       "tooltip-summary": "یه خلاصه کوچکی بنویس",
-       "simpleantispam-label": "اÙ\86تخاب Ø¢Ù\86تÛ\8c-اسپÙ\85\nپر <strong>Ù\86Ú©Ù\86Û\8cد</strong> اینه مئن!",
+       "tooltip-undo": "\"لغو\"ۉرگشت ای اصلاح ۉ ۉا ۉیدن فرم اصلاح مئنه پیش نمایش.اجازھ ایدھ که یه دلیل ۉھ خلاصه اضافه بکنی.",
+       "tooltip-summary": "یه خلاصه کچکی بنویسیت",
+       "simpleantispam-label": "اÙ\86تخاب Ø¢Ù\86تÛ\8c-اسپÙ\85\nپر <strong>Ù\86Ú©Ù\86Û\8cت</strong> اینه مئن!",
        "pageinfo-toolboxlink": "اطلاعات بلگه",
        "previousdiff": "← اصلاح قدیمی",
-       "nextdiff": "اصلاح جدیدتر→",
-       "file-info-size": "$1 × $2 پیکسل, اندازه فایل: $3, MIME نوع: $4",
+       "nextdiff": "اصلاح نۉتر→",
+       "file-info-size": "$1 × $2 پیکسل, اندازھ فایل: $3, MIME نۉع: $4",
        "file-nohires": "قابلیت تفکیک بالاتری در دسترس نی.",
-       "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازه فایل: $3",
-       "show-big-image": "اندازه اصلی",
-       "show-big-image-preview": "اندازه ای پیش نمایش:$1.",
+       "svg-long-desc": "SVG فایل, تقریبا$1 × $2 پیکسل, اندازھ فایل: $3",
+       "show-big-image": "اندازھ اصلی",
+       "show-big-image-preview": "اندازھ ای پیش نمایش:$1.",
        "show-big-image-other": "دیه {{PLURAL:$2|تفکیک پذیری|تفکیک پذیری یل}}: $1.",
        "show-big-image-size": "$1 × $2 پیکسلل",
        "metadata": "فرادادھ",
-       "metadata-help": " ای فایل دارای اطلاعات اضافه‌ای هی که احتمالاً با دوربین دیجیتالی‌ یا پویشگری که سی ایجاد یا دیجیتالی‌کردن هو به کار رهده اضاف وابیده . ایر فایل زه وضعیت اولیه اس تغییر داده وابیده بوه ممکنه همه توضیحات موجود اطلاعات عکس را منعکس نکنه",
+       "metadata-help": " ای فایل دارای اطلاعات اضافه‌ای هی که احتمالاً ۉا دۉربین دیجیتالی‌ یا پۉیشگری که سی ایجاد یا دیجیتالی‌کردن هۉ ۉھ کار رهدھ اضاف ۉابیدھ . ایر فایل زھ ۉضعیت اۉلیه اس تغییر دادھ ۉابیدھ بوھ ممکنه همه توضیحات مۉجود اطلاعات عیس رنھ منعکس نکنه.",
        "metadata-fields": "زمینه یل عیس فرادادھ که مئنه ای پیۉم لیس ۉابینه ، قرار ۉابی گرتن ری بلگه نۉمایش عیس ۉقتی که جدۉل فرادادھ فرۉریخت.\nبقیه قائم میشن ۉھ صۉرت پیش فرض.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-orientation": "گرایش",
        "exif-xresolution": "تفکیک پذیری افقی",
-       "exif-yresolution": "تفکیک پذیری عمودی",
-       "exif-datetime": "تغییرات تاریخ و زمان فایل",
-       "exif-make": "کمپانی سازنده دوربین",
-       "exif-model": "مدل دوربین",
-       "exif-software": "نرم افزار مورد استفاده",
-       "exif-exifversion": "نسخه Exif",
+       "exif-yresolution": "تفکیک پذیری عمۉدی",
+       "exif-datetime": "تغییرل تاریخ و زمان فایل",
+       "exif-make": "کۉمپانی راسندھ دۉربین",
+       "exif-model": "مدل دۉربین",
+       "exif-software": "نرم افزار مۉرد استفادھ",
+       "exif-exifversion": "ۉرژن Exif",
        "exif-colorspace": "فضای رنگ",
-       "exif-datetimeoriginal": "تاریخ و زمان تولید داده یل",
-       "exif-datetimedigitized": "تاریخ و زمان دیجیتالی وابیدن",
+       "exif-datetimeoriginal": "تاریخ ۉ زمان تۉلید دادھ یل",
+       "exif-datetimedigitized": "تاریخ ۉ زمان دیجیتالی ۉابیدن",
        "exif-orientation-1": "عادی",
        "namespacesall": "همه",
        "monthsall": "همه",
        "specialpages": "بلگھ یل ۉیجھ",
        "tag-filter": "[[Special:Tags|برچسب]] فیلتر:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|برچسب|برچسبل}}]]: $2)",
-       "logentry-delete-delete": "$1 {{GENDER:$2|حذف وابیده}} بلگه $3",
-       "logentry-move-move": "$1 {{GENDER:$2|انتقال داده بیه}} بلگه $3 به $4",
+       "logentry-delete-delete": "$1 {{GENDER:$2|حذف ۉابیدھ}} بلگه $3",
+       "logentry-move-move": "$1 {{GENDER:$2|انتقال دادھ بیه}} بلگه $3 ۉھ $4",
        "logentry-newusers-create": "حسآۉ کارۉر $1 ۉابیه {{GENDER:$2|راس ۉیدھ }}",
-       "logentry-upload-upload": "$1 {{GENDER:$2|بارگذاری وابیده}} $3",
+       "logentry-upload-upload": "$1 {{GENDER:$2|بلم گیر کردھ ۉابی}} $3",
        "searchsuggest-search": "جستن"
 }
index f0b3079..09d4ecd 100644 (file)
        "resetpass-abort-generic": "Paroles nomaiņu pārtrauca paplašinājums.",
        "passwordreset": "Paroles atiestatīšana",
        "passwordreset-text-one": "Aizpildiet šo veidlapu, lai atiestatītu savu paroli.",
-       "passwordreset-legend": "Atiestatīt paroli",
        "passwordreset-disabled": "Paroles atiestates šajā viki ir atspējotas.",
        "passwordreset-emaildisabled": "Šajā viki ir atspējotas e-pasta iespējas.",
        "passwordreset-username": "Lietotājvārds:",
index 9fed86b..69e02e0 100644 (file)
        "passwordreset": "Менување на лозинка",
        "passwordreset-text-one": "Пополнете го образецов за да ја измените лозинката.",
        "passwordreset-text-many": "{{PLURAL:$1|Пополнете едно од полињата за добиете привремена лозинка по е-пошта.}}",
-       "passwordreset-legend": "Нова лозинка",
        "passwordreset-disabled": "На ова вики е оневозможено задавање на нова лозинка.",
        "passwordreset-emaildisabled": "Можностите за е-пошта се исклучени на ова вики",
        "passwordreset-username": "Корисничко име:",
        "resettokens": "Врати одново шифри",
        "resettokens-text": "Можете шифрите да ги вратите одново што овозможува пристап до извесни лични податоци што се однесуваат на вашата овдешна сметка.\n\nОва треба да се направи ако по грешка сте споделиле нешто со некого или ако сметката ви е изложена на опасност.",
        "resettokens-no-tokens": "Нема шифри за враќање.",
-       "resettokens-legend": "Враќање одново на шифри",
        "resettokens-tokens": "Шифри:",
        "resettokens-token-label": "$1 (тековна вредност: $2)",
        "resettokens-watchlist-token": "Шифра за каналот (Атом/RSS) на [[Special:Watchlist|измени во набљудуваните страници]]",
        "version-libraries": "Востановени библиотеки",
        "version-libraries-library": "Библиотека",
        "version-libraries-version": "Верзија",
+       "version-libraries-license": "Лиценца",
+       "version-libraries-description": "Опис",
+       "version-libraries-authors": "Автори",
        "redirect": "Пренасочување по податотеки, корисник или назнака на преработка",
        "redirect-legend": "Пренасочување кон податотека или страница",
        "redirect-summary": "Оваа службена страница пренасочува кон податотека (се задава името), страница (се задава назнаката на преработката или страницата) или корисничка странца (се задава бројчената назнака на корисникот). Употреба: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] или [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Кмерски",
        "special-characters-title-endash": "цртичка",
        "special-characters-title-emdash": "тире",
-       "special-characters-title-minus": "минус"
+       "special-characters-title-minus": "минус",
+       "mw-widgets-titleinput-description-new-page": "страницата сè уште не постои",
+       "mw-widgets-titleinput-description-redirect": "пренасочување кон $1"
 }
index 8290fd0..18be98f 100644 (file)
        "passwordreset": "രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക",
        "passwordreset-text-one": "രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാനായി ഈ ഫോം പൂരിപ്പിക്കുക.",
        "passwordreset-text-many": "{{PLURAL:$1|ഇമെയിൽ വഴി താത്കാലിക രഹസ്യവാക്ക് ലഭിക്കാനായി താഴെ നൽകിയിരിക്കുന്നവയിൽ ഏതെങ്കിലുമൊന്ന് പൂരിപ്പിച്ചു നൽകുക.}}",
-       "passwordreset-legend": "രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക",
        "passwordreset-disabled": "ഈ വിക്കിയിൽ രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കലുകൾ പ്രവർത്തരഹിതമാക്കിയിരിക്കുകയാണ്.",
        "passwordreset-emaildisabled": "ഈ വിക്കിയിൽ ഇമെയിൽ സൗകര്യങ്ങൾ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു.",
        "passwordreset-username": "ഉപയോക്തൃനാമം:",
        "resettokens": "ചീട്ടുകൾ പുനഃസജ്ജീകരിക്കുക",
        "resettokens-text": "താങ്കളുടെ അംഗത്വവുമായി ബന്ധപ്പെട്ടുള്ള ചില സ്വകാര്യവിവരങ്ങളിലേയ്ക്ക് ഇവിടെ ലഭ്യത സാദ്ധ്യമാക്കുന്ന ചീട്ടുകൾ താങ്കൾക്ക് പുനഃസജ്ജീകരിക്കാവുന്നതാണ്.\n\nതാങ്കളുടെ അംഗത്വവിവരങ്ങൾ മറ്റാർക്കെങ്കിലും അറിയാതെ കൈമാറിയിട്ടുണ്ടെങ്കിലോ താങ്കളുടെ അംഗത്വം അപഹരിക്കപ്പെട്ടുവെങ്കിലോ താങ്കളിത്  ചെയ്യേണ്ടതാണ്.",
        "resettokens-no-tokens": "ചീട്ടുകളൊന്നും പുനഃസജ്ജീകരിക്കാനില്ല.",
-       "resettokens-legend": "ചീട്ടുകൾ പുനഃസജ്ജീകരിക്കുക",
        "resettokens-tokens": "ചീട്ടുകൾ:",
        "resettokens-token-label": "$1 (ഇപ്പോഴത്തെ വില: $2)",
        "resettokens-watchlist-token": " [[Special:Watchlist|താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളിലുണ്ടാകുന്ന മാറ്റങ്ങളുടെ]] വെബ് ഫീഡ് (ആറ്റം/ആർ.എസ്.എസ്.) ചീട്ട്",
        "yourdiff": "വ്യത്യാസങ്ങൾ",
        "copyrightwarning": "{{SITENAME}} സംരംഭത്തിൽ എഴുതപ്പെടുന്ന ലേഖനങ്ങളെല്ലാം $2 പ്രകാരം സ്വതന്ത്രമാണ് (വിശദാംശങ്ങൾക്ക് $1 കാണുക). താങ്കൾ എഴുതുന്ന ലേഖനം തിരുത്തപ്പെടുന്നതിലോ ഒഴിവാക്കപ്പെടുന്നതിലോ എതിർപ്പുണ്ടെങ്കിൽ ദയവായി ലേഖനമെഴുതാതിരിക്കുക.\n\nഈ ലേഖനം താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും അതല്ലെങ്കിൽ പകർപ്പവകാശനിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്ന് പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക.\n\n'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്.'''",
        "copyrightwarning2": "{{SITENAME}} സംരംഭത്തിൽ താങ്കൾ എഴുതി ചേർക്കുന്നതെല്ലാം മറ്റുപയോക്താക്കൾ തിരുത്തുകയോ, മാറ്റം വരുത്തുകയോ, ഒഴിവാക്കുകയോ ചെയ്തേക്കാം. താങ്കൾ എഴുതി ചേർക്കുന്നതു മറ്റ് ഉപയോക്താക്കൾ തിരുത്തുന്നതിലോ ഒഴിവാക്കുന്നതിലോ താങ്കൾക്ക് എതിർപ്പുണ്ടെങ്കിൽ ദയവായി ലേഖനമെഴുതാതിരിക്കുക.\nഇതു താങ്കൾത്തന്നെ എഴുതിയതാണെന്നും, അതല്ലെങ്കിൽ പകർപ്പവകാശ നിയമങ്ങളുടെ പരിധിയിലില്ലാത്ത ഉറവിടങ്ങളിൽനിന്നും പകർത്തിയതാണെന്നും ഉറപ്പാക്കുക (കുടുതൽ വിവരത്തിനു $1 കാണുക).\n'''പകർപ്പവകാശ സംരക്ഷണമുള്ള സൃഷ്ടികൾ ഒരു കാരണവശാലും ഇവിടെ പ്രസിദ്ധീകരിക്കരുത്!'''",
+       "editpage-cannot-use-custom-model": "ഈ താളിന്റെ ഉള്ളടക്ക മാതൃക മാറ്റാൻ കഴിയില്ല.",
        "longpageerror": "'''പിഴവ്: താങ്കൾ സമർപ്പിച്ച എഴുത്തുകൾക്ക് {{PLURAL:$1|ഒരു കിലോബൈറ്റ്|$1 കിലോബൈറ്റ്സ്}} വലിപ്പമുണ്ട്. പരമാവധി അനുവദനീയമായ വലിപ്പം {{PLURAL:$2|ഒരു കിലോബൈറ്റ്|$2 കിലോബൈറ്റ്സ്}} ആണ്‌. അതിനാലിതു സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.'''",
        "readonlywarning": "'''മുന്നറിയിപ്പ്: ഡേറ്റാബേസ് പരിപാലനത്തിനു വേണ്ടി ബന്ധിച്ചിരിക്കുന്നു, അതുകൊണ്ട് താങ്കളിപ്പോൾ വരുത്തിയ മാറ്റങ്ങൾ സേവ് ചെയ്യാൻ സാദ്ധ്യമല്ല.''' താങ്കൾ വരുത്തിയ മാറ്റങ്ങൾ ഒരു ടെക്സ്റ്റ് ഫയലിലേക്ക് പകർത്തി (കോപ്പി & പേസ്റ്റ്) പിന്നീടുപയോഗിക്കുന്നതിനായി കരുതിവക്കാൻ താല്പര്യപ്പെടുന്നു. ഡേറ്റാബേസ് ബന്ധിച്ച അഡ്മിനിസ്ട്രേറ്റർ നൽകിയ വിശദീകരണം: $1",
        "protectedpagewarning": "'''മുന്നറിയിപ്പ്:  ഈ താൾ കാര്യനിർവാഹക പദവിയുള്ളവർക്കു മാത്രം തിരുത്താൻ സാധിക്കാവുന്ന തരത്തിൽ സം‌രക്ഷിക്കപ്പെട്ടിരിക്കുന്നു.''' അവലംബമായി രേഖകളിൽ ലഭ്യമായ ഏറ്റവും പുതിയ വിവരം താഴെ നൽകിയിരിക്കുന്നു:",
        "badsig": "അനുവദനീയമല്ലാത്ത രൂപത്തിലുള്ള ഒപ്പ്. HTML ടാഗുകൾ പരിശോധിക്കുക.",
        "badsiglength": "താങ്കളുടെ ഒപ്പിനു നീളം കൂടുതലാണ്‌.\nഅതിലെ {{PLURAL:$1|അക്ഷരത്തിന്റെ|അക്ഷരങ്ങങ്ങളുടെ}} എണ്ണം $1 ൽ താഴെയായിരിക്കണം.",
        "yourgender": "ആൺ / പെൺ?",
-       "gender-unknown": "à´µàµ\86ളിപàµ\8dà´ªàµ\86à´\9fàµ\81à´¤àµ\8dതാനാà´\97àµ\8dരഹിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനിലàµ\8dà´²",
+       "gender-unknown": "താà´\99àµ\8dà´\95à´³àµ\86 à´ªà´°à´¾à´®àµ¼à´¶à´¿à´\95àµ\8dà´\95àµ\81à´®àµ\8dà´ªàµ\8bൾ, à´¸à´¾à´¦àµ\8dà´§àµ\8dയമാà´\95àµ\81à´¨àµ\8dനയിà´\9fà´¤àµ\8dà´¤àµ\8d à´²à´¿à´\82à´\97രഹിത à´µà´¾à´\95àµ\8dà´\95àµ\81à´\95ൾ à´¸àµ\8bà´«àµ\8dâ\80\8cà´±àµ\8dà´±àµ\8dâ\80\8cà´µàµ\87ർ à´\89പയàµ\8bà´\97à´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതാണàµ\8d",
        "gender-male": "പുരുഷൻ",
        "gender-female": "സ്ത്രീ",
        "prefs-help-gender": "ഈ സജ്ജീകരണം നിർബന്ധമല്ല.\nസോഫ്റ്റ്‌വെയർ ഉപയോഗിച്ച് സ്ത്രീകളേയും പുരുഷന്മാരേയും ശരിയായി സംബോധന ചെയ്യാൻ ഉപയോഗിക്കുന്നു.\nഈ വിവരം പരസ്യമായി ലഭ്യമായിരിക്കുന്നതാണ്‌.",
        "php-uploaddisabledtext": "പി.എച്ച്.പി.യിൽ പ്രമാണ അപ്‌‌ലോഡുകൾ സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.\nദയവായി file_uploads ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.",
        "uploadscripted": "ഈ പ്രമാണത്തിൽ വെബ് ബ്രൗസർ തെറ്റായി വ്യാഖ്യാനിച്ചേക്കാവുന്ന എച്ച്.റ്റി.എം.എൽ. അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് കോഡ് ഉണ്ട്.",
        "uploaded-script-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സ്ക്രിപ്റ്റ് ചെയ്യാവുന്ന ഭാഗമായ \"$1\" കണ്ടെത്തി.",
+       "uploaded-hostile-svg": "അപ്‌ലോഡ് ചെയ്ത എസ്.വി.ജി. പ്രമാണത്തിൽ സുരക്ഷിതമല്ലാത്ത സി.എസ്.എസ്. സ്റ്റൈൽ ഭാഗം കണ്ടെത്താനായി.",
        "uploadscriptednamespace": "ഈ എസ്.വി.ജി. പ്രമാണത്തിൽ ഉപയോഗിക്കാൻ പാടില്ലാത്ത നാമമേഖലയായ \"$1\" ഉണ്ട്",
        "uploadinvalidxml": "അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിലെ എക്സ്.എം.എൽ. പാഴ്സ് ചെയ്യാൻ കഴിയില്ല.",
        "uploadvirus": "പ്രമാണത്തിൽ വൈറസുണ്ട്! വിശദാംശങ്ങൾ: $1",
        "nmembers": "{{PLURAL:$1|ഒരു അംഗം|$1 അംഗങ്ങൾ}}",
        "nmemberschanged": "$1 → {{PLURAL:$2|ഒരു അംഗം|$2 അംഗങ്ങൾ}}",
        "nrevisions": "{{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}}",
-       "nviews": "{{PLURAL:$1|ഒരു സന്ദർശനം|$1 സന്ദർശനങ്ങൾ}}",
        "nimagelinks": "{{PLURAL:$1|ഒരു താളിൽ|$1 താളുകളിൽ}} ഉപയോഗിച്ചിരിക്കുന്നു",
        "ntransclusions": "{{PLURAL:$1|ഒരു താളിൽ|$1 താളുകളിൽ}} ഉപയോഗിച്ചിരിക്കുന്നു",
        "specialpage-empty": "ഈ താൾ ശൂന്യമാണ്.",
        "version-libraries": "ഇൻസ്റ്റോൾ ചെയ്തിട്ടുള്ള ലൈബ്രറികൾ",
        "version-libraries-library": "ലൈബ്രറി",
        "version-libraries-version": "പതിപ്പ്",
+       "version-libraries-license": "ഉപയോഗാനുമതി",
+       "version-libraries-description": "വിവരണം",
+       "version-libraries-authors": "രചയിതാക്കൾ",
        "redirect": "പ്രമാണത്താൽ, ഉപയോക്താവിനാൽ, താളിനാൽ അഥവാ നാൾപ്പതിപ്പ് ഐ.ഡി.യാൽ ചെയ്യുന്ന തിരിച്ചുവിടൽ",
        "redirect-legend": "ഒരു പ്രമാണത്തിലോട്ടോ താളിലോട്ടോ ഉള്ള തിരിച്ചുവിടൽ",
        "redirect-summary": "ഈ പ്രത്യേക താൾ ഒരു പ്രമാണത്തിലേയ്ക്കോ (പ്രമാണത്തിന്റെ പേര് തന്നിട്ടുണ്ട്), ഒരു താളിലേയ്ക്കോ (നാൾപ്പതിപ്പിന്റെ ഐ.ഡി. അല്ലെങ്കിൽ താൾ തന്നിട്ടുണ്ട്), അല്ലെങ്കിൽ ഒരു ഉപയോക്തൃതാളിലേയ്ക്കോ (ഉപയോക്താവിന്റെ സംഖ്യാ ഐ.ഡി. തന്നിട്ടുണ്ട്) തിരിച്ചുവിടുന്നു. ഉപയോഗം: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]],  [[{{#Special:Redirect}}/revision/328429]], അല്ലെങ്കിൽ [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "ഖെമർ",
        "special-characters-title-endash": "ഇം  ഡാഷ്",
        "special-characters-title-emdash": "എം ഡാഷ്",
-       "special-characters-title-minus": "വ്യവകലന ചിഹ്നം"
+       "special-characters-title-minus": "വ്യവകലന ചിഹ്നം",
+       "mw-widgets-titleinput-description-new-page": "താൾ ഇപ്പോൾ നിലവിലില്ല",
+       "mw-widgets-titleinput-description-redirect": "$1 എന്ന താളിലേക്കുള്ള തിരിച്ചുവിടൽ"
 }
index e028891..6a6a266 100644 (file)
@@ -47,7 +47,8 @@
                        "Darshan kandolkar",
                        "Steinsplitter",
                        "Macofe",
-                       "Nemo bis"
+                       "Nemo bis",
+                       "Suyog"
                ]
        },
        "tog-underline": "दुव्यांचे अधोरेखन:",
        "hidetoc": "लपवा",
        "collapsible-collapse": "निपात करा",
        "collapsible-expand": "विस्तार",
+       "confirmable-yes": "होय",
+       "confirmable-no": "नाही",
        "thisisdeleted": "$1चे अवलोकन किंवा पुनर्स्थापन करायचे ?",
        "viewdeleted": " $1चे अवलोकन करायचे?",
        "restorelink": "{{PLURAL:$1|एक वगळलेले संपादन|$1 वगळलेली संपादने}}",
        "passwordreset": "परवलीचा शब्द पूर्ववत करा",
        "passwordreset-text-one": "आपला परवलीचा शब्द बदलण्यास हे आवेदन भरा.",
        "passwordreset-text-many": "{{PLURAL:$1|आपला तात्पुरता परवलीचा शब्द विपत्रामार्फत प्राप्त करण्यास खालील क्षेत्रातील एखादे भरा.}}",
-       "passwordreset-legend": "परवलीचा शब्द पूर्ववत करा",
        "passwordreset-disabled": "या विकिवर परवलीचा शब्द पुनर्स्थापित करता येत नाही.",
        "passwordreset-emaildisabled": "या विकिवर विपत्र पाठविणे 'अशक्य' करण्यात आलेले आहे.",
        "passwordreset-username": "सदस्यनाव:",
        "resettokens": "ओळखचिन्ह(टोकन) पुनर्स्थापित करा",
        "resettokens-text": "येथे आपल्या खात्यात असलेला व्यक्तिगत मजकूरापर्यंत पोचण्यासाठी आपण ओळखचिन्ह(टोकन) पुनर्स्थापित करू शकता.\nआपण जर तो अपघाताने कोणासमवेत सहभागीला असेल किंवा आपले खात्याची आपण तडजोड केली असल्यास, हे करावयास हवे.",
        "resettokens-no-tokens": "पुनर्स्थापित करण्यासाठी कोणतीही ओळखचिन्हे नाहीत.",
-       "resettokens-legend": "ओळखचिन्ह(टोकन) पुनर्स्थापित करा",
        "resettokens-tokens": "ओळखचिन्हे:",
        "resettokens-token-label": "$1 (सद्य मुल्य: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|आपल्या निरीक्षणसूचीतील पानांमधील बदलाचा]] वेब रसद बिल्ला (ॲटम/आरएसएस)",
        "nmembers": "$1 {{PLURAL:$1|सदस्य}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|सदस्य}}",
        "nrevisions": "$1 {{PLURAL:$1|आवर्तन|आवर्तने}}",
-       "nviews": "$1 {{PLURAL:$1|दृषीपथ|दृषीपथ}}",
        "nimagelinks": "$1{{PLURAL:$1|पानावर|पानांवर}}",
        "ntransclusions": "$1{{PLURAL:$1|पानावर|पानांवर}} वापर",
        "specialpage-empty": "या अहवालाकरिता(रिपोर्ट)कोणताही निकाल नाही.",
index 19e6916..5708727 100644 (file)
        "cancel": "ول هاکردن",
        "moredotdotdot": "ویـشـتـه...",
        "mypage": "مه صفحه",
-       "mytalk": "مه گپ",
+       "mytalk": "گپ",
        "anontalk": "گپ بزوئن اینتا آی‌پی وسّه",
        "navigation": "بگردستن",
        "and": "&#32;و",
        "actions": "عملکاردون",
        "namespaces": "ایسم فضائون",
        "variants": "گویش‌ئون",
+       "navigation-heading": "ناوبری منو",
        "errorpagetitle": "خطا!",
        "returnto": "بردگستن تا $1",
        "tagline": "{{SITENAME}} جه",
        "permalink": "بموندستنی لینک",
        "print": "پرینت",
        "view": "نمایش",
+       "view-foreign": "هارشی‌ین $1 دله",
        "edit": "دچی‌ین",
        "create": "بساتن",
+       "create-local": "مَله‌یی توضیحات ره بی‌یشتن",
        "editthispage": "این صفحه ره دچی‌ین",
        "create-this-page": "این صفحه ره شِما بساجین",
        "delete": "پاک هاکردن",
        "articlepage": "نمایش صفحه",
        "talk": "گپ",
        "views": "هارشی‌ئون",
-       "toolbox": "اَبزارِ جا",
+       "toolbox": "ابزارون",
        "userpage": "کارور صفحه ره سِراق هدائن",
        "projectpage": "بدی‌ین پروژه‌ی ِصفحه",
        "imagepage": "بدی‌ین ِعکس ِصفحه",
        "viewyourtext": "بتونّی '''شه بنویشته چیون''' مبدأ ره این صفحه دله هارشین و کپی هاکنین:",
        "protectedinterface": "این صفحه ارائه‌دهندهٔ متنی واسط کارور این نرم‌افزار هسته و به منظور پیشگیری از خرابکاری زلفین بزه‌بیّه.",
        "yourname": "شمه کاروری‌نوم:",
+       "userlogin-yourname": "کاروری نوم",
+       "userlogin-yourname-ph": "شه کاروری نوم ره بنویسین",
        "yourpassword": "شمه پسورد",
+       "userlogin-yourpassword": "رمز",
        "yourpasswordagain": "پسورد ره دِباره بنویس",
        "remembermypassword": "مه رمز ره (تا حداکثر $1 {{PLURAL:$1|روز|روز}}) این مرورگر سر یاد نکان",
        "yourdomainname": "شمه کاروری نوم",
        "mailmypassword": "اتا نو پسورد بساز و برسِن",
        "accountcreated": "کاروری نوم دِرِس بیّه",
        "accountcreatedtext": "کاروری نوم، $1 بساته بیّه.",
+       "loginlanguagelabel": "زوون: $1",
+       "pt-login": "دله بموئن",
+       "pt-createaccount": "عضو بواشین",
+       "pt-userlogout": "دربوردن",
        "newpassword": "نو پسورد:",
        "passwordreset-username": "کاروری نوم:",
        "passwordreset-domain": "دامنه:",
        "preview": "پیش‌پیش سِراق هدائن",
        "showpreview": "پیش‌پیش سِراق هدائن",
        "showdiff": "تغییرات ِسراق هدائن",
-       "anoneditwarning": "'''هشدار:''' شِما هنتا عضو نَیینی.\nشمه آی‌پی آدرِس تاریخچه دله موندنه.",
+       "anoneditwarning": "<strong>هشدار:</strong> شما هَنتا لاگین نَیی. اگه اتا تغییر انجام هادی، بقیه تونّه ته آی‌پی ره هارشِن. اگه <strong>[$1 لاگین بَواشی (دله بئی)]</strong> یا <strong>[$2 اتا کاروری حیساب بسازی]</strong>، شمه دَچی‌‎یه‌ئون شمه نوم جه ثبت وانه و اتسری مزایا شمه وسّه دانّه.",
        "anonpreviewwarning": "''شما هنتا عضو نَیینی، اگه اتچی بنویسین، شمه آی‌پی ِلینگِ‌رج اینجه موندنه.''",
        "missingcommenttext": "ات‌چی اینجه بنویسین که شمه توضیح بوو",
        "summary-preview": "خلاصه‌ی پیش‌پیش سِراق هدائن:",
        "accmailtitle": "پسورد ره برسِنیمی.",
        "accmailtext": "اتا تصادفی پسور بساته بیّه [[User talk:$1|$1]] وسّه $2 سَر برسِنی‌یه بیّه.\n\nاین ترنه کاروری حساب ِپسور، سامانه دله بموئن په، ''[[Special:ChangePassword|ات‌تی]]'' بتونده عوض بوو.",
        "newarticle": "(ترنه)",
+       "noarticletext": "این صفحه اسا هیچ بنویشته‌یی ندانّه.\nشما بتونّی دیگه صفحه‌ئون دله [[Special:Search/{{PAGENAME}}|این صفحه ره چرخه‌تو هاکنین]]،\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} سیاهه‌ئون ره چرخه‌تو هاکردن]،\nیا [{{fullurl:{{FULLPAGENAME}}|action=edit}} این صفحه ره دَچینین]</span>.",
+       "noarticletext-nopermission": "این صفحه اسا هیچ بنویشته‌یی ندانّه.\nشما بتونّی دیگه صفحه‌ئون دله [[Special:Search/{{PAGENAME}}|این صفحه ره چرخه‌تو هاکنی]]،\nیا <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} سیاهه‌ئون ره چرخه‌تو هاکنی]</span> ولی اجازه ندانّی صفحه ره بسازی.",
        "blocked-notice-logextract": "دسترسی اینتا کارور الآن دوستوئه.\nآخرین مورد سیاهه قطع دسترسی زیر بموئه:",
        "previewnote": "شِمه یاد بوئه که اینتا اتا پیش‌نمایِش هسه. \n شِمه دگاردسته‌ئون جانـَکِته که و‌نه، ونه اِسا ذخیره‌بیّـِن دوکمه ره بَزنین!",
        "editing": "درحال  $1 ره دچی‌ین",
        "copyrightwarning": "خـاهش بونه شمه یاد دواشه که همه چیزایی که {{SITENAME}} دله وانه، تحت $2 حیساب وونه. (ویشتر بخوندستن وسه $1 ره هارشین)<br />\nاگه نخانّی شمه بنویشته‌ئون اینجه دس بزه یا ات نفر دیگه شمه بنویشته ره کوپی نکانه، اصلأ شه بنویشته ره اینجه نی‌یلین.",
        "templatesused": "{{PLURAL:$1|شابلون|شابلونای}} استفاده بَیی این صفحه دله:",
        "templatesusedpreview": "{{PLURAL:$1|شابلون|شابلونای}} استفاده بَیی این پیش‌نمایش دله:",
+       "template-protected": "(زلفِن بزوئه)",
+       "template-semiprotected": "(پچوک زلفن بزه)",
        "permissionserrorstext-withaction": "ته اجازهٔ $2 ره به {{PLURAL:$1|دلیل|دلایل}} رو به رو ندانی:",
        "recreate-moveddeleted-warn": "'''هشدار: ته دری اتا صفحه ره نویسنی که قبلا پاک بیّه.'''\n\nشه فکر هاکن که اینتا کار که دری کانده درسته یا نا؟\nاینجه توندی پاک بیی صفحه ره هارشی:",
        "moveddeleted-notice": "اینتا صفحه پاک بی بی‌یه\nاینجه بتوندی قبلی صفحه که پاک بیّه ره هارشی",
        "lineno": "بند  $1:",
        "editundo": "واچی‌ین",
        "searchresults": "بچرخستن ِجوابون",
+       "searchresults-title": "چرخه‌ئوی نتیجه «$1» وسّه",
        "prevn": "پـیـشـیـن {{PLURAL:$1|$1}}",
        "nextn": "تا پَس‌تر {{PLURAL:$1|$1}}",
+       "nextn-title": "$1 بعدی {{PLURAL:$1|نتیجه|نتیجه}}",
+       "shown-title": "$1 ِ{{PLURAL:$1|نتیجه|نتیجه}} سِراق هِدائن هر صفحه دله",
        "viewprevnext": "هارشائن ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "'''« [[:$1]] » ِ صفحه ره این ویکی دله بساجین!'''",
+       "searchprofile-articles": "بنویشته‌ئون صفحه",
+       "searchprofile-images": "مالتی‌مدیا",
+       "searchprofile-everything": "همه‌چی",
+       "searchprofile-advanced": "پیشرفته",
+       "searchprofile-articles-tooltip": "چرخه‌تو $1 دله",
+       "searchprofile-images-tooltip": "چرخه‌تو پرونده‌ئون وسّه",
+       "searchprofile-everything-tooltip": "همه چی ِچرخه‌تو (شامل گپون هم وانه)",
+       "searchprofile-advanced-tooltip": "چرخه‌تو دِلِوِست ِفضائون دله",
        "search-result-size": "$1 ({{PLURAL:$2|1 واجه|$2 واجه}})",
        "search-redirect": "(بَرسی‌یه $1 جه)",
        "search-section": "(تیکه $1)",
        "search-suggest": "شما اینتا ره نخاسنی: $1",
        "search-interwiki-caption": "خاخر پروژه‌ئون",
        "search-interwiki-more": "(ویشتر)",
+       "searchall": "همه",
+       "search-showingresults": "{{PLURAL:$4|نتایج <strong>$1</strong> از <strong>$3</strong>|نتایج <strong>$1 - $2</strong> از <strong>$3</strong>}}",
+       "search-nonefound": "اونچی بخاستنی پیدا نیّه.",
        "powersearch-legend": "ململ بَیی دور هایتن",
        "powersearch-ns": "بچرخستن اینان دله:",
-       "mypreferences": "مه خاستنی‌ئون",
+       "mypreferences": "ترجیحات",
        "prefs-edits": "تعداد دچی‌یه‌ئون:",
        "prefs-rc": "تازه دگاردسته‌ئون",
        "youremail": "شه مه Email:",
        "group-sysop": "مدیرون",
        "group-all": "(همه)",
        "grouppage-sysop": "{{ns:project}}:مدیرون",
+       "right-writeapi": "بنویشتن API جه استفاده هاکردن",
+       "newuserlogpage": "کارور بساتن سیاهه",
        "rightslog": "سیاهه اختیارای کاروری",
        "rightslogtext": "اینتا سیاهه تغییرای اختیارای کاروری هسته.",
        "action-edit": "این صفحه ره دچی‌ین",
        "action-move": "دکشی‌ین اینتا صفحه",
        "action-move-subpages": "دکشی‌ین اینتا صفحه و ونه زیر رج‌ئون",
        "action-move-rootuserpages": "دکشی‌ین صفحه‌ئون کاروری سرچله",
+       "enhancedrc-history": "تاریخچه",
        "recentchanges": "تازه دگاردسته‌ئون",
        "recentchanges-legend": "تازه دگاردسته‌ئون گوزینه‌ها",
        "recentchanges-summary": "ویکی تازه دگاردسته‌ئون ره اینتا صفحه دله دمبال هاکنین.",
        "recentchanges-label-newpage": "اینتا ویرایش اته نو صفحه ایجاد هاکرده",
        "recentchanges-label-minor": "اینتا ویرایش خله جزئی بیه",
        "recentchanges-label-bot": "اینتا ویرایش‌ره اته ربات انجام هدائه",
+       "recentchanges-label-unpatrolled": "این دَچی‌یه ره هَنتا بررسی نَکاردنه.",
+       "recentchanges-label-plusminus": "صفحه‌ی ِقایده انده بایت تغییر هاکرده",
+       "recentchanges-legend-heading": "'''اختصارون:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|تازه بساته صفحه‌ئون]] ره هم هارشین)",
        "rclistfrom": "نِمایش تازه‌دگاردسته‌ئون با شروع از $3 $2",
        "rcshowhideminor": "پچیک دچی‌یه‌ئون $1",
+       "rcshowhideminor-hide": "پنهون هاکن",
        "rcshowhidebots": "ربوت‌ئون $1",
+       "rcshowhidebots-show": "سِراق هاده",
        "rcshowhideliu": "ثبت‌نوم هاکرده کارورون $1",
+       "rcshowhideliu-hide": "پنهون هاکن",
        "rcshowhideanons": "ناشناس ِکارورون $1",
+       "rcshowhideanons-hide": "پنهون هاکن",
        "rcshowhidepatr": "گشت‌بخارد ِدچی‌یه‌ئون $1",
        "rcshowhidemine": "مه دچی‌یه‌ئون $1",
+       "rcshowhidemine-hide": "پنهون هاکن",
        "rclinks": "نـِشون هـِدائن  $1 پایانی دَچی‌‌یه‌ئون، $2 اِسـا روز ره دلـه؛ $3",
        "diff": "فرق",
        "hist": "تاریخچه",
        "recentchangeslinked": "واری دأچیـه‌ن‌ئون",
        "recentchangeslinked-feed": "واری دچی‌یه‌ئون",
        "recentchangeslinked-toolbox": "واری دچی‌یه‌ئون",
+       "recentchangeslinked-title": "مرتبط تغییرات $1 جه",
        "recentchangeslinked-page": "صفحه ایسم:",
+       "recentchangeslinked-to": "تغییرات صفحه‌ئونی که این صفحه جه ربط دارنه ره سِراق هِدائن",
        "upload": "باربی‌یشتن فـایـل",
        "uploadbtn": "باربی‌یشتن فایل",
        "uploadtext": "فرم زیر جه باربی‌یشتن نو پرونده‌ئون وسّه استفاده هاکنین.\nبدی‌ین پرونده‌ئونی که قبلاً باربی‌یشته بَینه به [[Special:FileList|فهرست پرونده‌ها]] بورین. باربی‌یشتن مجدد [[Special:Log/upload|سیاههٔ بارگذاری‌ها]] و حذف پرونده‌ئون [[Special:Log/delete|deletion log]] دله ثبت وانه.\n\nبعد از این که پرونده‌یی ره باربی‌یشتنی، به این سه شکل بنشنه وه ره صفحه‌ئون دله بی‌یشتن:\n\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' استفاده از نسخه کامل پرونده وسّه\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' استفاده از اتا نسخه ۲۰۰ پیکسلی از پرونده که اتا جعبه سمت چپ متن دله دره و عبارت alt text ونه دله به عنوان توضیح استفاده بیّه وسّه\n*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' بساتن اتا پیوند مستقیم به پرونده بدون نمایش پرونده",
        "uploadlogpage": "باربی‌یشتن گزارش",
+       "filedesc": "کار ِگزارش",
+       "license-header": "اجازه‌نومه",
        "imgfile": "فایل",
        "listfiles": "هارشی ئون ره لیست",
        "listfiles_name": "نـوم",
        "listfiles_size": "قایده",
        "file-anchor-link": "فایل",
        "filehist": "فایل تاریخچه",
+       "filehist-help": "تاریخ/زمون‌ها سَر کلیک هاکنین تا اون گادِر ِنسخه ره هارشین.",
        "filehist-current": "إسا",
        "filehist-datetime": "تاریخ/زمون",
        "filehist-thumb": "انگوس گتی",
+       "filehist-thumbtext": "انگوس‌گتی عکس $1 نسخه جه",
        "filehist-user": "کارور",
+       "filehist-dimensions": "ابعاد",
        "filehist-comment": "هارشا",
-       "imagelinks": "Ù\84Û\8cÙ\86Ú©â\80\8cئÙ\88ن",
+       "imagelinks": "پرÙ\88Ù\86دÙ\87â\80\8cÛ\8c Ø§Ø³ØªÙ\81ادÙ\87 Ø¨Û\8cÙ\91ن",
        "linkstoimage": "این {{PLURAL:$1|صفحه|$1 صفحه‌ئون}} لینک هِدانه این فایل ره:",
+       "nolinkstoimage": "این عکس ره هیچ جا نی‌یشتنه",
+       "sharedupload-desc-here": "این پرونده $1 دله دَره و ممکن هسته دیگه پروژه‌ئون دله هم استفاده بواشه.\nتوضیحات موجود [$2 پرونده توضیحات صفحه میون اونجه]، سِراق هِدا وونّه.",
+       "upload-disallowed-here": "متأسفانه شما نتوندی این پرونده ره بازنویس هاکنی.",
        "randompage": "شانسی صفحه",
        "statistics": "آمار",
        "nbytes": "$1 {{PLURAL:$1|بایت|بایت}}",
        "booksources-search-legend": "بگردستن منابع کتاب",
        "booksources-text": "زیر فهرستی از لینکا به وبگاه‌ئون دیگه دره که کتاب‌ئون نو و دست دوم روشنّه و ممکنه اطلاعات ویشتری راجع به کتاب مورد نظر دارِن:",
        "specialloguserlabel": "کارور:",
+       "log": "سیاهه‌ها",
        "allpages": "همه صفحه‌ئون",
        "prevpage": "پیشین صفحه ($1)",
        "allarticles": "همه صفحه‌ئون",
        "emailuser": "این کارور وسّه ایمیل بَرسِن",
        "emailpage": "ئـی-مه‌یـل ای کـارور وه‌سه",
        "watchlist": "مه دمبال‌هاکرده‌‌ئون ِلیست",
-       "mywatchlist": "مه دمبال‌هاکرده‌‌ئون ِلیست",
+       "mywatchlist": "دمبال‌هاکرده‌ئون فهرست",
        "watchnologin": "سیستم ره دله نی ئه موئین",
        "addedwatchtext": "«[[:$1]]» شمه [[Special:Watchlist|دمبال هاکردئون لیست]] دله اضافه بیه.\nاینتا صفحه دگاردسته‌ئون و ونه گپ آینده دله اینتا لیست دله شمه وسه فهرست بوننه؛ یان شه بماند، اینتا صفحه، [[Special:RecentChanges|تازه دگاردسته‌ئون]] فهرست دله شمه وسه '''پررنگ‌تر''' نمایش هدا بونه تا وره راحت تر بوینین.",
        "watch": "دمبال هاکردن",
        "undeletelink": "بـأویـنـه‌ن / ده‌واره جـا بـیـه‌شـتـه‌ن",
        "namespace": "نوم‌جا:",
        "invert": "برعکس انتخاب هاکن",
+       "tooltip-invert": "این جعبه ره علامت بزنین تا صفحه‌ئون ِتغییرات انتخاب‌بَیی فضائون (و دیگه فضائون علامت‌بَزه دله) مخفی بَوون",
+       "namespace_association": "مرتبط فضائون",
+       "tooltip-namespace_association": "این جعبه ره علامت بزنین تا گپ یا دیگه مرتبط فضائون هم انتخاب بواشِن",
        "blanknamespace": "(مـار)",
-       "contributions": "کارور کایری‌ئون",
+       "contributions": "{{GENDER:$1|کارور}} کایری‌ئون",
        "contributions-title": "$1 کایری‌ئون",
        "mycontris": "مه کایری‌ئون",
        "contribsub2": "$1 ($2) وه‌سه",
        "whatlinkshere-prev": "{{PLURAL:$1|پـیـشـیـن|$1 تـای پـیـشـیـن}}",
        "whatlinkshere-next": "{{PLURAL:$1|پَس|$1 تا پَس‌تر}}",
        "whatlinkshere-links": "← لـیـنـک‌ئون",
+       "whatlinkshere-hideredirs": "$1 دکشی‌یه",
+       "whatlinkshere-hidetrans": "$1 تراگنجانشون",
+       "whatlinkshere-hidelinks": "$1 لینک",
+       "whatlinkshere-filters": "فیلترون",
        "blockip": "کارور ره دَوستن",
        "blockip-legend": "کارور ره دَوستن",
        "ipbsubmit": "ای کارور دأبه‌س بأوه",
        "tooltip-pt-mycontris": "مه کایری‌ئون لیست",
        "tooltip-pt-login": "شه‌ما به‌ته‌ر هـأسـه که سـیـسـتـه‌م ده‌لـه بـیـه‌ئی، هـرچـأن زوری نـیـه",
        "tooltip-pt-logout": "سیستم جه دأیابـوری",
+       "tooltip-pt-createaccount": "شِما ره پیشنهاد کامبی که اتا کاروری حیساب بسازین و لاگین بَواشین؛ البته این کار اختیاری هسته.",
        "tooltip-ca-talk": "این صفحه خَوری گپ بَزوئن",
        "tooltip-ca-edit": "شِما بتوندی این صفحه ره دَچینی.",
        "tooltip-ca-addsection": "أتـا نـه گـب را دأکـه‌تـه‌ن",
        "tooltip-t-recentchangeslinked": "اِسایی دِگاردسته‌ئون ِصفحه‌ئون که این صفحه جه لینک دارنه",
        "tooltip-feed-rss": "RSS خوراک این صفحه وسّه",
        "tooltip-feed-atom": "Atom خوراک این صفحه وسّه",
+       "tooltip-t-contributions": "این کارور ِکایریون ِفهرست",
        "tooltip-t-emailuser": "ای کـارور ره اتـا ئـه‌لـه‌کـتـه‌رونـیـکـی‌نـومـه راهـی هـه‌کـارده‌ن",
        "tooltip-t-upload": "بـاربـیـه‌شـتـه‌ن فـایـل‌ئون",
        "tooltip-t-specialpages": "همه شا صفحه‌ئون ِلیسـت",
        "tooltip-ca-nstab-special": "اینتا اتا شا صفحه هسته که شِما نتوندی وه ره دچینی",
        "tooltip-ca-nstab-image": "عکس ِصفحه ره بدی‌ین",
        "tooltip-ca-nstab-template": "شـابـلـون بـأویـنـه‌ن",
+       "tooltip-ca-nstab-category": "رج ره بدی‌ین",
+       "tooltip-save": "شه تغییرات ره ذخیره هاکنین",
        "tooltip-preview": "شـه ده‌گـه‌ره‌سـه‌ئون ره پـیـشـاپـیـش بـأویـنـه‌ن،\n خـا‌هـه‌ش بـونـه، شـه کـارئون ره جـا دأکـه‌تـه‌ن پـیـش، ای ره کـار بـأزه‌نـی.",
+       "tooltip-diff": "تغییراتی که ته هِدایی ره سِراق هِدائن",
+       "tooltip-rollback": "«دِگاردنی‌ین» اون دچی‌یه(ئون) که آخرین نفر انجام هِدائه ره اتا کلیک جه وَرگِردنانده.",
+       "tooltip-summary": "خلاصه بنویسین",
        "siteusers": "$1، {{PLURAL:$2|کارور|کارورون}} {{SITENAME}}",
+       "simpleantispam-label": "!آنتی‌اسپم ِچک‌هاکردن.\nاین قسمت ره پـِر <strong>نکان!</strong>",
+       "pageinfo-toolboxlink": "صفحه‌ی ِاطلاعات",
        "previousdiff": "کوهنه‌تر دچی‌ین ←",
        "nextdiff": "ته‌رنه دأچیه‌ن ←",
        "thumbsize": "أنـگـوسـی گأتی:",
        "file-info-size": "$1 × $2 پـیـکـسه‌ل, فـایـل گـأتـی: $3, MIME مـونـد: $4",
+       "show-big-image": "اصلی پرونده",
+       "show-big-image-preview": "این پیش‌-پیش سِراق هدائن ِقایده: $1.",
+       "show-big-image-other": "دیگه {{PLURAL:$2|کیفیت|کیفیتون}}: $1.",
+       "show-big-image-size": "<span dir=\"ltr\">$1 × $2</span> پیکسل",
        "file-info-png-frames": "$1 {{PLURAL:$1|قاب|قاب}}",
        "newimages": "گالری نو عکس‌ئون",
        "imagelisttext": "فهرست بن $1 {{PLURAL:$1|عکسی|عکسی}} که $2 مرتب بیی‌یه بموئه.",
        "bydate": "تاریخ رو جه",
        "sp-newimages-showfrom": "نشون‌هدائن عکسای نو $2، $1 جه به بعد",
        "video-dims": "$1, $2×$3",
+       "metadata": "متادیتا",
+       "metadata-help": "این پرونده اتسری اضافه اطلاعات دانه که احتمالاً دیجیتال دوربین یا دیگه تغییرکَرون اضافه هاکردنه. اگه پرونده اولیه حالت جه تغییر هاکرد بائه، ممکن هسته که توضیحات تکمیل نَی‌بائِن.",
+       "exif-orientation": "جهت",
+       "exif-xresolution": "افقی رزولویشن",
+       "exif-yresolution": "عمودی رزولویشن",
+       "exif-datetime": "پرونده‌ی ِتاریخ و زمون ره تغییر هدائن",
+       "exif-make": "دوربین ِسازنده‌ئون ِکمپانی",
+       "exif-model": "دوربین ِمدل",
+       "exif-software": "استفاده‌بیی نرم‌افزار",
+       "exif-exifversion": "Exif نسخه",
+       "exif-colorspace": "رنگی فضا",
+       "exif-datetimeoriginal": "دیتای ِتولید ِتاریخ و زمون",
+       "exif-datetimedigitized": "دیجیتالی بیّن ِزمون و تاریخ",
        "exif-gpsareainformation": "جی پی اس ناحیه نوم",
        "exif-gpsdatestamp": "جی پی اس روز",
        "exif-gpsdifferential": "جی پی اس په‌چه‌ک درس هأکه‌ردن",
        "autosumm-blank": "صفحه ره اسپه هاکرده",
        "autosumm-replace": "صفحه ره اینتا جه عوض هاکرد: '$1'",
        "autoredircomment": "به [[$1]] مسیر ره تغییر هدائه",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|گپ]])",
        "version-specialpages": "شا صفحه‌ئون",
        "specialpages": "شا صفحه‌ئون",
        "specialpages-group-maintenance": "چله‌بندی صفحه‌ئون",
+       "tag-filter": "[[Special:Tags|برچسبون]] ِفیلتر:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|برچسب|برچسبون}}]]: $2)",
+       "logentry-delete-delete": "$1 صفحهٔ $3 ره {{GENDER:$2|حذف هاکرده}}",
        "logentry-move-move_redir-noredirect": "$1 ، $3 ره بدون اینکه مسیر تغییری درس بوه به $4 که مسیر تغییر بیه منتقل هاکرده",
        "logentry-newusers-newusers": "$1  بساتن اتا حساب کاروری",
-       "logentry-newusers-create": "$1  بساتن اتا حساب کاروری",
+       "logentry-newusers-create": "$1 کاروری حساب {{GENDER:$2|بساته بیّه}}",
        "rightsnone": "(هچّی)",
        "feedback-adding": "بی‌یشتن پیشنهادات و انتقادات...",
        "feedback-cancel": "ول هاکردن",
        "feedback-message": "پیغوم:",
        "feedback-subject": "موضوع:",
        "feedback-submit": "ارسال پیشنهادات و انتقادات",
+       "searchsuggest-search": "چرخه‌تو",
        "api-error-badaccess-groups": "شما اجازهٔ باربی‌یشتن پرونده‌ها ره این ویکی دله ندارنی.",
        "api-error-badtoken": "خطای داخلی: کد امنیتی اشتبائه (Bad token).",
        "api-error-copyuploaddisabled": "باربی‌یشتن با استفاده از نشونی اینترنتی این کارساز دله غیرفعاله.",
index 4092f94..a52536b 100644 (file)
@@ -44,7 +44,7 @@
        "tog-diffonly": "Diff ē-pêng bián hián-sī ia̍h ê loē-iông",
        "tog-showhiddencats": "Hián-sī chhàng khí--lâi ê lūi-pia̍t",
        "tog-norollbackdiff": "ká tńg-khí liáu bián-koán cheng-chha goā-chē",
-       "tog-useeditwarning": "我若猶未保存修改的頁就跳開,愛共我講。",
+       "tog-useeditwarning": "Goá nā iáu-boē pó-chûn siu-kái--ê ia̍h tō thiàu khai, ài kā goá kóng.",
        "tog-prefershttps": "我登入的時陣愛用安全連線",
        "underline-always": "Tiāⁿ-tio̍h",
        "underline-never": "Tiāⁿ-tio̍h mài",
        "emailnotauthenticated": "Lí ê e-mail chū-chí iáu-bōe khak-jīn ū-hāu, só·-í ē--kha ê e-mail kong-lêng bē-ēng-tit.",
        "noemailprefs": "Tī lí ê siat-piān chí-tēng chi̍t ê tiān-chú-phoe tē-chí thang hō͘ chia ê kong-lêng ē-tàng ēng.",
        "emailconfirmlink": "Chhiáⁿ khak-jīn lí ê e-mail chū-chí ū-hāu",
+       "pt-login": "Teng-ji̍p",
+       "pt-createaccount": "Khui sin kháu-chō",
+       "pt-userlogout": "Teng-chhut",
        "user-mail-no-addy": "Siūⁿ beh kià tiān-chú-phoe, m̄-koh bô siá tē-chí.",
        "changepassword": "Oāⁿ bi̍t-bé",
        "resetpass_header": "Kái káu-chō ê bi̍t-bé.",
        "resetpass-submit-cancel": "Chhú-siau",
        "resetpass-temp-password": "Lîm-sî ê bi̍t-bé:",
        "passwordreset": "Têng siat bi̍t-bé",
-       "passwordreset-legend": "Têng siat bi̍t-bé",
        "passwordreset-username": "Lí ê iōng-chiá miâ-chheng:",
        "passwordreset-email": "Tiān-chú-phoe tē-chí:",
        "passwordreset-emailelement": "Iōng-chiá: $1\nLîm-sî ê bi̍t-bé: $2",
        "preview": "Seng khoàⁿ-māi",
        "showpreview": "Seng khoàⁿ-māi",
        "showdiff": "Khòaⁿ kái-piàn ê pō·-hūn",
-       "anoneditwarning": "'''Kéng-kò:''' Lí bô teng-ji̍p. Lí ê IP chū-chí ē kì tī pún ia̍h ê pian-chi̍p le̍k-sú lāi-bīn.",
+       "anoneditwarning": "'''thê-chhíⁿ:''' Lí bô teng-ji̍p. Lí nā ū kái mi̍h-kiāⁿ, lí ê IP ē hô͘ lâng khoàⁿ tio̍h. Lí nā <strong>[$1 teng-ji̍p]</strong> iah-sī <strong>[$2 khui chi̍t-ê kháu-chō]</strong>; lí kái ê mi̍h-kiāⁿ ē kái kì lí ê kháu-chō-miâ. Mā ū kî-thaⁿ ê hó-chhù.",
        "summary-preview": "Khài-iàu ê preview:",
        "subject-preview": "Ū-lám tê-bo̍k/piau-tê:",
        "blockednoreason": "無寫理由",
        "yourdiff": "Chha-pia̍t",
        "readonlywarning": "'''CHÙ-Ì: Chu-liāu-khò· taⁿ só tiâu leh thang pān î-siu khang-khòe, só·-í lí hiān-chú-sî bô thang pó-chûn jīn-hô phian-chi̍p hāng-bo̍k. Lí ē-sái kā siong-koan pō·-hūn tah--ji̍p-khì 1-ê bûn-jī tóng-àn pó-chûn, āu-chhiú chiah koh kè-sio̍k.'''",
        "protectedpagewarning": "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái siu-kái.'''",
-       "templatesused": "Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·| ê pang-bô·}} :",
+       "templatesused": "Chit ia̍h iōng {{PLURAL:$1| ê pang-bô·}} :",
        "templatesusedpreview": "Chit ê preview iōng chia ê pang-bô͘:",
        "templatesusedsection": "Chit ê section iōng chia ê pang-bô͘:",
        "template-protected": "(pó-hō͘)",
        "searchprofile-advanced": "chìn-chi̍t-pō͘",
        "searchprofile-articles-tooltip": "Tī $1 chhoé",
        "searchprofile-images-tooltip": "Chhoé tóng-àn",
-       "searchprofile-everything-tooltip": "揣全部(包括討論頁)",
+       "searchprofile-everything-tooltip": "Chhiau choân-pō͘ (pau-koat thó-lūn-ia̍h)",
        "searchprofile-advanced-tooltip": "佇你家己設的名空間內底揣",
        "search-result-size": "$1 ({{PLURAL:$2|1 jī-goân|$2 jī-goân}})",
        "search-redirect": "(轉去 $1)",
        "prefs-help-email": "Tiān-chú-phoe ê chū-chí m̄-sī it-tēng ài, m̄-koh tī lí bē-kì bi̍t-bé beh tîng siat-tīng tō ài.",
        "prefs-help-email-others": "Lí ē-sái thàu--koè lí ê ia̍h , thó-lūn-ia̍h ê liân kiat hō͘ lâng ēng e-mail kah lí liân-lo̍k.\nTī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--lâi.",
        "grouppage-sysop": "{{ns:project}}:Hêng-chèng jîn-oân",
+       "newuserlogpage": "開賬戶日誌",
        "rightslogtext": "Chit-ê log lia̍t-chhut kái-piàn iōng-chiá koân-lī ê tōng-chok.",
        "action-edit": "Siu-kái chit ia̍h",
        "nchanges": "$1 {{PLURAL:$1|kái|kái}}",
        "recentchanges": "Chòe-kīn ê kái-piàn",
+       "recentchanges-summary": "Tī chiah wiki ia̍h tui-cha chòe-kīn ê kái-piàn.",
        "recentchanges-label-newpage": "Chit ê siu-kái ē sán-seng sin ia̍h",
        "recentchanges-label-minor": "Che sī sió siu-kái",
+       "recentchanges-label-bot": "Che sī ki-khì-lâng kái--ê",
        "rcnotefrom": "Ē-kha sī <b>$2</b> kàu taⁿ ê kái-piàn (ke̍k-ke hián-sī <b>$1</b> hāng).",
        "rclistfrom": "Hián-sī tùi $3 $2 kàu taⁿ ê sin kái-piàn",
        "rcshowhideminor": "$1 sió siu-kái",
        "minoreditletter": "~",
        "newpageletter": "!",
        "boteditletter": "b",
+       "rc-change-size-new": "改了後;變做$1{{PLURAL:$1|位元}}",
        "recentchangeslinked": "Siong-koan ê kái-piàn",
        "recentchangeslinked-feed": "Siong-koan ê kái-piàn",
        "recentchangeslinked-toolbox": "Siong-koan ê kái-piàn",
        "listfiles_count": "版本",
        "file-anchor-link": "Tóng-àn",
        "filehist": "Tóng-àn ê le̍k-sú",
+       "filehist-help": "揤 日期/時間;看彼時陣的檔案",
        "filehist-current": "hiān-chāi",
        "filehist-datetime": "Ji̍t-kî/ Sî-kan",
        "filehist-thumb": "細張圖",
+       "filehist-thumbtext": "$1版本的細圖",
        "filehist-user": "Iōng-chiá",
+       "filehist-dimensions": "寸尺",
+       "filehist-comment": "說明",
        "imagelinks": "tóng-àn sù-iōng ê chōng-hòng",
-       "linkstoimage": "ē-kha $1 ê ia̍h ū iōng tio̍h chit ê iáⁿ-siōng:",
+       "linkstoimage": "ē-kha {{PLURAL:$1|ê ia̍h}} ū iōng tio̍h chit ê iáⁿ-siōng:",
        "nolinkstoimage": "Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.",
+       "sharedupload-desc-here": "這个$1的檔案有可能予其他專案用著。\n下跤是這个檔案伊的[$2檔案說明]。",
        "mimesearch": "MIME chhiau-chhoē",
        "unwatchedpages": "Bô lâng kàm-sī ê ia̍h",
        "listredirects": "Lia̍t-chhut choán-ia̍h",
        "nbytes": "$1 {{PLURAL:$1|jī-goân|jī-goân}}",
        "ncategories": "$1 {{PLURAL:$1|ê lūi-pia̍t |ê lūi-pia̍t}}",
        "nlinks": "$1 ê liân-kiat",
-       "nmembers": "$1{{PLURAL:$1|ê sêng-oân|ê sêng-oân}}",
+       "nmembers": "$1{{PLURAL:$1|ê sêng-oân}}",
        "nrevisions": "$1 ê siu-tēng-pún",
        "lonelypages": "Ko·-ia̍h",
        "uncategorizedpages": "Bô lūi-pia̍t ê ia̍h",
        "tooltip-pt-mycontris": "Lí ê kòng-hiàn lia̍t-toaⁿ",
        "tooltip-pt-login": "Hi-bāng lí teng-ji̍p; m̄-ko bô kiông-chè",
        "tooltip-pt-logout": "Teng-chhut",
+       "tooltip-pt-createaccount": "Kiàn-gī lí seng khai chi̍t-ê kháu-chō (bô-it-tēng ài); chiah koh teng-ji̍p.",
        "tooltip-ca-talk": "Loē-iông ê thó-lūn",
        "tooltip-ca-edit": "Lí ē-sái kái chit ia̍h. Beh chhûn chìn-chiân, chhiáⁿ chhi̍h  sing-khoàⁿ-māi ê liú-á",
        "tooltip-ca-viewsource": "Chit ia̍h pó-hō͘ tiâu leh.\nLí ē-sái khoàⁿ i ê goân-sú-bé.",
        "tooltip-ca-watch": "共這頁加入去你的監視單",
        "tooltip-ca-unwatch": "Lí ê kàm-sī-toaⁿ soá tiàu chit ia̍h.",
        "tooltip-search": "Chhoé {{SITENAME}}",
+       "tooltip-search-go": "若有仝名的,就去彼頁。",
        "tooltip-search-fulltext": "Chhoé ū chia-ê jī ê ia̍h",
        "tooltip-p-logo": "Khì thâu-ia̍h",
        "tooltip-n-mainpage": "Khì thâu-ia̍h",
        "tooltip-t-permalink": "Chi̍t ia̍h kái--koè pán-pún ê éng-kiú liân-kiat",
        "tooltip-ca-nstab-main": "khoàⁿ ia̍h ê loē-iông",
        "tooltip-ca-nstab-user": "Khoàⁿ iōng-chiá ê Ia̍h",
+       "tooltip-ca-nstab-special": "這是一个特殊頁,你袂使改這頁。",
        "tooltip-ca-nstab-image": "Khoàⁿ tóng-àn ia̍h",
        "tooltip-ca-nstab-category": "Khoàⁿ lūi-pia̍t ia̍h",
        "tooltip-minoredit": "記這是一个小改",
        "siteuser": "{{SITENAME}} iōng-chiá $1",
        "othercontribs": "Kin-kù $1 ê kòng-hiàn.",
        "siteusers": "{{SITENAME}} iōng-chiá $1",
+       "pageinfo-toolboxlink": "Ia̍h ê chu-sìn",
        "markaspatrolleddiff": "Phiau-sī sûn--kòe",
        "markedaspatrolledtext": "Í-keng phiau-sī chit ê siu-tēng-pún ū lâng sûn--kòe.",
        "deletedrevision": "Kū siu-tēng-pún $1 thâi-tiāu ā.",
-       "previousdiff": "← Khì chêng 1 ê diff",
-       "nextdiff": "Khì āu 1 ê diff →",
+       "previousdiff": "← 進前改的",
+       "nextdiff": "新改的 →",
        "imagemaxsize": "Iáⁿ-siōng biô-su̍t-ia̍h ê tô· ke̍k-ke hián-sī jōa tōa tiuⁿ:",
        "thumbsize": "Sok-tô· (thumbnail) jōa tōa tiuⁿ:",
        "file-nohires": "Bô khah koân ê kái-sek-tō͘.",
+       "show-big-image-size": "$1 × $2 像素",
        "newimages": "Sin iáⁿ-siōng oē-lóng",
        "imagelisttext": "Í-hā sī '''$1''' tiuⁿ iáⁿ-siōng ê lia̍t-toaⁿ, $2 pâi-lia̍t.",
        "ilsubmit": "Kiám-sek",
        "bydate": "chiàu ji̍t-kî",
+       "metadata": "元資料",
        "metadata-expand": "Hián-sī iù-chiat",
        "metadata-collapse": "Am iù-chiat",
+       "metadata-fields": "佇顯示圖片的頁,若掀開元資料,下跤的EXIF資料會儂看著。其他的元資料是先看無。\n* 廠商\n* 機型\n* 翕像的時陣\n* 曝光\n* 光圈\n* ISO 速率\n* 焦距\n* 作者\n* 版權\n* 說明\n* 緯度(GPS)\n* 經度(GPS)\n* 海拔(GPS)",
        "namespacesall": "choân-pō·",
        "monthsall": "choân-pō͘",
        "confirmemail": "Khak-jīn e-mail chū-chí",
        "duplicate-defaultsort": "'''Thê-chhíⁿ lí:'''Siat-piān ê pâi-lia̍t hong-sek \"$2\" thè-oāⁿ chìn-chêng ê siat-piān ê pâi-lia̍t hong-sek \"$1\".",
        "version": "Pán-pún",
        "specialpages": "Te̍k-sû-ia̍h",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|个標籤}}]]:$2)",
+       "logentry-newusers-create": "已經{{GENDER:$2|開好}}用者口座 $1",
+       "searchsuggest-search": "Chhiau",
        "expandtemplates": "Khok-chhiong pang-bô͘",
        "expand_templates_input": "Su-ji̍p bûn-jī:",
        "expand_templates_output": "Kiat-kó:",
index 61ce1ca..85c746a 100644 (file)
        "passwordreset": "Tilbakestilling av passord",
        "passwordreset-text-one": "Fyll ut skjemaet for å tilbakestille passordet",
        "passwordreset-text-many": "{{PLURAL:$1|Fyll inn ett av datafeltene for å tilbakestille passordet ditt via epost.}}",
-       "passwordreset-legend": "Nullstill passord",
        "passwordreset-disabled": "Nullstilling av passord er deaktivert på denne wikien.",
        "passwordreset-emaildisabled": "E-posttjenester er slått av på denne wikien.",
        "passwordreset-username": "Brukernavn:",
        "resettokens": "Nullstill merker",
        "resettokens-text": "Du kan nullstille nøklene som gir adgang til visse private data knyttet til din konto.\n\nOg du burde gjøre det hvis du har avslørt nøklene for noen.",
        "resettokens-no-tokens": "Det finnes ingen merker å nullstille.",
-       "resettokens-legend": "Nullstill merker",
        "resettokens-tokens": "Merker:",
        "resettokens-token-label": "$1 (aktuell verdi: $2)",
        "resettokens-watchlist-token": "Webmatenøkkel (Atom/RSS) for [[Special:Watchlist|endringer av sider på din overvåkningsliste]]",
index dda1a80..ff366e4 100644 (file)
        "hidetoc": "लुकाउनुहोस्",
        "collapsible-collapse": "खुम्च्याउने",
        "collapsible-expand": "फैलाउ",
-       "confirmable-confirm": "तपाà¤\88à¤\82 {{GENDER:$1|लिà¤\99à¥\8dà¤\97}} à¤¹à¥\8b?",
+       "confirmable-confirm": "à¤\95à¥\87 {{GENDER:$1|तपाà¤\88à¤\82}} à¤¸à¥\81निशà¥\8dà¤\9aित à¤¹à¥\81नà¥\81हà¥\81नà¥\8dà¤\9b ?",
        "confirmable-yes": "हो",
        "confirmable-no": "होइन",
        "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो?",
        "passwordreset": "प्रवेशशव्द पुनः तय गर्ने",
        "passwordreset-text-one": "इमेल मार्फल अस्थायी पासवर्ड प्राप्त गर्नको लागी यस फारमलाई पूर्ण रूपमा भर्नुहोस् ।",
        "passwordreset-text-many": "{{PLURAL:$1|कृपया यहाँ मध्ये एउटा क्षेत्र भरि अस्थाई पासवर्ड इमेल मार्फत प्राप्त गर्नुहोस।}}",
-       "passwordreset-legend": "प्रवेशशव्द पुनः तय गर्ने",
        "passwordreset-disabled": "प्रवेश शव्द पुनः निर्धारण गर्ने व्यवस्था यस विकिमा निस्क्रिय पारिएको छ।",
        "passwordreset-emaildisabled": "इमेल सुविधा यस विकिमा निस्क्रिय बनाइएको छ ।",
        "passwordreset-username": "प्रयोगकर्ता नाम:",
        "changeemail-submit": "इमेल परिवर्तन गर्ने",
        "changeemail-throttled": "तपाईंले भर्खरै धेरै पल्ट प्रवेशको निम्ति प्रयास गर्नुभएको छ।\nकृपया $1 पर्खेर मात्र प्रयास गर्नुहोस्।",
        "resettokens": "टोकन पूर्वरुपमा फर्काउने",
-       "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईं तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।",
+       "resettokens-text": "जुन टोकन तपाईंको खातासँग सम्बद्ध केहि विशिष्ट व्यक्तिगत जानकारी प्रदान गर्छन, तपाईं त्यसलाई यहाँ रिसेट गर्न सक्नुहुन्छ।\n\nयदि तपाईंले तिनलाई भुलवस कसैलाई देखाईदिनु भएको छ वा तपाईंको खाता ह्याक भइसकेको छ भने तपाईं यसलाई रिसेट गर्नुहोला।",
        "resettokens-no-tokens": "पूर्वरुपमा फर्काउन कुनै पनि टोकन छैन ।",
-       "resettokens-legend": "टोकनहरू पूर्वरुपमा फर्काउने",
        "resettokens-tokens": "टोकनहरू:",
        "resettokens-token-label": "$1 (वर्तमान मूल्यः $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|तपाईंको ध्यानसूचीमा रहेका पृष्ठहरूमा भएको परिवर्तनहरू]]को वेब फिड (एटम/आरयसयस) निमित्त टोकन",
        "anoneditwarning": "<strong>चेतावनी:</strong> तपाईँले प्रवेश गर्नु भएको छैन । तपाईँको आइपि ठेगाना पृष्ठ सम्पादन इतिहासमा दर्ता गरिने छ र यो सबैले हेर्न सक्छन । यदि तपाईं <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउने] गर्नुभयो भने तपाईंद्वारा गरिएको सम्पादन तपाईंको प्रयोगकर्तानाममा जोडिनेछ।",
        "anonpreviewwarning": "''तपाईंले प्रवेश गर्नु भएको छैन। संग्रह (Save) गरेको खण्डमा पृष्ठको इतिहासमा तपाईंको IP ठेगाना अंकित गरिनेछ।''",
        "missingsummary": "'''यादगर्नुहोस् :''' तपाईले सम्पादन सारांश दिनुभएको छैन ।\nयदि तपाईले संग्रहगर्नुहोस्  थिच्नुभयो भने , सारांश बिना नै संग्रहित गरिने छ ।",
-       "selfredirect": "<strong>चेतावनी:</strong> तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाई अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दैहुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दैहुनुहुन्छ।\nतपाईं पुन एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुन:निर्देशित त्यसै पनि बनाइनेछ।",
+       "selfredirect": "<strong>चेतावनी:</strong> तपाईं यस पृष्ठलाई आफुमा पुनः निर्देशित गर्दै हुनुहुन्छ।\nहुनसक्छ तपाईं अनुप्रेषितको लागि गलत लक्ष्य निर्दिष्ट गर्दै हुनुहुन्छ, वा गलत पृष्ठको सम्पादन गर्दै हुनुहुन्छ।\nतपाईं पुनः एकपटक \"{{int:savearticle}}\" क्लिक गर्नुहुन्छ, पुनः निर्देशित त्यसै पनि बनाइनेछ।",
        "missingcommenttext": "कृपया टिप्पणी प्रविष्ठ गर्नुहोस् ।",
        "missingcommentheader": "'''याद गर्नुहोस् :''' तपाईँले टिप्पणीमा विषय /शीर्ष पंक्ति  दिनुभएको छैन ।\nतपाईँले फेरि \"{{int:savearticle}}\"  थिच्नु भएमा , तपाईको सम्पादन यसै रुपमा संग्रहित हुनेछ ।",
        "summary-preview": "सारांश पूर्वालोकन:",
        "yourtext": "तपाईंका पाठहरु",
        "storedversion": "संग्रहित पुनरावलोकन",
        "nonunicodebrowser": "<strong>चेतावनी: तपाईंको ब्राउजर युनिकोडलाई स्वीकार गर्दैन।</strong> \nतपाईंद्वारा सहि रुपले पृष्ठ सम्पादनको लागि: गैर-एयससिआइआइ क्यारेक्टर हेक्जाडेसिमल कोड (hexadecimal) मा देखाइनेछ।",
-       "editingold": "<strong>चेतावनी: तपाईं यस पृष्ठको अति पुरनो अप्रचलित संशोधनलाई सम्पादन गर्नुहुँदैछ।<strong>\nयदि तपाईंले यस परिवर्तनलाई सङ्ग्रह गर्नु भयो भने यस पछिका संशोधनहरू नष्ट हुनेछन्।",
+       "editingold": "<strong>à¤\9aà¥\87तावनà¥\80: à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¯à¤¸ à¤ªà¥\83षà¥\8dठà¤\95à¥\8b à¤\85ति à¤ªà¥\81रानà¥\8b à¤\85पà¥\8dरà¤\9aलित à¤¸à¤\82शà¥\8bधनलाà¤\88 à¤¸à¤®à¥\8dपादन à¤\97रà¥\8dनà¥\81हà¥\81à¤\81दà¥\88à¤\9b।<strong>\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82लà¥\87 à¤¯à¤¸ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनलाà¤\88 à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रà¥\8dनà¥\81 à¤­à¤¯à¥\8b à¤­à¤¨à¥\87 à¤¯à¤¸ à¤ªà¤\9bिà¤\95ा à¤¸à¤\82शà¥\8bधनहरà¥\82 à¤¨à¤·à¥\8dà¤\9f à¤¹à¥\81नà¥\87à¤\9bनà¥\8d।",
        "yourdiff": "भिन्नताहरु",
        "copyrightwarning": "कृपया ध्यान दिनुहोस् यस {{SITENAME}}मा दिइएका योगदानहरू $2को अनुसार सम्पादन र पुनर्वितरणकोलागि खुला मानिनेछ (विवरणकोलागि $1 हेर्नुहोस्) । यदि तपाईंको लेखलाई सम्पादन अथवा पुनः वितरण गराउन चाहनुहुन्न भने कृपया यहाँ तपाईंको लेख प्रस्तुत नगर्नुहोस् ।<br />       \nयदि तपाईं किटानसाथ भन्नुहुन्छ कि कुनै लेख मैले लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो, '''यस्तो लेख कपिराइटबिना यहाँ नराख्नुहोस्!'''",
-       "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयान à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d à¤¯à¤¸ {{SITENAME}}मा à¤¦à¤¿à¤\87à¤\8fà¤\95ा à¤¯à¥\8bà¤\97दानहरà¥\81लाà¤\88 à¤\85नà¥\8dय à¤¯à¥\8bà¤\97दाताहरà¥\81दà¥\8dवारा à¤¸à¤®à¥\8dपादन à¤\97रिनà¥\87à¤\9b, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रिनà¥\87à¤\9b à¤\85थवा à¤¹à¤\9fाà¤\87नà¥\87à¤\9b। à¤¯à¤¦à¤¿  à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤²à¥\87à¤\96लाà¤\88 à¤¨à¤¿à¤°à¥\8dदयता à¤ªà¥\82रà¥\8dवà¤\95 à¤¸à¤®à¥\8dपादन à¤\97रà¥\87à¤\95à¥\8b à¤\9aाहनà¥\81हà¥\81नà¥\8dन à¤­à¤¨à¥\87à¤\82 à¤¤à¥\8dयà¥\8b à¤¯à¤¹à¤¾à¤\81 à¤¨à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d।<br />\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95िà¤\9fानसाथ à¤­à¤¨à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b à¤\95ि à¤¯à¥\8b à¤²à¥\87à¤\96 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\86फà¥\88 लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना  यहाँ नदिनुहोस्!'''",
+       "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयान à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d à¤¯à¤¸ {{SITENAME}}मा à¤¦à¤¿à¤\87à¤\8fà¤\95ा à¤¯à¥\8bà¤\97दानहरà¥\82लाà¤\88 à¤\85नà¥\8dय à¤¯à¥\8bà¤\97दानà¤\95रà¥\8dताहरà¥\82दà¥\8dवारा à¤¸à¤®à¥\8dपादन à¤\97रिनà¥\87à¤\9b, à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रिनà¥\87à¤\9b à¤\85थवा à¤¹à¤\9fाà¤\87नà¥\87à¤\9b। à¤¯à¤¦à¤¿ à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤²à¥\87à¤\96लाà¤\88 à¤¨à¤¿à¤°à¥\8dदयता à¤ªà¥\82रà¥\8dवà¤\95 à¤¸à¤®à¥\8dपादन à¤\97रà¥\87à¤\95à¥\8b à¤\9aाहनà¥\81हà¥\81नà¥\8dन à¤­à¤¨à¥\87 à¤¤à¥\8dयà¥\8b à¤¯à¤¹à¤¾à¤\81 à¤¨à¤¦à¤¿à¤¨à¥\81हà¥\8bसà¥\8d।<br />\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95िà¤\9fानसाथ à¤­à¤¨à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b à¤\95ि à¤¯à¥\8b à¤²à¥\87à¤\96 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\86फà¥\88लà¥\87 लेखेको हो अथवा सार्वजनिक ज्ञानक्षेत्र अथवा मुक्त संसाधनबाट लिइएको हो (विवरणकोलागि हेर्नुहोस् $1 ). \n'''कपीराइट भएको रचना अनुमति बिना  यहाँ नदिनुहोस्!'''",
        "longpageerror": "'''त्रुटि: तपाईंले बुझाएको पाठ {{PLURAL:$1|one किलोबाइट|$1 किलोबाइट}} लामो छ, जो अधिकतम {{PLURAL:$2|one किलोबाइट|$2 किलोबाइट}} भन्दा लामो छ।'''\nयो संग्रहित हुन सक्तैन।",
-       "readonlywarning": "<strong>चेतावनी: तथ्याक मर्मतको निम्ति बन्द गरिएकोछ, यस कारण तपाईं आफ्नो सम्पादन अहिले सङ्ग्रह गर्न सक्नुहुन्न।</strong>\n\nयदि तपाईं चाहनुहुन्छ भने अहिले यहाँ भएका पाठलाई कट गरि कतै टेक्स्ट फाइलमा पेस्ट गरेर सङ्ग्रह गर्न सक्नुहुन्छ।\n\nप्रवन्धक जसले यो बन्द गरेको छ उसले यस्तो विवरण दिएको छ: $1",
+       "readonlywarning": "<strong>à¤\9aà¥\87तावनà¥\80: à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95 à¤®à¤°à¥\8dमतà¤\95à¥\8b à¤¨à¤¿à¤®à¥\8dति à¤¬à¤¨à¥\8dद à¤\97रिà¤\8fà¤\95à¥\8bà¤\9b, à¤¯à¤¸ à¤\95ारण à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\86फà¥\8dनà¥\8b à¤¸à¤®à¥\8dपादन à¤\85हिलà¥\87 à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dन।</strong>\n\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\9aाहनà¥\81हà¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤\85हिलà¥\87 à¤¯à¤¹à¤¾à¤\81 à¤­à¤\8fà¤\95ा à¤ªà¤¾à¤ à¤²à¤¾à¤\88 à¤\95à¤\9f à¤\97रि à¤\95तà¥\88 à¤\9fà¥\87à¤\95à¥\8dसà¥\8dà¤\9f à¤«à¤¾à¤\87लमा à¤ªà¥\87सà¥\8dà¤\9f à¤\97रà¥\87र à¤¸à¤\99à¥\8dà¤\97à¥\8dरह à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।\n\nपà¥\8dरवनà¥\8dधà¤\95 à¤\9cसलà¥\87 à¤¯à¥\8b à¤¬à¤¨à¥\8dद à¤\97रà¥\87à¤\95à¥\8b à¤\9b à¤\89सलà¥\87 à¤¯à¤¸à¥\8dतà¥\8b à¤µà¤¿à¤µà¤°à¤£ à¤¦à¤¿à¤\8fà¤\95à¥\8b à¤\9b: $1",
        "protectedpagewarning": "<strong>सूचना: यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण प्रवन्धकको विशेषाधिकार प्राप्त प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।</strong>\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
        "semiprotectedpagewarning": "<strong>सूचना:</strong> यो पृष्ठलाई सुरक्षित गरिएको हुँदा दर्ता भएका प्रयोगकर्ताहरूले मात्र यसलाई सम्पादन गर्न सक्छन् ।\nसन्दर्भको लागि नविनतम लग प्रविष्टि तल दिइएको छ:",
        "cascadeprotectedwarning": "<strong>चेतावनी:</strong> यस पृष्ठलाई सुरक्षित गरिएको छ यसकारण संशोधन प्रवन्धनको विशेषाधिकार प्राप्त प्रयोगकर्ताले मात्र सम्पादन गर्न सक्नेछन् किन भने यो {{PLURAL:$1|पृष्ठ|पृष्ठहरू}}को सुरक्षित निम्न सूचीमा सुरक्षित छ:",
        "content-failed-to-parse": "$1 को लागि $2 सामग्रीलाई पार्स गर्न विफल, त्रुटि: $3",
        "invalid-content-data": "अमान्य सामग्री डेटा",
        "content-not-allowed-here": "सामग्री \"$1\"  [[$2]] पृष्ठमा राख्न अनुमती छैन ।",
-       "editwarning-warning": "यस à¤ªà¥\83षà¥\8dठबाà¤\9f à¤¬à¤¾à¤¹à¤¿à¤° à¤\9cाà¤\81दा à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¦à¥\8dवारा à¤\97रिà¤\8fà¤\95à¥\8b à¤\95à¥\81नà¥\88 à¤\95à¥\8bà¤\88 à¤ªà¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¹à¤°à¤¾à¤\89नà¥\87à¤\9b।\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82लà¥\87 à¤²à¤\97 à¤\87न à¤\97रà¥\8dनà¥\81भà¤\8fà¤\95à¥\8b à¤\9b à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¯à¤¸ à¤¸à¥\82à¤\9aनालाà¤\88 à¤¦à¥\87à¤\96ाà¤\89न à¤\86फà¥\8dनà¥\8b à¤\85भिरà¥\82à¤\9aà¥\80हरà¥\82à¤\95à¥\8b \"{{int:prefs-editing}}\" à¤­à¤¾à¤\97मा à¤\97à¤\8fर à¤¬à¤¨à¥\8dद à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।",
+       "editwarning-warning": "यà¥\8b à¤ªà¥\83षà¥\8dठबाà¤\9f à¤¬à¤¾à¤¹à¤¿à¤° à¤\9cाà¤\81दा à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¦à¥\8dवारा à¤\97रिà¤\8fà¤\95à¥\8b à¤\95à¥\81नà¥\88 à¤ªà¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤¹à¤°à¤¾à¤\89नà¥\87à¤\9b।\nयदि à¤¤à¤ªà¤¾à¤\88à¤\82लà¥\87 à¤²à¤\97 à¤\87न à¤\97रà¥\8dनà¥\81भà¤\8fà¤\95à¥\8b à¤\9b à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¯à¤¸ à¤¸à¥\82à¤\9aनालाà¤\88 à¤¦à¥\87à¤\96ाà¤\89न à¤\86फà¥\8dनà¥\8b à¤\85भिरà¥\82à¤\9aà¥\80हरà¥\82à¤\95à¥\8b \"{{int:prefs-editing}}\" à¤­à¤¾à¤\97मा à¤\97à¤\8fर à¤¬à¤¨à¥\8dद à¤\97रà¥\8dन à¤¸à¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b।",
        "editpage-notsupportedcontentformat-title": "सामग्री प्रकार समर्थित छैन",
        "editpage-notsupportedcontentformat-text": "$1 सामग्री स्वरूप $2 सामग्री मोडलद्वारा समर्थित छैन।",
        "content-model-wikitext": "विकिपाठ",
        "largefileserver": "उर्ध्वभरण गरिएको फाइल सर्भरमा निर्धारित सीमा भन्दा ठूलो छ।",
        "emptyfile": "तपाईले उर्ध्वभरण गर्नुभएको फाइल रित्तो छ।\nयो फाइलनाम गलत राखिएको कारणले भएको हुनसक्छ\nयो फाइल साच्चै उर्ध्वभरण गर्नेकुरामा निश्चित हुनुहोस् ।",
        "windows-nonascii-filename": "विशेष वर्ण सहितका फाइलनामहरु यस विकिद्वारा समर्थित छैनन् ।",
-       "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भने कृपया <strong>[[:$1]]</strong> जाँच गर्नुहोस्।\n[[$1|thumb]]",
+       "fileexists": "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भने कृपया <strong>[[:$1]]</strong> जाँच गर्नुहोस्।\n[[$1|thumb]]",
        "filepageexists": "यस फाइलको लागि विवरण पृष्ठ पहिले नै <strong>[[:$1]]</strong> बनाइ सकिएको छ, तर यस नामको कुनै फाइल अहिले उपस्थित छैन। \nतपाईं जुन विवरण दिनुहुन्छ त्यो विवरण पृष्ठमा देखिंदैन। \nतपाईंको आफ्नो विवरणलाई त्यहाँ राख्न म्यानुअली सम्पादन गर्नु पर्नेछ।\n[[$1|thumb]]",
        "fileexists-extension": "यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]\n* उर्ध्वभरण हुँदै गरेको फाइलको नाम: <strong>[[:$1]]</strong>\n* पहिलेदेखि नैं भएको फाइलको नाम: <strong>[[:$2]]</strong>\nकृपया अर्कै नाम रोज्नुहोस्।",
        "fileexists-thumbnail-yes": "यो फाइल ठुलो चित्रको सानो आकार ''(थम्बनेल)'' जस्तो देखिन्छ। [[$1|thumb]]\n<strong>[[:$1]]</strong> फाइललाई हेर्ने।\nयदि जाँच गरिएको फाइल यसै आकारको छ भने सानो आकारको फाइल अपलोड गर्ने आवश्यकता छैन।",
        "upload-description": "फाइल वर्णन",
        "upload-options": "उर्ध्वभरण विकल्पहरु",
        "watchthisupload": "यो पृष्ठ निगरानी गर्नुहोस्",
-       "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुन अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रो सँग जाँच गर्नुहोला।",
+       "filewasdeleted": "यस नामको एक फाइल पहिले पनि अपलोड गरे पछि हटाई सकिएको छ।\nपुनः अपलोड गर्नु पूर्व तपाईं $1 लाई राम्रोसँग जाँच गर्नुहोला।",
        "filename-bad-prefix": "तपाईं जुन फाइल अपलोड गर्दै हुनुहुन्छ त्यसको नाम <strong>\"$1\"</strong>बाट शुरू हुन्छ, जुन डिजिटल क्यामराद्वारा दिइएको नाम हो।\nकृपया यस फाइलको लागि कुनै दोश्रो अधिक जानकारीयुक्त नाम छान्नुहोस्।",
        "upload-success-subj": "उर्ध्वभरण सफल",
        "upload-success-msg": "[$2]बाट त्पाईंको उर्ध्वभरण सफल भयो। त्यो यहाँ पाउन सकिनेछ: [[:{{ns:file}}:$1]]",
        "emailuser-title-target": "{{GENDER:$1|प्रयोगकर्ता}}लाई इमेल गर्ने",
        "emailuser-title-notarget": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
        "emailpage": "प्रयोगकर्तालाई इमेल गर्नुहोस्",
-       "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईं जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।",
+       "emailpagetext": "तल दिइएको फर्मले तपाईं यस {{GENDER:$1|प्रयोगकर्ता}}लाई इमेल पठाउन सक्नुहुन्छ। तपाईंले जुन ठेगाना [[Special:Preferences|आफ्नो प्रयोगकर्ता अभिरूचीहरू]]मा दिनुभएको थियो त्यो यस इमेललाई \"पठाउने\" को रूपमा आउनेछ, अतः प्राप्तकर्ता तपाईंलाई सिधै जवाफ दिनसक्छ।",
        "defemailsubject": "{{SITENAME}} प्रयपोगकर्ता \"$1\" बाट इमेल",
        "usermaildisabled": "प्रयोगकर्ता इमेल निरस्त गरिएको",
        "usermaildisabledtext": "यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न",
        "badipaddress": "अमान्य IP ठेगाना",
        "blockipsuccesssub": "निषेधकार्य सफल भयो",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] निषेध गरिएको छ।<br />\nपुनरावलकोनको लागि [[Special:BlockList|आइपी निषेध सूची]] हेर्नहोस्।",
-       "ipb-blockingself": "तपाईंले आफैंलाई रोक लगाउन गइरहनु भएको छ! के तपाईं पक्का यसो गर्न चाहनुहुन्छ?",
+       "ipb-blockingself": "तपाईं आफैलाई रोक लगाउन गइरहनु भएको छ! के तपाईं पक्का यसो गर्न चाहनुहुन्छ?",
        "ipb-confirmhideuser": "तपाईंले त्यस्तो प्रयोगकर्तालाई रोक लगाउन गइरहनु भएको छ जसको  \"प्रयोगकर्ता लुकाउने\" सक्रिय बनाइएको छ। यसो गर्दा सबै लग सूचीहरुबाट प्रयोगकर्ताको नाम गायब हुनेछ। के तपाईं पक्का यसो गर्न चाहनुहुन्छ?",
        "ipb-confirmaction": "यदि तपाईं विश्वासपूर्ण रूपले यहि गर्न चाहनुहुन्छ, भने कृपया \"{{int:ipb-confirm}}\" लाई क्षेत्रबाट छान्नुहोस्।",
        "ipb-edit-dropdown": "निषेध कारण सम्पादन गर्नुहोस्",
        "ipbnounblockself": "तपाई आफैले आफैलाई रोक खुलाउन सक्नुहुन्न ।",
        "lockdb": "डेटाबेस ताल्चामार्ने",
        "unlockdb": "डेटाबेसको ताल्चा खोल्ने",
-       "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ।",
+       "lockdbtext": "डेटाबेसमा ताला लगाउनाले सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गरें हुन्छ, त्यसबाट वन्चित हुनेछ। कृपया यो सुनिश्चित गर्नुहोस् कि तपाईं यो गर्न चाहनुहुन्छ, र तपाईं रक्षण पश्चात ताला खोल्नुहुन्छ ।",
        "unlockdbtext": "डेटाबेसको ताला खोल्नका लागि सबै प्रयोगकर्ता पृष्ठ सम्पादन, आफ्नो अभिरूचीहरूमा परिवर्तन, आफ्नो ध्यानसूचीमा सम्पादन, र अन्य वस्तु जसको लागि डेटाबेसमा परिवर्तन गर्नु पर्छ, को सक्षमतालाई पुनर्स्थापित गर्नछ। कृपया यो सुनिश्चित गर्नुस कि तपाईं यो गर्न चाहनुहुन्छ।",
        "lockconfirm": "हो, म साँच्चिकै डेटाबेस थुन्न चाहन्छु।",
        "unlockconfirm": "हो , म साँच्चै  डेटाबेसको ताल्चा खोल्न चाहन्छु ।",
        "move-page": " $1 लाई सार्ने",
        "move-page-legend": "पृष्ठ सार्नुहोस्",
        "movepagetext": "तल दिएको फारमको उपयोगले पृष्ठ नाम परिवर्तन हुनेछ र पृष्ठको सम्पूर्ण इतिहास नयाँ नामको साथमा जानेछ।\nपुरानो शीर्षक नयाँ शीर्षककोलागि अनुप्रेषित पृष्ठ बनिनेछ।\nतपाईंले यो स्वचालित रूपले अनुप्रेषित पृष्ठलाई अपडेट गर्न सक्नुहुनेछ।\nयदि तपाईं हुँदैन चुन्नुहुन्छ भनें जाँचेर सुनिश्चित गर्नुहोस् कि [[Special:DoubleRedirects|दोहोरो]] अथवा [[Special:BrokenRedirects|टुटेको अनुप्रेषण]]।\nतपाईंमाथि यो सुनिश्चित गर्ने उत्तरदायित्व रहन्छ कि लिङ्क कुन विन्दुमा जानु पर्ने हो ।\n\nध्यान दिनुहोस् नयाँ नामको पृष्ठ पहिलेबाट नैं छ भनें पृष्ठ सारिने <strong>छैन</strong>। नयाँ नामको पृष्ठ पहिलेबाट भएर पनि यदि यो खालि छ अथवा अनुप्रेषित छ र सम्पादित इतिहास छैन भनें सारिनेछ।\nयसको अर्थ हुन्छ यदि कुनै गल्ती गरेमा तपाईंले पुनः पुरानै नाम दिनु पर्ने हुन्छ यसलाई अधिलेखन गर्नसक्नु हुनेछैन। \n\n<strong>चेतावनी!</strong>\nयो एक लोकप्रिय पृष्ठको लागि एउटा कठोर र अप्रत्याशित परिवर्तन हुनसक्नेछ;\nकृपया सुनिश्चित गर्नुहोस् कि तपाईंले यसको सही परिणाम बुझ्नु भएको छ अनि मात्र नयाँ नाम दिन अघि बढ्नुहोस्।",
-       "movepagetext-noredirectfixer": "तल दिइएको फारम पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस।\nलिङ्क आफ्नो स्थानमै रहोस, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने स्थानान्तरण '''हुन''' सक्दैन। तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यो स्थानान्तरण हुनेछ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गलती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई स्थानान्तरण गर्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\n<strong>चेतावनी!<strong>\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।",
+       "movepagetext-noredirectfixer": "तल दिइएको फारमले पृष्ठको नाम परिवर्तन गर्नेछ, उसको सबै इतिहास पनि नयाँ नामले देखिनेछ ।\nपुरानो शीर्षक नयाँ नाममा अनुप्रेषण गर्नेछ ।\nमूल शीर्षक तर्फ लिएर जाने सबै अनुप्रेषणहरूलाई तपाईं स्वचालित रूपले परिवर्तन गर्न सक्नुहुन्छ ।\nयदि तपाईं यसो गर्नुहुन्न भने कृपया [[Special:DoubleRedirects|दोहोरो]] पुनर्निर्देशन वा [[Special:BrokenRedirects|टुटेको पुनर्निर्देशन]]को लागि पक्कै जाँच गर्नुहोस् ।\nलिङ्क आफ्नो स्थानमै रहोस्, यो सुनिश्चित गर्ने जिम्मेवारी तपाईंको हो ।\n\nयदि नयाँ शीर्षकको लेख पहिले देखि छ भने नाम परिवर्तन '''हुन''' सक्दैन । तर यदि नयाँ शीर्षक भएको लेख खाली छ अथवा कतै अन्य स्थानमा अनुप्रेषित गर्दैछ र साथै उसको पुरानो संस्करण छैन भने त्यसको नाम परिवर्तन हुनेछ ।\nयसको अभिप्राय यो हो कि यदि तपाईंद्वारा गल्ती भएको छ भने तपाईं फेरी पुरानो नाममा यस पृष्ठलाई सार्न सक्नुहुन्छ, र साथै तपाईं कुनै पहिले देखि रहेको पृष्ठको सट्टा यो स्थानान्तरण गर्न सक्नुहुन्न।\n\n<strong>चेतावनी!<strong>\nयदि पृष्ठ खासै लोकप्रिय छ भने त्यसको लागि यो एउटा ठुलो र अकस्मात परिवर्तन हुन सक्छ;\nअगाडी बढ्नु भन्दा पहिले तपाईं यसको नतिजासँग परिचित हुनुहुन्छ।",
        "movepagetalktext": "संबद्ध वार्तालाप पृष्ठ स्वतः योसित जानेछ '''यदि'''\n* नयाँ नामको पृष्ठको वार्तालाप पृष्ठ रिक्त छैन अथवा\n* तपाईंले यसको सन्दूकमा अनचेक गर्नुहुन्छ भनें '''वार्तालाप पृष्ठ जानेछैन'''। \n\nयस्तो भएमा, तपाईंको इच्छाले आफैंले (manually) पृष्ठ सार्नु अथवा मिलाउनु पर्ने हुन्छ।",
        "movearticle": "पृष्ठ सार्नुहोस्",
        "moveuserpage-warning": "'''चेतावनी:''' तपाईंले प्रयोगकर्ता पृष्ठ सार्न आँट्नु भएकोछ। कृपया याद राख्नुहोस् पृष्ठ मात्र सारिने छ र प्रयोगकर्ताको अर्को नाम राख्न '''सकिंदैन'''।",
        "move-over-sharedrepo": "==फाइल पहिले देखि छ==\n[[$1]] एक साझा भण्डारमा पहिले देखि नै छ। यस नामको स्थानान्तरणले नयाँ फाइल साझा फाइललाई ओभरराइड गर्नेछ।",
        "file-exists-sharedrepo": "छानिएको फाइल नाम पहिले देखि नै साझा भण्डारमा प्रयोगमा छ। कृपया अन्य नाम छान्नुहोस्।",
        "export": "पृष्ठहरू निर्यात गर्ने",
-       "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
+       "exporttext": "तपाईं विशिष्ठ पृष्ठको विषय वस्तु र सम्पादन इतिहासलाई निर्यात गर्न सक्नुहुन्छ अथवा पृष्ठहरूको समूहका केहि XML मा बेर्न सक्नुहुन्छ।\nयो [[Special:Import|आयात पृष्ठ]]को सहायताले मीडियाविकीको प्रयोग गरेर दोश्रो विकीबाट आयात गर्न सकिनेछ।\n\nपृष्ठहरूको निर्यात गर्नका लागि, तल विषय वस्तु बाकसमा शीर्षक दिनुहोस, एक शीर्षक प्रति पङ्क्ति, र छान्नुहोस् कि तपाईं वर्तमान अवतरणसँग पुरानै अवतरण पनि चाहनुहुन्छ वा चाहनुहुन्न, वा पछिल्लो सम्पादनको बारेमा जानकारीसँग मात्रै वर्तमान अवतरण चाहनुहुन्छ।\n\nपछीको स्थितिको लागि तपाईं लिङ्कको पनि प्रयोग गर्न सक्नुहुन्छ, उदाहरणको लागि, \"[[{{MediaWiki:Mainpage}}]]\" पृष्ठको लागि [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।",
        "exportall": "सबै पृष्ठहरू निर्यात गर्ने",
        "exportcuronly": "हालको संस्करण मात्र थप्ने ,पूरा इतिहास हैन",
        "exportnohistory": "----\n<strong>सूचना:</strong> यस फारमको प्रयोग गरेर पृष्ठको पुरै इतिहास निर्यात गर्दा प्रदर्शन कारणले अक्षम गरिएको छ।",
        "tags-delete-title": "ट्याग मेट्नुहोस्",
        "tags-delete-explanation-initial": "तपाईले ट्याग \"$1\" लाई डाटावेसबाट हटाउन खोज्दै हुनु हुन्छ ।",
        "tags-delete-explanation-in-use": "ट्यागलाई {{PLURAL:$2|$2 संशोधन वा लग प्रविष्टि|सबै $2 संशोधन र/वा लग प्रविष्टिहरू}}बाट हटाइनेछ जहाँ अहिले त्यसको प्रयोग गरिंदै छ।",
-       "tags-delete-explanation-warning": "यà¥\8b à¤\95à¥\8dरिया <strong>à¤\85परिवरà¥\8dतनà¥\80य</strong> à¤¹à¥\8b à¤° <strong>तà¥\8dयसलाà¤\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dन à¤¸à¤\95िà¤\82दà¥\88न</strong>, à¤¡à¥\87à¤\9fाà¤\9fाबà¥\87स à¤ªà¥\8dरवनà¥\8dधà¤\95 à¤ªà¤¨à¤¿ à¤¯à¤¸à¤²à¤¾à¤\88 à¤\95à¥\87हि à¤\97रà¥\8dन à¤¸à¤\95à¥\8dदà¥\88ननà¥\8d। à¤µà¤¿à¤¶à¥\8dवासपà¥\82रà¥\8dण à¤°à¥\82पलà¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤¯ à¤\97रà¥\8dनà¥\81स कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।",
+       "tags-delete-explanation-warning": "यà¥\8b à¤\95à¥\8dरिया <strong>à¤\85परिवरà¥\8dतनà¥\80य</strong> à¤¹à¥\8b à¤° <strong>तà¥\8dयसलाà¤\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤\97रà¥\8dन à¤¸à¤\95िà¤\82दà¥\88न</strong>, à¤¡à¥\87à¤\9fाबà¥\87स à¤ªà¥\8dरवनà¥\8dधà¤\95 à¤ªà¤¨à¤¿ à¤¯à¤¸à¤²à¤¾à¤\88 à¤\95à¥\87हि à¤\97रà¥\8dन à¤¸à¤\95à¥\8dदà¥\88ननà¥\8d। à¤µà¤¿à¤¶à¥\8dवासपà¥\82रà¥\8dण à¤°à¥\82पलà¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤¯ à¤\97रà¥\8dनà¥\81हà¥\8bसà¥\8d कि तपाईं यस ट्यागलाई हटाउन चाहनुहुन्छ।",
        "tags-delete-explanation-active": "<strong>ट्याग \"$1\" अहिले पनि सक्रिय छ, र यसको प्रयोग भविष्यमा पनि जारी रहनेछ।</strong> यसलाई रोकनका लागि, ती स्थानहरूमा जानुहोस जहाँ यस ट्यागको प्रयोग भइरहेको छ र त्यहाँ देखि यसलाई अक्षम गर्नुहोस।",
        "tags-delete-reason": "कारण:",
        "tags-delete-submit": "उल्टाउन नसकिने गरि यो ट्यागलाई मेटाउने",
        "feedback-back": "अघिल्लो",
        "feedback-bugcheck": "राम्रो! जाँच्नुस की कतै [ $1 ज्ञात बगहरू] पहिले देखि नै नहोस्।",
        "feedback-bugnew": "मैले जाँच गरिसके। नयाँ बगको खबर दिनुहोस्",
-       "feedback-bugornote": "यदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95à¥\81नà¥\88 à¤ªà¥\8dराविधिà¤\95 à¤¸à¤®à¤¸à¥\8dयालाà¤\88 à¤µà¤¿à¤¸à¥\8dतारलà¥\87 à¤¸à¤®à¤\9dाà¤\89न à¤¤à¤¯à¤¾à¤° à¤¹à¥\81नà¥\81हà¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤\95à¥\83पया [$1 à¤¬à¤\97 à¤°à¤¾à¤\96à¥\8dनà¥\81हà¥\8bस]।\nयदि à¤¹à¥\88न, à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤² à¤¦à¤¿à¤\87à¤\8fà¤\95à¥\8b à¤¸à¤°à¤² à¤«à¤¾à¤°à¤®à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dनसà¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b। à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤\9fिपà¥\8dपणà¥\80 à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¨à¤¾à¤® à¤° à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤¬à¥\8dराà¤\89à¤\9cरà¤\95à¥\8b à¤¨à¤¾à¤® à¤¸à¤¹à¤¿à¤¤ \"[$3 $2]\" à¤ªà¥\83षà¥\8dठ मा जोडिनेछ।",
+       "feedback-bugornote": "यदि à¤¤à¤ªà¤¾à¤\88à¤\82 à¤\95à¥\81नà¥\88 à¤ªà¥\8dराविधिà¤\95 à¤¸à¤®à¤¸à¥\8dयालाà¤\88 à¤µà¤¿à¤¸à¥\8dतारलà¥\87 à¤¸à¤®à¥\8dà¤\9dाà¤\89न à¤¤à¤¯à¤¾à¤° à¤¹à¥\81नà¥\81हà¥\81नà¥\8dà¤\9b à¤­à¤¨à¥\87 à¤\95à¥\83पया [$1 à¤¬à¤\97 à¤°à¤¾à¤\96à¥\8dनà¥\81हà¥\8bस]।\nयदि à¤¹à¥\88न, à¤­à¤¨à¥\87 à¤¤à¤ªà¤¾à¤\88à¤\82 à¤¤à¤² à¤¦à¤¿à¤\87à¤\8fà¤\95à¥\8b à¤¸à¤°à¤² à¤«à¤¾à¤°à¤®à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97 à¤\97रà¥\8dनसà¤\95à¥\8dनà¥\81हà¥\81नà¥\8dà¤\9b। à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤\9fिपà¥\8dपणà¥\80 à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤ªà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¨à¤¾à¤® à¤° à¤¤à¤ªà¤¾à¤\88à¤\82à¤\95à¥\8b à¤¬à¥\8dराà¤\89à¤\9cरà¤\95à¥\8b à¤¨à¤¾à¤® à¤¸à¤¹à¤¿à¤¤ \"[$3 $2]\" à¤ªà¥\83षà¥\8dठमा जोडिनेछ।",
        "feedback-cancel": "रद्द गर्ने",
        "feedback-close": "गरियो",
        "feedback-external-bug-report-button": "प्राविधिक कार्य पेश गर्नुहोस्",
        "log-name-pagelang": "लगको भाषा परिवर्तन गर्ने",
        "log-description-pagelang": "यो पृष्ठको भाषाहरूमा भएका परिवर्तनहरूको लग हो ।",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|परिवर्तन गरियो}} पृष्ठ भाषालाई $3 को लागि $4 बाट $5 ।",
-       "default-skin-not-found": "ओह! तपाईंको विकिको पूर्व निर्धारित खोल जस्तो कि <code dir=\"ltr\">$wgDefaultSkin</code> मा बताइएको<code>$1</code>, उपलब्ध छैन।\n\nतपाईंको इन्स्टलेसन यी खोलहरूलाई सम्मिलित गर्दछ {{PLURAL:$4|खोल|खोलहरू}}। हेर्नुस [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: खोललाई सम्मित गर्नु] ताकि तपाईंलाई जानकारी होस कि कसरि {{PLURAL:$4|उसलाई|उसलाई सम्मिलित गर्न सकियोस र निर्धारितलाई तय गर्ने}}।\n\n$2\n\n; यदि तपाईंले अहिले मीडियाविकि इन्स्टाल गर्नुभएको छ:\n: तपाईंले सम्भवत गिटबाट इन्स्टल गर्नुभएको छ, वा सिधै स्रोत कोडबाट गर्नुभएको छ जसको लागि कुनै अर्कै तारिका प्रयोग गरिएको छ। यो आशा अनुरूप छ। कोशिश गर्नुस केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गर्ने], जसको लागि तपाईं:\n:* डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Download टरबल इन्स्टलर], जुन कयौं खोलहरू र विस्तारमा उपलब्ध छन्। तपाईं खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गर्न सक्नुहुन्छ। \n:* व्यक्तिगत खोलहरू टरबलबाट डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बाट।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गर्न सक्नुहुन्छ]।\n: यदि तपाईं विकासकर्ता हो भने यसो गर्दा समय तपाईंको गिट-रिपजिटरीमा केहि हुनुहुँदैन । \n; यदि तपाईंले अहिले मीडियाविकिलाई अपग्रेड गर्नुभएको छ:\n: मीडियाविकि १.२४ र यसको नवीन रूप स्वतः रूपले खोलहरूलाई सक्षम गर्दैनन् (हेर्नुस [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:खोलहरूको स्वतः खोज])। तपाईं निम्नलिखितलाई पेस्ट गर्न सक्नुहुन्छ: {{PLURAL:$5|लाइन|लाइनहरू}}  <code>LocalSettings.php</code> मा ताकि {{PLURAL:$5|उसले|सबै}} सक्षम होस् जस्तो कि तपाईंले इन्स्टल गरिएको {{PLURAL:$5|खोल|खोलहरू}}को मामिलामा:\n\n<pre dir=\"ltr\">$3</pre>\n\n; यदि तपाईंले अहिले परिवर्तन गर्नुभएको छ<code>LocalSettings.php</code>:\n: खोल नामहरूको अगाडी डबल-क्लिक गर्नुहोस जसले तपाईंलाई विभिन्न प्रकारहरूको विकल्प दिन्छ।",
+       "default-skin-not-found": "ओह! तपाईंको विकिको पूर्व निर्धारित खोल जस्तो कि <code dir=\"ltr\">$wgDefaultSkin</code> मा बताइएको<code>$1</code>, उपलब्ध छैन ।\n\nतपाईंको इन्स्टलेसन यी खोलहरूलाई सम्मिलित गर्दछ {{PLURAL:$4|खोल|खोलहरू}}। हेर्नुहोस् [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: खोललाई सम्मिलित गर्नु] ताकि तपाईंलाई जानकारी होस् कि कसरि {{PLURAL:$4|उसलाई|उसलाई सम्मिलित गर्न सकियोस् र निर्धारितलाई तय गर्ने}}।\n\n$2\n\n; यदि तपाईंले अहिले मीडियाविकि इन्स्टाल गर्नुभएको छ:\n: तपाईंले सम्भवत गिटबाट इन्स्टाल गर्नुभएको छ, वा सिधै स्रोत कोडबाट गर्नुभएको छ जसको लागि कुनै अर्कै तारिका प्रयोग गरिएको छ। यो आशा अनुरूप छ। कोशिश गर्नुहोस् केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गर्ने], जसको लागि तपाईं:\n:* डाउनलोड गर्नुहोस् [https://www.mediawiki.org/wiki/Download टरबल इन्स्टलर], जुन कयौं खोलहरू र विस्तारमा उपलब्ध छन्। तपाईं खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गर्न सक्नुहुन्छ। \n:* व्यक्तिगत खोलहरू टरबलबाट डाउनलोड गर्नुहोस् [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बाट।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गर्न सक्नुहुन्छ]।\n: यदि तपाईं विकासकर्ता हो भने यसो गर्दा  तपाईंको गिट-रिपजिटरीमा केहि हुनुहुँदैन । \n; यदि तपाईंले अहिले मीडियाविकिलाई अपग्रेड गर्नुभएको छ:\n: मीडियाविकि १.२४ र यसको नवीन रूप स्वतः रूपले खोलहरूलाई सक्षम गर्दैनन् (हेर्नुहोस् [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual:खोलहरूको स्वतः खोज])। तपाईं निम्नलिखितलाई पेस्ट गर्न सक्नुहुन्छ: {{PLURAL:$5|लाइन|लाइनहरू}}  <code>LocalSettings.php</code> मा ताकि {{PLURAL:$5|उसले|सबै}} सक्षम होस् जस्तो कि तपाईंले इन्स्टाल गरेको {{PLURAL:$5|खोल|खोलहरू}}को मामिलामा:\n\n<pre dir=\"ltr\">$3</pre>\n\n; यदि तपाईंले अहिले परिवर्तन गर्नुभएको छ<code>LocalSettings.php</code>:\n: खोल नामहरूको अगाडी डबल-क्लिक गर्नुहोस् जसले तपाईंलाई विभिन्न प्रकारहरूको विकल्प दिन्छ।",
        "default-skin-not-found-no-skins": "ओह! तपाईंको विकिको पूर्व निर्धारित खोल जस्तो कि <code>$wgDefaultSkin</code> मा बताइएको <code>$1</code>, उपलब्ध छैन।\nतपाईंसँग कुनै इन्स्टल गरिएको खोल छैन।\n; यदि तपाईंले अहिले मीडियाविकि इन्स्टल गर्नुभएको छ वा यसलाई अपडेट गर्नुभएको छ:\nतपाईंले सम्भवत गिटबाट इन्स्टल गर्नुभएको छ, वा सिधै स्रोत कोडबाट गर्नुभएको छ जसको लागि कुनै अर्कै तारिका प्रयोग गरिएको छ। यो आशा अनुरूप छ। कोशिश गर्नुस केहि खोलहरू\n[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's मीडियाविकिको खोल डाइरेक्ट्रीबाट डाउनलोड गर्ने], जसको लागि तपाईं:\n:* डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Download टरबल इन्स्टलर], जुन कयौं खोलहरू र विस्तारमा उपलब्ध छन्। तपाईं खोलहरूको कोड <code>skins/</code> त्यसको डाइरेक्ट्रीबाट कपी-पेस्ट गर्न सक्नुहुन्छ। \n:* व्यक्तिगत खोलहरू टरबलबाट डाउनलोड गर्नुस [https://www.mediawiki.org/wiki/Special:SkinDistributor मीडिया विकि] बाट।\n:* [https://www.mediawiki.org/wiki/Download_from_Git#Using_Git_to_download_MediaWiki_skins गिटको प्रयोग गरेर डाउनलोड गर्न सक्नुहुन्छ]।\n:यदि तपाईं विकासकर्ता हो भने यसो गर्दा समय तपाईंको गिट-रिपजिटरीमा केहि हुनुहुँदैन।",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्रिय)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''निष्क्रिय''')",
        "special-characters-group-khmer": "खेमर",
        "special-characters-title-endash": "इएन ड्यास",
        "special-characters-title-emdash": "इएम ड्यास",
-       "special-characters-title-minus": "घटाउने चिन्ह"
+       "special-characters-title-minus": "घटाउने चिन्ह",
+       "mw-widgets-titleinput-description-new-page": "हालसम्म पृष्ठ उपलब्ध छैन्",
+       "mw-widgets-titleinput-description-redirect": "$1 मा जाने"
 }
index ae9d063..c2ac649 100644 (file)
        "passwordreset": "Wachtwoord opnieuw instellen",
        "passwordreset-text-one": "Vul dit formulier in om uw wachtwoord opnieuw in te stellen.",
        "passwordreset-text-many": "{{PLURAL:$1|Vul een van de gegevensvelden in om per e-mail een tijdelijk wachtwoord te ontvangen.}}",
-       "passwordreset-legend": "Wachtwoord opnieuw instellen",
        "passwordreset-disabled": "Het is in deze wiki niet mogelijk uw wachtwoord opnieuw in te stellen.",
        "passwordreset-emaildisabled": "E-mailmogelijkheden zijn uitgeschakeld op deze wiki.",
        "passwordreset-username": "Gebruiker:",
        "resettokens": "Tokens opnieuw instellen",
        "resettokens-text": "U kunt hier tokens opnieuw instellen die toegang tot bepaalde persoonlijke gegevens die zijn gekoppeld aan uw gebruiker.\n\nDoe dit als u ze per ongeluk met iemand hebt gedeeld of als uw onbevoegden toegang hebben gekregen tot uw gebruiker.",
        "resettokens-no-tokens": "Er zijn geen tokens om opnieuw in te stellen.",
-       "resettokens-legend": "Tokens opnieuw instellen",
        "resettokens-tokens": "Tokens:",
        "resettokens-token-label": "$1 (huidige waarde: $2)",
        "resettokens-watchlist-token": "Token voor webfeed van [[Special:Watchlist|uw volglijst]] (Atom/RSS)",
        "nmembers": "$1 {{PLURAL:$1|item|items}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|lid|leden}}",
        "nrevisions": "$1 {{PLURAL:$1|versie|versies}}",
-       "nviews": "{{PLURAL:$1|1 keer|$1 keer}} bekeken",
        "nimagelinks": "Gebruikt op {{PLURAL:$1|één pagina|$1 pagina's}}",
        "ntransclusions": "gebruikt op {{PLURAL:$1|één pagina|$1 pagina's}}",
        "specialpage-empty": "Er zijn geen resultaten voor deze rapportage.",
        "tooltip-pt-logout": "Afmelden",
        "tooltip-pt-createaccount": "Registreer u vooral en meld u aan. Dit is echter niet vereist.",
        "tooltip-ca-talk": "Overleg over deze pagina",
-       "tooltip-ca-edit": "U kunt deze pagina bewerken. Gebruik de knop \"Bewerking ter controle bekijken\" voordat u de pagina opslaat",
+       "tooltip-ca-edit": "U kunt deze pagina bewerken. Gebruik de knop voor het maken van een voorbeeld voordat u de pagina opslaat",
        "tooltip-ca-addsection": "Nieuw kopje toevoegen",
        "tooltip-ca-viewsource": "Deze pagina is beveiligd.\nU kunt wel de broncode bekijken.",
        "tooltip-ca-history": "Eerdere versies van deze pagina",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "liggend streepje",
        "special-characters-title-emdash": "gedachtenstreepje",
-       "special-characters-title-minus": "minteken"
+       "special-characters-title-minus": "minteken",
+       "mw-widgets-titleinput-description-new-page": "pagina bestaat nog niet",
+       "mw-widgets-titleinput-description-redirect": "doorverwijzing naar $1"
 }
index 2984e93..01e3394 100644 (file)
        "resetpass-abort-generic": "Passordbytet vart stogga av ei utviding.",
        "passwordreset": "Attendestilling av passord",
        "passwordreset-text-one": "Fyll ut dette skjemaet for å attendestilla passordet ditt.",
-       "passwordreset-legend": "↓Nullstill passordet",
        "passwordreset-disabled": "↓Tilbakestilling av passord er ikkje aktivert på denne wikien",
        "passwordreset-emaildisabled": "E-postfunksjonen er slegen av på wikien.",
        "passwordreset-username": "Brukarnamn:",
        "movepagetalktext": "Den tilhøyrande diskusjonssida, om ho finst, vert automatisk flytt med sida '''minder:'''\n*ei ikkje-tom diskusjonsside alt finst under det nye namnet, eller\n*du fjernar avhakinga i boksen nedanfor.\n\nI desse falla lyt du flytta eller fletta sida manuelt, om ynskjeleg.",
        "movearticle": "Flytt side:",
        "moveuserpage-warning": "'''Åtvaring:''' Du er i ferd med å flytta ei brukarside. Merk at berre sida vert flytt og at brukarnamnet '''ikkje''' vert endra.",
+       "movecategorypage-warning": "<strong>Åtvaring:</strong> Du er i ferd med å flytta ei kategoriside. Merk at berre kategorisida vert flytt og at sider i den gamle kategorien <em>ikkje</em> vert omkategoriserte til den nye kategorien.",
        "movenologintext": "Du lyt vera registrert brukar og vera [[Special:UserLogin|innlogga]] for å flytte ei side.",
        "movenotallowed": "Du har ikkje tilgang til å flytte sider.",
        "movenotallowedfile": "Du har ikkje løyve til å flytta filer.",
index 7e67800..758f34b 100644 (file)
        "passwordreset": "ପାସୱାର୍ଡ଼ ପୁନସ୍ଥାପନ କରନ୍ତୁ",
        "passwordreset-text-one": "ଏକ ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ ପାଇବା ପାଇଁ ଏହି ଫର୍ମଟି ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପୂରଣ କରନ୍ତୁ ।",
        "passwordreset-text-many": "{{PLURAL:$1|ଇମେଲ ଯୋଗେ ଏକ ଅସ୍ଥାୟୀ ପାସୱାର୍ଡ଼ ପାଇବା ପାଇଁ ତଳ ଘର ମଧ୍ୟରୁ ଗୋଟେ ଭରନ୍ତୁ ।}}",
-       "passwordreset-legend": "ପାସୱାର୍ଡ଼ ପୁନସ୍ଥାପନ କରନ୍ତୁ",
        "passwordreset-disabled": "ପାସୱାର୍ଡ଼କୁ ପୁରାପୁରି ମୂଳକୁ ଫେରାଇବା ଏହି ଉଇକିରେ ଅଚଳ କରାଯାଇଅଛି ।",
        "passwordreset-emaildisabled": "ଏହି ଉଇକିରେ ଇମେଲ ସୁବିଧା ଅଚଳ କରାଯାଇଅଛି ।",
        "passwordreset-username": "ବ୍ୟବହାରକାରୀଙ୍କ ନାମ:",
        "resettokens": "ଟୋକନ ରିସେଟ କରନ୍ତୁ",
        "resettokens-text": "ଏଠାରେ, ନିଜର ଖାତା ସହ ଯୋଡ଼ା କେତେକ ଗୋପନୀୟ ତଥ୍ୟ ଜାଣିବାକୁ ଲୋଡ଼ା ପଡ଼ୁଥିବା ଟୋକନ ରିସେଟ କରିପାରିବେ ।\n\nଆପଣ ଯଦି ଦୈବାତ କେବେ ନିଜର ଟୋକନ ଆଉ କାହାକୁ ଜଣାଇଥାନ୍ତି କିମ୍ବା ଆପଣଙ୍କ ଖାତା ଆଉ କାହା ଦେଇ ଖୋଲାଯାଇଥିଲେ ନିଶ୍ଚିତ ରିସେଟ କରନ୍ତୁ ।",
        "resettokens-no-tokens": "ରିସେଟ କରିବା ପାଇଁ ଆଉ ଟୋକନ ନାହିଁ ।",
-       "resettokens-legend": "ଟୋକନ ରିସେଟ କରନ୍ତୁ",
        "resettokens-tokens": "ଟୋକନମାନ:",
        "resettokens-token-label": "$1 (ବର୍ତ୍ତମାନ: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|ନିଜର ଦେଖଣାତାଲିକରେ ହେଉଥିବା ବଦଳ]]ର ୱେବ ଫିଡ଼ ପାଇଁ ଟୋକନ (ଆଟମ/RSS)",
        "watchthis": "ଏହି ପୃଷ୍ଠାଟିକୁ ଦେଖିବେ",
        "savearticle": "ସାଇତିବେ [Save]",
        "preview": "ସାଇତିବା ଆଗରୁ ଦେଖନ୍ତୁ",
-       "showpreview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା [Preview]",
+       "showpreview": "ଦେଖଣା [Preview]",
        "showdiff": "ବଦଳଗୁଡ଼ିକ ଦେଖାଇବେ",
        "blankarticle": "<strong>ଚେତାବନୀ:</strong> ଆପଣ ସମ୍ପାଦନା କରୁଥିବା ଏହି ପୃଷ୍ଠାଟି ଫାଙ୍କା ଅଛି ।\nଯଦି ଆପଣ \"{{int:savearticle}}\" ଉପରେ ଆଉଥରେ କ୍ଲିକ କରନ୍ତି, ପୃଷ୍ଠାଟି କୌଣସି ବିଷୟବସ୍ତୁ ନଥାଇ ତିଆରି ହୋଇଯିବ ।",
        "anoneditwarning": "<strong>ସାବଧାନ:</strong> ଆପଣ ଲଗ-ଇନ କରିନାହାନ୍ତି । ଅଧିକ ସମ୍ପାଦନା କଲେ ଆପଣଙ୍କ IP Address ଟି ସମସ୍ତଙ୍କୁ ଦେଖାଯିବ । <strong>[$1ଲଗ ଇନ କଲେ]</strong> କିମ୍ବା <strong>[$2 ନୂଆ ଖାତାଟିଏ ତିଆରି କଲେ]</strong>, ଆପଣଙ୍କ ସମ୍ପାଦନାର ଶ୍ରେୟ ଅନ୍ୟାନ୍ୟ ସୁବିଧା ସହିତ ଆପଣଙ୍କ ଇଉଜର ନାମରେ ଦିଆହେବ ।",
        "prefs-timeoffset": "ସମୟ ଆରମ୍ଭ",
        "prefs-advancedediting": "ସାଧାରଣ ବିକଳ୍ପ",
        "prefs-editor": "ସମ୍ପାଦକ",
-       "prefs-preview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା",
+       "prefs-preview": "ଦେଖଣା",
        "prefs-advancedrc": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "prefs-advancedrendering": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "prefs-advancedsearchoptions": "ଉନ୍ନତ ବିକଳ୍ପସମୂହ",
        "version-entrypoints": "ନିବେଶ ହେଉଥିବା ସ୍ଥାନର URLଗୁଡିକ",
        "version-entrypoints-header-entrypoint": "ପ୍ରବେଶ ବିନ୍ଦୁ",
        "version-entrypoints-header-url": "ଇଉଆରଏଲ",
+       "version-libraries": "ଇନଷ୍ଟାଲ ହୋଇଥିବା ପାଠାଗାର",
+       "version-libraries-library": "ପାଠାଗାର",
+       "version-libraries-version": "ସଂସ୍କରଣ",
        "redirect": "ଫାଇଲ, ସଭ୍ୟ, ପୃଷ୍ଠା କିମ୍ବା ସଂସ୍କରଣ ID ଅନୁସାରେ ପୁନପ୍ରେରଣ",
        "redirect-legend": "ଏକ ଫାଇଲ କିମ୍ବା ପୃଷ୍ଠାକୁ ପୁନପ୍ରେରଣ କରନ୍ତୁ",
        "redirect-summary": "(ଫାଇଲ ନାମ ଥିଲେ), (ଏକ ସଂସ୍କରଣ ID କିମ୍ବା ପୃଷ୍ଠା ID ଥିଲେ) କିମ୍ବା ଏକ ସଭ୍ୟ ଖାତା ଥିଲେ (ଏକ ସାଂଖିକ ସଭ୍ୟ ID)ଏହି ବିଶେଷ ପୃଷ୍ଠାଟି ଏକ ଫାଇଲକୁ ଲେଉଟାଇ ଦେଇଥାଏ । ବ୍ୟବହାର: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], କିମ୍ବା [[{{#Special:Redirect}}/user/101]].",
        "tags-tag": "ଚିହ୍ନ ନାମ",
        "tags-display-header": "ବଦଳ ତାଲିକାରେ ଦେଖଣା",
        "tags-description-header": "ଅର୍ଥର ପୁରା ବିବରଣୀ",
+       "tags-source-header": "ଉତ୍ସ",
        "tags-active-header": "ସକ୍ରିୟ କି?",
        "tags-hitcount-header": "ଚିହ୍ନିତ ବଦଳ",
+       "tags-actions-header": "କାମସବୁ",
        "tags-active-yes": "ହଁ",
        "tags-active-no": "ନାଁ",
+       "tags-source-extension": "ଏକ୍ସଟେନସନ ଦ୍ଵାରା ଦର୍ଶାଯାଇଥିବା",
+       "tags-source-manual": "ବ୍ୟବହାରକାରୀ ଓ ବଟଦ୍ଵାରା କରାଯାଇଛି",
+       "tags-source-none": "ଆଉ ବ୍ୟବହାର ହେଉନାହିଁ",
        "tags-edit": "ସମ୍ପାଦନା",
+       "tags-delete": "ଲିଭାଇବେ",
+       "tags-activate": "ସଚଳ କରିବେ",
+       "tags-deactivate": "ଅଚଳ କରିବେ",
        "tags-hitcount": "$1 {{PLURAL:$1|ବଦଳ|ବଦଳସବୁ}}",
+       "tags-manage-no-permission": "ଆପଣଙ୍କର ଟାଗ ବଦଳ କରିବା ଅଧିକାର ନାହିଁ ।",
+       "tags-create-heading": "ନୂଆ ଟାଗ ତିଆରି କରିବେ",
+       "tags-create-tag-name": "ଟାଗ ନାମ",
+       "tags-create-reason": "କାରଣ",
+       "tags-create-submit": "ତିଆରି କରିବେ",
+       "tags-create-no-name": "ଆପଣଙ୍କୁ ଗୋଟିଏ ଟାଗ ନାମ ଦେବାକୁ ପଡିବ ।",
+       "tags-delete-title": "ଟାଗ ଲିଭାଇବେ",
+       "tags-delete-reason": "କାରଣ:",
+       "tags-activate-reason": "କାରଣ:",
+       "tags-activate-submit": "ସଚଳ କରିବେ",
+       "tags-deactivate-title": "ଟାଗ ଅଚଳ କରିବେ",
+       "tags-deactivate-reason": "କାରଣ:",
+       "tags-edit-title": "ଟାଗ ସମ୍ପାଦନ କରିବେ",
+       "tags-edit-manage-link": "ଟାଗ ବଦଳାଇବେ",
+       "tags-edit-existing-tags": "ଆଗରୁ ଥିବା ଟାଗଗୁଡିକ:",
+       "tags-edit-existing-tags-none": "\"କୌଣସି ଗୋଟିଏ ନୁହେଁ\"",
+       "tags-edit-new-tags": "ନୂଆ ଟାଗଗୁଡିକ",
+       "tags-edit-add": "ଏହି ଟାଗଗୁଡିକୁ ଯୋଡିବେ",
+       "tags-edit-remove": "ଏହି ଟାଗଗୁଡିକୁ କାଢିବେ:",
+       "tags-edit-remove-all-tags": "(ସମସ୍ତ ଟାଗ କାଢିବେ)",
+       "tags-edit-chosen-placeholder": "କିଛି ଟାଗ ବାଛିବେ",
+       "tags-edit-reason": "କାରଣ:",
        "comparepages": "ବଦଳ ତୁଳନା କରିବେ",
        "compare-page1": "ପୃଷ୍ଠା ୧",
        "compare-page2": "ପୃଷ୍ଠା ୨",
        "logentry-upload-upload": "$1, $3 {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
        "logentry-upload-overwrite": "$1, $3ର ଏକ ନୂଆ ସଂସ୍କରଣ {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
        "logentry-upload-revert": "$1, $3 {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
+       "log-name-tag": "ଟାଗ ଲଗ",
        "rightsnone": "(କିଛି ନାହିଁ)",
        "revdelete-summary": "ସାରକଥା ସମ୍ପାଦନା",
        "feedback-adding": "ପୃଷ୍ଠାରେ ମତାମତ ଦେଉଛି...",
+       "feedback-back": "ପଛକୁ ଯିବେ",
        "feedback-bugcheck": "ବହୁତ ଭଲ ! ଖାଲି ଦେଖିଦିଅନ୍ତୁ ଯେ ଏହା ଆଗରୁ ଥିବା [$1 known bugs] ମଧ୍ୟରୁ ନୁହେଁ ତ ।",
        "feedback-bugnew": "ମୁଁ ଯାଞ୍ଚ କରିଦେଲି । ନୂତନ ଅସୁବିଧାର ବିବରଣ କରନ୍ତୁ ।",
        "feedback-bugornote": "ଦୟାକରି ଆପଣ ଏକ କାରିଗରି ଅସୁବିଧାଟିଏ ଜଣାଇବା ପାଇଁ ଚାହୁଁଥିଲେ ଦୟାକରି [$1 ଏଠାରେ ଅସୁବିଧାଟି ଜଣାନ୍ତୁ] । \nଅଥବା, ଆପଣ ତଳେ ଠିଆ ସହଜ ଆବେଦନ ପତ୍ରଟି ପୁରଣ କରିପାରିବେ ।  ଆପଣଙ୍କ ବ୍ୟବହାରକାରୀ ନାମ ଓ ଆପଣ ବ୍ୟବହାର କରୁଥିବା ବ୍ରାଉଜର ଅନୁସାରେ ଆପଣଙ୍କ ମତାମତ \"[$3 $2]\"ରେ ଯୋଡ଼ାଯିବ ।",
        "feedback-cancel": "ନାକଚ",
        "feedback-close": "ହୋଇଗଲା",
+       "feedback-error-title": "ଅସୁବିଧା",
        "feedback-error1": "ଭୁଲ: API ରୁ ଅଚିହ୍ନା ଫଳାଫଳ",
        "feedback-error2": "ଅସୁବିଧା: ସମ୍ପାଦନା ବିଫଳ ହେଲା",
        "feedback-error3": "ଅସୁବିଧା: API ରୁ କିଛି ଉତ୍ତର ମିଳିଲା ନାହିଁ",
        "feedback-subject": "ବିଷୟ:",
        "feedback-submit": "ଦାଖଲ କରିବା",
        "feedback-thanks": "ଧନ୍ୟବାଦ ! ଆପଣଙ୍କର ମତାମତ  \"[$2 $1]\" ପୃଷ୍ଠାରେ ଦର୍ଶାଯାଇଛି ।",
+       "feedback-thanks-title": "ଧନ୍ୟବାଦ!",
        "searchsuggest-search": "ଖୋଜନ୍ତୁ",
        "searchsuggest-containing": "ଖୋଜୁଛି...",
        "api-error-badaccess-groups": "ଆପଣଙ୍କୁ ଏହି ଉଇକିରେ ଅପଲୋଡ଼ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ ।",
        "expand_templates_remove_nowiki": "ଫଳାଫଳରେ <nowiki> ଟ୍ୟାଗମାନଙ୍କୁ ଦବାଇଦିଅନ୍ତୁ",
        "expand_templates_generate_xml": "XML ପାର୍ସ ସଂରଚନା ଦେଖାନ୍ତୁ",
        "expand_templates_generate_rawhtml": "କେବଳ HTML କୋଡ଼ ଦେଖାନ୍ତୁ",
-       "expand_templates_preview": "ପà­\82ରà­\8dବଦà­\87à¬\96ଣା",
+       "expand_templates_preview": "ଦେଖଣା",
        "pagelanguage": "ପୃଷ୍ଠା ଭାଷା ବଛା",
        "pagelang-name": "ପୃଷ୍ଠା",
        "pagelang-language": "ଭାଷା",
        "json-error-recursion": "ଏନକୋଡ଼ ହେବାକୁ ଥିବା ଭାଲ୍ୟୁରେ ଏକରୁ ଅଧିକ ରିକର୍ସିଭ ଆଧାର",
        "json-error-inf-or-nan": "ଭାଲ୍ୟୁରେ ଏକରୁ ଅଧିକ NAN କିମ୍ବା INF ମୂଲ୍ୟ ଏନକୋଡ଼ କରିବାକୁ ହେବ",
        "json-error-unsupported-type": "ଏନକୋଡ଼ ହୋଇନପାରିବା ଭଳି ଏକ ପ୍ରକାରର ମୂଲ୍ୟ ଦିଆଗଲା",
+       "headline-anchor-title": "ଏହି ବିଭାଗକୁ ଲିଙ୍କ କରିବେ",
        "special-characters-group-latin": "ଲାଟିନ",
        "special-characters-group-latinextended": "ଲାଟିନ ଅଧିକ ଅକ୍ଷର",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-khmer": "ଖମେର ଭାଷା",
        "special-characters-title-endash": "en ଡ୍ୟାସ",
        "special-characters-title-emdash": "em dash",
-       "special-characters-title-minus": "ମେନୁଗୁଡିକର ଚିହ୍ନ"
+       "special-characters-title-minus": "ମେନୁଗୁଡିକର ଚିହ୍ନ",
+       "mw-widgets-titleinput-description-redirect": "$1କୁ ପୁନଃପ୍ରେରଣ କରିବେ"
 }
index 90c9265..b2ba7a9 100644 (file)
        "pool-timeout": "ਲਾਕ ਲਈ ਉਡੀਕ ਦਾ ਵਕਤ ਖ਼ਤਮ ਹੋ ਗਿਆ ਹੈ",
        "pool-queuefull": "ਪੂਲ ਕਤਾਰ ਭਰੀ ਹੋਈ ਹੈ",
        "pool-errorunknown": "ਅਣਜਾਣ ਗਲਤੀ",
+       "poolcounter-usage-error": "ਵਰਤੋਂ ਵਿੱਚ ਗ਼ਲਤੀ:$1",
        "aboutsite": "{{SITENAME}} ਬਾਰੇ",
        "aboutpage": "Project:ਬਾਰੇ",
        "copyright": "ਕੁਝ ਹੋਰ ਨਾ ਲਿਖੇ ਜਾਣ 'ਤੇ ਸਮੱਗਰੀ $1 ਹੇਠ ਮੌਜੂਦ ਹੈ।",
        "passwordreset": "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ",
        "passwordreset-text-one": "ਪਾਸਵਰਡ ਦੁਬਾਰਾ ਬਣਾਉਣ ਲਈ ਇਹ ਫ਼ਾਰਮ ਭਰੋ।",
        "passwordreset-text-many": "{{PLURAL:$1|ਈ-ਮੇਲ ਜ਼ਰੀਏ ਆਪਣਾ ਆਰਜ਼ੀ ਪਾਸਵਰਡ ਹਾਸਲ ਕਰਨ ਲਈ ਕੋਈ ਇੱਕ ਥਾਂ ਭਰੋ।}}",
-       "passwordreset-legend": "ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ",
        "passwordreset-disabled": "ਇਸ ਵਿਕੀ ਤੇ ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਬੰਦ ਕੀਤੇ ਗਏ ਹਨ।",
        "passwordreset-emaildisabled": "ਇਹ ਵਿਕਿ ਉੱਤੇ ਈਮੇਲ ਫੀਚਰ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ।",
        "passwordreset-username": "ਵਰਤੋਂਕਾਰ ਨਾਂ:",
        "resettokens": "ਟੋਕਨ ਮੁੜ-ਸੈੱਟ ਕਰੋ",
        "resettokens-text": "ਤੁਸੀਂ ਆਪਣੀਆਂ ਨਿਸ਼ਾਨੀਆਂ, ਜੋ ਤੁਹਾਡੇ ਖਾਤੇ ਨਾਲ਼ ਜੁੜੇ ਖ਼ਾਸ ਨਿੱਜੀ ਅੰਕੜਿਆਂ ਤੱਕ ਪੁੱਜਣ ਵਾਸਤੇ ਇਜਾਜ਼ਤ ਦਿੰਦੀਆਂ ਹਨ, ਨੂੰ ਇੱਥੇ ਮੁੜ-ਬਣਾ ਸਕਦੇ ਹੋ।\n\nਤੁਹਾਨੂੰ ਇਹ ਤਾਂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਰੱਬ-ਸਬੱਬੀ ਕਿਸੇ ਨਾਲ਼ ਸਾਂਝਾ ਕਰ ਦਿੱਤਾ ਜਾਂ ਤੁਹਾਡਾ ਖਾਤਾ ਖ਼ਤਰੇ ਵਿੱਚ ਆ ਗਿਆ ਹੈ।",
        "resettokens-no-tokens": "ਨਵੀਆਂ ਬਣਾਉਣ ਵਾਸਤੇ ਕੋਈ ਨਿਸ਼ਾਨੀਆਂ ਨਹੀਂ ਹਨ।",
-       "resettokens-legend": "ਨਿਸ਼ਾਨੀਆਂ ਮੁੜ ਬਣਾਉ",
        "resettokens-tokens": "ਟੋਕਨ:",
        "resettokens-token-label": "$1 (ਚਾਲੂ ਮੁੱਲ: $2)",
        "resettokens-done": "ਨਿਸ਼ਾਨੀਆਂ ਮੁੜ ਬਣਾਈਆਂ ਗਈਆਂ।",
        "missingcommenttext": "ਹੇਠਾਂ ਇੱਕ ਟਿੱਪਣੀ ਦਿਓ।",
        "summary-preview": "ਸੋਧ ਸਾਰ ਦੀ ਝਲਕ:",
        "subject-preview": "ਵਿਸ਼ੇ/ਸਿਰਨਾਵੇਂ ਦੀ ਝਲਕ:",
+       "previewerrortext": "ਤੁਹਾਡੀਆਂ ਤਬਦੀਲੀਆਂ ਦੀ ਝਲਕ ਵਿਖਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਵਿੱਚ ਗ਼ਲਤੀ ਆ ਗਈ।",
        "blockedtitle": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲੱਗੀ ਹੋਈ ਹੈ",
        "blockedtext": "'''ਤੁਹਾਡੇ ਮੌਮਬਰ ਨਾਮ ਜਾਂ IP ਪਤੇ ’ਤੇ ਪਾਬੰਦੀ ਲੱਗ ਚੁੱਕੀ ਹੈ।'''\n\nਪਾਬੰਦੀ $1 ਨੇ ਲਾਈ ਹੈ।\nਦਿੱਤਾ ਗਿਆ ਕਾਰਨ ਇਹ ਹੈ, ''$2''।\n\n* ਪਾਬੰਦੀ ਸ਼ੁਰੂ: $8\n* ਪਾਬੰਦੀ ਖਤਮ: $6\n* ਪਾਬੰਦੀ ਲਾਉਣ ਵਾਲੇ ਦਾ ਇਰਾਦਾ: $7\n\nਪਾਬੰਦੀ ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਤੁਸੀਂ $1 ਜਾਂ ਕਿਸੇ ਹੋਰ\n[[{{MediaWiki:Grouppage-\nsysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।\nਤੁਸੀਂ 'ਇਸ ਮੈਂਬਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ' ਸਹੂਲਤ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕਦੇ ਜੇ ਤੁਹਾਡੀਆਂ [[Special:Preferences|ਖਾਤਾ ਪਸੰਦਾਂ]] ਵਿੱਚ ਇੱਕ ਸਹੀ ਈ-ਮੇਲ ਪਤਾ ਨਹੀਂ ਦਿੱਤਾ ਗਿਆ ਜਾਂ ਜੇ ਤੁਹਾਡੇ ਇਸਨੂੰ ਵਰਤਣ ਤੇ ਪਾਬੰਦੀ ਹੈ।\nਤੁਹਾਡਾ ਚਾਲੂ IP ਪਤਾ $3 ਹੈ,\nਅਤੇ ਪਾਬੰਦੀ ਪਤਾ #$5 ਹੈ।\nਮਿਹਰਬਾਨੀ ਕਰਕੇ ਆਪਣੇ ਕਿਸੇ ਵੀ ਸਵਾਲ ਜਾਂ ਪੁੱਛ-ਗਿੱਛ ਵਿਚ ਇਹ ਉੱਪਰਲੀ ਤਫ਼ਸੀਲ ਜ਼ਰੂਰ ਸ਼ਾਮਲ ਕਰੋ।",
        "blockednoreason": "ਕੋਈ ਕਾਰਨ ਨਹੀਂ ਦੱਸਿਆ ਗਿਆ",
        "showhideselectedversions": "ਚੁਣੀਆਂ ਸੁਧਾਈਆਂ ਦੀ ਦਿਸਣਯੋਗਤਾ ਬਦਲੋ",
        "editundo": "ਰੱਦ ਕਰੋ",
        "diff-empty": "(ਕੋਈ ਫ਼ਰਕ ਨਹੀਂ)",
+       "diff-multi-sameuser": "(ਇਸੀ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ {{PLURAL:$1|ਇੱਕ ਵਿਚਕਾਰਲੀ ਤਬਦੀਲੀ|$1 ਵਿਚਕਾਰਲੀਆਂ ਤਬਦੀਲੀਆਂ}} {{PLURAL:not shown|ਨਹੀਂ ਦਿਖਾਈ ਜਾ ਰਹੀ|ਨਹੀਂ ਦਿਖਾਈਆਂ ਜਾ ਰਹੀਆਂ}})",
        "searchresults": "ਖੋਜ ਨਤੀਜੇ",
        "searchresults-title": "\"$1\" ਲਈ ਖੋਜ ਨਤੀਜੇ",
        "titlematches": "ਆਰਟੀਕਲ ਟੈਕਸਟ ਮਿਲਦਾ",
        "shown-title": "ਪ੍ਰਤੀ ਸਫ਼ਾ $1 {{PLURAL:$1|ਨਤੀਜਾ|ਨਤੀਜੇ}} ਵਿਖਾਓ",
        "viewprevnext": "ਵੇਖੋ ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:$1]]\" ਨਾਮ ਦਾ ਸਫਾ ਹੈ।'''",
-       "searchmenu-new": "'''ਇਸ ਵਿਕੀ ’ਤੇ \"[[:$1]]\" ਸਫ਼ਾ ਬਣਾਓ!'''",
+       "searchmenu-new": "<strong>ਇਸ ਵਿਕੀ ਉੱਤੇ ਸਫ਼ਾ \"[[:$1]]\" ਬਣਾਓ!</strong> {{PLURAL:$2|0=|ਇਸਦੇ ਨਾਲ ਖੋਜ ਦੇ ਨਤੀਜੇ ਵੀ ਦੇਖ ਲਵੋ।}}",
        "searchprofile-articles": "ਸਮੱਗਰੀ ਸਫ਼ੇ",
        "searchprofile-images": "ਮਲਟੀਮੀਡੀਆ",
        "searchprofile-everything": "ਸਭ ਕੁਝ",
        "searchrelated": "ਸਬੰਧਤ",
        "searchall": "ਸਭ",
        "showingresults": "ਹੇਠਾਂ #'''$2''' ਨਾਲ਼ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲ਼ੇ {{PLURAL:\n$1|'''1''' ਨਤੀਜਾ|'''$1''' ਤੱਕ ਨਤੀਜੇ}} ਵਖਾਓ।",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> ਵਿੱਚੋਂ <strong>$1</strong> ਨਤੀਜੇ| <strong>$3</strong> ਵਿੱਚੋਂ <strong>$1 - $2</strong> ਨਤੀਜੇ}}",
        "search-nonefound": "ਤੁਹਾਡੀ ਖੋਜ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਮਿਲੇ।",
        "powersearch-legend": "ਤਕਨੀਕੀ ਖੋਜ",
        "powersearch-ns": "ਨੇਮ-ਸਪੇਸ ਵਿੱਚ ਖੋਜ:",
        "exif-pixelxdimension": "ਤਸਵੀਰ ਦੀ ਲੰਬਾਈ",
        "exif-usercomment": "ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਟਿੱਪਣੀਆਂ",
        "exif-relatedsoundfile": "ਮਿਲਦੀ-ਜੁਲਦੀ ਆਡੀਓ ਫ਼ਾਈਲ",
+       "exif-datetimeoriginal": "ਡਾਟਾ ਦੇ ਬਣਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
        "exif-datetimedigitized": "ਅੰਕਰੂਪ ਕਰਨ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ",
        "exif-fnumber": "ਐੱਫ਼ ਨੰਬਰ",
        "exif-subjectdistance": "ਵਿਸ਼ੇ ਦੀ ਵਿੱਥ",
index 8329f56..1bf6dc2 100644 (file)
@@ -7,7 +7,8 @@
                        "Xqt",
                        "לערי ריינהארט",
                        "아라",
-                       "Purodha"
+                       "Purodha",
+                       "Geitost"
                ]
        },
        "tog-underline": "Gleecher unnerleine:",
        "resetpass-submit-loggedin": "Paesswatt ennere",
        "resetpass-submit-cancel": "Ausduh",
        "passwordreset": "Paesswatt zerricksetze",
-       "passwordreset-legend": "Paesswatt zerricksetze",
        "passwordreset-username": "Yuuser-Naame:",
        "passwordreset-email": "E-Poschd:",
        "passwordreset-emailelement": "Yuusernaame: $1\nPaesswatt fer nau: $2",
        "ipbreason": "Grund:",
        "ipbsubmit": "Daen Yuuser aabinne",
        "ipbother": "Annere Zeit (englisch):",
-       "ipboptions": "2 Schtund:2 hours,1 Daag:1 day,3 Daag:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Munet:1 month,3 Munede:3 months,6 Monate:6 months,1 Yaar:1 year,Fer immer:infinite",
+       "ipboptions": "2 Schtund:2 hours,1 Daag:1 day,3 Daag:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Munet:1 month,3 Munede:3 months,6 Munede:6 months,1 Yaar:1 year,fer immer:infinite",
        "blocklist-reason": "Grund",
        "ipblocklist-submit": "Guck uff",
        "infiniteblock": "fer immer",
index 4e27b54..ab0b0f7 100644 (file)
@@ -77,7 +77,8 @@
                        "VerMa",
                        "Ency",
                        "Kszapsza",
-                       "Openbk"
+                       "Openbk",
+                       "Doctore"
                ]
        },
        "tog-underline": "Podkreślenie linków:",
        "underline-never": "Nigdy",
        "underline-default": "według ustawień skórki lub przeglądarki",
        "editfont-style": "Styl czcionki w polu edycyjnym:",
-       "editfont-default": "Domyślna przeglądarka",
+       "editfont-default": "domyślny przeglądarki",
        "editfont-monospace": "czcionka o stałej szerokości",
        "editfont-sansserif": "czcionka bezszeryfowa",
        "editfont-serif": "czcionka szeryfowa",
        "passwordreset": "Wyczyść hasło",
        "passwordreset-text-one": "Wypełnij ten formularz, aby otrzymać tymczasowe hasło na email.",
        "passwordreset-text-many": "{{PLURAL:$1|Wypełnij jedno z poniższych pól, aby otrzymać tymczasowe hasło przez e-mail.}}",
-       "passwordreset-legend": "Zresetuj hasło",
        "passwordreset-disabled": "Na tej wiki wyłączono możliwość resetowania haseł.",
        "passwordreset-emaildisabled": "Wysyłanie emaili zostało wyłączone na tej wiki",
        "passwordreset-username": "Nazwa użytkownika:",
        "changeemail-newemail": "Nowy adres e-mail:",
        "changeemail-none": "(brak)",
        "changeemail-password": "Twoje hasło:",
-       "changeemail-submit": "Zmień email",
+       "changeemail-submit": "Zmień e-mail",
        "changeemail-throttled": "Zbyt wiele razy próbowałeś zalogować się na to konto.\nOdczekaj $1, zanim ponowisz próbę.",
        "resettokens": "Resetowanie tokenów",
        "resettokens-text": "Na tej stronie możesz zresetować tokeny, które umożliwiają dostęp do pewnych prywatnych danych związanych z Twoim kontem.\n\nNależy to zrobić, jeśli ktoś je poznał lub zdobył hasło do Twojego konta.",
        "resettokens-no-tokens": "Brak tokenów do zresetowania.",
-       "resettokens-legend": "Resetowanie tokenów",
        "resettokens-tokens": "Tokeny:",
        "resettokens-token-label": "$1 (obecna wartość: $2)",
        "resettokens-watchlist-token": "Token kanału internetowego (Atom/RSS) zmian w [[Special:Watchlist|obserwowanych stronach]]",
        "content-model-css": "CSS",
        "content-json-empty-object": "Pusty obiekt",
        "content-json-empty-array": "Pusta tablica",
+       "duplicate-args-warning": "<strong>Ostrzeżenie:</strong> [[:$1]] wywołuje [[:$2]] z więcej niż jedną wartością dla parametru \"$3\". Tylko ostatnia podana wartość zostanie użyta.",
        "duplicate-args-category": "Strony zawierające wywołania szablonów z parametrami o takich samych nazwach",
        "duplicate-args-category-desc": "Strona zawiera szablony, które używają duplikatów argumentów, jak <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> lub <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Uwaga! Ta strona zawiera zbyt wiele wywołań złożonych obliczeniowo funkcji parsera.\n\nPowinno być mniej niż $2 {{PLURAL:$2|wywołanie|wywołania|wywołań}}, a obecnie {{PLURAL:$1|jest $1 wywołanie|są $1 wywołania|jest $1 wywołań}}.",
        "import-upload": "Prześlij dane w formacie XML",
        "import-token-mismatch": "Utracono dane sesji. Proszę spróbować ponownie.",
        "import-invalid-interwiki": "Nie można importować z podanej wiki.",
-       "import-error-edit": "Strona „$1” nie została zaimportowana ponieważ nie jesteś uprawniony do jej edytowania.",
-       "import-error-create": "Strona „$1” nie została zaimportowana ponieważ nie jesteś uprawniony do jej utworzenia.",
+       "import-error-edit": "Strona „$1” nie została zaimportowana, ponieważ nie jesteś uprawniony do jej edytowania.",
+       "import-error-create": "Strona „$1” nie została zaimportowana, ponieważ nie jesteś uprawniony do jej utworzenia.",
        "import-error-interwiki": "Strona „$1” nie została zaimportowana, ponieważ jej nazwa jest zarezerwowana do linków zewnętrznych (interwiki).",
        "import-error-special": "Strona „$1” nie została zaimportowana, ponieważ należy do specjalnej przestrzeni nazw, która nie zezwala na strony.",
        "import-error-invalid": "Strona „$1” nie została zaimportowana, ponieważ jej nazwa jest nieprawidłowa na tej wiki.",
        "version-libraries": "Zainstalowane biblioteki",
        "version-libraries-library": "Biblioteka",
        "version-libraries-version": "Wersja",
+       "version-libraries-license": "Licencja",
+       "version-libraries-description": "Opis",
+       "version-libraries-authors": "Autorzy",
        "redirect": "Przekierowanie według pliku, użytkownika, strony lub identyfikatora wersji",
        "redirect-legend": "Przekieruj do pliku lub strony",
        "redirect-summary": "Ta strona specjalna przekierowuje do: pliku (o podanej nazwie), do strony (o podanym numerze wersji lub identyfikatorze strony) albo do strony użytkownika (o podanym identyfikatorze numerycznym). Sposób użycia: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] albo [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmerskie",
        "special-characters-title-endash": "półpauza",
        "special-characters-title-emdash": "pauza",
-       "special-characters-title-minus": "minus"
+       "special-characters-title-minus": "minus",
+       "mw-widgets-titleinput-description-new-page": "strona jeszcze nie istnieje",
+       "mw-widgets-titleinput-description-redirect": "przekierowanie do $1"
 }
index 564c09c..01ffeb1 100644 (file)
        "passwordreset": "پټنوم بياپرځايول",
        "passwordreset-text-one": "د برېښليک له لارې د لنډمهاله پټنوم د ترلاسه کولو لپاره دا فورمه ډکه کړئ.",
        "passwordreset-text-many": "{{PLURAL:$1|د برېښليک له لارې د يو لنډمهاله پټنوم د ترلاسه کولو لپاره له لاندينيو ډگرونو څخه يو يې ډک کړۍ.}}",
-       "passwordreset-legend": "پټنوم بياپرځايول",
        "passwordreset-disabled": "په دې ويکي پټنوم بياپرځای کولو کړنه ناچارنه شوې.",
        "passwordreset-emaildisabled": "په دې ويکي باندې د برېښليک ځانتياوې ناچارنې شوي دي.",
        "passwordreset-username": "کارن-نوم:",
        "nmembers": "$1 {{PLURAL:$1|غړی|غړي}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|غړی|غړي}}",
        "nrevisions": "$1 {{PLURAL:$1|بڼه|بڼې}}",
-       "nviews": "$1 {{PLURAL:$1|کتنه|کتنې}}",
        "nimagelinks": "په $1 {{PLURAL:$1|کارېدلی مخ|کارېدلي مخونه}}",
        "ntransclusions": "په $1 {{PLURAL:$1|مخ|مخونو}} کارېدلی",
        "specialpage-empty": "د دې راپور لپاره کومې پايلې نشته.",
        "tooltip-pt-logout": "وتل",
        "tooltip-pt-createaccount": "تاسې ته د يو گڼون د جوړولو او بيا غونډال کې ورننوتلو سپارښتنه کېږي؛ که څه هم چې دا يو اړين کار نه دی",
        "tooltip-ca-talk": "د مخ د مېنځپانگې په اړه خبرې اترې",
-       "tooltip-ca-edit": "تاسÛ\90 Ù\87Ù\85دا Ù\85Ø® Ø³Ù\85Ù\88Ù\84اÛ\8c Ø´Û\8c. Ù\84Ø·Ù\81اÙ\8b Ø¯ Ù\84Ù\8aÚ©Ù\86Û\90 Ø¯ Ø®Ù\88Ù\86دÙ\8a Ú©Ù\88Ù\84Ù\88 Ø¯Ù\85Ø®Ù\87Ø\8c Ø¯ Ù\87Ù\85دÛ\90 Ù\84Ù\8aÚ©Ù\86Û\90 Ù\85Ø®Ù\84Ù\8aدÙ\86Ù\87 Ù\88Ú¯Ù\88رÛ\8d.",
+       "tooltip-ca-edit": "تاسÛ\90 Ù\87Ù\85دا Ù\85Ø® Ø³Ù\85Ù\88Ù\84اÛ\8c Ø´Û\8c. Ù\84Ø·Ù\81اÙ\8b Ø¯ Ù\84Ù\8aÚ©Ù\86Û\90 Ø¯ Ø®Ù\88Ù\86دÙ\8a Ú©Ù\88Ù\84Ù\88 Ø¯Ù\85Ø®Ù\87Ø\8c Ø¯ Ù\85Ø®Ù\84Ù\8aدÙ\86Û\90 ØªÚ¼Û\8d Ù\88کارÙ\88ئ.",
        "tooltip-ca-addsection": "يوه نوې برخه پيلول",
        "tooltip-ca-viewsource": "دا مخ ژغورل شوی. تاسې کولای شی چې د دې مخ سرجينه وگورۍ.",
        "tooltip-ca-history": "د دې مخ پخوانۍ بڼې",
        "version-entrypoints-header-url": "يو آر اېل",
        "version-libraries-library": "کتابتون",
        "version-libraries-version": "بڼه",
+       "version-libraries-license": "منښتليک",
+       "version-libraries-description": "څرگندونه",
+       "version-libraries-authors": "ليکوالان",
        "redirect": "د دوتنې، کارن، مخ يا بڼې پېژند له مخې ورگرځېدنې",
        "redirect-submit": "ورځه",
        "redirect-value": "ارزښت:",
        "special-characters-group-devanagari": "دېوانګري",
        "special-characters-group-thai": "تايلنډي",
        "special-characters-group-lao": "لاوي",
-       "special-characters-group-khmer": "خمري"
+       "special-characters-group-khmer": "خمري",
+       "mw-widgets-titleinput-description-new-page": "پدې نوم لا تر اوسه پورې مخ نشته",
+       "mw-widgets-titleinput-description-redirect": "$1 ته ورگرځول"
 }
index 3a81bc4..be159d9 100644 (file)
        "passwordreset": "Redefinir palavra-passe",
        "passwordreset-text-one": "Preencha este formulário para receber uma palavra-passe temporária por correio eletrónico.",
        "passwordreset-text-many": "{{PLURAL:$1|Preencha um dos campos para receber uma palavra-passe temporária por correio eletrónico.}}",
-       "passwordreset-legend": "Redefinir palavra-passe",
        "passwordreset-disabled": "A redefinição da palavra-passe foi impossibilitada nesta wiki.",
        "passwordreset-emaildisabled": "A funcionalidade de correio eletrónico foi desativada nesta wiki.",
        "passwordreset-username": "Nome de utilizador(a):",
        "resettokens": "Redefinir chaves",
        "resettokens-text": "Pode redefinir as chaves de acesso a certos dados privados associados à sua conta aqui.\n\nDeve fazê-lo se as divulgou acidentalmente a alguém ou se a sua conta tiver sido comprometida.",
        "resettokens-no-tokens": "Não há chaves para redefinir.",
-       "resettokens-legend": "Redefinir chaves",
        "resettokens-tokens": "Chaves:",
        "resettokens-token-label": "$1 (valor atual: $2)",
        "resettokens-watchlist-token": "Chave para o ''feed'' Atom/RSS de [[Special:Watchlist|mudanças às páginas vigiadas]]",
        "version-libraries": "Bibliotecas instaladas",
        "version-libraries-library": "Biblioteca",
        "version-libraries-version": "Versão",
+       "version-libraries-license": "Licença",
+       "version-libraries-description": "Descrição",
+       "version-libraries-authors": "Autores",
        "redirect": "Redirecionar pelo ID do ficheiro, do utilizador ou da revisão",
        "redirect-legend": "Redirecionar para um ficheiro ou página",
        "redirect-summary": "Esta página especial redireciona para um ficheiro (dado o nome do ficheiro), para uma página (dado um ID de revisão ou página) ou para uma página de utilizador (dado um ID numérico do utilizador). Utilização: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]] ou [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Cambojano",
        "special-characters-title-endash": "hífen",
        "special-characters-title-emdash": "travessão",
-       "special-characters-title-minus": "sinal de subtração"
+       "special-characters-title-minus": "sinal de subtração",
+       "mw-widgets-titleinput-description-new-page": "a página ainda não existe.",
+       "mw-widgets-titleinput-description-redirect": "redirecionar para $1"
 }
index 9638138..372390a 100644 (file)
        "passwordreset": "Title of [[Special:PasswordReset]].\n{{Identical|Reset password}}",
        "passwordreset-text-one": "Text on [[Special:PasswordReset]] that appears when there is only one way of resetting the password.\n\n{{msg-mw|Passwordreset-text-many}} will be used, when there are multiple ways of resetting the password.",
        "passwordreset-text-many": "Text on [[Special:PasswordReset]] that appears when there are multiple ways of resetting the password.\n\nParameters:\n* $1 - the number of password reset routes\n\n{{msg-mw|Passwordreset-text-one}} will be used, when there is only one way of resetting the password.",
-       "passwordreset-legend": "{{Identical|Reset password}}",
        "passwordreset-disabled": "Used as error message in changing password.",
        "passwordreset-emaildisabled": "Used as error message in changing password when site's email feature is disabled.",
        "passwordreset-username": "{{Identical|Username}}",
        "resettokens-summary": "{{ignored}}",
        "resettokens-text": "Text on [[Special:ResetTokens]].",
        "resettokens-no-tokens": "Additional text on [[Special:ResetTokens]] if the user has no tokens.",
-       "resettokens-legend": "Form legend on [[Special:ResetTokens]].\n{{Identical|Reset token}}",
        "resettokens-tokens": "Form label on [[Special:ResetTokens]].\n{{Identical|Token}}",
        "resettokens-token-label": "Label for each checkbox on [[Special:ResetTokens]]. Parameters:\n* $1 - short information about the token (for example {{msg-mw|resettokens-watchlist-token}})\n* $2 - its current value",
        "resettokens-watchlist-token": "Label for watchlist token checkbox on [[Special:ResetTokens]] (see {{msg-mw|prefs-watchlist-token}} at [[Special:Preferences#mw-prefsection-watchlist]]).",
        "currentrevisionlink": "{{Identical|Current revision}}",
        "cur": "Link in page history ([https://translatewiki.net/w/i.php?title=MediaWiki:Cur/qqq&action=history example])",
        "next": "Link in page history\n\n{{Identical|Next}}",
-       "last": "Link in page history\n\n{{Identical|Last}}",
+       "last": "Link in page history",
        "page_first": "This is part of the navigation message on the top and bottom of Special pages which are lists of things in alphabetical order, e.g. the '[[Special:Categories|Categories]]' special page. It is followed by the message {{msg-mw|Viewprevnext}}.\n{{Identical|First}}",
        "page_last": "This is part of the navigation message on the top and bottom of Special pages which are lists of things in alphabetical order, e.g. the '[[Special:Categories|Categories]]' special page. It is followed by the message {{msg-mw|Viewprevnext}}.\n\n{{Identical|Last}}",
        "histlegend": "Text in history page.\n\nSee also:\n* {{msg-mw|Cur}}\n* {{msg-mw|Last}}\n* {{msg-mw|Minoreditletter}}",
        "rollback-success": "This message shows up on screen after successful revert (generally visible only to admins). $1 describes user whose changes have been reverted, $2 describes user which produced version, which replaces reverted version.\n{{Identical|Revert}}\n{{Identical|Rollback}}",
        "sessionfailure-title": "Used as title of the error message {{msg-mw|Sessionfailure}}.",
        "sessionfailure": "Used as error message.\n\nThe title for this error message is {{msg-mw|Sessionfailure-title}}.",
+       "changecontentmodel": "Title of the change content model special page",
+       "changecontentmodel-legend": "Legend of the fieldset on the change content model special page",
+       "changecontentmodel-title-label": "Label for the input field where the target page title should be entered",
+       "changecontentmodel-model-label": "Label of the dropdown listing available content model types the user can change a page to",
+       "changecontentmodel-reason-label": "{{Identical|Reason}}",
+       "changecontentmodel-success-title": "Title of the success page of the change content model special page",
+       "changecontentmodel-success-text": "Message telling user that their change has been successfully done.\n* $1 - Target page title",
+       "changecontentmodel-cannot-convert": "Error message shown if the content model cannot be changed to the specified type. $1 is the page title, $2 is the localized content model name.",
+       "changecontentmodel-title-cantexist": "Error message shown if the page the user provided is a special page",
+       "changecontentmodel-nodirectediting": "Error message shown if the content model does not allow for direct editing. $1 is the localized name of the content model.",
+       "log-name-contentmodel": "{{doc-logpage}}\n\nTitle of [[Special:Log/contentmodel]].",
+       "log-description-contentmodel": "Text in [[Special:Log/contentmodel]].",
+       "logentry-contentmodel-change": "{{Logentry}}\n$4 is the original content model.\n$5 is the new content model.",
+       "logentry-contentmodel-change-revertlink": "Text on a link that reverts the content model change. {{identical|revertmove}}.",
+       "logentry-contentmodel-change-revert": "Prefilled edit summary when reverting a content model change. {{identical|revertmove}}",
        "protectlogpage": "{{doc-logpage}}\n\nTitle of [[Special:Log/protect]].",
        "protectlogtext": "Text in [[Special:Log/protect]].",
        "protectedarticle": "Text describing an action on [[Special:Log]]. $1 is a page title.",
        "tooltip-pt-logout": "Tooltip shown when hovering over the {{msg-mw|Logout}} link in your personal toolbox (upper right side).\n\nSee also:\n* {{msg-mw|Logout}}\n* {{msg-mw|Accesskey-pt-logout}}\n* {{msg-mw|Tooltip-pt-logout}}\n{{Identical|Log out}}",
        "tooltip-pt-createaccount": "Tooltip shown when hovering over the link 'Create account' in the upper right corner show on all pages while not logged in.",
        "tooltip-ca-talk": "Tooltip shown when hovering over the {{msg-mw|Talk}} tab.\n\nA 'content page' is a page that forms part of the purpose of the wiki. It includes the main page and pages in the main namespace and any other namespaces that are included when the wiki is customised. For example on Wikimedia Commons 'content pages' include pages in the file and category namespaces. On Wikinews 'content pages' include pages in the Portal namespace. For a technical definition of 'content namespaces' see [[mw:Manual:Using_custom_namespaces#Content_namespaces|MediaWiki]].\n\nPossible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.\n\nSee also:\n* {{msg-mw|Talk}}\n* {{msg-mw|Accesskey-ca-talk}}\n* {{msg-mw|Tooltip-ca-talk}}\n{{Identical|Content page}}",
-       "tooltip-ca-edit": "The tooltip when hovering over the {{msg-mw|Edit}} tab.\n\nSee also:\n* {{msg-mw|Edit}}\n* {{msg-mw|Accesskey-ca-edit}}\n* {{msg-mw|Tooltip-ca-edit}}",
+       "tooltip-ca-edit": "Over-ridden tooltip of the wikitext \"Edit source\" tab.",
        "tooltip-ca-addsection": "Tooltip shown when hovering over the \"addsection\" tab (shown on talk pages).\n\nSee also:\n* {{msg-mw|Addsection}}\n* {{msg-mw|Accesskey-ca-addsection}}\n* {{msg-mw|Tooltip-ca-addsection}}",
        "tooltip-ca-viewsource": "Tooltip displayed when hovering over the {{msg-mw|Viewsource}} tab.\n\nSee also:\n* {{msg-mw|Viewsource}}\n* {{msg-mw|Accesskey-ca-viewsource}}\n* {{msg-mw|Tooltip-ca-viewsource}}",
        "tooltip-ca-history": "Used as tooltip for {{msg-mw|Vector-view-history}}.\n\nSee for example [{{canonicalurl:Main Page|useskin=vector}} Main Page]\n\nSee also:\n* {{msg-mw|Vector-view-history}}\n* {{msg-mw|Accesskey-ca-history}}",
        "pageinfo-robot-index": "An indication that the page is indexable by search engines, that is listed in their search results.\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.\n{{Identical|Allowed}}",
        "pageinfo-robot-noindex": "An indication that the page is not indexable (that is, is not listed on the results page of a search engine).\n\nPreceded by the label {{msg-mw|Pageinfo-robot-policy}}.",
        "pageinfo-watchers": "Header of the row in the first table of the info action.",
+       "pageinfo-visiting-watchers": "Header of the row in the first table of the info action. More explicitly, the number counts how many users have last visited the page 26 weeks or less (by default) before the latest edit to the page; in other words, watching users who may see a future edit within about 6 months.",
        "pageinfo-few-watchers": "Message displayed when there are fewer than $wgUnwatchedPageThreshold watchers. $1 is the value of $wgUnwatchedPageThreshold.",
+       "pageinfo-few-visiting-watchers": "Message displayed when there are fewer than 2 \"active\" watchers.",
        "pageinfo-redirects-name": "Header of the row in the first table of the info action.\n\nFollowed by {{msg-mw|Pageinfo-redirects-value}}.\n\nUsed as link text. The link points to \"{{int:Whatlinkshere-title}}\" page ([[Special:WhatLinksHere]]).\n\nSee example: [{{canonicalurl:Main page|action=info}} Main page?action=info]",
        "pageinfo-redirects-value": "{{Optional}}\nParameters:\n* $1 - the number of redirects to the page",
        "pageinfo-subpages-name": "Header of the row in the first table of the info action.\n\nFollowed by {{msg-mw|Pageinfo-subpages-value}}.\n\nUsed as link text. The link points to the \"{{int:Prefixindex}}\" page ([[Special:PrefixIndex]]).\n\nSee example: [{{canonicalurl:Main page|action=info}} Main page?action=info]",
        "exif-ycbcrpositioning-2": "If the Chrominance samples are on top of to the Luminance samples.\nSee: http://www.awaresystems.be/imaging/tiff/tifftags/ycbcrpositioning.html\n{{Related|Exif-ycbcrpositioning}}",
        "exif-dc-contributor": "People who helped make the resource, but are secondary in contribution to the author.\n{{Identical|Contributor}}",
        "exif-dc-coverage": "\"The extent or scope of the resource\" see dc:coverage in http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart2.pdf",
-       "exif-dc-date": "One or more dates associated with the image. How they are associated is not really defined. From the dc:date XMP property.",
+       "exif-dc-date": "One or more dates associated with the image. How they are associated is not really defined. From the dc:date XMP property.\n{{Identical|Date}}",
        "exif-dc-publisher": "One or more publisher of resource.\n{{Identical|Publisher}}",
        "exif-dc-relation": "Something related to this image. Often a list of URL's to related images.",
        "exif-dc-rights": "Copyright information about the image/media given in informal language.\n{{Identical|Right}}",
        "version-libraries": "Header on [[Special:Version]] above a table that lists installed external libraries and their version numbers.",
        "version-libraries-library": "Column header for the library's name\n{{Identical|Library}}",
        "version-libraries-version": "Column header for the library's version number\n{{Identical|Version}}",
+       "version-libraries-license": "Column header for the library's license\n{{Identical|License}}",
+       "version-libraries-description": "Column header for the library's description\n{{Identical|Description}}",
+       "version-libraries-authors": "Column header for the library's authors\n{{Identical|Author}}",
        "redirect": "{{doc-special|Redirect}}\nThis means \"Redirect by file'''name''', user '''ID''', page '''ID''', or revision ID\".",
        "redirect-legend": "Legend of fieldset around input box in [[Special:Redirect]]",
        "redirect-text": "Inside fieldset for [[Special:Redirect]]",
        "special-characters-group-khmer": "{{Identical|Khmer}}",
        "special-characters-title-endash": "Title tooltip for the en dash character (–); See https://en.wikipedia.org/wiki/Dash",
        "special-characters-title-emdash": "Title tooltip for the em dash character (—); See https://en.wikipedia.org/wiki/Dash",
-       "special-characters-title-minus": "Title tooltip for the minus sign character (−), not to be confused with a hyphen"
+       "special-characters-title-minus": "Title tooltip for the minus sign character (−), not to be confused with a hyphen",
+       "mw-widgets-titleinput-description-new-page": "Description label for a new page in the title input widget.",
+       "mw-widgets-titleinput-description-redirect": "Description label for a redirect in the title input widget."
 }
index acc8753..cd755f7 100644 (file)
        "passwordreset": "Resetare parolă",
        "passwordreset-text-one": "Completați acest formular pentru a vă reseta parola.",
        "passwordreset-text-many": "{{PLURAL:$1|Completați unul din câmpuri pentru a primi o parolă temporară prin e-mail.}}",
-       "passwordreset-legend": "Resetare parolă",
        "passwordreset-disabled": "Resetarea parolei a fost dezactivată pe acest wiki.",
        "passwordreset-emaildisabled": "Funcțiile de e-mail au fost dezactivate de pe acest wiki.",
        "passwordreset-username": "Nume de utilizator:",
        "resettokens": "Resetare jetoane",
        "resettokens-text": "Puteți reseta, aici, jetoanele care permit accesul la anumite date asociate contului dumneavoastră.\n\nAr trebui să faceți acest lucru numai dacă le-ați partajat accidental cu altcineva ori contul dumneavoastră a fost compromis.",
        "resettokens-no-tokens": "Nu există jetoane de resetat.",
-       "resettokens-legend": "Resetare jetoane",
        "resettokens-tokens": "Jetoane:",
        "resettokens-token-label": "$1 (valoare actuală: $2)",
        "resettokens-watchlist-token": "Jeton pentru fluxul web (Atom/RSS) al [[Special:Watchlist|modificărilor aduse paginilor pe care le urmăriți]]",
        "yourdiff": "Diferențe",
        "copyrightwarning": "Reține că toate contribuțiile la {{SITENAME}} sunt distribuite sub licența $2 (vezi $1 pentru detalii).\nDacă nu doriți ca ceea ce scrieți să fie modificat fără milă și redistribuit în voie, atunci nu trimiteți materialele respective aici.<br />\nDe asemenea, ne asigurați că ceea ce ați scris a fost compoziție proprie sau copie dintr-o resursă publică sau liberă.\n'''Nu introduceți materiale aflate sub incidența drepturilor de autor fără a avea permisiune!'''",
        "copyrightwarning2": "Rețineți că toate contribuțiile la {{SITENAME}} pot fi modificate, alterate sau șterse de alți contribuitori.\nDacă nu doriți ca ceea ce scrieți să fie modificat fără milă și redistribuit în voie, atunci nu trimiteți materialele respective aici.<br />\nDe asemenea, ne asigurați că ceea ce ați scris a fost compoziție proprie sau copie dintr-o resursă publică sau liberă (vedeți $1 pentru detalii).\n'''Nu introduceți materiale aflate sub incidența drepturilor de autor fără a avea permisiune!'''",
+       "editpage-cannot-use-custom-model": "Modelul de conținut al acestei pagini nu poate fi modificat.",
        "longpageerror": "'''Eroare: Textul pe care l-ați trimis are o lungime de {{PLURAL:$1|un kilooctet|$1 kiloocteți|$1 de kiloocteți}}, ceea ce înseamnă mai mult decât maximul de {{PLURAL:$2|un kilooctet|$2 kiloocteți|$2 de kiloocteți}}.'''\nSalvarea nu este posibilă.",
        "readonlywarning": "'''Atenție: Baza de date a fost blocată pentru întreținere, deci nu veți putea salva modificările în acest moment.'''\nPuteți copia textul într-un fișier text, păstrându-l pentru mai târziu.\n\nAdministratorul care a efectuat blocarea a oferit următoarea explicație: $1",
        "protectedpagewarning": "'''Atenție: această pagină a fost protejată astfel încât poate fi modificată doar de către administratori.'''\nUltima intrare în jurnal este afișată mai jos pentru referință:",
        "version-libraries": "Biblioteci instalate",
        "version-libraries-library": "Bibliotecă",
        "version-libraries-version": "Versiune",
+       "version-libraries-license": "Licență",
+       "version-libraries-description": "Descriere",
+       "version-libraries-authors": "Autori",
        "redirect": "Redirecționare după fișier, utilizator, ID-ul paginii sau al versiunii",
        "redirect-legend": "Redirecționare către un fișier sau o pagină",
        "redirect-summary": "Această pagină specială vă redirecționează către un fișier (dat fiind un nume de fișier), o pagină (dat fiind ID-ul unei versiuni sau ID-ul unei pagini) sau o pagină de utilizator (dat fiind un ID numeric al utilizatorului). Utilizare: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] sau [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmeră",
        "special-characters-title-endash": "linie de pauză (en dash)",
        "special-characters-title-emdash": "linie de pauză (em dash)",
-       "special-characters-title-minus": "semnul minus"
+       "special-characters-title-minus": "semnul minus",
+       "mw-widgets-titleinput-description-new-page": "pagina nu există încă",
+       "mw-widgets-titleinput-description-redirect": "redirecționare către $1"
 }
index 7d0cf38..c00fa32 100644 (file)
        "passwordreset": "Azzere 'a passuord",
        "passwordreset-text-one": "Comblete stu module pe azzerà 'a passuord toje.",
        "passwordreset-text-many": "{{PLURAL:$1|Inghie une de le cambe pe azzerà 'a passuord toje.}}",
-       "passwordreset-legend": "Azzere 'a passuord",
        "passwordreset-disabled": "'U reset de le passuord ha state desabbilitate sus a sta uicchi.",
        "passwordreset-emaildisabled": "Le funziune de l'email onne state disabbilitate sus a sta uicchi.",
        "passwordreset-username": "Nome utende:",
        "resettokens": "Azzere le gettone",
        "resettokens-text": "Tu puè azzerà le gettone le quale te donne l'accesse a certe date private collegate cu 'u cunde tune aqquà.\n\nTu avissa farle ce pe sbaglie l'è condivise cu otre o ce 'u cunde tune ha state combromesse.",
        "resettokens-no-tokens": "Non ge stonne gettone de azzerà.",
-       "resettokens-legend": "Azzere le gettone",
        "resettokens-tokens": "Gettone:",
        "resettokens-token-label": "$1 (valore de mò: $2)",
        "resettokens-watchlist-token": "Gettone pu feed web (Atom/RSS) de [[Special:Watchlist|le cangiaminde de le pàggene condrollate]]",
        "yourdiff": "Differenze",
        "copyrightwarning": "Pe piacere vide ca tutte le condrebbute de {{SITENAME}} sonde considerete de essere rilasciete sotte 'a $2 (vide $1 pe le dettaglie).\nCe tu non ge vuè ca le condrebbute tue avènene ausete da otre o avènene cangete, non le scè mettènne proprie.<br />\nTu na promettere pure ca le cose ca scrive tu, sonde 'mbormaziune libbere o copiete da 'nu pubbleche dominie.<br />\n'''NON METTE' NISCIUNA FATJE CA JE' PROTETTE DA DERITTE SENZA PERMESSE!'''",
        "copyrightwarning2": "Pe piacere vide ca tutte le condrebbute de {{SITENAME}} ponne essere cangete, alterate o luvete da otre condrebbutore.\nCe tu non ge vuè ca quidde ca scrive avène cangete da tre, allore non scè scrivenne proprie aqquà.<br />\nTu ne stè promitte ca quidde ca scrive tu, o lè scritte cu 'u penziere tue o lè cupiate da risorse de pubbliche dominie o sembre robba libbere (vide $1 pe cchiù dettaglie).\n'''NO REGGISTRA' FATIJE CUPERTE DA 'U COPYRIGHT SENZA PERMESSE! NO FA STUDECARIE!'''",
+       "editpage-cannot-use-custom-model": "'U modelle de condenute de sta pàgene non ge pò essere cangiate.",
        "longpageerror": "'''ERRORE: 'U teste ca tu vuè ccu reggistre è luenghe {{PLURAL:$1|'nu kilobyte|$1 kilobyte}}, invece 'u limite massime jè de {{PLURAL:$2|'nu kilobyte|$2 kilobyte}}.'''\nNon ge puè reggistrà sta pàggene.",
        "readonlywarning": "'''FA ATTENZIO': 'U database ha state bloccate pe manutenzione, e allore tu non ge puè reggistrà le cangiaminde ca ste face mò.'''\nTu puè fa 'na bella cose, tagghie e 'nzicche le cangiaminde jndr'à 'nu file de teste sus a 'u combiuter tune e pò cchiù tarde le reggistre sus 'a Uicchi.\n\nL'amministratore ca ha bloccate 'u database ha date stu mutive: $1",
        "protectedpagewarning": "'''ATTENZIO': Sta pàgene ha state bloccate e allore sulamende le utinde cu le privilegge de ''sysop'' ponne cangiarle.'''\nL'urteme archivie de le trasute ha state previste aqquà sotte pe referimende:",
        "content-model-css": "CSS",
        "content-json-empty-object": "Oggette vacande",
        "content-json-empty-array": "Matrice vacande",
+       "duplicate-args-warning": "<strong>Attenziò:</strong> [[:$1]] ste chiame [[:$2]] cu cchiù de 'nu valore pu parametre \"$3\". Sulamende l'urteme valore date avène ausate.",
        "duplicate-args-category": "Pàggene ca ausane le argumende a doppie jndr'à le chiamate d'u template",
        "duplicate-args-category-desc": "'A pàgene téne chiamate a template ca ausane arguminde a doppie, cumme <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Fà attenziò: Sta vosce tène 'nu sbuenne de funziune de chiamate a l'analizzatore.\n\nAvessere a essere mene de $2 {{PLURAL:$2|chiamate|chiamate}}, 'nvece mò {{PLURAL:$1|ste $1 chiamate|ne stonne $1 chiamate}}.",
        "uploaded-script-svg": "Acchiate elemende pe script \"$1\" jndr'à 'u file SVG carecate.",
        "uploaded-hostile-svg": "Acchiate 'nu CSS insecure ndr'à l'elemende de stile d'u file SVG carecate.",
        "uploaded-event-handler-on-svg": "'A 'mbostazione de le attribute de gestione de l'evende <code>$1=\"$2\"</code> non ge se pò ffà cu le file SVG.",
+       "uploaded-href-attribute-svg": "le attribbute href <code>&lt;$1 $2=\"$3\"&gt;</code> cu le destinaziune de fore (p.e. http://, javascript:, etc) non ge se ponne mettere jndr'à le file SVG.",
        "uploadscriptednamespace": "Stu file SVG tène 'nu namespace illegale '$1'",
        "uploadinvalidxml": "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
        "uploadvirus": "Alanga toje, 'u file condiene 'nu virus! Dettaglie: $1",
        "tooltip-pt-logout": "Isse",
        "tooltip-pt-createaccount": "Te ste 'ngoragge pe ccrejà 'nu cunde e trasè; comungue, non g'è obbligatorie",
        "tooltip-ca-talk": "'Ngazzaminde sus 'a pàgene de le condenute",
-       "tooltip-ca-edit": "Tu puè cangià sta pàgene.\nPe piacere ause 'u buttone de l'andeprime apprime de salvà.",
+       "tooltip-ca-edit": "Tu puè cangià sta pàgene. Pe piacere ause 'u buttone de l'andeprime apprime de salvà.",
        "tooltip-ca-addsection": "Fà accumenzà 'na seziona nove",
        "tooltip-ca-viewsource": "Sta pàgene jè prutette.\nPuè vedè sulamende 'u sorgende.",
        "tooltip-ca-history": "Versiune passete de sta pàgene",
        "version-libraries": "Libbrerie installate",
        "version-libraries-library": "Libbrerie",
        "version-libraries-version": "Versione",
+       "version-libraries-license": "Licenze",
+       "version-libraries-description": "Descrizione",
+       "version-libraries-authors": "Auture",
        "redirect": "Redirette da 'u file, utende o ID d'a revisione",
        "redirect-legend": "Redirette a 'nu file o 'na pàgene",
        "redirect-summary": "Sta pàgena speciale redirezione a 'nu file (date 'u nome d'u file), 'na pàgene (date 'n'ID de revisione), o 'na pàgene utende (date 'n'ID numeriche de l'utende). Ause: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "trattine en",
        "special-characters-title-emdash": "trattine em",
-       "special-characters-title-minus": "segne mene"
+       "special-characters-title-minus": "segne mene",
+       "mw-widgets-titleinput-description-new-page": "'a pàgene non g'esiste angore",
+       "mw-widgets-titleinput-description-redirect": "redirezionate sus a $1"
 }
index d1647d9..e1b9dbc 100644 (file)
@@ -81,7 +81,8 @@
                        "DonRumata",
                        "Mariya",
                        "Marina Melik-Adamyan",
-                       "Normalex"
+                       "Normalex",
+                       "WindEwriX"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "passwordreset": "Сброс пароля",
        "passwordreset-text-one": "Заполните эту форму, чтобы сбросить свой пароль.",
        "passwordreset-text-many": "{{PLURAL:$1|Заполните одно из полей для получения временного пароля по электронной почте.}}",
-       "passwordreset-legend": "Сбросить пароль",
        "passwordreset-disabled": "Сбросы пароля отключены на этой вики.",
        "passwordreset-emaildisabled": "Функции электронной почты отключены в этой вики.",
        "passwordreset-username": "Имя участника:",
        "resettokens": "Сбросить токены",
        "resettokens-text": "Вы можете сбросить токены, позволяющие получить доступ к некоторым личным данным, связанным с вашей учётной записью на этом сайте.\n\nВам необходимо сделать это, если вы случайно поделились ими с кем-то, или если ваша учётная запись была взломана.",
        "resettokens-no-tokens": "Нет токенов для сброса.",
-       "resettokens-legend": "Сбросить токены",
        "resettokens-tokens": "Токены:",
        "resettokens-token-label": "$1 (текущее значение: $2)",
        "resettokens-watchlist-token": "Токен для веб-канала (Atom/RSS)  [[Special:Watchlist|изменений страниц в вашем списке наблюдения]]",
        "yourdiff": "Различия",
        "copyrightwarning": "Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии $2 (см. $1).\nЕсли вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.<br />\nВы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из\nисточника, допускающего свободное распространение и изменение своего содержимого.<br />\n'''НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!'''",
        "copyrightwarning2": "Пожалуйста, учтите, что любой ваш вклад в проект «{{SITENAME}}» может быть отредактирован или удалён другими участниками.\nЕсли вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.<br />\nВы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. $1).\n'''НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!'''",
+       "editpage-cannot-use-custom-model": "Модель содержимого этой страницы не может быть изменена.",
        "longpageerror": "'''ОШИБКА: записываемый вами текст имеет размер $1 {{PLURAL:$1|килобайт|килобайта|килобайт}}, что больше, чем установленный предел в $2 {{PLURAL:$2|килобайт|килобайта|килобайт}}. Страница не может быть сохранена.'''",
        "readonlywarning": "'''Предупреждение. База данных заблокирована в связи с процедурами обслуживания, поэтому вы не можете записать ваши изменения прямо сейчас.'''\nВозможно, вам следует скопировать этот текст в текстовый файл, чтобы сохранить его на будущее.\n\nАдминистратор, заблокировавший базу данных, оставил следующее объяснение: $1",
        "protectedpagewarning": "'''Предупреждение. Эта страница защищена от изменений, её могут редактировать только участники с полномочиями администраторов.'''\nНиже для справки приведена последняя запись журнала:",
        "badsig": "Неверная подпись. Проверьте корректность HTML-тегов.",
        "badsiglength": "Слишком длинная подпись.\nПодпись не должна превышать $1 {{PLURAL:$1|символа|символа|символов}}.",
        "yourgender": "Какое описание вам более подходит?",
-       "gender-unknown": "Я Ð¿Ñ\80едпоÑ\87иÑ\82аÑ\8e Ð½Ðµ Ñ\83казÑ\8bваÑ\82Ñ\8c",
+       "gender-unknown": "Ð\9fÑ\80и Ñ\83поминании Ð²Ð°Ñ\81 Ð¿Ñ\80огÑ\80аммное Ð¾Ð±ÐµÑ\81пеÑ\87ение, ÐºÐ¾Ð³Ð´Ð° Ñ\8dÑ\82о Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾, Ð±Ñ\83деÑ\82 Ð¸Ñ\81полÑ\8cзоваÑ\82Ñ\8c Ð³ÐµÐ½Ð´ÐµÑ\80но-нейÑ\82Ñ\80алÑ\8cнÑ\8bе Ñ\81лова",
        "gender-male": "Он редактирует страницы вики",
        "gender-female": "Онa редактирует страницы вики",
        "prefs-help-gender": "Этот параметр задавать необязательно.\nДвижок использует это значение, чтобы обращаться к вам и упоминать вас в правильном грамматическом роде.\nЭта информация будет общедоступной.",
        "rollback-success": "Откачены правки $1; возврат к версии $2.",
        "sessionfailure-title": "Ошибка сеанса",
        "sessionfailure": "Похоже, возникли проблемы с текущим сеансом работы;\nэто действие было отменено в целях предотвращения «захвата сеанса».\nПожалуйста, нажмите кнопку «Назад» и перезагрузите страницу, с которой вы пришли.",
+       "changecontentmodel": "Редактирование контентной модели страницы",
+       "changecontentmodel-title-label": "Заголовок страницы",
+       "changecontentmodel-reason-label": "Причина:",
+       "logentry-contentmodel-change-revert": "Откат",
        "protectlogpage": "Журнал защиты",
        "protectlogtext": "Ниже приведён журнал изменений защиты страницы.\nВы можете также просмотреть [[Special:ProtectedPages|список страниц, которые в данный момент защищены]].",
        "protectedarticle": "защищена страница «[[$1]]»",
        "version-libraries": "Установленные библиотеки",
        "version-libraries-library": "Библиотека",
        "version-libraries-version": "Версия",
+       "version-libraries-license": "Лицензия",
+       "version-libraries-description": "Описание",
+       "version-libraries-authors": "Авторы",
        "redirect": "Перенаправление с файла, участника, страницы или идентификатора версии",
        "redirect-legend": "Перенаправление на файл или страницу",
        "redirect-summary": "Эта служебная страница перенаправляет на файл (с имени файла), страницу (с идентификатора версии или страницы) или страницу участника (с числового идентификатора участника). Использование: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] или [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Кхмерские",
        "special-characters-title-endash": "среднее тире",
        "special-characters-title-emdash": "длинное тире",
-       "special-characters-title-minus": "знак минус"
+       "special-characters-title-minus": "знак минус",
+       "mw-widgets-titleinput-description-new-page": "страница ещё не существует",
+       "mw-widgets-titleinput-description-redirect": "перенаправление на $1"
 }
index 6dfc6f8..728e19b 100644 (file)
@@ -8,7 +8,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Milicevic01",
-                       "Macofe"
+                       "Macofe",
+                       "KWiki"
                ]
        },
        "tog-underline": "Podvuci linkove:",
        "passwordreset": "Ponovno postavi lozinku",
        "passwordreset-text-one": "Dovršite ovaj obrazac kako biste resetirali svoju lozinku/zaporku.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako bi ste resetirali svoju lozinku/zaporku.}}",
-       "passwordreset-legend": "Ponovno postavi lozinku",
        "passwordreset-disabled": "Ponovno postavljanje lozinke je onemogućeno na ovom wikiju.",
        "passwordreset-emaildisabled": "Postavke E-maila su deaktivirane na ovoj wiki.",
        "passwordreset-username": "Korisničko ime:",
        "resettokens": "Resetirajte tokene",
        "resettokens-text": "Možete resetirati tokene koji dozvoljavaju pristup određenim privatnim podacima povezanim sa vašim računom ovdje.\n\nTo možete učiniti ako ste ih slučajno podijelili sa nekim ili ako je vaš račun kompromitiran.",
        "resettokens-no-tokens": "Nema tokena za resetiranje.",
-       "resettokens-legend": "Resetiranje tokena",
        "resettokens-tokens": "Tokeni:",
        "resettokens-token-label": "$1 (trenutna vrijednost: $2)",
        "resettokens-watchlist-token": "Token za web feed (Atom/RSS) [[Special:Watchlist|promjena za vašem spisku praćenja]]",
        "nmembers": "$1 {{PLURAL:$1|član|članova}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|član|članova}}",
        "nrevisions": "$1 {{PLURAL:$1|revizija|revizije|revizija}}",
-       "nviews": "$1 {{PLURAL:$1|pregled|pregleda}}",
        "nimagelinks": "Koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "ntransclusions": "koristi se na $1 {{PLURAL:$1|stranici|stranice|stranica}}",
        "specialpage-empty": "Ne postoje rezultati za ovaj izvještaj.",
        "movepage-moved-noredirect": "Pravljenje preusmjerenja je onemogućeno.",
        "articleexists": "Stranica pod tim imenom već postoji, ili je ime koje ste izabrali neispravno.\nMolimo Vas da izaberete drugo ime.",
        "cantmove-titleprotected": "Ne možete premjestiti stranicu na ovu lokaciju, jer je novi naslov zaštićen od pravljenja",
-       "movetalk": "Premjesti i stranicu za diskusiju zajedno sa člankom (ukoliko nije prazna).",
+       "movetalk": "Premjesti i stranicu za diskusiju zajedno sa člankom (ako nije prazna).",
        "move-subpages": "Premjesti sve podstranice (do $1)",
        "move-talk-subpages": "Premjesti podstranice stranica za razgovor (do $1)",
        "movepage-page-exists": "Stranica $1 već postoji i ne može biti automatski zamijenjena.",
index 96d221d..13e650b 100644 (file)
        "passwordreset": "Reset hesla",
        "passwordreset-text-one": "Pre získanie nového hesla vyplňte tento formulár.",
        "passwordreset-text-many": "{{PLURAL:$1|Pre získanie nového hesla emailom, zadajte jeden z údajov.}}",
-       "passwordreset-legend": "Obnoviť heslo",
        "passwordreset-disabled": "Obnovenie hesla bolo na tejto wiki zakázané.",
        "passwordreset-emaildisabled": "E-mailové funkcie boli na tejto wiki vypnuté.",
        "passwordreset-username": "Používateľské meno:",
        "resettokens": "Obnoviť tokeny",
        "resettokens-text": "Tu môžete obnoviť tokeny, ktoré umožňujú prístup k určitým súkromným údajom spojeným s vaším účtom.\n\nMali by ste to urobiť, ak ste ich omylom niekomu poskytli alebo ak bolo vaše konto zneužité.",
        "resettokens-no-tokens": "Neexistujú žiadne tokeny, ktoré by bolo možné obnoviť.",
-       "resettokens-legend": "Obnoviť tokeny",
        "resettokens-tokens": "Tokeny:",
        "resettokens-token-label": "$1 (aktuálna hodnota: $2)",
        "resettokens-watchlist-token": "Token pre webový kanál (Atom/RSS) [[Special:Watchlist|zmien na stránkach, ktoré sledujete]]",
        "prefs-tokenwatchlist": "Token",
        "prefs-diffs": "Rozdiely",
        "prefs-help-prefershttps": "Táto voľba sa prejaví pri vašom ďalšom prihlásení.",
-       "email-address-validity-valid": "Formát e-mailovej adresa vyzerá byť správny",
+       "prefswarning-warning": "Vykonali ste zmeny v nastaveniach, ktoré zatiaľ nie sú uložené. Ak túto stránku opustíte bez kliknutia na „$1“, vaše nastavenia sa neaktualizujú.",
+       "email-address-validity-valid": "Formát e-mailovej adresy sa zdá byť správny",
        "email-address-validity-invalid": "Zadajte platnú e-mailovú adresu",
        "userrights": "Spravovanie používateľských práv",
        "userrights-lookup-user": "Spravovať skupiny používateľov",
        "right-browsearchive": "Hľadať v zmazaných stránkach",
        "right-undelete": "Obnoviť zmazanú stránku",
        "right-suppressrevision": "Kontrolovať a obnovovať revízie skryté správcom",
+       "right-viewsuppressed": "Zobrazovať revízie skryté pred všetkými používateľmi",
        "right-suppressionlog": "Zobrazovať súkromné záznamy",
        "right-block": "Blokovať ostatných používateľov",
        "right-blockemail": "Zablokovať používateľovi posielanie emailu",
        "right-protect": "Meniť úroveň zamknutia a upravovať kaskádovito zamknuté stránky",
        "right-editprotected": "Upravovať stránky zamknuté ako „{{int:protect-level-sysop}}“",
        "right-editsemiprotected": "Upravovať stránky zamknuté ako „{{int:protect-level-autoconfirmed}}“",
+       "right-editcontentmodel": "Upravovať model obsahu stránky",
        "right-editinterface": "Upravovať správy používateľského rozhrania",
        "right-editusercssjs": "Upravovať CSS a JS súbory ostatných používateľov",
        "right-editusercss": "Upravovať CSS súbory ostatných používateľov",
        "action-viewmywatchlist": "zobraziť zoznam sledovaných stránok",
        "action-viewmyprivateinfo": "zobraziť vaše súkromné údaje",
        "action-editmyprivateinfo": "upraviť vaše súkromné údaje",
+       "action-editcontentmodel": "upraviť model obsahu stránky",
        "action-managechangetags": "vytvorte a odstráňte značky z databázy",
        "nchanges": "$1 {{PLURAL:$1|úprava|úpravy|úprav}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|od poslednej návštevy}}",
        "unusedimages": "Nepoužité obrázky",
        "wantedcategories": "Žiadané kategórie",
        "wantedpages": "Žiadané stránky",
+       "wantedpages-summary": "Zoznam neexistujúcich stránok, na ktoré smeruje najviac odkazov, s výnimkou stránok, na ktoré odkazujú len presmerovania. Pre zoznam neexistujúcich stránok, na ktoré odkazujú presmerovania, pozri [[{{#special:BrokenRedirects}}|zoznam pokazených presmerovaní]].",
        "wantedpages-badtitle": "Neplatný názov vo výsledkoch: $1",
        "wantedfiles": "Žiadané súbory",
        "wantedfiletext-cat": "Nasledovné súbory sa používajú, ale nie sú k dispozícii. Súbory z cudzích repozitárov môžu byť uvedené aj napriek tomu, že existujú. Takéto falošné poplachy budú <del>prečiarknuté</del>. Okrem toho stránky, ktoré obsahujú vložené súbory, ktoré nie sú k dispozícii sú uvedené na [[:$1]].",
        "deadendpagestext": "Nasledujúce stránky neodkazujú na žiadne iné stránky na {{GRAMMAR:lokál|{{SITENAME}}}}.",
        "protectedpages": "Zamknuté stránky",
        "protectedpages-indef": "Zamknutia iba na neurčito",
+       "protectedpages-summary": "Táto stránka obsahuje zoznam existujúcich stránok, ktoré sú momentálne zamknuté. Zoznam názvov zamknutých proti vytvoreniu nájdete na stránke [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Iba kaskádové zamykanie",
        "protectedpages-noredirect": "Skryť presmerovania",
        "protectedpagesempty": "Momentálne nie sú žiadne stránky s týmito parametrami zamknuté.",
        "protectedpages-timestamp": "Dátum a čas",
        "protectedpages-page": "Stránka",
        "protectedpages-expiry": "Koniec platnosti",
+       "protectedpages-performer": "Zamkol",
        "protectedpages-params": "Nastavenie zámku",
        "protectedpages-reason": "Dôvod",
        "protectedpages-unknown-timestamp": "Neznáme",
        "protectedpages-unknown-performer": "Neznámy redaktor",
        "protectedtitles": "Zamknuté názvy",
+       "protectedtitles-summary": "Táto stránka obsahuje zoznam názvov, ktoré sú momentálne zamknuté proti vytvoreniu. Zoznam existujúcich zamknutých stránok nájdete na stránke [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Tieto parametre momentálne nezamykajú žiadne názvy stránok.",
        "listusers": "Zoznam používateľov",
        "listusers-editsonly": "Vynechať používateľov bez úprav",
index 6a47a44..ce555e4 100644 (file)
        "passwordreset": "Ponastavitev gesla",
        "passwordreset-text-one": "Da ponastavite svoje geslo, izpolnite naslednji obrazec.",
        "passwordreset-text-many": "{{PLURAL:$1|Da po e-pošti prejmete začasno geslo, izpolnite eno od polj.}}",
-       "passwordreset-legend": "Ponastavitev gesla",
        "passwordreset-disabled": "Ponastavljanje gesla je na tem wikiju onemogočeno.",
        "passwordreset-emaildisabled": "Na tem wikiju so možnosti e-pošte onemogočene.",
        "passwordreset-username": "Uporabniško ime:",
        "resettokens": "Ponastavitev žetonov",
        "resettokens-text": "Žetone lahko ponastavite, kar omogoča dostop do nekaterih zasebnih podatkov, povezanih z vašim računom.\n\nTo storite, če ste po nesreči žetone z nekom delili, ali če je bil vaš račun ogrožen.",
        "resettokens-no-tokens": "Ni nobenih žetonov za ponastavitev.",
-       "resettokens-legend": "Ponastavitev žetonov",
        "resettokens-tokens": "Žetoni:",
        "resettokens-token-label": "$1 (trenutna vrednost: $2)",
        "resettokens-watchlist-token": "Žeton spletnega vira (Atom/RSS) [[Special:Watchlist|sprememb strani na vašem spisku nadzorov]]",
        "yourdiff": "Primerjava",
        "copyrightwarning": "Vsi prispevki k {{GRAMMAR:dajalnik|{{SITENAME}}}} se obravnavajo kot objave pod pogoji $2 (za podrobnosti glej $1). Če niste pripravljeni na neusmiljeno urejanje in prosto razširjanje vašega gradiva, ga ne prispevajte.<br />\nPoleg tega zagotavljate, da ste prispevke napisali oziroma ustvarili sami ali pa prepisali iz javno dostopnega ali podobnega prostega vira.\n'''Ne dodajajte avtorsko zaščitenega dela brez dovoljenja!'''",
        "copyrightwarning2": "Vedite, da lahko drugi urejevalci urejajo, spremenijo ali odstranijo kateri koli prispevek k {{GRAMMAR:dajalnik|{{SITENAME}}}}.\nČe niste pripravljeni na neusmiljeno urejanje svojega gradiva, ga ne objavljajte tukaj.<br />\nPoleg tega jamčite, da ste prispevke napisali oziroma ustvarili sami ali pa prepisali iz vira v javni lasti ali podobnega prostega vira (za podrobnosti glej $1).\n'''Ne objavljajte avtorsko zaščitenega gradiva brez dovoljenja!'''",
+       "editpage-cannot-use-custom-model": "Modela vsebine strani ni mogoče spremeniti.",
        "longpageerror": "'''Napaka: Predloženo besedilo je dolgo $1 {{PLURAL:$1|kilobajt|kilobajta|kilobajte|kilobajtov}}, s čimer presega največjo dovoljeno dolžino $2 {{PLURAL:$2|kilobajta|kilobajtov|kilobajtov|kilobajtov}}.'''\nZato ga ni mogoče shraniti.",
        "readonlywarning": "<strong>Opozorilo: Zbirka podatkov je zaradi vzdrževanja začasno zaklenjena, kar pomeni, da sprememb trenutno ne morete shraniti.</strong>\nProsimo, prenesite besedilo v urejevalnik in ga dodajte pozneje.\n\nSistemski skrbnik, ki jo je zaklenil, je podal naslednjo razlago: $1",
        "protectedpagewarning": "'''Opozorilo: Stran je bila zaklenjena in jo lahko urejajo le uporabniki z administratorskimi pravicami.'''\nZadnji vnos v dnevnik je naveden spodaj:",
        "version-libraries": "Nameščene knjižnice",
        "version-libraries-library": "Knjižnica",
        "version-libraries-version": "Različica",
+       "version-libraries-license": "Dovoljenje",
+       "version-libraries-description": "Opis",
+       "version-libraries-authors": "Avtorji",
        "redirect": "Preusmeri po datoteki, uporabniku, strani ali ID-ju redakcije",
        "redirect-legend": "Preusmeritev na datoteko ali stran",
        "redirect-summary": "Posebna stran preusmeri na datoteko (če podate ime datoteke), stran (če podate ID redakcije ali ID strani) ali uporabniško stran (če podate številski ID uporabnika). Uporaba: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] ali [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Kmerski",
        "special-characters-title-endash": "navaden pomišljaj",
        "special-characters-title-emdash": "dolgi pomišljaj",
-       "special-characters-title-minus": "znak za minus"
+       "special-characters-title-minus": "znak za minus",
+       "mw-widgets-titleinput-description-new-page": "stran še ne obstaja",
+       "mw-widgets-titleinput-description-redirect": "preusmeritev na $1"
 }
index 7061a50..33e177c 100644 (file)
        "passwordreset": "Обнављање лозинке",
        "passwordreset-text-one": "Попуните овај образац да бисте добили привремену лозинку на е-пошту.",
        "passwordreset-text-many": "{{PLURAL:$1|Испуните једно од поља како би сте добили привремену лозинку на е-пошту.}}",
-       "passwordreset-legend": "Поништи лозинку",
        "passwordreset-disabled": "Обнављање лозинке је онемогућено на овом викију.",
        "passwordreset-emaildisabled": "Е-пошта је онемогућена на овом викију.",
        "passwordreset-username": "Корисничко име:",
        "changeemail-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
        "resettokens": "Ресетовање жетона",
        "resettokens-no-tokens": "Нема жетона за ресетовање.",
-       "resettokens-legend": "Ресетовање жетона",
        "resettokens-tokens": "Жетони:",
        "resettokens-token-label": "$1 (тренутна вредност: $2)",
        "resettokens-watchlist-token": "Жетон за веб довод (Atom/RSS) вашег [[Special:Watchlist|списка надгледања]]",
        "special-characters-group-gujarati": "гуџарати",
        "special-characters-group-thai": "тајландски",
        "special-characters-group-lao": "лаоски",
-       "special-characters-group-khmer": "кмерски"
+       "special-characters-group-khmer": "кмерски",
+       "mw-widgets-titleinput-description-new-page": "страница још увек не постоји",
+       "mw-widgets-titleinput-description-redirect": "преусмерава на $1"
 }
index 81d2447..a20d502 100644 (file)
        "passwordreset": "Obnavljanje lozinke",
        "passwordreset-text-one": "Popunite ovaj obrazac da biste dobili privremenu lozinku na e-poštu.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako bi ste dobili privremenu lozinku na e-poštu.}}",
-       "passwordreset-legend": "Poništi lozinku",
        "passwordreset-disabled": "Obnavljanje lozinke je onemogućeno na ovom vikiju.",
        "passwordreset-emaildisabled": "E-pošta je onemogućena na ovom vikiju.",
        "passwordreset-username": "Korisničko ime:",
        "changeemail-throttled": "Previše puta ste pokušali da se prijavite.\nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
        "resettokens": "Resetovanje žetona",
        "resettokens-no-tokens": "Nema žetona za resetovanje.",
-       "resettokens-legend": "Resetovanje žetona",
        "resettokens-tokens": "Žetoni:",
        "resettokens-token-label": "$1 (trenutna vrednost: $2)",
        "resettokens-watchlist-token": "Žeton za veb dovod (Atom/RSS) vašeg [[Special:Watchlist|spiska nadgledanja]]",
index c42aa89..a03f2fb 100644 (file)
        "passwordreset": "Återställ lösenord",
        "passwordreset-text-one": "Fyll i detta formulär för att återställa ditt lösenord.",
        "passwordreset-text-many": "{{PLURAL:$1|Fyll i ett av fälten för att få ett tillfälligt lösenord via e-post.}}",
-       "passwordreset-legend": "Återställ lösenord",
        "passwordreset-disabled": "Lösenordsåterställning har inaktiverats på denna wiki.",
        "passwordreset-emaildisabled": "E-postfunktioner har inaktiverats på denna wiki.",
        "passwordreset-username": "Användarnamn:",
        "resettokens": "Återställ nycklar",
        "resettokens-text": "Du kan återställa nycklar som tillåter åtkomst till vissa privata uppgifter som är associerade till ditt konto här.\n\nDu bör återställa om du av misstag delade dem med någon eller om ditt konto har äventyrats.",
        "resettokens-no-tokens": "Det finns inga nycklar att återställa.",
-       "resettokens-legend": "Återställ nycklar",
        "resettokens-tokens": "Nycklar:",
        "resettokens-token-label": "$1 (aktuellt värde: $2)",
        "resettokens-watchlist-token": "Nyckel för webbflöde (Atom/RSS) av [[Special:Watchlist|ändringar i sidor på din bevakningslista]]",
        "yourdiff": "Skillnader",
        "copyrightwarning": "Observera att alla bidrag till {{SITENAME}} är att betrakta som utgivna under $2 (se $1 för detaljer). Om du inte vill att din text ska redigeras eller kopieras efter andras gottfinnande skall du inte skriva något här.<br />\nDu lovar oss också att du skrev texten själv, eller kopierade från kulturellt allmängods som inte skyddas av upphovsrätt, eller liknande källor. '''LÄGG INTE UT UPPHOVSRÄTTSSKYDDAT MATERIAL HÄR UTAN TILLÅTELSE!'''",
        "copyrightwarning2": "Observera att alla bidrag till {{SITENAME}} kan komma att redigeras, ändras, eller tas bort av andra deltagare. Om du inte vill se din text förändrad efter andras gottfinnade skall du inte skriva in någon text här.<br />\nDu lovar oss också att du skrev texten själv, eller kopierade från kulturellt allmängods som inte skyddas av upphovsrätt, eller liknande källor - se $1 för detaljer.\n'''LÄGG INTE UT UPPHOVSRÄTTSSKYDDAT MATERIAL HÄR UTAN TILLÅTELSE!'''",
+       "editpage-cannot-use-custom-model": "Innehållsmodellen för denna sida kan inte ändras.",
        "longpageerror": "'''FEL: Texten som du försöker spara är {{PLURAL:$1|en kilobyte|$1 kilobyte}}, vilket är mer än det maximalt tillåtna {{PLURAL:$2|en kilobyte|$2 kilobyte}}.'''\nDen kan inte sparas.",
        "readonlywarning": "'''VARNING: Databasen är tillfälligt låst för underhåll. Du kommer inte att kunna spara dina ändringar just nu.\nDet kan vara klokt att kopiera texten till ett textdokument som sparas på din dator tills vidare.'''\n\nAdministratören som låste databasen gav följande förklaring: $1",
        "protectedpagewarning": "'''Varning: Den här sidan har låsts så att bara användare med administratörsrättigheter kan redigera den.'''\nDen senaste loggposten tillhandahålls nedan som referens:",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "tankstreck",
        "special-characters-title-emdash": "långt tankstreck",
-       "special-characters-title-minus": "minustecken"
+       "special-characters-title-minus": "minustecken",
+       "mw-widgets-titleinput-description-new-page": "sidan existerar inte ännu",
+       "mw-widgets-titleinput-description-redirect": "omdirigerar till $1"
 }
index d153dcb..5be3c7a 100644 (file)
        "passwordreset": "సంకేతపదాన్ని మార్చుకోండి",
        "passwordreset-text-one": "ఈమెయిలు ద్వారా తాత్కాలిక సంకేతపదాన్ని పొందేందుకు ఈ ఫారమును నింపండి.",
        "passwordreset-text-many": "{{PLURAL:$1|ఈమెయిలు ద్వారా తాత్కాలిక సంకేతపదాన్ని పొందేందుకు ఏదో ఒక ఫీల్డును నింపండి.Fill in one of the fields to receive a temporary password via email.}}",
-       "passwordreset-legend": "సంకేతపదాన్ని మార్చుకోండి",
        "passwordreset-disabled": "ఈ వికీలో సంకేతపదాల మార్పును అచేతనం చేసాం.",
        "passwordreset-emaildisabled": "ఈ వికీలో ఈమెయిలు విశేషాలను అశక్తం చేసాం.",
        "passwordreset-username": "వాడుకరి పేరు:",
        "resettokens": "టోకెన్ ను రీసెట్ చెయ్యి",
        "resettokens-text": "మీ ఖాతాకు అనుబంధంగా ఉన్న గోపనీయ డేటాను చూపించే టోకెన్లను మీరు ఇక్కడ రీసెట్ చెయ్యవచ్చు.\n\nమీరా టోకెన్లను పొరపాటున ఎవరికైనా ఇచ్చి ఉన్నా, లేక మీ ఖాతా వివరాలు మరెవరికైనా తెలిసిపోయినా మీరీ పని చెయ్యాలి.",
        "resettokens-no-tokens": "రీసెట్ చేసేందుకు టోకెన్లేమీ లేవు.",
-       "resettokens-legend": "టోకెన్లను రీసెట్ చెయ్యి",
        "resettokens-tokens": "టోకెన్లు:",
        "resettokens-token-label": "$1 (ప్రస్తుత విలువ: $2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|changes to pages on your watchlist]] యొక్క జాల వడ్డన (Atom/RSS) కు టోకెన్",
        "yourdiff": "తేడాలు",
        "copyrightwarning": "{{SITENAME}}కు సమర్పించే అన్ని రచనలూ $2కు లోబడి ప్రచురింపబడినట్లుగా భావించబడతాయి (వివరాలకు $1 చూడండి). మీ రచనలను ఎవ్వరూ మార్చ రాదనీ లెదా వేరే ఎవ్వరూ వాడుకో రాదని మీరు భావిస్తే, ఇక్కడ ప్రచురించకండి.<br /> మీ స్వీయ రచనను గాని, సార్వజనీనమైన రచననుగాని, ఇతర ఉచిత వనరుల నుండి సేకరించిన రచననుగాని మాత్రమే ప్రచురిస్తున్నానని కూడా మీరు ప్రమాణం చేస్తున్నారు. <strong>కాపీహక్కులుగల రచనను తగిన అనుమతి లేకుండా సమర్పించకండి!</strong>",
        "copyrightwarning2": "{{SITENAME}}లో ప్రచురించే రచనలన్నిటినీ ఇతర రచయితలు సరిదిద్దడం, మార్చడం, తొలగించడం జరగవచ్చు. మీ రచనలను అలా నిర్దాక్షిణ్యంగా దిద్దుబాట్లు చెయ్యడం మీకిష్టం లేకపోతే, వాటిని ఇక్కడ ప్రచురించకండి. <br />\nఅలాగే, ఈ రచనను మీరే చేసారని, లేదా ఏదైనా సార్వజనిక వనరు నుండి గానీ, అలాంటి ఉచిత, స్వేచ్ఛా వనరు నుండి గానీ కాపీ చేసి తెచ్చారని మాకు వాగ్దానం చేస్తున్నారు. (వివరాలకు $1 చూడండి).\n<strong>తగు అనుమతులు లేకుండా కాపీ హక్కులు గల రచనలను సమర్పించకండి!</strong>",
+       "editpage-cannot-use-custom-model": "ఈ పేజీ కంటెంట్ మోడల్ మార్చడం వీలుకాదు.",
        "longpageerror": "<strong>లోపం: మీరు సమర్పించిన పాఠ్యం {{PLURAL:$1|ఒక కిలోబైటు|$1 కిలోబైట్ల}} నిడివి కలిగి ఉంది. ఇది గరిష్ఠ పరిమితి అయిన {{PLURAL:$2|ఒక కిలోబైటుని|$2 కిలోబైట్లను}} మించింది.</strong>\n దీన్ని భద్రపరచలేము.",
        "readonlywarning": "<strong>హెచ్చరిక: నిర్వహణ కొరకు డేటాబేసుకి తాళం వేసారు. కాబట్టి మీ మార్పుచేర్పులను ఇప్పుడు భద్రపరచలేరు.</strong> \nమీ మార్పులను ఒక ఫాఠ్య ఫైలులోకి కాపీ చేసి భద్రపరచుకొని, తరువాత సమర్పించండి.\n\nతాళం వేసిన నిర్వాహకుడి వివరణ ఇదీ: $1",
        "protectedpagewarning": "<strong>హెచ్చరిక: ఈ పేజీ సంరక్షించబడింది. కాబట్టి నిర్వాహక అనుమతులు ఉన్న వాడుకరులు మాత్రమే మార్చగలరు.</strong>\nచివరి లాగ్ పద్దును మీ సమాచారం కోసం ఇక్కడ ఇస్తున్నాం:",
        "content-model-javascript": "జావాస్క్రిప్ట్",
        "content-model-css": "CSS",
        "content-json-empty-object": "ఖాళీ అంశం",
+       "content-json-empty-array": "ఖాళీ అరే",
        "expensive-parserfunction-warning": "<strong>హెచ్చరిక:</strong> ఈ పేజీలో ఖరీదైన పార్సరు పిలుపులు చాలా ఉన్నాయి.\n\nపార్సరు {{PLURAL:$2|పిలుపు|పిలుపులు}} $2 కంటే తక్కువ ఉండాలి,  ప్రస్తుతం {{PLURAL:$1|$1 పిలుపు ఉంది|$1  పిలుపులు ఉన్నాయి}}.",
        "expensive-parserfunction-category": "పార్సరు సందేశాలు అధికంగా ఉన్న పేజీలు",
        "post-expand-template-inclusion-warning": "<strong>హెచ్చరిక:</strong> మూస ఇముడ్పు సైజు చాలా పెద్దదిగా ఉంది.\nకొన్ని మూసలు ఇమడ్చబడవు.",
        "parser-template-recursion-depth-warning": "మూస రికర్షను లోతు అధిగమించబడింది ($1)",
        "language-converter-depth-warning": "భాషా మార్పిడి లోతు పరిమితిని అధిగమించారు ($1)",
        "node-count-exceeded-category": "నోడ్-కౌంటును మించిన పేజీలు",
-       "node-count-exceeded-category-desc": "à°¨à±\8bà°¡à±\81-à°¸à°\82à°\96à±\8dà°¯ à°\8eà°\95à±\8dà°\95à±\81à°µ à°\85యిన à°ªà±\8dà°°à°¤à±\81à°²à°\95à±\81 à°µà°°à±\8dà°\97à°®à±\81",
-       "node-count-exceeded-warning": "పేజీ నోడ్-కౌంటును మించింది",
+       "node-count-exceeded-category-desc": "à°ªà±\87à°\9cà±\80 à°\97à°°à°¿à°·à±\8dà°  à°¨à±\8bà°¡à±\81-à°¸à°\82à°\96à±\8dà°¯ à°®à°¿à°\82à°\9aినది.",
+       "node-count-exceeded-warning": "పేజీ నోడ్-కౌంటు మించింది",
        "expansion-depth-exceeded-category": "విస్తరణ లోతును మించిన పేజీలు",
-       "expansion-depth-exceeded-category-desc": "విసà±\8dతరణ à°²à±\8bà°¤à±\81à°¨à±\81 à°®à°¿à°\82à°\9aà°¿à°¨ à°ªà±\87à°\9cà±\80à°²à°\95à±\81 à°µà°°à±\8dà°\97à°®à±\81",
+       "expansion-depth-exceeded-category-desc": "à°ªà±\87à°\9cà±\80 à°\97à°°à°¿à°·à±\8dà°  à°µà°¿à°¸à±\8dతరణ à°²à±\8bà°¤à±\81à°¨à±\81 à°®à°¿à°\82à°\9aà°¿à°\82ది",
        "expansion-depth-exceeded-warning": "పేజీ విస్తరణ లోతును మించింది",
        "parser-unstrip-loop-warning": "Unstrip లూపును కనుక్కున్నాం",
        "parser-unstrip-recursion-limit": "Unstrip రికర్షన్ పరిమితిని దాటింది ($1)",
        "history-feed-description": "ఈ పేజీకి వికీలో కూర్పుల చరిత్ర",
        "history-feed-item-nocomment": "$2 న $1",
        "history-feed-empty": "మీరడిగిన పేజీ లేదు.\nదాన్ని వికీలోంచి తొలగించి ఉండొచ్చు, లేదా పేరు మార్చి ఉండొచ్చు.\nసంబంధిత కొత్త పేజీల కోసం [[Special:Search|వికీలో వెతికి చూడండి]].",
+       "history-edit-tags": "ఎంచుకున్న సంస్కరణల ట్యాగులను సవరించు",
        "rev-deleted-comment": "(మార్పుల సంగ్రహాన్ని తొలగించారు)",
        "rev-deleted-user": "(వాడుకరి పేరుని తొలగించారు)",
        "rev-deleted-event": "(చిట్టా వివరాలను తొలగించారు)",
        "revdelete-legend": "సందర్శక నిబంధనలు అమర్చు",
        "revdelete-hide-text": "కూర్పు పాఠ్యం",
        "revdelete-hide-image": "ఫైలులోని విషయాన్ని దాచు",
-       "revdelete-hide-name": "à°\9aà°°à±\8dయనà±\81, à°²à°\95à±\8dà°·à±\8dయానà±\8dà°¨à±\80 à°¦à°¾à°\9aà±\81",
+       "revdelete-hide-name": "పారామితà±\81లనà±\81, à°²à°\95à±\8dà°·à±\8dయానà±\8dà°¨à±\80 à°¦à°¾à°¯à°¿",
        "revdelete-hide-comment": "దిద్దుబాటు సారాంశం",
        "revdelete-hide-user": "దిద్దుబాటు చేసిన వాడుకరి పేరు/ఐపీ చిరునామా",
        "revdelete-hide-restricted": "డేటాను అందరిలాగే నిర్వాహకులకు కూడా కనబడనివ్వకు",
        "preferences": "అభిరుచులు",
        "mypreferences": "అభిరుచులు",
        "prefs-edits": "దిద్దుబాట్ల సంఖ్య:",
-       "prefsnologintext2": "మీ అభిరుచులను మార్చుకునేందుకు $1.",
+       "prefsnologintext2": "మీ అభిరుచులను మార్చుకునేందుకు ప్రవేశించండి.",
        "prefs-skin": "రూపు",
        "skin-preview": "మునుజూడు",
        "datedefault": "ఏదైనా పరవాలేదు",
        "prefs-personal": "వాడుకరి ప్రవర",
        "prefs-rc": "ఇటీవలి మార్పులు",
        "prefs-watchlist": "వీక్షణ జాబితా",
+       "prefs-editwatchlist": "వీక్షణజాబితాను సవరించు",
        "prefs-editwatchlist-label": "మీ వీక్షణజాబితా లోని అంశాలను సవరించండి:",
+       "prefs-editwatchlist-edit": "మీ వీక్షణజాబితాపై ఉన్న శీర్షికలను చూడండి, తీసివేయండి",
+       "prefs-editwatchlist-raw": "ముడి వీక్షణజాబితాను సవరించు",
+       "prefs-editwatchlist-clear": "మీ వీక్షణజాబితాను తుడిచివేయండి",
        "prefs-watchlist-days": "వీక్షణ జాబితాలో చూపించవలసిన రోజులు:",
        "prefs-watchlist-days-max": "గరిష్ఠంగా $1 {{PLURAL:$1|రోజు|రోజులు}}",
        "prefs-watchlist-edits": "విస్తృత వీక్షణ జాబితాలో చూపించవలసిన దిద్దుబాట్లు:",
        "right-browsearchive": "తొలగించిన పేజీల్లో వెతకడం",
        "right-undelete": "పేజీ తొలగింపును రద్దు చెయ్యి",
        "right-suppressrevision": "నిర్వాహకులకు కనబడకుండా ఉన్న కూర్పులను సమీక్షించి పునస్థాపించడం",
+       "right-viewsuppressed": "ఏ వాడుకరి నుండైనా వీక్షణ సంస్కరణలు దాయబడ్డాయి",
        "right-suppressionlog": "గోప్యంగా ఉన్న లాగ్‌లను చూడడం",
        "right-block": "దిద్దుబాటు చెయ్యకుండా ఇతర వాడుకరులను నిరోధించగలగడం",
        "right-blockemail": "ఈమెయిలు పంపకుండా సభ్యుని నిరోధించు",
        "right-protect": "సంరక్షణ స్థాయిలను మార్చు, కాస్కేడ్-రక్షిత పేజీలలో దిద్దుబాటు చెయ్యి",
        "right-editprotected": "\"{{int:protect-level-sysop}}\" గా సంక్షించబడిన పేజీలను సరిదిద్దు",
        "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" గా సంరక్షించబడ్డ పేజీలను మార్చు",
+       "right-editcontentmodel": "పేజీ యొక్క కంటెంటు మోడలును సవరించు",
        "right-editinterface": "యూజరు ఇంటరుఫేసులో దిద్దుబాటు చెయ్యి",
        "right-editusercssjs": "ఇతర వాడుకరుల CSS, JS ఫైళ్ళలో దిద్దుబాటు చెయ్యి",
        "right-editusercss": "ఇతర వాడుకరుల CSS ఫైళ్ళలో దిద్దుబాటు చెయ్యడం",
        "action-viewmywatchlist": "మీ వీక్షణ జాబితాను చూడండి",
        "action-viewmyprivateinfo": "మీ గోపనీయ సమాచారాన్ని చూడండి",
        "action-editmyprivateinfo": "మీ గోపనీయ సమాచారాన్ని సరిదిద్దండి",
+       "action-editcontentmodel": "పేజీ యొక్క కంటెంటు మోడలును సవరించు",
        "action-managechangetags": "డేటాబేసులో ట్యాగులను చేర్చే లేదా తొలగించే",
        "action-applychangetags": "మీ మార్పులతో ట్యాగులను ఆపాదించే",
        "nchanges": "{{PLURAL:$1|ఒక మార్పు|$1 మార్పులు}}",
        "license": "లైసెన్సు వివరాలు:",
        "license-header": "లైసెన్సింగ్",
        "nolicense": "దేన్నీ ఎంచుకోలేదు",
+       "licenses-edit": "లైసెన్సు ఎంపికలను సవరించు",
        "license-nopreview": "(మునుజూపు అందుబాటులో లేదు)",
        "upload_source_url": " (సార్వజనికంగా అందుబాటులో ఉన్న, సరైన URL)",
-       "upload_source_file": " (మీ కంప్యూటర్లో ఒక ఫైలు)",
+       "upload_source_file": "(మీ కంప్యూటరు నుండి ఎంచుకోబడిన దస్త్రం)",
        "listfiles-delete": "తొలగించు",
        "listfiles-summary": "ఈ ప్రత్యేక పేజీ, ఎక్కించిన ఫైళ్ళన్నిటినీ చూపిస్తుంది.",
        "listfiles_search_for": "మీడియా పేరుకై వెతుకు:",
        "nmembers": "$1 {{PLURAL:$1|సభ్యుడు|సభ్యులు}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|సభ్యుడు|సభ్యులు}}",
        "nrevisions": "{{PLURAL:$1|కూర్పు|$1 కూర్పులు}}",
-       "nviews": "$1 {{PLURAL:$1|సందర్శన|సందర్శనలు}}",
        "nimagelinks": "$1 {{PLURAL:$1|పుట|పుటల}}లో ఉపయోగించారు",
        "ntransclusions": "$1 {{PLURAL:$1|పుట|పుటల}}లో ఉపయోగించారు",
        "specialpage-empty": "ఈ పేజీ ఖాళీగా ఉంది.",
        "wantedtemplates": "కావాల్సిన మూసలు",
        "mostlinked": "అధిక లింకులు చూపే పేజీలు",
        "mostlinkedcategories": "అధిక లింకులు చూపే వర్గాలు",
-       "mostlinkedtemplates": "à°\8eà°\95à±\8dà°\95à±\81à°µà°\97à°¾ à°\89పయà±\8bà°\97à°¿à°\82à°\9aà°¿à°¨ à°®à±\82à°¸లు",
+       "mostlinkedtemplates": "à°\8eà°\95à±\8dà°\95à±\81à°µà°\97à°¾ à°\89పయà±\8bà°\97à°¿à°\82à°\9aà°¿à°¨ à°ªà±\87à°\9cà±\80లు",
        "mostcategories": "అధిక వర్గాలలో చేరిన వ్యాసాలు",
        "mostimages": "అధిక లింకులు గల బొమ్మలు",
        "mostinterwikis": "అత్యధిక అంతరవికీ లింకులు కలిగిన పేజీలు",
        "logempty": "సరిపోలిన అంశాలేమీ చిట్టాలో లేవు.",
        "log-title-wildcard": "ఈ పాఠ్యంతో మొదలయ్యే పుస్తకాల కొరకు వెతుకు",
        "showhideselectedlogentries": "ఎంచుకున్న చిట్టా పద్దులను చూపించు/దాచు",
+       "log-edit-tags": "ఎంచుకున్న చిట్టా ప్రవేశాల ట్యాగులను సవరించు",
        "allpages": "అన్ని పేజీలు",
        "nextpage": "తరువాతి పేజీ ($1)",
        "prevpage": "మునుపటి పేజీ ($1)",
        "trackingcategories": "పహారా కాయు వర్గాలు",
        "trackingcategories-msg": "పహారా కార్యు వర్గము",
        "trackingcategories-name": "సందేశం పేరు",
+       "trackingcategories-desc": "వర్గపు చేర్పు క్రైటేరియా",
+       "broken-file-category-desc": "ఈ పుటలో విరిగిన దస్త్ర లంకె ఉన్నది (దస్త్రం ఉనికిలో లేనప్పుడు దస్త్రానికి ఎంబెడ్ చేయు లంకె).",
        "trackingcategories-nodesc": "వివరణ లేదు.",
        "trackingcategories-disabled": "వర్గం అచేతనమై ఉంది",
        "mailnologin": "పంపించవలసిన చిరునామా లేదు",
        "import-interwiki-history": "ఈ పేజీ యొక్క అన్ని చారిత్రక కూర్పులను కాపీ చెయ్యి",
        "import-interwiki-templates": "అన్ని మూసలను ఉంచు",
        "import-interwiki-submit": "దిగుమతించు",
+       "import-mapping-default": "అప్రమేయ స్థానాలకు దిగుమతించు",
+       "import-mapping-namespace": "పేరుబరికి దిగుమతించు:",
+       "import-mapping-subpage": "దిగువ పేర్కొన్న పేజీ యొక్క ఉప పేజీలుగా దిగుమతించు:",
        "import-upload-filename": "పైలుపేరు:",
        "import-comment": "వ్యాఖ్య:",
        "importtext": "[[Special:Export|ఎగుమతి ఉపకరణాన్ని]] ఉపయోగించి, ఈ ఫైలుని  మూల వికీ నుంచి ఎగుమతి చెయ్యండి.\nదాన్ని మీ కంప్యూటర్లో భద్రపరచి, ఆపై ఇక్కడికి ఎక్కించండి.",
        "version-entrypoints": "ప్రవేశ బిందు చిరునామాలు",
        "version-entrypoints-header-entrypoint": "ప్రవేశ బిందువు",
        "version-entrypoints-header-url": "చిరునామా",
+       "version-libraries-library": "గ్రంథాలయం",
        "version-libraries-version": "సంచిక",
+       "version-libraries-license": "లైసెన్సు",
+       "version-libraries-description": "వివరణ",
+       "version-libraries-authors": "రచయితలు",
        "redirect": "ఫైలు, వాడుకరి, పేజీ లేదా కూర్పు ఐడీ ప్రకారం దారిమార్పు",
        "redirect-legend": "ఫైలు లేదా పేజీకి దారిమార్పు",
        "redirect-submit": "వెళ్ళు",
        "tags-apply-no-permission": "మీ మార్పులతో పాటు వాటికి ట్యాగులను ఆపాదించే అనుమతి మీకు లేదు.",
        "tags-apply-not-allowed-one": "\"$1\" ట్యాగును మానవీయంగా ఆపాదించలేరు.",
        "tags-apply-not-allowed-multi": "ఈ {{PLURAL:$2|ట్యాగును|ట్యాగులను}} మానవీయంగా ఆపాదించడానికి అనుమతించరు:",
+       "tags-edit-title": "ట్యాగులను సవరించు",
+       "tags-edit-manage-link": "ట్యాగులను నిర్వహించండి",
        "tags-edit-existing-tags": "ప్రస్తుత ట్యాగులు:",
        "tags-edit-existing-tags-none": "''ఏమీలేవు''",
        "tags-edit-new-tags": "కొత్త ట్యాగులు:",
        "mediastatistics-header-drawing": "రేఖాచిత్రాలు (వెక్టర్ చిత్రాలు)",
        "mediastatistics-header-audio": "ఆడియో",
        "mediastatistics-header-video": "వీడియోలు",
+       "mediastatistics-header-office": "కార్యాలయం",
        "mediastatistics-header-text": "పాఠ్య",
        "json-error-state-mismatch": "చెల్లని లేదా సరికాని JSON",
+       "json-error-syntax": "వ్యాకరణ దోషం",
        "headline-anchor-title": "ఈ విభాగానికి లంకె",
        "special-characters-group-latin": "లాటిన్",
        "special-characters-group-latinextended": "విస్తరిత లాటిన్",
        "special-characters-group-khmer": "ఖ్మెర్",
        "special-characters-title-endash": "ఎన్ డాష్",
        "special-characters-title-emdash": "ఎమ్ డాష్",
-       "special-characters-title-minus": "మైనస్ గుర్తు"
+       "special-characters-title-minus": "మైనస్ గుర్తు",
+       "mw-widgets-titleinput-description-new-page": "పేజీ ఉనికిలో లేదు"
 }
index 3ec0241..b43794e 100644 (file)
        "passwordreset": "Скинути пароль",
        "passwordreset-text-one": "Заповніть цю форму, щоб отримати тимчасовий пароль електронною поштою.",
        "passwordreset-text-many": "{{PLURAL:$1|Заповніть одне з полів для отримання тимчасового пароля електронною поштою.}}",
-       "passwordreset-legend": "Перевстановити пароль",
        "passwordreset-disabled": "У цій вікі вимкнена можливість скидання пароля.",
        "passwordreset-emaildisabled": "В цій вікі вимкнуто Функції електронної пошти.",
        "passwordreset-username": "Ім'я користувача:",
        "resettokens": "Скидання жетонів",
        "resettokens-text": "Ви можете скинути жетони, що забезпечують доступ до певних особистих даних, пов'язаних тут із вашим обліковим записом.\nВам слід це зробити, якщо ви випадково поділились жетонами з кимось, або якщо ваш обліковий запис було зламано.",
        "resettokens-no-tokens": "Немає жетонів до скидання.",
-       "resettokens-legend": "Скинути жетони",
        "resettokens-tokens": "Жетони:",
        "resettokens-token-label": "$1 (поточне значення: $2)",
        "resettokens-watchlist-token": "Маркер стрічки новин (Atom/RSS) щодо [[Special:Watchlist|зміни на сторінці з вашого списку спостереження]]",
        "yourdiff": "Відмінності",
        "copyrightwarning": "Зверніть увагу, що будь-які додавання і зміни до {{grammar:genitive|{{SITENAME}}}} розглядаються як випущені на умовах ліцензії $2 (детальніше див. $1).\nЯкщо ви не бажаєте, щоб написане вами безжально редагувалось і розповсюджувалося за бажанням будь-кого, не пишіть тут.<br />\nВи також підтверджуєте, що написане вами тут належить вам або взяте з джерела, що є суспільним надбанням чи подібного вільного джерела.\n'''Не публікуйте тут без дозволу матеріали, захищені авторським правом!'''",
        "copyrightwarning2": "Будь ласка, зверніть увагу, що всі зміни, внесені вами до {{SITENAME}}, можуть редагуватися, доповнюватися або вилучатися іншими користувачами.\nЯкщо ви не бажаєте, щоб написане вами безжально редагувалось — не пишіть тут.<br />\nВи також підтверджуєте, що наведене тут написано вами особисто або запозичено з джерела, яке є суспільним надбанням, або подібного вільного джерела (див. $1).<br />\n'''Не публікуйте тут без дозволу матеріали, захищені авторським правом!'''",
+       "editpage-cannot-use-custom-model": "Модель вмісту цієї сторінки не може бути змінена.",
        "longpageerror": "'''Помилка: Поданий вами текст становить $1 {{PLURAL:$1|кілобайт|кілобайти|кілобайтів}}, що більше за встановлену межу у {{PLURAL:$2|кілобайт|кілобайти|кілобайтів}}.'''\nЙого неможливо зберегти.",
        "readonlywarning": "'''Попередження: База даних заблокована на обслуговування, тому, на даний момент, ви не можете записати ваші зміни.\nМожливо, вам варто скопіювати текст у файл на вашому комп'ютері й зберегти його на пізніше.'''\n\nАдміністратор, що заблокував базу даних, залишив наступне пояснення: $1",
        "protectedpagewarning": "'''Попередження: Ця сторінка була захищена від змін так, що тільки користувачі з правами адміністратора можуть її редагувати.'''\nОстанній запис журналу наведений нижче для довідки:",
        "badsig": "Неправильний підпис.\nПеревірте коректність HTML-тегів.",
        "badsiglength": "Ваш підпис дуже довгий.\nПовинно бути не більше $1 {{PLURAL:$1|символу|символів|символів}}.",
        "yourgender": "Стать:",
-       "gender-unknown": "Ð\9dе Ð²Ð¸Ð·Ð½Ð°Ñ\87ена",
+       "gender-unknown": "Ð\97гадÑ\83Ñ\8eÑ\87и Ð\92аÑ\81, Ð¿Ñ\80огÑ\80амне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ\87еннÑ\8f Ð²Ð¸ÐºÐ¾Ñ\80иÑ\81Ñ\82овÑ\83ваÑ\82име Ð¿Ð¾ Ð·Ð¼Ð¾Ð·Ñ\96 Ð³ÐµÐ½Ð´ÐµÑ\80но Ð½ÐµÐ¹Ñ\82Ñ\80алÑ\8cнÑ\96 Ñ\81лова",
        "gender-male": "Чоловіча",
        "gender-female": "Жіноча",
        "prefs-help-gender": "Задання цього параметру — необов'язкове. Застосовується рушієм у тих звертаннях до користувача, які залежать від статі.\nЦя інформація загальнодоступна.",
        "nmembers": "$1 {{PLURAL:$1|об'єкт|об'єкти|об'єктів}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|член|члени|членів}}",
        "nrevisions": "$1 {{PLURAL:$1|версія|версії|версій}}",
-       "nviews": "$1 {{PLURAL:$1|перегляд|перегляди|переглядів}}",
        "nimagelinks": "Використовується на $1 {{PLURAL:$1|1=сторінці|сторінках}}",
        "ntransclusions": "використовується на $1 {{PLURAL:$1|1=сторінці|сторінках}}",
        "specialpage-empty": "Запит не дав результатів.",
        "special-characters-group-khmer": "Кхмерські",
        "special-characters-title-endash": "коротке тире",
        "special-characters-title-emdash": "довге тире",
-       "special-characters-title-minus": "мінус"
+       "special-characters-title-minus": "мінус",
+       "mw-widgets-titleinput-description-new-page": "сторінка ще не існує",
+       "mw-widgets-titleinput-description-redirect": "перенаправлення на $1"
 }
index aa1146a..ad3028e 100644 (file)
        "passwordreset": "Maxfiy soʻzni yangilash",
        "passwordreset-text-one": "Mahfiy soʻzni tashlash uchun ushbu oynalarni toʻltiring.",
        "passwordreset-text-many": "{{PLURAL:$1|Quyidagi oynalardan birini toʻldirsangiz, elektron pochtangizga vaqtinchalik maxfiy soʻz joʻnatiladi.}}",
-       "passwordreset-legend": "Maxfiy soʻzni yangilash",
        "passwordreset-emaildisabled": "Email xususiyatlari ushbu vikida oʻchirib qoʻyilgan.",
        "passwordreset-username": "Foydalanuvchi nomi:",
        "passwordreset-domain": "Domen:",
        "changeemail-password": "Sizning {{SITENAME}}dagi maxfiy so‘zingiz:",
        "changeemail-submit": "Manzilni o'zgartirish",
        "resettokens": "Kalitlaringizni yangilash",
-       "resettokens-legend": "Kalitlaringizni yangilash",
        "resettokens-tokens": "Kalitlar:",
        "resettokens-token-label": "$1 (joriy koʻrsatkich: $2)",
        "resettokens-done": "Kalitlar yangilandi.",
index 4c0ddb1..d9afcf5 100644 (file)
        "badtitletext": "Tựa trang yêu cầu không đúng, rỗng, hoặc là một liên kết ngôn ngữ hoặc liên kết wiki sai. Nó có thể chứa một hoặc nhiều ký tự mà tựa trang không thể sử dụng.",
        "title-invalid-empty": "Tiêu đề trang được yêu cầu rỗng hoặc chỉ chứa tên của một không gian tên.",
        "title-invalid-utf8": "Tiêu đề trang được yêu cầu chứa một chuỗi UTF-8 không hợp lệ",
-       "title-invalid-interwiki": "Tiêu đề chứa một liên kết liên wiki",
+       "title-invalid-interwiki": "Tiêu đề trang yêu cầu có chứa một liên kết liên wiki mà không thể được sử dụng làm tiêu đề",
        "title-invalid-talk-namespace": "Tiêu đề trang đã yêu cầu chỉ đến trang thảo luận không thể tồn tại.",
        "title-invalid-characters": "Tiêu đề trang đã yêu cầu chứa ký tự không hợp lệ: \"$1\".",
        "title-invalid-relative": "Tiêu đề có đường dẫn tương đối. Tiêu đề trang tương đối (./, ../) là không hợp lệ , bởi chúng thường sẽ không thể đến được khi được xử lý bởi trình duyệt của người dùng.",
        "title-invalid-magic-tilde": "Tiêu đề trang đã yêu cầu chứa dãy dấu ngã không hợp lệ (<nowiki>~~~</nowiki>).",
-       "title-invalid-too-long": "Tiêu đề trang đã yêu cầu quá dài. Tiêu đề phải ngắn hơn $1 byte theo mã hóa UTF-8.",
+       "title-invalid-too-long": "Tiêu đề trang đã yêu cầu quá dài. Tiêu đề phải ngắn hơn $1 {{PLURAL:$1|byte|bytes}} byte theo mã hóa UTF-8.",
        "title-invalid-leading-colon": "Tiêu đề trang đã yêu cầu chứa dấu hai chấm ở đầu là không hợp lệ.",
        "perfcached": "Dữ liệu sau được lấy từ bộ nhớ đệm và có thể đã lỗi thời. Tối đa có sẵn {{PLURAL:$1|một kết quả|$1 kết quả}} trong bộ nhớ đệm.",
        "perfcachedts": "Dữ liệu dưới đây được đưa vào vùng nhớ đệm và được cập nhật lần cuối lúc $1. Tối đa có sẵn {{PLURAL:$4|một kết quả|$4 kết quả}} trong vùng nhớ đệm.",
        "passwordreset": "Tái tạo mật khẩu",
        "passwordreset-text-one": "Hãy điền mẫu đơn này để tái tạo mật khẩu.",
        "passwordreset-text-many": "Điền vào {{PLURAL:$1}}một hộp sau để nhận một mật khẩu tạm thời qua thư điện tử.",
-       "passwordreset-legend": "Tái tạo mật khẩu",
        "passwordreset-disabled": "Chức năng tái tạo mật khẩu đã bị tắt trên wiki này.",
        "passwordreset-emaildisabled": "Tính năng gửi thư điện tử không được kích hoạt trên wiki này.",
        "passwordreset-username": "Tên người dùng:",
        "resettokens": "Đặt lại dấu hiệu",
        "resettokens-text": "Bạn có thể đặt lại các dấu hiệu cho phép truy cập những dữ liệu cá nhân của tài khoản của bạn tại đây.\n\nBạn nên sử dụng chức năng này nếu bạn đã vô tình chia sẻ các dấu hiệu với người khác hoặc tài khoản của bạn đã bị xâm phạm.",
        "resettokens-no-tokens": "Không có dấu hiệu để đặt lại.",
-       "resettokens-legend": "Đặt lại dấu hiệu",
        "resettokens-tokens": "Dấu hiệu:",
        "resettokens-token-label": "$1 (giá trị hiện tại: $2)",
        "resettokens-watchlist-token": "Dấu hiệu cho nguồn cấp [[Special:Watchlist|thay đổi trong danh sách theo dõi]] (dạng Atom/RSS)",
        "yourdiff": "Khác",
        "copyrightwarning": "Xin chú ý rằng tất cả các đóng góp của bạn tại {{SITENAME}} được xem là sẽ phát hành theo giấy phép $2 (xem $1 để biết thêm chi tiết). Nếu bạn không muốn trang của bạn bị sửa đổi không thương tiếc và không sẵn lòng cho phép phát hành lại, đừng đăng trang ở đây.<br />\nBạn phải đảm bảo với chúng tôi rằng chính bạn là người viết nên, hoặc chép nó từ một nguồn thuộc phạm vi công cộng hoặc tự do tương đương.\n'''ĐỪNG ĐĂNG TÁC PHẨM CÓ BẢN QUYỀN MÀ CHƯA XIN PHÉP!'''",
        "copyrightwarning2": "Xin chú ý rằng tất cả các đóng góp của bạn tại {{SITENAME}} có thể được sửa đổi, thay thế, hoặc xóa bỏ bởi các thành viên khác. Nếu bạn không muốn trang của bạn bị sửa đổi không thương tiếc, đừng đăng trang ở đây.<br />\nBạn phải đảm bảo với chúng tôi rằng chính bạn là người viết nên, hoặc chép nó từ một nguồn thuộc phạm vi công cộng hoặc tự do tương đương (xem $1 để biết thêm chi tiết).\n'''ĐỪNG ĐĂNG TÁC PHẨM CÓ BẢN QUYỀN MÀ CHƯA XIN PHÉP!'''",
+       "editpage-cannot-use-custom-model": "Mẫu nội dung của trang này không thể thay.",
        "longpageerror": "'''Lỗi: Văn bạn mà bạn muốn lưu dài $1 kilôbyte, dài hơn độ dài tối đa cho phép $2 kilôbyte.'''\nKhông thể lưu trang.",
        "readonlywarning": "'''CẢNH BÁO: Cơ sở dữ liệu đã bị khóa để bảo dưỡng, do đó bạn không thể lưu các sửa đổi của mình. Bạn nên cắt-dán đoạn bạn vừa sửa vào một tập tin và lưu nó lại để sửa đổi sau này.'''\n\nBảo quản viên khi khóa dữ liệu đã đưa ra lý do: $1",
        "protectedpagewarning": "'''Cảnh báo: Trang này đã bị khóa và chỉ có các thành viên có quyền quản lý mới có thể sửa được.'''\nThông tin mới nhất trong nhật trình được ghi dưới đây để tiện theo dõi:",
        "content-model-css": "CSS",
        "content-json-empty-object": "Đối tượng trống",
        "content-json-empty-array": "Mảng trống",
+       "duplicate-args-warning": "<strong>Cảnh báo:</strong> [[:$1]] đang gọi  [[:$2]] với nhiều hơn một giá trị cho thông số \"$3\". Chỉ giá trị cuối cùng mới được sử dụng.",
        "duplicate-args-category": "Trang đưa đối số thừa vào bản mẫu",
        "duplicate-args-category-desc": "Trang đưa một đối số nhiều lần vào một bản mẫu được nhúng, thí dụ <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> hoặc <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "Cảnh báo: Trang này có quá nhiều lần gọi hàm cú pháp cần mức độ xử lý cao.\n\nNó nên ít hơn $2 {{PLURAL:$2|lần gọi|lần gọi}}, hiện giờ đang là {{PLURAL:$1|$1 lần gọi|$1 lần gọi}}.",
        "badsig": "Chữ ký không hợp lệ; hãy kiểm tra thẻ HTML.",
        "badsiglength": "Chữ ký của bạn quá dài.\nNó không được dài quá $1 ký tự.",
        "yourgender": "Bạn muốn được miêu tả như thế nào?",
-       "gender-unknown": "Tôi không muốn chỉ rõ",
+       "gender-unknown": "Khi nhắc nhở bạn, phần mềm sẽ sử dụng các từ chỉ giới tính trung tính bất cứ khi nào có thể",
        "gender-male": "Nam",
        "gender-female": "Nữ",
        "prefs-help-gender": "Tùy chỉnh này không được bắt buộc.\nPhần mềm sử dụng giá trị này để xưng hô bạn với giới tính đúng.\nThông tin này là công khai.",
        "userrights-lookup-user": "Quản lý nhóm thành viên",
        "userrights-user-editname": "Nhập tên thành viên:",
        "editusergroup": "Sửa nhóm thành viên",
-       "editinguser": "Thay đổi quyền hạn của thành viên '''[[User:$1|$1]]''' $2",
+       "editinguser": "Thay đổi quyền hạn thành viên  của {{GENDER:$1|user}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Sửa nhóm thành viên",
        "saveusergroups": "Lưu nhóm thành viên",
        "userrights-groupsmember": "Thuộc nhóm:",
        "uploaddisabledtext": "Chức năng tải tập tin đã bị tắt.",
        "php-uploaddisabledtext": "Việc tải tập tin trong PHP đã bị tắt. Xin hãy kiểm tra lại thiết lập file_uploads.",
        "uploadscripted": "Tập tin này có chứa mã HTML hoặc kịch bản có thể khiến trình duyệt web thông dịch sai.",
+       "upload-scripted-pi-callback": "Không thể tải lên một file có chứa lệnh xử lý XML-stylesheet",
+       "uploaded-setting-href-svg": "Sử dụng tag \"set\" để thêm thuộc tính \"href\" tới thành phần mẹ bị khóa.",
        "uploaded-image-filter-svg": "Tìm công cụ lọc ảnh với UPL: <Mã>&lt;$1 $2=\"$3\"&gt;</Mã> trong tập tin SVG được tải lên.",
        "uploadscriptednamespace": "Tập tin SVG này chứa không gian tên “$1” không được cho phép",
        "uploadinvalidxml": "Không thể phân tích mã XML trong tập tin tải lên.",
        "listfiles-delete": "xóa",
        "listfiles-summary": "Trang đặc biệt này liệt kê các tập tin được tải lên.",
        "listfiles_search_for": "Tìm kiếm theo tên tập tin:",
-       "listfiles-userdoesnotexist": "Tài khoản người dùng \"$ 1\" không được đăng ký.",
+       "listfiles-userdoesnotexist": "Tài khoản người dùng \"$1\" không được đăng ký.",
        "imgfile": "tập tin",
        "listfiles": "Danh sách tập tin",
        "listfiles_thumb": "Hình nhỏ",
        "nmembers": "$1 trang",
        "nmemberschanged": "$1 → $2 trang",
        "nrevisions": "$1 {{PLURAL:$1|phiên bản|phiên bản}}",
-       "nviews": "$1 {{PLURAL:$1|lượt truy cập|lượt truy cập}}",
        "nimagelinks": "Được sử dụng trong $1 trang",
        "ntransclusions": "được sử dụng trong $1 trang",
        "specialpage-empty": "Trang này đang trống.",
        "unusedimages": "Tập tin chưa dùng",
        "wantedcategories": "Thể loại cần thiết",
        "wantedpages": "Trang cần viết",
-       "wantedpages-summary": "Danh sách các trang không tồn tại có nhiều trang nhất liên kết đến, trừ các trang chỉ có trang đổi hướng đến. Xem danh sách các trang không tồn tại có trang đổi hướng đến tại [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Danh sách các trang không tồn tại có nhiều trang nhất liên kết đến, trừ các trang chỉ có trang đổi hướng đến. Xem [[{{#special:BrokenRedirects}}|danh sách các trang không tồn tại có trang đổi hướng đến]].",
        "wantedpages-badtitle": "Tiêu đề không hợp lệ trong tập kết quả: $1",
        "wantedfiles": "Tập tin cần thiết",
        "wantedfiletext-cat": "Các tập tin sau được nhúng nhưng không tồn tại. Các tập tin từ kho dùng chung có thể được liệt kê trong khi tồn tại; các trường hợp này được <del>gạch bỏ</del>. Ngoài ra, các trang nhúng tập tin không tồn tại được liệt kê tại [[:$1]].",
        "version-libraries": "Các thư viện đã cài đặt",
        "version-libraries-library": "Thư viện",
        "version-libraries-version": "Phiên bản",
+       "version-libraries-license": "Giấy phép",
+       "version-libraries-description": "Miêu tả",
+       "version-libraries-authors": "Tác giả",
        "redirect": "Đổi hướng đến tập tin, người dùng, trang, hoặc số phiên bản",
        "redirect-legend": "Đổi hướng đến tập tin hoặc trang",
        "redirect-summary": "Trang đặc biệt này đổi hướng đến một tập tin (theo tên tập tin được cho vào), trang (theo số phiên bản hoặc số trang được cho vào), hoặc trang cá nhân (theo số thành viên). Cách sử dụng: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], hoặc [[{{#Special:Redirect}}/user/101]].",
        "special-characters-group-khmer": "Khơ-me",
        "special-characters-title-endash": "dấu gạch en",
        "special-characters-title-emdash": "dấu gạch em",
-       "special-characters-title-minus": "dấu trừ"
+       "special-characters-title-minus": "dấu trừ",
+       "mw-widgets-titleinput-description-new-page": "Trang này chưa tồn tại",
+       "mw-widgets-titleinput-description-redirect": "Đổi hướng đến $4"
 }
index e5c65f6..74e3f2b 100644 (file)
        "badtitle": "שלעכט קעפל",
        "badtitletext": "דאס קעפל פון דעם געזוכטן בלאט איז געווען אומגעזעצליך, ליידיג, אן אינטערשפראך אדער אינטערוויקי לינק וואס פאסט נישט, אדער אנטהאט כאראקטערס וואס מ'קען נישט ניצן אין א קעפל.",
        "title-invalid-empty": "דער געזוכטער בלאט־קעפל איז ליידיג אדער אנטהאלט נאר דעם נאמען פון א נאמענטייל.",
+       "title-invalid-utf8": "דער געזוכטער בלאט־טיטל אנטהאלט אן אומגילטיגן UTF-8 סעקווענץ.",
        "title-invalid-interwiki": "דער געזונט ער בלאט־קעפל אנטהאלט אן אינטערוויקי־לינק, וואס מ'קען נישט ניצן אין א קעפל.",
        "title-invalid-talk-namespace": "דער געזוכטער בלאט־קעפל באציט זיך צו א שמועס־בלאט וואס קען נישט עקזעסטירן.",
        "title-invalid-characters": "דער געזוכטער בלאט־קעפל אנטהאלט אומגילטיקע צייכענען: \"$1\".",
        "passwordreset": "צוריקשטעלן פאַסווארט",
        "passwordreset-text-one": "דערגאַנצט די פאָרעם צוריקצושטעלן אײַער פאַסווארט.",
        "passwordreset-text-many": "{{PLURAL:$1|דערגאַנצט איינע פֿון די פֿעלדער כדי צו באקומען א פראוויזאריש פאַסווארט דור כן פאסט.}}",
-       "passwordreset-legend": "צוריקשטעלן פאַסווארט",
        "passwordreset-disabled": "מען האט אומאַקטיוויטר צוריקשטעלן פאַסווערטער אויף דער וויקי.",
        "passwordreset-emaildisabled": "ע-פאסט דינסטן זענען געווארן אומאקטיווירט אויף דער דאזיקער וויקי.",
        "passwordreset-username": "באַניצער נאָמען:",
        "resettokens": "צוריקזעצן טאקנס",
        "resettokens-text": "דא קענט איר צוריקשטעלן טאקנס וואס דערלויבן צוטריט צו געוויסע פריוואטע דאטן שייך צו אײַער קאנטע.\n\nYou should do it if you accidentally shared them with someone or if your account has been compromised.",
        "resettokens-no-tokens": "נישט פאראן קיין טאקנס צוריקצוזעצן.",
-       "resettokens-legend": "צוריקזעצן טאקנס",
        "resettokens-tokens": "טאקנס:",
        "resettokens-token-label": "$1 (אקטועלער ווערט: $2)",
        "resettokens-watchlist-token": "טאקן פארן וועב־פֿיד (Atom/RSS) פון [[Special:Watchlist|ענדערונגען צו בלעטער אויף אייער אויפֿפאסונג ליסטע]]",
        "badsig": "נישט גילטיקער רויער אונטערשריפט. ביטע קאנטראלירט די HTML טאַגן.",
        "badsiglength": "אונטערשריפט צו לאנג; מוז זיין ווינציגער פון {{PLURAL:$1|איין אות|$1 אותיות}}.",
        "yourgender": "וויאזוי ווילסטו זיך באשרײַבן?",
-       "gender-unknown": "×\9b\95×\95×\99×\9c ×\96×\99×\9a × ×\99ש×\98 ×\91×\90שרײַ×\91×\9f",
+       "gender-unknown": "×\91×\99×\99×\9d ×\93ער×\9e×\90× ×¢×\9f ×\90×\99×\99×\9a, ×\95×\95×¢×\98 ×\93×\90ס ×\95×\95×\99×\99×\9b×\95×\95×\90ר×\92 × ×\99צ×\9f × ×\99×\99×\98ר×\90×\9c×¢ ×\95×\95ער×\98ער ×\95×\95×¢×\9f ×\9e×¢×\92×\9c×¢×\9a",
        "gender-male": "ער רעדאקטירט וויקי בלעטער",
        "gender-female": "זי רעדאקטירט וויקי בלעטער",
        "prefs-help-gender": "שטעלן דעם פרעפֿערענץ איז אפציאנאַל.\nדאס ווייכוואַרג באניצט זיין ווערט אײַך צו אַדרעסירן און דערמאנען צו אנדערע מיטן געהעריגן מין פֿארעם. \nדי אינפֿארמאַציע ווערט ידוע צו אַלעמען.",
        "nmembers": "$1 {{PLURAL:$1|בלאט|בלעטער}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|מיטגליד|מיטגלידער}}",
        "nrevisions": "{{PLURAL:$1|איין רעוויזיע|$1 רעוויזיעס}}",
-       "nviews": "{{PLURAL:$1|איין קוק|$1 קוקן}}",
        "nimagelinks": "געניצט אויף $1 {{PLURAL:$1|בלאַט|בלעטער}}",
        "ntransclusions": "געניצט אויף $1 {{PLURAL:$1|בלאַט|בלעטער}}",
        "specialpage-empty": "דער בלאט איז ליידיג.",
index e90cb51..313add7 100644 (file)
@@ -23,7 +23,8 @@
                        "Impersonator 1",
                        "Cedric tsan cantonais",
                        "Liuxinyu970226",
-                       "Yueman"
+                       "Yueman",
+                       "CRCHF"
                ]
        },
        "tog-underline": "連結加底線:",
        "no-null-revision": "唔可以對 \"$1\" 開個新嘅空白修改",
        "badtitle": "錯嘅標題",
        "badtitletext": "要求嘅標題唔啱、空白,跨語言或者跨維基連結標題錯誤。亦可能係標題包括咗一個或多過一個字元。",
+       "title-invalid-utf8": "你訪問嘅頁有非法UTF-8嘅字符。",
        "perfcached": "以下嘅資料係嚟自快取,可能唔係最新嘅。 最多有{{PLURAL:$1|一個結果|$1個結果}}響快取度。",
        "perfcachedts": "以下嘅資料係嚟自快取,上一次嘅更新喺$1。 最多有{{PLURAL:$4|一個結果|$4個結果}}響快取度。",
        "querypage-no-updates": "響呢一頁嘅更新現時停用。啲資料將唔會即時更新。",
        "passwordreset": "密碼重設",
        "passwordreset-text-one": "填好呢份表格去申請將臨時密碼經電郵送畀你。",
        "passwordreset-text-many": "{{PLURAL:$1|填其中一欄去申請將臨時密碼經電郵送畀你。}}",
-       "passwordreset-legend": "重設密碼",
        "passwordreset-disabled": "呢個維基站無得設過密碼。",
        "passwordreset-emaildisabled": "呢個維基站無得傳送電郵。",
        "passwordreset-username": "用戶名:",
        "resettokens": "重設密匙",
        "resettokens-text": "您可以重設有關你戶口私隱資料嘅密匙。\n\n如果你唔小心洩漏密匙,或者戶口畀人入侵,就要重設密匙。",
        "resettokens-no-tokens": "呢度無密匙可以重設。",
-       "resettokens-legend": "重設密匙",
        "resettokens-tokens": "密匙:",
        "resettokens-token-label": "$1 (而家個值:$2)",
        "resettokens-watchlist-token": "訂[[Special:Watchlist|監視清單]] Atom/RSS 嘅密匙",
        "right-move": "搬版",
        "right-move-subpages": "搬版同埋佢哋嘅細版",
        "right-move-rootuserpages": "搬根用戶版",
+       "right-move-categorypages": "移走類頁",
        "right-movefile": "搬檔案",
        "right-suppressredirect": "當搬版嗰陣唔開來源頁嘅跳轉",
        "right-upload": "上載檔案",
        "nmembers": "$1 位成員",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|位成員}}",
        "nrevisions": "$1 次修訂",
-       "nviews": "$1 次瀏覽",
        "nimagelinks": "用響$1版",
        "ntransclusions": "用響$1版",
        "specialpage-empty": "呢個報告嘅結果係空嘅。",
index 0e136c5..e0228d0 100644 (file)
        "passwordreset": "重置密码",
        "passwordreset-text-one": "请输入你要重置的用户名。",
        "passwordreset-text-many": "{{PLURAL:$1|在此键入您希望接收临时密码的邮件地址。}}",
-       "passwordreset-legend": "重置密码",
        "passwordreset-disabled": "此Wiki已经禁用密码重置。",
        "passwordreset-emaildisabled": "此Wiki上无法使用邮件功能。",
        "passwordreset-username": "用户名:",
        "resettokens": "重置密钥",
        "resettokens-text": "你可以在这里重置允许访问与你的账户有关的特定私人数据的密钥。\n\n如果你意外将它们分享给他人,或是你的账户已经被入侵,你应该重置它们。",
        "resettokens-no-tokens": "没有可以重置的密钥。",
-       "resettokens-legend": "重置密钥",
        "resettokens-tokens": "密钥:",
        "resettokens-token-label": "$1(当前值:$2)",
        "resettokens-watchlist-token": "[[Special:Watchlist|对你的监视列表中的页面的更改]]的网页feed(Atom/RSS)的密钥",
        "tooltip-pt-logout": "退出登录",
        "tooltip-pt-createaccount": "建议您创建一个账户并登录,但这不是强制的",
        "tooltip-ca-talk": "关于内容页面的讨论",
-       "tooltip-ca-edit": "可以编辑本页面。请在保存前使用预览按钮",
+       "tooltip-ca-edit": "可以编辑本页面。请在保存前使用预览按钮",
        "tooltip-ca-addsection": "开始新段落",
        "tooltip-ca-viewsource": "本页面受到保护。\n您可以查看其源代码",
        "tooltip-ca-history": "本页面过去的版本",
        "watchlistedit-normal-done": "已从你的监视列表删除$1个标题:",
        "watchlistedit-raw-title": "编辑原始监视列表",
        "watchlistedit-raw-legend": "编辑原始监视列表",
-       "watchlistedit-raw-explain": "æ\82¨ç\9a\84ç\9b\91è§\86å\88\97表中ç\9a\84æ \87é¢\98å\9c¨ä¸\8bé\9d¢æ\98¾ç¤ºï¼\8cå\90\8cæ\97¶ä¹\9få\8f¯ä»¥å\8f¯ä»¥é\80\9aè¿\87ç¼\96è¾\91è¿\99个表å\8e»å\8a å\85¥ä»¥å\8f\8a移é\99¤æ \87é¢\98ï¼\9bä¸\80è¡\8cä¸\80个æ \87é¢\98ã\80\82å½\93å®\8cæ\88\90以å\90\8eï¼\8cç\82¹å\87»{{int:Watchlistedit-raw-submit}}ã\80\82æ\82¨ä¹\9få\8f¯ä»¥ä½¿ç\94¨[[Special:EditWatchlist|标准编辑器]]。",
+       "watchlistedit-raw-explain": "æ\82¨ç\9a\84ç\9b\91è§\86å\88\97表中ç\9a\84æ \87é¢\98å\9c¨ä¸\8bé\9d¢æ\98¾ç¤ºï¼\8c并å\8f¯é\80\9aè¿\87ç¼\96è¾\91此表以添å\8a æ\88\96移é\99¤æ \87é¢\98ï¼\9bæ¯\8fè¡\8cä¸\80个æ \87é¢\98ã\80\82å½\93å®\8cæ\88\90以å\90\8eï¼\8cç\82¹å\87»â\80\9c{{int:Watchlistedit-raw-submit}}â\80\9dã\80\82æ\82¨ä¹\9få\8f¯ä»¥[[Special:EditWatchlist|使ç\94¨标准编辑器]]。",
        "watchlistedit-raw-titles": "标题:",
        "watchlistedit-raw-submit": "更新监视列表",
        "watchlistedit-raw-done": "您的监视列表已经更新。",
        "version-libraries": "已安装的库",
        "version-libraries-library": "库",
        "version-libraries-version": "版本",
+       "version-libraries-license": "许可协议",
+       "version-libraries-description": "描述",
+       "version-libraries-authors": "作者",
        "redirect": "重定向(按文件、用户、页面或版本ID)",
        "redirect-legend": "重定向至文件或页面",
        "redirect-summary": "本特殊页面可以跳转至一个文件(提供文件名)、页面(提供版本ID或页面ID)或用户页面(提供数字用户ID)。用法:[[{{#Special:Redirect}}/file/Example.jpg]]、[[{{#Special:Redirect}}/page/64308]]、[[{{#Special:Redirect}}/revision/328429]]或[[{{#Special:Redirect}}/user/101]]。",
        "special-characters-group-khmer": "高棉语字母",
        "special-characters-title-endash": "短划线",
        "special-characters-title-emdash": "长划线",
-       "special-characters-title-minus": "减号"
+       "special-characters-title-minus": "减号",
+       "mw-widgets-titleinput-description-new-page": "页面不存在",
+       "mw-widgets-titleinput-description-redirect": "重定向至$1"
 }
index 6875c06..11f7300 100644 (file)
        "passwordreset": "重新設定密碼",
        "passwordreset-text-one": "完成此表單,透過電子郵件傳送臨時密碼以重新設定您的密碼。",
        "passwordreset-text-many": "{{PLURAL:$1|請完成此表單以透過電子郵件接收臨時密碼。}}",
-       "passwordreset-legend": "重設密碼",
        "passwordreset-disabled": "此 Wiki 已停用重設密碼。",
        "passwordreset-emaildisabled": "此 Wiki 已停用電子郵件功能。",
        "passwordreset-username": "使用者名稱:",
        "resettokens": "重設金鑰",
        "resettokens-text": "您可以在此重設用來存取您帳號相關隱私資料的密鑰。\n\n若您不小心將您的密鑰分享給其他人或您的帳號已遭到入侵、破壞,應該要重設此密鑰。",
        "resettokens-no-tokens": "沒有可重設的金鑰。",
-       "resettokens-legend": "重設金鑰",
        "resettokens-tokens": "金鑰:",
        "resettokens-token-label": "$1 (目前為 $2)",
        "resettokens-watchlist-token": "用來訂閱 [[Special:Watchlist|監視清單]] Atom/RSS 的密鑰",
        "trackingcategories-disabled": "已停用分類",
        "mailnologin": "沒有傳送位址",
        "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件地址才可以傳送郵件給其他使用者。",
-       "emailuser": "Email 此使用者",
+       "emailuser": "Email 聯絡此使用者",
        "emailuser-title-target": "E-mail 聯絡此{{GENDER:$1|使用者}}",
        "emailuser-title-notarget": "E-mail 聯絡使用者",
        "emailpage": "E-mail 聯絡使用者",
        "version-libraries": "已安裝的程式庫",
        "version-libraries-library": "程式庫",
        "version-libraries-version": "版本",
+       "version-libraries-license": "授權條款",
+       "version-libraries-description": "描述",
+       "version-libraries-authors": "作者",
        "redirect": "重新導向至檔案、使用者、頁面或修訂 ID",
        "redirect-legend": "重新導向至檔案或頁面",
        "redirect-summary": "此特殊頁面可用來重新導向至檔案 (指定檔案名稱)、頁面 (指定修訂 ID 或頁面 ID) 或使用者頁面 (指定使用者 ID)。用法:[[{{#Special:Redirect}}/file/Example.jpg]]、[[{{#Special:Redirect}}/page/64308]]、[[{{#Special:Redirect}}/revision/328429]] 或 [[{{#Special:Redirect}}/user/101]]。",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|已停用}}標籤 \"$4\" 供使用者與機器人使用",
        "log-name-tag": "標籤日誌",
        "log-description-tag": "當使用者自各別修訂或日誌項目加入或移除[[Special:Tags|標籤]]時會顯示於此頁面。 此日誌並不會列出當時對標籤所做的編輯、刪除或類似的動作。",
-       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|已加入}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的修訂 $4。",
-       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|已加入}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的日誌項目 $5。",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|已新增}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的修訂版本 $4。",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|已新增}}{{PLURAL:$7|標籤|標籤}} $6 至頁面 $3 的日誌項目 $5。",
        "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|已移除}}{{PLURAL:$9|標籤|標籤}} $8 自頁面 $3 的修訂 $4。",
        "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|已移除}}{{PLURAL:$9|標籤|標籤}} $8 自日誌項目 $3 的修訂 $5。",
        "logentry-tag-update-revision": "$1 {{GENDER:$2|已更新}}標籤於頁面 $3 的修訂 $4 ({{PLURAL:$7|加入}} $6; {{PLURAL:$9|移除}} $8)。",
        "special-characters-group-khmer": "高棉文",
        "special-characters-title-endash": "短破折號",
        "special-characters-title-emdash": "長破折號",
-       "special-characters-title-minus": "減號"
+       "special-characters-title-minus": "減號",
+       "mw-widgets-titleinput-description-new-page": "頁面不存在",
+       "mw-widgets-titleinput-description-redirect": "重新導向至 $1"
 }
index 6fda808..e553b7f 100644 (file)
@@ -84,7 +84,7 @@ $specialPageAliases = array(
        'Mostlinkedcategories'      => array( 'Najviše_povezane_kategorije' ),
        'Mostlinkedtemplates'       => array( 'Najviše_povezani_šabloni' ),
        'Mostrevisions'             => array( 'Najviše_uređivane_stranice' ),
-       'Movepage'                  => array( 'PreusmjeriStranicu' ),
+       'Movepage'                  => array( 'Premjesti_stranicu', 'PreusmjeriStranicu' ),
        'Mycontributions'           => array( 'MojiDoprinosi' ),
        'Mypage'                    => array( 'MojaStranica' ),
        'Mytalk'                    => array( 'MojRazgovor' ),
index b7fe80b..3e86d8a 100644 (file)
@@ -31,7 +31,7 @@ class ConvertExtensionToRegistration extends Maintenance {
         * @var array
         */
        protected $noLongerSupportedGlobals = array(
-               'SpecialPageGroups' => 'deprecated',
+               'SpecialPageGroups' => 'deprecated', // Deprecated 1.21, removed in 1.26
        );
 
        /**
index ac50d29..d029bf7 100644 (file)
@@ -25,7 +25,7 @@ require_once __DIR__ . '/../Maintenance.php';
 
 /**
  * Generates the normalizer data file for Arabic.
- * For NFC see includes/libs/normal.
+ * For NFC see includes/compat/normal.
  *
  * @ingroup MaintenanceLanguage
  */
index 8580187..770a98c 100644 (file)
@@ -25,7 +25,7 @@ require_once __DIR__ . '/../Maintenance.php';
 
 /**
  * Generates the normalizer data file for Malayalam.
- * For NFC see includes/libs/normal.
+ * For NFC see includes/compat/normal.
  *
  * @ingroup MaintenanceLanguage
  */
index 6f2dd39..a3ea91c 100644 (file)
@@ -58,7 +58,9 @@
 堂姊 堂姐
 學姊 学姐
 乾姊 干姐
+清澈 清澈 #分詞用
 澈底 彻底
+仲介 中介
 卯足 铆足
 逕庭 径庭
 逕到 径到
@@ -2662,8 +2664,8 @@ A型肝炎        甲型肝炎
 電腦程式   计算机程序
 應用程式   应用程序
 雷射 激光
-鱼雷射      鱼雷射
-魚雷射      鱼雷射
+鱼雷 鱼雷 #分詞用
+魚雷 鱼雷
 尖峰時間   高峰时间
 尖峰時段   高峰时段
 咖哩 咖喱
index 6e3a7b5..61ffc4d 100644 (file)
 冲着 衝著
 干着 幹著
 干着急      干著急
+对着干      對著幹
 斗着 鬥著
 面包着      面包著
 徵狀 症狀
index 464f455..bc4bff8 100644 (file)
 乾村沙
 乾暖
 乾料
-乾敲梆子不賣油
 乾支支
 乾支剌
 乾擦
 幹人
 乾產
 乾喬
-夯幹
 大目乾連
 國之楨榦
 唇乾
 顛乾倒坤
 強幹
 乾眼
-幹的停當
 井幹
 乾巴
 偎乾
 臧穀亡羊
 種穀
 颳雪
-刮風下雪倒便宜
 广部
-亂鬨不過來
+亂鬨
 斗鬨
-亂鬨
 開鬨
 花鬨
 鬨動
 印纍綬若
 灕湘
 灕然
¾¤æ»²ç\81\95è\80\8cä¸\8bé\99\8d
»²ç\81\95
 裏勾外連
 水里溪
 二里頭
 擀麵
 過水麵
 蕎麥麵
-巧婦做不得無麵餺飥
 削麵
 小米麵
 壯麵
 麵點師
 麵點、
 、麵點
+麵製品
 冷面相
 糞穢衊面
 僕僕
 鬆元音
 鬆喉
 鬆化
+很鬆
 囉囉囌囌
 囉囌
 骨罈
 幹事
 幹什麼
 幹細胞
-配水幹管
 口燥唇乾
 舌乾唇焦
 不食乾腊
 乾物
 乾食
 乾鍋
+自乾五
+不乾膠
 楨幹
 新幹縣
 誰幹的
+他幹的
+們幹的
+人幹的
+幹的事
+幹的好事
 得力幹將
 黑幹將
 的幹將
+幹大事
+對着幹
 李連杰
 周杰
 杰倫
 鬥獸
 鬥龍
 鬥勇
+鬥狗
+鬥蛐
+鬥垮
+鬥敗
 石樑
 木樑
 藏歷史
 母醜
 一齣子
 齣兒
-獃串了皮
-占便宜的是獃
 丰標
 丰姿
 丰韻
 仲裁制
 獨裁制
 恒生
+恒基
+恒隆
 嚴云農
 伊東怜
 衛後莊公
 留長髮
 髮披肩
 髮及腰
+飄髮自由女神
 後天
 學家
 游離
 誇稱
 誇讚
 讚嘆
-繼承制
 布穀鳥
 黎克特制
 筆桿
 麻將蓆
 被廢後
 蒸製
+烹製
 體徵
 綜合徵
 价川
 菜餚
 梁啓超
 改制成
+王添灯
diff --git a/maintenance/populateContentModel.php b/maintenance/populateContentModel.php
new file mode 100644 (file)
index 0000000..3f5d6b6
--- /dev/null
@@ -0,0 +1,207 @@
+<?php
+/**
+ * Populate the page_content_model and {rev,ar}_content_{model,format} fields.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ */
+
+require_once __DIR__ . '/Maintenance.php';
+
+/**
+ * Usage:
+ *  populateContentModel.php --ns=1 --table=page
+ */
+class PopulateContentModel extends Maintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = 'Populate the various content_* fields';
+               $this->addOption( 'ns', 'Namespace to run in, or "all" for all namespaces', true, true );
+               $this->addOption( 'table', 'Table to run in', true, true );
+               $this->setBatchSize( 100 );
+       }
+
+       public function execute() {
+               $dbw = wfGetDB( DB_MASTER );
+               $ns = $this->getOption( 'ns' );
+               if ( !ctype_digit( $ns ) && $ns !== 'all' ) {
+                       $this->error( 'Invalid namespace', 1 );
+               }
+               $ns = $ns === 'all' ? 'all' : (int)$ns;
+               $table = $this->getOption( 'table' );
+               switch ( $table ) {
+                       case 'revision':
+                       case 'archive':
+                               $this->populateRevisionOrArchive( $dbw, $table, $ns );
+                               break;
+                       case 'page':
+                               $this->populatePage( $dbw, $ns );
+                               break;
+                       default:
+                               $this->error( "Invalid table name: $table", 1 );
+               }
+       }
+
+       private function updatePageRows( DatabaseBase $dbw, $pageIds, $model ) {
+               $count = count( $pageIds );
+               $this->output( "Setting $count rows to $model..." );
+               $dbw->update(
+                       'page',
+                       array( 'page_content_model' => $model ),
+                       array( 'page_id' => $pageIds ),
+                       __METHOD__
+               );
+               wfWaitForSlaves();
+               $this->output( "done.\n" );
+       }
+
+       protected function populatePage( DatabaseBase $dbw, $ns ) {
+               $toSave = array();
+               $lastId = 0;
+               $nsCondition = $ns === 'all' ? array() : array( 'page_namespace' => $ns );
+               do {
+                       $rows = $dbw->select(
+                               'page',
+                               array( 'page_namespace', 'page_title', 'page_id' ),
+                               array(
+                                       'page_content_model' => null,
+                                       'page_id > ' . $dbw->addQuotes( $lastId ),
+                               ) + $nsCondition,
+                               __METHOD__,
+                               array( 'LIMIT' => $this->mBatchSize, 'ORDER BY' => 'page_id ASC' )
+                       );
+                       $this->output( "Fetched {$rows->numRows()} rows.\n" );
+                       foreach ( $rows as $row ) {
+                               $title = Title::newFromRow( $row );
+                               $model = ContentHandler::getDefaultModelFor( $title );
+                               $toSave[$model][] = $row->page_id;
+                               if ( count( $toSave[$model] ) >= $this->mBatchSize ) {
+                                       $this->updatePageRows( $dbw, $toSave[$model], $model );
+                                       unset( $toSave[$model] );
+                               }
+                               $lastId = $row->page_id;
+                       }
+               } while ( $rows->numRows() >= $this->mBatchSize );
+               foreach ( $toSave as $model => $pages ) {
+                       $this->updatePageRows( $dbw, $pages, $model );
+               }
+       }
+
+       private function updateRevisionOrArchiveRows( DatabaseBase $dbw, $ids, $model, $table ) {
+               $prefix = $table === 'archive' ? 'ar' : 'rev';
+               $model_column = "{$prefix}_content_model";
+               $format_column = "{$prefix}_content_format";
+               $key = "{$prefix}_id";
+
+               $count = count( $ids );
+               $format = ContentHandler::getForModelID( $model )->getDefaultFormat();
+               $this->output( "Setting $count rows to $model / $format..." );
+               $dbw->update(
+                       $table,
+                       array( $model_column => $model, $format_column => $format ),
+                       array( $key => $ids ),
+                       __METHOD__
+               );
+               $this->output( "done.\n" );
+       }
+
+       protected function populateRevisionOrArchive( DatabaseBase $dbw, $table, $ns ) {
+               $prefix = $table === 'archive' ? 'ar' : 'rev';
+               $model_column = "{$prefix}_content_model";
+               $format_column = "{$prefix}_content_format";
+               $key = "{$prefix}_id";
+               if ( $table === 'archive' ) {
+                       $selectTables = 'archive';
+                       $fields = array( 'ar_namespace', 'ar_title' );
+                       $join_conds = array();
+                       $where = $ns === 'all' ? array() : array( 'ar_namespace' => $ns );
+               } else { // revision
+                       $selectTables = array( 'revision', 'page' );
+                       $fields = array( 'page_title', 'page_namespace' );
+                       $join_conds = array( 'page' => array( 'INNER JOIN', 'rev_page=page_id' ) );
+                       $where = $ns === 'all' ? array() : array( 'page_namespace' => $ns );
+               }
+
+               $toSave = array();
+               $lastId = 0;
+               do {
+                       $rows = $dbw->select(
+                               $selectTables,
+                               array_merge( $fields, array( $model_column, $format_column, $key ) ),
+                               // @todo support populating format if model is already set
+                               array(
+                                       $model_column => null,
+                                       "$key > " . $dbw->addQuotes( $lastId ),
+                               ) + $where,
+                               __METHOD__,
+                               array( 'LIMIT' => $this->mBatchSize, 'ORDER BY' => "$key ASC" ),
+                               $join_conds
+                       );
+                       $this->output( "Fetched {$rows->numRows()} rows.\n" );
+                       foreach ( $rows as $row ) {
+                               if ( $table === 'archive' ) {
+                                       $title = Title::makeTitle( $row->ar_namespace, $row->ar_title );
+                               } else {
+                                       $title = Title::newFromRow( $row );
+                               }
+                               $lastId = $row->{$key};
+                               try {
+                                       $handler = ContentHandler::getForTitle( $title );
+                               } catch ( MWException $e ) {
+                                       $this->error( "Invalid content model for $title" );
+                                       continue;
+                               }
+                               $defaultModel = $handler->getModelID();
+                               $defaultFormat = $handler->getDefaultFormat();
+                               $dbModel = $row->{$model_column};
+                               $dbFormat = $row->{$format_column};
+                               $id = $row->{$key};
+                               if ( $dbModel === null && $dbFormat === null ) {
+                                       // Set the defaults
+                                       $toSave[$defaultModel][] = $row->{$key};
+                               } else { // $dbModel === null, $dbFormat set.
+                                       if ( $dbFormat === $defaultFormat ) {
+                                               $toSave[$defaultModel][] = $row->{$key};
+                                       } else { // non-default format, just update now
+                                               $this->output( "Updating model to match format for $table $id of $title... ");
+                                               $dbw->update(
+                                                       $table,
+                                                       array( $model_column => $defaultModel ),
+                                                       array( $key => $id ),
+                                                       __METHOD__
+                                               );
+                                               wfWaitForSlaves();
+                                               $this->output( "done.\n" );
+                                               continue;
+                                       }
+                               }
+
+                               if ( count( $toSave[$defaultModel] ) >= $this->mBatchSize ) {
+                                       $this->updateRevisionOrArchiveRows( $dbw, $toSave[$defaultModel], $defaultModel, $table );
+                                       unset( $toSave[$defaultModel] );
+                               }
+                       }
+               } while ( $rows->numRows() >= $this->mBatchSize );
+               foreach ( $toSave as $model => $ids ) {
+                       $this->updateRevisionOrArchiveRows( $dbw, $ids, $model, $table );
+               }
+       }
+}
+
+$maintClass = 'PopulateContentModel';
+require_once RUN_MAINTENANCE_IF_MAIN;
index 3bb722e..452b53c 100755 (executable)
@@ -4,7 +4,6 @@
  * Run all updaters.
  *
  * This is used when the database schema is modified and we need to apply patches.
- * It is kept compatible with php 4 parsing so that it can give out a meaningful error.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -62,8 +61,7 @@ class UpdateMediaWiki extends Maintenance {
        }
 
        function compatChecks() {
-               // Avoid syntax error in PHP4
-               $minimumPcreVersion = constant( 'Installer::MINIMUM_PCRE_VERSION' );
+               $minimumPcreVersion = Installer::MINIMUM_PCRE_VERSION;
 
                list( $pcreVersion ) = explode( ' ', PCRE_VERSION, 2 );
                if ( version_compare( $pcreVersion, $minimumPcreVersion, '<' ) ) {
@@ -174,7 +172,7 @@ class UpdateMediaWiki extends Maintenance {
                        $child = $this->runChild( $maint );
 
                        // LoggedUpdateMaintenance is checking the updatelog itself
-                       $isLoggedUpdate = is_a( $child, 'LoggedUpdateMaintenance' );
+                       $isLoggedUpdate = $child instanceof LoggedUpdateMaintenance;
 
                        if ( !$isLoggedUpdate && $updater->updateRowExists( $maint ) ) {
                                continue;
index d75c8a1..bd9788e 100644 (file)
@@ -963,10 +963,6 @@ return array(
                        'colon-separator',
                ),
        ),
-       'mediawiki.htmlform.ooui' => array(
-               'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.js',
-               'dependencies' => 'oojs-ui',
-       ),
        'mediawiki.htmlform.ooui.styles' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.htmlform.ooui.css',
                'position' => 'top',
@@ -1735,6 +1731,7 @@ return array(
                'scripts' => array(
                        'resources/src/mediawiki.widgets/mw.widgets.js',
                        'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.js',
+                       'resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js',
                ),
                'skinStyles' => array(
                        'default' => 'resources/src/mediawiki.widgets/mw.widgets.TitleInputWidget.css',
@@ -1745,7 +1742,8 @@ return array(
                        'oojs-ui',
                ),
                'messages' => array(
-                       // …
+                       'mw-widgets-titleinput-description-new-page',
+                       'mw-widgets-titleinput-description-redirect',
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
index d6a06bb..fe6e997 100644 (file)
@@ -4,17 +4,20 @@
                        "An13sa",
                        "Unai Fdz. de Betoño",
                        "Xabier Armendaritz",
-                       "Subi"
+                       "Subi",
+                       "Sator"
                ]
        },
        "ooui-outline-control-move-down": "Mugitu itema beherantz",
        "ooui-outline-control-move-up": "Mugitu itema gorantz",
+       "ooui-outline-control-remove": "Elementua kendu",
        "ooui-toolbar-more": "Gehiago",
        "ooui-toolgroup-expand": "Gehiago",
        "ooui-toolgroup-collapse": "Gutxiago",
        "ooui-dialog-message-accept": "Ados",
        "ooui-dialog-message-reject": "Utzi",
        "ooui-dialog-process-error": "Zerbaitek huts egin du",
+       "ooui-dialog-process-dismiss": "Utzi",
        "ooui-dialog-process-retry": "Saiatu berriro",
        "ooui-dialog-process-continue": "Jarraitu",
        "ooui-selectfile-placeholder": "Ez da fitxategirik hautatu"
index 3fb4110..d00254c 100644 (file)
@@ -27,5 +27,7 @@
        "ooui-dialog-process-error": "Jokin meni pieleen",
        "ooui-dialog-process-dismiss": "Hylkää",
        "ooui-dialog-process-retry": "Yritä uudelleen",
-       "ooui-dialog-process-continue": "Jatka"
+       "ooui-dialog-process-continue": "Jatka",
+       "ooui-selectfile-not-supported": "Tiedoston valitsemista ei tueta",
+       "ooui-selectfile-placeholder": "Tiedostoa ei ole valittu"
 }
diff --git a/resources/lib/oojs-ui/i18n/hrx.json b/resources/lib/oojs-ui/i18n/hrx.json
new file mode 100644 (file)
index 0000000..1534af7
--- /dev/null
@@ -0,0 +1,12 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Midnight Gambler"
+               ]
+       },
+       "ooui-toolbar-more": "Meahr",
+       "ooui-toolgroup-expand": "Meahr",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Abbreche",
+       "ooui-dialog-process-dismiss": "Ausblenne"
+}
index a2bdbd5..94b4687 100644 (file)
@@ -11,5 +11,6 @@
        "ooui-dialog-message-accept": "Baş e",
        "ooui-dialog-message-reject": "Betal bike",
        "ooui-dialog-process-retry": "Dîsa hewl bide",
-       "ooui-dialog-process-continue": "Bidomîne"
+       "ooui-dialog-process-continue": "Bidomîne",
+       "ooui-selectfile-placeholder": "Ti dosye nehatiye hilbijartin"
 }
index 9e77392..9e2d8f2 100644 (file)
@@ -21,5 +21,6 @@
        "ooui-dialog-process-error": "Noe gikk galt",
        "ooui-dialog-process-dismiss": "Lukk",
        "ooui-dialog-process-retry": "Prøv igjen",
-       "ooui-dialog-process-continue": "Fortsett"
+       "ooui-dialog-process-continue": "Fortsett",
+       "ooui-selectfile-placeholder": "Ingen fil er valgt"
 }
index d499427..c2422ba 100644 (file)
@@ -25,5 +25,6 @@
        "ooui-dialog-process-error": "Något gick fel",
        "ooui-dialog-process-dismiss": "Stäng",
        "ooui-dialog-process-retry": "Försök igen",
-       "ooui-dialog-process-continue": "Fortsätt"
+       "ooui-dialog-process-continue": "Fortsätt",
+       "ooui-selectfile-placeholder": "Ingen fil är vald"
 }
index 81ad9a9..d328e6e 100644 (file)
@@ -1,16 +1,21 @@
 {
        "@metadata": {
                "authors": [
-                       "Deryck Chan"
+                       "Deryck Chan",
+                       "William915"
                ]
        },
        "ooui-outline-control-move-down": "向下搬",
        "ooui-outline-control-move-up": "向上搬",
        "ooui-outline-control-remove": "拎走",
        "ooui-toolbar-more": "仲有...",
+       "ooui-toolgroup-expand": "更多",
        "ooui-dialog-message-accept": "好",
        "ooui-dialog-message-reject": "取消",
        "ooui-dialog-process-error": "唔對路",
        "ooui-dialog-process-dismiss": "閂咗佢",
-       "ooui-dialog-process-retry": "再試過"
+       "ooui-dialog-process-retry": "再試過",
+       "ooui-dialog-process-continue": "繼續",
+       "ooui-selectfile-not-supported": "未有文件選擇功能",
+       "ooui-selectfile-placeholder": "無揀到文件"
 }
index dcdf950..37c88af 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.6
+ * OOjs UI v0.11.7
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-23T21:49:41Z
+ * Date: 2015-07-01T19:04:35Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        border: none;
        background: none;
 }
-.oo-ui-toolbar-actions > .oo-ui-buttonElement {
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-framed,
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-framed:last-child {
        margin-top: 0.4em;
        margin-bottom: 0.4em;
-}
-.oo-ui-toolbar-actions > .oo-ui-buttonElement:last-child {
        margin-right: 0.5em;
 }
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless.oo-ui-labelElement,
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless:last-child.oo-ui-labelElement {
+       margin: 0;
+}
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button,
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless:last-child.oo-ui-labelElement > .oo-ui-buttonElement-button {
+       margin: 0;
+       padding: 1.1953125em 0.3125em;
+}
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label,
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless:last-child.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       margin: 0 1em;
+}
 .oo-ui-toolbar-shadow {
        background-image: /* @embed */ url(themes/apex/images/toolbar-shadow.png);
        bottom: -9px;
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em 0 0.75em 0.75em;
+       margin: 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
        padding: 0 1em;
        vertical-align: middle;
+       /* Adjust for border so text aligns with title */
+       margin: -1px;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-frameless {
+       margin: 0;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-buttonElement-button {
+       padding: 0.75em 1em;
+       vertical-align: middle;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
        background-color: rgba(0, 0, 0, 0.1);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       /* Adjust for border so text aligns with title */
-       margin: -1px;
-}
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
        background-color: rgba(8, 126, 204, 0.05);
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
        background-color: rgba(212, 83, 83, 0.1);
 }
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement {
+       margin-right: 0;
+}
 .oo-ui-processDialog > .oo-ui-window-frame {
        min-height: 5em;
 }
index 3212616..a9756a1 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.6
+ * OOjs UI v0.11.7
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-23T21:49:33Z
+ * Date: 2015-07-01T19:04:28Z
  */
 /**
  * @class
index 64b9827..30b58e6 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.6
+ * OOjs UI v0.11.7
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-23T21:49:41Z
+ * Date: 2015-07-01T19:04:35Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        width: 1.875em;
        height: 1.875em;
 }
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ) > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.2);
        outline: none;
 }
-.oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ) > .oo-ui-buttonElement-button .oo-ui-indicatorElement-indicator {
        margin-right: 0;
 }
-.oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        margin-left: 0.25em;
        margin-right: 0.25em;
 }
-.oo-ui-buttonElement-frameless > input.oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ) > input.oo-ui-buttonElement-button {
        padding-left: 0.25em;
        padding-right: 0.25em;
        color: #333333;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > input.oo-ui-buttonElement-button,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled > input.oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #555555;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > input.oo-ui-buttonElement-button,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-buttonElement-pressed > input.oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #444444;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
        color: #347bff;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #1f4999;
        box-shadow: none;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
        color: #00af89;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #005946;
        box-shadow: none;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
        color: #d11d13;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #777777;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
-.oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #73100a;
        box-shadow: none;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        color: #cccccc;
 }
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
-.oo-ui-buttonElement-frameless.oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
+.oo-ui-buttonElement-frameless:not( .oo-ui-flaggedElement-primary ).oo-ui-widget-disabled > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        opacity: 0.2;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
        margin: 0.1em 0;
        padding: 0.2em 0.8em;
        border-radius: 2px;
+}
+.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
+.oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       line-height: 1.875em;
+}
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
+       border: 1px solid #dddddd;
+}
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
+       border: 1px solid #cdcdcd;
+}
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button {
        -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
           -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
            -ms-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
                transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:hover,
-.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-framed > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary > .oo-ui-buttonElement-button:focus {
        outline: none;
 }
-.oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
-.oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       line-height: 1.875em;
-}
-.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+.oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
        margin-left: -0.5em;
        margin-right: -0.5em;
 }
-.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
+.oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
        margin-right: 0.3em;
 }
-.oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        /* -0.5 - 0.475 */
        margin-left: -0.005em;
        margin-right: -0.005em;
 }
 .oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
-.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
        margin-left: 0.46875em;
        margin-right: -0.275em;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        color: #ffffff;
        background: #dddddd;
-       border: 1px solid #dddddd;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
        color: #555555;
        background-color: #ffffff;
-       border: 1px solid #cdcdcd;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
        background-color: #ebebeb;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        background-color: #d9d9d9;
        border-color: #d9d9d9;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
        color: #347bff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
        background-color: rgba(52, 123, 255, 0.1);
        border-color: rgba(31, 73, 153, 0.5);
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #1f4999;
        border-color: #1f4999;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #1f4999;
        border-color: #1f4999;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
        color: #00af89;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
        background-color: rgba(0, 171, 137, 0.1);
        border-color: rgba(0, 89, 70, 0.5);
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #005946;
        border-color: #005946;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #005946;
        border-color: #005946;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
        color: #d11d13;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
        background-color: rgba(209, 29, 19, 0.1);
        border-color: rgba(115, 16, 10, 0.5);
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #73100a;
        border-color: #73100a;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #73100a;
        border-color: #73100a;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
        color: #ffffff;
        background-color: #347bff;
        border-color: #347bff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
        background: #2962cc;
        border-color: #2962cc;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #ffffff;
        border-color: #347bff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
        background-color: #1f4999;
        border-color: #1f4999;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button {
        color: #ffffff;
        background-color: #00af89;
        border-color: #00af89;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover {
        background: #008064;
        border-color: #008064;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #ffffff;
        border-color: #00af89;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
        background-color: #005946;
        border-color: #005946;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-constructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button {
        color: #ffffff;
        background-color: #d11d13;
        border-color: #d11d13;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover {
        background: #8c130d;
        border-color: #8c130d;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px #ffffff;
        border-color: #d11d13;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
        background-color: #73100a;
        border-color: #73100a;
        box-shadow: none;
 }
-.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
+.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button,
+.oo-ui-buttonElement-frameless.oo-ui-flaggedElement-primary.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        background-color: #999999;
        color: #ffffff;
 }
        background: none;
        box-shadow: none;
 }
-.oo-ui-toolbar-actions > .oo-ui-buttonElement {
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-framed,
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-framed:last-child {
        margin-top: 0.25em;
        margin-bottom: 0.25em;
-}
-.oo-ui-toolbar-actions > .oo-ui-toolbar,
-.oo-ui-toolbar-actions > .oo-ui-buttonElement:last-child {
        margin-right: 0.5em;
 }
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless.oo-ui-labelElement {
+       margin: 0;
+}
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button {
+       padding: 1.0546875em 0.3125em;
+}
+.oo-ui-toolbar-actions > .oo-ui-buttonElement-frameless.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
+       margin: 0 1em;
+}
 .oo-ui-optionWidget {
        position: relative;
        display: block;
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em 0 0.75em 0.75em;
+       margin: 0.75em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
        padding: 0 1em;
        vertical-align: middle;
+       /* Adjust for border so text aligns with title */
+       margin: -1px;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-frameless {
+       margin: 0;
+}
+.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-buttonElement-button,
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-frameless .oo-ui-buttonElement-button {
+       padding: 0.75em 1em;
+       vertical-align: middle;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:hover {
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget:active {
        background-color: rgba(0, 0, 0, 0.1);
 }
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em;
-}
-.oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
-.oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       /* Adjust for border so text aligns with title */
-       margin: -1px;
-}
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-progressive:hover {
        background-color: rgba(8, 126, 204, 0.05);
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-flaggedElement-destructive:active {
        background-color: rgba(212, 83, 83, 0.1);
 }
+.oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement {
+       margin-right: 0;
+}
 .oo-ui-processDialog > .oo-ui-window-frame {
        min-height: 5em;
 }
index 15cffdc..b20b5c9 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.6
+ * OOjs UI v0.11.7
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-23T21:49:33Z
+ * Date: 2015-07-01T19:04:28Z
  */
 /**
  * @class
@@ -44,7 +44,10 @@ OO.ui.MediaWikiTheme.prototype.getElementClasses = function ( element ) {
 
        if ( element.supports( [ 'hasFlag' ] ) ) {
                isFramed = element.supports( [ 'isFramed' ] ) && element.isFramed();
-               if ( isFramed && ( element.isDisabled() || element.hasFlag( 'primary' ) ) ) {
+               if (
+                       ( isFramed && ( element.isDisabled() || element.hasFlag( 'primary' ) ) ) ||
+                       ( !isFramed && element.hasFlag( 'primary' ) )
+               ) {
                        variants.invert = true;
                } else {
                        variants.progressive = element.hasFlag( 'progressive' );
index 218acf3..b53a88e 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.11.6
+ * OOjs UI v0.11.7
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-06-23T21:49:33Z
+ * Date: 2015-07-01T19:04:28Z
  */
 ( function ( OO ) {
 
@@ -11517,7 +11517,8 @@ OO.ui.mixin.ItemWidget.prototype.setElementGroup = function ( group ) {
 /**
  * OutlineControlsWidget is a set of controls for an {@link OO.ui.OutlineSelectWidget outline select widget}.
  * Controls include moving items up and down, removing items, and adding different kinds of items.
- * ####Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.####
+ *
+ * **Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.**
  *
  * @class
  * @extends OO.ui.Widget
@@ -14707,6 +14708,7 @@ OO.ui.OptionWidget = function OoUiOptionWidget( config ) {
        this.$element
                .data( 'oo-ui-optionWidget', this )
                .attr( 'role', 'option' )
+               .attr( 'aria-selected', 'false' )
                .addClass( 'oo-ui-optionWidget' )
                .append( this.$label );
 };
@@ -17258,7 +17260,7 @@ OO.ui.TextInputMenuSelectWidget.prototype.position = function () {
  * OutlineSelectWidget is a structured list that contains {@link OO.ui.OutlineOptionWidget outline options}
  * A set of controls can be provided with an {@link OO.ui.OutlineControlsWidget outline controls} widget.
  *
- * ####Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.####
+ * **Currently, this class is only used by {@link OO.ui.BookletLayout booklet layouts}.**
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -17292,7 +17294,7 @@ OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.mixin.TabIndexedElement );
 /**
  * TabSelectWidget is a list that contains {@link OO.ui.TabOptionWidget tab options}
  *
- * ####Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}.####
+ * **Currently, this class is only used by {@link OO.ui.IndexLayout index layouts}.**
  *
  * @class
  * @extends OO.ui.SelectWidget
index bc9d4fd..74cf62b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png differ
index 33fb468..855b7b8 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <path d="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6L13.5 5h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6L7.4 6.3 5.3 8.4l1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zM12 16c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
+    <path d="M20 13.44v-2.88l-1.8-.3c-.1-.397-.3-.794-.6-1.39l1.1-1.49-2.1-2.088-1.5 1.093c-.5-.298-1-.497-1.4-.596L13.5 4h-2.9l-.3 1.79c-.5.098-.9.297-1.4.595L7.4 5.292 5.3 7.38l1 1.49c-.3.496-.4.894-.6 1.39l-1.7.2v2.882l1.8.298c.1.497.3.894.6 1.39l-1 1.492 2.1 2.087 1.5-.995c.4.2.9.397 1.4.596l.3 1.79h3l.3-1.79c.5-.098.9-.297 1.4-.595l1.5 1.093L19 16.62l-1.1-1.49c.3-.496.5-.993.6-1.39l1.5-.3zm-8 1.492c-1.7 0-3-1.292-3-2.982 0-1.69 1.3-2.98 3-2.98s3 1.29 3 2.98-1.3 2.982-3 2.982z"/>
 </svg>
index 6c1a068..c486b98 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png differ
index 3159624..cdf07b2 100644 (file)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <path d="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6L13.5 5h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6L7.4 6.3 5.3 8.4l1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zM12 16c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
+    <path d="M20 13.44v-2.88l-1.8-.3c-.1-.397-.3-.794-.6-1.39l1.1-1.49-2.1-2.088-1.5 1.093c-.5-.298-1-.497-1.4-.596L13.5 4h-2.9l-.3 1.79c-.5.098-.9.297-1.4.595L7.4 5.292 5.3 7.38l1 1.49c-.3.496-.4.894-.6 1.39l-1.7.2v2.882l1.8.298c.1.497.3.894.6 1.39l-1 1.492 2.1 2.087 1.5-.995c.4.2.9.397 1.4.596l.3 1.79h3l.3-1.79c.5-.098.9-.297 1.4-.595l1.5 1.093L19 16.62l-1.1-1.49c.3-.496.5-.993.6-1.39l1.5-.3zm-8 1.492c-1.7 0-3-1.292-3-2.982 0-1.69 1.3-2.98 3-2.98s3 1.29 3 2.98-1.3 2.982-3 2.982z"/>
 </svg>
index 2d68457..db983a7 100644 (file)
 // Button styling
 // ----------------------------------------------------------------------------
 
-.button-colors(@bgColor) {
+.button-colors(@bgColor, @highlightColor) {
        background: @bgColor;
 
        &:hover {
                // The inner bottom bevel should match the active background color.
                box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
-               border-bottom-color: mix(#000, @bgColor, 20%);
+               border-bottom-color: @highlightColor;
        }
 
        &:focus {
 
        &:active,
        &.mw-ui-checked {
-               // lessphp doesn't implement shade (https://github.com/leafo/lessphp/issues/528);
-               // it passes it through, then ResourceLoader drops it.
-               // background: shade(@bgColor, 20%);
-               background: mix(#000, @bgColor, 20%);
+               background: @highlightColor;
                box-shadow: none;
        }
 }
 
-.button-colors(@bgColor) when (lightness(@bgColor) >= 70%) {
+.button-colors(@bgColor, @highlightColor) when (lightness(@bgColor) >= 70%) {
        color: @colorButtonText;
        border: 1px solid @colorGray12;
 
@@ -86,7 +83,7 @@
        }
 }
 
-.button-colors(@bgColor) when (lightness(@bgColor) < 70%) {
+.button-colors(@bgColor, @highlightColor) when (lightness(@bgColor) < 70%) {
        color: #fff;
        // border of the same color as background so that light background and
        // dark background buttons are the same height and width
        }
 }
 
-.button-colors-quiet(@textColor) {
+.button-colors-quiet(@textColor, @highlightColor) {
        // Quiet buttons all start gray, and reveal
        // constructive/progressive/destructive color on hover and active.
        color: @colorButtonText;
 
        &:active,
        &.mw-ui-checked {
-               // lessphp doesn't implement shade, see above
-               // color: shade(@textColor, 20%);
-               color: mix(#000, @textColor, 20%);
+               color: @highlightColor;
        }
 
        &:disabled {
index f6bf382..8ffc6ed 100644 (file)
 // Semantic background colors
 // Blue; for contextual use of a continuing action
 @colorProgressive: #347bff;
+@colorProgressiveHighlight: #2962CC;
 // Green; for contextual use of a positive finalizing action
 @colorConstructive: #00af89;
+@colorConstructiveHighlight: #008C6D;
 // Orange; for contextual use of returning to a past action
 @colorRegressive: #FF5D00;
 // Red; for contextual use of a negative action of high severity
 @colorDestructive: #d11d13;
+@colorDestructiveHighlight: #A7170F;
 // Orange; for contextual use of a potentially negative action of medium severity
 @colorMediumSevere: #FF5D00;
 // Yellow; for contextual use of a potentially negative action of low severity
@@ -41,6 +44,7 @@
 @colorText: @colorGray2;
 @colorTextLight: @colorGray6;
 @colorButtonText: @colorGray5;
+@colorButtonTextHighlight: @colorGray7;
 @colorDisabledText: @colorGray12;
 @colorErrorText: #CC0000;
 
index 36eb9d4..3a8e0e7 100644 (file)
                }
                $nodes.updateTooltipAccessKeys();
 
+               // Infuse OOUI widgets, if any are present
+               $nodes = $( '[data-ooui]' );
+               if ( $nodes.length ) {
+                       mw.loader.using( 'mediawiki.widgets' ).done( function () {
+                               // HACK: OO.ui.infuse assumes all widgets are in the OO.ui. namespace
+                               $.extend( OO.ui, mw.widgets );
+                               $nodes.each( function () {
+                                       OO.ui.infuse( this );
+                               } );
+                       } );
+               }
+
        } );
 
 }( mediaWiki, jQuery ) );
index 9c59fc1..cbc97ab 100644 (file)
@@ -194,11 +194,14 @@ code {
        padding: 1px 4px;
 }
 
-pre, .mw-code {
+pre,
+.mw-code {
        color: black;
        background-color: #f9f9f9;
        border: 1px solid #ddd;
        padding: 1em;
+       /* Wrap lines in overflow. T2260, T103780 */
+       white-space: pre-wrap;
 }
 
 /* Tables */
index b4efa9a..5b259e7 100644 (file)
@@ -1,7 +1,8 @@
 /*!
  * Styling for Special:Version
  */
-.mw-version-ext-name {
+.mw-version-ext-name,
+.mw-version-library-name {
        font-weight: bold;
 }
 
index f88f3ee..53e13b7 100644 (file)
@@ -47,7 +47,7 @@
        zoom: 1;
 
        // Container styling
-       .button-colors(#FFF);
+       .button-colors(#FFF, #CCC);
        border-radius: @borderRadius;
        min-width: 4em;
 
        // Styleguide 2.1.1.
        &.mw-ui-progressive,
        &.mw-ui-primary {
-               .button-colors(@colorProgressive);
+               .button-colors(@colorProgressive, @colorProgressiveHighlight);
 
                &.mw-ui-quiet {
-                       .button-colors-quiet(@colorProgressive);
+                       .button-colors-quiet(@colorProgressive, @colorProgressiveHighlight);
                }
        }
 
        //
        // Styleguide 2.1.2.
        &.mw-ui-constructive {
-               .button-colors(@colorConstructive);
+               .button-colors(@colorConstructive, @colorConstructiveHighlight);
 
                &.mw-ui-quiet {
-                       .button-colors-quiet(@colorConstructive);
+                       .button-colors-quiet(@colorConstructive, @colorConstructiveHighlight);
                }
        }
 
        //
        // Styleguide 2.1.3.
        &.mw-ui-destructive {
-               .button-colors(@colorDestructive);
+               .button-colors(@colorDestructive, @colorDestructiveHighlight);
 
                &.mw-ui-quiet {
-                       .button-colors-quiet(@colorDestructive);
+                       .button-colors-quiet(@colorDestructive, @colorDestructiveHighlight);
                }
        }
 
                background: transparent;
                border: none;
                text-shadow: none;
-               .button-colors-quiet(@colorButtonText);
+               .button-colors-quiet(@colorButtonText, @colorButtonTextHighlight);
 
                &:hover,
                &:focus {
index 0065f70..2c24b2b 100644 (file)
@@ -1,10 +1,57 @@
 /*!
- * MediaWiki Widgets  TitleInputWidget styles.
+ * MediaWiki Widgets - TitleInputWidget styles.
  *
  * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
  * @license The MIT License (MIT); see LICENSE.txt
  */
 
-.mw-widget-TitleInputWidget {
-       width: 30em;
+.mw-widget-titleInputWidget-menu-withImages .mw-widget-titleOptionWidget {
+       -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+       box-sizing: border-box;
+       min-height: 3.75em;
+       margin-left: 3.75em;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .mw-widget-titleOptionWidget:not(:last-child) {
+       margin-bottom: 1px;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .oo-ui-iconElement .oo-ui-iconElement-icon {
+       display: block;
+       width: 3.75em;
+       height: 3.75em;
+       left: -3.75em;
+       background-color: #ccc;
+       opacity: 0.4;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .oo-ui-iconElement .mw-widget-titleOptionWidget-hasImage {
+       border: 0;
+       background-size: cover;
+       opacity: 1;
+}
+
+.mw-widget-titleInputWidget-menu-withImages .mw-widget-titleOptionWidget .oo-ui-labelElement-label {
+       line-height: 2.8em;
+}
+
+.mw-widget-titleOptionWidget-description {
+       display: none;
+}
+
+.mw-widget-titleInputWidget-menu-withDescriptions .mw-widget-titleOptionWidget .oo-ui-labelElement-label {
+       line-height: 1.5em;
+}
+
+.mw-widget-titleInputWidget-menu-withDescriptions .mw-widget-titleOptionWidget-description {
+       display: block;
+       white-space: nowrap;
+       text-overflow: ellipsis;
+       overflow: hidden;
+}
+
+.oo-ui-menuOptionWidget:not(.oo-ui-optionWidget-selected) .mw-widget-titleOptionWidget-description,
+.oo-ui-menuOptionWidget.oo-ui-optionWidget-highlighted .mw-widget-titleOptionWidget-description {
+       color: #888;
 }
index 26b2f5d..221de0f 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * MediaWiki Widgets  TitleInputWidget class.
+ * MediaWiki Widgets - TitleInputWidget class.
  *
  * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
  * @license The MIT License (MIT); see LICENSE.txt
         *
         * @constructor
         * @param {Object} [config] Configuration options
+        * @cfg {number} [limit=10] Number of results to show
         * @cfg {number} [namespace] Namespace to prepend to queries
+        * @cfg {boolean} [showRedirectTargets=true] Show the targets of redirects
+        * @cfg {boolean} [showRedlink] Show red link to exact match if it doesn't exist
+        * @cfg {boolean} [showImages] Show page images
+        * @cfg {boolean} [showDescriptions] Show page descriptions
+        * @cfg {Object} [cache] Result cache which implements a 'set' method, taking keyed values as an argument
         */
-       mw.widgets.TitleInputWidget = function MWWTitleInputWidget( config ) {
+       mw.widgets.TitleInputWidget = function MwWidgetsTitleInputWidget( config ) {
+               var widget = this;
+
                // Config initialization
                config = config || {};
 
                OO.ui.mixin.LookupElement.call( this, config );
 
                // Properties
+               this.limit = config.limit || 10;
                this.namespace = config.namespace || null;
+               this.showRedirectTargets = config.showRedirectTargets !== false;
+               this.showRedlink = !!config.showRedlink;
+               this.showImages = !!config.showImages;
+               this.showDescriptions = !!config.showDescriptions;
+               this.cache = config.cache;
 
                // Initialization
-               this.$element.addClass( 'mw-widget-TitleInputWidget' );
-               this.lookupMenu.$element.addClass( 'mw-widget-TitleInputWidget-menu' );
+               this.$element.addClass( 'mw-widget-titleInputWidget' );
+               this.lookupMenu.$element.addClass( 'mw-widget-titleInputWidget-menu' );
+               if ( this.showImages ) {
+                       this.lookupMenu.$element.addClass( 'mw-widget-titleInputWidget-menu-withImages' );
+               }
+               if ( this.showDescriptions ) {
+                       this.lookupMenu.$element.addClass( 'mw-widget-titleInputWidget-menu-withDescriptions' );
+               }
+
+               this.interwikiPrefixes = [];
+               this.interwikiPrefixesPromise = new mw.Api().get( {
+                       action: 'query',
+                       meta: 'siteinfo',
+                       siprop: 'interwikimap'
+               } ).done( function ( data ) {
+                       $.each( data.query.interwikimap, function ( index, interwiki ) {
+                               widget.interwikiPrefixes.push( interwiki.prefix );
+                       } );
+               } );
        };
 
        /* Inheritance */
        /**
         * @inheritdoc
         */
-       mw.widgets.TitleInputWidget.prototype.getLookupRequest = function () {
-               var value = this.value;
+       mw.widgets.TitleInputWidget.prototype.focus = function () {
+               var retval;
 
-               // Prefix with default namespace name
-               if ( this.namespace !== null && mw.Title.newFromText( value, this.namespace ) ) {
-                       value = mw.Title.newFromText( value, this.namespace ).getPrefixedText();
-               }
+               // Prevent programmatic focus from opening the menu
+               this.setLookupsDisabled( true );
 
-               // Dont send leading ':' to open search
-               if ( value[0] === ':' ) {
-                       value = value.slice( 1 );
-               }
+               // Parent method
+               retval = OO.ui.TextInputWidget.prototype.focus.apply( this, arguments );
 
-               return new mw.Api().get( {
-                       action: 'opensearch',
-                       search: value,
-                       suggest: ''
-               } );
+               this.setLookupsDisabled( false );
+
+               return retval;
        };
 
        /**
         * @inheritdoc
         */
+       mw.widgets.TitleInputWidget.prototype.getLookupRequest = function () {
+               var req,
+                       widget = this,
+                       promiseAbortObject = { abort: function () {
+                               // Do nothing. This is just so OOUI doesn't break due to abort being undefined.
+                       } };
+
+               if ( mw.Title.newFromText( this.value ) ) {
+                       return this.interwikiPrefixesPromise.then( function () {
+                               var params, props,
+                                       interwiki = widget.value.substring( 0, widget.value.indexOf( ':' ) );
+                               if (
+                                       interwiki && interwiki !== '' &&
+                                       widget.interwikiPrefixes.indexOf( interwiki ) !== -1
+                               ) {
+                                       return $.Deferred().resolve( { query: {
+                                               pages: [{
+                                                       title: widget.value
+                                               }]
+                                       } } ).promise( promiseAbortObject );
+                               } else {
+                                       params = {
+                                               action: 'query',
+                                               generator: 'prefixsearch',
+                                               gpssearch: widget.value,
+                                               gpsnamespace: widget.namespace !== null ? widget.namespace : undefined,
+                                               gpslimit: widget.limit,
+                                               ppprop: 'disambiguation'
+                                       };
+                                       props = [ 'info', 'pageprops' ];
+                                       if ( widget.showRedirectTargets ) {
+                                               params.redirects = '1';
+                                       }
+                                       if ( widget.showImages ) {
+                                               props.push( 'pageimages' );
+                                               params.pithumbsize = 80;
+                                               params.pilimit = widget.limit;
+                                       }
+                                       if ( widget.showDescriptions ) {
+                                               props.push( 'pageterms' );
+                                               params.wbptterms = 'description';
+                                       }
+                                       params.prop = props.join( '|' );
+                                       req = new mw.Api().get( params );
+                                       promiseAbortObject.abort = req.abort.bind( req ); // todo: ew
+                                       return req;
+                               }
+                       } ).promise( promiseAbortObject );
+               } else {
+                       // Don't send invalid titles to the API.
+                       // Just pretend it returned nothing so we can show the 'invalid title' section
+                       return $.Deferred().resolve( {} ).promise( promiseAbortObject );
+               }
+       };
+
+       /**
+        * Get lookup cache item from server response data.
+        *
+        * @method
+        * @param {Mixed} data Response from server
+        */
        mw.widgets.TitleInputWidget.prototype.getLookupCacheDataFromResponse = function ( data ) {
-               return data[1] || [];
+               return data.query || {};
        };
 
        /**
-        * @inheritdoc
+        * Get list of menu items from a server response.
+        *
+        * @param {Object} data Query result
+        * @returns {OO.ui.MenuOptionWidget[]} Menu items
         */
        mw.widgets.TitleInputWidget.prototype.getLookupMenuOptionsFromData = function ( data ) {
-               var i, len, title, value,
+               var i, len, index, pageExists, pageExistsExact, suggestionPage, page, redirect, redirects,
                        items = [],
-                       matchingPages = data;
-
-               // Matching pages
-               if ( matchingPages && matchingPages.length ) {
-                       for ( i = 0, len = matchingPages.length; i < len; i++ ) {
-                               title = new mw.Title( matchingPages[i] );
-                               if ( this.namespace !== null ) {
-                                       value = title.getRelativeText( this.namespace );
-                               } else {
-                                       value = title.getPrefixedText();
-                               }
-                               items.push( new OO.ui.MenuOptionWidget( {
-                                       data: value,
-                                       label: value
-                               } ) );
+                       titles = [],
+                       titleObj = mw.Title.newFromText( this.value ),
+                       redirectsTo = {},
+                       pageData = {};
+
+               if ( data.redirects ) {
+                       for ( i = 0, len = data.redirects.length; i < len; i++ ) {
+                               redirect = data.redirects[i];
+                               redirectsTo[redirect.to] = redirectsTo[redirect.to] || [];
+                               redirectsTo[redirect.to].push( redirect.from );
+                       }
+               }
+
+               for ( index in data.pages ) {
+                       suggestionPage = data.pages[index];
+                       pageData[suggestionPage.title] = {
+                               missing: suggestionPage.missing !== undefined,
+                               redirect: suggestionPage.redirect !== undefined,
+                               disambiguation: OO.getProp( suggestionPage, 'pageprops', 'disambiguation' ) !== undefined,
+                               imageUrl: OO.getProp( suggestionPage, 'thumbnail', 'source' ),
+                               description: OO.getProp( suggestionPage, 'terms', 'description' )
+                       };
+                       titles.push( suggestionPage.title );
+
+                       redirects = redirectsTo[suggestionPage.title] || [];
+                       for ( i = 0, len = redirects.length; i < len; i++ ) {
+                               pageData[redirects[i]] = {
+                                       missing: false,
+                                       redirect: true,
+                                       disambiguation: false,
+                                       description: mw.msg( 'mw-widgets-titleinput-description-redirect', suggestionPage.title )
+                               };
+                               titles.push( redirects[i] );
                        }
                }
 
+               // If not found, run value through mw.Title to avoid treating a match as a
+               // mismatch where normalisation would make them matching (bug 48476)
+
+               pageExistsExact = titles.indexOf( this.value ) !== -1;
+               pageExists = pageExistsExact || (
+                       titleObj && titles.indexOf( titleObj.getPrefixedText() ) !== -1
+               );
+
+               if ( !pageExists ) {
+                       pageData[this.value] = {
+                               missing: true, redirect: false, disambiguation: false,
+                               description: mw.msg( 'mw-widgets-titleinput-description-new-page' )
+                       };
+               }
+
+               if ( this.cache ) {
+                       this.cache.set( pageData );
+               }
+
+               // Offer the exact text as a suggestion if the page exists
+               if ( pageExists && !pageExistsExact ) {
+                       titles.unshift( this.value );
+               }
+               // Offer the exact text as a new page if the title is valid
+               if ( this.showRedlink && !pageExists && titleObj ) {
+                       titles.push( this.value );
+               }
+               for ( i = 0, len = titles.length; i < len; i++ ) {
+                       page = pageData[titles[i]] || {};
+                       items.push( new mw.widgets.TitleOptionWidget( this.getOptionWidgetData( titles[i], page ) ) );
+               }
+
                return items;
        };
 
+       /**
+        * Get menu option widget data from the title and page data
+        *
+        * @param {mw.Title} title Title object
+        * @param {Object} data Page data
+        * @return {Object} Data for option widget
+        */
+       mw.widgets.TitleInputWidget.prototype.getOptionWidgetData = function ( title, data ) {
+               var mwTitle = new mw.Title( title );
+               return {
+                       data: this.namespace !== null ? mwTitle.getRelativeText( this.namespace ) : title,
+                       imageUrl: this.showImages ? data.imageUrl : null,
+                       description: this.showDescriptions ? data.description : null,
+                       missing: data.missing,
+                       redirect: data.redirect,
+                       disambiguation: data.disambiguation,
+                       query: this.value
+               };
+       };
+
        /**
         * Get title object corresponding to #getValue
         *
diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js
new file mode 100644 (file)
index 0000000..07b81e4
--- /dev/null
@@ -0,0 +1,81 @@
+/*!
+ * MediaWiki Widgets - TitleOptionWidget class.
+ *
+ * @copyright 2011-2015 MediaWiki Widgets Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+( function ( $, mw ) {
+
+       /**
+        * Creates a mw.widgets.TitleOptionWidget object.
+        *
+        * @class
+        * @extends OO.ui.MenuOptionWidget
+        *
+        * @constructor
+        * @param {Object} [config] Configuration options
+        * @cfg {string} [data] Page title
+        * @cfg {string} [imageUrl] Thumbnail image URL with URL encoding
+        * @cfg {string} [description] Page description
+        * @cfg {boolean} [missing] Page doesn't exist
+        * @cfg {boolean} [redirect] Page is a redirect
+        * @cfg {boolean} [disambiguation] Page is a disambiguation page
+        * @cfg {string} [query] Matching query string
+        */
+       mw.widgets.TitleOptionWidget = function MwWidgetsTitleOptionWidget( config ) {
+               var icon, title = config.data;
+
+               if ( config.missing ) {
+                       icon = 'page-not-found';
+               } else if ( config.redirect ) {
+                       icon = 'page-redirect';
+               } else if ( config.disambiguation ) {
+                       icon = 'page-disambiguation';
+               } else {
+                       icon = 'page-existing';
+               }
+
+               // Config initialization
+               config = $.extend( {
+                       icon: icon,
+                       label: title,
+                       href: mw.util.getUrl( title ),
+                       autoFitLabel: false
+               }, config );
+
+               // Parent constructor
+               OO.ui.MenuOptionWidget.call( this, config );
+
+               // Intialization
+               this.$label.wrap( '<a>' );
+               this.$link = this.$label.parent();
+               this.$link.attr( 'href', config.href );
+               this.$element.addClass( 'mw-widget-titleOptionWidget' );
+
+               // Highlight matching parts of link suggestion
+               this.$label.autoEllipsis( { hasSpan: false, tooltip: true, matchText: config.query } );
+
+               if ( config.missing ) {
+                       this.$link.addClass( 'new' );
+               }
+
+               if ( config.imageUrl ) {
+                       this.$icon
+                               .addClass( 'mw-widget-titleOptionWidget-hasImage' )
+                               .css( 'background-image', 'url(' + config.imageUrl + ')' );
+               }
+
+               if ( config.description ) {
+                       this.$element.append(
+                               $( '<span>' )
+                                       .addClass( 'mw-widget-titleOptionWidget-description' )
+                                       .text( config.description )
+                       );
+               }
+       };
+
+       /* Inheritance */
+
+       OO.inheritClass( mw.widgets.TitleOptionWidget, OO.ui.MenuOptionWidget );
+
+}( jQuery, mediaWiki ) );
index e46eca5..661ab74 100644 (file)
                 * @return {string}
                 */
                getName: function () {
-                       if ( $.inArray( this.namespace, mw.config.get( 'wgCaseSensitiveNamespaces' ) ) !== -1 ) {
+                       if (
+                               $.inArray( this.namespace, mw.config.get( 'wgCaseSensitiveNamespaces' ) ) !== -1 ||
+                               !this.title.length
+                       ) {
                                return this.title;
                        }
                        return this.title[0].toUpperCase() + this.title.slice( 1 );
diff --git a/resources/src/mediawiki/mediawiki.htmlform.ooui.js b/resources/src/mediawiki/mediawiki.htmlform.ooui.js
deleted file mode 100644 (file)
index 48b8a87..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/*global OO */
-jQuery( function ( $ ) {
-
-       // Infuse everything with JavaScript widgets
-       $( '.mw-htmlform-ooui [data-ooui]' ).each( function () {
-               OO.ui.infuse( this.id );
-       } );
-
-} );
index ec3c0c3..2c88e93 100644 (file)
 
                        /**
                         * Write a message the console's warning channel.
-                        * Also logs a stacktrace for easier debugging.
                         * Actions not supported by the browser console are silently ignored.
                         *
                         * @param {string...} msg Messages to output to console
                                var console = window.console;
                                if ( console && console.warn && console.warn.apply ) {
                                        console.warn.apply( console, arguments );
-                                       if ( console.trace ) {
-                                               console.trace();
-                                       }
                                }
                        };
 
 
                                $.each( dependencies, function ( idx, module ) {
                                        var state = mw.loader.getState( module );
+                                       // Only queue modules that are still in the initial 'registered' state
+                                       // (not ones already loading, ready or error).
                                        if ( state === 'registered' && $.inArray( module, queue ) === -1 ) {
+                                               // Private modules must be embedded in the page. Don't bother queuing
+                                               // these as the server will deny them anyway (T101806).
+                                               if ( registry[module].group === 'private' ) {
+                                                       registry[module].state = 'error';
+                                                       handlePending( module );
+                                                       return;
+                                               }
                                                queue.push( module );
                                                if ( async ) {
                                                        registry[module].async = true;
diff --git a/tests/phpunit/data/media/2_webp_a.webp b/tests/phpunit/data/media/2_webp_a.webp
new file mode 100644 (file)
index 0000000..8764f06
Binary files /dev/null and b/tests/phpunit/data/media/2_webp_a.webp differ
diff --git a/tests/phpunit/data/media/2_webp_ll.webp b/tests/phpunit/data/media/2_webp_ll.webp
new file mode 100644 (file)
index 0000000..5794bbf
Binary files /dev/null and b/tests/phpunit/data/media/2_webp_ll.webp differ
diff --git a/tests/phpunit/data/media/webp_animated.webp b/tests/phpunit/data/media/webp_animated.webp
new file mode 100644 (file)
index 0000000..25c6a4d
Binary files /dev/null and b/tests/phpunit/data/media/webp_animated.webp differ
index df94d3e..e196243 100644 (file)
@@ -34,7 +34,7 @@ class MediaWikiTest extends MediaWikiTestCase {
                                'url' => 'http://example.org/w/index.php?title=Foo_Bar',
                                'query' => array( 'title' => 'Foo_Bar' ),
                                'title' => 'Foo_Bar',
-                               'redirect' => false,
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
                        ),
                        array(
                                // View: Script path with implicit title from page id
@@ -76,21 +76,21 @@ class MediaWikiTest extends MediaWikiTestCase {
                                'url' => 'http://example.org/w/?title=Foo_Bar',
                                'query' => array( 'title' => 'Foo_Bar' ),
                                'title' => 'Foo_Bar',
-                               'redirect' => false,
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
                        ),
                        array(
                                // View: Root path with escaped title
                                'url' => 'http://example.org/?title=Foo_Bar',
                                'query' => array( 'title' => 'Foo_Bar' ),
                                'title' => 'Foo_Bar',
-                               'redirect' => false,
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
                        ),
                        array(
                                // View: Canonical with redundant query
                                'url' => 'http://example.org/wiki/Foo_Bar?action=view',
                                'query' => array( 'action' => 'view' ),
                                'title' => 'Foo_Bar',
-                               'redirect' => false,
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
                        ),
                        array(
                                // Edit: Canonical view url with action query
@@ -104,7 +104,7 @@ class MediaWikiTest extends MediaWikiTestCase {
                                'url' => 'http://example.org/w/index.php?title=Foo_Bar&action=view',
                                'query' => array( 'title' => 'Foo_Bar', 'action' => 'view' ),
                                'title' => 'Foo_Bar',
-                               'redirect' => false,
+                               'redirect' => 'http://example.org/wiki/Foo_Bar',
                        ),
                        array(
                                // Edit: Index with action query
index fa528da..e006bf7 100644 (file)
@@ -475,7 +475,7 @@ class ApiEditPageTest extends ApiTestCase {
        public function testCheckDirectApiEditingDisallowed_forNonTextContent() {
                $this->setExpectedException(
                        'UsageException',
-                       'Direct editing via API is not supported for this content type.'
+                       'Direct editing via API is not supported for content model testing used by Dummy:ApiEditPageTest_nonTextPageEdit'
                );
 
                $this->doApiRequestWithToken( array(
diff --git a/tests/phpunit/includes/api/format/ApiFormatDumpTest.php b/tests/phpunit/includes/api/format/ApiFormatDumpTest.php
deleted file mode 100644 (file)
index c0f67f8..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
-/**
- * @group API
- * @covers ApiFormatDump
- */
-class ApiFormatDumpTest extends ApiFormatTestBase {
-
-       protected $printerName = 'dump';
-
-       public static function provideGeneralEncoding() {
-               // Sigh. Docs claim it's a boolean, but can have values 0, 1, or 2.
-               // Fortunately wfIniGetBool does the right thing.
-               if ( wfIniGetBool( 'xdebug.overload_var_dump' ) ) {
-                       return array(
-                               array( array(), 'Cannot test ApiFormatDump when xDebug overloads var_dump', array( 'SKIP' => true ) ),
-                       );
-               }
-
-               $warning = "\n  [\"warnings\"]=>\n  array(1) {\n    [\"dump\"]=>\n    array(1) {\n      [\"*\"]=>\n" .
-                       "      string(64) \"format=dump has been deprecated. Please use format=json instead.\"\n" .
-                       "    }\n  }";
-
-               return array(
-                       // Basic types
-                       array( array( null ), "array(2) {{$warning}\n  [0]=>\n  NULL\n}\n" ),
-                       array( array( true ), "array(2) {{$warning}\n  [0]=>\n  string(0) \"\"\n}\n" ),
-                       array( array( false ), "array(1) {{$warning}\n}\n" ),
-                       array( array( true, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "array(2) {{$warning}\n  [0]=>\n  bool(true)\n}\n" ),
-                       array( array( false, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "array(2) {{$warning}\n  [0]=>\n  bool(false)\n}\n" ),
-                       array( array( 42 ), "array(2) {{$warning}\n  [0]=>\n  int(42)\n}\n" ),
-                       array( array( 42.5 ), "array(2) {{$warning}\n  [0]=>\n  float(42.5)\n}\n" ),
-                       array( array( 1e42 ), "array(2) {{$warning}\n  [0]=>\n  float(1.0E+42)\n}\n" ),
-                       array( array( 'foo' ), "array(2) {{$warning}\n  [0]=>\n  string(3) \"foo\"\n}\n" ),
-                       array( array( 'fóo' ), "array(2) {{$warning}\n  [0]=>\n  string(4) \"fóo\"\n}\n" ),
-
-                       // Arrays
-                       array( array( array() ), "array(2) {{$warning}\n  [0]=>\n  array(0) {\n  }\n}\n" ),
-                       array( array( array( 1 ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [0]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( array( 'x' => 1 ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [\"x\"]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( array( 2 => 1 ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [2]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( (object)array() ), "array(2) {{$warning}\n  [0]=>\n  array(0) {\n  }\n}\n" ),
-                       array( array( array( 1, ApiResult::META_TYPE => 'assoc' ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [0]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'array' ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [0]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'kvp' ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [\"x\"]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCkvp', ApiResult::META_KVP_KEY_NAME => 'key' ) ),
-                               "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [0]=>\n    array(2) {\n      [\"key\"]=>\n      string(1) \"x\"\n      [\"*\"]=>\n      int(1)\n    }\n  }\n}\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCarray' ) ), "array(2) {{$warning}\n  [0]=>\n  array(1) {\n    [\"x\"]=>\n    int(1)\n  }\n}\n" ),
-                       array( array( array( 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ) ), "array(2) {{$warning}\n  [0]=>\n  array(2) {\n    [0]=>\n    string(1) \"a\"\n    [1]=>\n    string(1) \"b\"\n  }\n}\n" ),
-
-                       // Content
-                       array( array( 'content' => 'foo', ApiResult::META_CONTENT => 'content' ),
-                               "array(2) {{$warning}\n  [\"*\"]=>\n  string(3) \"foo\"\n}\n" ),
-
-                       // BC Subelements
-                       array( array( 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => array( 'foo' ) ),
-                               "array(2) {{$warning}\n  [\"foo\"]=>\n  array(1) {\n    [\"*\"]=>\n    string(3) \"foo\"\n  }\n}\n" ),
-               );
-       }
-
-}
diff --git a/tests/phpunit/includes/api/format/ApiFormatWddxTest.php b/tests/phpunit/includes/api/format/ApiFormatWddxTest.php
deleted file mode 100644 (file)
index 0711130..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/**
- * @group API
- * @covers ApiFormatWddx
- */
-class ApiFormatWddxTest extends ApiFormatTestBase {
-
-       protected $printerName = 'wddx';
-
-       public static function provideGeneralEncoding() {
-               if ( ApiFormatWddx::useSlowPrinter() ) {
-                       return array(
-                               array( array(), 'Fast Wddx printer is unavailable', array( 'SKIP' => true ) )
-                       );
-               }
-               return self::provideEncoding();
-       }
-
-       public static function provideEncoding() {
-               $p = '<wddxPacket version=\'1.0\'><header/><data><struct><var name=\'warnings\'><struct><var name=\'wddx\'><struct><var name=\'*\'><string>format=wddx has been deprecated. Please use format=json instead.</string></var></struct></var></struct></var>';
-               $s = '</struct></data></wddxPacket>';
-
-               return array(
-                       // Basic types
-                       array( array( null ), "{$p}<var name='0'><null/></var>{$s}" ),
-                       array( array( true ), "{$p}<var name='0'><string></string></var>{$s}" ),
-                       array( array( false ), "{$p}{$s}" ),
-                       array( array( true, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "{$p}<var name='0'><boolean value='true'/></var>{$s}" ),
-                       array( array( false, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "{$p}<var name='0'><boolean value='false'/></var>{$s}" ),
-                       array( array( 42 ), "{$p}<var name='0'><number>42</number></var>{$s}" ),
-                       array( array( 42.5 ), "{$p}<var name='0'><number>42.5</number></var>{$s}" ),
-                       array( array( 1e42 ), "{$p}<var name='0'><number>1.0E+42</number></var>{$s}" ),
-                       array( array( 'foo' ), "{$p}<var name='0'><string>foo</string></var>{$s}" ),
-                       array( array( 'fóo' ), "{$p}<var name='0'><string>fóo</string></var>{$s}" ),
-
-                       // Arrays and objects
-                       array( array( array() ), "{$p}<var name='0'><array length='0'></array></var>{$s}" ),
-                       array( array( array( 1 ) ), "{$p}<var name='0'><array length='1'><number>1</number></array></var>{$s}" ),
-                       array( array( array( 'x' => 1 ) ), "{$p}<var name='0'><struct><var name='x'><number>1</number></var></struct></var>{$s}" ),
-                       array( array( array( 2 => 1 ) ), "{$p}<var name='0'><struct><var name='2'><number>1</number></var></struct></var>{$s}" ),
-                       array( array( (object)array() ), "{$p}<var name='0'><struct></struct></var>{$s}" ),
-                       array( array( array( 1, ApiResult::META_TYPE => 'assoc' ) ), "{$p}<var name='0'><struct><var name='0'><number>1</number></var></struct></var>{$s}" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'array' ) ), "{$p}<var name='0'><array length='1'><number>1</number></array></var>{$s}" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'kvp' ) ), "{$p}<var name='0'><struct><var name='x'><number>1</number></var></struct></var>{$s}" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCkvp', ApiResult::META_KVP_KEY_NAME => 'key' ) ),
-                               "{$p}<var name='0'><array length='1'><struct><var name='key'><string>x</string></var><var name='*'><number>1</number></var></struct></array></var>{$s}" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCarray' ) ), "{$p}<var name='0'><struct><var name='x'><number>1</number></var></struct></var>{$s}" ),
-                       array( array( array( 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ) ), "{$p}<var name='0'><array length='2'><string>a</string><string>b</string></array></var>{$s}" ),
-
-                       // Content
-                       array( array( 'content' => 'foo', ApiResult::META_CONTENT => 'content' ),
-                               "{$p}<var name='*'><string>foo</string></var>{$s}" ),
-
-                       // BC Subelements
-                       array( array( 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => array( 'foo' ) ),
-                               "{$p}<var name='foo'><struct><var name='*'><string>foo</string></var></struct></var>{$s}" ),
-               );
-       }
-
-       /**
-        * @dataProvider provideEncoding
-        */
-       public function testSlowEncoding( array $data, $expect, array $params = array() ) {
-               // Adjust expectation for differences between fast and slow printers.
-               $expect = str_replace( '\'', '"', $expect );
-               $expect = str_replace( '/>', ' />', $expect );
-               $expect = '<?xml version="1.0"?>' . $expect;
-
-               $this->assertSame( $expect, $this->encodeData( $params, $data, 'ApiFormatWddxTest_SlowWddx' ) );
-       }
-}
-
-class ApiFormatWddxTest_SlowWddx extends ApiFormatWddx {
-       public static function useSlowPrinter() {
-               return true;
-       }
-}
index b5fd5f6..cac3b10 100644 (file)
@@ -27,34 +27,95 @@ class ComposerLockTest extends MediaWikiTestCase {
                        'wikimedia/cdb' => array(
                                'version' => '1.0.1',
                                'type' => 'library',
+                               'licenses' => array( 'GPL-2.0' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Tim Starling',
+                                               'email' => 'tstarling@wikimedia.org',
+                                       ),
+                                       array(
+                                               'name' => 'Chad Horohoe',
+                                               'email' => 'chad@wikimedia.org',
+                                       ),
+                               ),
+                               'description' => 'Constant Database (CDB) wrapper library for PHP. Provides pure-PHP fallback when dba_* functions are absent.',
                        ),
                        'cssjanus/cssjanus' => array(
                                'version' => '1.1.1',
                                'type' => 'library',
+                               'licenses' => array( 'Apache-2.0' ),
+                               'authors' => array(),
+                               'description' => 'Convert CSS stylesheets between left-to-right and right-to-left.',
                        ),
                        'leafo/lessphp' => array(
                                'version' => '0.5.0',
                                'type' => 'library',
+                               'licenses' => array( 'MIT', 'GPL-3.0' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Leaf Corcoran',
+                                               'email' => 'leafot@gmail.com',
+                                               'homepage' => 'http://leafo.net',
+                                       ),
+                               ),
+                               'description' => 'lessphp is a compiler for LESS written in PHP.',
                        ),
                        'psr/log' => array(
                                'version' => '1.0.0',
                                'type' => 'library',
+                               'licenses' => array( 'MIT' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'PHP-FIG',
+                                               'homepage' => 'http://www.php-fig.org/',
+                                       ),
+                               ),
+                               'description' => 'Common interface for logging libraries',
                        ),
                        'oojs/oojs-ui' => array(
                                'version' => '0.6.0',
                                'type' => 'library',
+                               'licenses' => array( 'MIT' ),
+                               'authors' => array(),
+                               'description' => '',
                        ),
                        'composer/installers' => array(
                                'version' => '1.0.19',
                                'type' => 'composer-installer',
+                               'licenses' => array( 'MIT' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Kyle Robinson Young',
+                                               'email' => 'kyle@dontkry.com',
+                                               'homepage' => 'https://github.com/shama',
+                                       ),
+                               ),
+                               'description' => 'A multi-framework Composer library installer',
                        ),
                        'mediawiki/translate' => array(
                                'version' => '2014.12',
                                'type' => 'mediawiki-extension',
+                               'licenses' => array( 'GPL-2.0+' ),
+                               'authors' => array(
+                                       array(
+                                               'name' => 'Niklas Laxström',
+                                               'email' => 'niklas.laxstrom@gmail.com',
+                                               'role' => 'Lead nitpicker',
+                                       ),
+                                       array(
+                                               'name' => 'Siebrand Mazeland',
+                                               'email' => 's.mazeland@xs4all.nl',
+                                               'role' => 'Developer',
+                                       ),
+                               ),
+                               'description' => 'The only standard solution to translate any kind of text with an avant-garde web interface within MediaWiki, including your documentation and software',
                        ),
                        'mediawiki/universal-language-selector' => array(
                                'version' => '2014.12',
                                'type' => 'mediawiki-extension',
+                               'licenses' => array( 'GPL-2.0+', 'MIT' ),
+                               'authors' => array(),
+                               'description' => 'The primary aim is to allow users to select a language and configure its support in an easy way. Main features are language selection, input methods and web fonts.',
                        ),
                ), $lock->getInstalledDependencies(), false, true );
        }
diff --git a/tests/phpunit/includes/media/WebPTest.php b/tests/phpunit/includes/media/WebPTest.php
new file mode 100644 (file)
index 0000000..d36710a
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+class WebPHandlerTest extends MediaWikiTestCase {
+       public function setUp() {
+               parent::setUp();
+               // Allocated file for testing
+               $this->tempFileName = tempnam( wfTempDir(), 'WEBP' );
+       }
+       public function tearDown() {
+               parent::tearDown();
+               unlink( $this->tempFileName );
+       }
+       /**
+        * @dataProvider provideTestExtractMetaData
+        */
+       public function testExtractMetaData( $header, $expectedResult ) {
+               // Put header into file
+               file_put_contents( $this->tempFileName, $header );
+
+               $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $this->tempFileName ) );
+       }
+       public function provideTestExtractMetaData() {
+               return array(
+                       // Files from https://developers.google.com/speed/webp/gallery2
+                       array( "\x52\x49\x46\x46\x90\x68\x01\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x83\x68\x01\x00\x2F\x8F\x01\x4B\x10\x8D\x38\x6C\xDB\x46\x92\xE0\xE0\x82\x7B\x6C",
+                               array( 'compression' => 'lossless', 'width' => 400, 'height' => 301 ) ),
+                       array( "\x52\x49\x46\x46\x64\x5B\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x8F\x01\x00\x2C\x01\x00\x41\x4C\x50\x48\xE5\x0E",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 400, 'height' => 301) ),
+                       array( "\x52\x49\x46\x46\xA8\x72\x00\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x9B\x72\x00\x00\x2F\x81\x81\x62\x10\x8D\x40\x8C\x24\x39\x6E\x73\x73\x38\x01\x96",
+                               array( 'compression' => 'lossless', 'width' => 386, 'height' => 395 ) ),
+                       array( "\x52\x49\x46\x46\xE0\x42\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x81\x01\x00\x8A\x01\x00\x41\x4C\x50\x48\x56\x10",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 386, 'height' => 395 ) ),
+                       array( "\x52\x49\x46\x46\x70\x61\x02\x00\x57\x45\x42\x50\x56\x50\x38\x4C\x63\x61\x02\x00\x2F\x1F\xC3\x95\x10\x8D\xC8\x72\xDB\xC8\x92\x24\xD8\x91\xD9\x91",
+                               array( 'compression' => 'lossless', 'width' => 800, 'height' => 600 ) ),
+                       array( "\x52\x49\x46\x46\x1C\x1D\x01\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x1F\x03\x00\x57\x02\x00\x41\x4C\x50\x48\x25\x8B",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 800, 'height' => 600 ) ),
+                       array( "\x52\x49\x46\x46\xFA\xC5\x00\x00\x57\x45\x42\x50\x56\x50\x38\x4C\xEE\xC5\x00\x00\x2F\xA4\x81\x28\x10\x8D\x40\x68\x24\xC9\x91\xA4\xAE\xF3\x97\x75",
+                               array( 'compression' => 'lossless', 'width' => 421, 'height' => 163 ) ),
+                       array( "\x52\x49\x46\x46\xF6\x5D\x00\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\xA4\x01\x00\xA2\x00\x00\x41\x4C\x50\x48\x38\x1A",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 421, 'height' => 163 ) ),
+                       array( "\x52\x49\x46\x46\xC4\x96\x01\x00\x57\x45\x42\x50\x56\x50\x38\x4C\xB8\x96\x01\x00\x2F\x2B\xC1\x4A\x10\x11\x87\x6D\xDB\x48\x12\xFC\x60\xB0\x83\x24",
+                               array( 'compression' => 'lossless', 'width' => 300, 'height' => 300 ) ),
+                       array( "\x52\x49\x46\x46\x0A\x11\x01\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x10\x00\x00\x00\x2B\x01\x00\x2B\x01\x00\x41\x4C\x50\x48\x67\x6E",
+                               array( 'compression' => 'unknown', 'animated' => false, 'transparency' => true, 'width' => 300, 'height' => 300 ) ),
+
+                       // Lossy files from https://developers.google.com/speed/webp/gallery1
+                       array( "\x52\x49\x46\x46\x68\x76\x00\x00\x57\x45\x42\x50\x56\x50\x38\x20\x5C\x76\x00\x00\xD2\xBE\x01\x9D\x01\x2A\x26\x02\x70\x01\x3E\xD5\x4E\x97\x43\xA2",
+                               array( 'compression' => 'lossy', 'width' => 550, 'height' => 368 ) ),
+                       array( "\x52\x49\x46\x46\xB0\xEC\x00\x00\x57\x45\x42\x50\x56\x50\x38\x20\xA4\xEC\x00\x00\xB2\x4B\x02\x9D\x01\x2A\x26\x02\x94\x01\x3E\xD1\x50\x96\x46\x26",
+                               array( 'compression' => 'lossy', 'width' => 550, 'height' => 404 ) ),
+                       array( "\x52\x49\x46\x46\x7A\x19\x03\x00\x57\x45\x42\x50\x56\x50\x38\x20\x6E\x19\x03\x00\xB2\xF8\x09\x9D\x01\x2A\x00\x05\xD0\x02\x3E\xAD\x46\x99\x4A\xA5",
+                               array( 'compression' => 'lossy', 'width' => 1280, 'height' => 720 ) ),
+                       array( "\x52\x49\x46\x46\x44\xB3\x02\x00\x57\x45\x42\x50\x56\x50\x38\x20\x38\xB3\x02\x00\x52\x57\x06\x9D\x01\x2A\x00\x04\x04\x03\x3E\xA5\x44\x96\x49\x26",
+                               array( 'compression' => 'lossy', 'width' => 1024, 'height' => 772) ),
+                       array( "\x52\x49\x46\x46\x02\x43\x01\x00\x57\x45\x42\x50\x56\x50\x38\x20\xF6\x42\x01\x00\x12\xC0\x05\x9D\x01\x2A\x00\x04\xF0\x02\x3E\x79\x34\x93\x47\xA4",
+                               array( 'compression' => 'lossy', 'width' => 1024, 'height' => 752) ),
+
+                       // Animated file from https://groups.google.com/a/chromium.org/d/topic/blink-dev/Y8tRC4mdQz8/discussion
+                       array( "\x52\x49\x46\x46\xD0\x0B\x02\x00\x57\x45\x42\x50\x56\x50\x38\x58\x0A\x00\x00\x00\x12\x00\x00\x00\x3F\x01\x00\x3F\x01\x00\x41\x4E",
+                               array( 'compression' => 'unknown', 'animated' => true, 'transparency' => true, 'width' => 320, 'height' => 320 ) ),
+
+                       // Error cases
+                       array( '', false ),
+                       array( '                                    ', false ),
+                       array( 'RIFF                                ', false ),
+                       array( 'RIFF1234WEBP                        ', false ),
+                       array( 'RIFF1234WEBPVP8                     ', false ),
+                       array( 'RIFF1234WEBPVP8L                    ', false ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestWithFileExtractMetaData
+        */
+       public function testWithFileExtractMetaData( $filename, $expectedResult ) {
+               $this->assertEquals( $expectedResult, WebPHandler::extractMetadata( $filename ) );
+       }
+       public function provideTestWithFileExtractMetaData() {
+               return array(
+                               array( __DIR__ . '/../../data/media/2_webp_ll.webp',
+                                       array( 'compression' => 'lossless', 'width' => 386, 'height' => 395 ) ),
+                               array( __DIR__ . '/../../data/media/2_webp_a.webp',
+                                       array( 'compression' => 'lossy', 'animated' => false, 'transparency' => true, 'width' => 386, 'height' => 395 ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestGetImageSize
+        */
+       public function testGetImageSize( $path, $expectedResult ) {
+               $handler = new WebPHandler();
+               $this->assertEquals( $expectedResult, $handler->getImageSize( null, $path ) );
+       }
+       public function provideTestGetImageSize() {
+               return array(
+                       // Public domain files from https://developers.google.com/speed/webp/gallery2
+                       array( __DIR__ . '/../../data/media/2_webp_a.webp', array( 386, 395 ) ),
+                       array( __DIR__ . '/../../data/media/2_webp_ll.webp', array( 386, 395 ) ),
+                       array( __DIR__ . '/../../data/media/webp_animated.webp', array( 300, 225 ) ),
+
+                       // Error cases
+                       array( __FILE__, false ),
+               );
+       }
+
+       /**
+        * Tests the WebP MIME detection. This should really be a separate test, but sticking it
+        * here for now.
+        *
+        * @dataProvider provideTestGetMimeType
+        */
+       public function testGuessMimeType( $path ) {
+               $mime = MimeMagic::singleton();
+               $this->assertEquals( 'image/webp', $mime->guessMimeType( $path, false ) );
+       }
+       public function provideTestGetMimeType() {
+               return array(
+                               // Public domain files from https://developers.google.com/speed/webp/gallery2
+                               array( __DIR__ . '/../../data/media/2_webp_a.webp' ),
+                               array( __DIR__ . '/../../data/media/2_webp_ll.webp' ),
+                               array( __DIR__ . '/../../data/media/webp_animated.webp' ),
+               );
+       }
+}
+
+/* Python code to extract a header and convert to PHP format:
+ * print '"%s"' % ''.join( '\\x%02X' % ord(c) for c in urllib.urlopen(url).read(36) )
+ */
index 47a83b3..10f64be 100644 (file)
@@ -229,8 +229,10 @@ class WANObjectCacheTest extends MediaWikiTestCase {
        public function testTouchKeys() {
                $key = wfRandomString();
 
+               $priorTime = microtime( true );
+               usleep( 1 );
                $t0 = $this->cache->getCheckKeyTime( $key );
-               $this->assertFalse( $t0, 'Check key time is false' );
+               $this->assertGreaterThanOrEqual( $priorTime, $t0, 'Check key auto-created' );
 
                $priorTime = microtime( true );
                usleep( 1 );
index 83489c6..5482b97 100644 (file)
@@ -136,7 +136,7 @@ class SpecialSearchTest extends MediaWikiTestCase {
 
                # Compare :-]
                $this->assertRegExp(
-                       '/' . preg_quote( $term ) . '/',
+                       '/' . preg_quote( $term, '/' ) . '/',
                        $pageTitle,
                        "Search term '{$term}' should not be expanded in Special:Search <title>"
                );
index 34e3fb4..efde4c0 100755 (executable)
@@ -215,17 +215,23 @@ if ( version_compare( PHP_VERSION, '5.4.0', '<' ) ) {
 
 $ok = false;
 
-foreach ( array(
-       stream_resolve_include_path( 'phpunit.phar' ),
-       'PHPUnit/Runner/Version.php',
-       'PHPUnit/Autoload.php'
-) as $includePath ) {
-       // @codingStandardsIgnoreStart
-       @include_once $includePath;
-       // @codingStandardsIgnoreEnd
-       if ( class_exists( 'PHPUnit_TextUI_Command' ) ) {
-               $ok = true;
-               break;
+if ( class_exists( 'PHPUnit_TextUI_Command' ) ) {
+       echo "PHPUnit already present\n";
+       $ok = true;
+} else {
+       foreach ( array(
+                               stream_resolve_include_path( 'phpunit.phar' ),
+                               'PHPUnit/Runner/Version.php',
+                               'PHPUnit/Autoload.php'
+                       ) as $includePath ) {
+               // @codingStandardsIgnoreStart
+               @include_once $includePath;
+               // @codingStandardsIgnoreEnd
+               if ( class_exists( 'PHPUnit_TextUI_Command' ) ) {
+                       $ok = true;
+                       echo "Using PHPUnit from $includePath\n";
+                       break;
+               }
        }
 }
 
index 9178bdb..2c92e30 100644 (file)
@@ -47,6 +47,9 @@ class ResourcesTest extends MediaWikiTestCase {
        /**
         * Verify that nothing explicitly depends on the 'jquery' and 'mediawiki' modules.
         * They are always loaded, depending on them is unsupported and leads to unexpected behaviour.
+        * TODO Modules can dynamically choose dependencies based on context. This method does not
+        * test such dependencies. The same goes for testMissingDependencies() and
+        * testUnsatisfiableDependencies().
         */
        public function testIllegalDependencies() {
                $data = self::getAllModules();
@@ -57,7 +60,7 @@ class ResourcesTest extends MediaWikiTestCase {
                        foreach ( $illegalDeps as $illegalDep ) {
                                $this->assertNotContains(
                                        $illegalDep,
-                                       $module->getDependencies(),
+                                       $module->getDependencies( $data['context'] ),
                                        "Module '$moduleName' must not depend on '$illegalDep'"
                                );
                        }
@@ -73,7 +76,7 @@ class ResourcesTest extends MediaWikiTestCase {
 
                /** @var ResourceLoaderModule $module */
                foreach ( $data['modules'] as $moduleName => $module ) {
-                       foreach ( $module->getDependencies() as $dep ) {
+                       foreach ( $module->getDependencies( $data['context'] ) as $dep ) {
                                $this->assertContains(
                                        $dep,
                                        $validDeps,
@@ -97,7 +100,7 @@ class ResourcesTest extends MediaWikiTestCase {
                /** @var ResourceLoaderModule $module */
                foreach ( $data['modules'] as $moduleName => $module ) {
                        $moduleTargets = $module->getTargets();
-                       foreach ( $module->getDependencies() as $dep ) {
+                       foreach ( $module->getDependencies( $data['context'] ) as $dep ) {
                                if ( !isset( $data['modules'][$dep] ) ) {
                                        // Missing dependencies reported by testMissingDependencies
                                        continue;
index c0afe07..284f21a 100644 (file)
                }
        } );
 
-       QUnit.test( 'Basic parsing', 12, function ( assert ) {
+       QUnit.test( 'Basic parsing', 21, function ( assert ) {
                var title;
                title = new mw.Title( 'File:Foo_bar.JPG' );
 
                title = new mw.Title( 'Foo#bar' );
                assert.equal( title.getPrefixedText(), 'Foo' );
                assert.equal( title.getFragment(), 'bar' );
+
+               title = new mw.Title( '.foo' );
+               assert.equal( title.getPrefixedText(), '.foo' );
+               assert.equal( title.getName(), '' );
+               assert.equal( title.getNameText(), '' );
+               assert.equal( title.getExtension(), 'foo' );
+               assert.equal( title.getDotExtension(), '.foo' );
+               assert.equal( title.getMain(), '.foo' );
+               assert.equal( title.getMainText(), '.foo' );
+               assert.equal( title.getPrefixedDb(), '.foo' );
+               assert.equal( title.getPrefixedText(), '.foo' );
        } );
 
        QUnit.test( 'Transformation', 11, function ( assert ) {
index 0b42af4..8a3e100 100644 (file)
                        'ResourceLoader', 't-rl', 'More info about ResourceLoader on MediaWiki.org ', 'l'
                );
 
-               assert.ok( $.isDomElement( tbRL ), 'addPortletLink returns a valid DOM Element according to $.isDomElement' );
+               assert.ok( tbRL && tbRL.nodeType, 'addPortletLink returns a DOM Node' );
 
                tbMW = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/',
                        'MediaWiki.org', 't-mworg', 'Go to MediaWiki.org', 'm', tbRL );