Merge "Update cached user ID after user is added to the database"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 20 Nov 2015 19:00:10 +0000 (19:00 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 20 Nov 2015 19:00:10 +0000 (19:00 +0000)
300 files changed:
RELEASE-NOTES-1.27
api.php
autoload.php
composer.json
docs/hooks.txt
includes/DefaultSettings.php
includes/Linker.php
includes/MediaWiki.php
includes/PHPVersionCheck.php
includes/PHPVersionError.php
includes/PrefixSearch.php
includes/Revision.php
includes/Setup.php
includes/api/ApiEditPage.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiFormatBase.php
includes/api/ApiFormatDbg.php [deleted file]
includes/api/ApiFormatTxt.php [deleted file]
includes/api/ApiFormatYaml.php [deleted file]
includes/api/ApiMain.php
includes/api/i18n/br.json
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/en.json
includes/api/i18n/eu.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/ja.json
includes/api/i18n/ko.json
includes/api/i18n/lb.json
includes/api/i18n/mr.json
includes/api/i18n/nap.json
includes/api/i18n/ps.json
includes/api/i18n/qqq.json
includes/api/i18n/si.json
includes/api/i18n/tr.json
includes/api/i18n/vi.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/cache/MessageBlobStore.php
includes/cache/MessageCache.php
includes/db/ChronologyProtector.php
includes/db/Database.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseOracle.php
includes/db/IDatabase.php
includes/db/loadbalancer/LBFactory.php
includes/db/loadbalancer/LBFactoryMulti.php
includes/db/loadbalancer/LBFactorySimple.php
includes/db/loadbalancer/LoadBalancer.php
includes/db/loadbalancer/LoadMonitorMySQL.php
includes/deferred/LinksUpdate.php
includes/deferred/SquidUpdate.php
includes/diff/DairikiDiff.php
includes/diff/TableDiffFormatter.php
includes/filerepo/file/File.php
includes/filerepo/file/LocalFile.php
includes/gallery/TraditionalImageGallery.php
includes/htmlform/HTMLApiField.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLFormField.php
includes/htmlform/HTMLHiddenField.php
includes/installer/PostgresUpdater.php
includes/installer/i18n/bn.json
includes/installer/i18n/cy.json
includes/installer/i18n/eu.json
includes/installer/i18n/frc.json
includes/installer/i18n/mr.json
includes/installer/i18n/nap.json
includes/installer/i18n/tr.json
includes/installer/i18n/vi.json
includes/jobqueue/JobRunner.php
includes/jobqueue/aggregator/JobQueueAggregatorRedis.php
includes/jobqueue/jobs/RefreshLinksJob.php
includes/libs/objectcache/WANObjectCache.php
includes/logging/LogEventsList.php
includes/mime.types
includes/page/WikiPage.php
includes/parser/LinkHolderArray.php
includes/password/UserPasswordPolicy.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderUserTokensModule.php
includes/specials/SpecialContributions.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialSearch.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialWatchlist.php
includes/utils/FileContentsHasher.php
includes/widget/TitleInputWidget.php
index.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/ast.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/cv.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.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/frc.json
languages/i18n/frr.json
languages/i18n/gl.json
languages/i18n/gom-deva.json
languages/i18n/gom-latn.json
languages/i18n/gsw.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ilo.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ka.json
languages/i18n/kk-cyrl.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/la.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lij.json
languages/i18n/lmo.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mr.json
languages/i18n/nah.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/olo.json
languages/i18n/pl.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/sd.json
languages/i18n/sgs.json
languages/i18n/sh.json
languages/i18n/si.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/ta.json
languages/i18n/tcy.json
languages/i18n/te.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/vec.json
languages/i18n/vi.json
languages/i18n/wuu.json
languages/i18n/yi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
load.php
maintenance/Maintenance.php
maintenance/findHooks.php
maintenance/install.php
maintenance/namespaceDupes.php
maintenance/populateFilearchiveSha1.php
mw-config/index.php
profileinfo.php
resources/Resources.php
resources/lib/jquery.i18n/GPL-LICENSE
resources/lib/jquery.i18n/package.json
resources/lib/jquery.i18n/src/jquery.i18n.language.js
resources/lib/oojs-ui/i18n/ca.json
resources/lib/oojs-ui/i18n/hu.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/apex/icons-media.json [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/icons.json
resources/lib/oojs-ui/themes/apex/images/icons/image.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/image.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/apex/images/icons/picture.png [deleted file]
resources/lib/oojs-ui/themes/apex/images/icons/picture.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/icons-media.json
resources/lib/oojs-ui/themes/mediawiki/icons.json
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg [deleted file]
resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.skinning/content.css
resources/src/mediawiki.widgets/mw.widgets.TitleSearchWidget.js
resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js
resources/src/mediawiki/api.js
resources/src/mediawiki/mediawiki.Title.js
resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
resources/src/mediawiki/mediawiki.feedback.js
resources/src/mediawiki/mediawiki.jqueryMsg.js
tests/phpunit/ResourceLoaderTestCase.php
tests/phpunit/includes/DiffHistoryBlobTest.php
tests/phpunit/includes/api/RandomImageGenerator.php
tests/phpunit/includes/api/format/ApiFormatDbgTest.php [deleted file]
tests/phpunit/includes/api/format/ApiFormatTxtTest.php [deleted file]
tests/phpunit/includes/db/DatabaseSqliteTest.php
tests/phpunit/includes/db/LBFactoryTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderStartUpModuleTest.php
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/startup.test.js

index 6019a81..5e5a236 100644 (file)
@@ -50,6 +50,9 @@ production.
   on CPU and bandwidth while reducing time to first byte for pages, even without
   a thumbnail handler. See $wgForeignFileRepos documentation for tweaks.
 * (T27397) WebP is enabled by default as an uploadable filetype.
+* (T48998) $wgArticlePath must now be either a full url, or start with a "/".
+* $wgRateLimitLog was removed; use $wgDebugLogGroups['ratelimit'] instead.
+* Deprecated API formats dbg, txt, and yaml have been removed.
 
 === New features in 1.27 ===
 * $wgDataCenterId and $wgDataCenterRoles where added, which will serve as
@@ -94,9 +97,14 @@ production.
   "was-deleted" warning.
 * Added difftotextpst to query=revisions which preforms a pre-save transform on
   the text before diffing it.
+* Deprecated formats dbg, txt, and yaml have been removed.
 
 === Action API internal changes in 1.27 ===
 * ApiQueryORM removed.
+* The following classes have been removed:
+** ApiFormatDbg
+** ApiFormatTxt
+** ApiFormatYaml
 
 === Languages updated in 1.27 ===
 
@@ -115,6 +123,7 @@ changes to languages because of Bugzilla reports.
 * LinkCache::getGoodLinks and LinkCache::getBadLinks were removed (deprecated in 1.26).
 * WikiPage::doQuickEdit() was removed (deprecated since 1.21).
 * Removed SiteObject and SiteArray classes (deprecated in 1.21).
+* MessageBlobStore::getInstance() was removed (deprecated since 1.25).
 
 == Compatibility ==
 
diff --git a/api.php b/api.php
index af7c452..83c1373 100644 (file)
--- a/api.php
+++ b/api.php
@@ -35,11 +35,6 @@ use MediaWiki\Logger\LegacyLogger;
 // So extensions (and other code) can check whether they're running in API mode
 define( 'MW_API', true );
 
-// Bail on old versions of PHP, or if composer has not been run yet to install
-// dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
-require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
-wfEntryPointCheck( 'api.php' );
-
 require __DIR__ . '/includes/WebStart.php';
 
 $starttime = microtime( true );
index 15f1b10..190555a 100644 (file)
@@ -36,16 +36,13 @@ $wgAutoloadLocalClasses = array(
        'ApiFeedWatchlist' => __DIR__ . '/includes/api/ApiFeedWatchlist.php',
        'ApiFileRevert' => __DIR__ . '/includes/api/ApiFileRevert.php',
        'ApiFormatBase' => __DIR__ . '/includes/api/ApiFormatBase.php',
-       'ApiFormatDbg' => __DIR__ . '/includes/api/ApiFormatDbg.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',
        'ApiFormatXml' => __DIR__ . '/includes/api/ApiFormatXml.php',
        'ApiFormatXmlRsd' => __DIR__ . '/includes/api/ApiRsd.php',
-       'ApiFormatYaml' => __DIR__ . '/includes/api/ApiFormatYaml.php',
        'ApiHelp' => __DIR__ . '/includes/api/ApiHelp.php',
        'ApiHelpParamValueMessage' => __DIR__ . '/includes/api/ApiHelpParamValueMessage.php',
        'ApiImageRotate' => __DIR__ . '/includes/api/ApiImageRotate.php',
index bf4d402..6d90d3e 100644 (file)
@@ -21,7 +21,7 @@
                "ext-iconv": "*",
                "liuggio/statsd-php-client": "1.0.16",
                "mediawiki/at-ease": "1.1.0",
-               "oojs/oojs-ui": "0.13.2",
+               "oojs/oojs-ui": "0.13.3",
                "oyejorge/less.php": "1.7.0.9",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
index 41cf488..7c79e72 100644 (file)
@@ -245,7 +245,7 @@ $user: the User object about to be created (read-only, incomplete)
 
 'AbortAutoblock': Return false to cancel an autoblock.
 $autoblockip: The IP going to be autoblocked.
-$block: The block from which the autoblock is coming.
+&$block: The block from which the autoblock is coming.
 
 'AbortChangePassword': Return false to cancel password change.
 $user: the User object to which the password change is occuring
@@ -326,7 +326,7 @@ just before adding its HTML to parser output.
 $parser: Parser object that called the hook
 $ig: Gallery, an object of one of the gallery classes (inheriting from
   ImageGalleryBase)
-$html: HTML generated by the gallery
+&$html: HTML generated by the gallery
 
 'AlternateEdit': Before checking if a user can edit a page and before showing
 the edit form ( EditPage::edit() ). This is triggered on &action=edit.
@@ -469,7 +469,7 @@ function is func($pageid, $title), where $pageid is the page ID of the page the
 token is requested for and $title is the associated Title object. In the hook,
 just add your callback to the $tokenFunctions array and return true (returning
 false makes no sense).
-$tokenFunctions: array(action => callback)
+&$tokenFunctions: array(action => callback)
 
 'APIQueryRecentChangesTokens': DEPRECATED! Use ApiQueryTokensRegisterTypes
 instead.
@@ -482,7 +482,7 @@ page associated to the revision the token is requested for, $title the
 associated Title object and $rc the associated RecentChange object. In the
 hook, just add your callback to the $tokenFunctions array and return true
 (returning false makes no sense).
-$tokenFunctions: array(action => callback)
+&$tokenFunctions: array(action => callback)
 
 'APIQueryRevisionsTokens': DEPRECATED! Use ApiQueryTokensRegisterTypes instead.
 Use this hook to add custom tokens to prop=revisions. Every token has an
@@ -494,7 +494,7 @@ page associated to the revision the token is requested for, $title the
 associated Title object and $rev the associated Revision object. In the hook,
 just add your callback to the $tokenFunctions array and return true (returning
 false makes no sense).
-$tokenFunctions: array(action => callback)
+&$tokenFunctions: array(action => callback)
 
 'APIQuerySiteInfoGeneralInfo': Use this hook to add extra information to the
 sites general information.
@@ -518,7 +518,7 @@ false if the user isn't allowed to obtain it. The prototype of the callback
 function is func($user) where $user is the User object. In the hook, just add
 your callback to the $tokenFunctions array and return true (returning false
 makes no sense).
-$tokenFunctions: array(action => callback)
+&$tokenFunctions: array(action => callback)
 
 'ApiRsdServiceApis': Add or remove APIs from the RSD services list. Each service
 should have its own entry in the $apis array and have a unique name, passed as
@@ -541,12 +541,12 @@ $logTypes: Array of log types being queried
 'ArticleAfterFetchContent': DEPRECATED! Use ArticleAfterFetchContentObject
 instead.
 After fetching content of an article from the database.
-$article: the article (object) being loaded from the database
+&$article: the article (object) being loaded from the database
 &$content: the content (string) of the article
 
 'ArticleAfterFetchContentObject': After fetching content of an article from the
 database.
-$article: the article (object) being loaded from the database
+&$article: the article (object) being loaded from the database
 &$content: the content of the article, as a Content object
 
 'ArticleConfirmDelete': Before writing the confirmation form for article
@@ -568,12 +568,12 @@ $title: title of the page
 $output: reference to $wgOut
 
 'ArticleDelete': Before an article is deleted.
-$wikiPage: the WikiPage (object) being deleted
-$user: the user (object) deleting the article
-$reason: the reason (string) the article is being deleted
-$error: if the deletion was prohibited, the (raw HTML) error message to display
+&$wikiPage: the WikiPage (object) being deleted
+&$user: the user (object) deleting the article
+&$reason: the reason (string) the article is being deleted
+&$error: if the deletion was prohibited, the (raw HTML) error message to display
   (added in 1.13)
-$status: Status object, modify this to throw an error. Overridden by $error
+&$status: Status object, modify this to throw an error. Overridden by $error
   (added in 1.20)
 $suppress: Whether this is a suppression deletion or not (added in 1.27)
 
@@ -582,8 +582,8 @@ $title: Title of the article that has been deleted.
 $outputPage: OutputPage that can be used to append the output.
 
 'ArticleDeleteComplete': After an article is deleted.
-$wikiPage: the WikiPage that was deleted
-$user: the user that deleted the article
+&$wikiPage: the WikiPage that was deleted
+&$user: the user that deleted the article
 $reason: the reason the article was deleted
 $id: id of the article that was deleted
 $content: the Content of the deleted page
@@ -596,19 +596,19 @@ $recipient: User (object) who's talk page was edited
 
 'ArticleEditUpdates': When edit updates (mainly link tracking) are made when an
 article has been changed.
-$wikiPage: the WikiPage (object)
-$editInfo: data holder that includes the parser output ($editInfo->output) for
+&$wikiPage: the WikiPage (object)
+&$editInfo: data holder that includes the parser output ($editInfo->output) for
   that page after the change
 $changed: bool for if the page was changed
 
 'ArticleEditUpdatesDeleteFromRecentchanges': Before deleting old entries from
 recentchanges table, return false to not delete old entries.
-$wikiPage: WikiPage (object) being modified
+&$wikiPage: WikiPage (object) being modified
 
 'ArticleFromTitle': when creating an article object from a title object using
 Wiki::articleFromTitle().
-$title: Title (object) used to create the article object
-$article: Article (object) that will be returned
+&$title: Title (object) used to create the article object
+&$article: Article (object) that will be returned
 $context: IContextSource (object)
 
 'ArticleInsertComplete': DEPRECATED! Use PageContentInsertComplete.
@@ -628,34 +628,34 @@ $targetTitle: target title (object)
 $destTitle: destination title (object)
 
 'ArticlePageDataAfter': After loading data of an article from the database.
-$wikiPage: WikiPage (object) whose data were loaded
-$row: row (object) returned from the database server
+&$wikiPage: WikiPage (object) whose data were loaded
+&$row: row (object) returned from the database server
 
 'ArticlePageDataBefore': Before loading data of an article from the database.
-$wikiPage: WikiPage (object) that data will be loaded
-$fields: fields (array) to load from the database
+&$wikiPage: WikiPage (object) that data will be loaded
+&$fields: fields (array) to load from the database
 
 'ArticlePrepareTextForEdit': Called when preparing text to be saved.
 $wikiPage: the WikiPage being saved
 $popts: parser options to be used for pre-save transformation
 
 'ArticleProtect': Before an article is protected.
-$wikiPage: the WikiPage being protected
-$user: the user doing the protection
+&$wikiPage: the WikiPage being protected
+&$user: the user doing the protection
 $protect: Set of restriction keys
 $reason: Reason for protect
 
 'ArticleProtectComplete': After an article is protected.
-$wikiPage: the WikiPage that was protected
-$user: the user who did the protection
+&$wikiPage: the WikiPage that was protected
+&$user: the user who did the protection
 $protect: Set of restriction keys
 $reason: Reason for protect
 
 'ArticlePurge': Before executing "&action=purge".
-$wikiPage: WikiPage (object) to purge
+&$wikiPage: WikiPage (object) to purge
 
 'ArticleRevisionUndeleted': After an article revision is restored.
-$title: the article title
+&$title: the article title
 $revision: the revision
 $oldPageID: the page ID of the revision when archived (may be null)
 
@@ -695,7 +695,7 @@ $status: Status object about to be returned by doEditContent()
 $baseRevId: the rev ID (or false) this edit was based on
 
 'ArticleUndelete': When one or more revisions of an article are restored.
-$title: Title corresponding to the article restored
+&$title: Title corresponding to the article restored
 $create: Whether or not the restoration caused the page to be created (i.e. it
   didn't exist before).
 $comment: The comment associated with the undeletion.
@@ -708,7 +708,7 @@ $user: User who is performing the log action
 
 'ArticleUpdateBeforeRedirect': After a page is updated (usually on save), before
 the user is redirected back to the page.
-&$article: the article
+$article: the article
 &$sectionanchor: The section anchor link (e.g. "#overview" )
 &$extraq: Extra query parameters which can be added via hooked functions
 
@@ -734,7 +734,7 @@ viewing.
 
 'ArticleViewRedirect': Before setting "Redirected from ..." subtitle when a
 redirect was followed.
-$article: target article (object)
+&$article: target article (object)
 
 'AuthPluginAutoCreate': Called when creating a local account for an user logged
 in from an external authentication method.
@@ -748,7 +748,7 @@ Gives a chance for an extension to set it programmatically to a variable class.
 $type: condition type
 $args: arguments
 $user: user
-$result: result of checking autopromote condition
+&$result: result of checking autopromote condition
 
 'BacklinkCacheGetConditions': Allows to set conditions for query when links to
 certain title are fetched.
@@ -796,7 +796,7 @@ $context: IContextSource object
 'BeforeInitialize': Before anything is initialized in
 MediaWiki::performRequest().
 &$title: Title being used for request
-$unused: null
+&$unused: null
 &$output: OutputPage object
 &$user: User
 $request: WebRequest object
@@ -852,8 +852,8 @@ $image: File
 &$mto: null, set to a MediaTransformOutput
 
 'BlockIp': Before an IP address or user is blocked.
-$block: the Block object about to be saved
-$user: the user _doing_ the block (not the one being blocked)
+&$block: the Block object about to be saved
+&$user: the user _doing_ the block (not the one being blocked)
 &$reason: if the hook is aborted, the error message to be returned in an array
 
 'BlockIpComplete': After an IP address or user is blocked.
@@ -891,7 +891,7 @@ $category: Category that page was removed from
 $wikiPage: WikiPage that was removed
 
 'CategoryPageView': Before viewing a categorypage in CategoryPage::view.
-$catpage: CategoryPage instance
+&$catpage: CategoryPage instance
 
 'CategoryViewer::doCategoryQuery': After querying for pages to be displayed
 in a Category page. Gives extensions the opportunity to batch load any
@@ -1070,7 +1070,7 @@ $article: Article being edited
 $user: User performing the edit
 
 'DatabaseOraclePostInit': Called after initialising an Oracle database
-&$db: the DatabaseOracle object
+$db: the DatabaseOracle object
 
 'DeletedContribsPager::reallyDoQuery': Called before really executing the query
 for Special:DeletedContributions
@@ -1102,8 +1102,8 @@ $newRev: Revision object of the "new" revision
 
 'DisplayOldSubtitle': before creating subtitle when browsing old versions of
 an article
-$article: article (object) being viewed
-$oldid: oldid (int) being viewed
+&$article: article (object) being viewed
+&$oldid: oldid (int) being viewed
 
 'DoEditSectionLink': DEPRECATED! Use SkinEditSectionLinks instead.
 Override the HTML generated for section edit links
@@ -1173,16 +1173,16 @@ return value is ignored (should always return true)
 
 'EditPage::showEditForm:fields': allows injection of form field into edit form
 Return value is ignored (should always return true)
-$editor: the EditPage instance for reference
-$out: an OutputPage instance to write to
+&$editor: the EditPage instance for reference
+&$out: an OutputPage instance to write to
 
 'EditPage::showEditForm:initial': before showing the edit form
 Return false to halt editing; you'll need to handle error messages, etc.
 yourself. Alternatively, modifying $error and returning true will cause the
 contents of $error to be echoed at the top of the edit form as wikitext.
 Return true without altering $error to allow the edit to proceed.
-$editor: EditPage instance (object)
-$out: an OutputPage instance to write to
+&$editor: EditPage instance (object)
+&$out: an OutputPage instance to write to
 
 'EditPage::showReadOnlyForm:initial': similar to EditPage::showEditForm:initial
 but for the read-only 'view source' variant of the edit form.
@@ -1267,21 +1267,21 @@ $title: title of page being edited
 'EmailConfirmed': When checking that the user's email address is "confirmed".
 This runs before the other checks, such as anonymity and the real check; return
 true to allow those checks to occur, and false if checking is done.
-$user: User being checked
-$confirmed: Whether or not the email address is confirmed
+&$user: User being checked
+&$confirmed: Whether or not the email address is confirmed
 
 'EmailUser': Before sending email from one user to another.
-$to: MailAddress object of receiving user
-$from: MailAddress object of sending user
-$subject: subject of the mail
-$text: text of the mail
+&$to: MailAddress object of receiving user
+&$from: MailAddress object of sending user
+&$subject: subject of the mail
+&$text: text of the mail
 &$error: Out-param for an error
 
 'EmailUserCC': Before sending the copy of the email to the author.
-$to: MailAddress object of receiving user
-$from: MailAddress object of sending user
-$subject: subject of the mail
-$text: text of the mail
+&$to: MailAddress object of receiving user
+&$from: MailAddress object of sending user
+&$subject: subject of the mail
+&$text: text of the mail
 
 'EmailUserComplete': After sending email from one user to another.
 $to: MailAddress object of receiving user
@@ -1290,7 +1290,7 @@ $subject: subject of the mail
 $text: text of the mail
 
 'EmailUserForm': After building the email user form object.
-$form: HTMLForm object
+&$form: HTMLForm object
 
 'EmailUserPermissionsErrors': to retrieve permissions errors for emailing a
 user.
@@ -1343,12 +1343,12 @@ $user: User the list is being fetched for
   return false override the list derivative used)
 
 'FileDeleteComplete': When a file is deleted.
-$file: reference to the deleted file
-$oldimage: in case of the deletion of an old image, the name of the old file
-$article: in case all revisions of the file are deleted a reference to the
+&$file: reference to the deleted file
+&$oldimage: in case of the deletion of an old image, the name of the old file
+&$article: in case all revisions of the file are deleted a reference to the
   WikiFilePage associated with the file.
-$user: user who performed the deletion
-$reason: reason
+&$user: user who performed the deletion
+&$reason: reason
 
 'FileTransformed': When a file is transformed and moved into storage.
 $file: reference to the File object
@@ -1389,11 +1389,11 @@ gallery.
 
 'GetAutoPromoteGroups': When determining which autopromote groups a user is
 entitled to be in.
-&$user: user to promote.
+$user: user to promote.
 &$promote: groups that will be added.
 
 'GetBlockedStatus': after loading blocking status of an user from the database
-$user: user (object) being checked
+&$user: user (object) being checked
 
 'GetCacheVaryCookies': Get cookies that should vary cache options.
 $out: OutputPage object
@@ -1402,8 +1402,8 @@ $out: OutputPage object
 
 'GetCanonicalURL': Modify fully-qualified URLs used for IRC and e-mail
 notifications.
-$title: Title object of page
-$url: string value as output (out parameter, can modify)
+&$title: Title object of page
+&$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getCanonicalURL()
 
 'GetDefaultSortkey': Override the default sortkey for a page.
@@ -1439,8 +1439,8 @@ $single: Only extract the current language; if false, the prop value should
 &$maxCacheTime: how long the results can be cached
 
 'GetFullURL': Modify fully-qualified URLs used in redirects/export/offsite data.
-$title: Title object of page
-$url: string value as output (out parameter, can modify)
+&$title: Title object of page
+&$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getFullURL()
 
 'GetHumanTimestamp': Pre-emptively override the human-readable timestamp
@@ -1453,8 +1453,8 @@ $user: User whose preferences are being used to make timestamp
 $lang: Language that will be used to render the timestamp
 
 'GetInternalURL': Modify fully-qualified URLs used for squid cache purging.
-$title: Title object of page
-$url: string value as output (out parameter, can modify)
+&$title: Title object of page
+&$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getInternalURL()
 
 'GetIP': modify the ip of the current user (called only once).
@@ -1470,17 +1470,17 @@ working with internal urls (non-interwiki) then it may be preferable to work
 with the GetLocalURL::Internal or GetLocalURL::Article hooks as GetLocalURL can
 be buggy for internal urls on render if you do not re-implement the horrible
 hack that Title::getLocalURL uses in your own extension.
-$title: Title object of page
+&$title: Title object of page
 &$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getLocalURL()
 
 'GetLocalURL::Article': Modify local URLs specifically pointing to article paths
 without any fancy queries or variants.
-$title: Title object of page
+&$title: Title object of page
 &$url: string value as output (out parameter, can modify)
 
 'GetLocalURL::Internal': Modify local URLs to internal pages.
-$title: Title object of page
+&$title: Title object of page
 &$url: string value as output (out parameter, can modify)
 $query: query options passed to Title::getLocalURL()
 
@@ -1527,10 +1527,10 @@ For consistency, error messages
 should be plain text with no special coloring, bolding, etc. to show that
 they're errors; presenting them properly to the user as errors is done by the
 caller.
-$title: Title object being checked against
-$user: Current user object
+&$title: Title object being checked against
+&$user: Current user object
 $action: Action being checked
-$result: User permissions error to add. If none, return true.
+&$result: User permissions error to add. If none, return true.
 
 'getUserPermissionsErrorsExpensive': Equal to getUserPermissionsErrors, but is
 called only if expensive checks are enabled. Add a permissions error when
@@ -1541,10 +1541,10 @@ to provide machine-readable details for the API). For consistency, error
 messages should be plain text with no
 special coloring, bolding, etc. to show that they're errors; presenting them
 properly to the user as errors is done by the caller.
-$title: Title object being checked against
-$user: Current user object
+&$title: Title object being checked against
+&$user: Current user object
 $action: Action being checked
-$result: User permissions error to add. If none, return true.
+&$result: User permissions error to add. If none, return true.
 
 'GitViewers': Called when generating the list of git viewers for
 Special:Version, use this to change the list.
@@ -1575,8 +1575,8 @@ just modify a few things using call-by-reference.
 
 'ImageOpenShowImageInlineBefore': Call potential extension just before showing
 the image on an image page.
-$imagePage: ImagePage object ($this)
-$output: $wgOut
+&$imagePage: ImagePage object ($this)
+&$output: $wgOut
 
 'ImagePageAfterImageLinks': Called after the image links section on an image
 page is built.
@@ -1620,7 +1620,7 @@ $logInfo: Array of information
 'ImportHandlePageXMLTag': When parsing a XML tag in a page.
 Return false to stop further processing of the tag
 $reader: XMLReader object
-$pageInfo: Array of information
+&$pageInfo: Array of information
 
 'ImportHandleRevisionXMLTag': When parsing a XML tag in a page revision.
 Return false to stop further processing of the tag
@@ -1647,11 +1647,11 @@ $context: IContextSource object
 &$pageInfo: Array of information
 
 'InitializeArticleMaybeRedirect': MediaWiki check to see if title is a redirect.
-$title: Title object for the current page
-$request: WebRequest
-$ignoreRedirect: boolean to skip redirect check
-$target: Title/string of redirect target
-$article: Article object
+&$title: Title object for the current page
+&$request: WebRequest
+&$ignoreRedirect: boolean to skip redirect check
+&$target: Title/string of redirect target
+&$article: Article object
 
 'InternalParseBeforeLinks': during Parser's internalParse method before links
 but after nowiki/noinclude/includeonly/onlyinclude and other processings.
@@ -1684,11 +1684,11 @@ Callee may modify $url and $query, URL will be constructed as $url . $query
 $rc: RecentChange object that triggered url generation
 
 'IsFileCacheable': Override the result of Article::isFileCacheable() (if true)
-$article: article (object) being checked
+&$article: article (object) being checked
 
 'IsTrustedProxy': Override the result of wfIsTrustedProxy()
-$ip: IP being check
-$result: Change this value to override the result of wfIsTrustedProxy()
+&$ip: IP being check
+&$result: Change this value to override the result of wfIsTrustedProxy()
 
 'IsUploadAllowedFromUrl': Override the result of UploadFromUrl::isAllowedUrl()
 $url: URL used to upload from
@@ -1711,7 +1711,7 @@ $code: The language code or the language we're looking for a messages file for
 'LanguageGetMagic': DEPRECATED! Use $magicWords in a file listed in
 $wgExtensionMessagesFiles instead.
 Use this to define synonyms of magic words depending of the language
-$magicExtensions: associative array of magic words synonyms
+&$magicExtensions: associative array of magic words synonyms
 $lang: language code (string)
 
 'LanguageGetNamespaces': Provide custom ordering for namespaces or
@@ -1722,7 +1722,7 @@ CanonicalNamespaces for that.
 'LanguageGetSpecialPageAliases': DEPRECATED! Use $specialPageAliases in a file
 listed in $wgExtensionMessagesFiles instead.
 Use to define aliases of special pages names depending of the language
-$specialPageAliases: associative array of magic words synonyms
+&$specialPageAliases: associative array of magic words synonyms
 $lang: language code (string)
 
 'LanguageGetTranslatedLanguageNames': Provide translated language names.
@@ -1816,15 +1816,15 @@ including delete and insert, has completed for all link tables
 &$tags: The list of tags.
 
 'LoadExtensionSchemaUpdates': Called during database installation and updates.
-&$updater: A DatabaseUpdater subclass
+$updater: A DatabaseUpdater subclass
 
 'LocalFile::getHistory': Called before file history query performed.
-$file: the File object
-$tables: tables
-$fields: select fields
-$conds: conditions
-$opts: query options
-$join_conds: JOIN conditions
+&$file: the File object
+&$tables: tables
+&$fields: select fields
+&$conds: conditions
+&$opts: query options
+&$join_conds: JOIN conditions
 
 'LocalFilePurgeThumbnails': Called before thumbnails for a local file a purged.
 $file: the File object
@@ -1942,7 +1942,7 @@ Special:LonelyPages.
 &$joinConds: join conditions for the query
 
 'MagicWordwgVariableIDs': When defining new magic words IDs.
-$variableIDs: array of strings
+&$variableIDs: array of strings
 
 'MaintenanceRefreshLinksInit': before executing the refreshLinks.php maintenance
 script.
@@ -1958,17 +1958,17 @@ $out: The OutputPage which called the hook, can be used to get the real title.
 
 'MarkPatrolled': Before an edit is marked patrolled.
 $rcid: ID of the revision to be marked patrolled
-$user: the user (object) marking the revision as patrolled
+&$user: the user (object) marking the revision as patrolled
 $wcOnlySysopsCanPatrol: config setting indicating whether the user needs to be a
   sysop in order to mark an edit patrolled.
-$auto true if the edit is being marked as patrolled automatically
+$auto: true if the edit is being marked as patrolled automatically
 
 'MarkPatrolledComplete': After an edit is marked patrolled.
 $rcid: ID of the revision marked as patrolled
-$user: user (object) who marked the edit patrolled
+&$user: user (object) who marked the edit patrolled
 $wcOnlySysopsCanPatrol: config setting indicating whether the user must be a
   sysop to patrol the edit.
-$auto true if the edit is being marked as patrolled automatically
+$auto: true if the edit is being marked as patrolled automatically
 
 'MediaWikiPerformAction': Override MediaWiki::performAction(). Use this to do
 something completely different, after the basic globals have been set up, but
@@ -1993,7 +1993,7 @@ $text: new contents of the page.
 
 'MessagesPreLoad': When loading a message from the database.
 $title: title of the message (string)
-$message: value (string), change it to the message you want to define
+&$message: value (string), change it to the message you want to define
 
 'MimeMagicGuessFromContent': Allows MW extensions guess the MIME by content.
 $mimeMagic: Instance of MimeMagic.
@@ -2043,7 +2043,7 @@ $status: Status object to pass error messages to
 'NamespaceIsMovable': Called when determining if it is possible to pages in a
 namespace.
 $index: Integer; the index of the namespace being checked.
-$result: Boolean; whether MediaWiki currently thinks that pages in this
+&$result: Boolean; whether MediaWiki currently thinks that pages in this
   namespace are movable. Hooks may change this value to override the return
   value of MWNamespace::isMovable().
 
@@ -2076,7 +2076,7 @@ displayed.
 return false to omit the line from RecentChanges and Watchlist special pages.
 &$changeslist: The OldChangesList instance.
 &$s: HTML of the form "<li>...</li>" containing one RC entry.
-&$rc: The RecentChange object.
+$rc: The RecentChange object.
 &$classes: array of css classes for the <li> element
 
 'OpenSearchUrls': Called when constructing the OpenSearch description XML. Hooks
@@ -2096,13 +2096,13 @@ $parserOutput: ParserOutput resulting from rendering the page.
 
 'OtherBlockLogLink': Get links to the block log from extensions which blocks
 users and/or IP addresses too.
-$otherBlockLink: An array with links to other block logs
+&$otherBlockLink: An array with links to other block logs
 $ip: The requested IP address or username
 
 'OutputPageBeforeHTML': A page has been processed by the parser and the
 resulting HTML is about to be displayed.
-$parserOutput: the parserOutput (object) that corresponds to the page
-$text: the text that will be displayed, in HTML (string)
+&$parserOutput: the parserOutput (object) that corresponds to the page
+&$text: the text that will be displayed, in HTML (string)
 
 'OutputPageBodyAttributes': Called when OutputPage::headElement is creating the
 body tag to allow for extensions to add attributes to the body of the page they
@@ -2120,14 +2120,14 @@ since the last visit.
 'OutputPageMakeCategoryLinks': Links are about to be generated for the page's
 categories. Implementations should return false if they generate the category
 links, so the default link generation is skipped.
-$out: OutputPage instance (object)
+&$out: OutputPage instance (object)
 $categories: associative array, keys are category names, values are category
   types ("normal" or "hidden")
-$links: array, intended to hold the result. Must be an associative array with
+&$links: array, intended to hold the result. Must be an associative array with
   category types as keys and arrays of HTML links as values.
 
 'OutputPageParserOutput': after adding a parserOutput to $wgOut
-$out: OutputPage instance (object)
+&$out: OutputPage instance (object)
 $parserOutput: parserOutput instance being added in $out
 
 'PageContentInsertComplete': After a new article is created.
@@ -2171,7 +2171,7 @@ $status: Status object about to be returned by doEditContent()
 $baseRevId: the rev ID (or false) this edit was based on
 
 'PageHistoryBeforeList': When a history page list is about to be constructed.
-$article: the article that the history is loading for
+&$article: the article that the history is loading for
 $context: RequestContext object
 
 'PageHistoryLineEnding': Right before the end <li> is added to a history line.
@@ -2189,8 +2189,8 @@ $result: a ResultWrapper representing the query result
 
 'PageHistoryPager::getQueryInfo': when a history pager query parameter set is
 constructed.
-$pager: the pager
-$queryInfo: the query parameters
+&$pager: the pager
+&$queryInfo: the query parameters
 
 'PageRenderingHash': Alter the parser cache option hash key. A parser extension
 which depends on user options should install this hook and append its values to
@@ -2207,39 +2207,39 @@ $user: User (object) for the user who is viewing.
 
 'ParserAfterParse': Called from Parser::parse() just after the call to
 Parser::internalParse() returns.
-$parser: parser object
-$text: text being parsed
-$stripState: stripState used (object)
+&$parser: parser object
+&$text: text being parsed
+&$stripState: stripState used (object)
 
 'ParserAfterStrip': Called at end of parsing time.
 TODO: No more strip, deprecated ?
-$parser: parser object
-$text: text being parsed
-$stripState: stripState used (object)
+&$parser: parser object
+&$text: text being parsed
+&$stripState: stripState used (object)
 
 'ParserAfterTidy': Called after Parser::tidy() in Parser::parse()
-$parser: Parser object being used
-$text: text that will be returned
+&$parser: Parser object being used
+&$text: text that will be returned
 
 'ParserAfterUnstrip': Called after the first unstripGeneral() in
 Parser::internalParseHalfParsed()
-$parser: Parser object being used
-$text: text that will be returned
+&$parser: Parser object being used
+&$text: text that will be returned
 
 'ParserBeforeInternalParse': Called at the beginning of Parser::internalParse().
-$parser: Parser object
-$text: text to parse
-$stripState: StripState instance being used
+&$parser: Parser object
+&$text: text to parse
+&$stripState: StripState instance being used
 
 'ParserBeforeStrip': Called at start of parsing time.
 TODO: No more strip, deprecated ?
-$parser: parser object
-$text: text being parsed
-$stripState: stripState used (object)
+&$parser: parser object
+&$text: text being parsed
+&$stripState: stripState used (object)
 
 'ParserBeforeTidy': Called before tidy and custom tags replacements.
-$parser: Parser object being used
-$text: actual text
+&$parser: Parser object being used
+&$text: actual text
 
 'ParserCacheSaveComplete': Called after a ParserOutput has been committed to
 the parser cache.
@@ -2250,7 +2250,7 @@ $popts: ParserOptions used for generating $parserOutput
 $revId: ID of the revision that was parsed to create $parserOutput
 
 'ParserClearState': Called at the end of Parser::clearState().
-$parser: Parser object being cleared
+&$parser: Parser object being cleared
 
 'ParserCloned': Called when the parser is cloned.
 $parser: Newly-cloned Parser object
@@ -2260,22 +2260,22 @@ $parser: Newly-cloned Parser object
 
 'ParserGetVariableValueSwitch': Called when the parser need the value of a
 custom magic word
-$parser: Parser object
-$varCache: array to store the value in case of multiples calls of the
+&$parser: Parser object
+&$varCache: array to store the value in case of multiples calls of the
   same magic word
-$index: index (string) of the magic
-$ret: value of the magic word (the hook should set it)
-$frame: PPFrame object to use for expanding any template variables
+&$index: index (string) of the magic
+&$ret: value of the magic word (the hook should set it)
+&$frame: PPFrame object to use for expanding any template variables
 
 'ParserGetVariableValueTs': Use this to change the value of the time for the
 {{LOCAL...}} magic word.
-$parser: Parser object
-$time: actual time (timestamp)
+&$parser: Parser object
+&$time: actual time (timestamp)
 
 'ParserGetVariableValueVarCache': use this to change the value of the variable
 cache or return false to not use it.
-$parser: Parser object
-$varCache: variable cache (array)
+&$parser: Parser object
+&$varCache: variable cache (array)
 
 'ParserLimitReport': DEPRECATED! Use ParserLimitReportPrepare and
 ParserLimitReportFormat instead.
@@ -2325,7 +2325,7 @@ $showEditLinks: boolean describing whether this section has an edit link
 
 'ParserTestParser': Called when creating a new instance of Parser in
 tests/parser/parserTest.inc.
-$parser: Parser object created
+&$parser: Parser object created
 
 'ParserTestTables': Alter the list of tables to duplicate when parser tests are
 run. Use when page save hooks require the presence of custom tables to ensure
@@ -2398,9 +2398,9 @@ $offset: number of results to offset from the beginning
 
 'PrefixSearchExtractNamespace': Called if core was not able to extract a
 namespace from the search string so that extensions can attempt it.
-$namespaces: array of int namespace keys to search in (change this if you can
+&$namespaces: array of int namespace keys to search in (change this if you can
   extract namespaces)
-$search: search term (replace this with term without the namespace if you can
+&$search: search term (replace this with term without the namespace if you can
   extract one)
 
 'PrefsEmailAudit': Called when user changes their email address.
@@ -2416,7 +2416,7 @@ $error: error (string) 'badretype', 'wrongpassword', 'error' or 'success'
 'ProtectionForm::buildForm': Called after all protection type fieldsets are made
 in the form.
 $article: the title being (un)protected
-$output: a string of the form HTML so far
+&$output: a string of the form HTML so far
 
 'ProtectionForm::save': Called when a protection form is submitted.
 $article: the Page being (un)protected
@@ -2440,7 +2440,7 @@ random pages.
 &$text: The text that's going to be the output
 
 'RecentChange_save': Called at the end of RecentChange::save().
-$recentChange: RecentChange object
+&$recentChange: RecentChange object
 
 'RedirectSpecialArticleRedirectParams': Lets you alter the set of parameter
 names such as "oldid" that are preserved when using redirecting special pages
@@ -2598,7 +2598,8 @@ $terms: Search terms, for highlighting
 &$text: Text to use for the link
 $result: The search result
 $terms: The search terms entered
-$page: The SpecialSearch object.
+$page: The SpecialSearch object
+&$query: Query string to be appended to the link
 
 'SidebarBeforeOutput': Allows to edit sidebar just before it is output by skins.
 Warning: This hook is run on each display. You should consider to use
@@ -2719,8 +2720,8 @@ page output.
 &$tpl: QuickTemplate engine object
 
 'SkinTemplatePreventOtherActiveTabs': Use this to prevent showing active tabs.
-$sktemplate: SkinTemplate object
-$res: set to true to prevent active tabs
+&$sktemplate: SkinTemplate object
+&$res: set to true to prevent active tabs
 
 'SkinTemplateTabAction': Override SkinTemplate::tabAction().
 You can either create your own array, or alter the parameters for
@@ -2737,7 +2738,7 @@ $checkEdit: Whether or not the action=edit query should be added if appropriate.
 
 'SkinTemplateToolboxEnd': Called by SkinTemplate skins after toolbox links have
 been rendered (useful for adding more).
-$sk: The QuickTemplate based skin template running the hook.
+&$sk: The QuickTemplate based skin template running the hook.
 $dummy: Called when SkinTemplateToolboxEnd is used from a BaseTemplate skin,
   extensions that add support for BaseTemplateToolbox should watch for this
   dummy parameter with "$dummy=false" in their code and return without echoing
@@ -2745,7 +2746,7 @@ $dummy: Called when SkinTemplateToolboxEnd is used from a BaseTemplate skin,
 
 'SoftwareInfo': Called by Special:Version for returning information about the
 software.
-$software: The array of software in format 'name' => 'version'. See
+&$software: The array of software in format 'name' => 'version'. See
   SpecialVersion::softwareInformation().
 
 'SpecialBlockModifyFormFields': Add more fields to Special:Block
@@ -2760,27 +2761,27 @@ $sp: SpecialPage instance, providing context
 'SpecialListusersDefaultQuery': Called right before the end of
 UsersPager::getDefaultQuery().
 $pager: The UsersPager instance
-$query: The query array to be returned
+&$query: The query array to be returned
 
 'SpecialListusersFormatRow': Called right before the end of
 UsersPager::formatRow().
-$item: HTML to be returned. Will be wrapped in <li></li> after the hook finishes
+&$item: HTML to be returned. Will be wrapped in <li></li> after the hook finishes
 $row: Database row object
 
 'SpecialListusersHeader': Called before closing the <fieldset> in
 UsersPager::getPageHeader().
 $pager: The UsersPager instance
-$out: The header HTML
+&$out: The header HTML
 
 'SpecialListusersHeaderForm': Called before adding the submit button in
 UsersPager::getPageHeader().
 $pager: The UsersPager instance
-$out: The header HTML
+&$out: The header HTML
 
 'SpecialListusersQueryInfo': Called right before the end of.
 UsersPager::getQueryInfo()
 $pager: The UsersPager instance
-$query: The query array to be returned
+&$query: The query array to be returned
 
 'SpecialLogAddLogSearchRelations': Add log relations to the current log
 $type: String of the log type
@@ -2788,9 +2789,9 @@ $request: WebRequest object for getting the value provided by the current user
 &$qc: Array for query conditions to add
 
 'SpecialMovepageAfterMove': Called after moving a page.
-$movePage: MovePageForm object
-$oldTitle: old title (object)
-$newTitle: new title (object)
+&$movePage: MovePageForm object
+&$oldTitle: old title (object)
+&$newTitle: new title (object)
 
 'SpecialNewpagesConditions': Called when building sql query for
 Special:NewPages.
@@ -2809,7 +2810,7 @@ $special: the special page object
 
 'SpecialPage_initList': Called when setting up SpecialPageFactory::$list, use
 this hook to remove a core special page or conditionally register special pages.
-$list: list (array) of core special pages
+&$list: list (array) of core special pages
 
 'SpecialPageAfterExecute': Called after SpecialPage::execute.
 $special: the SpecialPage object
@@ -2825,7 +2826,7 @@ $name: name of the special page
 
 'SpecialPasswordResetOnSubmit': When executing a form submission on
 Special:PasswordReset.
-$users: array of User objects.
+&$users: array of User objects.
 $data: array of data submitted by the user
 &$error: string, error code (message key) used to describe to error (out
   parameter). The hook needs to return false when setting this, otherwise it
@@ -2933,7 +2934,7 @@ $context: IContextSource object
 
 'SpecialUploadComplete': Called after successfully uploading a file from
 Special:Upload.
-$form: The SpecialUpload object
+&$form: The SpecialUpload object
 
 'SpecialVersionVersionUrl': Called when building the URL for Special:Version.
 $wgVersion: Current $wgVersion for you to use
@@ -3004,7 +3005,7 @@ $title: Title object that is being checked
 'TitleIsCssOrJsPage': DEPRECATED! Use ContentHandlerDefaultModelFor instead.
 Called when determining if a page is a CSS or JS page.
 $title: Title object that is being checked
-$result: Boolean; whether MediaWiki currently thinks this is a CSS/JS page.
+&$result: Boolean; whether MediaWiki currently thinks this is a CSS/JS page.
   Hooks may change this value to override the return value of
   Title::isCssOrJsPage().
 
@@ -3012,7 +3013,7 @@ $result: Boolean; whether MediaWiki currently thinks this is a CSS/JS page.
 that this hook is not called for interwiki pages or pages in immovable
 namespaces: for these, isMovable() always returns false.
 $title: Title object that is being checked
-$result: Boolean; whether MediaWiki currently thinks this page is movable.
+&$result: Boolean; whether MediaWiki currently thinks this page is movable.
   Hooks may change this value to override the return value of
   Title::isMovable().
 
@@ -3020,7 +3021,7 @@ $result: Boolean; whether MediaWiki currently thinks this page is movable.
 Called when determining if a page is a wikitext or should
 be handled by separate handler (via ArticleViewCustom).
 $title: Title object that is being checked
-$result: Boolean; whether MediaWiki currently thinks this is a wikitext page.
+&$result: Boolean; whether MediaWiki currently thinks this is a wikitext page.
   Hooks may change this value to override the return value of
   Title::isWikitextPage()
 
@@ -3030,9 +3031,9 @@ $nt: new title
 $user: user who does the move
 
 'TitleMoveComplete': After moving an article (title).
-$old: old title
-$nt: new title
-$user: user who did the move
+&$old: old title
+&$nt: new title
+&$user: user who did the move
 $pageid: database ID of the page that's been moved
 $redirid: database ID of the created redirect
 $reason: reason for the move
@@ -3089,19 +3090,19 @@ $action: action name
 $article: article "acted on"
 
 'UnwatchArticle': Before a watch is removed from an article.
-$user: user watching
-$page: WikiPage object to be removed
+&$user: user watching
+&$page: WikiPage object to be removed
 &$status: Status object to be returned if the hook returns false
 
 'UnwatchArticleComplete': After a watch is removed from an article.
 $user: user that watched
-$page: WikiPage object that was watched
+&$page: WikiPage object that was watched
 
 'UpdateUserMailerFormattedPageStatus': Before notification email gets sent.
-$formattedPageStatus: list of valid page states
+&$formattedPageStatus: list of valid page states
 
 'UploadComplete': Upon completion of a file upload.
-$uploadBase: UploadBase (or subclass) object. File can be accessed by
+&$uploadBase: UploadBase (or subclass) object. File can be accessed by
   $uploadBase->getLocalFile().
 
 'UploadCreateFromRequest': When UploadBase::createFromRequest has been called.
@@ -3113,16 +3114,16 @@ poke at member variables like $mUploadDescription before the file is saved. Do
 not use this hook to break upload processing. This will return the user to a
 blank form with no error message; use UploadVerification and UploadVerifyFile
 instead.
-$form: UploadForm object
+&$form: UploadForm object
 
 'UploadForm:initial': Before the upload form is generated. You might set the
 member-variables $uploadFormTextTop and $uploadFormTextAfterSummary to inject
 text (HTML) either before or after the editform.
-$form: UploadForm object
+&$form: UploadForm object
 
 'UploadFormInitDescriptor': After the descriptor for the upload form as been
 assembled.
-$descriptor: (array) the HTMLForm descriptor
+&$descriptor: (array) the HTMLForm descriptor
 
 'UploadFormSourceDescriptors': after the standard source inputs have been
 added to the descriptor
@@ -3149,9 +3150,9 @@ $mime: (string) The uploaded file's MIME type, as detected by MediaWiki.
 
 'User::mailPasswordInternal': before creation and mailing of a user's new
 temporary password
-$user: the user who sent the message out
-$ip: IP of the user who sent the message out
-$u: the account whose new password will be set
+&$user: the user who sent the message out
+&$ip: IP of the user who sent the message out
+&$u: the account whose new password will be set
 
 'UserAddGroup': Called when adding a group; return false to override
 stock group addition.
@@ -3165,26 +3166,26 @@ $res: database result used to create the object
 
 'userCan': To interrupt/advise the "user can do X to Y article" check. If you
 want to display an error message, try getUserPermissionsErrors.
-$title: Title object being checked against
-$user: Current user object
+&$title: Title object being checked against
+&$user: Current user object
 $action: Action being checked
-$result: Pointer to result returned if hook returns false. If null is returned,
+&$result: Pointer to result returned if hook returns false. If null is returned,
   userCan checks are continued by internal code.
 
 'UserCanSendEmail': To override User::canSendEmail() permission check.
-$user: User (object) whose permission is being checked
+&$user: User (object) whose permission is being checked
 &$canSend: bool set on input, can override on output
 
 'UserClearNewTalkNotification': Called when clearing the "You have new
 messages!" message, return false to not delete it.
-$user: User (object) that will clear the message
+&$user: User (object) that will clear the message
 $oldid: ID of the talk page revision being viewed (0 means the most recent one)
 
 'UserCreateForm': change to manipulate the login form
-$template: SimpleTemplate instance for the form
+&$template: SimpleTemplate instance for the form
 
 'UserEffectiveGroups': Called in User::getEffectiveGroups().
-$user: User to get groups for
+&$user: User to get groups for
 &$groups: Current effective groups
 
 'UserGetAllRights': After calculating a list of all available rights.
@@ -3281,18 +3282,18 @@ $user: User object
 $user: User object for the logged-in user
 
 'UserLoginComplete': After a user has logged in.
-$user: the user object that was created on login
-$inject_html: Any HTML to inject after the "logged in" message.
+&$user: the user object that was created on login
+&$inject_html: Any HTML to inject after the "logged in" message.
 
 'UserLoginForm': change to manipulate the login form
-$template: SimpleTemplate instance for the form
+&$template: SimpleTemplate instance for the form
 
 'UserLogout': Before a user logs out.
-$user: the user object that is about to be logged out
+&$user: the user object that is about to be logged out
 
 'UserLogoutComplete': After a user has logged out.
-$user: the user object _after_ logout (won't have name, ID, etc.)
-$inject_html: Any HTML to inject after the "logged out" message.
+&$user: the user object _after_ logout (won't have name, ID, etc.)
+&$inject_html: Any HTML to inject after the "logged out" message.
 $oldName: name of the user before logout (string)
 
 'UserMailerChangeReturnPath': Called to generate a VERP return address
@@ -3302,7 +3303,7 @@ $to: Array of MailAddress objects for the recipients
 
 'UserMailerSplitTo': Called in UserMailer::send() to give extensions a chance
 to split up an email with multiple the To: field into separate emails.
-$to: array of MailAddress objects; unset the ones which should be mailed separately
+&$to: array of MailAddress objects; unset the ones which should be mailed separately
 
 'UserMailerTransformContent': Called in UserMailer::send() to change email contents.
 Extensions can block sending the email by returning false and setting $error.
@@ -3342,8 +3343,8 @@ $resetKinds: array containing the kinds of preferences to reset
 
 'UserRetrieveNewTalks': Called when retrieving "You have new messages!"
 message(s).
-$user: user retrieving new talks messages
-$talks: array of new talks page(s)
+&$user: user retrieving new talks messages
+&$talks: array of new talks page(s)
 
 'UserRights': DEPRECATED! Use UserGroupsChanged instead.
 After a user's group memberships are changed.
@@ -3391,13 +3392,13 @@ used to alter the SQL query which gets the list of wanted pages.
 &$query: query array, see QueryPage::getQueryInfo() for format documentation
 
 'WatchArticle': Before a watch is added to an article.
-$user: user that will watch
-$page: WikiPage object to be watched
+&$user: user that will watch
+&$page: WikiPage object to be watched
 &$status: Status object to be returned if the hook returns false
 
 'WatchArticleComplete': After a watch is added to an article.
-$user: user that watched
-$page: WikiPage object watched
+&$user: user that watched
+&$page: WikiPage object watched
 
 'WatchlistEditorBeforeFormRender': Before building the Special:EditWatchlist
 form, used to manipulate the list of pages or preload data based on that list.
@@ -3432,7 +3433,7 @@ run a MediaWiki cli script.
 
 'wgQueryPages': Called when initialising list of QueryPage subclasses, use this
 to add new query pages to be updated with maintenance/updateSpecialPages.php.
-$qp: The list of QueryPages
+&$qp: The list of QueryPages
 
 'WhatLinksHereProps': Allows annotations to be added to WhatLinksHere
 $row: The DB row of the entry.
@@ -3463,7 +3464,7 @@ $title: The title of the page.
 
 'XmlDumpWriterWriteRevision': Called at the end of a revision in an XML dump, to
 add extra metadata.
-$obj: The XmlDumpWriter object.
+&$obj: The XmlDumpWriter object.
 &$out: The text being output.
 $row: The database row for the revision.
 $text: The revision text.
index bf6e245..ec600dc 100644 (file)
@@ -2358,8 +2358,15 @@ $wgMemCachedPersistent = false;
 $wgMemCachedTimeout = 500000;
 
 /**
- * Set this to true to make a local copy of the message cache, for use in
- * addition to memcached. The files will be put in $wgCacheDirectory.
+ * Set this to true to maintain a copy of the message cache on the local server.
+ *
+ * This layer of message cache is in addition to the one configured by $wgMessageCacheType.
+ *
+ * The local copy is put in APC. If APC is not installed, this setting does nothing.
+ *
+ * Note that this is about the message cache, which stores interface messages
+ * maintained as wiki pages. This is separate from the localisation cache for interface
+ * messages provided by the software, which is configured by $wgLocalisationCacheConf.
  */
 $wgUseLocalMessageCache = false;
 
@@ -5285,13 +5292,6 @@ $wgRateLimits = array(
        ),
 );
 
-/**
- * Set to a filename to log rate limiter hits.
- *
- * @deprecated since 1.23, use $wgDebugLogGroups['ratelimit'] instead
- */
-$wgRateLimitLog = null;
-
 /**
  * Array of IPs which should be excluded from rate limits.
  * This may be useful for whitelisting NAT gateways for conferences, etc.
index b5e7e2f..842d276 100644 (file)
@@ -1464,19 +1464,17 @@ class Linker {
                                        $linkText = $text;
                                        $linkTarget = Linker::normalizeSubpageLink( $title, $match[1], $linkText );
 
-                                       if ( $linkTarget !== null ) {
-                                               $target = Title::newFromText( $linkTarget );
-                                               if ( $target ) {
-                                                       if ( $target->getText() == '' && !$target->isExternal()
-                                                               && !$local && $title
-                                                       ) {
-                                                               $newTarget = clone $title;
-                                                               $newTarget->setFragment( '#' . $target->getFragment() );
-                                                               $target = $newTarget;
-                                                       }
-
-                                                       $thelink = Linker::makeCommentLink( $target, $linkText . $inside, $wikiId ) . $trail;
+                                       $target = Title::newFromText( $linkTarget );
+                                       if ( $target ) {
+                                               if ( $target->getText() == '' && !$target->isExternal()
+                                                       && !$local && $title
+                                               ) {
+                                                       $newTarget = clone $title;
+                                                       $newTarget->setFragment( '#' . $target->getFragment() );
+                                                       $target = $newTarget;
                                                }
+
+                                               $thelink = Linker::makeCommentLink( $target, $linkText . $inside, $wikiId ) . $trail;
                                        }
                                }
                                if ( $thelink ) {
index d048b57..d5aac07 100644 (file)
@@ -710,7 +710,7 @@ class MediaWiki {
                // Commit and close up!
                $factory = wfGetLBFactory();
                $factory->commitMasterChanges();
-               $factory->shutdown();
+               $factory->shutdown( LBFactory::SHUTDOWN_NO_CHRONPROT );
 
                wfDebug( "Request ended normally\n" );
        }
index 333d040..41e88c2 100644 (file)
@@ -40,7 +40,9 @@ function wfEntryPointCheck( $entryPoint ) {
                wfPHPVersionError( $entryPoint, $mwVersion, $minimumVersionPHP, $phpVersion );
        }
 
+       // @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
        if ( !file_exists( dirname( __FILE__ ) . '/../vendor/autoload.php' ) ) {
+               // @codingStandardsIgnoreEnd
                wfMissingVendorError( $entryPoint, $mwVersion );
        }
 }
index 007ea89..9fbcf89 100644 (file)
@@ -21,4 +21,6 @@
  * @deprecated 1.25
  * @file
  */
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
index f36635b..e328e9f 100644 (file)
@@ -368,10 +368,7 @@ abstract class PrefixSearch {
                        $ns = NS_MAIN; // if searching on many always default to main
                }
 
-               $t = null;
-               if ( is_string( $search ) ) {
-                       $t = Title::newFromText( $search, $ns );
-               }
+               $t = Title::newFromText( $search, $ns );
 
                $prefix = $t ? $t->getDBkey() : '';
                $dbr = wfGetDB( DB_SLAVE );
index a498817..3b98a65 100644 (file)
@@ -1505,11 +1505,18 @@ class Revision implements IDBAccessObject {
                }
 
                $content = $this->getContent( Revision::RAW );
+               $prefixedDBkey = $title->getPrefixedDBkey();
+               $revId = $this->mId;
 
-               if ( !$content || !$content->isValid() ) {
-                       $t = $title->getPrefixedDBkey();
-
-                       throw new MWException( "Content of $t is not valid! Content model is $model" );
+               if ( !$content ) {
+                       throw new MWException(
+                               "Content of revision $revId ($prefixedDBkey) could not be loaded for validation!"
+                       );
+               }
+               if ( !$content->isValid() ) {
+                       throw new MWException(
+                               "Content of revision $revId ($prefixedDBkey) is not valid! Content model is $model"
+                       );
                }
        }
 
index d826b87..44c1f71 100644 (file)
@@ -474,11 +474,6 @@ if ( $wgCookieSecure === 'detect' ) {
        $wgCookieSecure = ( WebRequest::detectProtocol() === 'https' );
 }
 
-// Back compatibility for $wgRateLimitLog deprecated with 1.23
-if ( $wgRateLimitLog && !array_key_exists( 'ratelimit', $wgDebugLogGroups ) ) {
-       $wgDebugLogGroups['ratelimit'] = $wgRateLimitLog;
-}
-
 if ( $wgProfileOnly ) {
        $wgDebugLogGroups['profileoutput'] = $wgDebugLogFile;
        $wgDebugLogFile = '';
@@ -520,12 +515,12 @@ require_once "$IP/includes/compat/normal/UtfNormalUtil.php";
 $ps_validation = Profiler::instance()->scopedProfileIn( $fname . '-validation' );
 
 // T48998: Bail out early if $wgArticlePath is non-absolute
-if ( !preg_match( '/^https?:\/\/|\//', $wgArticlePath ) ) {
+if ( !preg_match( '/^(https?:\/\/|\/)/', $wgArticlePath ) ) {
        throw new FatalError(
-               'If you use a relative URL on $wgArticlePath, it must start ' .
-               'with a slash (/).<br><br>See ' .
+               'If you use a relative URL for $wgArticlePath, it must start ' .
+               'with a slash (<code>/</code>).<br><br>See ' .
                '<a href="https://www.mediawiki.org/wiki/Manual:$wgArticlePath">' .
-               'https://www.mediawiki.org/wiki/Manual:$wgArticlePath</a>'
+               'https://www.mediawiki.org/wiki/Manual:$wgArticlePath</a>.'
        );
 }
 
index 78913e1..59264e8 100644 (file)
@@ -100,7 +100,10 @@ class ApiEditPage extends ApiBase {
 
                $name = $titleObj->getPrefixedDBkey();
                $model = $contentHandler->getModelID();
-               if ( $contentHandler->supportsDirectApiEditing() === false ) {
+
+               if ( $params['undo'] > 0 ) {
+                       // allow undo via api
+               } elseif ( $contentHandler->supportsDirectApiEditing() === false ) {
                        $this->dieUsage(
                                "Direct editing via API is not supported for content model $model used by $name",
                                'no-direct-editing'
index e8afcb6..77a3a21 100644 (file)
@@ -265,6 +265,13 @@ class ApiFeedWatchlist extends ApiBase {
                                if ( !isset( $p[ApiBase::PARAM_HELP_MSG] ) ) {
                                        $p[ApiBase::PARAM_HELP_MSG] = "apihelp-query+watchlist-param-$from";
                                }
+                               if ( is_array( $p[ApiBase::PARAM_TYPE] ) && isset( $p[ApiBase::PARAM_HELP_MSG_PER_VALUE] ) ) {
+                                       foreach ( $p[ApiBase::PARAM_TYPE] as $v ) {
+                                               if ( !isset( $p[ApiBase::PARAM_HELP_MSG_PER_VALUE][$v] ) ) {
+                                                       $p[ApiBase::PARAM_HELP_MSG_PER_VALUE][$v] = "apihelp-query+watchlist-paramvalue-$from-$v";
+                                               }
+                                       }
+                               }
                                $ret[$to] = $p;
                        }
                } else {
index 17966af..be68310 100644 (file)
@@ -245,18 +245,6 @@ abstract class ApiFormatBase extends ApiBase {
                return 'https://www.mediawiki.org/wiki/API:Data_formats';
        }
 
-       /**
-        * 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.
-        */
-       protected function markDeprecated() {
-               $fm = $this->getIsHtml() ? 'fm' : '';
-               $name = $this->getModuleName();
-               $this->logFeatureUsage( "format=$name" );
-               $this->setWarning( "format=$name has been deprecated. Please use format=json$fm instead." );
-       }
-
        /************************************************************************//**
         * @name   Deprecated
         * @{
diff --git a/includes/api/ApiFormatDbg.php b/includes/api/ApiFormatDbg.php
deleted file mode 100644 (file)
index 7d359ad..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- *
- *
- * Created on Oct 22, 2006
- *
- * Copyright © 2008 Roan Kattouw "<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 PHP's var_export() output formatter
- * @deprecated since 1.24
- * @ingroup API
- */
-class ApiFormatDbg 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',
-               ) );
-               $this->printText( var_export( $data, true ) );
-       }
-
-       public function isDeprecated() {
-               return true;
-       }
-}
diff --git a/includes/api/ApiFormatTxt.php b/includes/api/ApiFormatTxt.php
deleted file mode 100644 (file)
index e739d5a..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- *
- *
- * Created on Oct 22, 2006
- *
- * Copyright © 2008 Roan Kattouw "<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 Text output formatter
- * @deprecated since 1.24
- * @ingroup API
- */
-class ApiFormatTxt 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',
-               ) );
-               $this->printText( print_r( $data, true ) );
-       }
-
-       public function isDeprecated() {
-               return true;
-       }
-}
diff --git a/includes/api/ApiFormatYaml.php b/includes/api/ApiFormatYaml.php
deleted file mode 100644 (file)
index c9089a7..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- *
- *
- * Created on Sep 19, 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 YAML output formatter
- * @deprecated since 1.24
- * @ingroup API
- */
-class ApiFormatYaml extends ApiFormatJson {
-
-       public function getMimeType() {
-               return 'application/yaml';
-       }
-
-       public function execute() {
-               $this->markDeprecated();
-               parent::execute();
-       }
-
-       public function isDeprecated() {
-               return true;
-       }
-}
index 2768409..ca5e1bb 100644 (file)
@@ -102,13 +102,7 @@ class ApiMain extends ApiBase {
                'phpfm' => 'ApiFormatPhp',
                'xml' => 'ApiFormatXml',
                'xmlfm' => 'ApiFormatXml',
-               'yaml' => 'ApiFormatYaml',
-               'yamlfm' => 'ApiFormatYaml',
                'rawfm' => 'ApiFormatJson',
-               'txt' => 'ApiFormatTxt',
-               'txtfm' => 'ApiFormatTxt',
-               'dbg' => 'ApiFormatDbg',
-               'dbgfm' => 'ApiFormatDbg',
                'none' => 'ApiFormatNone',
        );
 
@@ -1289,31 +1283,45 @@ class ApiMain extends ApiBase {
 
        /**
         * Log the preceding request
-        * @param int $time Time in seconds
+        * @param float $time Time in seconds
         */
        protected function logRequest( $time ) {
                $request = $this->getRequest();
-               $milliseconds = $time === null ? '?' : round( $time * 1000 );
-               $s = 'API' .
-                       ' ' . $request->getMethod() .
-                       ' ' . wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) .
-                       ' ' . $request->getIP() .
-                       ' T=' . $milliseconds . 'ms';
+               $logCtx = array(
+                       'dt' => date( 'c' ),
+                       'client_ip' => $request->getIP(),
+                       'user_agent' => $this->getUserAgent(),
+                       'wiki' => wfWikiId(),
+                       'time_backend_ms' => round( $time * 1000 ),
+                       'params' => array(),
+               );
+
+               // Construct space separated message for 'api' log channel
+               $msg = "API {$request->getMethod()} " .
+                       wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) .
+                       " {$logCtx['client_ip']} " .
+                       "T={$logCtx['time_backend_ms']}ms";
+
                foreach ( $this->getParamsUsed() as $name ) {
                        $value = $request->getVal( $name );
                        if ( $value === null ) {
                                continue;
                        }
-                       $s .= ' ' . $name . '=';
+
                        if ( strlen( $value ) > 256 ) {
-                               $encValue = $this->encodeRequestLogValue( substr( $value, 0, 256 ) );
-                               $s .= $encValue . '[...]';
+                               $value = substr( $value, 0, 256 );
+                               $encValue = $this->encodeRequestLogValue( $value ) . '[...]';
                        } else {
-                               $s .= $this->encodeRequestLogValue( $value );
+                               $encValue = $this->encodeRequestLogValue( $value );
                        }
+
+                       $logCtx['params'][$name] = $value;
+                       $msg .= " {$name}={$encValue}";
                }
-               $s .= "\n";
-               wfDebugLog( 'api', $s, 'private' );
+
+               wfDebugLog( 'api', $msg, 'private' );
+               // ApiRequest channel is for structured data consumers
+               wfDebugLog( 'ApiRequest', '', 'private', $logCtx );
        }
 
        /**
index 6810235..9ed9dcb 100644 (file)
@@ -6,8 +6,14 @@
        },
        "apihelp-block-description": "Stankañ un implijer",
        "apihelp-block-param-reason": "Abeg evit stankañ.",
+       "apihelp-createaccount-param-name": "Anv implijer.",
        "apihelp-delete-description": "Diverkañ ur bajenn.",
+       "apihelp-edit-param-text": "Danvez ar bajenn.",
        "apihelp-edit-param-minor": "Kemmig dister.",
        "apihelp-edit-example-edit": "Kemmañ ur bajenn.",
-       "apihelp-expandtemplates-param-title": "Titl ar bajenn."
+       "apihelp-expandtemplates-param-title": "Titl ar bajenn.",
+       "apihelp-login-param-name": "Anv implijer.",
+       "apihelp-login-param-password": "Ger-tremen.",
+       "apihelp-login-example-login": "Kevreañ.",
+       "apihelp-protect-example-protect": "Gwareziñ ur bajenn."
 }
index b693118..c1c38ca 100644 (file)
        "apihelp-watch-example-watch": "Sledovat stránku <kbd>Main Page</kbd>.",
        "apihelp-watch-example-generator": "Zobrazit prvních několik stránek z hlavního jmenného prostoru.",
        "apihelp-format-example-generic": "Výsledek dotazu vrátit ve formátu $1.",
-       "apihelp-dbg-description": "Vypisuje data ve formátu funkce <code>var_export()</code> z PHP.",
-       "apihelp-dbgfm-description": "Vypisuje data ve formátu funkce <code>var_export()</code> z PHP (v čitelné HTML podobě).",
        "apihelp-json-description": "Vypisuje data ve formátu JSON.",
        "apihelp-json-param-callback": "Pokud je uvedeno, obalí výstup do zadaného volání funkce. Z bezpečnostních důvodů budou omezena všechna data specifická pro uživatele.",
        "apihelp-json-param-utf8": "Pokud je uvedeno, bude většina ne-ASCII znaků (ale ne všechny) kódována v UTF-8 místo nahrazení hexadecimálními escape sekvencemi. Implicitní chování, pokud není <var>formatversion</var> nastaveno na <kbd>1</kbd>.",
        "apihelp-php-description": "Vypisuje data v serializačním formátu PHP.",
        "apihelp-phpfm-description": "Vypisuje data v serializačním formátu PHP (v čitelné HTML podobě).",
        "apihelp-rawfm-description": "Data včetně ladicích prvků vypisuje ve formátu JSON (v čitelné HTML podobě).",
-       "apihelp-txt-description": "Vypisuje data ve formátu funkce <code>print_r()</code> z PHP.",
-       "apihelp-txtfm-description": "Vypisuje data ve formátu funkce <code>print_r()</code> z PHP (v čitelné HTML podobě).",
        "apihelp-xml-description": "Vypisuje data ve formátu XML.",
        "apihelp-xml-param-xslt": "Pokud je uvedeno, přidá uvedenou stránku jako stylopis XSL. Hodnotou musí být název stránky ve jmenném prostoru MediaWiki, jejíž název končí na <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Pokud je uvedeno, přidá jmenný prostor XML.",
        "apihelp-xmlfm-description": "Vypisuje data ve formátu XML (v čitelné HTML podobě).",
-       "apihelp-yaml-description": "Vypisuje data ve formátu YAML.",
-       "apihelp-yamlfm-description": "Vypisuje data ve formátu YAML (v čitelné HTML podobě).",
        "api-format-title": "Odpověď z MediaWiki API",
        "api-format-prettyprint-header": "Toto je HTML reprezentace formátu $1. HTML se hodí pro ladění, ale pro aplikační použití je nevhodné.\n\nPro změnu výstupního formátu uveďte parametr <var>format</var>. Abyste viděli ne-HTML reprezentaci formátu $1, nastavte <kbd>format=$2</kbd>.\n\nVíce informací najdete v [[mw:API|úplné dokumentaci]] nebo v [[Special:ApiHelp/main|nápovědě k API]].",
        "api-format-prettyprint-header-only-html": "Toto je HTML reprezentace určená pro ladění, která není vhodná pro použití v aplikacích.\n\nVíce informací najdete v [[mw:API|úplné dokumentaci]] nebo [[Special:ApiHelp/main|dokumentaci API]].",
index 279e640..589e476 100644 (file)
        "apihelp-expandtemplates-param-revid": "Versionsnummer, die für die Anzeige von <nowiki>{{REVISIONID}}</nowiki> und ähnlichen Variablen verwendet wird.",
        "apihelp-expandtemplates-paramvalue-prop-wikitext": "Der expandierte Wikitext.",
        "apihelp-expandtemplates-paramvalue-prop-ttl": "Die maximale Zeit, nach der der Ergebnis-Cache ungültig wird.",
+       "apihelp-expandtemplates-paramvalue-prop-jsconfigvars": "Gibt die JavaScript-Konfigurationsvariablen speziell für die Seite aus.",
+       "apihelp-expandtemplates-paramvalue-prop-encodedjsconfigvars": "Gibt die JavaScript-Konfigurationsvariablen speziell für die Seite als JSON-Zeichenfolge aus.",
        "apihelp-expandtemplates-paramvalue-prop-parsetree": "Der XML-Parserbaum der Eingabe.",
        "apihelp-expandtemplates-param-includecomments": "Ob HTML-Kommentare in der Ausgabe eingeschlossen werden sollen.",
        "apihelp-expandtemplates-param-generatexml": "XML-Parserbaum erzeugen (ersetzt durch $1prop=parsetree).",
        "apihelp-watch-example-watch": "Die Seite <kbd>Main Page</kbd> beobachten.",
        "apihelp-watch-example-unwatch": "Die Seite <kbd>Main Page</kbd> nicht beobachten.",
        "apihelp-format-example-generic": "Das Abfrageergebnis im $1-Format ausgeben.",
-       "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-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-php-description": "Daten im serialisierten PHP-Format ausgeben.",
        "apihelp-phpfm-description": "Daten im serialisierten PHP-Format ausgeben (schöngedruckt in HTML).",
        "apihelp-rawfm-description": "Daten, einschließlich 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-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.",
        "apihelp-xmlfm-description": "Daten im XML-Format ausgeben (schöngedruckt in HTML).",
-       "apihelp-yaml-description": "Daten im YAML-Format ausgeben.",
-       "apihelp-yamlfm-description": "Daten im YAML-Format ausgeben (schöngedruckt in HTML).",
        "api-format-title": "MediaWiki-API-Ergebnis",
        "api-format-prettyprint-header": "Dies ist die HTML-Repräsentation des $1-Formats. HTML ist zur Fehlerbehebung gut, aber unpassend für den Anwendungsgebrauch.\n\nGib den Parameter <var>format</var> an, um das Ausgabeformat zu ändern. Um die Nicht-HTML-Repräsentation des $1-Formats anzusehen, lege <kbd>format=$2</kbd> fest.\n\nSiehe die [[mw:API|vollständige Dokumentation]] oder die [[Special:ApiHelp/main|API-Hilfe]] für weitere Informationen.",
        "api-pageset-param-titles": "Eine Liste der Titel, an denen gearbeitet werden soll.",
index d4e5303..4c2d0be 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "Filter by tag.",
        "apihelp-feedrecentchanges-param-target": "Show only changes on pages linked from this page.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Show changes on pages linked to the selected page instead.",
+       "apihelp-feedrecentchanges-param-categories": "Show only changes on pages in all of these categories.",
+       "apihelp-feedrecentchanges-param-categories_any": "Show only changes on pages in any of the categories instead.",
        "apihelp-feedrecentchanges-example-simple": "Show recent changes.",
        "apihelp-feedrecentchanges-example-30days": "Show recent changes for 30 days.",
 
        "apihelp-watch-example-generator": "Watch the first few pages in the main namespace.",
 
        "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-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-php-param-formatversion": "Output formatting:\n;1:Backwards-compatible format (XML-style booleans, <samp>*</samp> keys for content nodes, etc.).\n;2:Experimental modern format. Details may change!\n;latest:Use the latest format (currently <kbd>2</kbd>), may change without warning.",
        "apihelp-phpfm-description": "Output data in serialized PHP format (pretty-print in HTML).",
        "apihelp-rawfm-description": "Output data, including 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-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.",
        "apihelp-xmlfm-description": "Output data in XML format (pretty-print in HTML).",
-       "apihelp-yaml-description": "Output data in YAML format.",
-       "apihelp-yamlfm-description": "Output data in YAML format (pretty-print in HTML).",
 
        "api-format-title": "MediaWiki API result",
        "api-format-prettyprint-header": "This is the HTML representation of the $1 format. HTML is good for debugging, but is unsuitable for application use.\n\nSpecify the <var>format</var> parameter to change the output format. To see the non-HTML representation of the $1 format, set <kbd>format=$2</kbd>.\n\nSee the [[mw:API|complete documentation]], or the [[Special:ApiHelp/main|API help]] for more information.",
index b6a64dd..370ee0d 100644 (file)
@@ -5,6 +5,7 @@
                        "Sator"
                ]
        },
+       "apihelp-main-param-format": "Irteerako formatua.",
        "apihelp-block-description": "Blokeatu erabiltzaile bat.",
        "apihelp-block-param-reason": "Blokeatzeko arrazoia.",
        "apihelp-createaccount-description": "Erabiltzaile kontu berria sortu.",
        "apihelp-createaccount-param-email": "Erabiltzailearen helbide elektronikoa (aukerakoa).",
        "apihelp-createaccount-param-realname": "Erabiltzailearen benetako izena (aukerakoa).",
        "apihelp-delete-description": "Orrialde bat ezabatu.",
+       "apihelp-delete-example-simple": "Ezabatu <kbd>Main Page</kbd>.",
        "apihelp-edit-description": "Orrialdeak sortu eta aldatu.",
+       "apihelp-edit-param-text": "Orrialdearen edukia.",
        "apihelp-edit-param-minor": "Aldaketa txikia.",
        "apihelp-edit-example-edit": "Orrialde bat aldatu",
        "apihelp-emailuser-description": "Erabiltzaileari e-maila bidali",
+       "apihelp-emailuser-param-subject": "Gaiaren goiburua.",
+       "apihelp-emailuser-param-text": "Mezuaren gorputza.",
        "apihelp-expandtemplates-param-title": "Orrialdearen izenburua.",
        "apihelp-feedcontributions-param-year": "Urtetik aurrera (eta lehenagotik)",
        "apihelp-feedcontributions-param-month": "Hilabetetik aurrera (eta lehenagotik)",
        "apihelp-move-description": "Orrialde bat mugitu",
        "apihelp-move-param-reason": "Berrizenpenaren arrazoia.",
        "apihelp-options-example-reset": "Berrezarri hobespen guztiak.",
+       "apihelp-protect-param-reason": "Babesteko edo babesa kentzeko zergatia.",
        "apihelp-protect-example-protect": "Orrialde bat babestu",
        "apihelp-query+allusers-param-witheditsonly": "Bakarrik zerrendatu aldaketak egin dituzten erabiltzaileak.",
        "apihelp-query+allusers-param-activeusers": "Bakarrik zerrendatu azken {{PLURAL:$1|eguneko|$1 egunetako}} erabiltzaile aktiboak.",
+       "apihelp-query+blocks-description": "Zerrendatu blokeatutako erabiltzaile eta IP helbide guztiak.",
        "apihelp-query+imageinfo-param-urlheight": "$1urlwidth-en antzekoa.",
        "apihelp-query+imageusage-example-simple": "Erakutsi [[:File:Albert Einstein Head.jpg]] darabilten orriak",
        "apihelp-query+langlinks-param-inlanguagecode": "Hizkuntza izenak aurkitzeko hizkuntza kodea.",
        "apihelp-query+prefixsearch-param-search": "Bilatu katea.",
        "apihelp-query+protectedtitles-example-simple": "Zerrendatu babestutako izenburuak",
        "apihelp-query+recentchanges-example-simple": "Zerrendatu aldaketa berriak.",
+       "apihelp-upload-param-file": "Fitxategiaren edukia.",
        "apihelp-upload-example-url": "Igo URL batetik.",
        "apihelp-userrights-param-reason": "Aldaketarako arrazoia.",
        "api-help-main-header": "Modulu nagusia",
        "api-help-flag-deprecated": "Modulu hau zaharkitua dago.",
+       "api-help-source": "Iturria: $1",
+       "api-help-source-unknown": "Iturria: <span class=\"apihelp-unknown\">ezezaguna</span>",
+       "api-help-license": "Lizentzia: [[$1|$2]]",
+       "api-help-license-noname": "Lizentzia: [[$1|Ikusi esteka]]",
+       "api-help-license-unknown": "Lizentzia: <span class=\"apihelp-unknown\">ezezaguna</span>",
        "api-help-parameters": "{{PLURAL:$1|Parametroa|Parametroak}}:",
        "api-help-param-deprecated": "Zaharkitua.",
        "api-help-param-required": "Parametro hau beharrezkoa da.",
+       "api-help-datatypes-header": "Datu-motak",
+       "api-help-param-type-limit": "Mota: osokoa edo <kbd>max</kbd>",
+       "api-help-param-type-integer": "Mota: {{PLURAL:$1|1=osokoa|2=osokoen zerrenda}}",
+       "api-help-param-type-boolean": "Mota: boolearra ([[Special:ApiHelp/main#main/datatypes|xehetasunak]])",
+       "api-help-param-type-timestamp": "Mota: {{PLURAL:$1|1=data-zigilua|2=data-zigiluen zerrenda}} ([[Special:ApiHelp/main#main/datatypes|onartutako formatuak]])",
+       "api-help-param-type-user": "Mota: {{PLURAL:$1|1=erabiltzaile-izena|2=erabiltzaile-izenen zerrenda}}",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Hutsik egon behar du|Hutsik egon daiteke edo $2}}",
        "api-help-param-limit": "Ez dira $1 baino gehiago onartzen.",
        "api-help-param-limit2": "Ez dira $1 ($2 botentzat) baino gehiago onartzen.",
index 7eb49d2..1518bcb 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrer par balise.",
        "apihelp-feedrecentchanges-param-target": "Afficher uniquement les modifications sur les pages liées depuis cette page.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Afficher les modifications plutôt sur les pages liées vers la page sélectionnée.",
+       "apihelp-feedrecentchanges-param-categories": "Afficher uniquement les modifications sur les pages dans toutes ces catégories",
+       "apihelp-feedrecentchanges-param-categories_any": "Afficher plutôt uniquement les modifications sur les pages dans n’importe laquelle de ces catégories.",
        "apihelp-feedrecentchanges-example-simple": "Afficher les modifications récentes",
        "apihelp-feedrecentchanges-example-30days": "Afficher les modifications récentes sur 30 jours",
        "apihelp-feedwatchlist-description": "Renvoie un flux de liste de suivi.",
        "apihelp-watch-example-unwatch": "Ne plus suivre la page <kbd>Page principale</kbd>.",
        "apihelp-watch-example-generator": "Suivre les quelques premières pages de l’espace de nom principal",
        "apihelp-format-example-generic": "Renvoyer 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-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. Valeur par défaut quand <var>formatversion</var> ne vaut pas <kbd>1</kbd>.",
        "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, y compris 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-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-xmlfm-description": "Extraire les données au format XML (affiché proprement en HTML).",
-       "apihelp-yaml-description": "Extraire les données au format YAML.",
-       "apihelp-yamlfm-description": "Extraire les données YAML (affiché proprement en HTML).",
        "api-format-title": "Résultat de l’API de MediaWiki",
        "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.",
index db69e78..539b9d2 100644 (file)
        "apihelp-query+watchlist-paramvalue-type-external": "Cambios externos.",
        "apihelp-query+watchlist-paramvalue-type-new": "Creacións de páxinas.",
        "apihelp-query+watchlist-paramvalue-type-log": "Entradas do rexistro",
+       "apihelp-query+watchlist-paramvalue-type-categorize": "Modificacións de pertenza á categoría.",
        "apihelp-query+watchlist-param-owner": "Usado con $1token para acceder á lista de páxinas de vixiancia doutro usuario.",
        "apihelp-query+watchlist-param-token": "Identificador de seguridade (dispoñible nas [[Special:Preferences#mw-prefsection-watchlist|preferencias]] de usuario) para permitir o acceso a outros á súa páxina de vixiancia.",
        "apihelp-query+watchlist-example-simple": "Listar a última revisión das páxinas recentemente modificadas da lista de vixiancia do usuario actual.",
        "apihelp-setnotificationtimestamp-example-page": "Restaurar o estado de notificación para a <kbd>Páxina Principal</kbd>.",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixar o selo de tempo de notificación para a <kbd>Main page</kbd> de forma que todas as edicións dende o 1 se xaneiro de 2012 queden sen revisar.",
        "apihelp-setnotificationtimestamp-example-allpages": "Restaurar o estado de notificación para as páxinas no espazo de nomes de <kbd>{{ns:user}}</kbd>.",
+       "apihelp-stashedit-description": "Preparar unha edición na caché compartida.\n\nEstá previsto que sexa usado vía AJAX dende o formulario de edición para mellorar o rendemento de gardado da páxina.",
        "apihelp-stashedit-param-title": "Título da páxina que se está a editar.",
        "apihelp-stashedit-param-section": "Número de selección. O <kbd>0</kbd> é para a sección superior, <kbd>novo</kbd> para unha sección nova.",
        "apihelp-stashedit-param-sectiontitle": "Título para unha nova sección.",
        "apihelp-watch-example-unwatch": "Deixar de vixiar a páxina <kbd>Páxina Principal</kbd>.",
        "apihelp-watch-example-generator": "Vixiar as primeiras páxinas no espazo de nomes principal",
        "apihelp-format-example-generic": "Devolver 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-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-php-param-formatversion": "Formato de saída:\n;1:Formato compatible con versións anteriores(booleanos estilo XML,claves <samp>*</samp> para nodos, etc.).\n;2:Formato moderno experimental. Os detalles poden cambiar!\n;latest:Usa o último formato (actualmente kbd>2</kbd>), pode cambiar sen aviso previo.",
        "apihelp-phpfm-description": "Datos de saída en formato serializado de PHP(impresión en HTML).",
        "apihelp-rawfm-description": "Datos de saída, incluíndo os 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-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.",
        "apihelp-xmlfm-description": "Datos de saída en formato XML(impresión en HTML).",
-       "apihelp-yaml-description": "Datos de saída en formato YAML.",
-       "apihelp-yamlfm-description": "Datos de saída en formato YAML(impresión en HTML).",
        "api-format-title": "Resultado de API de MediaWiki",
        "api-format-prettyprint-header": "Esta é a representación HTML do formato $1. HTML é bó para depurar, pero non é axeitado para usar nunha aplicación.\n\nEspecifique o parámetro <var>format</var> para cambiar o formato de saída. Para ver a representación non-HTML do formato $1, fixe <kbd>format=$2</kbd>.\n\n\nRevise a [[mw:API|documentación completa]], ou a [[Special:ApiHelp/main|axuda da API]] para obter máis información.",
        "api-format-prettyprint-header-only-html": "Esta é unha representación HTML empregada para a depuración de erros, e non é axeitada para o uso de aplicacións.\n\nVexa a [[mw:API|documentación completa]], ou a [[Special:ApiHelp/main|axuda da API]] para máis información.",
index 310e2d0..60e9f6d 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "סינון לפי תגית.",
        "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.",
        "apihelp-feedrecentchanges-param-showlinkedto": "להציג את השינויים בדפים שמקושרים לדף שנבחר במקום זה.",
+       "apihelp-feedrecentchanges-param-categories": "להציג רק שינויים בדפים בכל הקטגוריות האלו.",
+       "apihelp-feedrecentchanges-param-categories_any": "להציג רק שינויים בדפים בכל הקטגוריות במקום.",
        "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.",
        "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.",
        "apihelp-feedwatchlist-description": "החזרת הזנת רשימת מעקב.",
        "apihelp-watch-example-unwatch": "להפסיק את המעקב אחרי הדף <kbd>Main Page</kbd>.",
        "apihelp-watch-example-generator": "לעקוב אחרי הדפים הראשונים במרחב הראשי.",
        "apihelp-format-example-generic": "להחזיר את תוצאות השאילתה בתסדיר $1.",
-       "apihelp-dbg-description": "לפלוט נתונים בתסדיר <code dir=\"ltr\">var_export()</code> של PHP.",
-       "apihelp-dbgfm-description": "לפלוט את הנתונים בתסדיר <code dir=\"ltr\">var_export()</code> של PHP (עם הדפסה יפה ב־HTML).",
        "apihelp-json-description": "לפלוט נתונים בתסדיר JSON.",
        "apihelp-json-param-callback": "אם זה צוין, עוטף את הפלט לתוך קריאת פונקציה נתונה. למען הבטיחות, כל הנתונים הייחודיים למשתמש יוגבלו.",
        "apihelp-json-param-utf8": "אם זה צוין, רוב התווים שאינם ASCII (אבל לא כולם) יקודדו בתור UTF-8 במקום להתחלף בסדרות חילוף הקסדצימליות. זאת בררת המחדל אם הערך של <var>formatversion</var> הוא לא <kbd>1</kbd>.",
        "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-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-xml-param-includexmlnamespace": "אם זה צוין, מוסיף מרחב שם של XML.",
        "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יש לציין את הפרמטר <var>format</var> כדי לשנות את תסדיר הפלט. כדי לראות ייצוג של תסדיר $1 לא ב־HTML יש לרשום <kbd>format=$2</kbd>.\n\nר' את [[mw:API|התיעוד המלא]], או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
        "api-format-prettyprint-header-only-html": "זה ייצוג HTML שמיועד לניפוי שגיאות ואינו מתאים לשימוש ביישומים.\n\nר' את [[mw:API|התיעוד המלא]] או את [[Special:ApiHelp/main|העזרה של API]] למידע נוסף.",
index 1a99054..60227d3 100644 (file)
        "apihelp-help-param-helpformat": "ヘルプの出力形式です。",
        "apihelp-help-param-toc": "HTML 出力に目次を含めます。",
        "apihelp-help-example-main": "メイン モジュールのヘルプ",
+       "apihelp-help-example-submodules": "<kbd>action=query</kbd> とそのすべての下位モジュールに関するヘルプ。",
        "apihelp-help-example-recursive": "すべてのヘルプを1つのページに",
        "apihelp-help-example-help": "ヘルプ モジュール自身のヘルプ",
        "apihelp-help-example-query": "2つの下位モジュールのヘルプ",
        "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": "他の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": "ウィキ間の取り込みの場合: 取り込み元のウィキ。",
        "apihelp-opensearch-param-redirects": "転送を処理する方法:\n;return: 転送ページそのものを返します。\n;resolve: 転送先のページを返します。$1limit より返される結果が少なくなるかもしれません。\n歴史的な理由により、$1format=json では \"return\" が、他の形式では \"resolve\" が既定です。",
        "apihelp-opensearch-param-format": "出力する形式。",
        "apihelp-opensearch-example-te": "<kbd>Te</kbd> から始まるページを検索する。",
+       "apihelp-options-param-reset": "個人設定をサイトの既定値にリセットする。",
        "apihelp-options-example-reset": "すべて初期設定に戻す。",
        "apihelp-options-example-change": "<kbd>skin</kbd> および <kbd>hideminor</kbd> の個人設定を変更する。",
        "apihelp-options-example-complex": "すべての個人設定を初期化し、<kbd>skin</kbd> および <kbd> nickname </kbd> を設定する。",
        "apihelp-parse-param-effectivelanglinks": "エクステンションによって供給された言語リンクが含まれています (for use with <kbd>$1prop=langlinks</kbd>).",
        "apihelp-parse-param-section": "この節番号の内容のみを構文解析します。\n\n<kbd>new</kbd> のとき、ページに新しい節を追加するかのように <var>$1text</var> と<var>$1sectiontitle</var> を解析します。\n\n<kbd>new</kbd> は <var>text</var> を指定したときのみ許可されます。",
        "apihelp-parse-param-sectiontitle": "<var>section</var> が <kbd>new</kbd> のときの、新しい節の節名。\n\nページ編集とは異なり、これは <var>summary</var> が省略または空のときにはフォールバックしません。",
+       "apihelp-parse-param-disablelimitreport": "構文解析の出力で制限レポート (New PP limit report) を省略する。",
        "apihelp-parse-param-disablepp": "<var>$1disablelimitreport</var> を代わりに使用してください。",
-       "apihelp-parse-param-disabletidy": "パーサ出力に(例えば整頓)HTMLのクリーンアップを実行しないでください。",
+       "apihelp-parse-param-disableeditsection": "構文解析の出力で節リンクを省略する。",
+       "apihelp-parse-param-disabletidy": "構文解析の出力にHTMLのクリーンアップ (例えば整頓) を適用しない。",
        "apihelp-parse-param-preview": "プレビューモードでのパース",
        "apihelp-parse-example-page": "ページをパース",
        "apihelp-parse-example-text": "ウィキテキストをパース",
        "apihelp-parse-example-summary": "要約を構文解析します。",
        "apihelp-patrol-description": "ページまたは版を巡回済みにします。",
+       "apihelp-patrol-param-rcid": "巡回済みにする最近の更新ID。",
        "apihelp-patrol-param-revid": "巡回済みにする版ID。",
        "apihelp-patrol-example-rcid": "最近の更新を巡回",
        "apihelp-patrol-example-revid": "版を巡回済みにする。",
        "apihelp-protect-description": "ページの保護レベルを変更します。",
        "apihelp-protect-param-title": "保護(解除)するページ名です。$1pageid とは同時に使用できません。",
        "apihelp-protect-param-pageid": "保護(解除)するページIDです。$1title とは同時に使用できません。",
+       "apihelp-protect-param-protections": "<kbd>action=level</kbd> の形式 (例えば、<kbd>edit=sysop</kbd>) で整形された、保護レベルの一覧。\n\n<strong>注意: </strong> ここに列挙されなかった操作の制限は解除されます。",
        "apihelp-protect-param-expiry": "有効期限です。タイムスタンプがひとつだけ指定された場合は、それがすべての保護に適用されます。無期限の保護を行う場合は<kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, または <kbd>never</kbd> を指定します。",
        "apihelp-protect-param-reason": "保護(解除)の理由。",
        "apihelp-protect-param-watch": "指定されると、保護(解除)するページが現在の利用者のウォッチリストに追加されます。",
        "apihelp-protect-example-protect": "ページを保護する。",
+       "apihelp-protect-example-unprotect": "制限値を <kbd>all</kbd> にしてページの保護を解除する。",
        "apihelp-protect-example-unprotect2": "制限を設定されたページ保護を解除します。",
        "apihelp-purge-description": "指定されたページのキャッシュをパージします。\n\n利用者がログインしていない場合は、 POST リクエストが必要です。",
        "apihelp-purge-param-forcelinkupdate": "リンクテーブルを更新します。",
        "apihelp-query-param-export": "指定されたまたは生成されたすべてのページの、現在の版を書き出します。",
        "apihelp-query-param-iwurl": "タイトルがウィキ間リンクである場合に、完全なURLを取得するかどうか。",
        "apihelp-query-example-revisions": "[[Special:ApiHelp/query+siteinfo|サイト情報]]と<kbd>Main Page</kbd>の[[Special:ApiHelp/query+revisions|版]]を取得する。",
+       "apihelp-query-example-allpages": "<kbd>API/</kbd> で始まるページの版を取得する。",
        "apihelp-query+allcategories-description": "すべてのカテゴリを一覧表示します。",
        "apihelp-query+allcategories-param-from": "列挙を開始するカテゴリ。",
        "apihelp-query+allcategories-param-to": "列挙を終了するカテゴリ。",
        "apihelp-query+allfileusages-param-prop": "どの情報を結果に含めるか:",
        "apihelp-query+allfileusages-paramvalue-prop-ids": "使用しているページのページIDを追加します ($1unique とは同時に使用できません)。",
        "apihelp-query+allfileusages-paramvalue-prop-title": "ファイルのページ名を追加します。",
+       "apihelp-query+allfileusages-param-limit": "返す項目の総数。",
+       "apihelp-query+allfileusages-param-dir": "一覧表示する方向。",
        "apihelp-query+allfileusages-example-unique": "ユニークなファイルを一覧表示する。",
        "apihelp-query+allfileusages-example-generator": "ファイルを含むページを取得します。",
        "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-prefix": "この値で始まるすべての画像タイトルを検索する。$1sort=name を指定した場合のみ使用できます。",
+       "apihelp-query+allimages-param-minsize": "画像の最小バイト数を制限する。",
+       "apihelp-query+allimages-param-maxsize": "画像の最大バイト数を制限する。",
+       "apihelp-query+allimages-param-sha1": "画像の SHA1 ハッシュ値。$1sha1base36 をオーバーライドします。",
        "apihelp-query+allimages-param-user": "この利用者によりアップロードされたファイルのみを返す。$1sort=timestamp を指定した場合のみ使用できます。 $1filterbots とは同時に使用できません。",
        "apihelp-query+allimages-param-mime": "検索対象のMIMEタイプ、たとえば <kbd>image/jpeg</kbd>。",
        "apihelp-query+allimages-param-limit": "返す画像の総数。",
        "apihelp-query+alllinks-param-from": "列挙を開始するリンクのページ名。",
        "apihelp-query+alllinks-param-to": "列挙を終了するリンクのページ名。",
        "apihelp-query+alllinks-param-prefix": "この値で始まるすべてのリンクされたページを検索する。",
+       "apihelp-query+alllinks-param-prop": "どの情報を結果に含めるか:",
        "apihelp-query+alllinks-paramvalue-prop-title": "リンクのページ名を追加します。",
        "apihelp-query+alllinks-param-namespace": "列挙する名前空間。",
+       "apihelp-query+alllinks-param-dir": "一覧表示する方向。",
        "apihelp-query+alllinks-example-B": "<kbd>B</kbd> で始まるリンクされたページ (存在しないページも含む)を、リンク元のページIDとともに表示する。",
        "apihelp-query+alllinks-example-unique": "ユニークなリンクのタイトルを一覧。",
        "apihelp-query+alllinks-example-generator": "リンクを含むページを取得します。",
        "apihelp-query+allpages-param-to": "列挙を終了するページ名。",
        "apihelp-query+allpages-param-prefix": "この値で始まるすべてのページ名を検索します。",
        "apihelp-query+allpages-param-namespace": "列挙する名前空間。",
+       "apihelp-query+allpages-param-minsize": "ページの最低バイト数を制限する。",
+       "apihelp-query+allpages-param-maxsize": "ページの最大バイト数を制限する。",
        "apihelp-query+allpages-param-prtype": "保護されているページに絞り込む。",
        "apihelp-query+allpages-param-prlevel": "保護レベルで絞り込む ($1type= パラメーターと同時に使用しなければなりません)。",
        "apihelp-query+allpages-param-limit": "返すページの総数。",
+       "apihelp-query+allpages-param-dir": "一覧表示する方向。",
        "apihelp-query+allpages-example-B": "<kbd>B</kbd> で始まるページの一覧を表示する。",
        "apihelp-query+allpages-example-generator": "<kbd>T</kbd> で始まる4つのページに関する情報を表示する。",
        "apihelp-query+allpages-example-generator-revisions": "<kbd>Re</kbd> で始まる最初の非リダイレクトの2ページの内容を表示する。",
+       "apihelp-query+allredirects-description": "ある名前空間へのすべての転送を一覧表示する。",
        "apihelp-query+allredirects-param-from": "列挙を開始するリダイレクトのページ名。",
        "apihelp-query+allredirects-param-to": "列挙を終了するリダイレクトのページ名。",
+       "apihelp-query+allredirects-param-prefix": "この値で始まるすべてのページを検索する。",
+       "apihelp-query+allredirects-param-prop": "どの情報を結果に含めるか:",
+       "apihelp-query+allredirects-paramvalue-prop-title": "転送ページのページ名を追加します。",
        "apihelp-query+allredirects-param-namespace": "列挙する名前空間。",
+       "apihelp-query+allredirects-param-limit": "返す項目の総数。",
+       "apihelp-query+allredirects-param-dir": "一覧表示する方向。",
+       "apihelp-query+allredirects-example-B": "<kbd>B</kbd> で始まる転送先ページ (存在しないページも含む)を、転送元のページIDとともに表示する。",
        "apihelp-query+allrevisions-description": "すべての版を一覧表示する。",
        "apihelp-query+allrevisions-param-start": "列挙の始点となるタイムスタンプ。",
        "apihelp-query+allrevisions-param-end": "列挙の終点となるタイムスタンプ。",
        "apihelp-query+allrevisions-example-user": "利用者 <kbd>Example</kbd> による直近の50版を一覧表示する。",
        "apihelp-query+allrevisions-example-ns-main": "標準名前空間にある最初の50版を一覧表示する。",
        "apihelp-query+alltransclusions-param-prefix": "この値で始まるすべてのトランスクルードされているページを検索する。",
+       "apihelp-query+alltransclusions-param-prop": "どの情報を結果に含めるか:",
        "apihelp-query+alltransclusions-param-namespace": "列挙する前空間。",
+       "apihelp-query+alltransclusions-param-limit": "返す項目の総数。",
+       "apihelp-query+alltransclusions-param-dir": "一覧表示する方向。",
+       "apihelp-query+alltransclusions-example-B": "<kbd>B</kbd> で始まる参照読み込みされているページ (存在しないページも含む)を、参照元のページIDとともに表示する。",
        "apihelp-query+alltransclusions-example-generator": "参照読み込みを含んでいるページを取得する。",
        "apihelp-query+allusers-description": "すべての登録利用者を一覧表示します。",
        "apihelp-query+allusers-param-from": "列挙を開始する利用者名。",
        "apihelp-query+allusers-param-dir": "並べ替えの方向。",
        "apihelp-query+allusers-param-group": "このグループに所属する利用者のみを結果に含める。",
        "apihelp-query+allusers-param-excludegroup": "このグループに所属する利用者を結果から除外する。",
+       "apihelp-query+allusers-param-prop": "どの情報を結果に含めるか:",
+       "apihelp-query+allusers-paramvalue-prop-blockinfo": "利用者に対する現在のブロックに関する情報を追加します。",
+       "apihelp-query+allusers-paramvalue-prop-groups": "利用者が所属する利用者グループを一覧表示します。これはサーバー資源を多めに使用するので、返る結果が制限値より少なくなります。",
+       "apihelp-query+allusers-paramvalue-prop-rights": "利用者が持っている権限を一覧表示します。",
+       "apihelp-query+allusers-paramvalue-prop-editcount": "利用者の編集回数を追加します。",
+       "apihelp-query+allusers-paramvalue-prop-registration": "可能な場合、利用者の登録日時のタイムスタンプを追加します (空白になるかもしれません)。",
        "apihelp-query+allusers-param-limit": "返す利用者名の総数。",
        "apihelp-query+allusers-param-witheditsonly": "編集履歴のある利用者のみ一覧表示する。",
        "apihelp-query+allusers-param-activeusers": "最近 $1 {{PLURAL:$1|日間}}のアクティブな利用者のみを一覧表示する。",
        "apihelp-query+backlinks-param-title": "検索するページ名。<var>$1pageid</var> とは同時に使用できません。",
        "apihelp-query+backlinks-param-pageid": "検索するページID。<var>$1title</var>とは同時に使用できません。",
        "apihelp-query+backlinks-param-namespace": "列挙する名前空間。",
+       "apihelp-query+backlinks-param-dir": "一覧表示する方向。",
        "apihelp-query+backlinks-example-simple": "<kbd>Main page</kbd> へのリンクを表示する。",
        "apihelp-query+backlinks-example-generator": "<kbd>Main page</kbd> にリンクしているページの情報を取得する。",
        "apihelp-query+blocks-description": "ブロックされた利用者とIPアドレスを一覧表示します。",
        "apihelp-query+blocks-param-show": "これらの基準を満たす項目のみを表示します。\nたとえば、IPアドレスの無期限ブロックのみを表示するには、<kbd>$1show=ip|!temp</kbd> を設定します。",
        "apihelp-query+blocks-example-simple": "ブロックを一覧表示する。",
        "apihelp-query+blocks-example-users": "利用者<kbd>Alice</kbd> および <kbd>Bob</kbd> のブロックを一覧表示する。",
+       "apihelp-query+categories-description": "ページが属するすべてのカテゴリを一覧表示します。",
        "apihelp-query+categories-param-prop": "各カテゴリについて取得する追加のプロパティ:",
        "apihelp-query+categories-paramvalue-prop-timestamp": "カテゴリが追加されたときのタイムスタンプを追加します。",
        "apihelp-query+categories-paramvalue-prop-hidden": "<code>_&#95;HIDDENCAT_&#95;</code>で隠されているカテゴリに印を付ける。",
        "apihelp-query+recentchanges-paramvalue-prop-flags": "編集のフラグを追加します。",
        "apihelp-query+recentchanges-paramvalue-prop-timestamp": "編集のタイムスタンプを追加します。",
        "apihelp-query+recentchanges-paramvalue-prop-title": "編集のページ名を追加します。",
-       "apihelp-query+recentchanges-paramvalue-prop-ids": "ページID、最近の変更IDと新旧の版IDを追加します。",
+       "apihelp-query+recentchanges-paramvalue-prop-ids": "ページID、最近の更新IDと新旧の版IDを追加します。",
        "apihelp-query+recentchanges-paramvalue-prop-sizes": "バイト単位の新旧のページの長さを追加します。",
        "apihelp-query+recentchanges-paramvalue-prop-redirect": "編集されたページが転送ページである場合、印を付けます。",
        "apihelp-query+recentchanges-paramvalue-prop-patrolled": "巡回可能な編集について、巡回済みかどうか印を付けます。",
        "apihelp-watch-example-watch": "<kbd>Main Page</kbd> をウォッチする。",
        "apihelp-watch-example-unwatch": "<kbd>Main Page</kbd> のウォッチを解除する。",
        "apihelp-format-example-generic": "クエリの結果を $1 形式に返します。",
-       "apihelp-dbg-description": "データを PHP の <code>var_export()</code> 形式で出力します。",
-       "apihelp-dbgfm-description": "データを PHP の <code>var_export()</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-php-description": "データを PHP のシリアル化した形式で出力します。",
        "apihelp-phpfm-description": "データを PHP のシリアル化した形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-rawfm-description": "データをデバッグ要素付きで JSON 形式 (HTML に埋め込んだ形式) で出力します。",
-       "apihelp-txt-description": "データを PHP の <code>print_r()</code> 形式で出力します。",
-       "apihelp-txtfm-description": "データを PHP の <code>print_r()</code> 形式 (HTML に埋め込んだ形式) で出力します。",
        "apihelp-xml-description": "データを XML 形式で出力します。",
        "apihelp-xml-param-xslt": "指定すると、XSLスタイルシートとして名付けられたページを追加します。値は、必ず、{{ns:mediawiki}} 名前空間の、ページ名の末尾が <code>.xsl</code> でのタイトルである必要があります。",
        "apihelp-xml-param-includexmlnamespace": "指定すると、XML 名前空間を追加します。",
        "apihelp-xmlfm-description": "データを XML 形式 (HTML に埋め込んだ形式) で出力します。",
-       "apihelp-yaml-description": "データを YAML 形式で出力します。",
-       "apihelp-yamlfm-description": "データを YAML 形式 (HTML に埋め込んだ形式) で出力します。",
        "api-format-title": "MediaWiki API の結果",
        "api-format-prettyprint-header": "このページは $1 形式を HTML で表現したものです。HTML はデバッグに役立ちますが、アプリケーションでの使用には適していません。\n\n<var>format</var> パラメーターを指定すると出力形式を変更できます 。$1 形式の非 HTML 版を閲覧するには、format=$2 を設定してください。\n\n詳細情報については [[mw:API|完全な説明文書]]または [[Special:ApiHelp/main|API のヘルプ]]を参照してください。",
        "api-pageset-param-titles": "対象のページ名のリスト。",
index ccd0dc3..c175e00 100644 (file)
        "apihelp-block-example-ip-simple": "IP <kbd>192.0.2.5</kbd>에 대해 <kbd>First strike</kbd>라는 이유로 3일간 차단하기",
        "apihelp-block-example-user-complex": "사용자 <kbd>Vandal</kbd>을 <kbd>Vandalism</kbd>이라는 이유로 무기한 차단하며 계정 생성 및 이메일 발송을 막기",
        "apihelp-checktoken-param-token": "테스트할 토큰",
+       "apihelp-checktoken-example-simple": "<kbd>csrf</kbd> 토큰의 유효성을 테스트합니다.",
+       "apihelp-clearhasmsg-description": "현재 사용자의 <code>hasmsg</code> 플래그를 비웁니다.",
+       "apihelp-compare-param-fromtitle": "비교할 첫 이름.",
+       "apihelp-compare-param-fromid": "비교할 첫 문서 ID.",
+       "apihelp-compare-param-fromrev": "비교할 첫 판.",
+       "apihelp-compare-param-totitle": "비교할 두번째 제목.",
+       "apihelp-compare-param-toid": "비교할 두번째 문서 ID.",
+       "apihelp-compare-param-torev": "비교할 두번째 판.",
+       "apihelp-compare-example-1": "판 1과 2의 차이를 생성합니다.",
        "apihelp-createaccount-description": "새 사용자 계정을 만듭니다.",
        "apihelp-createaccount-param-name": "사용자 이름",
        "apihelp-createaccount-param-password": "비밀번호입니다. (<var>$1mailpassword</var>가 설정되어 있으면 무시됩니다)",
+       "apihelp-createaccount-param-token": "첫 요청에서 획득한 계정 생성 토큰.",
        "apihelp-createaccount-param-email": "사용자 이메일 주소 (선택).",
        "apihelp-createaccount-param-realname": "사용자 실명 (선택).",
+       "apihelp-createaccount-param-mailpassword": "아무 값이든 존재한다면, 랜덤 비밀번호가 이메일로 전송됩니다.",
+       "apihelp-createaccount-param-reason": "선택적인, 기록에 남을 계정을 만드는 이유",
        "apihelp-createaccount-example-pass": "사용자 <kbd>testuser</kbd>를 만들고 비밀번호를 <kbd>test123</kbd>으로 설정합니다.",
        "apihelp-createaccount-example-mail": "사용자 <kbd>testmailuser</kbd>를 만들고 자동 생성된 비밀번호를 이메일로 보냅니다.",
        "apihelp-delete-description": "문서 삭제",
        "apihelp-edit-param-notminor": "사소하지 않은 편집.",
        "apihelp-edit-param-bot": "이 편집을 봇으로 표시.",
        "apihelp-edit-param-unwatch": "문서를 현재 사용자의 주시문서 목록에서 제거합니다.",
+       "apihelp-edit-param-redirect": "자동으로 넘겨주기 처리하기.",
+       "apihelp-edit-param-contentmodel": "새 콘텐츠의 콘텐츠 모델.",
        "apihelp-edit-example-edit": "문서 편집",
        "apihelp-emailuser-description": "사용자에게 이메일을 보냅니다.",
        "apihelp-emailuser-param-target": "이메일을 받을 사용자.",
+       "apihelp-emailuser-param-subject": "제목 헤더.",
+       "apihelp-emailuser-param-text": "메일 본문.",
        "apihelp-emailuser-param-ccme": "자신에게 메일의 복사본을 보냅니다.",
+       "apihelp-emailuser-example-email": "<kbd>WikiSysop</kbd> 사용자에게 텍스트 <kbd>콘텐츠</kbd>로 이메일을 보냅니다.",
+       "apihelp-expandtemplates-description": "모든 틀을 위키텍스트로 확장.",
        "apihelp-expandtemplates-param-title": "문서 제목",
        "apihelp-expandtemplates-param-text": "변환할 위키텍스트.",
+       "apihelp-feedcontributions-param-feedformat": "피드 포맷.",
        "apihelp-feedcontributions-param-deletedonly": "삭제된 기여만 봅니다.",
        "apihelp-feedcontributions-param-toponly": "최신 판인 편집만 봅니다.",
+       "apihelp-feedrecentchanges-param-feedformat": "피드 포맷.",
        "apihelp-feedrecentchanges-param-hideminor": "사소한 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-param-hidebots": "봇의 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-param-hideanons": "익명 사용자의 편집을 숨깁니다.",
        "apihelp-feedrecentchanges-example-30days": "30일간의 최근 바뀜을 봅니다.",
        "apihelp-filerevert-description": "파일을 이전 판으로 되돌립니다.",
        "apihelp-filerevert-example-revert": "<kbd>Wiki.png</kbd>를 <kbd>2011-03-05T15:27:40Z</kbd> 판으로 되돌립니다.",
+       "apihelp-import-param-xml": "업로드한 XML 파일.",
        "apihelp-login-param-name": "계정 이름.",
        "apihelp-login-param-password": "비밀번호.",
+       "apihelp-login-param-domain": "도메인 (선택).",
        "apihelp-login-example-login": "로그인.",
        "apihelp-move-description": "문서 이동하기.",
        "apihelp-move-param-reason": "제목을 변경하는 이유",
        "apihelp-options-example-reset": "모든 설정 초기화",
        "apihelp-protect-example-protect": "문서 보호",
        "apihelp-query+allmessages-example-ipb": "<kbd>ipb-</kbd>로 시작하는 메시지를 보입니다.",
+       "apihelp-query+allrevisions-description": "모든 판 표시.",
        "apihelp-query+pageswithprop-param-limit": "나타낼 문서의 최대 수입니다.",
        "apihelp-query+pageswithprop-param-dir": "정렬 순서",
        "apihelp-query+prefixsearch-param-search": "문자열 검색",
index a49c481..c334d38 100644 (file)
@@ -39,6 +39,8 @@
        "apihelp-feedrecentchanges-param-hideliu": "Ännerunge vu registréierte Benotzer verstoppen.",
        "apihelp-feedrecentchanges-param-hidemyself": "Ännerunge vum aktuelle Benotzer verstoppen.",
        "apihelp-feedrecentchanges-param-hidecategorization": "Ännerunge vun der Memberschaft a Kategorie verstoppen.",
+       "apihelp-feedrecentchanges-param-categories": "Nëmmen Ännerunge vu Säiten aus all dëse Kategorië weisen.",
+       "apihelp-feedrecentchanges-param-categories_any": "Nëmmen Ännerunge vu Säiten aus enger vun dëse Kategorië weisen.",
        "apihelp-feedrecentchanges-example-simple": "Rezent Ännerunge weisen",
        "apihelp-help-example-main": "Hëllef fir den Haaptmodul.",
        "apihelp-help-example-recursive": "All Hëllef op enger Säit",
index acb0b28..1a0e181 100644 (file)
@@ -13,6 +13,8 @@
        "apihelp-edit-param-minor": "छोटे संपादन",
        "apihelp-edit-param-notminor": "छोटे नसलेले संपादन",
        "apihelp-edit-example-edit": "पान संपादा",
+       "apihelp-feedrecentchanges-param-categories": "या सर्व वर्गात असलेल्या पानांमधील बदलच फक्त  दाखवा.",
+       "apihelp-feedrecentchanges-param-categories_any": "त्यापेक्षा,या कोणत्याही वर्गांमधील,पानांना झालेले बदलच फक्त दाखवा.",
        "apihelp-login-param-name": "सदस्य नाव.",
        "apihelp-login-param-password": "परवलीचा शब्द.",
        "apihelp-login-example-login": "सनोंद-प्रवेश करा.",
        "apihelp-protect-example-protect": "पानास सुरक्षित करा.",
        "apihelp-query-param-list": "कोणती यादी मागवायची.",
        "apihelp-query-param-meta": "कोणता मेटाडाटा हवा.",
+       "apihelp-query+allpages-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+allredirects-param-dir": "कोणत्या दिशेस यादी करावयाची.",
        "apihelp-query+allrevisions-description": "सर्व आवृत्त्यांची यादी",
        "apihelp-query+allrevisions-param-user": "फक्त या सदस्याच्याच आवृत्त्यांची यादी करा",
        "apihelp-query+allrevisions-param-excludeuser": "या सदस्याच्या आवृत्त्यांची यादी करु नका.",
+       "apihelp-query+allusers-paramvalue-prop-rights": "सदस्यास असलेल्या अधिकारांची यादी करते.",
+       "apihelp-query+allusers-paramvalue-prop-editcount": "सदस्याची संपादन मोजणी जोडते.",
+       "apihelp-query+allusers-paramvalue-prop-registration": "जर उपलब्ध असेल तर,सदस्याने केंव्हा नोंदणी केली त्याचा वेळठसा(रिक्त असू शकतो)",
+       "apihelp-query+allusers-param-witheditsonly": "फक्त संपादन केलेल्या सदस्यांचीच यादी करा.",
+       "apihelp-query+allusers-param-activeusers": "मागील $1 {{PLURAL:$1|दिवसात}} सक्रिय सदस्यांचीच यादी करा.",
+       "apihelp-query+allusers-example-Y": "<kbd>य</kbd> पासून सदस्यनाव सुरु होणाऱ्या सदस्यांचीच यादी करा.",
+       "apihelp-query+backlinks-description": "दिलेल्या पानास दुवे असणारी सर्व पाने शोधा.",
+       "apihelp-query+backlinks-param-title": "शोधावयाचे शीर्षक.<var>$1pageid</var>यासमवेत वापरु शकत नाही.",
+       "apihelp-query+backlinks-param-pageid": "शोधावयाची पान ओळखण.<var>$1title</var>यासमवेत वापरु शकत नाही.",
+       "apihelp-query+backlinks-param-namespace": "प्रगणन करावयाचे नामविश्व.",
+       "apihelp-query+backlinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+backlinks-param-filterredir": "पुनर्निर्देशनांची कशी गाळणी करावयाची. जर <var>$1redirect</var>सक्षम करुन <kbd>nonredirects</kbd>ला स्थापले तर, ते केवळ दुसऱ्या स्तरासच लागू होते.",
+       "apihelp-query+backlinks-param-redirect": "जर दुवा जोडणारे पान एक पुनर्निर्देशन असेल तर,त्या पुनर्निर्देशनास दुवे असलेली पानेही शोधा. महत्तम मर्यादा अर्धी केल्या जाते.",
+       "apihelp-query+backlinks-example-simple": "<kbd>मुखपृष्ठास</kbd> असणारे दुवे दाखवा.",
+       "apihelp-query+backlinks-example-generator": "<kbd>मुखपृष्ठास</kbd> दुवे असणाऱ्या पानांची माहिती घ्या.",
+       "apihelp-query+blocks-description": "सर्व प्रतिबंधित सदस्यांची व अंकपत्त्यांची यादी करा.",
+       "apihelp-query+blocks-param-start": "च्यापासून प्रगणना सुरु करावयाची त्याचा वेळठसा.",
+       "apihelp-query+blocks-param-end": "कुठपर्यंत प्रगणना संपवायची त्याचा वेळठसा.",
+       "apihelp-query+blocks-paramvalue-prop-user": "प्रतिबंधित सदस्याचे सदस्यनाव जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-userid": "प्रतिबंधित सदस्याची सदस्यओळखण जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-by": "प्रतिबंधन करणाऱ्या सदस्याचे सदस्यनाव जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-byid": "प्रतिबंधन करणाऱ्या सदस्याची सदस्यओळखण जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-timestamp": "प्रतिबंधन केंव्हा केले त्याचा वेळठसा जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-expiry": "प्रतिबंधनाची मुदत केंव्हा संपते त्याचा वेळठसा.",
+       "apihelp-query+blocks-paramvalue-prop-reason": "प्रतिबंधनाची दिलेली कारणे जोडते.",
+       "apihelp-query+blocks-paramvalue-prop-range": "प्रतिबंधनाने बाधित अंकपत्त्यांचा आवाका जोडते.",
+       "apihelp-query+blocks-example-simple": "प्रतिबंधनाची यादी करा.",
+       "apihelp-query+blocks-example-users": "सदस्य<kbd>अलिस</kbd> व <kbd>बॉब</kbd> या सदस्यांचे प्रतिबंधनाची यादी करा.",
+       "apihelp-query+categories-description": "ही पाने कोणकोणत्या वर्गात आहेत त्याची यादी करा.",
+       "apihelp-query+categories-param-show": "कोणत्या प्रकारचे वर्ग दाखवायचेत.",
+       "apihelp-query+categories-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+categories-example-simple": "<kbd>अल्बर्ट आईन्स्टाईन</kbd>हे पान कोणकोणत्या वर्गात आहे त्याची यादी करा.",
+       "apihelp-query+categories-example-generator": "<kbd>अल्बर्ट आईन्स्टाईन</kbd>या पानात वापरलेल्या सर्व वर्गांची माहिती द्या.",
+       "apihelp-query+categorymembers-description": "दिलेल्या वर्गात असलेल्या सर्व पानांची यादी करते.",
+       "apihelp-query+deletedrevs-param-end": "कुठपर्यंत प्रगणना संपवायची त्याचा वेळठसा.",
+       "apihelp-query+deletedrevs-param-from": "या शीर्षकापासून यादी करणे सुरु करा.",
+       "apihelp-query+deletedrevs-param-to": "या शीर्षकास यादी करणे थांबवा.",
+       "apihelp-query+deletedrevs-param-unique": "प्रत्येक पानाच्या फक्त एकाच आवृत्तीची यादी करा.",
+       "apihelp-query+deletedrevs-param-user": "या सदस्याच्या आवृत्तीचीच यादी करा.",
+       "apihelp-query+deletedrevs-param-excludeuser": "या सदस्याच्या आवृत्तीची यादी करु नका.",
+       "apihelp-query+deletedrevs-param-namespace": "या नामविश्वात असलेल्या पानांचीच यादी करा.",
+       "apihelp-query+deletedrevs-param-limit": "यादी करावयाच्या आवृत्त्यांचे महत्तम प्रमाण.",
+       "apihelp-query+duplicatefiles-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+embeddedin-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+filearchive-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+images-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+imageusage-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+iwlinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+langbacklinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+langlinks-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+links-param-dir": "कोणत्या दिशेस यादी करावयाची.",
+       "apihelp-query+recentchanges-param-end": "कुठपर्यंत प्रगणना संपवायची त्याचा वेळठसा.",
+       "apihelp-query+watchlist-param-type": "कोणत्या प्रकारचे बदल दाखवायचे:",
+       "apihelp-query+watchlist-paramvalue-type-edit": "नित्याची पान संपादने.",
+       "apihelp-query+watchlist-paramvalue-type-external": "बाह्य बदल.",
+       "apihelp-query+watchlist-paramvalue-type-new": "पान तयार करणे.",
+       "apihelp-query+watchlist-paramvalue-type-log": "नोंद प्रविष्ट्या",
+       "apihelp-query+watchlist-paramvalue-type-categorize": "वर्ग सदस्यता बदलते.",
        "apihelp-stashedit-param-title": "पानाच्या मथळ्याचे संपादन होत आहे.",
        "apihelp-stashedit-param-sectiontitle": "नविन विभागाचा मथळा"
 }
index e515646..e2d862f 100644 (file)
@@ -5,7 +5,12 @@
                        "C.R."
                ]
        },
+       "apihelp-main-param-servedby": "Include 'o risultato 'e nomme d' 'o host ca servette 'a richiesta.",
+       "apihelp-main-param-curtimestamp": "Include dint' 'o risultato 'o timestamp 'e mò.",
        "apihelp-block-description": "Blocca n'utente.",
+       "apihelp-block-param-user": "Nomme utente, indirizzo IP o range IP 'a bluccà.",
+       "apihelp-block-param-reason": "Mutive p' 'o blocco.",
+       "apihelp-block-param-nocreate": "Nun premmmettere 'a criazione 'e cunte",
        "apihelp-compare-param-fromtitle": "Primmo titolo 'a cunfruntà.",
        "apihelp-compare-param-fromid": "Primmo ID 'e paggena a cunfruntà.",
        "apihelp-compare-param-fromrev": "Primma verziona a cunfruntà.",
index a0d0502..bb3aa46 100644 (file)
@@ -33,6 +33,7 @@
        "apihelp-query+search-example-simple": "د <kbd>meaning</kbd> پلټل.",
        "apihelp-query+search-example-text": "د <kbd>مانا</kbd> لپاره متنونه پلټل.",
        "apihelp-query+watchlist-paramvalue-prop-title": "د يو مخ سرليک ورگډوي.",
+       "apihelp-query+watchlist-paramvalue-type-new": "مخ جوړونې.",
        "apihelp-stashedit-param-sectiontitle": "د يوې نوې برخې سرليک.",
        "apihelp-tag-param-reason": "د بدلون سبب.",
        "apihelp-unblock-param-reason": "د بنديز ليرې کولو سبب.",
index 05b19f1..047a806 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "{{doc-apihelp-param|feedrecentchanges|tagfilter}}",
        "apihelp-feedrecentchanges-param-target": "{{doc-apihelp-param|feedrecentchanges|target}}",
        "apihelp-feedrecentchanges-param-showlinkedto": "{{doc-apihelp-param|feedrecentchanges|showlinkedto}}",
+       "apihelp-feedrecentchanges-param-categories": "{{doc-apihelp-param|feedrecentchanges|categories}}",
+       "apihelp-feedrecentchanges-param-categories_any": "{{doc-apihelp-param|feedrecentchanges|categories_any}}",
        "apihelp-feedrecentchanges-example-simple": "{{doc-apihelp-example|feedrecentchanges}}",
        "apihelp-feedrecentchanges-example-30days": "{{doc-apihelp-example|feedrecentchanges}}",
        "apihelp-feedwatchlist-description": "{{doc-apihelp-description|feedwatchlist}}",
        "apihelp-watch-example-unwatch": "{{doc-apihelp-example|watch}}",
        "apihelp-watch-example-generator": "{{doc-apihelp-example|watch}}",
        "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-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-php-param-formatversion": "{{doc-apihelp-param|json|formatversion}}",
        "apihelp-phpfm-description": "{{doc-apihelp-description|phpfm|seealso=* {{msg-mw|apihelp-php-description}}}}",
        "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-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}}",
        "apihelp-xmlfm-description": "{{doc-apihelp-description|xmlfm|seealso=* {{msg-mw|apihelp-xml-description}}}}",
-       "apihelp-yaml-description": "{{doc-apihelp-description|yaml|seealso=* {{msg-mw|apihelp-yamlfm-description}}}}",
-       "apihelp-yamlfm-description": "{{doc-apihelp-description|yamlfm|seealso=* {{msg-mw|apihelp-yaml-description}}}}",
        "api-format-title": "{{technical}}\nPage title when API output is pretty-printed in HTML.",
        "api-format-prettyprint-header": "{{technical}} Displayed as a header when API output is pretty-printed in HTML.\n\nParameters:\n* $1 - Format name\n* $2 - Non-pretty-printing module name",
        "api-format-prettyprint-header-only-html": "{{technical}} Displayed as a header when API output is pretty-printed in HTML, but there is no non-html module.\n\nParameters:\n* $1 - Format name",
index 15a9ef4..ab54698 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Susith Chandira Gts"
+                       "Susith Chandira Gts",
+                       "SusithCM"
                ]
        },
        "apihelp-main-param-action": "ඉටු කිරීමට ඇත්තේ කුමන ක්‍රියාවද.",
        "apihelp-help-example-main": "ප්‍රධාන ඒකකය සදහා උදවු කරන්න",
        "apihelp-help-example-recursive": "සියලුම උදවු එක පිටුවක් තුල",
        "apihelp-help-example-query": "සැකසහිත අනුඒකක සදහා උදවු කරන්න",
+       "apihelp-login-param-name": "පරිශීලක නාමය.",
        "apihelp-parse-paramvalue-prop-jsconfigvars": "මෙම පිටුව සඳහා වූ JavaScript වින්‍යාස විචල්‍යයන් ලබා දෙයි.",
        "apihelp-userrights-param-user": "පරිශීලක නාමය.",
        "apihelp-userrights-param-userid": "පරිශීලක අනන්‍යාංකය.",
        "apihelp-format-example-generic": "$1 ආකෘතියේ ඇති සැක සහිත ප්‍රථිපල පරිවර්තනය කරන්න",
-       "apihelp-dbg-description": "ප්‍රතිදාන දත්ත PHP හි var_export() ආකෘතියෙන් පවතී.",
-       "apihelp-dbgfm-description": "ප්‍රතිදාන දත්ත PHP හි var_export() ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
        "apihelp-json-description": "ප්‍රතිදාන දත්ත JSON ආකෘතියෙන් පවතී.",
        "apihelp-jsonfm-description": "ප්‍රතිදාන දත්ත JSON ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
        "apihelp-none-description": "ප්‍රතිදානයේ කිසිවක් නොමැත.",
        "apihelp-php-description": "ප්‍රතිදාන දත්ත serialized PHP ආකෘතියෙන් පවතී.",
        "apihelp-phpfm-description": "ප්‍රතිදාන දත්ත serialized PHP ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
-       "apihelp-txt-description": "ප්‍රතිදාන දත්ත PHP හි print_r() ආකෘතියෙන් පවතී.",
-       "apihelp-txtfm-description": "ප්‍රතිදාන දත්ත PHP හි print_r() ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
        "apihelp-xml-description": "ප්‍රතිදාන දත්ත XML ආකෘතියෙන් පවතී.",
        "apihelp-xml-param-includexmlnamespace": "නිරූපණය කළා නම්, XML නාමාවකාශයක් එකතු කරන්න.",
        "apihelp-xmlfm-description": "ප්‍රතිදාන දත්ත XML ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
-       "apihelp-yaml-description": "ප්‍රතිදාන දත්ත YAML ආකෘතියෙන් පවතී.",
-       "apihelp-yamlfm-description": "ප්‍රතිදාන දත්ත YAML ආකෘතියෙන් පවතී (හොදම පිටපත HTML භාෂාවෙනි).",
        "api-format-title": "මාධ්‍යවිකි API ප්‍රථිපල",
        "api-help-title": "මාධ්‍යවිකි API උදවු",
        "api-help-lead": "මෙය ස්වයං-ජනිත මාධ්‍යවිකි API \tප්‍රලේඛන පිටුවකි.\n\nප්‍රලේඛනය සහ උදාහරණ:\nhttps://www.mediawiki.org/wiki/API",
index 997c6ac..95eea7d 100644 (file)
@@ -4,11 +4,12 @@
                        "Sayginer",
                        "Sadrettin",
                        "Uğurkent",
-                       "Gorizon"
+                       "Gorizon",
+                       "HakanIST"
                ]
        },
-       "apihelp-block-description": "Kullanıcıyı engelle",
-       "apihelp-block-param-reason": "Engelleme sebebi",
+       "apihelp-block-description": "Bir kullanıcıyı engelle.",
+       "apihelp-block-param-reason": "Engelleme sebebi.",
        "apihelp-createaccount-param-name": "Kullanıcı adı.",
        "apihelp-createaccount-param-password": "Parola (ignored if <var>$1mailpassword</var> is set).",
        "apihelp-createaccount-param-email": "Kullanıcının e-posta adresi (isteğe bağlı).",
index 8e4f790..df7756d 100644 (file)
@@ -9,12 +9,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-main-param-uselang": "Ngôn ngữ để sử dụng cho các bản dịch thông điệp. <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> với <kbd>siprop=languages</kbd> trả về một danh sách các mã ngôn ngữ, hoặc định rõ <kbd>user</kbd> để sử dụng ngôn ngữ của người dùng hiện tại, hoặc định rõ <kbd>content</kbd> để 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-block-param-reblock": "Nếu người dùng này đã bị cấm, ghi đè lên vụ cấm đã tồn tại.",
        "apihelp-checktoken-param-type": "Kiểu dấu hiệu được kiểm thử.",
        "apihelp-checktoken-param-token": "Dấu hiệu để kiểm thử.",
        "apihelp-checktoken-example-simple": "Kiểm thử dấu hiệu <kbd>csrf</kbd> có hợp lệ hay không.",
        "apihelp-createaccount-param-token": "Dấu hiệu mở tài khoản được lấy trong yêu cầu đầu tiên.",
        "apihelp-createaccount-param-email": "Địa chỉ thư điện tử của thành viên (tùy chọn).",
        "apihelp-createaccount-param-realname": "Tên thật của thành viên (tùy chọn).",
-       "apihelp-createaccount-param-mailpassword": "Nếu đặt bất kỳ giá trị nào, một mật khẩu ngẫu nhiên sẽ được email lại cho người dùng.",
+       "apihelp-createaccount-param-mailpassword": "Nếu đặt bất kỳ giá trị nào, một mật khẩu ngẫu nhiên sẽ được gửi lại cho người dùng qua thư điện tử.",
        "apihelp-createaccount-param-reason": "Lý do tùy chọn cho việc tạo tài khoản để đăng nhập.",
        "apihelp-createaccount-param-language": "Mã ngôn ngữ để thiết lập mặc định cho người dùng (tùy chọn, mặc định là ngôn ngữ nội dung).",
        "apihelp-createaccount-example-pass": "Tạo người dùng <kbd>người kiểm tra</kbd> với mật khẩu <kbd>test123</kbd>.",
-       "apihelp-createaccount-example-mail": "Tạo người dùng <kbd>người dùng kiểm tra email> và email một mật khẩu được tạo ra ngẫu nhiên.",
+       "apihelp-createaccount-example-mail": "Tạo người dùng <kbd>người dùng thử gửi</kbd> và gửi một mật khẩu được tạo ra ngẫu nhiên qua thư điện tử.",
        "apihelp-delete-description": "Xóa trang.",
        "apihelp-delete-param-title": "Xóa tiêu đề của trang. Không thể sử dụng cùng với <var>$1pageid</var>.",
        "apihelp-delete-param-pageid": "Xóa ID của trang. Không thể sử dụng cùng với <var>$1title</var>.",
        "apihelp-query-param-list": "Các danh sách để lấy.",
        "apihelp-query-param-meta": "Siêu dữ liệu để lấy.",
        "apihelp-query+allcategories-param-dir": "Hướng xếp loại.",
-       "apihelp-rollback-description": "Hoàn tác chỉnh sửa cuối cùng của trang này.\n\nNếu người dùng cuối cùng đã cỉnh sửa trang này nhiều lần, tất cả chúng sẽ được hoàn tác lại như ban đầu.",
+       "apihelp-rollback-description": "Lùi lại sửa đổi cuối cùng của trang này.\n\nNếu người dùng cuối cùng đã sửa đổi trang này nhiều lần, tất cả chúng sẽ được lùi lại cùng một lúc.",
        "apihelp-format-example-generic": "Cho ra kết quả truy vấn dưới dạng $1.",
-       "apihelp-dbg-description": "Cho ra dữ liệu dưới dạng <code>var_export()</code> của PHP.",
-       "apihelp-dbgfm-description": "Cho ra dữ liệu dưới dạng <code>var_export()</code> 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 <code>print_r()</code> của PHP.",
-       "apihelp-txtfm-description": "Cho ra dữ liệu dưới dạng <code>print_r()</code> của PHP (đị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.",
-       "apihelp-yamlfm-description": "Cho ra dữ liệu dưới dạng YAML (định dạng bằng HTML).",
        "api-format-title": "Kết quả API MediaWiki",
        "api-help-title": "Trợ giúp về API MediaWiki",
        "api-help-main-header": "Mô đun chính",
        "api-help-parameters": "{{PLURAL:$1|Tham số|Các tham số}}:",
        "api-help-param-deprecated": "Bị phản đối.",
        "api-help-param-required": "Tham số này là bắt buộc.",
-       "api-help-param-list": "{{PLURAL:$1|1=Một giá trị|2=Các giá trị (phân tách bằng <kbd>{{!}}</kbd>)}}: $2",
+       "api-help-param-list": "{{PLURAL:$1|1=Một trong các giá trị|2=Các giá trị (phân tách bằng <kbd>{{!}}</kbd>)}}: $2",
        "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Cần phải để trống|Cần phải để trống hoặc là $2}}",
        "api-help-param-limit": "Không cho phép hơn $1.",
        "api-help-param-limit2": "Không cho phép hơn $1 ($2 đối với các bot).",
index 5247258..ff26429 100644 (file)
        "apihelp-feedcontributions-param-newonly": "仅仅显示那些作为页面创建的编辑。",
        "apihelp-feedcontributions-param-showsizediff": "显示修订版本之间的大小差别。",
        "apihelp-feedcontributions-example-simple": "返回用户<kbd>Example</kbd>的贡献。",
-       "apihelp-feedrecentchanges-description": "返回最新变更纲要。",
+       "apihelp-feedrecentchanges-description": "返回最近更改的摘要。",
        "apihelp-feedrecentchanges-param-feedformat": "纲要的格式。",
        "apihelp-feedrecentchanges-param-namespace": "用于限制结果的命名空间。",
        "apihelp-feedrecentchanges-param-invert": "除所选定者外的所有命名空间。",
        "apihelp-feedrecentchanges-param-tagfilter": "按标签过滤。",
        "apihelp-feedrecentchanges-param-target": "仅仅显示从该页面链出的那些页面的变更。",
        "apihelp-feedrecentchanges-param-showlinkedto": "仅仅显示链入到该页面的那些页面的变更。",
+       "apihelp-feedrecentchanges-param-categories": "只显示所有这些分类中的页面上的更改。",
+       "apihelp-feedrecentchanges-param-categories_any": "只显示这些分类以外页面的更改。",
        "apihelp-feedrecentchanges-example-simple": "显示最近更改。",
        "apihelp-feedrecentchanges-example-30days": "显示最近30天的更改。",
        "apihelp-feedwatchlist-description": "返回监视列表纲要。",
        "apihelp-parse-example-texttitle": "解析wiki文本,指定页面标题。",
        "apihelp-parse-example-summary": "解析一个摘要。",
        "apihelp-patrol-description": "巡查页面或修订版本。",
-       "apihelp-patrol-param-rcid": "所要巡查的最近变更 ID。",
+       "apihelp-patrol-param-rcid": "要巡查的最近更改 ID。",
        "apihelp-patrol-param-revid": "要巡查的修订版本ID。",
        "apihelp-patrol-example-rcid": "巡查一次最近更改。",
        "apihelp-patrol-example-revid": "巡查一次修订。",
        "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-json-description": "输出数据为JSON格式。",
        "apihelp-json-param-callback": "如果指定,将输出内容包裹在一个指定的函数调用中。出于安全考虑,所有用户相关的数据将被限制。",
        "apihelp-json-param-utf8": "如果指定,使用十六进制转义序列将大多数(但不是全部)非ASCII的字符编码为UTF-8,而不是替换它们。默认当<var>formatversion</var>不是<kbd>1</kbd>时。",
        "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": "输出数据为PHP的<code>print_r()</code>格式。",
-       "apihelp-txtfm-description": "输出数据为PHP的<code>print_r()</code>格式(HTML优质打印效果)。",
        "apihelp-xml-description": "输出数据为XML格式。",
        "apihelp-xml-param-xslt": "如果指定,加入已命名的页面作为一个XSL样式表。值必须是在{{ns:mediawiki}}名字空间以<code>.xsl</code>为结尾的标题。",
        "apihelp-xml-param-includexmlnamespace": "如果指定,添加一个XML名字空间。",
        "apihelp-xmlfm-description": "输出数据为XML格式(HTML优质打印效果)。",
-       "apihelp-yaml-description": "输出数据为YAML格式。",
-       "apihelp-yamlfm-description": "输出数据为YAML格式(HTML优质打印效果)。",
        "api-format-title": "MediaWiki API 结果",
        "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-format-prettyprint-header-only-html": "这是用来调试的HTML表现,不适合实际使用。\n\n参见[[mw:API|完整文档]],或[[Special:ApiHelp/main|API帮助]]以获取更多信息。",
index 226d448..c3880fa 100644 (file)
@@ -92,7 +92,7 @@
        "apihelp-feedcontributions-param-feedformat": "Feed 的格式。",
        "apihelp-feedcontributions-param-showsizediff": "顯示修訂版本之間的差異大小。",
        "apihelp-feedcontributions-example-simple": "返回使用者<kbd>Example</kbd>的貢獻。",
-       "apihelp-feedrecentchanges-description": "返回近期邊更摘要。",
+       "apihelp-feedrecentchanges-description": "返回最近更改摘要。",
        "apihelp-feedrecentchanges-param-feedformat": "摘要格式。",
        "apihelp-feedrecentchanges-param-namespace": "用於限制結果的命名空間。",
        "apihelp-feedrecentchanges-param-invert": "除所選定者外的所有命名空間。",
        "apihelp-feedrecentchanges-param-hideanons": "隱藏匿名使用者做的變更。",
        "apihelp-feedrecentchanges-param-hideliu": "隱藏已註冊使用者做的變更。",
        "apihelp-feedrecentchanges-param-hidepatrolled": "隱藏已巡查的變更。",
-       "apihelp-feedrecentchanges-example-simple": "顯示近期變動",
+       "apihelp-feedrecentchanges-example-simple": "顯示最近更改。",
        "apihelp-feedrecentchanges-example-30days": "顯示近期30天內的變動",
        "apihelp-feedwatchlist-description": "返回監視清單 feed。",
        "apihelp-feedwatchlist-param-feedformat": "Feed 的格式。",
        "apihelp-parse-example-texttitle": "解析 wikitext,指定頁面標題。",
        "apihelp-parse-example-summary": "解析一個摘要。",
        "apihelp-patrol-description": "巡查一個頁面或修訂。",
-       "apihelp-patrol-param-rcid": "要巡查的近期變更 ID。",
+       "apihelp-patrol-param-rcid": "要巡查的最近更改 ID。",
        "apihelp-patrol-param-revid": "要巡查的修訂 ID。",
-       "apihelp-patrol-example-rcid": "巡查一個近期變更。",
+       "apihelp-patrol-example-rcid": "巡查一次最近更改。",
        "apihelp-patrol-example-revid": "巡查一個修訂。",
        "apihelp-protect-description": "變更頁面的保護層級。",
        "apihelp-protect-param-title": "要(解除)保護頁面的標題。 不能與 $1pageid 一起使用。",
        "apihelp-query+prefixsearch-param-limit": "回傳的結果數量上限。",
        "apihelp-query+protectedtitles-param-limit": "要回傳的頁面總數。",
        "apihelp-query+querypage-param-limit": "回傳的結果數量。",
-       "apihelp-query+recentchanges-description": "列舉出近期變動。",
+       "apihelp-query+recentchanges-description": "列舉出最近更改。",
        "apihelp-query+recentchanges-param-limit": "要回傳變更總數。",
-       "apihelp-query+recentchanges-example-simple": "近期變動清單",
+       "apihelp-query+recentchanges-example-simple": "最近更改清單",
        "apihelp-query+redirects-description": "回傳連結至指定頁面的所有重新導向。",
        "apihelp-query+redirects-param-limit": "要回傳的重新導向數量。",
        "apihelp-query+search-param-limit": "要回傳的頁面總數。",
        "apihelp-query+stashimageinfo-example-simple": "回傳儲藏檔案的檔案資訊。",
        "apihelp-query+templates-description": "回傳指定頁面中所有引用的頁面。",
        "apihelp-query+templates-param-limit": "要回傳的模板數量。",
-       "apihelp-query+tokens-param-type": "è«\8bæ±\82ç\9a\84å¯\86é\91°類型。",
+       "apihelp-query+tokens-param-type": "è¦\81æ±\82ç\9a\84æ¬\8aæ\9d\96類型。",
        "apihelp-query+tokens-example-simple": "接收 csrf 密鑰 (預設)。",
        "apihelp-query+tokens-example-types": "接收監視密鑰以及巡邏密鑰。",
        "apihelp-query+transcludedin-param-limit": "回傳的數量。",
        "apihelp-userrights-param-remove": "從這些群組移除使用者。",
        "apihelp-userrights-param-reason": "變更的原因。",
        "apihelp-format-example-generic": "格式化查詢結果為 $1 格式",
-       "apihelp-dbg-description": "使用 PHP 的 <code>var_export()</code> 格式輸出資料。",
-       "apihelp-dbgfm-description": "使用 PHP 的 <code>var_export()</code> 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-json-description": "使用 JSON 格式輸出資料。",
        "apihelp-jsonfm-description": "使用 JSON 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-none-description": "不輸出。",
        "apihelp-php-description": "使用序列化 PHP 格式輸出資料。",
        "apihelp-phpfm-description": "使用序列化 PHP 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-rawfm-description": "使用 JSON 格式的除錯元素輸出資料 (使用 HTML 格式顯示)。",
-       "apihelp-txt-description": "使用 PHP 的 <code>print_r()</code> 格式輸出資料。",
-       "apihelp-txtfm-description": "使用 PHP 的 <code>print_r()</code> 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-xml-description": "使用 XML 格式輸出資料。",
        "apihelp-xmlfm-description": "使用 XML 格式輸出資料 (使用 HTML 格式顯示)。",
-       "apihelp-yaml-description": "使用 YAML 格式輸出資料。",
-       "apihelp-yamlfm-description": "使用 YAML 格式輸出資料 (使用 HTML 格式顯示)。",
        "api-format-title": "MediaWiki API 結果",
-       "api-orm-param-props": "要查詢的欄位。",
-       "api-orm-param-limit": "回傳的列數上限。",
        "api-pageset-param-titles": "要使用的標題清單。",
        "api-pageset-param-pageids": "要使用的頁面 ID 清單。",
        "api-pageset-param-revids": "要使用的修訂 ID 清單。",
index dcb358f..624bbc9 100644 (file)
  */
 
 /**
- * This class provides access to the resource message blobs storage used
- * by ResourceLoader.
+ * This class provides access to the message blobs used by ResourceLoader modules.
  *
  * A message blob is a JSON object containing the interface messages for a
- * certain resource in a certain language. These message blobs are cached
- * in the msg_resource table and automatically invalidated when one of their
- * constituent messages or the resource itself is changed.
+ * certain module in a certain language. These message blobs are cached
+ * in the automatically invalidated when one of their constituent messages,
+ * or the module definition, is changed.
  */
 class MessageBlobStore {
        /**
@@ -51,18 +50,6 @@ class MessageBlobStore {
                $this->resourceloader = $resourceloader;
        }
 
-       /**
-        * Get the singleton instance
-        *
-        * @since 1.24
-        * @deprecated since 1.25
-        * @return MessageBlobStore
-        */
-       public static function getInstance() {
-               wfDeprecated( __METHOD__, '1.25' );
-               return new self;
-       }
-
        /**
         * Get the message blobs for a set of modules
         *
@@ -84,13 +71,13 @@ class MessageBlobStore {
                        if ( isset( $this->blobCache[$lang][$name] ) ) {
                                $blobs[$name] = $this->blobCache[$lang][$name];
                        } else {
-                               $missingFromCache[] = $name;
+                               $missingFromCache[$name] = $module;
                        }
                }
 
                // Try DB cache
                if ( $missingFromCache ) {
-                       $blobs += $this->getFromDB( $resourceLoader, $missingFromCache, $lang );
+                       $blobs += $this->getFromDB( $missingFromCache, $lang );
                }
 
                // Generate new blobs for any remaining modules and store in DB
@@ -120,7 +107,7 @@ class MessageBlobStore {
         * @param string $name Module name
         * @param ResourceLoaderModule $module
         * @param string $lang Language code
-        * @return mixed Message blob or false if the module has no messages
+        * @return string JSON blob
         */
        public function insertMessageBlob( $name, ResourceLoaderModule $module, $lang ) {
                $blob = $this->generateMessageBlob( $module, $lang );
@@ -352,13 +339,12 @@ class MessageBlobStore {
         * Get the message blobs for a set of modules from the database.
         * Modules whose blobs are not in the database are silently dropped.
         *
-        * @param ResourceLoader $resourceLoader
-        * @param array $modules Array of module names
+        * @param array $modules Array of module objects by name
         * @param string $lang Language code
         * @throws MWException
         * @return array Array mapping module names to blobs
         */
-       private function getFromDB( ResourceLoader $resourceLoader, $modules, $lang ) {
+       private function getFromDB( $modules, $lang ) {
                if ( !count( $modules ) ) {
                        return array();
                }
@@ -367,16 +353,16 @@ class MessageBlobStore {
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select( 'msg_resource',
                        array( 'mr_blob', 'mr_resource', 'mr_timestamp' ),
-                       array( 'mr_resource' => $modules, 'mr_lang' => $lang ),
+                       array( 'mr_resource' => array_keys( $modules ), 'mr_lang' => $lang ),
                        __METHOD__
                );
 
                foreach ( $res as $row ) {
-                       $module = $resourceLoader->getModule( $row->mr_resource );
-                       if ( !$module ) {
+                       if ( !isset( $modules[ $row->mr_resource ] ) ) {
                                // This shouldn't be possible
                                throw new MWException( __METHOD__ . ' passed an invalid module name' );
                        }
+                       $module = $modules[ $row->mr_resource ];
 
                        // Update the module's blob if the list of messages changed
                        $blobKeys = array_keys( FormatJson::decode( $row->mr_blob, true ) );
@@ -396,7 +382,7 @@ class MessageBlobStore {
         *
         * @param ResourceLoaderModule $module
         * @param string $lang Language code
-        * @return string JSON object
+        * @return string JSON blob
         */
        private function generateMessageBlob( ResourceLoaderModule $module, $lang ) {
                $messages = array();
index a9af9c4..47960ca 100644 (file)
@@ -724,8 +724,6 @@ class MessageCache {
         *   message (which can be empty)
         */
        function get( $key, $useDB = true, $langcode = true, $isFullKey = false ) {
-               global $wgContLang;
-
                if ( is_int( $key ) ) {
                        // Fix numerical strings that somehow become ints
                        // on their way here
@@ -749,14 +747,11 @@ class MessageCache {
 
                Hooks::run( 'MessageCache::get', array( &$lckey ) );
 
-               $uckey = $wgContLang->ucfirst( $lckey );
-
                // Loop through each language in the fallback list until we find something useful
                $lang = wfGetLangObj( $langcode );
                $message = $this->getMessageFromFallbackChain(
                        $lang,
                        $lckey,
-                       $uckey,
                        !$this->mDisable && $useDB
                );
 
@@ -798,21 +793,21 @@ class MessageCache {
        }
 
        /**
-        * Given a language, try and fetch a message from that language, then the
-        * fallbacks of that language, then the site language, then the fallbacks for the
-        * site language.
+        * Given a language, try and fetch messages from that language.
         *
-        * @param Language $lang Requested language
-        * @param string $lckey Lowercase key for the message
-        * @param string $uckey Uppercase key for the message
-        * @param bool $useDB Whether to use the database
+        * Will also consider fallbacks of that language, the site language, and fallbacks for
+        * the site language.
         *
         * @see MessageCache::get
+        * @param Language|StubObject $lang Preferred language
+        * @param string $lckey Lowercase key for the message (as for localisation cache)
+        * @param bool $useDB Whether to include messages from the wiki database
         * @return string|bool The message, or false if not found
         */
-       protected function getMessageFromFallbackChain( $lang, $lckey, $uckey, $useDB ) {
+       protected function getMessageFromFallbackChain( $lang, $lckey, $useDB ) {
                global $wgLanguageCode, $wgContLang;
 
+               $uckey = $wgContLang->ucfirst( $lckey );
                $langcode = $lang->getCode();
                $message = false;
 
@@ -900,7 +895,7 @@ class MessageCache {
         * @param string $code Code denoting the language to try.
         * @return string|bool The message, or false if it does not exist or on error
         */
-       function getMsgFromNamespace( $title, $code ) {
+       public function getMsgFromNamespace( $title, $code ) {
                $this->load( $code );
                if ( isset( $this->mCache[$code][$title] ) ) {
                        $entry = $this->mCache[$code][$title];
index 6840d17..1ef26d2 100644 (file)
  * Kind of like Hawking's [[Chronology Protection Agency]].
  */
 class ChronologyProtector {
-       /** @var array (DB master name => position) */
-       protected $startupPositions = array();
+       /** @var BagOStuff */
+       protected $store;
 
-       /** @var array (DB master name => position) */
-       protected $shutdownPositions = array();
+       /** @var string Storage key name */
+       protected $key;
+       /** @var array Map of (ip: <IP>, agent: <user-agent>) */
+       protected $client;
+       /** @var bool Whether to no-op all method calls */
+       protected $enabled = true;
+       /** @var bool Whether to check and wait on positions */
+       protected $wait = true;
 
-       /** @var bool Whether the session data was loaded */
+       /** @var bool Whether the client data was loaded */
        protected $initialized = false;
+       /** @var DBMasterPos[] Map of (DB master name => position) */
+       protected $startupPositions = array();
+       /** @var DBMasterPos[] Map of (DB master name => position) */
+       protected $shutdownPositions = array();
+
+       /**
+        * @param BagOStuff $store
+        * @param array $client Map of (ip: <IP>, agent: <user-agent>)
+        * @since 1.27
+        */
+       public function __construct( BagOStuff $store, array $client ) {
+               $this->store = $store;
+               $this->client = $client;
+               $this->key = $store->makeGlobalKey(
+                       'ChronologyProtector',
+                       md5( $client['ip'] . "\n" . $client['agent'] )
+               );
+       }
+
+       /**
+        * @param bool $enabled Whether to no-op all method calls
+        * @since 1.27
+        */
+       public function setEnabled( $enabled ) {
+               $this->enabled = $enabled;
+       }
+
+       /**
+        * @param bool $enabled Whether to check and wait on positions
+        * @since 1.27
+        */
+       public function setWaitEnabled( $enabled ) {
+               $this->wait = $enabled;
+       }
 
        /**
         * Initialise a LoadBalancer to give it appropriate chronology protection.
         *
-        * If the session has a previous master position recorded, this will try to
+        * If the stash has a previous master position recorded, this will try to
         * make sure that the next query to a slave of that master will see changes up
         * to that position by delaying execution. The delay may timeout and allow stale
         * data if no non-lagged slaves are available.
@@ -47,20 +87,18 @@ class ChronologyProtector {
         * @return void
         */
        public function initLB( LoadBalancer $lb ) {
-               if ( $lb->getServerCount() <= 1 ) {
-                       return; // non-replicated setup
-               }
-               if ( !$this->initialized ) {
-                       $this->initialized = true;
-                       if ( isset( $_SESSION[__CLASS__] ) && is_array( $_SESSION[__CLASS__] ) ) {
-                               $this->startupPositions = $_SESSION[__CLASS__];
-                       }
+               if ( !$this->enabled || $lb->getServerCount() <= 1 ) {
+                       return; // non-replicated setup or disabled
                }
-               $masterName = $lb->getServerName( 0 );
+
+               $this->initPositions();
+
+               $masterName = $lb->getServerName( $lb->getWriterIndex() );
                if ( !empty( $this->startupPositions[$masterName] ) ) {
                        $info = $lb->parentInfo();
                        $pos = $this->startupPositions[$masterName];
-                       wfDebug( __METHOD__ . ": LB '" . $info['id'] . "' waiting for master pos $pos\n" );
+                       wfDebugLog( 'replication', __METHOD__ .
+                               ": LB '" . $info['id'] . "' waiting for master pos $pos\n" );
                        $lb->waitFor( $pos );
                }
        }
@@ -73,23 +111,23 @@ class ChronologyProtector {
         * @return void
         */
        public function shutdownLB( LoadBalancer $lb ) {
-               if ( session_id() == '' || $lb->getServerCount() <= 1 ) {
-                       return; // don't start a session; don't bother with non-replicated setups
-               }
-               $masterName = $lb->getServerName( 0 );
-               if ( isset( $this->shutdownPositions[$masterName] ) ) {
-                       return; // already done
+               if ( !$this->enabled || $lb->getServerCount() <= 1 ) {
+                       return; // non-replicated setup or disabled
                }
-               // Only save the position if writes have been done on the connection
-               $db = $lb->getAnyOpenConnection( 0 );
+
                $info = $lb->parentInfo();
+               $masterName = $lb->getServerName( $lb->getWriterIndex() );
+
+               // Only save the position if writes have been done on the connection
+               $db = $lb->getAnyOpenConnection( $lb->getWriterIndex() );
                if ( !$db || !$db->doneWrites() ) {
-                       wfDebug( __METHOD__ . ": LB {$info['id']}, no writes done\n" );
+                       wfDebugLog( 'replication', __METHOD__ . ": LB {$info['id']}, no writes done\n" );
 
-                       return;
+                       return; // nothing to do
                }
+
                $pos = $db->getMasterPos();
-               wfDebug( __METHOD__ . ": LB {$info['id']} has master pos $pos\n" );
+               wfDebugLog( 'replication', __METHOD__ . ": LB {$info['id']} has master pos $pos\n" );
                $this->shutdownPositions[$masterName] = $pos;
        }
 
@@ -97,13 +135,75 @@ class ChronologyProtector {
         * Notify the ChronologyProtector that the LBFactory is done calling shutdownLB() for now.
         * May commit chronology data to persistent storage.
         *
-        * @return void
+        * @return array Empty on success; returns the (db name => position) map on failure
         */
        public function shutdown() {
-               if ( session_id() != '' && count( $this->shutdownPositions ) ) {
-                       wfDebug( __METHOD__ . ": saving master pos for " .
-                               count( $this->shutdownPositions ) . " master(s)\n" );
-                       $_SESSION[__CLASS__] = $this->shutdownPositions;
+               if ( !$this->enabled || !count( $this->shutdownPositions ) ) {
+                       return true; // nothing to save
+               }
+
+               wfDebugLog( 'replication',
+                       __METHOD__ . ": saving master pos for " .
+                       implode( ', ', array_keys( $this->shutdownPositions ) ) . "\n"
+               );
+
+               $shutdownPositions = $this->shutdownPositions;
+               $ok = $this->store->merge(
+                       $this->key,
+                       function ( $store, $key, $curValue ) use ( $shutdownPositions ) {
+                               /** @var $curPositions DBMasterPos[] */
+                               if ( $curValue === false ) {
+                                       $curPositions = $shutdownPositions;
+                               } else {
+                                       $curPositions = $curValue['positions'];
+                                       // Use the newest positions for each DB master
+                                       foreach ( $shutdownPositions as $db => $pos ) {
+                                               if ( !isset( $curPositions[$db] )
+                                                       || $pos->asOfTime() > $curPositions[$db]->asOfTime()
+                                               ) {
+                                                       $curPositions[$db] = $pos;
+                                               }
+                                       }
+                               }
+
+                               return array( 'positions' => $curPositions );
+                       },
+                       BagOStuff::TTL_MINUTE,
+                       10,
+                       BagOStuff::WRITE_SYNC // visible in all datacenters
+               );
+
+               if ( !$ok ) {
+                       // Raced out too many times or stash is down
+                       wfDebugLog( 'replication',
+                               __METHOD__ . ": failed to save master pos for " .
+                               implode( ', ', array_keys( $this->shutdownPositions ) ) . "\n"
+                       );
+
+                       return $this->shutdownPositions;
+               }
+
+               return array();
+       }
+
+       /**
+        * Load in previous master positions for the client
+        */
+       protected function initPositions() {
+               if ( $this->initialized ) {
+                       return;
+               }
+
+               $this->initialized = true;
+               if ( $this->wait ) {
+                       $data = $this->store->get( $this->key );
+                       $this->startupPositions = $data ? $data['positions'] : array();
+
+                       wfDebugLog( 'replication', __METHOD__ . ": key is {$this->key} (read)\n" );
+               } else {
+                       $this->startupPositions = array();
+
+                       wfDebugLog( 'replication', __METHOD__ . ": key is {$this->key} (unread)\n" );
                }
        }
 }
index 99716a5..c0cf067 100644 (file)
@@ -989,7 +989,7 @@ abstract class DatabaseBase implements IDatabase {
                }
 
                if ( $this->debug() ) {
-                       wfDebugLog( 'queries', sprintf( "%s: %s", $this->mDBname, $sql ) );
+                       wfDebugLog( 'queries', sprintf( "%s: %s", $this->mDBname, $commentedSql ) );
                }
 
                $queryId = MWDebug::query( $sql, $fname, $isMaster );
@@ -3773,19 +3773,6 @@ abstract class DatabaseBase implements IDatabase {
                return true;
        }
 
-       /**
-        * Get the slave lag when the current transaction started
-        * or a general lag estimate if not transaction is active
-        *
-        * This is useful when transactions might use snapshot isolation
-        * (e.g. REPEATABLE-READ in innodb), so the "real" lag of that data
-        * is this lag plus transaction duration. If they don't, it is still
-        * safe to be pessimistic. In AUTO-COMMIT mode, this still gives an
-        * indication of the staleness of subsequent reads.
-        *
-        * @return array ('lag': seconds, 'since': UNIX timestamp of BEGIN)
-        * @since 1.27
-        */
        public function getSessionLagStatus() {
                return $this->getTransactionLagStatus() ?: $this->getApproximateLagStatus();
        }
@@ -3798,7 +3785,7 @@ abstract class DatabaseBase implements IDatabase {
         * is this lag plus transaction duration. If they don't, it is still
         * safe to be pessimistic. This returns null if there is no transaction.
         *
-        * @return array|null ('lag': seconds, 'since': UNIX timestamp of BEGIN)
+        * @return array|null ('lag': seconds or false on error, 'since': UNIX timestamp of BEGIN)
         * @since 1.27
         */
        public function getTransactionLagStatus() {
@@ -3810,7 +3797,7 @@ abstract class DatabaseBase implements IDatabase {
        /**
         * Get a slave lag estimate for this server
         *
-        * @return array ('lag': seconds, 'since': UNIX timestamp of estimate)
+        * @return array ('lag': seconds or false on error, 'since': UNIX timestamp of estimate)
         * @since 1.27
         */
        public function getApproximateLagStatus() {
@@ -3851,15 +3838,6 @@ abstract class DatabaseBase implements IDatabase {
                return $res;
        }
 
-       /**
-        * Get slave lag. Currently supported only by MySQL.
-        *
-        * Note that this function will generate a fatal error on many
-        * installations. Most callers should use LoadBalancer::safeGetLag()
-        * instead.
-        *
-        * @return int Database replication lag in seconds
-        */
        public function getLag() {
                return 0;
        }
index 4f93419..ca568ad 100644 (file)
@@ -620,13 +620,6 @@ abstract class DatabaseMysqlBase extends Database {
         */
        abstract protected function mysqlPing();
 
-       /**
-        * Returns slave lag.
-        *
-        * This will do a SHOW SLAVE STATUS
-        *
-        * @return int
-        */
        function getLag() {
                if ( $this->lagDetectionMethod === 'pt-heartbeat' ) {
                        return $this->getLagFromPtHeartbeat();
@@ -687,7 +680,7 @@ abstract class DatabaseMysqlBase extends Database {
                        return parent::getApproximateLagStatus();
                }
 
-               $key = wfGlobalCacheKey( 'mysql-lag', $this->getServer() );
+               $key = $this->srvCache->makeGlobalKey( 'mysql-lag', $this->getServer() );
                $approxLag = $this->srvCache->get( $key );
                if ( !$approxLag ) {
                        $approxLag = parent::getApproximateLagStatus();
@@ -722,10 +715,13 @@ abstract class DatabaseMysqlBase extends Database {
                $res = $this->doQuery( $sql );
 
                $status = false;
-               if ( $res && $row = $this->fetchRow( $res ) ) {
-                       $status = $row[0]; // can be NULL, -1, or 0+ per the MySQL manual
-                       if ( ctype_digit( $status ) ) { // success
-                               $this->lastKnownSlavePos = $pos;
+               if ( $res ) {
+                       $row = $this->fetchRow( $res );
+                       if ( $row ) {
+                               $status = $row[0]; // can be NULL, -1, or 0+ per the MySQL manual
+                               if ( ctype_digit( $status ) ) { // success
+                                       $this->lastKnownSlavePos = $pos;
+                               }
                        }
                }
 
index 66004ec..a3d7c1b 100644 (file)
@@ -395,7 +395,8 @@ class DatabaseOracle extends Database {
 
                MediaWiki\suppressWarnings();
 
-               if ( ( $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql ) ) === false ) {
+               $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql );
+               if ( $stmt === false ) {
                        $e = oci_error( $this->mConn );
                        $this->reportQueryError( $e['message'], $e['code'], $sql, __METHOD__ );
 
@@ -637,7 +638,8 @@ class DatabaseOracle extends Database {
                }
                $sql .= ')';
 
-               if ( ( $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql ) ) === false ) {
+               $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql );
+               if ( $stmt === false ) {
                        $e = oci_error( $this->mConn );
                        $this->reportQueryError( $e['message'], $e['code'], $sql, __METHOD__ );
 
@@ -668,7 +670,8 @@ class DatabaseOracle extends Database {
                                }
                        } else {
                                /** @var OCI_Lob[] $lob */
-                               if ( ( $lob[$col] = oci_new_descriptor( $this->mConn, OCI_D_LOB ) ) === false ) {
+                               $lob[$col] = oci_new_descriptor( $this->mConn, OCI_D_LOB );
+                               if ( $lob[$col] === false ) {
                                        $e = oci_error( $stmt );
                                        throw new DBUnexpectedError( $this, "Cannot create LOB descriptor: " . $e['message'] );
                                }
@@ -731,7 +734,8 @@ class DatabaseOracle extends Database {
                        $srcTable = $this->tableName( $srcTable );
                }
 
-               if ( ( $sequenceData = $this->getSequenceData( $destTable ) ) !== false &&
+               $sequenceData = $this->getSequenceData( $destTable );
+               if ( $sequenceData !== false &&
                        !isset( $varMap[$sequenceData['column']] )
                ) {
                        $varMap[$sequenceData['column']] = 'GET_SEQUENCE_VALUE(\'' . $sequenceData['sequence'] . '\')';
@@ -987,7 +991,8 @@ class DatabaseOracle extends Database {
                        'SELECT version FROM product_component_version ' .
                                'WHERE UPPER(product) LIKE \'ORACLE DATABASE%\''
                );
-               if ( !( $row = $rset->fetchRow() ) ) {
+               $row = $rset->fetchRow();
+               if ( !$row ) {
                        return oci_server_version( $this->mConn );
                }
 
@@ -1428,7 +1433,8 @@ class DatabaseOracle extends Database {
                        $sql .= ' WHERE ' . $this->makeList( $conds, LIST_AND );
                }
 
-               if ( ( $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql ) ) === false ) {
+               $this->mLastResult = $stmt = oci_parse( $this->mConn, $sql );
+               if ( $stmt === false ) {
                        $e = oci_error( $this->mConn );
                        $this->reportQueryError( $e['message'], $e['code'], $sql, __METHOD__ );
 
@@ -1458,7 +1464,8 @@ class DatabaseOracle extends Database {
                                }
                        } else {
                                /** @var OCI_Lob[] $lob */
-                               if ( ( $lob[$col] = oci_new_descriptor( $this->mConn, OCI_D_LOB ) ) === false ) {
+                               $lob[$col] = oci_new_descriptor( $this->mConn, OCI_D_LOB );
+                               if ( $lob[$col] === false ) {
                                        $e = oci_error( $stmt );
                                        throw new DBUnexpectedError( $this, "Cannot create LOB descriptor: " . $e['message'] );
                                }
index 19eb126..4674c17 100644 (file)
@@ -1369,7 +1369,7 @@ interface IDatabase {
         * installations. Most callers should use LoadBalancer::safeGetLag()
         * instead.
         *
-        * @return int Database replication lag in seconds
+        * @return int|bool Database replication lag in seconds or false on error
         */
        public function getLag();
 
@@ -1383,7 +1383,7 @@ interface IDatabase {
         * safe to be pessimistic. In AUTO-COMMIT mode, this still gives an
         * indication of the staleness of subsequent reads.
         *
-        * @return array ('lag': seconds, 'since': UNIX timestamp of BEGIN)
+        * @return array ('lag': seconds or false on error, 'since': UNIX timestamp of BEGIN)
         * @since 1.27
         */
        public function getSessionLagStatus();
index 86f0110..eeeca62 100644 (file)
  * @ingroup Database
  */
 abstract class LBFactory {
+       /** @var ChronologyProtector */
+       protected $chronProt;
+
        /** @var LBFactory */
        private static $instance;
 
        /** @var string|bool Reason all LBs are read-only or false if not */
        protected $readOnlyReason = false;
 
+       const SHUTDOWN_NO_CHRONPROT = 1; // don't save ChronologyProtector positions (for async code)
+
        /**
         * Construct a factory based on a configuration array (typically from $wgLBFactoryConf)
         * @param array $conf
@@ -40,6 +45,8 @@ abstract class LBFactory {
                if ( isset( $conf['readOnlyReason'] ) && is_string( $conf['readOnlyReason'] ) ) {
                        $this->readOnlyReason = $conf['readOnlyReason'];
                }
+
+               $this->chronProt = $this->newChronologyProtector();
        }
 
        /**
@@ -170,9 +177,10 @@ abstract class LBFactory {
 
        /**
         * Prepare all tracked load balancers for shutdown
+        * @param integer $flags Supports SHUTDOWN_* flags
         * STUB
         */
-       public function shutdown() {
+       public function shutdown( $flags = 0 ) {
        }
 
        /**
@@ -254,6 +262,62 @@ abstract class LBFactory {
                } );
                return $ret;
        }
+
+       /**
+        * Disable the ChronologyProtector for all load balancers
+        *
+        * This can be called at the start of special API entry points
+        *
+        * @since 1.27
+        */
+       public function disableChronologyProtection() {
+               $this->chronProt->setEnabled( false );
+       }
+
+       /**
+        * @return ChronologyProtector
+        */
+       protected function newChronologyProtector() {
+               $request = RequestContext::getMain()->getRequest();
+               $chronProt = new ChronologyProtector(
+                       ObjectCache::getMainStashInstance(),
+                       array(
+                               'ip' => $request->getIP(),
+                               'agent' => $request->getHeader( 'User-Agent' )
+                       )
+               );
+               if ( PHP_SAPI === 'cli' ) {
+                       $chronProt->setEnabled( false );
+               } elseif ( $request->getHeader( 'ChronologyProtection' ) === 'false' ) {
+                       // Request opted out of using position wait logic. This is useful for requests
+                       // done by the job queue or background ETL that do not have a meaningful session.
+                       $chronProt->setWaitEnabled( false );
+               }
+
+               return $chronProt;
+       }
+
+       /**
+        * @param ChronologyProtector $cp
+        */
+       protected function shutdownChronologyProtector( ChronologyProtector $cp ) {
+               // Get all the master positions needed
+               $this->forEachLB( function ( LoadBalancer $lb ) use ( $cp ) {
+                       $cp->shutdownLB( $lb );
+               } );
+               // Write them to the stash
+               $unsavedPositions = $cp->shutdown();
+               // If the positions failed to write to the stash, at least wait on local datacenter
+               // slaves to catch up before responding. Even if there are several DCs, this increases
+               // the chance that the user will see their own changes immediately afterwards. As long
+               // as the sticky DC cookie applies (same domain), this is not even an issue.
+               $this->forEachLB( function ( LoadBalancer $lb ) use ( $unsavedPositions ) {
+                       $masterName = $lb->getServerName( $lb->getWriterIndex() );
+                       if ( isset( $unsavedPositions[$masterName] ) ) {
+                               $lb->waitForAll( $unsavedPositions[$masterName] );
+                       }
+               } );
+       }
 }
 
 /**
index 089dfd3..e58aead 100644 (file)
@@ -76,8 +76,6 @@
  * @ingroup Database
  */
 class LBFactoryMulti extends LBFactory {
-       // Required settings
-
        /** @var array A map of database names to section names */
        private $sectionsByDB;
 
@@ -160,7 +158,6 @@ class LBFactoryMulti extends LBFactory {
        public function __construct( array $conf ) {
                parent::__construct( $conf );
 
-               $this->chronProt = new ChronologyProtector;
                $this->conf = $conf;
                $required = array( 'sectionsByDB', 'sectionLoads', 'serverTemplate' );
                $optional = array( 'groupLoadsBySection', 'groupLoadsByDB', 'hostsByName',
@@ -401,14 +398,10 @@ class LBFactoryMulti extends LBFactory {
                }
        }
 
-       public function shutdown() {
-               foreach ( $this->mainLBs as $lb ) {
-                       $this->chronProt->shutdownLB( $lb );
-               }
-               foreach ( $this->extLBs as $extLB ) {
-                       $this->chronProt->shutdownLB( $extLB );
+       public function shutdown( $flags = 0 ) {
+               if ( !( $flags & self::SHUTDOWN_NO_CHRONPROT ) ) {
+                       $this->shutdownChronologyProtector( $this->chronProt );
                }
-               $this->chronProt->shutdown();
-               $this->commitMasterChanges();
+               $this->commitMasterChanges(); // sanity
        }
 }
index 353c47a..1c9e094 100644 (file)
@@ -29,8 +29,6 @@ class LBFactorySimple extends LBFactory {
        private $mainLB;
        /** @var LoadBalancer[] */
        private $extLBs = array();
-       /** @var ChronologyProtector */
-       private $chronProt;
 
        /** @var string */
        private $loadMonitorClass;
@@ -38,7 +36,6 @@ class LBFactorySimple extends LBFactory {
        public function __construct( array $conf ) {
                parent::__construct( $conf );
 
-               $this->chronProt = new ChronologyProtector;
                $this->loadMonitorClass = isset( $conf['loadMonitorClass'] )
                        ? $conf['loadMonitorClass']
                        : null;
@@ -159,14 +156,10 @@ class LBFactorySimple extends LBFactory {
                }
        }
 
-       public function shutdown() {
-               if ( $this->mainLB ) {
-                       $this->chronProt->shutdownLB( $this->mainLB );
+       public function shutdown( $flags = 0 ) {
+               if ( !( $flags & self::SHUTDOWN_NO_CHRONPROT ) ) {
+                       $this->shutdownChronologyProtector( $this->chronProt );
                }
-               foreach ( $this->extLBs as $extLB ) {
-                       $this->chronProt->shutdownLB( $extLB );
-               }
-               $this->chronProt->shutdown();
-               $this->commitMasterChanges();
+               $this->commitMasterChanges(); // sanity
        }
 }
index 052a0fa..19b2d1c 100644 (file)
@@ -208,8 +208,6 @@ class LoadBalancer {
                        return false;
                }
 
-               # wfDebugLog( 'connect', var_export( $loads, true ) );
-
                # Return a random representative of the remainder
                return ArrayUtils::pickRandom( $loads );
        }
@@ -247,7 +245,7 @@ class LoadBalancer {
                                $nonErrorLoads = $this->mGroupLoads[$group];
                        } else {
                                # No loads for this group, return false and the caller can use some other group
-                               wfDebug( __METHOD__ . ": no loads for group $group\n" );
+                               wfDebugLog( 'connect', __METHOD__ . ": no loads for group $group\n" );
 
                                return false;
                        }
@@ -347,7 +345,8 @@ class LoadBalancer {
                                }
                        }
                        $serverName = $this->getServerName( $i );
-                       wfDebug( __METHOD__ . ": using server $serverName for group '$group'\n" );
+                       wfDebugLog( 'connect', __METHOD__ .
+                               ": using server $serverName for group '$group'\n" );
                }
 
                return $i;
@@ -455,7 +454,8 @@ class LoadBalancer {
                /** @var DBMasterPos $knownReachedPos */
                $knownReachedPos = $this->srvCache->get( $key );
                if ( $knownReachedPos && $knownReachedPos->hasReached( $this->mWaitForPos ) ) {
-                       wfDebugLog( 'replication', __METHOD__ . ": Slave $server known to be caught up.\n" );
+                       wfDebugLog( 'replication', __METHOD__ .
+                               ": slave $server known to be caught up (pos >= $knownReachedPos).\n" );
                        return true;
                }
 
@@ -469,7 +469,7 @@ class LoadBalancer {
                        } else {
                                $conn = $this->openConnection( $index, '' );
                                if ( !$conn ) {
-                                       wfDebugLog( 'replication', __METHOD__ . ": failed to open connection to $server\n" );
+                                       wfDebugLog( 'replication', __METHOD__ . ": failed to connect to $server\n" );
 
                                        return false;
                                }
@@ -685,10 +685,10 @@ class LoadBalancer {
                        $conn = $this->reallyOpenConnection( $server, false );
                        $serverName = $this->getServerName( $i );
                        if ( $conn->isOpen() ) {
-                               wfDebug( "Connected to database $i at $serverName\n" );
+                               wfDebugLog( 'connect', "Connected to database $i at $serverName\n" );
                                $this->mConns['local'][$i][0] = $conn;
                        } else {
-                               wfDebug( "Failed to connect to database $i at $serverName\n" );
+                               wfDebugLog( 'connect', "Failed to connect to database $i at $serverName\n" );
                                $this->mErrorConnection = $conn;
                                $conn = false;
                        }
@@ -963,14 +963,10 @@ class LoadBalancer {
                        for ( $i = 1; $i < $serverCount; $i++ ) {
                                $conn = $this->getAnyOpenConnection( $i );
                                if ( $conn ) {
-                                       wfDebug( "Master pos fetched from slave\n" );
-
                                        return $conn->getSlavePos();
                                }
                        }
                } else {
-                       wfDebug( "Master pos fetched from master\n" );
-
                        return $masterConn->getMasterPos();
                }
 
index 59d6ef6..31f6163 100644 (file)
@@ -58,7 +58,7 @@ class LoadMonitorMySQL implements LoadMonitor {
                # (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" );
+                       wfDebugLog( 'replication', __METHOD__ . ": got lag times ($key) from local cache" );
                        return $value['lagTimes']; // cache hit
                }
                $staleValue = $value ?: false;
@@ -67,7 +67,7 @@ class LoadMonitorMySQL implements LoadMonitor {
                $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" );
+                       wfDebugLog( 'replication', __METHOD__ . ": got lag times ($key) from main cache" );
 
                        return $value['lagTimes']; // cache hit
                }
@@ -90,9 +90,15 @@ class LoadMonitorMySQL implements LoadMonitor {
                foreach ( $serverIndexes as $i ) {
                        if ( $i == 0 ) { # Master
                                $lagTimes[$i] = 0;
-                       } elseif ( false !== ( $conn = $this->parent->getAnyOpenConnection( $i ) ) ) {
+                               continue;
+                       }
+                       $conn = $this->parent->getAnyOpenConnection( $i );
+                       if ( $conn !== false ) {
                                $lagTimes[$i] = $conn->getLag();
-                       } elseif ( false !== ( $conn = $this->parent->openConnection( $i, $wiki ) ) ) {
+                               continue;
+                       }
+                       $conn = $this->parent->openConnection( $i, $wiki );
+                       if ( $conn !== false ) {
                                $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,
@@ -106,7 +112,7 @@ class LoadMonitorMySQL implements LoadMonitor {
                $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)" );
+               wfDebugLog( 'replication', __METHOD__ . ": re-calculated lag times ($key)" );
 
                return $value['lagTimes'];
        }
@@ -118,7 +124,7 @@ class LoadMonitorMySQL implements LoadMonitor {
        }
 
        private function getLagTimeCacheKey() {
-               # Lag is per-server, not per-DB, so key on the master DB name
-               return wfGlobalCacheKey( 'lag-times', $this->parent->getServerName( 0 ) );
+               // Lag is per-server, not per-DB, so key on the master DB name
+               return $this->srvCache->makeGlobalKey( 'lag-times', $this->parent->getServerName( 0 ) );
        }
 }
index dbfdab0..a6290ed 100644 (file)
@@ -145,7 +145,11 @@ class LinksUpdate extends SqlDataUpdate implements EnqueueableDataUpdate {
        public function doUpdate() {
                Hooks::run( 'LinksUpdate', array( &$this ) );
                $this->doIncrementalUpdate();
-               Hooks::run( 'LinksUpdateComplete', array( &$this ) );
+
+               $that = $this;
+               $this->mDb->onTransactionIdle( function() use ( $that ) {
+                       Hooks::run( 'LinksUpdateComplete', array( &$that ) );
+               } );
        }
 
        protected function doIncrementalUpdate() {
index 0e4161c..d33e4a5 100644 (file)
@@ -30,7 +30,7 @@ class SquidUpdate implements DeferrableUpdate {
        protected $urls = array();
 
        /**
-        * @param array $urlArr Collection of URLs to purge
+        * @param string[] $urlArr Collection of URLs to purge
         */
        public function __construct( array $urlArr ) {
                // Remove duplicate URLs from list
@@ -41,13 +41,13 @@ class SquidUpdate implements DeferrableUpdate {
         * Create a SquidUpdate from an array of Title objects, or a TitleArray object
         *
         * @param Traversable|array $titles
-        * @param array $urlArr
+        * @param string[] $urlArr
         * @return SquidUpdate
         */
        public static function newFromTitles( $titles, $urlArr = array() ) {
                /** @var Title $title */
                foreach ( $titles as $title ) {
-                       $urlArr[] = $title->getInternalURL();
+                       $urlArr = array_merge( $urlArr, $title->getSquidURLs() );
                }
 
                return new SquidUpdate( $urlArr );
@@ -77,7 +77,7 @@ class SquidUpdate implements DeferrableUpdate {
         * (example: $urlArr[] = 'http://my.host/something')
         * XXX report broken Squids per mail or log
         *
-        * @param array $urlArr List of full URLs to purge
+        * @param string[] $urlArr List of full URLs to purge
         */
        public static function purge( array $urlArr ) {
                global $wgSquidServers, $wgHTCPRouting;
@@ -125,9 +125,9 @@ class SquidUpdate implements DeferrableUpdate {
         * Send Hyper Text Caching Protocol (HTCP) CLR requests.
         *
         * @throws MWException
-        * @param array $urlArr Collection of URLs to purge
+        * @param string[] $urlArr Collection of URLs to purge
         */
-       protected static function HTCPPurge( $urlArr ) {
+       protected static function HTCPPurge( array $urlArr ) {
                global $wgHTCPRouting, $wgHTCPMulticastTTL;
 
                // HTCP CLR operation
index 14810da..264c87f 100644 (file)
@@ -324,7 +324,8 @@ class DiffEngine {
 
                        for ( $yi = $skip; $yi < $n_to - $endskip; $yi++ ) {
                                $line = $to_lines[$yi];
-                               if ( ( $this->ychanged[$yi] = empty( $xhash[$this->lineHash( $line )] ) ) ) {
+                               $this->ychanged[$yi] = empty( $xhash[$this->lineHash( $line )] );
+                               if ( $this->ychanged[$yi] ) {
                                        continue;
                                }
                                $yhash[$this->lineHash( $line )] = 1;
@@ -333,7 +334,8 @@ class DiffEngine {
                        }
                        for ( $xi = $skip; $xi < $n_from - $endskip; $xi++ ) {
                                $line = $from_lines[$xi];
-                               if ( ( $this->xchanged[$xi] = empty( $yhash[$this->lineHash( $line )] ) ) ) {
+                               $this->xchanged[$xi] = empty( $yhash[$this->lineHash( $line )] );
+                               if ( $this->xchanged[$xi] ) {
                                        continue;
                                }
                                $this->xv[] = $line;
index 4737f08..be38e87 100644 (file)
@@ -204,10 +204,12 @@ class TableDiffFormatter extends DiffFormatter {
                # Notice that WordLevelDiff returns HTML-escaped output.
                # Hence, we will be calling addedLine/deletedLine without HTML-escaping.
 
-               while ( $line = array_shift( $del ) ) {
+               $line = array_shift( $del );
+               while ( $line ) {
                        $aline = array_shift( $add );
                        echo '<tr>' . $this->deletedLine( $line ) .
                                $this->addedLine( $aline ) . "</tr>\n";
+                       $line = array_shift( $del );
                }
                foreach ( $add as $line ) { # If any leftovers
                        echo '<tr>' . $this->emptyLine() .
index ee11df9..72f12d1 100644 (file)
@@ -1176,8 +1176,13 @@ abstract class File implements IDBAccessObject {
                if ( !$this->repo
                        || !isset( $params['physicalWidth'] )
                        || !isset( $params['physicalHeight'] )
-                       || !( $bucket = $this->getThumbnailBucket( $params['physicalWidth'] ) )
-                       || $bucket == $params['physicalWidth'] ) {
+               ) {
+                       return false;
+               }
+
+               $bucket = $this->getThumbnailBucket( $params['physicalWidth'] );
+
+               if ( !$bucket || $bucket == $params['physicalWidth'] ) {
                        return false;
                }
 
index 12d4007..c2bbb4e 100644 (file)
@@ -256,7 +256,6 @@ class LocalFile extends File {
 
                // Check if the key existed and belongs to this version of MediaWiki
                if ( is_array( $cachedValues ) && $cachedValues['version'] == MW_FILE_VERSION ) {
-                       wfDebug( "Pulling file metadata from cache key $key\n" );
                        $this->fileExists = $cachedValues['fileExists'];
                        if ( $this->fileExists ) {
                                $this->setProps( $cachedValues );
@@ -1405,8 +1404,6 @@ class LocalFile extends File {
                ) {
                        # Update memcache after the commit
                        $that->invalidateCache();
-                       # Page exists, do RC entry now (otherwise we wait for later)
-                       $logEntry->publish( $logId );
 
                        if ( $newPageContent ) {
                                # New file page; create the description page.
@@ -1420,7 +1417,6 @@ class LocalFile extends File {
                                        $user
                                );
 
-                               // Now that the page exists, make an RC entry.
                                // This relies on the resetArticleID() call in WikiPage::insertOn(),
                                // which is triggered on $descTitle by doEditContent() above.
                                if ( isset( $status->value['revision'] ) ) {
@@ -1439,6 +1435,8 @@ class LocalFile extends File {
                                $wikiPage->getTitle()->purgeSquid();
                        }
 
+                       # Now that the page exists, make an RC entry.
+                       $logEntry->publish( $logId );
                        # Run hook for other updates (typically more cache purging)
                        Hooks::run( 'FileUpload', array( $that, $reupload, !$newPageContent ) );
 
index 181c7b8..d2f7417 100644 (file)
@@ -111,48 +111,51 @@ class TraditionalImageGallery extends ImageGalleryBase {
                                                htmlspecialchars( $nt->getText() )
                                        ) .
                                        '</div>';
-                       } elseif ( !( $thumb = $img->transform( $transformOptions ) ) ) {
-                               # Error generating thumbnail.
-                               $thumbhtml = "\n\t\t\t" . '<div class="thumb" style="height: '
-                                       . ( $this->getThumbPadding() + $this->mHeights ) . 'px;">'
-                                       . htmlspecialchars( $img->getLastError() ) . '</div>';
                        } else {
-                               /** @var MediaTransformOutput $thumb */
-                               $vpad = $this->getVPad( $this->mHeights, $thumb->getHeight() );
-
-                               $imageParameters = array(
-                                       'desc-link' => true,
-                                       'desc-query' => $descQuery,
-                                       'alt' => $alt,
-                                       'custom-url-link' => $link
-                               );
-
-                               // In the absence of both alt text and caption, fall back on
-                               // providing screen readers with the filename as alt text
-                               if ( $alt == '' && $text == '' ) {
-                                       $imageParameters['alt'] = $nt->getText();
-                               }
-
-                               $this->adjustImageParameters( $thumb, $imageParameters );
-
-                               Linker::processResponsiveImages( $img, $thumb, $transformOptions );
-
-                               # Set both fixed width and min-height.
-                               $thumbhtml = "\n\t\t\t"
-                                       . '<div class="thumb" style="width: '
-                                       . $this->getThumbDivWidth( $thumb->getWidth() ) . 'px;">'
-                                       # Auto-margin centering for block-level elements. Needed
-                                       # now that we have video handlers since they may emit block-
-                                       # level elements as opposed to simple <img> tags. ref
-                                       # http://css-discuss.incutio.com/?page=CenteringBlockElement
-                                       . '<div style="margin:' . $vpad . 'px auto;">'
-                                       . $thumb->toHtml( $imageParameters ) . '</div></div>';
-
-                               // Call parser transform hook
-                               /** @var MediaHandler $handler */
-                               $handler = $img->getHandler();
-                               if ( $this->mParser && $handler ) {
-                                       $handler->parserTransformHook( $this->mParser, $img );
+                               $thumb = $img->transform( $transformOptions );
+                               if ( !$thumb ) {
+                                       # Error generating thumbnail.
+                                       $thumbhtml = "\n\t\t\t" . '<div class="thumb" style="height: '
+                                               . ( $this->getThumbPadding() + $this->mHeights ) . 'px;">'
+                                               . htmlspecialchars( $img->getLastError() ) . '</div>';
+                               } else {
+                                       /** @var MediaTransformOutput $thumb */
+                                       $vpad = $this->getVPad( $this->mHeights, $thumb->getHeight() );
+
+                                       $imageParameters = array(
+                                               'desc-link' => true,
+                                               'desc-query' => $descQuery,
+                                               'alt' => $alt,
+                                               'custom-url-link' => $link
+                                       );
+
+                                       // In the absence of both alt text and caption, fall back on
+                                       // providing screen readers with the filename as alt text
+                                       if ( $alt == '' && $text == '' ) {
+                                               $imageParameters['alt'] = $nt->getText();
+                                       }
+
+                                       $this->adjustImageParameters( $thumb, $imageParameters );
+
+                                       Linker::processResponsiveImages( $img, $thumb, $transformOptions );
+
+                                       # Set both fixed width and min-height.
+                                       $thumbhtml = "\n\t\t\t"
+                                               . '<div class="thumb" style="width: '
+                                               . $this->getThumbDivWidth( $thumb->getWidth() ) . 'px;">'
+                                               # Auto-margin centering for block-level elements. Needed
+                                               # now that we have video handlers since they may emit block-
+                                               # level elements as opposed to simple <img> tags. ref
+                                               # http://css-discuss.incutio.com/?page=CenteringBlockElement
+                                               . '<div style="margin:' . $vpad . 'px auto;">'
+                                               . $thumb->toHtml( $imageParameters ) . '</div></div>';
+
+                                       // Call parser transform hook
+                                       /** @var MediaHandler $handler */
+                                       $handler = $img->getHandler();
+                                       if ( $this->mParser && $handler ) {
+                                               $handler->parserTransformHook( $this->mParser, $img );
+                                       }
                                }
                        }
 
index f988e62..24a253e 100644 (file)
@@ -16,4 +16,8 @@ class HTMLApiField extends HTMLFormField {
        public function getInputHTML( $value ) {
                return '';
        }
+
+       public function hasVisibleOutput() {
+               return false;
+       }
 }
index 2b9a49a..78dbd30 100644 (file)
@@ -1402,16 +1402,19 @@ class HTMLForm extends ContextSource {
                                $v = empty( $value->mParams['nodata'] )
                                        ? $this->mFieldData[$key]
                                        : $value->getDefault();
-                               $html[] = $value->$getFieldHtmlMethod( $v );
 
-                               $labelValue = trim( $value->getLabel() );
-                               if ( $labelValue != '&#160;' && $labelValue !== '' ) {
-                                       $hasLabel = true;
-                               }
+                               $retval = $value->$getFieldHtmlMethod( $v );
+
+                               // check, if the form field should be added to
+                               // the output.
+                               if ( $value->hasVisibleOutput() ) {
+                                       $html[] = $retval;
+
+                                       $labelValue = trim( $value->getLabel() );
+                                       if ( $labelValue != '&#160;' && $labelValue !== '' ) {
+                                               $hasLabel = true;
+                                       }
 
-                               if ( get_class( $value ) !== 'HTMLHiddenField' &&
-                                       get_class( $value ) !== 'HTMLApiField'
-                               ) {
                                        $hasUserVisibleFields = true;
                                }
                        } elseif ( is_array( $value ) ) {
index 2e3fdb0..28bfb66 100644 (file)
@@ -86,6 +86,15 @@ abstract class HTMLFormField {
                return call_user_func_array( $callback, $args );
        }
 
+       /**
+        * If this field has a user-visible output or not. If not,
+        * it will not be rendered
+        *
+        * @return bool
+        */
+       public function hasVisibleOutput() {
+               return true;
+       }
 
        /**
         * Fetch a field value from $alldata for the closest field matching a given
index e4695f7..00f7343 100644 (file)
@@ -59,4 +59,8 @@ class HTMLHiddenField extends HTMLFormField {
        public function canDisplayErrors() {
                return false;
        }
+
+       public function hasVisibleOutput() {
+               return false;
+       }
 }
index 7414d92..87e6566 100644 (file)
@@ -512,7 +512,8 @@ END;
                if ( !$res ) {
                        return null;
                }
-               if ( !( $r = $this->db->fetchRow( $res ) ) ) {
+               $r = $this->db->fetchRow( $res );
+               if ( !$r ) {
                        return null;
                }
 
@@ -532,7 +533,8 @@ END;
                        if ( !$r2 ) {
                                return null;
                        }
-                       if ( !( $row2 = $this->db->fetchRow( $r2 ) ) ) {
+                       $row2 = $this->db->fetchRow( $r2 );
+                       if ( !$row2 ) {
                                return null;
                        }
                        $colnames[] = $row2[0];
@@ -555,7 +557,8 @@ END;
                                $this->db->addQuotes( $fkey )
                        )
                );
-               if ( !( $row = $this->db->fetchRow( $r ) ) ) {
+               $row = $this->db->fetchRow( $r );
+               if ( !$row ) {
                        return null;
                }
 
index f40bc3e..eba9807 100644 (file)
        "config-install-keys": "গোপন কি তৈরি",
        "config-help": "সাহায্য",
        "mainpagetext": "'''মিডিয়াউইকি সফলভাবে ইন্সটল করা হয়েছে।'''",
-       "mainpagedocfooter": "কী ভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [//meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি রিলিজের মেইলিং লিস্ট]"
+       "mainpagedocfooter": "কীভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [//meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি মুক্তির মেইলিং লিস্ট]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources আপনার ভাষার জন্য মিডিয়াউইকি স্থানীয়করণ করুন]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam আপনার উইকিতে স্প্যামের সাথে লড়াই করার উপায় সম্পর্কে জানুন]"
 }
index ff7afaa..75fbbfc 100644 (file)
@@ -11,5 +11,5 @@
        "config-information": "Gwybodaeth",
        "config-localsettings-upgrade": "Rydym wedi canfod ffeil <code>LocalSettings.php</code>.\nI uwchraddio'r gosodiad yma, rhowch fanylion y<code>$wgUpgradeKey</code> yn y blwch isod.\nFe'i cewch yn <code>LocalSettings.php</code>.",
        "mainpagetext": "'''Wedi llwyddo gosod meddalwedd MediaWiki yma'''",
-       "mainpagedocfooter": "Ceir cymorth (yn Saesneg) ar ddefnyddio meddalwedd wici yn y [//meta.wikimedia.org/wiki/Help:Contents Canllaw Defnyddwyr] ar wefan Wikimedia.\n\n==Cychwyn arni==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Rhestr osodiadau wrth gyflunio]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Cwestiynau poblogaidd ar MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Rhestr postio datganiadau MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Cyfieithu MediaWici i'ch iaith chi]"
+       "mainpagedocfooter": "\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Rhestr osodiadau wrth gyflunio]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Cwestiynau poblogaidd ar MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lleoleiddiwch MediaWiki ar gyfer eich iaith]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Dysgwch sut i ymladd sbam ar eich wici]"
 }
index 57140d3..60d1f57 100644 (file)
@@ -10,6 +10,9 @@
        "config-desc": "MediaWiki instalatzailea",
        "config-title": "MediaWiki $1 instalazioa",
        "config-information": "Informazioa",
+       "config-localsettings-upgrade": "<code>LocalSettings.php</code> fitxategi bat detektatu da.\nInstalazioa eguneratzeko, mesedez, sar ezazu <code>$wgUpgradeKey</code> balioa beheko koadroan.\n<code>LocalSettings.php</code> fitxategian aurkituko duzu.",
+       "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> fitxategi bat detektatu da.\nInstalazioa eguneratzeko, exekuta ezazu <code>update.php</code>, mesedez",
+       "config-localsettings-key": "Eguneratze-gakoa:",
        "config-session-error": "Saio hasierako errorea: $1",
        "config-your-language": "Zure hizkuntza:",
        "config-your-language-help": "Aukeratu instalazio prozesuan erabiliko den hizkuntza",
@@ -43,6 +46,8 @@
        "config-db-password": "Datu-base pasahitza:",
        "config-charset-mysql5-binary": "MySQL 4.1/5.0 bitarra",
        "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-db-port": "Datu-basearen ataka:",
+       "config-db-schema": "MediaWikirako eskema:",
        "config-type-mysql": "MySQL (edo bateragarria)",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
@@ -52,6 +57,8 @@
        "config-header-postgres": "PostgreSQL hobespenak",
        "config-header-sqlite": "SQLite hobespenak",
        "config-header-oracle": "Oracle hobespenak",
+       "config-header-mssql": "Microsoft SQL Server-en ezarpenak",
+       "config-invalid-db-type": "Datu-base mota baliogabea.",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-binary": "Bitarra",
@@ -74,6 +81,7 @@
        "config-license-pd": "Domeinu Askea",
        "config-email-settings": "E-posta hobespenak",
        "config-logo": "Logo URL:",
+       "config-advanced-settings": "Konfigurazio aurreratua",
        "config-extensions": "Luzapenak",
        "config-skins": "Itxurak",
        "config-install-step-done": "egina",
index ac60dea..c78c15e 100644 (file)
@@ -4,21 +4,80 @@
                        "Hangmanwa7id"
                ]
        },
+       "config-information": "Informations",
+       "config-localsettings-key": "Clef de mise à jour:",
+       "config-localsettings-badkey": "La clef que vous avez fournie est incorrecte.",
        "config-your-language": "Ton langue:",
+       "config-wiki-language": "Langue du wiki:",
+       "config-back": "← Retour",
+       "config-continue": "Continuer →",
+       "config-page-language": "Langue",
+       "config-page-welcome": "Bienvenue en MediaWiki!",
+       "config-page-dbconnect": "Connexion à la base de données",
+       "config-page-upgrade": "Mettre à jour l’installation existante",
+       "config-page-dbsettings": "Paramètres de la base de données",
        "config-page-name": "Nom",
        "config-page-options": "Options",
        "config-page-install": "Installer",
        "config-page-complete": "Terminé!",
+       "config-page-readme": "Lisez-moi",
+       "config-page-releasenotes": "Notes de version",
+       "config-page-copying": "Copie",
+       "config-page-upgradedoc": "Mise à jour",
+       "config-page-existingwiki": "Wiki existant",
+       "config-restart": "Oui, le relancer",
+       "config-env-php": "PHP $1 est installé.",
+       "config-env-hhvm": "HHVM $1 est installé.",
+       "config-unicode-using-intl": "Utilisation de [http://pecl.php.net/intl l'extension PECL intl] pour la normalisation Unicode.",
+       "config-diff3-bad": "GNU diff3 introuvable.",
+       "config-db-username": "Nom d’useur de la base de données:",
+       "config-db-password": "Mot de passe de la base de données:",
+       "config-db-install-username": "Entrez le nom d’useur qui sera usé pour se connecter à la base de données pendant le processus d'installation. Il s’agit pas du nom d’useur du compte MediaWiki, mais du nom d’useur pour votre base de données.",
+       "config-db-install-password": "Entrez le mot de passe qui sera usé pour se connecter à la base de données pendant le processus d'installation. Il s’agit pas du mot de passe du compte MediaWiki, mais du mot de passe pour votre base de données.",
+       "config-db-wiki-account": "Compte d'useur pour le fonctionnement normal",
+       "config-db-wiki-help": "Entrez le nom d'useur et le mot de passe qui seront usés pour se connecter à la base de données pendant le fonctionnement normal du wiki.\nSi le compte existe pas, et le compte d'installation dispose de privilèges suffisants, ce compte d'useur sera créé avec les privilèges minimum requis pour faire fonctionner le wiki.",
+       "config-db-prefix": "Préfixe des tables de la base de données:",
+       "config-db-charset": "Ensemble de caractères de la base de données",
+       "config-charset-mysql5-binary": "binaire MySQL 4.1/5.0",
+       "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+       "config-charset-mysql4": "MySQL 4.0 rétrocompatible UTF-8",
+       "config-oracle-def-ts": "Espace de stockage (''tablespace'') par défaut:",
+       "config-oracle-temp-ts": "Espace de stockage (''tablespace'') temporaire:",
+       "config-type-mysql": "MySQL (ou compatible)",
+       "config-type-mssql": "Microsoft SQL Server",
+       "config-header-mysql": "Paramètres de MySQL",
+       "config-header-postgres": "Paramètres de PostgreSQL",
+       "config-header-sqlite": "Paramètres de SQLite",
+       "config-header-oracle": "Paramètres d’Oracle",
+       "config-header-mssql": "Paramètres de Microsoft SQL Server",
+       "config-invalid-db-type": "Type de base de données non valide",
        "config-sqlite-name-help": "Choisir un nom qui identifie ton wiki.\nFait user pas ni d'espaces ni des traits d'union\nIl va user pour fichier de données SQLite.",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-binary": "Binaire",
        "config-mysql-utf8": "UTF-8",
+       "config-site-name": "Nom du wiki:",
        "config-ns-generic": "Projet",
        "config-ns-other-default": "MonWiki",
        "config-admin-name": "Ton nom d'useur:",
        "config-admin-password": "Mot de passe:",
        "config-admin-email": "Adresse d'email:",
+       "config-profile-wiki": "Wiki ouvert",
+       "config-email-settings": "Paramètres d'email",
+       "config-enable-email": "Activer les emails sortants",
+       "config-email-user": "Activer les emails d'useur à useur",
+       "config-email-watchlist": "Activer la notification de la liste de suivi",
+       "config-cc-again": "Choisissez à nouveau...",
+       "config-install-step-done": "fait",
+       "config-install-step-failed": "échoué",
+       "config-install-extensions": "Inclusion des extensions",
+       "config-install-database": "Création de la base de données",
+       "config-install-schema": "Création de schéma",
+       "config-install-pg-schema-not-exist": "Le schéma PostgreSQL existe pas",
+       "config-install-pg-schema-failed": "Échoué lors de la création des tables.\nAssurez-vous que l'useur \"$1\" peut écrire selon le schéma \"$2\".",
+       "config-install-pg-commit": "Validation des modifications",
+       "config-help": "aide",
+       "config-help-tooltip": "cliquer pour agrandir",
        "mainpagetext": "'''Vous avez bien installé MediaWiki.'''",
        "mainpagedocfooter": "Lisez la [//meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.\n\n== Pour Commencer ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Réglage]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki: Questions Souvent Posées]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]"
 }
index 03f236b..76d8ac1 100644 (file)
@@ -8,7 +8,7 @@
        "config-information": "माहिती",
        "config-localsettings-key": "दर्जोन्नती कळ:",
        "config-localsettings-badkey": "आपण दिलेली कळ चुकीची आहे.",
-       "config-session-error": "सतà¥\8dर à¤¸à¥\81रà¥\82 à¤\95रणà¥\8dयात à¤¤à¥\8dरà¥\82टी:$1",
+       "config-session-error": "सतà¥\8dर à¤¸à¥\81रà¥\82 à¤\95रणà¥\8dयात à¤¤à¥\8dरà¥\81टी:$1",
        "config-your-language": "आपली भाषा:",
        "config-your-language-help": "उभारणी प्रक्रियेत वापरावयाची भाषा निवडा.",
        "config-wiki-language": "विकी भाषा:",
@@ -31,8 +31,8 @@
        "config-header-mssql": "मायक्रोसॉफ्ट एसक्युएल सर्व्हर मांडणावळ",
        "config-mssql-old": "मायक्रोसॉफ्ट एसक्युएल सर्व्हर $1 किंवा त्यानंतरची आवृत्ती हवी. आपणापाशी $2 आहे.",
        "config-mssql-auth": "अधिप्रमाणन प्रकार:",
-       "config-mssql-install-auth": "उभारणीच्या(इन्स्टॉलेशन) प्रक्रियेदरम्यान,'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्याचा वापर डाटाबेसशी अनुबंधनात करण्यात येईल.जर आपण \"विंडोज ऑथेंटीकेशन\" निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
-       "config-mssql-web-auth": "या विकिचे सामन्य चालनादरम्यान,'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्याचा वापर डाटाबेसशी अनुबंधनात करण्यात येईल.जर आपण \"विंडोज ऑथेंटीकेशन\" निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
+       "config-mssql-install-auth": "उभारणीच्या(इन्स्टॉलेशन) प्रक्रियेदरम्यान,'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्याचा वापर डाटाबेसशी अनुबंधनात करण्यात येईल.जर आपण \"{{int:config-mssql-windowsauth}} निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
+       "config-mssql-web-auth": "'अधिप्रमाणन प्रकार'( ऑथेंटीकेशन टाईप) निवडा, ज्यास,या विकिचे सामान्य चालनादरम्यान, वेब सर्व्हर हा डाटाबेसशी अनुबंधन करण्यास वापरेल.जर आपण\"{{int:config-mssql-windowsauth}}\" निवडले तर,ज्याकोणत्याही सदस्याची अधिकारपत्रे(क्रेडेंटियल्स) वेबसर्व्हरवर सुरू असतील,तशीच वापरल्या जातील.",
        "config-mssql-sqlauth": "एसक्युएल सर्व्हर अधिप्रमाणन",
        "config-mssql-windowsauth": "विंडोजचे अधिप्रमाणन",
        "config-site-name": "विकिचे नाव:",
@@ -58,7 +58,7 @@
        "config-install-step-done": "झाले",
        "config-install-extensions": "विस्तारके अंतर्भूत करून",
        "config-install-tables": "सारण्या बनवित आहे",
-       "config-install-tables-failed": "<strong>तà¥\8dरà¥\82à¤\9fà¥\80:</strong>à¤\96ालà¥\80ल à¤¤à¥\8dरà¥\82टीमुळे सारणी बनविणे अयशस्वी:$1",
+       "config-install-tables-failed": "<strong>तà¥\8dरà¥\81à¤\9fà¥\80:</strong>à¤\96ालà¥\80ल à¤¤à¥\8dरà¥\81टीमुळे सारणी बनविणे अयशस्वी:$1",
        "config-help": "साहाय्य",
        "mainpagetext": "'''मीडियाविकीचे इन्स्टॉलेशन पूर्ण.'''",
        "mainpagedocfooter": "विकी सॉफ्टवेअर वापरण्याकरिता [//meta.wikimedia.org/wiki/Help:Contents यूजर गाईड] पहा.\n\n== सुरुवात करा ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings रचित मांडण्याची यादी]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ मिडियाविकि FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-मिडियाविकिची मेलिंग यादीचे विमोचनाची उद्घोषणाannounce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources आपल्या भाषेसाठी मिडियाविकिचे स्थानिकिकरण करा]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam आपल्या विकिवर स्पॅमशी दोन हात कशे करावे ते शिका]"
index 35db182..561d097 100644 (file)
        "config-logo": "URL d\"o logo:",
        "config-logo-help": "'A skin predefinita 'e MediaWiki tene spazion p' 'o logo 'e 135 x 160 pixel ncopp' 'o menu laterale.\nCarreca n'immaggene 'e diminziuna apprupriata e azzecca l'URL ccà.\n\nFosse pussibbele ausà <code>$wgStylePath</code> o <code>$wgScriptPath</code> si 'o logo è relativo a sti percurze. Si nun vulite nu logo, lassate abbacante sta casciulella.",
        "config-instantcommons": "Appiccia Instant Commons",
+       "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] è na funziunalita ca premmettesse 'e wiki 'ausà immaggene, suone e ati file multimediale ca ve truvate ncopp' 'o sito 'e [//commons.wikimedia.org/ Wikimedia Commons].\nSi chesto vulite fà, MediaWiki vulesse accieso a Internet.\n\nPe n'avé cchiù nfurmaziune ncopp'a sta funziunalità, ncludenno 'e struziune ncopp' 'a configuraziona pe' wiki divierze 'e Wikimedia Commons, fermateve nu poco a stureà [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgForeignFileRepos 'o manuale].",
        "config-cc-error": "'O selettore 'e licienze Creative Commons nun mmustaje nisciuno risultato.\nNzertate manualmente 'o nomme d' 'a licienza.",
        "config-cc-again": "Selezziona n'ata vota...",
        "config-cc-not-chosen": "Sciglite quale licienza Creative Commons desiderate e cliccate ncopp' 'a \"prucede\".",
        "config-skins-missing": "Nisciuna skin s'è truvata, MediaWiki ausasse na soluzione 'e ripiego nfin'a quanno nun sarrà installata una buona.",
        "config-skins-must-enable-some": "Avit'a scegliere minimo na skin p' 'a puté appiccià.",
        "config-skins-must-enable-default": "'A skin scigliuta comme predefinita s'avess'appiccià.",
+       "config-install-alreadydone": "'''Attenziò:''' pare c'avite già installato MediaWiki e state tentanno 'e installà chesto n'ata vota.\nPrucedete 'a paggena aroppa.",
+       "config-install-begin": "Spremmènno \"{{int:config-continue}}\", s'abbiàsse l'installaziona 'e MediaWiki.\nSi primma vulite dà ati cagnamiente, spremmìte \"{{int:config-back}}\".",
        "config-install-step-done": "fatto",
        "config-install-step-failed": "fallito",
        "config-install-extensions": "Ncludenno 'estenziune",
        "config-install-database": "Configurazione database",
        "config-install-schema": "Crianno schema",
        "config-install-pg-schema-not-exist": "'O schema PostgreSQL nun esiste.",
+       "config-install-pg-schema-failed": "Criazione 'e tabbelle scassata.\nCuntrullate si l'utente \"$1\" può scrivere dint' 'o schema \"$2\".",
        "config-install-pg-commit": "Mannann' 'e cagnamiente",
        "config-install-pg-plpgsql": "Cuntrollo p' 'o lenguaggio PL/pgSQL",
        "config-pg-no-plpgsql": "Ce vulesse 'a installazione d' 'o linguagio PL/pgSQL dint' 'o database $1",
+       "config-pg-no-create-privs": "'O cunto innecato p' 'a installazione nun tene premmesse abbastanza pe' puté crià n'utenza.",
        "config-pg-not-in-role": "'O cunto c'avite nzegnato p' 'o utente web esiste già.\n'O cunto dato pe' ce fà 'installazione nun è n'utente avanzato e nun è nu membro d' 'o ruolo 'utente web, picciò nun è in grado 'e se crià oggette 'e pruprietà 'utente web.\n\nMediaWiki mo' addimanna ch' 'e tabbelle fossero pruprietà 'e ll'utente web. Putite nzegnà n'atu cunto web, o facite pure \"arreto\" e specificate n'utente pe' ce ffà 'installazione opportunamente privileggiato.",
        "config-install-user": "Crianno utente 'e database",
        "config-install-user-alreadyexists": "L'utente \"$1\" esiste già",
        "config-install-interwiki-exists": "'''Attenziò:''' 'a tabbella interwiki pare ca cuntenesse già elemente.\nZumpann' 'a lista predefinita.",
        "config-install-stats": "Inizializzaziona d' 'e statistiche",
        "config-install-keys": "Generaziona d' 'e chiave segrete",
+       "config-insecure-keys": "'''Attenziò:''' {{PLURAL:$2|Na chiave sicura|'E chiave sicure}} ($1) {{PLURAL:$2|generata|generate}} pe' tramente ca se fà l'installazione nun {{PLURAL:$2|è|songo}} completamente {{PLURAL:$2|sicura|sicure}}. Cunziderate d' {{PLURAL:$2|'a|'e}} cagnà manualmente.",
        "config-install-updates": "Mpiccià ll'agghiurnamiente ca nun fossero necessarie",
+       "config-install-updates-failed": "<strong>Errore:</strong> l'inserimento d' 'e chiave 'agghiurnamiento dint' 'e tabbelle nun è asciuto pecché se cunfermaje l'errore ccà annanze: $1",
        "config-install-sysop": "Crianno nu cunto utente ammenistratore",
        "config-install-subscribe-fail": "Nun se pò sottoscrivere mediawiki-announce: $1",
+       "config-install-subscribe-notpossible": "cURL nun è installato e <code>allow_url_fopen</code> nun è disponibbele.",
        "config-install-mainpage": "Crianno 'a paggena prencepale ch' 'e cuntenute predefinite",
        "config-install-extension-tables": "Crianno tabelle pe' estenziune appicciate",
        "config-install-mainpage-failed": "Nun se pò nzertà 'a paggena prencepale: $1",
+       "config-install-done": "<strong>Cumplimente!</strong>\nAvite installato MediaWiki apposto.\n\n'O prugramma 'installazione ha generato nu file <code>LocalSettings.php</code> ca cuntene tuttuquante 'e mpustaziune.\n\nAvit'a scarrecà chisto e 'o nzertà dint' 'a cartella bbase d' 'o wiki vuosto ('a stessa addò fosse prisente l' index.php). 'A scarreca avess'a partì automaticamente.\n\nSi nu download nun s'avviasse, o si è stato annullato, putite riavvià cliccanno ncopp' 'o cullegamento 'e seguito:\n\n$3\n\n<strong>Nota:</strong> si ascite mò 'a ll'installazione senza manco scarrecà 'o file 'e configurazione che s'è criato, po chesto nun sarrà cchiù dispunibbele.\n\nQuanno fosse tutto fernuto allora <strong>[$2 trasite dint' 'o wiki vuosto]</strong>.",
        "config-download-localsettings": "Scarreca <code>LocalSettings.php</code>",
        "config-help": "ajùto",
        "config-help-tooltip": "cliccà pe' 'o spannere",
        "config-nofile": "'O file \"$1\" nun se trova. Forse è stato scancellato?",
-       "mainpagetext": "<strong>MediaWiki è stato nstallato.</strong>"
+       "config-extension-link": "'O sapevate ch' 'o wiki vuosto suppurtasse 'e [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions estensiune]?\n\nPutite navigà nfra chiste [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category estensiune pe' categurìa].",
+       "mainpagetext": "<strong>MediaWiki è stato nstallato.</strong>",
+       "mainpagedocfooter": "Iate a cunzultà [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe' n'avé nfurmaziune ncopp' 'o modo aùso d' 'o software wiki.\n\n== P'accummincià ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Elenco 'e mpustaziune pe' sta configuraziona]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ 'e Mediawiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenco 'e nutizie 'e Mediawiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localizzazzione 'e MediaWiki p' 'a lengua vuosta]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Mparate a cumbattere 'o spammo dint' 'a wiki d' 'a vosta]"
 }
index c3fb23b..20c8c38 100644 (file)
@@ -13,7 +13,9 @@
                        "Sadrettin",
                        "Captantrips",
                        "Stultiwikia",
-                       "Meelo"
+                       "Meelo",
+                       "HakanIST",
+                       "McAang"
                ]
        },
        "config-desc": "MediaWiki yükleyicisi",
@@ -96,8 +98,6 @@
        "config-db-install-account": "Yükleme için kullanıcı hesabı",
        "config-db-username": "Veritabanı kullanıcı adı:",
        "config-db-password": "Veritabanı parolası:",
-       "config-db-password-empty": "Şu yeni veritabanı kullanıcısı için bir parola belirleyin: $1\nParolası olmayan hesaplar yaratmak mümkün olabilirse de, güvenli değildir.",
-       "config-db-username-empty": "\"{{int:config-db-username}}\" için bir değer girmelisiniz.",
        "config-db-install-username": "Yükleme sırasında veritabanına bağlanmak için kullanılan kullanıcı adını girin.\nBu MediaWiki hesabının kullanıcı adı değildir; Bu veritabanın kullanıcı adıdır.",
        "config-db-install-password": "Kurulum işlemi boyunca veritabanına bağlanmak için kullanılacak şifreyi girin.\nBu şifre MediaWiki hesap şifresi değil, veritabanınızın şifresidir.",
        "config-db-install-help": "Kurulum işlemi boyunca veritabanına bağlanmak için kullanıcı adı ve şifre giriniz.",
        "config-nofile": "\"$1\" dosyası bulunamadı. Silindi mi?",
        "config-extension-link": "Vikinizin [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions eklentileri] desteklediğini biliyor musunuz?\n\n[//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category Eklentileri kategorilerine göre] inceleyebilir ya da tüm eklentilerin listesini görmek için [//www.mediawiki.org/wiki/Extension_Matrix Eklenti Matrisine] bakabilirsiniz.",
        "mainpagetext": "'''MediaWiki başarı ile kuruldu.'''",
-       "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]"
+       "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Kendi diliniz için MediaWiki yerelleştirmesi]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Kendi vikinizde spam ile nasıl savaşılacağını öğrennin]"
 }
index 3d85b7b..08c2ae9 100644 (file)
        "config-mysql-utf8": "UTF-8",
        "config-mysql-charset-help": "Trong <strong>chế độ nhị phân</strong>, MediaWiki lưu văn bản UTF-8 vào cơ sở dữ liệu trong các trường nhị phân.\nĐiều này hiệu quả hơn so với chế độ UTF-8 của MySQL, và cho phép bạn sử dụng đầy đủ các ký tự Unicode.\n\nTrong <strong>chế độ UTF-8 </strong>, MySQL sẽ biết những ký tự nào thiết lập dữ liệu của bạn, và có thể trình bày và chuyển đổi nó một cách thích hợp, nhưng nó sẽ không cho phép bạn lưu trữ các ký tự nằm trên [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
        "config-mssql-auth": "Kiểu xác thực:",
-       "config-mssql-install-auth": "Chọn loại xác thực sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nNếu bạn chọn \"{{int:config-mssql-windowsauth}}\", thông tin của bất cứ người sử dụng nào mà máy chủ web đang chạy sẽ được sử dụng.",
-       "config-mssql-web-auth": "Chọn kiểu xác thực mà máy chủ web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu, trong quá trình hoạt động bình thường của wiki.\nNếu bạn chọn \"{{int:config-mssql-windowsauth}}\", thông tin của bất cứ người sử dụng nào mà máy chủ web đang hoạt động sẽ được sử dụng.",
+       "config-mssql-install-auth": "Chọn loại xác thực sẽ được sử dụng để kết nối với cơ sở dữ liệu trong quá trình cài đặt.\nNếu bạn chọn “{{int:config-mssql-windowsauth}}”, thông tin của bất cứ người sử dụng nào mà máy chủ web đang chạy sẽ được sử dụng.",
+       "config-mssql-web-auth": "Chọn kiểu xác thực mà máy chủ web sẽ sử dụng để kết nối đến máy chủ cơ sở dữ liệu, trong quá trình hoạt động bình thường của wiki.\nNếu bạn chọn “{{int:config-mssql-windowsauth}}”, thông tin của bất cứ người sử dụng nào mà máy chủ web đang hoạt động sẽ được sử dụng.",
        "config-mssql-sqlauth": "Xác thực SQL Server",
        "config-mssql-windowsauth": "Xác thực Windows",
        "config-site-name": "Tên wiki:",
        "config-admin-password-blank": "Nhập mật khẩu của tài khoản bảo quản viên.",
        "config-admin-password-mismatch": "Bạn đã nhập hai mật khẩu không khớp với nhau.",
        "config-admin-email": "Địa chỉ thư điện tử:",
-       "config-admin-email-help": "Nhập một địa chỉ email vào đây để cho phép bạn nhận được email từ những người dùng khác trên wiki, thiết lập lại mật khẩu của bạn, và sẽ được thông báo về những thay đổi trong các trang nằm trong danh sách theo dõi của bạn. Bạn có thể để trống trường này.",
+       "config-admin-email-help": "Nhập một địa chỉ thư điện tử vào đây để cho phép bạn nhận được thư điện tử từ những người dùng khác trên wiki, đặt lại mật khẩu của bạn, và được thông báo về những thay đổi trong các trang nằm trong danh sách theo dõi của bạn. Bạn có thể để trống trường này.",
        "config-admin-error-user": "Lỗi nội bộ khi tạo một admin với tên <nowiki>$1</nowiki>\".",
        "config-admin-error-password": "Lỗi nội bộ khi thiết lập một mật khẩu cho admin \" <nowiki>$1</nowiki>\": <pre>$2</pre>",
        "config-admin-error-bademail": "Bạn đã nhập một địa chỉ thư điện tử không hợp lệ.",
        "config-subscribe": "Theo dõi [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce danh sách thư thông báo phát hành].",
        "config-subscribe-help": "thông báo an ninh.\nBạn nên đồng ý với nó và cập nhật bản cài đặt MediaWiki của bạn khi phiên bản mới xuất hiện.",
-       "config-subscribe-noemail": "Bạn đã cố gắng để đăng ký vào danh sách nhận thư thông báo phát hành mà không cung cấp một địa chỉ email nào cả.\nVui lòng cung cấp một địa chỉ email nếu bạn muốn đăng ký vào danh sách nhận thư.",
+       "config-subscribe-noemail": "Bạn đã cố gắng để đăng ký vào danh sách thư thông báo phát hành mà không cung cấp một địa chỉ thư điện tử nào cả.\nVui lòng cung cấp một địa chỉ thư điện tử nếu bạn muốn đăng ký vào danh sách thư.",
        "config-almost-done": "Bạn gần như đã hoàn tất!\nBây giờ bạn có thể bỏ qua cấu hình còn lại và cài đặt wiki ngay bây giờ.",
        "config-optional-continue": "Hỏi tôi về thêm chi tiết.",
        "config-optional-skip": "Chán quá, cài đặt wiki rỗi.",
        "config-profile-no-anon": "Bắt buộc mở tài khoản",
        "config-profile-fishbowl": "Chỉ những người dùng được phép",
        "config-profile-private": "Wiki riêng tư",
-       "config-profile-help": "Wiki làm việc tốt nhất khi có càng nhiều người chỉnh sửa chúng nhất có thể.\nTrong MediaWiki, rất dễ dàng để xem lại các thay đổi gần đây, và quay trở lại tình trạng ban đầu trước bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia chỉnh sửa, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nKịch bản <strong>{{int:config-profile-fishbowl}}</strong>  cho phép người dùng được duyệt chỉnh sửa, nhưng công chúng có thể xem các trang web, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép chỉnh sửa.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights relevant manual entry].",
+       "config-profile-help": "Wiki hoạt động tốt nhất khi có càng nhiều người sửa đổi nó nhất có thể.\nTrong MediaWiki, có thể rất dễ dàng xem lại các thay đổi gần đây và lùi lại bất kỳ thiệt hại nào được thực hiện bởi người dùng vô tình hoặc người dùng có dụng ý xấu.\n\nTuy nhiên, nhiều người thấy là MediaWiki rất hữu ích trong chừng mực nào đó, và đôi khi thật không phải dễ dàng để thuyết phục mọi người về những lợi ích theo cách thức mà wiki mang lại.\nVì vậy, bạn có sự lựa chọn của riêng bạn.\n\nMô hình <strong>{{int:config-profile-wiki}}</strong> cho phép bất cứ ai tham gia sửa đổi, thậm chí không cần đăng nhập.\nMột wiki với <strong>{{int:config-profile-no-anon}}</strong> cung cấp thêm trách nhiệm, nhưng có thể ngăn chặn những người đóng góp thông thường.\n\nTùy chọn <strong>{{int:config-profile-fishbowl}}</strong> cho phép người dùng được duyệt sửa đổi, nhưng công chúng có thể xem các trang, bao gồm cả lịch sử.\nMột <strong>{{int:config-profile-private}}</strong> chỉ cho phép được duyệt xem các trang, với cùng nhóm được phép sửa đổi.\n\nNhiều cấu hình quyền sử dụng phức tạp có sẵn sau khi cài đặt, xin xem [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:User_rights mục liên quan trong sách hướng dẫn].",
        "config-license": "Bản quyền và giấy phép:",
        "config-license-none": "Không hiển thị giấy phép ở chân trang",
        "config-license-cc-by-sa": "Creative Commons Ghi công–Chia sẻ tương tự",
        "config-license-help": "Nhiều wiki công khai phát hành tất cả các đóng góp theo một [http://freedomdefined.org/Definition/Vi?uselang=vi giấy phép tự do].\nĐiều này giúp tạo nên thái độ cộng đồng sở hữu và ủng hộ sự đóng góp lâu dài.\nNói chung, một wiki riêng tư hoặc của công ty không nhất thiết phải sử dụng một giấy phép tự do.\n\nNếu bạn muốn được phép sử dụng văn bản từ Wikipedia và muốn Wikipedia nhận được những văn bản được sao chép từ wiki của bạn, bạn nên chọn <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nWikipedia từng sử dụng Giấy phép Tài liệu Tự do GNU.\nGFDL là một giấy phép hợp lệ nhưng khó hiểu trên thực tế.\nNội dung được phát hành theo GFDL cũng khó tái sử dụng.",
        "config-email-settings": "Thiết lập thư điện tử",
        "config-enable-email": "Cho phép gửi thư điện tử đi",
-       "config-enable-email-help": "Nếu bạn muốn email để làm việc, [http://www.php.net/manual/en/mail.configuration.php thiết lập mail của PHP] cần phải được cấu hình đúng.\nNếu bạn không muốn sử dụng bất kỳ tính năng email nào, bạn có thể vô hiệu chúng ở đây.",
+       "config-enable-email-help": "Nếu bạn muốn khả năng gửi thư điện tử, [http://www.php.net/manual/en/mail.configuration.php thiết lập mail của PHP] cần phải được cấu hình đúng.\nNếu bạn không muốn sử dụng bất kỳ tính năng thư điện tử nào, bạn có thể vô hiệu chúng ở đây.",
        "config-email-user": "Cho phép người dùng gửi thư điện tử cho người dùng khác",
-       "config-email-user-help": "Cho phép tất cả người dùng gửi email cho nhau, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
+       "config-email-user-help": "Cho phép tất cả người dùng gửi thư điện tử cho nhau, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
        "config-email-usertalk": "Gửi thư thông báo về tin nhắn mới",
        "config-email-usertalk-help": "Cho phép người dùng nhận được thông báo về các thay đổi trong trang thảo luận người dùng, nếu họ đã kích hoạt nó trong cài đặt tùy chọn của họ.",
        "config-email-watchlist": "Gửi thư thông báo về bài theo dõi",
        "config-email-watchlist-help": "Cho phép người dùng nhận được thông báo về các trang theo dõi của họ nếu họ đã kích hoạt nó trong ưu tiên của họ.",
        "config-email-auth": "Xác minh qua thư điện tử",
-       "config-email-auth-help": "Nếu tùy chọn này được kích hoạt, người dùng phải xác nhận địa chỉ email của họ bằng cách sử dụng một liên kết được gửi tới cho họ bất cứ khi nào họ thiết lập hoặc thay đổi nó.\nChỉ có địa chỉ email được xác thực mới có thể nhận email từ những người dùng khác hoặc các email thông báo thay đổi.\nThiết lập tùy chọn này <strong>khuyến cáo sử dụng</strong> cho các wiki công cộng do khả năng các tính năng email dễ bị lạm dụng để gây hại.",
+       "config-email-auth-help": "Nếu tùy chọn này được kích hoạt, người dùng phải xác nhận địa chỉ thư điện tử của họ bằng cách sử dụng một liên kết được gửi tới cho họ bất cứ khi nào họ thiết lập hoặc thay đổi nó.\nChỉ có địa chỉ thư điện tử được xác thực mới có thể nhận thư điện tử từ những người dùng khác hoặc thay đổi địa chỉ thông báo.\nThiết lập tùy chọn này <strong>khuyến cáo sử dụng</strong> cho các wiki công cộng do khả năng các tính năng gửi thư điện tử dễ bị lạm dụng để gây hại.",
        "config-email-sender": "Địa chỉ thư điện tử trả lại:",
-       "config-email-sender-help": "Nhập địa chỉ email để làm địa chỉ trở về trong mail gửi đi.\nĐây là nơi mà thư từ chối sẽ được gửi đi.\nNhiều máy chủ mail yêu cầu phải có ít nhất là phần tên miền để đảm bảo tính hợp lệ.",
+       "config-email-sender-help": "Nhập địa chỉ thư điện tử để làm địa chỉ trở về trong thư gửi đi.\nĐây là nơi mà thư từ chối sẽ được gửi đi.\nNhiều máy chủ thư điện tử yêu cầu phải có ít nhất là phần tên miền để đảm bảo tính hợp lệ.",
        "config-upload-settings": "Hình ảnh và tập tin tải lên",
        "config-upload-enable": "Cho phép tải lên tập tin",
        "config-upload-help": "Tập tin tải lên có khả năng làm lộ các nguy cơ bảo mật của máy chủ của bạn.\nĐể biết thêm thông tin, xin đọc [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security phần bảo mật] trong tài liệu hướng dẫn.\n\nĐể kích hoạt tính năng tải tập tin lên, thay đổi chế độ trên thư mục con <code>hình ảnh</code> trong thư mục gốc (root) của MediaWiki để máy chủ web có thể lưu dữ liệu vào đó.\nSau đó kích hoạt tùy chọn này.",
        "config-skins-must-enable-some": "Phải chọn ít nhất một giao diện để kích hoạt.",
        "config-skins-must-enable-default": "Giao diện được chọn làm mặc định phải được kích hoạt.",
        "config-install-alreadydone": "<strong>Cảnh báo:</strong> Bạn dường như đã cài đặt MediaWiki và đang cố gắng để cài đặt nó lại một lần nữa.\nXin hãy chuyển sang trang tiếp theo.",
-       "config-install-begin": "Bằng cách nhấn \"{{int:config-continue}}\", bạn sẽ bắt đầu cài đặt MediaWiki của mình.\nNếu bạn vẫn muốn thay đổi, nhấn \"{{int:config-back}}\".",
+       "config-install-begin": "Bằng cách nhấn “{{int:config-continue}}”, bạn sẽ bắt đầu cài đặt MediaWiki của mình.\nNếu bạn vẫn muốn thay đổi, nhấn “{{int:config-back}}”.",
        "config-install-step-done": "hoàn tất",
        "config-install-step-failed": "thất bại",
        "config-install-extensions": "Đang bao gồm phần mở rộng",
        "config-install-interwiki-exists": "'''Cảnh báo:''' Hình như đã có mục trong bảng liên wiki.\nĐã bỏ qua danh sách mặc định.",
        "config-install-stats": "Đang khởi tạo các thống kê",
        "config-install-keys": "Tạo ra các chìa khóa bí mật",
-       "config-insecure-keys": "<strong>Cảnh báo:</strong>{{PLURAL:$2|Một khóa an toàn|Khóa an toàn}} ($1) được tạo ra trong quá trình cài đặt {{PLURAL:$2|là}} không hoàn toàn an toàn. Hãy cân nhắc việc thay đổi {{PLURAL: $2|nó|chúng}} bằng tay.",
+       "config-insecure-keys": "<strong>Cảnh báo:</strong> {{PLURAL:$2|Một khóa an toàn|Khóa an toàn}} ($1) được tạo ra trong quá trình cài đặt {{PLURAL:$2}}không phải an toàn hẳn. Hãy cân nhắc việc thay đổi {{PLURAL:$2|nó|chúng}} thủ công.",
        "config-install-updates": "Tránh các cập nhật không cần thiết",
        "config-install-updates-failed": "<strong>Lỗi:</strong> Chèn phím cập nhật vào các bảng không thành công với các lỗi sau:1$",
        "config-install-sysop": "Đang mở tài khoản người dùng bảo quản viên",
        "config-install-mainpage": "Đang tạo trang đầu với nội dung mặc định",
        "config-install-extension-tables": "Đang tạo bảng cho các phần mở rộng được kích hoạt",
        "config-install-mainpage-failed": "Không thể chèn trang đầu: $1",
-       "config-install-done": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt thành công MediaWiki.\n\nBộ cài đặt đã tạo ra một file <code>LocalSettings.php</code>.\nFile này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu việc tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
+       "config-install-done": "<strong>Xin chúc mừng!</strong>\nBạn đã cài đặt thành công MediaWiki.\n\nBộ cài đặt đã tạo ra một tập tin <code>LocalSettings.php</code>.\nTập tin này chứa tất cả các cấu hình của bạn.\n\nBạn sẽ cần phải tải nó về và đặt nó trong thư mục cài đặt wiki của bạn (cùng thư mục với index.php). Việc tải về có lẽ sẽ được khởi động tự động.\n\nNếu bản tải về không được cung cấp, hoặc nếu bạn hủy bỏ nó, bạn có thể khởi động lại tải về bằng cách nhấn vào liên kết dưới đây:\n\n$3\n\n<strong>Lưu ý:</strong> Nếu bạn không làm điều này ngay bây giờ, điều này sẽ tạo ra tập tin cấu hình sẽ không có giá trị cho bạn sau này nếu bạn thoát khỏi trình cài đặt mà không tải nó về.\n\nKhi đã việc tải về đã hoàn thành, bạn có thể <strong>[$2 truy cập trang wiki của bạn]</strong>.",
        "config-download-localsettings": "Tải về <code>LocalSettings.php</code>",
        "config-help": "Trợ giúp",
        "config-help-tooltip": "nhấn chuột để mở rộng",
        "config-nofile": "Không tìm thấy tập tin “$1”. Nó có phải bị xóa không?",
        "config-extension-link": "Bạn có biết rằng wiki của bạn có hỗ trợ [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions mở rộng]?\n\nBạn có thể truy cập [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category phần mở rộng theo thể loại] hoặc [//www.mediawiki.org/wiki/Extension_Matrix Ma trận Mở rộng] để xem danh sách đầy đủ các phần mở rộng.",
        "mainpagetext": "'''MediaWiki đã được cài đặt thành công.'''",
-       "mainpagedocfooter": "Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]"
+       "mainpagedocfooter": "Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Tìm hiểu cách chống spam tại wiki của bạn]"
 }
index 318330e..b121dfe 100644 (file)
@@ -191,7 +191,10 @@ class JobRunner implements LoggerAwareInterface {
                                }
                                // Commit all outstanding connections that are in a transaction
                                // to get a fresh repeatable read snapshot on every connection.
+                               // Note that jobs are still responsible for handling slave lag.
                                wfGetLBFactory()->commitAll();
+                               // Clear out title cache data from prior snapshots
+                               LinkCache::singleton()->clear();
                                $timeMs = intval( ( microtime( true ) - $jobStartTime ) * 1000 );
                                $timeMsTotal += $timeMs;
 
@@ -448,7 +451,7 @@ class JobRunner implements LoggerAwareInterface {
                global $wgJobSerialCommitThreshold;
 
                $lb = wfGetLB( wfWikiID() );
-               if ( $wgJobSerialCommitThreshold !== false ) {
+               if ( $wgJobSerialCommitThreshold !== false && $lb->getServerCount() > 1 ) {
                        // Generally, there is one master connection to the local DB
                        $dbwSerial = $lb->getAnyOpenConnection( $lb->getWriterIndex() );
                } else {
index f8a0040..9b4e7e9 100644 (file)
 class JobQueueAggregatorRedis extends JobQueueAggregator {
        /** @var RedisConnectionPool */
        protected $redisPool;
-
        /** @var array List of Redis server addresses */
        protected $servers;
+       /** @var bool */
+       protected $registeredQueue = false;
 
        /**
         * @param array $params Possible keys:
@@ -59,11 +60,7 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
                        return false;
                }
                try {
-                       // Make sure doNotifyQueueNonEmpty() takes precedence to avoid races
-                       $conn->watch( $this->getReadyQueueKey() );
-                       $conn->multi()
-                               ->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) )
-                               ->exec();
+                       $conn->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) );
 
                        return true;
                } catch ( RedisException $e ) {
@@ -80,11 +77,16 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
                }
                try {
                        $conn->multi( Redis::PIPELINE );
-                       $conn->hSetNx( $this->getQueueTypesKey(), $type, 'enabled' );
-                       $conn->sAdd( $this->getWikiSetKey(), $wiki );
+                       if ( !$this->registeredQueue ) {
+                               // Make sure the queue is registered as existing
+                               $conn->hSetNx( $this->getQueueTypesKey(), $type, 'enabled' );
+                               $conn->sAdd( $this->getWikiSetKey(), $wiki );
+                       }
                        $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
                        $conn->exec();
 
+                       $this->registeredQueue = true;
+
                        return true;
                } catch ( RedisException $e ) {
                        $this->handleException( $conn, $e );
index 5f1a1a6..fa3278d 100644 (file)
@@ -115,40 +115,50 @@ class RefreshLinksJob extends Job {
                        JobQueueGroup::singleton()->push( $jobs );
                // Job to update link tables for a set of titles
                } elseif ( isset( $this->params['pages'] ) ) {
+                       $this->waitForMasterPosition();
                        foreach ( $this->params['pages'] as $pageId => $nsAndKey ) {
                                list( $ns, $dbKey ) = $nsAndKey;
                                $this->runForTitle( Title::makeTitleSafe( $ns, $dbKey ) );
                        }
                // Job to update link tables for a given title
                } else {
+                       $this->waitForMasterPosition();
                        $this->runForTitle( $this->title );
                }
 
                return true;
        }
 
+       protected function waitForMasterPosition() {
+               if ( !empty( $this->params['masterPos'] ) && wfGetLB()->getServerCount() > 1 ) {
+                       // Wait for the current/next slave DB handle to catch up to the master.
+                       // This way, we get the correct page_latest for templates or files that just
+                       // changed milliseconds ago, having triggered this job to begin with.
+                       wfGetLB()->waitFor( $this->params['masterPos'] );
+               }
+       }
+
        /**
         * @param Title $title
         * @return bool
         */
        protected function runForTitle( Title $title ) {
-               // Wait for the DB of the current/next slave DB handle to catch up to the master.
-               // This way, we get the correct page_latest for templates or files that just changed
-               // milliseconds ago, having triggered this job to begin with.
-               if ( isset( $this->params['masterPos'] ) && $this->params['masterPos'] !== false ) {
-                       wfGetLB()->waitFor( $this->params['masterPos'] );
+               $page = WikiPage::factory( $title );
+               if ( !empty( $this->params['triggeringRevisionId'] ) ) {
+                       // Fetch the specified revision; lockAndGetLatest() below detects if the page
+                       // was edited since and aborts in order to avoid corrupting the link tables
+                       $revision = Revision::newFromId(
+                               $this->params['triggeringRevisionId'],
+                               Revision::READ_LATEST
+                       );
+               } else {
+                       // Fetch current revision; READ_LATEST reduces lockAndGetLatest() check failures
+                       $revision = Revision::newFromTitle( $title, false, Revision::READ_LATEST );
                }
 
-               // Clear out title cache data from prior job transaction snapshots
-               $linkCache = LinkCache::singleton();
-               $linkCache->clear();
-
-               // Fetch the current page and revision...
-               $page = WikiPage::factory( $title );
-               $revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
                if ( !$revision ) {
-                       $this->setLastError( "refreshLinks: Article not found {$title->getPrefixedDBkey()}" );
-                       return false; // XXX: what if it was just deleted?
+                       $this->setLastError( "Revision not found for {$title->getPrefixedDBkey()}" );
+                       return false; // just deleted?
                }
 
                $content = $revision->getContent( Revision::RAW );
@@ -213,8 +223,16 @@ class RefreshLinksJob extends Job {
                }
 
                $updates = $content->getSecondaryDataUpdates(
-                       $title, null, !empty( $this->params['useRecursiveLinksUpdate'] ), $parserOutput );
+                       $title,
+                       null,
+                       !empty( $this->params['useRecursiveLinksUpdate'] ),
+                       $parserOutput
+               );
+
                foreach ( $updates as $key => $update ) {
+                       // FIXME: move category change RC stuff to a separate update.
+                       // RC entry addition aborts if edits where since made, which is not necessary.
+                       // It's also an SoC violation for links update code to care about RC.
                        if ( $update instanceof LinksUpdate ) {
                                if ( !empty( $this->params['triggeredRecursive'] ) ) {
                                        $update->setTriggeredRecursive();
@@ -230,18 +248,21 @@ class RefreshLinksJob extends Job {
                                        $update->setTriggeringUser( $user );
                                }
                                if ( !empty( $this->params['triggeringRevisionId'] ) ) {
-                                       $revision = Revision::newFromId( $this->params['triggeringRevisionId'] );
-                                       if ( $revision === null ) {
-                                               $revision = Revision::newFromId(
-                                                       $this->params['triggeringRevisionId'],
-                                                       Revision::READ_LATEST
-                                               );
-                                       }
                                        $update->setRevision( $revision );
                                }
                        }
                }
 
+               $latestNow = $page->lockAndGetLatest();
+               if ( !$latestNow || $revision->getId() != $latestNow ) {
+                       // Do not clobber over newer updates with older ones. If all jobs where FIFO and
+                       // serialized, it would be OK to update links based on older revisions since it
+                       // would eventually get to the latest. Since that is not the case (by design),
+                       // only update the link tables to a state matching the current revision's output.
+                       $this->setLastError( "page_latest changed from {$revision->getId()} to $latestNow" );
+                       return false;
+               }
+
                DataUpdate::runUpdates( $updates );
 
                InfoAction::invalidateCache( $title );
index 7e3fa4f..128999a 100644 (file)
@@ -217,7 +217,8 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *
         * @param array $keys List of cache keys
         * @param array $curTTLs Map of (key => approximate TTL left) for existing keys [returned]
-        * @param array $checkKeys List of "check" keys to apply to all of $keys
+        * @param array $checkKeys List of check keys to apply to all $keys. May also apply "check"
+        *  keys to specific cache keys only by using cache keys as keys in the $checkKeys array.
         * @return array Map of (key => value) for keys that exist
         */
        final public function getMulti(
@@ -228,26 +229,32 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
 
                $vPrefixLen = strlen( self::VALUE_KEY_PREFIX );
                $valueKeys = self::prefixCacheKeys( $keys, self::VALUE_KEY_PREFIX );
-               $checkKeys = self::prefixCacheKeys( $checkKeys, self::TIME_KEY_PREFIX );
+
+               $checksForAll = array();
+               $checksByKey = array();
+               $checkKeysFlat = array();
+               foreach ( $checkKeys as $i => $keys ) {
+                       $prefixed = self::prefixCacheKeys( (array)$keys, self::TIME_KEY_PREFIX );
+                       $checkKeysFlat = array_merge( $checkKeysFlat, $prefixed );
+                       // Is this check keys for a specific cache key, or for all keys being fetched?
+                       if ( is_int( $i ) ) {
+                               $checksForAll = array_merge( $checksForAll, $prefixed );
+                       } else {
+                               $checksByKey[$i] = isset( $checksByKey[$i] )
+                                       ? array_merge( $checksByKey[$i], $prefixed )
+                                       : $prefixed;
+                       }
+               }
 
                // Fetch all of the raw values
-               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeys ) );
+               $wrappedValues = $this->cache->getMulti( array_merge( $valueKeys, $checkKeysFlat ) );
                $now = microtime( true );
 
-               // Get/initialize the timestamp of all the "check" keys
-               $checkKeyTimes = array();
-               foreach ( $checkKeys as $checkKey ) {
-                       $timestamp = isset( $wrappedValues[$checkKey] )
-                               ? self::parsePurgeValue( $wrappedValues[$checkKey] )
-                               : false;
-                       if ( !is_float( $timestamp ) ) {
-                               // Key is not set or invalid; regenerate
-                               $this->cache->add( $checkKey,
-                                       self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
-                               $timestamp = $now;
-                       }
-
-                       $checkKeyTimes[] = $timestamp;
+               // Collect timestamps from all "check" keys
+               $checkKeyTimesForAll = $this->processCheckKeys( $checksForAll, $wrappedValues, $now );
+               $checkKeyTimesByKey = array();
+               foreach ( $checksByKey as $cacheKey => $checks ) {
+                       $checkKeyTimesByKey[$cacheKey] = $this->processCheckKeys( $checks, $wrappedValues, $now );
                }
 
                // Get the main cache value for each key and validate them
@@ -261,22 +268,49 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                        list( $value, $curTTL ) = $this->unwrap( $wrappedValues[$vKey], $now );
                        if ( $value !== false ) {
                                $result[$key] = $value;
+
+                               // Force dependant keys to be invalid for a while after purging
+                               // to reduce race conditions involving stale data getting cached
+                               $checkKeyTimes = $checkKeyTimesForAll;
+                               if ( isset( $checkKeyTimesByKey[$key] ) ) {
+                                       $checkKeyTimes = array_merge( $checkKeyTimes, $checkKeyTimesByKey[$key] );
+                               }
                                foreach ( $checkKeyTimes as $checkKeyTime ) {
-                                       // Force dependant keys to be invalid for a while after purging
-                                       // to reduce race conditions involving stale data getting cached
                                        $safeTimestamp = $checkKeyTime + self::HOLDOFF_TTL;
                                        if ( $safeTimestamp >= $wrappedValues[$vKey][self::FLD_TIME] ) {
                                                $curTTL = min( $curTTL, $checkKeyTime - $now );
                                        }
                                }
                        }
-
                        $curTTLs[$key] = $curTTL;
                }
 
                return $result;
        }
 
+       /**
+        * @since 1.27
+        * @param array $timeKeys List of prefixed time check keys
+        * @param array $wrappedValues
+        * @param float $now
+        * @return array List of timestamps
+        */
+       private function processCheckKeys( array $timeKeys, array $wrappedValues, $now ) {
+               $times = array();
+               foreach ( $timeKeys as $timeKey ) {
+                       $timestamp = isset( $wrappedValues[$timeKey] )
+                               ? self::parsePurgeValue( $wrappedValues[$timeKey] )
+                               : false;
+                       if ( !is_float( $timestamp ) ) {
+                               // Key is not set or invalid; regenerate
+                               $this->cache->add( $timeKey, self::PURGE_VAL_PREFIX . $now, self::CHECK_KEY_TTL );
+                               $timestamp = $now;
+                       }
+                       $times[] = $timestamp;
+               }
+               return $times;
+       }
+
        /**
         * Set the value of a key in cache
         *
index 4c0bd8e..df37610 100644 (file)
@@ -233,7 +233,7 @@ class LogEventsList extends ContextSource {
                        array( 'class' => 'mw-autocomplete-user' )
                );
 
-               return '<span style="white-space: nowrap">' . $label . '</span>';
+               return '<span class="mw-input-with-label">' . $label . '</span>';
        }
 
        /**
@@ -249,7 +249,7 @@ class LogEventsList extends ContextSource {
                        $title
                );
 
-               return '<span style="white-space: nowrap">' . $label .  '</span>';
+               return '<span class="mw-input-with-label">' . $label .  '</span>';
        }
 
        /**
@@ -257,7 +257,7 @@ class LogEventsList extends ContextSource {
         * @return string Checkbox
         */
        private function getTitlePattern( $pattern ) {
-               return '<span style="white-space: nowrap">' .
+               return '<span class="mw-input-with-label">' .
                        Xml::checkLabel( $this->msg( 'log-title-wildcard' )->text(), 'pattern', 'pattern', $pattern ) .
                        '</span>';
        }
index 3b9899f..c3b5190 100644 (file)
@@ -6,7 +6,7 @@ application/mathml+xml mathml
 application/msword doc dot
 application/octet-stream bin dms lha lzh exe class so dll
 application/oda oda
-application/ogg ogx ogg ogm ogv oga spx
+application/ogg ogx ogg ogm ogv oga spx opus
 application/pdf pdf
 application/postscript ai eps ps
 application/rdf+xml rdf
@@ -67,13 +67,13 @@ application/x-rar rar
 audio/basic au snd
 audio/midi mid midi kar
 audio/mpeg mpga mp2 mp3
-audio/ogg oga ogg spx
+audio/ogg oga ogg spx opus
 video/webm webm
 audio/webm webm
 audio/x-aiff aif aiff aifc
 audio/x-matroska mka mkv
 audio/x-mpegurl m3u
-audio/x-ogg oga ogg spx
+audio/x-ogg oga ogg spx opus
 audio/x-pn-realaudio ram rm
 audio/x-pn-realaudio-plugin rpm
 audio/x-realaudio ra
index f7a4161..d7adaf0 100644 (file)
@@ -1815,7 +1815,7 @@ class WikiPage implements Page, IDBAccessObject {
                                // Get the latest page_latest value while locking it.
                                // Do a CAS style check to see if it's the same as when this method
                                // started. If it changed then bail out before touching the DB.
-                               $latestNow = $this->lock();
+                               $latestNow = $this->lockAndGetLatest();
                                if ( $latestNow != $oldid ) {
                                        $dbw->commit( __METHOD__ );
                                        // Page updated or deleted in the mean time
@@ -2794,7 +2794,7 @@ class WikiPage implements Page, IDBAccessObject {
                // WikiPage::READ_LOCKING as that will carry over the FOR UPDATE to
                // the revisions queries (which also JOIN on user). Only lock the page
                // row and CAS check on page_latest to see if the trx snapshot matches.
-               $lockedLatest = $this->lock();
+               $lockedLatest = $this->lockAndGetLatest();
                if ( $id == 0 || $this->getLatest() != $lockedLatest ) {
                        $dbw->endAtomic( __METHOD__ );
                        // Page not there or trx snapshot is stale
@@ -2916,8 +2916,9 @@ class WikiPage implements Page, IDBAccessObject {
         * Lock the page row for this title+id and return page_latest (or 0)
         *
         * @return integer Returns 0 if no row was found with this title+id
+        * @since 1.27
         */
-       protected function lock() {
+       public function lockAndGetLatest() {
                return (int)wfGetDB( DB_MASTER )->selectField(
                        'page',
                        'page_latest',
index 41b5dec..6329fd7 100644 (file)
@@ -315,15 +315,18 @@ class LinkHolderArray {
                                        $colours[$pdbk] = '';
                                } elseif ( $ns == NS_SPECIAL ) {
                                        $colours[$pdbk] = 'new';
-                               } elseif ( ( $id = $linkCache->getGoodLinkID( $pdbk ) ) != 0 ) {
-                                       $colours[$pdbk] = Linker::getLinkColour( $title, $threshold );
-                                       $output->addLink( $title, $id );
-                                       $linkcolour_ids[$id] = $pdbk;
-                               } elseif ( $linkCache->isBadLink( $pdbk ) ) {
-                                       $colours[$pdbk] = 'new';
                                } else {
-                                       # Not in the link cache, add it to the query
-                                       $queries[$ns][] = $title->getDBkey();
+                                       $id = $linkCache->getGoodLinkID( $pdbk );
+                                       if ( $id != 0 ) {
+                                               $colours[$pdbk] = Linker::getLinkColour( $title, $threshold );
+                                               $output->addLink( $title, $id );
+                                               $linkcolour_ids[$id] = $pdbk;
+                                       } elseif ( $linkCache->isBadLink( $pdbk ) ) {
+                                               $colours[$pdbk] = 'new';
+                                       } else {
+                                               # Not in the link cache, add it to the query
+                                               $queries[$ns][] = $title->getDBkey();
+                                       }
                                }
                        }
                }
index 80dc669..d57adb8 100644 (file)
@@ -56,7 +56,7 @@ class UserPasswordPolicy {
                foreach ( $checks as $statement => $check ) {
                        if ( !is_callable( $check ) ) {
                                throw new InvalidArgumentException(
-                                       'Policy check functions must be callable'
+                                       "Policy check functions must be callable. '$statement' isn't callable."
                                );
                        }
                        $this->policyCheckFunctions[$statement] = $check;
@@ -105,11 +105,18 @@ class UserPasswordPolicy {
                );
        }
 
+       /**
+        * @param User $user
+        * @param string $password
+        * @param array $policies
+        * @param array $policyCheckFunctions
+        * @return Status
+        */
        private function checkPolicies( User $user, $password, $policies, $policyCheckFunctions ) {
                $status = Status::newGood();
                foreach ( $policies as $policy => $value ) {
                        if ( !isset( $policyCheckFunctions[$policy] ) ) {
-                               throw new DomainException( 'Invalid password policy config' );
+                               throw new DomainException( "Invalid password policy config. No check defined for '$policy'." );
                        }
                        $status->merge(
                                call_user_func(
index 6c4cdfe..ff0e449 100644 (file)
@@ -33,19 +33,24 @@ class ResourceLoaderContext {
 
        protected $resourceLoader;
        protected $request;
-       protected $modules;
-       protected $language;
-       protected $direction;
+
+       // Module content vary
        protected $skin;
-       protected $user;
+       protected $language;
        protected $debug;
+       protected $user;
+
+       // Request vary (in addition to cache vary)
+       protected $modules;
        protected $only;
        protected $version;
-       protected $hash;
        protected $raw;
        protected $image;
        protected $variant;
        protected $format;
+
+       protected $direction;
+       protected $hash;
        protected $userObj;
        protected $imageObj;
 
@@ -333,14 +338,31 @@ class ResourceLoaderContext {
        }
 
        /**
+        * All factors that uniquely identify this request, except 'modules'.
+        *
+        * The list of modules is excluded here for legacy reasons as most callers already
+        * split up handling of individual modules. Including it here would massively fragment
+        * the cache and decrease its usefulness.
+        *
+        * E.g. Used by RequestFileCache to form a cache key for storing the reponse output.
+        *
         * @return string
         */
        public function getHash() {
                if ( !isset( $this->hash ) ) {
                        $this->hash = implode( '|', array(
-                               $this->getLanguage(), $this->getDirection(), $this->getSkin(), $this->getUser(),
-                               $this->getImage(), $this->getVariant(), $this->getFormat(),
-                               $this->getDebug(), $this->getOnly(), $this->getVersion()
+                               // Module content vary
+                               $this->getLanguage(),
+                               $this->getSkin(),
+                               $this->getDebug(),
+                               $this->getUser(),
+                               // Request vary
+                               $this->getOnly(),
+                               $this->getVersion(),
+                               $this->getRaw(),
+                               $this->getImage(),
+                               $this->getVariant(),
+                               $this->getFormat(),
                        ) );
                }
                return $this->hash;
index 8fd94f7..73eb8a7 100644 (file)
@@ -371,9 +371,7 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        protected function getCssDeclarations( $primary, $fallback ) {
                return array(
                        "background-image: url($fallback);",
-                       "background-image: -webkit-linear-gradient(transparent, transparent), url($primary);",
                        "background-image: linear-gradient(transparent, transparent), url($primary);",
-                       "background-image: -o-linear-gradient(transparent, transparent), url($fallback);",
                );
        }
 
index e900200..9e840d5 100644 (file)
@@ -187,8 +187,8 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
                $resourceLoader = $context->getResourceLoader();
                $target = $context->getRequest()->getVal( 'target', 'desktop' );
-               // Bypass target filter if this request is from a unit test context. To prevent misuse in
-               // production, this is only allowed if testing is enabled server-side.
+               // Bypass target filter if this request is Special:JavaScriptTest.
+               // To prevent misuse in production, this is only allowed if testing is enabled server-side.
                $byPassTargetFilter = $this->getConfig()->get( 'EnableJavaScriptTest' ) && $target === 'test';
 
                $out = '';
index d37aa55..78fec50 100644 (file)
@@ -47,6 +47,7 @@ class ResourceLoaderUserTokensModule extends ResourceLoaderModule {
                        'editToken' => $user->getEditToken(),
                        'patrolToken' => $user->getEditToken( 'patrol' ),
                        'watchToken' => $user->getEditToken( 'watch' ),
+                       'csrfToken' => $user->getEditToken(),
                );
        }
 
index f0a5aa6..81668e1 100644 (file)
@@ -543,7 +543,7 @@ class SpecialContributions extends IncludableSpecialPage {
                        ) . '&#160;' .
                                Html::rawElement(
                                        'span',
-                                       array( 'style' => 'white-space: nowrap' ),
+                                       array( 'class' => 'mw-input-with-label' ),
                                        Xml::checkLabel(
                                                $this->msg( 'invert' )->text(),
                                                'nsInvert',
@@ -555,7 +555,7 @@ class SpecialContributions extends IncludableSpecialPage {
                                                )
                                        ) . '&#160;'
                                ) .
-                               Html::rawElement( 'span', array( 'style' => 'white-space: nowrap' ),
+                               Html::rawElement( 'span', array( 'class' => 'mw-input-with-label' ),
                                        Xml::checkLabel(
                                                $this->msg( 'namespace_association' )->text(),
                                                'associated',
@@ -572,7 +572,7 @@ class SpecialContributions extends IncludableSpecialPage {
                if ( $this->getUser()->isAllowed( 'deletedhistory' ) ) {
                        $deletedOnlyCheck = Html::rawElement(
                                'span',
-                               array( 'style' => 'white-space: nowrap' ),
+                               array( 'class' => 'mw-input-with-label' ),
                                Xml::checkLabel(
                                        $this->msg( 'history-show-deleted' )->text(),
                                        'deletedOnly',
@@ -587,7 +587,7 @@ class SpecialContributions extends IncludableSpecialPage {
 
                $checkLabelTopOnly = Html::rawElement(
                        'span',
-                       array( 'style' => 'white-space: nowrap' ),
+                       array( 'class' => 'mw-input-with-label' ),
                        Xml::checkLabel(
                                $this->msg( 'sp-contributions-toponly' )->text(),
                                'topOnly',
@@ -598,7 +598,7 @@ class SpecialContributions extends IncludableSpecialPage {
                );
                $checkLabelNewOnly = Html::rawElement(
                        'span',
-                       array( 'style' => 'white-space: nowrap' ),
+                       array( 'class' => 'mw-input-with-label' ),
                        Xml::checkLabel(
                                $this->msg( 'sp-contributions-newonly' )->text(),
                                'newOnly',
index 589c39f..e88aa1a 100644 (file)
@@ -77,11 +77,9 @@ class MovePageForm extends UnlistedSpecialPage {
                // Yes, the use of getVal() and getText() is wanted, see bug 20365
 
                $oldTitleText = $request->getVal( 'wpOldTitle', $target );
-               if ( is_string( $oldTitleText ) ) {
-                       $this->oldTitle = Title::newFromText( $oldTitleText );
-               }
+               $this->oldTitle = Title::newFromText( $oldTitleText );
 
-               if ( $this->oldTitle === null ) {
+               if ( !$this->oldTitle ) {
                        // Either oldTitle wasn't passed, or newFromText returned null
                        throw new ErrorPageError( 'notargettitle', 'notargettext' );
                }
index 00e56c1..6859310 100644 (file)
@@ -100,17 +100,16 @@ class SpecialProtectedpages extends SpecialPage {
                        Xml::openElement( 'fieldset' ) .
                        Xml::element( 'legend', array(), $this->msg( 'protectedpages' )->text() ) .
                        Html::hidden( 'title', $title->getPrefixedDBkey() ) . "\n" .
-                       $this->getNamespaceMenu( $namespace ) . "&#160;\n" .
-                       $this->getTypeMenu( $type ) . "&#160;\n" .
-                       $this->getLevelMenu( $level ) . "&#160;\n" .
-                       "<br /><span style='white-space: nowrap'>" .
-                       $this->getExpiryCheck( $indefOnly ) . "&#160;\n" .
-                       $this->getCascadeCheck( $cascadeOnly ) . "&#160;\n" .
-                       $this->getRedirectCheck( $noRedirect ) . "&#160;\n" .
-                       "</span><br /><span style='white-space: nowrap'>" .
-                       $this->getSizeLimit( $sizetype, $size ) . "&#160;\n" .
-                       "</span>" .
-                       "&#160;" . Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "\n" .
+                       $this->getNamespaceMenu( $namespace ) . "\n" .
+                       $this->getTypeMenu( $type ) . "\n" .
+                       $this->getLevelMenu( $level ) . "\n" .
+                       "<br />\n" .
+                       $this->getExpiryCheck( $indefOnly ) . "\n" .
+                       $this->getCascadeCheck( $cascadeOnly ) . "\n" .
+                       $this->getRedirectCheck( $noRedirect ) . "\n" .
+                       "<br />\n" .
+                       $this->getSizeLimit( $sizetype, $size ) . "\n" .
+                       Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "\n" .
                        Xml::closeElement( 'fieldset' ) .
                        Xml::closeElement( 'form' );
        }
@@ -123,7 +122,7 @@ class SpecialProtectedpages extends SpecialPage {
         * @return string
         */
        protected function getNamespaceMenu( $namespace = null ) {
-               return Html::rawElement( 'span', array( 'style' => 'white-space: nowrap;' ),
+               return Html::rawElement( 'span', array( 'class' => 'mw-input-with-label' ),
                        Html::namespaceSelector(
                                array(
                                        'selected' => $namespace,
@@ -143,12 +142,12 @@ class SpecialProtectedpages extends SpecialPage {
         * @return string Formatted HTML
         */
        protected function getExpiryCheck( $indefOnly ) {
-               return Xml::checkLabel(
+               return '<span class="mw-input-with-label">' . Xml::checkLabel(
                        $this->msg( 'protectedpages-indef' )->text(),
                        'indefonly',
                        'indefonly',
                        $indefOnly
-               ) . "\n";
+               ) . "</span>\n";
        }
 
        /**
@@ -156,12 +155,12 @@ class SpecialProtectedpages extends SpecialPage {
         * @return string Formatted HTML
         */
        protected function getCascadeCheck( $cascadeOnly ) {
-               return Xml::checkLabel(
+               return '<span class="mw-input-with-label">' . Xml::checkLabel(
                        $this->msg( 'protectedpages-cascade' )->text(),
                        'cascadeonly',
                        'cascadeonly',
                        $cascadeOnly
-               ) . "\n";
+               ) . "</span>\n";
        }
 
        /**
@@ -169,12 +168,12 @@ class SpecialProtectedpages extends SpecialPage {
         * @return string Formatted HTML
         */
        protected function getRedirectCheck( $noRedirect ) {
-               return Xml::checkLabel(
+               return '<span class="mw-input-with-label">' . Xml::checkLabel(
                        $this->msg( 'protectedpages-noredirect' )->text(),
                        'noredirect',
                        'noredirect',
                        $noRedirect
-               ) . "\n";
+               ) . "</span>\n";
        }
 
        /**
@@ -185,14 +184,14 @@ class SpecialProtectedpages extends SpecialPage {
        protected function getSizeLimit( $sizetype, $size ) {
                $max = $sizetype === 'max';
 
-               return Xml::radioLabel(
+               return '<span class="mw-input-with-label">' . Xml::radioLabel(
                        $this->msg( 'minimum-size' )->text(),
                        'sizetype',
                        'min',
                        'wpmin',
                        !$max
                ) .
-                       '&#160;' .
+                       ' ' .
                        Xml::radioLabel(
                                $this->msg( 'maximum-size' )->text(),
                                'sizetype',
@@ -200,10 +199,10 @@ class SpecialProtectedpages extends SpecialPage {
                                'wpmax',
                                $max
                        ) .
-                       '&#160;' .
+                       ' ' .
                        Xml::input( 'size', 9, $size, array( 'id' => 'wpsize' ) ) .
-                       '&#160;' .
-                       Xml::label( $this->msg( 'pagesize' )->text(), 'wpsize' );
+                       ' ' .
+                       Xml::label( $this->msg( 'pagesize' )->text(), 'wpsize' ) . "</span>\n";
        }
 
        /**
@@ -228,7 +227,7 @@ class SpecialProtectedpages extends SpecialPage {
                        $options[] = Xml::option( $text, $type, $selected ) . "\n";
                }
 
-               return "<span style='white-space: nowrap'>" .
+               return '<span class="mw-input-with-label">' .
                        Xml::label( $this->msg( 'restriction-type' )->text(), $this->IdType ) . '&#160;' .
                        Xml::tags( 'select',
                                array( 'id' => $this->IdType, 'name' => $this->IdType ),
@@ -260,7 +259,7 @@ class SpecialProtectedpages extends SpecialPage {
                        $options[] = Xml::option( $text, $type, $selected );
                }
 
-               return "<span style='white-space: nowrap'>" .
+               return '<span class="mw-input-with-label">' .
                        Xml::label( $this->msg( 'restriction-level' )->text(), $this->IdLevel ) . ' ' .
                        Xml::tags( 'select',
                                array( 'id' => $this->IdLevel, 'name' => $this->IdLevel ),
index 2f47add..8809900 100644 (file)
@@ -853,6 +853,7 @@ class SpecialSearch extends SpecialPage {
                $html = null;
 
                $score = '';
+               $related = '';
                if ( Hooks::run( 'ShowSearchHit', array(
                        $this, $result, $terms,
                        &$link, &$redirect, &$section, &$extract,
index c569b0d..38d3549 100644 (file)
@@ -567,7 +567,7 @@ class LoginForm extends SpecialPage {
 
                $cache = ObjectCache::getLocalClusterInstance();
                # Make sure the user does not exist already
-               $lock = $cache->getScopedLock( wfGlobalCacheKey( 'account', md5( $this->mUsername ) ) );
+               $lock = $cache->getScopedLock( $cache->makeGlobalKey( 'account', md5( $this->mUsername ) ) );
                if ( !$lock ) {
                        return Status::newFatal( 'usernameinprogress' );
                } elseif ( $u->idForName( User::READ_LOCKING ) ) {
index 962e0c3..2feaa9e 100644 (file)
@@ -103,6 +103,11 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $user = $this->getUser();
 
                $opts->add( 'days', $user->getOption( 'watchlistdays' ), FormOptions::FLOAT );
+               $opts->add( 'extended', $user->getBoolOption( 'extendwatchlist' ) );
+               if ( $this->getRequest()->getVal( 'action' ) == 'submit' ) {
+                       // The user has submitted the form, so we dont need the default values
+                       return $opts;
+               }
 
                $opts->add( 'hideminor', $user->getBoolOption( 'watchlisthideminor' ) );
                $opts->add( 'hidebots', $user->getBoolOption( 'watchlisthidebots' ) );
@@ -115,8 +120,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        $opts->add( 'hidecategorization', $user->getBoolOption( 'watchlisthidecategorization' ) );
                }
 
-               $opts->add( 'extended', $user->getBoolOption( 'extendwatchlist' ) );
-
                return $opts;
        }
 
@@ -418,16 +421,16 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                }
 
                $nondefaults = $opts->getChangedValues();
-               $cutofflinks = $this->cutoffLinks( $opts['days'], $nondefaults ) . "<br />\n";
+               $cutofflinks = $this->msg( 'wlshowtime' ) . ' ' . $this->cutoffselector( $opts );
 
                # Spit out some control panel links
                $filters = array(
-                       'hideminor' => 'rcshowhideminor',
-                       'hidebots' => 'rcshowhidebots',
-                       'hideanons' => 'rcshowhideanons',
-                       'hideliu' => 'rcshowhideliu',
-                       'hidemyself' => 'rcshowhidemine',
-                       'hidepatrolled' => 'rcshowhidepatr'
+                       'hideminor' => 'wlshowhideminor',
+                       'hidebots' => 'wlshowhidebots',
+                       'hideanons' => 'wlshowhideanons',
+                       'hideliu' => 'wlshowhideliu',
+                       'hidemyself' => 'wlshowhidemine',
+                       'hidepatrolled' => 'wlshowhidepatr'
                );
 
                if ( $this->getConfig()->get( 'RCWatchCategoryMembership' ) ) {
@@ -444,13 +447,18 @@ class SpecialWatchlist extends ChangesListSpecialPage {
 
                $links = array();
                foreach ( $filters as $name => $msg ) {
-                       $links[] = $this->showHideLink( $nondefaults, $msg, $name, $opts[$name] );
+                       $links[] = $this->showHideCheck( $nondefaults, $msg, $name, $opts[$name] );
                }
 
                $hiddenFields = $nondefaults;
+               $hiddenFields['action'] = 'submit';
                unset( $hiddenFields['namespace'] );
                unset( $hiddenFields['invert'] );
                unset( $hiddenFields['associated'] );
+               unset( $hiddenFields['days'] );
+               foreach ( $filters as $key => $value ) {
+                       unset( $hiddenFields[$key] );
+               }
 
                # Create output
                $form = '';
@@ -458,8 +466,10 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                # Namespace filter and put the whole form together.
                $form .= $wlInfo;
                $form .= $cutofflinks;
-               $form .= $lang->pipeList( $links ) . "\n";
-               $form .= "<hr />\n<p>";
+               $form .= $this->msg( 'watchlist-hide' ) .
+                       $this->msg( 'colon-separator' )->escaped() .
+                       implode( ' ', $links );
+               $form .= "\n<hr />\n<p>";
                $form .= Html::namespaceSelector(
                        array(
                                'selected' => $opts['namespace'],
@@ -470,21 +480,21 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                                'id' => 'namespace',
                                'class' => 'namespaceselector',
                        )
-               ) . '&#160;';
-               $form .= Xml::checkLabel(
+               ) . "\n";
+               $form .= '<span class="mw-input-with-label">' . Xml::checkLabel(
                        $this->msg( 'invert' )->text(),
                        'invert',
                        'nsinvert',
                        $opts['invert'],
                        array( 'title' => $this->msg( 'tooltip-invert' )->text() )
-               ) . '&#160;';
-               $form .= Xml::checkLabel(
+               ) . "</span>\n";
+               $form .= '<span class="mw-input-with-label">' . Xml::checkLabel(
                        $this->msg( 'namespace_association' )->text(),
                        'associated',
                        'nsassociated',
                        $opts['associated'],
                        array( 'title' => $this->msg( 'tooltip-namespace_association' )->text() )
-               ) . '&#160;';
+               ) . "</span>\n";
                $form .= Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "</p>\n";
                foreach ( $hiddenFields as $key => $value ) {
                        $form .= Html::hidden( $key, $value ) . "\n";
@@ -496,6 +506,41 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $this->setBottomText( $opts );
        }
 
+       function cutoffselector( $options ) {
+               $list = array();
+               $selectOptions = '';
+               $hours = array( 1, 2, 6, 12 );
+               $days = array( 1, 3, 7 );
+               foreach ( $hours as $h ) {
+                       $name = $this->msg( 'hours', $h );
+                       $value = $h / 24;
+                       $selected = ( $value == $options['days'] ) ? true : false;
+
+                       $selectOptions .= Xml::option( $name, $value, $selected );
+               }
+               foreach ( $days as $d ) {
+                       $name = $this->msg( 'days', $d );
+                       $value = $d;
+                       $selected = ( $value == $options['days'] ) ? true : false;
+
+                       $selectOptions .= Xml::option( $name, $value, $selected );
+               }
+
+               // all option
+               $name = $this->msg( 'watchlistall2' );
+               $value = 0;
+               $selected = ( $value == $options['days'] ) ? true : false;
+               $selectOptions .= Xml::option( $name, $value, $selected );
+
+               $attribs = array( "name" => "days", "id" => "days" );
+               return Xml::openElement( 'select', $attribs )
+                       . "\n"
+                       . $selectOptions
+                       . "\n"
+                       . Xml::closeElement( 'select' )
+                       . "<br />\n";
+       }
+
        function setTopText( FormOptions $opts ) {
                $nondefaults = $opts->getChangedValues();
                $form = "";
@@ -535,7 +580,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                }
 
                $form .= Xml::openElement( 'form', array(
-                       'method' => 'post',
+                       'method' => 'get',
                        'action' => $this->getPageTitle()->getLocalURL(),
                        'id' => 'mw-watchlist-form'
                ) );
@@ -550,62 +595,15 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $this->getOutput()->addHTML( $form );
        }
 
-       protected function showHideLink( $options, $message, $name, $value ) {
-               $label = $this->msg( $value ? 'show' : 'hide' )->escaped();
+       protected function showHideCheck( $options, $message, $name, $value ) {
                $options[$name] = 1 - (int)$value;
 
-               return $this->msg( $message )
-                       ->rawParams( Linker::linkKnown( $this->getPageTitle(), $label, array(), $options ) )
-                       ->escaped();
-       }
-
-       protected function hoursLink( $h, $options = array() ) {
-               $options['days'] = ( $h / 24.0 );
-
-               return Linker::linkKnown(
-                       $this->getPageTitle(),
-                       $this->getLanguage()->formatNum( $h ),
-                       array(),
-                       $options
-               );
-       }
-
-       protected function daysLink( $d, $options = array() ) {
-               $options['days'] = $d;
-
-               return Linker::linkKnown(
-                       $this->getPageTitle(),
-                       $this->getLanguage()->formatNum( $d ),
-                       array(),
-                       $options
-               );
-       }
-
-       /**
-        * Returns html
-        *
-        * @param int $days This gets overwritten, so is not used
-        * @param array $options Query parameters for URL
-        * @return string
-        */
-       protected function cutoffLinks( $days, $options = array() ) {
-               global $wgRCMaxAge;
-               $watchlistMaxDays = ceil( $wgRCMaxAge / ( 3600 * 24 ) );
-
-               $hours = array( 1, 2, 6, 12 );
-               $days = array( 1, 3, 7, $watchlistMaxDays );
-               $i = 0;
-               foreach ( $hours as $h ) {
-                       $hours[$i++] = $this->hoursLink( $h, $options );
-               }
-               $i = 0;
-               foreach ( $days as $d ) {
-                       $days[$i++] = $this->daysLink( $d, $options );
-               }
-
-               return $this->msg( 'wlshowlast' )->rawParams(
-                       $this->getLanguage()->pipeList( $hours ),
-                       $this->getLanguage()->pipeList( $days ) )->parse();
+               return '<span class="mw-input-with-label">' . Xml::checkLabel(
+                       $this->msg( $message, '' )->text(),
+                       $name,
+                       $name,
+                       (int)$value
+               ) . '</span>';
        }
 
        /**
index 12f6285..c74b04d 100644 (file)
@@ -62,7 +62,7 @@ class FileContentsHasher {
                        return false;
                }
 
-               $cacheKey = wfGlobalCacheKey( __CLASS__, $filePath, $mtime, $algo );
+               $cacheKey = $this->cache->makeGlobalKey( __CLASS__, $filePath, $mtime, $algo );
                $hash = $this->cache->get( $cacheKey );
 
                if ( $hash ) {
index 25030b1..c262b40 100644 (file)
@@ -15,6 +15,8 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
        protected $namespace = null;
        protected $relative = null;
        protected $suggestions = null;
+       protected $highlightFirst = null;
+       protected $validateTitle = null;
 
        /**
         * @param array $config Configuration options
@@ -22,6 +24,10 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
         * @param bool|null $config['relative'] If a namespace is set,
         *  return a title relative to it (default: true)
         * @param bool|null $config['suggestions'] Display search suggestions (default: true)
+        * @param bool|null $config['highlightFirst'] Automatically highlight
+        *  the first result (default: true)
+        * @param bool|null $config['validateTitle'] Whether the input must
+        *  be a valid title (default: true)
         */
        public function __construct( array $config = array() ) {
                // Parent constructor
@@ -42,6 +48,9 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
                if ( isset( $config['highlightFirst'] ) ) {
                        $this->highlightFirst = $config['highlightFirst'];
                }
+               if ( isset( $config['validateTitle'] ) ) {
+                       $this->validateTitle = $config['validateTitle'];
+               }
 
                // Initialization
                $this->addClasses( array( 'mw-widget-titleInputWidget' ) );
@@ -64,6 +73,9 @@ class TitleInputWidget extends \OOUI\TextInputWidget {
                if ( $this->highlightFirst !== null ) {
                        $config['highlightFirst'] = $this->highlightFirst;
                }
+               if ( $this->validateTitle !== null ) {
+                       $config['validateTitle'] = $this->validateTitle;
+               }
                return parent::getConfig( $config );
        }
 }
index 67bd0c9..2423092 100644 (file)
--- a/index.php
+++ b/index.php
@@ -32,7 +32,9 @@
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
 // dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
 wfEntryPointCheck( 'index.php' );
 
 require __DIR__ . '/includes/WebStart.php';
index dfa17aa..2830911 100644 (file)
        "wlheader-showupdated": "Bladsye wat verander is sedert u hulle laas besoek het word in '''vetdruk''' uitgewys.",
        "wlnote": "Hier volg die laaste {{PLURAL:$1|verandering|'''$1''' veranderings}} binne die laaste {{PLURAL:$2|uur|'''$2''' ure}}, soos vanaf $3 om $4.",
        "wlshowlast": "Wys afgelope $1 ure, $2 dae of",
+       "watchlistall2": "alles",
        "watchlist-options": "Opsies vir dophoulys",
        "watching": "Plaas op dophoulys...",
        "unwatching": "Verwyder van dophoulys...",
index 5fd8fc3..728617f 100644 (file)
        "wlheader-showupdated": "الصفحات التي تم تحريرها بعد مطالعتك إياها آخر مرة عناوينها بالخط '''الغليظ'''",
        "wlnote": "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
        "wlshowlast": "عرض آخر $1 ساعات $2 يوما",
+       "watchlistall2": "الكل",
        "watchlist-options": "خيارات قائمة المراقبة",
        "watching": "يراقب...",
        "unwatching": "إزالة المراقبة...",
index 1e46988..5b7a792 100644 (file)
        "wlheader-showupdated": "Les páxines que camudaron dende que les visitasti anteriormente amuesense en '''negrina'''",
        "wlnote": "Abaxo {{PLURAL:$1|tá'l caberu cambiu|tan los caberos <strong>$1</strong> cambios}} {{PLURAL:$2|na cabera hora|nes caberes <strong>$2</strong> hores}}, a día $3, a les $4.",
        "wlshowlast": "Amosar les últimes $1 hores, los últimos $2 díes",
+       "watchlistall2": "toos",
+       "watchlist-hide": "Anubrir",
+       "wlshowtime": "Ver últimos:",
+       "wlshowhideminor": "ediciones menores",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "usuarios rexistraos",
+       "wlshowhideanons": "usuarios anónimos",
+       "wlshowhidepatr": "ediciones supervisaes",
+       "wlshowhidemine": "les mios ediciones",
        "watchlist-options": "Opciones de la llista de siguimientu",
        "watching": "Vixilando...",
        "unwatching": "Dexando de vixilar...",
index f5e0e57..f39f299 100644 (file)
        "disclaimers": "Məsuliyyətdən imtina",
        "disclaimerpage": "Project:Məsuliyyətdən imtina",
        "edithelp": "Redaktə kömək",
+       "helppage-top-gethelp": "Kömək",
        "mainpage": "Ana Səhifə",
        "mainpage-description": "Ana Səhifə",
        "policy-url": "Project:Qaydalar",
        "hidetoc": "gizlə",
        "collapsible-collapse": "Gizlə",
        "collapsible-expand": "Göstər",
+       "confirmable-confirm": "{{GENDER:$1|Siz}} əminsiniz?",
        "confirmable-yes": "Bəli",
        "confirmable-no": "Xeyr",
        "thisisdeleted": "$1 bax və ya bərpa et?",
        "nstab-template": "Şablon",
        "nstab-help": "Kömək",
        "nstab-category": "Kateqoriya",
+       "mainpage-nstab": "Ana Səhifə",
        "nosuchaction": "Bu cür fəaliyyət mövcud deyil.",
        "nosuchactiontext": "URL-də göstərilən əməliyyat düzgün deyil.\nOla bilsin ki, URL-i səhv daxil etmisiniz və ya düzgün olmayan keçiddən istifadə etmisiniz.\nBu həmçinin, {{SITENAME}} saytındakı xətanın göstəricisi ola bilər.",
        "nosuchspecialpage": "Bu adda xüsusi səhifə mövcud deyil",
        "createaccountreason": "Səbəb:",
        "createacct-reason": "Səbəb",
        "createacct-reason-ph": "Niyə başqa bir hesab yaradırsınız",
-       "createacct-captcha": "Təhlükəsizlik nəzarəti",
-       "createacct-imgcaptcha-ph": "Yuxarıda gördüyünüz mətni daxil edin",
        "createacct-submit": "İstifadəçi hesabı yarat",
        "createacct-another-submit": "Başqa bir istifadəçi hesabı yarat",
        "createacct-benefit-heading": "{{SITENAME}} sizin kimi insanlar tərəfindən yaradılır.",
        "notextmatches": "Məqalələrdə uyğun məzmun tapılmadı",
        "prevn": "əvvəlki {{PLURAL:$1|$1}}",
        "nextn": "sonrakı {{PLURAL:$1|$1}}",
+       "prev-page": "əvvəlki səhifə",
+       "next-page": "növbəti səhifə",
        "prevn-title": "Əvvəlki bir $1 {{PLURAL:$1|nəticə|nəticə}}",
        "nextn-title": "Əvvəlki bir $1 {{PLURAL:$1|nəticə|nəticə}}",
        "shown-title": "Səhifə üçün $1 {{PLURAL:$1|nəticə|nəticəyə}} bax",
        "search-result-category-size": "{{PLURAL:$1|$1 element|$1 elementlər}} ({{PLURAL:$2|$2 alt kateqoriya|$2 alt kateqoriyalar}}, {{PLURAL:$3|$3 fayl|$3 fayllar}})",
        "search-redirect": "(yönləndirmə $1)",
        "search-section": "(bölmə $1)",
+       "search-category": "(kateqoriya $1)",
        "search-suggest": "Bəlkə, bunu nəzərdə tuturdunuz: $1",
        "search-interwiki-caption": "Qardaş layihələr",
        "search-interwiki-default": "$1 nəticələri:",
        "skin-preview": "Sınaq görüntüsü",
        "datedefault": "Seçim yoxdur",
        "prefs-labs": "eksperimental imkanlar",
+       "prefs-user-pages": "İstifadəçi səhifəsi",
        "prefs-personal": "İstifadəçi profili",
        "prefs-rc": "Son dəyişikliklər",
        "prefs-watchlist": "İzləmə siyahısı",
        "prefs-dateformat": "Tarix formatı",
        "prefs-timeoffset": "Saat qurşağının fərqi",
        "prefs-advancedediting": "Ümumi parametrlər",
+       "prefs-editor": "Redaktor",
        "prefs-advancedrc": "Ətraflı variantlar",
        "prefs-advancedrendering": "Ətraflı variantlar",
        "prefs-advancedsearchoptions": "Ətraflı variantlar",
        "rcshowhidebots-show": "Göstər",
        "rcshowhidebots-hide": "Gizlət",
        "rcshowhideliu": "Qeydiyyatlı istifadəçiləri $1",
+       "rcshowhideliu-show": "Göstər",
        "rcshowhideliu-hide": "Gizlət",
        "rcshowhideanons": "Anonim istifadəçiləri $1",
        "rcshowhideanons-show": "Göstər",
        "rcshowhideanons-hide": "Gizlət",
        "rcshowhidepatr": "Yoxlanılmış redaktələri $1",
+       "rcshowhidepatr-show": "Göstər",
+       "rcshowhidepatr-hide": "Gizlət",
        "rcshowhidemine": "Mənim redaktələrimi $1",
        "rcshowhidemine-show": "Göstər",
        "rcshowhidemine-hide": "Gizlət",
+       "rcshowhidecategorization-show": "Göstər",
+       "rcshowhidecategorization-hide": "Gizlət",
        "rclinks": "Son $2 gün ərzindəki son $1 dəyişikliyi göstər <br />$3",
        "diff": "fərq",
        "hist": "tarixçə",
        "upload-misc-error": "Naməlum yükləmə xətası",
        "upload-too-many-redirects": "URL-də xeyli yönləndirmə var",
        "upload-http-error": " HTTP xətası var : $1",
+       "upload-dialog-title": "Fayl yüklə",
+       "upload-dialog-button-cancel": "İmtina",
+       "upload-dialog-button-done": "Oldu",
+       "upload-dialog-button-save": "Qeyd et",
+       "upload-dialog-button-upload": "Yüklə",
+       "upload-form-label-select-file": "Fayl seç",
+       "upload-form-label-infoform-title": "Detallar",
+       "upload-form-label-infoform-name": "Ad",
+       "upload-form-label-infoform-description": "İzah",
+       "upload-form-label-usage-title": "İstifadə",
+       "upload-form-label-usage-filename": "Fayl adı",
+       "foreign-structured-upload-form-label-own-work": "Bu mənim öz işimdir",
+       "foreign-structured-upload-form-label-infoform-categories": "Kateqoriyalar",
+       "foreign-structured-upload-form-label-infoform-date": "Tarix",
        "backend-fail-notexists": "\"$1\" faylı mövcud deyil",
        "backend-fail-delete": "\"$1\" faylı sililmədi.",
        "backend-fail-copy": "\"$1\" faylı \"$2\" faylına kopyalanmır.",
        "nolicense": "Heç biri seçilməmişdir",
        "upload_source_url": "(siz düzgün, hər kəsin daxil ola biləcəyi URL seçdiniz)",
        "upload_source_file": "(siz kompüterinizdəki faylı seçdiniz)",
+       "listfiles-delete": "sil",
        "listfiles_search_for": "Media adı üçün axtar:",
        "imgfile": "fayl",
        "listfiles": "Fayl siyahısı",
        "listfiles_size": "Həcm",
        "listfiles_description": "İzah",
        "listfiles_count": "Versiya",
+       "listfiles-latestversion-yes": "Bəli",
+       "listfiles-latestversion-no": "Xeyr",
        "file-anchor-link": "Fayl",
        "filehist": "Faylın tarixçəsi",
        "filehist-help": "Faylın əvvəlki versiyasını görmək üçün gün/tarix bölməsindəki tarixləri tıqlayın.",
        "unusedtemplates": "İstifadəsiz şablonlar",
        "unusedtemplateswlh": "digər keçidlər",
        "randompage": "İxtiyari səhifə",
+       "randomincategory-category": "Kateqoriya:",
+       "randomincategory-submit": "Get",
        "randomredirect": "İxtiyari istiqamətləndirmə",
        "randomredirect-nopages": "\"$1\" ad sahəsində heç bir yönləndirmə yoxdur.",
        "statistics": "Statistika",
        "statistics-users": "Qeydiyyatdan keçmiş [[Special:ListUsers|istifadəçilər]]",
        "statistics-users-active": "Aktiv istifadəçilər",
        "statistics-users-active-desc": "Son {{PLURAL:$1|gün|$1 gündə}} iş görən istifadəçilər",
+       "pageswithprop-submit": "Get",
        "doubleredirects": "İkiqat istiqamətləndirmələr",
        "double-redirect-fixed-move": "[[$1]] səhifəsinin yeri dəyişdirilib.\nO avtomatik yenilənib və [[$2]] səhifəsinə yönləndirilib.",
        "double-redirect-fixed-maintenance": "[[$1]] səhifəsindən [[$2]] səhifəsinə ikiqat yönləndirmə avtomatik düzəldilir.",
        "protectedpages-indef": "Yalnız müddətsiz mühafizələr",
        "protectedpages-cascade": "Yalnız kaskad mühafizələr",
        "protectedpagesempty": "Hal-hazırda bu parametrə uyğun heç bir mühafizəli səhifə yoxdur",
+       "protectedpages-page": "Səhifə",
+       "protectedpages-unknown-timestamp": "Naməlum",
        "protectedtitles": "Mühafizəli başlıqlar",
        "listusers": "İstifadəçi siyahısı",
        "listusers-editsonly": "Yalnız redaktələri olan istifadəçiləri göstər",
        "listgrouprights-removegroup-self": "Öz hesabından $1 {{PLURAL:$2|qrupunu|qruplarını}} sil",
        "listgrouprights-addgroup-self-all": "Bütün qrupları öz hesabına əlavə edə bilər",
        "listgrouprights-removegroup-self-all": "Bütün qrupları öz hesabından çıxara bilər",
+       "listgrouprights-namespaceprotection-namespace": "Adlar fəzası",
        "mailnologin": "Ünvan yoxdur",
        "emailuser": "İstifadəçiyə e-məktub göndər",
        "defemailsubject": "\"$1\" adlı istifadəçidən {{SITENAME}} e-məktubu",
        "wlheader-showupdated": "Son ziyarətinizdən sonra edilən dəyişikliklər '''qalın şriftlərlə''' göstərilmişdir.",
        "wlnote": "Aşağıdakı {{PLURAL:$1|'''$1''' dəyişiklik|'''$1''' dəyişiklik}} son {{PLURAL:$2|saatda|'''$2''' saatda}} edilmişdir.",
        "wlshowlast": "Bunları göstər: son $1 saatı $2 günü",
+       "watchlistall2": "hamısı",
+       "wlshowhidemine": "mənimn redaktələrim",
        "watchlist-options": "İzləmə siyahısının nizamlamaları",
        "watching": "İzlənilir...",
        "unwatching": "İzlənilmir...",
        "revertpage-nouser": "(istifadəçi adı çıxarılmış) tərəfindən edilən dəyişikliklər [[User:$1|$1]] tərəfindən edilən son dəyişikliyə geri alındı",
        "rollback-success": "$1 tərəfindən edilmiş redaktələr geri qaytarıldı; $2 tərəfindən yaradılmış son versiya bərpa olundu.",
        "sessionfailure-title": "Giriş səhvi",
+       "changecontentmodel-reason-label": "Səbəb:",
+       "logentry-contentmodel-change-revertlink": "geri qaytar",
+       "logentry-contentmodel-change-revert": "geri qaytar",
        "protectlogpage": "Mühafizə etmə qeydləri",
        "protectedarticle": "\"[[$1]]\" səhifəsi mühafizə edildi",
        "modifiedarticleprotection": "\"[[$1]]\" səhifəsi üçün mühafizə səviyyəsi dəyişildi",
        "allmessages-filter-modified": "Dəyişdirilmiş",
        "allmessages-language": "Dil:",
        "allmessages-filter-submit": "Keç",
+       "allmessages-filter-translate": "Tərcümə et",
        "thumbnail-more": "Böyüt",
        "filemissing": "Şəkil gözlənilir",
        "thumbnail_error": "Kiçik şəkil yaratma xətası: $1",
        "pageinfo-contentpage": "Məzmunlu səhifə kimi sayılır",
        "pageinfo-contentpage-yes": "Bəli",
        "pageinfo-protect-cascading": "Kaskad mühafizə burada qoşulub",
+       "pageinfo-protect-cascading-yes": "Bəli",
        "pageinfo-category-pages": "Səhifələrin sayı",
        "pageinfo-category-subcats": "Altkateqoriyaların sayı",
        "pageinfo-category-files": "Faylların sayı",
        "confirm-purge-top": "Bu səhifə keşdən (cache) silinsin?",
        "confirm-watch-button": "OK",
        "confirm-unwatch-button": "OK",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "&larr; əvvəlki səhifə",
        "imgmultipagenext": "sonrakı səhifə &rarr;",
        "imgmultigo": "Seç!",
        "version-software-product": "Məhsul",
        "version-software-version": "Versiya",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "Kitabxana",
+       "version-libraries-authors": "Müəlliflər",
+       "redirect-user": "İstifadəçi ID-si",
+       "redirect-page": "Səhifə ID-si",
        "fileduplicatesearch": "Dublikat fayl axtarışı",
        "fileduplicatesearch-legend": "Dublikatı axtar",
        "fileduplicatesearch-filename": "Fayl adı:",
        "tags-title": "Etiketlər",
        "tags-tag": "Etiket adı",
        "tags-description-header": "Anlamının tam açıqlaması",
+       "tags-source-header": "Mənbə",
        "tags-active-header": "Aktiv?",
        "tags-hitcount-header": "Etiketli dəyişikliklər",
+       "tags-actions-header": "Hərəkətlər",
        "tags-active-yes": "Bəli",
        "tags-active-no": "Xeyr",
        "tags-edit": "redaktə",
+       "tags-delete": "sil",
+       "tags-activate": "aktivləşdirmək",
        "tags-hitcount": "$1 {{PLURAL:$1|dəyişiklik|dəyişiklik}}",
+       "tags-create-reason": "Səbəb:",
+       "tags-create-submit": "Yarat",
+       "tags-delete-reason": "Səbəb:",
+       "tags-activate-reason": "Səbəb:",
+       "tags-deactivate-reason": "Səbəb:",
+       "tags-edit-existing-tags-none": "\"Yox\"",
+       "tags-edit-new-tags": "Yeni taqlar:",
+       "tags-edit-reason": "Səbəb:",
        "comparepages": "Səhifələri qarşılaşdır",
        "compare-page1": "Səhifə 1",
        "compare-page2": "Səhifə 2",
        "htmlform-submit": "Təsdiq et",
        "htmlform-reset": "Dəyişiklikləri geri qaytar",
        "htmlform-selectorother-other": "Digər",
+       "htmlform-no": "Xeyr",
+       "htmlform-yes": "Bəli",
        "sqlite-has-fts": "$1 tam mətn axtarma ilə",
        "sqlite-no-fts": "$1 tam mətn axtarma olmadan",
        "logentry-delete-delete": "$1 $3 səhifəsini {{GENDER:$2|sildi}}",
        "feedback-bugnew": "Mən yoxladım. Yeni xəta barədə xəbər ver",
        "feedback-cancel": "İmtina",
        "feedback-close": "Oldu",
+       "feedback-error-title": "Xəta",
        "feedback-error2": "Xəta: Redaktə qeydə alınmadı",
        "feedback-message": "Mesaj:",
        "feedback-subject": "Mövzu:",
+       "feedback-thanks-title": "Təşəkkür!",
        "searchsuggest-search": "Axtar",
        "api-error-filename-tooshort": "Fayl adı qısadır.",
        "api-error-filetype-banned": "Bu tip fayllar qadağandır.",
        "limitreport-walltime": "Real vaxt istifadəsi",
        "expand_templates_output": "Nəticə",
        "expand_templates_ok": "OK",
+       "pagelang-name": "Səhifə",
+       "pagelang-language": "Dil",
+       "mediastatistics-header-unknown": "Naməlum",
+       "mediastatistics-header-audio": "Audio",
+       "mediastatistics-header-video": "Videolar",
+       "mediastatistics-header-office": "Ofis",
+       "mediastatistics-header-text": "Mətn",
        "special-characters-group-latin": "Latın",
        "special-characters-group-latinextended": "Latın genişləndirilmiş",
        "special-characters-group-ipa": "IPA",
index 27b2b69..13cc489 100644 (file)
        "wlheader-showupdated": "سون گؤروشونوزدن سوْنرا ائدیلن دییشیکلیکلر '''قالین''' گؤرسدیلیب‌دیر.",
        "wlnote": "آشاغیداکی {{PLURAL:$1|بیر ديَیشیک‌لیک|<strong>$1</strong> ديَیشیک‌لیک}}  سون {{PLURAL:$2|ساعتدا|<strong>$2</strong> ساعتدا}} ائدیلمیشدیر. $3، $4",
        "wlshowlast": "سون $1 ساعات $2 گون گؤستر",
+       "watchlistall2": "بوتون",
        "watchlist-options": "ایزله‌دیکلر سئچمه‌لری",
        "watching": "ایزله‌نیلیر...",
        "unwatching": "ایزله‌مه...",
index 8d1abd7..6b50ef1 100644 (file)
        "wlheader-showupdated": "Mga pahina na pinagriliwat poon kaidtong huri kang nagbisita sainda ipinapatanaw na '''mahîbog'''",
        "wlnote": "Sa ibaba an {{PLURAL:$1|huring pagbabago|mga huring '''$1''' pagbabago}} sa nakaaging {{PLURAL:$2|oras|'''$2''' mga oras}}, magpoon pa kan $3, $4.",
        "wlshowlast": "Ipahilíng an nakaaging $1 na mga oras mga $2 na aldaw",
+       "watchlistall2": "gabos",
        "watchlist-options": "Bantay-listahan na mga pagpipilian",
        "watching": "Pigbabantayan...",
        "unwatching": "Dai pigbabantayan...",
index a45a4d3..4c3e693 100644 (file)
        "wlheader-showupdated": "Старонкі, зьмененыя з часу вашага апошняга візыту, вылучаныя '''тоўстым''' шрыфтам.",
        "wlnote": "Ніжэй {{PLURAL:$1|паказаная <strong>$1</strong> апошняя зьмена|паказаныя <strong>$1</strong> апошнія зьмены|паказаныя <strong>$1</strong> апошніх зьменаў}} за <strong>$2</strong> {{PLURAL:$2|гадзіну|гадзіны|гадзінаў}}, па стане на $4 $3.",
        "wlshowlast": "Паказаць за апошнія $1 гадзінаў, $2 дзён",
+       "watchlistall2": "усё",
+       "wlshowtime": "Паказаць апошнія:",
+       "wlshowhideminor": "дробныя праўкі",
+       "wlshowhidebots": "робатаў",
+       "wlshowhideliu": "зарэгістраваных удзельнікаў",
+       "wlshowhideanons": "ананімных удзельнікаў",
+       "wlshowhidepatr": "патруляваныя праўкі",
        "watchlist-options": "Налады сьпісу назіраньня",
        "watching": "Дадаецца ў сьпіс назіраньня…",
        "unwatching": "Выдаляецца са сьпісу назіраньня…",
        "blocklist-userblocks": "Схаваць блякаваньні рахункаў",
        "blocklist-tempblocks": "Схаваць часовыя блякаваньні",
        "blocklist-addressblocks": "Схаваць блякаваньні асобных IP-адрасоў",
-       "blocklist-rangeblocks": "хаваньне блякаваньняў дыяпазонаў",
+       "blocklist-rangeblocks": "Схаваць блякаваньні дыяпазонаў",
        "blocklist-timestamp": "Дата/час",
        "blocklist-target": "Мэта",
        "blocklist-expiry": "Сканчаецца",
        "logentry-suppress-block": "$1 {{GENDER:$2|заблякаваў|заблякавала}} {{GENDER:$4|$3}} на тэрмін $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} тэрмін блякаваньня {{GENDER:$4|$3}} на пэрыяд $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|імпартаваў|імпартавала}} $3 праз загрузку файлу",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|імпартаваў|імпртавала}} $3 зь іншай вікі",
        "logentry-merge-merge": "$1 {{GENDER:$2|аб’яднаў|аб’яднала}} $3 у $4 (вэрсіі да $5)",
        "logentry-move-move": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|перанёс|перанесла}} старонку $3 у $4 без пакінутага перанакіраваньня",
        "logentry-newusers-create2": "$1 {{GENDER:$2|стварыў|стварыла}} рахунак $3",
        "logentry-newusers-byemail": "$1 {{GENDER:$2|стварыў|стварыла}} рахунак $3, пароль быў дасланы электроннай поштай",
        "logentry-newusers-autocreate": "Рахунак $1 быў {{GENDER:$2|створаны}} аўтаматычна",
+       "logentry-protect-move_prot": "$1 {{GENDER:$2|перанёс|перанесла}} налады абароны з $4 на $3",
+       "logentry-protect-unprotect": "$1 {{GENDER:$2|зьняў|зьняла}} абарону з $3",
+       "logentry-protect-protect": "$1 {{GENDER:$2|абараніў|абараніла}} $3 $4",
+       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|абараніў|абараніла}} $3 $4 [каскадна]",
+       "logentry-protect-modify": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} ўзровень абароны для $3 $4",
+       "logentry-protect-modify-cascade": "$1 {{GENDER:$2|зьмяніў|зьмяніла}} ўзровень абароны для $3 $4 [каскадна]",
        "logentry-rights-rights": "$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групы з $4 на $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$1|зьмяніў|зьмяніла}} прыналежнасьць $3 да групаў",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|быў аўтаматычна пераведзены|была аўтаматычна пераведзеная}} з групы $4 ў $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|загрузіў|загрузіла}} новую вэрсію $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
+       "log-name-managetags": "Журнал кіраваньня цэтлікамі",
+       "log-description-managetags": "На гэтай старонцы пералічаныя спасылкі, зьвязаныя з [[Special:Tags|цэтлікамі]]. Журнал зьмяшчае толькі падзеі, выкананыя адміністратарам уручную; цэтлікі могуць быць створаныя або выдаленыя праграмным забесьпячэньнем вікі бяз запісу пра падзею ў часопіс.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|стварыў|стварыла}} цэтлік «$4»",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|выдаліў|выдаліла}} цэтлік «$4» (выдалены з $5 {{PLURAL:$5|вэрсіі ці запісу журналу|вэрсіяў ці запісаў журналу}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|актываваў|актывавала}} цэтлік «$4» дзеля выкарыстаньня ўдзельнікамі і робатамі",
+       "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|1=цэтлік|цэтлікі}} $6 да вэрсіі $4 старонкі $3",
        "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|дадаў|дадала}} {{PLURAL:$7|1=цэтлік|цэтлікі}} $6 да запісу журналу $5 старонкі $3",
        "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|выдаліў|выдаліла}} {{PLURAL:$9|1=цэтлік|цэтлікі}} $8 з вэрсіі $4 старонкі $3",
        "feedback-error1": "Памылка: невядомы вынік з API",
        "feedback-error2": "Памылка рэдагаваньня",
        "feedback-error3": "Памылка: няма адказу ад API",
+       "feedback-error4": "Памылка: немагчыма запісаць у дадзены загаловак водгуку",
        "feedback-message": "Паведамленьне:",
        "feedback-subject": "Тэма:",
        "feedback-submit": "Даслаць",
+       "feedback-terms": "Я ўсьведамляю, што інфармацыя майго агента карыстальніка ўлучае зьвесткі пра броўзэр і вэрсію апэрацыйнай сыстэмы і будзе зьмешчаная ў вольным досягу разам з маім водгукам.",
+       "feedback-termsofuse": "Я згодны прадаставіць водгук у адпаведнасьці з Умовамі карыстаньня.",
        "feedback-thanks": "Дзякуй! Ваш водгук быў разьмешчаны на старонцы «[$2 $1]».",
+       "feedback-thanks-title": "Дзякуй!",
+       "feedback-useragent": "Агент удзельніка:",
        "searchsuggest-search": "Пошук",
        "searchsuggest-containing": "утрымлівае...",
        "api-error-badaccess-groups": "У Вас няма дазволу загружаць файлы ў гэтую вікі.",
        "special-characters-title-endash": "кароткі працяжнік",
        "special-characters-title-emdash": "доўгі працяжнік",
        "special-characters-title-minus": "мінус",
+       "mw-widgets-dateinput-no-date": "Дата не абраная",
        "mw-widgets-dateinput-placeholder-day": "ГГГГ-ММ-ДД",
        "mw-widgets-dateinput-placeholder-month": "ГГГГ-ММ",
        "mw-widgets-titleinput-description-new-page": "старонка яшчэ не існуе",
+       "mw-widgets-titleinput-description-redirect": "перанакіраваньне на $1",
        "api-error-blacklisted": "Калі ласка, выбярыце іншую, апісальную назву."
 }
index ecf26db..570f022 100644 (file)
        "youremail": "ইমেইল *",
        "username": "{{GENDER:$1|ব্যবহারকারী নাম}}:",
        "prefs-memberingroups": "{{PLURAL:$1|দলের|দলসমূহের}} {{GENDER:$2|সদস্য}}:",
-       "prefs-registration": "নিবন্ধের সময়:",
+       "prefs-registration": "নিবনà§\8dধনà§\87র à¦¸à¦®à¦¯à¦¼:",
        "yourrealname": "আসল নাম *",
        "yourlanguage": "ভাষা:",
        "yourvariant": "বিষয়বস্তুর ভাষার বিকল্প:",
        "wlheader-showupdated": "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে।",
        "wlnote": "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|<strong>$2</strong> ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ <strong>$1টি</strong> পরিবর্তন}} দেখানো হল।",
        "wlshowlast": "সর্বশেষ $1 ঘণ্টা $2 দিনে দেখাও",
+       "watchlistall2": "সমস্ত",
+       "wlshowtime": "সর্বশেষটি দেখাও:",
+       "wlshowhideminor": "অনুল্লেখ্য সম্পাদনা",
+       "wlshowhidebots": "বট",
+       "wlshowhideliu": "নিবন্ধিত ব্যবহারকারী",
+       "wlshowhideanons": "নামহীন ব্যবহারকারী",
+       "wlshowhidepatr": "পরীক্ষিত সম্পাদনা",
+       "wlshowhidemine": "আমার সম্পাদনা",
        "watchlist-options": "নজর তালিকা পছন্দসমূহ",
        "watching": "নজর রাখা হচ্ছে...",
        "unwatching": "নজর তুলে নেওয়া হচ্ছে...",
        "pageinfo-category-pages": "পাতার সংখ্যা",
        "pageinfo-category-subcats": "উপবিষয়শ্রেণীর সংখ্যা",
        "pageinfo-category-files": "ফাইলের সংখ্যা",
-       "markaspatrolleddiff": "পরà§\80à¦\95à§\8dষিত à¦¬à¦²ে চিহ্নিত করুন",
-       "markaspatrolledtext": "à¦\8fà¦\87 à¦¨à¦¿à¦¬à¦¨à§\8dধà¦\9fিà¦\95à§\87 à¦ªà¦°à§\80à¦\95à§\8dষিত à¦¬à¦²ে চিহ্নিত করুন",
+       "markaspatrolleddiff": "পরà§\80à¦\95à§\8dষিত à¦¹à¦¿à¦¸à§\87বে চিহ্নিত করুন",
+       "markaspatrolledtext": "à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦\9fি à¦ªà¦°à§\80à¦\95à§\8dষিত à¦¹à¦¿à¦¸à§\87বে চিহ্নিত করুন",
        "markedaspatrolled": "পরীক্ষিত বলে চিহ্নিত করুন",
        "markedaspatrolledtext": "আপনার নির্বাচিত সংস্করণ [[:$1]] পরীক্ষিত বলে চিহ্নিত করা হয়েছে।",
        "rcpatroldisabled": "সাম্প্রতিক পরিবর্তন প্যাট্রোল নিষ্ক্রিয়",
index b6209b1..f45e43c 100644 (file)
        "createaccountreason": "Abeg :",
        "createacct-reason": "Abeg",
        "createacct-reason-ph": "Perak emaoc'h o krouiñ ur gont all",
-       "createacct-captcha": "Kontroll surentez",
-       "createacct-imgcaptcha-ph": "Ebarzhit an destenn a welit a-us",
        "createacct-submit": "Krouiñ ho kont",
-       "createacct-another-submit": "Krouiñ ur gont all",
+       "createacct-another-submit": "Krouiñ ur gont",
        "createacct-benefit-heading": "{{SITENAME}} zo graet gant tud eveldoc'h.",
        "createacct-benefit-body1": "$1 {{PLURAL:$1|kemm}}",
        "createacct-benefit-body2": "pajenn{{PLURAL:$1|}}",
        "sig_tip": "Ho sinadur gant an deiziad",
        "hr_tip": "Liamm a-led (arabat implijout re)",
        "summary": "Diverrañ :",
-       "subject": "Danvez/titl:",
+       "subject": "Danvez :",
        "minoredit": "Kemm dister",
        "watchthis": "Evezhiañ ar pennad-mañ",
        "savearticle": "Enrollañ ar bajenn",
        "upload-too-many-redirects": "Re a adkasoù zo en URL-mañ.",
        "upload-http-error": "Ur fazi HTTP zo bet : $1",
        "upload-copy-upload-invalid-domain": "N'haller ket seveniñ enporzhiadennoù a-bell adalek an domani-mañ.",
+       "upload-dialog-button-cancel": "Nullañ",
+       "upload-dialog-button-done": "Graet",
+       "upload-dialog-button-save": "Enrollañ",
+       "upload-dialog-button-upload": "Enporzhiañ",
+       "upload-form-label-select-file": "Diuzañ ur restr",
+       "upload-form-label-infoform-title": "Munudoù",
+       "upload-form-label-infoform-name": "Anv",
+       "upload-form-label-infoform-description": "Deskrivadur",
+       "upload-form-label-usage-title": "Implij",
+       "upload-form-label-usage-filename": "Anv ar restr",
+       "foreign-structured-upload-form-label-infoform-categories": "Rummadoù",
+       "foreign-structured-upload-form-label-infoform-date": "Deiziad",
        "backend-fail-stream": "Dibosupl eo lenn ar restr $1.",
        "backend-fail-backup": "Dibosupl enrollañ ar restr $1.",
        "backend-fail-notexists": "N'eus ket eus ar restr $1.",
        "wlheader-showupdated": "E '''tev''' emañ merket ar pajennoù bet kemmet abaoe ar wezh ziwezhañ hoc'h eus sellet outo",
        "wlnote": "Setu aze {{PLURAL:$1|ar c'hemm diwezhañ|ar '''$1''' kemm diwezhañ}} c'hoarvezet e-kerzh an {{PLURAL:$2|eurvezh|'''$2''' eurvezh}} diwezhañ, d'an $3 da $4.",
        "wlshowlast": "Diskouez an $1 eurvezh $2 devezh diwezhañ",
+       "watchlistall2": "pep tra",
+       "wlshowhidemine": "ma c'hemmoù",
        "watchlist-options": "Dibarzhioù ar roll evezhiañ",
        "watching": "Heuliet...",
        "unwatching": "Paouez da evezhiañ...",
        "rollback-success": "Disteuler kemmoù $1; distreiñ da stumm diwezhañ $2.",
        "sessionfailure-title": "Fazi dalc'h",
        "sessionfailure": "Evit doare ez eus ur gudenn gant ho talc'h;\nNullet eo bet an ober-mañ a-benn en em wareziñ diouzh an tagadennoù preizhañ.\nKlikit war \"kent\" hag adkargit ar bajenn oc'h deuet drezi; goude klaskit en-dro.",
+       "changecontentmodel-title-label": "Anv ar bajenn",
+       "changecontentmodel-reason-label": "Abeg :",
        "protectlogpage": "Log_gwareziñ",
        "protectlogtext": "Setu aze a-is roll ar c'hemmoù degaset ouzh live gwareziñ ar pajennoù.\nSellet ouzh ar [[Special:ProtectedPages|roll ar pajennoù gwarezet]] evit kaout roll ar pajennoù gwarezet bremañ.",
        "protectedarticle": "{{Gender:.|en|he}} deus gwarezet [[$1]]",
        "cant-move-to-user-page": "Noc'h ket aotreet da adenvel ur bajenn gant anv hini un implijer all (nemet un ispajenn e vefe).",
        "cant-move-category-page": "N'oc'h ket aotreet da zilec'hiañ pajennoù rummad.",
        "cant-move-to-category-page": "N'oc'h ket aotreet da zilec'hiañ ur bajenn d'ur bajenn rummad.",
-       "newtitle": "anv nevez",
+       "newtitle": "Titl nevez :",
        "move-watch": "Evezhiañ ar bajenn-mañ",
        "movepagebtn": "Adenvel ar pennad",
        "pagemovedsub": "Dilec'hiadenn kaset da benn vat",
        "version-entrypoints": "URLoù ar poent mont e-barzh",
        "version-entrypoints-header-entrypoint": "Poent mont e-barzh",
        "version-entrypoints-header-url": "URL",
+       "version-libraries-library": "Levraoueg",
+       "version-libraries-version": "Stumm",
+       "version-libraries-license": "Aotre-implijout",
+       "version-libraries-description": "Deskrivadur",
        "redirect-legend": "Adkas d'ur restr pe d'ur bajenn",
        "redirect-submit": "Mont",
        "redirect-lookup": "Klask :",
        "tags-tag": "Anv ar valizenn",
        "tags-display-header": "Neuz e rolloù ar c'hemmoù",
        "tags-description-header": "Deskrivadur klok ar valizenn",
+       "tags-source-header": "Mammenn",
        "tags-active-header": "Oberiant ?",
        "tags-hitcount-header": "Kemmoù balizennet",
        "tags-active-yes": "Ya",
        "tags-active-no": "Ket",
        "tags-edit": "aozañ",
+       "tags-activate": "gweredekaat",
+       "tags-deactivate": "diweredekaat",
        "tags-hitcount": "$1 {{PLURAL:$1|kemm|kemm}}",
+       "tags-create-reason": "Abeg :",
+       "tags-create-submit": "Krouiñ",
+       "tags-delete-reason": "Abeg :",
+       "tags-activate-reason": "Abeg :",
+       "tags-activate-submit": "Gweredekaat",
+       "tags-deactivate-reason": "Abeg :",
+       "tags-deactivate-submit": "Diweredekaat",
+       "tags-edit-existing-tags-none": "''Hini ebet''",
+       "tags-edit-reason": "Abeg :",
        "comparepages": "Keñveriañ pajennoù",
        "compare-page1": "Pajenn 1",
        "compare-page2": "Pajenn 2",
        "logentry-newusers-create2": "Gant $1 eo bet krouet ar gont implijer $3",
        "logentry-newusers-byemail": "Krouet eo bet ar gont implijer $3 gant $1 ha kaset eo bet ar ger-tremen dre bostel",
        "logentry-newusers-autocreate": "{{GENDER:$2|Krouet}} eo bet kont $1 ent emgefre",
+       "logentry-protect-protect": "$1 {{GENDER:$2|en|he}} deus gwarezet $3 $4",
        "logentry-rights-autopromote": "$1 zo bet {{GENDER:$2|anvet}} ent emgefre a $4 da $5",
        "logentry-upload-upload": "$1 {{GENDER:$2|en deus|he deus}} ezporzhiet $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|en deus|he deus}} ezporzhiet ur stumm nevez eus $3",
        "rightsnone": "(netra)",
        "revdelete-summary": "diverradenn eus ar c'hemmoù",
        "feedback-adding": "Oc'h ouzhpennañ ho soñj war ar bajenn...",
+       "feedback-back": "Distreiñ",
        "feedback-bugcheck": "Eus ar c'hentañ ! Gwiriit mat n'emañ ket e-touez an [$1 draen diskoachet c'hoazh].",
        "feedback-bugnew": "Gwiriet em eus. Kemenn un draen nevez",
        "feedback-bugornote": "Ma'z oc'h prest da zeskrivañ ur gudenn deknikel dre ar munud e c'hallit [$1 kemenn un draen].\nA-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc'h evezhiadenn d'ar bajenn \"[$3 $2]\", a-gevret gant hoc'h anv implijer hag anv ar merdeer a rit gantañ.",
        "feedback-cancel": "Nullañ",
        "feedback-close": "Graet",
+       "feedback-error-title": "Fazi",
        "feedback-error1": "Fazi : disoc'h dianav a-berzh an API",
        "feedback-error2": "Fazi : N'eus ket bet gallet degemer ar c'hemmoù",
        "feedback-error3": "Fazi : respont ebet a-berzh an API",
        "feedback-subject": "Danvez :",
        "feedback-submit": "Kas",
        "feedback-thanks": "Ho trugarekaat ! Postet eo bet hoc'h evezhiadenn d'ar bajenn \"[$2 $1]\".",
+       "feedback-thanks-title": "Trugarez !",
        "searchsuggest-search": "Klask",
        "searchsuggest-containing": "ennañ...",
        "api-error-badaccess-groups": "N'oc'h ket aotreet da enporzhiañ restroù war ar wiki-mañ.",
index dc9f924..22b58fb 100644 (file)
        "versionrequiredtext": "Potrebna je verzija $1 MediaWikija da bi se koristila ova strana. Pogledaj [[Special:Version|verziju]].",
        "ok": "U redu",
        "retrievedfrom": "Preuzeto iz \"$1\"",
-       "youhavenewmessages": "Imate $1 ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|Imate}} $1 ($2).",
        "youhavenewmessagesfromusers": "Imate $1 od {{PLURAL:$3|drugog korisnika|$3 korisnika}} ($2).",
        "youhavenewmessagesmanyusers": "Imate $1 od mnogo korisnika ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|novu poruku|999=nove poruke}}",
        "passwordreset-emailerror-capture": "E-poruka za resetiranje lozinke, prikazano ispod, poslana je, ali slanje {{GENDER:$2|korisniku|korisnici}} nije uspjelo: $1",
        "changeemail": "Promjena ili uklanjanje e-adrese",
        "changeemail-header": "Ispunite sljedeći formular da biste promijenili adresu e-pošte. Ako želite ukloniti postojeću adresu e-pošte s vašeg korisničkog računa, pri ispunjavanju formulara, polje nove adrese e-pošte ostavite prazno.",
+       "changeemail-passwordrequired": "Morat ćete unijeti šifru da biste potvrdili ovu izmjenu.",
        "changeemail-no-info": "Morate biti prijavljeni za direktan pristup ovoj stranici.",
        "changeemail-oldemail": "Trenutna adresa e-pošte:",
        "changeemail-newemail": "Nova adresa e-pošte:",
+       "changeemail-newemail-help": "Ovo polje možete ostaviti prazno ako želite ukloniti svoju adresu e-pošte. Ako je uklonite, nećete moći resetirati zaboravljenu šifru niti primati e-poruke sa ove wiki.",
        "changeemail-none": "(ništa)",
-       "changeemail-password": "Vaša šifra za {{SITENAME}}:",
+       "changeemail-password": "Vaša šifra za {{GRAMMAR:akuzativ|{{SITENAME}}}}:",
        "changeemail-submit": "Promijeni adresu e-pošte",
        "changeemail-throttled": "Previše puta ste se pokušali prijaviti.\nMolimo Vas da sačekate $1 prije nego što pokušate ponovo.",
        "resettokens": "Resetovanje žetona",
        "newarticle": "(Novi)",
        "newarticletext": "Došli ste na stranicu koja još nema sadržaja.\n*Ako želite unijeti sadržaj, počnite tipkati u prozor ispod ovog teksta.\n*Ako Vam treba pomoć, idite na [$1 stranicu za pomoć].\n*Ako ste ovamo dospjeli slučajno, kliknite na dugme \"Nazad\" (''Back'') u Vašem internetskom pregledniku.",
        "anontalkpagetext": "----''Ovo je stranica za razgovor za anonimnog korisnika koji još nije napravio nalog ili ga ne koristi.\nZbog toga moramo da koristimo brojčanu IP adresu kako bismo identifikovali njega ili nju.\nTakvu adresu može dijeliti više korisnika.\nAko ste anonimni korisnik i mislite da su vam upućene nebitne primjedbe, molimo Vas da [[Special:UserLogin/signup|napravite nalog]] ili se [[Special:UserLogin|prijavite]] da biste izbjegli buduću zabunu sa ostalim anonimnim korisnicima.''",
-       "noarticletext": "Na ovoj stranici trenutno nema teksta.\nMožete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama.\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tražiti u povezanim zapisima] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.",
+       "noarticletext": "Na ovoj stranici trenutno nema teksta.\nMožete [[Special:Search/{{PAGENAME}}|tražiti naslov ove stranice]] na drugim stranicama.\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tražiti u povezanim zapisnicima] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.",
        "noarticletext-nopermission": "Trenutno nema teksta na ovoj stranici.\nMožete [[Special:Search/{{PAGENAME}}|tražiti ovaj naslov stranice]] na drugim stranicama ili <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti povezane zapisnike]</span>, ali nemate dozvolu da napravite ovu stranicu.",
        "missing-revision": "Uređivanje broj $1 na stranici \"{{FULLPAGENAME}}\" ne postoji.\n\nOvo se obično dešava kad pratite zastarjelu vezu na stranicu koja je obrisana.\nViše informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} protokolu brisanja].",
        "userpage-userdoesnotexist": "Korisnički račun \"<nowiki>$1</nowiki>\" nije registrovan.\nMolimo provjerite da li želite napraviti/izmijeniti ovu stranicu.",
        "permissionserrorstext-withaction": "Nemate dopuštenje da $2, iz {{PLURAL:$1|sljedećeg|sljedećih}} razloga:",
        "recreate-moveddeleted-warn": "'''Upozorenje: Postavljate stranicu koja je prethodno brisana.'''\n\nRazmotrite da li je nastavljanje uređivanja ove stranice u skladu s pravilima.\nOvdje je naveden zapisnik brisanja i premještanja s obrazloženjem:",
        "moveddeleted-notice": "Ova stranica je obrisana.\nZapisnik brisanja i premještanja stranice je prikazan ispod kao referenca.",
-       "log-fulllog": "Vidi potpuni zapisnik",
+       "log-fulllog": "Prikaži cijeli zapisnik",
        "edit-hook-aborted": "Izmjena je poništena putem interfejsa.\nNije ponuđeno nikakvo objašnjenje.",
        "edit-gone-missing": "Stranica se nije mogla osvježiti.\nIzgleda da je obrisana.",
        "edit-conflict": "Sukob izmjena.",
        "history-feed-item-nocomment": "$1 u $2",
        "history-feed-empty": "Tražena stranica ne postoji.\nMoguće da je izbrisana sa wikija, ili preimenovana.\nPokušajte [[Special:Search|pretražiti wiki]] za slične stranice.",
        "history-edit-tags": "Uredi oznake izabranih verzija",
-       "rev-deleted-comment": "(sažetak izmjene uklonjen)",
+       "rev-deleted-comment": "(uklonjen sažetak izmjene)",
        "rev-deleted-user": "(korisničko ime uklonjeno)",
        "rev-deleted-event": "(stavka zapisa obrisana)",
        "rev-deleted-user-contribs": "[korisničko ime ili IP adresa uklonjeni - izmjena sakrivena u spisku doprinosa]",
        "prefs-edits": "Broj izmjena:",
        "prefsnologintext2": "Prijavite se da biste sačuvali postavke.",
        "prefs-skin": "Tema",
-       "skin-preview": "Pregled",
+       "skin-preview": "Pregledaj",
        "datedefault": "Nije bitno",
        "prefs-labs": "Eksperimentalne mogućnosti",
        "prefs-user-pages": "Korisničke stranice",
        "allowemail": "Dozvoli e-poštu od ostalih korisnika",
        "prefs-searchoptions": "Traži",
        "prefs-namespaces": "Imenski prostori",
-       "default": "standardno",
+       "default": "predodređeno",
        "prefs-files": "Datoteke",
        "prefs-custom-css": "Prilagođeni CSS",
        "prefs-custom-js": "Prilagođeni JavaScript",
        "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.",
+       "logempty": "Nema zatraženih stavki u zapisniku.",
        "log-title-wildcard": "Traži naslove koji počinju ovim tekstom",
        "showhideselectedlogentries": "Pokaži/sakrij izabrane zapise u evidenciji",
        "log-edit-tags": "Uredi oznake izabranih zapisničkih unosa",
        "unwatchthispage": "Prestani pratiti",
        "notanarticle": "Nije članak",
        "notvisiblerev": "Revizija je obrisana",
-       "watchlist-details": "{{PLURAL:$1|$1 stranica|$1 stranice|$1 stranica }} na vašem spisku praćenja, ne računajući posebno stranice za razgovor.",
+       "watchlist-details": "Imate {{PLURAL:$1|$1 stranica|$1 stranice|$1 stranica}} na Vašem spisku praćenja, ne računajući posebno stranice za razgovor.",
        "wlheader-enotif": "Uključeno je obavještenje e-poštom.",
-       "wlheader-showupdated": "Stranice koje su izmijenjene otkad ste ih posljednji put posjetili su prikazane <strong>podebljanim slovima</strong>.",
+       "wlheader-showupdated": "Stranice koje su izmijenjene otkad ste ih posljednji put posjetili prikazane su <strong>podebljanim slovima</strong>.",
        "wlnote": "Ispod {{PLURAL:$1|je najskorija izmjena|su <strong>$1</strong> najskorije izmjene|<strong>$1</strong> najskorijih izmjena}} načinjenih {{PLURAL:$2|posljednjeg sata|u posljednjih <strong>$2</strong> sata|u posljednjih <strong>$2</strong> sati}}, od $3, $4.",
        "wlshowlast": "Prikaži posljednjih $1 sati $2 dana",
+       "watchlistall2": "sve",
        "watchlist-options": "Opcije spiska praćenja",
        "watching": "Pratim...",
        "unwatching": "Ne pratim...",
        "sp-contributions-logs": "zapisnici",
        "sp-contributions-talk": "razgovor",
        "sp-contributions-userrights": "postavke korisničkih prava",
-       "sp-contributions-blocked-notice": "Ovaj korisnik je trenutno blokiran. Posljednje stavke zapisnika blokiranja možete pogledati ispod:",
+       "sp-contributions-blocked-notice": "{{GENDER:$1|Ovaj korisnik|Ova korisnica}} je trenutno {{GENDER:$1|blokiran|blokirana}}.\nPosljednju stavku zapisnika blokiranja možete pogledati ispod:",
        "sp-contributions-blocked-notice-anon": "Ova IP adresa je trenutno blokirana.\nPosljednje stavke zapisnika blokiranja možete pogledati ispod:",
        "sp-contributions-search": "Pretraži doprinose",
        "sp-contributions-username": "IP adresa ili korisničko ime:",
        "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 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.",
+       "movepagetalktext": "Ako označite ovu kutijicu, odgovarajuća stranica za razgovor, ako postoji, automatski će biti premještena na novi naziv, osim ako već postoji sadržaj na odredišnoj stranici za razgovor.\n\nU tom slučaju, morat ćete ručno premjestiti ili prekopirati stranicu ako to želite.",
        "moveuserpage-warning": "'''Upozorenje:''' Premještate korisničku stranicu. Molimo da zapamtite da će se samo stranica premjestiti a korisnik se ''neće'' preimenovati.",
        "movecategorypage-warning": "<strong>Upozorenje:</strong> Premještate stranicu kategorije. Imajte na umu da će samo stranica biti premještena i da sve stranice u staroj kategoriji <em>neće</em> biti ponovo kategorirane u novu kategoriju.",
        "movenologintext": "Morate biti registrovani korisnik i [[Special:UserLogin|prijavljeni]] da biste premjestili stranicu.",
        "duplicate-displaytitle": "<strong>Upozorenje:</strong> Prikazivani naslov \"$2\" poništava prethodni naslov \"$1\".",
        "invalid-indicator-name": "<strong>Greška:</strong> <code>Imena</code> pokazatelja stanja strance ne smiju biti prazna.",
        "version": "Verzija",
-       "version-extensions": "Instalirana proširenja (ekstenzije)",
-       "version-skins": "Instalirane kože",
+       "version-extensions": "Instalirana proširenja",
+       "version-skins": "Instalirane teme",
        "version-specialpages": "Posebne stranice",
        "version-parserhooks": "Kuke parsera",
        "version-variables": "Promjenjive",
        "version-other": "Ostalo",
        "version-mediahandlers": "Upravljači medije",
        "version-hooks": "Kuke",
-       "version-parser-extensiontags": "Parser proširenja (''tagovi'')",
+       "version-parser-extensiontags": "Oznake proširenja parsera",
        "version-parser-function-hooks": "Kuke parserske funkcije",
        "version-hook-name": "Naziv kuke",
        "version-hook-subscribedby": "Pretplaćeno od",
        "version-version": "($1)",
        "version-no-ext-name": "[nema imena]",
-       "version-license": "Licenca",
+       "version-license": "MediaWiki licenca",
        "version-ext-license": "Licenca",
        "version-ext-colheader-name": "Proširenje",
        "version-skin-colheader-name": "Tema",
        "version-license-not-found": "Za ovo proširenje nije pronađena informacija o licenci.",
        "version-credits-title": "Zasluge za $1",
        "version-credits-not-found": "Za ovo proširenje nisu pronađene informacije o zaslugama.",
-       "version-poweredby-credits": "Ova wiki je zasnovana na '''[https://www.mediawiki.org/ MediaWiki]''', autorska prava zadržana © 2001-$1 $2.",
+       "version-poweredby-credits": "Ova wiki je zasnovana na <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, autorska prava © 2001-$1 $2.",
        "version-poweredby-others": "ostali",
        "version-poweredby-translators": "translatewiki.net prevodioci",
        "version-credits-summary": "Željeli bismo se zahvaliti sljedećim ljudima na njihovom doprinosu [[Special:Version|MediaWikiju]].",
        "version-software": "Instalirani softver",
        "version-software-product": "Proizvod",
        "version-software-version": "Verzija",
-       "version-entrypoints": "URL Adrese ulazne tačke",
+       "version-entrypoints": "Adrese ulaznih tačaka",
        "version-entrypoints-header-entrypoint": "Ulazna tačka",
        "version-entrypoints-header-url": "URL",
        "version-libraries": "Instalirane biblioteke",
        "intentionallyblankpage": "Ova stranica je namjerno ostavljena prazna",
        "external_image_whitelist": " #Ostavite ovu liniju onakva kakva je<pre>\n#Stavite obične fragmente opisa (samo dio koji ide između //) ispod\n#Ovi će biti spojeni sa URLovima sa vanjskih (eksternih) slika\n#One koji se spoje biće prikazane kao slike, u suprotnom će se prikazati samo link\n#Linije koje počinju sa # se tretiraju kao komentari\n#Ovo ne razlikuje velika i mala slova\n\n#Stavite sve regex fragmente iznad ove linije. Ostavite ovu liniju onakvu kakva je</pre>",
        "tags": "Oznake valjane izmjene",
-       "tag-filter": "Filter za [[Special:Tags|oznake]]:",
+       "tag-filter": "Filter [[Special:Tags|oznaka]]:",
        "tag-filter-submit": "Filter",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|oznaka|oznake}}]]: $2)",
        "tags-title": "Oznake",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|označio|označila}} je izmjenu $4 stranice $3 pregledanom",
        "logentry-patrol-patrol-auto": "$1 automatski je {{GENDER:$2|označio|označila}} verziju $4 stranice $3 pregledanom",
        "logentry-newusers-newusers": "Korisnički račun $1 je {{GENDER:$2|napravljen}}",
-       "logentry-newusers-create": "Korisnički račun $1 je {{GENDER:$2|napravljen}}",
+       "logentry-newusers-create": "$1 {{GENDER:$2|napravio|napravila}} je korisnički račun",
        "logentry-newusers-create2": "$1 je {{GENDER:$2|napravio|napravila}} korisnički račun $3",
        "logentry-newusers-byemail": "Korisnički račun $3 je {{GENDER:$2|napravio|napravila}} $1 i lozinka/šifra je poslana putem e-maila",
        "logentry-newusers-autocreate": "Korisnički račun $1 automatski je {{GENDER:$2|napravljen}}",
        "api-error-badaccess-groups": "Nemate ovlasti da postavljate datoteke na ovoj wiki.",
        "api-error-badtoken": "Unutrašnja greška: token nije ispravan.",
        "api-error-copyuploaddisabled": "Postavljanja putem URL-a su onemogućena na ovom serveru.",
-       "api-error-duplicate": "Već postoji {{PLURAL:$1|druga datoteka|druge datoteke}} na ovoj stranici sa istim sadržajem",
+       "api-error-duplicate": "Već postoji {{PLURAL:$1|druga datoteka|druge datoteke}} na ovoj stranici s istim sadržajem.",
        "api-error-duplicate-archive": "{{PLURAL:$1|Postojala je druga datoteka|Postojale su neke druge datoteke}} na sajtu sa istim sadržajem, ali {{PLURAL:$1|je obrisana|su obrisane}}.",
        "api-error-empty-file": "Datoteka koju ste poslali je bila prazna.",
        "api-error-emptypage": "Stvaranje novih praznih stranica nije dozvoljeno.",
index bac086c..5c7439c 100644 (file)
        "wlheader-showupdated": "Les pàgines que s'han canviat des de la vostra darrera visita es mostren en '''negreta'''.",
        "wlnote": "A sota hi ha {{PLURAL:$1|el darrer canvi|els darrers <strong>$1</strong> canvis}} en {{PLURAL:$2|la darrera hora|les <strong>$2</strong> darreres hores}}, a $4 del $3.",
        "wlshowlast": "Mostra les darreres $1 hores, els darrers $2 dies",
+       "watchlistall2": "totes",
        "watchlist-options": "Opcions de la llista de seguiment",
        "watching": "S'està vigilant...",
        "unwatching": "S'està desatenent...",
index 2a4c1d7..7190ba0 100644 (file)
        "november-date": "Ноябрь $1",
        "december-date": "Декабрь $1",
        "pagecategories": "{{PLURAL:$1|1=Категори|Категореш}}",
-       "category_header": "АгӀонаш категоречохь «$1»",
+       "category_header": "«$1» категори чура агӀонаш",
        "subcategories": "Бухаркатегореш",
        "category-media-header": "Файлаш оцу категори чохь «$1»",
        "category-empty": "''ХӀара категори хӀинца яьсса ю.''",
        "password-change-forbidden": "Хьан йиш яц хӀокху вики чохь пароль хийца.",
        "externaldberror": "Арахьара хаамийн базан гӀоьнца аутентификаци ечу хенахь гӀалат даьлла я хьа дӀаяздаран хийцам бан бакъонаш яц.",
        "login": "Системин довзийтар",
-       "nav-login-createaccount": "СиÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85олла",
+       "nav-login-createaccount": "Ð\94овзийÑ\82аÑ\80 / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85оллаÑ\80",
        "userlogin": "Довзийтар я декъашхочун дӀаяздар кхоллар",
        "userloginnocreate": "Довзийта",
        "logout": "Болх дӀаберзор",
        "saveusergroups": "Декъашхочун бакъонаш Ӏалашъян",
        "userrights-groupsmember": "Декъашхо:",
        "userrights-groupsmember-auto": "Бакъонашан тоба:",
-       "userrights-groups-help": "Ð¥Ñ\8cона Ñ\85ийÑ\86а Ð»Ð¾ Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð±Ð°ÐºÑ\8aонаÑ\88.\n* Ð\91акÑ\8aона Ñ\86Ó\80еÑ\80а Ñ\8eÑ\85Ñ\85еÑ\85Ñ\8c Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾ ÐµÐ»Ð°Ñ\85Ñ\8c, Ñ\86Ñ\83на Ð¸ Ð±Ð°ÐºÑ\8aо Ð¹Ð¾Ð»Ñ\83Ñ\88 Ñ\8e.\n* Ð\91илгало Ñ\8fÑ\86аÑ\85Ñ\8c â\80\94 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð¸ Ð±Ð°ÐºÑ\8aо Ñ\8fÑ\86.\n* Ð\97нако * билгала до ахьа бакъо еллачул тӀаьхьа хьона и дӀаяккха цалуш хилар.",
+       "userrights-groups-help": "Ð¥Ñ\8cона Ñ\85ийÑ\86а Ð»Ð¾ Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð±Ð°ÐºÑ\8aонаÑ\88.\n* Ð\91акÑ\8aона Ñ\86Ó\80еÑ\80а Ñ\8eÑ\85Ñ\85еÑ\85Ñ\8c Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾ ÐµÐ»Ð°Ñ\85Ñ\8c, Ñ\86Ñ\83на Ð¸ Ð±Ð°ÐºÑ\8aо Ð¹Ð¾Ð»Ñ\83Ñ\88 Ñ\8e.\n* Ð\91илгало Ñ\8fÑ\86аÑ\85Ñ\8c â\80\94 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87Ñ\83н Ð¸ Ð±Ð°ÐºÑ\8aо Ñ\8fÑ\86.\n* Ð¥Ñ\8cаÑ\8cÑ\80ко * билгала до ахьа бакъо еллачул тӀаьхьа хьона и дӀаяккха цалуш хилар.",
        "userrights-reason": "Бахьана:",
        "userrights-no-interwiki": "Хьан бакъо яц декъашхой бакъо хийца кхечу википеди чохь.",
        "userrights-nologin": "Куьйгалхочунна бакъо йолу [[Special:UserLogin|дӀаяздарца]] ло декъашхочун бакъо.",
        "linkstoimage": "ХӀара файл лахарчу {{PLURAL:$1|$1 агӀонгахь}} лелош ю:",
        "linkstoimage-more": "$1 дукха {{PLURAL:$1|агӀонаш}} чохь лелош ю хӀара файл.\nХӀокху могӀам чохь {{PLURAL:$1|гойтуш ю $1 хьажорг|гойтуш ю $1 хьажоргаш}} хӀокху файланца.\nКхин хьажа йиш ю [[Special:WhatLinksHere/$2|буьззина могӀаме]].",
        "nolinkstoimage": "АгӀонашчохь файл лелош яц.",
-       "linkstoimage-redirect": "$1 (Ñ\84айлан Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80аг) $2",
+       "linkstoimage-redirect": "$1 (файлан дӀасахьажорг) $2",
        "duplicatesoffile": "{{PLURAL:$1|Лахара файл ю дубликат|Лахара $1 файлаш ю дубликаташ}} хӀокху файлан ([[Special:FileDuplicateSearch/$2|мадарра]]):",
        "sharedupload": "ХӀара хӀума оцун $1 чура ю иза хила мега лелош кхечу проекташкахь.",
        "sharedupload-desc-here": "ХӀара файл $1 чура ю и лело йиш ю массо проекташкахь.\nЦунна хаам гайтина лахахь. [$2 Файл Викигуламехь]",
        "usercreated": "{{GENDER:$3|дӀавазвелла|дӀаязелла}} $1 $2",
        "newpages": "Керла агӀонаш",
        "newpages-username": "Декъашхо:",
-       "ancientpages": "ТÓ\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80леÑ\80аÑ\87Ñ\83 Ñ\85енаÑ\86а Ð½Ð¸Ñ\81бина Ñ\8fззамаш",
+       "ancientpages": "ШиÑ\80а Ð°Ð³Ó\80онаш",
        "move": "ЦӀе хийца",
        "movethispage": "ХӀокху агӀон цӀе хийца",
        "unusedimagestext": "Лахара файлаш цхьана агӀонгахь лелош яц.\nДехар до, тидаме бе, кхин йолу веб-сайташ а лелош хила мега нийсса йогӀу хьажорг (URL), хӀокху могӀаме йогӀуш ялахь а иза хила мега жигара лелош.",
        "wlheader-showupdated": "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
        "wlnote": "Гойту <strong>$2</strong> {{plural:$2|сахьтчохь}} бина {{PLURAL:$1|тӀеххьара '''$1''' хийцам}}, хан $3 $4",
        "wlshowlast": "Гайта тӀаьххьара $1 сахьт $2 де",
+       "watchlistall2": "массо",
        "watchlist-options": "Тергаме могlаман гlирс нисбар",
        "watching": "Тергаме мlогаман юкъаяккха…",
        "unwatching": "Тергаме могӀанан чура дӀаяккхар…",
        "imagetypemismatch": "Файлан керла шоръелла оцунна тайпанца йогӀуш яц",
        "imageinvalidfilename": "Файлан цӀе гӀалате ю",
        "fix-double-redirects": "Хьалхара цӀе йолу дӀасахьажорг нисъян",
-       "move-leave-redirect": "Ó\80адйиÑ\82а Ð´Ó\80аÑ\81аÑ\85Ñ\8cажоÑ\80аг",
+       "move-leave-redirect": "Ӏадйита дӀасахьажорг",
        "protectedpagemovewarning": "'''ДӀахьедар.''' ХӀара агӀо ларйина ю; цӀе хийца я нисъян а бакъо йолуш куьйгалхой бен бац.\nЛахахь тептаро балийна тӀаьхьаралера дӀаязбина хаам:",
        "semiprotectedpagemovewarning": "'''ДӀахьедо.''' ХӀара агӀо ларйина ю; дӀабазбиначу декъашхошка бе цӀе хийцалуш яц.\nЛахахьа тептаро балийна тӀаьххьаралера дӀаязбина хаам:",
        "move-over-sharedrepo": "== Файл йолуш ю ==\nВикигулам чохь йолуш ю [[:$1]]. ХӀокху файлан цӀе хийцича Викигулам чуьраниг дӀакъовлу.",
        "specialpages-note": "* Гуттарлера белха агlонаш.\n* <strong class=\"mw-specialpagerestricted\">Кlеззиг таронаш йолу леррина агlонаш.</strong>",
        "specialpages-group-maintenance": "Техникийн хьашташ кхочушдаран хаамаш",
        "specialpages-group-other": "Кхин белхан агӀонаш",
-       "specialpages-group-login": "СиÑ\81Ñ\82емин Ñ\87Ñ\83гÓ\80о / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85олла",
+       "specialpages-group-login": "Ð\94овзийÑ\82аÑ\80 / Ð´Ó\80аÑ\8fздаÑ\80 ÐºÑ\85оллаÑ\80",
        "specialpages-group-changes": "Керла нисдарш а, тéптарш а",
        "specialpages-group-media": "Медиа-гӀирсийн а, чуяхарийн а хаамаш",
        "specialpages-group-users": "Декъашхой а, бакъонаш а",
index 7c97514..5d5f538 100644 (file)
        "wlheader-showupdated": "‏ئەو پەڕانە کە لە پاش دوایین سەردانت دەستکاری کراون بە <strong>ئەستوور</strong> نیشان دراون.",
        "wlnote": "خوارەوە {{PLURAL:$1|دوایین گۆڕانکارییە|دوایین <strong>$1</strong> گۆڕانکارییە}} لە دوایین {{PLURAL:$2|کاتژمێر|<strong>$2</strong> کاتژمێر}}دا ھەتا $4ی $3.",
        "wlshowlast": "دوایین $1 کاتژمێری $2 ڕۆژ نیشان بدە",
+       "watchlistall2": "ھەموو",
        "watchlist-options": "ھەڵبژاردەکانی لیستی چاودێری",
        "watching": "چاودێری...",
        "unwatching": "لابردنی چاودێری...",
        "protect-level-sysop": "تەنیا بە بەڕێوەبەران ڕێگە بدە",
        "protect-summary-cascade": "تاڤگەیی",
        "protect-expiring": "بەسەردەچێ لە ڕێکەوتی $1 (UTC)",
-       "protect-expiring-local": "بە سەر دەچێ لە $1",
+       "protect-expiring-local": "بەسەردەچێ لە $1",
        "protect-expiry-indefinite": "بێسنوور",
        "protect-cascade": "پەڕەکانی نێو ئەم پەڕە بپارێزە (پاراستنی تاڤگەیی)",
        "protect-cantedit": "ناتوانی ئاستی پاراستنی ئەم پەڕە بگۆڕی، چونکوو تۆ ئیجازەی ئەم کارەت نیە.",
        "logentry-newusers-create2": "ھەژماری بەکارھێنەریی $3 لە لایەن $1 {{GENDER:$2|دروست کرا}}",
        "logentry-newusers-byemail": "ھەژماری بەکارھێنەریی $3 لە لایەن $1 {{GENDER:$2|دروست کرا}} و تێپەڕوشە بە ئیمەیل نێردرا",
        "logentry-newusers-autocreate": "ھەژماری بەکارھێنەریی $1 بە شێوەی خۆگەڕ {{GENDER:$2|دروست کرا}}",
+       "logentry-protect-protect": "$1 $3ی {{GENDER:$2|پاراست}} $4",
+       "logentry-protect-modify": "$1 ئاستی پاراستنی $3ی {{GENDER:$2|گۆڕی}} $4",
        "logentry-rights-rights": "$1 ئەندامێتیی $3ی لە $4 بۆ $5 {{GENDER:$2|گۆڕی}}",
        "logentry-upload-upload": "$1 $3ی {{GENDER:$2|بار کرد}}",
        "logentry-upload-overwrite": "$1 وەشانێکی نوێی $3ی {{GENDER:$2|بار کرد}}",
index c2e8831..522ff95 100644 (file)
        "passwordreset-emailtext-ip": "Někdo (patrně vy, z IP adresy $1) zažádal na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu účtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší za {{PLURAL:$5|jeden den|$5 dny|$5 dnů}}.\nNyní byste se měli přihlásit a zvolit si nové heslo. Pokud tento požadavek poslal někdo jiný nebo jste si na své staré heslo vzpomněli, a nechcete ho tedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
        "passwordreset-emailtext-user": "{{gender:$1|Uživatel|Uživatelka}} $1 na {{grammar:6sg|{{SITENAME}}}} {{gender:$1|zažádal|zažádala}} na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu\núčtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
        "passwordreset-emailelement": "Uživatelské jméno: \n$1\n\nDočasné heslo: \n$2",
-       "passwordreset-emailsent": "Pokud je to registrovaná emailová adresa k vašemu účtu, tak vám bude odeslán požadavak pro získání nového hesla.",
+       "passwordreset-emailsent": "Pokud je to registrovaná emailová adresa k vašemu účtu, tak vám bude odeslán požadavek pro získání nového hesla.",
        "passwordreset-emailsent-capture": "Byl odeslán e-mail pro získání nového hesla, který je zobrazen níže.",
        "passwordreset-emailerror-capture": "Byl vygenerován e-mail pro získání nového hesla, který je zobrazen níže, ale {{GENDER:$2|uživateli|uživatelce}} se ho nepodařilo odeslat: $1",
        "changeemail": "Změna nebo odstranění e-mailové adresy",
        "rcshowhideminor": "$1 malé editace",
        "rcshowhideminor-show": "Zobrazit",
        "rcshowhideminor-hide": "Skrýt",
-       "rcshowhidebots": "$1 roboty",
+       "rcshowhidebots": "$1 boty",
        "rcshowhidebots-show": "Zobrazit",
        "rcshowhidebots-hide": "Skrýt",
        "rcshowhideliu": "$1 registrované uživatele",
        "wlheader-showupdated": "Stránky, které se změnily od vaší poslední návštěvy, jsou zobrazeny '''tučně'''.",
        "wlnote": "Níže {{PLURAL:$1|je poslední změna|jsou poslední <strong>$1</strong> změny|je posledních <strong>$1</strong> změn}} za {{PLURAL:$2|poslední hodinu|poslední <strong>$2</strong> hodiny|posledních <strong>$2</strong> hodin}} do $4, $3.",
        "wlshowlast": "Ukázat posledních $1 hodin $2 dnů",
+       "watchlistall2": "všechny",
+       "watchlist-hide": "Skrýt",
+       "wlshowtime": "Ukázat posledních:",
+       "wlshowhideminor": "malé editace",
+       "wlshowhidebots": "boty",
+       "wlshowhideliu": "registrované uživatele",
+       "wlshowhideanons": "anonymní uživatele",
+       "wlshowhidepatr": "prověřené editace",
+       "wlshowhidemine": "moje editace",
        "watchlist-options": "Možnosti sledovaných stránek",
        "watching": "Přidávám na seznam sledovaných stránek…",
        "unwatching": "Odebírám ze seznamu sledovaných stránek…",
index 9b1f159..b48fe02 100644 (file)
        "grouppage-suppress": "{{ns:project}}:Тĕрĕслекенсем",
        "rightslogtext": "Ку хутшăнакансен прависене улăштарнисен журналĕ.",
        "enhancedrc-history": "истори",
-       "recentchanges": "Улшăнусем",
+       "recentchanges": "Улăшăннисем",
        "recentchanges-legend": "Çĕнĕ улшăнусен ĕнерлевĕ",
        "recentchanges-label-newpage": "Çĕнĕ страница тунă пулнă",
        "recentchanges-label-minor": "Нумайах мар улăштарни",
        "unwatch": "ан сăна",
        "unwatchthispage": "Сăнама пăрах",
        "notanarticle": "Ку статья мар",
+       "watchlistall2": "пурте",
        "watching": "Сăнамаллисем шутне хушасси…",
        "unwatching": "Сăнав ят-йышĕнчен кăларса пăрахасси…",
        "enotif_reset": "Пур страницăсене те пăхнă пек палăрт",
index ae34411..0281695 100644 (file)
        "tog-underline": "Tanlinellu cysylltiadau:",
        "tog-hideminor": "Cuddio golygiadau bychain yn rhestr y newidiadau diweddar",
        "tog-hidepatrolled": "Cuddio golygiadau sydd wedi derbyn ymweliad patrôl rhag y rhestr newidiadau diweddar",
-       "tog-newpageshidepatrolled": "Cuddio tudalennau sydd wedi derbyn ymweliad patrôl rhag rhestr y tudalennau newydd",
+       "tog-newpageshidepatrolled": "Cuddio tudalennau a batroliwyd o'r rhestr y tudalennau newydd",
+       "tog-hidecategorization": "Cuddiwych y categoriau",
        "tog-extendwatchlist": "Ehangu'r rhestr wylio i ddangos pob golygiad yn hytrach na'r diweddaraf yn unig",
-       "tog-usenewrc": "Yn dangos newidiadau i un dudalen gyda'i gilydd - ar 'newidiadau diweddar' a'r 'rhestr wylio'",
+       "tog-usenewrc": "Grwpio'r newidiadau bob yn ddalen yn y 'newidiadau diweddar' a'r 'rhestr wylio'",
        "tog-numberheadings": "Rhifo penawdau'n awtomatig",
        "tog-showtoolbar": "Dangos y bar offer golygu",
        "tog-editondblclick": "Golygu tudalennau wrth glicio ddwywaith",
@@ -31,6 +32,7 @@
        "tog-watchdefault": "Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu golygu",
        "tog-watchmoves": "Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu symud",
        "tog-watchdeletion": "Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu dileu",
+       "tog-watchrollback": "Ychwanegwch ddalennau dw i wedi perfformio 'rollback' i fy ffefrynnau",
        "tog-minordefault": "Marcio pob golygiad fel un bach yn ddiofyn",
        "tog-previewontop": "Dangos y rhagolwg cyn y blwch golygu",
        "tog-previewonfirst": "Dangos rhagolwg ar y golygiad cyntaf",
@@ -49,6 +51,7 @@
        "tog-watchlisthideliu": "Cuddio golygiadau gan ddefnyddwyr mewngofnodedig rhag y rhestr wylio",
        "tog-watchlisthideanons": "Cuddio golygiadau gan ddefnyddwyr anhysbys rhag y rhestr wylio",
        "tog-watchlisthidepatrolled": "Cuddio golygiadau sydd wedi derbyn ymweliad patrôl rhag y rhestr wylio",
+       "tog-watchlisthidecategorization": "Cuddiwych y categoriau",
        "tog-ccmeonemails": "Anfon copi ataf pan anfonaf e-bost at ddefnyddiwr arall",
        "tog-diffonly": "Peidio â dangos cynnwys y dudalen islaw'r gymhariaeth ar dudalennau cymharu",
        "tog-showhiddencats": "Dangos categorïau cuddiedig",
        "disclaimers": "Gwadiadau",
        "disclaimerpage": "Project:Gwadiad Cyffredinol",
        "edithelp": "Help gyda golygu",
+       "helppage-top-gethelp": "Cymorth",
        "mainpage": "Hafan",
        "mainpage-description": "Hafan",
        "policy-url": "Project:Policy",
        "nstab-template": "Nodyn",
        "nstab-help": "Cymorth",
        "nstab-category": "Categori",
+       "mainpage-nstab": "Hafan",
        "nosuchaction": "Dim gweithred o'r fath",
        "nosuchactiontext": "Nid yw'r weithred sydd ynghlwm wrth y cyfeiriad URL yn un dilys.\nEfallai eich bod wedi camdeipio'r URL, neu eich bod wedi dilyn cyswllt gwallus.\nNeu efallai fod byg ar {{SITENAME}}.",
        "nosuchspecialpage": "Does dim tudalen arbennig o'r fath",
        "readonly_lag": "Mae'r databas wedi'i gloi'n awtomatig tra bod y gwas-weinyddion yn asio gyda'r prif weinydd",
        "internalerror": "Gwall mewnol",
        "internalerror_info": "Gwall mewnol: $1",
+       "internalerror-fatal-exception": "Cafwyd nam difrifol o fath \"$1\"",
        "filecopyerror": "Wedi methu copïo'r ffeil \"$1\" i \"$2\".",
        "filerenameerror": "Wedi methu ail-enwi'r ffeil '$1' yn '$2'.",
        "filedeleteerror": "Wedi methu dileu'r ffeil \"$1\".",
        "createaccountreason": "Rheswm:",
        "createacct-reason": "Rheswm",
        "createacct-reason-ph": "Pam ydych yn creu cyfrif arall?",
-       "createacct-captcha": "Gwiriad diogelwch",
-       "createacct-imgcaptcha-ph": "Nodwch y testun a welwch uchod",
        "createacct-submit": "Creer y cyfrif",
        "createacct-another-submit": "Creer y cyfrif ychwanegol",
        "createacct-benefit-heading": "Ffrwyth llafur pobl fel chi yw {{SITENAME}}.",
        "prefs-watchlist-token": "Tocyn y rhestr wylio:",
        "prefs-misc": "Amrywiol",
        "prefs-resetpass": "Newid y cyfrinair",
-       "prefs-changeemail": "Newid y cyfeiriad e-bost",
+       "prefs-changeemail": "Newid neu ddiddymu'r cyfeiriad e-bost",
        "prefs-setemail": "Gosod cyfeiriad e-bost",
        "prefs-email": "E-bostio",
        "prefs-rendering": "Ymddangosiad",
        "rows": "Rhesi:",
        "columns": "Colofnau:",
        "searchresultshead": "Chwilio",
-       "stub-threshold": "Trothwy ar gyfer fformatio <a href=\"#\" class=\"stub\">cyswllt eginyn</a> (beitiau):",
+       "stub-threshold": "Trothwy ar gyfer fformatio cyswllt egin ($1):",
+       "stub-threshold-sample-link": "sampl",
        "stub-threshold-disabled": "Analluogwyd",
        "recentchangesdays": "Nifer y diwrnodau i'w dangos yn 'newidiadau diweddar':",
        "recentchangesdays-max": "(hyd at $1 {{PLURAL:$1||diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}})",
        "prefs-help-recentchangescount": "Mae hwn yn cynnwys newidiadau diweddar, hanesion tudalennau, a logiau.",
        "prefs-help-watchlist-token2": "Dyma'r tocyn cudd i borthiant gwe eich rhestr wylio.\nBydd unrhyw un sy'n gwybod hwn yn gallu darllen eich rhestr wylio, felly peidiwch a'i roi i neb.\n[[Special:ResetTokens|Cliciwch fan hyn os oes angen ailosod y tocyn]].",
        "savedprefs": "Mae eich dewisiadau wedi cael eu cadw.",
+       "savedrights": "Nid yw hawliau {{GENDER:$1|$1}} wedi'u harbed.",
        "timezonelegend": "Ardal amser:",
        "localtime": "Amser lleol:",
        "timezoneuseserverdefault": "Defnyddio'r amser yn ôl y wici ($1)",
        "badsig": "Llofnod crai annilys; gwiriwch y tagiau HTML.",
        "badsiglength": "Mae'ch llysenw'n rhy hir.\nGall fod hyd at $1 {{PLURAL:$1|llythyren|lythyren|lythyren|llythyren|llythyren|llythyren}} o hyd.",
        "yourgender": "Sut yr hoffech chi gael eich disgrifio:",
-       "gender-unknown": "Mae'n well gennyf beidio nodi",
+       "gender-unknown": "Pan gyfeirir atoch, bydd y meddalwedd yn defnyddio termau niwtral, pan fo hynny'n bosib",
        "gender-male": "Mae e'n golygu tudalennau wici",
        "gender-female": "Mae hi'n golygu tudalennau wici",
        "prefs-help-gender": "Nid oes rhaid llanw'r dewis yma. \nMae'r meddalwedd yn defnyddio hwn i gyfeirio atoch ac i'ch cyfarch yn ôl eich rhyw.\nMae'r wybodaeth hon ar gael i'r cyhoedd.",
        "userrights-lookup-user": "Rheoli grwpiau defnyddiwr",
        "userrights-user-editname": "Rhowch enw defnyddiwr:",
        "editusergroup": "Golygu Grwpiau Defnyddwyr",
-       "editinguser": "Newid galluoedd y defnyddiwr '''[[User:$1|$1]]''' $2",
+       "editinguser": "Newid galluoedd {{GENDER:$1|y defnyddiwr}} <strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "Golygu grwpiau defnyddwyr",
        "saveusergroups": "Cadw'r Grwpiau Defnyddwyr",
        "userrights-groupsmember": "Yn aelod o:",
        "group-bot": "Botiau",
        "group-sysop": "Gweinyddwyr",
        "group-bureaucrat": "Biwrocratiaid",
-       "group-suppress": "Goruchwylwyr",
+       "group-suppress": "Gwastrodwyr",
        "group-all": "(pawb)",
        "group-user-member": "{{GENDER:$1|defnyddiwr}}",
        "group-autoconfirmed-member": "{{GENDER:$1|defnyddiwr wedi ei gadarnhau'n awtomatig}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|gweinyddwr}}",
        "group-bureaucrat-member": "{{GENDER:$1|biwrocrat}}",
-       "group-suppress-member": "{{GENDER:$1|goruchwyliwr}}",
+       "group-suppress-member": "{{GENDER:$1|gwastrodwyr}}",
        "grouppage-user": "{{ns:project}}:Defnyddwyr",
        "grouppage-autoconfirmed": "{{ns:project}}:Defnyddwyr wedi eu cadarnhau'n awtomatig",
        "grouppage-bot": "{{ns:project}}:Botiau",
        "grouppage-sysop": "{{ns:project}}:Gweinyddwyr",
        "grouppage-bureaucrat": "{{ns:project}}:Biwrocratiaid",
-       "grouppage-suppress": "{{ns:project}}:Goruchwylio",
+       "grouppage-suppress": "{{ns:project}}:Gwastrodi",
        "right-read": "Darllen tudalennau",
        "right-edit": "Golygu tudalennau",
        "right-createpage": "Creu tudalennau (nad ydynt yn dudalennau sgwrs)",
        "right-protect": "Newid lefelau diogelu a golygu tudalennau a sgydol-ddiogelwyd",
        "right-editprotected": "Golygu tudalennau sydd wedi eu diogelu ond mai \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "Golygu tudalennau sydd wedi eu diogelu, ond \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Golygu cynnwys y ddalen",
        "right-editinterface": "Golygu'r rhyngwyneb",
        "right-editusercssjs": "Golygu ffeiliau CSS a JS yn perthyn i ddefnyddwyr eraill",
        "right-editusercss": "Golygu ffeiliau CSS yn perthyn i ddefnyddwyr eraill",
        "right-override-export-depth": "Allforio tudalennau gan gynnwys tudalennau cysylltiedig hyd at ddyfnder o 5",
        "right-sendemail": "Anfon e-bost at ddefnyddwyr eraill",
        "right-passwordreset": "Gweld e-byst sy'n ailosod cyfrinair",
+       "right-managechangetags": "Creu a dileu [[Special:Tags|tagiau]] o'r gronfa ddata",
        "newuserlogpage": "Lòg creu cyfrifon defnyddwyr newydd",
        "newuserlogpagetext": "Dyma restr o'r defnyddwyr newydd sydd wedi ymuno â'r wici.",
        "rightslog": "Lòg galluoedd defnyddiwr",
        "recentchangeslinked-summary": "Mae'r dudalen arbennig hon yn dangos y newidiadau diweddaraf i'r tudalennau hynny y mae cyswllt yn arwain atynt ar y dudalen a enwir (neu newidiadau i dudalennau sy'n aelodau o'r categori a enwir). Dangosir tudalennau sydd ar [[Special:Watchlist|eich rhestr wylio]] mewn print '''trwm'''.",
        "recentchangeslinked-page": "Tudalen:",
        "recentchangeslinked-to": "Dangos newidiadau i'r tudalennau â chyswllt arnynt sy'n arwain at y dudalen a enwir",
+       "recentchanges-page-added-to-category": "Ychwanegwyd [[:$1]] at y categori",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] ac {{PLURAL:$2|un ddalen|$2 dalen}} wedi'u hychwanegu at y categori",
        "upload": "Uwchlwytho ffeil",
        "uploadbtn": "Uwchlwytho ffeil",
        "reuploaddesc": "Dileu'r uwchlwytho a dychwelyd i'r ffurflen uwchlwytho",
        "uploaderror": "Gwall tra'n uwchlwytho ffeil",
        "upload-recreate-warning": "'''Rhybudd: Cafodd ffeil o'r enw hwn ei dileu neu ei symud.'''\n\nDyma'r lòg dileu a symud ar gyfer y dudalen hon, er gwybodaeth:",
        "uploadtext": "Defnyddiwch y ffurflen isod i uwchlwytho ffeiliau.\nI weld a chwilio am ffeiliau sydd eisoes wedi eu huwchlwytho, ewch at y [[Special:FileList|rhestr o'r ffeiliau sydd wedi eu huwchlwytho]]. I weld cofnodion uwchlwytho a dileu ffeiliau, ewch at y [[Special:Log/upload|lòg uwchlwytho]] neu'r [[Special:Log/delete|lòg dileu]].\n\nI osod ffeil mewn tudalen, defnyddiwch gyswllt wici ar un o'r ffurfiau canlynol:\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ffeil.jpg]]</nowiki></code>''', er mwyn defnyddio fersiwn llawn y ffeil\n*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ffeil.png|200px|bawd|chwith|testun amgen]]</nowiki></code>''' a wnaiff dangos llun 200 picsel o led mewn blwch ar yr ochr chwith, a'r testun 'testun amgen' wrth ei odre\n*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ffeil.ogg]]</nowiki></code>''' a fydd yn arwain yn syth at y ffeil heb arddangos y ffeil.",
-       "upload-permitted": "Mathau o ffeiliau a ganiateir: $1",
-       "upload-preferred": "Mathau ffeil dewisol: $1.",
-       "upload-prohibited": "Mathau o ffeiliau a waherddir: $1.",
+       "upload-permitted": "{{PLURAL:$2|Ffeil|Ffeiliau}} a ganiateir: $1.",
+       "upload-preferred": "Mathau o {{PLURAL:$2|ffeil|ffeiliau}} dewisol: $1.",
+       "upload-prohibited": "Mathau o {{PLURAL:$2|ffeil|ffeiliau}} a waherddir: $1.",
        "uploadlogpage": "Lòg uwchlwytho",
        "uploadlogpagetext": "Isod mae rhestr o'r uwchlwythiadau ffeiliau <nowiki>diweddaraf</nowiki>.\nGweler [[Special:NewFiles|oriel y ffeiliau newydd]] i fwrw golwg drostynt.",
        "filename": "Enw'r ffeil",
        "nopagetext": "Nid yw'r dudalen a enwyd ar gael.",
        "pager-newer-n": "{{PLURAL:$1|y $1 mwy diweddar|yr 1 mwy diweddar|y $1 mwy diweddar|y $1 mwy diweddar|y $1 mwy diweddar|y $1 mwy diweddar}}.",
        "pager-older-n": "{{PLURAL:$1|y $1 cynharach|yr $1 cynharach|y $1 cynharach|y $1 cynharach|y $1 cynharach|y $1 cynharach}}",
-       "suppress": "Goruchwylio",
+       "suppress": "Gwastrodi",
        "querypage-disabled": "Analluogwyd y dudalen arbennig hon er mwyn osgoi iddi andwyo perfformiad y wefan.",
        "apihelp": "Cymorth API",
        "apihelp-no-such-module": "Ni chafwyd hyd i fodiwl \"$1\".",
        "booksources-text": "Mae'r rhestr isod yn cynnwys cysylltiadau i wefannau sy'n gwerthu llyfrau newydd a rhai ail-law. Mae rhai o'r gwefannau hefyd yn cynnig gwybodaeth pellach am y llyfrau hyn:",
        "booksources-invalid-isbn": "Ymddengys nad yw'r rhif ISBN hwn yn ddilys; efallai y cafwyd gwall wrth drosglwyddo'r rhif.",
        "specialloguserlabel": "Gwneuthurwr:",
-       "speciallogtitlelabel": "Gwrthrych (teitl neu ddefnyddiwr):",
+       "speciallogtitlelabel": "Targed (teitl neu {{ns:user}}:username ar gyfer y defnyddiwr):",
        "log": "Logiau",
        "all-logs-page": "Pob lòg cyhoeddus",
        "alllogstext": "Mae pob cofnod yn holl logiau {{SITENAME}} wedi cael eu rhestru yma.\nGallwch weld chwiliad mwy penodol trwy ddewis y math o lòg, enw'r defnyddiwr, neu'r dudalen benodedig.\nSylwer bod llythrennau mawr neu fach o bwys i'r chwiliad.",
        "emailccsubject": "Copi o'ch neges at $1: $2",
        "emailsent": "Neges e-bost wedi'i hanfon",
        "emailsenttext": "Mae eich neges e-bost wedi cael ei hanfon.",
-       "emailuserfooter": "Anfonwyd yr e-bost hwn oddi wrth $1 at $2 trwy ddefnyddio'r teclyn \"Anfon e-bost at ddefnyddiwr\" ar {{SITENAME}}.",
+       "emailuserfooter": "Danfonwyd yr ebost {{GENDER:$1|hwn}} gan $1 i {{GENDER:$2|$2}} drwy \"{{int:emailuser}}\" ar {{SITENAME}}.",
        "usermessage-summary": "Yn gadael neges am ddigwyddiad yn y sustem.",
        "usermessage-editor": "Golygydd neges y system",
        "watchlist": "Rhestr wylio",
        "watchlistanontext": "Rhaid mewngofnodi er mwyn gweld neu olygu'r rhestr wylio.",
        "watchnologin": "Nid ydych wedi mewngofnodi",
        "addwatch": "Ychwanegu at y rhestr wylio",
-       "addedwatchtext": "Mae'r dudalen \"[[:$1|$1]]\" wedi cael ei hychwanegu at eich [[Special:Watchlist|rhestr wylio]].\nPan fydd y dudalen hon, neu ei thudalen sgwrs, yn newid, fe fyddant yn ymddangos ar y rhestr honno.",
+       "addedwatchtext": "Mae \"[[:$1]]\"  a'i dudalen Sgwrs wedi cael eu hychwanegu at eich [[Special:Watchlist|rhestr wylio]].",
        "addedwatchtext-short": "Mae'r dudalen \"$1\"  wedi'i hychwanegu i'ch rhestr wylio.",
        "removewatch": "Tynnu oddi ar eich rhestr wylio",
-       "removedwatchtext": "Mae'r dudalen \"[[:$1]]\" wedi'i thynnu oddi ar [[Special:Watchlist|eich rhestr wylio]].",
+       "removedwatchtext": "Mae'r dudalen \"[[:$1]]\" a'i thudalen Sgwrs wedi'u tynnu oddi ar [[Special:Watchlist|eich rhestr wylio]].",
        "removedwatchtext-short": "Mae'r dudalen \"$1\" wedi'i thynnu o'ch tudalen wylio.",
        "watch": "Gwylio",
        "watchthispage": "Gwylier y dudalen hon",
        "wlheader-showupdated": "Mae tudalennau sydd wedi newid ers i chi eu gweld ddiwethaf wedi'u '''hamlygu'''.",
        "wlnote": "Isod, {{PLURAL:$1|yw'r golygiad diweddaraf |yw'r golygiadau diweddaraf <strong>$1</strong> changes}} yn y {{PLURAL:$2|hour|<strong>$2</strong> awr}}, fel ag y mae ar $3, $4.",
        "wlshowlast": "Dangoser newidiadau'r $1 awr ddiwethaf neu'r $2 {{PLURAL:$2|diwrnod|diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}} diwethaf neu'r newidiadau.",
+       "watchlistall2": "holl",
+       "wlshowtime": "Dangos y diwethaf:",
+       "wlshowhideminor": "golygiadau bychan",
+       "wlshowhidebots": "botiau",
+       "wlshowhideliu": "defnyddwyr cofrestredig",
+       "wlshowhideanons": "defnyddwyr heb gofnodi",
+       "wlshowhidepatr": "golygiadau sydd wedi derbyn patrol",
+       "wlshowhidemine": "fy ngolygiadau",
        "watchlist-options": "Dewisiadau ar gyfer y rhestr wylio",
        "watching": "Wrthi'n ychwanegu...",
        "unwatching": "Wrthi'n tynnu...",
        "deletepage": "Dilëir y dudalen",
        "confirm": "Cadarnhau",
        "excontent": "y cynnwys oedd: '$1'",
-       "excontentauthor": "y cynnwys oedd: '$1' (a'r unig gyfrannwr oedd '[[Special:Contributions/$2|$2]]')",
+       "excontentauthor": "y cynnwys oedd: \"$1\", a'r unig gyfrannwr oedd \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|talk]])",
        "exbeforeblank": "y cynnwys cyn blancio oedd: '$1'",
        "delete-confirm": "Dileu \"$1\"",
        "delete-legend": "Dileu",
        "rollback-success": "Gwrthdrowyd y golygiadau gan $1;\nwedi gwrthdroi i'r golygiad olaf gan $2.",
        "sessionfailure-title": "Sesiwn wedi methu",
        "sessionfailure": "Mae'n debyg fod yna broblem gyda'ch sesiwn mewngofnodi; diddymwyd y weithred er mwyn diogelu'r sustem rhag ddefnyddwyr maleisus. Gwasgwch botwm 'nôl' eich porwr ac ail-lwythwch y dudalen honno, yna ceisiwch eto.",
+       "changecontentmodel-title-label": "Teitl y ddalen",
+       "changecontentmodel-reason-label": "Rheswm:",
        "protectlogpage": "Lòg diogelu",
        "protectlogtext": "Isod mae rhestr o bob gweithred diogelu (a dad-ddiogelu) tudalen.\nMae'r tudalennau sydd wedi eu diogelu ar hyn o bryd wedi eu rhestri ar y [[Special:ProtectedPages|rhestr tudalennau wedi eu diogelu]].",
        "protectedarticle": "wedi diogelu '[[$1]]'",
        "protect-locked-blocked": "Ni allwch newid y lefel diogelu tra eich bod wedi eich blocio.\nDyma'r gosodiadau diogelu cyfredol ar gyfer y dudalen '''$1''':",
        "protect-locked-dblock": "Ni ellir newid y lefel diogelu gan fod y databas dan glo.\nDyma'r gosodiadau diogelu cyfredol ar gyfer y dudalen '''$1''':",
        "protect-locked-access": "Nid yw'r gallu i newid lefel diogelu ar dudalen ynghlwm wrth eich cyfrif defnyddiwr.\nDyma'r gosodiadau diogelu cyfredol ar gyfer y dudalen '''$1''':",
-       "protect-cascadeon": "Mae'r dudalen hon wedi ei diogelu ar hyn o bryd oherwydd ei bod wedi ei chynnwys yn y {{PLURAL:$1|dudalen|dudalen|tudalennau}} canlynol sydd wedi {{PLURAL:$1|ei|ei|eu}} sgydol-diogelu.  Gallwch newid lefel diogelu'r dudalen hon, ond ni fydd hynny'n effeithio ar y sgydol-ddiogelu.",
+       "protect-cascadeon": "Mae'r dudalen hon wedi ei diogelu ar hyn o bryd oherwydd ei bod wedi ei chynnwys yn y {{PLURAL:$1|dudalen|dudalen|tudalennau}} canlynol sydd wedi {{PLURAL:$1|ei|ei|eu}} diogelu. Gallwch newid lefel diogelu'r dudalen hon, ond ni fydd hynny'n effeithio ar y sgydol-ddiogelu (''cascading protection'').",
        "protect-default": "Caniatáu'r gallu i bob defnyddiwr",
        "protect-fallback": "Caniatau i'r defnyddwyr gyda'r gallu \"$1\" yn unig wneud hyn",
        "protect-level-autoconfirmed": "Caniatau'r defnyddwyr sydd wedi eu cadarnhau'n awtomatig yn unig",
        "undeletepagetext": "Mae'r {{PLURAL:$1|dudalen ganlynol wedi cael ei dileu ond mae hi|$1 tudalen ganlynol wedi cael eu dileu ond maent}} ar gael o hyd yn yr archif, ac mae modd i'w hadfer os oes angen.\nGall yr archif gael ei glanhau o dro i dro.",
        "undelete-fieldset-title": "Adfer diwygiadau",
        "undeleteextrahelp": "I adfer hanes gyfan y dudalen, gadewch bob blwch ticio'n wag a phwyso'r botwm '''''{{int:undeletebtn}}'''''. I adfer rhai diwygiadau'n unig, ticiwch y blychau ar gyfer y diwygiadau yr ydych am eu hadfer, wedyn pwyso ar '''''{{int:undeletebtn}}'''''.",
-       "undeleterevisions": "Gosodwyd $1 {{PLURAL:$1|fersiwn|fersiwn|fersiwn|fersiwn|fersiwn|fersiwn}} yn yr archif",
+       "undeleterevisions": "Dilewyd $1 {{PLURAL:$1|fersiwn}}",
        "undeletehistory": "Os adferwch y dudalen, aderir yr holl ddiwygiadau hefyd yn hanes y dudalen.\nOs crëwyd tudalen newydd o'r un enw ers iddi chael ei dileu, dangosir y diwygiadau cynt yn yr hanes, heb ddisodli'r dudalen bresennol.",
        "undeleterevdel": "Ni chyflawnir adfer pe byddai peth o'r diwygiad blaen i'r dudalen neu'r ffeil yn cael ei dileu oherwydd yr adfer.\nOs hynny, mae'n rhaid i chi dad-dicio'r diwygiad dileedig diweddaraf neu ei ddatguddio.",
        "undeletehistorynoadmin": "Dilëwyd y dudalen hon. Dangosir y rheswm dros y dileu isod, ynghyd â manylion o'r holl ddefnyddwyr a olygwyd y dudalen cyn iddi gael ei dileu. Dim ond gweinyddwyr sy'n gallu gweld testun y diwygiadau i'r dudalen.",
        "cant-move-to-user-page": "Nid yw'r gallu ganddoch i symud tudalen i dudalen defnyddiwr (heblaw am i isdudalen defnyddiwr).",
        "cant-move-category-page": "Nid oes gennych yr hawl i symud categoriau.",
        "cant-move-to-category-page": "Nid oes gennych yr hawl i droi tudalen yn gategori.",
-       "newtitle": "I'r teitl newydd:",
+       "newtitle": "Teitl newydd:",
        "move-watch": "Gwylier y dudalen hon",
        "movepagebtn": "Symud y dudalen",
        "pagemovedsub": "Y symud wedi llwyddo",
        "thumbnail_image-missing": "Mae'n debyg bod y ffeil yn eisiau: $1",
        "thumbnail_image-failure-limit": "'Da chi 'di methu gormod o weithiau ($1 neu fwy) i rendro'r ciplun. Ceisiwch eto nes ymlaen.",
        "import": "Mewnforio tudalennau",
-       "importinterwiki": "Mewnforiad traws-wici",
-       "import-interwiki-text": "Dewiswch wici a thudalen i'w mewnforio.\nFe gedwir dyddiadau ac enwau'r golygwyr ar gyfer y diwygiadau i'r dudalen.\nMae cofnod o bob weithred o fewnforio i'w gweld ar y [[Special:Log/import|lòg mewnforio]].",
+       "importinterwiki": "Mewnforio traws-wici",
+       "import-interwiki-text": "Dewiswch wici a thudalen i'w mewnforio.\nFe gedwir dyddiadau ac enwau'r golygwyr.\nMae cofnod o bob gweithred o fewnforio i'w gweld ar y [[Special:Log/import|lòg mewnforio]].",
        "import-interwiki-sourcewiki": "Ffynhonnell y wici:",
        "import-interwiki-sourcepage": "Ffynhonnell (tud.)",
        "import-interwiki-history": "Copïer yr holl fersiynau yn hanes y dudalen hon",
        "import-interwiki-templates": "Cynhwyser pob nodyn",
        "import-interwiki-submit": "Mewnforio",
+       "import-mapping-default": "Mewnforio i'r lleoliadau diofyn",
+       "import-mapping-namespace": "Mewnforio i barth-defnyddiwr",
        "import-upload-filename": "Enw'r ffeil:",
        "import-comment": "Sylw:",
        "importtext": "Allforiwch y ffeil o'r wici gwreiddiol trwy ddefnyddio'r [[Special:Export|nodwedd allforio]]. Rhowch hi ar gadw ar eich cyfrifiadur, ac wedyn ei huwchlwytho fan hyn.",
        "importcantopen": "Ni ellid agor y ffeil i'w fewnforio",
        "importbadinterwiki": "Cyswllt rhyngwici gwallus",
        "importsuccess": "Y mewnforio wedi llwyddo!",
-       "importnosources": "Ni ddiffiniwyd unrhyw ffynonellau mewnforio traws-wici, ac mae uwchlwytho hanesion yn uniongyrchol wedi'i analluogi.",
+       "importnosources": "Ni ddiffiniwyd unrhyw ffynonellau mewnforio traws-wici, ac mae uwchlwytho'r hanes yn uniongyrchol wedi'i analluogi.",
        "importnofile": "Ni uwchlwythwyd unrhyw ffeil mewnforio.",
        "importuploaderrorsize": "Methodd yr uwchlwytho.\nMae'r ffeil yn fwy na'r maint y gellir ei uwchlwytho.",
        "importuploaderrorpartial": "Methodd yr uwchlwytho.\nDim ond rhan o'r ffeil sydd wedi ei huwchlwytho.",
        "tooltip-pt-logout": "Allgofnodi",
        "tooltip-pt-createaccount": "Rydym yn argymell eich bod yn creu cyfri ac yn menwgofnodi. Fodd bynnag, dydy hyn ddim yn orfodol",
        "tooltip-ca-talk": "Sgwrsio am y dudalen",
-       "tooltip-ca-edit": "Gallwch olygu'r dudalen hon. Da o beth fyddai defnyddio'r botwm 'Dangos rhagolwg' cyn rhoi ar gadw.",
+       "tooltip-ca-edit": "Gallwch olygu'r ddalen hon.",
        "tooltip-ca-addsection": "Ychwanegu adran newydd",
        "tooltip-ca-viewsource": "Mae'r dudalen hon wedi'i diogelu. Gallwch weld y côd yma.",
        "tooltip-ca-history": "Fersiynau cynt o'r dudalen hon.",
        "tooltip-ca-nstab-main": "Gweld y dudalen bwnc",
        "tooltip-ca-nstab-user": "Gweld tudalen y defnyddiwr",
        "tooltip-ca-nstab-media": "Gweld y dudalen gyfrwng",
-       "tooltip-ca-nstab-special": "Mae hon yn dudalen arbennig; ni allwch olygu'r dudalen ei hun",
+       "tooltip-ca-nstab-special": "Mae hon yn dudalen arbennig ac ni allwch ei golygu",
        "tooltip-ca-nstab-project": "Gweld tudalen y wici",
        "tooltip-ca-nstab-image": "Gweld tudalen y ffeil",
        "tooltip-ca-nstab-mediawiki": "Gweld neges y system",
        "version-libraries": "llyfrgelloedd a osodwyd ar eich cyfer",
        "version-libraries-library": "Llyfrgell",
        "version-libraries-version": "Fersiwn",
+       "version-libraries-license": "Trwydded",
+       "version-libraries-description": "Disgrifiad",
+       "version-libraries-authors": "Awduron",
        "redirect": "Ailgyfeirio yn ôl enw ffeil, defnyddiwr, tudalen neu ID y diwygiad",
        "redirect-legend": "Ailgyfeirio i ffeil neu dudalen",
        "redirect-summary": "Mae'r dudalen arbennig hon yn ailgyfeirio at ffeil (o roi enw'r ffeil), at dudalen (o roi ID rhyw ddiwygiad o'r dudalen neu ID y dudalen), neu at dudalen defnyddiwr (o roi rhif ID y defnyddiwr).\nDefnydd: \n[[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], neu [[{{#Special:Redirect}}/user/101]].",
        "tags-tag": "Enw'r tag",
        "tags-display-header": "Y nodyn a welir ar logiau",
        "tags-description-header": "Disgrifiad llawn y tag",
+       "tags-source-header": "Ffynhonnell",
        "tags-active-header": "Yn weithredol?",
        "tags-hitcount-header": "Nifer wedi tagio",
+       "tags-actions-header": "Gweithredoedd",
        "tags-active-yes": "Ydy",
        "tags-active-no": "Nacydy",
+       "tags-source-manual": "Gosod drwy law gan ddefnyddwyr a botiau",
+       "tags-source-none": "Nis defnyddir, bellach",
        "tags-edit": "golygu",
+       "tags-delete": "dileu",
+       "tags-activate": "rhoi ar waith",
+       "tags-deactivate": "ei atal",
        "tags-hitcount": "$1 {{PLURAL:$1|newid}}",
+       "tags-create-heading": "Creu tag newydd",
+       "tags-create-explanation": "Yn ddiofyn, bydd y tagiau newydd i'w gweld gan ddefnyddwyr a botiau.",
+       "tags-create-tag-name": "Enw'r tag:",
+       "tags-create-reason": "Rheswm:",
+       "tags-create-submit": "Dechrau",
+       "tags-create-no-name": "Mae'n rhaid nodi tag enw.",
        "comparepages": "Cymharu tudalennau",
        "compare-page1": "Tudalen 1",
        "compare-page2": "Tudalen 2",
        "api-error-badaccess-groups": "Nid oes caniatad gennych i uwchlwytho ffeiliau ar y wici hwn.",
        "api-error-badtoken": "Gwall mewnol: tocyn gwael.",
        "api-error-copyuploaddisabled": "Nid oes modd uwchlwytho drwy URL ar y gweinydd hwn",
-       "api-error-duplicate": "Mae {{PLURAL:$1||ffeil arall|ffeiliau eraill|ffeiliau eraill|ffeiliau eraill|ffeiliau eraill}} gyda'r un cynnwys {{PLURAL:$1||ynddi|ynddynt|ynddynt|ynddynt|ynddynt}} eisoes ar y wici hwn",
+       "api-error-duplicate": "Mae {{PLURAL:$1||ffeil arall|ffeiliau eraill}} yn bodoli'n barod ar y wefan gyda'r un cynnwys.",
        "api-error-duplicate-archive": "Fe fu {{PLURAL:$1|ffeil arall gyda'r un cynnwys ynddi|ffeiliau eraill gyda'r un cynnwys ynddynt}} ar y safle, ond fe'{{PLURAL:$1|i|u}} dilëwyd.",
        "api-error-empty-file": "Mae'r ffeil a gyflwynwyd gennych yn wag.",
        "api-error-emptypage": "Ni chaniateir dechrau tudalen newydd, a honno'n wag.",
index 1f77e43..f59beea 100644 (file)
@@ -54,7 +54,8 @@
                        "Matma Rex",
                        "Poullindholm",
                        "Mads Haupt",
-                       "Stefan2"
+                       "Stefan2",
+                       "Ribewiki"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
        "missingsummary": "'''Bemærk:''' Du har ikke angivet en redigeringsbeskrivelse. Hvis du igen trykker på \"{{int:savearticle}}\", gemmes ændringerne uden en beskrivelse.",
        "selfredirect": "<strong>Advarsel:</strong> Du er ved at omdirigere denne side til sig selv.\nDu kan have angivet det forkerte mål for omdirigeringen, eller du kan være ved at redigere den forkerte side.\nHvis du klikker på \"{{int:savearticle}}\" igen, vil omdirigeringen blive oprettet uanset dette.",
        "missingcommenttext": "Skriv venligst en kommentar nedenfor.",
-       "missingcommentheader": "'''Bemærk:''' Du har ikke angivet en overskrift/emne for denne kommentar. Hvis du trykker \"{{int:savearticle}}\" én gang til, gemmes dine ændringer uden overskrift/emne.",
+       "missingcommentheader": "<strong>Bemærk:</strong> Du har ikke angivet en overskrift/emne for denne kommentar. Hvis du trykker \"{{int:savearticle}}\" én gang til, gemmes dine ændringer uden overskrift/emne.",
        "summary-preview": "Forhåndsvisning af beskrivelsen:",
        "subject-preview": "Forhåndsvisning af emnet:",
        "previewerrortext": "Der opstod en fejl under forsøget på at lave en forhåndsvisning af dine ændringer.",
        "readonlywarning": "'''Advarsel: Databasen er låst på grund af vedligeholdelse, så du kan ikke gemme dine ændringer lige nu.'''\nDet kan godt være en god ide at kopiere din tekst til en tekstfil, så du kan gemme den til senere.\n\nAdministratoren som låste databasen, gav denne forklaring: $1",
        "protectedpagewarning": "'''ADVARSEL: Denne side er skrivebeskyttet, så kun administratorer kan redigere den.'''<br />\nDen seneste logpost vises nedenfor:",
        "semiprotectedpagewarning": "'''Bemærk: Siden er låst, så kun registrerede brugere kan ændre den.'''\n<br />Den seneste logpost vises nedenfor:",
-       "cascadeprotectedwarning": "'''BEMÆRK: Denne side er skrivebeskyttet, så den kun kan ændres af brugere med Administratorrettigheder. Den er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af nedarvende sidebeskyttelse:'''",
+       "cascadeprotectedwarning": "<strong>Advarsel:</strong> Denne side er blevet beskyttet, så den kun kan ændres af brugere med administratorrettigheder, fordi indholdet er inkluderet i følgende {{PLURAL:$1|side|sider}} med nedarvet sidebeskyttelse:",
        "titleprotectedwarning": "ADVARSEL:  Den side er låst så kun [[Special:ListGroupRights|visse brugere]] kan oprette den.'''\n<br />Den seneste logpost vises nedenfor:",
        "templatesused": "{{PLURAL:$1|Skabelon|Skabeloner}} der er brugt på denne side:",
        "templatesusedpreview": "Følgende {{PLURAL:$1|skabelon|skabeloner}} bruges i denne forhåndsvisning:",
        "rows": "Rækker",
        "columns": "Kolonner",
        "searchresultshead": "Søgeresultater",
-       "stub-threshold": "Grænse for visning af henvisning som <a href=\"#\" class=\"stub\">artikelstump</a>:",
+       "stub-threshold": "Grænse før formatering af stublink ($1):",
        "stub-threshold-disabled": "Deaktiveret",
        "recentchangesdays": "Antal dage som skal vises i seneste ændringer:",
        "recentchangesdays-max": "(maks. $1 {{PLURAL:$1|dag|dage}})",
        "badsig": "Syntaksen i signaturen er ugyldig; kontroller venligst den brugte HTML.",
        "badsiglength": "Din signatur er for lang. Den må højst indeholde $1 {{PLURAL:$1|tegn}}.",
        "yourgender": "Hvordan foretrækker du at blive beskrevet?",
-       "gender-unknown": "Jeg foretrækker ikke at specificere",
+       "gender-unknown": "Når du nævnes, vil softwaren bruge kønsneutrale ord, når det er muligt",
        "gender-male": "Han redigerer wikisider",
        "gender-female": "Hun redigerer wikisider",
        "prefs-help-gender": "Angivelse af denne indstilling er valgfri.\nDet bruges af programmet til at lave kønskorrekte tekster på nogle sprog.\nInformationen vil være offentlig.",
        "group-bot": "Robotter",
        "group-sysop": "Administratorer",
        "group-bureaucrat": "Bureaukrater",
-       "group-suppress": "Logskjulere",
+       "group-suppress": "Undertrykkere",
        "group-all": "(alle)",
        "group-user-member": "{{GENDER:$1|bruger}}",
        "group-autoconfirmed-member": "{{GENDER:$1|registreret bruger}}",
        "group-bot-member": "{{GENDER:$1|robot}}",
        "group-sysop-member": "{{GENDER:$1|administrator}}",
        "group-bureaucrat-member": "{{GENDER:$1|bureaukrat}}",
-       "group-suppress-member": "{{GENDER:$1|logskjuler}}",
+       "group-suppress-member": "{{GENDER:$1|undertrykker}}",
        "grouppage-user": "{{ns:project}}:Brugere",
        "grouppage-autoconfirmed": "{{ns:project}}:Registrerede brugere",
        "grouppage-bot": "{{ns:project}}:Robotter",
        "grouppage-sysop": "{{ns:project}}:Administratorer",
        "grouppage-bureaucrat": "{{ns:project}}:Bureaukrater",
-       "grouppage-suppress": "{{ns:project}}:Logskjulere",
+       "grouppage-suppress": "{{ns:project}}:Undertryk",
        "right-read": "Se sider",
        "right-edit": "Redigere sider",
        "right-createpage": "Oprette andre sider end diskussionssider",
        "newpageletter": "N",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|overvågende bruger|overvågende brugere}}]",
-       "rc_categories": "Kun sider fra kategorierne (adskilt med „|“):",
-       "rc_categories_any": "Alle",
+       "rc_categories": "Grænse for kategorier (adskilt med \"|\"):",
+       "rc_categories_any": "Nogen af de valgte",
        "rc-change-size": "$1 {{PLURAL:$1|Byte|Bytes}}",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} efter ændring",
        "newsectionsummary": "/* $1 */ nyt afsnit",
        "nopagetext": "Den angivne side findes ikke.",
        "pager-newer-n": "{{PLURAL:$1|1 nyere|$1 nyere}}",
        "pager-older-n": "{{PLURAL:$1|1 ældre|$1 ældre}}",
-       "suppress": "Skjul logs",
+       "suppress": "Skjul",
        "querypage-disabled": "Denne specialside er deaktiveret af hensyn til ydeevnen.",
        "apihelp": "API-hjælp",
        "apihelp-no-such-module": "Modul \"$1\" ikke fundet.",
        "booksources-text": "Dette er en liste med henvisninger til Internetsider, som sælger nye og brugte bøger. Der kan der også findes yderligere informationer om bøgerne. {{SITENAME}} er ikke forbundet med nogen af dem.",
        "booksources-invalid-isbn": "Det angivne ISBN-nummer ser forkert ud. Tjek med kilden om det er skrevet korrekt.",
        "specialloguserlabel": "Udført af:",
-       "speciallogtitlelabel": "Mål (titel eller bruger):",
+       "speciallogtitlelabel": "Mål (titel eller {{ns:user}}:brugernavn for bruger):",
        "log": "Loglister",
        "all-logs-page": "Alle offentlige logger",
        "alllogstext": "Samlet visning af alle loggene på {{SITENAME}}.\nDu kan afgrænse visningen ved at vælge en logtype, brugernavn eller påvirket side. Der skelnes mellem små og store bogstaver for både bruger- og sidenavne.",
        "emailccsubject": "Kopi af din besked til $1: $2",
        "emailsent": "E-mail sendt",
        "emailsenttext": "Din e-mail er blevet sendt.",
-       "emailuserfooter": "Denne e-mail er sendt af $1 til $2 ved hjælp af funktionen \"{{int:emailuser}}\" på {{SITENAME}}.",
+       "emailuserfooter": "Denne e-mail er sendt af $1 til {{GENDER:$2|$2}} ved hjælp af funktionen \"{{int:emailuser}}\" på {{SITENAME}}.",
        "usermessage-summary": "Efterlader system besked.",
        "usermessage-editor": "System messenger",
        "watchlist": "Overvågningsliste",
        "watchlistanontext": "Du skal logge på, for at se din overvågningsliste eller ændre indholdet af den.",
        "watchnologin": "Ikke logget på",
        "addwatch": "Tilføj til overvågningsliste",
-       "addedwatchtext": "Siden \"[[:$1]]\" er blevet tilføjet til din [[Special:Watchlist|overvågningsliste]].\nFremtidige ændringer af denne side og dens tilknyttede diskussionsside vil blive vist der.",
+       "addedwatchtext": "\"[[:$1]]\" og tilhørende diskussionsside er blevet tilføjet til din [[Special:Watchlist|overvågningsliste]].",
        "addedwatchtext-short": "Siden \"$1\" er blevet tilføjet til din overvågningsliste.",
        "removewatch": "Fjern fra overvågningsliste",
-       "removedwatchtext": "Siden \"[[:$1]]\" er blevet fjernet fra [[Special:Watchlist||din overvågningsliste]].",
+       "removedwatchtext": "\"[[:$1]]\" og tilhørende diskussionsside er blevet fjernet fra din [[Special:Watchlist|overvågningsliste]].",
        "removedwatchtext-short": "Siden \"$1\" er blevet fjernet fra din overvågningsliste.",
        "watch": "Overvåg",
        "watchthispage": "Overvåg side",
        "unwatchthispage": "Fjern overvågning",
        "notanarticle": "Ikke en artikel",
        "notvisiblerev": "Versionen er blevet slettet",
-       "watchlist-details": "Du har $1 {{PLURAL:$1|side|sider}} på din overvågningsliste (ekskl. diskussionssider).",
+       "watchlist-details": "Du har {{PLURAL:$1|side|sider}} på din overvågningsliste (uden at medregne diskussionssider).",
        "wlheader-enotif": "E-mail-underretning er slået til.",
        "wlheader-showupdated": "Sider, der er ændret siden dit sidste besøg, er vist med '''fed skrift'''.",
        "wlnote": "Nedenfor ses {{PLURAL:$1|den seneste ændring|de seneste <strong>$1</strong> ændringer}} i {{PLURAL:$2|den sidste time|de sidste <strong>$2</strong> timer}} op til den $3 kl. $4.",
        "wlshowlast": "Vis de seneste $1 timer $2 dage",
+       "watchlistall2": "alle",
        "watchlist-options": "Indstillinger for overvågningslisten",
        "watching": "Tilføjer overvågning …",
        "unwatching": "Fjerner overvågning …",
        "deletepage": "Slet side",
        "confirm": "Bekræft",
        "excontent": "indholdet var: '$1'",
-       "excontentauthor": "indholdet var: '$1' (og den eneste forfatter var '[[Special:Contributions/$2|$2]]')",
+       "excontentauthor": "indholdet var: '$1' og den eneste forfatter var '[[Special:Contributions/$2|$2]]' ([[User talk:$2|talk]])",
        "exbeforeblank": "indholdet før siden blev tømt var: '$1'",
        "delete-confirm": "Slet \"$1\"",
        "delete-legend": "Slet",
        "undeletepagetext": "{{PLURAL:$1|Den følgende side er slettet, men den|De følgende sider er slettede, men de}} findes fortsat i arkivet og kan gendannes. Arkivet bliver periodevis slettet.",
        "undelete-fieldset-title": "Gendan versioner",
        "undeleteextrahelp": "For at gendanne siden komplet med alle versioner skal du lade alle afkrydsningsfelterne forblive tomme og klikke på '''''{{int:undeletebtn}}'''''.\nFor at gendanne bestemte versioner vælges disse enkeltvis i afkrydsningsfelterne før der klikkes '''''{{int:undeletebtn}}'''''.",
-       "undeleterevisions": "$1 {{PLURAL:$1|revision|revisioner}} arkiveret",
+       "undeleterevisions": "$1 {{PLURAL:$1|version|versioner}} slettet",
        "undeletehistory": "Hvis du gendanner siden, vil alle tidligere versioner blive gendannet i historikken.\nHvis en ny side med det samme navn er oprettet efter sletningen, så vil de gendannede versioner dukke op i historikken.",
        "undeleterevdel": "Gendannelsen gennemføres ikke, når den mest aktuelle version er skjult eller indeholder skjulte dele.\nI dette tilfælde må den nyeste version ikke markeres eller dens status skal ændres til en normal version.\nVersioner af filer, som du ikke har adgang til, gendannes ikke.",
        "undeletehistorynoadmin": "Denne side er blevet slettet.\nÅrsagen til sletningen er angivet i resuméet nedenfor\nsammen med oplysninger om brugerne der har redigeret denne side før sletningen.\nTeksten i de slettede versioner er kun tilgængelig for administratorer.",
        "thumbnail_gd-library": "Ufuldstændig konfiguration af GD-biblioteket: funktionen $1 mangler",
        "thumbnail_image-missing": "Filen $1 ser til at mangle",
        "import": "Importer sider",
-       "importinterwiki": "Importer sider fra en anden wiki",
+       "importinterwiki": "Import fra en anden wiki",
        "import-interwiki-text": "Vælg en Wiki og en side til importen.\nDatoen i den pågældende version og forfatterne ændres ikke.\nAlle Transwiki import-aktioner protokolleres i [[Special:Log/import|import-loggen]].",
        "import-interwiki-history": "Importer alle versioner af denne side",
        "import-interwiki-templates": "Inkluder alle skabeloner",
        "importcantopen": "Importfil kunne ikke åbnes",
        "importbadinterwiki": "Forkert Interwiki-henvisning",
        "importsuccess": "Importen lykkedes!",
-       "importnosources": "Ingen transwiki importkilde defineret og direkte historikuploads er deaktiveret.",
+       "importnosources": "Ingen wikier, hvorfra man kan importere er blevet defineret og direkte historik uploads er slået fra.",
        "importnofile": "Ingen importfil valgt!",
        "importuploaderrorsize": "Upload af importfil mislykkedes da filen er større en den tilladte maksimale uploadstørrelse.",
        "importuploaderrorpartial": "Upload af importfil mislykkedes da filen kun blev delvist uploadet.",
index 4e84dc5..ae73ea2 100644 (file)
@@ -82,7 +82,8 @@
                        "Freddy2001",
                        "Luke081515",
                        "J. 'mach' wust",
-                       "R4c0r"
+                       "R4c0r",
+                       "MGChecker"
                ]
        },
        "tog-underline": "Links unterstreichen:",
        "filedeleteerror": "Die Datei „$1“ konnte nicht gelöscht werden.",
        "directorycreateerror": "Das Verzeichnis „$1“ konnte nicht angelegt werden.",
        "directoryreadonlyerror": "Das Wörterbuch „$1“ ist schreibgeschützt.",
-       "directorynotreadableerror": "Das Wörterbuch „$1“ ist nicht lesbar.",
+       "directorynotreadableerror": "Das Verzeichnis „$1“ ist nicht lesbar.",
        "filenotfound": "Die Datei „$1“ wurde nicht gefunden.",
        "unexpected": "Unerwarteter Wert: „$1“ = „$2“",
        "formerror": "Fehler: Die Eingaben konnten nicht verarbeitet werden.",
        "actionthrottledtext": "Im Rahmen einer Anti-Missbrauchs-Maßnahme kann diese Aktion in einem kurzen Zeitabstand nur begrenzt oft ausgeführt werden. Diese Grenze hast du überschritten.\nBitte versuche es in ein paar Minuten erneut.",
        "protectedpagetext": "Diese Seite wurde geschützt, um Bearbeitungen sowie andere Aktionen zu verhindern.",
        "viewsourcetext": "Du kannst den Quelltext dieser Seite betrachten und kopieren.",
-       "viewyourtext": "Du kannst den Quelltext <strong>deiner Bearbeitung</strong> dieser Seite betrachten und kopieren.",
+       "viewyourtext": "Du kannst den Quelltext <strong>deiner Bearbeitungen</strong> auf dieser Seite betrachten und kopieren.",
        "protectedinterface": "Diese Seite enthält Text für die Benutzeroberfläche der Software auf diesem Wiki und ist geschützt, um Missbrauch vorzubeugen.\nNutze bitte [//translatewiki.net/ translatewiki.net], das Lokalisierungsprojekt von MediaWiki, um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern.",
        "editinginterface": "<strong>Warnung:</strong> Diese Seite enthält von der MediaWiki-Software genutzten Text.\nÄnderungen auf dieser Seite wirken sich auf die Benutzeroberfläche dieses Wikis aus.",
        "translateinterface": "Um Übersetzungen für alle Wikis hinzuzufügen oder zu ändern, verwende bitte [//translatewiki.net/ translatewiki.net], das MediaWiki-Lokalisierungsprojekt.",
        "cascadeprotected": "Diese Seite ist zur Bearbeitung gesperrt. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, die mittels der Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}:\n$2",
-       "namespaceprotected": "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
+       "namespaceprotected": "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum <strong>$1</strong> bearbeiten zu können.",
        "customcssprotected": "Du hast nicht die Berechtigung, diese CSS enthaltende Seite zu bearbeiten, da sie die persönlichen Einstellungen eines anderen Benutzers enthält.",
        "customjsprotected": "Du hast nicht die Berechtigung, diese JavaScript enthaltende Seite zu bearbeiten, da es sich hierbei um die persönlichen Einstellungen eines anderen Benutzers handelt.",
        "mycustomcssprotected": "Du hast keine Berechtigung, diese CSS-Seite zu bearbeiten.",
        "wlheader-showupdated": "Seiten mit noch nicht gesehenen Änderungen werden '''fett''' dargestellt.",
        "wlnote": "Es {{PLURAL:$1|folgt die letzte Änderung|folgen die letzten <strong>$1</strong> Änderungen}} der letzten {{PLURAL:$2|Stunde|<strong>$2</strong> Stunden}}. Stand: $3, $4 Uhr.",
        "wlshowlast": "Zeige die Änderungen der letzten $1 Stunden, $2 Tage.",
+       "watchlistall2": "alle",
+       "watchlist-hide": "Ausblenden",
+       "wlshowtime": "Zeige Änderungen der letzten",
+       "wlshowhideminor": "Kleine Bearbeitungen",
+       "wlshowhidebots": "Bots",
+       "wlshowhideliu": "Registrierte Benutzer",
+       "wlshowhideanons": "Anonyme Benutzer",
+       "wlshowhidepatr": "Kontrollierte Bearbeitungen",
+       "wlshowhidemine": "Meine Bearbeitungen",
        "watchlist-options": "Anzeigeoptionen",
        "watching": "Beobachten …",
        "unwatching": "Nicht mehr beobachten …",
index bc2d65a..60e8989 100644 (file)
        "accmailtitle": "Paralo şirawiyayo.",
        "accmailtext": "[[User talk:$1|$1]] parolayo ke raşt ameyo şırawiyo na adres $2.\n\nQey na hesabê newe parola, cıkewtış dıma şıma eşkeni na qısım de ''[[Special:ChangePassword|parola bıvurn]]'' bıvurni.",
        "newarticle": "(Newe)",
-       "newarticletext": "To yew gıre tıkna be ra yew pela ke hewna çıniya.\nSeba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [$1 pela peşti] ke).\nEke be ğeletine ameya tiya, wa gocega '''peyser'''i programê xo de bıtıkne.",
+       "newarticletext": "To yew gıre tıkna be ra yew pela ke hewna çıniya.\nSeba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [$1 pela peşti] ke).\nEke be ğeletine ameya tiya, wa gocega <strong>peyser</strong>i programê xo de bıtıkne.",
        "anontalkpagetext": "----''No pel, pel o karbero hesab a nêkerdeyan o, ya zi karbero hesab akerdeyan o labele pê hesabê xo nêkewto de. No sebeb ra ma IP adres şuxulneni û ney IP adresan herkes eşkeno bıvino. Eke şıma qayil niye ina bo xo ri [[Special:UserLogin/signup|yew hesab bıvıraze]] veyaxut [[Special:UserLogin|hesab akere]].''",
        "noarticletext": "Ena pele de hewna theba çıniyo.\nTı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê ena pele cı geyre]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre],\nya zi [{{fullurl:{{FULLPAGENAME}}|action=edit}} ena pele bıvurne]</span>.",
        "noarticletext-nopermission": "Ena pele de hewna theba çıniyo.\nTı şenay zerreyê pelanê binan de [[Special:Search/{{PAGENAME}}|seba sernameyê na pele cı geyre]], ya zi <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} qeydan miyan de cı geyre]</span>, ema destur çıniyo ke na pele vırazê.",
        "wlheader-showupdated": "ziyaretê şıma ye peyini de vuryayişê peli pê '''nuşteyo qalıni''' mocyayo.",
        "wlnote": "$3 seate u bahde $4 deqa dıma {{PLURAL:$2|ju seate dı|'''$2''' ju seate dı}} {{PLURAL:$1|vurnayışe peyeni|vurnayışe '''$1''' peyeni}} cêrdeyê",
        "wlshowlast": "Peyni de vurnayışan ra  $1 seata u $2 roca  bımocnê",
+       "watchlistall2": "pêro",
        "watchlist-options": "Tercihê liste da seyri",
        "watching": "Seyr ke...",
        "unwatching": "Seyr meke...",
        "tooltip-pt-mycontris": "Listeya dekerdışan de şıma",
        "tooltip-pt-login": "Mayê şıma ronıştış akerdışi rê dawet keme; labelê ronıştış mecburi niyo",
        "tooltip-pt-logout": "Bıveciye",
+       "tooltip-pt-createaccount": "Şıma rê tewsiyey ma xorê jew hesab akerê. Fına zi hesab akerdış mecburi niyo.",
        "tooltip-ca-talk": "Zerrekê pele sero werênayış",
        "tooltip-ca-edit": "Ena pele bıvurne",
        "tooltip-ca-addsection": "Zu bınnusteya newi ak",
index 06f82ad..ee630b5 100644 (file)
@@ -43,7 +43,8 @@
                        "Ah3kal",
                        "Macofe",
                        "Stam.nikos",
-                       "Giorgos456"
+                       "Giorgos456",
+                       "SucreRouge"
                ]
        },
        "tog-underline": "Υπογράμμιση συνδέσμων:",
        "faq": "Συχνές ερωτήσεις",
        "faqpage": "Project:Συχνές ερωτήσεις",
        "actions": "Ενέργειες",
-       "namespaces": "ΧÏ\8eÏ\81οι Î¿Î½Î¿Î¼Î¬Ï\84Ï\89ν",
+       "namespaces": "Î\9fνομαÏ\84οÏ\87Ï\8eÏ\81οι",
        "variants": "Παραλλαγές",
        "navigation-heading": "Μενού πλοήγησης",
        "errorpagetitle": "Σφάλμα",
        "site-atom-feed": "$1 ροή Atom",
        "page-rss-feed": "Ροή RSS «$1»",
        "page-atom-feed": "Ροή Atom «$1»",
+       "feed-atom": "Atom",
        "red-link-title": "$1 (η σελίδα δεν υπάρχει)",
        "sort-descending": "Φθίνουσα ταξινόμηση",
        "sort-ascending": "Αύξουσα ταξινόμηση",
        "viewsource": "Προβολή κώδικα",
        "viewsource-title": "Προβολή πηγαίου κώδικα για τη σελίδα $1",
        "actionthrottled": "Η ενέργεια παρεμποδίστηκε",
-       "actionthrottledtext": "Σαν Î¼Î­Ï\84Ï\81ο ÎºÎ±Ï\84ά Ï\84οÏ\85 spam, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.",
+       "actionthrottledtext": "Σαν Î¼Î­Ï\84Ï\81ο ÎºÎ±Ï\84ά Ï\84ηÏ\82 ÎºÎ±Ï\84άÏ\87Ï\81ηÏ\83ηÏ\82, υπάρχει όριο στην εκτέλεση αυτής της ενέργειας πολλές φορές μέσα σε μικρό χρονικό διάστημα και έχετε ξεπεράσει αυτό το όριο.\nΠαρακαλούμε δοκιμάστε ξανά σε λίγα λεπτά.",
        "protectedpagetext": "Αυτή η σελίδα έχει προστατευθεί για πρόληψη επεξεργασίας ή άλλες ενέργειες.",
        "viewsourcetext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα αυτής της σελίδας.",
        "viewyourtext": "Μπορείτε να προβάλετε και να αντιγράψετε τον πηγαίο κώδικα των <strong>επεξεργασιών σας</strong> σε αυτήν τη σελίδα.",
        "newarticle": "(Νέο)",
        "newarticletext": "Ακολουθήσατε ένα σύνδεσμο προς μια σελίδα που δεν υπάρχει ακόμα. \nΓια να δημιουργήσετε τη σελίδα, αρχίστε να πληκτρολογείτε στο παρακάτω πλαίσιο (δείτε τη [$1 σελίδα βοήθειας] για περισσότερες πληροφορίες).\nΑν έχετε βρεθεί εδώ κατά λάθος, πατήστε το κουμπί '''πίσω''' στον περιηγητή σας.",
        "anontalkpagetext": "----''Αυτή η σελίδα συζήτησης προορίζεται για ανώνυμο χρήστη που δεν έχει δημιουργήσει ακόμα λογαριασμό ή που δεν τον χρησιμοποιεί. Έτσι για την ταυτοποίηση ενός ανώνυμου χρήστη χρησιμοποιείται η διεύθυνση IP του. Είναι όμως πιθανόν η διεύθυνση αυτή να είναι κοινή για πολλούς διαφορετικούς χρήστες.  Αν είστε ανώνυμος χρήστης και νομίζετε ότι άσχετα σχόλια απευθύνθηκαν σε σας, παρακαλούμε να [[Special:UserLogin/signup|δημιουργήσετε ένα λογαριασμό]] ή να  [[Special:UserLogin|συνδεθείτε]] για να αποφεύγεται η μελλοντική σύγχυση με άλλους ανώνυμους χρήστες.''",
-       "noarticletext": "Î\94εν Ï\85Ï\80άÏ\81Ï\87ει Ï\80Ï\81οÏ\82 Ï\84ο Ï\80αÏ\81Ï\8cν ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Ï\83ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα. Î\9cÏ\80οÏ\81είÏ\84ε Î½Î± [[Special:Search/{{PAGENAME}}|αναζηÏ\84ήÏ\83εÏ\84ε Î±Ï\85Ï\84Ï\8cν Ï\84ον Ï\84ίÏ\84λο Ï\83ελίδαÏ\82]] Ï\83ε Î¬Î»Î»ÎµÏ\82 Ï\83ελίδεÏ\82,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Î½Î± Î±Î½Î±Î¶Î·Ï\84ήÏ\83εÏ\84ε Ï\84α Ï\83Ï\87εÏ\84ικά Î¹Ï\83Ï\84οÏ\81ικά],\nή Î½Î± [{{fullurl:{{FULLPAGENAME}}|action=edit}} ÎµÏ\80εξεÏ\81γαÏ\83Ï\84είÏ\84ε Ï\84η Ï\83ελίδα Î±Ï\85Ï\84ή]</span>.",
-       "noarticletext-nopermission": "Δεν υπάρχει κείμενο σε αυτή τη σελίδα αυτή τη στιγμή.\nΜπορείτε να [[Special:Search/{{PAGENAME}}|αναζητήσετε αυτόν τον τίτλο σελίδας]] σε άλλες σελίδες, ή <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} να ψάξετε στις σχετικές καταγραφές]</span>, αλλά δεν έχετε την άδεια να δημιουργήσετε αυτή τη σελίδα.",
+       "noarticletext": "Î\94εν Ï\85Ï\80άÏ\81Ï\87ει Ï\80Ï\81οÏ\82 Ï\84ο Ï\80αÏ\81Ï\8cν ÎºÎµÎ¯Î¼ÎµÎ½Î¿ Ï\83ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα. Î\9cÏ\80οÏ\81είÏ\84ε Î½Î± [[Special:Search/{{PAGENAME}}|αναζηÏ\84ήÏ\83εÏ\84ε Î±Ï\85Ï\84Ï\8cν Ï\84ον Ï\84ίÏ\84λο Ï\83ελίδαÏ\82]] Ï\83ε Î¬Î»Î»ÎµÏ\82 Ï\83ελίδεÏ\82,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Î½Î± Î±Î½Î±Î¶Î·Ï\84ήÏ\83εÏ\84ε Ï\84ιÏ\82 Ï\83Ï\87εÏ\84ικέÏ\82 ÎºÎ±Ï\84αγÏ\81αÏ\86έÏ\82],\nή Î½Î± [{{fullurl:{{FULLPAGENAME}}|action=edit}} ÎµÏ\80εξεÏ\81γαÏ\83Ï\84είÏ\84ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα]</span>.",
+       "noarticletext-nopermission": "Δεν υπάρχει προς το παρόν κείμενο σε αυτή τη σελίδα.\nΜπορείτε να [[Special:Search/{{PAGENAME}}|αναζητήσετε αυτόν τον τίτλο σελίδας]] σε άλλες σελίδες, ή <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} να ψάξετε στις σχετικές καταγραφές]</span>, αλλά δεν έχετε την άδεια να δημιουργήσετε αυτή τη σελίδα.",
        "missing-revision": "Δεν υπάρχει αναθεώρηση με αριθμό $1 για τη σελίδα με όνομα «{{FULLPAGENAME}}».\n\nΑυτό συνήθως προκαλείται από παλιό σύνδεσμο ιστορικού προς σελίδα που έχει διαγραφεί.\nΛεπτομέρειες θα βρείτε στο [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ημερολόγιο καταγραφής διαγραφών].",
        "userpage-userdoesnotexist": "Ο Λογαριασμός του χρήστη \"<nowiki>$1</nowiki>\" δεν είναι καταχωρημένος. Παρακαλώ δείτε αν θα θέλατε να δημιουργήσετε/επεξεργαστείτε αυτή τη σελίδα.",
        "userpage-userdoesnotexist-view": "Ο λογαριασμός χρήστη «$1» δεν είναι εγγεγραμμένος.",
        "currentrev-asof": "Τελευταία αναθεώρηση της $1",
        "revisionasof": "Αναθεώρηση της $1",
        "revision-info": "Αναθεώρηση ως προς $1 από {{GENDER:$6|τον|την}} $2 $7",
-       "previousrevision": "&larr;Παλαιότερη αναθεώρηση",
+       "previousrevision": "← Παλαιότερη αναθεώρηση",
        "nextrevision": "Νεώτερη αναθεώρηση &rarr;",
        "currentrevisionlink": "Τελευταία αναθεώρηση",
        "cur": "τρέχουσα",
        "textmatches": "Κείμενα σελίδων που ανταποκρίνονται:",
        "notextmatches": "Δεν υπάρχουν αντίστοιχα κείμενα σελίδων.",
        "prevn": "{{PLURAL:$1|$1}} προηγουμένων",
-       "nextn": "{{PLURAL:$1|$1}} επομένων",
+       "nextn": "{{PLURAL:$1|$1}} επόμενων",
        "prev-page": "προηγούμενη σελίδα",
        "next-page": "επόμενη σελίδα",
        "prevn-title": "{{PLURAL:$1|Προηγούμενο $1 αποτέλεσμα|Προηγούμενα $1 αποτελέσματα}}",
        "showingresultsinrange": "Παρακάτω {{PLURAL:$1|εμφανίζεται μέχρι <strong>1</strong> αποτέλεσμα|εμφανίζονται μέχρι <strong>$1</strong> αποτελέσματα}} σε εύρος από το Νο <strong>$2</strong> μέχρι το Νο <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$5|Αποτέλεσμα <strong>$1</strong> από <strong>$3</strong>|Αποτελέσματα <strong>$1 - $2</strong> από <strong>$3</strong>}}",
        "search-nonefound": "Δεν υπάρχουν αποτελέσματα που να ικανοποιούν το ερώτημα.",
+       "search-nonefound-thiswiki": "Δεν υπάρχουν αποτελέσματα που να ικανοποιούν το ερώτημα σε αυτόν τον ιστότοπο.",
        "powersearch-legend": "Αναλυτική αναζήτηση",
        "powersearch-ns": "Αναζήτηση στις περιοχές ονομάτων:",
        "powersearch-togglelabel": "Έλεγχος:",
        "prefs-help-recentchangescount": "Αυτό περιλαμβάνει τις πρόσφατες αλλαγές, τα ιστορικά των σελίδων, και τα αρχεία διαγραφών.",
        "prefs-help-watchlist-token2": "Αυτό είναι το μυστικό κλειδί για την web τροφοδοσία  της λίστας παρακολούθησής σας.\nΌποιος το γνωρίζει θα είναι σε θέση να διαβάσει την λίστα παρακολούθησης σας, οπότε μην τον μοιράζεστε.\n[[Special:ResetTokens|Κάνε κλικ εδώ εάν θέλετε να τον επαναφέρετε]].",
        "savedprefs": "Οι προτιμήσεις σας έχουν αποθηκευτεί.",
+       "savedrights": "Τα δικαιώματα χρήστη από {{GENDER:$1|$1}} έχουν αποθηκευτεί.",
        "timezonelegend": "Ζώνη ώρας:",
        "localtime": "Εμφάνιση τοπικής ώρας:",
        "timezoneuseserverdefault": "Χρήση της προεπιλογής του wiki ($1)",
        "enhancedrc-history": "ιστορικό",
        "recentchanges": "Πρόσφατες αλλαγές",
        "recentchanges-legend": "Επιλογές πρόσφατων αλλαγών",
-       "recentchanges-summary": "ΠαÏ\81ακολοÏ\85θήÏ\83Ï\84ε Ï\83ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα Ï\84ιÏ\82 Ï\80ιο Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­Ï\82 Ï\83Ï\84ο Wiki.",
+       "recentchanges-summary": "ΠαÏ\81ακολοÏ\85θήÏ\83Ï\84ε Ï\84ιÏ\82 Ï\80ιο Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­Ï\82 Ï\83Ï\84ο wiki Ï\83ε Î±Ï\85Ï\84ή Ï\84η Ï\83ελίδα.",
        "recentchanges-noresult": "Χωρίς αλλαγές κατά τη διάρκεια της συγκεκριμένης χρονικής περιόδου, με αυτά τα κριτήρια.",
        "recentchanges-feed-description": "Παρακολούθηση των πιο πρόσφατων αλλαγών στο wiki σε αυτή τη ροή.",
        "recentchanges-label-newpage": "Αυτή η επεξεργασία δημιούργησε μια νέα σελίδα",
-       "recentchanges-label-minor": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± Î¼Î¹ÎºÏ\81οαλλαγή",
+       "recentchanges-label-minor": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± Î¼Î¹ÎºÏ\81ή ÎµÏ\80εξεÏ\81γαÏ\83ία",
        "recentchanges-label-bot": "Αυτή η επεξεργασία έγινε από ένα ρομπότ",
        "recentchanges-label-unpatrolled": "Αυτή η επεξεργασία δεν έχει ελεγχθεί ακόμα",
        "recentchanges-label-plusminus": "Μεταβολή του μεγέθους της σελίδας σε bytes",
        "recentchanges-legend-heading": "'''Υπόμνημα:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (δείτε [[Special:NewPages|κατάλογος νέων σελίδων]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "Παρακάτω {{PLURAL:$5|είναι η αλλαγή|είναι οι αλλαγές}} από <strong>$3, $4</strong> (έως <strong>$1</strong> που εμφανίζεται).",
        "rclistfrom": "Εμφάνιση νέων αλλαγών αρχίζοντας από τις $3 στις $2",
-       "rcshowhideminor": "$1 μικροεπεξεργασιών",
+       "rcshowhideminor": "$1 μικρών επεξεργασιών",
        "rcshowhideminor-show": "Εμφάνιση",
        "rcshowhideminor-hide": "Απόκρυψη",
        "rcshowhidebots": "$1 ρομπότ",
        "rcshowhideliu": "$1 εγγεγραμμένων χρηστών",
        "rcshowhideliu-show": "Εμφάνιση",
        "rcshowhideliu-hide": "Απόκρυψη",
-       "rcshowhideanons": "$1 Î±Î½Ï\89νÏ\8dμων χρηστών",
+       "rcshowhideanons": "$1 Î±Î½Ï\8eνÏ\85μων χρηστών",
        "rcshowhideanons-show": "Εμφάνιση",
        "rcshowhideanons-hide": "Απόκρυψη",
        "rcshowhidepatr": "$1 ελεγμένων επεξεργασιών",
        "recentchangeslinked-feed": "Σχετικές αλλαγές",
        "recentchangeslinked-toolbox": "Σχετικές αλλαγές",
        "recentchangeslinked-title": "Αλλαγές σχετικές με το «$1»",
-       "recentchangeslinked-summary": "Î\91Ï\85Ï\84Ï\8cÏ\82 ÎµÎ¯Î½Î±Î¹ Î­Î½Î± ÎºÎ±Ï\84άλογοÏ\82 Î±Î»Î»Î±Î³Ï\8eν Ï\80οÏ\85 Î­Î³Î¹Î½Î±Î½ Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84α Ï\83ε Ï\83ελίδεÏ\82 Ï\80οÏ\85 Ï\83Ï\85νδέονÏ\84αι Î±Ï\80Ï\8c Î¼Î¹Î± ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένη Ï\83ελίδα (ή Ï\83ε Î¼Î­Î»Î· Î¼Î¹Î±Ï\82 ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένηÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίαÏ\82).\nΣελίδεÏ\82 Ï\83Ï\84ην [[Special:Watchlist|λίστα παρακολούθησής]] σας είναι '''έντονες'''.",
+       "recentchangeslinked-summary": "Î\91Ï\85Ï\84Ï\8cÏ\82 ÎµÎ¯Î½Î±Î¹ Î­Î½Î± ÎºÎ±Ï\84άλογοÏ\82 Î±Î»Î»Î±Î³Ï\8eν Ï\80οÏ\85 Î­Î³Î¹Î½Î±Î½ Ï\80Ï\81Ï\8cÏ\83Ï\86αÏ\84α Ï\83ε Ï\83ελίδεÏ\82 Ï\80οÏ\85 Ï\83Ï\85νδέονÏ\84αι Î±Ï\80Ï\8c Î¼Î¹Î± ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένη Ï\83ελίδα (ή Ï\83ε Î¼Î­Î»Î· Î¼Î¹Î±Ï\82 ÎºÎ±Î¸Î¿Ï\81ιÏ\83μένηÏ\82 ÎºÎ±Ï\84ηγοÏ\81ίαÏ\82).\nΣελίδεÏ\82 Ï\80οÏ\85 Ï\85Ï\80άÏ\81Ï\87οÏ\85ν Ï\83Ï\84η [[Special:Watchlist|λίστα παρακολούθησής]] σας είναι '''έντονες'''.",
        "recentchangeslinked-page": "Όνομα σελίδας:",
        "recentchangeslinked-to": "Εμφάνιση αλλαγών σε σελίδες συνδεδεμένες με την δεδομένη σελίδα αντί αυτής",
        "recentchanges-page-added-to-category": "Η σελίδα [[:$1]] προστέθηκε στην κατηγορία",
        "upload-form-label-infoform-description": "Περιγραφή",
        "upload-form-label-usage-title": "Χρήση",
        "upload-form-label-usage-filename": "Όνομα αρχείου",
+       "foreign-structured-upload-form-label-own-work": "Αυτό είναι το δικό μου έργο",
        "foreign-structured-upload-form-label-infoform-categories": "Κατηγορίες",
        "foreign-structured-upload-form-label-infoform-date": "Ημερομηνία",
+       "foreign-structured-upload-form-label-own-work-message-local": "Επιβεβαιώνω ότι επιφορτώνω  αυτό το αρχείο κατά τους όρους της υπηρεσίας και πολιτικές αδειοδότησης για τον ιστότοπο {{SITENAME}}.",
        "foreign-structured-upload-form-label-own-work-message-default": "Καταλαβαίνω ότι είμαι φόρτωμα αυτό το αρχείο σε ένα κοινόχρηστο αρχείο. Επιβεβαιώνω ότι είμαι τόσο ακόλουθες τους όρους της υπηρεσίας και πολιτικές αδειοδότησης.",
        "foreign-structured-upload-form-label-not-own-work-message-default": "Εάν δεν είστε σε θέση να ανεβάσετε αυτό το αρχείο στο πλαίσιο των πολιτικών της shared repository, παρακαλώ κλείστε αυτό το παράθυρο διαλόγου και να επιχειρήσετε μια άλλη μέθοδος.",
        "backend-fail-stream": "Αδύνατη η μετάδοση του αρχείου $1.",
        "duplicatesoffile": "{{PLURAL:$1|Το ακόλουθο αρχείο είναι διπλότυπο|Τα $1 ακόλουθα αρχεία είναι διπλότυπα}} αυτού του αρχείου ([[Special:FileDuplicateSearch/$2|περισσότερες λεπτομέρειες]]):",
        "sharedupload": "Το αρχείο αυτό είναι από το $1 και είναι δυνατόν να χρησιμοποιείται από άλλα εγχειρήματα.",
        "sharedupload-desc-there": "Αυτό το αρχείο προέρχεται από το $1 και ενδέχεται να χρησιμοποιείται και από άλλα εγχειρήματα.\nΠαρακαλούμε δείτε τη [$2 σελίδα περιγραφής του αρχείου] για περισσότερες πληροφορίες.",
-       "sharedupload-desc-here": "Το Î±Ï\81Ï\87είο ÎµÎ¯Î½Î±Î¹ Î±Ï\80Ï\8c Ï\84ο $1 ÎºÎ±Î¹ ÎµÎ½Î´Î­Ï\87εÏ\84αι Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84αι Î±Ï\80Ï\8c Î¬Î»Î»Î± ÎµÎ³Ï\87ειÏ\81ήμαÏ\84α.\nÎ\97 Ï\80εÏ\81ιγÏ\81αÏ\86ή Ï\83Ï\84η [$2 Ï\83ελίδα Ï\80εÏ\81ιγÏ\81αÏ\86ήÏ\82 Î±Ï\81Ï\87είοÏ\85] εμφανίζεται παρακάτω.",
+       "sharedupload-desc-here": "Î\91Ï\85Ï\84Ï\8c Ï\84ο Î±Ï\81Ï\87είο ÎµÎ¯Î½Î±Î¹ Î±Ï\80Ï\8c Ï\84ο $1 ÎºÎ±Î¹ ÎµÎ½Î´Î­Ï\87εÏ\84αι Î½Î± Ï\87Ï\81ηÏ\83ιμοÏ\80οιείÏ\84αι Î±Ï\80Ï\8c Î¬Î»Î»Î± ÎµÎ³Ï\87ειÏ\81ήμαÏ\84α.\nÎ\97 Ï\80εÏ\81ιγÏ\81αÏ\86ή Ï\83Ï\84η [$2 Ï\83ελίδα Ï\80εÏ\81ιγÏ\81αÏ\86ήÏ\82 Ï\84οÏ\85 ÎµÎºÎµÎ¯], εμφανίζεται παρακάτω.",
        "sharedupload-desc-edit": "Αυτό το αρχείο είναι από  $1  και μπορεί να χρησιμοποιείται από άλλα εγχειρήματα.\nΊσως θέλετε να επεξεργαστείτε την περιγραφή του στην   [$2  σελίδα περιγραφής αρχείου] εκεί.",
        "sharedupload-desc-create": "Αυτό το αρχείο είναι από $1 και μπορεί να χρησιμοποιείται από άλλα εγχειρήματα.\nΊσως θέλετε να επεξεργαστείτε την περιγραφή του στην [$2 σελίδα περιγραφής αρχείου] εκεί.",
        "filepage-nofile": "Κανένα αρχείο με αυτό το όνομα δεν υπάρχει",
        "booksources-invalid-isbn": "Το δοσμένο ISBN δεν φαίνεται να είναι έγκυρο· ελέγξτε για λάθη κατά την αντιγραφή από την αρχική πηγή.",
        "specialloguserlabel": "",
        "speciallogtitlelabel": "Στόχος (τίτλος ή {{ns:user}}:χρήστης για χρήστη):",
-       "log": "Î\91Ï\81Ï\87εία καταγραφών",
+       "log": "Î\91Ï\81Ï\87είο καταγραφών",
        "all-logs-page": "Όλες οι δημόσιες καταγραφές γεγονότων",
        "alllogstext": "Εποπτική εμφάνιση όλων των ενεργειών φόρτωσης αρχείων, διαγραφής, προστασίας, φραγής και όλων των καταγραφών των διαχειριστών στο αρχείο γεγονότων του {{SITENAME}}. Μπορείτε να περιορίσετε τα αποτελέσματα που εμφανίζονται επιλέγοντας συγκεκριμένο είδος γεγονότων, όνομα χρήστη ή τη σελίδα που επηρεάστηκε.",
        "logempty": "Δεν υπάρχουν στοιχεία που να ταιριάζουν στο αρχείο καταγραφών.",
        "wlheader-showupdated": "Σελίδες που έχουν υποστεί αλλαγές από την τελευταία φορά που τις επισκεφθήκατε εμφανίζονται με '''έντονους χαρακτήρες'''.",
        "wlnote": "Παρακάτω είναι {{PLURAL:$1|η πιο πρόσφατη αλλαγή|οι <strong>$1</strong> πιο πρόσφατες αλλαγές}} κατά τη διάρκεια {{PLURAL:$2|της τελευταίας ώρας|των <strong>$2</strong> τελευταίων ωρών}} ως προς τις $3 στις $4.",
        "wlshowlast": "Εμφάνιση των τελευταίων $1 ωρών $2 ημερών",
+       "watchlistall2": "όλα",
+       "watchlist-hide": "Απόκρυψη",
+       "wlshowtime": "Εμφάνιση τελευταίου:",
+       "wlshowhideminor": "μικρές τροποποιήσεις",
+       "wlshowhideliu": "εγγεγραμμένοι χρήστες",
+       "wlshowhidemine": "οι επεξεργασίες μου",
        "watchlist-options": "Επιλογές λίστας παρακολούθησης",
        "watching": "Παρακολούθηση...",
        "unwatching": "Μη παρακολούθηση...",
        "deletepage": "Διαγραφή σελίδας",
        "confirm": "Επιβεβαίωση",
        "excontent": "το περιεχόμενο ήταν: '$1'",
-       "excontentauthor": "το περιεχόμενο ήταν: \"$1\", (και οι μοναδικές συνεισφορές ήταν του \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|συζήτηση]])",
+       "excontentauthor": "το περιεχόμενο ήταν: \"$1\", και οι μοναδικές συνεισφορές ήταν του \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|συζήτηση]])",
        "exbeforeblank": "το περιεχόμενο πριν τη διαγραφή ήταν: «$1»",
        "delete-confirm": "Διαγραφή του \"$1\"",
        "delete-legend": "Διαγραφή",
        "changecontentmodel-reason-label": "Αιτία:",
        "changecontentmodel-success-title": "Το περιεχόμενο πρότυπο άλλαξε",
        "changecontentmodel-success-text": "Ο τύπος περιεχομένου του [[:$1]] έχει αλλάξει.",
+       "changecontentmodel-cannot-convert": "Το περιεχόμενο του [[:$1]] δεν μπορεί να μετατραπεί σε τύπο $2.",
        "changecontentmodel-nodirectediting": "Το μοντέλο περιεχομένου $1 δεν υποστηρίζει την άμεση επεξεργασία",
        "log-name-contentmodel": "Αρχείο καταγραφής αλλαγών μοντέλου περιεχομένου",
        "log-description-contentmodel": "Συμβάντα που σχετίζονται με τα μοντέλα περιεχομένου μιας σελίδας",
        "undelete-show-file-submit": "Ναι",
        "namespace": "Ονοματοχώρος:",
        "invert": "Αντιστροφή επιλογής",
-       "tooltip-invert": "Επιλέξτε αυτό το πλαίσιο για να αποκρύψετε αλλαγές σε σελίδες μέσα στον επιλεγμένο χώρο ονομάτων (και των συσχετικών χώρων ονομάτων, εάν επιλεγχθούν)",
+       "tooltip-invert": "Επιλέξτε αυτό το κουτάκι για να αποκρύψετε αλλαγές σε σελίδες μέσα στον επιλεγμένο χώρο ονομάτων (και των συσχετικών χώρων ονομάτων, εάν επιλεχθούν)",
        "tooltip-whatlinkshere-invert": "Ενεργοποιήστε αυτό το πλαίσιο ελέγχου για να αποκρύψετε συνδέσμους από σελίδες εντός του επιλεγμένου ονοματοχώρου.",
        "namespace_association": "Συσχετισμένος ονοματοχώρος",
        "tooltip-namespace_association": "Επιλέξτε αυτό το κουτάκι για να συμπεριλάβετε τον ονοματοχώρο συζήτησης ή θέματος που σχετίζεται με τον επιλεγμένο ονοματοχώρο",
        "blanknamespace": "(Κύριος ονοματοχώρος)",
-       "contributions": "Συνεισφορές {{GENDER:$1|χρήστη|χρήστριας}}",
+       "contributions": "Συνεισφορές {{GENDER:$1|χρήστη}}",
        "contributions-title": "Συνεισφορές χρήστη για {{GENDER:$1|τον|την}} $1",
        "mycontris": "Συνεισφορές",
        "contribsub2": "Για {{GENDER:$3|$1}} ($2)",
        "tooltip-pt-preferences": "Οι προτιμήσεις σας",
        "tooltip-pt-watchlist": "Η λίστα με τις σελίδες που παρακολουθείτε για αλλαγές",
        "tooltip-pt-mycontris": "Κατάλογος των συνεισφορών σας",
-       "tooltip-pt-login": "Σας ενθαρρύνουμε να συνδεθείτε&middot; ωστόσο δεν είναι υποχρεωτικό",
+       "tooltip-pt-login": "Σας ενθαρρύνουμε να συνδεθείτε· ωστόσο, δεν είναι υποχρεωτικό",
        "tooltip-pt-logout": "Έξοδος",
        "tooltip-pt-createaccount": "Σας ενθαρρύνουμε να δημιουργήσετε ένα λογαριασμό και να συνδεθείτε· ωστόσο, δεν είναι υποχρεωτικό",
        "tooltip-ca-talk": "Συζήτηση για τη σελίδα περιεχομένου",
        "tooltip-ca-edit": "Επεξεργασία αυτής της σελίδας",
        "tooltip-ca-addsection": "Ξεκίνημα νέας ενότητας",
-       "tooltip-ca-viewsource": "Αυτή η σελίδα είναι προστατευμένη.\nΜπορείτε να προβάλετε τον πηγαίο της κώδικα.",
-       "tooltip-ca-history": "ΠαλιέÏ\82 Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83ειÏ\82 Ï\84οÏ\85 Î¬Ï\81θÏ\81οÏ\85.",
+       "tooltip-ca-viewsource": "Αυτή η σελίδα είναι προστατευμένη.\nΜπορείτε να προβάλετε τον κώδικά της",
+       "tooltip-ca-history": "ΠαλιέÏ\82 Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83ειÏ\82 Ï\84ηÏ\82 Ï\83ελίδαÏ\82",
        "tooltip-ca-protect": "Προστασία αυτής της σελίδας",
        "tooltip-ca-unprotect": "Αλλαγή ρυθμίσεων προστασίας αυτής της σελίδας",
        "tooltip-ca-delete": "Διαγραφή αυτής της σελίδας",
        "tooltip-search-go": "Μετάβαση σε μια σελίδα με αυτό ακριβώς το όνομα εάν υπάρχει",
        "tooltip-search-fulltext": "Αναζήτηση σε σελίδες για αυτό το κείμενο",
        "tooltip-p-logo": "Επίσκεψη στην αρχική σελίδα",
-       "tooltip-n-mainpage": "Î\95Ï\80ιÏ\83κεÏ\85τείτε την αρχική σελίδα",
-       "tooltip-n-mainpage-description": "Î\95Ï\80ιÏ\83κεÏ\86θείÏ\84ε Ï\84ην ÎºÏ\8dÏ\81ια σελίδα",
+       "tooltip-n-mainpage": "Î\95Ï\80ιÏ\83κεÏ\86τείτε την αρχική σελίδα",
+       "tooltip-n-mainpage-description": "Î\95Ï\80ιÏ\83κεÏ\86θείÏ\84ε Ï\84ην Î±Ï\81Ï\87ική σελίδα",
        "tooltip-n-portal": "Σχετικά με το εγχείρημα, τι μπορείτε να κάνετε, πού μπορείτε να βρείτε τι",
-       "tooltip-n-currentevents": "ΠληÏ\81οÏ\86οÏ\81ίεÏ\82 Î³Î¹Î± Ï\80Ï\81Ï\8cÏ\83Ï\86ατα γεγονότα",
+       "tooltip-n-currentevents": "Î\92Ï\81είÏ\84ε Î²Î±Ï\83ικέÏ\82 Ï\80ληÏ\81οÏ\86οÏ\81ίεÏ\82 Î³Î¹Î± Ï\84Ï\81έÏ\87οντα γεγονότα",
        "tooltip-n-recentchanges": "Λίστα πρόσφατων αλλαγών στο wiki",
        "tooltip-n-randompage": "Φόρτωση μιας τυχαίας σελίδας",
-       "tooltip-n-help": "Το μέρος για να βρείτε τις απαντήσεις που ψάχνετε.",
-       "tooltip-t-whatlinkshere": "Î\9bίÏ\83Ï\84α Ï\8cλÏ\89ν Ï\84Ï\89ν Ï\83ελίδÏ\89ν Ï\80οÏ\85 Î­Ï\87οÏ\85ν Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\82 Ï\84α εδώ",
-       "tooltip-t-recentchangeslinked": "ΠÏ\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­Ï\82 Ï\83ε Ï\83ελίδεÏ\82 Ï\83Ï\84ιÏ\82 Î¿Ï\80οίεÏ\82 Î¿Î´Î·Î³Î¿Ï\8dν Ï\83Ï\8dνδεÏ\83μοι Î±Ï\80Ï\8c Î±Ï\85Ï\84ήν Ï\84η Ï\83ελίδα",
+       "tooltip-n-help": "Το μέρος για να βρείτε αυτό που ψάχνετε",
+       "tooltip-t-whatlinkshere": "Î\9aαÏ\84άλογοÏ\82 Ï\8cλÏ\89ν Ï\84Ï\89ν Ï\83ελίδÏ\89ν wiki Ï\80οÏ\85 Î­Ï\87οÏ\85ν Ï\83Ï\85νδέÏ\83μοÏ\85Ï\82 Ï\80Ï\81οÏ\82 εδώ",
+       "tooltip-t-recentchangeslinked": "ΠÏ\81Ï\8cÏ\83Ï\86αÏ\84εÏ\82 Î±Î»Î»Î±Î³Î­Ï\82 Ï\83ε Ï\83ελίδεÏ\82 Ï\80οÏ\85 Ï\80αÏ\81αÏ\80έμÏ\80οÏ\85ν Î¿Î¹ Ï\83Ï\8dνδεÏ\83μοι Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 Ï\83ελίδαÏ\82",
        "tooltip-feed-rss": "RSS feed για αυτή τη σελίδα",
        "tooltip-feed-atom": "Ροή Atom για αυτήν τη σελίδα",
        "tooltip-t-contributions": "Λίστα με τις συνεισφορές αυτού του χρήστη",
        "tooltip-t-emailuser": "Αποστολή μηνύματος ηλεκτρονικής αλληλογραφίας σε αυτόν το χρήστη",
        "tooltip-t-info": "Περισσότερες πληροφορίες σχετικά με αυτήν τη σελίδα",
        "tooltip-t-upload": "Ανέβασμα αρχείων",
-       "tooltip-t-specialpages": "Î\97 Î»ίστα με όλες τις ειδικές σελίδες",
+       "tooltip-t-specialpages": "Î\9bίστα με όλες τις ειδικές σελίδες",
        "tooltip-t-print": "Εκτυπώσιμη έκδοση αυτής της σελίδας",
        "tooltip-t-permalink": "Μόνιμος σύνδεσμος σε αυτή την έκδοση της σελίδας",
-       "tooltip-ca-nstab-main": "Προβολή σελίδας περιεχομένου",
+       "tooltip-ca-nstab-main": "ΠÏ\81οβολή Ï\84ηÏ\82 Ï\83ελίδαÏ\82 Ï\80εÏ\81ιεÏ\87ομένοÏ\85",
        "tooltip-ca-nstab-user": "Προβολή της σελίδας χρήστη",
        "tooltip-ca-nstab-media": "Δείτε τη σελίδα πολυμέσων",
-       "tooltip-ca-nstab-special": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± ÎµÎ¹Î´Î¹ÎºÎ® Ï\83ελίδα, ÎºÎ±Î¹ Î´ÎµÎ½ Î¼Ï\80οÏ\81εί Î½Î± ÎµÏ\80εξεÏ\81γαÏ\83Ï\84εί",
+       "tooltip-ca-nstab-special": "Î\91Ï\85Ï\84ή ÎµÎ¯Î½Î±Î¹ Î¼Î¹Î± ÎµÎ¹Î´Î¹ÎºÎ® Ï\83ελίδα, ÎºÎ±Î¹ Î´ÎµÎ½ ÎµÏ\80ιδέÏ\87εÏ\84αι ÎµÏ\80εξεÏ\81γαÏ\83ία",
        "tooltip-ca-nstab-project": "Προβολή της σελίδας εγχειρήματος",
        "tooltip-ca-nstab-image": "Προβολή της σελίδας αρχείου",
        "tooltip-ca-nstab-mediawiki": "Δείτε το μήνυμα του συστήματος",
        "tooltip-ca-nstab-category": "Προβολή της σελίδας κατηγορίας",
        "tooltip-minoredit": "Χαρακτηρισμός αυτής της επεξεργασίας ως μικροεπεξεργασία",
        "tooltip-save": "Αποθήκευση των αλλαγών σας",
-       "tooltip-preview": "Προεπισκόπηση των αλλαγών σας, παρακαλούμε χρησιμοποιήστε την πριν αποθηκεύσετε!",
+       "tooltip-preview": "Προεπισκόπηση των αλλαγών σας. Παρακαλούμε χρησιμοποιήστε την πριν αποθηκεύσετε!",
        "tooltip-diff": "Εμφάνιση των αλλαγών που κάνατε στο κείμενο",
        "tooltip-compareselectedversions": "Προβολή των διαφορών ανάμεσα στις δύο επιλεγμένες αναθεωρήσεις αυτής της σελίδας",
        "tooltip-watch": "Προσθήκη αυτής της σελίδας στη λίστα παρακολούθησής σας",
        "exif-primarychromaticities": "Πρωτεύοντες χρωματισμοί",
        "exif-ycbcrcoefficients": "Συντελεστές μητρών μετασχηματισμού χρώματος",
        "exif-referenceblackwhite": "Ζεύγος μαύρων και άσπρων αξιών αναφοράς",
-       "exif-datetime": "Ημερομηνία και ώρα τελευταίας επεξεργασίας.",
+       "exif-datetime": "Ημερομηνία και ώρα τελευταίας επεξεργασίας αρχείου",
        "exif-imagedescription": "Τίτλος εικόνας",
        "exif-make": "Κατασκευαστής φωτογραφικής μηχανής",
        "exif-model": "Μοντέλο φωτογραφικής μηχανής",
        "htmlform-cloner-create": "Προσθήκη περισσοτέρων",
        "htmlform-cloner-delete": "Αφαίρεση",
        "htmlform-cloner-required": "Απαιτείται τουλάχιστον μία τιμή.",
-       "htmlform-title-not-exists": "Î\9f Ï\84ίÏ\84λοÏ\82 $1 δεν υπάρχει.",
+       "htmlform-title-not-exists": "Το $1 δεν υπάρχει.",
        "htmlform-user-not-exists": "Δεν υπάρχει χρήστης με όνομα <strong>$1</strong>.",
        "htmlform-user-not-valid": "Το <strong>$1</strong> δεν είναι έγκυρο όνομα χρήστη.",
        "sqlite-has-fts": "$1 με υποστήριξη αναζήτησης πλήρους κειμένου",
index c4e7d92..8d85bbd 100644 (file)
        "wlheader-showupdated": "Pages that have been changed since you last visited them are shown in <strong>bold</strong>.",
        "wlnote": "Below {{PLURAL:$1|is the last change|are the last <strong>$1</strong> changes}} in the last {{PLURAL:$2|hour|<strong>$2</strong> hours}}, as of $3, $4.",
        "wlshowlast": "Show last $1 hours $2 days",
+       "watchlistall2": "all",
+       "watchlist-hide": "Hide",
+       "wlshowtime": "Show last:",
+       "wlshowhideminor": "minor edits",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "registered users",
+       "wlshowhideanons": "anonymous users",
+       "wlshowhidepatr": "patrolled edits",
+       "wlshowhidemine": "my edits",
        "watchlist-options": "Watchlist options",
        "watching": "Watching...",
        "unwatching": "Unwatching...",
index a64620c..314b1b1 100644 (file)
        "wlheader-showupdated": "Paĝoj montriĝis per '''dikaj literoj''' kiuj estis ŝanĝitaj ekde vi laste vizitis.",
        "wlnote": "Jen la {{PLURAL:$1|lasta redakto|lastaj <strong>$1</strong> redaktoj}} dum la {{PLURAL:$2|lasta horo|lastaj <strong>$2</strong> horoj}}, ekde $3, $4.",
        "wlshowlast": "Montri el lastaj $1 horoj $2 tagoj",
+       "watchlistall2": "ĉiuj",
        "watchlist-options": "Opcioj por atentaro",
        "watching": "Aldonata al la atentaro...",
        "unwatching": "Malatentante...",
index b8992af..a064e65 100644 (file)
        "wlheader-showupdated": "Las páginas modificadas desde tu última visita aparecen en <strong>negrita</strong>.",
        "wlnote": "A continuación {{PLURAL:$1|se muestra el último cambio|se muestran los últimos <strong>$1</strong> cambios}} en {{PLURAL:$2|la última hora|las últimas <strong>$2</strong> horas}} a fecha de $4 $3.",
        "wlshowlast": "Ver los cambios de las últimas $1 horas, $2 días",
+       "watchlistall2": "todos",
+       "wlshowhideminor": "ediciones menores",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "usuarios registrados",
+       "wlshowhideanons": "usuarios anónimos",
+       "wlshowhidepatr": "ediciones verificadas",
+       "wlshowhidemine": "mis ediciones",
        "watchlist-options": "Opciones de la lista de seguimiento",
        "watching": "Vigilando...",
        "unwatching": "Eliminando de la lista de seguimiento...",
index ce15fe8..4f1bf5a 100644 (file)
        "wlheader-showupdated": "Leheküljed, mida on muudetud peale sinu viimast külastust, on '''rasvases kirjas'''.",
        "wlnote": "Allpool on {{PLURAL:$1|viimane muudatus|viimased <strong>$1</strong> muudatust}} viimase {{PLURAL:$2|tunni|<strong>$2</strong> tunni}} jooksul seisuga $3, kell $4.",
        "wlshowlast": "Näita viimast $1 tundi $2 päeva.",
+       "watchlistall2": "kõike",
+       "watchlist-hide": "Peida",
+       "wlshowtime": "Näita viimast:",
+       "wlshowhideminor": "pisimuudatused",
+       "wlshowhidebots": "robotid",
+       "wlshowhideliu": "registreeritud kasutajad",
+       "wlshowhideanons": "anonüümsed kasutajad",
+       "wlshowhidepatr": "kontrollitud muudatused",
+       "wlshowhidemine": "minu muudatused",
        "watchlist-options": "Jälgimisloendi seaded",
        "watching": "Jälgimine...",
        "unwatching": "Jälgimise lõpetamine...",
index dd2549f..6d3c53d 100644 (file)
        "viewsourceold": "kodea ikusi",
        "editlink": "aldatu",
        "viewsourcelink": "jatorria ikusi",
-       "editsectionhint": "Atala aldatu: $1",
+       "editsectionhint": "Aldatu atal hau: «$1»",
        "toc": "Edukiak",
        "showtoc": "erakutsi",
        "hidetoc": "ezkutatu",
        "readonly_lag": "Datu-basea automatikoki blokeatu da, menpeko zerbitzariak nagusiarekin sinkronizatu bitartean",
        "internalerror": "Barne errorea",
        "internalerror_info": "Barne errorea: $1",
+       "internalerror-fatal-exception": "\"$1\" motako salbuespen larria",
        "filecopyerror": "Ezin izan da \"$1\" fitxategia \"$2\"(e)ra kopiatu.",
        "filerenameerror": "Ezin izan zaio \"$1\" fitxategiari \"$2\" izen berria eman.",
        "filedeleteerror": "Ezin izan da \"$1\" fitxategia ezabatu.",
        "wlheader-showupdated": "Bisitatu zenituen azken alditik aldaketak izan dituzten orrialdeak '''beltzez''' nabarmenduta daude.",
        "wlnote": "Jarraian {{PLURAL:$2|ikus daiteke azken orduko|ikus daitezke azken '''$2''' orduetako}} azken {{PLURAL:$1|aldaketa|'''$1''' aldaketak}}, $3, $4 gisa.",
        "wlshowlast": "Erakutsi azken $1 orduak, azken $2 egunak",
+       "watchlistall2": "guztiak",
+       "wlshowtime": "Erakutsi azkenak:",
+       "wlshowhideminor": "aldaketa txikiak",
+       "wlshowhidebots": "bot-ak",
+       "wlshowhideanons": "erabiltzaile anonimoak",
+       "wlshowhidemine": "nire edizioak",
        "watchlist-options": "Jarraitze-zerrendaren aukerak",
        "watching": "Zerrendan gehitzen...",
        "unwatching": "Zerrendatik kentzen...",
index 77ffa1e..8518b6d 100644 (file)
        "wlheader-showupdated": "صفحه‌هایی که پس از آخرین بازدید شما تغییر کرده‌اند '''پررنگ''' نمایش داده شده‌اند.",
        "wlnote": "در زیر {{PLURAL:$1|تغییری|<strong>$1</strong> تغییری}} که در {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4",
        "wlshowlast": "نمایش آخرین $1 ساعت $2 روز",
+       "watchlistall2": "همه",
+       "wlshowtime": "‌نمایش آخرین:",
+       "wlshowhideminor": "ویرایش‌های جزئی",
+       "wlshowhidebots": "ربات‌ها",
+       "wlshowhideliu": "کاربران ثبت‌شده",
+       "wlshowhideanons": "کاربران ناشناس",
+       "wlshowhidepatr": "ویرایش‌های گشت‌خورده",
+       "wlshowhidemine": "ویرایش‌های من",
        "watchlist-options": "گزینه‌های پی‌گیری",
        "watching": "پی‌گیری...",
        "unwatching": "توقف پی‌گیری...",
index e4348b6..9f41965 100644 (file)
        "wlheader-showupdated": "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
        "wlnote": "Alla {{PLURAL:$1|on viimeisin muutos|ovat viimeisimmät <strong>$1</strong> muutosta}} edellisen {{PLURAL:$2|tunnin|<strong>$2</strong> tunnin}} ajalta $3 kello $4 lukien.",
        "wlshowlast": "Näytä edelliset $1 tuntia tai $2 päivää",
+       "watchlistall2": "kaikki",
+       "wlshowtime": "Näytä viimeiset:",
+       "wlshowhideminor": "pienet muutokset",
+       "wlshowhidebots": "botit",
+       "wlshowhideliu": "rekisteröityneet käyttäjät",
+       "wlshowhideanons": "anonyymit käyttäjät",
+       "wlshowhidepatr": "tarkastetut muutokset",
+       "wlshowhidemine": "omat muokkaukseni",
        "watchlist-options": "Tarkkailulistan asetukset",
        "watching": "Lisätään tarkkailulistalle...",
        "unwatching": "Poistetaan tarkkailulistalta...",
index 78e8d39..3d1f60d 100644 (file)
        "revdelete-nooldid-title": "Version cible non valide",
        "revdelete-nooldid-text": "Vous n’avez pas précisé de révision(s) cible(s) pour cette fonction, ou bien la révision spécifiée n’existe pas, ou bien vous tentez de masquer la révision actuelle.",
        "revdelete-no-file": "Le fichier spécifié n'existe pas.",
-       "revdelete-show-file-confirm": "Êtes-vous sûr{{GENDER:||e|(e)}} de vouloir voir la révision supprimée du fichier « <nowiki>$1</nowiki> » datant du $2 à $3 ?",
+       "revdelete-show-file-confirm": "Êtes-vous sûr{{GENDER:||e}} de vouloir voir la révision supprimée du fichier « <nowiki>$1</nowiki> » datant du $2 à $3 ?",
        "revdelete-show-file-submit": "Oui",
        "revdelete-selected-text": "{{PLURAL:$1|Révision sélectionnée|Révisions sélectionnées}} de [[:$2]] :",
        "revdelete-selected-file": "{{PLURAL:$1|Version de fichier sélectionnée|Versions de fichier sélectionnées}} de [[:$2]] :",
        "wlheader-showupdated": "Les pages qui ont été modifiées depuis votre dernière visite sont affichées en '''gras'''.",
        "wlnote": "Ci-dessous {{PLURAL:$1|figure la dernière modification effectuée|figurent les <strong>$1</strong> dernières modifications effectuées}} durant {{PLURAL:$2|la dernière heure|les <strong>$2</strong> dernières heures}}, depuis $3, $4.",
        "wlshowlast": "Montrer les dernières $1 heures, les derniers $2 jours",
+       "watchlistall2": "tout",
+       "wlshowtime": "Afficher le dernier :",
+       "wlshowhideminor": "modifications mineures",
+       "wlshowhidebots": "robots",
+       "wlshowhideliu": "utilisateurs inscrits",
+       "wlshowhideanons": "utilisateurs anonymes",
+       "wlshowhidepatr": "modifications patrouillées",
+       "wlshowhidemine": "mes modifications",
        "watchlist-options": "Options de la liste de suivi",
        "watching": "Suivi…",
        "unwatching": "Fin du suivi…",
        "undeleterevision-missing": "Version incorrecte ou manquante.\nVous avez peut-être un mauvais lien, ou la version a pu être restaurée ou supprimée de l’archive.",
        "undelete-nodiff": "Aucune version précédente trouvée.",
        "undeletebtn": "Restaurer",
-       "undeletelink": "visualiser/rétablir",
+       "undeletelink": "voir/restaurer",
        "undeleteviewlink": "voir",
        "undeleteinvert": "Inverser la sélection",
        "undeletecomment": "Motif :",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] a été bloqué{{GENDER:$1||e}}.<br />\nConsultez la [[Special:BlockList|liste des blocages]] pour revoir les blocages.",
        "ipb-blockingself": "Vous êtes sur le point de bloquer votre propre compte ! Êtes-vous certain{{GENDER:||e}} de vouloir faire cela ?",
        "ipb-confirmhideuser": "Vous êtes sur le point de bloquer un utilisateur avec « cacher l'utilisateur » activé. Cela supprime le nom de l'utilisateur dans toutes les listes et les entrées du journal. Êtes-vous sûr{{GENDER:||e}} de vouloir le faire ?",
-       "ipb-confirmaction": "Si vous êtes sûr{{GENDER:||e|(e)}} de vraiment vouloir le faire, veuillez cocher le champ « {{int:ipb-confirm}} » en bas.",
+       "ipb-confirmaction": "Si vous êtes sûr{{GENDER:||e}} de vraiment vouloir le faire, veuillez cocher le champ « {{int:ipb-confirm}} » en bas.",
        "ipb-edit-dropdown": "Modifier les motifs de blocage par défaut",
        "ipb-unblock-addr": "Débloquer $1",
        "ipb-unblock": "Débloquer un compte utilisateur ou une adresse IP",
index 3c89d9a..42b050f 100644 (file)
        "nstab-template": "Patron",
        "nstab-help": "Aide",
        "nstab-category": "Classe",
+       "mainpage-nstab": "Page Principale",
        "nosuchaction": "Action inconnue",
        "nosuchactiontext": "L'action spécifiée dans l'adresse URL est invalide.\nTu as peut-être mal entré l'URL ou suivi un lien erroné.\nIl peut aussi s'indiquer d'un bug dans le logiciel utilisé par {{SITENAME}}.",
        "nosuchspecialpage": "Page espéciale inconnue",
        "prevn-title": "$1 {{PLURAL:$1|résultat dernier|résultats derniers}}",
        "nextn-title": "$1 {{PLURAL:$1|résultat suivant|résultats suivants}}",
        "viewprevnext": "Regarder ($1 {{int:pipe-separator}} $2) ($3).",
+       "searchprofile-images": "Multimédia",
        "searchprofile-everything": "Tout",
        "searchprofile-advanced": "Charche avancée",
        "searchprofile-articles-tooltip": "Charcher dans $1",
        "powersearch-toggleall": "Tout",
        "powersearch-togglenone": "Aucun",
        "preferences": "Réglage",
-       "mypreferences": "Mon réglage",
+       "mypreferences": "Préférences",
        "skin-preview": "Vue d'avance",
        "prefs-user-pages": "Pages d'useur",
        "prefs-personal": "Profil d'useur",
        "action-undelete": "restaurer cette page",
        "action-sendemail": "envoyer des emails",
        "nchanges": "$1 changement{{PLURAL:$1||s}}",
+       "enhancedrc-history": "changements",
        "recentchanges": "Changements récent",
+       "recentchanges-legend-heading": "'''Légende:'''",
+       "rcshowhideminor-hide": "Cacher",
        "rcshowhidebots": "$1 les robots",
+       "rcshowhidebots-show": "Afficher",
+       "rcshowhideliu-hide": "Cacher",
+       "rcshowhideanons-hide": "Cacher",
        "rcshowhidepatr": "$1 les modifications patrouillés",
+       "rcshowhidemine-hide": "Cacher",
        "diff": "diff",
        "hist": "hist",
+       "show": "Afficher",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
+       "rc-change-size-new": "$1 {{PLURAL:$1|octet|octets}} après changement",
        "recentchangeslinked-page": "Nom de la page:",
        "filename": "Nom du fichier",
        "filedesc": "Sommaire",
        "filehist": "Historique du fichier",
        "filehist-deleteall": "effacer tout",
        "filehist-deleteone": "effacer",
+       "filehist-current": "Courant",
+       "filehist-datetime": "Date et heure",
        "filehist-user": "Useur",
+       "filehist-comment": "Commentaire",
        "imagelinks": "Utilisation du fichier",
+       "nolinkstoimage": "Aucune page uses ce fichier.",
        "shared-repo-from": "de: $1",
        "filerevert-comment": "Raison:",
        "filedelete": "Effacer $1",
        "emailuser": "Emailer cet useur",
        "emailuser-title-target": "Emailer {{GENDER:$1|cet useur|cette useuse}}",
        "emailuser-title-notarget": "Emailer useur",
-       "emailpage": "Emailer useur",
        "noemailtitle": "Aucune adresse d'email",
        "emailusername": "Nom d'useur:",
        "emailfrom": "De:",
        "deletecomment": "Raison:",
        "deleteotherreason": "Raison autre ou supplémentaire:",
        "deletereasonotherlist": "Autre raison",
+       "rollbacklink": "révoquer",
        "protectcomment": "Raison:",
        "restriction-edit": "Changer",
        "restriction-move": "Renommer",
        "undelete-search-submit": "Charcher",
        "undelete-show-file-submit": "Oui",
        "namespace": "Espace de noms:",
+       "invert": "Inverser la sélection",
        "blanknamespace": "(Principal)",
        "contributions": "Changements de l'useur",
-       "mycontris": "Mes changements",
+       "mycontris": "Contributions",
        "uctop": "(actuel)",
        "sp-contributions-talk": "Discuter",
        "sp-contributions-submit": "Charcher",
+       "whatlinkshere": "Pages liées",
+       "whatlinkshere-title": "Pages qui connectent vers \"$1\"",
        "whatlinkshere-page": "Page:",
        "whatlinkshere-links": "← liens",
        "whatlinkshere-hidelinks": "$1 les liens",
+       "whatlinkshere-filters": "Filtres",
        "block": "Bloquer l’useur",
        "unblock": "Débloquer l’useur",
        "blockip": "Bloquer l’{{GENDER:$1|useur|useuse}}",
        "block-log-flags-nocreate": "création de compte interdite",
        "tooltip-pt-login": "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier mais ce n’est pas obligatoire.",
        "tooltip-ca-talk": "Discussion de cette page de contenu",
+       "tooltip-ca-edit": "Changer cette page",
        "tooltip-ca-watch": "Additionner cette page à votre liste de suivi",
        "tooltip-search": "Charche {{SITENAME}}",
        "tooltip-search-fulltext": "Charche les pages pour ce texte",
        "tooltip-n-recentchanges": "La liste de changement récent dans ce wiki",
        "tooltip-n-randompage": "Afficher un page au hasard",
        "tooltip-n-help": "La place pour savoir",
+       "tooltip-t-whatlinkshere": "Liste des pages liées à celle-ci",
        "tooltip-t-specialpages": "Liste de tout les pages speciales",
+       "tooltip-t-print": "Version imprimable de cette page",
+       "tooltip-ca-nstab-user": "Voir la page d'useur",
        "tooltip-ca-nstab-special": "Ceci est une page spéciale, vous ne pouvez pas la changer.",
+       "pageinfo-toolboxlink": "Information sur la page",
        "bad_image_list": "Le format est le suivant :\n\nSeules les listes d’énumération (commençant par *) sont prises en compte. Le premier lien d’une ligne doit être celui d’une mauvaise image.\nLes autres liens sur la même ligne sont considérés comme des exceptions, par exemple des pages sur lesquelles l’image peut apparaître.",
+       "metadata": "Métadonnées",
+       "exif-colorspace": "Espace des couleurs",
+       "exif-orientation-1": "Normale",
        "namespacesall": "Tous",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussion]])",
        "redirect-file": "Nom du fichier",
+       "specialpages": "Pages spéciales",
        "searchsuggest-search": "Charcher"
 }
index 598e5d4..3aca26e 100644 (file)
        "wlheader-showupdated": "Nei feranert sidjen wurd '''fäät''' uunwiset.",
        "wlnote": "Diar {{PLURAL:$1|stäänt det leetst feranrang|stun a leetst <strong>$1</strong> feranrangen}} faan a leetst {{PLURAL:$2|stünj|<strong>$2</strong> stünjen}}. Stant: $3, klook $4.",
        "wlshowlast": "Wise a feranrangen faan a leetst $1 stünjen, $2 daar.",
+       "watchlistall2": "aaltumaal",
        "watchlist-options": "Iinstelangen för't uunwisin",
        "watching": "Uun't uug behual ...",
        "unwatching": "Ei uun't uug behual ...",
index 010f0da..d0a957e 100644 (file)
        "wlheader-showupdated": "As páxinas que cambiaron desde a súa última visita móstranse en '''negra'''.",
        "wlnote": "A continuación {{PLURAL:$1|está a última modificación|están as últimas <strong>$1</strong> modificacións}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} ata o $3 ás $4.",
        "wlshowlast": "Mostrar as últimas $1 horas e os últimos $2 días",
+       "watchlistall2": "todo",
+       "wlshowtime": "Mostrar último:",
+       "wlshowhideminor": "edicións menores",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "usuarios rexistrados",
+       "wlshowhideanons": "usuarios anónimos",
+       "wlshowhidepatr": "edicións vixiadas",
+       "wlshowhidemine": "as miñas edicións",
        "watchlist-options": "Opcións de vixilancia",
        "watching": "Vixiando...",
        "unwatching": "Deixando de vixiar...",
index 25bab2f..7d986c7 100644 (file)
        "unwatch": "पळोवंक नासलें",
        "watchlist-details": "लक्ष {{PLURAL:$1|$1वळेरींतलें|$1 वळेंरींतली}} {{PLURAL:$1|$1पान|$1 पानां}} उलोवपाची पानां सोडून",
        "wlshowlast": "फाटलें $1 वरांचें $2 दिसांचें  दाखयात",
+       "watchlistall2": "सगळें",
        "watchlist-options": "लक्षवळेंरींतलो पर्याय",
        "delete-legend": "काडून उडयात",
        "actioncomplete": "क्रिया पुराय जाल्या",
index 0b7417d..9575ede 100644 (file)
        "watchlist-details": "Tujea sadurvollerint {{PLURAL:$1|$1 pan asa|$1 panam asat}}, ulovpachim panam veglim mezonastanam.",
        "wlheader-showupdated": "Tujea fatle bhette san bodol'lean tim panam '''datt''' dakhoileant.",
        "wlshowlast": "Xevottchim $1 voram $2 dis  dakhoi",
+       "watchlistall2": "soglle",
        "watchlist-options": "Sadurvollericheo poryay",
        "watching": "Disht dovortanv...",
        "unwatching": "Disht kaddthanv...",
index 2b137a1..394f47f 100644 (file)
        "searchrelated": "verwandt",
        "searchall": "alli",
        "showingresults": "Do {{PLURAL:$1|isch '''1''' Ergebnis|sin '''$1''' Ergebniss}}, s fangt aa mit dr Nummerer '''$2.'''",
-       "showingresultsinrange": "Uf der Liste {{PLURAL:$1|isch <strong>ei</strong> Kategorie|sy <strong>$1</stong> Kategorië}} vo Nummere <strong>$2</strong> bis <strong>$3</strong>.",
+       "showingresultsinrange": "Do unte {{PLURAL:$1|wird <strong>ei</strong> Ergebnis|wäre bis zue <strong>$1</strong> Ergebnis}} im Berych <strong>$2</strong> bis <strong>$3</strong> aazeigt.",
        "search-showingresults": "{{PLURAL:$4|Ergebnis <strong>$1</strong> vu <strong>$3</strong>|Ergebnis <strong>$1 bis $2</strong> vu <strong>$3</strong>}}",
        "search-nonefound": "Fir Dyyni Suechaafrog sin keini Ergebniss gfunde wore.",
        "powersearch-legend": "Erwytereti Suech",
        "wlheader-showupdated": "Syte, wo syt em letste Bsuech hei g’änderet, sy <strong>fett</strong> dargstellt.",
        "wlnote": "Unde {{PLURAL:$1|steit di letsti Änderig|stöh di letste <strong>$1</strong> Änderigen}} us {{PLURAL:$2|der letste Stund|de letste <strong>$2</strong> Stunde}}. Stand: $3, $4 Uhr.",
        "wlshowlast": "Zeig di letste $1 Stunden und $2 Täg",
+       "watchlistall2": "alli",
        "watchlist-options": "Aazeigoptione",
        "watching": "Am beobachte …",
        "unwatching": "Nümm am beobachten …",
index d8eb5d5..a79b4da 100644 (file)
        "wlheader-showupdated": "דפים שהשתנו מאז ביקורך האחרון בהם מוצגים ב'''הדגשה'''.",
        "wlnote": "להלן {{PLURAL:$1|השינוי האחרון|<strong>$1</strong> השינויים האחרונים}} {{PLURAL:$2|בשעה האחרונה|בשעתיים האחרונות|ב־<strong>$2</strong> השעות האחרונות}}, עד $4, $3.",
        "wlshowlast": "הצגת $1 שעות אחרונות $2 ימים אחרונים",
+       "watchlistall2": "הכול",
+       "watchlist-hide": "הסתרה",
+       "wlshowtime": "להציג מאז:",
+       "wlshowhideminor": "עריכות משניות",
+       "wlshowhidebots": "בוטים",
+       "wlshowhideliu": "משתמשים רשומים",
+       "wlshowhideanons": "משתמשים אנונימיים",
+       "wlshowhidepatr": "עריכות בדוקות",
+       "wlshowhidemine": "עריכות שלי",
        "watchlist-options": "אפשרויות ברשימת המעקב",
        "watching": "בהוספה לרשימת המעקב…",
        "unwatching": "בהסרה מרשימת המעקב…",
index e4f567f..2a5a368 100644 (file)
@@ -74,6 +74,7 @@
        "tog-hideminor": "हाल में हुए परिवर्तन में छोटे बदलाव छिपाएँ",
        "tog-hidepatrolled": "हाल में हुए परिवर्तन में परीक्षित बदलाव छिपाएँ",
        "tog-newpageshidepatrolled": "नये पृष्ठों की सूची में परीक्षित पृष्ठ छिपाएँ",
+       "tog-hidecategorization": "पृष्ठों का श्रेणीकरण हटाएँ",
        "tog-extendwatchlist": "केवल हालिया ही नहीं, बल्कि सभी परिवर्तनों को दिखाने के लिए ध्यानसूची को विस्तारित करें",
        "tog-usenewrc": "हाल में हुए परिवर्तनों और ध्यानसूची में परिवर्तनों को पृष्ठ अनुसार समूहों में बाँटें",
        "tog-numberheadings": "शीर्षक स्व-क्रमांकित करें",
        "tog-watchlisthideliu": "मेरी ध्यानसूची में सत्रारम्भित सदस्यों के सम्पादन न दिखाएँ",
        "tog-watchlisthideanons": "आई॰पी॰ सदस्यों द्वारा किए सम्पादनों को मेरी ध्यानसूची में न दिखायें",
        "tog-watchlisthidepatrolled": "परीक्षित सम्पादन मेरी ध्यानसूची में छुपाएँ",
+       "tog-watchlisthidecategorization": "पृष्ठों का श्रेणीकरण छुपाएँ",
        "tog-ccmeonemails": "मेरे द्वारा अन्य सदस्यों को भेजी जाने वाली ईमेल की प्रतियाँ मुझे भी भेजें",
        "tog-diffonly": "अवतरणों में अन्तर दर्शाते समय पुराने अवतरण न दिखायें",
        "tog-showhiddencats": "छिपाई हुई श्रेणियाँ दिखायें",
        "missingarticle-rev": "(अवतरण#: $1)",
        "missingarticle-diff": "(अंतर: $1, $2)",
        "readonly_lag": "उपमुख्य डाटाबेस सर्वर मुख्य डाटाबेस सर्वर के बराबर अद्यातानीत होने तक मुख्य डाटाबेस सर्वर लॉक हो गया है।",
+       "nonwrite-api-promise-error": "'Promise-Non-Write-API-Action' को एचटीटीपी शीर्षक द्वारा भेजा पर एपीआई में लेखन मॉड्यूल है।",
        "internalerror": "आन्तरिक त्रुटि",
        "internalerror_info": "आन्तरिक त्रुटि: $1",
        "internalerror-fatal-exception": "प्रकार की गंभीर अपवाद \"$1\"",
        "protectedinterface": "यह पृष्ठ इस विकी के सॉफ़्टवेयर का इंटरफ़ेस पाठ देता है, और इसे गलत प्रयोग से बचाने के लिये सुरक्षित कर दिया गया है।\nसभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] का प्रयोग करें।",
        "editinginterface": "<strong>चेतावनी:</strong> आप एक ऐसे पृष्ठ को बदल रहे हैं जो सॉफ़्टवेयर का इंटरफ़ेस पाठ प्रदान करता है।\nइस पृष्ठ को बदलने से अन्य सदस्यों को प्रदर्शित इंटरफ़ेस की शक्लोसूरत में बदलाव आएगा।",
        "translateinterface": "सभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ translatewiki.net] का प्रयोग करें।",
-       "cascadeprotected": "यह à¤ªà¥\83षà¥\8dठ à¤¸à¥\81रà¤\95à¥\8dषित à¤¹à¥\88à¤\82, à¤\95à¥\8dयà¥\8bà¤\82à¤\95à¥\80 à¤¯à¤¹ à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित {{PLURAL:$1|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठà¥\8bà¤\82}} à¤\95à¥\80 à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80à¥\9dी में समाविष्ट है:\n$2",
+       "cascadeprotected": "यह à¤ªà¥\83षà¥\8dठ à¤¸à¥\81रà¤\95à¥\8dषित à¤¹à¥\88à¤\82, à¤\95à¥\8dयà¥\8bà¤\82à¤\95ि à¤¯à¤¹ à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित {{PLURAL:$1|पà¥\83षà¥\8dठ|पà¥\83षà¥\8dठà¥\8bà¤\82}} à¤\95à¥\80 à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80ढ़ी में समाविष्ट है:\n$2",
        "namespaceprotected": "आपको '''$1''' नामस्थान में समाविष्ट पृष्ठों को बदलने की अनुमति नहीं है।",
        "customcssprotected": "आपको इस CSS पृष्ठ को संपादित करने की अनुमति नहीं है, क्योंकि इसमें अन्य सदस्य की व्यक्तिगत सेटिंग्स शामिल हैं।",
        "customjsprotected": "आपको इस जावास्क्रिप्ट पृष्ठ को संपादित करने की अनुमति नहीं है, क्योंकि इसमें अन्य सदस्य की व्यक्तिगत सेटिंग्स शामिल हैं।",
        "createacct-benefit-body2": "{{PLURAL:$1|पृष्ठ}}",
        "createacct-benefit-body3": "{{PLURAL:$1|योगदानकर्ता}}",
        "badretype": "आपने जो कूटशब्द दिये हैं वे एक दूसरे से नहीं मिलते। फिर से लिखें।",
+       "usernameinprogress": "इस प्रयोक्ता का खाता निर्माण अभी चालू है।\nकृपया प्रतीक्षा करें।",
        "userexists": "आपका दिया सदस्यनाम पहले से प्रयोग में है।\nकृपया कोई अन्य सदस्यनाम चुनें।",
        "loginerror": "लॉग इन त्रुटि",
        "createacct-error": "खाता निर्माण त्रुटि",
        "passwordreset-emailsent-capture": "नीचे दिखाया गया कूटशब्द रीसेट ई-मेल भेज दिया गया है।",
        "passwordreset-emailerror-capture": "नीचे दृष्टित कूटशब्द रीसेट ई-मेल उत्पन्न किया गया था, परंतु उसे {{GENDER:$2|सदस्य}} को भेजना असफल रहा।\nत्रुटि: $1",
        "changeemail": "ई-मेल पता परिवर्तित करें",
-       "changeemail-header": "खाते का ई-मेल पता परिवर्तित करें",
+       "changeemail-header": "अपना ईमेल पता परिवर्तन हेतु इसे पूरा करें। यदि आप अपना वर्तमान ईमेल पता हटाना चाहते हैं, तो इसे खाली छोड़ दें और इसे भेजें।",
+       "changeemail-passwordrequired": "आपको इस परिवर्तन हेतु पासवर्ड (कूटशब्द) डालना होगा।",
        "changeemail-no-info": "इस पृष्ठ का सीधे प्रयोग करने के लिए आपको लॉग इन करना होगा।",
        "changeemail-oldemail": "वर्तमान ई-मेल पता:",
        "changeemail-newemail": "नया ई-मेल पता:",
+       "changeemail-newemail-help": "यदि आप अपना ईमेल (वि-डाक) पते को रिक्त रखना चाहते हैं तो आप इस जगह को खाली छोड़ सकते हैं। लेकिन आप अपना पासवर्ड भूल जाने पर उसे ईमेल द्वारा प्राप्त नहीं कर पाएंगे।",
        "changeemail-none": "(कोई नहीं)",
        "changeemail-password": "आपका {{SITENAME}} पासवर्ड:",
        "changeemail-submit": "ई-मेल बदलें",
        "changeemail-throttled": "आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।\nपुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।",
+       "changeemail-nochange": "कृपया कोई नया ईमेल पता प्रविष्ट करें।",
        "resettokens": "टोकन रीसेट करें",
        "resettokens-text": "जो टोकन आपके खाते से सम्बद्ध कुछ विशिष्ट व्यक्तिगत जानकारी प्रदान करते हैं, आप उन्हें यहाँ रीसेट कर सकते हैं।\n\nयदि आपने उन्हें गलती से किसी को दिखा दिया है या फिर आपका खाता हैक हो गया है तो आपको इन्हें रीसेट कर देना चाहिए।",
        "resettokens-no-tokens": "रीसेट करने के लिए कोई टोकन नहीं हैं।",
        "sig_tip": "आपका हस्ताक्षर व समय",
        "hr_tip": "हॉरिज़ौंटल लाइन (कम इस्तेमाल करें)",
        "summary": "सारांश:",
-       "subject": "विषय/शीर्षक:",
+       "subject": "विषय:",
        "minoredit": "यह एक छोटा बदलाव है",
        "watchthis": "इस पृष्ठ को ध्यानसूची में डालें",
        "savearticle": "पृष्ठ सहेजें",
        "missingcommenttext": "कृपया नीचे टिप्पणी दें।",
        "missingcommentheader": "'''अनुस्मारक:''' आपने इस टिप्पणी का कोई शीर्षक नहीं दिया है।\nअगर आप \"{{int:savearticle}}\" पर दोबारा क्लिक करते हैं तो आपके बदलाव बिना शीर्षक के संजोये जायेंगे।",
        "summary-preview": "सारांश की झलक:",
-       "subject-preview": "विषय/शीर्षक की झलक:",
+       "subject-preview": "विषय की झलक:",
        "previewerrortext": "आपके परिवर्तनों का पूर्वावलोकन करने का प्रयास करते समय एक त्रुटि हुई।",
        "blockedtitle": "सदस्य अवरुद्ध है",
        "blockedtext": "'''आपका सदस्यनाम अथवा आइ॰पी पता अवरोधित कर दिया गया हैं ।'''\n\nअवरोध $1 द्वारा किया गया था।\nअवरोध का कारण है ''$2''\n\n* अवरोध का आरंभ: $8\n* अवरोध की समाप्ति: $6\n* अवरोधित इकाई: $7\n\nइस अवरोध के बारे में चर्चा करने के लिए आप $1 या किसी अन्य [[{{MediaWiki:Grouppage-sysop}}|प्रबन्धक]] से संपर्क कर सकते हैं।\nअगर आपने [[Special:Preferences|अपनी वरीयताओं]] में वैध ई-मेल पता प्रविष्ट किया है तो ही आप 'इस प्रयोक्ता को ई-मेल भेजें' वाली सुविधा का इस्तेमाल कर सकते हैं और आपको इसका इस्तेमाल करने से नहीं रोका गया है।\nआपका मौजूदा आइ॰पी पता $3 है और अवरोध क्रमांक #$5 है।\nअपने किसी भी प्रश्न में कृपया यह सभी जानकारी भी शामिल करें।",
        "yourdiff": "अंतर",
        "copyrightwarning": "कृपया ध्यान दें कि {{SITENAME}} को किये गये सभी योगदान $2 की शर्तों के तहत होंगे (अधिक जानकारी के लिये $1 देखें)।\nयदि आप अपने योगदान को लगातार बदलते और पुनः वितरित होते नहीं देख सकते हैं तो यहाँ योगदान न करें।<br />\nआप यह भी प्रमाणित कर रहे हैं कि यह आपने स्वयं लिखा है अथवा सार्वजनिक क्षेत्र या किसी समान मुक्त स्रोत से प्रतिलिपित किया है।\n'''कॉपीराइट सुरक्षित कार्यों को बिना अनुमति के यहाँ न डालें!'''",
        "copyrightwarning2": "{{SITENAME}} पर किया कोई भी योगदान अन्य सदस्यों द्वारा बदला जा सकता है और हटाया भी जा सकता है।\nअगर आपको अपने लिखे हुए पाठ में संपादन होना नामंजूर है तो यहाँ पर न लिखें।<br />\nआप हमें यह भी वचन देतें हैं कि यह आपने स्वयं लिखा है अथवा सार्वजनिक क्षेत्र या किसी समान मुक्त स्रोत से प्रतिलिपित किया है (अधिक जानकारी के लिये $1 देखें)।\n'''कॉपीराइट सुरक्षित कार्यों को बिना अनुमति के यहाँ न डालें!'''",
+       "editpage-cannot-use-custom-model": "इस पृष्ठ का मुख्य सामग्री परिवर्तित नहीं हुआ।",
        "longpageerror": "'''त्रुटि: आपका दिया हुआ पाठ {{PLURAL:|$1 किलोबाइट|$1 किलोबाइट}} लंबा है, जो {{PLURAL:|$2 किलोबाइट|$2 किलोबाइट}} की सीमा से बाहर है।\nइसे संजोया नहीं जा सकता।'''",
        "readonlywarning": "'''सावधान: डाटाबेस को रख-रखाव के लिये बंद कर दिया गया है, इसलिये अभी आपके बदलाव संजोए नहीं जा सकते।\nअगर आप चाहें तो इस सामग्री को बाद के लिए कॉपी-पेस्ट कर के किसी टेक्स्ट फ़ाइल में रख सकते हैं।'''\n\nबंद करने वाले प्रबंधक ने बंद करने का यह कारण दिया है: $1",
        "protectedpagewarning": "'''चेतावनी: इस पृष्ठ को सुरक्षित कर दिया गया है और इसे केवल प्रबंधक ही सम्पादित कर सकते हैं।'''\nनवीनतम लॉग प्रविष्टि संदर्भ के लिये नीचे दी है:",
        "semiprotectedpagewarning": "'''सूचना:''' यह पृष्ठ सुरक्षित कर दिया गया है और इसे केवल पंजीकृत सदस्य ही सम्पादित कर सकते हैं।\nनवीनतम लॉग प्रविष्टि संदर्भ के लिये नीचे दी है:",
-       "cascadeprotectedwarning": "'''सावधान:''' à¤¯à¤¹ à¤ªà¥\83षà¥\8dठ à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80à¥\9dà¥\80 {{PLURAL:$1|पà¥\83षà¥\8dठ à¤¸à¥\87|पनà¥\8dनà¥\8bà¤\82 à¤¸à¥\87}} à¤\9cà¥\81à¥\9cा हुआ होने के कारण सुरक्षित है, और केवल प्रबंधक ही इसमें बदलाव कर सकते हैं:",
+       "cascadeprotectedwarning": "'''सावधान:''' à¤¯à¤¹ à¤ªà¥\83षà¥\8dठ à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80ढ़à¥\80 {{PLURAL:$1|पà¥\83षà¥\8dठ à¤¸à¥\87|पनà¥\8dनà¥\8bà¤\82 à¤¸à¥\87}} à¤\9cà¥\81ड़ा हुआ होने के कारण सुरक्षित है, और केवल प्रबंधक ही इसमें बदलाव कर सकते हैं:",
        "titleprotectedwarning": "'''चेतावनी: यह पृष्ठ सुरक्षित है और इसे बनाने के लिये [[Special:ListGroupRights|विशेष अधिकारों]] की आवश्यकता है।'''\nनवीनतम लॉग प्रविष्टि संदर्भ के लिये नीचे दी है:",
        "templatesused": "इस पृष्ठ पर प्रयुक्त {{PLURAL:$1|साँचा|साँचे}}:",
        "templatesusedpreview": "इस झलक में प्रयुक्त {{PLURAL:$1|साँचा|साँचे}}:",
        "permissionserrors": "अधिकार त्रुटि",
        "permissionserrorstext": "निम्नलिखित {{PLURAL:$1|कारण|कारणों}} से आपको ऐसा करने की अनुमति नहीं हैं:",
        "permissionserrorstext-withaction": "आपको $2 की अनुमति नहीं हैं, निम्नलिखित {{PLURAL:$1|कारण|कारणों}} की वजह से:",
+       "contentmodelediterror": "आप इस पृष्ठ का इतिहास में सम्पादन नहीं कर सकते हैं क्योंकि इसका सामग्री <code>$1</code>, और वर्तमान सामग्री <code>$2</code> है।",
        "recreate-moveddeleted-warn": "'''चेतावनी: आप एक पहले हटाए गए पृष्ठ को पुनर्निर्मित कर रहे हैं।'''\n\nआप को विचार करना चाहिये कि क्या इस पृष्ठ का संपादन जारी रखना उचित होगा।\nइस पृष्ट के हटाने व स्थानांतरण का लॉग सुविधा के लिये उपलब्ध है:",
        "moveddeleted-notice": "यह पृष्ठ हटाया जा चुका है।\nपृष्ठ के हटाने और स्थानांतरण का लॉग संदर्भ के लिए नीचे दिया गया है।",
+       "moveddeleted-notice-recent": "क्षमा करें, यह पृष्ठ कुछ ही समय पहले हटाया गया है। (24 घण्टों के भीतर)\nइसके हटाये और स्थानांतरित करने का लोग नीचे दिया हुआ है।",
        "log-fulllog": "पूरा लॉग देखें",
        "edit-hook-aborted": "फंदे द्वारा संपादन बीच में ही छोड़ा गया।\nउसने कोई कारण नहीं बताया।",
        "edit-gone-missing": "पृष्ठ अद्यतित न किया जा सका।\nलगता है यह हटा दिया गया है।",
        "search-category": "(श्रेणी $1)",
        "search-file-match": "(फ़ाइल सामग्री से मेल खाता है)",
        "search-suggest": "कहीं आपका मतलब $1 तो नहीं था?",
+       "search-rewritten": "$1 का परिणाम दिखा रहा है। यह $2 हेतु खोज रहा है।",
        "search-interwiki-caption": "अन्य प्रकल्प",
        "search-interwiki-default": "$1 से परिणाम:",
        "search-interwiki-more": "(और)",
        "showingresultsinrange": "दिखा रहे हैं {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> परिणाम}} तक पहुँच  #<strong>$2</strong> to #<strong>$3</strong> में।",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> में से <strong>$1</strong> परिणाम|<strong>$3</strong> में से परिणाम <strong>$1 - $2</strong>}}",
        "search-nonefound": "आपकी खोज से मेल खाते कोई परिणाम नहीं मिले।",
+       "search-nonefound-thiswiki": "आपके खोज से कोई भी परिणाम नहीं मिला।",
        "powersearch-legend": "उन्नत खोज",
        "powersearch-ns": "नामस्थानों में खोजें:",
        "powersearch-togglelabel": "चुनें:",
        "prefs-watchlist-token": "ध्यानसूची टोकन",
        "prefs-misc": "अन्य",
        "prefs-resetpass": "कूटशब्द बदलें",
-       "prefs-changeemail": "à¤\88-मà¥\87ल à¤ªà¤¤à¤¾ à¤¬à¤¦à¤²ें",
+       "prefs-changeemail": "à¤\88-मà¥\87ल à¤ªà¤¤à¤¾ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतित à¤\95रें",
        "prefs-setemail": "ई-मेल पता सेट करें",
        "prefs-email": "ई-मेल वरीयताएँ",
        "prefs-rendering": "शक्लोसूरत",
        "rows": "कतारें:",
        "columns": "कॉलम:",
        "searchresultshead": "खोज",
-       "stub-threshold": "<a href=\"#\" class=\"stub\">आधार कड़ियों</a> का अधिकतम आकार (बाइट):",
+       "stub-threshold": "आधार कड़ी हेतु प्रारूपण ($1):",
+       "stub-threshold-sample-link": "उदाहरण",
        "stub-threshold-disabled": "अक्षम किया गया",
        "recentchangesdays": "हाल में हुए बदलावों में दर्शाने के दिन:",
        "recentchangesdays-max": "अधिकतम $1 {{PLURAL:$1|दिन}}",
        "prefs-help-recentchangescount": "इसमें हाल के बदलाव, पृष्ठ इतिहास व लॉग शामिल हैं।",
        "prefs-help-watchlist-token2": "यह आपकी ध्यानसूची की वेब फ़ीड की गोपनीय चाबी है।\nयह जिसके भी पास होगी वह आपकी ध्यानसूची पढ़ सकेगा, इसिलए इसे किसी के साथ बांटियेगा नहीं।\n[[Special:ResetTokens|इसे रीसेट करने के लिए यहाँ क्लिक करें]]।",
        "savedprefs": "आपकी वरीयताएँ संजोई गई हैं।",
+       "savedrights": "प्रयोक्ता {{GENDER:$1|$1}} का सदस्य अधिकार सहेजा गया।",
        "timezonelegend": "समयमंडल:",
        "localtime": "स्थानीय समय:",
        "timezoneuseserverdefault": "विकी डिफ़ॉल्ट का उपयोग करें ($1)",
        "rcshowhidemine": "मेरे बदलाव $1",
        "rcshowhidemine-show": "दिखाएँ",
        "rcshowhidemine-hide": "छुपाएँ",
+       "rcshowhidecategorization": "$1 पृष्ठ श्रेणीकरण",
+       "rcshowhidecategorization-show": "दिखाएँ",
+       "rcshowhidecategorization-hide": "छुपाएँ",
        "rclinks": "पिछले $2 दिनों में हुए $1 बदलाव दिखाएँ<br />$3",
        "diff": "अंतर",
        "hist": "इतिहास",
        "boteditletter": "बॉ",
        "number_of_watching_users_pageview": "[$1 ध्यान रखने वाले {{PLURAL:$1|सदस्य}}]",
        "rc_categories": "श्रेणीयों तक सीमीत रखें (\"|\" से अलग करें)",
-       "rc_categories_any": "कोई भी",
+       "rc_categories_any": "कोई भी चुनिन्दा",
        "rc-change-size-new": "बदलाव के बाद $1 {{PLURAL:$1|बाइट}}",
        "newsectionsummary": "/* $1 */ नया अनुभाग",
        "rc-enhanced-expand": "विस्तृत जानकारी दिखाएँ",
        "recentchangeslinked-summary": "यह पृष्ठ किसी विशिष्ट पृष्ठ से जुड़े पृष्ठों (या किसी श्रेणी में श्रेणीबद्ध पृष्ठों) में हाल में हुए बदलावों की सूची दर्शाता है।\n[[Special:Watchlist|आपकी ध्यानसूची]] में मौजूद पृष्ठ '''मोटे''' अक्षरों में दिखेंगे।",
        "recentchangeslinked-page": "पृष्ठ नाम:",
        "recentchangeslinked-to": "इसके बदले में दिये हुए पृष्ठसे जुडे पन्नोंके बदलाव दर्शायें",
+       "recentchanges-page-added-to-category": "[[:$1]] श्रेणी में जुड़ा",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] और {{PLURAL:$2|एक पृष्ठ|$2 पृष्ठ}} श्रेणी में जुड़ा",
+       "recentchanges-page-removed-from-category": "[[:$1]] श्रेणी से हटा",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] और {{PLURAL:$2|एक पृष्ठ|$2 पृष्ठ}} श्रेणी से हटा",
+       "autochange-username": "मीडियाविकि स्वतः परिवर्तन",
        "upload": "फ़ाइल अपलोड करें",
        "uploadbtn": "फ़ाइल अपलोड करें",
        "reuploaddesc": "अपलोड रद्द करें और पुनः अपलोड फ़ॉर्म पर जाएँ",
        "uploaded-href-attribute-svg": "गैर-स्थानीय लक्ष्य के साथ एचआरईऍफ श्रेय (href attributes) <code>&lt;$1 $2=\"$3\"&gt;</code> (उदाहरण के लिए http://, जावास्क्रीप्ट:, इत्यादि) एसवीजी फाइल में अनुमत नहीं हैं।",
        "uploaded-href-unsafe-target-svg": "अपलोड की गयी फ़ाइल में असुरक्षित लक्ष्य <code>&lt;$1 $2=\"$3\"&gt;</code> पाये गए।",
        "uploaded-animate-svg": "चिप्पि \"animate\" पायी गई जिससे href परिवर्तित हो सकता है, अपलोड की गयी फ़ाइल में \"from\" विशेषता <code>&lt;$1 $2=\"$3\"&gt;</code> काम में ली जा रही है।",
+       "uploaded-setting-event-handler-svg": "विकल्प आयोजन-संभालने वाला अवरोधित है, एसवीजी फ़ाइल में मिला <code>&lt;$1 $2=\"$3\"&gt;</code> है।",
+       "uploaded-setting-href-svg": "\"set\" का उपयोग कर \"href\" जोड़ना अवरोधित है।",
+       "uploaded-wrong-setting-svg": "\"set\" का उपयोग कर किसी अन्य डाटा, लिपि से कार्य अवरोधित है। एसवीजी फ़ाइल में मिला <code>&lt;set to=\"$1\"&gt;</code> है।",
+       "uploaded-setting-handler-svg": "एसवीजी जो \"handler\" जोड़ता है, अवरोधित है। उससे मिला <code>$1=\"$2\"</code> है।",
+       "uploaded-remote-url-svg": "एसवीजी जो रिमोट पते द्वारा शैली तय करता है, अवरोधित है। उससे <code>$1=\"$2\"</code> मिला है।",
+       "uploaded-image-filter-svg": "पते के साथ छवि छन्नी मिला: <code>&lt;$1 $2=\"$3\"&gt;</code> एसवीजी फ़ाइल में।",
        "uploadscriptednamespace": "इस एस॰वी॰जी फ़ाइल में अमान्य नामस्थान \"$1\" है।",
        "uploadinvalidxml": "अपलोड की गई फ़ाइल में स्थित XML पार्स नहीं की जा सकी।",
        "uploadvirus": "इस फ़ाइल में व्हाईरस हैं! अधिक जानकारी: $1",
        "upload-options": "अपलोड विकल्प",
        "watchthisupload": "इस फ़ाइल पर ध्यान रखें",
        "filewasdeleted": "इस नाम की एक फ़ाइल पहले भी अपलोड होने के बाद हटाई जा चुकी है।\nफिरसे अपलोड करने से पहले आप $1 को अच्छी तरह से जाँचे।",
+       "filename-thumb-name": "यह एक थंबनेल शीर्षक की तरह लग रहा है। कृपया थंबनेल  वापस विकि पर अपलोड न करें। अन्यथा, कृपया फ़ाइल नाम ठीक करें।",
        "filename-bad-prefix": "आप जो फ़ाइल अपलोड कर रहे हैं उसका नाम '''\"$1\"''' से शुरू होता है, जो डिजिटल कैमेरे द्वारा दिया गया नाम है।\nकृपया इस फ़ाइल के लिये कोई दूसरा अधिक जानकारीयुक्त नाम चुनें।",
        "filename-prefix-blacklist": "#<!-- leave this line exactly as it is --> <pre>\n# रूपरेखा इस प्रकार हैं:\n#   *  \"#\" अक्षर से शुरू होने वाली लाइनें टिप्पणीयाँ हैं।\n#   *हर नई लाइन कैमेरा उत्पादक द्वारा लगाये जाने वाले उपपदों की सूची है।\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # some mobil phones\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # misc.\n #</pre> <!-- leave this line exactly as it is -->",
        "upload-success-subj": "अपलोड हो गई",
        "upload-too-many-redirects": "इस यू॰आर॰एल में अत्यधिक पुनर्निर्देशन हैं",
        "upload-http-error": "एक एच॰टी॰टी॰पी त्रुटि आई: $1",
        "upload-copy-upload-invalid-domain": "कॉपी अपलोड इस डोमेन से उपलब्ध नहीं हैं।",
+       "upload-dialog-title": "फ़ाइल डालें",
+       "upload-dialog-button-cancel": "रद्द करें",
+       "upload-dialog-button-done": "पूर्ण हुआ",
+       "upload-dialog-button-save": "सहेजें",
+       "upload-dialog-button-upload": "डालें",
+       "upload-form-label-select-file": "फ़ाइल चुनें",
+       "upload-form-label-infoform-title": "विवरण",
+       "upload-form-label-infoform-name": "नाम",
+       "upload-form-label-infoform-description": "विवरण",
+       "upload-form-label-usage-title": "उपयोग",
+       "upload-form-label-usage-filename": "फ़ाइल का नाम",
+       "foreign-structured-upload-form-label-own-work": "यह मेरा कार्य है",
+       "foreign-structured-upload-form-label-infoform-categories": "श्रेणियाँ",
+       "foreign-structured-upload-form-label-infoform-date": "दिनांक",
+       "foreign-structured-upload-form-label-own-work-message-local": "मैं यह सत्यापित करता हूँ कि मेरे द्वारा डाला गया फ़ाइल {{SITENAME}} सेवा के शर्तों और अधिकार नियम के अनुकूल है।",
+       "foreign-structured-upload-form-label-not-own-work-message-local": "यदि आप {{SITENAME}} के नियमों के अंतर्गत फ़ाइल नहीं डाल सकते, तो आप इसे हटा कर किसी दूसरे विधि का उपयोग करें।",
+       "foreign-structured-upload-form-label-not-own-work-local-local": "आप [[Special:Upload|मूल डालने वाले पृष्ठ]] का भी उपयोग कर सकते हो।",
+       "foreign-structured-upload-form-label-own-work-message-default": "मैं यह समझता हूँ कि यहाँ सभी फ़ाइल सांझा होते हैं। मैं यह सत्यापित करता हूँ कि में सेवा के शर्तों और नियम के अनुरूप ही कार्य कर रहा हूँ।",
+       "foreign-structured-upload-form-label-not-own-work-message-default": "यदि आप इस नियम के अंतर्गत फ़ाइल नहीं डालना चाहते तो अभी इसे बन्द कर दें और कोई दूसरे विधि को खोजें।",
+       "foreign-structured-upload-form-label-not-own-work-local-default": "यदि आप चाहें तो आप [[Special:Upload|{{SITENAME}} के पृष्ठ]] पर फ़ाइल डाल सकते हैं, यदि यह फ़ाइल वहाँ के नियम के अंतर्गत हो तो।",
+       "foreign-structured-upload-form-label-own-work-message-shared": "कम से कम इस फ़ाइल का प्रतिकृति अधिकार मेरे पास है और यह [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0] के अंतर्गत है, व [https://wikimediafoundation.org/wiki/Terms_of_Use विकि उपयोग की शर्तों] का भी पालन करता है।",
+       "foreign-structured-upload-form-label-not-own-work-message-shared": "यदि आपके पास इस फ़ाइल का प्रतिकृति अधिकार नहीं है और आप इसे किसी और अधिकार के तहत प्रदर्शित करना चाहते हैं तो आप [https://commons.wikimedia.org/wiki/Special:UploadWizard Commons Upload Wizard] का उपयोग करें।",
+       "foreign-structured-upload-form-label-not-own-work-local-shared": "यदि आप चाहें तो आप [[Special:Upload|{{SITENAME}} के पृष्ठ]] पर फ़ाइल डाल सकते हैं, यदि यह फ़ाइल वहाँ के नियम के अंतर्गत हो तो।",
        "backend-fail-stream": "फ़ाइल $1 स्ट्रीम नहीं हो पाई।",
        "backend-fail-backup": "फ़ाइल $1 बैकअप नहीं हो पाई।",
        "backend-fail-notexists": "फ़ाइल $1 मौजूद नहीं है।",
        "wlheader-showupdated": "पृष्ठ जो आपके द्वारा देखे जाने के बाद बदले गये हैं '''बोल्ड''' दिखेंगे।",
        "wlnote": "$3 को $4 बजे तक पिछले <strong>$2</strong> {{PLURAL:$2|घंटे|घंटों}} में {{PLURAL:$1|हुआ एक|हुए <strong>$1</strong>}} परिवर्तन निम्न {{PLURAL:$1|है|हैं}}।",
        "wlshowlast": "पिछले $1 घंटे $2 दिन  देखें",
+       "watchlistall2": "सभी",
+       "wlshowtime": "अंतिम दिखाएँ:",
+       "wlshowhideminor": "छोटा संपादन",
+       "wlshowhidebots": "बॉट",
+       "wlshowhideliu": "पञ्जीकृत प्रयोक्ता",
+       "wlshowhideanons": "अनाम प्रयोक्ता",
+       "wlshowhidepatr": "परीक्षित सम्पादन",
+       "wlshowhidemine": "मेरा संपादन",
        "watchlist-options": "ध्यानसूची विकल्प",
        "watching": "ध्यान दे रहे हैं...",
        "unwatching": "ध्यान हटा रहे हैं...",
        "changecontentmodel-model-label": "नयि सामग्री का नमूना",
        "changecontentmodel-reason-label": "कारण:",
        "changecontentmodel-success-title": "सामगरि का नामुने मे बदलाव हुुुाा हेेे",
+       "changecontentmodel-success-text": "[[:$1]] के सामग्री का प्रकार परिवर्तित हुआ।",
+       "changecontentmodel-cannot-convert": "[[:$1]] की सामग्री का प्रकार $2 में नहीं बदल सकता है।",
+       "changecontentmodel-nodirectediting": "$1 सामग्री सीधे सम्पादन समर्थित नहीं करता है",
+       "log-name-contentmodel": "सामाग्री परिवर्तन लॉग",
+       "log-description-contentmodel": "आयोजन जो इस पृष्ठ के सामग्री से मिलते जुलते हैं",
+       "logentry-contentmodel-change": "$1 ने $3 पृष्ठ का सामग्री \"$4\" से \"$5\" {{GENDER:$2|परिवर्तित किया}}",
+       "logentry-contentmodel-change-revertlink": "पूर्ववत करें",
+       "logentry-contentmodel-change-revert": "पूर्ववत करें",
        "protectlogpage": "सुरक्षा लॉग",
        "protectlogtext": "नीचे पृष्ठ सुरक्षा में हुए बदलावों की सूची है।\nवर्तमान सुरक्षित पृष्ठों की सूची के लिए [[Special:ProtectedPages|सुरक्षित पृष्ठों की सूची]] देखें।",
        "protectedarticle": "\"[[$1]]\" सुरक्षित कर दिया",
        "pageinfo-robot-index": "अनुमतित",
        "pageinfo-robot-noindex": "नहीं अनुमतित",
        "pageinfo-watchers": "पृष्ठ पर नज़र रखने वालों की संख्या",
+       "pageinfo-visiting-watchers": "पृष्ठ देखने वालों की संख्या जो हाल के संपादनों में आए।",
        "pageinfo-few-watchers": "$1 से कम ध्यान देने {{PLURAL:$1|वाला|वाले}}",
+       "pageinfo-few-visiting-watchers": "हो सकता है या नहीं भी कि कोई इस हाल के सम्पादन द्वारा कोई प्रयोक्ता आया हो।",
        "pageinfo-redirects-name": "इस पृष्ठ को पुनर्निर्देशों की संख्या",
        "pageinfo-subpages-name": "इस पृष्ठ के उप-पृष्ठ",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|पुनर्निर्देश}}; $3 {{PLURAL:$3|ग़ैर-पुनर्निर्देश}})",
        "svg-long-error": "अमान्य एस॰वी॰जी फ़ाइल: $1",
        "show-big-image": "मूल फ़ाइल",
        "show-big-image-preview": "इस पूर्वावलोकन का आकार:  $1 ।",
+       "show-big-image-preview-differ": "पूर्वावलोकन $3 का आकार $2 फ़ाइल: $1",
        "show-big-image-other": "अन्य  {{PLURAL:$2| resolution|resolutions}}:  $1 ।",
        "show-big-image-size": "$1 × $2  पिक्सेल",
        "file-info-gif-looped": "चक्रित",
        "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]]।",
        "htmlform-cloner-create": "अधिक जोड़ें",
        "htmlform-cloner-delete": "हटाएँ",
        "htmlform-cloner-required": "कम से कम एक मूल्य की आवश्यकता है।",
+       "htmlform-title-badnamespace": "[[:$1]] अभी \"{{ns:$2}}\" नामस्थान में नहीं है।",
+       "htmlform-title-not-creatable": "\"$1\" निर्माण करने लायक शीर्षक नहीं है।",
+       "htmlform-title-not-exists": "$1 नहीं बना है।",
+       "htmlform-user-not-exists": "<strong>$1</strong> मौजूद नहीं है।",
+       "htmlform-user-not-valid": "<strong>$1</strong> मान्य प्रयोक्ता नाम नहीं है।",
        "sqlite-has-fts": "$1 पूर्ण पाठ खोज समर्थन के साथ",
        "sqlite-no-fts": "$1पूर्ण-पाठ खोज समर्थन के बिना",
        "logentry-delete-delete": "$1 ने पृष्ठ $3 {{GENDER:$2|हटा}} दिया",
        "logentry-newusers-create2": "सदस्य खाता $3 $1 द्वारा {{GENDER:$2|बनाया}} गया था",
        "logentry-newusers-byemail": "$1 द्वारा सदस्य खाता $3 {{GENDER:$2|बनाया}} गया एवं पासवर्ड ई-मेल द्वारा भेजा गया था",
        "logentry-newusers-autocreate": "खाते $1 स्वचालित रूप से {{GENDER:$2|बनाया}} गया था",
+       "logentry-protect-move_prot": "$1 ने सुरक्षा व्यवस्था $4 से {{GENDER:$2|स्थानांतरित}} कर $3 में कर दिया।",
+       "logentry-protect-unprotect": "$1 ने $3 से सुरक्षा {{GENDER:$2|हटाया}}",
+       "logentry-protect-protect": "$1 ने $3 $4 {{GENDER:$2|सुरक्षित}} किया।",
+       "logentry-protect-protect-cascade": "$1 ने $3 $4 {{GENDER:$2|सुरक्षित किया}} [व्यापक]",
+       "logentry-protect-modify": "$1 ने $3 $4 का सुरक्षा स्तर {{GENDER:$2|परिवर्तित किया}}",
+       "logentry-protect-modify-cascade": "$1 ने $3 $4 का सुरक्षा स्तर {{GENDER:$2|परिवर्तित किया}} [व्यापक]",
        "logentry-rights-rights": "$1 ने $3 के सदस्य समूह $4 से बदलकर $5 {{GENDER:$2|किये}}",
        "logentry-rights-rights-legacy": "$1 ने $3 के सदस्य समूह {{GENDER:$2|बदले}}",
        "logentry-rights-autopromote": "$1 के सदस्य समूह स्वतः $4 से बदलकर $5 {{GENDER:$2|किये}} गए",
        "special-characters-title-endash": "एन डैश",
        "special-characters-title-emdash": "एम डैश",
        "special-characters-title-minus": "ऋण चिह्न",
+       "mw-widgets-dateinput-no-date": "कुछ चयनित नहीं",
        "mw-widgets-titleinput-description-new-page": "पृष्ठ अभी मौजूद नहीं है",
-       "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित"
+       "mw-widgets-titleinput-description-redirect": "$1 को अनुप्रेषित",
+       "api-error-blacklisted": "कृपया कोई दूसरा विवरणात्मक शीर्षक चुनें।"
 }
index 430f6a3..75a742e 100644 (file)
@@ -14,7 +14,8 @@
                        "Filipinayzd",
                        "SNN95",
                        "Macofe",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "V6rg"
                ]
        },
        "tog-underline": "Jorr ke niche line khicho:",
        "createaccountreason": "Kaaran:",
        "createacct-reason": "Kaaran",
        "createacct-reason-ph": "Aap ke ii account ke banae ke kaaran",
-       "createacct-captcha": "Security check",
-       "createacct-imgcaptcha-ph": "Niche dekhae waala text ke likho",
        "createacct-submit": "Aapan account banao",
        "createacct-another-submit": "Duusra account banao",
        "createacct-benefit-heading": "Aap ke rakam log {{SITENAME}} ke banain hae.",
        "passwordreset-emailsent-capture": "Ek password yaad karae waala e-mail, jiske niche dekhawa jaawe hae, ke bhej dewa gais hae.",
        "passwordreset-emailerror-capture": "Ek password yaad karae waala e-mail ke banawa gais hae, jiske niche dekhawa jaawe hae, lekin jiske {{GENDER:$2|user}} ke lage bheje nai jawa sake hae: $1",
        "changeemail": "E-mail address ke badlo",
-       "changeemail-text": "Aapan e-mail ke badle kae khaatir ii form ke fill karo. Ii badlao ke khatir aap ke aapan password ke de ke parri.",
+       "changeemail-header": "Account e-mail address ke badlo",
        "changeemail-no-info": "Ii panna ke sidha dekhe ke khaatir, aap ke login kare ke parri.",
        "changeemail-oldemail": "Abhi ke E-mail address:",
        "changeemail-newemail": "Nawaa E-mail address:",
        "sp-deletedcontributions-contribs": "yogdaan",
        "linksearch": "Bahaari jorr",
        "linksearch-pat": "Khoje ke pattern:",
-       "linksearch-ns": "Namespace:",
+       "linksearch-ns": "نؤمفضا:",
        "linksearch-ok": "Khojo",
        "linksearch-text": "Wildcard jaise ki \"*.wikipedia.org\" ke kaam me lawa jaae sake hae.\nIske khatir ek top-level domain, jaise ki \"*.org\" ke jaruri hae.<br /> \nSupport karaa gais {{PLURAL:$2|protocol|protocols}}: $1 (defaults to http:// if no protocol is specified).",
        "linksearch-line": "$1, $2 se jurraa hai",
        "listgrouprights-addgroup-self-all": "Sab group ke aapan account me jorre saktaa hai",
        "listgrouprights-removegroup-self-all": "Sab group ke aapan account se hatae saktaa hai",
        "listgrouprights-namespaceprotection-header": "Namespace restrictions",
-       "listgrouprights-namespaceprotection-namespace": "Namespace:",
+       "listgrouprights-namespaceprotection-namespace": "نؤمفضا:",
        "listgrouprights-namespaceprotection-restrictedto": "Adhikar jon ki sadasya ke badlao kare de hae.",
        "trackingcategories": "Vibhag ke track karaa jaawe hae",
        "trackingcategories-summary": "Ii panna me tracking vibhag ke suchi hae, jiske MediaWiki software automatically populate kare hae. Iske naam can be changed by altering the relevant system messages in the {{ns:8}} namespace.",
        "wlheader-showupdated": "Panna jiske aap ke pichhla visit ke ke baad badal dewa gais hia ke '''bold''' me dekhawa jaawe hai.",
        "wlnote": "Niche ke {{PLURAL:$1|pahile waala badlao hai| pahile <strong>$1</strong> badlao hai}} pichhle {{PLURAL:$2|ghanta|<strong>$2</strong> ghanta}} me as of $3, $4.",
        "wlshowlast": "Pichhla $1 ghanta $2 din  ke dekhao",
+       "watchlistall2": "sab",
        "watchlist-options": "Dhyan suchi ke options",
        "watching": "Dekhtaa...",
        "unwatching": "Nai dekhtaa...",
index d6cbbd4..4b02c1f 100644 (file)
        "wlheader-showupdated": "Stranice koje su promijenjene od Vašeg posljednjeg posjeta prikazane su '''podebljano'''.",
        "wlnote": "Ovdje {{PLURAL:$1|je posljednja $1 promjena|su posljednje $1 promjene|je posljednjih $1 promjena}} u {{PLURAL:$2|posljednjem <strong>$2</strong> satu|posljednja '''$2''' sata|posljednjih <strong>$2</strong> sati}}, od $3, $4.",
        "wlshowlast": "Prikaži posljednjih $1 sati $2 dana",
+       "watchlistall2": "sve",
        "watchlist-options": "Izbornik popisa praćenja",
        "watching": "Pratim...",
        "unwatching": "Prestajem pratiti...",
index d0ff39a..ef6cdfa 100644 (file)
        "createacct-reason": "Přičina",
        "createacct-reason-ph": "Čehodla załožuješ druhe konto?",
        "createacct-submit": "Twoje konto załožić",
-       "createacct-another-submit": "Dalše konto załožić",
+       "createacct-another-submit": "Konto załožić",
        "createacct-benefit-heading": "{{SITENAME}} je so wot ludźi kaž ty wutworił.",
        "createacct-benefit-body1": "{{PLURAL:$1|změna|změnje|změny|změnow}}",
        "createacct-benefit-body2": "{{PLURAL:$1|strona|stronje|strony|stronow}}",
        "passwordreset-emailsent": "E-mejl za anulowanje hesło je so pósłała.",
        "passwordreset-emailsent-capture": "E-mejl za anulowanje hesła je so pósłała, kotraž so deleka pokazuje.",
        "passwordreset-emailerror-capture": "E-mejl za anulowanje hesła je so wutworiła, kotraž so deleka pokazuje, ale słanje {{GENDER:$2|wužiwarjej|wužiwarce}} je so njeporadźiło: $1",
-       "changeemail": "E-mejlowu adresu změnić",
+       "changeemail": "E-mejlowu adresu změnić abo wotstronić",
        "changeemail-header": "Kontowu e-mejlowu adresu změnić",
        "changeemail-no-info": "Dyrbiš so přizjewić, zo by direktny přistup na tutu stronu měł.",
        "changeemail-oldemail": "Aktualna e-mejlowa adresa:",
        "rcshowhidemine": "moje změny $1",
        "rcshowhidemine-show": "pokazać",
        "rcshowhidemine-hide": "schować",
+       "rcshowhidecategorization-show": "Pokazać",
+       "rcshowhidecategorization-hide": "Schować",
        "rclinks": "Pokazuj poslednje $1 změny poslednich $2 dnjow.<br />$3",
        "diff": "rozdźěl",
        "hist": "wersije",
        "wlheader-showupdated": "Strony, kotrež su so po twojim poslednim wopyće změnili, so '''tučne''' pokazuja.",
        "wlnote": "Deleka {{PLURAL:$1|je poslednja změna|stej poslednjej <strong>$1</strong> změnje|su poslednje <strong>$1</strong> změny|je poslednich <strong>$1</strong> změnow}} za {{PLURAL:$2|poslednju hodźinu|poslednje <strong>$2</strong> hodźinje|poslednje <strong>$2</strong> hodźiny|poslednich <strong>$2</strong> hodźin}}, staw : $3, $4.",
        "wlshowlast": "Změny zańdźenych $1 hodźin, $2 dnjow, pokazać",
+       "watchlistall2": "wšě",
+       "wlshowtime": "Pokazaj změny zašłych",
        "watchlist-options": "Opcije wobkedźbowankow",
        "watching": "Wobkedźbuju…",
        "unwatching": "Njewobkedźbuju…",
index 5988f78..455da5b 100644 (file)
        "rows": "Sor",
        "columns": "Oszlop",
        "searchresultshead": "Keresés",
-       "stub-threshold": "A hivatkozások <a href=\"#\" class=\"stub\">csonkként</a> történő formázásának határa (bájtban):",
+       "stub-threshold": "A hivatkozások csonkként történő formázásának határa ($1):",
+       "stub-threshold-sample-link": "minta",
        "stub-threshold-disabled": "Kikapcsolva",
        "recentchangesdays": "A friss változtatásokban mutatott napok száma:",
        "recentchangesdays-max": "(maximum {{PLURAL:$1|egy|$1}} nap)",
        "wlheader-showupdated": "Azok a lapok, amelyek megváltoztak, mióta utoljára megnézted őket, '''vastagítva''' láthatók.",
        "wlnote": "Alább {{PLURAL:$1|az utolsó változás|az utolsó <strong>$1</strong> változás}} látható az elmúlt {{PLURAL:$2|órában|<strong>$2</strong> órában}}, $3 $4-kor.",
        "wlshowlast": "Az elmúlt $1 órában | $2 napon történt változtatások legyenek láthatóak",
+       "watchlistall2": "bármikor",
        "watchlist-options": "A figyelőlista beállításai",
        "watching": "Figyelés...",
        "unwatching": "Figyelés befejezése...",
        "svg-long-error": "Érvénytelen SVG-fájl: $1",
        "show-big-image": "Eredeti fájl",
        "show-big-image-preview": "Az előnézet mérete: $1",
+       "show-big-image-preview-differ": "Ennek a(z) $2 fájlnak ezen $3 formátumú előnézete: $1.",
        "show-big-image-other": "További {{PLURAL:$2|felbontás|felbontások}}: $1.",
        "show-big-image-size": "$1 × $2 képpont",
        "file-info-gif-looped": "ismétlődik",
index ba0af4e..d7bfc7d 100644 (file)
        "nstab-template": "Կաղապար",
        "nstab-help": "Օգնության էջ",
        "nstab-category": "Կատեգորիա",
+       "mainpage-nstab": "Գլխավոր էջ",
        "nosuchaction": "Նման գործողություն չկա",
        "nosuchactiontext": "URL-ում նշված գործողությունը սխալ է։\nՀնարավոր է դուք վրիպակ եք թույլ տվել URL-ի մուտքագրման ժամանակ կամ հետևել եք սխալ հղմամբ։\nՍա կարող է նաև լինել {{SITENAME}} նախագծում օգտագործվող ծրագրի սխալ։",
        "nosuchspecialpage": "Նման սպասարկող էջ չկա",
        "wlheader-showupdated": "Էջերը, որոնք փոփոխվել են ձեր դրանց վերջին այցից հետո բերված են '''թավատառ'''։",
        "wlnote": "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում։",
        "wlshowlast": "Ցուցադրել վերջին $1 ժամերը $2 օրերը",
+       "watchlistall2": "բոլոր",
        "watchlist-options": "Հսկացանկի նախընտրություններ",
        "watching": "Հսկվում է...",
        "unwatching": "Հանվում է հսկումից...",
index 32d7733..bb6f678 100644 (file)
        "wlheader-showupdated": "Le paginas que ha essite modificate post tu ultime visita se monstra in litteras '''grasse'''.",
        "wlnote": "Ecce le ultime {{PLURAL:$1|modification|<strong>$1</strong> modificationes}} durante le ultime {{PLURAL:$2|hora|<strong>$2</strong> horas}}, a partir del $3 a $4.",
        "wlshowlast": "Monstrar le ultime $1 horas $2 dies",
+       "watchlistall2": "totes",
        "watchlist-options": "Optiones del observatorio",
        "watching": "Observation in curso...",
        "unwatching": "Disobservation in curso...",
index d7f6b86..c06a6f9 100644 (file)
@@ -60,7 +60,7 @@
        "tog-watchdefault": "Tambahkan halaman yang saya sunting ke daftar pantauan",
        "tog-watchmoves": "Tambahkan halaman yang saya pindahkan ke daftar pantauan",
        "tog-watchdeletion": "Tambahkan halaman yang saya hapus ke daftar pantauan",
-       "tog-watchrollback": "Tambahkan laman di mana saya telah melakukan rollback watchlist saya",
+       "tog-watchrollback": "Tambahkan laman yang pernah saya kembalikan ke dalam daftar pantauan saya",
        "tog-minordefault": "Tandai semua suntingan sebagai suntingan kecil secara baku",
        "tog-previewontop": "Perlihatkan pratayang sebelum kotak sunting dan tidak sesudahnya",
        "tog-previewonfirst": "Perlihatkan pratayang pada suntingan pertama",
        "createacct-reason": "Alasan",
        "createacct-reason-ph": "Mengapa Anda membuat akun lain",
        "createacct-submit": "Buat akun Anda",
-       "createacct-another-submit": "Buat akun lain",
+       "createacct-another-submit": "Buat akun",
        "createacct-benefit-heading": "{{SITENAME}} dibuat oleh orang-orang seperti Anda.",
        "createacct-benefit-body1": "{{PLURAL:$1|suntingan}}",
        "createacct-benefit-body2": "{{PLURAL:$1|halaman}}",
        "wrongpassword": "Kata sandi yang Anda masukkan salah. Silakan coba lagi.",
        "wrongpasswordempty": "Anda tidak memasukkan kata sandi. Silakan coba lagi.",
        "passwordtooshort": "Kata sandi paling tidak harus terdiri dari {{PLURAL:$1|1 karakter|$1 karakter}}.",
-       "passwordtoolong": "Passwords tidak boleh lebih dari {{PLURAL:$1|1 character|$1 characters}}.",
+       "passwordtoolong": "Passwords tidak boleh lebih dari {{PLURAL:$1|1 karakter|$1 karakter}}.",
        "password-name-match": "Kata sandi Anda harus berbeda dari nama pengguna Anda.",
        "password-login-forbidden": "Penggunaan nama pengguna dan sandi ini telah dilarang.",
        "mailmypassword": "Setel ulang kata sandi",
        "missingcommentheader": "''Peringatan:''' Anda belum memberikan subjek atau judul untuk komentar Anda. Jika Anda kembali menekan \"{{int:savearticle}}\", suntingan Anda akan disimpan tanpa komentar tersebut.",
        "summary-preview": "Pratayang ringkasan:",
        "subject-preview": "Pratayang subyek/tajuk:",
-       "previewerrortext": "Kesalahan terjadi saat mencoba meninjau perubahan anda",
+       "previewerrortext": "Kesalahan terjadi saat mencoba memperlihatkan pratayang perubahan Anda.",
        "blockedtitle": "Pengguna diblokir",
        "blockedtext": "'''Nama pengguna atau alamat IP Anda telah diblokir.'''\n\nBlokir dilakukan oleh $1.\nAlasan yang diberikan adalah ''$2''.\n\n* Diblokir sejak: $8\n* Blokir kedaluwarsa pada: $6\n* Sasaran pemblokiran: $7\n\nAnda dapat menghubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|pengurus lainnya]] untuk membicarakan hal ini.\n\nAnda tidak dapat menggunakan fitur 'Kirim surel ke pengguna ini' kecuali Anda telah memasukkan alamat surel yang sah di [[Special:Preferences|preferensi akun]] dan Anda tidak diblokir untuk menggunakannya.\n\nAlamat IP Anda adalah $3, dan ID pemblokiran adalah $5.\nTolong sertakan salah satu atau kedua informasi ini pada setiap pertanyaan yang Anda buat.",
        "autoblockedtext": "Alamat IP Anda telah terblokir secara otomatis karena digunakan oleh pengguna lain, yang diblokir oleh $1. Pemblokiran dilakukan atas alasan:\n\n:''$2''\n\n* Diblokir sejak: $8\n* Blokir kedaluwarsa pada: $6\n* Sasaran pemblokiran: $7\n\nAnda dapat menghubungi $1 atau [[{{MediaWiki:Grouppage-sysop}}|pengurus lainnya]] untuk membicarakan hal ini.\n\nAnda tidak dapat menggunakan fitur \"kirim surel ke pengguna ini\" kecuali Anda telah memasukkan alamat surel yang sah di [[Special:Preferences|preferensi akun]] Anda dan Anda tidak diblokir untuk menggunakannya.\n\nAlamat IP Anda saat ini adalah $3, dan ID pemblokiran adalah #$5.\nTolong sertakan informasi-informasi ini dalam setiap pertanyaan Anda.",
        "rev-deleted-event": "(rincian log dihapus)",
        "rev-deleted-user-contribs": "[nama pengguna atau alamat IP dihapus - suntingan disembunyikan pada daftar kontribusi]",
        "rev-deleted-text-permission": "Revisi halaman ini telah '''dihapus'''.\nRinciannya mungkin tersedia di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan]",
-       "rev-suppressed-text-permission": "Revisi laman ini adalah <strong>suppressed</strong>. Detail dapat ditemukan di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
+       "rev-suppressed-text-permission": "Revisi laman ini adalah <strong>tertunda</strong>. Detail dapat ditemukan di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} catatan penundaan].",
        "rev-deleted-text-unhide": "Revisi ini telah '''dihapus'''.\nRinciannya mungkin tersedia di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].\nSebagai seorang pengurus Anda masih dapat [$1 melihat revisi ini] jika Anda mau.",
        "rev-suppressed-text-unhide": "Revisi halaman ini telah '''disupresi'''.\nRinciannya mungkin tersedia di [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} log supresi].\nSebagai seorang pengurus, Anda masih dapat [$1 melihat revisi ini] jika Anda mau.",
        "rev-deleted-text-view": "Revisi ini telah '''dihapus'''.\nSebagai seorang pengurus, Anda dapat melihatnya; rinciannya mungkin tersedia di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].",
        "right-override-export-depth": "Ekspor halaman termasuk halaman-halaman terkait hingga kedalaman 5",
        "right-sendemail": "Mengirim surel ke pengguna lain",
        "right-passwordreset": "Lihat surel pengaturulangan kata sandi",
-       "right-managechangetags": "Membuat dan menghapus  [[Special:Tags|tags]] dari database",
+       "right-managechangetags": "Membuat dan menghapus [[Special:Tags|tag]] dari basis data",
        "newuserlogpage": "Log pengguna baru",
        "newuserlogpagetext": "Di bawah ini adalah log pendaftaran pengguna baru",
        "rightslog": "Log perubahan hak akses",
        "action-viewmyprivateinfo": "lihat informasi pribadi Anda",
        "action-editmyprivateinfo": "sunting informasi pribadi Anda",
        "action-editcontentmodel": "mengedit model konten sebuah halaman",
-       "action-managechangetags": "Membuat dan menghapus label dari database",
+       "action-managechangetags": "Membuat dan menghapus tag dari basis data",
        "nchanges": "$1 {{PLURAL:$1|perubahan|perubahan}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sejak kunjungan terakhir}}",
        "enhancedrc-history": "riwayat",
        "unusedimages": "Berkas yang tak terpakai",
        "wantedcategories": "Kategori yang diinginkan",
        "wantedpages": "Halaman yang diinginkan",
-       "wantedpages-summary": "Daftar laman tak tersedia dengan tautan pada mereka, tidak termasuk laman yang hanya memiliki penautan pengalihan pada mereka.Untuk daftar laman tak tersedia yang memiliki penautan pengalihan pada mereka, lihat [[{{#special:BrokenRedirects}}]].",
+       "wantedpages-summary": "Daftar laman yang tidak ada yang memiliki paling banyak tautan ke mereka, tidak termasuk laman pengalihan. Untuk daftar laman yang memiliki pengalihan ke mereka, lihat [[{{#special:BrokenRedirects}}|daftar pengalihan rusak]].",
        "wantedpages-badtitle": "Judul tak valid dalam himpunan hasil: $1",
        "wantedfiles": "Berkas yang diinginkan",
        "wantedfiletext-cat": "Berkas-berkas berikut digunakan tetapi tidak ada. Berkas dari repositori asing mungkin tercantum meskipun ada. Setiap \"false positive\" akan <del>dicoret</del>. Selain itu, halaman yang menggunakan berkas yang tidak ada akan dicantumkan dalam [[:$1]].",
        "trackingcategories-desc": "Kriteria inklusi kategori",
        "noindex-category-desc": "Halaman tidak diindeks oleh robot karena ini mempunyai kata khusus <code><nowiki>__NOINDEX__</nowiki></code> padanya dan berada dalam ruang nama yang mengizinkan penanda itu.",
        "index-category-desc": "Halaman ini memiliki <code><nowiki>__INDEX__</nowiki></code> di atasnya (dan dalam ruang nama yang mana bendera yang diperbolehkan), dan karenanya diindeks oleh robot di mana itu biasanya tidak akan.",
-       "post-expand-template-inclusion-category-desc": "Ukuran laman lebih besar dari <code>$wgMaxArticleSize</code> setelah memperluas semua template, sehingga beberapa template tidak diperluas",
-       "post-expand-template-argument-category-desc": "Laman lebih besar dari <code>$wgMaxArticleSize</code> setelah memperluas argumen template (something in triple braces, like <code>{{{Foo}}}</code>).",
+       "post-expand-template-inclusion-category-desc": "Ukuran laman lebih besar dari <code>$wgMaxArticleSize</code> setelah memperluas semua templat, sehingga beberapa templat tidak diperluas.",
+       "post-expand-template-argument-category-desc": "Laman ini lebih besar dari <code>$wgMaxArticleSize</code> setelah memperluas argumen templat (sesuatu dalam tiga kurung kurawal, misalnya <code>{{{Foo}}}</code>).",
        "expensive-parserfunction-category-desc": "Laman menggunakan terlalu banyak fungsi parser (seperti <code>#ifexist</code>). Lihat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
-       "broken-file-category-desc": "Laman berisi sebuah tautan file rusak (sebuah tautan untuk menanam file saat file tidak ada)",
-       "hidden-category-category-desc": "Kategori ini berisikan <code><nowiki>__HIDDENCAT__</nowiki></code> di dalam konten laman, yang mencegahnya muncul di kotak tautan kategori pada laman, secara standar.",
+       "broken-file-category-desc": "Laman berisi sebuah tautan ke berkas yang rusak (sebuah tautan untuk menampilkan berkas yang tidak ada)",
+       "hidden-category-category-desc": "Kategori ini berisi <code><nowiki>__HIDDENCAT__</nowiki></code> di dalam konten laman, yang secara baku mencegah kategori ini muncul di kotak tautan kategori pada laman tersebut.",
        "trackingcategories-nodesc": "Deskripsi tidak tersedia.",
        "trackingcategories-disabled": "Kategori dinonaktifkan",
        "mailnologin": "Tidak ada alamat surel",
        "emailccsubject": "Salinan pesan Anda untuk $1: $2",
        "emailsent": "Surel terkirim",
        "emailsenttext": "Surel Anda telah dikirimkan.",
-       "emailuserfooter": "Email ini dikirimkan dengan $1 pada $2 dengan fungsi \"{{int:emailuser}}\" pada {{SITENAME}}.",
+       "emailuserfooter": "Email ini dikirimkan oleh $1 ke $2 dengan fungsi \"{{int:emailuser}}\" di {{SITENAME}}.",
        "usermessage-summary": "Tinggalkan pesan sistem.",
        "usermessage-editor": "Penyampai pesan sistem",
        "usermessage-template": "MediaWiki:UserMessage",
        "watchlist-details": "Terdapat {{PLURAL:$1|$1 halaman|$1 halaman}} di daftar pantauan Anda, tidak termasuk halaman pembicaraan.",
        "wlheader-enotif": "Notifikasi surel diaktifkan.",
        "wlheader-showupdated": "Halaman-halaman yang telah berubah sejak kunjungan terakhir Anda ditampilkan dengan '''huruf tebal'''.",
-       "wlnote": "Dibawah {{PLURAL:$1|is the last change|are the last <strong>$1</strong> changes}} in the last {{PLURAL:$2|hour|<strong>$2</strong> hours}}, sebagai $3, $4.",
-       "wlshowlast": "Tampilkan terakhir $1 jam $2 hari",
+       "wlnote": "Di bawah ini adalah {{PLURAL:$1|perubahan|<strong>$1</strong> perubahan}} terakhir dalam {{PLURAL:$2|jam|<strong>$2</strong> jam}}, per $3, $4.",
+       "wlshowlast": "Tampilkan $1 jam $2 hari terakhir",
+       "watchlistall2": "semua",
+       "wlshowtime": "Tampilkan hingga:",
+       "wlshowhideminor": "suntingan kecil",
+       "wlshowhidebots": "bot",
+       "wlshowhideliu": "pengguna terdaftar",
+       "wlshowhideanons": "pengguna anonim",
+       "wlshowhidepatr": "suntingan terpatroli",
+       "wlshowhidemine": "suntingan saya",
        "watchlist-options": "Opsi daftar pantauan",
        "watching": "Memantau...",
        "unwatching": "Menghilangkan pemantauan...",
        "exbeforeblank": "isi sebelum dikosongkan: '$1'",
        "delete-confirm": "Hapus \"$1\"",
        "delete-legend": "Hapus",
-       "historywarning": "<strong>Warning:</strong> Laman yang akan anda hapus punya riwayat dengan $1 {{PLURAL:$1|revision|revisions}}:",
+       "historywarning": "<strong>Peringatan:</strong> Laman yang akan Anda hapus memiliki riwayat dengan $1 perubahan:",
        "confirmdeletetext": "Anda akan menghapus halaman atau berkas ini secara permanen berikut semua sejarahnya dari basis data. Pastikan bahwa Anda memang ingin melakukannya, mengetahui segala akibatnya, dan apa yang Anda lakukan ini adalah sejalan dengan [[{{MediaWiki:Policy-url}}|kebijakan {{SITENAME}}]].",
        "actioncomplete": "Proses selesai",
        "actionfailed": "Eksekusi gagal",
        "delete-edit-reasonlist": "Alasan penghapusan suntingan",
        "delete-toobig": "Halaman ini memiliki sejarah penyuntingan yang panjang, melebihi {{PLURAL:$1|revisi|revisi}}.\nPenghapusan halaman dengan sejarah penyuntingan yang panjang tidak diperbolehkan untuk mencegah kerusakan di {{SITENAME}}.",
        "delete-warning-toobig": "Halaman ini memiliki sejarah penyuntingan yang panjang, melebihi {{PLURAL:$1|revisi|revisi}}.\nMenghapus halaman ini dapat menyebabkan masalah dalam operasional basis data {{SITENAME}}.",
-       "deleteprotected": "Anda tidak dapat menghapus laman ini karena telah diproteksi",
+       "deleteprotected": "Anda tidak dapat menghapus laman ini karena telah dilindungi.",
        "deleting-backlinks-warning": "'''Peringatan:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Halaman lain]] mengarah atau memiliki transklusi ke halaman yang akan Anda hapus.",
        "rollback": "Kembalikan suntingan",
        "rollbacklink": "kembalikan",
index 73cfdb4..a147dc9 100644 (file)
        "wlheader-showupdated": "Dagiti panid a nasukatanen manipud ti kinaudi a panagsarungkarmo ket naipakita iti <strong>napuskol</strong>.",
        "wlnote": "Dita baba ket {{PLURAL:$1|naudi a sinukatan|dagiti naudi a <strong>$1</strong> a sinukatan}} iti napalabas {{PLURAL:$2|nga oras|a <strong>$2</strong> nga or-oras}}, manipud idi $3, $4.",
        "wlshowlast": "Ipakita dagiti naudi a $1 nga or-oras $2 nga al-aldaw",
+       "watchlistall2": "amin",
        "watchlist-options": "Dagiti pagpilian ti listaan a bambantayan",
        "watching": "Bambantayan...",
        "unwatching": "Saanen a bantayan...",
index adfe655..2ec2e7b 100644 (file)
@@ -21,7 +21,8 @@
                        "Macofe",
                        "Sveinn í Felli",
                        "Jonbg",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Xð"
                ]
        },
        "tog-underline": "Undirstrika tengla:",
        "createaccountreason": "Ástæða:",
        "createacct-reason": "Ástæða",
        "createacct-reason-ph": "Afhverju ertu að búa til annan aðgang",
-       "createacct-captcha": "Öryggis athugun",
-       "createacct-imgcaptcha-ph": "Sláðu inn textann að ofan",
        "createacct-submit": "Búa til aðganginn",
        "createacct-another-submit": "Stofna annan aðgang",
        "createacct-benefit-heading": "{{SITENAME}} er skrifuð af fólki eins og þér.",
        "enhancedrc-history": "breytingaskrá",
        "recentchanges": "Nýlegar breytingar",
        "recentchanges-legend": "Stillingar nýlegra breytinga",
-       "recentchanges-summary": "Hér geturðu fylgst með nýjustu breytingunum.",
+       "recentchanges-summary": "Hér geturðu fylgst með nýjustu breytingunum. Hin {{SITENAME}} inniheldur '''[[Special:NewPages|{{NUMBEROFARTICLES}}]]''' {{PLURAL:{{NUMBEROFARTICLES}}|grein|greinar}} og hefur '''[[Special:Statistics|{{NUMBEROFEDITS}}]]''' {{PLURAL:{{NUMBEROFEDITS}}|breytingu|breytingar}} og '''[[Special:ActiveUsers|{{NUMBEROFACTIVEUSERS}}]]''' {{PLURAL:{{NUMBEROFACTIVEUSERS}}|notandi|notendur}} í þessum mánuði.",
        "recentchanges-noresult": "Engar breytingar í uppgefna tímabilinu sem passa við þessa mælikvarða.",
        "recentchanges-feed-description": "Hér er hægt að fylgjast með nýlegum breytingum á {{SITENAME}}.",
        "recentchanges-label-newpage": "Þessi breyting skapaði nýja síðu",
        "wlheader-showupdated": "Síðum sem hefur verið breytt síðan þú skoðaðir þær síðast eru '''feitletraðar'''.",
        "wlnote": "Hér fyrir neðan {{PLURAL:$1|er síðasta <strong>$1</strong> breyting|eru síðustu <strong>$1</strong> breytingar}} {{PLURAL:$2|síðasta <strong>$2</strong> klukkutímann|síðustu <strong>$2</strong> klukkutímana}}, frá $3, $4.",
        "wlshowlast": "Sýna síðustu $1 klukkutíma, $2 daga",
+       "watchlistall2": "allt",
        "watchlist-options": "Vaktlistastillingar",
        "watching": "Vakta...",
        "unwatching": "Afvakta...",
index 24ad65b..73065bc 100644 (file)
@@ -92,7 +92,8 @@
                        "CassiodoroVicinetti",
                        "Bultro",
                        "Oggioniale",
-                       "Wim b"
+                       "Wim b",
+                       "V6rg"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "faq": "Domande frequenti",
        "faqpage": "Project:Domande frequenti",
        "actions": "Azioni",
-       "namespaces": "Namespace",
+       "namespaces": "نؤمفضا",
        "variants": "Varianti",
        "navigation-heading": "Menu di navigazione",
        "errorpagetitle": "Errore",
        "sp-deletedcontributions-contribs": "contributi",
        "linksearch": "Ricerca collegamenti esterni",
        "linksearch-pat": "Pattern di ricerca:",
-       "linksearch-ns": "Namespace:",
+       "linksearch-ns": "نؤمفضا:",
        "linksearch-ok": "Cerca",
        "linksearch-text": "È possibile fare uso di metacaratteri, ad esempio \"*.wikipedia.org\".\nÈ necessario almeno un dominio di primo livello, ad esempio \"*.org\".<br />\n{{PLURAL:$2|Protocollo supportato|Protocolli supportati}}: $1 (predefinito http:// se nessun protocollo è specificato).",
        "linksearch-line": "$1 presente nella pagina $2",
        "wlheader-showupdated": "Le pagine che sono state modificate dopo l'ultima visita sono evidenziate in '''grassetto'''.",
        "wlnote": "Di seguito {{PLURAL:$1|è elencata la modifica più recente apportata|sono elencate le <strong>$1</strong> modifiche più recenti apportate}} {{PLURAL:$2|nella scorsa ora|nelle scorse <strong>$2</strong> ore}}; i dati sono aggiornati alle $4 del $3.",
        "wlshowlast": "Mostra le ultime $1 ore $2 giorni",
+       "watchlistall2": "tutte",
+       "wlshowtime": "Mostra ultime:",
+       "wlshowhideminor": "modifiche minori",
+       "wlshowhidebots": "bot",
+       "wlshowhideliu": "utenti registrati",
+       "wlshowhideanons": "utenti anonimi",
+       "wlshowhidepatr": "modifiche verificate",
+       "wlshowhidemine": "mie modifiche",
        "watchlist-options": "Opzioni osservati speciali",
        "watching": "Aggiunta agli osservati speciali...",
        "unwatching": "Eliminazione dagli osservati speciali...",
        "sp-contributions-logs": "registri",
        "sp-contributions-talk": "discussione",
        "sp-contributions-userrights": "gestione dei permessi",
-       "sp-contributions-blocked-notice": "Questo utente è attualmente bloccato. L'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
+       "sp-contributions-blocked-notice": "Questo utente è attualmente bloccato.\nL'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
        "sp-contributions-blocked-notice-anon": "Questo indirizzo IP è attualmente bloccato.\nL'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
        "sp-contributions-search": "Ricerca contributi",
        "sp-contributions-username": "Indirizzo IP o nome utente:",
index 473112a..5d48f23 100644 (file)
@@ -67,7 +67,8 @@
                        "Otokoume",
                        "赤城。",
                        "Sujiniku",
-                       "Azeha"
+                       "Azeha",
+                       "Kana Higashikawa"
                ]
        },
        "tog-underline": "リンクの下線:",
        "title-invalid-leading-colon": "指定されたページ名の先頭に、無効なコロンが含まれています。",
        "perfcached": "以下のデータはキャッシュされており、最新ではない可能性があります。最大 $1 {{PLURAL:$1|件の結果}}がキャッシュされます。",
        "perfcachedts": "以下のデータはキャッシュされており、最終更新日時は $1 です。最大 $4 {{PLURAL:$4|件の結果}}がキャッシュされます。",
-       "querypage-no-updates": "ã\83\9aã\83¼ã\82¸ã\81®æ\9b´æ\96°ã\81¯ç\84¡å\8a¹ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82\n以ä¸\8bã\81®ã\83\87ã\83¼ã\82¿ã\81®æ\9b´æ\96°ã\81¯ç\8f¾å\9c¨è¡\8cã\82\8fã\82\8cã\81¦ã\81\84ません。",
+       "querypage-no-updates": "ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®æ\9b´æ\96°ã\81¯ç\8f¾å\9c¨ç\84¡å\8a¹å\8c\96ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82\n以ä¸\8bã\81®ã\83\87ã\83¼ã\82¿ã\81¯å½\93å\88\86æ\9b´æ\96°ã\81\95ã\82\8cません。",
        "viewsource": "ソースを表示",
        "viewsource-title": "$1のソースを表示",
        "actionthrottled": "操作が速度規制されました",
        "createacct-emailoptional": "メールアドレス (省略可能)",
        "createacct-email-ph": "メールアドレスを入力",
        "createacct-another-email-ph": "メールアドレスを入力",
-       "createaccountmail": "一時的な無作為のパスワードを生成して、指定したメールアドレスに送信",
+       "createaccountmail": "無作為な仮パスワードを生成し、指定のメールアドレスに送信",
        "createacct-realname": "本名 (省略可能)",
        "createaccountreason": "理由:",
        "createacct-reason": "理由",
        "cachedspecial-viewing-cached-ts": "このページのキャッシュされた版を表示しています。現在の実際の版と異なる場合があります。",
        "cachedspecial-refresh-now": "最新版を表示します。",
        "categories": "カテゴリ",
-       "categoriespagetext": "以下の{{PLURAL:$1|カテゴリ}}にはページまたはメディアがあります。\n[[Special:UnusedCategories|未使用のカテゴリ]]はここには表示していません。\n[[Special:WantedCategories|望まれるカテゴリ]]も参照してください。",
+       "categoriespagetext": "以下の{{PLURAL:$1|カテゴリ}}にはページまたはメディアがあります。\n[[Special:UnusedCategories|使われていないカテゴリ]]はここには表示していません。\n[[Special:WantedCategories|カテゴリページが存在しないカテゴリ]]も参照してください。",
        "categoriesfrom": "最初に表示するカテゴリ:",
        "special-categories-sort-count": "項目数順に並べ替え",
        "special-categories-sort-abc": "辞書順に並べ替え",
        "wlheader-showupdated": "最終訪問以降に変更されたページは、<strong>太字</strong>で表示されます。",
        "wlnote": "$3 $4 までの{{PLURAL:$2|<strong>$2</strong>時間}}になされた{{PLURAL:$1|<strong>$1</strong>件の変更}}は以下の通りです。",
        "wlshowlast": "表示する期間: $1時間、$2日間",
+       "watchlistall2": "すべて",
+       "wlshowhideminor": "細部の編集",
+       "wlshowhidebots": "ボット",
+       "wlshowhideliu": "登録利用者",
+       "wlshowhideanons": "IP利用者",
+       "wlshowhidepatr": "巡回された編集",
+       "wlshowhidemine": "自分の編集",
        "watchlist-options": "ウォッチリストのオプション",
        "watching": "ウォッチリストに追加中...",
        "unwatching": "ウォッチリストから除去中...",
        "duration-centuries": "$1 {{PLURAL:$1|世紀}}",
        "duration-millennia": "$1{{PLURAL:$1|,000 年}}",
        "rotate-comment": "画像を時計回りに $1 {{PLURAL:$1|度}}回転",
-       "limitreport-title": "パーサーのプロファイリング データ:",
+       "limitreport-title": "構文解析のプロファイリング データ:",
        "limitreport-cputime": "CPU 時間",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|秒}}",
        "limitreport-walltime": "実時間",
        "log-name-pagelang": "言語変更記録",
        "log-description-pagelang": "これはページ言語の変更の記録です。",
        "logentry-pagelang-pagelang": "$1 がページ $3 の言語を $4 から $5 に{{GENDER:$2|変更しました}}",
-       "default-skin-not-found": "ã\81\8aã\81£ã\81¨! ã\81\82ã\81ªã\81\9fã\81®ã\82¦ã\82£ã\82­ã\81®æ\97¢å®\9aã\81®å¤\96è£\85 <code>$1</code> ã\81¨ã\81\97ã\81¦å®\9a義ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b <code>$wgDefaultSkin</code> ã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82\n\nã\81\82ã\81ªã\81\9fã\81®ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81«ã\81¯ä»¥ä¸\8bã\81®{{PLURAL:$4|skin|å¤\96è£\85}}ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82{{PLURAL:$4|it|å¤\96è£\85ã\81®æ\9c\89å\8a¹å\8c\96ã\81¨æ\97¢å®\9aã\81®é\81¸æ\8a\9e}}ã\81«ã\81¤ã\81\84ã\81¦ã\81¯ã\80\81[https://www.mediawiki.org/wiki/Manual:Skin_configuration ã\83\9eã\83\8bã\83¥ã\82¢ã\83«: å¤\96è£\85設å®\9a] ã\82\92ã\81\94覧ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\n\n$2\n\n; MediaWikiã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97ã\81\9fã\81°ã\81\8bã\82\8aã\81®å ´å\90\88:\n: gitã\81\8bã\82\89ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97ã\81\9fã\81\8bã\80\81ã\81\9dã\81®ä»\96ã\81®ä½\95ã\82\89ã\81\8bã\81®æ\96¹æ³\95ã\81§ã\82½ã\83¼ã\82¹ã\82³ã\83¼ã\83\89ã\81\8bã\82\89ç\9b´æ\8e¥ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\81\93ã\82\8cã\81¯æ\9c\9få¾\85ã\81\95ã\82\8cã\81\9fã\81¨ã\81\8aã\82\8aã\81®å\8b\95ä½\9cã\81§ã\81\99ã\80\82[https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory] ã\81\8bã\82\89å¤\96è£\85ã\82\92ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\97ã\81¦ã\81¿ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82\n:* [https://www.mediawiki.org/wiki/Download tarball installer] ã\82\92ã\83\80ã\82¦ã\83³ã\83­ã\83¼ã\83\89ã\81\97ã\81¦ã\81¿ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82ã\81\93ã\82\8cã\81«ã\81¯ã\81\84ã\81\8fã\81¤ã\81\8bã\81®å¤\96è£\85ã\81¨æ\8b¡å¼µæ©\9fè\83½ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82 <code>skins/</code> ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81\8bã\82\89ã\82³ã\83\94ã\83¼&ã\83\9aã\83¼ã\82¹ã\83\88ã\81§ã\81\8dã\81¾ã\81\99ã\80\82\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: ã\81\82ã\81ªã\81\9fã\81\8cMediaWikié\96\8bç\99ºè\80\85ã\81®å ´å\90\88ã\80\81ã\81\93ã\82\8cã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\81ªã\81\9fã\81®gitã\83ªã\83\9dã\82¸ã\83\88ã\83ªã\81«å¹²æ¸\89ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81\82ã\82\8aã\81¾ã\81\9bã\82\93ã\80\82\n\n; MediaWiki ã\82\92ã\82¢ã\83\83ã\83\97ã\82°ã\83¬ã\83¼ã\83\89ã\81\97ã\81\9få ´å\90\88:\n: MediaWiki 1.24 ä»¥é\99\8dã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81§ã\81¯ã\80\81ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«æ¸\88ã\81¿ã\81®å¤\96è£\85ã\81¯è\87ªå\8b\95ç\9a\84ã\81«ã\81¯æ\9c\89å\8a¹ã\81«ã\81ªã\82\8aã\81¾ã\81\9bã\82\93ã\80\82 ([https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery ã\83\9eã\83\8bã\83¥ã\82¢ã\83«:å¤\96è£\85ã\81®è\87ªå\8b\95æ\8e¢ç´¢] ã\82\92ã\81\94覧ã\81\8fã\81 ã\81\95ã\81\84\80\82<code>LocalSettings.php</code> ã\81«ä»¥ä¸\8bã\81®{{PLURAL:$5|line|è¡\8c}}ã\82\92ã\83\9aã\83¼ã\82¹ã\83\88ã\81\97ã\81¦ã\80\81ç\8f¾å\9c¨ã\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b{{PLURAL:$5|skin|å¤\96è£\85}}ã\82\92æ\9c\89å\8a¹ã\81«ã\81§ã\81\8dã\81¾ã\81\99ã\80\82\n\n<pre dir=\"ltr\">$3</pre>\n\n; <code>LocalSettings.php</code>ã\82\92ç·¨é\9b\86ã\81\97ã\81\9fã\81°ã\81\8bã\82\8aã\81®å ´å\90\88:\n: å¤\96è£\85å\90\8dã\81«æ\89\93ã\81¡é\96\93é\81\95ã\81\84ã\81\8cã\81ªã\81\84ã\81\8bå\86\8d度確èª\8dã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82",
-       "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": "あなたのウィキの既定の外装 <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": "メディア統計",
index faf9205..8108835 100644 (file)
        "passwordreset-emailsent": "პაროლის თავიდან დასაყენებელი ელ.ფოსტა გაიგზავნა.",
        "passwordreset-emailsent-capture": "ქვემოთ ნაჩვენები პაროლის თავიდან დასაყენებელი წერილი გაიგზავნა.",
        "passwordreset-emailerror-capture": "ქვემოთ მოცემულია შექმნილი პაროლის დასაყენებელი წერილი, რომლის გაგზავნაც {{GENDER:$2|მომხმარებელთან}} ვერ მოხერხდა: $1 გამო",
-       "changeemail": "ელ-ფოსტის მისამართის შეცვლა",
+       "changeemail": "ელ-ფოსტის მისამართის შეცვლა ან წაშლა",
        "changeemail-header": "ანგარიშის ელ-ფოსტის მისამართის შეცვლა",
        "changeemail-no-info": "თქვენ ავტირიზებული უნდა იყოთ ამ გვერდთან უშუალო წვდომისთვის.",
        "changeemail-oldemail": "ელ-ფოსტის ამჟამინდელი მისამართი:",
        "prefs-watchlist-token": "კონტროლის სიის ტოკენი:",
        "prefs-misc": "სხვადასხვა",
        "prefs-resetpass": "შეცვალეთ პაროლი",
-       "prefs-changeemail": "á\83\94á\83\9a\83¤á\83\9dá\83¡á\83¢á\83\98á\83¡ á\83¨á\83\94á\83ªá\83\95ლა",
+       "prefs-changeemail": "á\83\94á\83\9a\83¤á\83\9dá\83¡á\83¢á\83\98á\83¡ á\83\9bá\83\98á\83¡á\83\90á\83\9bá\83\90á\83 á\83\97á\83\98á\83¡ á\83¨á\83\94á\83ªá\83\95á\83\9aá\83\90 á\83\90á\83\9c á\83¬á\83\90á\83¨ლა",
        "prefs-setemail": "ელ-ფოსტის მისამართის დაყენება",
        "prefs-email": "ელ-ფოსტის პარამეტრები",
        "prefs-rendering": "იერსახე",
        "rows": "რიგები:",
        "columns": "სვეტები",
        "searchresultshead": "ძიება",
-       "stub-threshold": "გაფორმების გასაუმჯობესებლად <a href=\"#\" class=\"stub\"> მოცემულია ესკიზების ბმულები</a> (ბაიტებში):",
+       "stub-threshold": "გაფორმების გასაუმჯობესებლად მოცემულია ესკიზის ბმული ($1):",
        "stub-threshold-sample-link": "მაგალითი",
        "stub-threshold-disabled": "გათიშულია",
        "recentchangesdays": "ბოლო ცვლილებებში საჩვენებელი დღეები:",
        "group-bot": "რობოტები",
        "group-sysop": "ადმინისტრატორები",
        "group-bureaucrat": "ბიუროკრატები",
-       "group-suppress": "á\83\96á\83\94á\83\93á\83\90á\83\9bá\83®á\83\94á\83\93á\83\95á\83\94á\83\9aები",
+       "group-suppress": "á\83 á\83\94á\83\95á\83\98á\83\96á\83\9dá\83 ები",
        "group-all": "(ყველა)",
        "group-user-member": "{{GENDER:$1|მომხმარებელი}}",
        "group-autoconfirmed-member": "{{GENDER:$1|ავტომატურად დადასტურებული მომხმარებელი}}",
        "grouppage-bot": "{{ns:project}}:რობოტები",
        "grouppage-sysop": "{{ns:project}}:ადმინისტრატორები",
        "grouppage-bureaucrat": "{{ns:project}}:ბიუროკრატები",
-       "grouppage-suppress": "{{ns:project}}:á\83\96á\83\94á\83\93á\83\90á\83\9bá\83®á\83\94á\83\93á\83\95á\83\94á\83\9aები",
+       "grouppage-suppress": "{{ns:project}}:á\83 á\83\94á\83\95á\83\98á\83\96á\83\9dá\83 ები",
        "right-read": "გვერდების წაკითხვა",
        "right-edit": "გვერდების რედაქტირება",
        "right-createpage": "გვერდების შექმნა (არა განხილვის გვერდებისა)",
        "rcshowhidemine": "ჩემი რედაქტირების $1",
        "rcshowhidemine-show": "ჩვენება",
        "rcshowhidemine-hide": "დამალვა",
+       "rcshowhidecategorization-show": "ჩვენება",
+       "rcshowhidecategorization-hide": "დამალვა",
        "rclinks": "ბოლო $1 ცვლილების ჩვენება უკანასკნელი $2 დღის მანძილზე<br />$3",
        "diff": "განსხ.",
        "hist": "ისტ.",
        "boteditletter": "რ",
        "unpatrolledletter": "!",
        "number_of_watching_users_pageview": "[$1 მომხმარებლის/ები კონტროლი]",
-       "rc_categories": "á\83\9bá\83®á\83\9dá\83\9aá\83\9dá\83\93 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\94á\83\91á\83\98á\83\93á\83\90á\83\9c (á\83\92á\83\90á\83\9cá\83\90á\83ªá\83\90á\83\9aá\83\99á\83\94á\83\95á\83\94á\83\97 \"|\"-á\83\98á\83¡ á\83\9bá\83\98á\83®á\83\94á\83\93á\83\95á\83\98á\83\97)",
+       "rc_categories": "á\83\9bá\83®á\83\9dá\83\9aá\83\9dá\83\93 á\83\99á\83\90á\83¢á\83\94á\83\92á\83\9dá\83 á\83\98á\83\94á\83\91á\83\98á\83\93á\83\90á\83\9c (á\83\92á\83\90á\83\9bá\83§á\83\9dá\83¤á\83\98 â\80\9e\80\9c)",
        "rc_categories_any": "არჩეულიდან ნებისმიერი",
        "rc-change-size": "$1",
        "rc-change-size-new": "ზომა ცვლილების შემდეგ არის: {{PLURAL:$1|ბაიტი|ბაიტი}}",
        "wlheader-showupdated": "თქვენი ბოლო ვიზიტის შემდეგ შეცვლილი გვერდები, აღნიშნულია '''მუქად'''.",
        "wlnote": "ქვემოთ {{PLURAL:$1|ნაჩვენებია ბოლო ცვლილება|ნაჩვენებია ბოლო '''$1''' ცვლილება}} უკანასკნელი {{PLURAL:$2|საათის|'''$2''' საათის}} მანძილზე, $3, $4 მდგომარეობით.",
        "wlshowlast": "ბოლო $1 საათის $2 დღის ჩვენება",
+       "watchlistall2": "ყველა",
+       "wlshowhidemine": "ჩემი რედაქტირება",
        "watchlist-options": "კონტროლის სიის პარამეტრები",
        "watching": "კონტროლებადი...",
        "unwatching": "არაკონტროლირებადი...",
        "undeletepagetext": "მომდევნო {{PLURAL:$1|გვერდი|$1 გვერდი}} წაშლილია, მაგრამ ჯერ კიდევ არქივშია და შესაძლებელია აღდგენა.\nარქივი შესაძლებელია პერიოდულად გასუფთავდეს.",
        "undelete-fieldset-title": "წინა ვერსიის აღდგენა",
        "undeleteextrahelp": "ამ გვერდის ისტორიის მთლიანად აღსადგენად დატოვეთ ყველა მოსანიშნი უჯრა ცარიელი და დააჭირეთ '''''{{int:undeletebtn}}'''''.\nნაწილობრივი აღდგენისათვის მონიშნეთ გვერდის ის ვერსიები, რომელთა აღდგენაც გსურთ და დააჭირეთ '''''{{int:undeletebtn}}'''''.",
-       "undeleterevisions": "$1 ვერსიები დაარქივებულია",
+       "undeleterevisions": "$1 {{PLURAL:$1|ვერსია|ვერსია}} დაარქივებულია",
        "undeletehistory": "თუ გვერდს აღადგენთ, ყველა ვერსია აღდგება ისტორიაში.\nთუ ახალი გვერდი იგივე სახელით მისი წაშლის შემდეგ უკვე შეიქმნა, აღდგენილი ვერსიები გამოჩნდება წინა ისტორიაში.",
        "undeleterevdel": "აღდგენა არ შესრულდება, თუ ის გამოიწვევს გვერდის ბოლო ვერსიის ან ფაილის ნაწილობრივ წაშლას.\nასეთ შემთხვევაში თქვენ უნდა მოხსნათ ნიშნული ან აჩვენოთ ბოლო წაშლილი ვერსიები.",
        "undeletehistorynoadmin": "ეს სტატია წაშლილია. წაშლის მიზეზი ნაჩვენებია მოკლე ანოტაციაში ქვემოთ, იმ მომხმარებელთა დეტალებთან ერთად ვინც რედაქტირება გაუკეთა ამ გვერდს წაშლის წინ. იმ წაშლილი ტექსტების აქტუალური ვერსიები მიღწევადია მხოლოდ ადმინისტრატორებისათვის.",
        "cant-move-to-user-page": "თქვენ ვერ გადაიტანთ მომხმარებლის გვერდებს (გარდა მომხმარებელთა ქვეგვერდებისა)",
        "cant-move-category-page": "თქვენ არ გაქვთ კატეგორიის გვერდების გადამისამართების უფლება",
        "cant-move-to-category-page": "თქვენ არ გაქვთ გვერდების გადამისამართების უფლება კატეგორიის გვერდებში",
-       "newtitle": "ახალი სათაური",
+       "newtitle": "ახალი სათაური:",
        "move-watch": "ამ გვერდის კონტროლი",
        "movepagebtn": "გვერდის გადატანა",
        "pagemovedsub": "გადატანა შესრულებულია",
        "markedaspatrolledtext": "არჩეული ვერსია [[:$1]] მონიშნულია როგორც პატრულირებული",
        "rcpatroldisabled": "ბოლო ცვლილებების პატრულირება აკრძალულია",
        "rcpatroldisabledtext": "ბოლო ცვლილებების პატრულირების შესაძლებლობა ამ მომენტისთვის გათიშულია",
-       "markedaspatrollederror": "á\83¨á\83\94á\83£á\83«á\83\9aá\83\94á\83\91á\83\94á\83\9aá\83\98á\83\90 á\83\90á\83\9b á\83¡á\83¢á\83\90á\83¢á\83\98á\83\98á\83¡ á\83\9bá\83\9dá\83\9cá\83\98á\83¨á\83\95á\83\9cá\83\90 á\83\9eá\83\90á\83¢á\83 á\83£á\83\9aá\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\90á\83\93.",
+       "markedaspatrollederror": "á\83\94á\83¡ á\83¡á\83¢á\83\90á\83¢á\83\98á\83\90 á\83\9eá\83\90á\83¢á\83 á\83£á\83\9aá\83\98á\83 á\83\94á\83\91á\83£á\83\9aá\83\90á\83\93 á\83\95á\83\94á\83  á\83\9bá\83\9dá\83\98á\83\9cá\83\98á\83¨á\83\9cá\83\90.",
        "markedaspatrollederrortext": "თქვენ უნდა მონიშნოთ ვერსია, რომელიც პატრულირებულად ჩაითვლება.",
        "markedaspatrollederror-noautopatrol": "თქვენ ვერ მონიშნავთ თქვენივე შესწორებებს პატრულირებულად.",
        "markedaspatrollednotify": "ეს ცვლილება გვერდზე „$1“ პატრულირებულად მოინიშნა.",
index 95f90f5..cb9f721 100644 (file)
        "wlheader-showupdated": "Соңғы келіп-кетуіңізден бері өзгертілген беттер '''жуан''' қаріпімен көрсетіледі.",
        "wlnote": "Төменде $3, $4 кезіне дейінгі соңғы {{PLURAL:$2|сағатта|<strong>$2</strong>  сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы <strong>$1</strong>  өзгеріс}} көрсетіледі.",
        "wlshowlast": "Соңғы $1 сағаттағы, $2 күндегіні көрсету",
+       "watchlistall2": "барлық",
        "watchlist-options": "Бақылау тізімінің баптаулары",
        "watching": "Бақылауда…",
        "unwatching": "Бақыламауда…",
index 6c3687f..757e294 100644 (file)
        "wlheader-enotif": "ಮಿಂಚಂಚೆ ಸೂಚನೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.",
        "wlheader-showupdated": "ನೀವು ಕೊನೆಯ ಬಾರಿ ಭೇಟಿ ನೀಡಿದ ನಂತರ ಬದಲಾವಣೆಗಳು ಆಗಿರುವ ಪುಟಗಳು '''ದಪ್ಪ ಅಕ್ಷರಗಳಲ್ಲಿ''' ತೋರಿಸಲಾಗಿದೆ",
        "wlshowlast": "ಕೊನೆಯ $1 ಗಂಟೆ $2 ದಿನಗಳು  ಅನ್ನು ತೋರಿಸು",
+       "watchlistall2": "ಎಲ್ಲಾ",
        "watchlist-options": "ವೀಕ್ಷಣಾಪಟ್ಟಿ ಆಯ್ಕೆಗಳು",
        "watching": "ವೀಕ್ಷಣೆಗೆ ಸೇರಿಸಲಾಗುತ್ತಿದೆ...",
        "unwatching": "ವೀಕ್ಷಣೆಯಿಂದ ತೆಗೆಯಲಾಗುತ್ತಿದೆ...",
index 405a255..a182bb5 100644 (file)
        "content-model-css": "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": "<strong>경고:</strong> 이 문서는 너무 많은 파서 함수를 포함하고 있습니다.\n\n$2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개를 쓰고 있습니다}}.",
        "wlheader-showupdated": "마지막으로 방문한 이후에 바뀐 문서는 '''굵은 글씨'''로 보입니다.",
        "wlnote": "$3 $4 기준으로, 아래에 최근 {{PLURAL:$2|한 시간|<strong>$2</strong>시간}} 동안 {{PLURAL:$1|마지막 바뀜이|마지막 바뀜 <strong>$1</strong>개가}} 있습니다.",
        "wlshowlast": "최근 $1시간 $2일 동안의 바뀜 보기",
+       "watchlistall2": "모두",
        "watchlist-options": "주시문서 목록 설정",
        "watching": "주시 추가 중…",
        "unwatching": "주시 해제 중…",
index b68948c..d5c037a 100644 (file)
        "actions": "Akßjuhne",
        "namespaces": "Appachtemangs",
        "variants": "Variante",
-       "navigation-heading": "Menü för et Navijeere",
+       "navigation-heading": "Navijehre",
        "errorpagetitle": "Fähler",
        "returnto": "Jangk widder noh: „$1“.",
        "tagline": "Uß {{GRAMMAR:Dativ | {{ucfirst:{{SITENAME}}}}}}",
        "printableversion": "För ze Dröcke",
        "permalink": "Permalengk noh heh",
        "print": "Drocke",
-       "view": "Beloore",
+       "view": "Belohre",
        "view-foreign": "Op $1 beloohre",
        "edit": "Ändere",
        "edit-local": "Aanmärkonge heh em Wikki beärbeide",
        "prefsnologintext2": "Donn ennlogge, öm Ding Enschtällonge ze verändere.",
        "prefs-skin": "Et Ußsinn",
        "skin-preview": "Vör-Ansich",
-       "datedefault": "Ejaal - kein Vörliebe",
+       "datedefault": "Ejahl",
        "prefs-labs": "Neu Saache zom Ußprobeere, di künnte noch nit akeraat fluppe",
        "prefs-user-pages": "Metmaachersigge",
        "prefs-personal": "De Ennschtällonge",
        "rcshowhidebots": "de Bots ehr Änderonge $1",
        "rcshowhidebots-show": "aanzeije",
        "rcshowhidebots-hide": "verschteihsche",
-       "rcshowhideliu": "$1 de aanjemällte Metmaacher ehr Änderonge",
+       "rcshowhideliu": "de aanjemällte Metmaacher ehr Änderonge $1",
        "rcshowhideliu-show": "aanzeije",
        "rcshowhideliu-hide": "verschteihsche",
-       "rcshowhideanons": "$1 de nahmelohse Metmaacher ehr Änderonge",
+       "rcshowhideanons": "de nahmelohse Metmaacher ehr Änderonge $1",
        "rcshowhideanons-show": "aanzeije",
        "rcshowhideanons-hide": "verschteihsche",
        "rcshowhidepatr": "de nohjeluhrte Änderonge $1",
        "rclinks": "Zeisch de läzde {{int:pipe-separator}}$1{{int:pipe-separator}} Änderonge us de läzde {{int:pipe-separator}}$2{{int:pipe-separator}} Däch, un dun {{int:pipe-separator}} $3.",
        "diff": "Ongerscheid",
        "hist": "Väsjohne",
-       "hide": "Ußblände!",
+       "hide": "ußblände!",
        "show": "Zeije:",
        "minoreditletter": "M",
        "newpageletter": "N",
        "wlheader-showupdated": "Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin di Sigge <strong>extra markeet</strong>.",
        "wlnote": "{{PLURAL:$1|Hee es de läzde Änderong uß|Hee sin de läzde <strong>$1</strong> Änderonge uß|Mer han kein Änderonge en}} de läzde {{PLURAL:$2|Stund|<strong>$2</strong> Stunde|<strong>noll</strong> Stunde}} zigg em $3 öm $4 Uhr.",
        "wlshowlast": "Zeisch de läzde $1 Schtunde, $2 Dähsch aan.",
+       "watchlistall2": "all",
        "watchlist-options": "Eijeschaffte fun de Oppassless",
        "watching": "Drobb oppaßße…",
        "unwatching": "Nimmih drobb oppaßße",
        "whatlinkshere-prev": "de vörijje {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-next": "de nächste {{PLURAL:$1||$1|noll}} zeije",
        "whatlinkshere-links": "← Links",
-       "whatlinkshere-hideredirs": "$1 de Ömleidonge",
-       "whatlinkshere-hidetrans": "$1 de Oproofe",
-       "whatlinkshere-hidelinks": "$1 de nommale Lengks",
+       "whatlinkshere-hideredirs": "de Ömleijdonge $1",
+       "whatlinkshere-hidetrans": "de Oproofe $1",
+       "whatlinkshere-hidelinks": "de nommahle Lengks $1",
        "whatlinkshere-hideimages": "$1 de Lengks op Datteihje",
        "whatlinkshere-filters": "Ußsööke",
        "autoblockid": "Automattesche Sperr Nommer $1",
        "allmessages-filter-legend": "Ußsöhke — wat för en Täxte o Nohreeshte aazeije?",
        "allmessages-filter": "Zohshtand:",
        "allmessages-filter-unmodified": "nit jeändert",
-       "allmessages-filter-all": "ejaal",
+       "allmessages-filter-all": "ejahl",
        "allmessages-filter-modified": "heh em Wiki jeändert",
        "allmessages-prefix": "Nahme fängk aan met:",
        "allmessages-language": "Schprohch:",
        "exif-urgency-low": "Klein ($1)",
        "exif-urgency-high": "Huh ($1)",
        "exif-urgency-other": "Selfs faßjelaat ($1)",
-       "namespacesall": "all",
+       "namespacesall": "alle",
        "monthsall": "all",
        "confirmemail": "E-Mail Adress bestätije",
        "confirmemail_noemail": "En [[Special:Preferences|Ding Ennschtällonge]] es kein öhntlije Adräß för de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"„de eläktrohnesche Poß“\">e-mail</i>.",
index b496fbc..dda2c8f 100644 (file)
        "userlogin-resetlink": "Te agahiyên hesabê xwe ji bîr kirin?",
        "userlogin-resetpassword-link": "Te şîfreya xwe ji bîr kir?",
        "userlogin-helplink2": "Alîkariya têketinê",
-       "userlogin-createanother": "Hesabekî din çeke",
+       "userlogin-createanother": "Hesabekî din çêke",
        "createacct-emailrequired": "E-name",
        "createacct-emailoptional": "E-name",
        "createacct-email-ph": "E-nameya xwe binivîse",
        "wlheader-showupdated": "Ev rûpela hatî guhertin dema te lê meyzand bi '''nivîsa stûr''' tê xuyakirin.",
        "wlnote": "Niha {{PLURAL:$1|xeyrandinê|'''$1''' xeyrandinên}} dawî yê {{PLURAL:$2|seetê|'''$2''' seetên}} dawî {{PLURAL:$1|tê|tên}} dîtin.",
        "wlshowlast": "Guhertinên berî $1 saetan, $2 rojan, ya  nîşan bide",
+       "watchlistall2": "hemû",
        "watchlist-options": "Vebijarkên lîsteya şopandinê",
        "watching": "Tê şopandin...",
        "unwatching": "Nay şopandin…",
index 7769044..60a5c84 100644 (file)
        "nstab-template": "Formula",
        "nstab-help": "Auxilium",
        "nstab-category": "Categoria",
+       "mainpage-nstab": "Pagina prima",
        "nosuchaction": "Actio non est",
        "nosuchactiontext": "Actio in URL designata non agnoscitur a hoc vici.",
        "nosuchspecialpage": "Pagina specialis non est",
        "watchlist-details": "{{PLURAL:$1|$1 pagina|$1 paginae}} in indice paginarum observatarum tuarum, sine paginis disputationis.",
        "wlnote": "Subter {{PLURAL:$1|est mutatio proxima|sunt '''$1''' mutationes proximae}} in {{PLURAL:$2|proxima hora|proximis '''$2''' horis}} ex $4, $3.",
        "wlshowlast": "Monstrare proximas $1 horas $2 dies",
+       "watchlistall2": "omnes",
        "watchlist-options": "Indicis paginarum observatarum praeferentiae",
        "watching": "Custodiens...",
        "unwatching": "Decustodiens...",
index fcc7501..59cdf77 100644 (file)
        "unwatch": "dexa de cudiar",
        "watchlist-details": "{{PLURAL:$1|$1 hoja|$1 hojas}} en tu lista de escogidas, sin contar las de la diskussión.",
        "wlshowlast": "Ver los trocamientos de las últimas $1 oras, $2 días",
+       "watchlistall2": "todos",
        "watchlist-options": "Opciones de la lista de escogidas",
        "watching": "Cudiando...",
        "unwatching": "Dexando de cudiar...",
index c78b721..f139495 100644 (file)
        "wlheader-showupdated": "Säiten déi zanter Ärer leschter Visite geännert goufen, si '''fett''' geschriwwen",
        "wlnote": "Hei {{PLURAL:$1|ass déi lescht Ännerung|sinn déi lescht <strong>$1</strong> Ännerunge}} vun {{PLURAL:$2|der leschter Stonn|de leschte(n) <strong>$2</strong> Stonnen}}, Stand: $3 ëm $4 Auer.",
        "wlshowlast": "Déi lescht $1 Stonnen $2 Deeg weisen",
+       "watchlistall2": "all",
+       "watchlist-hide": "Verstoppen",
+       "wlshowtime": "Lëscht weisen",
+       "wlshowhideminor": "kleng Ännerungen",
+       "wlshowhidebots": "Botten",
+       "wlshowhideliu": "registréiert Benotzer",
+       "wlshowhideanons": "anonym Benotzer",
+       "wlshowhidepatr": "iwwerwaacht Ännerungen",
+       "wlshowhidemine": "meng Ännerungen",
        "watchlist-options": "Optioune vun der Iwwerwaachungslëscht",
        "watching": "Iwwerwaachen …",
        "unwatching": "Net méi iwwerwaachen …",
index 34241d1..bbd4a55 100644 (file)
@@ -8,7 +8,8 @@
                        "Malafaya",
                        "Urhixidur",
                        "ZeneizeForesto",
-                       "아라"
+                       "아라",
+                       "V6rg"
                ]
        },
        "tog-underline": "Sottolineâ i collegamenti",
        "userlogin-resetpassword-link": "Reimposta a to password",
        "createaccountmail": "Doeuvia una password temporanea abrettio e mandila a l'adresso de posta elettronica speçificou",
        "createaccountreason": "Raxon:",
-       "createacct-imgcaptcha-ph": "Scrivi quello che ti veddi de d'ato",
        "createacct-submit": "Crea a to utensa",
        "createacct-another-submit": "Crea un'atra utensa",
        "createacct-benefit-body2": "{{PLURAL:$1|paggina|paggine}}",
        "passwordreset-emailtitle": "Dettaggi account sciu {{SITENAME}}",
        "passwordreset-emailelement": "Nomme utente: \n$1\n\nPoula segretta temporannia: \n$2",
        "changeemail": "Cangia l'adresso e-mail",
+       "changeemail-header": "Cangia l'adresso e-mail de questa utensa",
        "changeemail-newemail": "Noeuvo adresso e-mail",
        "changeemail-none": "(nisciun)",
        "changeemail-password": "A to password pe {{SITENAME}}:",
        "unwatch": "Leva da sott'oservaçion",
        "watchlist-details": "A lista d'oservaçión speçiâle a contegne {{PLURAL:$1|ina pàgina (co-a seu pàgina de discusción)|$1 de pàgine (co-e so pàgine de discusción)}}.",
        "wlshowlast": "Famme vedde e ûrtime $1 ôe $2 giorni",
+       "watchlistall2": "Tùtti",
        "watchlist-options": "Inpostaçioìn di oservæ speciâli",
        "watching": "Inti osservæ speçiâli...",
        "unwatching": "Scassâ da-i osservæ speçiâli",
        "undelete-cleanup-error": "Errô repiggiando i dæti do papê \"$1\".",
        "undelete-error-short": "Errô repiggiando i dæti do papê \"$1\".",
        "undelete-error-long": "Ghe son stæti de i errôi cuando se repiggiavan i dæti de o papê:\n\n$1",
-       "namespace": "Namespace:",
+       "namespace": "نؤمفضا:",
        "invert": "Invertî a seleçión",
        "blanknamespace": "(Prinçipâ)",
        "contributions": "Contribuçioin {{GENDER:$1|utente}}",
        "move-page-legend": "Mescia a paggina",
        "movepagetext": "Chì o se pêu dâ 'n nêuvo nomme a 'na paggina, stramûando tûtta a sêu cronologîa a-o nêuvo nomme.\nA paggina attuâle a fa outomaticamente 'n rindirissamento a-o nêuvo tittolo.\nI collegamenti escistenti no sajàn aggiornæ; veriffica che 'sto stramûo o no l'agge creòu doggi rindirissamenti ò rindirissamenti sballiæ.\nA responsabilitæ pe tegnî i collegamenti sempre donde deivan andâ a l'è têu.\n\nA paggina a '''no''' sajà stramûâa se ghe foisse zà ûnn-a co-o nêuvo nomme, a meno c'a no segge vêua ò fæta solo da 'n rindirissamento a-a vegia e a no l'agge verscioîn preçedenti.\nIn caso de stramûo sballiòu o se pêu tornâ sûbbito a-o vegio tittolo, e o no l'è poscibbile sorvescrive pe errô 'na paggina zà escistente.\n\n'''ATTENSION:'''\n'N cangiamento coscì grande o porieiva creâ di controtempi e problemmi, sorvetûtto pe-e paggine ciû viscitæ.\nPensa ben e conseguense de 'sto stramûo primma d'andâ avanti!",
        "movepagetalktext": "A corispondente paggina de discûxon a sajà stramûâa outomaticamente insemme a-a paggina prinçipâ, '''eççetto inti seguenti câxi''':\n\n* Che o stramûo da paggina o segge tra namespace diversci\n* Che inta corispondensa do nêuvo tittolo ghe segge zà 'na paggina de discûxon (no vêua)\n* Che a cascetta chì sotta a segge stæta deselessionâa.\n\nInte 'sti câxi, se o se vêu fâ coscì, o se deive stramûâ ò azzonze manualmente e informassioîn contegnûe inta paggina de discûxon.",
-       "movearticle": "Stramûâ a paggina",
        "newtitle": "Nêuvo tittolo:",
        "move-watch": "Azzonze a li osservæ speçiâli",
        "movepagebtn": "Stramûâ a paggina",
index ff22342..e6ea537 100644 (file)
@@ -18,7 +18,8 @@
                        "Sprüngli",
                        "아라",
                        "Ninonino",
-                       "Macofe"
+                       "Macofe",
+                       "V6rg"
                ]
        },
        "tog-underline": "Sutulinia i ligam",
        "faq": "FAQ",
        "faqpage": "Project:Dumand frequent",
        "actions": "Azión",
-       "namespaces": "Namespace",
+       "namespaces": "نؤمفضا",
        "variants": "Variant",
        "navigation-heading": "Menù de navigasiù",
        "errorpagetitle": "Erur",
        "createaccountreason": "Mutìf:",
        "createacct-reason": "Mutìf:",
        "createacct-reason-ph": "Che fòza che sét dré a creà 'n ótra ütènsa?",
-       "createacct-captcha": "Contròl de sigürèsa",
-       "createacct-imgcaptcha-ph": "Mèt dét el tèst che te èdet ché sura",
        "createacct-submit": "Créa la tò ütènsa",
        "createacct-another-submit": "Créa 'n ótra ütènsa",
        "createacct-benefit-heading": "{{SITENAME}} la crès gràsie a le persùne compagn de té.",
        "unwatchthispage": "Desmèt de tègner d'öcc",
        "watchlist-details": "{{PLURAL:$1|$1 pagina|$1 paginn}} tegnüü sot ögg, fö che i paginn de discüssión.",
        "wlshowlast": "Fa vidé i ültim $1 ur $2 dì",
+       "watchlistall2": "tücc",
        "watchlist-options": "Upzión lista d'ussevazión",
        "watching": "Giuntà ai pagin da ten d'ögg...",
        "unwatching": "Eliminà dai pagin da ten d'ögg...",
index 54486ea..472ea80 100644 (file)
        "uploaddisabledtext": "سوار کرد جانیایا د کار نئ.",
        "php-uploaddisabledtext": "سوارکرد جانیایا د پی اچ پی ناکشتگر بیه.\nلطفن میزونکاری سوارکرد جانیا نه وارسی بکیت.",
        "uploadscripted": "ای بلگه مینونه دار رازینه اچ تی امل یا نیسسه یه که شایت وه ناخوشی وا دوراته نیئر واشکافت با.",
+       "upload-scripted-pi-callback": "نأبوٙە جانیایایی کئ د ڤأرگئرئتە آموختارکاری پأردازئشت بألگە یا ئیکس ئم ئلئن سوڤار بأکیت.",
        "uploadscriptednamespace": "ای جانیا اس‌ وی‌ جی نوم جا غیرقانونی '$1' داره.",
        "uploadinvalidxml": "ایکس ام الی که سوار بیه نبوئه نوتیج با.",
        "uploadvirus": "د ای جانیا ویروس هئ!\nجزیات:$1",
        "unusedimages": "فایلیا استفاده نبیه",
        "wantedcategories": "بلگه یا حاستنی",
        "wantedpages": "بلگه یا حاستنی",
-       "wantedpages-summary": "نومگه بلگه یایی که نیئشو وا بیشتری هوم پیوند د ونو، وه جز بلگه یایی که فقط آلشت دئن لا د ونونه دارن. سی یه گل نومگه د بلگه یایی که نیئشو و آلشت دئن لا د ونونه دارن، [[{{#special:BrokenRedirects}}]] نه سیل بکیت.",
+       "wantedpages-summary": "نومگە بألگە یایی کئ نیئشوٙ ڤا بیشتئری ھومپئیڤأند د ڤئنوٙ،  ، ڤئ جوز بألگە یایی کئ فأقأط آلئشتکاری لا د ڤئنوٙنە دأرئن. سی یئ گئل نومگە د بألگە یایی کئ نیئشوٙ و آلئشتکاری لا د ڤئنوٙنە دارئن،[[{{#special:BrokenRedirects}}]] نە سئیل بأکیت.",
        "wantedpages-badtitle": "سرون نامعتور د کومله نتیجه یا:$1",
        "wantedfiles": "فایلیا حاستنی",
        "wantedfiletext-cat": "جانیایا هاری وه کار گرته بوئن ولی وجود نارن. همچنو شایت جانیایا وه دری وا یه که ایچه هیئشون نومگه کاری بینه.هر گرینج مثبت دورویی  <del>خط مئوره.</del> به اضافه یه، بلگه یایی که که جانیایا بی وجودن نه د خوشو دارن د [[:$1]] نومگه کاری بینه.",
        "emailccsubject": " پیغومتو سی $1:$2 ورداشته بی",
        "emailsent": "أنجومانامە کئل بییە",
        "emailsenttext": "پیغوم ایمیلی تو کل بیه.",
-       "emailuserfooter": "اÛ\8c Ø§Ù\86جÙ\88Ù\85اÙ\86اÙ\85Ù\87 Ù\88ا Ø¨Ù\87 Ú©Ø§Ø± Ú¯Ø±ØªÙ\86 Ø¯ Ø®ØµÙ\88صÛ\8cت \"Ú©Ù\84 Ú©Ø±Ø¯Ù\86 Ù\86Ù\88Ù\85Ù\87 Ø¯ Ø§Û\8c Ú©Ø§Ø±Û\8cار\"{{SITENAME}} Ù\88Ù\87 Ø¯Ø³ $1 Ø¨Ù\87 $2 Ú©ل بی.",
+       "emailuserfooter": "ئÛ\8c Ø£Ù\86جÙ\88Ù\85اÙ\86اÙ\85Û\95 Ú¤Ø§ Ú¤Ø¦ Ú©Ø§Ø± Ú¯Ø¦Ø±Ø¦ØªÙ\86ئ Ø¯ Ø®Ù\88صÙ\88Ù\99صÛ\8cأت \"کئÙ\84 Ú©Ø¦Ø±Ø¯Ø¦Ù\86 Ù\86Ù\88Ù\85Û\95 Ø¯ Ø¦Û\8c Ú©Ø§Ø±Û\8cار\"{{SITENAME}} Ú¤Ø¦ Ø¯Ø£Ø³ $1 Ø¯ $2 Ú©Ø¦ل بی.",
        "usermessage-summary": "رئتن د سامونه پیغوم",
        "usermessage-editor": "پیغوم فرسن سیستم",
        "usermessage-template": "ویکی وارسگر:پیغوم کاریار",
        "watchlistanontext": "لطفن بیایت وامین و ویرایشتیا نه د سیل برگتو سیل بکیت.",
        "watchnologin": "ھأنی نیوٙماە ڤامین",
        "addwatch": "ئضاف کئردئن د سئیل بأرگ",
-       "addedwatchtext": "بلگه «[[:$1]]» د [[Special:Watchlist|نومگه دماگردی]] شما اضاف بی.\nآلشتیا ای بلگه بلگه چک چنه ری وه ریش د نهاتر د ایچه نومگه کاری بوئه.",
+       "addedwatchtext": "بألگە «[[:$1]]» د [[Special:Watchlist|سئیل بأرگ]] شوما ئضاف بی.\nآلئشتیا ئی بألگە د بألگە چأک چئنە ری ڤئ ریشت د نئھاتئر د ئیچئ نومگە کاری با.",
        "addedwatchtext-short": "بلگه \"$1\" وه سیل برگ شما اضاف بیه.",
        "removewatch": "جا ڤئ جا کئردئن د سئیل بأرگ",
-       "removedwatchtext": "بلگه\"[[:$1]]\" د [[Special:سیل برگ|سیل برگ خوتو]] جا وه جا بیه.",
+       "removedwatchtext": "بألگە \"[[:$1]]\" د [[Special:سئیل بأرگ|سئیل بأرگ خوتوٙ]] جا ڤئ جا بییە.",
        "removedwatchtext-short": "بلگه \"$1\" د سیل برگ جا وه جا بیه.",
        "watch": "سئیل کئردئن",
        "watchthispage": "دیئن ئی بألگە",
        "wlheader-showupdated": "بلگه یایی که د آخرین کرتی که شما دشو دیئن کردیته آلشت بینه د <strong>توپر</strong>نشون دئه بینه",
        "wlnote": "د هار {{PLURAL:$1|آلشت|<strong>$1</strong> آلشتی}} که د {{PLURAL:$2|ساعت|<strong>$2</strong> ساعت}} دماتر انجوم بیه هیئش، ویرگار آخرین واجوری انجام شده موجود است، ویرگار آخری واجوری: $3، $4",
        "wlshowlast": "آخرین$1 ساعتیا $2و روزیا  نشو بیئه",
+       "watchlistall2": "ھأمە",
+       "wlshowtime": "نئشوٙ دأئن د آخأر",
+       "wlshowhideminor": "ڤیرایئشتیا فئرە کوچئک",
+       "wlshowhidebots": "بوتیا",
+       "wlshowhideliu": "کاریاریا ثأڤتئ نام کئردە",
+       "wlshowhideanons": "کاریار نادیار",
+       "wlshowhidepatr": "تیە پایی د ڤیرایئشتیا",
+       "wlshowhidemine": "ڤیرایئشتیا مئ",
        "watchlist-options": "چیا سئیل بأرگ",
        "watching": "د حال و بال دیئن...",
        "unwatching": "د حال ندیئن...",
        "deletepage": "پاکسا کئردئن بألگە",
        "confirm": "پوشت راس کاری کئردئن",
        "excontent": "مینوٙنە :\"$1\" بی",
-       "excontentauthor": "Ù\85Û\8cÙ\86Ù\88Ù\86Ù\87 Ø¨Ù\84Ú¯Ù\87 Û\8cÙ\87 Ø¨Û\8c: Â«$1» (Ù\88 ØªØ¦Ù\86ا Ù\87Ù\88Ù\85Û\8cار«[[Special:Contributions/$2|$2]]» بی)",
+       "excontentauthor": "Ù\85Û\8cÙ\86Ù\88Ù\99Ù\86Û\95 Ø¨Ø£Ù\84Ú¯Û\95 Û\8cÛ\95 Ø¨Û\8c: Â«$1» (Ù\88 ØªØ¦Ù\86Û\8cا Ú¾Ù\88Ù\85Û\8cار «[[Special:Contributions/$2|$2]]» بی)",
        "exbeforeblank": "مینونه حالی دمایی:\"$1\" بی",
        "delete-confirm": "پاکسا کئردئن \"$1\"",
        "delete-legend": "پاکسا کئردئن",
        "deletereasonotherlist": "دألیل ھأنی",
        "deletereason-dropdown": "* دلیلیا پاکسا کردن رسم بیه\n** اسپم\n** خراوکاری\n** رعایت نبین کپی رایت\n** درحاست نیسنه\n** نهاورگشت شکست حرده",
        "delete-edit-reasonlist": "دلیلیا پاکسا کردنه نه ویرایشت بکید",
-       "delete-toobig": "اÛ\8c Ø¨Ù\84Ú¯Ù\87 Ù\88Û\8cرگارÚ\86Ù\87 Ù\88Û\8cراÛ\8cشت Ù\81رÙ\87 Ú¯Ù¾Û\8c Ø¯Ø§Ø±Ù\87Ø\8c Ú©Ù\87 Ø¯ Ù\88ر Ú¯Ø±ØªÙ\87 Ø¨Û\8cشتر Ø¯ Û\8cÙ\87 Ú¯Ù\84 Ø¯ $1 {{PLURAL:$1|Ù\86سÙ\82Ù\87\86سÙ\82Ù\87}} Ø¦Ù\87.\nسÛ\8c Û\8cÙ\87 Ú©Ù\87 Ø¯ Ø§Ø®ØªÙ\84اÙ\84 Ù\86احاستÙ\86Û\8c Ø¯ {{SITENAME}} Ù\86Ù\87اگرÛ\8c Ø¨Ø§ Ù¾Ø§Ú©Ø³Ø§ Ú©Ø±Ø¯Ù\86 Ø§Û\8c Ø¬Ù\88راÛ\8cÙ\86 Ø¨Ù\84Ú¯Ù\87 Û\8cا Ù\85حدÙ\88د Ø¨Û\8cÙ\87.c",
+       "delete-toobig": "ئÛ\8c Ø¨Ø£Ù\84Ú¯Û\95 Ú¤Û\8cرگارÚ\86Û\95 Ú¤Û\8cراÛ\8cئشت Ù\81ئرÛ\95 Ú¯Ø£Ù¾Û\8c Ø¯Ø§Ø±Û\95Ø\8c Ú©Ø¦ Ø¯ Ú¤Ø£Ø± Ú¯Ø¦Ø±Ø¦ØªÛ\95 Ø¨Û\8cشتئر Ø¯ Û\8cئ Ú¯Ø¦Ù\84 Ø¯ $1 {{PLURAL:$1|Ù\86سÙ\82Ù\87\86سÙ\82Ù\87}} Ø£.\nسÛ\8c Û\8cÛ\95 Ú©Ø¦ Ø¯ Ù\86اÙ\85Û\8cزÙ\88Ù\99کارÛ\8c Ù\86احاستÛ\95 Ø¯ {{SITENAME}} Ù\86ئھاگئرÛ\8c Ø¨Ø§ Ù¾Ø§Ú©Ø³Ø§ Ú©Ø§Ø±Û\8c Ø¦Û\8c Ø¬Ù\88Ù\99ر Ø¨Ø£Ù\84Ú¯Û\95 Û\8cا Ù\85أدÙ\88Ù\99د Ø¨Û\8cÛ\8cÛ\95.",
        "delete-warning-toobig": "{{PLURAL:$1|}}ای بلگه ویرگارچه ویرایشتی گپی داره، که د ور گرته بیشتر د $1 {{PLURAL:$1|نسقه|نسقه}} ئه.\nپاکسا کردن وه ممکنه که کنشتکاری رسینه جا {{SITENAME}} نه مختل بکه؛\nای کار نه وا آهره کاری نهاداری بکیت.",
        "deleteprotected": "شما نمی تونیت ای بلگه نه پاکسا بکیت سی یه که وه پر و پیم بیه.",
        "deleting-backlinks-warning": "''' هشدار:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|بلگه یا هنی]] ین که وه بلگه یی که شما د حال و بار پاکسا کردن ونیت پیوند دارن یا د وه پرگنجایشت کاری بیینه.",
        "rollback-success": "ویرایشتیا $1 پاکساگری بی؛\nبلگه وه آخری ویرایشت $2 آلشت بیه.",
        "sessionfailure-title": "شکست حردن نشینگه",
        "sessionfailure": "چنی وه نظری میا که مشکلی ها د نشتجا کاریاری شما؛\nانجومگر حاستنی سی یه که د دزیه بیین دونسمنیاتو د نشسجا کاریاری نهاگری با انجومشیو بیه.\nلطف بکیت د ری دگمه ؤرئشتن بپورنیت و بلگه یی که رسسینه دش د نو واحونی بکیت، اوسه دنو تلاش بکیت.",
+       "changecontentmodel": "آلئشتکاری حال و بال مینوٙنە بألگە",
+       "changecontentmodel-legend": "آلئشتکاری حال و بال مینوٙنە",
        "changecontentmodel-title-label": "داسوٙن بألگە",
+       "changecontentmodel-model-label": "یئ گئل حال و بال تازە مینوٙنە",
        "changecontentmodel-reason-label": "دألیل:",
-       "protectlogpage": "پر و پیم کاری کردن",
-       "protectlogtext": "د هار یه گل نومگه د آلشتیا ریتراز پر و پیم کاری بلگه یا اومائه.\n[[Special:ProtectedPages|نومگه بلگه یا پر و پیم کار بیه]] نه سی دیئن نومگه پر و پیم کاری کارگرا بلگه یا سیل بکیت.",
-       "protectedarticle": "حفاظت بيه [[$1]]",
+       "changecontentmodel-success-title": "حال و بال مینوٙنە آلئشتکاری بی",
+       "logentry-contentmodel-change-revertlink": "لئرنیئن",
+       "logentry-contentmodel-change-revert": "لئرنیئن",
+       "protectlogpage": "پأر و پیم کاری پئرئستنوٙمە",
+       "protectlogtext": "د ھار یئ گئل نومگە د آلئشتیا ریتئراز پأر و پیم کاری بألگە یا ئوٙماە.\n[[Special:ProtectedPages|نومگە بألگە یا پأر و پیم کاری بییە]] نە سی دیئن نومگە پأر و پیم کاری کارگئرا بألگە یا نە سئیل بأکیت.",
+       "protectedarticle": "پأر و پیم کاری بییە [[$1]]",
        "modifiedarticleprotection": "ریتراز حفاظت د \"[[$1]]\" آلشت بیه",
        "unprotectedarticle": "بلگه«[[$1]]» نه د پر و پیم دراورد",
        "movedarticleprotection": "میزونکاری پر و پیم بیین د «[[$2]]» وه «[[$1]]» جا وه جا بیه",
        "protect-locked-dblock": "سی یه که رسینه جا قلف بیه، امکان آلشت دئن ریتراز پر و پیم کاری بلگه یا د ایسه نئ.\nمیزونکاری ایسنی بلگه '''$1''' ها دی ای قرار:",
        "protect-locked-access": "حساو کاریاری شما سی آلشتکاری ریتراز پر و پیم کاری صلاداری ناره.\nمیزونکاریا ایسنی بلگه '''$1''' ها دی ای قرار:",
        "protect-cascadeon": "ای بلگه ایسنی پر و پیم کاری بیه، سی یه که د {{PLURAL:$1|بلگه|بلگه یا}} هاری که گزینه پر و پیم کاری تاف نمایی {{PLURAL:$1|وه|ونو}} کنشتکاره، اومائه.\nآلشتیایی که مال ریتراز ای بلگه ن ری پر و پیم کاری تاف نمایی کارگرایی نارن.",
-       "protect-default": "همه کاروریا اجازه دارن",
+       "protect-default": "ھأمە کاریاریا صئلا دارئن",
        "protect-fallback": "فقط کاریاریایی که وه «$1» دسرسی دارن، صلادار ای کارن",
-       "protect-level-autoconfirmed": "فقط کاریاریا که خودپشت راس بینه صلادارن",
-       "protect-level-sysop": "فقط دیوونداریا",
+       "protect-level-autoconfirmed": "فأقأط کاریاریا خود پوشت راس کاری بییە صئلا دارئن",
+       "protect-level-sysop": "فأقأط سأردیڤوٙنکاریا",
        "protect-summary-desc": "[$1=$2] ($3)",
-       "protect-summary-cascade": "د حال و بال تافنمایی",
-       "protect-expiring": "گات تموم بیین $1 (یو تی سی)",
-       "protect-expiring-local": "گات تموم بیین $1",
-       "protect-expiry-indefinite": "بی زمون",
+       "protect-summary-cascade": "د حال و بال تافنئمایی",
+       "protect-expiring": "گات تأموٙم بییئن $1 (یو تی سی)",
+       "protect-expiring-local": "گات تأموم بییئن $1",
+       "protect-expiry-indefinite": "بی گات",
        "protect-cascade": "پر و پیم بیین تافنمایی- همه بلگه یایی که هان د ای بلگه پر و پیم بوئن.",
        "protect-cantedit": "شما نمی تونیت حال و بار پر و پیم کاری ای بلگه نه آلشت بئیت، سی یه که صلا ویرایشت دئن ونه ناریت.",
-       "protect-othertime": "وخت هنی:",
-       "protect-othertime-op": "گات هنی",
-       "protect-existing-expiry": "گات تموم بیین ایسنی: $2، $3",
-       "protect-existing-expiry-infinity": "گات تموم بیین: بی گاته",
-       "protect-otherreason": "دلیل اضافی/هنی:",
-       "protect-otherreason-op": "دلیل هنی",
+       "protect-othertime": "گات ھأنی:",
+       "protect-othertime-op": "گات ھأنی",
+       "protect-existing-expiry": "گات تأموم بییئن ئیسئنی: $2، $3",
+       "protect-existing-expiry-infinity": "گات تأموم بییئن: بی گاتە",
+       "protect-otherreason": "دألیل ئضافی/ھأنی:",
+       "protect-otherreason-op": "دألیل ھأنی",
        "protect-dropdown": "*دلیلیا جاافتائه سی پر و پیم کاری\n** خراوکاری گپ کلون\n** هرزه نیسی گپ کلون\n** جئن ویرایشتی وه درد نحور\n** بلگه فره تماشاکار دار",
        "protect-edit-reasonlist": "دلیلا پر و پیم بیین ویرایشت",
        "protect-expiry-options": "1 ساعت:1 ساعت,1 روز:1 روز,1 هفته:1 هفته,2 هفته:2 هفته,1 ما:1 ما,3 ما:3 ما,6 ما:6 ما,1 سال:1 سال,بی حساو:بی حساو",
        "undeletelink": "بوين/دوواره آماده با",
        "undeleteviewlink": "ديئن",
        "undeleteinvert": "انتخاو برعسك بوئه",
-       "undeletecomment": "دليل:",
+       "undeletecomment": "دألیل:",
        "undeletedrevisions": "وانئری$1 د نو زنه{{PLURAL:$1|بی}}",
        "undeletedrevisions-files": "{{PLURAL:$1|1 وانئری|$1 وانئریا}} و{{PLURAL:$2|1 جانیا|$2 جانیا}} د نو زئنه بینه.",
        "undeletedfiles": "{{PLURAL:$1|1 جانیا|$1 جانیایا}} د نو زنه بیه",
        "undelete-search-title": "بلگه یا پاکسا بیه نه پی جوری کو",
        "undelete-search-box": "پی جوری بلگه یا پاکسا بیه",
        "undelete-search-prefix": "بلگه یایی که وا شرو بیه نشو بیه:",
-       "undelete-search-submit": "پی جوری",
+       "undelete-search-submit": "پئی جوٙری",
        "undelete-no-results": "هیچ بلگه یکی بیینی د مال دیارکن پاکسا بیه یا نئ.",
        "undelete-filename-mismatch": "نبوئه نسقه $1 نه د نو زنه بکی: نوم جانیا واش یکی نئ.",
        "undelete-bad-store-key": "نبوئه نسقه $1 نه د نو زنه بکی: جانیا وه دما د پاکسا کردن د بین رئته.",
        "undelete-error-short": "خطا پاک نبیئن جانیا:$1",
        "undelete-error-long": "د گات زنه کردن جانیا یه گل خطا پیش اوما:\n\n\n$1",
        "undelete-show-file-confirm": "آیا یه دل بئیته که میهایت یه گل نسقه پاکسا بیه د جانیا \"<nowiki>$1</nowiki>\" که ها د ویرگار $2 ساعت $3 نه سیل بکیت؟",
-       "undelete-show-file-submit": "هری",
+       "undelete-show-file-submit": "Ù\87أرÛ\8c",
        "undelete-revision-row": "$1 $2 ($3) $4 . . $5 $6 $7 $8 $9",
        "namespace": "نوم جا:",
        "invert": "انتخاو برعسك بوئه",
        "tooltip-whatlinkshere-invert": "ای جعون نه سی نهو کردن هوم پیوند بلگه یایی که نوم جاشو انتخاو بیه، انتخاو بکیت.",
        "namespace_association": "نوم جایا یکاگرته",
        "tooltip-namespace_association": "ای جعوه نه وارسی بکیت ای جعوه د ور گرته چک چنه یا داسون نوم ورگه شریکی و نوم ورگه انتخاو بیه ئه",
-       "blanknamespace": "اصلی",
+       "blanknamespace": "Ø£صلی",
        "contributions": "{{GENDER:$1|کاریار}} هومیاریا",
-       "contributions-title": "هومياري كارور سي $1",
+       "contributions-title": "ھومیاری كاریار سی $1",
        "mycontris": "هومياریا",
        "contribsub2": "سي {{جنسيت:$3|$1}} ($2)",
        "contributions-userdoesnotexist": "کاریار \"$1\" ثوت نام نکرده.",
        "sp-contributions-deleted": "هومیاریا پاکسا بیه کاریار",
        "sp-contributions-uploads": "سواركرديا",
        "sp-contributions-logs": "نیسنن رخ ونیا",
-       "sp-contributions-talk": "چك چنه",
+       "sp-contributions-talk": "چأک چئنە",
        "sp-contributions-userrights": "دیوونداری حقوق کاریار",
        "sp-contributions-blocked-notice": "د دسرسی ای کاریا د ایسنی نهاگری بیه.\nآخری برشت د پهرستنومه نهاگری ها د سرچشمه هاری:",
        "sp-contributions-blocked-notice-anon": "ای آی پی ایسنی دسرسی ناره.\nآخری برشت د پهرستنومه ها د سرچشمه هاری:",
        "sp-contributions-username": "نوم نشون آی پی يا نوم كاروری:",
        "sp-contributions-toponly": "فقط ویرایشتیایی که جزئه آخرین دوواره دیئن هئین نشو بیه",
        "sp-contributions-newonly": "فقط ویرایشتیایی که مال دروس کردن بلگه هیئن نشو بیه.",
-       "sp-contributions-submit": "پی جوری",
+       "sp-contributions-submit": "پئی جوٙری",
        "whatlinkshere": "كؤم هوم پیوندیا هان ايچه",
        "whatlinkshere-title": "بلگه ای که د $1 هوم پیوند بیه",
-       "whatlinkshere-page": "بلگه",
+       "whatlinkshere-page": "بألگە",
        "linkshere": "بلگیا نهایی د '''[[:$1]]''' هوم پیوند بیه",
        "nolinkshere": "هیژ بگله ای د  '''[[:$1]]''' هوم پیوند نبیه",
        "nolinkshere-ns": "هیچ بلگه ای د نومجا انتخاو بیه وه'''[[:$1]]''' هوم پیوند ناره.",
index 2acce16..3eadd91 100644 (file)
        "wlheader-showupdated": "Puslapiai pakeisti nuo tada, kai paskutinį kartą apsilankėte juose, yra pažymėti '''pastorintai'''",
        "wlnote": "{{PLURAL:$1|Rodomas '''$1''' paskutinis pakeitimas, atliktas|Rodomi '''$1''' paskutiniai pakeitimai, atlikti|Rodoma '''$1''' paskutinių pakeitimų, atliktų}} per '''$2''' {{PLURAL:$2|paskutinę valandą|paskutines valandas|paskutinių valandų}}, nuo $3 $4.",
        "wlshowlast": "Rodyti paskutinių $1 valandų, $2 dienų",
+       "watchlistall2": "visi",
+       "wlshowtime": "Rodyti paskutinį:",
+       "wlshowhideminor": "smulkūs pakeitimai",
+       "wlshowhidebots": "robotai",
+       "wlshowhideliu": "prisiregistravę naudotojai",
+       "wlshowhideanons": "anoniminiai naudotojai",
+       "wlshowhidepatr": "prižiūrėti pakeitimai",
+       "wlshowhidemine": "mano pakeitimai",
        "watchlist-options": "Stebimųjų sąrašo parinktys",
        "watching": "Įtraukiama į stebimųjų sąrašą...",
        "unwatching": "Šalinama iš stebimųjų sąrašo...",
index 22053d7..4ca9a9f 100644 (file)
        "wlheader-enotif": "E-pasta paziņojumi ir ieslēgti.",
        "wlheader-showupdated": "Lapas, kuras ir tikušas izmainītas, kopš tu tās pēdējoreiz apskatījies, te rādās ar '''pustrekniem''' burtiem",
        "wlshowlast": "Parādīt izmaiņas pēdējo $1 stundu laikā vai $2 dienu laikā, vai arī .",
+       "watchlistall2": "visas",
        "watchlist-options": "Uzraugāmo rakstu saraksta opcijas",
        "watching": "Uzrauga...",
        "unwatching": "Neuzrauga...",
        "tooltip-ca-nstab-main": "Apskatīt rakstu",
        "tooltip-ca-nstab-user": "Apskatīt dalībnieka lapu",
        "tooltip-ca-nstab-media": "Apskatīt multimediju lapu",
-       "tooltip-ca-nstab-special": "Šī ir īpašā lapa, tu nevari izmainīt pašu lapu.",
+       "tooltip-ca-nstab-special": "Šī ir īpašā lapa un to nevar mainīt.",
        "tooltip-ca-nstab-project": "Apskatīt projekta lapu",
        "tooltip-ca-nstab-image": "Apskatīt attēla lapu",
        "tooltip-ca-nstab-mediawiki": "Apskatīt sistēmas paziņojumu",
        "logentry-newusers-create": "Lietotāja konts $1 tika {{GENDER:$2|izveidots}}",
        "logentry-newusers-create2": "$1 {{GENDER:$2|izveidoja}} lietotāja kontu $3",
        "logentry-newusers-autocreate": "Lietotaja konts $1 tika {{GENDER:$2|izveidots}} automātiski",
+       "logentry-upload-upload": "$1 {{GENDER:$2|augšupielādēja}} $3",
        "logentry-upload-overwrite": "$1 augšupielādēja jaunu $3 versiju",
        "rightsnone": "(nav)",
        "revdelete-summary": "izmaiņu kopsavilkums",
index a4f153c..0f6ba1c 100644 (file)
        "wlheader-showupdated": "Страниците што се изменети од вашата последна посета се прикажани со '''задебелени''' букви",
        "wlnote": "Подолу {{PLURAL:$1|е прикажана последната промена|се прикажани последните <strong>$1</strong> промени}} во {{PLURAL:$2|последниов час|последниве <strong>$2</strong> часа}}, заклучно со $3, $4 ч.",
        "wlshowlast": "Прикажи ги последните $1 часа, $2 дена,",
+       "watchlistall2": "сè",
+       "wlshowtime": "Прикажи ги последните:",
+       "wlshowhideminor": "ситни уредувања",
+       "wlshowhidebots": "ботови",
+       "wlshowhideliu": "регистрирани корисници",
+       "wlshowhideanons": "анонимни корисници",
+       "wlshowhidepatr": "проверени уредувања",
+       "wlshowhidemine": "моите уредувања",
        "watchlist-options": "Поставки за список на набљудувања",
        "watching": "Набљудување...",
        "unwatching": "Отстранувам од набљудувани...",
index e39477f..5d28af1 100644 (file)
        "wlheader-showupdated": "താങ്കളുടെ അവസാന സന്ദർശനത്തിനു ശേഷം മാറ്റം വന്ന താളുകൾ  '''കടുപ്പിച്ച്''' കാണിച്ചിരിക്കുന്നു",
        "wlnote": "$3, $4-നു കഴിഞ്ഞ {{PLURAL:$2|മണിക്കൂറിൽ|<strong>$2</strong> മണിക്കൂറിൽ}} നടന്ന {{PLURAL:$1|ഒരു പുതിയ മാറ്റം|<strong>$1</strong> പുതിയ മാറ്റങ്ങൾ}} താഴെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.",
        "wlshowlast": "ഒടുവിലത്തെ $1 മണിക്കൂറുകൾ $2 ദിനങ്ങൾ പ്രദർശിപ്പിക്കുക",
+       "watchlistall2": "എല്ലാം",
        "watchlist-options": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ സജ്ജീകരണങ്ങൾ",
        "watching": "ശ്രദ്ധിക്കുന്നു...",
        "unwatching": "അവഗണിക്കുന്നു...",
index cb6c27b..e77691a 100644 (file)
        "faqpage": "Project:प्रश्नावली",
        "actions": "क्रिया",
        "namespaces": "नामविश्वे",
-       "variants": "à¤\85सà¥\8dथिरà¤\95à¥\87",
+       "variants": "à¤\9aलà¥\87(वà¥\8dहà¥\87रियà¤\82à¤\9fà¥\8dस)",
        "navigation-heading": "दिक्चालन यादी",
        "errorpagetitle": "चूक",
        "returnto": "$1 कडे परत चला.",
        "search": "शोधा",
        "searchbutton": "शोधा",
        "go": "चला",
-       "searcharticle": "शà¥\8bधा",
+       "searcharticle": "à¤\9cा",
        "history": "पानाचा इतिहास",
        "history_short": "इतिहास",
        "updatedmarker": "माझ्या शेवटच्या भेटीनंतर अद्यतन केले",
        "pool-queuefull": "सर्व्हरवर ताण आहे.",
        "pool-errorunknown": "अपरिचित त्रुटी",
        "pool-servererror": "पूल काउंटर सेवा उपलब्ध नाही($1).",
-       "poolcounter-usage-error": "वापर à¤¤à¥\8dरà¥\82टी:$1",
+       "poolcounter-usage-error": "वापर à¤¤à¥\8dरà¥\81टी:$1",
        "aboutsite": "{{SITENAME}} बद्दल",
        "aboutpage": "Project:माहितीपृष्ठ",
        "copyright": "येथील मजकूर $1च्या अंतर्गत उपलब्ध आहे जोपर्यंत इतर नोंदी केलेल्या नाहीत.",
        "feed-invalid": "अयोग्य रसद नोंदणी (Invalid subscription feed type).",
        "feed-unavailable": "सिंडीकेशन रसद उपलब्ध नाहीत",
        "site-rss-feed": "$1 आरएसएस रसद",
-       "site-atom-feed": "$1 à¤\8dटम रसद (Atom Feed)",
+       "site-atom-feed": "$1 à¤\85à¥\85टम रसद (Atom Feed)",
        "page-rss-feed": "\"$1\" आर.एस.एस.रसद (RSS Feed)",
-       "page-atom-feed": "\"$1\" à¤\8dटम रसद (Atom Feed)",
+       "page-atom-feed": "\"$1\" à¤\85à¥\85टम रसद (Atom Feed)",
        "feed-atom": "अॅटम",
        "feed-rss": "आर.एस.एस.",
        "red-link-title": "$1 (पान अस्तित्वात नाही)",
        "nstab-template": "साचा",
        "nstab-help": "साहाय्य पान",
        "nstab-category": "वर्ग",
-       "mainpage-nstab": "मà¥\81à¤\96à¥\8dय à¤ªà¤¾à¤¨",
+       "mainpage-nstab": "मà¥\81à¤\96पà¥\83षà¥\8dठ",
        "nosuchaction": "अशी कृती अस्तित्वात नाही",
        "nosuchactiontext": "URL ने नमूद केलेली कृती चुकीची आहे.\nतुम्ही कदाचित URL चुकीची दिली असेल, किंवा चुकीच्या दुव्यावर टिचकी दिली असेल.\nकदाचित, ही कृती {{SITENAME}} वापरत असलेल्या सॉफ्टवेअर मधील गणकदोष \nसुद्धा दर्शवीत असेल.",
        "nosuchspecialpage": "असे कोणतेही विशेष पृष्ठ अस्तित्वात नाही",
        "nospecialpagetext": "<strong>आपण केलेली विनंती अयोग्य विशेषपानासंबंधी आहे.</strong>\n\nयोग्य विशेषपानांची यादी  [[Special:SpecialPages|{{int:specialpages}}]] येथे उपलब्ध होऊ शकते.",
        "error": "त्रुटी",
        "databaseerror": "माहितीसंग्रहातील त्रुटी",
-       "databaseerror-text": "विदाà¤\97ार à¤ªà¥\83à¤\9aà¥\8dà¤\9bा à¤¤à¥\8dरà¥\82टी घडलेली आहे.\nते संचेतनात गणकदोष असण्याची शक्यता निर्देशित करते.",
-       "databaseerror-textcl": "विदाà¤\97ार à¤ªà¥\83à¤\9aà¥\8dà¤\9bा à¤¤à¥\8dरà¥\82टी घडलेली आहे.",
+       "databaseerror-text": "विदाà¤\97ार à¤ªà¥\83à¤\9aà¥\8dà¤\9bा à¤¤à¥\8dरà¥\81टी घडलेली आहे.\nते संचेतनात गणकदोष असण्याची शक्यता निर्देशित करते.",
+       "databaseerror-textcl": "विदाà¤\97ार à¤ªà¥\83à¤\9aà¥\8dà¤\9bा à¤¤à¥\8dरà¥\81टी घडलेली आहे.",
        "databaseerror-query": "पृच्छा:$1",
        "databaseerror-function": "क्रिया: $1",
        "databaseerror-error": "त्रुटी: $1",
        "delete-hook-aborted": "खोडण्याची  क्रिया मधेच थांबविण्यात येत आहे.\nकोणतेही कारण देण्यात आले नाही",
        "no-null-revision": "\"$1\" या पानाची नविन रिक्त आवृत्ती निर्मिता आली नाही.",
        "badtitle": "खराब शीर्षक",
-       "badtitletext": "à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\87 à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\85यà¥\8bà¤\97à¥\8dय, à¤°à¤¿à¤\95ामà¥\87 à¤\85थवा à¤\9aà¥\81à¤\95िनà¥\87 à¤\9cà¥\8bडलà¥\87लà¥\87 à¤\86à¤\82तर-भाषिय à¤\95िà¤\82वा à¤\86à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤\86हà¥\87. à¤¤à¥\8dयात,शà¥\80रà¥\8dषà¤\95ास à¤\85यà¥\8bà¤\97à¥\8dय à¤\85शà¥\80 à¤\8fà¤\95 à¤\95िà¤\82वा à¤\85धिà¤\95 à¤\9aिनà¥\8dहे आहेत.",
+       "badtitletext": "à¤\86पण à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95à¥\87लà¥\87लà¥\87 à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\87 à¤¶à¥\80रà¥\8dषà¤\95 à¤\85यà¥\8bà¤\97à¥\8dय, à¤°à¤¿à¤\95ामà¥\87 à¤\85थवा à¤\9aà¥\81à¤\95िनà¥\87 à¤\9cà¥\8bडलà¥\87लà¥\87 à¤\86à¤\82तर-भाषिय à¤\95िà¤\82वा à¤\86à¤\82तर-विà¤\95ि à¤¶à¥\80रà¥\8dषà¤\95 à¤\86हà¥\87. à¤¤à¥\8dयात,शà¥\80रà¥\8dषà¤\95ास à¤\85यà¥\8bà¤\97à¥\8dय à¤\85शà¥\80 à¤\8fà¤\95 à¤\95िà¤\82वा à¤\85धिà¤\95 à¤\85à¤\95à¥\8dषरे आहेत.",
        "title-invalid-empty": "आपण विनंति केलेले पान-शिर्षक एकतर रिकामे आहे किंवा त्यात एखाद्या नामविश्वाचे नाव आहे.",
        "title-invalid-utf8": "आपण विनंती केलेल्या पानाच्या शिर्षकात अवैध यूटिएफ-८ क्रमवारी आहेत.",
        "title-invalid-interwiki": "आपण विनंती केलेल्या पानात आंतरविकि दुवे आहेत जे शिर्षकात वापरता येउ शकत नाहीत.",
        "protectedinterface": "हे पान सॉफ्टवेअरला इंटरफेस लेखन पुरवते, म्हणून दुरूपयोग टाळण्यासाठी संरक्षित केलेले आहे.\n\nसर्व विकिंवर, अनुवाद जोडण्याकरता किंवा बदलण्याकरता अथवा शुद्धलेखन चिकित्सेकरीता , कृपया [//translatewiki.net/ translatewiki.net], या मिडियाविकि स्थानिकीकरण प्रकल्पावर जा.",
        "editinginterface": "<strong>सावधान</strong>तुम्ही संचेतनाचे (सॉफ्टवेअर) संपर्क माध्यम मजकूर असलेले पान संपादित करित आहात. या पानावरील बदल या विकिवरील इतर सदस्यांच्या सदस्य संपर्क माध्यमाचे स्वरूप बदलू शकते.",
        "translateinterface": "सर्व विकिंवर अनुवाद जोडण्याकरता किंवा बदलण्याकरता, कृपया [//translatewiki.net/ ट्रांसलेटविकि.नेट]चा वापर करा,जो मिडियाविकिचा स्थानिकीकरण प्रकल्प आहे.",
-       "cascadeprotected": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¤\82पादनाà¤\82पासà¥\82न à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\8dया à¤\97à¥\87लà¥\87 à¤\86हà¥\87, à¤\95ारण à¤¤à¥\87 à¤\96ालà¥\80ल {{PLURAL:$1|पानात|पानाà¤\82मधà¥\8dयà¥\87}} à¤\85à¤\82तरà¥\8dभà¥\82त केलेले आहे,{{PLURAL:$1|जे पान|जी पाने }} निपतन पर्याय सुरु केल्यामुळे सुरक्षित आहेत:\n$2",
+       "cascadeprotected": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¤\82पादनाà¤\82पासà¥\82न à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\8dया à¤\97à¥\87लà¥\87 à¤\86हà¥\87, à¤\95ारण à¤¤à¥\87 à¤\96ालà¥\80ल {{PLURAL:$1|पानात|पानाà¤\82मधà¥\8dयà¥\87}} à¤\86à¤\82तरविनà¥\8dयासित केलेले आहे,{{PLURAL:$1|जे पान|जी पाने }} निपतन पर्याय सुरु केल्यामुळे सुरक्षित आहेत:\n$2",
        "namespaceprotected": "'''$1''' नामविश्वातील पाने संपादण्याची आपणांस परवानगी नाही.",
        "customcssprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे सीएसएस पान संपादित करण्याची परवानगी नाही.",
        "customjsprotected": "या पानावर इतर सदस्याची वैयक्तिक मांडणी असल्यामुळे, तुम्हाला हे 'जावास्क्रिप्ट' पान संपादित करण्याची परवानगी नाही.",
        "missingcommentheader": "<strong>आठवण:<strong> आपण या लेखनाकरिता विषय दिलेला नाही. आपण पुन्हा \"{{int:savearticle}}\" वर टिचकले तर, तुमचे संपादन त्याशिवायच जतन होईल.",
        "summary-preview": "आढाव्याची झलक:",
        "subject-preview": "विषय झलक:",
-       "previewerrortext": "à¤\86पलà¥\8dया à¤¬à¤¦à¤²à¤¾à¤\82à¤\9aà¥\80 à¤\9dलà¤\95 à¤¬à¤\98णà¥\8dयाà¤\9aà¥\87 à¤ªà¥\8dरयतà¥\8dनादरमà¥\8dयान à¤¤à¥\8dरà¥\82टी उद्भवली.",
+       "previewerrortext": "à¤\86पलà¥\8dया à¤¬à¤¦à¤²à¤¾à¤\82à¤\9aà¥\80 à¤\9dलà¤\95 à¤¬à¤\98णà¥\8dयाà¤\9aà¥\87 à¤ªà¥\8dरयतà¥\8dनादरमà¥\8dयान à¤¤à¥\8dरà¥\81टी उद्भवली.",
        "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कृपया या संदर्भातील चर्चेमध्ये वरील सर्व तपशिल उद्घृत करा.",
        "autoblockedtext": "तुमचा आंतरजालीय अंकपत्ता आपोआप स्थगित केला आहे कारण तो इतर अशा सदस्याने वापरला, ज्याला $1ने प्रतिबंधित केले.\nआणि दिलेले कारण खालील प्रमाणे आहे\n:''$2''\nब्लॉकची सुरूवात: $8\nब्लॉकचा शेवट: $6\nकुणाला ब्लॉक करायचे आहे: $7\n\nतुम्ही $1शी संपर्क करू शकता किंवा इतर [[{{MediaWiki:Grouppage-sysop}}|प्रबंधकां पैकी]] एकाशी स्थगनाबद्दल चर्चा करू शकता.\n\n[[Special:Preferences|सदस्य पसंतीत]]त शाबीत विपत्र पत्ता नमूद असल्या शिवाय आणि तुम्हाला  तो वापरण्या पासून प्रतिबंधित केले असल्यास तुम्ही  \"या सदस्यास विपत्र पाठवा\" सुविधा  वापरू शकणार नाही.\nतुमचा सध्याचा IP पत्ता $3 हा आहे, व तुमचा ब्लॉक क्रमांक #$5 हा आहे. \nतुमचा स्थगन क्र $5 आहे. कृपया या संदर्भातील चर्चेमध्ये वरील सर्व तपशिल उद्घृत करा.",
        "newarticle": "(नवीन लेख)",
        "newarticletext": "आपण सध्या अस्तित्त्वात नसलेल्या पानाच्या दुव्याचा मागोवा घेत आला आहात.\nहे पान नव्याने तयार करण्यासाठी खालील पेटीत टंकन करणे सुरु करा(अधिक माहितीसाठी [$1 साहाय्य पान] बघा).\n\nजर आपण येथे चुकून आला असाल तर ब्राउझरच्या  <strong>परत</strong>(बॅक) कळीवर टिचकी द्या.",
        "anontalkpagetext": "---- ''हे चर्चापान अशा अज्ञात सदस्यासाठी आहे, ज्यांनी खाते तयार केलेले नाही किंवा त्याचा वापर करत नाहीत. त्यांच्या ओळखीसाठी आम्ही आंतरजाल अंकपत्ता वापरतो आहोत. असा अंकपत्ता बऱ्याच लोकांचा एकच असू शकतो. जर आपण अज्ञात सदस्य असाल आणि आपल्याला काही अप्रासंगिक संदेश मिळाला असेल तर कृपया [[Special:UserLogin| खाते तयार करा]] किंवा [[Special:UserLogin/signup|सनोंद-प्रवेश करा]] ज्यामुळे, पुढे असे गैरसमज होणार नाहीत.''",
-       "noarticletext": "या लेखात सध्या काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}| मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर नोंदी शोधा],\nकिंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}} लिहू शकता]</span>.",
+       "noarticletext": "या लेखात सध्या काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये या [[Special:Search/{{PAGENAME}}| मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} इतर नोंदी शोधा],\nकिंवा हा लेख [{{fullurl:{{FULLPAGENAME}}|action=edit}}संपादू शकता]</span>.",
        "noarticletext-nopermission": "सध्या या लेखात  काहीही मजकूर नाही.\nतुम्ही विकिपीडियावरील इतर लेखांमध्ये [[Special:Search/{{PAGENAME}}| या मथळ्याचा शोध घेऊ शकता]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAME}}}}आपण या लेखाच्या इतर नोंदी शोधा]</span>,परंतु, आपणास हा लेख लिहीण्याची परवानगी देण्यात येउ शकत नाही.",
        "missing-revision": "\"{{FULLPAGENAME}}\" या लेखाचे #$1 हे संस्करण अस्तित्वात नाही.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे असे होते.याबाबत विस्तृत माहिती  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी]येथे बघता येईल.",
        "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" सदस्य खात्याची नोंद नाही. कृपया हे पान तुम्ही संपादित किंवा नव्याने तयार करू इच्छिता काय याबद्दल विचार करा.",
        "copyrightwarning": "{{SITENAME}} येथे केलेले कोणतेही लेखन $2 (अधिक माहितीसाठी $1 पहा) अंतर्गत मुक्त उद्घोषित केले आहे असे गृहीत धरले जाईल याची कृपया नोंद घ्यावी. आपणास आपल्या लेखनाचे मुक्त संपादन आणि मुक्त वितरण होणे पसंत नसेल तर येथे संपादन करू नये.<br />\nतुम्ही येथे लेखन करताना हे सुद्धा गृहीत धरलेले असते की येथे केलेले लेखन तुमचे स्वतःचे आणि केवळ स्वतःच्या प्रताधिकार (कॉपीराईट) मालकीचे आहे किंवा प्रताधिकाराने गठित न होणाऱ्या सार्वजनिक ज्ञानक्षेत्रातून घेतले आहे किंवा तत्सम मुक्त स्रोतातून घेतले आहे. तुम्ही संपादन करताना तसे वचन देत आहात. '''प्रताधिकारयुक्त लेखन सुयोग्य परवानगीशिवाय मुळीच चढवू/भरू नये!'''",
        "copyrightwarning2": "{{SITENAME}} येथे केलेले कोणतेही लेखन हे इतर संपादकांकरवी बदलले अथवा काढले जाऊ शकते. जर आपणास आपल्या लेखनाचे मुक्त संपादन होणे पसंत नसेल तर येथे संपादन करू नये.<br />\nतुम्ही येथे लेखन करताना हे सुद्धा गृहीत धरलेले असते की येथे केलेले लेखन तुमचे स्वतःचे आणि केवळ स्वतःच्या प्रताधिकार (कॉपीराईट) मालकीचे आहे किंवा प्रताधिकाराने गठित न होणाऱ्या सार्वजनिक ज्ञानक्षेत्रातून घेतले आहे किंवा तत्सम मुक्त स्रोतातून घेतले आहे. तुम्ही संपादन करताना तसे वचन देत आहात (अधिक माहितीसाठी $1 पहा). '''प्रताधिकारयुक्त लेखन सुयोग्य परवानगीशिवाय मुळीच चढवू/भरू नये!'''",
        "editpage-cannot-use-custom-model": "या पानाचा आशय-आराखडा(कंटेन्ट मॉडेल) बदलता येणार नाही.",
-       "longpageerror": "त्रूटी:आपण दिलेला मजकूर जास्तीत जास्त शक्य {{PLURAL:$2|one किलोबाईट|$2 किलोबाईट}} पेक्षा अधिक लांबीचा {{PLURAL:$1|one किलोबाईट|$1 किलोबाईट}} आहे.तो जतन केला जाऊ शकत नाही",
+       "longpageerror": "<strong>त्रुटी:आपण दिलेला मजकूर जास्तीत जास्त शक्य {{PLURAL:$2|१ किलोबाईट पेक्षा|$2 किलोबाईट पेक्षा}}  अधिक लांबीचा {{PLURAL:$1|१ किलोबाईट|$1 किलोबाईट}} आहे.</strong>\nतो जतन केला जाऊ शकत नाही.",
        "readonlywarning": "'''सावधान:विदागारास अनुरक्षणासाठी(मेंटेनन्स) ताळे ठोकले आहे,त्यामुळे सध्याच तुम्ही तुमचे संपादन जतन करू शकत नाही.'''\nजर तुम्हाला हवे असेल तर नंतर उपयोग करण्याच्या दृष्टीने, तुम्ही मजकूर नक्कल करुन, पुढील संपादनासाठी ’मजकुर संचिकेत’(टेक्स्ट फाईल)चिटकवू शकता.\nविदागारास ताळे ठोकलेल्या प्रचालकांनी खालील स्पष्टीकरण दिले आहे:$1",
        "protectedpagewarning": "'''सूचना: हे सुरक्षित पान आहे. फक्त प्रचालक याच्यात बदल करू शकतात.'''",
        "semiprotectedpagewarning": "'''सूचना:''' हे पान सुरक्षित आहे. फक्त नोंदणीकृत सदस्य याच्यात बदल करू शकतात.",
        "invalid-content-data": "अवैध माहिती",
        "content-not-allowed-here": "\"$1\" हा आशय [[$2]] लेखावर टाकण्याची अनुमती नाही.",
        "editwarning-warning": "या पानावरुन दुसर्‍या पानावर गेल्यास, तुम्ही येथे केलेले बदल जतन होणार नाहीत.\nजर आपण सनोंद-प्रवेशित असाल तर, ही सूचना घालवण्यासाठी ''{{int:prefs-editing}}'' मधील संपादनपसंतीत बदल करा.",
+       "editpage-notsupportedcontentformat-title": "आशय प्रारुप सहाय्यीकृत नाही",
        "content-model-wikitext": "विकिमजकूर",
        "content-model-text": "साधा मजकूर",
        "content-model-javascript": "जावास्क्रिप्ट",
        "content-model-css": "सीएसएस",
+       "content-json-empty-object": "रिक्त उद्दीष्ट",
+       "content-json-empty-array": "रिकामा चतुष्कोन(array)",
+       "duplicate-args-warning": "<strong>इशारा:</strong> [[:$1]] हा [[:$2]] ला \"$3\" प्राचलासाठी, एकाधिक किंमतींसमवेत हाक देत आहे.दिलेली शेवटची किंमतच वापरल्या जाईल.",
+       "duplicate-args-category": "साचास हाक देण्यात पाने द्विरुक्त कारणमीमांसा(arguments) वापरत आहेत.",
+       "duplicate-args-category-desc": "या पानात साच्याची ती हाक(calls) आहे ज्यात द्विरुक्त कारणमिमांसेचा (arguments)वापर करण्यात आला आहे,जसे<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|कॉल|कॉल्स}} पेक्षा कमी असायला हवेत, सध्या $1{{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": "या पानाने उच्चतम गाठविंदूंची (node)  मोजणीमर्यादा पार केली.",
        "node-count-exceeded-warning": "लेखाची पर्वसंधि-गणना(नोड-काऊंट)मर्यादा पार झाली",
        "expansion-depth-exceeded-category": "लेख जेथे विस्तार-तळ(एक्सपांशन डेप्थ) पार केल्या गेली",
+       "expansion-depth-exceeded-category-desc": "या पानाने उच्चतम प्रसरण-खोली(expansion depth) मर्यादा पार केली.",
        "expansion-depth-exceeded-warning": "लेखाने विस्तार-तळ(एक्सपांशन डेप्थ) पार केला",
        "parser-unstrip-loop-warning": "'अनस्ट्रिप'(अरोखीत) वलय(लुप) आढळले",
        "parser-unstrip-recursion-limit": "'अनस्ट्रिप'(अरोखीत) आवर्तन मर्यादा पार झाली ($1)",
        "undo-summary-username-hidden": "अज्ञात सदस्याची $1 आवृत्ती परतवा",
        "cantcreateaccounttitle": "खाते उघडू शकत नाही",
        "cantcreateaccount-text": "('''$1''')या आंतरजाल अंकपत्त्याकडूनच्या खाते निर्मितीस [[User:$3|$3]]ने अटकाव केला आहे.\n\n$3ने ''$2'' कारण दिले आहे.",
+       "cantcreateaccount-range-text": "'''$1'''आवाक्यातील आंतरजाल अंकपत्ते,ज्यात आपल्या ('''$4''') या अंकपत्त्याचा समावेश आहे, [[User:$3|$3]] ने त्यांच्या खाते निर्मितीस प्रतिबंध केला आहे.\n\n$3 ने ''$2''कारण दिले आहे.",
        "viewpagelogs": "या पानाच्या नोंदी पहा",
        "nohistory": "या पृष्ठासाठी संपादन इतिहास अस्तित्वात नाही.",
        "currentrev": "सध्याची आवृत्ती",
        "history-feed-description": "विकिवरील या पानाच्या आवृत्त्यांचा इतिहास",
        "history-feed-item-nocomment": "$2 वर $1",
        "history-feed-empty": "विनंती केलेले पान अस्तित्वात नाही.\n\nते विकिवरून वगळले किंवा नाव बदललेले असण्याची शक्यता आहे.\n\nसंबधीत नव्या पानांकरिता [[Special:Search|विकिवर शोध घेण्याचा ]] प्रयत्न करा.",
+       "history-edit-tags": "निवडलेल्या आवृत्त्यांची खूणपताका संपादा",
        "rev-deleted-comment": "(संपादन सारांश वगळला)",
        "rev-deleted-user": "(सदस्यनाव वगळले)",
        "rev-deleted-event": "(क्रिया नोंद वगळली)",
        "revdelete-no-file": "नमूद केलेली संचिका अस्तित्वात नाही.",
        "revdelete-show-file-confirm": "तुम्ही \"<nowiki>$1</nowiki>\" या संचिकेची  $2 ला $3 वेळी  वगळलेली आवृत्ती नक्की पहाणार आहात?",
        "revdelete-show-file-submit": "होय",
+       "revdelete-selected-text": "[[:$2]] ची/च्या {{PLURAL:$1|निवडलेली आवृत्ती|निवडलेल्या आवृत्त्या}} :",
+       "revdelete-selected-file": "[[:$2]] ची/च्या {{PLURAL:$1|निवडलेली संचिका आवृत्ती|निवडलेल्या संचिका आवृत्त्या}} :",
        "logdelete-selected": "{{PLURAL:$1|निवडलेली नोंदीकृत घटना|निवडलेल्या नोंदीकृत घटना}}:",
+       "revdelete-text-text": "वगळलेल्या आवृत्त्या ह्या पानाच्या इतिहासात दिसणार नाहीत, पण त्याच्या आशयाचा काही भाग हा जनतेच्या पोहोचीबाहेर असेल.",
+       "revdelete-text-file": "वगळलेल्या संचिकेच्या आवृत्त्या ह्या पानाच्या इतिहासात अद्यापही दिसतील, पण त्याच्या आशयाचा काही भाग हा जनतेच्या पोहोचीबाहेर असेल.",
+       "logdelete-text": "वगळलेल्या नोंदी ह्या पानाच्या इतिहासात अजूनही दिसतील, पण त्याच्या आशयाचा काही भाग हा जनतेच्या पोहोचीबाहेर असेल.",
+       "revdelete-text-others": "अतिरिक्त बंधने स्थापिल्या गेली नसतील तर,दुसरे प्रशासक हे अजूनही लपविलेल्या आशयावर पोहोचु शकतील व त्याचे वगळणे पुनर्स्थापन करु शकतील.",
        "revdelete-confirm": "कृपया '''याची खात्री करा''' की तुम्ही जे करीत आहात, त्याचे परिणाम आपण जाणत आहात आणि, ते काम [[{{MediaWiki:Policy-url}}|मीडियाविकीच्या नीती]]नुसार आहे.",
        "revdelete-suppress-text": "लपवण्याचा वापर '''फक्त''' पुढील बाबतीत होतो:\n* उच्च दर्जाची बदनामीकारक माहिती\n* अयोग्य व्यक्तिगत माहिती\n*: ''गृहपत्ते, दूरध्वनी क्रमांक व राष्ट्रीय ओळख क्रमांक वगैरे''",
        "revdelete-legend": "दृश्य बंधने स्थापित करा",
-       "revdelete-hide-text": "à¤\86वरà¥\8dतà¥\80त à¤®à¤\9cà¤\95à¥\82र",
+       "revdelete-hide-text": "à¤\86वà¥\83तà¥\8dतà¥\80तला à¤®à¤\9cà¤\95à¥\82र à¤²à¤ªà¤µà¤¾",
        "revdelete-hide-image": "संचिका आशय लपवा",
        "revdelete-hide-name": "लक्ष्य व प्राचल लपवा",
        "revdelete-hide-comment": "संपादन तपशील",
        "revdel-restore": "दृश्यता बदला",
        "pagehist": "पानाचा इतिहास",
        "deletedhist": "वगळलेला इतिहास",
-       "revdelete-hide-current": "$1 मधील $2 या वेळचे आवर्तन लपविण्यात त्रूटी : ते सद्य पुनरावर्तन आहे.\nते लपवता येत नाही.",
+       "revdelete-hide-current": "$2 या दिनांकाची बाब लपविण्यात त्रुटी, $1: हे सद्य पुनरावर्तन आहे.\nते लपवता येत नाही.",
        "revdelete-show-no-access": "$2, $1 ची बाब दाखवताना अडचण: ती \"प्रतिबंधित\" खूण असलेली आहे.\nतुम्ही तिच्यापर्यंत पोचू शकत नाही.",
        "revdelete-modify-no-access": "$2, $1 ची बाब संपादताना अडचण: ती \"प्रतिबंधित\" खूण असलेली आहे.\nतुम्ही तिच्यापर्यंत पोचू शकत नाही.",
        "revdelete-modify-missing": "बाब क्र. $1 ला संपादताना त्रुटी: ती माहितीकोषात नाही!",
        "mergehistory-empty": "कोणतेही आवर्तन एकत्रित करता येत नाही.",
        "mergehistory-done": "$1 {{PLURAL:$3|चे|ची}} $3 {{PLURAL:$3|आवर्तन|आवर्तने}} [[:$2]] मध्ये यशस्वीरीत्या एकत्रित केली.",
        "mergehistory-fail": "इतिहासाचे एकत्रीकरण कार्य करू शकत नाही आहे, कृपया पान आणि वेळ प्राचलांची पुनर्तपासणी करा.",
+       "mergehistory-fail-toobig": "इतिहास एकत्रिकरण करणे शक्य झाले नाही कारण $1 मर्यादेपेक्षा अधिक {{PLURAL:$1|आवृत्ती|आवृत्त्या}} स्थानांतरीत केल्या जातील.",
        "mergehistory-no-source": "स्रोत पान $1 अस्तित्वात नाही.",
        "mergehistory-no-destination": "लक्ष्य पान $1  अस्तित्वात नाही.",
        "mergehistory-invalid-source": "स्रोत पानाचे शीर्षक वैध असणे आवश्यक आहे.",
        "showhideselectedversions": "निवडलेल्या आवृत्त्या दाखवा / लपवा",
        "editundo": "उलटवा",
        "diff-empty": "(काही फरक नाही)",
-       "diff-multi-sameuser": "({{PLURAL:$1|याच सदस्याची एक माध्यमिक आवृत्ती|$1 याच सदस्याच्या माध्यमिक आवृत्त्या}} दर्श्यविण्यात आलेल्या नाहीत)",
+       "diff-multi-sameuser": "({{PLURAL:$1|याच सदस्याची एक माध्यमिक आवृत्ती|$1 याच सदस्याच्या माध्यमिक आवृत्त्या}} दर्शविण्यात आलेल्या नाहीत)",
+       "diff-multi-otherusers": "({{PLURAL:$2|एका दुसऱ्या सदस्याची/च्या|$2 सदस्यांची/च्या}}{{PLURAL:$1|एक आंतरवर्ती आवृत्ती दर्शविली नाही|$1 आंतरवर्ती आवृत्त्या दर्शविल्या नाहीत}})",
        "diff-multi-manyusers": "{{PLURAL:$2|सदस्याची|$2 सदस्यांच्या}} ({{PLURAL:$1|आवृत्ती|$1 आवृत्त्या}} दाखवल्या नाहीत)",
        "difference-missing-revision": "या लेखाचे/ची  ($1) हे {{PLURAL:$2|संस्करण|$2 संस्करणे}} {{PLURAL:$2|सापडले नाही|सापडली नाहीत}}.वगळल्या गेलेल्या लेखपानाच्या जुन्या इतिहास-दुव्याचे अनुसरण केल्यामुळे, शक्यतोवर,असे घडु शकते.याबाबत अधिक तपशील  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} वगळलेल्या नोंदी] येथे बघता येईल.",
        "searchresults": "शोध निकाल",
        "searchprofile-articles-tooltip": "$1 मध्ये शोधा",
        "searchprofile-images-tooltip": "संचिकांसाठी शोधा",
        "searchprofile-everything-tooltip": "सर्व पाने शोधा (चर्चापानांसहित)",
-       "searchprofile-advanced-tooltip": "निवडलà¥\87लà¥\8dया à¤¨à¤¾à¤®à¤µà¤¿à¤¶à¥\8dवाà¤\82मधà¥\8dयà¥\87 à¤¶à¥\8bधा:",
+       "searchprofile-advanced-tooltip": "पारà¤\82परित(à¤\95सà¥\8dà¤\9fम) à¤¨à¤¾à¤®à¤µà¤¿à¤¶à¥\8dवाà¤\82मधà¥\8dयà¥\87 à¤¶à¥\8bधा",
        "search-result-size": "$1 ({{PLURAL:$2|१ शब्द|$2 शब्द}})",
        "search-result-category-size": "{{PLURAL:$1|१ सदस्य|$1 सदस्य}} ({{PLURAL:$2|१ उपवर्ग|$2 उपवर्ग}}, {{PLURAL:$3|1 संचिका|$3 संचिका}})",
        "search-redirect": "(पुनर्निर्देशन $1)",
        "search-section": "(विभाग $1)",
+       "search-category": "(वर्ग $1)",
+       "search-file-match": "(संचिका आशयाशी अनुरुपते)",
        "search-suggest": "तुम्हाला हेच म्हणायचे का: $1",
+       "search-rewritten": "$1 साठीचे निकाल दाखवित आहे.त्याऐवजी $2 चा शोध घ्या.",
        "search-interwiki-caption": "सह प्रकल्प",
        "search-interwiki-default": "$1चे निकाल:",
        "search-interwiki-more": "(आणखी)",
        "powersearch-togglelabel": "तपासा:",
        "powersearch-toggleall": "सर्व",
        "powersearch-togglenone": "काहीही नाही",
+       "powersearch-remember": "भविष्यातील शोधांच्या निवडींची आठवण ठेवा",
        "search-external": "बाह्य शोध",
        "searchdisabled": "{{SITENAME}} शोध अनुपलब्ध केला आहे.तो पर्यंत गूगलवरून शोध घ्या.{{SITENAME}}च्या मजकुराची त्यांची सूचिबद्धता शिळी असण्याची शक्यता असू शकते हे लक्षात घ्या.",
-       "search-error": "शà¥\8bध à¤\98à¥\87ताà¤\82ना à¤\98डलà¥\87लà¥\80 à¤¤à¥\8dरà¥\82टी:$1",
+       "search-error": "शà¥\8bध à¤\98à¥\87ताà¤\82ना à¤\98डलà¥\87लà¥\80 à¤¤à¥\8dरà¥\81टी:$1",
        "preferences": "पसंतीक्रम",
        "mypreferences": "पसंतीक्रम",
        "prefs-edits": "संपादनांची संख्या:",
        "prefs-diffs": "फरक",
        "prefs-help-prefershttps": "हा पसंतीक्रम आपल्या पुढील सनोंद प्रवेशानंतर कार्यान्वित होईल.",
        "prefswarning-warning": "आपण आपल्या पसंतीक्रमात केलेला बदल अद्याप जतन झाला नाही.जर आपण \"$1\" न टिचकता, या पानावरुन दुसरीकडे गेलात तर आपला पसंतीक्रम अद्यतन होणार नाही.",
+       "prefs-tabs-navigation-hint": "उपयुक्त सूचना:आपण कळींच्या यादीत, कळींदरम्यानच्या सुचालनास डावी व उजवी बाण-कळ वापरु शकता.",
        "email-address-validity-valid": "विपत्रपत्ता वैध दिसत आहे",
        "email-address-validity-invalid": "वैध विपत्रपत्ता लिहा",
        "userrights": "सदस्य अधिकार व्यवस्थापन",
        "userrights-lookup-user": "सदस्य गटांचे(ग्रूप्स) व्यवस्थापन करा.",
        "userrights-user-editname": "सदस्य नाव टाका:",
        "editusergroup": "सदस्याचे गट संपादित करा",
-       "editinguser": "{{GENDER:$1|सदस्य}}चे सदस्य अधिकारात बदल केला जात आहे <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "या {{GENDER:$1|सदस्या}}चे सदस्य-अधिकारात बदल केला जात आहे<strong>[[User:$1|$1]]</strong> $2",
        "userrights-editusergroup": "सदस्याचे गट संपादित करा",
        "saveusergroups": "सदस्य गट जतन करा",
-       "userrights-groupsmember": "(चा) सभासद:",
-       "userrights-groupsmember-auto": "à¤\9aा à¤¨à¤¿à¤°à¥\8dविवाद सदस्य:",
+       "userrights-groupsmember": "याचा सभासद:",
+       "userrights-groupsmember-auto": "याà¤\9aा à¤\85वà¥\8dयà¤\95à¥\8dत सदस्य:",
        "userrights-groups-help": "तुम्ही एखाद्या सदस्याचे गट सदस्यत्व बदलू शकता:\n* निवडलेला चौकोन म्हणजे सदस्य त्या गटात आहे.\n* न निवडलेला चौकोन म्हणजे सदस्य त्या गटात नाही.\n* एक * चा अर्थ तुम्ही एकदा समावेश केल्यानंतर तो गट बदलू शकत नाही, किंवा काढल्यानंतर समावेश करू शकत नाही.",
        "userrights-reason": "कारण:",
        "userrights-no-interwiki": "इतर विकींवरचे सदस्य अधिकार बदलण्याची परवानगी तुम्हाला नाही.",
        "right-move": "पानांचे स्थानांतरण करा",
        "right-move-subpages": "पाने उपपानांसकट स्थानांतरीत करा",
        "right-move-rootuserpages": "मूळ सदस्यपाने हलवा",
+       "right-move-categorypages": "वर्ग पाने स्थानांतरील करा",
        "right-movefile": "संचिका हलवा",
        "right-suppressredirect": "एखाद्या पानाचे नवीन नावावर स्थानांतरण करत असताना पुनर्निर्देशन वगळा",
        "right-upload": "संचिका अपभारण करा",
        "right-browsearchive": "वगळलेली पाने शोधा",
        "right-undelete": "एखादे पान पुनर्स्थापित करा",
        "right-suppressrevision": "कोणत्याही सदस्यास विशिष्ट आवृत्त्या दर्शवा,लपवा किंवा प्रगट करा",
+       "right-viewsuppressed": "कोणत्याही सदस्यापासून लपविलेल्या आवृत्त्या पहा",
        "right-suppressionlog": "खासगी नोंदी पहा",
        "right-block": "इतर सदस्यांना संपादन करण्यापासून प्रतिबंधित करा",
        "right-blockemail": "एखाद्या सदस्याला इ-मेल पाठविण्यास प्रतिबंधित करा",
        "right-proxyunbannable": "प्रॉक्सी असताना ब्लॉक्स कडे दुर्लक्ष करा",
        "right-unblockself": "कोण्या-एकास अप्रतिबंधित करा",
        "right-protect": "सुरक्षा पातळी बदलवा व निपात-प्रतिबंधित पानांचे संपादन करा",
-       "right-editprotected": " \"{{int:protect-level-sysop}}\"म्हणून नमुद केलेली सुरक्षित पाने संपादा",
+       "right-editprotected": "\"{{int:protect-level-sysop}}\"म्हणून नमुद केलेली सुरक्षित पाने संपादा",
        "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\" म्हणून नमुद केलेली सुरक्षित पाने संपादा",
+       "right-editcontentmodel": "पानाचा आशय नमूना संपादा",
        "right-editinterface": "सदस्य पसंतीक्रम बदला",
        "right-editusercssjs": "इतर सदस्यांच्या CSS व JS संचिका संपादित करा",
        "right-editusercss": "इतर सदस्यांच्या CSS संचिका संपादित करा",
        "right-viewmyprivateinfo": "आपली स्वत:ची वैयक्तिक माहिती बघा (उदा.विपत्रपत्ता, खरे नाव)",
        "right-editmyprivateinfo": "आपली स्वत:ची वैयक्तिक माहिती संपादा (उदा.विपत्रपत्ता, खरे नाव)",
        "right-editmyoptions": "आपल्या स्वत:चा 'पसंतीक्रम' संपादा",
-       "right-rollback": "या आधीच्या सदस्याचे नुकतेच संपादन केलेले एखादे विशिष्ट पानाचे बदल लवकर आधीच्य स्थितीत न्या",
+       "right-rollback": "या आधीच्या सदस्याचे नुकतेच संपादन केलेले एखादे विशिष्ट पानाचे बदल लवकर आधीच्य स्थितीत न्या",
        "right-markbotedits": "निवडलेली संपादने सांगकाम्यांची म्हणून जतन करा",
        "right-noratelimit": "रेट लिमिट्स चा परिणाम होत नाही.",
        "right-import": "इतर विकिंमधून पाने आयात करा",
        "right-override-export-depth": "जोडलेल्या पानांचा पाचव्या पातळीपर्यंत अंतर्भाव करुन पाने निर्यात करा",
        "right-sendemail": "इतर सदस्यांना विपत्रे पाठवा",
        "right-passwordreset": "परवलीचा शब्द पुनर्स्थापित केल्याचे विपत्र पहा.",
+       "right-managechangetags": "डाटाबेस मधून [[Special:Tags|खूणपताका]] तयार करा किंवा  वगळा",
+       "right-applychangetags": "कोणाच्याही बदलास [[Special:Tags|खूणपताका]] जोडा",
+       "right-changetags": "वैयक्तिक आवृत्त्यांना व नोंद प्रवेष्ट्यांना, आहेतुक(arbitrary) [[Special:Tags|खूणपताका]] जोडा अथवा हटवा",
        "newuserlogpage": "नवीन सदस्यांची नोंद",
        "newuserlogpagetext": "ही नवीन सदस्यांची नोंद यादी आहे.",
        "rightslog": "सदस्य आधिकार नोंद",
        "action-viewmywatchlist": "'माझी निरीक्षणसूची' बघा",
        "action-viewmyprivateinfo": "आपली वैयक्तिक माहिती बघा",
        "action-editmyprivateinfo": "आपली वैयक्तिक माहिती संपादा",
+       "action-editcontentmodel": "पानाचा आशय नमूना संपादा",
+       "action-managechangetags": "डाटाबेसमध्ये खूणपतका तयार करा किंवा वगळा",
+       "action-applychangetags": "आपल्या बदलांसोबतच खूणपताका जोडा",
+       "action-changetags": "वैयक्तिक आवृत्त्यांना व नोंद प्रवेष्ट्यांना, आहेतुक(arbitrary) खूणपताका जोडा अथवा हटवा",
        "nchanges": "$1 {{PLURAL:$1|बदल}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|मागील भेटीनंतर}}",
        "enhancedrc-history": "इतिहास",
        "recentchanges": "अलीकडील बदल",
-       "recentchanges-legend": "à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²à¤¾à¤\8fवजी पर्याय",
+       "recentchanges-legend": "à¤\85लà¥\80à¤\95डà¥\80ल à¤¬à¤¦à¤²à¤¾à¤\90वजी पर्याय",
        "recentchanges-summary": "या विकिवर झालेल्या सर्वात अलीकडील बदलांचा या पानावर मागोवा घ्या.",
        "recentchanges-noresult": "नमुद कालावधीतील कोणतेही बदला या निकषांशी जुळत नाहीत.",
        "recentchanges-feed-description": "या रसदीत,या विकिवर झालेल्या सर्वात अलीकडील बदलांचा मागोवा घ्या.",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नविन पानांची यादी]] हेही पाहा)",
        "recentchanges-legend-plusminus": "(''±१२३'')",
        "rcnotefrom": "खाली {{PLURAL:$5|हा बदल आहे|हे बदल आहेत}} <strong>$3, $4</strong>पासून ते(<strong>$1</strong>पर्यंतचे  बदल दाखविले आहेत).",
-       "rclistfrom": "$2,$3  नंतर केले गेलेले बदल दाखवा.",
+       "rclistfrom": "$2,$3 पासून सुरुवात करुन, नविन केल्या गेलेले बदल दाखवा.",
        "rcshowhideminor": "छोटे बदल $1",
        "rcshowhideminor-show": "दाखवा",
        "rcshowhideminor-hide": "लपवा",
        "rcshowhidemine": "माझे बदल $1",
        "rcshowhidemine-show": "दाखवा",
        "rcshowhidemine-hide": "लपवा",
+       "rcshowhidecategorization": "$1 पान वर्गीकरण",
        "rcshowhidecategorization-show": "दाखवा",
        "rcshowhidecategorization-hide": "लपवा",
        "rclinks": "मागील $2 दिवसांतील $1 बदल पहा.<br />$3",
        "diff": "फरक",
-       "hist": "इति",
+       "hist": "इति.",
        "hide": "लपवा",
        "show": "दाखवा",
-       "minoreditletter": "छो",
-       "newpageletter": "न",
-       "boteditletter": "सां",
+       "minoreditletter": "छो.ब.",
+       "newpageletter": "न.पा.",
+       "boteditletter": "सां.",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|सदस्याने|सदस्यांनी}} पहारा दिलेला आहे]",
        "rc_categories": "वर्गांपुरते मर्यादित ठेवा (\"|\"ने वेगळे करा):",
        "rc_categories_any": "निवडल्यापैकी कोणतेही",
        "recentchangeslinked-feed": "या पृष्ठासंबंधीचे बदल",
        "recentchangeslinked-toolbox": "या पृष्ठासंबंधीचे बदल",
        "recentchangeslinked-title": "\"$1\" च्या संदर्भातील बदल",
-       "recentchangeslinked-summary": "हे पृष्ठ एखाद्या विशिष्ट पानाशी (किंवा एखाद्या विशिष्ट वर्गात असणाऱ्या पानांशी) जोडलेल्या पानांवरील बदल दर्शवते.\nतुमच्या [[Special:Watchlist|नित्य पहाण्याच्या सूचीमधील]] ही पाने '''ठळक''' दिसतील.",
+       "recentchangeslinked-summary": "हे पृष्ठ एखाद्या विशिष्ट पानाशी, (किंवा एखाद्या विशिष्ट वर्गात असणाऱ्या पानांशी), जोडलेल्या पानांवरील बदल दर्शविते.\nआपल्या [[Special:Watchlist|निरीक्षणसूचीत]] ही पाने <strong>ठळक</strong> दिसतील.",
        "recentchangeslinked-page": "पृष्ठ नाव:",
        "recentchangeslinked-to": "याऐवजी दिलेल्या पानाला जोडलेल्या पानांवरील बदल दाखवा",
        "recentchanges-page-added-to-category": "[[:$1]] वर्गास जोडले",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] व {{PLURAL:$2|एक पान वर्गास जोडले|$2 पाने वर्गास जोडलीत}}",
+       "recentchanges-page-removed-from-category": "[[:$1]] ला वर्गातून हटविले",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] व {{PLURAL:$2|एक पान वर्गातून हटविले|$2 पाने वर्गातून हटविलीत}}",
+       "autochange-username": "मिडियाविकि आपोआप बदल",
        "upload": "संचिका चढवा",
        "uploadbtn": "संचिकेचे अपभारण करा",
        "reuploaddesc": "अपभारण रद्द करुन ,अपभारणाच्या अर्जाकडे परत जा",
        "fileexists-shared-forbidden": "हे नाव असलेली एक संचिका शेअर्ड संचिका कोशात आधी पासून आहे; कृपया परत मागे जा आणि नवीन, वेगळ्या नावाने ही संचिका पुन्हा चढवा. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "ही संचिका खालील {{PLURAL:$1|संचिकेची|संचिकांची}} प्रत आहे:",
        "file-deleted-duplicate": "या संचिकेसारखीच् संचिका ([[:$1]]) या आधी वगळण्यात आली आहे.\nहि संचिका पुनः चढवण्यापूर्वी आपण त्या संचिकेची वगळण्याची नोंद तपासावी.",
+       "file-deleted-duplicate-notitle": "या संचिकेसम असलेली दुसरी संचिका मागे वगळण्यात आलेली आहे व त्या शीर्षकाचे दमन केले आहे.आपण,त्या संचिकेच्या पुनर्-अपभारणापूर्वी, ज्या कोणास दमन केलेली संचिका बघण्याचे अधिकार असतील त्यास, या स्थितीच्या पुनर्विलोकनाची विनंती करा.",
        "uploadwarning": "चढवताना सूचना",
        "uploadwarning-text": "कृपया खालील संचिका वर्णन संपादित करून पुनर्प्रयत्न करा.",
        "savefile": "संचिका जतन करा",
        "uploaddisabledtext": "{{SITENAME}} वर संचिका चढविण्यास बंदी घालण्यात आलेली आहे.",
        "php-uploaddisabledtext": "PHP मध्ये संचिका चढवणे प्रतिबंधित केले आहे.\nकृपया file_uploads मांडणी (setting) तपासावी.",
        "uploadscripted": "या संचिकेत HTML किंवा स्क्रिप्ट कोडचा आंतर्भाव आहे, त्याचा एखाद्या विचरकाकडून विचित्र अर्थ लावला जाऊ शकतो.",
+       "upload-scripted-pi-callback": "ज्या संचिकेत XML-stylesheet च्या प्रक्रियेचे अनुदेश असतील अशी संचिकेचे अपभारण करु शकत नाही.",
+       "uploaded-script-svg": "अपभारीलेल्या SVG संचिकेत,\"$1\" हे लेखनीय अवयव आढळले.",
+       "uploaded-hostile-svg": "अपभारीलेल्या SVG संचिकेत,असुरक्षित CSS स्टाईल अवयव आढळले.",
+       "uploadscriptednamespace": "या SVG संचिकेत \"$1\" हे अवैध नामविश्व आहे.",
        "uploadinvalidxml": "अपभारीत संचिकेतील XML पार्स करता आले नाही.",
        "uploadvirus": "ह्या संचिकेत व्हायरस आहे. अधिक माहिती: $1",
        "uploadjava": "ही फाईल झीप ह्या प्रकारातील आहे ज्यामधे जावा .क्लास फाईल. आहे,जावा फाईलचे अपभारणास परवानगी नाही कारण त्याने सुरक्षा-बंधने टाळल्या जाऊ शकतात.",
        "upload-warning-msg": "तुमच्या अपभारणात [$2] येथून अडचण निर्माण झाली. तुम्ही [[Special:Upload/stash/$1|चढवण्याचा अर्ज]] पुन्हा भरून ही चूक दूर करू शकता.",
        "upload-proto-error": "चूकीचा शिष्टाचार",
        "upload-proto-error-text": "दूरस्थ अपभारणाच्या क्रियेत <code>http://</code>पासून किंवा <code>ftp://</code>पासून सुरू होणारी URL लागतात.",
-       "upload-file-error": "à¤\85à¤\82तरà¥\8dà¤\97त à¤¤à¥\8dरà¥\82टी",
-       "upload-file-error-text": "विदादातà¥\8dयावर à¤¤à¤¾à¤¤à¥\8dपà¥\81रतà¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤¤à¤¯à¤¾à¤° à¤\95रणà¥\8dयाà¤\9aà¥\8dया à¤ªà¥\8dरयतà¥\8dन à¤\95रत à¤\85सताना à¤\85à¤\82तरà¥\8dà¤\97त à¤¤à¥\8dरà¥\82टी घडली.कृपया [[Special:ListUsers/sysop|प्रचालकांशी]] संपर्क करा.",
-       "upload-misc-error": "à¤\85नà¥\8bळà¤\96à¥\80 à¤\85पभारण à¤¤à¥\8dरà¥\82टी.",
-       "upload-misc-error-text": "à¤\85पभारणात à¤\85नà¥\8bळà¤\96à¥\80 à¤¤à¥\8dरà¥\82à¤\9fà¥\80 à¤\98डलà¥\80.à¤\95à¥\83पया à¤¯à¥\82à¤\86रà¤\8fल à¤µà¥\88ध à¤\86णि à¤ªà¥\8bहà¥\8bà¤\9aयà¥\8bà¤\97à¥\8dय à¤\86हà¥\87 à¤\95ा à¤¤à¥\87 à¤¤à¤ªà¤¾à¤¸à¤¾ à¤\86णि à¤ªà¥\81नà¥\8dहा à¤ªà¥\8dरयतà¥\8dन à¤\95रा. à¤\85डà¤\9aण à¤¤à¤¶à¥\80à¤\9a à¤\9fिà¤\95à¥\81न à¤°à¤¾à¤¹à¤¿à¤²à¥\8dयास,  [[Special:ListUsers/sysop|पà¥\8dरà¤\9aालà¤\95ाà¤\82शà¥\80]] à¤¸à¤\82परà¥\8dà¤\95 à¤\95रा.",
+       "upload-file-error": "à¤\85à¤\82तरà¥\8dà¤\97त à¤¤à¥\8dरà¥\81टी",
+       "upload-file-error-text": "विदादातà¥\8dयावर à¤¤à¤¾à¤¤à¥\8dपà¥\81रतà¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤¤à¤¯à¤¾à¤° à¤\95रणà¥\8dयाà¤\9aा à¤ªà¥\8dरयतà¥\8dन à¤\95रत à¤\85सताना à¤\85à¤\82तरà¥\8dà¤\97त à¤¤à¥\8dरà¥\81टी घडली.कृपया [[Special:ListUsers/sysop|प्रचालकांशी]] संपर्क करा.",
+       "upload-misc-error": "à¤\85नà¥\8bळà¤\96à¥\80 à¤\85पभारण à¤¤à¥\8dरà¥\81टी.",
+       "upload-misc-error-text": "à¤\85पभारणात à¤\85नà¥\8bळà¤\96à¥\80 à¤¤à¥\8dरà¥\81à¤\9fà¥\80 à¤\98डलà¥\80.à¤\95à¥\83पया à¤¯à¥\82à¤\86रà¤\8fल à¤µà¥\88ध à¤\86णि à¤ªà¥\8bहà¥\8bà¤\9aयà¥\8bà¤\97à¥\8dय à¤\86हà¥\87 à¤\95ा à¤¤à¥\87 à¤¤à¤ªà¤¾à¤¸à¤¾ à¤\86णि à¤ªà¥\81नà¥\8dहा à¤ªà¥\8dरयतà¥\8dन à¤\95रा. à¤\85डà¤\9aण à¤¤à¤¶à¥\80à¤\9a à¤\9fिà¤\95à¥\81न à¤°à¤¾à¤¹à¤¿à¤²à¥\8dयास,  [[Special:ListUsers/sysop|पà¥\8dरà¤\9aालà¤\95ाà¤\82शà¥\80]] à¤¸à¤\82परà¥\8dà¤\95 à¤¸à¤¾à¤§ा.",
        "upload-too-many-redirects": "या आंतरजालपत्त्यात खूप पुनर्निर्देशने आहेत",
        "upload-http-error": "एक एचटीटीपी चूक उद्भवली: $1",
        "upload-copy-upload-invalid-domain": "या डोमेनमध्ये प्रत-अपभारणे अनुपलब्ध आहेत.",
        "http-invalid-scheme": "URL सोबत \"$1\" पद्धत चालत नाही",
        "http-request-error": "एचटीटीपी मागणी अज्ञात कारणामुळे अयशस्वी.",
        "http-read-error": "एचटीटीपी वाचन त्रुटी.",
-       "http-timed-out": "विनंती वेळ सपला आहे",
+       "http-timed-out": "HTTP विनंती मुदतबाह्य झाली.",
        "http-curl-error": "आंतरजालपत्ता पकडताना चूक: $1",
        "http-bad-status": "एचटीटीपी मागणीदरम्यान एक चूक उद्भवली: $1 $2",
        "upload-curl-error6": "आंतरजाल पत्त्यापाशी पोहोचले नाही",
        "listfiles-latestversion-no": "नाही",
        "file-anchor-link": "संचिका",
        "filehist": "संचिकेचा इतिहास",
-       "filehist-help": "सà¤\82à¤\9aिà¤\95à¥\87à¤\9aà¥\80 à¤¤à¥\8dयावà¥\87ळà¤\9aà¥\80 à¤\86वà¥\83तà¥\8dतà¥\80 à¤¬à¤\98णà¥\8dयासाठà¥\80 à¤¤à¥\8dया à¤¦à¤¿à¤¨à¤¾à¤\82à¤\95/वà¥\87ळà¥\87वर à¤µà¤° à¤\9fिà¤\9aà¤\95à¥\80 à¤¦à¥\8dया.",
+       "filehist-help": "संचिकेची त्यावेळची आवृत्ती बघण्यासाठी त्या दिनांक/वेळेवर टिचकी द्या.",
        "filehist-deleteall": "सर्व वगळा",
        "filehist-deleteone": "वगळा",
        "filehist-revert": "उलटवा",
        "filehist-filesize": "संचिकेचा आकार (बाईट्स)",
        "filehist-comment": "प्रतिक्रीया",
        "imagelinks": "संचिका वापर",
-       "linkstoimage": "खालील {{PLURAL:$1|पान चित्राशी जोडले आहे|$1 पाने चित्राशी जोडली आहेत}}:",
+       "linkstoimage": "à¤\96ालà¥\80ल {{PLURAL:$1|पान à¤\9aितà¥\8dराशà¥\80 à¤\9cà¥\8bडलà¥\87 à¤\86हà¥\87|$1 à¤ªà¤¾à¤¨à¥\87 à¤\9aितà¥\8dराà¤\82शà¥\80 à¤\9cà¥\8bडलà¥\80 à¤\86हà¥\87त}}:",
        "linkstoimage-more": "या संचिके ला $1 {{PLURAL:$1|पान जोडले|पाने जोडली}} आहेत.\nखालील यादी या संचिके ला जोडलेल्या {{PLURAL:$1|पहिल्या पानाचा दुवा |पहिल्या $1 पानांचे दुवे }}दर्शविते.\n[[Special:WhatLinksHere/$2|संपुर्ण यादी]] उपलब्ध आहे.",
        "nolinkstoimage": "या चित्राशी जोडलेली पृष्ठे नाही आहेत.",
        "morelinkstoimage": "या संचिकेचे [[Special:WhatLinksHere/$1|अधिक दुवे]] पहा.",
        "withoutinterwiki-legend": "उपपद",
        "withoutinterwiki-submit": "दाखवा",
        "fewestrevisions": "सगळ्यात कमी बदल असलेले लेख",
-       "nbytes": "$1 {{PLURAL:$1|बाइट}}",
+       "nbytes": "$1 {{PLURAL:$1|बाइट|बाइटस्}}",
        "ncategories": "$1 {{PLURAL:$1|वर्ग}}",
        "ninterwikis": "$1 {{PLURAL:$1|आंतरविकि}}",
        "nlinks": "$1 {{PLURAL:$1|दुवा|दुवे}}",
        "specialloguserlabel": "कार्यकर्ता:",
        "speciallogtitlelabel": "लक्ष (शिर्षक किंवा {{ns:user}}:सदस्याचे सदस्यनाव):",
        "log": "नोंदी",
-       "all-logs-page": "सर्व नोंदी",
+       "all-logs-page": "सरà¥\8dव à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95 à¤¨à¥\8bà¤\82दà¥\80",
        "alllogstext": "{{SITENAME}}च्या सर्व नोंदीचे एकत्र दर्शन.नोंद प्रकार, सदस्यनाव किंवा बाधित पान निवडून तुम्ही तुमचे दृश्यपान मर्यादित करू शकता.",
        "logempty": "नोंदीत अशी बाब नाही.",
        "log-title-wildcard": "या मजकुरापासून सुरू होणारी शीर्षके शोधा.",
        "listgrouprights-namespaceprotection-header": "नामविश्व प्रतिबंध",
        "listgrouprights-namespaceprotection-namespace": "नामविश्व",
        "trackingcategories": "वर्ग शोधत आहोत",
-       "trackingcategories-summary": "या à¤ªà¤¾à¤¨à¤¾à¤¤ à¤°à¥\87à¤\96ापथनातà¥\80ल à¤¤à¥\87 à¤µà¤°à¥\8dà¤\97 à¤\86हà¥\87त, à¤\9cà¥\87, à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¤\82à¤\9aà¥\87तनादà¥\8dवारà¥\87 à¤¸à¥\8dवयà¤\82à¤\9aलितरितà¥\8dया à¤µà¤¸à¤µà¤¿à¤£à¥\8dयात (तयार à¤\95रणà¥\8dयात) à¤\86लà¥\87 à¤\86हà¥\87त. à¤¤à¥\8dयाà¤\82à¤\9aà¥\80 à¤¨à¤¾à¤µà¥\87{ns:8}} नामविश्वातील संबंधित प्रणाली संदेशात फेरफार करुन, बदलविता येतात.",
+       "trackingcategories-summary": "या à¤ªà¤¾à¤¨à¤¾à¤¤ à¤¤à¥\87 à¤°à¥\87à¤\96ापथनातà¥\80ल à¤µà¤°à¥\8dà¤\97(tracking categories) à¤\86हà¥\87त, à¤\9cà¥\87, à¤®à¤¿à¤¡à¤¿à¤¯à¤¾à¤µà¤¿à¤\95ि à¤¸à¤\82à¤\9aà¥\87तनादà¥\8dवारà¥\87 à¤¸à¥\8dवयà¤\82à¤\9aलितरितà¥\8dया à¤µà¤¸à¤µà¤¿à¤£à¥\8dयात (तयार à¤\95रणà¥\8dयात) à¤\86लà¥\87 à¤\86हà¥\87त. à¤¤à¥\8dयाà¤\82à¤\9aà¥\80 à¤¨à¤¾à¤µà¥\87, {{ns:8}} नामविश्वातील संबंधित प्रणाली संदेशात फेरफार करुन, बदलविता येतात.",
        "trackingcategories-name": "संदेश नाम",
+       "trackingcategories-desc": "वर्ग अंतर्भूत करण्याचे निकष",
        "trackingcategories-nodesc": "वर्णन उपलब्ध नाही.",
        "trackingcategories-disabled": "वर्ग अक्षम केल्या गेला आहे",
        "mailnologin": "पाठविण्याचा पत्ता नाही",
        "emailuser-title-notarget": "विपत्र (ईमेल) उपयोगकर्ता",
        "emailpagetext": "या {{GENDER:$1|सदस्याला}}विपत्र पाठविण्यास खालील आवेदनाचा आपण वापर करु शकता.\n\nआपल्या [[Special:Preferences|पसंतीक्रमात]] नमूद केलेला विपत्रपत्ता, \"च्या कडून\" पत्त्यात येईल म्हणजे  प्राप्तकर्ता आपल्याला थेट उत्तर देऊ शकेल.",
        "defemailsubject": "{{SITENAME}} \"$1\" सदस्याकडून विपत्र",
-       "usermaildisabled": "सदसà¥\8dय à¤µà¤¿à¤ªà¤¤à¥\8dर à¤¨à¤¿à¤·à¥\8dà¤\95à¥\8dरिय आहे",
+       "usermaildisabled": "सदसà¥\8dय à¤µà¤¿à¤ªà¤¤à¥\8dर à¤\85à¤\95à¥\8dषम आहे",
        "usermaildisabledtext": "या विकिवर तुम्हाला इतर सदस्यांना विपत्रे पाठवता येत नाहीत",
        "noemailtitle": "विपत्र पत्ता नाही",
        "noemailtext": "या सदस्याने वैध विपत्र पत्ता नमूद केलेला नाही.",
        "emailccsubject": "$1 ला पाठविलेल्या आपल्या विपत्राची प्रत: $2",
        "emailsent": "विपत्र पाठवले",
        "emailsenttext": "तुमचा विपत्र संदेश पाठवण्यात आला आहे.",
-       "emailuserfooter": "$1 ने $2 ला हे विपत्र, {{SITENAME}} वरील, \"सदस्यास विपत्र पाठवा\" ही प्रक्रिया वापरुन पाठवले आहे.",
+       "emailuserfooter": "हे विपत्र,{{SITENAME}} वरील, \"{{int:emailuser}}\" ही प्रक्रिया वापरुन $1 ने {{GENDER:$2|$2}} ला {{GENDER:$1|पाठविले}} आहे.",
        "usermessage-summary": "प्रणाली संदेश देत आहे.",
        "usermessage-editor": "प्रणाली संदेशवाहक",
        "watchlist": "निरीक्षणसूची",
        "mywatchlist": "माझी निरीक्षणसूची",
        "watchlistfor2": "$1 $2 साठी",
        "nowatchlist": "तुमची पहाऱ्याची सूची रिकामी आहे.",
-       "watchlistanontext": "तुमच्या पहाऱ्याच्या सूचीमधील बाबी पाहण्याकरता किंवा संपादित करण्याकरता, कृपया $1.",
+       "watchlistanontext": "तुमच्या पहाऱ्याच्या सूचीमधील बाबी पाहण्याकरता किंवा संपादित करण्याकरता, कृपया सनोंद प्रवेश करा.",
        "watchnologin": "सनोंद-प्रवेशित नाही",
        "addwatch": "पहाऱ्याच्या सूचीमध्ये टाका",
-       "addedwatchtext": "\"[[:$1]]\"  à¤¹à¥\87 à¤ªà¤¾à¤¨ à¤¤à¥\81मà¤\9aà¥\8dया  [[Special:Watchlist|'माà¤\9dà¥\80 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80']]मधà¥\8dयà¥\87 à¤\9fाà¤\95लà¥\87 à¤\86हà¥\87. à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤µà¤°à¥\80ल à¤¤à¤¸à¥\87à¤\9a à¤¤à¥\8dयाà¤\9aà¥\8dया à¤\9aरà¥\8dà¤\9aा à¤ªà¤¾à¤¨à¤¾à¤µà¤°à¥\80ल à¤­à¤µà¤¿à¤·à¥\8dयातà¥\80ल à¤¬à¤¦à¤² à¤¤à¥\87थà¥\87 à¤¦à¤¾à¤\96वलà¥\87 à¤\9cातà¥\80ल",
+       "addedwatchtext": "\"[[:$1]]\"  à¤¹à¥\87 à¤ªà¤¾à¤¨ à¤µ à¤¤à¥\8dयाà¤\9aà¥\87 à¤\9aरà¥\8dà¤\9aापान à¤¤à¥\81मà¤\9aà¥\8dया  [[Special:Watchlist|'माà¤\9dà¥\80 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80']] à¤®à¤§à¥\8dयà¥\87 à¤\9fाà¤\95लà¥\87 à¤\86हà¥\87.",
        "addedwatchtext-short": "\"$1\" हे पान आपल्या निरीक्षणसूचीत जोडण्यात आले आहे.",
        "removewatch": "पहाऱ्याच्या सूचीतून वगळा",
        "removedwatchtext": "\"[[:$1]]\" हे पान व त्याची चर्चापाने तुमच्या [[Special:Watchlist|निरीक्षण सूचीतून]] हटविण्यात आले आहे.",
        "watchlist-details": "पहाऱ्याच्या सूचीमधील {{PLURAL:$1|$1 पान|$1 पाने}}, यात चर्चा पाने  वेगळी मोजलेली नाहीत.",
        "wlheader-enotif": "विपत्र अधिसूचना सुविधा शक्य केली.",
        "wlheader-showupdated": "ती पाने, जी आपण दिलेल्या शेवटच्या भेटीनंतर बदललेली आहेत, '''ठळक''' दाखवली आहेत.",
-       "wlnote": "खाली $3, $4 पर्यंतचे गेल्या {{PLURAL:$2| '''१''' तासातील|'''$2''' तासातील}} {{PLURAL:$1|शेवटचा बदल दिला आहे|शेवटाचे '''$1'''बदल दिले आहेत}}.",
-       "wlshowlast": "मागील $1 तास $2 दिवस  पहा",
+       "wlnote": "खाली $3, $4 चे गेल्या {{PLURAL:$2|तासातील|<strong>$2</strong> तासांतील}} {{PLURAL:$1|शेवटचा बदल दिला आहे|शेवटाचे<strong>$1</strong>बदल दिले आहेत}}.",
+       "wlshowlast": "मागील $1 तास $2 दिवस दाखवा",
+       "watchlistall2": "सर्व",
+       "wlshowtime": "शेवटचे दाखवा:",
+       "wlshowhideminor": "छोटी संपादने",
+       "wlshowhidebots": "सांगकामे",
+       "wlshowhideliu": "नोंदणीकृत सदस्य",
+       "wlshowhideanons": "अनामिक सदस्य",
+       "wlshowhidepatr": "पहारा केलेली संपादने",
+       "wlshowhidemine": "माझी संपादने",
        "watchlist-options": "पहाऱ्याच्या सूचीचे पर्याय",
        "watching": "पहारा देत आहे...",
        "unwatching": "पहारा काढत आहे...",
        "enotif_lastvisited": "तुमच्या शेवटच्या भेटीनंतरचे बदल बघण्यासाठी $1 पहा.",
        "enotif_lastdiff": "हा बदल पहाण्याकरिता $1 पहा.",
        "enotif_anon_editor": "अनामिक सदस्य $1",
-       "enotif_body": "पà¥\8dरिय $WATCHINGUSERNAME,\n\n{{SITENAME}}या à¤²à¥\87à¤\96नावाà¤\9aà¥\87 $PAGETITLE (या à¤®à¤¥à¤³à¥\8dयाà¤\9aà¥\87) à¤ªà¤¾à¤¨ $PAGEEDITOR à¤¨à¥\87 $PAGEEDITDATE ( à¤¯à¤¾ à¤¤à¤¾à¤°à¤\96à¥\87स) $CHANGEDORCREATED à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87 à¤\95िà¤\82वा à¤¬à¤¦à¤²à¤²à¥\87 à¤\86हà¥\87. à¤¸à¤§à¥\8dयाà¤\9aà¥\80 à¤\86वà¥\83तà¥\8dतà¥\80 à¤ªà¤¾à¤¹à¤£à¥\8dयासाठà¥\80 à¤\96ालà¥\80ल à¤¦à¥\81वà¥\8dयावर à¤\9fिà¤\9aà¤\95à¥\80 à¤®à¤¾à¤°à¤¾.\n$PAGETITLE_URL\n\n$NEWPAGE\n\nसà¤\82पादà¤\95ाà¤\9aा à¤\86ढावा : $PAGESUMMARY $PAGEMINOREDIT\n\nया à¤¸à¤\82पादà¤\95ास à¤¸à¤\82परà¥\8dà¤\95 à¤\95रा :\nविपतà¥\8dर: $PAGEEDITOR_EMAIL\nविà¤\95ि: $PAGEEDITOR_WIKI\n\nतà¥\81मà¥\8dहà¥\80 à¤ªà¤¾à¤¨à¤¾à¤¸ à¤­à¥\87à¤\9f à¤¦à¥\87त à¤¨à¤¾à¤¹à¥\80 à¤¤à¥\8bपरà¥\8dयà¤\82त,या à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤ªà¥\81ढà¥\87 à¤¹à¥\8bणाऱà¥\8dया à¤\95à¥\8bणतà¥\8dयाहà¥\80 à¤\95à¥\8dरियाà¤\82à¤\9aà¥\80 à¤\87तर à¤\95à¥\8bणतà¥\80हà¥\80 à¤µà¥\87à¤\97ळà¥\80 सूचना तुम्हाला देण्यात येणार नाही. तुमच्या निरीक्षणसूचीमध्ये असलेल्या पानांच्या सूचना-पताकांचे तुम्ही पुर्नयोजन करु शकता.\n\nतुमची मैत्रीपूर्ण {{SITENAME}} सूचना प्रणाली\n\n--\n\nतुमच्या निरीक्षणसूचीमध्ये पानांची मांडणावळ (कोंदण)तुम्ही बदलू शकता, त्यासाठी {{canonicalurl:{{#special:EditWatchlist}}}} या पानावर जा.\n\nहे पान तुमच्या निरीक्षणसूचीमधून काढून टाकण्यासाठी खालील दुव्यावर टिचकी मारा.\n$UNWATCHURL\n\nपुढील साहाय्य आणि प्रतिक्रिया:\n$HELPPAGE",
+       "enotif_body": "पà¥\8dरिय $WATCHINGUSERNAME,\n\n{{SITENAME}}या à¤²à¥\87à¤\96नावाà¤\9aà¥\87 $PAGETITLE (या à¤®à¤¥à¤³à¥\8dयाà¤\9aà¥\87) à¤ªà¤¾à¤¨ $PAGEEDITOR à¤¨à¥\87 $PAGEEDITDATE ( à¤¯à¤¾ à¤¤à¤¾à¤°à¤\96à¥\87स) $CHANGEDORCREATED à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87 à¤\95िà¤\82वा à¤¬à¤¦à¤²à¤²à¥\87 à¤\86हà¥\87. à¤¸à¤§à¥\8dयाà¤\9aà¥\80 à¤\86वà¥\83तà¥\8dतà¥\80 à¤ªà¤¾à¤¹à¤£à¥\8dयासाठà¥\80 à¤\96ालà¥\80ल à¤¦à¥\81वà¥\8dयावर à¤\9fिà¤\9aà¤\95à¥\80 à¤®à¤¾à¤°à¤¾.\n$PAGETITLE_URL\n\n$NEWPAGE\n\nसà¤\82पादà¤\95ाà¤\9aा à¤\86ढावा : $PAGESUMMARY $PAGEMINOREDIT\n\nया à¤¸à¤\82पादà¤\95ास à¤¸à¤\82परà¥\8dà¤\95 à¤\95रा :\nविपतà¥\8dर: $PAGEEDITOR_EMAIL\nविà¤\95ि: $PAGEEDITOR_WIKI\n\nतà¥\81मà¥\8dहà¥\80 à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शà¥\81न à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤¸ à¤­à¥\87à¤\9f à¤¦à¥\87त à¤¨à¤¾à¤¹à¥\80 à¤¤à¥\8bपरà¥\8dयà¤\82त,या à¤ªà¤¾à¤¨à¤¾à¤µà¤° à¤ªà¥\81ढà¥\87 à¤¹à¥\8bणाऱà¥\8dया à¤\95à¥\8bणतà¥\8dयाहà¥\80 à¤\95à¥\8dरियाà¤\82à¤\9aà¥\80 à¤\87तर à¤\95à¥\8bणतà¥\80हà¥\80 à¤µà¥\87à¤\97ळà¥\80 à¤\85धिसूचना तुम्हाला देण्यात येणार नाही. तुमच्या निरीक्षणसूचीमध्ये असलेल्या पानांच्या सूचना-पताकांचे तुम्ही पुर्नयोजन करु शकता.\n\nतुमची मैत्रीपूर्ण {{SITENAME}} सूचना प्रणाली\n\n--\n\nतुमच्या निरीक्षणसूचीमध्ये पानांची मांडणावळ (कोंदण)तुम्ही बदलू शकता, त्यासाठी {{canonicalurl:{{#special:EditWatchlist}}}} या पानावर जा.\n\nहे पान तुमच्या निरीक्षणसूचीमधून काढून टाकण्यासाठी खालील दुव्यावर टिचकी मारा.\n$UNWATCHURL\n\nपुढील साहाय्य आणि प्रतिक्रिया:\n$HELPPAGE",
        "created": "तयार केले",
        "changed": "बदलले",
        "deletepage": "पान वगळा",
        "delete-edit-reasonlist": "वगळण्याची कारणे संपादित करा",
        "delete-toobig": "या पानाला, $1 {{PLURAL:$1|आवृत्ती|आवृत्त्यां}}मुळे तयार झालेला खूप मोठा संपादन इतिहास आहे. {{SITENAME}} वर आकस्मिक होणारी उलथापालथ वाचविण्यासाठी, अश्या पानांचे वगळणे प्रतिबंधित केल्या गेले आहे.",
        "delete-warning-toobig": "या पानाला, $1 {{PLURAL:$1|आवृत्ती|आवृत्त्यां}}मुळे तयार झालेला खूप मोठा संपादन इतिहास आहे.त्याचे वगळण्याने {{SITENAME}} वर डाटाबेसच्या क्रियांची उलथापालथ होऊ शकते; सावधगिरीने पुढे जा.",
+       "deleteprotected": "आपण हे पान वगळू शकत नाही कारण ते सुरक्षित केले आहे.",
        "deleting-backlinks-warning": "'''ईशारा:'''  आपण वगळत असणाऱ्या पानास, [[Special:WhatLinksHere/{{FULLPAGENAME}}|इतर पाने]] जोडलेली किंवा आंतरविन्यासित आहेत.",
        "rollback": "बदल वेगात माघारी न्या",
        "rollbacklink": "द्रुतमाघार",
        "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|Talk]] [[Special:Contributions/$2|{{int:contribslink}}]])चे शेवटाचे [[:$1]]वे संपादन माघारी परतवता येत नाही; पान आधीच कुणी माघारी परतवले आहे किंवा संपादित केले आहे.\n\nशेवटचे संपादन [[User:$3|$3]] ([[User talk:$3|Talk]] [[Special:Contributions/$3|{{int:contribslink}}]])-चे होते.",
        "editcomment": "संपादन सारांश \"''$1''\" होता.",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|चर्चा]]) यांनी केलेले बदल [[User:$1|$1]] यांच्या आवृत्तीकडे पूर्वपदास नेले.",
-       "revertpage-nouser": "लपविलेल्या सदस्याची संपादने उलटवून मागील आवृत्तीप्रमाणे पूर्ववत केले{{GENDER:$1|[[सदस्य:$1|$1]]}}",
+       "revertpage-nouser": "लपविलेल्या सदस्याची संपादने उलटवून {{GENDER:$1|[[User:$1|$1]]}}च्या मागील आवृत्तीप्रमाणे पूर्ववत केले",
        "rollback-success": "$1 ने उलटवलेली संपादने;$2 च्या आवृत्तीस परत नेली.",
        "sessionfailure-title": "सत्र त्रुटी",
        "sessionfailure": "तुमच्या दाखल सत्रात काही समस्या दिसते;सत्र अपहारणापासून \nवाचविण्याचे दृष्टीने ही कृती रद्द केल्या गेली आहे.कृपया आपल्या विचरकाच्या \"back\" कळीवर टिचकी मारा आणि तुम्ही ज्या पानावरून आला ते पुन्हा चढवा,आणि परत प्रयत्न करा.",
        "changecontentmodel-title-label": "लेखपान शीर्ष",
        "changecontentmodel-reason-label": "कारण:",
+       "logentry-contentmodel-change-revertlink": "उलटवा",
+       "logentry-contentmodel-change-revert": "उलटवा",
        "protectlogpage": "सुरक्षा नोंदी",
        "protectlogtext": "पानांना लावलेल्या ताळ्यांची आणि ताळे उघडण्याबद्दलच्या पानाची खाली सूची दिली आहे.सध्याच्या सुरक्षित पानांबद्दलच्या माहितीकरिता [[Special:ProtectedPages|सुरक्षीत पानांची सूची]] पहा.",
        "protectedarticle": "\"[[$1]]\" सुरक्षित केला",
        "protect-locked-blocked": "तुम्ही प्रतिबंधित असताना सुरक्षा पातळी बदलू शकत नाही.येथे <strong>$1</strong> पानाकरिता सध्याची मांडणावळ आहे:",
        "protect-locked-dblock": "विदागारास ताळे लागलेले असताना सुरक्षा पातळी बदलता येत नाही.येथे <strong>$1</strong> पानाकरिता सध्याची मांडणावळ आहे:",
        "protect-locked-access": "तुम्हाला या पानाची सुरक्षा पातळी बदलण्याचे अधिकार नाहीत.\n<strong>$1</strong> या पानाची सुरक्षा पातळी पुढीलप्रमाणे:",
-       "protect-cascadeon": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¤§à¥\8dया à¤¸à¥\81रà¤\95à¥\8dषित à¤\86हà¥\87 à¤\95ारण à¤¤à¥\87 {{PLURAL:$1|या à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\8dया|या à¤ªà¤¾à¤¨à¤¾à¤\82à¤\9aà¥\8dया}} à¤¸à¥\81रà¤\95à¥\8dषा à¤¶à¤¿à¤¡à¥\80वर à¤\86हà¥\87. à¤¤à¥\81मà¥\8dहà¥\80 à¤¯à¤¾ à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\80 à¤¸à¥\81रà¤\95à¥\8dषा à¤ªà¤¾à¤¤à¤³à¥\80 à¤¬à¤¦à¤²à¥\82 à¤¶à¤\95ता, à¤ªà¤£ à¤¤à¥\8dयानà¥\87 à¤¸à¥\81रà¤\95à¥\8dषाशिडà¥\80 à¤®à¤§à¥\8dयà¥\87 à¤¬à¤¦à¤² à¤¹à¥\8bणार à¤¨à¤¾à¤¹à¥\80त.",
+       "protect-cascadeon": "हà¥\87 à¤ªà¤¾à¤¨ à¤¸à¥\81रà¤\95à¥\8dषित à¤\95à¥\87लà¥\8dया à¤\97à¥\87लà¥\87 à¤\86हà¥\87, à¤\95ारण à¤¤à¥\87 à¤\96ालà¥\80ल {{PLURAL:$1|पानात|पानाà¤\82मधà¥\8dयà¥\87}} à¤\86à¤\82तरविनà¥\8dयासित à¤\95à¥\87लà¥\87लà¥\87 à¤\86हà¥\87,{{PLURAL:$1|à¤\9cà¥\87 à¤ªà¤¾à¤¨|à¤\9cà¥\80 à¤ªà¤¾à¤¨à¥\87 }} à¤¨à¤¿à¤ªà¤¤à¤¨ à¤ªà¤°à¥\8dयाय à¤¸à¥\81रà¥\81 à¤\95à¥\87लà¥\8dयामà¥\81ळà¥\87 à¤¸à¥\81रà¤\95à¥\8dषित à¤\86हà¥\87त.या à¤ªà¤¾à¤¨à¤¾à¤\9aà¥\80 à¤¸à¥\81रà¤\95à¥\8dषापातळà¥\80 à¤¬à¤¦à¤²à¤£à¥\8dयानà¥\87 à¤¤à¥\8dयाà¤\9aà¥\80 à¤¨à¤¿à¤ªà¤¤à¤¨ à¤¸à¥\81रà¤\95à¥\8dषा à¤¬à¤¦à¤²à¤£à¤¾à¤° à¤¨à¤¾à¤¹à¥\80.",
        "protect-default": "सर्व सदस्यांना परवानगी द्या",
        "protect-fallback": "फक्त \"$1\" परवानगी असणाऱ्यांनाच परवानगी द्या",
        "protect-level-autoconfirmed": "फक्त स्वयंशाबीत (ऑटोकन्फर्म) सदस्यांनाच परवानगी आहे",
        "protect-othertime": "इतर वेळ:",
        "protect-othertime-op": "इतर वेळ",
        "protect-existing-expiry": "शेवट दिनांक: $3, $2",
+       "protect-existing-expiry-infinity": "सध्याच्या वेळेची मुदत:अनंत",
        "protect-otherreason": "इतर / अतिरिक्त कारण:",
        "protect-otherreason-op": "दुसरे कारण",
        "protect-dropdown": "* सुरक्षित करण्याची सामान्य कारणे\n** अती उपद्रव\n** अती उत्पात\n** अनुत्पादक संपादन युद्ध\n** अत्यधिक वाचकभेटींचे पान",
        "undelete-bad-store-key": "$1 वेळ दिलेली संचिका आवर्तन पुनर्स्थापित करता येत नाही:संचिका वगळण्यापूर्वी पासून मिळाली नव्हती.",
        "undelete-cleanup-error": "न वापरलेली विदा संचिका \"$1\" वगळताना त्रुटी दाखवते.",
        "undelete-missing-filearchive": "संचिका विदास्मृती ID $1 पुनर्स्थापित करू शकत नाही कारण ती विदागारात उपलब्ध नाही. ती आधीच पुनर्स्थापित केली असण्याची शक्यता सुद्धा असू शकते.",
-       "undelete-error": "पान à¤ªà¥\81नरà¥\8dसà¥\8dथापनात à¤¤à¥\8dरà¥\82टी",
-       "undelete-error-short": "सà¤\82à¤\9aिà¤\95à¥\87à¤\9aà¥\87 à¤µà¤\97ळणà¥\87 à¤\89लà¤\9fवताना à¤¤à¥\8dरà¥\82टी: $1",
+       "undelete-error": "पान à¤ªà¥\81नरà¥\8dसà¥\8dथापनात à¤¤à¥\8dरà¥\81टी",
+       "undelete-error-short": "सà¤\82à¤\9aिà¤\95à¥\87à¤\9aà¥\87 à¤µà¤\97ळणà¥\87 à¤\89लà¤\9fवताना à¤¤à¥\8dरà¥\81टी: $1",
        "undelete-error-long": "संचिकेचे वगळणे उलटवताना त्रुटींचा अडथळा आला:\n\n$1",
        "undelete-show-file-confirm": "तुम्ही \"<nowiki>$1</nowiki>\" या संचिकेचे $2 येथून $3 वेळी असलेले आवर्तन नक्की पहाणार आहात?",
        "undelete-show-file-submit": "होय",
        "contributions-title": "$1 साठी सदस्य-योगदान",
        "mycontris": "योगदान",
        "contribsub2": "{{GENDER:$3|$1}} ($2) साठी",
+       "contributions-userdoesnotexist": "सदस्यखाते \"$1\"  हे नोंदलेले नाही.",
        "nocontribs": "या मानदंडाशी जुळणारे बदल सापडले नाहीत.",
        "uctop": "(सद्य)",
        "month": "या महिन्यापासून (आणि पूर्वीचे):",
        "sp-contributions-search": "योगदान शोधयंत्र",
        "sp-contributions-username": "आंतरजाल अंकपत्ता किंवा सदस्यनाम:",
        "sp-contributions-toponly": "केवळ नवीनतम आवर्तने असलेलीच संपादने दाखवा",
-       "sp-contributions-newonly": "à¤\95à¥\87वळ à¤ªà¤¾à¤¨ à¤¤à¤¯à¤¾à¤° à¤\95à¥\87लà¥\87लà¥\80 à¤¸à¤\82पादनà¥\87à¤\9a दाखवा",
+       "sp-contributions-newonly": "à¤\9cà¥\8dयानà¥\87 à¤¨à¤µà¤¿à¤¨ à¤ªà¤¾à¤¨ à¤¤à¤¯à¤¾à¤° à¤\9dालà¥\87, à¤\95à¥\87वळ à¤\85शà¥\80à¤\9a à¤¸à¤\82पादनà¥\87 दाखवा",
        "sp-contributions-submit": "शोध",
        "whatlinkshere": "येथे काय जोडले आहे",
        "whatlinkshere-title": "\"$1\" ला जुळलेली पाने",
        "nolinkshere": "'''[[:$1]]''' येथे कोणत्याही पानांचे दुवे नाहीत.",
        "nolinkshere-ns": "निवडलेल्या नामविश्वातील कोणतीही पाने <strong>[[:$1]]</strong>ला दुवा देत नाहीत .",
        "isredirect": "पुनर्निर्देशित पान",
-       "istemplate": "मिळवा",
+       "istemplate": "à¤\86à¤\82तरà¥\8dनà¥\8dयास (à¤\9fà¥\8dराà¤\82सà¤\95à¥\8dलà¥\82à¤\9cन)",
        "isimage": "संचिका दुवा",
        "whatlinkshere-prev": "{{PLURAL:$1|पूर्वीचा|पूर्वीचे $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|पुढील|पुढील $1}}",
        "blocklink": "अडवा",
        "unblocklink": "रोध हटवा",
        "change-blocklink": "रोध बदला",
-       "contribslink": "योगदान",
+       "contribslink": "योगदान",
        "emaillink": "ई-मेल पाठवा.",
        "autoblocker": "स्वयंचलित प्रतिबंधन केले गेले कारण तुमचा अंकपत्ता अलीकडे \"[[User:$1|$1]]\"ने वापरला होता. $1च्या प्रतिबंधनाकरिता दिलेले कारण \"$2\" आहे",
        "blocklogpage": "रोध नोंदी",
        "ipb-needreblock": "$1 आधीच प्रतिबंधित आहे . तुम्हाला त्याची सेटींग्स बदलण्याची इच्छा आहे का ?",
        "ipb-otherblocks-header": "{{PLURAL:$1|दुसरे प्रतिबंधन|इतर प्रतिबंधने}}",
        "unblock-hideuser": "सदस्याचे नाव हे गोपनीय असल्यामुळे हे सदस्य खाते आपण गोठवू शकत नाही",
-       "ipb_cant_unblock": "तà¥\8dरà¥\82à¤\9fà¥\80: à¤ªà¥\8dरतिबà¤\82धन à¤\95à¥\8dर.$1 à¤®à¤¿à¤³à¤¾à¤²à¤¾ नाही. त्यावरील प्रतिबंधन कदाचित आधीच उठवले असेल.",
-       "ipb_blocked_as_range": "तà¥\8dरà¥\82à¤\9fà¥\80:à¤\85à¤\82à¤\95पतà¥\8dता IP $1 à¤¹à¤¾ à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dषपणà¥\87 à¤ªà¥\8dरतिबà¤\82धित à¤\95à¥\87लà¥\87ला à¤¨à¤¾à¤¹à¥\80 à¤\86णि à¤\85पà¥\8dरतिबà¤\82धà¥\80त à¤\95रता à¤¯à¥\87त à¤¨à¤¾à¤¹à¥\80.तà¥\8b,à¤\85रà¥\8dथात,$2पलà¥\8dलà¥\8dयाà¤\9aा à¤­à¤¾à¤\97 à¤®à¥\8dहाणà¥\82न à¤¤à¥\8b à¤ªà¥\8dरतिबà¤\82धित à¤\95à¥\87लà¥\87ला à¤\86हà¥\87,à¤\9cà¥\8b à¤\95à¥\80 अप्रतिबंधीत करता येत नाही.",
+       "ipb_cant_unblock": "तà¥\8dरà¥\81à¤\9fà¥\80: à¤ªà¥\8dरतिबà¤\82धन à¤\93ळà¤\96ण $1 à¤®à¤¿à¤³à¤¾à¤²à¥\80 नाही. त्यावरील प्रतिबंधन कदाचित आधीच उठवले असेल.",
+       "ipb_blocked_as_range": "तà¥\8dरà¥\81à¤\9fà¥\80:à¤\85à¤\82à¤\95पतà¥\8dता $1 à¤¹à¤¾ à¤¥à¥\87à¤\9f à¤ªà¥\8dरतिबà¤\82धित à¤\95à¥\87लà¥\87ला à¤¨à¤¾à¤¹à¥\80 à¤\86णि (मà¥\8dहणà¥\82न à¤¤à¥\8b) à¤\85पà¥\8dरतिबà¤\82धà¥\80त à¤\95रता à¤¯à¥\87त à¤¨à¤¾à¤¹à¥\80.तà¥\8b,à¤\85रà¥\8dथातà¤\9a,$2पलà¥\8dलà¥\8dयाà¤\9aा à¤\8fà¤\95 à¤­à¤¾à¤\97 à¤®à¥\8dहणà¥\82न à¤ªà¥\8dरतिबà¤\82धित à¤\86हà¥\87,à¤\9cà¥\8b अप्रतिबंधीत करता येत नाही.",
        "ip_range_invalid": "अंकपत्ता अयोग्य टप्प्यात.",
        "ip_range_toolarge": "/$1 पेक्षा मोठ्या रेंज प्रतिबंधनाची परवानगी नाही.",
        "proxyblocker": "प्रातिनिधीक(प्रॉक्झी)प्रतिबंधक",
        "movenotallowedfile": "तुम्हाला संचिका स्थानांतरीत करण्याची परवानगी नाही.",
        "cant-move-user-page": "तुम्हाला सदस्यपान स्थानांतरीत करण्याची परवानगी नाही.(उपपानाव्यतिरिक्त)",
        "cant-move-to-user-page": "तुम्हाला एखाद्या पानास सदस्य पानांवर (सदस्य उप-पाने सोडून) घेऊन जाण्यास परवानगी नाही.",
+       "cant-move-category-page": "आपणास वर्गपाने स्थानांतराची परवानगी नाही.",
+       "cant-move-to-category-page": "आपणास एखादे पान वर्गपानात स्थानांतरणाची परवानगी नाही.",
        "newtitle": "नवीन शीर्षक:",
        "move-watch": "स्रोत पान व लक्ष  पानांवर निगराणी ठेवा",
        "movepagebtn": "स्थानांतरण करा",
        "allmessages-filter-translate": "भाषांतर करा",
        "thumbnail-more": "मोठे करा",
        "filemissing": "संचिका अस्तित्वात नाही",
-       "thumbnail_error": "नà¤\96à¥\81लà¥\87 à¤¨à¤¿à¤°à¥\8dमाणात à¤¤à¥\8dरà¥\82टी: $1",
+       "thumbnail_error": "नà¤\96à¥\81लà¥\87 à¤¨à¤¿à¤°à¥\8dमाणात à¤¤à¥\8dरà¥\81टी: $1",
        "thumbnail_error_remote": "$1 कडून त्रुटी-संदेश:$2",
        "djvu_page_error": "टप्प्याच्या बाहेरचे DjVu पान",
        "djvu_no_xml": "DjVu संचिकेकरिता XML ओढण्यात असमर्थ",
        "thumbnail-temp-create": "तात्पुरती इवलीशी संचिका बनविता आली नाही",
        "thumbnail-dest-create": "इष्टस्थळी इवलीशी संचिका जतन करता आली नाही",
        "thumbnail_invalid_params": "इवल्याशाचित्राचा अयोग्य परिचय",
+       "thumbnail_toobigimagearea": "$1 पेक्षा जास्त आकार असणारी संचिका",
        "thumbnail_dest_directory": "लक्ष्य धारिकेच्या निर्मितीस असमर्थ",
        "thumbnail_image-type": "चित्रप्रकार समर्थित नाही",
        "thumbnail_gd-library": "$1 जी.डी. ग्रंथालयाची बांधणी अपूर्ण आहे.",
        "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|निर्यात सुविधा]] वापरून स्रोत विकिकडून संचिका निर्यात करा,ती तुमच्या तबकडीवर जतन करा आणि येथे चढवा.",
        "importcantopen": "आयातीत संचिका उघडणे जमले नाही",
        "importbadinterwiki": "अयोग्य आंतरविकि दुवा",
        "importsuccess": "आयात पूर्ण झाली!",
-       "importnosources": "à¤\95à¥\8bणतà¥\87हà¥\80 à¤\86à¤\82तरविà¤\95ि à¤\86यात à¤¸à¥\8dरà¥\8bत à¤µà¥\8dयà¤\95à¥\8dत à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80त à¤\86णि à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dष à¤\87तिहास à¤\9aढवा à¤\85नà¥\81पलबà¥\8dध à¤\95à¥\87लà¥\87 à¤\86हà¥\87.",
+       "importnosources": "à¤\95à¥\8bणतà¥\87हà¥\80 à¤µà¤¿à¤\95ि à¤\9cà¥\8dयापासà¥\82न à¤\86यात à¤\95रावयाà¤\9aà¥\80 à¤¤à¥\87 à¤µà¥\8dयाà¤\96à¥\8dयिà¤\95à¥\83त à¤\95à¥\87लà¥\87लà¥\87 à¤¨à¤¾à¤¹à¥\80त à¤\86णि à¤ªà¥\8dरतà¥\8dयà¤\95à¥\8dष à¤\87तिहास à¤\85पभारणà¥\87 à¤\85à¤\95à¥\8dषम à¤\95à¥\87लà¥\80 à¤\86हà¥\87त.",
        "importnofile": "कोणतीही आयातीत संचिका चढवलेली नाही.",
        "importuploaderrorsize": "आयात संचिकेचे चढवणे फसले.संचिका चढवण्याच्या मान्यताप्राप्त आकारा पेक्षा मोठी आहे.",
        "importuploaderrorpartial": "आयात संचिकेचे चढवणे फसले.संचिका केवळ अर्धवटच चढू शकली.",
        "tooltip-pt-preferences": "तुमचा पसंतीक्रम",
        "tooltip-pt-watchlist": "तुम्ही पहारा दिलेल्या पानांची यादी",
        "tooltip-pt-mycontris": "तुमच्या योगदानांची यादी",
-       "tooltip-pt-login": "à¤\86पणाà¤\82स à¤¸à¤¦à¤¸à¥\8dयतà¥\8dव à¤\98à¥\87णà¥\8dयाà¤\9aà¥\80 à¤µà¤¿à¤¨à¤\82तà¥\80 à¤\95रणà¥\8dयात à¤¯à¥\87त à¤\86हà¥\87. à¤¸à¤¦à¤¸à¥\8dयतà¥\8dव à¤\98à¥\87णे अनिवार्य नाही.",
+       "tooltip-pt-login": "à¤\86पणाà¤\82स à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शासाठà¥\80 à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रणà¥\8dयात à¤¯à¥\87त à¤\86हà¥\87;à¤\85रà¥\8dथातà¤\9a, à¤¤े अनिवार्य नाही.",
        "tooltip-pt-logout": "सनोंद निर्गम",
-       "tooltip-pt-createaccount": "à¤\86मà¥\8dहà¥\80 à¤\86पणास à¤\96ातà¥\87 à¤\89à¤\98डà¥\82न à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शास à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रत à¤\86हà¥\87;पण à¤¤à¥\87 à¤\85तà¥\8dयावशà¥\8dयà¤\95 नाही.",
-       "tooltip-ca-talk": "à¤\86शय à¤ªà¤¾à¤¨à¤¾à¤¬à¤¦à¥\8dदलà¤\9aà¥\8dया चर्चा",
+       "tooltip-pt-createaccount": "à¤\86मà¥\8dहà¥\80 à¤\86पणास à¤\96ातà¥\87 à¤\89à¤\98डà¥\82न à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87शास à¤ªà¥\8dरà¥\8bतà¥\8dसाहà¥\80त à¤\95रत à¤\86हà¥\87;à¤\85रà¥\8dथातà¤\9a, à¤¤à¥\87 à¤\85निवारà¥\8dय नाही.",
+       "tooltip-ca-talk": "à¤\86शय à¤ªà¤¾à¤¨à¤¾à¤¬à¤¦à¥\8dदलà¤\9aà¥\80 चर्चा",
        "tooltip-ca-edit": "या पानाचे संपादन करा",
        "tooltip-ca-addsection": "नवीन विभाग सुरू करा",
        "tooltip-ca-viewsource": "हे पान सुरक्षित आहे. तुम्ही याचा स्रोत पाहू शकता.",
        "tooltip-ca-watch": "हे पान तुमच्या पहाऱ्याच्या सूचीमध्ये टाका",
        "tooltip-ca-unwatch": "हे पान पहाऱ्याच्या सूचीतून काढा.",
        "tooltip-search": "{{SITENAME}} शोधा",
-       "tooltip-search-go": "नà¥\87मà¤\95à¥\8dया à¤¯à¤¾à¤\9a à¤¨à¤¾à¤µà¤¾à¤\9aà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\95डà¥\87,तà¥\87 à¤\85सà¥\8dतितà¥\8dवात à¤\85सलà¥\8dयास, à¤\9aला",
+       "tooltip-search-go": "तà¥\87 à¤\85सà¥\8dतितà¥\8dवात à¤\85सलà¥\8dयास,नà¥\87मà¤\95à¥\8dया à¤¯à¤¾à¤\9a à¤¨à¤¾à¤µà¤¾à¤\9aà¥\8dया à¤ªà¤¾à¤¨à¤¾à¤\95डà¥\87 à¤\9cा",
        "tooltip-search-fulltext": "या मजकुराकरिता पान शोधा",
-       "tooltip-p-logo": "मुखपृष्ठ",
+       "tooltip-p-logo": "मुखपृष्ठाला भेट द्या",
        "tooltip-n-mainpage": "मुखपृष्ठाला भेट द्या",
        "tooltip-n-mainpage-description": "मुखपृष्ठाला भेट द्या",
-       "tooltip-n-portal": "प्रकल्पाबद्दल, तुम्ही काय करू शकता, कुठे काय सापडेल",
+       "tooltip-n-portal": "प्रकल्पाबद्दलची माहिती, तुम्ही काय करू शकता, कुठे काय सापडेल",
        "tooltip-n-currentevents": "सद्य घटनांबद्दलची माहिती",
        "tooltip-n-recentchanges": "विकिवरील अलीकडील बदलांची यादी",
        "tooltip-n-randompage": "कोणतेही अविशिष्ट पान पाहा",
        "tooltip-t-whatlinkshere": "येथे जोडलेल्या सर्व विकिपानांची यादी",
        "tooltip-t-recentchangeslinked": "या पानास जोडलेल्या सर्व पानांवरील अलीकडील बदल",
        "tooltip-feed-rss": "या पानाकरिता आर.एस.एस. रसद",
-       "tooltip-feed-atom": "या à¤ªà¤¾à¤¨à¤¾à¤\95रिता à¤\8dटम रसद",
+       "tooltip-feed-atom": "या à¤ªà¤¾à¤¨à¤¾à¤\95रिता à¤\85à¥\85टम रसद",
        "tooltip-t-contributions": "या सदस्याच्या योगदानांची यादी पहा",
        "tooltip-t-emailuser": "या सदस्याला ई-मेल पाठवा",
        "tooltip-t-info": "या पानाबाबत अधिक माहिती",
        "patrol-log-header": "ही पाहणीनंतरच्या निरीक्षणाची नोंद आहे.",
        "log-show-hide-patrol": "$1 गस्तीची नोंद",
        "deletedrevision": "जुनी आवृत्ती ($1) वगळली.",
-       "filedeleteerror-short": "सà¤\82à¤\9aिà¤\95ा à¤µà¤\97ळताना à¤¤à¥\8dरà¥\82टी: $1",
+       "filedeleteerror-short": "सà¤\82à¤\9aिà¤\95ा à¤µà¤\97ळताना à¤¤à¥\8dरà¥\81टी: $1",
        "filedeleteerror-long": "संचिका वगळताना त्रुटी आढळल्या:\n\n$1",
        "filedelete-missing": "संचिका \"$1\" वगळता येत नाही, कारण ती अस्तित्वात नाही.",
        "filedelete-old-unregistered": "निर्देशीत संचिका आवर्तन \"$1\" विदागारात नाही.",
        "svg-long-desc-animated": "सामान्यतः $1 × $2 पिक्सेलची असलेली संजीवक एसव्हीजी संचिका, संचिका-आकार: $3",
        "svg-long-error": "अयोग्य SVG प्रकारातील संचिका: $1",
        "show-big-image": "मूळ संचिका",
-       "show-big-image-preview": "या झलकेचा आकार: $1. पिक्सेल",
+       "show-big-image-preview": "या झलकेचा आकार: $1 पिक्सेल.",
        "show-big-image-other": "इतर {{PLURAL:$2|resolution|resolutions}}: $1.",
        "show-big-image-size": "$1 × $2 पिक्सेल",
        "file-info-gif-looped": "विळख्यात सापडलेले",
        "newimages-summary": "हे विशेष पान शेवटी चढविलेल्या संचिका दर्शविते.",
        "newimages-legend": "गाळक",
        "newimages-label": "संचिकानाम (किंवा त्याचा भाग):",
+       "newimages-showbots": "सांगकाम्याद्वारे केलेली अपभारणे दाखवा",
        "noimages": "बघण्यासारखे येथे काही नाही.",
        "ilsubmit": "शोधा",
        "bydate": "तारखेनुसार",
        "metadata-help": "या संचिकेत जास्तीची माहिती आहे. बहुधा ही संचिका बनवताना वापरलेल्या कॅमेरा किंवा स्कॅनर कडून ही माहिती जमा झाली आहे. जर या संचिकेत निर्मितीपश्चात बदल करण्यात आले असतील, तर कदाचित काही माहिती नवीन संचिकेशी पूर्णपणे जुळणार नाही.",
        "metadata-expand": "जास्तीची माहिती दाखवा",
        "metadata-collapse": "जास्तीची माहिती लपवा",
-       "metadata-fields": "या à¤¸à¤\82दà¥\87शाà¤\9aà¥\8dया à¤¯à¤¾à¤¦à¥\80तà¥\80ल à¤\9aितà¥\8dर à¤®à¥\87à¤\9fाडाà¤\9fा à¤\95à¥\8dषà¥\87तà¥\8dराà¤\82à¤\9aा à¤\85à¤\82तरà¥\8dभाव à¤\9aितà¥\8dर à¤ªà¤¾à¤¨ à¤¦à¤°à¥\8dशनात à¤¹à¥\8bà¤\88ल, à¤\9cà¥\87à¤\82वà¥\8dहा à¤®à¥\87à¤\9fाडाà¤\9fा à¤¤à¤\95à¥\8dता à¤¨à¤¿à¤ªà¤¤à¤¨ à¤¸à¥\8dथितà¥\80त à¤\85सà¥\87ल. à¤¬à¤¾à¤\95à¥\80à¤\9aà¥\80 à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤\9dाà¤\95लà¥\87लà¥\80 à¤°à¤¾à¤¹à¥\80ल.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "या à¤¸à¤\82दà¥\87शाà¤\9aà¥\8dया à¤¯à¤¾à¤¦à¥\80तà¥\80ल à¤\9aितà¥\8dर à¤®à¥\87à¤\9fाडाà¤\9fा à¤\95à¥\8dषà¥\87तà¥\8dराà¤\82à¤\9aा à¤\85à¤\82तरà¥\8dभाव à¤\9aितà¥\8dर à¤ªà¤¾à¤¨ à¤¦à¤°à¥\8dशविणà¥\8dयात à¤¹à¥\8bà¤\88ल, à¤\9cà¥\87à¤\82वà¥\8dहा à¤®à¥\87à¤\9fाडाà¤\9fा à¤¤à¤\95à¥\8dता à¤¨à¤¿à¤ªà¤¤à¤¨ à¤¸à¥\8dथितà¥\80त à¤\85सà¥\87ल. à¤\87तर à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 à¤\85विà¤\9aलरितà¥\8dया à¤²à¤ªà¤µà¤¿à¤²à¥\87लà¥\80 à¤°à¤¾à¤¹à¥\80ल.\n* à¤\89तà¥\8dपादन(मà¥\87à¤\95)\n* à¤®à¥\89डà¥\87ल\n* à¤®à¥\82ळदिनाà¤\82à¤\95वà¥\87ळ\n* à¤\85नावà¥\83तà¥\8dतà¥\80वà¥\87ळ(à¤\8fà¤\95à¥\8dसà¥\8dपà¥\8bà¤\9cरà¤\9fाà¤\88म)\n* à¤\86यà¤\8fसà¤\93à¤\97तà¥\80निरà¥\8dधारण(à¤\86यà¤\8fसà¤\93सà¥\8dपà¥\80डरà¥\87à¤\9fिà¤\82à¤\97à¥\8dà¤\9c)\n* à¤\95à¥\87à¤\82दà¥\8dरवरà¥\8dतà¥\80लाà¤\82बà¥\80(फà¥\8bà¤\95ललà¥\87à¤\82à¤\97à¥\8dथ)\n* à¤\95लाà¤\95ार\n* à¤ªà¥\8dरताधिà¤\95ार\n* à¤\9aितà¥\8dरवरà¥\8dणन\n* à¤\9cà¥\80पà¥\80à¤\8fसà¤\85à¤\95à¥\8dषाà¤\82श\n* à¤\9cà¥\80पà¥\80à¤\8fसरà¥\87à¤\96ाà¤\82श\n* à¤\9cà¥\80पà¥\80à¤\8fसà¤\89नà¥\8dनतन",
        "exif-imagewidth": "रूंदी",
        "exif-imagelength": "उंची",
        "exif-bitspersample": "प्रती घटक बीट्स",
        "exif-imagedescription": "चित्र शीर्षक",
        "exif-make": "कॅमेरा उत्पादक",
        "exif-model": "कॅमेरा उपकरण",
-       "exif-software": "वापरलà¥\87लà¥\80 à¤¸à¤\82à¤\97णन à¤\85ज्ञावली",
+       "exif-software": "वापरलà¥\87लà¥\80 à¤¸à¤\82à¤\97णन à¤\86ज्ञावली",
        "exif-artist": "लेखक",
        "exif-copyright": "प्रताधिकार धारक",
        "exif-exifversion": "Exif आवृत्ती",
        "watchlistedit-clear-legend": "निरीक्षणसूची साफ करा",
        "watchlistedit-clear-explain": "आपल्या ननिरीक्षणसूचीतील सर्व शिर्षक हटविल्या जातील.",
        "watchlistedit-clear-titles": "शिर्षके:",
+       "watchlistedit-clear-submit": "निरीक्षणसूची साफ करा(हे कायमस्वरुपी आहे!)",
+       "watchlistedit-clear-done": "तुमची पहाऱ्याची सूची स्वच्छ करण्यात आली आहे.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|१ शीर्षक हटविल्या गेले|$1 शीर्षके हटविल्या गेलीत}}:",
+       "watchlistedit-too-many": "येथे दर्शविण्यासाठी खूप सारी पाने आहेत.",
        "watchlisttools-clear": "निरीक्षणसूची साफ करा",
        "watchlisttools-view": "संबंधित बदल पहा",
        "watchlisttools-edit": "पहाऱ्याची  सूची पहा आणि संपादित करा",
        "tags-deactivate": "निष्क्रिय करा",
        "tags-hitcount": "$1 {{PLURAL:$1|बदल|बदल}}",
        "tags-create-heading": "नवीन बिल्ला तयार करा",
+       "tags-create-tag-name": "खूणपताकेचे नाव:",
        "tags-create-reason": "कारण:",
        "tags-create-submit": "निर्मित करा",
+       "tags-create-no-name": "आपण खूणपताकेचे नाव नमूद करावयास हवे.",
+       "tags-create-already-exists": "\"$1\" ही खूणपताका अगोदरच अस्तित्वात आहे.",
+       "tags-delete-title": "खूणपताका वगळा",
        "tags-delete-reason": "कारण:",
+       "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-activate-submit": "सक्रीय करा",
+       "tags-deactivate-title": "खूणपताका अक्रिय करा",
+       "tags-deactivate-question": "आपण \"$1\" खूणपताकेस अक्रिय करण्याच्या बेतात आहात.",
        "tags-deactivate-reason": "कारण:",
+       "tags-deactivate-not-allowed": "\"$1\" खूणपताकेस अक्रिय करणे शक्य नाही.",
        "tags-deactivate-submit": "निष्क्रिय करा",
        "tags-edit-reason": "कारण:",
+       "tags-edit-none-selected": "जोडण्यास किंवा हटविण्यास किमान एक खूणपताका निवडा.",
        "comparepages": "पानांची तुलना करा",
        "compare-page1": "पान १",
        "compare-page2": "पान २",
        "compare-revision-not-exists": "आपण नमूद करत असलेली आवृत्ती अस्तित्वात नाही.",
        "dberr-problems": "माफ करा, हे संकेतस्थळ सध्या तांत्रिक अडचणींना सामोरे जात आहे.",
        "dberr-again": "थोडा वेळ थांबून पुन्हा पहा.",
-       "dberr-info": "( विदादाताशी संपर्क साधण्यात  असमर्थ : $1)",
-       "dberr-info-hidden": "( विदादात्याशी संपर्क साधण्यात  असमर्थ)",
+       "dberr-info": "(विदादातापर्यंत पोहोचण्यास असमर्थ: $1)",
+       "dberr-info-hidden": "(विदादातापर्यंत पोहोचण्यास असमर्थ)",
        "dberr-usegoogle": "तोपर्यंत गूगलवर शोधून पहा",
        "dberr-outofdate": "लक्षात घ्या, आमच्या मजकुराबाबत त्यांची सूची कालबाह्य असू शकते",
        "dberr-cachederror": "ही मागवलेल्या पानाची सयीतील प्रत आहे, ती अद्ययावत नसण्याची शक्यता आहे.",
        "htmlform-cloner-create": "अधिक जोडा",
        "htmlform-cloner-delete": "हटवा",
        "htmlform-cloner-required": "किमान एक किंमत हवी",
+       "htmlform-title-badnamespace": "[[:$1]] हे \"{{ns:$2}}\" नामविश्वात नाही.",
+       "htmlform-title-not-creatable": "\"$1\" हे पान तयार करण्यासाठीचे शीर्षक नाही",
        "htmlform-title-not-exists": "$1 अस्तीत्वात नाही.",
        "htmlform-user-not-exists": "<strong>$1</strong> अस्तीत्वात नाही.",
        "htmlform-user-not-valid": "<strong>$1</strong> हे वैध सदस्यनाम नाही.",
        "revdelete-uname-unhid": "सदस्यनाम लपवलेले नाही",
        "revdelete-restricted": "प्रबंधकांना बंधने दिली",
        "revdelete-unrestricted": "प्रबंधकांची बंधने काढली",
+       "logentry-block-block": "$1ने {{GENDER:$4|$3}} ला,$5 $6 या निवृत्तीवेळेपर्यंत   {{GENDER:$2|प्रतिबंधित केले}}",
+       "logentry-block-unblock": "$1 ने {{GENDER:$4|$3}} {{GENDER:$2|वरील प्रतिबंध हटविला}}",
+       "logentry-block-reblock": "$1 ने {{GENDER:$4|$3}}च्या प्रतिबंध मांडण्या $5 $6 या निवृत्तीवेळेसह {{GENDER:$2|बदलविल्यात}}",
+       "logentry-suppress-block": "$1 ने {{GENDER:$4|$3}}ला $5 $6 या निवृत्तीवेळेसह {{GENDER:$2|प्रतिबंधित केले}}",
+       "logentry-suppress-reblock": "$1 ने {{GENDER:$4|$3}}च्या प्रतिबंध मांडण्या $5 $6 या निवृत्तीवेळेसह {{GENDER:$2|बदलविल्यात}}",
+       "logentry-import-upload": "$1 ने संचिका अपभारणाद्वारे $3 ला {{GENDER:$2|आयात केले}}",
+       "logentry-import-interwiki": "$1 ने दुसऱ्या विकिमधून $3 ला {{GENDER:$2|आयात केले}}",
+       "logentry-merge-merge": "$1 ने $3 ला $4 मध्ये {{GENDER:$2|विलीन केले}}(आवृत्त्या $5 पर्यंत)",
        "logentry-move-move": "$1 ने लेख $3 वरुन $4 ला {{GENDER:$2|हलविला}}",
        "logentry-move-move-noredirect": "$1 ने मागे पुनर्निर्देशन न ठेवता लेख $3 वरुन $4 ला {{GENDER:$2|हलविला}}",
        "logentry-move-move_redir": "$1 ने पुनर्निर्देशन ठेउन लेख $3 वरुन $4 ला {{GENDER:$2|हलविला}}",
        "logentry-newusers-create2": "$3 हे सदस्यखाते $1 द्वारा {{GENDER:$2|तयार केल्या गेले}}",
        "logentry-newusers-byemail": "$3 हे सदस्यखाते $1 द्वारा {{GENDER:$2|तयार केल्या गेले}} व त्याचा परवलीचा शब्द विपत्राद्वारे पाठविल्या गेला",
        "logentry-newusers-autocreate": "सदस्यखाते $1 स्वयंचलितरित्या {{GENDER:$2|तयार झाले}}",
+       "logentry-protect-move_prot": "$1 ने सुरक्षा मांडणी $4 वरुन $3 ला {{GENDER:$2|हलविली}}",
+       "logentry-protect-unprotect": "$1 ने $3 ची सुरक्षा {{GENDER:$2|हटविली}}",
+       "logentry-protect-protect": "$1 ने $3 $4 ला {{GENDER:$2|सुरक्षित केले}}",
+       "logentry-protect-protect-cascade": "$1 ने $3 $4 [निपतन]ला {{GENDER:$2|सुरक्षित केले}}",
+       "logentry-protect-modify": "$1 ने $3 $4 ची  सुरक्षा पातळी {{GENDER:$2|बदलली}}",
+       "logentry-protect-modify-cascade": "$1 ने $3 $4 [निपतन]ची  सुरक्षा पातळी {{GENDER:$2|बदलली}}",
        "logentry-rights-rights": "$1 ने $3 साठी $4 वरुन $5 ला गट सदस्यता{{GENDER:$2|बदलली}}",
        "logentry-rights-rights-legacy": "$1 ने $3 साठी गट सदस्यता {{GENDER:$2|बदलली}}",
        "logentry-rights-autopromote": "$1 ला स्वयंचलितरित्या $4 वरुन $5 ला {{GENDER:$2|बढती दिल्या गेली}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|अपभारीत केली}} $3",
        "logentry-upload-overwrite": "$1 ने  $3 ची एक नविन आवृत्ती {{GENDER:$2|अपभारीत केली}}",
+       "logentry-upload-revert": "$1 ने $3 ला {{GENDER:$2|अपभारीत केले}}",
+       "log-name-managetags": "खूणपताका व्यवस्थापन नोंदी",
+       "logentry-managetags-create": "$1 ने \"$4\" ही खूणपताका {{GENDER:$2|तयार केली}}",
+       "logentry-managetags-activate": "$1 ने  \"$4\" ही खूणपताका, सदस्यांसाठी व सांगकाम्यांसाठी {{GENDER:$2|सक्रिय केली}}",
+       "logentry-managetags-deactivate": "$1 ने  \"$4\" ही खूणपताका, सदस्यांसाठी व सांगकाम्यांसाठी {{GENDER:$2|अक्रिय केली}}",
        "log-name-tag": "खूणपताका नोंदी",
        "rightsnone": "(काहीही नाही)",
        "revdelete-summary": "संपादन माहिती",
        "feedback-bugornote": "जर आपण तांत्रिक प्रश्न  विस्तृतपणे मांडण्यास तयार असाल तर कृपया [$1 गणकदोष वृतांत] पाठवा. नपेक्षा, खाली देण्यात आलेले सोपे आवेदनपत्र वापरा. आपली टिप्पणी \"[$3 $2]\" या पानास आपले सदस्यनाव व आपण कोणता ब्राउजर वापरता यासह जोडण्यात येईल.",
        "feedback-cancel": "रद्द करा",
        "feedback-close": "झाले",
+       "feedback-dialog-title": "प्रतिक्रिया सादर करा",
        "feedback-error-title": "चूक",
        "feedback-error1": "चूक: API कडून अनोळखी परिणाम",
        "feedback-error2": "त्रुटी: संपादन रद्द",
        "feedback-message": "संदेश:",
        "feedback-subject": "विषय:",
        "feedback-submit": "सादर करा",
+       "feedback-termsofuse": "मी वापरण्याच्या अटींनुसार प्रतिक्रिया पुरविण्याचे मान्य करतो.",
        "feedback-thanks": " \"[$2 $1]\" या पानात आपला पश्चप्रदाय (फिडबॅक) टाकत आहोत.",
        "feedback-thanks-title": "आपणास धन्यवाद!",
        "feedback-useragent": "सदस्य प्रतिनीधी:",
        "api-error-ok-but-empty": "आंतरिक त्रुटी : विदादाता प्रतिक्रिया देत नहीं",
        "api-error-overwrite": "अस्तित्वात असलेल्या संचिकेवर पुनर्लेखन प्रतिबंधित आहे.",
        "api-error-stashfailed": "इन्तरिक त्रुटी : विदादाता तात्पुरत्या स्वरूपाच्या संचिका जमा करण्यात अयशस्वी",
-       "api-error-publishfailed": "à¤\85à¤\82तरà¥\8dà¤\97त à¤¤à¥\8dरà¥\82टी:विदादात्यास, या तात्पुरत्या संचिकेच्या प्रकाशनास अपयश आले.",
-       "api-error-stasherror": "सà¥\8dà¤\9fà¥\85à¤\9aला à¤¹à¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤\85पभारणात à¤¤à¥\8dरà¥\82टी आली.",
+       "api-error-publishfailed": "à¤\85à¤\82तरà¥\8dà¤\97त à¤¤à¥\8dरà¥\81टी:विदादात्यास, या तात्पुरत्या संचिकेच्या प्रकाशनास अपयश आले.",
+       "api-error-stasherror": "सà¥\8dà¤\9fà¥\85à¤\9aमधà¥\8dयà¥\87 à¤¹à¥\80 à¤¸à¤\82à¤\9aिà¤\95ा à¤\85पभारणात à¤¤à¥\8dरà¥\81टी आली.",
        "api-error-timeout": "अपेक्षित वेळेत विदागार (server)ने प्रतिसाद दिला नाही.",
        "api-error-unclassified": "एक अज्ञात चूक उद्भवली.",
        "api-error-unknown-code": "अज्ञात त्रुटी: \"$1\"",
        "right-pagelang": "पानाची भाषा बदला",
        "action-pagelang": "पानाची असलेली भाषा बदला",
        "log-name-pagelang": "भाषा बदल नोंदवही",
+       "log-description-pagelang": "या पानातील भाषाबदलाच्या नोंदी आहेत.",
+       "logentry-pagelang-pagelang": "$1 ने $3 करीता पानाची भाषा $4 वरुन $5 ला {{GENDER:$2|बदलली}}",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (सक्षम केला)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''अक्षम केला''')",
        "mediastatistics": "माध्यम सांख्यिकी",
        "mediastatistics-table-extensions": "शक्य विस्तारके",
        "mediastatistics-table-count": "संचिकांची संख्या",
        "mediastatistics-table-totalbytes": "एकत्रित आकार",
        "mediastatistics-header-unknown": "अनोळखी",
        "mediastatistics-header-office": "कार्यालय",
+       "json-error-syntax": "वाक्यरचना त्रुटी",
+       "headline-anchor-title": "या विभागाचा दुवा",
        "special-characters-group-latin": "लॅटीन",
        "special-characters-group-latinextended": "विस्तारीत लॅटीन भाषा",
        "special-characters-group-ipa": "आंतरराष्ट्रीय उच्चारानुरूप अक्षरपद्धती",
index 0145d54..8d21fde 100644 (file)
        "unwatch": "Ahtictlachiyāz",
        "watchlist-details": "{{PLURAL:$1|$1 zāzanilli|$1 zāzaniltin}} motlachiyaliz, ahmo mopōhua tēixnāmiquiliztli.",
        "wlshowlast": "Tiquinttāz tlapatlaliztli īhuīcpa achto $1 yēmpohualminuhtli, $2 tōnaltin",
+       "watchlistall2": "mochīntīn",
        "watching": "Tlachiyacah...",
        "unwatching": "Ahtlachiyacah...",
        "enotif_impersonal_salutation": "tlatequitiltilīlli īpan {{SITENAME}}",
index 8b64c8f..c9e0b32 100644 (file)
@@ -11,7 +11,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Candalua",
-                       "Macofe"
+                       "Macofe",
+                       "V6rg"
                ]
        },
        "tog-underline": "Sottolinia 'e jonte:",
        "printableversion": "Verzione pe' stampa",
        "permalink": "Jonta permanente",
        "print": "Stampà",
-       "view": "Vere",
+       "view": "Vire",
        "view-foreign": "Vide ncopp'a $1",
        "edit": "Càgna",
        "edit-local": "Càgna descrizione lucale",
        "editold": "càgna",
        "viewsourceold": "vere sorgente",
        "editlink": "càgna",
-       "viewsourcelink": "Vere sorgente",
+       "viewsourcelink": "Vire sorgente",
        "editsectionhint": "Modifica a sezzione $1",
        "toc": "Énnece",
        "showtoc": "faje vedé",
        "watchthis": "Tiene d'uocchio chesta paggena",
        "savearticle": "Sarva 'a paggena",
        "preview": "Anteprimma",
-       "showpreview": "Vere anteprimma",
+       "showpreview": "Vire anteprimma",
        "showdiff": "Fa veré 'e cagnamiente",
        "blankarticle": "<strong>Attenziò:</strong> 'a paggena ca staje crianno è abbacante.\nFà click ncopp'a \"{{int:savearticle}}\" n'ata vota, 'a paggena sarrà criata senza cuntenute.",
        "anoneditwarning": "'''Attenzione:''' Nun avite fatto l'acciesso. 'A cronologgia d' 'a vosta sarrà visibbele pubbrecamente si facite cocche cagnamiento. Si <strong>[$1 tràse]</strong> o <strong>[$2 crìe nu cunto]</strong>, 'e cagnamiente vuoste ve sarranno attribbuite a vvuje, nzieme a n'ati migliuramente.",
        "listgrouprights-addgroup-self-all": "Miette tutt' 'e gruppe ncopp' 'o cunto d' 'o mio",
        "listgrouprights-removegroup-self-all": "Lèva tutt' 'e gruppe 'a 'o cunto utente d' 'o mio",
        "listgrouprights-namespaceprotection-header": "Restriziune d' 'o namespace",
-       "listgrouprights-namespaceprotection-namespace": "Namespace",
+       "listgrouprights-namespaceprotection-namespace": "نؤمفضا",
        "listgrouprights-namespaceprotection-restrictedto": "Diritto 'e cagnamiento 'e l'utente",
        "trackingcategories": "Categurìe 'e cuntrollo",
        "trackingcategories-summary": "Sta paggena elenca 'e categurìe ca stann'automaticamente popolate 'a 'o software Mediawiki. 'E nomme 'e lloro se ponno cagnà quanno se cagnano 'e relative mmasciate 'e sistema dint' 'o namespace {{ns:8}}.",
        "wlheader-showupdated": "* 'E paggene cca so' state cagnate a l'urdema visita avevano so' nzignate ccà 'n '''grassetto'''.",
        "wlnote": "Ccà abbascio {{PLURAL:$1|è elencato 'o cagnamiento cchiù ricente|songo elencate 'e <strong>$1</strong> cagnamiente cchiù recente}} {{PLURAL:$2|int'a ll'urdema ora|int' 'e ll'urdeme <strong>$2</strong> ore}}; 'e date songo agghiurnate 'o $3, $4.",
        "wlshowlast": "Mmusta ll'urdeme $1 ore $2 ghiuorne",
+       "watchlistall2": "tuttuquante",
+       "watchlist-hide": "Annascunne",
+       "wlshowtime": "Mmusta ll'urdeme:",
+       "wlshowhideminor": "cagnamiente piccerille",
+       "wlshowhidebots": "bot",
+       "wlshowhideliu": "utente riggistrate",
+       "wlshowhideanons": "utente anonime",
+       "wlshowhidepatr": "cagnamiente cuntrullate",
+       "wlshowhidemine": "cagnamiente d' 'e mieie",
        "watchlist-options": "Opziune 'a l'elenco 'e paggene cuntrullate",
        "watching": "Cuntrullanno...",
        "unwatching": "Lassanno 'e cuntrullà...",
        "undelete-nodiff": "Nun s'è truvata nisciuna verzione 'e primma.",
        "undeletebtn": "Arrepiglia",
        "undeletelink": "vide/arrepiglia",
-       "undeleteviewlink": "vere",
+       "undeleteviewlink": "vire",
        "undeleteinvert": "Abbarruca 'a sceveta",
        "undeletecomment": "Mutivo:",
        "undeletedrevisions": "{{PLURAL:$1|1 verzione|$1 verziune}} arrepigliate",
        "undelete-error-long": "Errore pe' tramente ca s'arrepigliava na paggena:\n\n$1",
        "undelete-show-file-confirm": "Site sicuro/a ca vulite veré 'a verziona scancellata d' 'o file \"<nowiki>$1</nowiki>\" d' 'o $2 a 'e $3?",
        "undelete-show-file-submit": "Sì",
-       "namespace": "Namespace:",
+       "namespace": "نؤمفضا:",
        "invert": "abbarruca 'a sceveta",
        "tooltip-invert": "Nzegna sta casciulella p'annaconnere 'e cagnamiente a 'e paggene ca stanno dint' 'o namespace c'avite scigliuto (e 'o namespace stesso si l'avite scigliuto)",
        "tooltip-whatlinkshere-invert": "Nzignate sta casciulella pe' putè annaconnere 'e link 'e paggene dint' 'o namespace scigliuto.",
index fcfd56d..5444583 100644 (file)
        "backend-fail-opentemp": "Kunne ikke åpne den midlertidige filen.",
        "backend-fail-writetemp": "Kunne ikke skrive til den midlertidige filen.",
        "backend-fail-closetemp": "Kunne ikke lukke den midlertidige filen.",
-       "backend-fail-read": "Kunne ikke lese filen $1.",
+       "backend-fail-read": "Klarte ikke lese filen $1.",
        "backend-fail-create": "Kunne ikke opprette filen $1.",
        "backend-fail-maxsize": "Kunne ikke skrive filen $1 fordi den er større enn {{PLURAL:$2|én byte|$2 bytes}}.",
        "backend-fail-readonly": "Underliggende \"$1\" er satt skrivebeskyttet fordi: \"$2\"",
        "lockmanager-fail-releaselock": "Kunne ikke frigi låsen for «$1».",
        "lockmanager-fail-db-bucket": "Kunne ikke kontakte nok låsedatabaser i bøtten $1.",
        "lockmanager-fail-db-release": "Kunne ikke frigi låser på databasen $1.",
-       "lockmanager-fail-svr-acquire": "Kunne ikke hente lås på server $1.",
+       "lockmanager-fail-svr-acquire": "Klarte ikke å hente lås på server $1.",
        "lockmanager-fail-svr-release": "Kunne ikke frigi låser på tjeneren $1.",
        "zip-file-open-error": "Det oppsto en feil under åpning av filen for ZIP-sjekking.",
        "zip-wrong-format": "Den angitte filen var ikke en ZIP-fil.",
        "http-timed-out": "Tidsavbrudd på HTTP-forespørsel.",
        "http-curl-error": "Feil under henting av adresse: $1",
        "http-bad-status": "Det var et problem under HTTP-forespørselen: $1 $2",
-       "upload-curl-error6": "Kunne ikke nå adressen",
+       "upload-curl-error6": "Klarte ikke nå adressen",
        "upload-curl-error6-text": "Adressen kunne ikke nås. Vennligst dobbelsjekk at adressen er korrekt og at siden er oppe.",
        "upload-curl-error28": "Opplastingstimeout",
        "upload-curl-error28-text": "Siden brukte for lang tid på å reagere. Vennligst sjekk at siden er oppe, og vent en kort stund for du prøver igjen. Vurder å prøve på en mindre hektisk tid.",
        "wlheader-showupdated": "Sider som har blitt endret siden du besøkte dem sist vises med '''fet skrift'''.",
        "wlnote": "Nedenfor er {{PLURAL:$1|den siste endringen|de siste <strong>$1</strong> endringene}} {{PLURAL:$2|den siste timen|de siste <strong>$2</strong> timene}}, per $3 kl. $4",
        "wlshowlast": "Vis siste $1 timer $2 dager",
+       "watchlistall2": "alle",
        "watchlist-options": "Alternativ for overvåkningslisten",
        "watching": "Overvåker…",
        "unwatching": "Fjerner fra overvåkningsliste…",
        "mw-widgets-dateinput-no-date": "Ingen dato valgt",
        "mw-widgets-dateinput-placeholder-day": "ÅÅÅÅ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "ÅÅÅÅ-MM",
-       "mw-widgets-titleinput-description-new-page": "side eksisterer ikke enda",
+       "mw-widgets-titleinput-description-new-page": "siden eksisterer ikke enda",
        "mw-widgets-titleinput-description-redirect": "omdiriger til $1",
        "api-error-blacklisted": "Vennligst velg en annen beskrivende tittel."
 }
index ba141d5..cfc47b8 100644 (file)
        "rcshowhidemine": "mijn bewerkingen $1",
        "rcshowhidemine-show": "weergeven",
        "rcshowhidemine-hide": "verbergen",
-       "rcshowhidecategorization": "Paginacategorisatie $1",
+       "rcshowhidecategorization": "paginacategorisatie $1",
        "rcshowhidecategorization-show": "weergeven",
        "rcshowhidecategorization-hide": "verbergen",
        "rclinks": "De $1 laatste wijzigingen bekijken in de laatste $2 dagen<br />$3",
        "wlheader-showupdated": "Pagina's die zijn bewerkt sinds uw laatste bezoek worden '''vet''' weergegeven.",
        "wlnote": "Hieronder {{PLURAL:$1|staat de laaste wijziging|staan de laatste $1 wijzigingen}} in {{PLURAL:$2|het laatste uur|de laatste $2 uur}} per $3 om $4.",
        "wlshowlast": "Laatste $1 uur, $2 dagen bekijken",
+       "watchlistall2": "alles",
+       "wlshowtime": "Tijdspanne:",
+       "wlshowhideminor": "kleine bewerkingen",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "geregistreerde gebruikers",
+       "wlshowhideanons": "anonieme gebruikers",
+       "wlshowhidepatr": "gecontroleerde bewerkingen",
+       "wlshowhidemine": "mijn bewerkingen",
        "watchlist-options": "Opties voor volglijst",
        "watching": "Bezig met plaatsen op volglijst…",
        "unwatching": "Bezig met verwijderen van volglijst…",
index 5e52ab6..039611a 100644 (file)
        "wlheader-showupdated": "Sider som har vorte endra sidan du sist såg på dei er '''utheva'''",
        "wlnote": "Nedanfor er {{PLURAL:$1|den siste endringa|dei siste '''$1''' endringane}} {{PLURAL:$2|den siste timen|dei siste '''$2''' timane}}, for $3, kl. $4.",
        "wlshowlast": "Vis siste $1 timane $2 dagane",
+       "watchlistall2": "alle",
        "watchlist-options": "Alternativ for overvakingslista",
        "watching": "Overvakar...",
        "unwatching": "Fjernar frå overvakinglista...",
index e7b51d8..df659a5 100644 (file)
@@ -11,6 +11,7 @@
        "tog-hideminor": "Peitä pienet muutokset uuvet muutokset -listaspäi",
        "tog-hidepatrolled": "Peitä tarkastetut muutokset uvvet muutokset -listaspäi",
        "tog-newpageshidepatrolled": "Peitä tarkastetut sivut uuzien sivuloin listalpäi",
+       "tog-hidecategorization": "Peitä sivuloin kategourizacii",
        "tog-extendwatchlist": "Levitä valvonduluvettelo ku ozuttua kai muutokset, ei vaiku jälgimäzii",
        "tog-numberheadings": "Automuattizesti numeroija kirjutuksien nimet",
        "tog-showtoolbar": "Ozuta ruadovälinehpalki",
@@ -39,6 +40,7 @@
        "tog-watchlisthideliu": "Peitä kirjutannuhuoloin käyttäjien kohendukset valvondulistalpäi",
        "tog-watchlisthideanons": "Peitä registriiruičemattomien käyttäjien kohendukset valvondulistalpäi",
        "tog-watchlisthidepatrolled": "Peitä muutoksientarkistajien hyväksytyt kohendukset valvondulistalpäi",
+       "tog-watchlisthidecategorization": "Peitä sivuloin kategourizacii",
        "tog-ccmeonemails": "Työnnä minule koupii MediiWikin kauti työttylöis sähköpoštuviestilöis",
        "tog-diffonly": "Älä ozuta sivun syväindyö eroverdailun alapuolel",
        "tog-showhiddencats": "Ozuta peitetyt kategouriet",
        "delete": "Ota iäre",
        "deletethispage": "Ota tämä sivu iäre",
        "undeletethispage": "Tuo sivu järilleh",
+       "viewdeleted_short": "Ozuta {{PLURAL:$1|yksi iäreotettu kohendus|$1 iäreotettuu kohendustu}}",
        "protect": "Suojua",
        "protect_change": "vaihta",
        "protectthispage": "Suojua tämä sivu",
        "redirectpagesub": "uvvellehohjavussivu",
        "redirectto": "Uvvellehohjuau sivuh:",
        "lastmodifiedat": "Tädä sivuu on muutettu jälgimäzen kerran $1, $2 aigah.",
+       "viewcount": "Tädä sivuu on kačottu {{PLURAL:$1|kerran|$1kerdua}}.",
        "protectedpage": "Suojattu sivu",
        "jumpto": "Siirry",
        "jumptonavigation": "navigatsii",
        "directoryreadonlyerror": "Al'bom $1 on kirjutussuojattu.",
        "directorynotreadableerror": "Al'bom $1 ei ole lugiettavis.",
        "filenotfound": "Failua \"$1\" ei lövvetty.",
+       "unexpected": "Vuottamatoi arvo: \"$1\"=\"$2\".",
+       "formerror": "Haireh: Ankietan tiijot ei päitä.",
        "badarticleerror": "Tädä toimindua ei voi ruadua täl sivul.",
        "cannotdelete": "Sivuu libo failua \"$1\" ei voi ottua iäre. Kentah toine on jo toinah ottanuh sen iäre.",
        "cannotdelete-title": "Ei voi ottua iäre sivuu \"$1\"",
        "noarticletext-nopermission": "Täl sivul ei ole tekstua.\nVoit [[Special:Search/{{PAGENAME}}|eččie sivun nimel]] toizis sivuloispäi, libo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} eččie sivuu koskijua logua]</span>, ga sinul ei ole oigevuksii luadie tädä sivuu.",
        "userpage-userdoesnotexist-view": "Käyttäitunnustu ”$1” ei ole registruittu.",
        "updated": "(Päivitetty)",
+       "previewnote": "'''Tämä on vaiku sivun ezikaččelu.'''\nSinun luajittuloi kohenduksii ei ole vie tallendettu.",
        "continue-editing": "Mene edituičendualovehele",
        "editing": "Kohendellah sivuu $1",
        "creating": "Luajitah sivuu \"$1\"",
        "template-protected": "(suojattu)",
        "template-semiprotected": "(puolekse suojattu)",
        "hiddencategories": "Tämä sivu kuuluu {{PLURAL:$1|1 peitettyh kategourieh|$1 peitettyh kategourieh}}:",
+       "nocreate-loggedin": "Sinul ei ole oigevuksii luadie uuzii sivuloi.",
        "sectioneditnotsupported-title": "Sektsien kohendustu ei tuveta.",
        "sectioneditnotsupported-text": "Sektsien kohendustu ei tuveta täl sivul.",
        "permissionserrors": "Ei oigevuksii",
        "permissionserrorstext": "Sinul ei ole lubua toimindoh {{PLURAL:$1|tämän syyn periä|nämmien syylöin periä}}:",
        "permissionserrorstext-withaction": "Sinul ei ole lubua toimindoh $2 niškoi, {{PLURAL:$1|tämän syyn periä|nämmien syylöin periä}}:",
        "moveddeleted-notice": "Tämä sivu on otettu iäre. Sivun iäreotandu- da siirdohistourii ollah annettu al viittavuksennu.",
+       "log-fulllog": "Ozuta kai histourii",
        "postedit-confirmation-created": "Sivu on nygöi luajittu.",
        "postedit-confirmation-restored": "Sivun aijembi versii on tuodu järilleh.",
        "postedit-confirmation-saved": "Sinun kohendus tallendettih.",
        "revdelete-nooldid-title": "Ei kohtehversielöi",
        "revdelete-show-file-submit": "Muga",
        "revdelete-selected-text": "{{PLURAL:$1|Vallittu versii|Vallitut versiet}} kohtehes [[:$2]]:",
+       "revdelete-hide-image": "Peitä failan syväindö",
+       "revdelete-hide-name": "Peitä kohteh da parametrat",
+       "revdelete-hide-comment": "Kohendele yhtehveduo",
+       "revdelete-hide-user": "Peitä kirjuttajan nimi libo IP-adressu",
        "revdelete-radio-same": "(älä vaihta)",
        "revdelete-radio-set": "Peitetty",
        "revdelete-radio-unset": "Nägövil",
+       "logdelete-success": "'''Tapahtumuhistourien nägyvytty on muutettu.'''",
+       "logdelete-failure": "'''Tapahtumuhistourien nägyvytty ei voidu azettua:'''\n$1",
+       "revdel-restore": "vaihta nägyvys",
        "pagehist": "Sivuhistourii",
        "deletedhist": "Iäre otettuloin versielöin histourii",
        "revdelete-offender": "Versien luadii:",
        "powersearch-togglelabel": "Valliče:",
        "powersearch-toggleall": "Kai",
        "powersearch-togglenone": "Nimidä",
+       "preferences": "Azetukset",
        "mypreferences": "Azetukset",
        "prefs-edits": "Kohenduksii kaikkiedah:",
+       "prefsnologintext2": "Ole hyvä, kirjuttai ku vaihtua sinun azetuksii.",
        "prefs-skin": "Kettu",
+       "skin-preview": "Ezikačo",
        "prefs-user-pages": "Käyttäisivut",
+       "prefs-rc": "Jälgimäzet kohendukset",
        "prefs-watchlist": "Valvondulistu",
+       "prefs-editwatchlist": "Kohendele valvonduluvetteluo",
+       "prefs-editwatchlist-label": "Kohendele valvonduluvettelon merkindölöi:",
+       "prefs-editwatchlist-edit": "Ozuta da ota iäre kohtehii valvonduluvettelos",
+       "prefs-editwatchlist-clear": "Tyhjendä valvonduluvettelo",
+       "prefs-watchlist-days": "Ozutettuloin päivien lugu valvonduluvettelos:",
+       "prefs-watchlist-days-max": "Ei enämbi $1 {{PLURAL:$1|päiviä}}",
+       "prefs-watchlist-token": "Valvonduluvettelon avain:",
        "prefs-resetpass": "Vaihta peittosana",
        "prefs-changeemail": "Vaihta libo ota iäre sähköpoštuadressu",
        "prefs-setemail": "Kirjuta sähköpoštuadressu",
index f960f6c..8270f75 100644 (file)
        "wlheader-showupdated": "'''Wytłuszczone''' zostały strony, które zostały zmodyfikowane od Twojej ostatniej wizyty na nich.",
        "wlnote": "Poniżej pokazano {{PLURAL:$1|zmianę wykonaną|<strong>$1</strong> zmiany wykonane|<strong>$1</strong> zmian wykonanych}} w ciągu {{PLURAL:$2|ostatniej godziny|ostatnich <strong>$2</strong> godzin}}, licząc od $4 dnia $3.",
        "wlshowlast": "Pokaż ostatnie $1 godzin, $2 dni",
+       "watchlistall2": "wszystkie",
+       "wlshowtime": "Pokaż ostatnie:",
+       "wlshowhideminor": "drobne edycje",
+       "wlshowhidebots": "boty",
+       "wlshowhideliu": "zarejestrowanych użytkowników",
+       "wlshowhideanons": "anonimowych użytkowników",
+       "wlshowhidemine": "moje edycje",
        "watchlist-options": "Opcje obserwowanych",
        "watching": "Dodaję do obserwowanych...",
        "unwatching": "Przestaję obserwować...",
        "cantrollback": "Nie można cofnąć edycji tego autora, ponieważ jest jedynym autorem tej strony.",
        "alreadyrolled": "Nie można dla strony [[:$1|$1]] cofnąć ostatniej zmiany, którą wykonał [[User:$2|$2]] ([[User talk:$2|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).\nKtoś inny zdążył już to zrobić lub wprowadził własne poprawki do treści strony.\n\nAutorem ostatniej zmiany jest teraz [[User:$3|$3]] ([[User talk:$3|dyskusja]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Edycję opisał „''$1''”.",
-       "revertpage": "Wycofano edycje użytkownika [[Special:Contributions/$2|$2]] ([[User talk:$2|dyskusja]]). Autor przywróconej wersji to [[User:$1|$1]].",
+       "revertpage": "Wycofano edycje użytkownika [[Special:Contributions/$2|$2]]. Autor przywróconej wersji to [[User:$1|$1]].",
        "revertpage-nouser": "Wycofano edycje ukrytego użytkownika. Autor przywróconej wersji to {{GENDER:$1|[[User:$1|$1]]}}.",
        "rollback-success": "Wycofano edycje użytkownika $1;\nprzywrócono ostatnią wersję autorstwa $2.",
        "sessionfailure-title": "Błąd sesji",
index 88ab689..55d655d 100644 (file)
        "viewsource-title": "د $1 سرچينه کتل",
        "actionthrottled": "د دې کړنې مخنيوی وشو",
        "protectedpagetext": "دا مخ د سمون او نورو کړنو د ترسره کولو په تکل ژغورل شوی.",
-       "viewsourcetext": "تاسې د دې مخ سرچينه کتلی او لمېسلی شی:",
-       "viewyourtext": "تاسې په دې مخ کې د '''خپلو سمونونو''' سرچينه کتلی او لمېسلی شی:",
+       "viewsourcetext": "تاسې د دې مخ سرچينه کتلی او لمېسلی شی.",
+       "viewyourtext": "په دې مخ کې <strong>تاسې د خپلو سمونونو</strong> سرچينه کتلی او لمېسلی شی.",
        "protectedinterface": "دا مخ د دې ويکي د ساوترې د ليدنمخ متن لري، او د ورانکارۍ په خاطر ژغورل شوی.\nپه ټولو ويکي گانو کې د ژباړې د ورگډولو او يا هم د ژباړې د سمون او بدلون لپاره د مېډياويکي د ځايتابه پروژه [//translatewiki.net/ translatewiki.net] وکاروۍ.",
        "editinginterface": "<strong>گواښنه:</strong> تاسې چې په دې مخ کې بدلون راولۍ همدا مخ د يوې ساوترې د ليدنمخ متن په توگه کارېږي.\nد دې مخ بدلون به د ټولو کارنانو لپاره د ليدنمخ بڼه اغېزمنه کړي.",
        "namespaceprotected": "تاسې د '''$1''' په نوم-تشيال کې د مخونو د سمولو اجازه نه لرۍ.",
        "createacct-realname": "آر نوم (اختياري)",
        "createaccountreason": "سبب:",
        "createacct-reason": "سبب",
-       "createacct-reason-ph": "ولې تاسې بل گڼون جوړول غوااړۍ",
+       "createacct-reason-ph": "تاسې ولې بل گڼون جوړوئ؟",
        "createacct-submit": "گڼون مو جوړ کړئ",
        "createacct-another-submit": "گڼون جوړول",
        "createacct-benefit-heading": "{{SITENAME}} ستاسې په څېر خلکو جوړ کړی.",
        "wlheader-showupdated": "هغه مخونه چې ستاسې د کتلو نه وروسته بدلون موندلی په '''روڼ''' ليک په نښه شوي.",
        "wlnote": "دلته لاندې {{PLURAL:$1|وروستی بدلون دی|وروستي '''$1''' بدلونونه دي}} چې په {{PLURAL:$2|تېر ساعت|تېرو '''$2''' ساعتونو}} کې تر $3 نېټې او $4 بجو پېښ شوي.",
        "wlshowlast": "وروستي $1 ساعتونه $2 ورځې ښکاره کول",
+       "watchlistall2": "ټول",
+       "wlshowtime": "وروستی ښکاره کول:",
+       "wlshowhideminor": "وړوکي سمونونه",
+       "wlshowhidebots": "روباټونه",
+       "wlshowhideliu": "ثبت شوي کارنان",
+       "wlshowhideanons": "ورکنومي کارنان",
+       "wlshowhidepatr": "څارل شوي سمونونه",
+       "wlshowhidemine": "زما سمونونه",
        "watchlist-options": "د کتنلړ خوښنې",
        "watching": "د کتلو په حال کې...",
        "unwatching": "د نه کتلو په حال کې...",
index 5ebe6f2..d674663 100644 (file)
        "wlheader-showupdated": "Páginas modificadas desde a sua última visita são mostradas em '''negrito'''",
        "wlnote": "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas <strong>$1</strong> alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} até $3, $4.",
        "wlshowlast": "Ver últimas $1 horas $2 dias",
+       "watchlistall2": "todas",
        "watchlist-options": "Opções da lista de páginas vigiadas",
        "watching": "Vigiando...",
        "unwatching": "Deixando de vigiar...",
index eaa7568..3ee8563 100644 (file)
        "wlheader-showupdated": "As páginas modificadas desde a última vez que as visitou aparecem destacadas a '''negrito'''.",
        "wlnote": "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas <strong>$1</strong> alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas <strong>$2</strong> horas}} até $3, $4.",
        "wlshowlast": "Ver últimas $1 horas $2 dias",
+       "watchlistall2": "todas",
        "watchlist-options": "Opções da lista de páginas vigiadas",
        "watching": "A vigiar...",
        "unwatching": "A deixar de vigiar...",
index 34240d4..7f0495c 100644 (file)
        "wlheader-showupdated": "Message at the top of [[Special:Watchlist]], after {{msg-mw|watchlist-details}}. Has to be a full sentence.",
        "wlnote": "Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.\n\nParameters:\n* $1 - the number of changes shown\n* $2 - the number of hours for which the changes are shown\n* $3 - a date alone\n* $4 - a time alone",
        "wlshowlast": "Appears on [[Special:Watchlist]]. Parameters:\n* $1 - a choice of different numbers of hours (\"1 | 2 | 6 | 12\")\n* $2 - a choice of different numbers of days (\"1 | 3 | 7\" and the maximum number of days available)\nClicking on your choice changes the list of changes you see (without changing the default in my preferences).",
+       "watchlistall2": "Appears on [[Special:Watchlist]], after {{msg-mw|wlshowtime}}, as the option to display all available data regardless of age.\n{{Identical|All}}",
+       "watchlist-hide": "Appears on [[Special:Watchlist]]. It is the first word on a new line with checkboxes to hide/unhide options\n{{Identical|Hide}}",
+       "wlshowtime": "Appears on [[Special:Watchlist]].",
+       "wlshowhideminor": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideminor}}.\n{{Identical|Minor edit}}",
+       "wlshowhidebots": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidebots}}.\n{{Identical|Bot}}",
+       "wlshowhideliu": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideliu}}.\n{{Identical|Registered user}}",
+       "wlshowhideanons": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhideanons}}.\n{{Identical|Anonymous user}}",
+       "wlshowhidepatr": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidepatr}}.",
+       "wlshowhidemine": "Option text in [[Special:Watchlist]]. Cf. {{msg-mw|rcshowhidemine}}.",
        "watchlist-options": "Legend of the fieldset of [[Special:Watchlist]]\n\nSee also:\n* {{msg-mw|Watchlist-details|watchlist header}}\n* {{msg-mw|Wlheader-enotif|watchlist header}}\n* {{msg-mw|enotif reset|Submit button text}}",
        "watching": "Text displayed when clicked on the watch tab: {{msg-mw|Watch}}. It means the wiki is adding that page to your watchlist.",
        "unwatching": "Text displayed when clicked on the unwatch tab: {{msg-mw|Unwatch}}. It means the wiki is removing that page from your watchlist.",
index 14da08c..519c19b 100644 (file)
        "missingarticle-rev": "(versiunea#: $1)",
        "missingarticle-diff": "(Dif: $1, $2)",
        "readonly_lag": "Baza de date a fost închisă automatic în timp ce serverele secundare ale bazei de date îl urmează pe cel principal.",
+       "nonwrite-api-promise-error": "Antetul HTTP „Promise-Non-Write-API-Action” a fost trimis, dar cererea s-a făcut către un modul de scriere API.",
        "internalerror": "Eroare internă",
        "internalerror_info": "Eroare internă: $1",
        "internalerror-fatal-exception": "Excepție fatală pentru tipul „$1”",
        "wantedfiletext-nocat-noforeign": "Următoarele fișiere sunt utilizate, dar nu există.",
        "wantedtemplates": "Formate dorite",
        "mostlinked": "Cele mai căutate articole",
-       "mostlinkedcategories": "Cele mai căutate categorii",
+       "mostlinkedcategories": "Cele mai utilizate categorii",
        "mostlinkedtemplates": "Cele mai transcluse pagini",
        "mostcategories": "Articole cu cele mai multe categorii",
-       "mostimages": "Cele mai căutate imagini",
+       "mostimages": "Cele mai utilizate imagini",
        "mostinterwikis": "Pagini cu cele mai multe legături interwiki",
        "mostrevisions": "Articole cu cele mai multe revizuiri",
        "prefixindex": "Toate paginile cu prefix",
        "wlheader-showupdated": "Paginile care au fost modificate după ultima dumneavoastră vizită sunt afișate '''îngroșat'''.",
        "wlnote": "Mai jos se află {{PLURAL:$1|ultima schimbare|ultimele <strong>$1</strong> schimbări|ultimele <strong>$1</strong> de schimbări}} din {{PLURAL:$2|ultima oră|ultimele <strong>$2</strong> ore|ultimele <strong>$2</strong> de ore}}, așa cum era situația la $3, $4.",
        "wlshowlast": "Arată ultimele $1 ore $2 zile",
+       "watchlistall2": "toate",
+       "wlshowtime": "Arată ultimele:",
+       "wlshowhideminor": "modificări minore",
+       "wlshowhidebots": "roboți",
+       "wlshowhideliu": "utilizatori înregistrați",
+       "wlshowhideanons": "utilizatori anonimi",
+       "wlshowhidepatr": "modificări patrulate",
+       "wlshowhidemine": "modificările mele",
        "watchlist-options": "Opțiuni listă de pagini urmărite",
        "watching": "Se urmărește...",
        "unwatching": "Așteptați...",
index 343052f..c607569 100644 (file)
        "wlheader-showupdated": "* Le pàggene ca onne state cangiate da l'urtema visite avènene fatte vedè in '''grascette'''",
        "wlnote": "Aqquà sotte {{PLURAL:$1|ste l'urteme cangiamende|stonne l'urteme <strong>$1</strong> cangiaminde}} jndr'à {{PLURAL:$2|l'urtema ore|l'urteme <strong>$2</strong> ore}}, jndr'à $3, $4.",
        "wlshowlast": "Vide l'urteme $1 ore $2 sciurne",
+       "watchlistall2": "tutte",
        "watchlist-options": "Opzione d'a liste de le pàggene condrollete",
        "watching": "Fà vedè...",
        "unwatching": "No fà vedè...",
index ac66678..f37b0e8 100644 (file)
        "listusers": "Список участников",
        "listusers-editsonly": "Показать только тех участников, кто сделал хотя бы одну правку",
        "listusers-creationsort": "Упорядочить по дате создания",
-       "listusers-desc": "СоÑ\80Ñ\82иÑ\80оваÑ\82Ñ\8c Ð¿Ð¾ Ñ\83бÑ\8bваниÑ\8e",
+       "listusers-desc": "СоÑ\80Ñ\82иÑ\80оваÑ\82Ñ\8c Ð² Ð¾Ð±Ñ\80аÑ\82ном Ð¿Ð¾Ñ\80Ñ\8fдке",
        "usereditcount": "$1 {{PLURAL:$1|правка|правки|правок}}",
        "usercreated": "{{GENDER:$3|зарегистрировался|зарегистрировалась}} $1 в $2",
        "newpages": "Новые страницы",
        "wlheader-showupdated": "Страницы, изменившиеся с вашего последнего их посещения, выделены '''жирным''' шрифтом.",
        "wlnote": "Ниже {{PLURAL:$1|показано последнее изменение|показаны <strong>$1</strong> последние изменения|показаны <strong>$1</strong> последних изменений}} за {{PLURAL:$2|последний час|последние <strong>$2</strong> часа|последние <strong>$2</strong> часов}}, по состоянию на $3 $4.",
        "wlshowlast": "Показать за последние $1 часов $2 дней",
+       "watchlistall2": "все",
+       "wlshowtime": "Показать последние:",
+       "wlshowhideminor": "малые правки",
+       "wlshowhidebots": "ботов",
+       "wlshowhideliu": "зарегистрированных участников",
+       "wlshowhideanons": "анонимных участников",
+       "wlshowhidepatr": "проверенные правки",
+       "wlshowhidemine": "мои правки",
        "watchlist-options": "Настройки списка наблюдения",
        "watching": "Добавление в список наблюдения…",
        "unwatching": "Удаление из списка наблюдения…",
index 96b8e89..bf2f43f 100644 (file)
        "nstab-template": "फलकम्",
        "nstab-help": "साहाय्यपृष्ठम्",
        "nstab-category": "वर्गः",
+       "mainpage-nstab": "मुख्यपृष्ठम्",
        "nosuchaction": "तादृशं कार्यं न विद्यते",
        "nosuchactiontext": "अनेन सार्वसङ्केन (URL) दर्शिता क्रिया अयोग्या अस्ति । अयोग्यं त्रुटियुक्तं वा सार्वसङ्केतं भवता/भवत्या लिखितं स्यात् ।",
        "nosuchspecialpage": "तादृशं विशेषपृष्ठं न विद्यते",
        "welcomeuser": "स्वागतम्, $1!",
        "welcomecreation-msg": "भवता/भवत्या सदस्यता प्राप्ता ।\nस्वस्य [[Special:Preferences|{{SITENAME}} इष्टतमानि]] परिवर्तयितुं मा विस्मरतु ।",
        "yourname": "योजकनाम:",
-       "userlogin-yourname": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम",
-       "userlogin-yourname-ph": "सà¥\8dवसà¥\8dय à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम लिख्यताम्",
-       "createacct-another-username-ph": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम लिख्यताम्",
+       "userlogin-yourname": "सदसà¥\8dयनाम",
+       "userlogin-yourname-ph": "सà¥\8dवसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयनाम लिख्यताम्",
+       "createacct-another-username-ph": "सदसà¥\8dयनाम लिख्यताम्",
        "yourpassword": "कूटशब्दः :",
        "userlogin-yourpassword": "कूटशब्दः",
        "userlogin-yourpassword-ph": "स्वस्य कूटशब्दः लिख्यताम्",
        "createaccountreason": "कारणम् :",
        "createacct-reason": "कारणम्",
        "createacct-reason-ph": "भवतः/भवत्याः अन्यसदस्यतां प्राप्तुं किं प्रयोजनमस्ति ?",
-       "createacct-captcha": "सुरक्षानिरीक्षणम्",
-       "createacct-imgcaptcha-ph": "उपरि लिखिताः वर्णाः लिख्यन्तादम्",
        "createacct-submit": "स्वसदस्यता प्राप्यताम्",
        "createacct-another-submit": "अन्यसदस्यता प्राप्यताम्",
        "createacct-benefit-heading": "{{SITENAME}} इति भवत्सदृशैः जनैः रचितमस्ति ।",
        "createacct-benefit-body2": "{{PLURAL:$1|पृष्ठम्|पृष्ठानि}}",
        "createacct-benefit-body3": "नवीन{{PLURAL:$1|योजकः|योजकाः}}",
        "badretype": "भवता/भवत्या लिखितौ कूटशब्दौ समानौ न स्तः ।",
-       "userexists": "भवता/भवतà¥\8dया à¤\88षà¥\8dà¤\9fà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¥\82रà¥\8dवमà¥\87व à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ \nà¤\95à¥\83पया à¤\85परà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम चिनोतु ।",
-       "loginerror": "पà¥\8dरवà¥\87शà¥\87 à¤¦à¥\8bषà¤\83",
+       "userexists": "भवता/भवतà¥\8dया à¤\88षà¥\8dà¤\9fà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम à¤ªà¥\82रà¥\8dवमà¥\87व à¤µà¤¿à¤¦à¥\8dयतà¥\87 à¥¤ \nà¤\95à¥\83पया à¤\85परà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम चिनोतु ।",
+       "loginerror": "प्रवेशदोषः",
        "createacct-error": "सदस्यताप्राप्तिकाले दोषः",
        "createaccounterror": "$1 सदस्यता न प्राप्ता :",
        "nocookiesnew": "भवता/भवत्या सदस्यता प्राप्ता, परन्तु प्रवेशः न कृतः । {{SITENAME}} इत्यस्य कृते योजकज्ञापकम् (uses cookies) अनिवार्यम् अस्ति । \nभवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।\nकृपया सा समर्थ्यताम्, ततश्च नवीनसदस्यतायाः प्रयोक्तृनाम्ना प्रविश्यताम् ।",
        "nocookieslogin": "{{SITENAME}} इत्यत्र ज्ञापकेन (cookies) विना प्रवेशः न शक्यः । \nभवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।\nकृपया सा समर्थ्यताम्, ततश्च पुनः प्रयासः क्रियताम् ।",
        "nocookiesfornew": "योजकसदस्यता न सिद्धा यतः स्रोतः प्रमाणीकृतं न जातम् । \nभवता कुक्कीस् इत्येतत् समर्थितानि किम् इति परिशील्य इदं पृष्ठं पुनरारोप्य प्रयतताम् ।",
-       "noname": "भवता/भवतà¥\8dया à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम न प्रदत्तम् ।",
+       "noname": "भवता/भवतà¥\8dया à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम न प्रदत्तम् ।",
        "loginsuccesstitle": "स्वागतं ! प्रवेशः सिद्धः ।",
        "loginsuccess": "भवता/भवत्या {{SITENAME}} इत्यत्र \"$1\"-योजकत्वेन प्रवेशः प्राप्तः ।",
        "nosuchuser": "'''$1''' नाम्नः न कोऽपि योजकः विद्यते ।\n\nप्रयोक्तृनामानि पक्षानुगुणं (case sensitive) भवन्ति ।\n\nयत् टङ्कितं, तत् पश्यतु अथवा [[Special:UserLogin/signup|नूतनसदस्यता प्राप्यताम्]] ।",
        "nosuchusershort": "'''$1''' नाम्नः न कोऽपि सदस्यः विद्यते ।\n\nयत् टङ्कितं, तत् पश्यतु ।",
-       "nouserspecified": "भवता/भवतà¥\8dया à¤\8fà¤\95à¤\82 à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अवश्यमेव दातव्यम् ।",
+       "nouserspecified": "भवता/भवतà¥\8dया à¤\8fà¤\95à¤\82 à¤¯à¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम अवश्यमेव दातव्यम् ।",
        "login-userblocked": "एषः सदस्यः प्रतिबन्धितः । प्रवेष्टुम् अनुमतिः नास्ति ।",
        "wrongpassword": "भवता/भवत्या लिखितः कूटशब्दः त्रुटियुक्तः । \nकृपया पुनः लिख्यताम् ।",
        "wrongpasswordempty": "कूटशब्दपेटिकायां कूटशब्दः न लिखितः ।\n\nकृपया पुनः प्रयासः क्रियताम् ।",
        "passwordtooshort": "न्यूनातिन्यूनं {{PLURAL:$1| 1 अक्षरात्मकः|$1 अक्षरात्मकः}} कूटशब्दः भवेदेव ।",
        "passwordtoolong": "कूटशब्दः {{PLURAL:$1| 1 अक्षरात्|$1 अक्षरेभ्यः}} बृहत् न स्यात् ।",
-       "password-name-match": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम, कूटशब्दः च समानः न भवेत् ।",
+       "password-name-match": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयनाम, कूटशब्दः च समानः न भवेत् ।",
        "password-login-forbidden": "अस्य प्रयोक्तृनाम्नः कूटशब्दस्य च प्रयोगः वर्जितोऽस्ति ।",
        "mailmypassword": "कूटशब्दः परिवर्त्यताम्",
        "passwordremindertitle": "{{SITENAME}} इत्यस्मै नूतनः अस्थायी कूटशब्दः ।",
        "noemailprefs": "एनं विकल्पं समर्थितुम् \"इष्टतमानि\" मध्ये भवतः/भवत्याः वि-पत्रसङ्केतस्य उल्लेखः आवश्यकः ।",
        "emailconfirmlink": "स्वस्य वि-पत्रसङ्कतं प्रमाणीक्रियताम्",
        "invalidemailaddress": "एषः वि-पत्रसङ्केतः आवश्यकप्रारुपे नास्ति । कृपया योग्यप्रारुपानुकूलः वि-पत्रसङ्केतः लिख्यताम् । अथवा सा पेटिका रिक्ता त्यज्यताम् ।",
-       "cannotchangeemail": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤¯à¥\8bà¤\9cà¤\95-विपत्र-सङ्केताः परिवर्तयितुं न शक्यन्ते ।",
+       "cannotchangeemail": "à¤\85सà¥\8dमिनà¥\8d à¤µà¤¿à¤\95ि-à¤\9cालसà¥\8dथानà¥\87 à¤¸à¤¦à¤¸à¥\8dय-विपत्र-सङ्केताः परिवर्तयितुं न शक्यन्ते ।",
        "emaildisabled": "स्थानमेतत् (site) वि-पत्रं प्रेषयितुं न शक्यते ।",
        "accountcreated": "सदस्यता प्राप्ता",
        "accountcreatedtext": "[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) कृते \"योजसम्भाषणम्\" इति पृष्ठं रचितम् ।",
        "createaccount-text": "{{SITENAME}} ($4) इत्यत्र, \"$2\" नाम्ना, \"$3\" कूटशब्देन, च कोऽपि भवतः/भवत्याः वि-पत्रसङ्केतस्य उपयोगं कृत्वा सदस्यतां प्रापत् ।\nअधुना भवान्/भवती प्रवेशं कृत्वा गुप्तसङ्ख्यां परिवर्तयितं शक्नोति ।\nएषा सदस्यताप्राप्तिः क्षत्या अभवत् चेत्, एनं सन्देशम् उपेक्षताम् ।",
        "login-throttled": "भवता/भवत्या अत्यधिकाः प्रवेशप्रयासाः कृताः । \nकृपया $1 कालं यावत् प्रतीक्ष्यताम् ।",
        "login-abort-generic": "भवतः/भवत्याः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः",
-       "login-migrated-generic": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयतà¥\8dवà¤\82 à¤¸à¥\8dथानानà¥\8dतरितà¤\82, à¤¯à¥\87न à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
+       "login-migrated-generic": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयतà¥\8dवà¤\82 à¤¸à¥\8dथानानà¥\8dतरितà¤\82, à¤¯à¥\87न à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयनाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
        "loginlanguagelabel": "भाषा : $1",
        "suspicious-userlogout": "भवतः/भवत्याः \"निर्गम्यताम्\" इत्यस्य विज्ञप्तिं स्वीकर्तुं न शक्यते । यतः भवता/भवत्या एषा विज्ञप्तिं तृटियुक्तगवेक्षणात् प्रतिनिधि(proxy)-तः वा कृता ।",
        "createacct-another-realname-tip": "वास्तविकनाम ऐच्छिकम् अस्ति । भवान्/भवती एनं विकल्पं समर्थयति चेत्, भवतः/भवत्याः योगदानश्रेयसः उल्लेखसमये अस्य उपयोगः भविष्यति ।",
        "passwordreset-emailtitle": "{{SITENAME}} इत्यत्र योजकविषये",
        "passwordreset-emailtext-ip": "कोऽपि (कदाचित् भवान्/भवती, $1 अन्तर्जालसंविदः (from IP)) {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|योजकः|योजकाः}} अनेन वि-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विनतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
        "passwordreset-emailtext-user": "$1 सदस्यः {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|सदस्यः|सदस्याः}} अनेन वि-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विज्ञप्तिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
-       "passwordreset-emailelement": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम : \n$1\n\nअल्पकालीनकूटशब्दः : \n$2",
+       "passwordreset-emailelement": "सदसà¥\8dयनाम : \n$1\n\nअल्पकालीनकूटशब्दः : \n$2",
        "passwordreset-emailsent": "परिवर्तितकूटशब्दस्य वि-पत्रं प्रेषितम् अस्ति ।",
        "passwordreset-emailsent-capture": "परिवर्तितकूटशब्दस्य वि-पत्रं प्रेषितम् अस्ति । तत् अधः द्रष्टुं शक्यते ।",
        "passwordreset-emailerror-capture": "परिवर्तितकूटशब्दस्य वि-पत्रं निर्मितम् अस्ति । तत् अधः द्रष्टुं शक्यते । परन्तु {{GENDER:$2|योजकाय}} प्रेषणकाले तत् निरस्तम् अभवत् : $1",
        "noarticletext": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "noarticletext-nopermission": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "missing-revision": "\"{{FULLPAGENAME}}\" पृष्ठस्य संस्करणं #$1 नोपलभ्यम् ।\nयस्य पृष्ठस्य इतिहासे परिसन्धयः कालातीताः सन्ति, तेषु पृष्ठेषु एवं भवति ।\nअधिकसूचनाः अत्र प्राप्तुं शक्यते [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} अपाकृतानाम् आवलिः].",
-       "userpage-userdoesnotexist": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम पञ्जीकृतं न विद्यते । अस्य\nनवरचनायै/सम्पादनाय तत् पश्यतु ।",
-       "userpage-userdoesnotexist-view": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम पञ्जीकृतं न विद्यते ।",
+       "userpage-userdoesnotexist": "\"$1\" à¤\87ति à¤¸à¤¦à¤¸à¥\8dयनाम पञ्जीकृतं न विद्यते । अस्य\nनवरचनायै/सम्पादनाय तत् पश्यतु ।",
+       "userpage-userdoesnotexist-view": "\"$1\" à¤\87ति à¤¸à¤¦à¤¸à¥\8dयनाम पञ्जीकृतं न विद्यते ।",
        "blocked-notice-logextract": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते ।\nसन्दर्भार्थम् अधः नूतनतमा अवरोधाभिलेख-प्रविष्टिः प्रदत्ताऽस्ति :",
        "clearyourcache": "<strong>सूचना :</strong> भवता/भवत्या कृतानि सम्पादनानि संरक्ष्य तानि परिवर्तनेषु द्रष्टुं गवेषकस्य पृष्ठस्य पुनरारोपणम् (reload) आवश्यकं भवति ।\n* <strong>Firefox / Safari:</strong> <em>Shift</em>कुड्मलेन सह <em>Reload</em>कुड्मलं नुदतु । \n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> नोदनेन पुनरारोपणं भवति । (<em>⌘-R</em> इति Mac तन्त्रांशप्रयोक्तॄभ्यः)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em>कुड्मलेन सह <em>Refresh</em>कुड्मलं नुदतु, <em>Ctrl-F5</em> नुदतु वा ।\n* <strong>Opera:</strong> <em>Tools → Preferences</em> इत्यत्र गत्वा कर्तुं शक्नोति ।",
        "usercssyoucanpreview": "'''सूचना :''' CSS नवीनलिप्याः संरक्षणं करणात् प्राक् एतत् \"{{int:showpreview}}\" नुद्य प्रयोगं करोतु ।",
        "history-feed-empty": "एतत् पृष्ठं न विद्यते । \nएतस्य पृष्ठस्य नामपरिवर्तनम्, अपाकरणं च कृतं स्यात् । \n अनेन सम्बद्धानि पृष्ठानि [[Special:Search|विकि-जालस्थाने अन्विष्यन्ताम्]] ।",
        "history-edit-tags": "चितस्य संस्ककरणस्य चिह्नानि सम्पाद्यन्ताम्",
        "rev-deleted-comment": "(सम्पादनस्य सारः अपाकृतः)",
-       "rev-deleted-user": "(पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अपाकृतमस्ति)",
+       "rev-deleted-user": "(सदसà¥\8dयनाम अपाकृतमस्ति)",
        "rev-deleted-event": "(संरक्षिताऽऽवल्यः(log) अपाकृताः)",
-       "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अन्तर्जालसंविद् वा अपाकृतम् - योगदानाऽऽवल्याम् एतानि परिवर्तनानि निगूहितानि सन्ति ।]",
+       "rev-deleted-user-contribs": "[सदसà¥\8dयनाम अन्तर्जालसंविद् वा अपाकृतम् - योगदानाऽऽवल्याम् एतानि परिवर्तनानि निगूहितानि सन्ति ।]",
        "rev-deleted-text-permission": "एतस्य पृष्ठस्य संस्करणम् <strong>अपाकृतमस्ति</strong> ।\nविस्तृतं विवरणम् अत्र प्राप्स्यति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-suppressed-text-permission": "एतस्य पृष्ठस्य संस्कृतम् <strong>अपाकृतम्</strong> । तस्य विस्तृतं विवकणं [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} गूहितऽऽवल्याः] प्राप्यते ।",
        "rev-deleted-text-unhide": "एतस्य पृष्ठस्य संस्करणम् <strong>अपाकृतमस्ति</strong> ।\nविस्तृतं ज्ञानम् अत्र प्राप्स्यति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
        "email-address-validity-invalid": "मान्यः वि-पत्रसङ्केतः लिख्यताम्",
        "userrights": "योजकाधिकारस्य प्रबन्धनम्",
        "userrights-lookup-user": "योजकसमूहस्य प्रबन्धनं करोतु",
-       "userrights-user-editname": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम दीयताम्",
+       "userrights-user-editname": "सदसà¥\8dयनाम दीयताम्",
        "editusergroup": "योजकसमूहः सम्पाद्यताम्",
        "editinguser": "'''[[User:$1|$1]]''' इत्यस्य योजकस्य योजकाधिकारः परिवर्त्यते । $2",
        "userrights-editusergroup": "योजकसमूहः सम्पाद्यताम्",
        "right-suppressionlog": "वैयक्तिकसंस्करणानि दृश्यन्ताम्",
        "right-block": "अस्य योजकस्य सम्पादनानि अवरुध्यन्ताम्",
        "right-blockemail": "वि-पत्रप्रेषयितुम् एषः सदस्यः अवरुध्यताम्",
-       "right-hideuser": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
+       "right-hideuser": "सदसà¥\8dयनाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
        "right-ipblock-exempt": "स्वयम् अवरोधितं, समूहावरोधितम् अन्तर्जालसङ्केतम् (IP) अवगण्य अग्रे गच्छतु",
        "right-proxyunbannable": "प्रतिनिधीनां (of prxies) स्वयम्-अवरोधान् अवगण्य अग्रे गच्छतु",
        "right-unblockself": "स्वं मा अवरुध्यताम्",
        "listfiles_thumb": "अंगुष्ठनखाकारम् ।",
        "listfiles_date": "दिनाङ्क",
        "listfiles_name": "नाम",
-       "listfiles_user": "यà¥\8bà¤\9cà¤\95",
+       "listfiles_user": "सदसà¥\8dयà¤\83",
        "listfiles_size": "आकार",
        "listfiles_description": "वर्णनम्",
        "listfiles_count": "आवृत्ति",
        "wantedfiletext-nocat-noforeign": "अधो दत्ताः सञ्चिकाः उपयुक्ताः किन्तु न वर्तन्ते ।",
        "wantedtemplates": "आवश्यकाः प्राकृतयः ।",
        "mostlinked": "अत्यनुबद्धानि पुटानि ।",
-       "mostlinkedcategories": "वर्गैः सह अत्यनुबद्धाः ।",
+       "mostlinkedcategories": "वर्गैः सह अत्यनुबद्धाः",
        "mostlinkedtemplates": "प्राकृतिभिः अत्यनुबद्धाः ।",
        "mostcategories": "बहुवर्गयुक्तपुटानि ।",
        "mostimages": "अत्यनुबद्धानि पुटानि ।",
        "protectedpages-timestamp": "समयमुद्रा",
        "protectedpages-page": "पृष्ठम्",
        "protectedpages-expiry": "अवसानम्",
-       "protectedpages-performer": "यà¥\8bà¤\9cà¤\95ं संरक्षति",
+       "protectedpages-performer": "सदसà¥\8dयं संरक्षति",
        "protectedpages-params": "कार्यस्य परिमितिः",
        "protectedpages-reason": "कारणम्",
        "protectedpages-unknown-timestamp": "अज्ञातम्",
        "protectedtitles": "सुरक्षितानि शीर्षकानि ।",
        "protectedtitles-summary": "एतत् पृष्ठं सद्यः निर्माणात् संरक्षितम् अस्ति । विद्यमानानां संरक्षितानां पृष्ठानाम् आवल्यै [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] अत्र दृश्यताम् ।",
        "protectedtitlesempty": "एतैः विस्तारैः न किमपि शीर्षकं सद्यः परिरक्षितानि ।",
-       "listusers": "यà¥\8bà¤\9cà¤\95 à¤¸à¥\82à¤\9aि",
+       "listusers": "सदसà¥\8dयावलिà¤\83",
        "listusers-editsonly": "केवलं सम्पादनसहितयोजकान् दर्शयतु ।",
        "listusers-creationsort": "सर्जनदिनाङ्कैः वर्गीकरोतु ।",
        "listusers-desc": "अवरोहक्रमेण क्रमबद्धं क्रियताम्",
        "unusedimagestext": "अधो दत्तसञ्चिकाः सन्ति किन्तु कस्मिंश्चिदपि पुटे न न्यस्ताः ।",
        "unusedcategoriestext": "निम्नलिखितवर्गाः सन्ति तथापि अन्यपुटं वर्गः वा न उपयुङ्क्ते ।",
        "notargettitle": "लक्ष्यं नास्ति ।",
-       "notargettext": "एतत्कार्यं समाचरितुं भवान् लक्षितपुटं योजकं वा न निर्दिष्टवान् ।",
+       "notargettext": "एतत्कार्यं समाचरितुं भवान्/भवती लक्षितपृष्ठं सदस्यं वा न निर्दिष्टवान् ।",
        "nopagetitle": "तादृशलक्षितपुटं नास्ति ।",
        "nopagetext": "भवता निर्दिष्टं लक्षितपुटं नास्ति ।",
        "pager-newer-n": "{{PLURAL:$1|नूतनतरम् 1|नूतनतराणि $1}}",
        "wlheader-showupdated": " येषु पृष्ठेषु भवता/भवत्या परिवर्तनं कृतम् आसीत्, तानि पृष्ठानि अत्र <strong>bold</strong> प्राप्यन्ते ।",
        "wlnote": "$3 : $4 वादनं यावत् <strong>$2</strong> होरां यवात् {{PLURAL:$2|होरायां|होरासु}} {{PLURAL:$1|एकं परिवर्तनं|परिवर्तनानि <strong>$1</strong>}} अधः {{PLURAL:$1|अस्ति|सन्ति}}।",
        "wlshowlast": "अन्तिमाः $1 होराः, अन्तिमानि $2 दिनानि  दृश्यन्ताम्",
+       "watchlistall2": "सर्वाणि",
        "watchlist-options": "निरीक्षासूचेः विकल्पाः",
        "watching": "निरीक्षते...",
        "unwatching": "निरीक्षाम् अपाकरोति...",
        "watcherrortext": " \"$1\" कृते अवलोकनावल्याः व्यवस्थापरिवर्तनावसरे दोषः संविधितः ।",
        "enotif_reset": "सन्दर्शितानि इति सर्वपुटानि अङ्कयतु ।",
-       "enotif_impersonal_salutation": "{{SITENAME}} à¤¯à¥\8bà¤\9cà¤\95",
+       "enotif_impersonal_salutation": "{{SITENAME}} à¤¸à¤¦à¤¸à¥\8dयà¤\83",
        "enotif_subject_deleted": "{{SITENAME}} पृष्ठं $1 इत्येतत् {{gender:$2 इत्यनेन|$2 इत्यनया}} अपाकृतमस्ति।",
        "enotif_subject_created": "{{SITENAME}} पृष्ठं $1 इत्येतत् {{gender:$2 इत्यनेन|$2 इत्यनया}} रचितमस्ति",
        "enotif_subject_moved": "{{SITENAME}} पृष्ठं $1 इत्येतत् {{gender:$2 इत्यनेन|$2 इत्यनया}} चालितमस्ति",
        "ipbhidename": "सम्पादनेभ्यः आवलीभ्यः च योजकनाम सङ्गोपयतु ।",
        "ipbwatchuser": "अस्य योजकस्य योजकपुटानि सम्भाषणपुटानि च अवलोकयतु ।",
        "ipb-disableusertalk": "एतं योजकम् अवरोधकाले स्वस्य सम्भाषणपुटस्य सम्पानात् निवारयतु ।",
-       "ipb-change-block": "à¤\8fतà¥\88à¤\83 à¤µà¤¿à¤¨à¥\8dयासà¥\88à¤\83 à¤¯à¥\8bà¤\9cà¤\95ं पुनः अवरुणद्धु ।",
+       "ipb-change-block": "à¤\8fतà¥\88à¤\83 à¤µà¤¿à¤¨à¥\8dयासà¥\88à¤\83 à¤¸à¤¦à¤¸à¥\8dयं पुनः अवरुणद्धु ।",
        "ipb-confirm": "अवरोधं दृढयतु ।",
        "badipaddress": "अमान्यः ऐपिसङ्केतः ।",
        "blockipsuccesssub": "अवरोधः सफलः ।",
        "tooltip-pt-logout": "निर्गम्यताम्",
        "tooltip-pt-createaccount": "नूतनसदस्यतां प्राप्य प्रविश्यताम् इति सूच्यते किन्तु न एतद् अनिवार्यम्",
        "tooltip-ca-talk": "विषयसहितानां पृष्ठानां सम्भाषणम्",
-       "tooltip-ca-edit": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤°à¤\95à¥\8dषणातà¥\8dपà¥\82रà¥\8dवà¤\82 à¤\95à¥\83पया à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¦à¥\83शà¥\8dयतामà¥\8d à¥¤",
+       "tooltip-ca-edit": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d",
        "tooltip-ca-addsection": "नूतनविभागः आरभ्यताम्",
        "tooltip-ca-viewsource": "इदं पृष्ठं संरक्षितं विद्यते । अस्य स्रोतः द्रष्टुं शक्यते ।",
        "tooltip-ca-history": "अस्य पृष्ठस्य पुरातनाऽऽवृत्तिः",
        "tooltip-ca-nstab-main": "विषययुक्तं पृष्ठं पश्यतु",
        "tooltip-ca-nstab-user": "योजकपृष्ठं दृश्यताम्",
        "tooltip-ca-nstab-media": "माध्यमपुटम् अवलोकयतु ।",
-       "tooltip-ca-nstab-special": "à¤\87दमà¥\87à¤\95à¤\82 à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fà¤\82 à¤ªà¥\83षà¥\8dठà¤\82, à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨à¤¾à¤°à¥\8dहति ।",
+       "tooltip-ca-nstab-special": "à¤\87दमà¥\87à¤\95à¤\82 à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fà¤\82 à¤ªà¥\83षà¥\8dठमà¥\8d, à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 ।",
        "tooltip-ca-nstab-project": "प्रकल्पपृष्ठं दृश्यताम्",
        "tooltip-ca-nstab-image": "सञ्चिकापृष्ठं दृश्यताम्",
        "tooltip-ca-nstab-mediawiki": "तन्त्रसन्देशान् अवलोकयतु ।",
        "tooltip-preferences-save": "आद्यताः रक्षतु ।",
        "tooltip-summary": "सङ्क्षिप्तसारांशः योज्यताम्",
        "anonymous": "{{SITENAME}} इत्यस्य {{PLURAL:$1||}} अनामकयोजकः ।",
-       "siteuser": "{{SITENAME}} à¤¯à¥\8bà¤\9cà¤\95 $1",
+       "siteuser": "{{SITENAME}} à¤¸à¤¦à¤¸à¥\8dयà¤\83 $1",
        "anonuser": "{{SITENAME}} अज्ञातयोजकः $1",
        "lastmodifiedatby": "एतस्य पुटस्य अन्तिमपरिवर्तनं $1 दिनाङ्के $2 समये कृतम् ।",
        "othercontribs": "$1 इत्यस्य कार्यस्य अनुसारम् ।",
        "others": "अन्य",
-       "siteusers": "{{SITENAME}} {{PLURAL:$2|यà¥\8bà¤\9cà¤\95|यà¥\8bà¤\9cà¤\95}} $1",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|सदसà¥\8dयà¤\83|सदसà¥\8dयाà¤\83}} $1",
        "anonusers": "{{SITENAME}} {{PLURAL:$2|अज्ञातयोजकः|अज्ञातयोजकाः}} $1",
        "creditspage": "पुटनां समाकलनानि ।",
        "nocredits": "अस्य पुटस्य समाकलनसूचना नोपलब्धा ।",
        "version-libraries": "स्थापिताः सञ्चिकाः",
        "version-libraries-library": "ग्रन्थालयः",
        "version-libraries-version": "संस्करणम्",
-       "redirect": "सà¤\9eà¥\8dà¤\9aिà¤\95ा-यà¥\8bà¤\9cà¤\95-पृष्ठेभ्यः उत संस्करणात् पुनर्निर्दिष्टम्",
+       "redirect": "सà¤\9eà¥\8dà¤\9aिà¤\95ा-सदसà¥\8dय-पृष्ठेभ्यः उत संस्करणात् पुनर्निर्दिष्टम्",
        "redirect-legend": "सञ्चिकायाः, पृष्ठात् वा पुनर्निर्दिष्टम्",
        "redirect-summary": "एतत् विशिष्टपृष्ठं सञ्चिकां (सञ्चिकायाः नाम प्रदत्तम्) प्रति पुनर्निर्दिष्टम् अस्ति । पृष्ठं (अभिज्ञापकस्य संस्करणम् उत पृष्ठाभिज्ञापकं प्रदत्तम्), उत योजकपृष्ठम् (सङ्ख्यात्मकं योजकाभिज्ञापकं प्रदत्तम्) । उपयोगः : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], उत [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "गम्यताम्",
index 470c93b..614a877 100644 (file)
        "wlheader-showupdated": "Бүтэһик киирииҥ кэннэ уларыйбыт сирэйдэр '''модьу''' бичигинэн бэлиэтэннилэр.",
        "wlnote": "Манна кэлиҥҥи {{PLURAL:$2|чаас|<strong>$2</strong> чаас}} иһигэр оҥоһуллубут бүтэһик <strong>$1</strong> уларытыы көрдөрүлүннэ, бу кэминээҕи туругунан $3, $4.",
        "wlshowlast": "Бүтэһик $2 күҥҥэ $1 чааска көрдөр",
+       "watchlistall2": "бары",
+       "wlshowtime": "Тиһэҕи көрдөр:",
+       "wlshowhideminor": "кыра суолталаах уларытыы",
+       "wlshowhidebots": "оруобат",
+       "wlshowhideliu": "бэлиэтэммит кыттааччы",
+       "wlshowhideanons": "ааттарын эппэтэх кыттааччы",
+       "wlshowhidepatr": "тургутуллубут уларытыы",
+       "wlshowhidemine": "бэйэм уларытыым",
        "watchlist-options": "Кэтээн көрүү туруоруутун уларытыы",
        "watching": "Кэтээ...",
        "unwatching": "Кэтээмэ...",
        "feedback-bugornote": "Туох кыһалҕаны көрсүбүккүн сиһилии суруйар кыахтаах буоллаххына, бука диэн [$1 алҕас туһунан биллэр].\nОл сатаммат буоллаҕына бу судургу форманы толор. Эн этииҥ ааккын уонна туһанар браузерыҥ аатын кытта манна «[$3 $2]» бэчээттэниэ.",
        "feedback-cancel": "Салҕаама",
        "feedback-close": "Сатанна",
+       "feedback-external-bug-report-button": "Тех. садаанньаны ыытыы",
        "feedback-dialog-title": "Санааҕын ыыт",
        "feedback-dialog-intro": "Санааҕын этэргэ аллара баар судургу форманы туһаныаххын сөп. Оччоҕо Эн аатыҥ уонна этииҥ «$1» сирэйгэ эбиллиэ.",
        "feedback-error-title": "Алҕас",
        "feedback-subject": "Тиэмэ:",
        "feedback-submit": "Ыыт",
        "feedback-terms": "Ыытар сурукпар мин браузерым уонна эпэрээсийэлиир систиэмэм туһунан сибидиэнньэлэр бэчээттэнэллэрин уонна дьоҥҥо аһаҕастык көстүөхтэрин өйдүүбүн.",
+       "feedback-termsofuse": "Туһаныы усулуобуйатынан миигиттэн информация барарын утарбаппын.",
        "feedback-thanks": "Махтал! Эн санааҥ бу сирэйгэ \"[$2 $1]\" сурулунна.",
        "feedback-thanks-title": "Махтал!",
        "feedback-useragent": "Браузерым:",
index 3748b83..c81d0e5 100644 (file)
@@ -12,7 +12,7 @@
                        "Taxandru"
                ]
        },
-       "tog-underline": "Sutalìnia sos ligàmenes",
+       "tog-underline": "Sutalìnia sos ligòngios",
        "tog-hideminor": "Cua is acontzos minores in sa pàgina de is ùrtimas mudàntzias",
        "tog-hidepatrolled": "Cua is mudas verificadas in is ùrtimos càmbios",
        "tog-newpageshidepatrolled": "Cua sas pàginas verificadas dae sa lista de sas pàginas noas",
        "badarticleerror": "Operatzione non cunsentida pro custa pàgina.",
        "cannotdelete": "No est istadu possìbile a burrare sa pàgina o su file \"$1\".\nPodet èsser stadu burradu dae calicunu àteru.",
        "cannotdelete-title": "Impossìbile burrare sa pàgina \"$1\"",
-       "delete-hook-aborted": "Sa burradura est istada annullada dae su hook de s'estensione.\nNo est istadu dadu acrarimentu.",
+       "delete-hook-aborted": "Sa burradura est istada annullada dae su hook de s'estensione.\nNo est istadu datu acrarimentu.",
        "no-null-revision": "Non si podet creare una versione lulla pro sa pàgina \"$1\"",
        "badtitle": "Tìtulu malu",
        "badtitletext": "Su tìtulu de sa pàgina chi as pregontadu est bùidu, isballiadu, o iscritu in is cullegamentus inter-wiki a manera non currègia.\nPodet cuntènnere uno o unos cantos caràteres no ammìtidos pro is tìtulos.",
        "createaccountreason": "Motivu:",
        "createacct-reason": "Motivu",
        "createacct-reason-ph": "Pro ite ses creende un àteru contu",
-       "createacct-captcha": "Còmpudu de siguresa",
-       "createacct-imgcaptcha-ph": "Inseri su testu chi ses bidende in artu",
        "createacct-submit": "Crea su contu tuo",
        "createacct-another-submit": "Crea un àteru contu",
        "createacct-benefit-heading": "{{SITENAME}} est òpera de gente che tue.",
        "passwordreset-emailtitle": "Particulares de s'impitadore in {{SITENAME}}",
        "passwordreset-emailelement": "Nùmene utente: \n$1\n\nPassword temporànea: \n$2",
        "changeemail": "Càmbia indiritzu email",
+       "changeemail-header": "Càmbia s'indirìtzu email de su contu",
        "changeemail-oldemail": "Indiritzu email atuale:",
        "changeemail-newemail": "Indiritzu email nou:",
        "changeemail-none": "(nudda)",
        "notanarticle": "Custa pàgina no est unu artìculu",
        "watchlist-details": "Tenes {{PLURAL:$1|$1 pàgina annotada paris a sa pagina de cuntierra sua|$1 pàginas annotadas paris a is pàginas de cuntierra issoro}}.",
        "wlshowlast": "Ammustra is ùrtimas $1 oras, $2 dies",
+       "watchlistall2": "totu",
        "watchlist-options": "Optziones subra sa lista de pàginas annotadas",
        "watching": "Giunghende a sa watchlist...",
        "unwatching": "Boghende dae sa watchlist...",
        "move-page-legend": "Movimentu pàgina",
        "movepagetext": "Cun custu mòdellu podes renumenare una pàgina, movende totu sa stòria sua a sa pàgina noa.\nSu tìtulu bèciu at a diventare una pàgina de reindiritzamentu a su tìtulu nou.\nPodes agiornare automaticamente is redirects ca ligant a su tìtulu originàriu.\nSi sèberas de no, assicura·ti de controllare pro [[Special:DoubleRedirects| reindiritzaduras dòpias]] o [[Special:BrokenRedirects|sballiadas]].\nSes responsàbile de t'assigurare ca is cullegamentos sighint a puntare  a ue depent puntare.\n\nAnnota ca sa pàgina <strong>non</strong> s'at a mòver si nde esistit giai un'àtera a su tìtulu nou, si no est ki siat bùida o cun sceti unu reindiritzamentu a sa bècia e siat chentza acontzos in antis. In casu de movimentu sballiadu, duncas, si podet torrare a su tìtulu bèciu, ma non podes subrascrìer una pàgina chi giai esistit.\n\n<strong>ATENTZIONE!</strong>\nUnu cambiamentu dràsticu podet creare problemas, mescamente a is pàginas prus populares;\npro praxere depes èsser seguru de àer cumpresu is cunsighèntzias prima de sighire a in antis.",
        "movepagetalktext": "Sa pàgina cuntierras asotziada, chi esistit, at a èssere movida automaticamenti impare a sa pàgina base, '''a parte in custos casos''':\n* su movimentu de sa pàgina est intre namespaces diversos;\n* in currispondèntzia de su tìtulu nou esistit giai una pàgina de cuntierras (non bùida);\n* sa casella inoe in bàsciu no est istata sceberada.\n\nIn custos casos, si cheres, depes mòvere a manu su cuntenutu de sa pàgina.",
-       "movearticle": "Move sa pàgina",
        "movenologintext": "Depes èsser unu impitadore registradu e [[Special:UserLogin|identificadu]] pro pòder mòver una pàgina",
        "newtitle": "Tìtulu nou:",
        "move-watch": "Pone ogru a custa pàgina",
index f31c4c6..ed06150 100644 (file)
        "wlheader-showupdated": "Li pàggini ca foru canciati dâ tò ùrtima vìsita sunnu evidinziati n <strong>grassettu</strong>.",
        "wlnote": "Sutta attrovi l'ùrtim{{PLURAL:$1|u canciamentu|i <strong>$1</strong> canciamenti}} fatti nta l'ùrtim{{PLURAL:$1|a ura|i <strong>$2</strong> uri}}, aggiurnati ê $4 dû $3.",
        "wlshowlast": "Ammustra l'ùrtimi $1 uri $2 jorna",
+       "watchlistall2": "tutti",
        "watchlist-options": "Opzioni dâ lista taliata",
        "watching": "Agghiunciuta â lista taliata...",
        "unwatching": "Cancillata dâ lista taliata...",
        "specialpages": "Pàggini spiciali",
        "specialpages-note-top": "Liggenna",
        "specialpages-note": "* Pàggini spiciali nurmali.\n* <span class=\"mw-specialpagerestricted\">Pàggini spiciali risirvati.</strong>",
-       "specialpages-group-maintenance": "Resocunti di manutinzioni",
+       "specialpages-group-maintenance": "Resucunti di manutinzioni",
        "specialpages-group-other": "Àutri pàggini spiciali",
        "specialpages-group-login": "Trasuta / criazzioni di cunti",
        "specialpages-group-changes": "Ùrtimi canciamenti e riggistri",
index 7cbbda8..4c7587e 100644 (file)
@@ -21,7 +21,8 @@
                        "Macofe",
                        "Caliburn",
                        "Matma Rex",
-                       "Aursani"
+                       "Aursani",
+                       "V6rg"
                ]
        },
        "tog-underline": "Unnerline airtins:",
        "listgrouprights-addgroup-self-all": "Eik aw groops til yer accoont",
        "listgrouprights-removegroup-self-all": "Remuiv aw groops fae yer accoont",
        "listgrouprights-namespaceprotection-header": "Namespace restreections",
-       "listgrouprights-namespaceprotection-namespace": "Namespace",
+       "listgrouprights-namespaceprotection-namespace": "نؤمفضا",
        "listgrouprights-namespaceprotection-restrictedto": "Richt(s) allooing ae uiser tae eedit",
        "trackingcategories": "Keepin track o categeries",
        "trackingcategories-summary": "This page leets the trackin categeries that ar autæmateecallie populatit bi the MediaWiki saffware. Thair names can be chynged bi alterin the reelavant system messages in the {{ns:8}} namespace.",
        "wlheader-showupdated": "Pages that hae been chynged sin ye last veesitit thaim ar shawn in '''baud'''.",
        "wlnote": "Ablo {{PLURAL:$1|is the laist chynge|ae the laist <strong>$1</strong> chynges}} in the laist {{PLURAL:$2|hoor|<strong>$2</strong> hoors}}, aes o $3, $4.",
        "wlshowlast": "Shaw the hainmaist $1 hoors $2 days",
+       "watchlistall2": "aw",
        "watchlist-options": "Watchleet opties",
        "watching": "Watchin...",
        "unwatching": "Onwatchin...",
        "undelete-error-long": "Mistaks were encoontered while ondelytin the file:\n\n$1",
        "undelete-show-file-confirm": "Ar ye sair that ye want tae see the delytit reveesion o the file \"<nowiki>$1</nowiki>\" fae $2 at $3?",
        "undelete-show-file-submit": "Ay",
-       "namespace": "Namespace:",
+       "namespace": "نؤمفضا:",
        "invert": "Invert selection",
        "tooltip-invert": "Check this kist tae skauk chynges til pages wiin the selectit namespace (n the associatit namespace gif checked)",
        "namespace_association": "Associatit namespace",
index a3bc922..61b28a0 100644 (file)
        "tog-enotifminoredits": "صفحن ۾ معمولي ترميمن جي صورت ۾ بہ مون کي برق ٽپال ڪريو",
        "tog-shownumberswatching": "ٽيٽيندڙ يوزرس جو تعداد ڏيکاريو",
        "tog-oldsig": "موجوده دستخط",
+       "tog-uselivepreview": "سڌوسنئون پيش نگاھ استعمال ڪريو",
        "tog-watchlisthideown": "ٽيٽ فهرست مان منهنجون ڪيل ترميمون لڪايو",
+       "tog-watchlisthidebots": "ٽيٽ فهرست تان بوٽ جون ترميمون لڪايو",
+       "tog-watchlisthideminor": "ٽيٽ فهرست تان معمولي ترميمون لڪايو",
        "tog-watchlisthideliu": "لاگ اِن ٿيل يوزرس جون ڪيل ترميمون ٽيٽ فهرست ۾ نہ ڏيکاريو",
+       "tog-watchlisthideanons": "ٽيٽ فهرست تان اڻڄاتل يوزر جون ترميمون لڪايو",
+       "tog-watchlisthidecategorization": "صفحن جو زمرن ۾ ورهائڻ لڪايو",
        "tog-ccmeonemails": "ٻين يوزرس ڏانهن منهنجي موڪليل برق ٽپال جو پرت مون کي اماڻيو",
        "tog-diffonly": "تفاوت هيٺان صفحي جو مواد نہ ڏيکاريو",
        "tog-showhiddencats": "لڪل زمرا ڏيکاريو",
+       "tog-useeditwarning": "مونکي خبردار ڪريو جڏهن مان هڪ ترميم وارو صفحو بغير تبديلين سانڍڻ جي ڇڏيان",
+       "tog-prefershttps": "هميشه محفوظ ڪنيڪشن استعمال ڪريو جڏهن لاگ اِن ٿيل هجو",
        "underline-always": "هميشہ",
        "underline-never": "ڪڏهن بہ نہ",
        "sunday": "آچر",
        "hidden-categories": "{{PLURAL:$1|لڪيل زمرو|لڪيل زمرا}}",
        "hidden-category-category": "لڪل زمرا",
        "category-subcat-count": "{{PLURAL:$2|هن ذمري ۾ رڳو هيٺيون ذيلي ذمرو آهي.|هن ذمري ۾ ڪل $2 مان هيٺيان {{PLURAL:$1|subcategory|$1 ذيلي ذمرا}} آهن.}}",
+       "category-subcat-count-limited": "هن زمري ۾ هيٺيان {{PLURAL:$1|ننڍا زمرا آهن|$1 subcategories}}.",
+       "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-limited": "هيٺيون يا هيٺيان {{PLURAL:$1|فائيل آهي|$1 فائيل آهن}} هن تازي زمري ۾.",
        "listingcontinuesabbrev": "جاري..",
        "index-category": "ڏسڻيل صفحا",
        "noindex-category": "غيرڏسڻيل صفحا",
        "qbmyoptions": "منهنجا صفحا",
        "faq": "ڪپوس",
        "faqpage": "Project:ڪپوس",
+       "actions": "فعل",
        "namespaces": "نانءُ پولار:",
        "variants": "بَدَلَ",
        "navigation-heading": "رهنما مينيو",
        "deletethispage": "هيءُ صفحو ڊاهيو",
        "undeletethispage": "هيءُ صفحو اڻ ڊاهيو",
        "undelete_short": "اڻڊاهيو {{PLURAL:$1|هڪ ترميم|$1 ترميمون}}",
+       "viewdeleted_short": "ڏسو {{PLURAL:$1|هڪ ڊاهيل ترميم|$1 ڊاهيل ترميمون}}",
        "protect": "تحفظيو",
        "protect_change": "تبديل ڪريو",
        "protectthispage": "هيءُ صفحو تحفظيو",
        "jumptosearch": "ڳولا",
        "generic-pool-error": "معذرت سان سرور هاڻي تمام گھڻو سُڪ آهي.\nتمام گھڻا يوزر هتي موجود آهن.\nمهرباني ڪري ٿورو ترسي پوءِ ڪوشش ڪريو.",
        "pool-errorunknown": "اڻ ڄاتل چُڪَ",
+       "poolcounter-usage-error": "استعمال جي خرابي: $1",
        "aboutsite": "{{SITENAME}} بابت",
        "aboutpage": "Project:بابت",
        "copyright": "ڪجھہ ٻيو ڄاڻايل نہ هجڻ جي صورت ۾ سمورو مواد $1 تحت ميسر ڪجي ٿو.",
        "toc": "فهرست",
        "showtoc": "ڏيکاريو",
        "hidetoc": "لڪايو",
+       "collapsible-collapse": "بند ڪريو",
+       "collapsible-expand": "کوليو",
        "confirmable-confirm": "ڇا{{GENDER:$1|توهانکي}} پڪ آهي؟",
        "confirmable-yes": "ها",
        "confirmable-no": "نہ",
        "nstab-help": "امدادي صفحو",
        "nstab-category": "زمرو",
        "mainpage-nstab": "مک صفحو",
+       "nosuchaction": "اهڙو ڪو به فعل نه آهي",
        "nosuchspecialpage": "اهڙو ڪو بہ خاص صفحو ناهي",
        "error": "چُڪَ",
        "databaseerror": "اعدادخاني ۾ چڪ",
        "password-name-match": "توهان جو ڳجھو لفظ توهان جي يوزرنانءُ کان مختلف هجڻ گھرجي.",
        "mailmypassword": "ڳجھو لفظ ٻيهر ترتيب ڪريو",
        "passwordremindertitle": "{{SITENAME}} لاءِ نئون عارضي ڳجھو لفظ",
-       "passwordremindertext": "ڪنهن (شايد توهان آءِ پي پتي $1 تان) اسان کي {{SITENAME}} ($4) لاءِ نئون ڳجھو لفظ اماڻڻ جي گھُرَ ڪئي.\n\nهاڻي يوزر \"$2\" لاءِ ڳجھو لفظ \"$3\" آهي. توهان کي هينئر ئي لاگ اِن ٿي پنهنجو ڳجھو لفظ تبديل ڪرڻ گھرجي.\n\nجيڪڏهن اها گھُرَ اوهان نه ڪئي هئي، يا هاڻي اوهان کي پنهنجو ڳجھو لفظ ياد اچي ويو آهي ۽ توهان ان کي تبديل ڪرڻ نه ٿا چاهيو، ته توهان هن نياپي کي نظر انداز ڪندي پنهنجو پراڻو ڳجھو لفظ ئي استعمال ڪري سگھو ٿا.",
+       "passwordremindertext": "ڪنهن (شايد توهان آءِ پي پتي $1 تان) اسان کي {{SITENAME}} ($4) لاءِ نئون ڳجھو لفظ اماڻڻ جي گھُرَ ڪئي.\"$2\" يوزر لاءِ هڪ ڳجھُ لفظ تخليق ڪيو ويو آهي \"$3\" تي ترتيب ڏنو ويو هو. جيڪڏهن اهو توهان جي ارادو هيو، ته هاڻي توهان کي هينئر ئي لاگ اِن ٿي پنهنجو ڳجھو لفظ تبديل ڪرڻ گھرجي.\nتوهان جو عارضي ڳجھو لفظ {{PLURAL:$5|هڪ ڏينهُن|$5 ڏينهَن}} ۾ ختم ٿيندو.\n\nجيڪڏهن اها گھُرَ اوهان نه ڪئي هئي، يا هاڻي اوهان کي پنهنجو ڳجھو لفظ ياد اچي ويو آهي ۽ توهان ان کي تبديل ڪرڻ نه ٿا چاهيو، ته توهان هن نياپي کي نظر انداز ڪندي پنهنجو پراڻو ڳجھو لفظ ئي استعمال ڪري سگھو ٿا.",
        "noemail": "يُوزر \"$1\" جي ڪو به برق ٽپال پتو درج ٿيل ناهي.",
        "noemailcreate": "توهان کي قابل ڪار برق ٽپال پتو مهيا ڪرڻو پوندو.",
        "passwordsent": "يوزر \"$1\" لاءِ هڪ نئون ڳجھو لفظ برق ٽپال ذريعي اماڻيو ويو آهي.  مهرباني ڪري اهو حاصل ڪرڻ بعد لاگ اِن ٿيندا.",
        "mailerror": "ٽپال اماڻڻ ۾ چُڪَ: $1",
-       "acct_creation_throttle_hit": "توهان جي آءِ پي پتي تان هن وڪيءَ تي پوئين ڏينهن $1 کاتا کلي چڪا آهن. ايتري عرصي ۾ ان کان وڌيڪ کاتا نہ ٿا کولي سگھجن. نتيجتاً ساڳي آءِ پي پتي تان في‌الوقت وڌيڪ کاتا کولي نہ ٿا سگھجن.",
+       "acct_creation_throttle_hit": "توهان جي آءِ پي پتي تان هن وڪيءَ تي پوئين ڏينهن {{PLURAL:$1|1 کاتو|$1 کاتا}} کلي چڪا آهن، جيڪو وڌ ۾ وڌ اجازت ڏنل وقت آهي. \nنتيجتاً ساڳي آءِ پي پتي تان في‌الوقت وڌيڪ کاتا کولي نٿا سگھجن.",
        "emailauthenticated": "توهان جي برق ٽپال پتي جي تصديق $2 تي $3 بجي ڪئي وئي.",
        "emailnotauthenticated": "توهان جو برق ٽپال پتي جي تصديق اڃا ٿي نہ سگھي آهي.",
        "noemailprefs": "انهن فيچرس کي فعال بڻائڻ لاءِ پنهنجي ترجيحات ۾ برق ٽپال پتو ڄاڻايو.",
        "emailconfirmlink": "پنهنجي برق ٽپال پتي جي پَڪَ ڪندا",
+       "invalidemailaddress": "هي ايميل پتو قبول نٿو ڪڪري سگھجي ايئن ٿو لڳي ته انجو فارميٽ قابل قبول نه آهي.\nبراءِ مهرباني هڪ قابل قبول فارميٽ وارو پتو موڪليو يا ان جڳھ کي کالي ڇڏيو.",
        "cannotchangeemail": "هن وڪيءَ تي کاتيدار جو برق ٽپال پتو بدلائي نہ ٿو سگھجي.",
        "emaildisabled": "هيءَ سرزمين برق ٽپال اماڻي نہ ٿي سگھي.",
        "accountcreated": "کاتو کلي چڪو",
        "duplicate-args-warning": "وارننگ: [[:$2]]کي [[:$1]] ڪال ڪري رهيو آهي، ساڻ هڪ کان وڌيڪ قدرن لاءِ ’$3‘ پيراميٽرس لاءِ. فقط آخري قدر مهيا ڪيل استعمال ڪيو ويندو.",
        "parser-template-loop-warning": "سانچو چڪر لڌو ويو: [[$1]]",
        "cantcreateaccounttitle": "کاتو کولي نہ ٿو سگھجي",
-       "cantcreateaccount-text": "$3 جو ڄاڻايل سبب <em>$2</em> آهي.",
-       "cantcreateaccount-range-text": "$3 جو ڄاڻايل سبب \"$2\" آهي.",
+       "cantcreateaccount-text": "هن آءِ پي پتي تا کاتي جي تخليق تي (<strong>$1</strong>)  [[User:$3|$3]] يوزر پاران بندش وڌي وئي آهي.\n\n$3 جو ڄاڻايل سبب آهي <em>$2</em> آهي.",
+       "cantcreateaccount-range-text": "هن آءِ پي پتن جي حد ۾ '''$1''', جنهن ۾ توهان جو آءِ پي پتو به شامل آهي ('''$4''')،  [[User:$3|$3]] پاران پابندي وڌي وئي آهي.\n$3 جو ڄاڻايل سبب \"$2\" آهي.",
        "viewpagelogs": "هن صفحي جا لاگ ڏسو",
        "currentrev": "هاڻوڪو مسودو",
        "currentrev-asof": "$1 جو تازو ترين مسودو",
        "recentchanges-label-bot": "هيءُ ترميم بوٽ عمل ۾ آندي.",
        "recentchanges-label-plusminus": "هن صفحي جي ماپ ۾ هيترين ٻاٺڻين جو ڦير آيو آهي",
        "recentchanges-legend-heading": "\"ڪنجي.\"",
-       "rcnotefrom": "هيٺ '''$2''' کان ٿيندڙ تبديليون پيش ڪجن ٿيون ('''$1''' تائين ڏيکارجن ٿيون).",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (پڻ ڏسو [[Special:NewPages|نون صفحن جي فهرست]])",
+       "rcnotefrom": "هيٺ {{PLURAL:$5|تبديلي آهي|تبديليون آهن}} کان <strong>$3, $4</strong> (تائين <strong>$1</strong> ) ڏيکاريل آهن.",
        "rclistfrom": "$3 $2 کان شروع ٿيندڙ نيون تبديليون",
        "rcshowhideminor": "$1 معمولي ترميمون",
        "rcshowhideminor-show": "نمايو",
        "fileuploadsummary": "خلاصو:",
        "filename-tooshort": "فائيل نانءَُ هيڪاندو ننڍو آهي.",
        "savefile": "فائيل سانڍيو",
-       "upload-scripted-pi-callback": "ان فائيل کي اپلوڊ نه ٿو ڪري سگهي جنهن ۾ ايڪس ايم ايل اسٽائيل شيٽ جون پراسيسنگ هدايتون شامل هجن.",
+       "upload-scripted-pi-callback": "ن فائيل کي اپلوڊ نه ٿو ڪري سگهي جنهن ۾ ايڪس ايم ايل اسٽائيل شيٽ جون پراسيسنگ هدايتون شامل هجن.",
        "uploaded-script-svg": "اسڪرپٽ جوڳو ايليمينٽ ”$1” مليو آهي، اپلوڊ ٿيل ايس وي جي فائيل ۾.",
        "uploaded-hostile-svg": "اپلوڊ ٿيل ايس وي جي فائيل جو غير محفوظ سي ايس ايس ۾ اسٽائيل ايلمينٽ مليو",
        "uploaded-event-handler-on-svg": "واقعي جون هينڊل ڪندڙ وصفون \n<code>$1=\"$2\"</code> ايس وي جي فائيل ۾ اجازت نه آهي.",
-       "uploaded-href-attribute-svg": "Href خاصيتون \n<code>&lt;$1 $2=\"$3\"&gt;</code> نان لوڪل ٽارگيٽ سان جهڙوڪ ( http://, javascript:, وغيره) ايس وي جي فائيل ۾ اجازت مليل نه آهن",
+       "uploaded-href-attribute-svg": "Href خاصيتون <code>&lt;$1 $2=\"$3\"&gt;</code> نان لوڪل ٽارگيٽ سان جهڙوڪ ( http://, javascript:, وغيره) ايس وي جي فائيل ۾ اجازت مليل نه آهن.",
        "uploaded-href-unsafe-target-svg": "href جو غير محفوظ نشانو مليو آهي <code>&lt;$1 $2=\"$3\"&gt;</code> اپلوڊ ٿيل ايس وي جي فائيل ۾",
        "uploaded-animate-svg": "”اينيميٽ“ ٽيگ ڳوليو  جيڪا ٿي سگهي ٿو href کي تبديل ڪري رهي هجي. \"form\" وصف استعمال ڪندي <code>&lt;$1 $2=\"$3\"&gt;</code> اپلوڊ ٿيل ايس وي جي فائيل ۾",
        "uploaded-setting-event-handler-svg": "واقعي کي هينڊل ڪندڙ جي سيٽنگ جون وصفون بلاڪ ٿيل آهن. \n<code>&lt;$1 $2=\"$3\"&gt;</code> اپلوڊ ٿيل ايس وي جي فائيل ۾ مليو",
        "imagelinks": "فائيل جو استعمال",
        "linkstoimage": "هن فائيل سان {{PLURAL:$1|هيٺيون صفحو ڳنڍيل آهي |$1 هيٺيان صفحا ڳنڍيل آهن}}:",
        "nolinkstoimage": "هن فائيل سان ڪو به صفحو ڳنڍيل ناهي.",
-       "sharedupload": "Ù\87Ù\8aØ¡Ù\8e Ù\87Úª Ø´Ø±Ø§ÚªØªÙ\8a Ú\86اÚ\99Ù\87Ù\87 Ø¢Ù\87Ù\8aØ\8c ØªÙ\86Ù\87Ù\86ڪرÙ\8a ان کي ٻيون رٿائون به استعمال ڪري سگھن ٿيون.",
+       "sharedupload": "Ù\87Ù\8aØ¡Ù\8e Ù\81ائÙ\8aÙ\84 $1 Ú©Ø§Ù\86 Ø¢Ù\87Ù\8a Û½ ان کي ٻيون رٿائون به استعمال ڪري سگھن ٿيون.",
        "uploadnewversion-linktext": "هن فائيل جو نئون پرت چاڙهيو",
        "shared-repo-from": "$1 کان",
        "upload-disallowed-here": "توهان هن فائيل مٿان لکي نہ ٿا سگھو.",
        "wantedtemplates": "گھربل سانچا",
        "mostlinked": "صفحن سان وڌانوڌ ڳنڍيندڙ",
        "mostlinkedcategories": "زمرن سان وڌانوڌ ڳنڍيل",
-       "mostlinkedtemplates": "گھڻي کان گھڻا سانچا رکندڙ",
+       "mostlinkedtemplates": "گھڻي کان گھڻا سانچا رکندڙ صفحا",
        "mostcategories": "گھڻي کان گھڻا زمرا رکندڙ صفحا",
        "mostimages": "وڌانوڌ ڳنڍيندڙ فائيل",
        "mostrevisions": "وڌانوڌ ترميميل صفحا",
        "booksources": "ڪتابي وسيلا",
        "booksources-search-legend": "ڪتابي ذريعن جي ڳولا ڪريو",
        "booksources-search": "ڳوليو",
-       "specialloguserlabel": "Ù\8aÙ\8fÙ\88زر:",
-       "speciallogtitlelabel": "عنوان:",
+       "specialloguserlabel": "Ù¾Ù\8aØ´ ÚªÙ\86دÚ\99:",
+       "speciallogtitlelabel": "نشانو (عنوان يا {{ns:user}}:يا يوزنانءُ يور جي لاءِ):",
        "log": "لاگس",
-       "all-logs-page": "سڀئي لاگس",
+       "all-logs-page": "سڀ عوامي لاگس",
        "allpages": "سڀ صفحا",
        "nextpage": "اڳيون صفحو ($1)",
        "prevpage": "پويون صفحو ($1)",
        "emailccme": "نياپي جو پرت مون کي برق ٽپال ڪريو.",
        "emailsent": "برق ٽپال اماڻجي چڪي",
        "emailsenttext": "توهان جو برق ٽپال نياپو اماڻجي چڪو آهي.",
-       "watchlist": "Ù\85Ù\86Ù\87Ù\86جÙ\8a Ù½Ù\8aÙ½ Ù\81Ù\87رست",
+       "watchlist": "ٽيٽ فهرست",
        "mywatchlist": "ٽيٽ فهرست",
        "addwatch": "ٽيٽ فهرست ۾ شامل ڪريو",
-       "addedwatchtext": "صفحو بعنوان \"[[:$1]]\" اوهان جي [[Special:Watchlist|ٽيٽ فهرست]] ۾ شامل ٿي ويو. استقبالي تبديليون هتي درج ٿينديون وينديون. اهو صفحو [[Special:RecentChanges|تازين تبديلين]] واري صفحي تي '''گهرن''' اکرن ۾ نمايان ڪري ڏيکاريو ويندو. جيڪڏهن اوهان اهو سڀ نه ٿا چاهيو ته '''اڻ ٽيٽيو''' تي ڪلڪ ڪريو.",
+       "addedwatchtext": "صفحو\"[[:$1]]\" ان جي بحث وارو صفحو اوهان جي [[Special:Watchlist|ٽيٽ فهرست]] ۾ شامل ڪيو ويو آهي.",
        "removedwatchtext": "صفحو بعنوان \"[[:$1]]\" توهان جي [[Special:Watchlist|ٽيٽ فهرست]] مان هٽي چڪو آهي.",
        "removedwatchtext-short": "\"صفحو بعنوان \"$1\" توهان جي ٽيٽ فهرست مان هٽي چڪو آهي.\"",
        "watch": "ٽيٽيو",
        "unwatch": "اڻ ٽيٽيو",
        "unwatchthispage": "ٽيٽڻ ڇڏيو",
        "notanarticle": "غير موادي صفحو",
-       "watchlist-details": "مباحثي صفحن کان سواءِ {{PLURAL:$1|$1 صفحو|$1 صفحا}} ٽيٽيل.",
-       "wlshowlast": "پوين $1 ڪلاڪن $2 ڏينهن جا  ڏيکاريو",
+       "watchlist-details": "{{PLURAL:$1|$1 صفحو|$1 صفحا}} توهان جي ٽيٽ فهرست، ڳالھ ٻولھ جا صفحا الڳ شمار نٿا ٿين.",
+       "wlshowlast": "گذريل $1 ڪلاڪ $2 ڏينهن ڏيکاريو",
+       "watchlistall2": "سڀ",
+       "wlshowtime": "آخري ڏيکاريو",
+       "wlshowhideminor": "معمولي ترميم",
+       "wlshowhideliu": "کاتيدار يُوزرس",
+       "wlshowhideanons": "گمنام يُوزرس",
+       "wlshowhidemine": "منهنجون ترميمون",
        "watching": "ٽيٽيندي...",
        "unwatching": "اڻ ٽيٽيندي...",
        "enotif_impersonal_salutation": "{{SITENAME}} يُوزر",
        "confirm": "پڪ ڪريو",
        "delete-confirm": "\"$1\" ڊهي چڪو",
        "delete-legend": "ڊاهيو",
-       "historywarning": "خبردار: جيڪو صفحو توهان ڊاهڻ وارا آهيو، تنهن جي هڪ سوانح آهي:",
+       "historywarning": "<strong>خبردار:</strong> جيڪو صفحو توهان ڊاهڻ وڃي رهيا آهيو ان ساڻ هڪ تاريخ آهي $1 {{PLURAL:$1|revision|revisions}}:",
        "confirmdeletetext": "توهان هڪ صفحي کي ان جي سموري سوانح سميت ڊاهڻ وارا آهيو. مهرباني ڪري پڪ ڪندا ته توهان اهو ئي ڪرڻ گھرو ٿا، ۽ اهو ته توهان ان جي نتيجن کان واقف آهيو، ۽ اهو پڻ ته توهان اهو ڪم [[{{MediaWiki:Policy-url}}|پاليسي]]ءَ مطابق ڪري رهيا آهيو.",
        "actioncomplete": "ڪم پُورو",
        "deletedtext": "\"$1\" ڊهي چڪو آهي.\nتازو ڊاٺل صفحن جي فهرست لاءِ $2 ڏسندا.",
        "protect_expiry_old": "انجامي مدو ماضيءَ ۾ آهي.",
        "protect-text": "توهان '''$1''' صفحي جي تحفظاتي سطح ڏسي ۽ بدلائي سگھو ٿا.",
        "protect-locked-access": "توهان جو کاتو صفحن جي تحفظاتي سطح تبديلي ڪرڻ جا اختيار نه ٿو رکي. هيٺ صفحي جون وقوعات (سيٽڱس) پيش ڪجن ٿيون '''$1''':",
-       "protect-cascadeon": "هيءُ صفحو في الوقت تحفظيل آهي، ڇاڪاڻ ته اهو هيٺين {{PLURAL:$1|صفحي|صفحن}} جو حصو آهي، جنهن تي تحفظ در تحفظ لاڳو ٿيل آهي.",
+       "protect-cascadeon": "هيءُ صفحو في الوقت تحفظيل آهي، ڇاڪاڻ ته اهو هيٺين {{PLURAL:$1|صفحي|صفحن}} جو حصو آهي، جنهن تي تحفظ در تحفظ لاڳو ٿيل آهي.\nChanges to this page's protection level will not affect the cascading protection.",
        "protect-default": "سمورن يُوزرس کي اجازت ڏيو",
-       "protect-fallback": "\"$1\" جي اجازت گھرجي",
-       "protect-level-autoconfirmed": "غÙ\8aرکاتÙ\8aدار Ù\8aÙ\8fÙ\88زرس Ú©Ù\8a Ø¨Ù\86دشيو",
-       "protect-level-sysop": "صرف منتظمين",
+       "protect-fallback": "\"$1\" جي اجازت وارن يوزرس کي اجازت ڏيو",
+       "protect-level-autoconfirmed": "Ø®Ù\88دڪار Ù\86Ù\85Ù\88Ù\86Ù\8a Ù¾Úª ÚªÙ\8aÙ\84 Ù\8aÙ\88زرس Ú©Ù\8a Ø§Ø¬Ø§Ø²Øª Ú\8fيو",
+       "protect-level-sysop": "صرف منتظمين کي اجازت ڏيو",
        "protect-summary-cascade": "تحفظ در تحفظ",
        "protect-cascade": "هن صفحي ۾ شامل صفحن کي تحفظيو (تحفظ در تحفظ)",
        "protect-cantedit": "توهان هن صفحي جي تحفظاتي سطح نٿا بدلائي سگھو، ڇاڪاڻ ته توهان ان کي سنوارڻ جي اجازت نٿا رکو.",
        "protect-otherreason-op": "ٻيو سبب",
-       "protect-expiry-options": "2 ڪلاڪ:2 hours،1 ڏينهن:1 day،3 ڏينهن:3 days،1 هفتو:1 week،2 هفتا:2 weeks،1 مهينو:1 month،3 مهينا:3 months،6 مهينا:6 months،1 سال:1 year،لامحدود:infinite",
+       "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,اڻ کٽ:infinite",
        "restriction-type": "اجازتنامو:",
        "restriction-level": "روڪ سطح:",
        "pagesize": "(ٻاٽڻيون)",
        "contributions": "{{GENDER:$1|يوزر}} جون ڀاڱيداريون",
        "contributions-title": "يُوزر ڀاڱيداريون براءِ $1",
        "mycontris": "ڀاڱيداريون",
-       "contribsub2": "براءِ $1 ($2)",
-       "uctop": "(سِرُ)",
+       "contribsub2": "{{GENDER:$3|$1}} ($2) لاءِ",
+       "uctop": "(هاڻوڪو)",
        "month": "مهينو (۽ اڳوڻيون):",
        "year": "سال (۽ اڳوڻيون):",
        "sp-contributions-newbies-sub": "نون کاتن لاءِ",
        "sp-contributions-blocklog": "بنسش لاگ",
-       "sp-contributions-talk": "بحث",
+       "sp-contributions-talk": "ڳالھ",
        "sp-contributions-submit": "ڳوليو",
        "whatlinkshere": "هتان ڇا ڳنڍيل آهي",
        "whatlinkshere-title": "$1 سان ڳنڍيل صفحا",
        "whatlinkshere-filters": "ڇاڻيون",
        "block": "يُوزر کي بندشيو",
        "unblock": "يُوزر کي اڻبندشيو",
-       "blockip": "يُوزر کي روڪيو",
+       "blockip": "{{GENDER:$1|يوزر}} تي بندش وجھو",
        "blockip-legend": "يُوزر کي بندشيو",
        "ipbexpiry": "اختتام:",
        "ipbreason": "سبب:",
-       "ipboptions": "2 ڪلاڪ:2 hours،1 ڏينهن:1 day،3 ڏينهن:3 days،1 هفتو:1 week،2 هفتا:2 weeks،1 مهينو:1 month،3 مهينا:3 months،6 مهينا:6 months،1 سال:1 year،لامحدود:infinite",
+       "ipboptions": "2 ڪلاڪ:2 hours,1 ڏينهن:1 day,3 days:3 days,1 هفتو:1 week,2 weeks:2 weeks,1 مهينا:1 month,3 مهينا:3 months,6 مهينا:6 months,1 سال:1 year,اڻ کٽ:infinite",
        "ipb-confirm": "بندش جي پڪ ڪريو",
        "badipaddress": "ناقابلڪار آءِ پي پتو",
        "blockipsuccesssub": "بندش ڪامياب ٿي",
        "unblocked-range": "$1 تان بندش هتي چڪي آهي.",
        "unblocked-id": "بندش $1 هٽي چڪي آهي.",
        "blocklist": "بندشيل يُوزرس",
-       "ipblocklist": "بندشيل يوزرنانءُ ۽ آءِ پي پتا",
+       "ipblocklist": "بندش وڌل يوزرس",
        "blocklist-timestamp": "اوقاتي مهر",
        "blocklist-target": "هدف",
        "blocklist-reason": "سبب",
        "unlockbtn": "اعدادخاني کي کوليو",
        "move-page": "$1 چوريو",
        "move-page-legend": "صفحو چوريو",
-       "movepagetext": "هيٺيون فارم استعمال ڪندي ڪنهن صفحي کي نئون عنوان ڏئي سگھجي ٿو، جنهن سان سمورو صفحو نئين عنوان ڏانهن هليو ويندو. اڳوڻو عنوان نئين عنوان ڏانهن چورڻو بنجي ويندو. ان ڳالهه جي پڪ ڪرڻ ذميواري توهان تي آهي ته ڳنڍڻا اتي ئي وٺي وڃن ٿا جتي انهن کي وٺي وڃڻ گھرجي.\n\nياد رکندا ته جيڪڏهن نئين عنوان سان اڳي ئي ڪو مضمون موجود آهي ته پوءِ صفحو '''نه''' چوريو ويندو، سوا ان جي ته موجوده صفحو محظ خالي آهي يا ڪا به سوانح نه رکندڙ ڪو چورڻو آهي.\n\n'''خبردار!'''\nاها هڪ مقبول صفحي لاءِ ڪا غير متوقه ۽ انتهائي اڻوڻندڙ تبديلي ثابت ٿي سگھي ٿي؛ براءِ مهرباني اڳتي وڌڻ کان اڳ پڪ ڪندا ته توهان اها تبديلي آڻڻ جي نتيجن کان چڱيءَ ريت واقف آهيو.",
-       "movepagetalktext": "واسطيدار مباحثي صفحو پاڻهي ئي چوريو ويندو ماهسوا:\n\n*نئين عنوان سان هڪ اڻ پورو يعني غير خالي مباحثي صفحو اڳي ئي وجود رکندو هجي، يا\n*توهان هيٺين باڪس کي اڻ ٽِڪ ڪريو\n\nانهن صورتن ۾، جيڪڏهن توهان چاهيو ته صفحي کي پاڻ چوري يا ضمائي سگھو ٿا.",
+       "movepagetext": "هيٺيون فارم استعمال ڪندي ڪنهن صفحي کي نئون عنوان ڏئي سگھجي ٿو، جنهن سان سمورو صفحو نئين عنوان ڏانهن هليو ويندو. \nاڳوڻو عنوان نئين عنوان ڏانهن چورڻو بنجي ويندو. \nتوهان  چورڻن کي سنواري سگھو ٿا جيڪي اصل عنوان ڏانهن خودبخود اشارو ڪن ٿا.\nIf you choose not to, be sure to check for [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].\nان ڳالهه جي پڪ ڪرڻ ذميواري توهان تي آهي ته ڳنڍڻا اتي ئي وٺي وڃن ٿا جتي انهن کي وٺي وڃڻ گھرجي.\n\nياد رکندا ته جيڪڏهن نئين عنوان سان اڳي ئي ڪو مضمون موجود آهي ته پوءِ صفحو '''نه''' چوريو ويندو، سوا ان جي ته موجوده صفحو محظ خالي آهي يا ڪا به سوانح نه رکندڙ ڪو چورڻو آهي.\n\n<strong>خبردار!</strong>\nاها هڪ مقبول صفحي لاءِ ڪا غير متوقه ۽ انتهائي اڻوڻندڙ تبديلي ثابت ٿي سگھي ٿي؛ براءِ مهرباني اڳتي وڌڻ کان اڳ پڪ ڪندا ته توهان اها تبديلي آڻڻ جي نتيجن کان چڱيءَ ريت واقف آهيو.",
+       "movepagetalktext": "جيڪڏهن توهان هن خاني کي نشان لڳائيندئو، واسطيدار مباحثي صفحو پاڻ ئي چوريو ويندو ماسواءِ اتي ڪو اڳ ئي ڪو غيرخالي مباحثي صفحو موجود هجي.\n\nان صورت ۾، جيڪڏهن توهان چاهيو ته صفحي کي پاڻ چوري يا ضم ڪري سگھو ٿا.",
        "movenotallowed": "توهان کي صفحا چورڻ جي اجازت حاصل ڪانهي.",
        "movenotallowedfile": "توهان کي فائيلس چورڻ جي اجازت حاصل ڪانهي.",
-       "newtitle": "Ù\86ئÙ\8aÙ\86 Ø¹Ù\86Ù\88اÙ\86 Ú\8fاÙ\86Ù\87ن:",
+       "newtitle": "Ù\86ئÙ\88Ù\86 Ø¹Ù\86Ù\88ان:",
        "move-watch": "هيءُ صفحو ٽيٽيو",
        "movepagebtn": "صفحو چوريو",
        "pagemovedsub": "چورڻ جو عمل ڪامياب ٿيو",
        "revertmove": "ورايو",
        "delete_and_move": "ڊاهيو ۽ چوريو",
        "delete_and_move_confirm": "جي ها، صفحو ڊاهيو",
-       "delete_and_move_reason": "چورڻ جو عمل ممڪن بنائڻ لاءِ ڊاٺو ويو",
+       "delete_and_move_reason": "\"[[$1]]\" کان چورڻ جو عمل ممڪن بڻائڻ لاءِ ڊاٺو ويو",
        "export": "صفحا برآمديو",
        "export-submit": "برآمديو",
        "export-download": "بطور فائيل سانڍيو",
        "tooltip-n-help": "ڳولي لهڻ جي جاءِ.",
        "tooltip-t-whatlinkshere": "هتان ڳنڍيل سمورا وڪي صفحا",
        "tooltip-t-recentchangeslinked": "ويجھڙائيءَ ۾ صفحن ۾ ٿيل تبديليون هن صفحي سان ڳنڍيل آهن",
+       "tooltip-feed-atom": "هن صفحي لاءِ ايٽم فيڊ",
        "tooltip-t-contributions": "هن يُوزر جون ڀاڱيداريون ڏسو",
        "tooltip-t-emailuser": "هن يُوزر کي برق ٽپال اماڻيو",
        "tooltip-t-upload": "فائيل چاڙهيو",
        "tooltip-watch": "هيءُ صفحو پنهنجي ٽيٽ فهرست ۾ شامل ڪريو",
        "tooltip-rollback": "هن صفحي ۾ پوئين ڀاڱيدار جي ڪيل ترميم (ترميمن) کي هڪ ڪلڪ سان اڻ ڪريو.",
        "tooltip-summary": "ننڍو خلاصو ڏيو",
-       "anonymous": "{{SITENAME}} جا نامعلوم يوزرس",
+       "anonymous": "گمنام {{PLURAL:$1|يوزر|يوزرس}} جو {{SITENAME}}",
        "pageinfo-toolboxlink": "صفحي جي معلومات",
        "pageinfo-contentpage-yes": "ها",
        "pageinfo-protect-cascading-yes": "ها",
        "exif-imagewidth": "ويڪر",
        "exif-imagelength": "اوچائي",
        "exif-bitspersample": "ٻٽڻيون في جُز",
+       "exif-orientation": "شروعات",
        "exif-samplesperpixel": "جزن جو تعداد",
        "exif-xresolution": "افقي تحلل",
        "exif-yresolution": "عمودي تحلل",
        "exif-stripoffsets": "عڪسي اعداد جي مڪانيت",
        "exif-datetime": "فائيل ۾ تبديليءَ جي تاريخ ۽ وقت",
        "exif-imagedescription": "عڪس عنوان",
+       "exif-make": "ڪيمرا ٺاهيندڙ",
        "exif-model": "ڪيميرا ماڊل",
        "exif-software": "مستعمل منتقگري",
        "exif-artist": "ليکڪ",
        "confirmemail": "برق ٽپال پتي جي پَڪَ ڪندا",
        "confirmemail_send": "خاطري ڪوڊ اماڻيو",
        "confirmemail_sent": "خاطري برق ٽپال اماڻي وئي.",
-       "confirmemail_success": "توھان جي برق ٽپال جي پڪ ڪئي وئي آھي. ھاڻِ توھان لاگ ان ٿي وڪيءَ جو مزو وٺي سگھو ٿا",
+       "confirmemail_success": "توهان جي ايميل پتي جي پڪ ڪئي وئي آهي.\nهاڻ توهان [[Special:UserLogin|لاگ اِن]] ۽ وڪي جو مزو وٺي سگھو ٿا.",
        "confirmemail_loggedin": "توهان جي برق ٽپال پتي جي تصديق هاڻي ٿي چڪي آهي.",
        "confirmemail_subject": "{{SITENAME}} برق ٽپال پتي جي تصديق",
        "recreate": "ورسرجيو",
        "htmlform-title-not-exists": "$1 وجود نٿو رکي.",
        "logentry-delete-delete": "$1 {{GENDER:$2|ڊاٺو}} صفحو $3",
        "revdelete-uname-hid": "لڪل يُوزرنانءُ",
+       "logentry-move-move": "$1 {{GENDER:$2|چوريو}} صفحو $3 ڏانهن $4",
        "logentry-newusers-create": "يوزر کاتو $1 {{GENDER:$2|جوڙيو ويو}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|چاڙهيو}} $3",
        "rightsnone": "(ڪو بہ نہ)",
index 402b9b2..9619871 100644 (file)
        "wlheader-showupdated": "Poslapē, katrėi pakeistė nu Tamstas paskotėnė apsėlonkėma čiesa anūs, īr pažīmietė '''pastuorintā'''",
        "wlnote": "Ruoduoma '''$1''' paskotėniu pakeitėmu, atlėktū par '''$2''' paskotėniu adīnu.",
        "wlshowlast": "Ruodītė paskotėniu $1 adīnu, $2 dėinū a  pakeitėmus",
+       "watchlistall2": "vėsos",
        "watchlist-options": "Keravuojamu sāroša pasėrinkėmā",
        "watching": "Kergiama keravuojamu sārošon...",
        "unwatching": "Šalėnama ėš keravuojamu sāraša...",
index 0e796d2..8960ec2 100644 (file)
        "wlheader-showupdated": "* Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
        "wlnote": "Ispod {{PLURAL:$1|je najskorija izmjena|su <strong>$1</strong> najskorije izmjene|<strong>$1</strong> najskorijih izmjena}} načinjenih {{PLURAL:$2|posljednjeg sata|u posljednjih <strong>$2</strong> sata|u posljednjih <strong>$2</strong> sati}}, od $3, $4.",
        "wlshowlast": "Prikaži posljednjih $1 sati $2 dana",
+       "watchlistall2": "sve",
        "watchlist-options": "Opcije liste praćenja",
        "watching": "Pratim... / Додавање на списак надгледања...",
        "unwatching": "Ne pratim…",
index 3dcd90b..825774a 100644 (file)
        "nstab-template": "සැකිල්ල",
        "nstab-help": "උදවු පිටුව",
        "nstab-category": "ප්‍රවර්ගය",
+       "mainpage-nstab": "මුල් පිටුව",
        "nosuchaction": "මෙනමින් කාර්යයක් නොමැත",
        "nosuchactiontext": "URL (කලාප ලිපිනය) විසින් හුවා දක්වා ඇත්තේ වලංගු නොවූ කාර්යයකි.\nඔබ සමහරවිට URL (කලාප ලිපිනය) අකුරු වරදවා සටහන් කර ඇත, නැතහොත් වැරදි සබැඳුමක් ඔස්සේ පැමිණ ඇත.\nමෙය සමහරවිට {{SITENAME}} විසින් භාවිතා කරන මෘදුකාංගයන්හි bugදෝෂයක් පිළිඹිබු කරන්නක්ද විය හැක.",
        "nosuchspecialpage": "මෙම නමැති විශේෂ පිටුවක් නොමැත",
        "createaccountreason": "හේතුව:",
        "createacct-reason": "හේතුව",
        "createacct-reason-ph": "ඔබ තවත් ගිණුමක් තනන්නේ කුමක් නිසාද",
-       "createacct-captcha": "ආරක්‍ෂක පරික්‍ෂාව",
-       "createacct-imgcaptcha-ph": "ඉහතින් පෙනෙන වචනය ඇතුළත් කරන්න",
        "createacct-submit": "ඔබේ ගිණුම තනන්න",
        "createacct-another-submit": "තවත් ගිණුමක් ආරම්භ කරන්න",
        "createacct-benefit-heading": "{{SITENAME}} ඔබ වැනි අයෙක් විසින් නිමවා ඇත",
        "wlheader-showupdated": "ඔබ විසින් ඒවාට අවසන් වරට පිවිසුනු පසුව වෙනස්ව තිබෙන පිටු <strong>තදකුරු</strong> වලින් පෙන්වා ඇත.",
        "wlnote": "පහත දැක්වෙන්නේ $3, $4 මෙන්, අවසන් {{PLURAL:$2|පැය|පැය '''$2''' }} තුලදී සිදු කෙරී ඇති {{PLURAL:$1|අවසන් වෙනස්වීම්යි |අවසන් වෙනස්වීම්  '''$1''' යි}}.",
        "wlshowlast": "පසුගිය පැය $1 දින $2 පෙන්වන්න",
+       "watchlistall2": "සියල්ල",
        "watchlist-options": "තෝරාගතහැකි මුර ලැයිස්තු සැකසුම්",
        "watching": "මුර කරමින්...",
        "unwatching": "මුර නොකරමින්...",
        "tooltip-ca-nstab-main": "අන්තර්ගත පිටුව නරඹන්න",
        "tooltip-ca-nstab-user": "පරිශීලක පිටුව නරඹන්න",
        "tooltip-ca-nstab-media": "මාධ්‍ය පිටුව නරඹන්න",
-       "tooltip-ca-nstab-special": "මෙය විශේෂ පිටුවකි, එයම සංස්කරණය කිරීමට ඔබට නොහැක",
+       "tooltip-ca-nstab-special": "මෙය විශේෂ පිටුවකි, එය සංස්කරණය කිරීමට නොහැකි ය",
        "tooltip-ca-nstab-project": "ව්‍යාපෘති පිටුව නරඹන්න",
        "tooltip-ca-nstab-image": "ගොනු පිටුව නරඹන්න",
        "tooltip-ca-nstab-mediawiki": "පද්ධති පණිවුඩය නරඹන්න",
        "feedback-subject": "විෂයය:",
        "feedback-submit": "යොමන්න",
        "feedback-thanks": "ස්තුතියි! ඔබේ ප්‍රතිචාරය \"[$2 $1]\" පිටුවට එක් කරන ලදී.",
+       "feedback-useragent": "පරිශීලක නියෝජිත:",
        "searchsuggest-search": "ගවේශණය කරන්න",
        "searchsuggest-containing": "ඇතුළත් වෙමින් පවතී...",
        "api-error-badaccess-groups": "මෙම විකියට ගොනු උඩුගතකිරීම සඳහා ඔබට අවසර නැත.",
index 6dca4f7..f484f07 100644 (file)
        "wlheader-showupdated": "Strani, spremenjene od vašega zadnjega ogleda, so prikazane '''krepko'''.",
        "wlnote": "{{PLURAL:$1|Navedena je zadnja|Navedeni sta zadnji|Navedene so zadnje|Navedenih je zadnjih}} <strong>$1</strong> {{PLURAL:$1|sprememba|spremembi|spremembe|sprememb}} v {{PLURAL:$2|zadnji <strong>$2</strong> uri|zadnjih <strong>$2</strong> urah}}, od $3, $4.",
        "wlshowlast": "Prikaži zadnjih $1 ur; $2 dni",
+       "watchlistall2": "vse",
+       "wlshowtime": "Prikaži zadnje:",
+       "wlshowhideminor": "manjša urejanja",
+       "wlshowhidebots": "boti",
+       "wlshowhideliu": "registrirani uporabniki",
+       "wlshowhideanons": "brezimni uporabniki",
+       "wlshowhidepatr": "pregledana urejanja",
+       "wlshowhidemine": "moja urejanja",
        "watchlist-options": "Možnosti spiska nadzorov",
        "watching": "Nadziranje ...",
        "unwatching": "Nenadziranje ...",
index 0a58097..22352f9 100644 (file)
        "wlheader-showupdated": "Странице које су измењене откад сте их последњи пут посетили су '''подебљане'''.",
        "wlnote": "Испод {{PLURAL:$1|је последња измена|су последње <strong>$1</strong> измене|је последњих <strong>$1</strong> измена}} у {{PLURAL:$2|претходном сату|претходна <strong>$2</strong> сата|претходних <strong>$2</strong> сати}}, закључно са $3, $4.",
        "wlshowlast": "Прикажи последњих $1 сати, $2 дана",
+       "watchlistall2": "све",
        "watchlist-options": "Поставке списка надгледања",
        "watching": "Надгледање…",
        "unwatching": "Прекидање надгледања…",
        "move-page-legend": "Премештање странице",
        "movepagetext": "Доњи образац ће преименовати страницу, премештајући целу историју на ново име.\nСтари наслов постаће преусмерење на нови наслов.\nМожете аутоматски изменити преусмерење до изворног наслова.\nПогледајте [[Special:DoubleRedirects|двострука]] или [[Special:BrokenRedirects|покварена]] преусмерења.\nНа вама је одговорност да везе и даље иду тамо где би требало да иду.\n\nСтраница '''неће''' бити премештена ако већ постоји страница с тим именом, осим ако је она празна, садржи преусмерење или нема историју измена.\nТо значи да можете вратити страницу на претходно место ако погрешите, али не можете заменити постојећу страницу.\n\n'''Пажња!'''\nОво може представљати драстичну и неочекивану измену за популарну страницу;\nдобро размислите о последицама пре него што наставите.",
        "movepagetext-noredirectfixer": "Доњи образац ће преименовати страницу, премештајући целу историју на ново име.\nСтари наслов постаће преусмерење на нови наслов.\nПогледајте [[Special:DoubleRedirects|двострука]] или [[Special:BrokenRedirects|покварена]] преусмерења.\nНа вама је одговорност да везе и даље иду тамо где би требало да иду.\n\nСтраница '''неће''' бити премештена ако већ постоји страница с тим именом, осим ако је она празна, садржи преусмерење или нема историју измена.\nТо значи да можете вратити страницу на претходно место ако погрешите, али не можете заменити постојећу страницу.\n\n'''Пажња!'''\nОво може представљати драстичну и неочекивану измену за популарну страницу;\nдобро размислите о последицама пре него што наставите.",
-       "movepagetalktext": "Ð\90ко Ñ\81Ñ\82е Ð¿Ñ\80овеÑ\80или Ð¾Ð²Ñ\83 ÐºÑ\83Ñ\82иÑ\98Ñ\83, Ð¾Ð´Ð³Ð¾Ð²Ð°Ñ\80аÑ\98Ñ\83Ñ\9bа Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 Ð±Ð¸Ñ\9bе Ð°Ñ\83Ñ\82омаÑ\82Ñ\81ки Ð¿Ñ\80емеÑ\88Ñ\82ена Ð½Ð° Ð½Ð¾Ð²Ð¸ Ð½Ð°Ñ\81лов, Ð¾Ñ\81им Ð°ÐºÐ¾ Ð²ÐµÑ\9b Ð¿Ð¾Ñ\81Ñ\82оÑ\98и Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80.\n\nУ Ñ\82ом Ñ\81лÑ\83Ñ\87аÑ\98Ñ\83, Ð¼Ð¾Ñ\80а Ñ\80Ñ\83Ñ\87но Ð´Ð° Ñ\81е Ð¿Ñ\80емеÑ\81Ñ\82и Ð¸Ð»Ð¸ Ñ\81поÑ\98и, ако има потребе за тим.",
+       "movepagetalktext": "Ð\90ко Ñ\81Ñ\82е Ð¾Ð·Ð½Ð°Ñ\87или Ð¾Ð²Ð°Ñ\98 ÐºÐ²Ð°Ð´Ñ\80аÑ\82иÑ\9b, Ð¾Ð´Ð³Ð¾Ð²Ð°Ñ\80аÑ\98Ñ\83Ñ\9bа Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 Ð±Ð¸Ñ\9bе Ð°Ñ\83Ñ\82омаÑ\82Ñ\81ки Ð¿Ñ\80емеÑ\88Ñ\82ена Ð½Ð° Ð½Ð¾Ð²Ð¸ Ð½Ð°Ñ\81лов, Ð¾Ñ\81им Ð°ÐºÐ¾ Ð²ÐµÑ\9b Ð¿Ð¾Ñ\81Ñ\82оÑ\98и Ñ\81Ñ\82Ñ\80аниÑ\86а Ð·Ð° Ñ\80азговоÑ\80 Ñ\81а Ð¸Ñ\81Ñ\82им Ð½Ð°Ñ\81ловом.\n\nУ Ñ\82ом Ñ\81лÑ\83Ñ\87аÑ\98Ñ\83, Ð¼Ð¾Ñ\80аÑ\9bеÑ\82е Ñ\80Ñ\83Ñ\87но Ð´Ð° Ñ\98е Ð¿Ñ\80емеÑ\81Ñ\82иÑ\82е Ð¸Ð»Ð¸ Ñ\81поÑ\98иÑ\82е, ако има потребе за тим.",
        "moveuserpage-warning": "'''Упозорење:''' на путу сте да преместите корисничку страницу. Имајте у виду да ће само страница бити премештена, а сам корисник ''неће'' бити преименован.",
        "movecategorypage-warning": "<strong>Упозорење:</strong> премештате страницу категорије. Имајте на уму да ће само страница бити премештена и да све странице у старој категорији <em>неће</em> бити рекатегорисане у нову категорију.",
        "movenologintext": "Морате да будете регистровани и [[Special:UserLogin|пријављени]] да бисте премештали странице.",
index ccee765..c6f57aa 100644 (file)
        "wlheader-showupdated": "Stranice koje su izmenjene otkad ste ih poslednji put posetili su '''podebljane'''.",
        "wlnote": "Ispod {{PLURAL:$1|je poslednja izmena|su poslednje <strong>$1</strong> izmene|je poslednjih <strong>$1</strong> izmena}} u {{PLURAL:$2|prethodnom satu|prethodna <strong>$2</strong> sata|prethodnih <strong>$2</strong> sati}}, zaključno sa $3, $4.",
        "wlshowlast": "Prikaži poslednjih $1 sati, $2 dana",
+       "watchlistall2": "sve",
        "watchlist-options": "Postavke spiska nadgledanja",
        "watching": "Nadgledanje…",
        "unwatching": "Prekidanje nadgledanja…",
        "move-page-legend": "Premeštanje stranice",
        "movepagetext": "Donji obrazac će preimenovati stranicu, premeštajući celu istoriju na novo ime.\nStari naslov postaće preusmerenje na novi naslov.\nMožete automatski izmeniti preusmerenje do izvornog naslova.\nPogledajte [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|pokvarena]] preusmerenja.\nNa vama je odgovornost da veze i dalje idu tamo gde bi trebalo da idu.\n\nStranica '''neće''' biti premeštena ako već postoji stranica s tim imenom, osim ako je ona prazna, sadrži preusmerenje ili nema istoriju izmena.\nTo znači da možete vratiti stranicu na prethodno mesto ako pogrešite, ali ne možete zameniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može predstavljati drastičnu i neočekivanu izmenu za popularnu stranicu;\ndobro razmislite o posledicama pre nego što nastavite.",
        "movepagetext-noredirectfixer": "Donji obrazac će preimenovati stranicu, premeštajući celu istoriju na novo ime.\nStari naslov postaće preusmerenje na novi naslov.\nPogledajte [[Special:DoubleRedirects|dvostruka]] ili [[Special:BrokenRedirects|pokvarena]] preusmerenja.\nNa vama je odgovornost da veze i dalje idu tamo gde bi trebalo da idu.\n\nStranica '''neće''' biti premeštena ako već postoji stranica s tim imenom, osim ako je ona prazna, sadrži preusmerenje ili nema istoriju izmena.\nTo znači da možete vratiti stranicu na prethodno mesto ako pogrešite, ali ne možete zameniti postojeću stranicu.\n\n'''Pažnja!'''\nOvo može predstavljati drastičnu i neočekivanu izmenu za popularnu stranicu;\ndobro razmislite o posledicama pre nego što nastavite.",
-       "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, biće automatski premeštena zajedno s njom, osim ako:\n*Već postoji stranica za razgovor s novim naslovom, ili\n*Ako je označeno dolenavedeno polje.\n\nU ovom slučaju mora ručno da se premesti ili spoji, ako ima potrebe za tim.",
+       "movepagetalktext": "Ako ste označili ovaj kvadratić, odgovarajuća stranica za razgovor biće automatski premeštena na novi naslov, osim ako već postoji stranica za razgovor sa istim naslovom.\n\nU tom slučaju, moraćete ručno da je premestite ili spojite, ako ima potrebe za tim.",
        "moveuserpage-warning": "'''Upozorenje:''' na putu ste da premestite korisničku stranicu. Imajte u vidu da će samo stranica biti premeštena, a sam korisnik ''neće'' biti preimenovan.",
        "movecategorypage-warning": "<strong>Upozorenje:</strong> premeštate stranicu kategorije. Imajte na umu da će samo stranica biti premeštena i da sve stranice u staroj kategoriji <em>neće</em> biti rekategorisane u novu kategoriju.",
        "movenologintext": "Morate da budete registrovani i [[Special:UserLogin|prijavljeni]] da biste premeštali stranice.",
index 9fc9329..7997757 100644 (file)
        "missingarticle-rev": "(versionsnummer: $1)",
        "missingarticle-diff": "(Skillnad: $1, $2)",
        "readonly_lag": "Databasen har automatiskt skrivskyddats medan slavdatabasservrarna synkroniseras med huvudservern.",
+       "nonwrite-api-promise-error": "HTTP-headern 'Promise-Non-Write-API-Action' skickades men förfrågan var till en API-skrivmodul.",
        "internalerror": "Internt fel",
        "internalerror_info": "Internt fel: $1",
        "internalerror-fatal-exception": "Allvarligt undantag av typen \"$1\"",
        "wlheader-showupdated": "Sidor som har ändrats sedan ditt senaste besök visas i '''fetstil.'''",
        "wlnote": "Nedan finns {{PLURAL:$1|den senaste ändringen|de senaste <strong>$1</strong> ändringarna}} under {{PLURAL:$2|den senaste timmen|de senaste <strong>$2</strong> timmarna}} från den $3 kl. $4.",
        "wlshowlast": "Visa senaste $1 timmarna $2 dygnen",
+       "watchlistall2": "alla",
+       "wlshowtime": "Visa senaste:",
+       "wlshowhideminor": "mindre redigering",
+       "wlshowhidebots": "robotar",
+       "wlshowhideliu": "registrerade användare",
+       "wlshowhideanons": "anonyma användare",
+       "wlshowhidepatr": "patrullerade redigeringar",
+       "wlshowhidemine": "mina redigeringar",
        "watchlist-options": "Alternativ för bevakningslistan",
        "watching": "Bevakar...",
        "unwatching": "Avbevakar...",
index 906f616..69f88db 100644 (file)
        "wlheader-showupdated": "உங்கள் கடைசி வருகைக்குப் பின்னர் மாற்றங்கள் செய்யப்பட்ட பக்கங்கள் '''தடித்த எழுத்துக்களில்''' காட்டப்பட்டுள்ளன",
        "wlnote": "பின்வருவன கடைசி {{PLURAL:$2|மணித்தியாலத்தில்|'''$2''' மணித்தியாலங்களில்}} செய்யப்பட்ட {{PLURAL:$1|கடைசி ஒரு மாற்றமாகும்|கடைசி $1 மாற்றங்களாகும்}}.",
        "wlshowlast": "கடைசி $1 மணித்தியாலங்கள் $2 நாட்களைக் காட்டு",
+       "watchlistall2": "அனைத்து",
        "watchlist-options": "கவனிப்பு பட்டியலின் விருப்பத் தேர்வுகள்",
        "watching": "கவனிக்கப்படுகிறது...",
        "unwatching": "கவனிப்பு விடப்படுகிறது...",
index c02cbd6..154d7fc 100644 (file)
        },
        "tog-underline": "ಲಿಂಕ್’ಲೆದ ತಿರ್ತ್ ಗೆರೆ(ಅಂಡರ್ ಲೈನ್) ಪಾಡ್’ಲೆ",
        "tog-hideminor": "ಎಲ್ಯೆಲ್ಯ ಬದಲಾವಣೆಲೆನ್ ದೆಂಗಾಲೆ",
-       "tog-extendwatchlist": "ಅನ್ವಯಿಸುನಂಚಿನ ಪೂರಾ ಬದಲಾವಣೆಲೆನ್ ತೊಜ್ಪಾಯೆರೆ ಪಟ್ಟಿನ್(ವಾಚ್ ಲಿಸ್ಟ್) ಬುಡ್ಪಾಲೆ.",
-       "tog-usenewrc": "ಪರಿಷ್ಕರಿಸ್ ನ ಬದಲಾವಣೆಲು (JavaScript)",
+       "tog-hidepatrolled": "ಕಾತೊಂದಿಪ್ಪುನ ಸಂಪದನೆಲೆನ್ ಇಂಚಿಪೊದ ಬದಲಾವಣೆಡ್ ಅಡೆಂಗಲ",
+       "tog-newpageshidepatrolled": "ಕಾತೊಂದಿಪ್ಪುನ ಪುಟೊಲೆನ್ ಪೊಸ ಪುಟೊಕುಲೆ ಪಟ್ಟಿಡ್ ಅಡೆಂಗಲ",
+       "tog-hidecategorization": "ವಿಂಗಡಿತ್‍ನ ಪುಟೊಲೆನ್ ಅಡೆಂಗಲ",
+       "tog-extendwatchlist": "ಕೇವಲೊ ಇಂಚಿಪೊದ ಬದಲಾವಣೆಲತ್ತಂದೆ, ಸಂಬಂದೊ ಇಪ್ಪುನ ಮಾತ ಬದಲಾವಣೆನ್ಲಾ ತೋಜುನಂಚನೆ ಪಟ್ಟಿನ್ ವಿಸ್ತರಿಸಲೆ",
+       "tog-usenewrc": "ಇಂಚಿಪೊದ ಬದಲಾವಣೆ ಬೊಕ್ಕೊ ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್ ಗುಂಪು ಪುಟೊ ಬದಲಾವಣೆ",
        "tog-numberheadings": "ಹೆಡ್ಡಿಂಗ್’ಲೆಗ್ ಸಂಖ್ಯೆಲೆನ್ ತೊಜ್ಪಾಲೆ",
-       "tog-showtoolbar": "ಸಂಪಾದನೆದ ಉಪಕರಣನ್(ಎಡಿಟ್ ಟೂಲ್ ಬಾರ್) ತೊಜ್ಪಾಲೆ (JavaScript)",
-       "tog-editondblclick": "ರಡ್ಡ್ ಸರಿ ಕ್ಲಿಕ್ ಮಲ್ತ್’ದ್ ಪುಟೊನು ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ (JavaScript)",
-       "tog-editsectiononrightclick": "ಪುಟೊತ ವಿಭಾಗೊಲೆನ್ ಐತ ಹೆಡ್ಡಿಂಗ್’ನ್ ರೈಟ್ ಕ್ಲಿಕ್ ಮಲ್ತ್’ದ್ ಸಂಪಾದನೆ ಮಲ್ಪುಲೆಕ ಉಪ್ಪಡ್ (JavaScript)",
-       "tog-watchcreations": "ಯಾನ್ ಶುರು ಮಲ್ತಿನ ಪುಟೊಲೆನ್ ಯೆನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
-       "tog-watchdefault": "ಯಾನ್ ಸಂಪಾದನೆ ಮನ್ಪುನಂಚಿನ ಪುಟೊಲೆನ್ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
-       "tog-watchmoves": "ಯಾನ್ ಮೂವ್ ಮಲ್ತಿನಂಚಿನ ಪುಟೊಲೆನ್ ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
-       "tog-watchdeletion": "ಯಾನ್ ಓಚ್ಚಿನ(ಡಿಲೀಟ್ ಮಲ್ತಿನ) ಪುಟೊಲೆನ್ ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
+       "tog-showtoolbar": "ಸಂಪಾದನೆದ ಉಪಕರಣೊ ಪಟ್ಟಿನ್ ತೋಜಾವು",
+       "tog-editondblclick": "ರಡ್ಡ್ ಸರ್ತಿ ಒತ್ತ್‌ನಗ ಪುಟೊನು ಸಂಪೊಲಿಪುನಂಚ ಆವಡ್",
+       "tog-editsectiononrightclick": "ಪುಟೊತ ವಿಬಾಗೊಲೆನ್ ಐತ ಸೀರ್ಸಿಕೆನ್ ರಡ್ಡ್ ಸರ್ತಿ ಒತ್ತ್‌ನಗ ಸಂಪೊಲಿಪುನಂಚ ಉಪ್ಪಡ್",
+       "tog-watchcreations": "ಯಾನ್ ಶುರು ಮಲ್ತಿನ ಲೇಕನೊಲೆನ್ ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
+       "tog-watchdefault": "ಯಾನ್ ಸಂಪೊಲಿಪುನ ಪುಟೊಲೆನ್ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
+       "tog-watchmoves": "ಯಾನ್ ಸ್ತಲಾಂತರಿಸುನ ಪುಟೊಲೆನ್ ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
+       "tog-watchdeletion": "ಯಾನ್ ದೆತ್ತ್‌ ಪಾಡುನ ಪುಟೊಲೆನ್ ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾಲೆ",
+       "tog-watchrollback": "ಯಾನ್ ಪಿರ ದೆತೊನುನ ಪುಟೊಲೆನ್ ಎನ್ನ ಗುಮನೊಗು ಸೇರಲೆ",
        "tog-minordefault": "ಪೂರಾ ಸಂಪಾದನೆನ್ಲಾ ಎಲ್ಯ ಪಂಡ್’ದ್ ಗುರ್ತ ಮಲ್ಪುಲೆ",
        "tog-previewontop": "ಮುನ್ನೋಟನ್ ಸಂಪಾದನೆ ಅಂಕಣದ ಮಿತ್ತ್ ತೊಜ್ಪಾಲೆ",
        "tog-previewonfirst": "ಶುರುತ ಬದಲಾವಣೆದ ಬೊಕ್ಕ ಮನ್ನೋಟನ್ ತೊಜ್ಪಾಲೆ",
-       "tog-enotifwatchlistpages": "ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್ ಉಪ್ಪುನಂಚಿನ ಒವಾಂಡಲ ಪುಟ ಬದಲಾಂಡ ಎಂಕ್ ಇ-ಮೇಲ್ ಮಲ್ಪುಲೆ",
+       "tog-enotifwatchlistpages": "ಎನ್ನ ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್ ಉಪ್ಪುನಂಚಿನ ಒವಾಂಡಲ ಪುಟೊ ಬದಲಾನಗ ಎಂಕ್ ಇ-ಅಂಚೆ ಕಡಪುಡ್ಲೆ",
        "tog-enotifusertalkpages": "ಎನ್ನ ಚರ್ಚೆ ಪುಟ ಬದಲಾಂಡ ಎಂಕ್ ಇ-ಮೇಲ್ ಕಡಪುಡ್ಲೆ",
-       "tog-enotifminoredits": "à²\8eಲà³\8dಯà³\86ಲà³\8dಯ à²¬à²¦à²²à²¾à²µà²£à³\86 à²\86à²\82ಡಲ à²\8eà²\82à²\95à³\8d à²\87-ಮà³\87ಲà³\8d à²®à²²à³\8dಪà³\81ಲೆ",
+       "tog-enotifminoredits": "à²\8eಲà³\8dಯà³\86ಲà³\8dಯ à²¬à²¦à²²à²¾à²µà²£à³\86 à²\86à²\82ಡಲ à²\8eà²\82à²\95à³\8d à²\87-à²\85à²\82à²\9aà³\86 à²\95ಡಪà³\81ಡà³\8dಲೆ",
        "tog-enotifrevealaddr": "ಪ್ರಕಟಣೆ ಇ-ಮೇಲ್’ಡ್ ಎನ್ನ ಇ-ಮೇಲ್ ವಿಳಾಸನ್ ತೊಜ್ಪಾಲೆ",
        "tog-shownumberswatching": "ಪುಟೊನು ತೂವೊಂದುಪ್ಪುನಂಚಿನ ಸದಸ್ಯೆರ್’ನ ಸಂಖ್ಯೆನ್ ತೊಜ್ಪಾಲೆ",
        "tog-oldsig": "ಇತ್ತೆದ ಸಹಿ",
-       "tog-fancysig": "ಸರಳ à²¸à²¹à²¿à²\97ಳà³\81 (ಲಿà²\82à²\95à³\8d à²\87à²\9cà³\8dà²\9cಂದಿಲೆಕ)",
-       "tog-uselivepreview": "ನೇರ ಮುನ್ನೋಟನ್ ಉಪಯೋಗ ಮಲ್ಪುಲೆ (JavaScript) (ಪ್ರಾಯೋಗಿಕ)",
+       "tog-fancysig": "ವಿà²\95ಿà²\9fà³\86à²\95à³\8dಸà³\8dâ\80\8cà²\9fà³\8dâ\80\8dà²\97à³\8d à²¦à²¸à³\8dà²\95ತà³\8dತà³\8dâ\80\8cದ à²\89ಪà²\9aಾರà³\8a(ಸà³\8dವà²\82ತà³\8a à²\9aಾಲನà³\86ದ à²\95à³\8aà²\82ಡಿ à²\87ದà³\8dಯಂದಿಲೆಕ)",
+       "tog-uselivepreview": "ನೇರೊ ಮುನ್ನೋಟೊನು ಉಪಯೋಗ ಮಲ್ಪುಲೆ",
        "tog-forceeditsummary": "ಸಂಪಾದನೆ ಸಾರಾಂಶೊನು ಖಾಲಿ ಬುಡ್’ನ್ಡ್ ಎಂಕ್ ನೆನಪು ಮಲ್ಪುಲೆ",
        "tog-watchlisthideown": "ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್ ಎನ್ನ ಸಂಪಾದನೆಲೆನ್ ತೊಜ್’ಪಾವೊಚಿ",
        "tog-watchlisthidebots": "ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್ ಬಾಟ್ ಸಂಪಾದನೆಲೆನ್ ದೆಂಗಾಲೆ",
        "tog-watchlisthideliu": "ಲಾಗಿನ್ ಆತಿನಂಚಿನ ಸದಸ್ಯೆರ್’ನ ಸಂಪಾದನೆಲೆನ್ ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆಂಗಾಲೆ",
        "tog-watchlisthideanons": "ಪುದರಿಜ್ಜಂದಿನ ಬಳಕೆದಾರನ ಸಂಪಾದನೆಲೆನ್ ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆಂಗಾಲೆ",
        "tog-watchlisthidepatrolled": "ವೀಕ್ಷಣಾಪಟ್ಟಿಡ್ ಬಾಟ್ ಸಂಪಾದನೆಲೆನ್ ದೆಂಗಾಲೆ",
+       "tog-watchlisthidecategorization": "ವಿಂಗಡಿತ್‍ನ ಪುಟೊಲೆನ್ ಅಡೆಂಗಲ",
        "tog-ccmeonemails": "ಯಾನ್ ಬೇತೆ ಸದಸ್ಯೆರೆಗ್ ಕಡಪುಡ್ಪುನಂಚಿನ ಇ-ಮೇಲ್’ಲೆದ ಪ್ರತಿಲೆನ್(copy) ಎಂಕ್ ಕಡಪುಡ್ಲೆ",
        "tog-diffonly": "ವ್ಯತ್ಯಾಸದ ತಿರ್ತುಪ್ಪುನಂಚಿನ ಪುಟೊತ ವಿವರೊಲೆನ್ ತೊಜ್’ಪಾವೊಚಿ",
        "tog-showhiddencats": "ದೆಂಗಾದಿನ ವರ್ಗೊಲೆನ್ ತೊಜ್ಪಾಲೆ",
+       "tog-norollbackdiff": "ದೆತ್ತ್‌ ಪಾಡ್‍ನೆಡ್‍ದ್ ಬುಕ್ಕೊ ವ್ಯತ್ಯಾಸೊನು ಬುಡ್‍ಲೆ",
+       "tog-useeditwarning": "ಸಂಪೊಲಿತ್‍ನೆನ್ ಒರಿಪಾವಂದೆ ಪಿದಡ್ಂಡ ಎನನ್ ಎಚ್ಚರಿಸಲೆ",
+       "tog-prefershttps": "ಏಪೊಗುಲ ಲಾಗಿನ್ ಆಯಿನ ಬುಕ್ಕೊ ಜಾಗ್ರತೆದ ಸಂಪರ್ಕೊನು  ಬಳಕೆ ಮಲ್ಪುಲೆ",
        "underline-always": "ಯಾಪಲ",
        "underline-never": "ಯಾಪಗ್ಲಾ ಇಜ್ಜಿ",
-       "underline-default": "ಬà³\8dರà³\8cಸರà³\8dâ\80\99ದ à²¯à²¥à²¾à²¸à³\8dಥಿತಿ",
+       "underline-default": "ಬà³\8dರà³\8cಸರà³\8dâ\80\8dದ à²¯à²¤à²¾à²¸à³\8dತಿತಿ",
        "editfont-style": "ಬರೆಪುನ ಜಾಗದ ಅಕ್ಷರದ ಶೈಲಿ",
        "editfont-default": "ಬ್ರೌಸರ್’ದ ಯಥಾಸ್ಥಿತಿ",
+       "editfont-monospace": "ಒಂಜಿ ಜಾಗೆದ ಮುದ್ರೆಲಿಪಿ",
        "editfont-sansserif": "ಸಾನ್ಸ್-ಸೆರಿಫ್ ಲಿಪಿ",
        "editfont-serif": "ಸೆರಿಫ್ ಲಿಪಿ",
        "sunday": "ಐತಾರೊ",
        "oct": "ಅಕ್ಟೋಬರ",
        "nov": "ನವಂಬರೊ",
        "dec": "ದಸಂಬರೊ",
+       "january-date": "ಜನವರಿ $1",
+       "february-date": "ಪೆಬ್ರುವರಿ $1",
+       "march-date": "ಮಾರ್ಚಿ $1",
+       "april-date": "ಎಪ್ರಿಲ್ $1",
+       "may-date": "ಮೇ $1",
+       "june-date": "ಜೂನ್ $1",
+       "july-date": "ಜುಲಾಯಿ $1",
+       "august-date": "ಆಗೋಸ್ಟ್ $1",
+       "september-date": "ಸಪ್ಟಂಬರೊ $1",
+       "october-date": "ಅಕ್ಟೋಬರ $1",
+       "november-date": "ನವಂಬರ $1",
+       "december-date": "ದಸಂಬರ $1",
        "pagecategories": "{{PLURAL:$1|ವರ್ಗೊ|ವರ್ಗೊಲು}}",
        "category_header": "\"$1\" ವರ್ಗಡುಪ್ಪುನಂಚಿನ ಲೇಕನೊಲು",
        "subcategories": "ಉಪ ವರ್ಗೊಲು",
        "newwindow": "(ಪೊಸ ಕಂಡಿನ್ ದೆಪ್ಪುಲೆ)",
        "cancel": "ವಜಾ ಮಲ್ಪುಲೆ",
        "moredotdotdot": "ನನಲ...",
-       "mypage": "ಎನ್ನ ಪುಟ",
+       "morenotlisted": "ಈ ಪಟ್ಟಿ ಪೂರ್ತಿ ಆತ್‍ಜಿ.",
+       "mypage": "ಎನ್ನ ಪುಟೊ",
        "mytalk": "ಎನ್ನ ಚರ್ಚೆ",
        "anontalk": "ಈ ಐ.ಪಿ ಗ್ ಪಾತೆರ್’ಲೆ",
        "navigation": "ಸಂಚಾರೊ",
        "view": "ತೂಲೆ",
        "view-foreign": "$1ಡ್ ಮಿತ್ತ್ ತೂಲೆ",
        "edit": "ಸಂಪೊಲಿಪುಲೆ",
+       "edit-local": "ಸ್ಥಳೀಯ ವಿವರಣೆನ್ ಸೇರಾಲೆ",
        "create": "ಸೃಷ್ಟಿಸಾಲೆ",
        "create-local": "ಸ್ಥಳೀಯ ವಿವರಣೆನ್ ಸೇರಾಲೆ",
        "editthispage": "ಈ ಪುಟೊನು ಬದಲಾಯಿಸಾಲೆ",
        "create-this-page": "ಈ ಪುಟೊನು ಸೃಷ್ಟಿಸಾಲೆ",
        "delete": "ದೆತ್ತ್ ಪಾಡ್ಲೆ",
        "deletethispage": "ಈ ಪುಟೊನು ದೆತ್ತ್ ಪಾಡ್ಲೆ",
+       "undeletethispage": "ಈ ಪುಟೊ ದೆತ್ತ್‌ ಪಾಡುನವು ರದ್ದಾತ್ಂಡ್",
        "undelete_short": "ಪಿರ ಪಾಡ್ಲೆ {{PLURAL:$1|ಒ೦ಜಿ ಬದಲಾವಣೆ|$1 ಬದಲಾವಣೆಲು}}",
        "viewdeleted_short": "ನೋಟ{{PLURAL:$1|1 ಡಿಲೀಟ್ ಆತಿನ ಸಂಪಾದನೆ|$1 ಡಿಲೀಟ್ ಆತಿನ ಸಂಪಾದನೆಲು}}",
        "protect": "ಸ೦ರಕ್ಷಿಸಾಲೆ",
        "protect_change": "ಬದಲಾಲೆ",
        "protectthispage": "ಈ ಪುಟೊನು ಸ೦ರಕ್ಷಿಸಾಲೆ",
-       "unprotect": "ಸ೦ರà²\95à³\8dಷಣà³\86 à²¦à³\86ಪà³\8dಲೆ",
-       "unprotectthispage": "à²\88 à²ªà³\81à²\9fà³\8aತ à²¸à³¦à²°à²\95à³\8dಷಣà³\86ನà³\8d à²¦à³\86ಪà³\8dಲೆ",
+       "unprotect": "ರà²\95à³\8dಷಣà³\86ನà³\8d à²¬à²¦à²²à³\8dâ\80\8dಪà³\81ಲೆ",
+       "unprotectthispage": "à²\88 à²ªà³\81à²\9fà³\8aತ à²°à²\95à³\8dಷಣà³\86ನà³\8d à²¬à²¦à²²à³\8dâ\80\8dಪà³\81ಲೆ",
        "newpage": "ಪೊಸ ಪುಟೊ",
        "talkpage": "ಪುಟದ ಬಗ್ಗೆ ಚರ್ಚೆ ಮನ್ಪುಲೆ",
        "talkpagelinktext": "ಪಾತೆರ್ಲೆ",
        "toolbox": "ಉಪಕರಣೊಲು",
        "userpage": "ಸದಸ್ಯೆರ್ನ ಪುಟೊನು ತೂಲೆ",
        "projectpage": "ಪ್ರೊಜೆಕ್ಟ್ ಪುಟೊನು ತೂಲೆ",
-       "imagepage": "ಮà³\80ಡಿಯ ಪುಟೊನು ತೂಲೆ",
+       "imagepage": "ಫà³\88ಲà³\8dâ\80\8dದ ಪುಟೊನು ತೂಲೆ",
        "mediawikipage": "ಸಂದೇಶ ಪುಟೊನು ತೂಲೆ",
        "templatepage": "ಟೆಂಪ್ಲೇಟ್ ಪುಟೊನು ತೂಲೆ",
        "viewhelppage": "ಸಹಾಯ ಪುಟೊನು ತೂಲೆ",
        "jumpto": "ಇಡೆಗ್ ಪೋಲೆ:",
        "jumptonavigation": "ಸಂಚಾರೊ",
        "jumptosearch": "ನಾಡ್‍ಲೆ",
+       "view-pool-error": "ಕ್ಷಮಿಸಲೆ, ಸರ್ವಲು ಈ ಕ್ಷಣೊಡ್ದು ದಿಂಜ ದಿನ್ನೊ ಆತ್ಂಡ್.\nಮಸ್ತ್ ಬಳಕೆದಾರೆರ್ ಈ ಪುಟೊನು ತೂಯೆರೆ ಪ್ರಯತ್ನಿಸವೊಂದುಲ್ಲೆರ್.  ಈರ್ ಬುಕ್ಕೊ \nಈರ್ ಈ ಪುಟೊಕು ನಾನೊರೊ ತೂಯೆರೆ ಪ್ರಯತ್ನಿಸಲೆ ಸುರುಕು ದಯೊಮಲ್ತ್ ಕಾಪುಲೆ.\n$1",
+       "generic-pool-error": "ಕ್ಷಮಿಸಲೆ, ಸರ್ವಲು ಈ ಕ್ಷಣೊಡ್ದು ದಿಂಜ ದಿನ್ನೊ ಆತ್ಂಡ್.\nಮಸ್ತ್ ಬಳಕೆದಾರೆರ್ ಈ ಸಂಪನ್ಮೂಲೊನು ತೂಯೆರೆ ಪ್ರಯತ್ನಿಸವೊಂದುಲ್ಲೆರ್.  ಈರ್ ಈ ಸಂಪನ್ಮೂಲೊನು ನಾನೊರೊ ತೂಯೆರೆ ಪ್ರಯತ್ನಿಸಲೆ ಸುರುಕು ದಯೊಮಲ್ತ್ ಕಾಪುಲೆ.",
+       "pool-timeout": "ಪೊರ್ತಾತ್ಂಡ್ ಬೀಗೊ ದೆಪ್ಪುನೇಟ ಕಾಪುಲೆ",
+       "pool-queuefull": "ಪ್ರಕ್ರಿಯೆದ ವಿಸೇಸೊ ಕ್ಯೂ ಮುಗಿದ್ಂಡ್",
        "pool-errorunknown": "ಗೊತ್ತಿಂಜಂದಿನ  ದೋಷ",
+       "pool-servererror": "ಪೂಲ್ ಕೌಂಟರ್ ಸೇವೆ ತಿಕೊಂದಿದ್ದಿ ($1).",
+       "poolcounter-usage-error": "ಬಳಕೆದ ದೋಸೊ: $1",
        "aboutsite": "{{SITENAME}} ದ ಬಗೆಟ್",
        "aboutpage": "Project:ಬಗೆಟ್",
-       "copyright": "à²\89à²\82ದà³\81 à²\88 à²\95ಾಪಿರà³\88à²\9fà³\8dâ\80\8cಡà³\8d à²²à²­à³\8dಯವà³\81à²\82ಡà³\81 $1.",
+       "copyright": "ವಿಸà³\87ಸವಾದà³\8d à²ªà²\82ಡà³\8dâ\80\8dà²\9cà²\82ಡ à²\89à²\82ದà³\81 \"$1\" à²\88 à²\95ಾಪಿರà³\88à²\9fà³\8dâ\80\8cಡà³\8d à²²à²­à³\8dಯವà³\81à²\82ಡà³\81.",
        "copyrightpage": "{{ns:project}}:ಕೃತಿ ಸ್ವಾಮ್ಯತೆಲು",
        "currentevents": "ಇತ್ತೆದ ಸಂಗತಿಲು",
        "currentevents-url": "Project:ಇತ್ತೆದ ಸಂಗತಿಲು",
        "disclaimers": "ಹಕ್ಕ್‌ ಬುಡ್‍ನ",
        "disclaimerpage": "Project:ಸಾಮಾನ್ಯೊ ಹಕ್ಕ್‌ ಬುಡ್‌ನ",
        "edithelp": "ಸಂಪಾದನೆಗ್ ಸಹಾಯೊ",
+       "helppage-top-gethelp": "ಸಹಾಯೊ",
        "mainpage": "ಮುಖ್ಯ ಪುಟ",
        "mainpage-description": "ಮುಖ್ಯ ಪುಟ",
        "policy-url": "Project:ನಿಯಮಾವಳಿ",
        "privacypage": "Project:ಕಾಸಗಿ ಕಾರ್ಯೊನೀತಿ",
        "badaccess": "ಅನುಮತಿ ದೋಷ",
        "badaccess-group0": "ಈರ್ ಕೇನಿನ ಬೇಲೆನ್ ಮಲ್ಪೆರೆ ಇರೆಗ್ ಅನುಮತಿ ಇಜ್ಜಿ.",
-       "badaccess-groups": "ಈರ್ ಕೇನಿನಂಚಿನ ಕ್ರಿಯೆ ಖಾಲಿ $1 ಗುಂಪುಲೆಡ್ ಒಂಜೆಕ್ ಸೇರ್ದುಪ್ಪುನ ಬಳಕೆದಾರೆರೆಗ್ ಮಾತ್ರ.",
+       "badaccess-groups": "ಈರ್ ಕೇನಿನಂಚಿನ ಕ್ರಿಯೆ ಖಾಲಿ ಈ {{PLURAL:$2|ಗುಂಪುಗು|ಗುಂಪುಲೆಡ್ ಒಂಜೆಗ್}} ಸೇರ್ದುಪ್ಪುನ ಬಳಕೆದಾರೆರೆಗ್ ಮಾಂತ್ರೊ: $1.",
        "versionrequired": "ಮೀಡಿಯವಿಕಿಯದ $1 ನೇ ಅವೃತ್ತಿ ಬೋಡು",
        "versionrequiredtext": "ಈ ಪುಟೊನು ತೂಯೆರೆ ಮೀಡಿಯವಿಕಿಯದ $1 ನೇ ಆವೃತ್ತಿ ಬೋಡು.\n[[Special:Version|ಆವೃತ್ತಿ]] ಪುಟನು ತೂಲೆ.",
        "ok": "ಸರಿ",
        "retrievedfrom": "\"$1\"ರ್ದ್ ದೆತೊನ್ನಂಚಿನ",
        "youhavenewmessages": "ಇರೆಗ್ $1 ಉಂಡು ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|ನಿಕ್ಕ್}} {{PLURAL:$3|ನಾನ ಒರಿ ಸದಸ್ಯಡ್ದ್|$3 ಸದಸ್ಯೆರೆಗ್}} $1 ಉಂಡು. ($2)",
+       "youhavenewmessagesmanyusers": " ನಿಕ್ಲೆಗ್ ದಿಂಜ ಸದಸ್ಯೆರೆಡ್ದ್ $1 ಉಂಡು ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|ಒಂಜಿ ಪೊಸ ಸಂದೇಸೊ|999=ಪೊಸ ಸಂದೇಸೊಲು}}",
+       "newmessagesdifflinkplural": "ಇಂಚಿಪದೊದ{{PLURAL:$1|ಬದಲಾವಣೆ|999=ಬದಲಾವಣೆಲು}}",
        "youhavenewmessagesmulti": "$1 ಡ್ ಇರೆಗ್ ಪೊಸ ಸಂದೇಶೊಲು ಉಂಡು",
        "editsection": "ಸಂಪೊಲಿಪುಲೆ",
        "editold": "ಸಂಪೊಲಿಪುಲೆ",
        "hidetoc": "ದೆಂಗಾವು",
        "collapsible-collapse": "ಕುಗ್ಗಿಸಾಲ",
        "collapsible-expand": "ವಿಸ್ತಾರ ಮಲ್ಪುಲೆ",
+       "confirmable-confirm": "{{GENDER:$1|ನಿಕ್ಲ್}} ಕಂಡಿತೊನೆ?",
+       "confirmable-yes": "ಅಂದ್",
+       "confirmable-no": "ಅತ್ತ್",
        "thisisdeleted": "$1 ನ್ ತೂವೊಡೆ ಅತ್ತ್ ದುಂಬುದ ಲೆಕೆ ಮಲ್ಪೊಡೆ?",
        "viewdeleted": "$1 ನ್ ತೂವೊಡೆ?",
        "restorelink": "{{PLURAL:$1|1 ಡಿಲೀಟ್ ಆತಿನ ಸಂಪಾದನೆ|$1 ಡಿಲೀಟ್ ಆತಿನ ಸಂಪಾದನೆಲು}}",
        "feedlinks": "ಫೀಡ್:",
        "feed-invalid": "ಇನ್ವಾಲಿಡ್ ಸಬ್ಸ್’ಕ್ರಿಪ್ಶನ್ ಫೀಡ್ ಟೈಪ್.",
-       "feed-unavailable": "{{SITENAME}} à²¡à³\8d à²¸à²¿à²\82ಡಿà²\95à³\87ಶನà³\8d à²«à³\80ಡà³\8d à²²à²­à³\8dಯವಿà²\9cà³\8dà²\9cಿ",
+       "feed-unavailable": "{{SITENAME}} à²¡à³\8d à²¸à²¿à²\82ಡಿà²\95à³\87ಶನà³\8d à²«à³\80ಡà³\8d à²²à²¬à³\8dಯà³\8a à²\87ದà³\8dದಿ.",
        "site-rss-feed": "$1 RSS ಫೀಡ್",
        "site-atom-feed": "$1 ಆಟಮ್ ಫೀಡ್",
        "page-rss-feed": "\"$1\" RSS ಫೀಡ್",
        "nstab-category": "ವರ್ಗೊ",
        "mainpage-nstab": "ಮುಖ್ಯ ಪುಟ",
        "nosuchaction": "ಈ ರೀತಿದ ಓವು ಕ್ರಿಯೆಲಾ(ಆಕ್ಶನ್) ಇಜ್ಜಿ",
-       "nosuchactiontext": "ಈ URLದ ಒಟ್ಟಿಗೆ ಉಪ್ಪುನ ಕ್ರಿಯೆನ್ ವಿಕಿ ಗುರ್ತ ಪತ್ತುಜಿ",
+       "nosuchactiontext": "ಈ URLದ ಒಟ್ಟಿಗೆ ಉಪ್ಪುನ ಕ್ರಿಯೆನ್ ವಿಕಿ ಗುರ್ತ ಪತ್ತುಜಿ{{SITENAME}}.",
        "nosuchspecialpage": "ಈ ಪುದರ್’ದ ಒವುಲಾ ವಿಷೇಶ ಪುಟ ಇಜ್ಜಿ",
        "nospecialpagetext": "<strong>ಈರ್ ಅಸ್ಥಿತ್ವಡ್ ಇಜ್ಜಂದಿನ ವಿಷೇಶ ಪುಟೊನು ಕೇನ್ದರ್.</strong>\n\nಅಸ್ಥಿತ್ವಡ್ ಉಪ್ಪುನಂಚಿನ ವಿಷೇಶ ಪುಟೊಲ್ದ ಪಟ್ಟಿ [[Special:SpecialPages|{{int:specialpages}}]] ಡ್ ಉಂಡು.",
        "error": "ದೋಷ",
        "databaseerror": "ಡೇಟಾಬೇಸ್ ದೋಷ",
+       "databaseerror-text": "ಡೇಟಾಬೇಸ್ ವಿಚಾರೊಡು ದೋಸೊ ತೋಜಿದ್ ಬತ್ತ್ಂಡ್.  ಈ ತಂತ್ರಾಸೊ ಒಂಜಿ ದೋಸೊನು ತೋಜಾವೊಂದುಂಡು.",
+       "databaseerror-textcl": "ಡೇಟಾಬೇಸ್ ವಿಚಾರೊಡು ದೋಸೊ ತೋಜಿದ್ ಬರೊಂದುಂಡು.",
+       "databaseerror-query": "ವಿಚಾರೊ: $1",
+       "databaseerror-function": "ಕಾರ್ಯೊ: $1",
+       "databaseerror-error": "ದೋಸೊ: $1",
+       "laggedslavemode": "<strong>ಎಚ್ಚರೊ:</strong> ಪುಟೊಡು ಇಂಚಿಪದ ಬದಲಾವಣೆಲೆನ್ ತೂವೊಲಿ.",
        "readonly": "ಡಾಟಾಬೇಸ್ ಲಾಕ್ ಆತ್೦ಡ್",
+       "enterlockreason": "ಡೇಟಬೇಸ್ ಮುಚ್ಚುನ ಕಾರಣೊನು ಬೊಕ್ಕೊ ನಾನೊರೊ ಅಯಿನ್ ದೆಪ್ಪುನ ಅಂದಾಜಿದ ಪೊರ್ತುನು ತೆರಿಪಾಲೆ",
        "missing-article": "\"$1\" $2 ಪುದರ್’ದ ಪುಟ ದೇಟಬೇಸ್’ಡ್ ಇಜ್ಜಿ.\n\nಡಿಲೀಟ್ ಮಲ್ತಿನ ಪುಟೊಕು ಸಂಪರ್ಕ ಕೊರ್ಪುನ ಇತಿಹಾಸ ಲಿಂಕ್ ಅತ್ತ್’ನ್ಡ ವ್ಯತ್ಯಾಸ ಲಿಂಕ್’ನ್ ಒತ್ತುನೆರ್ದಾದ್ ಈ ದೋಷ ಸಾಧಾರಣವಾದ್ ಬರ್ಪುಂಡು.\n\nಒಂಜಿ ವೇಳೆ ಅಂಚ ಆದಿಜ್ಜಿಂಡ, ಉಂದು ಒಂಜಿ ಸಾಫ್ಟ್-ವೇರ್ ದೋಷ ಆದುಪ್ಪು.\nಇಂದೆನ್  [[Special:ListUsers/sysop|ವಿಕಿ-ಅಧಿಕಾರಿಗ್]] ತೆರಿಪಾಲೆ.",
        "missingarticle-rev": "(ಮರು-ಆವೃತ್ತಿ#: $1)",
        "internalerror": "ಆ೦ತರಿಕ ದೋಷ",
        "cannotdelete-title": "\"$1\" ಮಾಜಾವರೆ ಆಪುಜ್ಜಿ",
        "badtitle": "ಸರಿ ಇದ್ಯಾಂದಿನ ಪುದರ್",
        "badtitletext": "ಈರ್ ಕೋರಿನ ಪುಟದ ಶೀರ್ಷಿಕೆ ಸಿಂಧು ಅತ್ತ್ ಅಥವಾ ಕಾಲಿ ಅಥವಾ ಸರಿಯಾಯಿನ ಕೊಂಡಿ ಅತ್ತಾಂದಿನ ಅಂತರ ಬಾಸೆ/ಅಂತರ ವಿಕಿ ಸಂಪರ್ಕೊ.\nಅಯಿಟ್ ಒಂಜಿ ಅತ್ತಂಡ ಸೀರ್ಸಿಕೆಲೆ ಬಳಕೆ ಮಲ್ಪರೆ ನಿಸೇದೊ ಆಯಿನ ಅಕ್ಷರೊಲು ಇಪ್ಪು.",
-       "perfcached": "à²\88 à²®à²¾à²¹à²¿à²¤à²¿à²²à³\81 à²\95à²\82ಪà³\8dಯà³\81à²\9fರà³\8dâ\80\98ದ à²¤à²¾à²¤à³\8dà²\95ಾಲಿà²\95 à²¨à³\86ನà³\86ಪà³\81ಡà³\8dâ\80\98ದà³\8d à²¬à²¤à³\8dತà³\8dâ\80\98ದà³\8dâ\80\98ನ à²¬à³\8aà²\95à³\8dà²\95 à²¸à²°à²¿à²¯à²¾à²¨ à²¸à³\8dಥಿತಿ à²\86ದಿಪà³\8dಪಾà²\82ದà³\8d A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-       "perfcachedts": "ಈ ತಿರ್ತ ಮಾಹಿತಿ ಕಂಪ್ಯೂಟರ್‘ದ ತಾತ್ಕಾಲಿಕ ನೆನಪುಡ್ ಉಂಡು. ದೆತ್ತ ಕಡೆತ ಬದಲಾವಣೆ $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+       "perfcached": "à²\88 à²¤à²¿à²°à³\8dತà³\8dâ\80\8dದ à²®à²¾à²¹à²¿à²¤à²¿à²²à³\81 cacheದà³\8d à²¬à²¤à³\8dತà³\8dà²\82ಡà³\8d à²¬à³\81à²\95à³\8dà²\95à³\8a à²\87ತà³\8dತà³\86ದ à²¸à³\8dತಿತಿನà³\8d à²¬à²¿à²\82ಬಿಸವà³\8aà²\82ದà³\81à²\82ಡà³\81.  à²¦à²¿à²\82à²\9c à²ªà²\82ಡ {{PLURAL:$1|one result is|$1 à²ªà²²à²¿à²¤à²¾à²\82ಸà³\8aಲà³\81}}cacheಡà³\8d à²¤à²¿à²\95à³\81à²\82ಡà³\81.",
+       "perfcachedts": "ಈ ತಿರ್ತ್‍ದ ಮಾಹಿತಿಲು cacheದ್ ಬತ್ತ್ಂಡ್ ಬುಕ್ಕೊ ಇತ್ತೆದ ಸ್ತಿತಿನ್ ಬಿಂಬಿಸವೊಂದುಂಡು.  ದಿಂಜ ಪಂಡ {{PLURAL:$4|one result is|$4 ಪಲಿತಾಂಸೊಲು}}cacheಡ್ ತಿಕುಂಡು.",
        "querypage-no-updates": "ಈ ಪುಟೊತ್ತ ಆಧುನಿಕ ಮಲ್ಪುನ ಕ್ರಿಯೆನ್ ಸದ್ಯಗ್ ಉಂತಾದ್ಂಡ್. ಮುಲ್ಪ ಉಪ್ಪುನ ಮಾಹಿತಿನ್ ನವೀಕರಣ ಮಲ್ಪರಾಪುಜಿ",
        "viewsource": "ಮೂಲೊ ಬರಹೊನು ತೂಲೆ",
        "viewsource-title": " $1 ಮೂಲ ಬರಹ ತೂಲೆ",
        "actionthrottled": "ಕಾರ್ಯನ್ ದೆಂಗಾದುಂಡು",
-       "protectedpagetext": "à²\88 à²ªà³\81à²\9fನà³\8d à²¸à²\82ಪಾದನà³\86 à²®à²²à³\8dಪà²\82ದಿಲà³\86à²\95à³\8dà²\95 à²¸à²\82ರà²\95à³\8dಷಣà³\86 à²®à²²à³\8dತà³\8dâ\80\98ಂಡ್",
+       "protectedpagetext": "à²\88 à²ªà³\81à²\9fà³\8a à²¸à²\82ಪà³\8aಲಿಪà²\82ದಿನ à²²à³\86à²\95à³\8a à²°à²\95à³\8dಸಣà³\86 à²\86ತà³\8dಂಡ್",
        "viewsourcetext": "ಈರ್ ಈ ಪುಟದ ಮೂಲನ್ ತೂವೊಲಿ ಬೊಕ್ಕ ನಕಲ್ ಮಲ್ಪೊಲಿ",
-       "viewyourtext": "à²\88ರà³\8d à²\88 à²ªà³\81à²\9fದ à²®à³\82ಲನà³\8d à²¤à³\82ವà³\8aಲಿ à²¬à³\8aà²\95à³\8dà²\95 à²¨à²\95ಲà³\8d à²®à²²à³\8dಪà³\8aಲಿ",
-       "protectedinterface": "ಈ ಪುಟ ತಂತ್ರಾಂಶ ಉಪಯೋಗ ಮಲ್ಪುನ ಪಠ್ಯನ್ ಒದಗಿಸಾಪುಂಡ್. ದುರುಪಯೋಗ ಅವಂದಿಲೆಕ್ಕ ಇದೆನ್ ಸಂರಕ್ಷಣೆ ಮಲ್ತ್‘ಂಡ್.",
+       "viewyourtext": "à²\88ರà³\8d à²\88 à²ªà³\81à²\9fà³\8aದ à²®à³\82ಲನà³\8d à²¤à³\82ವà³\8aಲಿ à²¬à³\8aà²\95à³\8dà²\95 à²¨à²\95ಲà³\8d à²®à²²à³\8dಪà³\8aಲಿ <strong>à²\88ರà³\86ನ à²¸à²\82ಪದನà³\86</strong>",
+       "protectedinterface": "ಈ ಪುಟೊ ತಂತ್ರಾಂಸೊ ಉಪಯೋಗೊ ಮಲ್ಪುನ ಪಟ್ಯೊನ್ ಒದಗಿಸಾಪುಂಡ್. ದುರುಪಯೋಗ ಅವಂದಿಲೆಕ್ಕ ಇದೆನ್ ರಕ್ಷಣೆ ಮಲ್ಪುಲೆ.\nಮಾತ ವಿಕಿಲೆಗ್ ಬಾಸಾಂತರೊನು ಕೂಡಯೆರೆ ಅಂಚನೆ ಬದಲ್ಪೆರೆ, [//translatewiki.net/ translatewiki.net], the MediaWiki localisation ಯೋಜನೆನ್ ಉಪಯೊಗಿಸಲೆ\nಕನ್ನಡ",
        "ns-specialprotected": "ವಿಶೇಷ ಪುಟ‘ಕ್‘ಲೆನ್ ಸಂಪಾದನೆ ಮಲ್ಪರೆ ಆಪುಜಿ",
-       "logouttext": "ಈರ್ ಇತ್ತೆ ಲಾಗ್ ಔಟ್ ಆತರ್.\nಈರ್ {{SITENAME}} ನ್ ಅನಾಮಧೇಯರಾತ್ ಉಪಯೋಗ ಮಲ್ಪೊಲಿ,ಅಥವಾ ಕೂಡ ಉಂದುವೇ ಪುದರ್‘ಡ್ ಯಾ ಬೇತೆ ಪುದರ್‘ಡ್ ಉಪಯೋಗ ಮಲ್ಪೊಲಿ.\nಗಮನಿಸಾಲೆ: ಈರೆನ ಬ್ರೌಸರ್‘ಡ್ ಮಾಜುನಾಡೆ ಮುಟ್ಟ ಕೆಲವು ಪುಟಕ್‘ಲು ಈರ್ ಇತ್ತೆಲಾ ಲಾಗ್ ಇನ್ ಆಯಿಲೆಕ್ಕನೇ ತೋಜಾವು.",
+       "logouttext": "<strong>ಈರ್ ಇತ್ತೆ ಲಾಗ್ ಔಟ್ ಆತರ್</strong>\nಗಮನಿಸಲೆ ಈರೆನ ಬ್ರೌಸರ್‍ದ cacheನ್ ದೆತ್ತ ಪಾಡುನೆಟ ಮುಟ್ಟೊ ಕೆಲವು ಪುಟೊಲು ಈರ್ ನಾನಲ ಲಾಗ್ ಇನ್ ಆದಿಪ್ಪುಂಚ ತೋಜುಂಡು.",
+       "welcomeuser": "ಎದ್ಖೊನುವೊ,$1!",
+       "welcomecreation-msg": "ಈರೆನ ಕಾತೆನ್ ದೆತ್ತ್‌ದಾತ್ಂಡ್.  ಈರೆನ [[Special:Preferences|{{SITENAME}} ಆಯ್ಕೆನ್]]ಬದಲ್ಪೆರೆ ಮರಪೊಡ್ಚಿ.",
        "yourname": "ಸದಸ್ಯೆರ್ನ ಪುದರ್:",
        "userlogin-yourname": "ಸದಸ್ಯೆರ್ನ ಪುದರ್",
        "userlogin-yourname-ph": "ಈರೆನೆ ಸದಸ್ಯ ಪುದರ್ ಬರೆಲೆ",
+       "createacct-another-username-ph": "ಈರೆನೆ ಸದಸ್ಯ ಪುದರ್ ಬರೆಲೆ",
        "yourpassword": "ಪಾಸ್-ವರ್ಡ್:",
        "userlogin-yourpassword": "ಪ್ರವೇಸೊಪದೊ",
        "userlogin-yourpassword-ph": "ಪ್ರವೇಸೊ ಪದೊನ್ ನಮೂದಿಸಲೆ",
        "yourpasswordagain": "ಪಾಸ್ವರ್ಡ್ ಪಿರ ಟೈಪ್ ಮಲ್ಪುಲೆ",
        "createacct-yourpasswordagain": "ಪ್ರವೇಸೊ ಪದೊನು ದೃಡೊ ಮಲ್ಪುಲೆ",
        "createacct-yourpasswordagain-ph": "ಪ್ರವೇಸೊ ಪದೊನು ನನ ಒರ ನಮೂದಿಸಲೆ",
-       "remembermypassword": "à²\88 à²\95à²\82ಪà³\8dಯà³\82à²\9fರà³\8dâ\80\99ಡà³\8d à²\8eನà³\8dನ à²ªà³\8dರವà³\87ಶ à²ªà²¦à³\8aನà³\81 à²¨à³\86ನಪà³\81 à²¦à³\80ಲ",
+       "remembermypassword": "à²\88 à²\97ಣà²\95ಯà²\82ತà³\8dರà³\8aಡà³\81 à²\8eನà³\8dನ à²²à²¾à²\97ಿನà³\8d à²¨à³\86à²\82ಪà³\81 à²¦à³\80ಡà³\8aನà³\8dಲà³\86(ಹà³\86à²\9aà³\8dà²\9aà³\8d $1 {{PLURAL:$1|ದಿನà³\8aತ|ದಿನà³\8aà²\95à³\8dà²\95à³\81ಲà³\86}}ಮà³\81à²\9fà³\8dà²\9fà³\8a)",
        "userlogin-remembermypassword": "ಎನನ್ ಲಾಗಿನ್ ಆತೇ ದೀಡ್ಲೆ",
+       "userlogin-signwithsecure": "ರಕ್ಷಣೆದ ಕನೆಕ್ಷನ್ ಉಪಯೋಗಿಸಲೆ.",
        "yourdomainname": "ಈರೆನ ಕಾರ್ಯಕ್ಷೇತ್ರ",
+       "password-change-forbidden": "ಈರ್ ಈ ವಿಕಿಡ್ ಪ್ರರವೇಸ ಪದೊನು ಬದಲ್ಪೆರೆ ಸಾದ್ಯೊ ಇದ್ದಿ.",
        "login": "ಲಾಗಿನ್ ಆಲೆ",
        "nav-login-createaccount": "ಲಾಗ್-ಇನ್ / ಅಕೌಂಟ್ ಸೃಷ್ಟಿ ಮಲ್ಪುಲೆ",
        "userlogin": "ಲಾಗ್-ಇನ್ / ಅಕೌಂಟ್ ಸೃಷ್ಟಿ ಮಲ್ಪುಲೆ",
        "userlogin-resetlink": "ಈರೆನ ಲಾಗಿನ್ ವಿವರ ಮರತ್ತ್ಂಡೇ?",
        "userlogin-resetpassword-link": "ಈರೆನೆ ಪ್ರವೇಸೊ ಪದೊ ಮರತ್ತ್‌ಂಡಾ?",
        "userlogin-helplink2": "ಲಾಗಿನ್ ಆಯರ ಸಹಾಯೊ",
+       "userlogin-createanother": "ಪೊಸ ಕಾತೆ ಸುರು ಮಲ್ಪುಲೆ",
+       "createacct-emailrequired": "ಇ-ಅಂಚೆ ವಿಳಾಸೊ",
        "createacct-emailoptional": "ಮಿಂಚಂಚೆ ವಿಲಾಸೊ(ಐಚ್ಛಿಕೊ)",
        "createacct-email-ph": "ಇರೆನ ಮಿಂಚಂಚೆ ವಿಲಾಸೊನ್ ನಮೂದಿಸಲೆ.",
+       "createacct-another-email-ph": "ಇ-ಅಂಚೆ ವಿಳಾಸೊನು ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
        "createaccountmail": "ಇ ಮೈಲ್ ಮೂಲಕ",
+       "createacct-realname": "ನಿಜವಾಯಿನ ಪುದರ್(ಐಚ್ಛಿಕೊ)",
        "createaccountreason": "ಕಾರಣ",
+       "createacct-reason": "ಕಾರಣೊ",
+       "createacct-reason-ph": "ಈರ್ ದಾಯೆ ನಾನಲ ಒಂಜಿ ಕಾತೆ ದೆತ್ತೊಂದುಲ್ಲರ್?",
        "createacct-submit": "ಪೊಸ ಕಾತೆ ಸುರು ಮಲ್ಪುಲೆ",
+       "createacct-another-submit": "ಪೊಸ ಕಾತೆ ಸುರು ಮಲ್ಪುಲೆ",
        "createacct-benefit-heading": "{{SITENAME}}ನಿಕ್ಲೆನಂಚಿತ್ತಿನ ಜನೊಕ್ಲೆಡ್ದ್ ಉಂಡಾಪುಂಡು.",
        "createacct-benefit-body1": "{{PLURAL:$1|ಸಂಪದನೆ|ಸಂಪದನೆಲು}}",
        "createacct-benefit-body2": "{{PLURAL:$1|ಪುಟೊ|ಪುಟೊಕ್ಕುಲು}}",
        "badretype": "ಈರ್ ಕೊರ್ನ ಪ್ರವೇಶ ಪದೆ ಬೇತೆ ಬೇತೆ ಅತ್ಂಡ್",
        "userexists": "ಈರ್ ಕೊರ್ನ ಸದಸ್ಯರ ಪುದರ್ ಬಳಕೆಡ್ ಉಂಡು. ದಯದೀದ್ ಬೇತೆ ಪುದರ್ ಕೊರ್ಲೆ",
        "loginerror": "ಲಾಗಿನ್ ದೋಷ",
-       "createaccounterror": "ಖಾತೆ ಸುರುಮಲ್ಪರೆ ಸಾದ್ಯ ಅವೊಂದಿಜ್ಜಿ",
+       "createacct-error": "ಕಾತೆ ನಿರ್ಮಾಣೊ ದೋಸೊ",
+       "createaccounterror": "ಕಾತೆ ನಿರ್ಮಾಣೊ ಮಲ್ಪೆರೆ ಆವೊಂದಿದ್ದಿ: $1",
        "nocookiesnew": "ಈರೆನ ಬಳಕೆದಾರ ಖಾತೆ ಸೄಷ್ಟಿ ಅತ್ಂಡ್. ಆಂಡ ಈರ್ ಲಾಗ್ ಇನ್ ಆತ್‘ಜ್ಜರ್.\n{{SITENAME}} ಲಾಗ್ ಇನ್ ಮಲ್ಪರ ಕುಕೀಸ್ ಉಪಯೋಗ ಮಲ್ಪುಂಡ್.\nಈರೆನ ಗಣಕಯಂತ್ರಡು ಕುಕೀಸ್ ನಿಷಿದ್ದ ವಾತ್ಂಡ್.\nದಯದೀದ್ ಈ ನಿಷಿದ್ಧನ್ ದೆತ್ತ್‘ದ್, ಈರೆನ ಬಳಕೆದಾರ ಪುದರ್ ಬೊಕ್ಕ  ಪ್ರವೇಶಪದ ಉಪಯೋಗಿಸಾದ್ ಲಾಗ್ ಇನ್ ಆಲೆ.",
        "nocookieslogin": "{{SITENAME}} ಲಾಗ್ ಇನ್ ಮಲ್ಪರ ಕುಕೀಸ್ ಉಪಯೋಗ ಮಲ್ಪುಂಡ್.\nಈರೆನ ಗಣಕಯಂತ್ರಡು ಕುಕೀಸ್ ನಿಷಿದ್ದ ವಾತ್ಂಡ್.\nದಯದೀದ್ ಈ ನಿಷಿದ್ಧನ್ ದೆತ್ತ್‘ದ್, ಕುಡೊರ ಪ್ರಯತ್ನ ಮಲ್ಪುಲೆ.",
        "nocookiesfornew": "ಮೂಲನ್  ನಿರ್ಧರಿಸಾವರ ಆವೊಂದಿಜ್ಜಿ  ಐಡ್‘ದಾವರ  ಈರೆನ ಖಾತೆ ಸೃಷ್ಟಿ ಆತ್‘ಜ್ಜಿ.  .\nದಯದೀದ್ ಕುಕೀಸ್ ನಿಷಿದ್ಧನ್ ದೆತ್ತ್‘ದ್, ಈ ಪುಟನ್ ಪಿರ ದಿಂಜಾದ್ (load)ಪ್ರಯತ್ನಿಸಾಲೆ.",
        "wrongpassword": "ತಪ್ಪು ಪ್ರವೇಶ ಪದ ಕೊರ್ತರ್. ನನ ಒರ ಪ್ರಯತ್ನ ಮಲ್ಪುಲೆ.",
        "wrongpasswordempty": "ಖಾಲಿ ಪ್ರವೇಶ ಪದ ಕೊರ್ತರ್. ನನ ಒರ ಪ್ರಯತ್ನ ಮಲ್ಪುಲೆ.",
        "passwordtooshort": "ಪ್ರವೇಶ ಪದಟ್ ಕನಿಷ್ಟ {{PLURAL:$1|೧ ಅಕ್ಷರ|$1 ಅಕ್ಷರರೊಳೆನ್}} ಉಪ್ಪೊಡ್",
+       "passwordtoolong": "ಪ್ರವೇಸೊ ಪದೊಟು ಕನಿಸ್ಟೊ {{PLURAL:$1|೧ ಅಕ್ಷರ|$1 ಅಕ್ಷರರೊಲು}} ಉಪ್ಪೊಡ್",
        "password-name-match": "ಇರೆನ್ ಪ್ರವೇಶಪದ ಬಳಕೆದಾರೆನ ಪುದರ್‘ಡ್‘ದ್ ಬೇತೆ ಉಪ್ಪೊಡು",
        "password-login-forbidden": "ಈ ಪ್ರವೇಶಪದ ಬೊಕ್ಕ ಬಳಕೆದಾರೆರೆನ ಪುದರ್‘ನ್ ನಿಷಿದ್ಧ ಮಲ್ತ್‘ದ್ಂಡ್",
-       "mailmypassword": "ಪà³\8aಸ à²ªà²¾à²¸à³\8d-ವರà³\8dಡà³\8dâ\80\99ನà³\8d à²\87-ಮà³\87ಲà³\8d ಮಲ್ಪುಲೆ",
+       "mailmypassword": "ಪà³\8dರವà³\87ಸà³\8a à²ªà²¦à³\8aನà³\8d à²ªà²¿à²° à²¸à³\8dತಾಪನà³\86 ಮಲ್ಪುಲೆ",
        "passwordremindertitle": "{{SITENAME}}ಗ್ ಪೊಸ ತಾತ್ಕಾಲಿಕ ಪ್ರವೇಶ ಪದ",
        "noemail": "ಸದಸ್ಯೆ \"$1\" ಪುದರ್‘ಡ್ ವಾ ಇ-ಅಂಚೆ ವಿಳಾಸೊಲ ದಾಖಲಾತ್‘ಜ್ಜಿ",
        "noemailcreate": "ಈರ್ ಇತ್ತೆ ಉಪ್ಪುನ ಇ-ಅಂಚೆ ವಿಳಾಸ ಕೊರೊಡ್",
        "passwordsent": "\"$1\" ಇಂಬೆರೆನ ಪುದರ್‘ಡ್ ದಾಖಲಾತ್‘ನ ಇ-ಅಂಚೆ ವಿಳಾಸೊಗ್ ಪೊಸ ಪ್ರವೇಶಪದ ಕಡಪುಡ್‘ದುಂಡು.ಐನ್ ತೂದು ಬೊಕ್ಕ ಕುಡ ಲಾಗಿನ್ ಇನ್ ಆಲೆ.",
+       "mailerror": "ಅಂಚೆ ಕಡಪುಡುನೆಡ್ ದೋಸೊ: $1",
        "noemailprefs": "ಈ ಸೌಲಭ್ಯೊಲ್ ಕೆಲಸ ಮಲ್ಪರೆ ಒಂಜಿ ಇ-ಅಂಚೆ ವಿಳಾಸೊನ್ ನಮೂದು ಮಲ್ಪುಲೆ.",
        "emailconfirmlink": "ಇರೆನ ಇ-ಅಂಚೆ ವಿಳಾಸೊನ್ ದೃಡೀಕರಣ ಮಲ್ಪುಲೆ.",
        "accountcreated": "ಖಾತೆ ಸೃಷ್ಟಿಯಾತ್‘ಂಡ್.",
        "passwordreset-username": "ಸದಸ್ಯೆರ್ನ ಪುದರ್:",
        "passwordreset-email": "ಇ-ಅಂಚೆ ವಿಳಾಸೊ",
        "changeemail-submit": "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
+       "resettokens-tokens": "ಸಂಕೇತೊಲು:",
+       "resettokens-token-label": "$1(ಇತ್ತೆದ ಮೌಲ್ಯೊ:$2)",
        "bold_sample": "ದಪ್ಪೊ ಅಕ್ಷರೊ",
        "bold_tip": "ದಪ್ಪೊ ಅಕ್ಷರೊ",
        "italic_sample": "ಓರೆ ಅಕ್ಷರೊಲು",
        "summary-preview": "ಸಾರಾ೦ಶ ಮುನ್ನೋಟ:",
        "subject-preview": "ವಿಷಯ/ಮುಖ್ಯಾ೦ಶದ ಮುನ್ನೋಟ:",
        "blockedtitle": "ಈ ಸದಸ್ಯೆರೆನ್ ತಡೆ ಮಲ್ತ್ ದ್೦ಡ್.",
+       "blockednoreason": "ವಾ ಕಾರಣೊಲಾ ಕೊರ್ತ್‍ಜಿ",
        "loginreqlink": "ಲಾಗಿನ್ ಆಲೆ",
        "accmailtitle": "ಪ್ರವೇಶಪದ ಕಡಪುಡ್‘ದುಂಡು",
        "newarticle": "(ಪೊಸತ್)",
        "watch": "ತೂಲೆ",
        "watchthispage": "ಈ ಪುಟೊನು ತೂಲೆ",
        "unwatch": "ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆಪ್ಪು",
+       "watchlistall2": "ಪೂರ",
        "watchlist-options": "ವೀಕ್ಷಣಾಪಟ್ಟಿ ಆಯ್ಕೆಲು",
        "watching": "ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾವೊಂದುಂಡು...",
        "unwatching": "ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆತ್ತೊಂದುಂಡು...",
index c6d54cb..e7880ba 100644 (file)
@@ -40,7 +40,7 @@
        "tog-watchdefault": "నేను మార్చే పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు",
        "tog-watchmoves": "నేను తరలించిన పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు",
        "tog-watchdeletion": "నేను తొలగించిన పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు",
-       "tog-watchrollback": "నా à°µà±\80à°\95à±\8dà°·à°£ à°\9cాబితాà°\95à°¿ à°¨à±\87à°¨à±\81 à°¤à°¿à°ªà±\8dపిà°\95à±\8aà°\9fà±\8dà°\9fà°¿à°¨ à°ªà±\87à°\9cà±\80లను జోడించు",
+       "tog-watchrollback": "à°¨à±\87à°¨à±\81 à°ªà±\81నసà±\8dà°¸à±\8dథాపిà°\82à°\9aà°¿à°¨ à°ªà±\87à°\9cà±\80లనà±\81 à°¨à°¾ à°µà±\80à°\95à±\8dà°·à°£ à°\9cాబితాà°\95ు జోడించు",
        "tog-minordefault": "అప్రమేయంగా నా మార్పులను చిన్న మార్పులుగా గుర్తించు",
        "tog-previewontop": "వ్యాసం మార్పుల మునుచూపును ఎడిట్ పెట్టె పైన చూపు",
        "tog-previewonfirst": "మొదటి  దిద్దుబాటు చేసినపుడు వ్యాసపు మునుచూపు చూపించు",
        "printableversion": "అచ్చుతీయదగ్గ కూర్పు",
        "permalink": "శాశ్వత లంకె",
        "print": "ముద్రించు",
-       "view": "à°\9aà±\82à°\9aà±\81à°\9f",
+       "view": "à°\9aà±\82à°ªà±\81",
        "view-foreign": "$1 లో చూడండి",
        "edit": "సవరించు",
        "edit-local": "ప్రాంతీయ వివరణని మార్చు",
        "jumptonavigation": "మార్గసూచీ",
        "jumptosearch": "వెతుకు",
        "view-pool-error": "క్షమించండి, ప్రస్తుతం సర్వర్లన్నీ ఓవర్‌లోడ్ అయిఉన్నాయి.\nచాలామంది వాడుకరులు ఈ పేజీని చూస్తున్నారు.\nఈ పేజీని వీక్షించడానికి కొద్దిసేపు నిరీక్షించండి.\n\n$1",
-       "generic-pool-error": "à°\95à±\8dషమిà°\82à°\9aà°\82à°¡à°¿, à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 à°¸à°°à±\8dవరà±\8dలనà±\8dà°¨à±\80 à°\93వరà±\8dâ\80\8cà°²à±\8bà°¡à±\8d à°\85యిà°\89à°¨à±\8dనాయి.\nà°\9aాలామà°\82ది à°µà°¾à°¡à±\81à°\95à°°à±\81à°²à±\81 à°¦à±\80నిని à°\9aà±\82à°¸à±\8dà°¤à±\81à°¨à±\8dనారà±\81.\nà°¦à±\80నిని à°µà±\80à°\95à±\8dà°·à°¿à°\82à°\9aడానిà°\95à°¿ à°\95à±\8aà°¦à±\8dదిసà±\87à°ªà±\81 à°¨à°¿à°°à±\80à°\95à±\8dà°·ించండి.",
+       "generic-pool-error": "à°\95à±\8dషమిà°\82à°\9aà°\82à°¡à°¿, à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 à°¸à°°à±\8dవరà±\8dలనà±\8dà°¨à±\80 à°\93వరà±\8dâ\80\8cà°²à±\8bà°¡à±\8d à°\85యిà°\89à°¨à±\8dనాయి.\nà°\9aాలామà°\82ది à°µà°¾à°¡à±\81à°\95à°°à±\81à°²à±\81 à°¦à±\80నిని à°\9aà±\82à°¸à±\87 à°ªà±\8dరయతà±\8dà°¨à°\82 à°\9aà±\87à°¸à±\8dà°¤à±\81à°¨à±\8dనారà±\81.\nà°\95ాసà±\8dà°¸à±\87పాà°\97à°¿à°¨ à°¤à°°à±\81వాత à°®à±\80à°°à±\81 à°\88 à°ªà±\87à°\9cà±\80 à°\9aà±\82à°¸à±\87à°\82à°¦à±\81à°\95à±\81 à°ªà±\8dరయతà±\8dà°¨ించండి.",
        "pool-timeout": "తాళం కొరకు వేచివుండడానికి కాలపరిమితి అయిపోయింది",
        "pool-queuefull": "సమూహపు వరుస నిండుగా ఉంది",
        "pool-errorunknown": "తెలియని లోపం",
        "hidetoc": "దాచు",
        "collapsible-collapse": "కుదించు",
        "collapsible-expand": "విస్తరించు",
-       "confirmable-confirm": "{{GENDER:$1|à°®à±\80à°°à±\81}} à°\92à°ªà±\8dà°ªà±\81à°\95à±\81à°\82à°\9fున్నారా?",
+       "confirmable-confirm": "{{GENDER:$1|à°®à±\80à°°à±\81}} à°¨à°¿à°¶à±\8dà°\9aయిà°\82à°\9aà±\81à°\95ున్నారా?",
        "confirmable-yes": "అవును",
        "confirmable-no": "కాదు",
        "thisisdeleted": "$1ను చూస్తారా, పునఃస్థాపిస్తారా?",
        "nstab-template": "మూస",
        "nstab-help": "సహాయ పేజీ",
        "nstab-category": "వర్గం",
+       "mainpage-nstab": "మొదటి పేజీ",
        "nosuchaction": "అటువంటి కార్యం లేదు",
        "nosuchactiontext": "మీరు URLలో పేర్కొన్న కార్యం సరైనది కాదు.\nమీరు URLని తప్పుగా టైపు చేసివుండవచ్చు లేదా తప్పుడు లింకుని అనుసరించివుండొచ్చు.\n{{SITENAME}} ఉపయోగించే మృదుపరికరంలో దోషమైనా అయివుండవచ్చు.",
        "nosuchspecialpage": "అటువంటి ప్రత్యేక పేజీ లేదు",
        "readonly_lag": "అనుచర (స్లేవ్) డేటాబేసు సర్వర్లు, ప్రధాన (మాస్టరు) సర్వరును అందుకునేందుకుగాను, డేటాబేసు ఆటోమాటిక్‌గా లాకు అయింది.",
        "internalerror": "అంతర్గత లోపం",
        "internalerror_info": "అంతర్గత లోపం: $1",
-       "internalerror-fatal-exception": "\"$1\" à°°à°\95à°\82 à°ªà±\8dరమాదà°\95à°°à°®à±\88à°¨ à°®à°¿à°¨à°¹à°¾à°¯à°¿à°\82à°ªు",
+       "internalerror-fatal-exception": "\"$1\" à°°à°\95à°\82 à°µà°¿à°¨à°¾à°¶à°\95à°° à°\8eà°\95à±\8dà°¸à±\86à°ªà±\8dà°·à°¨ు",
        "filecopyerror": "ఫైలు \"$1\" ను \"$2\" కు కాపీ చెయ్యలేకపోయాం.",
        "filerenameerror": "ఫైలు \"$1\" పేరును \"$2\"గా మార్చలేకపోయాం.",
        "filedeleteerror": "ఫైలు \"$1\"ని తొలగించలేకపోయాం.",
        "directorycreateerror": "\"$1\" అనే డైరెక్టరీని సృష్టించలేక పోయాం.",
-       "directoryreadonlyerror": "\"$1\" à°¸à°\82à°\9aà°¯à°\82 à°®à°¾à°°à±\8dà°\9aà°\9fà°\82 à°µà±\80à°²à±\81పడని స్థితిలో ఉంది.",
-       "directorynotreadableerror": "\"$1\" à°¸à°\82à°\9aà°¯à°\82 à°µà±\80à°\95à±\8dà°·à°£à°\95à±\81 à°\85à°\82à°¦à±\81బాà°\9fà±\81à°²à±\8b లేదు.",
+       "directoryreadonlyerror": "\"$1\" à°¡à±\88à°°à±\86à°\95à±\8dà°\9fà°°à±\80 à°°à±\80à°¡à±\8d-à°\93à°¨à±\8dà°²à±\80 స్థితిలో ఉంది.",
+       "directorynotreadableerror": "\"$1\" à°¡à±\88à°°à±\86à°\95à±\8dà°\9fà°°à±\80ని à°\9aà±\82à°¸à±\87 à°µà±\80à°²à±\81 లేదు.",
        "filenotfound": "ఫైలు \"$1\" కనబడలేదు.",
        "unexpected": "అనుకోని విలువ: \"$1\"=\"$2\".",
        "formerror": "లోపం: ఈ ఫారాన్ని పంపించలేకపోయాం.",
        "title-invalid-empty": "కోరబడిన పేజీ శీర్షిక ఖాళీగా ఉంది లేదా కేవలం పేరుబరి పేరు కలిగి ఉంది.",
        "title-invalid-utf8": "కోరబడిన పేజీ శీర్షికలో చెల్లని UTF-8 అక్షరాలున్నాయి.",
        "title-invalid-interwiki": "శీర్షిక పాఠ్యంలో అంతరవికీ లంకె ఉంది",
-       "title-invalid-talk-namespace": "à°\95à±\8bరబడిన à°ªà±\87à°\9cà±\80 à°¶à±\80à°°à±\8dà°·à°¿à°\95à°\95à±\81 à°¸à°\82à°¬à°\82ధిà°\82à°\9aà°¿à°¨ à°\9aà°°à±\8dà°\9aà°¾ à°ªà±\87à°\9cà±\80 à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aà°²à±\87à°®à±\81.",
+       "title-invalid-talk-namespace": "à°®à±\80à°°à°¡à°¿à°\97à°¿à°¨ à°ªà±\87à°\9cà±\80 à°¶à±\80à°°à±\8dà°·à°¿à°\95 à°\85సలà±\81 à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aà±\87 à°µà±\80à°²à±\87 à°²à±\87ని à°\9aà°°à±\8dà°\9aà°¾ à°ªà±\87à°\9cà±\80à°\95à°¿ à°\9aà±\86à°\82దినది.",
        "title-invalid-characters": "కోరబడిన పేజీ శీర్షికలో చెల్లని అక్షరాలున్నాయి : \"$1\".",
        "title-invalid-relative": "శీర్షికలో లంకె పాఠ్యం సాపేక్షంగా ఉంది - పూర్తిగా లేదు. సాపేక్ష పేజీ చిరునామాలు (./, ../) గల పేజీ శీర్షికలు ఎక్కువశాతం అందుబాటులో ఉండవు కనుక అవి చెల్లవు.",
        "title-invalid-magic-tilde": "కోరబడిన పేజీ శీర్షిక పాఠ్యం లో చెల్లని మ్యాజిక్ టిల్డా పదాలున్నాయి (<nowiki>~~~</nowiki>).",
        "createaccountreason": "కారణం:",
        "createacct-reason": "కారణం",
        "createacct-reason-ph": "మీరు మరో ఖాతాను ఎందుకు సృష్టించుకుంటున్నారు",
-       "createacct-captcha": "భద్రతా తనిఖీ",
-       "createacct-imgcaptcha-ph": "పైన కనబడే మాటలను ఇక్కడ ఇవ్వండి",
        "createacct-submit": "మీ ఖాతాను సృష్టించుకోండి",
        "createacct-another-submit": "మరొక ఖాతాను సృష్టించు",
        "createacct-benefit-heading": "{{SITENAME}}ను తయారుచేస్తున్నది మీలాంటి వారే.",
        "passwordreset-emailsent-capture": "క్రింద చూపిన సంకేతపదం మార్పు ఈమెయిలును పంపించాం.",
        "passwordreset-emailerror-capture": "కింద చూపిన సంకేతపదం మార్పు ఈమెయిలును తయారుచేసాం. కానీ దాన్ని {{GENDER:$2|వాడుకరికి}} పంపడం విఫలమైంది: $1",
        "changeemail": "ఈ-మెయిలు చిరునామా మార్పు",
-       "changeemail-text": "మీ ఈమెయిలు చిరునామాని మార్చుకోడానికి ఈ ఫారాన్ని నింపండి. ఈ మార్పుని నిర్ధారించడానికి మీ సంకేతపదాన్ని ఇవ్వాల్సివస్తుంది.",
+       "changeemail-header": "ఖాతా ఈ-మెయిల్ చిరునామాని మార్చండి",
        "changeemail-no-info": "ఈ పేజీని నేరుగా చూడటానికి మీరు లాగినయి వుండాలి.",
        "changeemail-oldemail": "ప్రస్తుత ఈ-మెయిలు చిరునామా:",
        "changeemail-newemail": "కొత్త ఈ-మెయిలు చిరునామా:",
        "wlheader-showupdated": "మీ గత సందర్శన తరువాత మారిన పేజీలు <strong>బొద్దు</strong>గా చూపించబడ్డాయి.",
        "wlnote": "$3 నాడు $4 సమయానికి, గడచిన {{PLURAL:$2|గంటలో|'''$2''' గంటలలో}} జరిగిన {{PLURAL:$1|ఒక్క మార్పు కింద ఉంది|'''$1''' మార్పులు కింద ఉన్నాయి}}.",
        "wlshowlast": "గత $1 గంటల $2 రోజులకు చూపించు",
+       "watchlistall2": "అన్నీ",
        "watchlist-options": "వీక్షణ జాబితా ఎంపికలు",
        "watching": "గమనిస్తున్నారు...",
        "unwatching": "గమనించడం లేదు...",
        "tooltip-pt-logout": "లాగౌటవండి",
        "tooltip-pt-createaccount": "మీరొక ఖాతాని సృష్టించుకొని ప్రవేశించటాన్ని సమర్ధిస్తున్నాము; కానీ, అది అవసరం కాదు, ఐచ్ఛికం మాత్రమే.",
        "tooltip-ca-talk": "విషయపు పేజీ గురించి చర్చ",
-       "tooltip-ca-edit": "à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80à°°à±\81 à°¸à°°à°¿à°¦à°¿à°¦à±\8dదవà°\9aà±\8dà°\9aà±\81. à°­à°¦à±\8dరపరà°\9aà±\87 à°®à±\81à°\82à°¦à±\81 à°®à±\81à°¨à±\81à°\9cà±\82à°ªà±\81 à°¬à±\8aà°¤à±\8dతానà±\8dని à°µà°¾à°¡à°\82à°¡à°¿.",
+       "tooltip-ca-edit": "à°\88 à°ªà±\87à°\9cà±\80ని à°¸à°µà°°à°¿à°\82à°\9aà°\82à°¡à°¿",
        "tooltip-ca-addsection": "కొత్త విభాగాన్ని మొదలుపెట్టండి",
        "tooltip-ca-viewsource": "ఈ పుటని సంరక్షించారు. మీరు దీని మూలాన్ని చూడవచ్చు",
        "tooltip-ca-history": "ఈ పేజీ యొక్క వెనుకటి కూర్పులు",
        "tooltip-ca-nstab-main": "విషయపు పేజీని చూడండి",
        "tooltip-ca-nstab-user": "వాడుకరి పేజీని చూడండి",
        "tooltip-ca-nstab-media": "మీడియా పేజీని చూడండి",
-       "tooltip-ca-nstab-special": "à°\87ది à°\92à°\95 à°ªà±\8dà°°à°¤à±\8dà°¯à±\87à°\95 à°ªà±\81à°\9f, దీన్ని మీరు సరిదిద్దలేరు",
+       "tooltip-ca-nstab-special": "à°\87ది à°\92à°\95 à°ªà±\8dà°°à°¤à±\8dà°¯à±\87à°\95 à°ªà±\87à°\9cà±\80, దీన్ని మీరు సరిదిద్దలేరు",
        "tooltip-ca-nstab-project": "ప్రాజెక్టు పేజీని చూడండి",
        "tooltip-ca-nstab-image": "ఫైలు పేజీని చూడండి",
        "tooltip-ca-nstab-mediawiki": "వ్యవస్థా సందేశం చూడండి",
        "spam_reverting": "$1 కు లింకులు లేని గత కూర్పుకు తిరిగి తీసుకెళ్తున్నాం",
        "spam_blanking": "$1 కు లింకులు ఉన్న కూర్పులన్నిటినీ ఖాళీ చేస్తున్నాం",
        "spam_deleting": "$1 కు లింకులున్న కూర్పులను తొలగిస్తున్నాం",
-       "simpleantispam-label": "యాà°\82à°\9fà±\80 à°¸à±\8dపామà±\8d à°ªà°°à±\80à°\95à±\8dà°·.\nà°¦à±\80à°¨à±\8dని <strong>à°ªà±\82à°°à°¿à°\82à°\9aకండి</strong>!",
+       "simpleantispam-label": "యాà°\82à°\9fà±\80 à°¸à±\8dపామà±\8d à°ªà°°à±\80à°\95à±\8dà°·.\nà°¦à±\80à°¨à±\8dని <strong>నిà°\82à°ªకండి</strong>!",
        "pageinfo-title": "\"$1\" గురించి సమాచారం",
        "pageinfo-not-current": "పాత కూర్పులకు సంబంధించి ఈ సమాచారాన్ని ఇవ్వడం అసాధ్యం, సారీ.",
        "pageinfo-header-basic": "ప్రాథమిక సమాచారం",
index 20a6f01..1bf8c7a 100644 (file)
@@ -80,7 +80,8 @@
                        "McAang",
                        "Captantrips",
                        "Diyapazon",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "HakanIST"
                ]
        },
        "tog-underline": "Bağlantıların altını çiz:",
        "redirectedfrom": "($1 sayfasından yönlendirildi)",
        "redirectpagesub": "Yönlendirme sayfası",
        "redirectto": "Şuraya yönlendir:",
-       "lastmodifiedat": "Bu sayfa son olarak $1, $2 tarihinde güncellenmiştir.",
+       "lastmodifiedat": "Bu sayfa son olarak $1 tarihinde ve $2 saatinde güncellenmiştir.",
        "viewcount": "Bu sayfaya {{PLURAL:$1|bir|$1}} defa erişilmiş.",
        "protectedpage": "Korumalı sayfa",
        "jumpto": "Şuraya atla:",
        "viewsource": "Kaynağı gör",
        "viewsource-title": "$1 sayfasının kaynağını görüntüle",
        "actionthrottled": "Eylem kısılmıştır",
-       "actionthrottledtext": "Spam'e karşı alınan önlemler dahilinde belirli bir süre aralığında bu eylemin gerçekleştirilmesine izin verilen miktarı aştınız.\nLütfen birkaç dakika sonra yeniden deneyin.",
+       "actionthrottledtext": "Suistimallere karşı alınan önlemler dahilinde belirli bir süre aralığında bu eylemin gerçekleştirilmesine izin verilen miktarı aştınız.\nLütfen birkaç dakika sonra yeniden deneyin.",
        "protectedpagetext": "Bu sayfa değişiklik ya da diğer eylemlerin yapılmasını engellemek için koruma altına alınmıştır.",
        "viewsourcetext": "Bu sayfanın kaynağını görebilir ve kopyalayabilirsiniz.",
        "viewyourtext": "Bu sayfada <strong>yaptığınız değişikliklerin</strong> kaynağını görünteleyip kopyalayabilirsiniz.",
        "recentchanges-label-unpatrolled": "Bu değişiklik henüz gözlenmemiş",
        "recentchanges-label-plusminus": "Sayfa boyutundaki değişikliğin bayt bazında değeri",
        "recentchanges-legend-heading": "'''Gösterge:'''",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Aynı zamanda bkz: [[Special:NewPages|Yeni sayfaların listesi]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ayrıca [[Special:NewPages|yeni sayfalar listesine]] bakınız)",
        "rcnotefrom": "<strong>$3, $4</strong> tarihinden itibaren yapılan {{PLURAL:$5|değişiklik|değişiklik}} aşağıdadır (<strong>$1</strong> tarhine kadar olanlar gösterilmektedir).",
        "rclistfrom": "$3 $2 tarihinden itibaren yeni değişiklikleri göster",
        "rcshowhideminor": "Küçük değişiklikleri $1",
        "wlheader-showupdated": "Sayfaları son ziyaretinizden beri değişen sayfalar '''kalın''' gösterilmiştir.",
        "wlnote": "$3 saat $4 itibariyle son {{PLURAL:$2|bir saatte|'''$2''' saatte}} yapılan {{PLURAL:$1|son değişiklik|son '''$1''' değişiklik}} aşağıdadır.",
        "wlshowlast": "Son $1 saati $2 günü göster",
+       "watchlistall2": "Hepsini göster",
+       "watchlist-hide": "Gizle",
+       "wlshowhidebots": "botlar",
+       "wlshowhideliu": "kayıtlı kullanıcılar",
+       "wlshowhideanons": "anonim kullanıcılar",
+       "wlshowhidepatr": "incelenmiş değişiklikler",
        "watchlist-options": "İzleme listesi seçenekleri",
        "watching": "İzleniyor...",
        "unwatching": "İzlenmiyor...",
        "htmlform-cloner-delete": "Sil",
        "htmlform-cloner-required": "En az bir değer gereklidir.",
        "htmlform-title-not-creatable": "\"$1\"oluşturulabilir bir sayfa ismi değil.",
-       "htmlform-title-not-exists": "$1 mevcut değil",
+       "htmlform-title-not-exists": "$1 mevcut değil.",
        "htmlform-user-not-exists": "<strong>$1</strong> mevcut değil.",
        "htmlform-user-not-valid": "<strong>$1</strong> geçerli bir kullanıcı ismi değildir.",
        "sqlite-has-fts": "$1 tam-metin arama desteği ile",
index 322d07c..bbff49b 100644 (file)
        "log": "Журнали",
        "all-logs-page": "Усі публічні журнали",
        "alllogstext": "Комбінований показ журналів {{grammar:genitive|{{SITENAME}}}}.\nВи можете відфільтрувати результати за типом журналу, іменем користувача (враховується регістр) або зазначеною сторінкою (також враховується регістр).",
-       "logempty": "Ð\92 журналі немає подібних записів.",
+       "logempty": "У журналі немає подібних записів.",
        "log-title-wildcard": "Знайти заголовки, що починаються з цих символів",
        "showhideselectedlogentries": "Показати/приховати виділені записи журналу",
        "log-edit-tags": "Змінити мітки для вибраних записів журналів",
        "wlheader-showupdated": "Сторінки, що змінилися після вашого останнього їх відвідування, виділені '''жирним''' шрифтом.",
        "wlnote": "Нижче наведено {{PLURAL:$1|останнє $1 редагування|останні $1 редагування|останні $1 редагувань}} за {{PLURAL:$2|останню|останні|останні}} <strong>$2</strong> {{PLURAL:$2|годину|години|годин}}, на час $3 $4.",
        "wlshowlast": "Показати зміни за останні $1 годин $2 днів",
+       "watchlistall2": "всі",
        "watchlist-options": "Налаштування списку спостереження",
        "watching": "Додавання до списку спостереження…",
        "unwatching": "Вилучення зі списку спостереження…",
index b29d16d..0f9c2a4 100644 (file)
        "anontalk": "اس آئی پی پتہ کا تبادلۂ خیال",
        "navigation": "رہنمائی",
        "and": "&#32;اور",
-       "qbfind": "ڈھونڈ",
-       "qbbrowse": "تصفّح",
+       "qbfind": "تلاش",
+       "qbbrowse": "مطالعہ",
        "qbedit": "ترمیم",
-       "qbpageoptions": "صفحۂ ہٰذا",
+       "qbpageoptions": "یہ صفحہ",
        "qbmyoptions": "میرے صفحات",
-       "faq": "معلوماتِ عامہ",
+       "faq": "عام طور پر پوچھے جانے والے سوالات",
        "faqpage": "Project:معلوماتِ عامہ",
        "actions": "ایکشنز",
        "namespaces": "جائے نام",
        "viewsource": "مسودہ",
        "viewsource-title": "$1 کا مسودہ دیکھیں",
        "actionthrottled": "Action throttled",
-       "actionthrottledtext": "بطÙ\88رÙ\90 Ø§Û\8cÚ© Ø¶Ø¯Ø³Ù¾Ù\85 ØªØ¯Ø¨Û\8cرØ\8c Ø¢Ù¾ Ú©Ù\88 Ù\85ختصر Ù\88Ù\82ت Ù\85Û\8cÚº Ú©Ø¦Û\8c Ø¨Ø§Ø± Û\8cÛ\81 Ø¹Ù\85Ù\84 Ø¨Ø¬Ø§ Ù\84اÙ\86Û\92 Ø³Û\92 Ù\85حدÙ\88د Ú©Û\8cا Ú¯Û\8cاØ\8c Ø§Ù\88ر Ø¢Ù¾ Û\8cÛ\81 Ø­Ø¯ Ù¾Ø§Ø± Ú©Ø±Ú\86Ú©Û\92 Û\81Û\8cÚº.\nبراÛ\81Ù\90 Ú©Ø±Ù\85Ø\8c Ú©Ú\86Ú¾ Ù\85Ù\86Ù¹ Ø¨Ø¹Ø¯ Ú©Ù\88شش Ú©Û\8cجئÛ\92.",
+       "actionthrottledtext": "اÛ\8cÚ© Ø¶Ø¯ Ø³Ù¾Ù\85 Ù\85عÛ\8cار Ú©Û\92 Ø·Ù\88ر Ù¾Ø± Ø¢Ù¾ Ú©Û\92 Ù\84Û\8cÛ\92 Ù\85ختصر Ù\88Ù\82ت Ù\85Û\8cÚº Ù\85تعدد Ø¯Ù\81عÛ\81 Û\8cÛ\81 Ø§Ù\82داÙ\85 Ú©Ø±Ù\86Û\92 Ú©Û\92 Ù\84Û\8cÛ\92 Ø­Ø¯ Ù\85تعÛ\8cÙ\86 Ú©Û\8c Ú¯Ø¦Û\8c Û\81Û\92Ø\8c Ø§Ù\88ر Ø¢Ù¾ Û\8cÛ\81 Ø­Ø¯ Ù¾Ø§Ø± Ú©Ø±Ú\86Ú©Û\92 Û\81Û\8cÚº.\nبراÛ\81Ù\90 Ú©Ø±Ù\85Ø\8c Ú©Ú\86Ú¾ Ù\85Ù\86ٹس Ø¨Ø¹Ø¯ Ø¯Ù\88بارÛ\81 Ú©Ù\88شش Ú©Ø±Û\8cÚºÛ\94",
        "protectedpagetext": "اس صفحہ کو تدوین سے محفوظ رکھنے کیلیے مقفل کر دیا گیا ہے۔",
        "viewsourcetext": "آپ صرف مسودہ دیکھ سکتے ہیں اور اسکی نقل اتار سکتے ہیں۔",
        "viewyourtext": "آپ اس مواد کو دیکھ سکتے ہیں اور اٹھا (کاپی) سکتے ہیں <strong>آپ کی ترامیم</strong> اس صفحہ پر۔",
        "createacct-emailoptional": "ای میل ایڈریس (اختیاری)",
        "createacct-email-ph": "اپنا برقی پتہ لکھیں",
        "createacct-another-email-ph": "برقی پتہ لکھیں",
-       "createaccountmail": "بذرÛ\8cعÛ\82 Ø¨Ø±Ù\82Û\8c Ú\88اک",
+       "createaccountmail": "عارضÛ\8c Ù¾Ø§Ø³Ù\88رÚ\88 Ø§Ø³ØªØ¹Ù\85اÙ\84 Ú©Ø±Û\8cÚº Ø§Ù\88ر Ø§Ø³Û\92 Ù\85تعÛ\8cÙ\86Û\81 Ø¨Ø±Ù\82Û\8c Ú\88اک Ù¾ØªÛ\81 Ù¾Ø± Ø§Ø±Ø³Ø§Ù\84 Ú©Ø±Û\8cÚº",
        "createacct-realname": "اصلی نام (اختیاری)",
        "createaccountreason": "وجہ:",
        "createacct-reason": "وجہ",
        "invalidemailaddress": "برقی پتہ قبول نہیں کیا جاسکتا کیونکہ یہ غلط شکل میں ہے.\nبراہِ کرم! ایک برقی پتہ صحیح شکل میں درج کیجئے یا جگہ کو خالی چھوڑ دیجئے.",
        "emaildisabled": "اس سائٹ سے برقی خط نہیں بھیجے جاسکتے",
        "accountcreated": "تخلیقِ کھاتہ",
-       "accountcreatedtext": "تخیلقِ کھاتۂ صارف براۓ $1۔",
+       "accountcreatedtext": "[[{{ns:صارف}}:$1|$1]] ([[{{ns:تبادلۂ خیال صارف}}:$1|تبادلۂ خیال]]) کا صارف کھاتہ بن چکا ہے۔",
        "createaccount-title": "کھاتہ سازی برائے {{SITENAME}}",
        "createaccount-text": "کسی نے {{SITENAME}} ($4) پر \"$2\" کے نام سے اور \"$3\" پارلفظ کے ساتھ آپ کا برقی پتہ استعمال کرتے ہوئے کھاتہ بنایا ہے.\nآپ کو چاہئے کہ ابھی داخلِ نوشتہ ہوکر اپنا پارلفظ تبدیل کردیں.\n\nاگر یہ کھاتہ غلطی سے بنا تھا تو آپ یہ پیغام نظرانداز کرسکتے ہیں.",
-       "login-throttled": "آپ Ù\86Û\92 Ø¯Ø§Ø®Ù\84Ù\90 Ù\86Ù\88شتÛ\81 Û\81Ù\88Ù\86Û\92 Ú©Û\8cÙ\84ئÛ\92 Ø¨Û\81ت Ø²Û\8cادÛ\81 Ø­Ø§Ù\84Û\8cÛ\81 Ú©Ù\88ششÛ\8cÚº Ú©Û\8cÚº.\nدÙ\88بارÛ\81 Ú©Ù\88شش Ú©Ø±Ù\86Û\92 Ø³Û\92 Ù¾Û\81Ù\84Û\92 Ø§Ù\86تظار Ù\81رÙ\85ائÛ\8cÛ\92.",
+       "login-throttled": "آپ Ù\86Û\92 Ø­Ø§Ù\84 Û\81Û\8c Ù\85Û\8cÚº Ù\85تعدد Ù\85رتبÛ\81 Ù\84اگ Ø§Ù\86 Û\81Ù\88Ù\86Û\92 Ú©Û\8c Ú©Ù\88شش Ú©Û\8c Û\81Û\92Û\94\nدÙ\88بارÛ\81 Ú©Ù\88شش Ú©Ø±Ù\86Û\92 Ø³Û\92 Ù¾Û\81Ù\84Û\92 $1 Ø§Ù\86تظار Ù\81رÙ\85ائÛ\8cÛ\92Û\94",
        "loginlanguagelabel": "زبان: $1",
        "pt-login": "داخل ہوجائیے",
        "pt-login-button": "داخل ہو",
        "sig_tip": "آپکا دستخط بمع مہرِوقت",
        "hr_tip": "اُفقی لکیر (زیادہ استعمال نہ کریں)",
        "summary": "خلاصہ:",
-       "subject": "مضمون/شہ سرخی:",
+       "subject": "عنوان:",
        "minoredit": "معمولی ترمیم",
        "watchthis": "یہ صفحہ زیر نظر کیجیۓ",
        "savearticle": "محفوظ",
        "preview": "نمائش",
        "showpreview": "نمائش",
        "showdiff": "تبدیلیاں دکھاؤ",
-       "anoneditwarning": "آپ {{SITENAME}} میں داخل نہیں ہوئے لہذا آپکا IP پتہ اس صفحہ کے تاریخچۂ  ترمیم میں محفوظ ہوجائے گا۔",
+       "anoneditwarning": "<strong>انتباہ:</strong> آپ ویکیپیڈیا میں داخل نہیں ہوئے ہیں۔ لہذا اگر آپ اس صفحہ میں کوئی ترمیم کرتے ہیں تو آپکا آئی پی ایڈریس (IP) اس صفحہ کے تاریخچہ ترمیم میں محفوظ ہوجائے گا۔ اگر آپ  <strong>[$1 لاگ ان]</strong> ہوتے ہیں یا کھاتہ نہ ہونے کی صورت میں <strong>[$2 کھاتہ بنا لیتے ہیں]</strong> تو تو آپ کی ترامیم آپ کے صارف نام سے محفوظ ہوگی، جنھیں آپ کسی بھی وقت ملاحظہ کر سکتے ہیں۔",
        "missingsummary": "'''انتباہ:''' آپ نے ترمیمی خلاصہ مہیّا نہیں کیا.\nاگر آپ نے محفوظ کا بٹن دوبارہ دبایا تو آپ کی ترمیم بغیر کسی خلاصہ کے محفوظ ہوجائے گی.",
        "missingcommenttext": "براہِ کرم! تبصرہ نیچے درج کیجئے.",
-       "missingcommentheader": "<strong>انتباہ:</strong>  آپ نے اِس تبصرہ کیلئے عنوان یا شہ سرخی مہیّا نہیں کی۔\nاگر آپ نے محفوظ کا بٹن دوبارہ دبایا تو آپ کا تبصرہ بغیر کسی عنوان کے محفوظ ہوجائے گا۔",
+       "missingcommentheader": "<strong>یاددہانی:</strong>  آپ نے اِس تبصرہ کیلئے عنوان یا شہ سرخی مہیّا نہیں کی ہے۔\nاگر آپ نے \"{{int:savearticle}}\" کا بٹن دوبارہ دبایا تو آپ کا تبصرہ بغیر کسی عنوان کے محفوظ ہوجائے گا۔",
        "summary-preview": "نمائش خلاصہ:",
-       "subject-preview": "عنوان/شہ سرخی کا پیش منظر:",
+       "subject-preview": "عنوان/شہ سرخی کی نمائش:",
        "blockedtitle": "صارف مسدود ہے",
        "blockedtext": "'''آپکا اسمِ صارف یا آئی پی پتہ پر پابندی ہے.'''\n\n$1 نے پابندی لگائی تھی.\nوجہ یہ بتائی گئی کہ ''$2''.\n\n* پابندی کی ابتداء : $8\n* پابندی کا اختتام : $6\n* Intended blockee: $7\n\nآپ $1 یا کسی دوسرے [[{{MediaWiki:Grouppage-sysop}}|منتظم]] سے رابطہ کرکے پابندی پر بات چیت کرسکتے ہیں.\nآپ ‘صارف کو برقی خط ارسال کریں’ کی خاصیت اُس وقت تک استعمال نہیں کرسکتے جب تک آپ اپنے [[Special:Preferences|کھاتہ کے ترجیحات]] میں صحیح برقی پتہ معیّن نہ کریں، اور آپ کو اِسے استعمال کرنے سے پابند نہیں کیا گیا ہے.\nآپکا موجودہ آئی پی پتہ $3 ہے، اور پابندی کی شناخت #$5 ہے.\nبراہِ مہربانی کسی بھی قسم کے استفسار میں درج بالا تمام تفاصیل شامل کریں.",
        "blockednoreason": "کوئی وجہ نہیں دی گئی",
        "loginreqlink": "داخلہ",
        "loginreqpagetext": "دوسرے صفحات ملاحظہ کرنے کیلئے آپکا $1 ضروری ہے.",
        "accmailtitle": "کلمہ شناخت بھیج دیا گیا۔",
-       "accmailtext": "[[User talk:$1|$1]] Ú©Û\8cÙ\84ئÛ\92 Ø®Ù\88دکار Ø·Ø±Û\8cÙ\82Û\92 Ø³Û\92 ØªØ®Ù\84Û\8cÙ\82 Ú©Û\8cا Ú¯Û\8cا Ù¾Ø§Ø±Ù\84Ù\81ظ $2 Ú©Ù\88 Ø¨Ú¾Û\8cج Ø¯Û\8cا Ú¯Û\8cا Û\81Û\92.\n\nداخÙ\84Ù\90 Ù\86Ù\88شتÛ\81 Û\81Ù\88Ù\86Û\92 Ù¾Ø± Ø§Ù\90س Ø¬Ø¯Û\8cد Ú©Ú¾Ø§ØªÛ\92 Ú©Û\8cÙ\84ئÛ\92 Ù¾Ø§Ø±Ù\84Ù\81ظ ''[[Special:ChangePassword|پارÙ\84Ù\81ظ Ú©Û\8c ØªØ¨Ø¯Û\8cÙ\84Û\8c]]'' Ù\85Û\8cÚº ØªØ¨Ø¯Û\8cÙ\84 Ú©Û\8cا Ø¬Ø§Ø³Ú©ØªØ§ Û\81Û\92.",
+       "accmailtext": "[[User talk:$1|$1]] Ú©Û\92 Ù\84Û\8cÛ\92 Ø®Ù\88دکار Ø·Ø±Û\8cÙ\82Û\92 Ø³Û\92 ØªØ®Ù\84Û\8cÙ\82 Ú©Û\8cا Ú¯Û\8cا Ù¾Ø§Ø³Ù\88رÚ\88 $2 Ú©Ù\88 Ø¨Ú¾Û\8cج Ø¯Û\8cا Ú¯Û\8cا Û\81Û\92.\n\nÙ\84اگ Ø§Ù\86 Û\81Ù\88Ù\86Û\92 Ú©Û\92 Ø¨Ø¹Ø¯ <em>[[Special:ChangePassword|اسÛ\92 ØªØ¨Ø¯Û\8cÙ\84]]</em> Ú©Û\8cا Ø¬Ø§ Ø³Ú©ØªØ§ Û\81Û\92Û\94",
        "newarticle": "(نیا)",
        "newarticletext": "آپ نے ایک ایسے صفحے کے ربط کی پیروی کی ہے جو کہ ابھی موجود نہیں ہے.\nیہ صفحہ تخلیق کرنے کیلئے درج ذیل خانہ میں متن درج کیجئے (مزید معلومات کیلئے [$1 صفحۂ معاونت] ملاحظہ فرمائیے).\nاگر آپ یہاں غلطی سے پہنچے ہیں تو پچھلے صفحے پر واپس جانے کیلئے اپنے متصفح پر '''back''' کا بٹن ٹک کیجئے.",
        "anontalkpagetext": "----''یہ صفحہ ایک ایسے صارف کا ہے جنہوں نے یا تو اب تک اپنا کھاتا نہیں بنایا یا پھر وہ اسے استعمال نہیں کر رہے/ رہی ہیں۔ لہٰذا ہمیں انکی شناخت کے لئے ایک عددی آئی پی پتہ استعمال کرنا پڑرہا ہے۔ اس قسم کا آئی پی پتہ ایک سے زائد صارفین کے لئے مشترک بھی ہوسکتا ہے۔ اگر آپکی موجودہ حیثیت ایک گمنام صارف کی ہے اور آپ محسوس کریں کہ اس صفحہ پر آپکی جانب منسوب یہ بیان غیرضروری ہے تو براہ کرم [[Special:UserLogin/signup|کھاتہ بنائیں]] یا [[Special:UserLogin|داخلِ نوشتہ]] ہوجائیے تاکہ مستقبل میں آپکو گمنام صارفین میں شمار کرنے سے پرہیز کیا جاسکے۔\"",
        "editing": "آپ \"$1\" میں ترمیم کر رہے ہیں۔",
        "creating": "زیر تخلیق $1",
        "editingsection": "$1 کے قطعہ کی تدوین",
-       "editingcomment": "زیرترمیم $1 (تبصرہ)",
+       "editingcomment": "زیرترمیم $1 (نیا قطعہ)",
        "editconflict": "تنازعہ ترمیم:$1",
        "explainconflict": "آپکی تدوین شروع ہونے کے بعد شاید کسی نے یہ صفحہ تبدیل کردیا ہے.\nبالائی خانۂ متن میں صفحہ کا موجودہ مواد ہے.\nآپ کی تبدیلیاں نچلے متن خانہ میں دکھائی گئی ہیں.\nآپ کو اپنی تبدیلیاں موجودہ متن میں ضم کرنا ہوں گی.\n\"محفوظ\" کا بٹن ٹک کرنے سے '''صرف''' بالائی متن محفوظ ہوگا.",
        "yourtext": "آپ کی تحریر",
        "group-bot": "روبالات",
        "group-sysop": "منتظمین",
        "group-bureaucrat": "مامورین اداری",
-       "group-suppress": "نگران",
+       "group-suppress": "Suppressors",
        "group-all": "(تمام)",
        "group-user-member": "صارف",
        "group-autoconfirmed-member": "خودتوثیق شدہ صارف",
        "group-bot-member": "خودکار صارف",
        "group-sysop-member": "منتظم",
        "group-bureaucrat-member": "{{GENDER:$1|مامور اداری}}",
-       "group-suppress-member": "{{GENDER:$1|نگران}}",
+       "group-suppress-member": "{{GENDER:$1|suppressor}}",
        "grouppage-user": "{{ns:project}}:صارفین",
        "grouppage-autoconfirmed": "{{ns:project}}:خود توثیق شدہ صارف",
        "grouppage-bot": "{{ns:project}}:روبہ جات",
        "recentchanges-label-unpatrolled": "اس ترمیم کی اب تک مراجعت نہیں کی گئی",
        "recentchanges-label-plusminus": "صفحہ کا حجم تبدیل شدہ بلحاظ بائٹ مقدار",
        "recentchanges-legend-heading": "'''اختیارات'''",
-       "rcnotefrom": "ذیل میں '''$2''' سے کی گئی تبدیلیاں ہیں ('''$1''' تبدیلیاں دکھائی جارہی ہیں)۔",
+       "rcnotefrom": "ذیل میں <strong>$3, $4</strong> سے کی گئی {{PLURAL:$5|تبدیلی|تبدیلیاں}} <strong>$1</strong> تک دکھائی جا رہی ہیں۔",
        "rclistfrom": "$3 $2 سےنئی تبدیلیاں دکھانا شروع کریں",
        "rcshowhideminor": "معمولی ترامیم $1",
        "rcshowhideminor-show": "دکھائیں",
        "minoreditletter": "م",
        "newpageletter": "نیا ..",
        "boteditletter": " خودکار",
-       "rc_categories_any": "کوئی بھی",
+       "rc_categories_any": "کوئی بھی منتخب",
        "rc-change-size-new": "$1 {{PLURAL:$1|بائٹ|بائٹس}} تبدیلی کے بعد",
        "rc-enhanced-expand": "تفصیلات دکھائیں",
        "rc-enhanced-hide": "تفصیلات چھپائیے",
        "ignorewarning": "انتباہ نظرانداز کرتے ہوۓ بہرصورت ملف (فائل) کو محفوظ کرلیا جاۓ۔",
        "ignorewarnings": "ہر انتباہ نظرانداز کردیا جاۓ۔",
        "badfilename": "ملف (فائل) کا نام \"$1\" ، تبدیل کردیا گیا۔",
-       "fileexists": "اس Ù\86اÙ\85 Ø³Û\92 Ø§Û\8cÚ© Ù\85Ù\84Ù\81 (Ù\81ائÙ\84) Ù¾Û\81Ù\84Û\92 Û\81Û\8c Ù\85Ù\88جÙ\88د Û\81Û\92Ø\8c Ø§Ú¯Ø± Ø¢Ù¾ Ú©Ù\88 Û\8cÙ\82Û\8cÙ\86 Ù\86Û\81 Û\81Ù\88 Ú©Û\81 Ø§Ø³Û\92 Ø­Ø°Ù\81 Ú©Ø±Ø¯Û\8cا Ø¬Ø§Ù\86ا Ú\86اÛ\81Û\8cÛ\93 ØªÙ\88 Ø¨Ø±Ø§Û\81 Ú©Ø±Ù\85  <strong>[[:$1]]</strong> Ú©Ù\88 Ø§Û\8cÚ© Ù\86ظر Ø¯Û\8cÚ©Ú¾ Ù\84Û\8cجÛ\8cÛ\93۔ [[$1|thumb]]",
+       "fileexists": "اس Ù\86اÙ\85 Ø³Û\92 Ø§Û\8cÚ© Ù\81ائÙ\84 Ù¾Û\81Ù\84Û\92 Ø³Û\92 Ù\85Ù\88جÙ\88د Û\81Û\92Ø\8c Ø§Ú¯Ø± Ø¢Ù¾ Ú©Ù\88 Û\8cÙ\82Û\8cÙ\86 Ù\86Û\81 Û\81Ù\88 Ú©Û\81 Ø§Ø³Û\92 Ø­Ø°Ù\81 Ú©Ø±Ø¯Û\8cا Ø¬Ø§Ù\86ا Ú\86اÛ\81Û\8cÛ\92 ØªÙ\88 Ø¨Ø±Ø§Û\81 Ú©Ø±Ù\85  <strong>[[:$1]]</strong> Ú©Ù\88 Ø§Û\8cÚ© Ù\86ظر Ø¯Û\8cÚ©Ú¾ Ù\84Û\8cجÛ\8cÛ\92۔ [[$1|thumb]]",
        "uploadwarning": "انتباہ بہ سلسلۂ زبراثقال",
        "savefile": "فائل محفوظ کریں",
        "sourcefilename": "اسم ملف (فائل) کا منبع:",
        "ncategories": "{{PLURAL:$1|زمرہ|زمرہ جات}} $1",
        "nmembers": "{{PLURAL:$1|رکن|اراکین}}",
        "lonelypages": "يتيم صفحات",
-       "lonelypagestext": "مندرجہ ذیل صفحات وہ صفحات ہیں جنھیں اس وکی میں موجود صفحوں سے کوئی ربط حاصل نہیں ہوپارہا۔",
+       "lonelypagestext": "ذیل میں ان صفحات کی فہرست ہے جو {{SITENAME}} میں موجود دیگر صفحات سے مربوط یا ان میں شامل نہیں ہیں۔",
        "uncategorizedpages": "بے زمرہ صفحات",
        "uncategorizedcategories": "بے زمرہ زمرہ جات",
        "uncategorizedimages": "بے زمرہ تصاویر",
        "booksources-search-legend": "تلاش برائے مآخذاتِ کتاب",
        "booksources-search": "تلاش",
        "specialloguserlabel": "صارف:",
-       "speciallogtitlelabel": "عنوان:",
+       "speciallogtitlelabel": "ہدف (عنوان یا {{ns:user}}:صارف نام برائے صارف):",
        "log": "نوشتہ جات",
        "allpages": "تمام صفحات",
        "nextpage": "اگلا صفحہ ($1)",
        "allpagessubmit": "چلو",
        "allpagesprefix": "مطلوبہ سابقہ سے شروع ہونے والے صفحات کی نمائش:",
        "categories": "زمرہ",
-       "categoriespagetext": "مندرجہ ذیل زمرہ جات اس وکی میں موجود ہیں۔\n[[Special:UnusedCategories|Unused categories]] are not shown here.\nAlso see [[Special:WantedCategories|wanted categories]].",
+       "categoriespagetext": "ذیل میں موجود {{PLURAL:$1|زمرہ|زمرہ جات}} میں صفحات یا میڈیا موجود ہے۔\n[[Special:UnusedCategories|غیر مستعمل زمرہ جات]] یہاں نہیں دکھائے گئے ہیں۔\nنیز [[Special:WantedCategories|مطلوبہ زمرہ جات کی فہرست]] بھی ملاحظہ فرمائیں۔",
        "linksearch-ok": "تلاش",
        "linksearch-line": "$1 مربوط ہے $2 سے",
        "listusers-submit": "دکھاؤ",
        "watchlist-details": "آپ کی زیرِنظرفہرست پر {{PLURAL:$1|$1 صفحہ ہے|$1 صفحات ہیں}}، اِس میں تبادلۂ خیال صفحات کی تعداد شامل نہیں.",
        "wlnote": "نیچےآخری $1 تبدیلیاں ہیں جو کے پیچھلے <b>$2</b> گھنٹوں میں کی گئیں۔",
        "wlshowlast": "دکھائیں آخری $1 گھنٹے $2 دن",
+       "watchlistall2": "تمام",
        "watchlist-options": "اختیارات برائے زیرِنظرفہرست",
-       "enotif_body": "جناب $WATCHINGUSERNAME!\n\n$PAGEINTRO $NEWPAGE\n\nخلاصہ ترمیم: $PAGESUMMARY $PAGEMINOREDIT\n\nصارف سے رابطہ کریں:\nبذریعہ برقی خط: $PAGEEDITOR_EMAIL\nبذریعہ ویکی: $PAGEEDITOR_WIKI\n\nاس صفحہ میں آئندہ ہونے والی تبدیلیوں کی اطلاعات آپ کو موصول نہیں ہوگی جب تک آپ لاگ ان ہو کر اس صفحہ کو ملاحظہ نہ کر لیں. نیز آپ اپنی زیر نظر فہرست میں موجود تمام صفحات سے اطلاعی علامتیں بھی ختم کر سکتے ہیں.\n\nنظام {{SITENAME}} برائے اطلاعات\n\n--\nاطلاعات بذریعہ برقی خط کی ترتیبات تبدیل کرنے کے لیے\n{{canonicalurl:{{#special:Preferences}}}} ملاحظہ فرمائیں\n\nاپنی زیر نظر فہرست کی ترتیبات میں تبدیلی کے لیے\n{{canonicalurl:{{#special:EditWatchlist}}}} ملاحظہ فرمائیں\n\nاس صفحہ کو اپنی زیر نظر فہرست سے حذف کرنے کے لیے\n$UNWATCHURL ملاحظہ کریں\n\nتجاویز اور مزید معاونت کے لیے ملاحظہ فرمائیں:\n$HELPPAGE",
+       "enotif_reset": "جملہ صفحات کو بطور زیارت شدہ نشان زد کریں",
+       "enotif_subject_deleted": "{{SITENAME}} میں صفحہ $1 صارف $2 نے {{GENDER:$2|حذف کیا}}",
+       "enotif_subject_created": "{{SITENAME}} میں صفحہ $1 کو $2 نے {{GENDER:$2|تخلیق کیا}}",
+       "enotif_subject_moved": "{{SITENAME}} میں صفحہ $1 کو $2 نے {{GENDER:$2|منتقل کیا}}",
+       "enotif_subject_restored": "{{SITENAME}} میں صفحہ $1 کو $2 نے {{GENDER:$2|بحال کیا}}",
+       "enotif_subject_changed": "{{SITENAME}} کے صفحہ $1 میں $2 نے {{GENDER:$2|تبدیلی کیا}}",
+       "enotif_body_intro_deleted": "{{SITENAME}} میں صفحہ $1 کو بتاریخ $PAGEEDITDATE صارف $2 نے {{GENDER:$2|حذف کر دیا}} ہے، ملاحظہ فرمائیں $3۔",
+       "enotif_body_intro_created": "{{SITENAME}} میں صفحہ $1 کو بتاریخ $PAGEEDITDATE صارف $2 نے {{GENDER:$2|تخلیق کیا}}، موجودہ نسخہ دیکھنے کے لیے $3 ملاحظہ فرمائیں۔",
+       "enotif_body_intro_moved": "{{SITENAME}} میں صفحہ $1 کو بتاریخ $PAGEEDITDATE صارف $2 نے {{GENDER:$2|منتقل کر دیا}} ہے، موجودہ نسخہ دیکھنے کے لیے $3 ملاحظہ فرمائیں۔",
+       "enotif_body_intro_restored": "{{SITENAME}} میں صفحہ $1 کو بتاریخ $PAGEEDITDATE صارف $2 نے {{GENDER:$2|بحال کیا}}، موجودہ نسخہ دیکھنے کے لیے $3 ملاحظہ فرمائیں۔",
+       "enotif_body_intro_changed": "{{SITENAME}} میں صفحہ $1 میں بتاریخ $PAGEEDITDATE صارف $2 نے {{GENDER:$2|تبدیلی کی}}، موجودہ نسخہ دیکھنے کے لیے $3 ملاحظہ فرمائیں۔",
+       "enotif_lastvisited": "آپ کی آخری آمد کے بعد سے ہونے والی تمام تبدیلیوں کو دیکھنے کے لیے $1 کو ملاحظہ فرمائیں۔",
+       "enotif_lastdiff": "اس تبدیلی کو دیکھنے کے لیے $1 کو ملاحظہ فرمائیں۔",
+       "enotif_body": "جناب $WATCHINGUSERNAME!\n\n$PAGEINTRO $NEWPAGE\n\nخلاصہ ترمیم: $PAGESUMMARY $PAGEMINOREDIT\n\nصارف سے رابطہ کریں:\nبذریعہ برقی خط: $PAGEEDITOR_EMAIL\nبذریعہ ویکی: $PAGEEDITOR_WIKI\n\nاس صفحہ میں آئندہ ہونے والی تبدیلیوں کی اطلاعات آپ کو موصول نہیں ہوگی جب تک آپ لاگ ان ہو کر اس صفحہ کو ملاحظہ نہ کر لیں۔ نیز آپ اپنی زیر نظر فہرست میں موجود تمام صفحات سے اطلاعی علامتیں بھی ختم کر سکتے ہیں۔\n\nفقط\nآپ کا خادم، {{SITENAME}} نظام اطلاعات\n\n--\nاطلاعات بذریعہ برقی خط کی ترتیبات تبدیل کرنے کے لیے\n{{canonicalurl:{{#special:Preferences}}}} ملاحظہ فرمائیں\n\nاپنی زیر نظر فہرست کی ترتیبات میں تبدیلی کے لیے\n{{canonicalurl:{{#special:EditWatchlist}}}} ملاحظہ فرمائیں\n\nاس صفحہ کو اپنی زیر نظر فہرست سے حذف کرنے کے لیے\n$UNWATCHURL ملاحظہ فرمائیں\n\nتجاویز اور مزید معاونت کے لیے ملاحظہ فرمائیں:\n$HELPPAGE",
        "created": "بنا دیا گیا",
        "changed": "تبدیل کردیاگیا",
        "deletepage": "صفحہ ضائع کریں",
index 2c1d958..22210a4 100644 (file)
@@ -19,7 +19,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Macofe",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "V6rg"
                ]
        },
        "tog-underline": "Sotołinea i cołegamenti:",
        "faq": "Domande frequenti",
        "faqpage": "Project:Domande frequenti",
        "actions": "Asion",
-       "namespaces": "Namespace",
+       "namespaces": "نؤمفضا",
        "variants": "Varianse",
        "navigation-heading": "Menù de navigassion",
        "errorpagetitle": "Erore",
        "createaccountreason": "Motivassion:",
        "createacct-reason": "Motivo",
        "createacct-reason-ph": "Com'èla te sì drio crear n'altra utensa",
-       "createacct-captcha": "Controlo de sicuresa",
-       "createacct-imgcaptcha-ph": "Inserissi el testo che te vedi de sora",
        "createacct-submit": "Crea la to utensa",
        "createacct-another-submit": "Crèa n'altra utensa",
        "createacct-benefit-heading": "{{SITENAME}} xe fato da gente come ti.",
        "timezoneregion-pacific": "Oceano Pacifico",
        "allowemail": "Consenti la ricezion de e-mail da altri utenti<sup>1</sup>",
        "prefs-searchoptions": "Riserca",
-       "prefs-namespaces": "Namespace",
+       "prefs-namespaces": "نؤمفضا",
        "default": "predefinìo",
        "prefs-files": "File",
        "prefs-custom-css": "CSS personalixà",
        "wlheader-showupdated": "Le pagine che xe stà canbià da la to ultima visita le xe segnà in '''grosso'''",
        "wlnote": "Cuà soto te cati {{PLURAL:$1|'l ultimo canbiamento|i ultimi '''$1''' canbiamenti}} inte {{PLURAL:$2|l'ultema ora|łe ultime '''$2''' ore}}; i dati i xe axornai a łe $4 del $3.",
        "wlshowlast": "Mostra le ultime $1 ore $2 zorni",
+       "watchlistall2": "tute",
        "watchlist-options": "Inpostassion de le pagine tegnùe d'ocio",
        "watching": "Taco a tegner d'ocio...",
        "unwatching": "Desmeto de tegner d'ocio...",
        "undelete-error-long": "Se gà verificà dei erori nel tentativo de anular la scancelazion del file:\n\n$1",
        "undelete-show-file-confirm": "Sito sicuro che te vol vardar na revision del file \"<nowiki>$1</nowiki>\" scancelà da $2 el $3",
        "undelete-show-file-submit": "Sì",
-       "namespace": "Namespace:",
+       "namespace": "نؤمفضا:",
        "invert": "Inverti la selession",
        "tooltip-invert": "Sełesion sta caxeła par scondare łe modifeghe a łe pàjine drento del namespace sełesionà (e 'l rełativo namespace, se sełesionà)",
        "namespace_association": "Namespace asocià",
index 21cb4b2..9422a77 100644 (file)
        "october-date": "$1 tháng 10",
        "november-date": "$1 tháng 11",
        "december-date": "$1 tháng 12",
-       "pagecategories": "{{PLURAL:$1|Thể loại|Thể loại}}",
+       "pagecategories": "{{PLURAL:$1}}Thể loại",
        "category_header": "Các trang trong thể loại “$1”",
        "subcategories": "Thể loại con",
        "category-media-header": "Các tập tin trong thể loại “$1”",
        "category-empty": "''Thể loại này hiện không có trang hay tập tin nào.''",
-       "hidden-categories": "{{PLURAL:$1|Thể loại ẩn|Thể loại ẩn}}",
+       "hidden-categories": "{{PLURAL:$1}}Thể loại ẩn",
        "hidden-category-category": "Thể loại ẩn",
-       "category-subcat-count": "Thể loại này gồm {{PLURAL:$2|thể loại con sau|{{PLURAL:$1||$1}} thể loại con sau, trên tổng số $2 thể loại con}}.",
+       "category-subcat-count": "Thể loại này gồm {{PLURAL:$2|thể loại con sau|{{PLURAL:$1|thể loại|$1 thể loại}} con sau, trên tổng số $2 thể loại con}}.",
        "category-subcat-count-limited": "Thể loại này gồm {{PLURAL:$1|thể loại con|$1 thể loại con}} sau.",
        "category-article-count": "{{PLURAL:$2|Thể loại này gồm trang sau.|{{PLURAL:$1|Trang|$1 trang}} sau nằm trong thể loại này, trên tổng số $2 trang.}}",
        "category-article-count-limited": "{{PLURAL:$1|Trang|$1 trang}} sau nằm trong thể loại hiện hành.",
        "missingarticle-rev": "(số phiên bản: $1)",
        "missingarticle-diff": "(Khác: $1, $2)",
        "readonly_lag": "Cơ sở dữ liệu bị khóa tự động trong khi các máy chủ cập nhật thông tin của nhau.",
+       "nonwrite-api-promise-error": "Đầu đề HTTP “Promise-Non-Write-API-Action” được gửi nhưng yêu cầu là cho mô đun ghi của API.",
        "internalerror": "Lỗi nội bộ",
        "internalerror_info": "Lỗi nội bộ: $1",
        "internalerror-fatal-exception": "Ngoại lệ chí tử loại “$1”",
        "badtitle": "Tựa trang sai",
        "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 đề 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-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 đề 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-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 {{PLURAL:$1|byte|bytes}} 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 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.",
        "accountcreated": "Mở tài khoản thành công",
        "accountcreatedtext": "Tài khoản thành viên cho [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|thảo luận]]) đã được mở.",
        "createaccount-title": "Tài khoản mới tại {{SITENAME}}",
-       "createaccount-text": "Ai đó đã tạo một tài khoản với tên $2 tại {{SITENAME}} ($4). Mật khẩu của \"$2\" là \"$3\". Bạn nên đăng nhập và đổi mật khẩu ngay bây giờ.\n\nXin hãy bỏ qua thông điệp này nếu tài khoản này không phải do bạn tạo ra.",
+       "createaccount-text": "Ai đó đã tạo một tài khoản với tên $2 tại {{SITENAME}} ($4). Mật khẩu của “$2” là “$3”. Bạn nên đăng nhập và đổi mật khẩu ngay bây giờ.\n\nXin hãy bỏ qua thông điệp này nếu tài khoản này không phải do bạn tạo ra.",
        "login-throttled": "Bạn đã hết quyền thử mật khẩu tài khoản này vì bạn đã nhập sai quá nhiều. Xin hãy đợi $1 rồi hãy thử lại.",
        "login-abort-generic": "Thất bại khi đăng nhập",
        "login-migrated-generic": "Tài khoản của bạn đã được hợp nhất, và tên đăng nhập của bạn không còn tồn tại trên wiki này.",
        "passwordreset-emailsent-capture": "Thư điện tử để tái tạo mật khẩu đã được gửi, nội dung như sau.",
        "passwordreset-emailerror-capture": "Chúng tôi đã tạo thư tái tạo mật khẩu dưới đây, nhưng không thể gửi đến {{GENDER:$2}}người dùng: $1",
        "changeemail": "Đổi hoặc gỡ địa chỉ thư điện tử",
-       "changeemail-header": "Đổi địa chỉ thư điện tử của tài khoản",
+       "changeemail-header": "Điền biểu mẫu này để đổi địa chỉ thư điện tử của bạn. Nếu bạn muốn gỡ địa chỉ thư điện tử nào khỏi tài khoản của bạn, để trống hộp địa chỉ thư điện tử mới và lưu biểu mẫu.",
+       "changeemail-passwordrequired": "Bạn sẽ cần phải nhập mật khẩu của bạn để xác nhận thay đổi này.",
        "changeemail-no-info": "Bạn phải đăng nhập mới có thể truy cập trực tiếp trang này.",
        "changeemail-oldemail": "Địa chỉ thư điện tử hiện tại:",
        "changeemail-newemail": "Địa chỉ thư điện tử mới:",
        "missingsummary": "'''Nhắc nhở:''' Bạn đã không ghi lại tóm lược sửa đổi. Nếu bạn nhấn Lưu trang một lần nữa, sửa đổi của bạn sẽ được lưu mà không có tóm lược.",
        "selfredirect": "<strong>Cảnh báo:</strong> Bạn sắp đổi hướng trang này đến chính trang này.\nCó lẽ bạn đã định rõ mục tiêu sai hoặc bạn đang sửa trang sai.\nNếu bạn bấm “{{int:savearticle}}” lần nữa, trang đổi hướng sẽ được tạo ra.",
        "missingcommenttext": "Xin hãy gõ vào lời bàn luận ở dưới.",
-       "missingcommentheader": "'''Nhắc nhở:''' Bạn chưa ghi chủ đề/tiêu đề cho bàn luận này.\nNếu bạn nhấn nút \"{{int:savearticle}}\" lần nữa, sửa đổi của bạn sẽ được lưu mà không có đề mục.",
+       "missingcommentheader": "<strong>Nhắc nhở:</strong> Bạn chưa ghi chủ đề/tiêu đề cho bàn luận này.\nNếu bạn nhấn nút “{{int:savearticle}}” lần nữa, sửa đổi của bạn sẽ được lưu mà không có đề mục.",
        "summary-preview": "Xem trước dòng tóm lược:",
        "subject-preview": "Xem trước đề mục:",
        "previewerrortext": "Có lỗi xảy ra khi xem trước những thay đổi của bạn.",
        "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.",
+       "editpage-cannot-use-custom-model": "Không thể thay đổi kiểu nội dung của trang này.",
        "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:",
        "sectioneditnotsupported-title": "Không hỗ trợ sửa đổi đề mục",
        "sectioneditnotsupported-text": "Trang sửa đổi này không hỗ trợ sửa đổi đề mục.",
        "permissionserrors": "Không có quyền thực hiện",
-       "permissionserrorstext": "Bạn không có quyền thực hiện thao tác đó, vì {{PLURAL:$1|lý do|lý do}}:",
-       "permissionserrorstext-withaction": "Bạn không quyền $2, với {{PLURAL:$1|lý do|lý do}} sau:",
+       "permissionserrorstext": "Bạn không có quyền thực hiện thao tác đó, vì {{PLURAL:$1|lý do|các lý do}} sau:",
+       "permissionserrorstext-withaction": "Bạn không quyền $2, với {{PLURAL:$1|lý do|các lý do}} sau:",
+       "contentmodelediterror": "Bạn không thể sửa đổi phiên bản này vì kiểu nội dung của nó là <code>$1</code>, trong khi kiểu nội dung của trang là <code>$2</code>.",
        "recreate-moveddeleted-warn": "'''Cảnh báo: Bạn sắp tạo lại một trang từng bị xóa trước đây.'''\n\nBạn nên cân nhắc trong việc tiếp tục soạn thảo trang này.\nCác nhật trình xóa và di chuyển của trang được đưa ra dưới đây để tiện theo dõi:",
        "moveddeleted-notice": "Trang này đã bị xóa.\nCác nhật trình xóa và di chuyển của trang được đưa ra dưới đây để tiện theo dõi.",
        "moveddeleted-notice-recent": "Rất tiếc, trang này vừa bị xóa (trong vòng 24 giờ trước).\nCác nhật trình xóa và di chuyển của trang được đưa ra dưới đây để tiện theo dõi.",
        "content-not-allowed-here": "Không cho phép đưa nội dung “$1” vào trang [[$2]]",
        "editwarning-warning": "Rời khỏi trang này sẽ khiến bạn mất các sửa đổi đã thực hiện.\nNếu đã đăng nhập, bạn có thể tắt cảnh báo này tại mục “{{int:prefs-editing}}” trong tùy chọn cá nhân.",
        "editpage-notsupportedcontentformat-title": "Không hỗ trợ định dạng nội dung",
-       "editpage-notsupportedcontentformat-text": "Mô hình nội dung $2 không hỗ trợ định dạng nội dung $1.",
+       "editpage-notsupportedcontentformat-text": "Kiểu nội dung $2 không hỗ trợ định dạng nội dung $1.",
        "content-model-wikitext": "mã wiki",
        "content-model-text": "văn bản thuần",
        "content-model-javascript": "JavaScript",
        "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-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}}.",
+       "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 lần gọi, hiện giờ đang là $1 lần gọi.",
        "expensive-parserfunction-category": "Trang có quá nhiều lời gọi hàm cú pháp cần mức độ xử lý cao",
        "post-expand-template-inclusion-warning": "Cảnh báo: Kích thước bản mẫu nhúng vào quá lớn.\nMột số bản mẫu sẽ không được đưa vào.",
        "post-expand-template-inclusion-category": "Trang có kích thước bản mẫu nhúng vào vượt quá giới hạn cho phép",
        "history-feed-description": "Lịch sử thay đổi của trang này ở wiki",
        "history-feed-item-nocomment": "$1 vào lúc $2",
        "history-feed-empty": "Trang bạn yêu cầu không tồn tại. Có thể là nó đã bị xóa khỏi wiki hay được đổi tên. Hãy [[Special:Search|tìm kiếm trong wiki]] về các trang mới có liên quan.",
-       "history-edit-tags": "Sửa đổi thẻ đánh dấu của các bản xem trước đã chọn",
+       "history-edit-tags": "Sửa đổi thẻ của các phiên bản đã chọn",
        "rev-deleted-comment": "(tóm lược sửa đổi đã bị xóa)",
        "rev-deleted-user": "(tên người dùng đã bị xóa)",
        "rev-deleted-event": "(chi tiết nhật trình đã bị xóa)",
        "mergehistory-go": "Hiển thị các sửa đổi có thể trộn được",
        "mergehistory-submit": "Trộn các sửa đổi",
        "mergehistory-empty": "Không thể trộn được sửa đổi nào.",
-       "mergehistory-done": "$3 {{PLURAL:$3|sửa đổi|sửa đổi}} của $1 đã được trộn vào [[:$2]].",
+       "mergehistory-done": "$3 phiên bản của $1 đã được trộn vào [[:$2]].",
        "mergehistory-fail": "Không thể thực hiện được việc trộn lịch sử sửa đổi, vui lòng chọn lại trang cũng như thông số ngày giờ.",
        "mergehistory-fail-toobig": "Không thể trộn lịch sử vì phải di chuyển $1 phiên bản và vượt quá giới hạn cho phép.",
        "mergehistory-no-source": "Trang nguồn $1 không tồn tại.",
        "nextn": "{{PLURAL:$1|$1}} mục sau",
        "prev-page": "Trang trước",
        "next-page": "Trang sau",
-       "prevn-title": "$1 {{PLURAL:$1|kết quả|kết quả}} trước",
-       "nextn-title": "$1 {{PLURAL:$1|kết quả|kết quả}} sau",
-       "shown-title": "Hiển thị $1 {{PLURAL:$1|kết quả|kết quả}} mỗi trang",
+       "prevn-title": "$1 kết quả trước",
+       "nextn-title": "$1 kết quả sau",
+       "shown-title": "Hiển thị $1 kết quả mỗi trang",
        "viewprevnext": "Xem ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "<strong>Có trang với tên “[[:$1]]” trên wiki này.</strong> {{PLURAL:$2|0=|Xem thêm các kết quả tìm kiếm bên dưới:}}",
        "searchmenu-new": "'''Tạo trang “[[:$1]]” trên wiki này!''' {{PLURAL:$2|0=|Xem thêm {{PLURAL:$2|kết quả|các kết quả}} tìm kiếm:}}",
        "search-relatedarticle": "Liên quan",
        "searchrelated": "có liên quan",
        "searchall": "tất cả",
-       "showingresults": "Dưới đây là {{PLURAL:$1|'''1'''|'''$1'''}} kết quả bắt đầu từ #'''$2'''.",
+       "showingresults": "Dưới đây là cho đến <strong>$1</strong> kết quả bắt đầu từ #<strong>$2</strong>.",
        "showingresultsinrange": "Dưới đây là cho tới <strong>$1</strong> kết quả từ #<strong>$2</strong> đến #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Kết quả thứ <strong>$1</strong> trong tổng số <strong>$3</strong>|Các kết quả <strong>$1–$2</strong> trong tổng số <strong>$3</strong>}}",
        "search-nonefound": "Không có kết quả nào khớp với câu truy vấn.",
+       "search-nonefound-thiswiki": "Không có kết quả nào khớp với truy câu truy vấn trong website này.",
        "powersearch-legend": "Tìm kiếm nâng cao",
        "powersearch-ns": "Tìm trong không gian tên:",
        "powersearch-togglelabel": "Chọn:",
        "prefs-rc": "Thay đổi gần đây",
        "prefs-watchlist": "Theo dõi",
        "prefs-editwatchlist": "Sửa các trang tôi theo dõi",
-       "prefs-editwatchlist-label": "Chỉnh sửa các mục trong danh sách theo dõi của bạn:",
+       "prefs-editwatchlist-label": "Sửa đổi các mục trong danh sách theo dõi của bạn:",
        "prefs-editwatchlist-edit": "Xem và xoá các tiêu đề trong danh sách theo dõi của bạn",
        "prefs-editwatchlist-raw": "Sửa danh sách theo dõi dạng thô",
        "prefs-editwatchlist-clear": "Xóa sạch danh sách theo dõi của bạn",
        "stub-threshold-sample-link": "ví dụ",
        "stub-threshold-disabled": "Tắt",
        "recentchangesdays": "Số ngày hiển thị trong thay đổi gần đây:",
-       "recentchangesdays-max": "(tối đa $1 {{PLURAL:$1|ngày|ngày}})",
+       "recentchangesdays-max": "(tối đa $1 ngày)",
        "recentchangescount": "Số sửa đổi hiển thị mặc định:",
        "prefs-help-recentchangescount": "Số này bao gồm các thay đổi gần đây, lịch sử trang, và nhật trình.",
        "prefs-help-watchlist-token2": "Đây là chìa khóa bí mật cho nguồn cấp dữ liệu danh sách theo dõi của bạn.\nBất cứ ai biết nó sẽ có thể để đọc danh sách theo dõi của bạn, vì vậy đừng chia sẻ nó.\n[[Special:ResetTokens|Nhấn chuột vào đây nếu bạn cần phải thiết lập lại nó]].",
        "savedprefs": "Đã lưu các tùy chọn cá nhân.",
+       "savedrights": "Đã lưu các quyền hạn của người dùng {{GENDER:$1}}$1.",
        "timezonelegend": "Múi giờ:",
        "localtime": "Giờ hiện tại:",
        "timezoneuseserverdefault": "Sử dụng giờ mặc định của wiki ($1)",
        "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": "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-unknown": "Khi nhắc đến 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 thành viên  của {{GENDER:$1|user}} <strong>[[User:$1|$1]]</strong> $2",
+       "editinguser": "Thay đổi quyền hạn của người dùng <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:",
        "right-protect": "Thay đổi mức khóa và sửa trang khóa theo tầng",
        "right-editprotected": "Sửa trang khóa ở mức “{{int:protect-level-sysop}}”",
        "right-editsemiprotected": "Sửa trang khóa ở mức “{{int:protect-level-autoconfirmed}}”",
-       "right-editcontentmodel": "Sửa mô hình nội dung của trang",
+       "right-editcontentmodel": "Sửa kiểu nội dung của trang",
        "right-editinterface": "Sửa giao diện người dùng",
        "right-editusercssjs": "Sửa tập tin CSS và JS của người dùng khác",
        "right-editusercss": "Sửa tập tin CSS của người dùng khác",
        "right-passwordreset": "Xem các thư điện tử đặt lại mật khẩu",
        "right-managechangetags": "Tạo và xóa [[Special:Tags|thẻ]] từ cơ sở dữ liệu",
        "right-applychangetags": "Áp dụng [[Special:Tags|thẻ]], cùng với những thay đổi của một người",
-       "right-changetags": "Thêm và loại bỏ tùy ý các [[Special:Tags|thẻ]]  vào các phiên bản cá nhân và các mục đăng nhập",
+       "right-changetags": "Thêm và loại bỏ tùy ý các [[Special:Tags|thẻ]] vào các phiên bản riêng và các mục nhật trình",
        "newuserlogpage": "Nhật trình mở tài khoản",
        "newuserlogpagetext": "Đây là danh sách những tài khoản thành viên mở lên gần đây.",
        "rightslog": "Nhật trình cấp quyền thành viên",
        "action-viewmywatchlist": "xem danh sách theo dõi của mình",
        "action-viewmyprivateinfo": "xem thông tin cá nhân của bạn",
        "action-editmyprivateinfo": "sửa đổi thông tin cá nhân của bạn",
-       "action-editcontentmodel": "sửa mô hình nội dung của trang",
+       "action-editcontentmodel": "sửa kiểu nội dung của trang",
        "action-managechangetags": "tạo và xóa các thẻ từ cơ sở dữ liệu",
        "action-applychangetags": "áp dụng các thẻ cùng với những thay đổi của bạn",
-       "action-changetags": "thêm và loại bỏ các thẻ tùy ý trên các phiên bản cá nhân và các mục đăng nhập",
-       "nchanges": "$1 {{PLURAL:$1|thay đổi|thay đổi}}",
+       "action-changetags": "thêm và loại bỏ các thẻ tùy ý trên các phiên bản riêng và các mục nhật trình",
+       "nchanges": "$1 thay đổi",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sau lần truy cập vừa rồi}}",
        "enhancedrc-history": "lịch sử",
        "recentchanges": "Thay đổi gần đây",
        "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",
+       "upload-scripted-pi-callback": "Không thể tải lên một tập tin có chứa lệnh xử lý xml-stylesheet.",
        "uploaded-script-svg": "Tìm thấy phần tử “$1” có khả năng chạy kịch bản trong tập tin SVG được tải lên.",
        "uploaded-hostile-svg": "Tìm thấy CSS nguy hiểm trong phần tử style của tập tin SVG được tải lên.",
        "uploaded-event-handler-on-svg": "Không cho phép đặt thuộc tính xử lý sự kiện <code>$1=\"$2\"</code> trong tập tin SVG.",
        "uploaded-href-unsafe-target-svg": "Tìm thấy href đến đích nguy hiểm <code>&lt;$1 $2=\"$3\"&gt;</code> trong tập tin SVG được tải lên.",
        "uploaded-animate-svg": "Tìm thấy thẻ “animate” có thể thay đổi href qua thuộc tính “from” <code>&lt;$1 $2=\"$3\"&gt;</code> trong tập tin SVG được tải lên.",
        "uploaded-setting-event-handler-svg": "Đã ngăn cản việc đặt thuộc tính xử lý sự kiện khi tìm thấy <code>&lt;$1 $2=\"$3\"&gt;</code> trong tập tin SVG được tải lên.",
-       "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-setting-href-svg": "Cấm sử dụng thẻ “set” để thêm thuộc tính “href” vào phần tử mẹ.",
        "uploaded-wrong-setting-svg": "Đã ngăn cản việc sử dụng thẻ “set” để thêm đích bên ngoài/dữ liệu/kịch bản vào thuộc tính nào đó. Tìm thấy <code>&lt;set to=\"$1\"&gt;</code> trong tập tin SVG được tải lên.",
        "uploaded-setting-handler-svg": "Đã ngăn cản mã SVG đặt thuộc tính “handler” là từ xa/dữ liệu/kịch bản. Tìm thấy <code>$1=\"$2\"</code> trong tập tin SVG được tải lên.",
        "uploaded-remote-url-svg": "Đã ngăn cản mã SVG đặt thuộc tính style nào đó là URL ngoài máy. Tìm thấy <code>$1=\"$2\"</code> trong tập tin SVG được tải lên.",
        "upload-options": "Tùy chọn tải lên",
        "watchthisupload": "Theo dõi tập tin này",
        "filewasdeleted": "Một tên với tên này đã được tải lên trước đã rồi sau đó bị xóa. Bạn nên kiểm tra lại $1 trước khi tải nó lên lại lần nữa.",
+       "filename-thumb-name": "Hình như đây là tên của một hình thu nhỏ được tự động tạo ra. Xin đừng tải lên những hình nhỏ lại vào wiki ban đầu. Nếu không phải, xin vui lòng sửa tên tập tin để rõ ràng hơn và dời tiền tố cỡ hình khỏi tên.",
        "filename-bad-prefix": "Tên cho tập tin mà bạn đang tải lên bắt đầu bằng '''“$1”''', đây không phải là dạng tên tiêu biểu có tính chất miêu tả do các máy chụp ảnh số tự động đặt. Xin hãy chọn một tên có tính chất miêu tả và gợi nhớ hơn cho tập tin của bạn.",
        "filename-prefix-blacklist": " #<!-- xin để nguyên hàng này --> <pre>\n# Cú pháp như sau:\n#   * Các ký tự từ dấu \"#\" trở đến cuối hàng là chú thích\n#   * Các dòng sau là các tiền tố do các máy ảnh số gán tự động cho tên tập tin\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # một số điện thoại di động\nIMG # tổng quát\nJD # Jenoptik\nMGP # Pentax\nPICT # khác\n #</pre> <!-- xin để nguyên hàng này -->",
        "upload-success-subj": "Đã tải xong",
        "foreign-structured-upload-form-label-own-work": "Đây là tác phẩm của chính tôi",
        "foreign-structured-upload-form-label-infoform-categories": "Thể loại",
        "foreign-structured-upload-form-label-infoform-date": "Ngày tháng",
+       "foreign-structured-upload-form-label-own-work-message-local": "Tôi xác nhận rằng tôi tải lên tập tin này tuân theo các điều khoản sử dụng và quy định giấy phép của {{SITENAME}}.",
+       "foreign-structured-upload-form-label-not-own-work-message-local": "Nếu bạn không được phép tải lên tập tin này tuân theo quy định của {{SITENAME}}, xin vui lòng đóng hộp thoại này và thử tải lên bằng một phương pháp khác.",
+       "foreign-structured-upload-form-label-not-own-work-local-local": "Bạn cũng có thể muốn sử dụng [[Special:Upload|trang tải lên mặc định]].",
        "foreign-structured-upload-form-label-own-work-message-default": "Tôi hiểu rằng tôi đang tải tập tin này lên một kho dùng chung. Tôi xác nhận rằng tôi làm việc này tuân theo các điều khoản sử dụng và quy định về giấy phép tại đấy.",
        "foreign-structured-upload-form-label-not-own-work-message-default": "Nếu bạn không có thể tải tập tin này lên mà tuân theo quy định của kho dùng chung, xin vui lòng đóng hộp thoại này và thử một cách khác.",
        "foreign-structured-upload-form-label-not-own-work-local-default": "Bạn có thể muốn thử [[Special:Upload|trang tải lên tại {{SITENAME}}]] nếu tập tin này có thể được tải lên đấy theo các quy định của họ.",
        "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ỏ",
        "withoutinterwiki-legend": "Tiền tố",
        "withoutinterwiki-submit": "Xem",
        "fewestrevisions": "Trang có ít sửa đổi nhất",
-       "nbytes": "$1 {{PLURAL:$1|byte|byte}}",
-       "ncategories": "$1 {{PLURAL:$1|thể loại|thể loại}}",
+       "nbytes": "$1 byte",
+       "ncategories": "$1 thể loại",
        "ninterwikis": "$1 liên kết liên wiki",
-       "nlinks": "$1 {{PLURAL:$1|liên kết|liên kết}}",
+       "nlinks": "$1 liên kết",
        "nmembers": "$1 trang",
        "nmemberschanged": "$1 → $2 trang",
        "nrevisions": "$1 phiên bản",
        "listusers-editsonly": "Chỉ hiện thành viên có tham gia sửa đổi",
        "listusers-creationsort": "Xếp theo ngày khởi tạo",
        "listusers-desc": "Sắp xếp thứ tự giảm dần",
-       "usereditcount": "$1 {{PLURAL:$1|sửa đổi|sửa đổi}}",
+       "usereditcount": "$1 sửa đổi",
        "usercreated": "{{GENDER:$3}}mở $1 lúc $2",
        "newpages": "Trang mới",
        "newpages-username": "Tên người dùng:",
        "listgrouprights-removegroup-self-all": "Có thể loại tài khoản của chính mình ra khỏi tất cả các nhóm",
        "listgrouprights-namespaceprotection-header": "Hạn chế không gian tên",
        "listgrouprights-namespaceprotection-namespace": "Không gian tên",
-       "listgrouprights-namespaceprotection-restrictedto": "Quyền cho phép người dùng chỉnh sửa",
+       "listgrouprights-namespaceprotection-restrictedto": "Quyền cho phép người dùng sửa đổi",
        "trackingcategories": "Thể loại phần mềm",
        "trackingcategories-summary": "Đây là danh sách các thể loại được phần mềm MediaWiki tự động xếp trang vào. Các tên thể loại được định rõ trong các thông điệp thuộc không gian tên {{ns:8}}.",
        "trackingcategories-msg": "Thể loại phần mềm",
        "emailuser-title-target": "{{GENDER:$1}}Gửi thư cho người dùng này",
        "emailuser-title-notarget": "Gửi thư cho người dùng",
        "emailpagetext": "{{GENDER:$1}}Mẫu dưới đây sẽ gửi một bức thư điện tử tới người dùng này.\nĐịa chỉ thư điện tử mà bạn đã cung cấp trong [[Special:Preferences|tùy chọn cá nhân của mình]] sẽ xuất hiện trong phần địa chỉ “Người gửi” của bức thư, do đó người nhận sẽ có thể trả lời trực tiếp cho bạn.",
-       "defemailsubject": "Thư của người dùng \"$1\" tại {{SITENAME}}",
+       "defemailsubject": "Thư của người dùng “$1” tại {{SITENAME}}",
        "usermaildisabled": "Chức năng gửi thư cho người dùng đã bị tắt.",
        "usermaildisabledtext": "Bạn không thể gửi thư điện tử cho những người dùng khác trên wiki này.",
        "noemailtitle": "Không có địa chỉ nhận thư",
        "wlheader-showupdated": "Các trang đã thay đổi kể từ lần cuối bạn xem chúng được in '''đậm'''",
        "wlnote": "Dưới đây là {{PLURAL:$1|thay đổi duy nhất|<strong>$1</strong> thay đổi gần nhất}} trong {{PLURAL:$2|giờ|<strong>$2</strong> giờ}} qua, tính tới $3 lúc $4.",
        "wlshowlast": "Hiển thị $1 giờ $2 ngày gần đây",
+       "watchlistall2": "tất cả",
+       "wlshowtime": "Hiện các mục gần đây:",
+       "wlshowhideminor": "sửa đổi nhỏ",
+       "wlshowhidebots": "bot",
+       "wlshowhideliu": "người dùng có tài khoản",
+       "wlshowhideanons": "người dùng vô danh",
+       "wlshowhidepatr": "sửa đổi đã tuần tra",
+       "wlshowhidemine": "sửa đổi của tôi",
        "watchlist-options": "Tùy chọn về danh sách theo dõi",
        "watching": "Đang theo dõi…",
        "unwatching": "Đang ngừng theo dõi…",
        "deletereasonotherlist": "Lý do khác",
        "deletereason-dropdown": "*Các lý do xóa phổ biến\n** Đăng tỉ thư rác\n** Phá hoại\n** Vi phạm bản quyền\n** Tác giả yêu cầu\n** Chuyển hướng sai",
        "delete-edit-reasonlist": "Sửa lý do xóa",
-       "delete-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn {{PLURAL:$1|lần|lần}} sửa đổi.\nViệc xóa các trang như vậy bị hạn chế để ngăn ngừa phá hoại do vô ý cho {{SITENAME}}.",
-       "delete-warning-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn {{PLURAL:$1|lần|lần}} sửa đổi.\nViệc xóa các trang có thể làm tổn hại đến hoạt động của cơ sở dữ liệu {{SITENAME}};\nhãy cẩn trọng khi thực hiện.",
+       "delete-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn $1 lần sửa đổi.\nViệc xóa các trang như vậy bị hạn chế để ngăn ngừa phá hoại do vô ý cho {{SITENAME}}.",
+       "delete-warning-toobig": "Trang này có lịch sử sửa đổi lớn, đến hơn $1 lần sửa đổi.\nViệc xóa các trang có thể làm tổn hại đến hoạt động của cơ sở dữ liệu {{SITENAME}};\nhãy cẩn trọng khi thực hiện.",
        "deleteprotected": "Bạn không thể xóa trang này vì nó đã được khóa lại.",
        "deleting-backlinks-warning": "'''Cảnh báo:''' Có [[Special:WhatLinksHere/{{FULLPAGENAME}}|trang khác]] liên kết đến hoặc nhúng trang mà bạn sắp xóa.",
        "rollback": "Lùi tất cả sửa đổi",
        "changecontentmodel-model-label": "Kiểu nội dung mới",
        "changecontentmodel-reason-label": "Lý do:",
        "changecontentmodel-success-title": "Kiểu nội dung đã thay đổi",
-       "changecontentmodel-success-text": "Loại nội dung của [[:$1]] đã được thay đổi.",
+       "changecontentmodel-success-text": "Kiểu nội dung của [[:$1]] đã được thay đổi.",
        "changecontentmodel-cannot-convert": "Không thể chuyển đổi nội dung [[:$1]] thành nội dung dưới dạng $2.",
-       "changecontentmodel-nodirectediting": "Mô hình nội dung $1 không hỗ trợ sửa đổi trực tiếp",
-       "log-name-contentmodel": "Nhật trình thay đổi mô hình nội dung",
-       "log-description-contentmodel": "Sự kiện có liên quan đến mô hình nội dung của trang.",
-       "logentry-contentmodel-change": "$1 {{GENDER:$2}}đã thay đổi mô hình nội dung của trang $3 từ “$4” thành “$5”",
+       "changecontentmodel-nodirectediting": "Kiểu nội dung $1 không hỗ trợ sửa đổi trực tiếp",
+       "log-name-contentmodel": "Nhật trình thay đổi kiểu nội dung",
+       "log-description-contentmodel": "Sự kiện có liên quan đến kiểu nội dung của trang.",
+       "logentry-contentmodel-change": "$1 {{GENDER:$2}}đã thay đổi kiểu nội dung của trang $3 từ “$4” thành “$5”",
        "logentry-contentmodel-change-revertlink": "lùi lại",
        "logentry-contentmodel-change-revert": "lùi lại",
        "protectlogpage": "Nhật trình khóa",
        "undeleteviewlink": "xem",
        "undeleteinvert": "Đảo sự lựa chọn",
        "undeletecomment": "Lý do:",
-       "undeletedrevisions": "$1 {{PLURAL:$1|bản|bản}} được phục hồi",
-       "undeletedrevisions-files": "$1 {{PLURAL:$1|bản|bản}} và $2 {{PLURAL:$2|tập tin|tập tin}} đã được phục hồi",
-       "undeletedfiles": "$1 {{PLURAL:$1|tập tin|tập tin}} đã được phục hồi",
+       "undeletedrevisions": "$1 phiên bản được phục hồi",
+       "undeletedrevisions-files": "$1 phiên bản và $2 tập tin đã được phục hồi",
+       "undeletedfiles": "$1 tập tin đã được phục hồi",
        "cannotundelete": "Phục hồi thất bại:\n$1",
        "undeletedpage": "'''$1 đã được khôi phục'''\n\nXem nhật trình xóa và phục hồi các trang gần đây tại [[Special:Log/delete|nhật trình xóa]].",
        "undelete-header": "Xem các trang bị xóa gần đây tại [[Special:Log/delete|nhật trình xóa]].",
        "movelogpage": "Nhật trình di chuyển",
        "movelogpagetext": "Dưới đây là danh sách các trang đã được di chuyển.",
        "movesubpage": "{{PLURAL:$1|Trang con|Các trang con}}",
-       "movesubpagetext": "Trang này có $1 {{PLURAL:$1|trang con|trang con}} như hiển thị dưới đây.",
+       "movesubpagetext": "Trang này có $1 trang con như hiển thị dưới đây.",
        "movenosubpage": "Trang này không có trang con.",
        "movereason": "Lý do:",
        "revertmove": "lùi lại",
        "immobile-target-namespace-iw": "Không cho phép di chuyển trang đến một liên kết liên wiki.",
        "immobile-source-page": "Bạn không thể di chuyển trang này.",
        "immobile-target-page": "Không thể di chuyển đến tựa đề đích.",
-       "bad-target-model": "Trang đích sử dụng mô hình nội dung khác. Không thể chuyển đổi nội dung từ $1 đến $2.",
+       "bad-target-model": "Trang đích sử dụng kiểu nội dung khác. Không thể chuyển đổi nội dung từ $1 đến $2.",
        "imagenocrossnamespace": "Không thể di chuyển tập tin ra khỏi không gian tên Tập tin",
        "nonfile-cannot-move-to-file": "Không thể di chuyển những gì không phải là tập tin vào không gian tên Tập tin",
        "imagetypemismatch": "Phần mở rộng trong tên tập tin mới không hợp dạng của tập tin",
        "import-error-interwiki": "Trang “$1” không được nhập vì tên của nó được dành riêng cho liên kết ngoài (liên wiki).",
        "import-error-special": "Trang “$1” không được nhập vì nó thuộc về không gian tên đặc biệt không cho phép các trang không mặc định.",
        "import-error-invalid": "Trang “$1” không được nhập vì ứng với một tên tập tin không hợp lệ trên wiki này.",
-       "import-error-unserialize": "Không thể giải tuần tự hóa phiên bản $2 của trang “$1”. Tập tin kết xuất cho rằng phiên bản có mô hình nội dung $3 được tuần tự hóa theo định dạng $4.",
-       "import-error-bad-location": "Không thể lưu giữ phiên bản $2 với mô hình nội dung $3 vào “$1” trên wiki này vì trang này không hỗ trợ mô hình đó.",
+       "import-error-unserialize": "Không thể giải tuần tự hóa phiên bản $2 của trang “$1”. Tập tin kết xuất cho rằng phiên bản có kiểu nội dung $3 được tuần tự hóa theo định dạng $4.",
+       "import-error-bad-location": "Không thể lưu giữ phiên bản $2 với kiểu nội dung $3 vào “$1” trên wiki này vì trang này không hỗ trợ kiểu đó.",
        "import-options-wrong": "{{PLURAL:$2|Tùy chọn|Các tùy chọn}} có vấn đề: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "Trang đích không hợp lệ.",
        "import-rootpage-nosubpage": "Không gian tên “$1” của trang gốc không cho phép các trang con.",
        "tooltip-pt-logout": "Đăng xuất",
        "tooltip-pt-createaccount": "Khuyến khích bạn mở tài khoản và đăng nhập; tuy nhiên, không phải bắt buộc phải có tài khoản",
        "tooltip-ca-talk": "Thảo luận về trang này",
-       "tooltip-ca-edit": "Chỉnh sửa trang này",
+       "tooltip-ca-edit": "Sửa đổi trang này",
        "tooltip-ca-addsection": "Bắt đầu một đề mục mới",
        "tooltip-ca-viewsource": "Trang này được khóa. Bạn có thể xem mã nguồn.",
        "tooltip-ca-history": "Các phiên bản cũ của trang này",
        "svg-long-error": "Tập tin SVG có lỗi: $1",
        "show-big-image": "Tập tin gốc",
        "show-big-image-preview": "Kích thước của hình xem trước: $1.",
+       "show-big-image-preview-differ": "Kích thước bản xem trước $3 này của tập tin $2: $1.",
        "show-big-image-other": "{{PLURAL:$2|Độ phân giải|Các độ phân giải}} khác: $1.",
        "show-big-image-size": "$1×$2 điểm ảnh",
        "file-info-gif-looped": "có lặp",
-       "file-info-gif-frames": "$1 {{PLURAL:$1|khung ảnh|khung ảnh}}",
+       "file-info-gif-frames": "$1 khung ảnh",
        "file-info-png-looped": "có lặp",
        "file-info-png-repeat": "chơi $1 lần",
        "file-info-png-frames": "$1 khung ảnh",
        "file-no-thumb-animation": "'''Lưu ý: Do hạn chế kỹ thuật, các hình nhỏ của tập tin này sẽ không phải là hình động.'''",
        "file-no-thumb-animation-gif": "'''Lưu ý: Do hạn chế kỹ thuật, các hình nhỏ của những hình GIF có độ phân giải cao, chẳng hạn tập tin này, sẽ không phải là hình động.'''",
        "newimages": "Trang trưng bày hình ảnh mới",
-       "imagelisttext": "Dưới đây là danh sách '''$1''' {{PLURAL:$1|tập tin|tập tin}} xếp theo $2.",
+       "imagelisttext": "Dưới đây là danh sách <strong>$1</strong> tập tin xếp theo $2.",
        "newimages-summary": "Trang đặc biệt này hiển thị các tập tin được tải lên gần đây nhất.",
        "newimages-legend": "Bộ lọc",
        "newimages-label": "Tên tập tin (hoặc một phần tên):",
        "exif-datetime": "Ngày giờ sửa tập tin",
        "exif-imagedescription": "Tiêu đề của hình",
        "exif-make": "Hãng máy ảnh",
-       "exif-model": "Kiểu máy ảnh",
-       "exif-software": "Phần mềm đã dùng",
+       "exif-model": "Dòng máy ảnh",
+       "exif-software": "Phần mềm sử dụng",
        "exif-artist": "Tác giả",
        "exif-copyright": "Bản quyền",
        "exif-exifversion": "Phiên bản Exif",
        "exif-subsectime": "Ngày giờ nhỏ hơn giây",
        "exif-subsectimeoriginal": "Ngày giờ gốc nhỏ hơn giây",
        "exif-subsectimedigitized": "Ngày giờ số hóa nhỏ hơn giây",
-       "exif-exposuretime": "Thời gian mở ống kính",
+       "exif-exposuretime": "Tốc độ màn trập",
        "exif-exposuretime-format": "$1 giây ($2)",
-       "exif-fnumber": "Số F",
+       "exif-fnumber": "Khẩu độ ống kính",
        "exif-fnumber-format": "f/$1",
-       "exif-exposureprogram": "Chương trình phơi sáng",
+       "exif-exposureprogram": "Chế độ phơi sáng",
        "exif-spectralsensitivity": "Độ nhạy quang phổ",
-       "exif-isospeedratings": "Điểm tốc độ ISO",
+       "exif-isospeedratings": "Độ nhạy sáng (tốc độ ISO)",
        "exif-shutterspeedvalue": "Tốc độ cửa chớp (APEX)",
        "exif-aperturevalue": "Độ mở ống kính (APEX)",
        "exif-brightnessvalue": "Độ sáng (APEX)",
        "exif-exposureprogram-2": "Chương trình chuẩn",
        "exif-exposureprogram-3": "Ưu tiên độ mở ống kính",
        "exif-exposureprogram-4": "Ưu tiên tốc độ sập",
-       "exif-exposureprogram-5": "Chương trình sáng tạo (thiên về chiều sâu)",
+       "exif-exposureprogram-5": "Chế độ sáng tạo (thiên về độ sâu trường ảnh)",
        "exif-exposureprogram-6": "Chương trình chụp (thien về tốc độ sập nhanh)",
        "exif-exposureprogram-7": "Chế độ chân dung (đối với ảnh chụp gần với phông nền ở ngoài tầm tiêu cự)",
        "exif-exposureprogram-8": "Chế độ phong cảnh (đối với ảnh phong cảnh với phông ở trong tiêu cự)",
        "exif-subjectdistance-value": "$1 mét",
        "exif-meteringmode-0": "Không biết",
        "exif-meteringmode-1": "Trung bình",
-       "exif-meteringmode-2": "Trung bình trọng lượng ở giữa",
+       "exif-meteringmode-2": "Đo sáng trung bình, tập trung vào vùng trung tâm",
        "exif-meteringmode-3": "Vết",
        "exif-meteringmode-4": "Đa vết",
        "exif-meteringmode-5": "Lấy mẫu",
        "confirmemail_success": "Thư điện tử của bạn đã được xác nhận. Bạn đã có thể đăng nhập và bắt đầu sử dụng wiki.",
        "confirmemail_loggedin": "Địa chỉ thư điện tử của bạn đã được xác nhận.",
        "confirmemail_subject": "Xác nhận thư điện tử tại {{SITENAME}}",
-       "confirmemail_body": "Ai đó, có thể là bạn, từ địa chỉ IP $1,\nđã mở tài khoản có tên \"$2\" với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng thư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu bạn *không* mở tài khoản, hãy nhấn vào liên kết này\nđể hủy thủ tục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
-       "confirmemail_body_changed": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã mở tài khoản có\ntên \"$2\" với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ\ntục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
-       "confirmemail_body_set": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã đặt địa chỉ này là địa\nchỉ thư điện tử của tài khoản \"$2\" tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt các tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ tục\nxác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
+       "confirmemail_body": "Ai đó, có thể là bạn, từ địa chỉ IP $1,\nđã mở tài khoản có tên “$2” với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng thư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu bạn *không* mở tài khoản, hãy nhấn vào liên kết này\nđể hủy thủ tục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
+       "confirmemail_body_changed": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã mở tài khoản có\ntên “$2” với địa chỉ thư điện tử này tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ\ntục xác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
+       "confirmemail_body_set": "Ai đó, có thể là bạn, từ địa chỉ IP $1, đã đặt địa chỉ này là địa\nchỉ thư điện tử của tài khoản “$2” tại {{SITENAME}}.\n\nĐể xác nhận rằng tài khoản này thực sự là của bạn và để kích hoạt các tính năng\nthư điện tử tại {{SITENAME}}, xin mở liên kết này trong trình duyệt:\n\n$3\n\nNếu tài khoản *không* phải là của bạn, hãy nhấn vào liên kết này để hủy thủ tục\nxác nhận địa chỉ thư điện tử:\n\n$5\n\nMã xác nhận này sẽ hết hạn vào $4.",
        "confirmemail_invalidated": "Đã hủy xác nhận địa chỉ thư điện tử",
        "invalidateemail": "Hủy xác nhận thư điện tử",
        "scarytranscludedisabled": "[Nhúng giữa các wiki bị tắt]",
        "bitrate-zetabits": "$1 Zbit/s",
        "bitrate-yottabits": "$1 Ybit/s",
        "lag-warn-normal": "Những thay đổi trong vòng $1 {{PLURAL:||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.",
-       "lag-warn-high": "Do độ trễ của máy chủ cơ sở dữ liệu, những thay đổi trong vòng $1 {{PLURAL:$1||}}giây trở lại đây có thể chưa xuất hiện trong danh sách.",
+       "lag-warn-high": "Do độ trễ của máy chủ cơ sở dữ liệu, những thay đổi trong vòng $1 giây trở lại đây có thể chưa xuất hiện trong danh sách.",
        "watchlistedit-normal-title": "Sửa các trang tôi theo dõi",
        "watchlistedit-normal-legend": "Gỡ trang khỏi danh sách",
        "watchlistedit-normal-explain": "Tên các trang bạn theo dõi được hiển thị dưới đây. Để xóa một tên trang, chọn vào hộp kiểm bên cạnh nó, rồi nhấn “{{int:Watchlistedit-normal-submit}}”. Bạn cũng có thể [[Special:EditWatchlist/raw|sửa danh sách theo dạng thô]].",
        "watchlistedit-normal-submit": "Bỏ trang đã chọn",
-       "watchlistedit-normal-done": "$1 {{PLURAL:$1|tựa đề|tựa đề}} đã được xóa khỏi danh sách các trang theo dõi:",
+       "watchlistedit-normal-done": "$1 tựa đề đã được xóa khỏi danh sách các trang theo dõi:",
        "watchlistedit-raw-title": "Sửa danh sách theo dõi dạng thô",
        "watchlistedit-raw-legend": "Sửa danh sách theo dõi dạng thô",
        "watchlistedit-raw-explain": "Danh sách này có tên các trang bạn theo dõi để bạn sửa chữa bằng cách thêm vào hoặc bỏ ra khỏi danh sách; mỗi trang một hàng.\nKhi xong, nhấn nút ”{{int:Watchlistedit-raw-submit}}”.\nBạn cũng có thể [[Special:EditWatchlist|dùng trang sửa đổi bình thường]] để sửa danh sách này.",
        "watchlistedit-raw-titles": "Tên các trang:",
        "watchlistedit-raw-submit": "Cập nhật Trang tôi theo dõi",
        "watchlistedit-raw-done": "Danh sách các trang bạn theo dõi đã được cập nhật.",
-       "watchlistedit-raw-added": "$1 {{PLURAL:$1|tựa đề|tựa đề}} đã được thêm vào:",
-       "watchlistedit-raw-removed": "$1 {{PLURAL:$1|tựa đề|tựa đề}} đã được xóa khỏi danh sách:",
+       "watchlistedit-raw-added": "$1 tựa đề đã được thêm vào:",
+       "watchlistedit-raw-removed": "$1 tựa đề đã được xóa khỏi danh sách:",
        "watchlistedit-clear-title": "Đã xóa sạch danh sách theo dõi",
        "watchlistedit-clear-legend": "Xóa sạch danh sách theo dõi",
        "watchlistedit-clear-explain": "Tất cả các tiêu đề sẽ được xóa khỏi danh sách theo dõi của bạn.",
        "tags-delete": "xóa",
        "tags-activate": "Kích hoạt",
        "tags-deactivate": "vô hiệu",
-       "tags-hitcount": "$1 {{PLURAL:$1|thay đổi|thay đổi}}",
+       "tags-hitcount": "$1 thay đổi",
        "tags-manage-no-permission": "Bạn không có quyền hạn để quản lý các thẻ thay đổi.",
        "tags-create-heading": "Tạo một thẻ mới",
        "tags-create-explanation": "Theo mặc định, các thẻ mới được tạo ra sẽ được hợp lệ hóa để người dùng và các bot sử dụng.",
        "tags-create-no-name": "Bạn phải chỉ định một tên thẻ.",
        "tags-create-invalid-chars": "Tên thẻ không được chứa dấu phẩy (<code>,</code>) hoặc dấu gạch chéo lên (<code>/</code>).",
        "tags-create-invalid-title-chars": "Tên thẻ không được chứa các ký tự mà không thể được sử dụng trong tiêu đề của trang .",
-       "tags-create-already-exists": "Các từ khóa \"$1\" đã tồn tại.",
-       "tags-create-warnings-above": "{{PLURAL:$2| Cảnh báo}} sau gặp phải khi cố gắng để tạo ra các thẻ \"$1\":",
+       "tags-create-already-exists": "Các từ khóa “$1” đã tồn tại.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Cảnh báo|Các cảnh báo}} sau gặp phải khi cố gắng để tạo ra thẻ “$1”:",
        "tags-create-warnings-below": "Bạn có muốn tiếp tục tạo thẻ này?",
        "tags-delete-title": "Xóa thẻ",
-       "tags-delete-explanation-initial": "Bạn muốn xóa thẻ \"$1\" từ cơ sở dữ liệu.",
-       "tags-delete-explanation-in-use": "Nó sẽ được gỡ bỏ từ {{PLURAL:$2|$2 mục sửa đổi hoặc mục đăng nhập|tất cả $2 bản sửa đổi và/hoặc đăng nhập các mục}} mà nó hiện đang áp dụng.",
+       "tags-delete-explanation-initial": "Bạn muốn xóa thẻ “$1” từ cơ sở dữ liệu.",
+       "tags-delete-explanation-in-use": "Nó sẽ được gỡ bỏ từ {{PLURAL:$2|$2 phiên bản hoặc mục nhật trình|tất cả $2 phiên bản và/hoặc mục nhật trình}} mà nó hiện đang áp dụng.",
        "tags-delete-explanation-warning": "Hành động này là <strong>không thể đảo ngược</strong> và <strong>không thể hoàn tác</strong>, ngay cả bởi người quản trị cơ sở dữ liệu. Hãy chắc chắn đây là thẻ mà bạn muốn xóa.",
        "tags-delete-explanation-active": "<strong>Thẻ “$1” vẫn còn kích hoạt.</strong> Để ngừng áp dụng thẻ này trong tương lai, đi đến những nơi áp dụng thẻ và vô hiệu nó tại đấy.",
        "tags-delete-reason": "Lý do:",
        "tags-delete-submit": "Không thể phục hồi xóa thẻ này",
        "tags-delete-not-allowed": "Thẻ được định nghĩa bởi một mở rộng không thể bị xóa trừ khi mở rộng đặc biệt cho phép điều đó xảy ra.",
-       "tags-delete-not-found": "Thẻ \"$1\" không tồn tại.",
-       "tags-delete-too-many-uses": "Từ khóa \"$1\" được áp dụng cho hơn $2 {{PLURAL:$2|phiên bản}}, có nghĩa là nó không thể bị xóa.",
+       "tags-delete-not-found": "Thẻ “$1” không tồn tại.",
+       "tags-delete-too-many-uses": "Thẻ “$1” được áp dụng cho hơn $2 phiên bản, có nghĩa là nó không thể bị xóa.",
        "tags-delete-warnings-after-delete": "Thẻ “$1” bị xóa thành công, nhưng gặp {{PLURAL:$2|cảnh báo|các cảnh báo}} sau:",
        "tags-activate-title": "Kích hoạt thẻ",
-       "tags-activate-question": "Bạn sắp sửa kích hoạt thẻ \"$1\".",
+       "tags-activate-question": "Bạn sắp sửa kích hoạt thẻ “$1”.",
        "tags-activate-reason": "Lý do:",
-       "tags-activate-not-allowed": "Không thể kích hoạt thẻ \"$1\".",
-       "tags-activate-not-found": "Thẻ \"$1\" không tồn tại.",
+       "tags-activate-not-allowed": "Không thể kích hoạt thẻ “$1”.",
+       "tags-activate-not-found": "Thẻ “$1” không tồn tại.",
        "tags-activate-submit": "Kích hoạt",
        "tags-deactivate-title": "Vô hiệu thẻ",
-       "tags-deactivate-question": "Bạn sắp sửa vô hiệu thẻ \"$1\".",
+       "tags-deactivate-question": "Bạn sắp sửa vô hiệu thẻ “$1”.",
        "tags-deactivate-reason": "Lý do:",
-       "tags-deactivate-not-allowed": "Không thể vô hiệu hóa thẻ \"$1\".",
+       "tags-deactivate-not-allowed": "Không thể vô hiệu hóa thẻ “$1”.",
        "tags-deactivate-submit": "Vô hiệu",
        "tags-apply-no-permission": "Bạn không có quyền áp dụng các thẻ thay đổi cùng các thay đổi của bạn.",
-       "tags-apply-not-allowed-one": "Thẻ \"$1\" không được phép được áp dụng thủ công.",
-       "tags-apply-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép áp dụng thủ công: $1",
-       "tags-update-no-permission": "Bạn không có quyền thêm hoặc loại bỏ các thẻ thay đổi từ phiên bản cá nhân hoặc mục đăng nhập.",
-       "tags-update-add-not-allowed-one": "Thẻ \"$1\" không được phép thêm vào thủ công.",
-       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép thêm thủ công: $1",
-       "tags-update-remove-not-allowed-one": "Thẻ đánh dấu \"$1\" không được phép loại bỏ.",
-       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|tag is|Các thẻ đánh dấu}} sau không được phép loại bỏ thủ công: $1",
-       "tags-edit-title": "Chỉnh sửa thẻ",
+       "tags-apply-not-allowed-one": "Thẻ “$1” không được phép được áp dụng thủ công.",
+       "tags-apply-not-allowed-multi": "{{PLURAL:$2|Thẻ|Các thẻ}} sau không được phép áp dụng thủ công: $1",
+       "tags-update-no-permission": "Bạn không có quyền thêm hoặc loại bỏ các thẻ thay đổi từ phiên bản riêng hoặc mục nhật trình.",
+       "tags-update-add-not-allowed-one": "Thẻ “$1” không được phép thêm vào thủ công.",
+       "tags-update-add-not-allowed-multi": "{{PLURAL:$2|Thẻ|Các thẻ}} sau không được phép thêm thủ công: $1",
+       "tags-update-remove-not-allowed-one": "Thẻ đánh dấu “$1” không được phép loại bỏ.",
+       "tags-update-remove-not-allowed-multi": "{{PLURAL:$2|Thẻ|Các thẻ}} sau không được phép loại bỏ thủ công: $1",
+       "tags-edit-title": "Sửa đổi thẻ",
        "tags-edit-manage-link": "Quản lý thẻ",
        "tags-edit-revision-selected": "{{PLURAL:$1|Phiên bản|Các phiên bản}} [[:$2]] được chọn:",
        "tags-edit-logentry-selected": "{{PLURAL:$1|Nhật trình đã chọn|Các nhật trình đã chọn}}:",
-       "tags-edit-revision-legend": "Thêm và loại bỏ các thẻ đánh dấu từ {{PLURAL:$1|bản xem trước này|tất cả $1 bản xem trước}}",
+       "tags-edit-revision-legend": "Thêm và loại bỏ các thẻ từ {{PLURAL:$1|phiên bản này|tất cả $1 phiên bản}}",
        "tags-edit-logentry-legend": "Thêm và loại bỏ thẻ đánh dấu từ {{PLURAL:$1|mục nhật trình này|tất cả $1 mục nhật trình}}",
        "tags-edit-existing-tags": "Thẻ đã có:",
        "tags-edit-existing-tags-none": "''Không''",
        "tags-edit-chosen-placeholder": "Chọn vài thẻ",
        "tags-edit-chosen-no-results": "Không thẻ nào được tìm thấy trùng khớp",
        "tags-edit-reason": "Lý do:",
-       "tags-edit-revision-submit": "Áp dụng các thay đổi lên {{PLURAL:$1|bản xem trước này|$1 bản xem trước}}",
-       "tags-edit-logentry-submit": "Áp dụng các thay đổi đối với {{PLURAL:$1|this log entry|$1 log entries}}",
+       "tags-edit-revision-submit": "Áp dụng các thay đổi lên {{PLURAL:$1|phiên bản này|$1 phiên bản}}",
+       "tags-edit-logentry-submit": "Áp dụng các thay đổi đối với {{PLURAL:$1|mục nhật ký này|$1 mục nhật trình}}",
        "tags-edit-success": "Các thay đổi được áp dụng thành công.",
        "tags-edit-failure": "Các thay đổi không thể được áp dụng: $1",
        "tags-edit-nooldid-title": "Kiểm tra các mục tiêu không hợp lệ",
-       "tags-edit-nooldid-text": "Bạn chưa định rõ đối tượng xem trước để thực hiện chức năng này hoặc bản xem trước đã định không tồn tại.",
+       "tags-edit-nooldid-text": "Bạn chưa định rõ phiên bản đích để thực hiện tác vụ này, hoặc phiên bản đã định không tồn tại.",
        "tags-edit-none-selected": "Vui lòng chọn ít nhất một thẻ để thêm hoặc loại bỏ.",
        "comparepages": "So sánh trang",
        "compare-page1": "Trang 1",
        "logentry-block-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2}}đã cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
-       "logentry-import-upload": "$1 {{GENDER:$2|đã nhập}} $3 bằng cách tải lên tập tin",
-       "logentry-import-interwiki": "$1 {{GENDER:$2|đã nhập}} $3 từ một wiki khác",
+       "logentry-import-upload": "$1 {{GENDER:$2}}đã nhập $3 bằng cách tải lên tập tin",
+       "logentry-import-interwiki": "$1 {{GENDER:$2}}đã nhập $3 từ một wiki khác",
        "logentry-merge-merge": "$1 {{GENDER:$2}}đã hợp nhất $3 vào $4 (các phiên bản cho tới $5)",
        "logentry-move-move": "$1 {{GENDER:$2}}đã đổi $3 thành $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2}}đã đổi $3 thành $4 (đã tắt đổi hướng)",
        "logentry-upload-revert": "$1 {{GENDER:$2}}đã tải lên $3",
        "log-name-managetags": "Danh sách quản lý thẻ",
        "log-description-managetags": "Trang này có các công việc quản lý [[Special:Tags|thẻ]]. Nhật trình chỉ bao gồm các tác vụ do bảo quản viên thực hiện thủ công; phần mềm wiki có thể tạo hoặc xóa thẻ mà không ghi tác vụ vào nhật trình này.",
-       "logentry-managetags-create": "$1 {{GENDER:$2| đã tạo}} thẻ \"$4\"",
+       "logentry-managetags-create": "$1 {{GENDER:$2}}đã tạo thẻ “$4”",
        "logentry-managetags-delete": "$1 {{GENDER:$2}}đã xóa thẻ “$4” (và gỡ nó khỏi $5 phiên bản hoặc mục nhật trình)",
-       "logentry-managetags-activate": "$1 {{GENDER:$2|đã kích hoạt}} tag \"$4\" để sử dụng bởi người dùng và các bot",
-       "logentry-managetags-deactivate": "$1 {{GENDER:$2|đã vô hiệu}} thẻ \"$4\" để sử dụng bởi người dùng và các bot",
+       "logentry-managetags-activate": "$1 {{GENDER:$2}}đã kích hoạt thẻ “$4” để sử dụng bởi người dùng và các bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2}}đã vô hiệu thẻ “$4” để sử dụng bởi người dùng và các bot",
        "log-name-tag": "Nhật trình đánh dấu",
-       "log-description-tag": "Trang này hiện khi người dùng vừa thêm hoặc loại bỏ [[Special:Tags|thẻ đánh dấu]] từ các bản xem trước hoặc các mục nhật trình riêng biệt. Nhật trình không liệt kê các hoạt động đánh dấu khi chúng là một phần của hoạt động sửa đổi, xóa hoặc các hoạt động tương tự.",
-       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|đã thêm}} {{PLURAL:$7|thẻ đánh dấu|thẻ đánh dấu}} $6 vào bản xem trước $4 của trang $3",
-       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|đã thêm}} {{PLURAL:$7|thẻ đánh dấu|thẻ đánh dấu}} $6 vào mục nhật trình $5 của trang $3",
-       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|đã loại bỏ}} {{PLURAL:$9|thẻ đánh dấu|thẻ đánh dấu}} $8 khỏi bản xem trước $4 của trang $3",
-       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|đã loại bỏ}} {{PLURAL:$9|thẻ đánh dấu|thẻ đánh dấu}} $8 khỏi mục nhật trình $5 của trang $3",
-       "logentry-tag-update-revision": "$1 {{GENDER:$2|đã cập nhật}} thẻ đánh dấu của bản xem trước $4 của trang $3 ({{PLURAL:$7|đã thêm}} $6; {{PLURAL:$9|loại bỏ}} $8)",
-       "logentry-tag-update-logentry": "$1 {{GENDER:$2|đã cập nhật}} thẻ đánh dấu của mục nhật trình $5 của trang $3 ({{PLURAL:$7|đã thêm}} $6; {{PLURAL:$9|loại bỏ}} $8)",
+       "log-description-tag": "Trang này hiện khi người dùng vừa thêm hoặc loại bỏ [[Special:Tags|thẻ đánh dấu]] từ các phiên bản hoặc các mục nhật trình riêng biệt. Nhật trình không liệt kê các hoạt động đánh dấu khi chúng là một phần của hoạt động sửa đổi, xóa, hoặc các hoạt động tương tự.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2}}đã thêm {{PLURAL:$7|thẻ|các thẻ}} $6 vào phiên bản $4 của trang $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2}}đã thêm {{PLURAL:$7|thẻ|các thẻ}} $6 vào mục nhật trình $5 của trang $3",
+       "logentry-tag-update-remove-revision": "$1 {{GENDER:$2}}đã loại bỏ {{PLURAL:$9|thẻ|các thẻ}} $8 khỏi phiên bản $4 của trang $3",
+       "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2}}đã loại bỏ {{PLURAL:$9|thẻ|các thẻ}} $8 khỏi mục nhật trình $5 của trang $3",
+       "logentry-tag-update-revision": "$1 {{GENDER:$2}}đã cập nhật thẻ của phiên bản $4 của trang $3 ({{PLURAL:$7}}đã thêm $6; {{PLURAL:$9}}loại bỏ $8)",
+       "logentry-tag-update-logentry": "$1 {{GENDER:$2}}đã cập nhật thẻ của mục nhật trình $5 của trang $3 ({{PLURAL:$7}}đã thêm $6; {{PLURAL:$9}}loại bỏ $8)",
        "rightsnone": "(không có)",
        "revdelete-summary": "tóm lược sửa đổi",
        "feedback-adding": "Đang thêm thông tin phản hồi vào trang…",
        "feedback-back": "Lùi",
        "feedback-bugcheck": "Tuyệt! Chỉ cần kiểm tra nó chưa được [$1 báo cáo trước đây].",
-       "feedback-bugnew": "Tôi đã kiểm tra – báo cáo lỗi mới",
-       "feedback-bugornote": "Nếu bạn đã sẵn sàng để miêu tả các chi tiết của một vấn đề kỹ thuật, xin vui lòng [$1 báo cáo lỗi].\nNếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới. Lời ghi của bạn sẽ được đăng lên trang “[$3 $2]”, cùng với tên người dùng và trình duyệt của bạn.",
+       "feedback-bugnew": "Tôi đã kiểm tra – báo lỗi mới",
+       "feedback-bugornote": "Nếu bạn đã sẵn sàng để miêu tả các chi tiết của một vấn đề kỹ thuật, xin vui lòng [$1 báo lỗi].\nNếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới. Lời ghi của bạn sẽ được đăng lên trang “[$3 $2]”, cùng với tên người dùng của bạn.",
        "feedback-cancel": "Hủy bỏ",
        "feedback-close": "Xong",
        "feedback-external-bug-report-button": "Tạo một công việc kỹ thuật",
        "mw-widgets-dateinput-no-date": "Không chọn ngày tháng",
        "mw-widgets-dateinput-placeholder-day": "YYYY-MM-DD (năm-tháng-ngày)",
        "mw-widgets-dateinput-placeholder-month": "YYYY-MM (năm-tháng)",
-       "mw-widgets-titleinput-description-new-page": "Trang này chưa tồn tại",
-       "mw-widgets-titleinput-description-redirect": "Ä\90ổi hướng đến $1",
+       "mw-widgets-titleinput-description-new-page": "trang này chưa tồn tại",
+       "mw-widgets-titleinput-description-redirect": "Ä\91ổi hướng đến $1",
        "api-error-blacklisted": "Xin vui lòng chọn một tên khác miêu tả đầy đủ."
 }
index a6e7e02..a9f92e8 100644 (file)
        "watchlist-details": "弗包括讨论页,有 $1 页徕你侬关注表里向。",
        "wlnote": "下底是{{PLURAL:$2|过去<strong>$2</strong>个钟头}}个{{PLURAL:$1|最后<strong>$1</strong>届更改}},截至$3 $4。",
        "wlshowlast": "显示上$1个钟头$2日天",
+       "watchlistall2": "全部",
        "watchlist-options": "监控列表选项",
        "watching": "监控……",
        "unwatching": "解除监控……",
index ce51952..36ebd26 100644 (file)
        "prefs-help-recentchangescount": "כולל לעצטע ענדערונגען, בלאַט היסטאָריעס, און לאָגביכער.",
        "prefs-help-watchlist-token2": "דאס איז דער געהיימער שליסל צום וועבפֿיד פון אײַער אויפֿפאסונג ליסטע.\nיעדער וואס ווייסט אים וועט קענען לייענען אײַער אויפֿפאסונג ליסטע; טוט אים נישט טיילן.\n[[Special:ResetTokens|קליקט דא ווען איר דארפט אים צוריקשטעלן]].",
        "savedprefs": "אייערע פרעפערענצן איז אפגעהיטן געווארן.",
+       "savedrights": "די באניצער־רעכטן פֿון {{GENDER:$1|$1}} זענען געווארן געשפייכלערט.",
        "timezonelegend": "צײַט זאנע:",
        "localtime": "לאקאלע צייט:",
        "timezoneuseserverdefault": "ניצן סערווירער גרונט ($1)",
        "wlheader-showupdated": "בלעטער געענדערט זײַט אײַער לעצטן וויזיט זען געוויזן '''דיק'''.",
        "wlnote": "אונטן {{PLURAL:$1|איז די לעצטע ענדערונג|זענען די לעצטע <strong>$1</strong> ענדערונגען}} אין {{PLURAL:$2|דער לעצטער שעה|די לעצטע <strong>$2</strong> שעה'ן}} ביז $3, $4.",
        "wlshowlast": "ווײַזן די לעצטע $1 שעה'ן  $2 טעג",
+       "watchlistall2": "אַלע",
        "watchlist-options": "אויפֿפאַסן ליסטע ברירות",
        "watching": "אויפפאסענדונג…",
        "unwatching": "נעמט אראפ פון אויפפאסונג ליסטע…",
index 67e46d4..4dd5227 100644 (file)
        "wlheader-showupdated": "您上次访问后发生更改的页面<strong>加粗</strong>显示。",
        "wlnote": "下面是{{PLURAL:$2|过去<strong>$2</strong>小时}}的{{PLURAL:$1|最后<strong>$1</strong>个更改}},截至$3 $4。",
        "wlshowlast": "显示过去$1小时$2天",
+       "watchlistall2": "所有",
+       "wlshowtime": "显示最近:",
+       "wlshowhideminor": "小编辑",
+       "wlshowhidebots": "机器人",
+       "wlshowhideliu": "注册用户",
+       "wlshowhideanons": "匿名用户",
+       "wlshowhidepatr": "已巡查的编辑",
+       "wlshowhidemine": "我的编辑",
        "watchlist-options": "监视列表选项",
        "watching": "正在监视...",
        "unwatching": "正在取消监视...",
index bf54690..2c537d9 100644 (file)
                        "Macofe",
                        "578985s",
                        "Matma Rex",
-                       "范"
+                       "范",
+                       "Jasonzhuocn"
                ]
        },
        "tog-underline": "底線標示連結:",
-       "tog-hideminor": "隱藏近期變更中的小修訂",
-       "tog-hidepatrolled": "隱藏近期變更中巡查過的編輯",
+       "tog-hideminor": "隱藏最近更改中的小修訂",
+       "tog-hidepatrolled": "隱藏最近更改中巡查過的編輯",
        "tog-newpageshidepatrolled": "隱藏新頁面清單中巡查過的頁面",
        "tog-hidecategorization": "隱藏頁面分類",
        "tog-extendwatchlist": "展開監視清單顯示包含最近以外的所有變更",
-       "tog-usenewrc": "依近期變更與監視清單的頁面分類顯示變更",
+       "tog-usenewrc": "依最近更改與監視清單的頁面分類顯示更改",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
        "tog-editondblclick": "開啟滑鼠雙擊編輯頁面",
        "aboutpage": "Project:關於",
        "copyright": "除非額外說明,否則本站內容均使用 $1 授權條款。",
        "copyrightpage": "{{ns:project}}:版權",
-       "currentevents": "æ\9c\80æ\96°動態",
+       "currentevents": "æ\96°è\81\9e動態",
        "currentevents-url": "Project:Current events",
        "disclaimers": "免責聲明",
        "disclaimerpage": "Project:一般免責聲明",
        "prefs-labs": "實驗中的功能",
        "prefs-user-pages": "使用者頁面",
        "prefs-personal": "使用者基本資料",
-       "prefs-rc": "近期變更",
+       "prefs-rc": "最近更改",
        "prefs-watchlist": "監視清單",
        "prefs-editwatchlist": "編輯監視清單",
        "prefs-editwatchlist-label": "編輯在您監視清單上的項目:",
        "stub-threshold": "短頁面連結格式門檻值 ($1):",
        "stub-threshold-sample-link": "樣本",
        "stub-threshold-disabled": "已停用",
-       "recentchangesdays": "近期變更顯示的天數:",
+       "recentchangesdays": "最近更改顯示的天數:",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
-       "prefs-help-recentchangescount": "這包含近期變更、頁面歷史以及日誌。",
+       "prefs-help-recentchangescount": "這包含最近更改、頁面歷史以及日誌。",
        "prefs-help-watchlist-token2": "訂閱您的監視清單所需的密鑰。\n任何人只要知道密鑰就能夠讀取您的監視清單,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
        "savedprefs": "已儲存您的偏好設定。",
        "savedrights": "已儲存 {{GENDER:$1|$1}} 的使用者權限。",
        "right-importupload": "由檔案上傳匯入頁面",
        "right-patrol": "標示其他人的編輯爲已巡查",
        "right-autopatrol": "將自己的編輯自動標示為已巡查",
-       "right-patrolmarks": "檢視近期變更的巡查標記",
+       "right-patrolmarks": "檢視最近更改的巡查標記",
        "right-unwatchedpages": "檢視未監視的頁面",
        "right-mergehistory": "合併頁面歷史",
        "right-userrights": "編輯所有使用者的權限",
        "nchanges": "$1 次變更",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|自上次拜訪}}已有 $1",
        "enhancedrc-history": "歷史",
-       "recentchanges": "近期變更",
-       "recentchanges-legend": "近期變更選項",
-       "recentchanges-summary": "追蹤 Wiki 中此頁面的近期變更。",
+       "recentchanges": "最近更改",
+       "recentchanges-legend": "最近更改選項",
+       "recentchanges-summary": "追蹤 Wiki 中此頁面的最近更改。",
        "recentchanges-noresult": "於指定時間內沒有符合條件的變更。",
-       "recentchanges-feed-description": "追蹤 Wiki 中此訂閱來源的近期變更。",
+       "recentchanges-feed-description": "追蹤 Wiki 中此訂閱來源的最近更改。",
        "recentchanges-label-newpage": "該編輯建立了新頁面",
        "recentchanges-label-minor": "該編輯是一個小修訂",
        "recentchanges-label-bot": "該編輯由機器人執行",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (請參考[[Special:NewPages|新頁面]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "以下{{PLURAL:$5|為}}自 <strong>$3 $4</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
-       "rclistfrom": "顯示自 $3 $2 以來的近期變更",
+       "rclistfrom": "顯示自 $3 $2 以來的最近更改",
        "rcshowhideminor": "$1 小修訂",
        "rcshowhideminor-show": "顯示",
        "rcshowhideminor-hide": "隱藏",
        "rcshowhidecategorization": "$1 頁面分類",
        "rcshowhidecategorization-show": "顯示",
        "rcshowhidecategorization-hide": "隱藏",
-       "rclinks": "顯示近期 $2 天內的 $1 次變更。<br />$3",
+       "rclinks": "顯示最近 $2 天內的 $1 次更改。<br />$3",
        "diff": "差異",
        "hist": "歷史",
        "hide": "隱藏",
        "wlheader-showupdated": "在您最後一次檢視過後修改的頁面會以 <strong>粗體</strong> 顯示。",
        "wlnote": "以下為自 $3 $4 之後的 <strong>$2</strong> 小時內所做的 <strong>$1</strong> 次變更。",
        "wlshowlast": "顯示最近 $1 小時 $2 天",
+       "watchlistall2": "全部",
+       "wlshowtime": "顯示最近:",
+       "wlshowhideminor": "小編輯",
+       "wlshowhidebots": "機器人",
+       "wlshowhideliu": "已註冊使用者",
+       "wlshowhideanons": "匿名使用者",
+       "wlshowhidepatr": "已巡查編輯",
+       "wlshowhidemine": "我的編輯",
        "watchlist-options": "監視清單選項",
        "watching": "正在監視...",
        "unwatching": "正在停止監視...",
        "tooltip-n-mainpage": "前往首頁",
        "tooltip-n-mainpage-description": "前往首頁",
        "tooltip-n-portal": "關於本專案、您可以做什麼、哪裡可以找到您需要的事物",
-       "tooltip-n-currentevents": "æ\96¼æ\9c\80æ\96°å\8b\95æ\85\8b中å°\8bæ\89¾è\83\8cæ\99¯è³\87è¨\8a",
-       "tooltip-n-recentchanges": "列出此 Wiki 中的近期變更清單",
+       "tooltip-n-currentevents": "æ\96¼æ\96°è\81\9eäº\8b件中æ\89¾å\88°ç\9b¸é\97\9cè\83\8cæ\99¯è³\87æ\96\99",
+       "tooltip-n-recentchanges": "列出此Wiki中的最近更改清單",
        "tooltip-n-randompage": "隨機進入一個頁面",
        "tooltip-n-help": "尋求協助的地方",
        "tooltip-t-whatlinkshere": "列出所有連結此頁面的頁面",
-       "tooltip-t-recentchangeslinked": "此頁面連結到其他頁面的近期變更",
+       "tooltip-t-recentchangeslinked": "此頁面連結到其他頁面的最近更改",
        "tooltip-feed-rss": "此頁面的 RSS 摘要",
        "tooltip-feed-atom": "此頁面的 Atom 摘要",
        "tooltip-t-contributions": "此使用者的貢獻清單",
        "markaspatrolledtext": "標記此頁面為已巡查",
        "markedaspatrolled": "己標記為已巡查",
        "markedaspatrolledtext": "已標記選擇的修訂 [[:$1]] 為已巡查。",
-       "rcpatroldisabled": "近期變更巡查已停用",
+       "rcpatroldisabled": "最近更改巡查已停用",
        "rcpatroldisabledtext": "最新變更巡查的功能目前已停用。",
        "markedaspatrollederror": "無法標記為已巡查",
        "markedaspatrollederrortext": "您需指定要標記為已巡查的修訂。",
        "specialpages-group-maintenance": "維護報表",
        "specialpages-group-other": "其它特殊頁面",
        "specialpages-group-login": "登入 / 建立帳號",
-       "specialpages-group-changes": "近期變更與日誌",
+       "specialpages-group-changes": "最近更改與日誌",
        "specialpages-group-media": "媒體上傳與報表",
        "specialpages-group-users": "使用者與權限",
        "specialpages-group-highuse": "常用頁面",
index e65b09e..43c2faf 100644 (file)
--- a/load.php
+++ b/load.php
 
 use MediaWiki\Logger\LoggerFactory;
 
-// Bail on old versions of PHP, or if composer has not been run yet to install
-// dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
-require_once dirname( __FILE__ ) . '/includes/PHPVersionCheck.php';
-wfEntryPointCheck( 'load.php' );
-
 require __DIR__ . '/includes/WebStart.php';
 
 
index 8dad5dc..7825ce9 100644 (file)
@@ -22,7 +22,9 @@
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
 // dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
 wfEntryPointCheck( 'cli' );
 
 /**
index 0925406..f9c61c7 100644 (file)
@@ -60,8 +60,8 @@ class FindHooks extends Maintenance {
        public function execute() {
                global $IP;
 
-               $documented = $this->getHooksFromDoc( $IP . '/docs/hooks.txt' );
-               $potential = array();
+               $documentedHooks = $this->getHooksFromDoc( $IP . '/docs/hooks.txt' );
+               $potentialHooks = array();
                $bad = array();
 
                // TODO: Don't hardcode the list of directories
@@ -117,21 +117,53 @@ class FindHooks extends Maintenance {
                );
 
                foreach ( $pathinc as $dir ) {
-                       $potential = array_merge( $potential, $this->getHooksFromPath( $dir ) );
+                       $potentialHooks = array_merge( $potentialHooks, $this->getHooksFromPath( $dir ) );
                        $bad = array_merge( $bad, $this->getBadHooksFromPath( $dir ) );
                }
 
+               $documented = array_keys( $documentedHooks );
+               $potential = array_keys( $potentialHooks );
                $potential = array_unique( $potential );
                $bad = array_diff( array_unique( $bad ), self::$ignore );
                $todo = array_diff( $potential, $documented, self::$ignore );
                $deprecated = array_diff( $documented, $potential, self::$ignore );
 
+               // Check parameter count and references
+               $badParameterCount = $badParameterReference = array();
+               foreach ( $potentialHooks as $hook => $args ) {
+                       if ( !isset( $documentedHooks[$hook] ) ) {
+                               // Not documented, but that will also be in $todo
+                               continue;
+                       }
+                       $argsDoc = $documentedHooks[$hook];
+                       if ( $args === 'unknown' || $argsDoc === 'unknown' ) {
+                               // Could not get parameter information
+                               continue;
+                       }
+                       if ( count( $argsDoc ) !== count( $args ) ) {
+                               $badParameterCount[] = $hook . ': Doc: ' . count( $argsDoc ) . ' vs. Code: ' . count( $args );
+                       } else {
+                               // Check if & is equal
+                               foreach ( $argsDoc as $index => $argDoc ) {
+                                       $arg = $args[$index];
+                                       if ( ( $arg[0] === '&' ) !== ( $argDoc[0] === '&' ) ) {
+                                               $badParameterReference[] = $hook . ': References different: Doc: ' . $argDoc .
+                                                       ' vs. Code: ' . $arg;
+                                       }
+                               }
+                       }
+               }
+
                // let's show the results:
                $this->printArray( 'Undocumented', $todo );
                $this->printArray( 'Documented and not found', $deprecated );
                $this->printArray( 'Unclear hook calls', $bad );
+               $this->printArray( 'Different parameter count', $badParameterCount );
+               $this->printArray( 'Different parameter reference', $badParameterReference );
 
-               if ( count( $todo ) == 0 && count( $deprecated ) == 0 && count( $bad ) == 0 ) {
+               if ( count( $todo ) == 0 && count( $deprecated ) == 0 && count( $bad ) == 0
+                       && count( $badParameterCount ) == 0 && count( $badParameterReference ) == 0
+               ) {
                        $this->output( "Looks good!\n" );
                } else {
                        $this->error( 'The script finished with errors.', 1 );
@@ -141,7 +173,7 @@ class FindHooks extends Maintenance {
        /**
         * Get the hook documentation, either locally or from MediaWiki.org
         * @param string $doc
-        * @return array Array of documented hooks
+        * @return array Array: key => hook name; value => array of arguments or string 'unknown'
         */
        private function getHooksFromDoc( $doc ) {
                if ( $this->hasOption( 'online' ) ) {
@@ -154,24 +186,41 @@ class FindHooks extends Maintenance {
        /**
         * Get hooks from a local file (for example docs/hooks.txt)
         * @param string $doc Filename to look in
-        * @return array Array of documented hooks
+        * @return array Array: key => hook name; value => array of arguments or string 'unknown'
         */
        private function getHooksFromLocalDoc( $doc ) {
                $m = array();
                $content = file_get_contents( $doc );
-               preg_match_all( "/\n'(.*?)':/", $content, $m );
+               preg_match_all(
+                       "/\n'(.*?)':.*((?:\n.+)*)/",
+                       $content,
+                       $m,
+                       PREG_SET_ORDER
+               );
 
-               return array_unique( $m[1] );
+               // Extract the documented parameter
+               $hooks = array();
+               foreach ( $m as $match ) {
+                       $args = array();
+                       if ( isset( $match[2] ) ) {
+                               $n = array();
+                               if ( preg_match_all( "/\n(&?\\$\w+):.+/", $match[2], $n ) ) {
+                                       $args = $n[1];
+                               }
+                       }
+                       $hooks[$match[1]] = $args;
+               }
+               return $hooks;
        }
 
        /**
         * Get hooks from www.mediawiki.org using the API
-        * @return array Array of documented hooks
+        * @return array Array: key => hook name; value => string 'unknown'
         */
        private function getHooksFromOnlineDoc() {
                $allhooks = $this->getHooksFromOnlineDocCategory( 'MediaWiki_hooks' );
                $removed = $this->getHooksFromOnlineDocCategory( 'Removed_hooks' );
-               return array_diff( $allhooks, $removed );
+               return array_diff_key( $allhooks, $removed );
        }
 
        /**
@@ -198,7 +247,8 @@ class FindHooks extends Maintenance {
                        $data = FormatJson::decode( $json, true );
                        foreach ( $data['query']['categorymembers'] as $page ) {
                                if ( preg_match( '/Manual\:Hooks\/([a-zA-Z0-9- :]+)/', $page['title'], $m ) ) {
-                                       $retval[] = str_replace( ' ', '_', $m[1] );
+                                       // parameters are unknown, because that needs parsing of wikitext
+                                       $retval[str_replace( ' ', '_', $m[1] )] = 'unknown';
                                }
                        }
                        if ( !isset( $data['continue'] ) ) {
@@ -211,24 +261,54 @@ class FindHooks extends Maintenance {
        /**
         * Get hooks from a PHP file
         * @param string $file Full filename to the PHP file.
-        * @return array Array of hooks found
+        * @return array Array: key => hook name; value => array of arguments or string 'unknown'
         */
        private function getHooksFromFile( $file ) {
                $content = file_get_contents( $file );
                $m = array();
                preg_match_all(
-                       '/(?:wfRunHooks|Hooks\:\:run|ContentHandler\:\:runLegacyHooks)\(\s*([\'"])(.*?)\1/',
+                       // All functions which runs hooks
+                       '/(?:wfRunHooks|Hooks\:\:run|ContentHandler\:\:runLegacyHooks)\s*\(\s*' .
+                               // First argument is the hook name as string
+                               '([\'"])(.*?)\1' .
+                               // Comma for second argument
+                               '(?:\s*(,))?' .
+                               // Second argument must start with array to be processed
+                               '(?:\s*array\s*\(' .
+                               // Matching inside array - allows one deep of brackets
+                               '((?:[^\(\)]|\([^\(\)]*\))*)' .
+                               // End
+                               '\))?/',
                        $content,
-                       $m
+                       $m,
+                       PREG_SET_ORDER
                );
 
-               return $m[2];
+               // Extract parameter
+               $hooks = array();
+               foreach ( $m as $match ) {
+                       $args = array();
+                       if ( isset( $match[4] ) ) {
+                               $n = array();
+                               if ( preg_match_all( '/((?:[^,\(\)]|\([^\(\)]*\))+)/', $match[4], $n ) ) {
+                                       $args = array_map( 'trim', $n[1] );
+                               }
+                       } elseif ( isset( $match[3] ) ) {
+                               // Found a parameter for Hooks::run,
+                               // but could not extract the hooks argument,
+                               // because there are given by a variable
+                               $args = 'unknown';
+                       }
+                       $hooks[$match[2]] = $args;
+               }
+
+               return $hooks;
        }
 
        /**
         * Get hooks from the source code.
         * @param string $path Directory where the include files can be found
-        * @return array Array of hooks found
+        * @return array Array: key => hook name; value => array of arguments or string 'unknown'
         */
        private function getHooksFromPath( $path ) {
                $hooks = array();
index 212e42a..ae3074a 100644 (file)
@@ -23,7 +23,9 @@
 
 // Checking for old versions of PHP is done in Maintenance.php
 // We need to use dirname( __FILE__ ) here cause __DIR__ is PHP5.3+
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/Maintenance.php';
+// @codingStandardsIgnoreEnd
 
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
 define( 'MEDIAWIKI_INSTALL', true );
index 184cba8..28176a5 100644 (file)
@@ -390,7 +390,8 @@ class NamespaceConflictChecker extends Maintenance {
                                                $titleField => $row->$titleField,
                                                $fromField => $row->$fromField
                                        ),
-                                       __METHOD__
+                                       __METHOD__,
+                                       array( 'IGNORE' )
                                );
                                $this->output( "$table $logTitle -> " .
                                        $destTitle->getPrefixedDBkey() . "\n" );
index 850a5a5..a3099f9 100644 (file)
@@ -21,7 +21,7 @@
  * @ingroup Maintenance
  */
 
-require_once dirname( __FILE__ ) . '/Maintenance.php';
+require_once __DIR__ . '/Maintenance.php';
 
 /**
  * Maintenance script to populate the fa_sha1 field.
index be811dc..31b201c 100644 (file)
@@ -22,7 +22,9 @@
 
 // Bail on old versions of PHP, or if composer has not been run yet to install
 // dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
+// @codingStandardsIgnoreStart MediaWiki.Usage.DirUsage.FunctionFound
 require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
+// @codingStandardsIgnoreEnd
 wfEntryPointCheck( 'mw-config/index.php' );
 
 define( 'MW_CONFIG_CALLBACK', 'Installer::overrideConfig' );
index f44ee5a..609ea95 100644 (file)
@@ -436,7 +436,9 @@ if ( isset( $_REQUEST['filter'] ) ) {
        }
        $points[] = $s;
 
-       usort( $points, 'compare_point' );
+       // @codingStandardsIgnoreStart
+       @usort( $points, 'compare_point' );
+       // @codingStandardsIgnoreEnd
 
        foreach ( $points as $point ) {
                if ( strlen( $filter ) && !strstr( $point->name(), $filter ) ) {
index fa04e41..b8abff3 100644 (file)
@@ -1246,6 +1246,7 @@ return array(
                        'mediawiki.widgets.CategorySelector',
                        'mediawiki.widgets.DateInputWidget',
                        'mediawiki.jqueryMsg',
+                       'moment',
                ),
                'messages' => array(
                        'foreign-structured-upload-form-label-own-work',
@@ -1320,7 +1321,8 @@ return array(
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.raggett' => array(
-               'styles' => 'resources/src/mediawiki/mediawiki.raggett.css'
+               'styles' => 'resources/src/mediawiki/mediawiki.raggett.css',
+               'targets' => array( 'desktop', 'mobile' ),
        ),
 
        /* MediaWiki Action */
@@ -1368,7 +1370,6 @@ return array(
                        'editingsection',
                        'pagetitle',
                        'otherlanguages',
-                       'tooltip-p-lang',
                        'summary-preview',
                        'subject-preview',
                        'parentheses',
index 019694a..d159169 100644 (file)
@@ -1,65 +1,65 @@
-== GNU GENERAL PUBLIC LICENSE ==
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
-Version 2, June 1991
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
 
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
+                            Preamble
 
-=== Preamble ===
-
-The licenses for most software are designed to take away your
+  The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
 License is intended to guarantee your freedom to share and change free
 software--to make sure the software is free for all its users.  This
 General Public License applies to most of the Free Software
 Foundation's software and to any other program whose authors commit to
 using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+the GNU Lesser General Public License instead.)  You can apply it to
 your programs, too.
 
-When we speak of free software, we are referring to freedom, not
+  When we speak of free software, we are referring to freedom, not
 price.  Our General Public Licenses are designed to make sure that you
 have the freedom to distribute copies of free software (and charge for
 this service if you wish), that you receive source code or can get it
 if you want it, that you can change the software or use pieces of it
 in new free programs; and that you know you can do these things.
 
-To protect your rights, we need to make restrictions that forbid
+  To protect your rights, we need to make restrictions that forbid
 anyone to deny you these rights or to ask you to surrender the rights.
 These restrictions translate to certain responsibilities for you if you
 distribute copies of the software, or if you modify it.
 
-For example, if you distribute copies of such a program, whether
+  For example, if you distribute copies of such a program, whether
 gratis or for a fee, you must give the recipients all the rights that
 you have.  You must make sure that they, too, receive or can get the
 source code.  And you must show them these terms so they know their
 rights.
 
-We protect your rights with two steps: (1) copyright the software, and
+  We protect your rights with two steps: (1) copyright the software, and
 (2) offer you this license which gives you legal permission to copy,
 distribute and/or modify the software.
 
-Also, for each author's protection and ours, we want to make certain
+  Also, for each author's protection and ours, we want to make certain
 that everyone understands that there is no warranty for this free
 software.  If the software is modified by someone else and passed on, we
 want its recipients to know that what they have is not the original, so
 that any problems introduced by others will not reflect on the original
 authors' reputations.
 
-Finally, any free program is threatened constantly by software
+  Finally, any free program is threatened constantly by software
 patents.  We wish to avoid the danger that redistributors of a free
 program will individually obtain patent licenses, in effect making the
 program proprietary.  To prevent this, we have made it clear that any
 patent must be licensed for everyone's free use or not licensed at all.
 
-The precise terms and conditions for copying, distribution and
+  The precise terms and conditions for copying, distribution and
 modification follow.
 
-== TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ==
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
-'''0.''' This License applies to any program or other work which contains
+  0. This License applies to any program or other work which contains
 a notice placed by the copyright holder saying it may be distributed
 under the terms of this General Public License.  The "Program", below,
 refers to any such program or work, and a "work based on the Program"
@@ -76,7 +76,7 @@ is covered only if its contents constitute a work based on the
 Program (independent of having been made by running the Program).
 Whether that is true depends on what the Program does.
 
-'''1.''' You may copy and distribute verbatim copies of the Program's
+  1. You may copy and distribute verbatim copies of the Program's
 source code as you receive it, in any medium, provided that you
 conspicuously and appropriately publish on each copy an appropriate
 copyright notice and disclaimer of warranty; keep intact all the
@@ -87,29 +87,29 @@ along with the Program.
 You may charge a fee for the physical act of transferring a copy, and
 you may at your option offer warranty protection in exchange for a fee.
 
-'''2.''' You may modify your copy or copies of the Program or any portion
+  2. You may modify your copy or copies of the Program or any portion
 of it, thus forming a work based on the Program, and copy and
 distribute such modifications or work under the terms of Section 1
 above, provided that you also meet all of these conditions:
 
-       '''a)''' You must cause the modified files to carry prominent notices
-       stating that you changed the files and the date of any change.
-
-       '''b)''' You must cause any work that you distribute or publish, that in
-       whole or in part contains or is derived from the Program or any
-       part thereof, to be licensed as a whole at no charge to all third
-       parties under the terms of this License.
-
-       '''c)''' If the modified program normally reads commands interactively
-       when run, you must cause it, when started running for such
-       interactive use in the most ordinary way, to print or display an
-       announcement including an appropriate copyright notice and a
-       notice that there is no warranty (or else, saying that you provide
-       a warranty) and that users may redistribute the program under
-       these conditions, and telling the user how to view a copy of this
-       License.  (Exception: if the Program itself is interactive but
-       does not normally print such an announcement, your work based on
-       the Program is not required to print an announcement.)
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
 
 These requirements apply to the modified work as a whole.  If
 identifiable sections of that work are not derived from the Program,
@@ -131,26 +131,26 @@ with the Program (or with a work based on the Program) on a volume of
 a storage or distribution medium does not bring the other work under
 the scope of this License.
 
-'''3.''' You may copy and distribute the Program (or a work based on it,
+  3. You may copy and distribute the Program (or a work based on it,
 under Section 2) in object code or executable form under the terms of
 Sections 1 and 2 above provided that you also do one of the following:
 
-       '''a)''' Accompany it with the complete corresponding machine-readable
-       source code, which must be distributed under the terms of Sections
-       1 and 2 above on a medium customarily used for software interchange; or,
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
 
-       '''b)''' Accompany it with a written offer, valid for at least three
-       years, to give any third party, for a charge no more than your
-       cost of physically performing source distribution, a complete
-       machine-readable copy of the corresponding source code, to be
-       distributed under the terms of Sections 1 and 2 above on a medium
-       customarily used for software interchange; or,
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
 
-       '''c)''' Accompany it with the information you received as to the offer
-       to distribute corresponding source code.  (This alternative is
-       allowed only for noncommercial distribution and only if you
-       received the program in object code or executable form with such
-       an offer, in accord with Subsection b above.)
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
 
 The source code for a work means the preferred form of the work for
 making modifications to it.  For an executable work, complete source
@@ -169,7 +169,7 @@ access to copy the source code from the same place counts as
 distribution of the source code, even though third parties are not
 compelled to copy the source along with the object code.
 
-'''4.''' You may not copy, modify, sublicense, or distribute the Program
+  4. You may not copy, modify, sublicense, or distribute the Program
 except as expressly provided under this License.  Any attempt
 otherwise to copy, modify, sublicense or distribute the Program is
 void, and will automatically terminate your rights under this License.
@@ -177,7 +177,7 @@ However, parties who have received copies, or rights, from you under
 this License will not have their licenses terminated so long as such
 parties remain in full compliance.
 
-'''5.''' You are not required to accept this License, since you have not
+  5. You are not required to accept this License, since you have not
 signed it.  However, nothing else grants you permission to modify or
 distribute the Program or its derivative works.  These actions are
 prohibited by law if you do not accept this License.  Therefore, by
@@ -186,7 +186,7 @@ Program), you indicate your acceptance of this License to do so, and
 all its terms and conditions for copying, distributing or modifying
 the Program or works based on it.
 
-'''6.''' Each time you redistribute the Program (or any work based on the
+  6. Each time you redistribute the Program (or any work based on the
 Program), the recipient automatically receives a license from the
 original licensor to copy, distribute or modify the Program subject to
 these terms and conditions.  You may not impose any further
@@ -194,7 +194,7 @@ restrictions on the recipients' exercise of the rights granted herein.
 You are not responsible for enforcing compliance by third parties to
 this License.
 
-'''7.''' If, as a consequence of a court judgment or allegation of patent
+  7. If, as a consequence of a court judgment or allegation of patent
 infringement or for any other reason (not limited to patent issues),
 conditions are imposed on you (whether by court order, agreement or
 otherwise) that contradict the conditions of this License, they do not
@@ -226,7 +226,7 @@ impose that choice.
 This section is intended to make thoroughly clear what is believed to
 be a consequence of the rest of this License.
 
-'''8.''' If the distribution and/or use of the Program is restricted in
+  8. If the distribution and/or use of the Program is restricted in
 certain countries either by patents or by copyrighted interfaces, the
 original copyright holder who places the Program under this License
 may add an explicit geographical distribution limitation excluding
@@ -234,7 +234,7 @@ those countries, so that distribution is permitted only in or among
 countries not thus excluded.  In such case, this License incorporates
 the limitation as if written in the body of this License.
 
-'''9.''' The Free Software Foundation may publish revised and/or new versions
+  9. The Free Software Foundation may publish revised and/or new versions
 of the General Public License from time to time.  Such new versions will
 be similar in spirit to the present version, but may differ in detail to
 address new problems or concerns.
@@ -247,7 +247,7 @@ Software Foundation.  If the Program does not specify a version number of
 this License, you may choose any version ever published by the Free Software
 Foundation.
 
-'''10.''' If you wish to incorporate parts of the Program into other free
+  10. If you wish to incorporate parts of the Program into other free
 programs whose distribution conditions are different, write to the author
 to ask for permission.  For software which is copyrighted by the Free
 Software Foundation, write to the Free Software Foundation; we sometimes
@@ -255,9 +255,9 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-=== NO WARRANTY ===
+                            NO WARRANTY
 
-'''11.''' BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
@@ -267,7 +267,7 @@ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 REPAIR OR CORRECTION.
 
-'''12.''' IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
@@ -277,47 +277,45 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-       '''END OF TERMS AND CONDITIONS'''
+                     END OF TERMS AND CONDITIONS
 
-== How to Apply These Terms to Your New Programs ==
+            How to Apply These Terms to Your New Programs
 
-If you develop a new program, and you want it to be of the greatest
+  If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
 free software which everyone can redistribute and change under these terms.
 
-To do so, attach the following notices to the program.  It is safest
+  To do so, attach the following notices to the program.  It is safest
 to attach them to the start of each source file to most effectively
 convey the exclusion of warranty; and each file should have at least
 the "copyright" line and a pointer to where the full notice is found.
 
-       <one line to give the program's name and a brief idea of what it does.>
-
-       Copyright (C) <year>  <name of author>
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
 
-       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 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
+    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.
 
 Also add information on how to contact you by electronic and paper mail.
 
 If the program is interactive, make it output a short notice like this
 when it starts in an interactive mode:
 
-       Gnomovision version 69, Copyright (C) year name of author
-       Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-       This is free software, and you are welcome to redistribute it
-       under certain conditions; type `show c' for details.
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
 
 The hypothetical commands `show w' and `show c' should show the appropriate
 parts of the General Public License.  Of course, the commands you use may
@@ -328,15 +326,14 @@ You should also get your employer (if you work as a programmer) or your
 school, if any, to sign a "copyright disclaimer" for the program, if
 necessary.  Here is a sample; alter the names:
 
-       Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-       `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-       <signature of Ty Coon>, 1 April 1989
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
 
-       Ty Coon, President of Vice
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
 
 This General Public License does not permit incorporating your program into
 proprietary programs.  If your program is a subroutine library, you may
 consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
+library.  If this is what you want to do, use the GNU Lesser General
 Public License instead of this License.
index 0dded29..d1c7f84 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "jquery.i18n",
-  "version": "1.0.3",
+  "version": "1.0.4",
   "description": "jQuery based internationalization library",
   "homepage": "https://github.com/wikimedia/jquery.i18n",
   "keywords": [
@@ -24,7 +24,7 @@
     "qunit": "0.7.6",
     "grunt": "0.4.5",
     "grunt-cli": "0.1.13",
-    "grunt-contrib-jshint": "0.11.2",
+    "grunt-contrib-jshint": "0.11.3",
     "grunt-contrib-connect": "0.10.1",
     "grunt-contrib-qunit": "0.7.0",
     "grunt-contrib-watch": "0.6.1",
index 3ce0a99..e596fbc 100644 (file)
        };
 
        $.extend( $.i18n.languages, {
-               default: language
+               'default': language
        } );
 }( jQuery ) );
index 3077b60..96d782e 100644 (file)
@@ -31,5 +31,5 @@
        "ooui-selectfile-button-select": "Seleccioneu un fitxer",
        "ooui-selectfile-not-supported": "El tipus de fitxer no és compatible",
        "ooui-selectfile-placeholder": "No s'ha seleccionat cap fitxer",
-       "ooui-selectfile-dragdrop-placeholder": "Deixeu-hi anar el fitxer (o feu clic a navega)"
+       "ooui-selectfile-dragdrop-placeholder": "Deseu els arxius aquí"
 }
index acd9d3b..cf26cc1 100644 (file)
@@ -22,6 +22,8 @@
        "ooui-dialog-process-dismiss": "Elrejt",
        "ooui-dialog-process-retry": "Próbáld újra",
        "ooui-dialog-process-continue": "Folytatás",
+       "ooui-selectfile-button-select": "Fájl kiválasztása",
        "ooui-selectfile-not-supported": "A fájl kiválasztása nincs támogatva",
-       "ooui-selectfile-placeholder": "Nincs fájl kiválasztva"
+       "ooui-selectfile-placeholder": "Nincs fájl kiválasztva",
+       "ooui-selectfile-dragdrop-placeholder": "Dobd ide a fájlt"
 }
index 15cd4be..4a04b48 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.2
+ * OOjs UI v0.13.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-11-10T23:33:07Z
+ * Date: 2015-11-18T01:09:30Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        color: #cccccc;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-       margin: 0.1em 0;
        padding: 0.2em 0.8em;
        border-radius: 0.3em;
        text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
        margin-right: 0;
 }
 .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button {
-       margin: 0 0 0 0.5em;
+       margin-left: 0.5em;
 }
 .oo-ui-selectFileWidget-info {
        height: 2.4em;
 .oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
        box-sizing: border-box;
 }
-.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget,
-.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
-       margin: 0;
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget {
        width: 2.5em;
 }
 .oo-ui-numberInputWidget-minusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
           -moz-transition: all 250ms ease;
                transition: all 250ms ease;
 }
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
        opacity: 1;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
index 145bca3..1c7db1d 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.2
+ * OOjs UI v0.13.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-11-10T23:32:59Z
+ * Date: 2015-11-18T01:09:23Z
  */
 /**
  * @class
index f5b431c..9b82a29 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.2
+ * OOjs UI v0.13.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-11-10T23:33:07Z
+ * Date: 2015-11-18T01:09:30Z
  */
 @-webkit-keyframes oo-ui-progressBarWidget-slide {
        from {
        padding-left: 2.4em;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
-       margin: 0.1em 0;
        padding: 0.5em 1em;
        min-height: 1.2em;
        min-width: 1em;
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-right > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
        width: 60%;
 }
+.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline {
+       margin-bottom: 1.25em;
+}
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       padding: 0.5em;
+       padding: 0.25em;
        padding-left: 1em;
 }
-.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
-       padding: 0.5em 0;
-}
 .oo-ui-fieldLayout.oo-ui-fieldLayout-align-top.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-labelElement-label {
-       padding: 0.5em 0;
+       padding-top: 0.25em;
+       padding-bottom: 0.5em;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget {
        margin-right: 0;
-       margin-top: 0.25em;
 }
 .oo-ui-fieldLayout > .oo-ui-popupButtonWidget:last-child {
        margin-right: 0;
        margin-right: 0;
 }
 .oo-ui-selectFileWidget-selectButton > .oo-ui-buttonElement-button {
-       margin: 0 0 0 0.5em;
+       margin-left: 0.5em;
 }
 .oo-ui-selectFileWidget-info {
        height: 2.4em;
 .oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
        box-sizing: border-box;
 }
-.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget,
-.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget > .oo-ui-buttonElement-button {
-       margin: 0;
+.oo-ui-numberInputWidget-field > .oo-ui-buttonWidget {
        width: 2.5em;
 }
 .oo-ui-numberInputWidget-minusButton.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
           -moz-transition: all 250ms ease;
                transition: all 250ms ease;
 }
-.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready {
+.oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-setup {
        opacity: 1;
 }
 .oo-ui-windowManager-modal > .oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
index 757a965..8894ef7 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.2
+ * OOjs UI v0.13.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-11-10T23:32:59Z
+ * Date: 2015-11-18T01:09:23Z
  */
 /**
  * @class
index 511ec94..2565fb5 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.13.2
+ * OOjs UI v0.13.3
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs UI Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-11-10T23:32:59Z
+ * Date: 2015-11-18T01:09:23Z
  */
 ( function ( OO ) {
 
@@ -350,7 +350,6 @@ OO.ui.infuse = function ( idOrNode ) {
         * Alternative implementations of OO.ui.msg may use any substitution system they like, as long as
         * they support unnamed, ordered message parameters.
         *
-        * @abstract
         * @param {string} key Message key
         * @param {Mixed...} [params] Message parameters
         * @return {string} Translated message with parameters substituted
@@ -2407,7 +2406,6 @@ OO.ui.Window.prototype.getDir = function () {
  * To add window content that persists between openings, you may wish to use the #initialize method
  * instead.
  *
- * @abstract
  * @param {Object} [data] Window opening data
  * @return {OO.ui.Process} Setup process
  */
@@ -2426,7 +2424,6 @@ OO.ui.Window.prototype.getSetupProcess = function () {
  * provides using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next}
  * methods of OO.ui.Process.
  *
- * @abstract
  * @param {Object} [data] Window opening data
  * @return {OO.ui.Process} Ready process
  */
@@ -2445,7 +2442,6 @@ OO.ui.Window.prototype.getReadyProcess = function () {
  * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods
  * of OO.ui.Process.
  *
- * @abstract
  * @param {Object} [data] Window closing data
  * @return {OO.ui.Process} Hold process
  */
@@ -2464,7 +2460,6 @@ OO.ui.Window.prototype.getHoldProcess = function () {
  * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods
  * of OO.ui.Process.
  *
- * @abstract
  * @param {Object} [data] Window closing data
  * @return {OO.ui.Process} Teardown process
  */
@@ -2669,22 +2664,18 @@ OO.ui.Window.prototype.close = function ( data ) {
  * @return {jQuery.Promise} Promise resolved when window is setup
  */
 OO.ui.Window.prototype.setup = function ( data ) {
-       var win = this,
-               deferred = $.Deferred();
+       var win = this;
 
        this.toggle( true );
 
        this.focusTrapHandler = OO.ui.bind( this.onFocusTrapFocused, this );
        this.$focusTraps.on( 'focus', this.focusTrapHandler );
 
-       this.getSetupProcess( data ).execute().done( function () {
+       return this.getSetupProcess( data ).execute().then( function () {
                // Force redraw by asking the browser to measure the elements' widths
                win.$element.addClass( 'oo-ui-window-active oo-ui-window-setup' ).width();
                win.$content.addClass( 'oo-ui-window-content-setup' ).width();
-               deferred.resolve();
        } );
-
-       return deferred.promise();
 };
 
 /**
@@ -2697,18 +2688,14 @@ OO.ui.Window.prototype.setup = function ( data ) {
  * @return {jQuery.Promise} Promise resolved when window is ready
  */
 OO.ui.Window.prototype.ready = function ( data ) {
-       var win = this,
-               deferred = $.Deferred();
+       var win = this;
 
        this.$content.focus();
-       this.getReadyProcess( data ).execute().done( function () {
+       return this.getReadyProcess( data ).execute().then( function () {
                // Force redraw by asking the browser to measure the elements' widths
                win.$element.addClass( 'oo-ui-window-ready' ).width();
                win.$content.addClass( 'oo-ui-window-content-ready' ).width();
-               deferred.resolve();
        } );
-
-       return deferred.promise();
 };
 
 /**
@@ -2721,10 +2708,9 @@ OO.ui.Window.prototype.ready = function ( data ) {
  * @return {jQuery.Promise} Promise resolved when window is held
  */
 OO.ui.Window.prototype.hold = function ( data ) {
-       var win = this,
-               deferred = $.Deferred();
+       var win = this;
 
-       this.getHoldProcess( data ).execute().done( function () {
+       return this.getHoldProcess( data ).execute().then( function () {
                // Get the focused element within the window's content
                var $focus = win.$content.find( OO.ui.Element.static.getDocument( win.$content ).activeElement );
 
@@ -2736,10 +2722,7 @@ OO.ui.Window.prototype.hold = function ( data ) {
                // Force redraw by asking the browser to measure the elements' widths
                win.$element.removeClass( 'oo-ui-window-ready' ).width();
                win.$content.removeClass( 'oo-ui-window-content-ready' ).width();
-               deferred.resolve();
        } );
-
-       return deferred.promise();
 };
 
 /**
@@ -2754,14 +2737,13 @@ OO.ui.Window.prototype.hold = function ( data ) {
 OO.ui.Window.prototype.teardown = function ( data ) {
        var win = this;
 
-       return this.getTeardownProcess( data ).execute()
-               .done( function () {
-                       // Force redraw by asking the browser to measure the elements' widths
-                       win.$element.removeClass( 'oo-ui-window-active oo-ui-window-setup' ).width();
-                       win.$content.removeClass( 'oo-ui-window-content-setup' ).width();
-                       win.$focusTraps.off( 'focus', win.focusTrapHandler );
-                       win.toggle( false );
-               } );
+       return this.getTeardownProcess( data ).execute().then( function () {
+               // Force redraw by asking the browser to measure the elements' widths
+               win.$element.removeClass( 'oo-ui-window-active oo-ui-window-setup' ).width();
+               win.$content.removeClass( 'oo-ui-window-content-setup' ).width();
+               win.$focusTraps.off( 'focus', win.focusTrapHandler );
+               win.toggle( false );
+       } );
 };
 
 /**
@@ -2958,7 +2940,6 @@ OO.ui.Dialog.prototype.getActions = function () {
  * accept steps to the process the parent method provides using the {@link OO.ui.Process#first 'first'}
  * and {@link OO.ui.Process#next 'next'} methods of OO.ui.Process.
  *
- * @abstract
  * @param {string} [action] Symbolic name of action
  * @return {OO.ui.Process} Action process
  */
@@ -3479,8 +3460,18 @@ OO.ui.WindowManager.prototype.openWindow = function ( win, data ) {
                                                        manager.opening = null;
                                                        manager.opened = $.Deferred();
                                                        opening.resolve( manager.opened.promise(), data );
+                                               }, function () {
+                                                       manager.opening = null;
+                                                       manager.opened = $.Deferred();
+                                                       opening.reject();
+                                                       manager.closeWindow( win );
                                                } );
                                        }, manager.getReadyDelay() );
+                               }, function () {
+                                       manager.opening = null;
+                                       manager.opened = $.Deferred();
+                                       opening.reject();
+                                       manager.closeWindow( win );
                                } );
                        }, manager.getSetupDelay() );
                } );
@@ -3531,7 +3522,7 @@ OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {
                // If the window is currently opening, close it when it's done
                this.preparingToClose = $.when( this.opening );
                // Ensure handlers get called after preparingToClose is set
-               this.preparingToClose.done( function () {
+               this.preparingToClose.always( function () {
                        manager.closing = closing;
                        manager.preparingToClose = null;
                        manager.emit( 'closing', win, closing, data );
@@ -4287,6 +4278,132 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
                .addClass( classes.on.join( ' ' ) );
 };
 
+/**
+ * RequestManager is a mixin that manages the lifecycle of a promise-backed request for a widget, such as
+ * the {@link OO.ui.mixin.LookupElement}.
+ *
+ * @class
+ * @abstract
+ *
+ * @constructor
+ */
+OO.ui.mixin.RequestManager = function OoUiMixinRequestManager() {
+       this.requestCache = {};
+       this.requestQuery = null;
+       this.requestRequest = null;
+};
+
+/* Setup */
+
+OO.initClass( OO.ui.mixin.RequestManager );
+
+/**
+ * Get request results for the current query.
+ *
+ * @return {jQuery.Promise} Promise object which will be passed response data as the first argument of
+ *   the done event. If the request was aborted to make way for a subsequent request, this promise
+ *   may not be rejected, depending on what jQuery feels like doing.
+ */
+OO.ui.mixin.RequestManager.prototype.getRequestData = function () {
+       var widget = this,
+               value = this.getRequestQuery(),
+               deferred = $.Deferred(),
+               ourRequest;
+
+       this.abortRequest();
+       if ( Object.prototype.hasOwnProperty.call( this.requestCache, value ) ) {
+               deferred.resolve( this.requestCache[ value ] );
+       } else {
+               if ( this.pushPending ) {
+                       this.pushPending();
+               }
+               this.requestQuery = value;
+               ourRequest = this.requestRequest = this.getRequest();
+               ourRequest
+                       .always( function () {
+                               // We need to pop pending even if this is an old request, otherwise
+                               // the widget will remain pending forever.
+                               // TODO: this assumes that an aborted request will fail or succeed soon after
+                               // being aborted, or at least eventually. It would be nice if we could popPending()
+                               // at abort time, but only if we knew that we hadn't already called popPending()
+                               // for that request.
+                               if ( widget.popPending ) {
+                                       widget.popPending();
+                               }
+                       } )
+                       .done( function ( response ) {
+                               // If this is an old request (and aborting it somehow caused it to still succeed),
+                               // ignore its success completely
+                               if ( ourRequest === widget.requestRequest ) {
+                                       widget.requestQuery = null;
+                                       widget.requestRequest = null;
+                                       widget.requestCache[ value ] = widget.getRequestCacheDataFromResponse( response );
+                                       deferred.resolve( widget.requestCache[ value ] );
+                               }
+                       } )
+                       .fail( function () {
+                               // If this is an old request (or a request failing because it's being aborted),
+                               // ignore its failure completely
+                               if ( ourRequest === widget.requestRequest ) {
+                                       widget.requestQuery = null;
+                                       widget.requestRequest = null;
+                                       deferred.reject();
+                               }
+                       } );
+       }
+       return deferred.promise();
+};
+
+/**
+ * Abort the currently pending request, if any.
+ *
+ * @private
+ */
+OO.ui.mixin.RequestManager.prototype.abortRequest = function () {
+       var oldRequest = this.requestRequest;
+       if ( oldRequest ) {
+               // First unset this.requestRequest to the fail handler will notice
+               // that the request is no longer current
+               this.requestRequest = null;
+               this.requestQuery = null;
+               oldRequest.abort();
+       }
+};
+
+/**
+ * Get the query to be made.
+ *
+ * @protected
+ * @method
+ * @abstract
+ * @return {string} query to be used
+ */
+OO.ui.mixin.RequestManager.prototype.getRequestQuery = null;
+
+/**
+ * Get a new request object of the current query value.
+ *
+ * @protected
+ * @method
+ * @abstract
+ * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
+ */
+OO.ui.mixin.RequestManager.prototype.getRequest = null;
+
+/**
+ * Pre-process data returned by the request from #getRequest.
+ *
+ * The return value of this function will be cached, and any further queries for the given value
+ * will use the cache rather than doing API requests.
+ *
+ * @protected
+ * @method
+ * @abstract
+ * @param {Mixed} response Response from server
+ * @return {Mixed} Cached result data
+ */
+OO.ui.mixin.RequestManager.prototype.getRequestCacheDataFromResponse = null;
+
 /**
  * The TabIndexedElement class is an attribute mixin used to add additional functionality to an
  * element created by another class. The mixin provides a ‘tabIndex’ property, which specifies the
@@ -5915,6 +6032,9 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {
        // Configuration initialization
        config = $.extend( { highlightFirst: true }, config );
 
+       // Mixin constructors
+       OO.ui.mixin.RequestManager.call( this, config );
+
        // Properties
        this.$overlay = config.$overlay || this.$element;
        this.lookupMenu = new OO.ui.FloatingMenuSelectWidget( {
@@ -5925,9 +6045,6 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {
 
        this.allowSuggestionsWhenEmpty = config.allowSuggestionsWhenEmpty || false;
 
-       this.lookupCache = {};
-       this.lookupQuery = null;
-       this.lookupRequest = null;
        this.lookupsDisabled = false;
        this.lookupInputFocused = false;
        this.lookupHighlightFirstItem = config.highlightFirst;
@@ -5950,6 +6067,10 @@ OO.ui.mixin.LookupElement = function OoUiMixinLookupElement( config ) {
        this.$overlay.append( this.lookupMenu.$element );
 };
 
+/* Setup */
+
+OO.mixinClass( OO.ui.mixin.LookupElement, OO.ui.mixin.RequestManager );
+
 /* Methods */
 
 /**
@@ -6138,49 +6259,9 @@ OO.ui.mixin.LookupElement.prototype.initializeLookupMenuSelection = function ()
  *   will not be rejected: it will remain pending forever.
  */
 OO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () {
-       var widget = this,
-               value = this.getValue(),
-               deferred = $.Deferred(),
-               ourRequest;
-
-       this.abortLookupRequest();
-       if ( Object.prototype.hasOwnProperty.call( this.lookupCache, value ) ) {
-               deferred.resolve( this.getLookupMenuOptionsFromData( this.lookupCache[ value ] ) );
-       } else {
-               this.pushPending();
-               this.lookupQuery = value;
-               ourRequest = this.lookupRequest = this.getLookupRequest();
-               ourRequest
-                       .always( function () {
-                               // We need to pop pending even if this is an old request, otherwise
-                               // the widget will remain pending forever.
-                               // TODO: this assumes that an aborted request will fail or succeed soon after
-                               // being aborted, or at least eventually. It would be nice if we could popPending()
-                               // at abort time, but only if we knew that we hadn't already called popPending()
-                               // for that request.
-                               widget.popPending();
-                       } )
-                       .done( function ( response ) {
-                               // If this is an old request (and aborting it somehow caused it to still succeed),
-                               // ignore its success completely
-                               if ( ourRequest === widget.lookupRequest ) {
-                                       widget.lookupQuery = null;
-                                       widget.lookupRequest = null;
-                                       widget.lookupCache[ value ] = widget.getLookupCacheDataFromResponse( response );
-                                       deferred.resolve( widget.getLookupMenuOptionsFromData( widget.lookupCache[ value ] ) );
-                               }
-                       } )
-                       .fail( function () {
-                               // If this is an old request (or a request failing because it's being aborted),
-                               // ignore its failure completely
-                               if ( ourRequest === widget.lookupRequest ) {
-                                       widget.lookupQuery = null;
-                                       widget.lookupRequest = null;
-                                       deferred.reject();
-                               }
-                       } );
-       }
-       return deferred.promise();
+       return this.getRequestData().then( function ( data ) {
+               return this.getLookupMenuOptionsFromData( data );
+       }.bind( this ) );
 };
 
 /**
@@ -6189,27 +6270,18 @@ OO.ui.mixin.LookupElement.prototype.getLookupMenuItems = function () {
  * @private
  */
 OO.ui.mixin.LookupElement.prototype.abortLookupRequest = function () {
-       var oldRequest = this.lookupRequest;
-       if ( oldRequest ) {
-               // First unset this.lookupRequest to the fail handler will notice
-               // that the request is no longer current
-               this.lookupRequest = null;
-               this.lookupQuery = null;
-               oldRequest.abort();
-       }
+       this.abortRequest();
 };
 
 /**
  * Get a new request object of the current lookup query value.
  *
  * @protected
+ * @method
  * @abstract
  * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
  */
-OO.ui.mixin.LookupElement.prototype.getLookupRequest = function () {
-       // Stub, implemented in subclass
-       return null;
-};
+OO.ui.mixin.LookupElement.prototype.getLookupRequest = null;
 
 /**
  * Pre-process data returned by the request from #getLookupRequest.
@@ -6218,28 +6290,24 @@ OO.ui.mixin.LookupElement.prototype.getLookupRequest = function () {
  * will use the cache rather than doing API requests.
  *
  * @protected
+ * @method
  * @abstract
  * @param {Mixed} response Response from server
  * @return {Mixed} Cached result data
  */
-OO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
-       // Stub, implemented in subclass
-       return [];
-};
+OO.ui.mixin.LookupElement.prototype.getLookupCacheDataFromResponse = null;
 
 /**
  * Get a list of menu option widgets from the (possibly cached) data returned by
  * #getLookupCacheDataFromResponse.
  *
  * @protected
+ * @method
  * @abstract
  * @param {Mixed} data Cached result data, usually an array
  * @return {OO.ui.MenuOptionWidget[]} Menu items
  */
-OO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = function () {
-       // Stub, implemented in subclass
-       return [];
-};
+OO.ui.mixin.LookupElement.prototype.getLookupMenuOptionsFromData = null;
 
 /**
  * Set the read-only state of the widget.
@@ -6262,6 +6330,27 @@ OO.ui.mixin.LookupElement.prototype.setReadOnly = function ( readOnly ) {
        return this;
 };
 
+/**
+ * @inheritdoc OO.ui.mixin.RequestManager
+ */
+OO.ui.mixin.LookupElement.prototype.getRequestQuery = function () {
+       return this.getValue();
+};
+
+/**
+ * @inheritdoc OO.ui.mixin.RequestManager
+ */
+OO.ui.mixin.LookupElement.prototype.getRequest = function () {
+       return this.getLookupRequest();
+};
+
+/**
+ * @inheritdoc OO.ui.mixin.RequestManager
+ */
+OO.ui.mixin.LookupElement.prototype.getRequestCacheDataFromResponse = function ( response ) {
+       return this.getLookupCacheDataFromResponse( response );
+};
+
 /**
  * PopupElement is mixed into other classes to generate a {@link OO.ui.PopupWidget popup widget}.
  * A popup is a container for content. It is overlaid and positioned absolutely. By default, each
@@ -6593,7 +6682,8 @@ OO.ui.mixin.TitledElement.prototype.setTitledElement = function ( $titled ) {
  * @chainable
  */
 OO.ui.mixin.TitledElement.prototype.setTitle = function ( title ) {
-       title = typeof title === 'string' ? OO.ui.resolveMsg( title ) : null;
+       title = typeof title === 'function' ? OO.ui.resolveMsg( title ) : title;
+       title = ( typeof title === 'string' && title.length ) ? title : null;
 
        if ( this.title !== title ) {
                if ( this.$titled ) {
@@ -7326,28 +7416,22 @@ OO.ui.Tool.static.isCompatibleWith = function () {
  *
  * This is an abstract method that must be overridden in a concrete subclass.
  *
+ * @method
  * @protected
  * @abstract
  */
-OO.ui.Tool.prototype.onUpdateState = function () {
-       throw new Error(
-               'OO.ui.Tool.onUpdateState not implemented in this subclass:' + this.constructor
-       );
-};
+OO.ui.Tool.prototype.onUpdateState = null;
 
 /**
  * Handle the tool being selected.
  *
  * This is an abstract method that must be overridden in a concrete subclass.
  *
+ * @method
  * @protected
  * @abstract
  */
-OO.ui.Tool.prototype.onSelect = function () {
-       throw new Error(
-               'OO.ui.Tool.onSelect not implemented in this subclass:' + this.constructor
-       );
-};
+OO.ui.Tool.prototype.onSelect = null;
 
 /**
  * Check if the tool is active.
@@ -7451,7 +7535,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *
  * Individual tools are customized and then registered with a {@link OO.ui.ToolFactory tool factory}, which creates
  * the tools on demand. Each tool has a symbolic name (used when registering the tool), a title (e.g., ‘Insert
- * picture’), and an icon.
+ * image’), and an icon.
  *
  * Individual tools are organized in {@link OO.ui.ToolGroup toolgroups}, which can be {@link OO.ui.MenuToolGroup menus}
  * of tools, {@link OO.ui.ListToolGroup lists} of tools, or a single {@link OO.ui.BarToolGroup bar} of tools.
@@ -7473,23 +7557,23 @@ OO.ui.Tool.prototype.destroy = function () {
  *     // Define the tools that we're going to place in our toolbar
  *
  *     // Create a class inheriting from OO.ui.Tool
- *     function PictureTool() {
- *         PictureTool.parent.apply( this, arguments );
+ *     function ImageTool() {
+ *         ImageTool.parent.apply( this, arguments );
  *     }
- *     OO.inheritClass( PictureTool, OO.ui.Tool );
+ *     OO.inheritClass( ImageTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
  *     // of 'icon' and 'title' (displayed icon and text).
- *     PictureTool.static.name = 'picture';
- *     PictureTool.static.icon = 'picture';
- *     PictureTool.static.title = 'Insert picture';
+ *     ImageTool.static.name = 'image';
+ *     ImageTool.static.icon = 'image';
+ *     ImageTool.static.title = 'Insert image';
  *     // Defines the action that will happen when this tool is selected (clicked).
- *     PictureTool.prototype.onSelect = function () {
- *         $area.text( 'Picture tool clicked!' );
+ *     ImageTool.prototype.onSelect = function () {
+ *         $area.text( 'Image tool clicked!' );
  *         // Never display this tool as "active" (selected).
  *         this.setActive( false );
  *     };
  *     // Make this tool available in our toolFactory and thus our toolbar
- *     toolFactory.register( PictureTool );
+ *     toolFactory.register( ImageTool );
  *
  *     // Register two more tools, nothing interesting here
  *     function SettingsTool() {
@@ -7541,7 +7625,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *         {
  *             // 'bar' tool groups display tools' icons only, side-by-side.
  *             type: 'bar',
- *             include: [ 'picture', 'help' ]
+ *             include: [ 'image', 'help' ]
  *         },
  *         {
  *             // 'list' tool groups display both the titles and icons, in a dropdown list.
@@ -7589,28 +7673,28 @@ OO.ui.Tool.prototype.destroy = function () {
  *     // Define the tools that we're going to place in our toolbar
  *
  *     // Create a class inheriting from OO.ui.Tool
- *     function PictureTool() {
- *         PictureTool.parent.apply( this, arguments );
+ *     function ImageTool() {
+ *         ImageTool.parent.apply( this, arguments );
  *     }
- *     OO.inheritClass( PictureTool, OO.ui.Tool );
+ *     OO.inheritClass( ImageTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
  *     // of 'icon' and 'title' (displayed icon and text).
- *     PictureTool.static.name = 'picture';
- *     PictureTool.static.icon = 'picture';
- *     PictureTool.static.title = 'Insert picture';
+ *     ImageTool.static.name = 'image';
+ *     ImageTool.static.icon = 'image';
+ *     ImageTool.static.title = 'Insert image';
  *     // Defines the action that will happen when this tool is selected (clicked).
- *     PictureTool.prototype.onSelect = function () {
- *         $area.text( 'Picture tool clicked!' );
+ *     ImageTool.prototype.onSelect = function () {
+ *         $area.text( 'Image tool clicked!' );
  *         // Never display this tool as "active" (selected).
  *         this.setActive( false );
  *     };
  *     // The toolbar can be synchronized with the state of some external stuff, like a text
  *     // editor's editing area, highlighting the tools (e.g. a 'bold' tool would be shown as active
  *     // when the text cursor was inside bolded text). Here we simply disable this feature.
- *     PictureTool.prototype.onUpdateState = function () {
+ *     ImageTool.prototype.onUpdateState = function () {
  *     };
  *     // Make this tool available in our toolFactory and thus our toolbar
- *     toolFactory.register( PictureTool );
+ *     toolFactory.register( ImageTool );
  *
  *     // Register two more tools, nothing interesting here
  *     function SettingsTool() {
@@ -7676,7 +7760,7 @@ OO.ui.Tool.prototype.destroy = function () {
  *         {
  *             // 'bar' tool groups display tools' icons only, side-by-side.
  *             type: 'bar',
- *             include: [ 'picture', 'help' ]
+ *             include: [ 'image', 'help' ]
  *         },
  *         {
  *             // 'menu' tool groups display both the titles and icons, in a dropdown menu.
@@ -11401,23 +11485,23 @@ OO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement );
  *     // Define the tools that we're going to place in our toolbar
  *
  *     // Create a class inheriting from OO.ui.Tool
- *     function PictureTool() {
- *         PictureTool.parent.apply( this, arguments );
+ *     function ImageTool() {
+ *         ImageTool.parent.apply( this, arguments );
  *     }
- *     OO.inheritClass( PictureTool, OO.ui.Tool );
+ *     OO.inheritClass( ImageTool, OO.ui.Tool );
  *     // Each tool must have a 'name' (used as an internal identifier, see later) and at least one
  *     // of 'icon' and 'title' (displayed icon and text).
- *     PictureTool.static.name = 'picture';
- *     PictureTool.static.icon = 'picture';
- *     PictureTool.static.title = 'Insert picture';
+ *     ImageTool.static.name = 'image';
+ *     ImageTool.static.icon = 'image';
+ *     ImageTool.static.title = 'Insert image';
  *     // Defines the action that will happen when this tool is selected (clicked).
- *     PictureTool.prototype.onSelect = function () {
- *         $area.text( 'Picture tool clicked!' );
+ *     ImageTool.prototype.onSelect = function () {
+ *         $area.text( 'Image tool clicked!' );
  *         // Never display this tool as "active" (selected).
  *         this.setActive( false );
  *     };
  *     // Make this tool available in our toolFactory and thus our toolbar
- *     toolFactory.register( PictureTool );
+ *     toolFactory.register( ImageTool );
  *
  *     // This is a PopupTool. Rather than having a custom 'onSelect' action, it will display a
  *     // little popup window (a PopupWidget).
@@ -11441,7 +11525,7 @@ OO.mixinClass( OO.ui.HorizontalLayout, OO.ui.mixin.GroupElement );
  *         {
  *             // 'bar' tool groups display tools by icon only
  *             type: 'bar',
- *             include: [ 'picture', 'help' ]
+ *             include: [ 'image', 'help' ]
  *         }
  *     ] );
  *
@@ -11762,7 +11846,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
  *             type: 'list',
  *             label: 'ListToolGroup',
  *             indicator: 'down',
- *             icon: 'picture',
+ *             icon: 'image',
  *             title: 'This is the title, displayed when user moves the mouse over the list toolgroup',
  *             header: 'This is the header',
  *             include: [ 'settings', 'stuff' ],
@@ -16125,7 +16209,7 @@ OO.ui.TextInputWidget.prototype.isAutosizing = function () {
  */
 OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) {
        var textRange, isBackwards, start, end,
-               element = this.$input[ 0 ];
+               input = this.$input[ 0 ];
 
        to = to || from;
 
@@ -16135,11 +16219,11 @@ OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) {
 
        this.focus();
 
-       if ( element.setSelectionRange ) {
-               element.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' );
-       } else if ( element.createTextRange ) {
+       if ( input.setSelectionRange ) {
+               input.setSelectionRange( start, end, isBackwards ? 'backward' : 'forward' );
+       } else if ( input.createTextRange ) {
                // IE 8 and below
-               textRange = element.createTextRange();
+               textRange = input.createTextRange();
                textRange.collapse( true );
                textRange.moveStart( 'character', start );
                textRange.moveEnd( 'character', end - start );
@@ -16148,6 +16232,23 @@ OO.ui.TextInputWidget.prototype.selectRange = function ( from, to ) {
        return this;
 };
 
+/**
+ * Get an object describing the current selection range in a directional manner
+ *
+ * @return {Object} Object containing 'from' and 'to' offsets
+ */
+OO.ui.TextInputWidget.prototype.getRange = function () {
+       var input = this.$input[ 0 ],
+               start = input.selectionStart,
+               end = input.selectionEnd,
+               isBackwards = input.selectionDirection === 'backward';
+
+       return {
+               from: isBackwards ? end : start,
+               to: isBackwards ? start : end
+       };
+};
+
 /**
  * Get the length of the text input value.
  *
diff --git a/resources/lib/oojs-ui/themes/apex/icons-media.json b/resources/lib/oojs-ui/themes/apex/icons-media.json
new file mode 100644 (file)
index 0000000..e1ad562
--- /dev/null
@@ -0,0 +1,15 @@
+{
+       "prefix": "oo-ui-icon",
+       "intro": "@import '../../../../src/styles/common';",
+       "images": {
+               "image": { "file": "images/icons/image.svg" },
+               "imageGallery": { "file": {
+                       "ltr": "images/icons/imageGallery-ltr.svg",
+                       "rtl": "images/icons/imageGallery-rtl.svg"
+               } },
+               "photoGallery": { "file": {
+                       "ltr": "images/icons/imageGallery-ltr.svg",
+                       "rtl": "images/icons/imageGallery-rtl.svg"
+               } }
+       }
+}
index 92791d6..829f0c2 100644 (file)
@@ -29,7 +29,7 @@
                        "rtl": "images/icons/move-rtl.svg"
                } },
                "notice": { "file": "images/icons/notice.svg" },
-               "picture": { "file": "images/icons/picture.svg" },
+               "picture": { "file": "images/icons/image.svg" },
                "previous": { "file": {
                        "ltr": "images/icons/move-rtl.svg",
                        "rtl": "images/icons/move-ltr.svg"
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/image.png b/resources/lib/oojs-ui/themes/apex/images/icons/image.png
new file mode 100644 (file)
index 0000000..d680396
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/image.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/image.svg b/resources/lib/oojs-ui/themes/apex/images/icons/image.svg
new file mode 100644 (file)
index 0000000..281ede8
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="image">
+        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
+        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
+        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png
new file mode 100644 (file)
index 0000000..62c5e10
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.svg b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-ltr.svg
new file mode 100644 (file)
index 0000000..c0ccea6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="imageGallery">
+       <path d="M7 8v11h14V8zm13 10H8V9h12zM9 14.945l2.917-2.723 1.94 1.8-1.094.85.73 1.024L16.917 13 19 14.556V17H9zm0-1.167l2.93-3.232 2.538 2.467 2.45-1.568L19 13v-3H9zM19 6v1H6v10H5V6zM3 4h14v1H4v10H3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png
new file mode 100644 (file)
index 0000000..9e688ed
Binary files /dev/null and b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.svg b/resources/lib/oojs-ui/themes/apex/images/icons/imageGallery-rtl.svg
new file mode 100644 (file)
index 0000000..a664aaf
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="imageGallery">
+       <path d="M17 8v11H3V8zM4 18h12V9H4zm11-3.055l-2.917-2.723-1.94 1.8 1.094.85-.73 1.024L7.083 13 5 14.556V17h10zm0-1.167l-2.93-3.232-2.538 2.467-2.45-1.568L5 13v-3h10zM5 6v1h13v10h1V6zm16-2H7v1h13v10h1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/picture.png b/resources/lib/oojs-ui/themes/apex/images/icons/picture.png
deleted file mode 100644 (file)
index d680396..0000000
Binary files a/resources/lib/oojs-ui/themes/apex/images/icons/picture.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg b/resources/lib/oojs-ui/themes/apex/images/icons/picture.svg
deleted file mode 100644 (file)
index 246e130..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="picture">
-        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
-        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
-        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
-    </g>
-</svg>
index 1c6da5a..c7684ec 100644 (file)
                        "ltr": "images/icons/imageLock-ltr.svg",
                        "rtl": "images/icons/imageLock-rtl.svg"
                } },
+               "imageGallery": { "file": {
+                       "ltr": "images/icons/imageGallery-ltr.svg",
+                       "rtl": "images/icons/imageGallery-rtl.svg"
+               } },
                "photoGallery": { "file": {
-                       "ltr": "images/icons/photoGallery-ltr.svg",
-                       "rtl": "images/icons/photoGallery-rtl.svg"
+                       "ltr": "images/icons/imageGallery-ltr.svg",
+                       "rtl": "images/icons/imageGallery-rtl.svg"
                } },
                "play": { "file": {
                        "ltr": "images/icons/play-ltr.svg",
index a79b329..01a4e0d 100644 (file)
@@ -24,7 +24,7 @@
                "add": { "file": "images/icons/add.svg", "variants": [ "constructive" ] },
                "advanced": { "file": "images/icons/advanced.svg" },
                "alert": { "file": "images/icons/alert.svg", "variants": [ "warning" ] },
-               "cancel": { "file": "images/icons/cancel.svg" },
+               "cancel": { "file": "images/icons/cancel.svg", "variants": [ "destructive" ] },
                "check": { "file": "images/icons/check.svg", "variants": [ "constructive", "progressive", "destructive" ] },
                "circle": { "file": "images/icons/circle.svg", "variants": [ "constructive" ] },
                "close": { "file": {
                        "rtl": "images/icons/move-rtl.svg"
                } },
                "notice": { "file": "images/icons/notice.svg" },
-               "picture": { "file": "images/icons/picture.svg" },
+               "picture": { "file": {
+                       "ltr": "images/icons/image-rtl.svg",
+                       "rtl": "images/icons/image-ltr.svg"
+               } },
                "previous": { "file": {
                        "ltr": "images/icons/move-rtl.svg",
                        "rtl": "images/icons/move-ltr.svg"
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png
new file mode 100644 (file)
index 0000000..08385b5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-destructive.svg
new file mode 100644 (file)
index 0000000..3496acf
--- /dev/null
@@ -0,0 +1,6 @@
+<?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: #D11D13 }</style>
+    <g id="cancel">
+        <path id="circle-with-strike" d="M12 5.022c-3.855 0-6.98 3.124-6.98 6.978 0 3.853 3.124 6.978 6.977 6.978s6.978-3.125 6.978-6.978c0-3.854-3.125-6.978-6.98-6.978zM6.885 12c0-1.092.572-3.25.93-2.93l7.113 7.114c.487.525-1.838.93-2.93.93-2.826 0-5.114-2.29-5.114-5.114zm9.298 2.93L9.07 7.815c-.445-.483 1.837-.93 2.93-.93 2.826 0 5.114 2.288 5.114 5.113 0 1.092-.364 3.542-.93 2.93z"/>
+    </g>
+</svg>
index 08bf391..fc724c8 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr-invert.png differ
index 81558e0..9b39350 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
-    <g>
-        <path d="M20 18l-4-4-2 2-4-4-2 1-4 5h16zm2-13v15H2V5h20z"/>
+    <g id="image">
+        <path id="mountains" d="M18 17l-3-3-2 1-3-3-4 5zm2-11v13H4V6z"/>
     </g>
 </svg>
index 58bf564..23c2331 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png differ
index 72ebf10..dfcbd8b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g>
-        <path d="M20 18l-4-4-2 2-4-4-2 1-4 5h16zm2-13v15H2V5h20z"/>
+    <g id="image">
+        <path id="mountains" d="M18 17l-3-3-2 1-3-3-4 5zm2-11v13H4V6z"/>
     </g>
 </svg>
index b5b7fb5..9845260 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl-invert.png differ
index c00d0c4..f962cbf 100644 (file)
@@ -1,6 +1,6 @@
 <?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>
-    <g id="g278">
-        <path d="M4 18l4-4 2 2 4-4 2 1 4 5H4zM2 5v15h20V5H2z" id="path280"/>
+    <g id="image">
+        <path id="mountains" d="M6 17l3-3 2 1 3-3 4 5zM4 6v13h16V6z"/>
     </g>
 </svg>
index 73ee31a..1260378 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png differ
index ca53d9b..2251c0e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="g278">
-        <path d="M4 18l4-4 2 2 4-4 2 1 4 5H4zM2 5v15h20V5H2z" id="path280"/>
+    <g id="image">
+        <path id="mountains" d="M6 17l3-3 2 1 3-3 4 5zM4 6v13h16V6z"/>
     </g>
 </svg>
index e56944a..32b7d1a 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr-invert.png differ
index da2ddaa..cfcf60d 100644 (file)
@@ -1,7 +1,7 @@
 <?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="M17 12V8h-4V5H0v15h20v-8h-3zM2 18l4-5 2-1 4 4 2-2 4 4H2z"/>
-    <g>
-        <path d="M24 5h-4V1h-2v4h-4v2h4v4h2V7h4z"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M16 17l-3-3-2 1-3-3-4 5zm-1-8v4h3v6H2V6h9v3z"/>
+        <path id="add" d="M22 6h-4V2h-2v4h-4v2h4v4h2V8h4z"/>
     </g>
 </svg>
index 7ed8b7e..a071e4e 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png differ
index b775ddf..1b60cf0 100644 (file)
@@ -1,7 +1,7 @@
 <?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="M17 12V8h-4V5H0v15h20v-8h-3zM2 18l4-5 2-1 4 4 2-2 4 4H2z"/>
-    <g>
-        <path d="M24 5h-4V1h-2v4h-4v2h4v4h2V7h4z"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M16 17l-3-3-2 1-3-3-4 5zm-1-8v4h3v6H2V6h9v3z"/>
+        <path id="add" d="M22 6h-4V2h-2v4h-4v2h4v4h2V8h4z"/>
     </g>
 </svg>
index eba653f..bfc5625 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl-invert.png differ
index 7b7beaa..8b20a50 100644 (file)
@@ -1,7 +1,7 @@
 <?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="M7 12V8h4V5h13v15H4v-8h3zm15 6l-4-5-2-1-4 4-2-2-4 4h16z" id="path290"/>
-    <g id="g292">
-        <path d="M0 5h4V1h2v4h4v2H6v4H4V7H0z" id="path294"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M8 17l3-3 2 1 3-3 4 5zm1-8v4H6v6h16V6h-9v3z"/>
+        <path id="add" d="M2 6h4V2h2v4h4v2H8v4H6V8H2z"/>
     </g>
 </svg>
index 74b6ef3..ad22a4e 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png differ
index a7128be..b86d499 100644 (file)
@@ -1,7 +1,7 @@
 <?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="M7 12V8h4V5h13v15H4v-8h3zm15 6l-4-5-2-1-4 4-2-2-4 4h16z" id="path290"/>
-    <g id="g292">
-        <path d="M0 5h4V1h2v4h4v2H6v4H4V7H0z" id="path294"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M8 17l3-3 2 1 3-3 4 5zm1-8v4H6v6h16V6h-9v3z"/>
+        <path id="add" d="M2 6h4V2h2v4h4v2H8v4H6V8H2z"/>
     </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png
new file mode 100644 (file)
index 0000000..6bb8581
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr-invert.svg
new file mode 100644 (file)
index 0000000..c507c20
--- /dev/null
@@ -0,0 +1,6 @@
+<?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>
+    <g id="imageGallery">
+       <path d="M2 4v14h2V6h15V4H2zm3 3v13h16V7H5zm6 6l3 3 2-1 3 3H7l4-5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png
new file mode 100644 (file)
index 0000000..db12fcd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-ltr.svg
new file mode 100644 (file)
index 0000000..95e28d4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="imageGallery">
+       <path d="M2 4v14h2V6h15V4H2zm3 3v13h16V7H5zm6 6l3 3 2-1 3 3H7l4-5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png
new file mode 100644 (file)
index 0000000..964d8b1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl-invert.svg
new file mode 100644 (file)
index 0000000..caa4098
--- /dev/null
@@ -0,0 +1,6 @@
+<?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>
+    <g id="imageGallery">
+       <path d="M21 4v14h-2V6H4V4h17zm-3 3v13H2V7h16zm-6 6l-3 3-2-1-3 3h12l-4-5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png
new file mode 100644 (file)
index 0000000..ca56cc3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageGallery-rtl.svg
new file mode 100644 (file)
index 0000000..be12662
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="imageGallery">
+       <path d="M21 4v14h-2V6H4V4h17zm-3 3v13H2V7h16zm-6 6l-3 3-2-1-3 3h12l-4-5z"/>
+    </g>
+</svg>
index 50e7889..20cda89 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr-invert.png differ
index 10d770a..b14b67d 100644 (file)
@@ -1,4 +1,7 @@
 <?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="M19.5 4h-3V3s0-1.5 1.5-1.5c1.5.06 1.5 1.5 1.5 1.5zM21 4V3s0-3-3-3-3 3-3 3v1h-1v6h8V4zm-8 7V5H2v15h20v-9zm-9 7l4-5 2-1 4 4 2-2 4 4z" id="path304"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M18 17l-3-3-2 1-3-3-4 5zm2-5v7H4V6h8v6z"/>
+        <path id="lock" d="M18.5 5h-3V4s0-1.5 1.5-1.5c1.5.06 1.5 1.5 1.5 1.5zM20 5V4s0-3-3-3-3 3-3 3v1h-1v6h8V5z"/>
+    </g>
 </svg>
index c636a8d..973e363 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png differ
index b41ff43..50a928a 100644 (file)
@@ -1,4 +1,7 @@
 <?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="M19.5 4h-3V3s0-1.5 1.5-1.5c1.5.06 1.5 1.5 1.5 1.5zM21 4V3s0-3-3-3-3 3-3 3v1h-1v6h8V4zm-8 7V5H2v15h20v-9zm-9 7l4-5 2-1 4 4 2-2 4 4z" id="path304"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M18 17l-3-3-2 1-3-3-4 5zm2-5v7H4V6h8v6z"/>
+        <path id="lock" d="M18.5 5h-3V4s0-1.5 1.5-1.5c1.5.06 1.5 1.5 1.5 1.5zM20 5V4s0-3-3-3-3 3-3 3v1h-1v6h8V5z"/>
+    </g>
 </svg>
index 1b1029b..2058be0 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl-invert.png differ
index c821cd1..275dfc2 100644 (file)
@@ -1,4 +1,7 @@
 <?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="M4.5 4h3V3s0-1.5-1.5-1.5C4.5 1.56 4.5 3 4.5 3zM3 4V3s0-3 3-3 3 3 3 3v1h1v6H2V4zm8 7V5h11v15H2v-9zm9 7l-4-5-2-1-4 4-2-2-4 4z" id="path304"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M7 17l3-3 2 1 3-3 4 5zm-2-5v7h16V6h-8v6z"/>
+        <path id="lock" d="M6.5 5h3V4s0-1.5-1.5-1.5C6.5 2.56 6.5 4 6.5 4zM5 5V4s0-3 3-3 3 3 3 3v1h1v6H4V5z"/>
+    </g>
 </svg>
index 59439aa..d160db5 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png differ
index 29004d4..e8ac3ed 100644 (file)
@@ -1,4 +1,7 @@
 <?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="M4.5 4h3V3s0-1.5-1.5-1.5C4.5 1.56 4.5 3 4.5 3zM3 4V3s0-3 3-3 3 3 3 3v1h1v6H2V4zm8 7V5h11v15H2v-9zm9 7l-4-5-2-1-4 4-2-2-4 4z" id="path304"/>
+    <g id="imageAdd">
+        <path id="mountains" d="M7 17l3-3 2 1 3-3 4 5zm-2-5v7h16V6h-8v6z"/>
+        <path id="lock" d="M6.5 5h3V4s0-1.5-1.5-1.5C6.5 2.56 6.5 4 6.5 4zM5 5V4s0-3 3-3 3 3 3 3v1h1v6H4V5z"/>
+    </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png
deleted file mode 100644 (file)
index 2c23c3c..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr-invert.svg
deleted file mode 100644 (file)
index 8647752..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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>
-    <g>
-        <path d="M2 3h18v2H4v12H2V3zm13 13l-4-4-4 5h13l-3-3-2 2zM5 6h17v13H5V6z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png
deleted file mode 100644 (file)
index 38a90e2..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg
deleted file mode 100644 (file)
index 17eee17..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g>
-        <path d="M2 3h18v2H4v12H2V3zm13 13l-4-4-4 5h13l-3-3-2 2zM5 6h17v13H5V6z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png
deleted file mode 100644 (file)
index ea51cad..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl-invert.svg
deleted file mode 100644 (file)
index 283bd5d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?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>
-    <g id="g508">
-        <path d="M22 3H4v2h16v12h2V3zM9 16l4-4 4 5H4l3-3 2 2zM19 6H2v13h17V6z" id="path510"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png
deleted file mode 100644 (file)
index bcb805d..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg
deleted file mode 100644 (file)
index 24a4e12..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="g508">
-        <path d="M22 3H4v2h16v12h2V3zM9 16l4-4 4 5H4l3-3 2 2zM19 6H2v13h17V6z" id="path510"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png
deleted file mode 100644 (file)
index f63756b..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg
deleted file mode 100644 (file)
index a969967..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?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>
-    <g id="picture">
-        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
-        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
-        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png
deleted file mode 100644 (file)
index d680396..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg
deleted file mode 100644 (file)
index 246e130..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="picture">
-        <path id="frame" d="M4 5v13h16v-13zm15 12h-14v-11h14z"/>
-        <path id="mountains" d="M9.5 10l2.328 2.312-1.312 1.094.875 1.032 4.109-3.438 2.5 2v3h-12v-2.5z"/>
-        <path id="sky" d="M9.516 7.844l3.046 3.172 2.938-2.016 2.5 2v-4h-12v5z"/>
-    </g>
-</svg>
index 125b1b3..5cd4a7e 100644 (file)
                                        'class': 'portal',
                                        id: 'p-lang',
                                        role: 'navigation',
-                                       title: mw.msg( 'tooltip-p-lang' ),
                                        'aria-labelledby': 'p-lang-label'
                                } )
                                .append( $( '<h3>' ).attr( 'id', 'p-lang-label' ).text( mw.msg( 'otherlanguages' ) ) )
index 07d9780..75a091c 100644 (file)
@@ -191,6 +191,10 @@ input#wpSummary {
        margin-bottom: 1em;
 }
 
+.mw-input-with-label {
+       white-space: nowrap;
+}
+
 /**
  * Image captions.
  *
index d7daabc..4399f3e 100644 (file)
@@ -92,6 +92,12 @@ table.toc td {
 .tocnumber,
 .toctext {
        display: table-cell;
+       /*
+       Text decorations are not propagated to the contents of inline blocks and inline tables,
+       according to <http://www.w3.org/TR/css-text-decor-3/#line-decoration>, and 'display: table-cell'
+       generates an inline table when used without any parent table-rows and tables.
+       */
+       text-decoration: inherit;
 }
 
 /* Space between the columns for tocnumber and toctext */
index 546fbf8..96f9549 100644 (file)
@@ -11,6 +11,7 @@
         *
         * @class
         * @extends OO.ui.SearchWidget
+        * @mixins OO.ui.mixin.RequestManager
         * @mixins mw.widgets.TitleWidget
         *
         * @constructor
@@ -23,6 +24,7 @@
 
                // Mixin constructors
                mw.widgets.TitleWidget.call( this, config );
+               OO.ui.mixin.RequestManager.call( this, config );
 
                this.query.setValidation( this.isQueryValid.bind( this ) );
 
@@ -46,6 +48,7 @@
        /* Setup */
 
        OO.inheritClass( mw.widgets.TitleSearchWidget, OO.ui.SearchWidget );
+       OO.mixinClass( mw.widgets.TitleSearchWidget, OO.ui.mixin.RequestManager );
        OO.mixinClass( mw.widgets.TitleSearchWidget, mw.widgets.TitleWidget );
 
        /* Methods */
        mw.widgets.TitleSearchWidget.prototype.onQueryChange = function () {
                var widget = this;
 
-               if ( this.currentRequest ) {
-                       this.currentRequest.abort();
-               }
-
-               this.currentRequest = this.getSuggestionsPromise();
-               this.currentRequest.done( function ( response ) {
+               this.getRequestData().done( function ( data ) {
                        // Parent method
                        mw.widgets.TitleSearchWidget.parent.prototype.onQueryChange.call( widget );
-
-                       widget.results.addItems( widget.getOptionsFromData( response.query || {} ) );
-
-                       widget.currentRequest = false;
+                       widget.results.addItems( widget.getOptionsFromData( data ) );
                } );
        };
 
+       /**
+        * @inheritdoc OO.ui.mixin.RequestManager
+        */
+       mw.widgets.TitleSearchWidget.prototype.getRequestQuery = function () {
+               return this.getQueryValue();
+       };
+       /**
+        * @inheritdoc OO.ui.mixin.RequestManager
+        */
+       mw.widgets.TitleSearchWidget.prototype.getRequest = function () {
+               return this.getSuggestionsPromise();
+       };
+       /**
+        * @inheritdoc OO.ui.mixin.RequestManager
+        */
+       mw.widgets.TitleSearchWidget.prototype.getRequestCacheDataFromResponse = function ( response ) {
+               return response.query || {};
+       };
+
 }( jQuery, mediaWiki ) );
index 67f3e01..abe1228 100644 (file)
@@ -23,6 +23,7 @@
         * @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 {boolean} [validateTitle=true] Whether the input must be a valid title
         * @cfg {Object} [cache] Result cache which implements a 'set' method, taking keyed values as an argument
         */
        mw.widgets.TitleWidget = function MwWidgetsTitleWidget( config ) {
@@ -44,6 +45,7 @@
                this.showRedlink = !!config.showRedlink;
                this.showImages = !!config.showImages;
                this.showDescriptions = !!config.showDescriptions;
+               this.validateTitle = config.validateTitle !== undefined ? config.validateTitle : true;
                this.cache = config.cache;
 
                // Initialization
         * @return {boolean} The query is valid
         */
        mw.widgets.TitleWidget.prototype.isQueryValid = function () {
-               return !!this.getTitle();
+               return this.validateTitle ? !!this.getTitle() : true;
        };
 
 }( jQuery, mediaWiki ) );
index 5f82b18..c26dd6a 100644 (file)
                // Keyed by ajax url and symbolic name for the individual request
                promises = {};
 
+       function mapLegacyToken( action ) {
+               // Legacy types for backward-compatibility with API action=tokens.
+               var csrfActions = [
+                       'edit',
+                       'delete',
+                       'protect',
+                       'move',
+                       'block',
+                       'unblock',
+                       'email',
+                       'import',
+                       'options'
+               ];
+               return $.inArray( action, csrfActions ) !== -1 ? 'csrf' : action;
+       }
+
        // Pre-populate with fake ajax promises to save http requests for tokens
        // we already have on the page via the user.tokens module (bug 34733).
        promises[ defaultOptions.ajax.url ] = {};
                /**
                 * Get a token for a certain action from the API.
                 *
-                * The assert parameter is only for internal use by postWithToken.
+                * The assert parameter is only for internal use by #postWithToken.
                 *
-                * @param {string} type Token type
-                * @return {jQuery.Promise}
-                * @return {Function} return.done
-                * @return {string} return.done.token Received token.
                 * @since 1.22
+                * @param {string} type Token type
+                * @return {jQuery.Promise} Received token.
                 */
                getToken: function ( type, assert ) {
-                       var apiPromise,
-                               promiseGroup = promises[ this.defaults.ajax.url ],
-                               d = promiseGroup && promiseGroup[ type + 'Token' ];
+                       var apiPromise, promiseGroup, d;
+                       type = mapLegacyToken( type );
+                       promiseGroup = promises[ this.defaults.ajax.url ];
+                       d = promiseGroup && promiseGroup[ type + 'Token' ];
 
                        if ( !d ) {
-                               apiPromise = this.get( { action: 'tokens', type: type, assert: assert } );
-
+                               apiPromise = this.get( {
+                                       action: 'query',
+                                       meta: 'tokens',
+                                       type: type,
+                                       assert: assert
+                               } );
                                d = apiPromise
-                                       .then( function ( data ) {
-                                               if ( data.tokens && data.tokens[ type + 'token' ] ) {
-                                                       return data.tokens[ type + 'token' ];
+                                       .then( function ( res ) {
+                                               // If token type is unknown, it is omitted from the response
+                                               if ( !res.query.tokens[ type + 'token' ] ) {
+                                                       return $.Deferred().reject( 'token-missing', res );
                                                }
 
-                                               // If token type is not available for this user,
-                                               // key '...token' is either missing or set to boolean false
-                                               return $.Deferred().reject( 'token-missing', data );
+                                               return res.query.tokens[ type + 'token' ];
                                        }, function () {
                                                // Clear promise. Do not cache errors.
                                                delete promiseGroup[ type + 'Token' ];
+
                                                // Pass on to allow the caller to handle the error
                                                return this;
                                        } )
index 910a78f..47250ee 100644 (file)
                        thumbPhpRegex = /thumb\.php/,
                        regexes = [
                                // Thumbnails
-                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
+                               /\/[a-f0-9]\/[a-f0-9]{2}\/([^\s\/]+)\/[^\s\/]+-[^\s\/]*$/,
 
                                // Thumbnails in non-hashed upload directories
                                /\/([^\s\/]+)\/[^\s\/]+-(?:\1|thumbnail)[^\s\/]*$/,
index 4ce2c1a..7401445 100644 (file)
                        // won't help the fact that the file already exists.
                        if ( warnings.stashfailed !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'api-error-stashfailed' ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'api-error-stashfailed' ),
                                        { recoverable: false }
                                );
                        } else if ( warnings.exists !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'fileexists', 'File:' + warnings.exists ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'fileexists', 'File:' + warnings.exists ),
                                        { recoverable: false }
                                );
                        } else if ( warnings[ 'page-exists' ] !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'filepageexists', 'File:' + warnings[ 'page-exists' ] ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'filepageexists', 'File:' + warnings[ 'page-exists' ] ),
                                        { recoverable: false }
                                );
                        } else if ( warnings.duplicate !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'api-error-duplicate', warnings.duplicate.length ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'api-error-duplicate', warnings.duplicate.length ),
                                        { recoverable: false }
                                );
                        } else if ( warnings[ 'thumb-name' ] !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'filename-thumb-name' ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'filename-thumb-name' ),
                                        { recoverable: false }
                                );
                        } else if ( warnings[ 'bad-prefix' ] !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'filename-bad-prefix', warnings[ 'bad-prefix' ] ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'filename-bad-prefix', warnings[ 'bad-prefix' ] ),
                                        { recoverable: false }
                                );
                        } else if ( warnings[ 'duplicate-archive' ] !== undefined ) {
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'api-error-duplicate-archive', 1 ).parse()
-                                       ),
+                                       $( '<p>' ).msg( 'api-error-duplicate-archive', 1 ),
                                        { recoverable: false }
                                );
                        } else if ( warnings.badfilename !== undefined ) {
                                // TODO This might not really be the best place to do this
                                this.filenameWidget.setValue( warnings.badfilename );
                                return new OO.ui.Error(
-                                       $( '<p>' ).html(
-                                               mw.message( 'badfilename', warnings.badfilename ).parse()
-                                       )
+                                       $( '<p>' ).msg( 'badfilename', warnings.badfilename )
                                );
                        } else {
                                return new OO.ui.Error(
index 68818be..ebf0e7d 100644 (file)
                        case 'submitted':
                                dialogConfig = {
                                        title: mw.msg( 'feedback-thanks-title' ),
-                                       message: $( '<span>' ).append(
-                                               mw.message(
-                                                       'feedback-thanks',
-                                                       this.feedbackPageTitle.getNameText(),
-                                                       $( '<a>' )
-                                                               .attr( {
-                                                                       target: '_blank',
-                                                                       href: this.feedbackPageTitle.getUrl()
-                                                               } )
-                                               ).parse()
+                                       message: $( '<span>' ).msg(
+                                               'feedback-thanks',
+                                               this.feedbackPageTitle.getNameText(),
+                                               $( '<a>' ).attr( {
+                                                       target: '_blank',
+                                                       href: this.feedbackPageTitle.getUrl()
+                                               } )
                                        ),
                                        actions: [
                                                {
index 2fe831e..ba2b684 100644 (file)
                return messageFunction( this.key, this.parameters );
        };
 
+       /**
+        * Parse the message to DOM nodes, rather than HTML string like #parse.
+        *
+        * This method is only available when jqueryMsg is loaded.
+        *
+        * @method parseDom
+        * @member mw.Message
+        * @return {jQuery}
+        */
+       mw.Message.prototype.parseDom = ( function () {
+               var reusableParent = $( '<div>' );
+               return function () {
+                       return reusableParent.msg( this.key, this.parameters ).contents().detach();
+               };
+       } )();
+
 }( mediaWiki, jQuery ) );
index 325b20e..f22f4a1 100644 (file)
@@ -13,7 +13,7 @@ abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
                                'modules' => 'startup',
                                'only' => 'scripts',
                                'skin' => 'vector',
-                               'target' => 'test',
+                               'target' => 'phpunit',
                ) );
                $ctx = $this->getMockBuilder( 'ResourceLoaderContext' )
                        ->setConstructorArgs( array( $resourceLoader, $request ) )
@@ -67,7 +67,7 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
        protected $styles = '';
        protected $skipFunction = null;
        protected $isRaw = false;
-       protected $targets = array( 'test' );
+       protected $targets = array( 'phpunit' );
 
        public function __construct( $options = array() ) {
                foreach ( $options as $key => $value ) {
index e28a92c..786e05d 100644 (file)
@@ -10,7 +10,6 @@ class DiffHistoryBlobTest extends MediaWikiTestCase {
 
                if ( !function_exists( 'xdiff_string_rabdiff' ) ) {
                        $this->markTestSkipped( 'The version of xdiff extension is lower than 1.5.0' );
-
                        return;
                }
        }
@@ -28,7 +27,13 @@ class DiffHistoryBlobTest extends MediaWikiTestCase {
                        "Hash of " . addcslashes( $input, "\0..\37!@\@\177..\377" ) );
        }
 
-       public static function provideXdiffAdler32() {
+       public function provideXdiffAdler32() {
+               // Hack non-empty early return since PHPUnit expands this provider before running
+               // the setUp() which marks the test as skipped.
+               if ( !function_exists( 'xdiff_string_rabdiff' ) ) {
+                       return array( array( '', 'Empty string' ) );
+               }
+
                return array(
                        array( '', 'Empty string' ),
                        array( "\0", 'Null' ),
index 6374cfa..e27ba1c 100644 (file)
@@ -256,7 +256,8 @@ class RandomImageGenerator {
                        $shape->addAttribute( 'points', self::shapePointsToString( $drawSpec['shape'] ) );
                }
 
-               if ( !$fh = fopen( $filename, 'w' ) ) {
+               $fh = fopen( $filename, 'w' );
+               if ( !$fh ) {
                        throw new Exception( "couldn't open $filename for writing" );
                }
                fwrite( $fh, $svg->asXML() );
diff --git a/tests/phpunit/includes/api/format/ApiFormatDbgTest.php b/tests/phpunit/includes/api/format/ApiFormatDbgTest.php
deleted file mode 100644 (file)
index addd16a..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-
-/**
- * @group API
- * @covers ApiFormatDbg
- */
-class ApiFormatDbgTest extends ApiFormatTestBase {
-
-       protected $printerName = 'dbg';
-
-       public static function provideGeneralEncoding() {
-               $warning = "\n  'warnings' => \n  array (\n    'dbg' => \n    array (\n" .
-                       "      '*' => 'format=dbg has been deprecated. Please use format=json instead.',\n" .
-                       "    ),\n  ),";
-
-               return array(
-                       // Basic types
-                       array( array( null ), "array ({$warning}\n  0 => NULL,\n)" ),
-                       array( array( true ), "array ({$warning}\n  0 => '',\n)" ),
-                       array( array( false ), "array ({$warning}\n)" ),
-                       array( array( true, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "array ({$warning}\n  0 => true,\n)" ),
-                       array( array( false, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "array ({$warning}\n  0 => false,\n)" ),
-                       array( array( 42 ), "array ({$warning}\n  0 => 42,\n)" ),
-                       array( array( 42.5 ), "array ({$warning}\n  0 => 42.5,\n)" ),
-                       array( array( 1e42 ), "array ({$warning}\n  0 => 1.0E+42,\n)" ),
-                       array( array( 'foo' ), "array ({$warning}\n  0 => 'foo',\n)" ),
-                       array( array( 'fóo' ), "array ({$warning}\n  0 => 'fóo',\n)" ),
-
-                       // Arrays and objects
-                       array(
-                               array( array() ),
-                               "array ({$warning}\n  0 => \n  array (\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 1 ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    0 => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 'x' => 1 ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    'x' => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 2 => 1 ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    2 => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( (object)array() ),
-                               "array ({$warning}\n  0 => \n  array (\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 1, ApiResult::META_TYPE => 'assoc' ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    0 => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 'x' => 1, ApiResult::META_TYPE => 'array' ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    0 => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 'x' => 1, ApiResult::META_TYPE => 'kvp' ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    'x' => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( array(
-                                       'x' => 1,
-                                       ApiResult::META_TYPE => 'BCkvp',
-                                       ApiResult::META_KVP_KEY_NAME => 'key'
-                               ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    0 => \n    " .
-                                       "array (\n      'key' => 'x',\n      '*' => 1,\n    ),\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 'x' => 1, ApiResult::META_TYPE => 'BCarray' ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    'x' => 1,\n  ),\n)"
-                       ),
-                       array(
-                               array( array( 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ) ),
-                               "array ({$warning}\n  0 => \n  array (\n    0 => 'a',\n    1 => 'b',\n  ),\n)"
-                       ),
-
-                       // Content
-                       array( array( 'content' => 'foo', ApiResult::META_CONTENT => 'content' ),
-                               "array ({$warning}\n  '*' => 'foo',\n)" ),
-
-                       // BC Subelements
-                       array( array( 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => array( 'foo' ) ),
-                               "array ({$warning}\n  'foo' => \n  array (\n    '*' => 'foo',\n  ),\n)" ),
-               );
-       }
-
-}
diff --git a/tests/phpunit/includes/api/format/ApiFormatTxtTest.php b/tests/phpunit/includes/api/format/ApiFormatTxtTest.php
deleted file mode 100644 (file)
index c779a3c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-/**
- * @group API
- * @covers ApiFormatTxt
- */
-class ApiFormatTxtTest extends ApiFormatTestBase {
-
-       protected $printerName = 'txt';
-
-       public static function provideGeneralEncoding() {
-               // @codingStandardsIgnoreStart Generic.Files.LineLength
-               $warning = "\n    [warnings] => Array\n        (\n            [txt] => Array\n                (\n" .
-                       "                    [*] => format=txt has been deprecated. Please use format=json instead.\n" .
-                       "                )\n\n        )\n";
-
-               return array(
-                       // Basic types
-                       array( array( null ), "Array\n({$warning}\n    [0] => \n)\n" ),
-                       array( array( true ), "Array\n({$warning}\n    [0] => \n)\n" ),
-                       array( array( false ), "Array\n({$warning}\n)\n" ),
-                       array( array( true, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "Array\n({$warning}\n    [0] => 1\n)\n" ),
-                       array( array( false, ApiResult::META_BC_BOOLS => array( 0 ) ),
-                               "Array\n({$warning}\n    [0] => \n)\n" ),
-                       array( array( 42 ), "Array\n({$warning}\n    [0] => 42\n)\n" ),
-                       array( array( 42.5 ), "Array\n({$warning}\n    [0] => 42.5\n)\n" ),
-                       array( array( 1e42 ), "Array\n({$warning}\n    [0] => 1.0E+42\n)\n" ),
-                       array( array( 'foo' ), "Array\n({$warning}\n    [0] => foo\n)\n" ),
-                       array( array( 'fóo' ), "Array\n({$warning}\n    [0] => fóo\n)\n" ),
-
-                       // Arrays and objects
-                       array( array( array() ), "Array\n({$warning}\n    [0] => Array\n        (\n        )\n\n)\n" ),
-                       array( array( array( 1 ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [0] => 1\n        )\n\n)\n" ),
-                       array( array( array( 'x' => 1 ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [x] => 1\n        )\n\n)\n" ),
-                       array( array( array( 2 => 1 ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [2] => 1\n        )\n\n)\n" ),
-                       array( array( (object)array() ), "Array\n({$warning}\n    [0] => Array\n        (\n        )\n\n)\n" ),
-                       array( array( array( 1, ApiResult::META_TYPE => 'assoc' ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [0] => 1\n        )\n\n)\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'array' ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [0] => 1\n        )\n\n)\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'kvp' ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [x] => 1\n        )\n\n)\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCkvp', ApiResult::META_KVP_KEY_NAME => 'key' ) ),
-                               "Array\n({$warning}\n    [0] => Array\n        (\n            [0] => Array\n                (\n                    [key] => x\n                    [*] => 1\n                )\n\n        )\n\n)\n" ),
-                       array( array( array( 'x' => 1, ApiResult::META_TYPE => 'BCarray' ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [x] => 1\n        )\n\n)\n" ),
-                       array( array( array( 'a', 'b', ApiResult::META_TYPE => 'BCassoc' ) ), "Array\n({$warning}\n    [0] => Array\n        (\n            [0] => a\n            [1] => b\n        )\n\n)\n" ),
-
-                       // Content
-                       array( array( 'content' => 'foo', ApiResult::META_CONTENT => 'content' ),
-                               "Array\n({$warning}\n    [*] => foo\n)\n" ),
-
-                       // BC Subelements
-                       array( array( 'foo' => 'foo', ApiResult::META_BC_SUBELEMENTS => array( 'foo' ) ),
-                               "Array\n({$warning}\n    [foo] => Array\n        (\n            [*] => foo\n        )\n\n)\n" ),
-               );
-               // @codingStandardsIgnoreEnd
-       }
-
-}
index 0db7af9..c742f74 100644 (file)
@@ -100,7 +100,8 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
 
                $this->assertTrue( $re !== false, 'query failed' );
 
-               if ( $row = $re->fetchRow() ) {
+               $row = $re->fetchRow();
+               if ( $row ) {
                        if ( $value instanceof Blob ) {
                                $value = $value->fetch();
                        }
index cb2d7db..519d3a0 100644 (file)
@@ -146,4 +146,64 @@ class LBFactoryTest extends MediaWikiTestCase {
                $factory->shutdown();
                $lb->closeAll();
        }
+
+       public function testChronologyProtector() {
+               // (a) First HTTP request
+               $mPos = new MySQLMasterPos( 'db1034-bin.000976', '843431247' );
+
+               $mockDB = $this->getMockBuilder( 'DatabaseMysql' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $mockDB->expects( $this->any() )
+                       ->method( 'doneWrites' )->will( $this->returnValue( true ) );
+               $mockDB->expects( $this->any() )
+                       ->method( 'getMasterPos' )->will( $this->returnValue( $mPos ) );
+
+               $lb = $this->getMockBuilder( 'LoadBalancer' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $lb->expects( $this->any() )
+                       ->method( 'getConnection' )->will( $this->returnValue( $mockDB ) );
+               $lb->expects( $this->any() )
+                       ->method( 'getServerCount' )->will( $this->returnValue( 2 ) );
+               $lb->expects( $this->any() )
+                       ->method( 'parentInfo' )->will( $this->returnValue( array( 'id' => "main-DEFAULT" ) ) );
+               $lb->expects( $this->any() )
+                       ->method( 'getAnyOpenConnection' )->will( $this->returnValue( $mockDB ) );
+
+               $bag = new HashBagOStuff();
+               $cp = new ChronologyProtector(
+                       $bag,
+                       array(
+                               'ip' => '127.0.0.1',
+                               'agent' => "Totally-Not-FireFox"
+                       )
+               );
+
+               $mockDB->expects( $this->exactly( 2 ) )->method( 'doneWrites' );
+
+               // Nothing to wait for
+               $cp->initLB( $lb );
+               // Record in stash
+               $cp->shutdownLB( $lb );
+               $cp->shutdown();
+
+               // (b) Second HTTP request
+               $cp = new ChronologyProtector(
+                       $bag,
+                       array(
+                               'ip' => '127.0.0.1',
+                               'agent' => "Totally-Not-FireFox"
+                       )
+               );
+
+               $lb->expects( $this->once() )
+                       ->method( 'waitFor' )->with( $this->equalTo( $mPos ) );
+
+               // Wait
+               $cp->initLB( $lb );
+               // Record in stash
+               $cp->shutdownLB( $lb );
+               $cp->shutdown();
+       }
 }
index a1fdd91..b301f28 100644 (file)
@@ -26,7 +26,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
        }
 
        /**
-        * @dataProvider provider_testSetAndGet
+        * @dataProvider provideSetAndGet
         * @covers WANObjectCache::set()
         * @covers WANObjectCache::get()
         * @param mixed $value
@@ -46,7 +46,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                }
        }
 
-       public static function provider_testSetAndGet() {
+       public static function provideSetAndGet() {
                return array(
                        array( 14141, 3 ),
                        array( 3535.666, 3 ),
@@ -60,6 +60,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @covers WANObjectCache::get()
+        */
        public function testGetNotExists() {
                $key = wfRandomString();
                $curTTL = null;
@@ -69,6 +72,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertNull( $curTTL, "Non-existing key has null current TTL" );
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testSetOver() {
                $key = wfRandomString();
                for ( $i = 0; $i < 3; ++$i ) {
@@ -79,6 +85,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                }
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testStaleSet() {
                $key = wfRandomString();
                $value = wfRandomString();
@@ -89,6 +98,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
        /**
         * @covers WANObjectCache::getWithSetCallback()
+        * @covers WANObjectCache::doGetWithSetCallback()
         */
        public function testGetWithSetCallback() {
                $cache = $this->cache;
@@ -163,6 +173,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
        /**
         * @covers WANObjectCache::getWithSetCallback()
+        * @covers WANObjectCache::doGetWithSetCallback()
         */
        public function testLockTSE() {
                $cache = $this->cache;
@@ -188,6 +199,7 @@ class WANObjectCacheTest extends MediaWikiTestCase {
 
        /**
         * @covers WANObjectCache::getWithSetCallback()
+        * @covers WANObjectCache::doGetWithSetCallback()
         */
        public function testLockTSESlow() {
                $cache = $this->cache;
@@ -279,6 +291,85 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertLessThan( 0, $curTTLs[$key2], 'Key 2 has negative current TTL' );
        }
 
+       /**
+        * @covers WANObjectCache::getMulti()
+        * @covers WANObjectCache::processCheckKeys()
+        */
+       public function testGetMultiCheckKeys() {
+               $cache = $this->cache;
+
+               $checkAll = wfRandomString();
+               $check1 = wfRandomString();
+               $check2 = wfRandomString();
+               $check3 = wfRandomString();
+               $value1 = wfRandomString();
+               $value2 = wfRandomString();
+
+               // Fake initial check key to be set in the past. Otherwise we'd have to sleep for
+               // several seconds during the test to assert the behaviour.
+               foreach ( array( $checkAll, $check1, $check2 ) as $checkKey ) {
+                       $this->internalCache->set( $cache::TIME_KEY_PREFIX . $checkKey,
+                               $cache::PURGE_VAL_PREFIX . microtime( true ) - $cache::HOLDOFF_TTL, $cache::CHECK_KEY_TTL );
+               }
+
+               $cache->set( 'key1', $value1, 10 );
+               $cache->set( 'key2', $value2, 10 );
+
+               $curTTLs = array();
+               $result = $cache->getMulti( array( 'key1', 'key2', 'key3' ), $curTTLs, array(
+                       'key1' => $check1,
+                       $checkAll,
+                       'key2' => $check2,
+                       'key3' => $check3,
+               ) );
+               $this->assertEquals(
+                       array( 'key1' => $value1, 'key2' => $value2 ),
+                       $result,
+                       'Initial values'
+               );
+               $this->assertEquals(
+                       array( 'key1' => 0, 'key2' => 0 ),
+                       $curTTLs,
+                       'Initial ttls'
+               );
+
+               $cache->touchCheckKey( $check1 );
+               usleep( 100 );
+
+               $curTTLs = array();
+               $result = $cache->getMulti( array( 'key1', 'key2', 'key3' ), $curTTLs, array(
+                       'key1' => $check1,
+                       $checkAll,
+                       'key2' => $check2,
+                       'key3' => $check3,
+               ) );
+               $this->assertEquals(
+                       array( 'key1' => $value1, 'key2' => $value2 ),
+                       $result,
+                       'key1 expired by check1, but value still provided'
+               );
+               $this->assertLessThan( 0, $curTTLs['key1'], 'key1 TTL expired' );
+               $this->assertEquals( 0, $curTTLs['key2'], 'key2 still valid' );
+
+               $cache->touchCheckKey( $checkAll );
+               usleep( 100 );
+
+               $curTTLs = array();
+               $result = $cache->getMulti( array( 'key1', 'key2', 'key3' ), $curTTLs, array(
+                       'key1' => $check1,
+                       $checkAll,
+                       'key2' => $check2,
+                       'key3' => $check3,
+               ) );
+               $this->assertEquals(
+                       array( 'key1' => $value1, 'key2' => $value2 ),
+                       $result,
+                       'All keys expired by checkAll, but value still provided'
+               );
+               $this->assertLessThan( 0, $curTTLs['key1'], 'key1 expired by checkAll' );
+               $this->assertLessThan( 0, $curTTLs['key2'], 'key2 expired by checkAll' );
+       }
+
        /**
         * @covers WANObjectCache::delete()
         */
@@ -343,6 +434,40 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertEquals( $t5, $t6, 'Check key time did not change' );
        }
 
+       /**
+        * @covers WANObjectCache::getMulti()
+        */
+       public function testGetWithSeveralCheckKeys() {
+               $key = wfRandomString();
+               $tKey1 = wfRandomString();
+               $tKey2 = wfRandomString();
+               $value = 'meow';
+
+               // Two check keys are newer (given hold-off) than $key, another is older
+               $this->internalCache->set(
+                       WANObjectCache::TIME_KEY_PREFIX . $tKey2,
+                       WANObjectCache::PURGE_VAL_PREFIX . ( microtime( true ) - 3 )
+               );
+               $this->internalCache->set(
+                       WANObjectCache::TIME_KEY_PREFIX . $tKey2,
+                       WANObjectCache::PURGE_VAL_PREFIX . ( microtime( true ) - 5 )
+               );
+               $this->internalCache->set(
+                       WANObjectCache::TIME_KEY_PREFIX . $tKey1,
+                       WANObjectCache::PURGE_VAL_PREFIX . ( microtime( true ) - 30 )
+               );
+               $this->cache->set( $key, $value, 30 );
+
+               $curTTL = null;
+               $v = $this->cache->get( $key, $curTTL, array( $tKey1, $tKey2 ) );
+               $this->assertEquals( $value, $v, "Value matches" );
+               $this->assertLessThan( -5, $curTTL, "Correct CTL" );
+               $this->assertGreaterThan( -5.1, $curTTL, "Correct CTL" );
+       }
+
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testSetWithLag() {
                $value = 1;
 
@@ -362,6 +487,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertEquals( false, $this->cache->get( $key ), "Lagged value not written." );
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testWritePending() {
                $value = 1;
 
index ff4a527..f7c428a 100644 (file)
@@ -640,11 +640,12 @@ class NewParserTest extends MediaWikiTestCase {
                        $backend->delete( array( 'src' => $file ), array( 'force' => 1 ) );
                }
                foreach ( $files as $file ) {
-                       $tmp = $file;
-                       while ( $tmp = FileBackend::parentStoragePath( $tmp ) ) {
+                       $tmp = FileBackend::parentStoragePath( $file );
+                       while ( $tmp ) {
                                if ( !$backend->clean( array( 'dir' => $tmp ) )->isOK() ) {
                                        break;
                                }
+                               $tmp = FileBackend::parentStoragePath( $tmp );
                        }
                }
        }
index 0d11f62..24ea4b2 100644 (file)
@@ -25,7 +25,7 @@ class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
                $this->assertEquals( $derived->getModules(), array( 'test.context' ) );
                $this->assertEquals( $derived->getOnly(), 'scripts' );
                $this->assertEquals( $derived->getSkin(), 'fallback' );
-               $this->assertEquals( $derived->getHash(), 'zh|ltr|fallback||||||scripts|' );
+               $this->assertEquals( $derived->getHash(), 'zh|fallback|||scripts|||||' );
        }
 
        public function testSetLanguage() {
@@ -72,7 +72,7 @@ class DerivativeResourceLoaderContextTest extends PHPUnit_Framework_TestCase {
 
                $derived->setLanguage( 'nl' );
                // Assert that subclass is able to clear parent class "hash" member
-               $this->assertEquals( $derived->getHash(), 'nl|ltr|fallback||||||scripts|' );
+               $this->assertEquals( $derived->getHash(), 'nl|fallback|||scripts|||||' );
        }
 
 }
index 9d97b28..a6d1d05 100644 (file)
@@ -21,7 +21,7 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
 
        private static function getModules() {
                $base = array(
-                       'localBasePath' => realpath( dirname( __FILE__ ) ),
+                       'localBasePath' => realpath( __DIR__ ),
                );
 
                return array(
index cb91614..c552b80 100644 (file)
@@ -2,6 +2,17 @@
 
 class ResourceLoaderStartUpModuleTest extends ResourceLoaderTestCase {
 
+       // Version hash for a blank file module.
+       // Result of ResourceLoader::makeHash(), ResourceLoaderTestModule
+       // and ResourceLoaderFileModule::getDefinitionSummary().
+       protected static $blankVersion = 'wvTifjse';
+
+       protected static function expandPlaceholders( $text ) {
+               return strtr( $text, array(
+                       '{blankVer}' => self::$blankVersion
+               ) );
+       }
+
        public static function provideGetModuleRegistrations() {
                return array(
                        array( array(
@@ -25,7 +36,7 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ]
 ] );',
                        ) ),
@@ -43,17 +54,17 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.group.foo",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-foo"
     ],
     [
         "test.group.bar",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-bar"
     ]
@@ -72,7 +83,7 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ]
 ] );'
                        ) ),
@@ -95,7 +106,7 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse",
+        "{blankVer}",
         [],
         null,
         "example"
@@ -132,11 +143,11 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.x.core",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.x.polyfill",
-        "wvTifjse",
+        "{blankVer}",
         [],
         null,
         null,
@@ -144,7 +155,7 @@ mw.loader.register( [
     ],
     [
         "test.y.polyfill",
-        "wvTifjse",
+        "{blankVer}",
         [],
         null,
         null,
@@ -152,7 +163,7 @@ mw.loader.register( [
     ],
     [
         "test.z.foo",
-        "wvTifjse",
+        "{blankVer}",
         [
             0,
             1,
@@ -229,36 +240,36 @@ mw.loader.addSource( {
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.x.core",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.x.util",
-        "wvTifjse",
+        "{blankVer}",
         [
             1
         ]
     ],
     [
         "test.x.foo",
-        "wvTifjse",
+        "{blankVer}",
         [
             1
         ]
     ],
     [
         "test.x.bar",
-        "wvTifjse",
+        "{blankVer}",
         [
             2
         ]
     ],
     [
         "test.x.quux",
-        "wvTifjse",
+        "{blankVer}",
         [
             3,
             4,
@@ -267,25 +278,25 @@ mw.loader.register( [
     ],
     [
         "test.group.foo.1",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-foo"
     ],
     [
         "test.group.foo.2",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-foo"
     ],
     [
         "test.group.bar.1",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-bar"
     ],
     [
         "test.group.bar.2",
-        "wvTifjse",
+        "{blankVer}",
         [],
         "x-bar",
         "example"
@@ -309,12 +320,12 @@ mw.loader.register( [
 
                $context = $this->getResourceLoaderContext();
                $rl = $context->getResourceLoader();
-
                $rl->register( $case['modules'] );
-
                $module = new ResourceLoaderStartUpModule();
+               $out = ltrim( $case['out'], "\n" );
+
                $this->assertEquals(
-                       ltrim( $case['out'], "\n" ),
+                       self::expandPlaceholders( $out ),
                        $module->getModuleRegistrations( $context ),
                        $case['msg']
                );
@@ -348,13 +359,15 @@ mw.loader.register( [
                $rl = $context->getResourceLoader();
                $rl->register( $modules );
                $module = new ResourceLoaderStartUpModule();
+               $out = 'mw.loader.addSource({"local":"/w/load.php"});' . "\n"
+               . 'mw.loader.register(['
+               . '["test.blank","{blankVer}"],'
+               . '["test.min","{blankVer}",[0],null,null,'
+               . '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
+               . ']]);';
+
                $this->assertEquals(
-'mw.loader.addSource({"local":"/w/load.php"});' . "\n"
-. 'mw.loader.register(['
-. '["test.blank","wvTifjse"],'
-. '["test.min","wvTifjse",[0],null,null,'
-. '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
-. ']]);',
+                       self::expandPlaceholders( $out ),
                        $module->getModuleRegistrations( $context ),
                        'Minified output'
                );
@@ -368,18 +381,18 @@ mw.loader.register( [
                $rl = $context->getResourceLoader();
                $rl->register( $modules );
                $module = new ResourceLoaderStartUpModule();
-               $this->assertEquals(
+               $out =
 'mw.loader.addSource( {
     "local": "/w/load.php"
 } );
 mw.loader.register( [
     [
         "test.blank",
-        "wvTifjse"
+        "{blankVer}"
     ],
     [
         "test.min",
-        "wvTifjse",
+        "{blankVer}",
         [
             0
         ],
@@ -387,7 +400,10 @@ mw.loader.register( [
         null,
         "return !!(    window.JSON \u0026\u0026    JSON.parse \u0026\u0026    JSON.stringify);"
     ]
-] );',
+] );';
+
+               $this->assertEquals(
+                       self::expandPlaceholders( $out ),
                        $module->getModuleRegistrations( $context ),
                        'Unminified output'
                );
index c0a6585..a0cfba9 100644 (file)
@@ -27,9 +27,9 @@
                // until after the server.respond call, which confuses sinon terribly. This sucks a lot.
                api.getToken( 'options' );
                this.server.respond(
-                       /action=tokens.*&type=options/,
+                       /meta=tokens&type=csrf/,
                        [ 200, { 'Content-Type': 'application/json' },
-                               '{ "tokens": { "optionstoken": "+\\\\" } }' ]
+                               '{ "query": { "tokens": { "csrftoken": "+\\\\" } } }' ]
                );
 
                api.saveOptions( {} ).done( function () {
@@ -71,7 +71,7 @@
                                                '{ "options": "success" }' );
                                        break;
                                default:
-                                       assert.ok( false, 'Unexpected request:' + request.requestBody );
+                                       assert.ok( false, 'Unexpected request: ' + request.requestBody );
                        }
                } );
        } );
index 56a346f..a34a5af 100644 (file)
                var api = new mw.Api();
 
                this.server.respondWith( /type=testuncached/, [ 200, { 'Content-Type': 'application/json' },
-                       '{ "tokens": { "testuncachedtoken": "good" } }'
+                       '{ "query": { "tokens": { "testuncachedtoken": "good" } } }'
                ] );
 
                // Get a token of a type that isn't prepopulated by user.tokens.
                this.server.respondWith( /type=testerror/, sequenceBodies( 200, { 'Content-Type': 'application/json' },
                        [
                                '{ "error": { "code": "bite-me", "info": "Smite me, O Mighty Smiter" } }',
-                               '{ "tokens": { "testerrortoken": "good" } }'
+                               '{ "query": { "tokens": { "testerrortoken": "good" } } }'
                        ]
                ) );
 
                } );
        } );
 
+       QUnit.test( 'getToken() - deprecated', function ( assert ) {
+               QUnit.expect( 2 );
+               // Cache API endpoint from default to avoid cachehit in mw.user.tokens
+               var api = new mw.Api( { ajax: { url: '/postWithToken/api.php' } } );
+
+               this.server.respondWith( /type=csrf/, [ 200, { 'Content-Type': 'application/json' },
+                       '{ "query": { "tokens": { "csrftoken": "csrfgood" } } }'
+               ] );
+
+               // Get a token of a type that is in the legacy map.
+               api.getToken( 'email' )
+                       .done( function ( token ) {
+                               assert.equal( token, 'csrfgood', 'Token' );
+                       } )
+                       .fail( function ( err ) {
+                               assert.equal( err, '', 'API error' );
+                       } );
+
+               assert.equal( this.server.requests.length, 1, 'Requests made' );
+       } );
+
        QUnit.test( 'badToken()', function ( assert ) {
                QUnit.expect( 2 );
                var api = new mw.Api(),
 
                this.server.respondWith( /type=testbad/, sequenceBodies( 200, { 'Content-Type': 'application/json' },
                        [
-                               '{ "tokens": { "testbadtoken": "bad" } }',
-                               '{ "tokens": { "testbadtoken": "good" } }'
+                               '{ "query": { "tokens": { "testbadtoken": "bad" } } }',
+                               '{ "query": { "tokens": { "testbadtoken": "good" } } }'
                        ]
                ) );
 
                var api = new mw.Api( { ajax: { url: '/postWithToken/api.php' } } );
 
                this.server.respondWith( 'GET', /type=testpost/, [ 200, { 'Content-Type': 'application/json' },
-                       '{ "tokens": { "testposttoken": "good" } }'
+                       '{ "query": { "tokens": { "testposttoken": "good" } } }'
                ] );
                this.server.respondWith( 'POST', /api/, function ( request ) {
                        if ( request.requestBody.match( /token=good/ ) ) {
 
                this.server.respondWith( /type=testbadtoken/, sequenceBodies( 200, { 'Content-Type': 'application/json' },
                        [
-                               '{ "tokens": { "testbadtokentoken": "bad" } }',
-                               '{ "tokens": { "testbadtokentoken": "good" } }'
+                               '{ "query": { "tokens": { "testbadtokentoken": "bad" } } }',
+                               '{ "query": { "tokens": { "testbadtokentoken": "good" } } }'
                        ]
                ) );
                this.server.respondWith( 'POST', /api/, function ( request ) {
 
                this.server.respondWith( /type=testonce/, sequenceBodies( 200, { 'Content-Type': 'application/json' },
                        [
-                               '{ "tokens": { "testoncetoken": "good-A" } }',
-                               '{ "tokens": { "testoncetoken": "good-B" } }'
+                               '{ "query": { "tokens": { "testoncetoken": "good-A" } } }',
+                               '{ "query": { "tokens": { "testoncetoken": "good-B" } } }'
                        ]
                ) );
                sequenceA = sequenceBodies( 200, { 'Content-Type': 'application/json' },
index 641a5a5..4bcb12e 100644 (file)
                assert.equal( title.getUrl(), '/wiki/User_talk:John_Doe', 'Escaping in title and namespace for urls' );
        } );
 
-       QUnit.test( 'newFromImg', 40, function ( assert ) {
+       QUnit.test( 'newFromImg', 44, function ( assert ) {
                var title, i, thisCase, prefix,
                        cases = [
                                {
                                        nameText: 'Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V)',
                                        prefixedText: 'File:Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V).jpg'
                                },
+
+                               {
+                                       url: '//upload.wikimedia.org/wikipedia/commons/thumb/b/bf/Princess_Alexandra_of_Denmark_%28later_Queen_Alexandra%2C_wife_of_Edward_VII%29_with_her_two_eldest_sons%2C_Prince_Albert_Victor_%28Eddy%29_and_George_Frederick_Ernest_Albert_%28later_George_V%29.jpg/939px-ki708pr1r6g2dl5lbhvwdqxenhait13.jpg',
+                                       typeOfUrl: 'Hashed thumb with sha1-ed path',
+                                       nameText: 'Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V)',
+                                       prefixedText: 'File:Princess Alexandra of Denmark (later Queen Alexandra, wife of Edward VII) with her two eldest sons, Prince Albert Victor (Eddy) and George Frederick Ernest Albert (later George V).jpg'
+                               },
+
                                {
                                        url: '/wiki/images/thumb/9/91/Anticlockwise_heliotrope%27s.jpg/99px-Anticlockwise_heliotrope%27s.jpg',
                                        typeOfUrl: 'Normal hashed directory thumbnail',
index 5ea7a81..d3c4748 100644 (file)
                        'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; Media Center PC 4.0; SLCC1; .NET CLR 3.0.04320)',
                        'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 7.1; Trident/5.0)',
                        'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',
+                       'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
                        // IE Mobile
                        'Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Lumia 800)',
+                       // Edge
+                       'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246',
+                       // Edge Mobile
+                       'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 640 XL LTE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.10166',
                        // BlackBerry 6+
                        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; en) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.570 Mobile Safari/534.8+',
                        'Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+',