Merge "Implement HTMLComboboxField"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 24 Nov 2015 19:20:07 +0000 (19:20 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 24 Nov 2015 19:20:07 +0000 (19:20 +0000)
336 files changed:
RELEASE-NOTES-1.26
RELEASE-NOTES-1.27
api.php
autoload.php
composer.json
docs/hooks.txt
includes/DefaultSettings.php
includes/Linker.php
includes/MWTimestamp.php
includes/MediaWiki.php
includes/OutputPage.php
includes/PHPVersionCheck.php
includes/PHPVersionError.php
includes/PrefixSearch.php
includes/Revision.php
includes/Sanitizer.php
includes/Setup.php
includes/User.php
includes/WatchedItem.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/ApiQueryBase.php
includes/api/i18n/br.json
includes/api/i18n/cs.json
includes/api/i18n/de.json
includes/api/i18n/diq.json [new file with mode: 0644]
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/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/uk.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/filebackend/lockmanager/DBLockManager.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/DatabaseUpdater.php
includes/installer/PostgresUpdater.php
includes/installer/i18n/ast.json
includes/installer/i18n/azb.json
includes/installer/i18n/cy.json
includes/installer/i18n/eu.json
includes/installer/i18n/frc.json
includes/installer/i18n/lb.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/ObjectFactory.php
includes/libs/objectcache/WANObjectCache.php
includes/logging/ImportLogFormatter.php [new file with mode: 0644]
includes/logging/LogEventsList.php
includes/mime.types
includes/page/WikiPage.php
includes/parser/LinkHolderArray.php
includes/password/MWSaltedPassword.php
includes/password/UserPasswordPolicy.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderContext.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/resourceloader/ResourceLoaderUserTokensModule.php
includes/specials/SpecialContributions.php
includes/specials/SpecialImport.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialSearch.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialWatchlist.php
includes/title/MediaWikiTitleCodec.php
includes/utils/FileContentsHasher.php
includes/widget/TitleInputWidget.php
index.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ceb.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/khw.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/or.json
languages/i18n/pam.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/sk.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/tl.json
languages/i18n/tr.json
languages/i18n/tt-latn.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/vec.json
languages/i18n/vi.json
languages/i18n/war.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/cdb.php
maintenance/findHooks.php
maintenance/fixDefaultJsonContentPages.php [new file with mode: 0644]
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.CategoryCapsuleItemWidget.js
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
resources/src/mediawiki/mediawiki.js
tests/phpunit/ResourceLoaderTestCase.php
tests/phpunit/includes/BlockTest.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/ObjectFactoryTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/logging/ImportLogFormatterTest.php [new file with mode: 0644]
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/resourceloader/DerivativeResourceLoaderContextTest.php
tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php [new file with mode: 0644]
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/mediawiki/mediawiki.jqueryMsg.test.js

index 53d9188..ac2f947 100644 (file)
@@ -27,8 +27,8 @@ production.
   MediaWiki 1.26, in where ResourceLoader became fully asynchronous.
 * $wgMasterWaitTimeout was removed (deprecated in 1.24).
 * Fields in ParserOptions are now private. Use the accessors instead.
-* Custom LESS functions (defined via $wgResourceLoaderLESSFunctions)
-  have been removed, after being deprecated in 1.24.
+* Custom LESS functions (defined via $wgResourceLoaderLESSFunctions or
+  in extension.json) have been removed, after being deprecated in 1.24.
 * $wgAlwaysUseTidy has been removed.
 * ResetSessionID hook has been removed. Nothing seems to use it.
 * Certain AuthPlugin methods are deprecated in favor of new hooks:
@@ -44,7 +44,6 @@ production.
 * $wgBlockAllowsUTEdit is now set to true by default. This allows
   blocked users to edit their talk pages unless explicitly disabled
   when they are being blocked.
-* CLDRPluralRule* classes have been replaced with wikimedia/cldr-plural-rule-parser.
 
 === New features in 1.26 ===
 * (T51506) Now action=info gives estimates of actual watchers for a page.
@@ -74,9 +73,6 @@ production.
 * Caches that need purging ability now use the WANObjectCache interface.
   This corresponds to a new $wgMainWANCache setting, which defaults to using
   the $wgMainCacheType settings.
-* Added MWTimestamp::getTimezoneString() which returns the localized timezone
-  string, if available. To localize this string, see the comments of
-  $wgLocaltimezone in includes/DefaultSettings.php.
 * Callers needing fast light-weight data stores use $wgMainStash to select
   the store type from $wgObjectCaches. The default is the local database.
 * Interface message overrides in the MediaWiki namespace will now be cached in
@@ -101,29 +97,47 @@ production.
   documentation for mw.Upload.Dialog, mw.Upload.BookletLayout and its
   subclasses for more information.
 
-== External libraries ==
-=== Upgraded external libraries ===
+== extension.json changes in 1.26 ==
+* (T99344) The extension.json schema is now versioned. All extensions
+  and skins should set a "manifest_version" property corresponding to
+  the schema version they were written for. The only supported version
+  currently is "1".
+* (T102523) The error message if a non-array attribute is set was improved.
+* (T107646) Configuration settings can now specify how they should be merged,
+  which is necessary for arrays using integer keys.
+* (T110389) Adding namespaces through extension.json now actually works
+* $wgNamespaceProtection can now be set in extension.json.
+* $wgCapitalLinkOverrides can now be set in extension.json.
+* (T97186) Extensions using a custom prefix for their configuration settings
+  can now set a "_prefix" key to override the default of "wg".
+* (T99084) Extensions can now specify what MediaWiki core versions they
+  depend upon.
+* (T105236) The extension.json schema now validates custom classes in
+  the "ResourceModules" property properly.
+
+=== External library changes in 1.26 ===
+==== Upgraded external libraries ====
 * Updated es5-shim from v4.0.0 to v4.1.5.
 * Updated json2 from revision 2014-02-04 to 2015-05-03.
 * Updated Sinon.JS from 1.10.3 to 1.15.4.
 * Updated jQuery Client from v1.0.0 to v2.0.0.
 * Updated QUnit from v1.17.1 to v1.18.0.
-* Updated liuggio/statsd-php-client from v1.0.12 to v1.0.16
-* Updated oojs/oojs-ui from v0.9.8 to v0.12.9.
-* Updated wikimedia/utfnormal from v1.0.2 to v1.0.3
-* Updated wikimedia/composer-merge-plugin from v1.0.0 to v1.2.1.
+* Updated liuggio/statsd-php-client from v1.0.12 to v1.0.16.
+* Updated oojs/oojs-ui from v0.11.3 to v0.12.12.
+* Updated wikimedia/cdb from v1.0.1 to v1.3.0.
+* Updated wikimedia/utfnormal from v1.0.2 to v1.0.3.
+* Updated wikimedia/composer-merge-plugin from v1.0.0 to v1.3.0.
 * Updated zordius/lightncandy from v0.18 to v0.21.
 
-=== New external libraries ===
-* Added composer/semver v0.1.0.
+==== New external libraries ====
+* Added composer/semver v1.0.0.
 * Added mediawiki/at-ease v1.1.0.
 * Added wikimedia/assert v0.2.2.
-* Added wikimedia/cldr-plural-rule-parser v1.0.0
 * Added wikimedia/ip-set v1.0.1.
 * Added wikimedia/wrappedstring v2.0.0.
 
-=== Removed and replaced external libraries ===
-* Replaced leafo/lessphp v0.5.0 with oyejorge/less.php: v1.7.0.8
+==== Removed and replaced external libraries ====
+* Replaced leafo/lessphp v0.5.0 with oyejorge/less.php v1.7.0.9.
 
 === Bug fixes in 1.26 ===
 * (T53283) load.php sometimes sends 304 response without full headers
@@ -157,7 +171,6 @@ production.
 * API responses to GET requests may now include ETag and Last-Modified headers,
   and will honor corresponding If-None-Match and If-Modified-Since on such
   requests.
-* (T47988) The protect log event details now use new-style formatting.
 
 === Action API internal changes in 1.26 ===
 * New metadata item ApiResult::META_KVP_MERGE to allow for merging the KVP key
@@ -233,21 +246,9 @@ changes to languages because of Phabricator reports.
 * Watchlist tokens, SpecialResetTokens, and User::getTokenFromOption()
   are deprecated. Applications using those can work via the OAuth
   extension instead. New tokens types should not be added.
-* (T36948) The default file revert message's timestamp is now in $wgLocaltimezone,
-  instead of UTC.
 * DatabaseBase::errorCount() was removed (unused).
 * $wgDeferredUpdateList was removed.
 * DeferredUpdates::addHTMLCacheUpdate() was removed.
-* The default name of the 'suppress' group page has been changed from
-  'Project:Oversight' to 'Project:Suppress'.
-* (T84937) Free external links ("autolinked" urls) will now be terminated
-  by &nbsp; and HTML entity encodings of &nbsp, <, and >.
-* DatabaseBase::resultObject() is now protected (use outside Database classes
-  not necessary since 1.11).
-* Calling ResourceLoaderFileModule::readStyleFiles() without a
-  ResourceLoaderContext instance is deprecated.
-* ResourceLoader::getLessCompiler() now takes an optional parameter of
-  additional LESS variables to set for the compiler.
 
 == Compatibility ==
 
index 127eba7..6850e2b 100644 (file)
@@ -50,6 +50,10 @@ 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.
+* CLDRPluralRule* classes have been replaced with wikimedia/cldr-plural-rule-parser.
 
 === New features in 1.27 ===
 * $wgDataCenterId and $wgDataCenterRoles where added, which will serve as
@@ -77,8 +81,22 @@ production.
   and .flex(@grow: 1, @shrink: 1, @width: auto, @order: 1)) in Less to create
   cross-browser-compatible FlexBox rules. Users will still need to add fallback
   float rules or the like for compatibility with IE9- separately.
+* Added MWTimestamp::getTimezoneString() which returns the localized timezone
+  string, if available. To localize this string, see the comments of
+  $wgLocaltimezone in includes/DefaultSettings.php.
 
-==== External libraries ====
+=== External library changes in 1.27 ===
+==== Upgraded external libraries ====
+* Updated oojs/oojs-ui from v0.12.12 to v0.13.3.
+* Updated composer/semver from v1.0.0 to v1.2.0.
+
+==== New external libraries ====
+* Added wikimedia/base-convert v1.0.1.
+* Added wikimedia/cldr-plural-rule-parser v1.0.0.
+* Added wikimedia/relpath v1.0.3.
+* Added wikimedia/running-stat v1.1.0.
+
+==== Removed and replaced external libraries ====
 
 === Bug fixes in 1.27 ===
 * Special:Upload will now display correct maximum allowed file size when running
@@ -94,15 +112,24 @@ 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.
+* (T47988) The protect log event details now use new-style formatting.
 
 === Action API internal changes in 1.27 ===
 * ApiQueryORM removed.
+* The following classes have been removed:
+** ApiFormatDbg
+** ApiFormatTxt
+** ApiFormatYaml
+* ApiQueryBase::getDirectionDescription is now marked as deprecated. It should
+  have been so marked since 1.25 when ApiBase::getParamDescription was
+  deprecated, but was overlooked at the time.
 
 === Languages updated in 1.27 ===
 
 MediaWiki supports over 350 languages. Many localisations are updated
 regularly. Below only new and removed languages are listed, as well as
-changes to languages because of Bugzilla reports.
+changes to languages because of Phabricator reports.
 
 * (T113688) Change default numerals from Gurmukhi to Arabic for Punjabi locale.
 
@@ -116,6 +143,18 @@ changes to languages because of Bugzilla reports.
 * 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).
+* (T84937) Free external links ("autolinked" urls) will now be terminated
+  by &nbsp; and HTML entity encodings of &nbsp, <, and >.
+* (T36948) The default file revert message's timestamp is now in $wgLocaltimezone,
+  instead of UTC.
+* The default name of the 'suppress' group page has been changed from
+  'Project:Oversight' to 'Project:Suppress'.
+* DatabaseBase::resultObject() is now protected (use outside Database classes
+  not necessary since 1.11).
+* Calling ResourceLoaderFileModule::readStyleFiles() without a
+  ResourceLoaderContext instance is deprecated.
+* ResourceLoader::getLessCompiler() now takes an optional parameter of
+  additional LESS variables to set for the compiler.
 
 == 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 3ebf44b..2522c56 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',
@@ -448,6 +445,7 @@ $wgAutoloadLocalClasses = array(
        'FindMissingFiles' => __DIR__ . '/maintenance/findMissingFiles.php',
        'FindOrphanedFiles' => __DIR__ . '/maintenance/findOrphanedFiles.php',
        'FixBug20757' => __DIR__ . '/maintenance/storage/fixBug20757.php',
+       'FixDefaultJsonContentPages' => __DIR__ . '/maintenance/fixDefaultJsonContentPages.php',
        'FixDoubleRedirects' => __DIR__ . '/maintenance/fixDoubleRedirects.php',
        'FixExtLinksProtocolRelative' => __DIR__ . '/maintenance/fixExtLinksProtocolRelative.php',
        'FixTimestamps' => __DIR__ . '/maintenance/fixTimestamps.php',
@@ -561,6 +559,7 @@ $wgAutoloadLocalClasses = array(
        'ImageListPager' => __DIR__ . '/includes/specials/SpecialListfiles.php',
        'ImagePage' => __DIR__ . '/includes/page/ImagePage.php',
        'ImageQueryPage' => __DIR__ . '/includes/specialpage/ImageQueryPage.php',
+       'ImportLogFormatter' => __DIR__ . '/includes/logging/ImportLogFormatter.php',
        'ImportReporter' => __DIR__ . '/includes/specials/SpecialImport.php',
        'ImportSiteScripts' => __DIR__ . '/maintenance/importSiteScripts.php',
        'ImportSites' => __DIR__ . '/maintenance/importSites.php',
index bf4d402..e203cf7 100644 (file)
                "wiki": "https://www.mediawiki.org/"
        },
        "require": {
-               "composer/semver": "1.0.0",
+               "composer/semver": "1.2.0",
                "cssjanus/cssjanus": "1.1.1",
                "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..fa6f13a 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.
@@ -7020,8 +7020,8 @@ $wgLogActionsHandlers = array(
        'delete/event' => 'DeleteLogFormatter',
        'delete/restore' => 'DeleteLogFormatter',
        'delete/revision' => 'DeleteLogFormatter',
-       'import/interwiki' => 'LogFormatter',
-       'import/upload' => 'LogFormatter',
+       'import/interwiki' => 'ImportLogFormatter',
+       'import/upload' => 'ImportLogFormatter',
        'managetags/activate' => 'LogFormatter',
        'managetags/create' => 'LogFormatter',
        'managetags/deactivate' => 'LogFormatter',
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 639403d..937aedb 100644 (file)
@@ -377,7 +377,7 @@ class MWTimestamp {
         * Premade translations are not shipped as format() may return whatever the
         * system uses, localized or not, so translation must be done through wiki.
         *
-        * @since 1.25
+        * @since 1.27
         * @return Message The localized timezone message
         */
        public function getTimezoneMessage() {
index d048b57..38d9e47 100644 (file)
@@ -486,13 +486,22 @@ class MediaWiki {
                $this->doPostOutputShutdown( 'normal' );
        }
 
+       /**
+        * @see MediaWiki::preOutputCommit()
+        * @since 1.26
+        */
+       public function doPreOutputCommit() {
+               self::preOutputCommit( $this->context );
+       }
+
        /**
         * This function commits all DB changes as needed before
         * the user can receive a response (in case commit fails)
         *
-        * @since 1.26
+        * @param IContextSource $context
+        * @since 1.27
         */
-       public function doPreOutputCommit() {
+       public static function preOutputCommit( IContextSource $context ) {
                // Either all DBs should commit or none
                ignore_user_abort( true );
 
@@ -505,16 +514,17 @@ class MediaWiki {
 
                // Set a cookie to tell all CDN edge nodes to "stick" the user to the
                // DC that handles this POST request (e.g. the "master" data center)
-               $request = $this->context->getRequest();
+               $request = $context->getRequest();
+               $config = $context->getConfig();
                if ( $request->wasPosted() && $factory->hasOrMadeRecentMasterChanges() ) {
-                       $expires = time() + $this->config->get( 'DataCenterUpdateStickTTL' );
-                       $request->response()->setCookie( 'UseDC', 'master', $expires );
+                       $expires = time() + $config->get( 'DataCenterUpdateStickTTL' );
+                       $request->response()->setCookie( 'UseDC', 'master', $expires, array( 'prefix' => '' ) );
                }
 
                // Avoid letting a few seconds of slave lag cause a month of stale data
                if ( $factory->laggedSlaveUsed() ) {
-                       $maxAge = $this->config->get( 'CdnMaxageLagged' );
-                       $this->context->getOutput()->lowerCdnMaxage( $maxAge );
+                       $maxAge = $config->get( 'CdnMaxageLagged' );
+                       $context->getOutput()->lowerCdnMaxage( $maxAge );
                        $request->response()->header( "X-Database-Lagged: true" );
                        wfDebugLog( 'replication', "Lagged DB used; CDN cache TTL limited to $maxAge seconds" );
                }
@@ -710,7 +720,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 81724c5..c35204d 100644 (file)
@@ -3309,7 +3309,11 @@ class OutputPage extends ContextSource {
         */
        public function userCanPreview() {
                $request = $this->getRequest();
-               if ( $request->getVal( 'action' ) !== 'submit' || !$request->wasPosted() ) {
+               if (
+                       $request->getVal( 'action' ) !== 'submit' ||
+                       !$request->getCheck( 'wpPreview' ) ||
+                       !$request->wasPosted()
+               ) {
                        return false;
                }
 
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 a856f1e..4fc3209 100644 (file)
@@ -1631,7 +1631,7 @@ class Sanitizer {
 
                        # 10.2
                        'ul'         => array_merge( $common, array( 'type' ) ),
-                       'ol'         => array_merge( $common, array( 'type', 'start' ) ),
+                       'ol'         => array_merge( $common, array( 'type', 'start', 'reversed' ) ),
                        'li'         => array_merge( $common, array( 'type', 'value' ) ),
 
                        # 10.3
index bd20ac3..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 = '';
index b09e4e4..3d1aa7e 100644 (file)
@@ -699,7 +699,7 @@ class User implements IDBAccessObject {
                        return null;
                }
 
-               if ( isset( self::$idCacheByName[$name] ) ) {
+               if ( !( $flags & self::READ_LATEST ) && isset( self::$idCacheByName[$name] ) ) {
                        return self::$idCacheByName[$name];
                }
 
@@ -2423,7 +2423,7 @@ class User implements IDBAccessObject {
         *  through the web interface.
         */
        private function setPasswordInternal( $str ) {
-               $id = self::idFromName( $this->getName() );
+               $id = self::idFromName( $this->getName(), self::READ_LATEST );
                if ( $id == 0 ) {
                        throw new LogicException( 'Cannot set a password for a user that is not in the database.' );
                }
@@ -3898,6 +3898,7 @@ class User implements IDBAccessObject {
                        return Status::newFatal( 'userexists' );
                }
                $this->mId = $dbw->insertId();
+               self::$idCacheByName[$this->mName] = $this->mId;
 
                // Clear instance cache other than user table data, which is already accurate
                $this->clearInstanceCache();
index adee126..0ef2373 100644 (file)
@@ -290,7 +290,7 @@ class WatchedItem {
                } else {
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->update( 'watchlist',
-                               array( 'wl_notificationtimestamp' => $notificationTimestamp ),
+                               array( 'wl_notificationtimestamp' => $dbw->timestampOrNull( $notificationTimestamp ) ),
                                $this->dbCond(),
                                __METHOD__
                        );
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..0d1314f 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',
        );
 
@@ -440,6 +434,9 @@ class ApiMain extends ApiBase {
                // Log the request whether or not there was an error
                $this->logRequest( microtime( true ) - $t );
 
+               // Commit DBs and send any related cookies and headers
+               MediaWiki::preOutputCommit( $this->getContext() );
+
                // Send cache headers after any code which might generate an error, to
                // avoid sending public cache headers for errors.
                $this->sendCacheHeaders( $isError );
@@ -1289,31 +1286,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 29fdfea..01968c2 100644 (file)
@@ -550,21 +550,6 @@ abstract class ApiQueryBase extends ApiBase {
                return array( $t->getNamespace(), substr( $t->getDBkey(), 0, -1 ) );
        }
 
-       /**
-        * Gets the personalised direction parameter description
-        *
-        * @param string $p ModulePrefix
-        * @param string $extraDirText Any extra text to be appended on the description
-        * @return array
-        */
-       public function getDirectionDescription( $p = '', $extraDirText = '' ) {
-               return array(
-                       "In which direction to enumerate{$extraDirText}",
-                       " newer          - List oldest first. Note: {$p}start has to be before {$p}end.",
-                       " older          - List newest first (default). Note: {$p}start has to be later than {$p}end.",
-               );
-       }
-
        /**
         * @param string $hash
         * @return bool
@@ -679,6 +664,22 @@ abstract class ApiQueryBase extends ApiBase {
                return substr( $this->keyToTitle( $keyPart . 'x' ), 0, -1 );
        }
 
+       /**
+        * Gets the personalised direction parameter description
+        *
+        * @deprecated since 1.25 along with ApiBase::getParamDescription
+        * @param string $p ModulePrefix
+        * @param string $extraDirText Any extra text to be appended on the description
+        * @return array
+        */
+       public function getDirectionDescription( $p = '', $extraDirText = '' ) {
+               return array(
+                       "In which direction to enumerate{$extraDirText}",
+                       " newer          - List oldest first. Note: {$p}start has to be before {$p}end.",
+                       " older          - List newest first (default). Note: {$p}start has to be later than {$p}end.",
+               );
+       }
+
        /**@}*/
 }
 
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.",
diff --git a/includes/api/i18n/diq.json b/includes/api/i18n/diq.json
new file mode 100644 (file)
index 0000000..033904d
--- /dev/null
@@ -0,0 +1,15 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Gorizon"
+               ]
+       },
+       "apihelp-createaccount-param-name": "Nameyê karberi.",
+       "apihelp-delete-description": "Pele bestere.",
+       "apihelp-edit-param-text": "Zerreki pele",
+       "apihelp-edit-example-edit": "Şeker bıvurne",
+       "apihelp-login-param-name": "Nameyê karberi.",
+       "apihelp-login-param-password": "Parola.",
+       "apihelp-login-param-domain": "Domain (optional).",
+       "apihelp-login-example-login": "Dekew."
+}
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 1b7c048..9d5ea94 100644 (file)
        "apihelp-feedrecentchanges-param-tagfilter": "Filtrar por etiqueta.",
        "apihelp-feedrecentchanges-param-target": "Mostrar só os cambios nas páxinas ligadas a esta.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Mostrar os cambios nas páxinas ligadas coa páxina seleccionada.",
+       "apihelp-feedrecentchanges-param-categories": "Só mostrar cambios en páxinas pertencentes a todas estas categorías.",
        "apihelp-feedrecentchanges-example-simple": "Mostrar os cambios recentes",
        "apihelp-feedrecentchanges-example-30days": "Mostrar os cambios recentes limitados a 30 días",
        "apihelp-feedwatchlist-description": "Devolve o fluxo dunha lista de vixiancia.",
        "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 5dcad28..60227d3 100644 (file)
        "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 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 79e2e9c..ef69eda 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>Головна сторінка</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": "Результат запиту до API MediaWiki",
        "api-format-prettyprint-header": "Це HTML-представлення формату $1. HTML є гарним для налагодження, однак не придатний для прикладного використання.\n\nУкажіть значення для параметру <var>format</var>, для того щоб змінити формат. Для перегляду не-HTML-представлення формату, $1, вкажіть <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 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 4f0824f..6054ecc 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,15 +50,29 @@ class MessageBlobStore {
                $this->resourceloader = $resourceloader;
        }
 
+       /**
+        * Get the message blob for a module
+        *
+        * @since 1.27
+        * @param ResourceLoaderModule $module
+        * @param string $lang Language code
+        * @return string JSON
+        */
+       public function getBlob( ResourceLoaderModule $module, $lang ) {
+               $blobs = $this->getBlobs( array( $module->getName() => $module ), $lang );
+               return $blobs[$module->getName()];
+       }
+
        /**
         * Get the message blobs for a set of modules
         *
+        * @since 1.27
         * @param ResourceLoader $resourceLoader
         * @param array $modules Array of module objects keyed by module name
         * @param string $lang Language code
         * @return array An array mapping module names to message blobs
         */
-       public function get( ResourceLoader $resourceLoader, $modules, $lang ) {
+       public function getBlobs( $modules, $lang ) {
                if ( !count( $modules ) ) {
                        return array();
                }
@@ -72,13 +85,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
@@ -100,6 +113,16 @@ class MessageBlobStore {
                return $blobs;
        }
 
+       /**
+        * Get the message blobs for a set of modules
+        *
+        * @deprecated since 1.27 Use getBlobs() instead
+        * @return array
+        */
+       public function get( ResourceLoader $resourceLoader, $modules, $lang ) {
+               return $this->getBlobs( $modules, $lang );
+       }
+
        /**
         * Generate and insert a new message blob. If the blob was already
         * present, it is not regenerated; instead, the preexisting blob
@@ -108,7 +131,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 );
@@ -314,7 +337,7 @@ class MessageBlobStore {
         * @param string $lang Language code
         * @return string
         */
-       private function fetchMessage( $key, $lang ) {
+       protected function fetchMessage( $key, $lang ) {
                $message = wfMessage( $key )->inLanguage( $lang );
                if ( !$message->exists() ) {
                        wfDebugLog( 'resourceloader', __METHOD__ . " failed to find: '$key' ($lang)" );
@@ -340,13 +363,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();
                }
@@ -355,16 +377,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 ) );
@@ -384,7 +406,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 05dc3d3..c0cf067 100644 (file)
@@ -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 42ebb46..2c86c37 100644 (file)
@@ -389,7 +389,7 @@ class PostgreSqlLockManager extends DBLockManager {
                                : "pg_try_advisory_lock({$db->addQuotes( $bigint )}) AS K$bigint";
                }
                $res = $db->query( 'SELECT ' . implode( ', ', $fields ), __METHOD__ );
-               $row = (array)$res->fetchObject();
+               $row = $res->fetchRow();
 
                if ( in_array( 'f', $row ) ) {
                        // Release any acquired locks if some could not be acquired...
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 1a33538..c2bbb4e 100644 (file)
@@ -1404,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.
@@ -1419,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'] ) ) {
@@ -1438,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 ac81ef2..b0d90af 100644 (file)
@@ -1403,16 +1403,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 57084cb..904fde8 100644 (file)
@@ -73,7 +73,8 @@ abstract class DatabaseUpdater {
                'PopulateImageSha1',
                'FixExtLinksProtocolRelative',
                'PopulateFilearchiveSha1',
-               'PopulateBacklinkNamespace'
+               'PopulateBacklinkNamespace',
+               'FixDefaultJsonContentPages'
        );
 
        /**
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 21a4fa3..eaa0537 100644 (file)
@@ -81,5 +81,5 @@
        "config-help": "Ayuda",
        "config-nofile": "Nun pudo atopase'l ficheru \"$1\". ¿Desaniciose?",
        "mainpagetext": "'''MediaWiki instalóse correchamente.'''",
-       "mainpagedocfooter": "Visita la [//meta.wikimedia.org/wiki/Help:Contents Guía del usuariu] pa saber cómo usar esti software wiki.\n\n== Empecipiando ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de les opciones de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de corréu de les ediciones de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Llocaliza MediaWiki na to llingua]"
+       "mainpagedocfooter": "Consulta la [//meta.wikimedia.org/wiki/Help:Contents Guía del usuariu] pa saber cómo usar el software wiki.\n\n== Primeros pasos ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de les opciones de configuración]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ EMF de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de corréu de llanzamientos de MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Llocaliza MediaWiki na to llingua]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Depriende como combatir la puxarra na to wiki]"
 }
index ba0ad68..0e94a50 100644 (file)
        "config-page-name": "آد",
        "config-page-options": "سئچیملر",
        "config-page-install": "قور",
+       "config-page-complete": "قورتاردی!",
+       "config-page-restart": "قورماغی یئنی‌دن باشلات",
        "config-page-readme": "منی اوخو",
        "config-env-php": "PHP $1 قورولوبدور.",
        "config-env-hhvm": "HHVM $1 قورولوبدور.",
+       "config-using-server": "«<nowiki>$1</nowiki>» سِروِر آدی ایشلنیر.",
+       "config-using-uri": "«<nowiki>$1$2</nowiki>» سِروِر آدرسی ایشلنیر.",
+       "config-site-name": "ویکی آدی:",
+       "config-ns-generic": "پروژه",
+       "config-admin-box": "ایداره‌چی حسابی",
+       "config-admin-name": "ایشلدن آدینیز:",
+       "config-admin-password": "رمز:",
+       "config-admin-email": "ایمیل آدرسی:",
        "config-help": "کؤمک",
        "config-help-tooltip": "گئنیشلتمک اوچون کلیک ائدین",
        "config-nofile": "«$1» فایلی تاپیلانمادی. سیلینیبدیرمی؟"
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 a2dbfc3..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",
@@ -54,6 +57,7 @@
        "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",
@@ -77,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 ac54d87..bf7df55 100644 (file)
@@ -67,7 +67,6 @@
        "config-db-install-account": "Benotzerkont fir d'Installatioun",
        "config-db-username": "Datebank-Benotzernumm:",
        "config-db-password": "Passwuert vun der Datebank:",
-       "config-db-username-empty": "Dir musst e Wäert fir \"{{int:config-db-username}}\" aginn",
        "config-db-install-help": "Gitt de Benotzernumm an Passwuert an dat wàhrend der Installatioun benotzt gëtt fir sech mat der Datebank ze verbannen.",
        "config-db-account-lock": "De selwechte Benotzernumm a Passwuert fir déi normal Operatioune benotzen",
        "config-db-wiki-account": "Benotzerkont fir normal Operatiounen",
        "config-help-tooltip": "klickt fir opzeklappen",
        "config-nofile": "De Fichier \"$1\" gouf net fonnt. Gouf e geläscht?",
        "mainpagetext": "<strong>MediaWiki gouf installéiert.</strong>",
-       "mainpagedocfooter": "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]"
+       "mainpagedocfooter": "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Léiert wéi Spam op Ärer Wiki reduzéiert gi kann]"
 }
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 6191612..2ffc1d3 100644 (file)
@@ -128,8 +128,13 @@ class ObjectFactory {
         * @return mixed Constructed instance
         */
        public static function constructClassInstance( $clazz, $args ) {
+               // $args should be a non-associative array; show nice error if that's not the case
+               if ( $args && array_keys( $args ) !== range( 0, count( $args ) - 1 ) ) {
+                       throw new InvalidArgumentException( __METHOD__ . ': $args cannot be an associative array' );
+               }
+
                // TODO: when PHP min version supported is >=5.6.0 replace this
-               // function body with `return new $clazz( ... $args );`.
+               // with `return new $clazz( ... $args );`.
                $obj = null;
                switch ( count( $args ) ) {
                        case 0:
index 7e3fa4f..16e894e 100644 (file)
@@ -101,6 +101,8 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        const TSE_NONE = -1;
        /** Max TTL to store keys when a data sourced is lagged */
        const TTL_LAGGED = 30;
+       /** Idiom for delete() for "no hold-off" */
+       const HOLDOFF_NONE = 0;
 
        /** Tiny negative float to use when CTL comes up >= 0 due to clock skew */
        const TINY_NEGATIVE = -0.000001;
@@ -217,7 +219,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 +231,33 @@ 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 +271,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
         *
@@ -422,7 +459,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *
         * The $ttl parameter can be used when purging values that have not actually changed
         * recently. For example, a cleanup script to purge cache entries does not really need
-        * a hold-off period, so it can use the value 1. Likewise for user-requested purge.
+        * a hold-off period, so it can use HOLDOFF_NONE. Likewise for user-requested purge.
         * Note that $ttl limits the effective range of 'lockTSE' for getWithSetCallback().
         *
         * If called twice on the same key, then the last hold-off TTL takes precedence. For
@@ -434,12 +471,20 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         */
        final public function delete( $key, $ttl = self::HOLDOFF_TTL ) {
                $key = self::VALUE_KEY_PREFIX . $key;
-               // Avoid indefinite key salting for sanity
-               $ttl = max( $ttl, 1 );
-               // Update the local datacenter immediately
-               $ok = $this->cache->set( $key, self::PURGE_VAL_PREFIX . microtime( true ), $ttl );
-               // Publish the purge to all datacenters
-               return $this->relayPurge( $key, $ttl ) && $ok;
+
+               if ( $ttl <= 0 ) {
+                       // Update the local datacenter immediately
+                       $ok = $this->cache->delete( $key );
+                       // Publish the purge to all datacenters
+                       $ok = $this->relayDelete( $key ) && $ok;
+               } else {
+                       // Update the local datacenter immediately
+                       $ok = $this->cache->set( $key, self::PURGE_VAL_PREFIX . microtime( true ), $ttl );
+                       // Publish the purge to all datacenters
+                       $ok = $this->relayPurge( $key, $ttl ) && $ok;
+               }
+
+               return $ok;
        }
 
        /**
diff --git a/includes/logging/ImportLogFormatter.php b/includes/logging/ImportLogFormatter.php
new file mode 100644 (file)
index 0000000..a2a899b
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Formatter for import log entries.
+ *
+ * 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
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ * @since 1.27
+ */
+
+/**
+ * This class formats import log entries.
+ *
+ * @since 1.27
+ */
+class ImportLogFormatter extends LogFormatter {
+       protected function getMessageKey() {
+               $key = parent::getMessageKey();
+               $params = $this->extractParameters();
+               if ( isset( $params[3] ) ) {
+                       // New log items with more details
+                       // Messages: logentry-import-upload-details, logentry-import-interwiki-details
+                       $key .= '-details';
+               }
+
+               return $key;
+       }
+}
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 6c6895a..f061f52 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Implements the BcryptPassword class for the MediaWiki software.
+ * Implements the MWSaltedPassword class for the MediaWiki software.
  *
  * 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
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 6995642..414f8e2 100644 (file)
@@ -435,6 +435,8 @@ class ResourceLoader implements LoggerAwareInterface {
        /**
         * Add a foreign source of modules.
         *
+        * Source IDs are typically the same as the Wiki ID or database name (e.g. lowercase a-z).
+        *
         * @param array|string $id Source ID (string), or array( id1 => loadUrl, id2 => loadUrl, ... )
         * @param string|array $loadUrl load.php url (string), or array with loadUrl key for
         *  backwards-compatibility.
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 e2bc629..5ca90ed 100644 (file)
@@ -596,30 +596,29 @@ class ImportReporter extends ContextSource {
                                        "</li>\n"
                        );
 
+                       $logParams = array( '4:number:count' => $successCount );
                        if ( $this->mIsUpload ) {
                                $detail = $this->msg( 'import-logentry-upload-detail' )->numParams(
                                        $successCount )->inContentLanguage()->text();
-                               if ( $this->reason ) {
-                                       $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text()
-                                               . $this->reason;
-                               }
                                $action = 'upload';
                        } else {
-                               $interwiki = '[[:' . $this->mInterwiki . ':' .
-                                       $foreignTitle->getFullText() . ']]';
+                               $interwikiTitleStr = $this->mInterwiki . ':' . $foreignTitle->getFullText();
+                               $interwiki = '[[:' . $interwikiTitleStr . ']]';
                                $detail = $this->msg( 'import-logentry-interwiki-detail' )->numParams(
                                        $successCount )->params( $interwiki )->inContentLanguage()->text();
-                               if ( $this->reason ) {
-                                       $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text()
-                                               . $this->reason;
-                               }
                                $action = 'interwiki';
+                               $logParams['5:title-link:interwiki'] = $interwikiTitleStr;
+                       }
+                       if ( $this->reason ) {
+                               $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text()
+                                       . $this->reason;
                        }
 
                        $logEntry = new ManualLogEntry( 'import', $action );
                        $logEntry->setTarget( $title );
-                       $logEntry->setComment( $detail );
+                       $logEntry->setComment( $this->reason );
                        $logEntry->setPerformer( $this->getUser() );
+                       $logEntry->setParameters( $logParams );
                        $logid = $logEntry->insert();
                        $logEntry->publish( $logid );
 
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 da84a9e..44c9987 100644 (file)
@@ -295,7 +295,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         *
         * @return array
         */
-       private function getFeedQuery() {
+       protected function getFeedQuery() {
                $query = array_filter( $this->getOptions()->getAllValues(), function ( $value ) {
                        // API handles empty parameters in a different way
                        return $value !== '';
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 7cc7d5f..32d4552 100644 (file)
@@ -466,7 +466,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                # Namespace filter and put the whole form together.
                $form .= $wlInfo;
                $form .= $cutofflinks;
-               $form .= $this->msg( 'hide' ) .
+               $form .= $this->msg( 'watchlist-hide' ) .
                        $this->msg( 'colon-separator' )->escaped() .
                        implode( ' ', $links );
                $form .= "\n<hr />\n<p>";
@@ -480,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";
@@ -507,38 +507,43 @@ class SpecialWatchlist extends ChangesListSpecialPage {
        }
 
        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 );
+               // Cast everything to strings immediately, so that we know all of the values have the same
+               // precision, and can be compared with '==='. 2/24 has a few more decimal places than its
+               // default string representation, for example, and would confuse comparisons.
+
+               // Misleadingly, the 'days' option supports hours too.
+               $days = array_map( 'strval', array( 1/24, 2/24, 6/24, 12/24, 1, 3, 7 ) );
+
+               $userWatchlistOption = (string)$this->getUser()->getOption( 'watchlistdays' );
+               // add the user preference, if it isn't available already
+               if ( !in_array( $userWatchlistOption, $days ) ) {
+                       $days[] = $userWatchlistOption;
                }
-               foreach ( $days as $d ) {
-                       $name = $this->msg( 'days', $d );
-                       $value = $d;
-                       $selected = ( $value == $options['days'] ) ? true : false;
 
-                       $selectOptions .= Xml::option( $name, $value, $selected );
+               $selected = (string)$options['days'];
+               // add the currently selected value, if it isn't available already
+               if ( !in_array( $selected, $days ) ) {
+                       $days[] = $selected;
                }
 
-               // all option
-               $name = $this->msg( 'watchlistall2' );
+               $select = new XmlSelect( 'days', 'days', $selected );
+
+               asort( $days );
+               foreach ( $days as $value ) {
+                       if ( $value < 1 ) {
+                               $name = $this->msg( 'hours' )->numParams( $value * 24 )->text();
+                       } else {
+                               $name = $this->msg( 'days' )->numParams( $value )->text();
+                       }
+                       $select->addOption( $name, $value );
+               }
+
+               // 'all' option
+               $name = $this->msg( 'watchlistall2' )->text();
                $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";
+               $select->addOption( $name, $value );
+
+               return $select->getHTML() . "\n<br />\n";
        }
 
        function setTopText( FormOptions $opts ) {
@@ -598,12 +603,12 @@ class SpecialWatchlist extends ChangesListSpecialPage {
        protected function showHideCheck( $options, $message, $name, $value ) {
                $options[$name] = 1 - (int)$value;
 
-               return Xml::checkLabel(
+               return '<span class="mw-input-with-label">' . Xml::checkLabel(
                        $this->msg( $message, '' )->text(),
                        $name,
                        $name,
                        (int)$value
-               );
+               ) . '</span>';
        }
 
        /**
index 0fb208e..c497865 100644 (file)
@@ -198,7 +198,7 @@ class MediaWikiTitleCodec implements TitleFormatter, TitleParser {
         * @param int $defaultNamespace
         *
         * @throws MalformedTitleException If $text is not a valid title string.
-        * @return array A mapp with the fields 'interwiki', 'fragment', 'namespace',
+        * @return array A map with the fields 'interwiki', 'fragment', 'namespace',
         *         'user_case_dbkey', and 'dbkey'.
         */
        public function splitTitleString( $text, $defaultNamespace = NS_MAIN ) {
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..0a68c0d 100644 (file)
        "columns": "Kolomme",
        "searchresultshead": "Soekresultate",
        "stub-threshold": "Drempel vir merk as <a href=\"#\" class=\"stub\">saadjie</a> (grepe):",
+       "stub-threshold-sample-link": "voorbeeld",
        "stub-threshold-disabled": "Afgeskakel",
        "recentchangesdays": "Aantal dae wat in onlangse wysigings vertoon word:",
        "recentchangesdays-max": "Maksimum $1 {{PLURAL:$1|dag|dae}}",
        "rcshowhidemine": "$1 my wysigings",
        "rcshowhidemine-show": "Wys",
        "rcshowhidemine-hide": "Versteek",
+       "rcshowhidecategorization-show": "Wys",
+       "rcshowhidecategorization-hide": "Versteek",
        "rclinks": "Vertoon die laaste $1 wysigings in die afgelope $2 dae<br />$3",
        "diff": "verskil",
        "hist": "geskiedenis",
        "newpageletter": "N",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|gebruiker|gebruikers}} hou die bladsy dop]",
-       "rc_categories": "Beperk tot kategorië (skei met \"|\")",
-       "rc_categories_any": "Enige",
+       "rc_categories": "Beperk tot kategorieë (skei met \"|\"):",
+       "rc_categories_any": "Enige van die gekose",
        "rc-change-size-new": "$1 {{PLURAL:$1|greep|grepe}} na die wysiging",
        "newsectionsummary": "/* $1 */ nuwe afdeling",
        "rc-enhanced-expand": "Wys details",
        "recentchangeslinked-summary": "Hier volg 'n lys van wysigings wat onlangs gemaak is aan bladsye wat van die gespesifiseerde bladsy geskakel word (of van bladsye van die gespesifiseerde kategorie).\nBladsye op [[Special:Watchlist|u dophoulys]] word in '''vetdruk''' uitgewys.",
        "recentchangeslinked-page": "Bladsynaam:",
        "recentchangeslinked-to": "Besigtig wysigings aan bladsye met skakels na die bladsy",
+       "recentchanges-page-added-to-category": "[[:$1]] by kategorie gevoeg",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] en {{PLURAL:$2|een bladsy|$2 bladsye}} by kategorie gevoeg",
+       "recentchanges-page-removed-from-category": "[[:$1]] uit kategorie verwyder",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] en {{PLURAL:$2|een bladsy|$2 bladsye}} van kategorie verwyder",
+       "autochange-username": "Outomatiese MediaWiki-wysiging",
        "upload": "Laai lêer",
        "uploadbtn": "Laai lêer",
        "reuploaddesc": "Keer terug na die laaivorm.",
        "upload-form-label-infoform-description": "Beskrywing",
        "upload-form-label-usage-title": "Gebruik",
        "upload-form-label-usage-filename": "Lêernaam",
+       "foreign-structured-upload-form-label-own-work": "Dit is my eie werk",
+       "foreign-structured-upload-form-label-infoform-categories": "Kategorieë",
+       "foreign-structured-upload-form-label-infoform-date": "Datum",
        "backend-fail-stream": "Kon nie die lêer $1 uitstroom nie.",
        "backend-fail-backup": "Kon nie 'n rugsteunkopie van die lêer $1 maak nie.",
        "backend-fail-notexists": "Die lêer $1 bestaan nie.",
        "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-hide": "Versteek",
+       "wlshowtime": "Wys laaste:",
+       "wlshowhideminor": "klein wysigings",
+       "wlshowhidebots": "robotte",
+       "wlshowhideliu": "geregistreerde gebruikers",
+       "wlshowhideanons": "anonieme gebruikers",
+       "wlshowhidepatr": "gekontroleerde wysigings",
+       "wlshowhidemine": "my wysigings",
        "watchlist-options": "Opsies vir dophoulys",
        "watching": "Plaas op dophoulys...",
        "unwatching": "Verwyder van dophoulys...",
        "feedback-bugornote": "As u reg is om 'n tegniese probleem in detail te beskryf, [$1 rapporteer 'n fout].\nAnders kan u die eenvoudige vorm hieronder gebruik. U kommentaar sal by die bladsy \"[$3 $2]\", saam met u gebruikersnaam en die webblaaier wat u gebruik gevoeg word.",
        "feedback-cancel": "Kanselleer",
        "feedback-close": "Gedoen",
+       "feedback-error-title": "Fout",
        "feedback-error1": "Fout: onbekende resultaat van die API",
        "feedback-error2": "Fout: Wysiging het gefaal",
        "feedback-error3": "Fout: Geen reaksie van API",
        "special-characters-group-thai": "Thai",
        "special-characters-group-lao": "Lao",
        "special-characters-group-khmer": "Khmer",
+       "special-characters-title-minus": "minusteken",
        "mw-widgets-dateinput-no-date": "Geen datum gekies nie",
        "mw-widgets-dateinput-placeholder-day": "JJJJ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "JJJJ-MM",
index 5fd8fc3..f87948b 100644 (file)
        "wlheader-showupdated": "الصفحات التي تم تحريرها بعد مطالعتك إياها آخر مرة عناوينها بالخط '''الغليظ'''",
        "wlnote": "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
        "wlshowlast": "عرض آخر $1 ساعات $2 يوما",
+       "watchlistall2": "الكل",
+       "wlshowtime": "أظهر آخر:",
+       "wlshowhideminor": "التعديلات الطفيفة",
+       "wlshowhidebots": "البوتات",
+       "wlshowhideliu": "المستخدمون المسجلون",
+       "wlshowhideanons": "المستخدمون المجهولون",
+       "wlshowhidemine": "تعديلاتي",
        "watchlist-options": "خيارات قائمة المراقبة",
        "watching": "يراقب...",
        "unwatching": "إزالة المراقبة...",
        "revdelete-unrestricted": "أزال الضوابط لمديري النظام",
        "logentry-block-block": "{{GENDER:$2|منع|منعت}} $1 {{GENDER:$4|$3}} لفترة زمنية مدتها $5 $6",
        "logentry-block-unblock": "$1 {{GENDER:$2|رفع منع}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": " {{GENDER:$2|غير|غيرت}} $1 إعدادات المنع ل{{GENDER:$4|$3}} بتاريخ انتهاء $5 $6",
        "logentry-suppress-block": "{{GENDER:$2|منع|منعت}} $1 {{GENDER:$4|$3}} لفترة زمنية مدتها $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|استورد}} $3 بواسطة رفع ملف",
        "logentry-import-interwiki": "$1 {{GENDER:$2|استورد|استوردت}} $3 من ويكي أخرى",
index e66358a..29e39cb 100644 (file)
        "nstab-template": "সাঁচ",
        "nstab-help": "সাহায্য পৃষ্ঠা",
        "nstab-category": "শ্ৰেণী",
+       "mainpage-nstab": "বেটুপাত",
        "nosuchaction": "এনে কাৰ্য নাই",
        "nosuchactiontext": "এই ইউআৰএলে নিৰ্ধাৰিত কৰা কাৰ্য অবৈধ।\nআপুনি বোধহয়  ইউআৰএল ভুলকৈ লিখিছে বা এটা ভুল লিঙ্ক অনুকৰণ কৰিছে ।\n{{SITENAME}}ত ব্যৱহাৰ হোৱা চফ্টৱেৰত ত্ৰুটি হ'বও পাৰে ।",
        "nosuchspecialpage": "এনে ধৰণৰ কোনো বিশেষ পৃষ্ঠা নাই",
        "wlheader-showupdated": "আপোনাৰ শেষ পৰিদৰ্শনৰ পিছত সলনি হোৱা পৃষ্ঠাসমূহ '''গাঢ়''' আখৰত দেখুওৱা হৈছে।",
        "wlnote": "তলত {{PLURAL:$1| হ'ল সৰ্বশেষ পৰিৱৰ্তন|হ'ল সৰ্বশেষ '''$1''' পৰিৱৰ্তনসমূহ}} সৰ্বশেষ {{PLURAL:$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..02e9c3e 100644 (file)
        "createacct-reason": "سبب",
        "createacct-reason-ph": "ندن سیز باشقا حساب یارادیرسینیز",
        "createacct-submit": "حسابینیزی یارادین",
-       "createacct-another-submit": "بÛ\8cر Ø¨Ø§Ø´Ù\82ا Ø­Ø³Ø§Ø¨ Û\8cارات",
+       "createacct-another-submit": "حساب یارات",
        "createacct-benefit-heading": "{{SITENAME}} سیزین کیمی آدام‌لارین الی ایله یارانیب‌دیر.",
        "createacct-benefit-body1": "{{PLURAL:$1|دَییشیکلیک}}",
        "createacct-benefit-body2": "{{PLURAL:$1|صفحه}}",
        "passwordreset-emailsent": "بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.",
        "passwordreset-emailsent-capture": "آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.",
        "passwordreset-emailerror-capture": "آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی یارادیلیب‌دیر، اما {{GENDER:$2ایستیفاده‌چی}}‌یه گؤندرمگی باشاریلی اولمادی: $1",
-       "changeemail": "ایمیل آدرسینی دَییشدیر",
-       "changeemail-header": "حساب ایمیل آدرسینی دَییشدیر",
+       "changeemail": "ایمیل آدرسینی دَییشدیر یا سیل",
+       "changeemail-header": "ایمیل آدرسیزی دَییشدیرمک اوچون بو فورمو دولدورون. حسابیزا بوتون ایمیل‌لرین ارتباطینی کسمک اوچون، یئنی ایمیل آدرسینی بوش ساخلایین.",
+       "changeemail-passwordrequired": "بو دَییشمه‌نی دوغرولاماق اوچون، رمزینیزی یازمالیسیز.",
        "changeemail-no-info": "بو صحیفه‌نی دوغرو گؤردوگونوز اوچون سیستمه گیرمه‌لیسینیز.",
        "changeemail-oldemail": "ایندیکی ایمیل آدرس:",
        "changeemail-newemail": "یئنی ایمیل آدرسی:",
        "sig_tip": "سیزین ایمضانیز واخت ایله",
        "hr_tip": "دوزئی خط (آز ایشلدین)",
        "summary": "قیساسی:",
-       "subject": "قونو/باشلیق:",
+       "subject": "قونو:",
        "minoredit": "بو بیر کیچیک دَییشدیرمه‌دیر",
        "watchthis": "بو صفحه‌نی ایزله",
        "savearticle": "صفحه‌نی ساخلا",
        "missingsummary": "'''یادا سالما:''' سیز بیر دَییشیکلیک قیساسی یازمامیسینیز. «{{int:savearticle}}» دویمه‌سینی تیک‌لاسازسا، دَییشیکلیگینیز، قیسا شرح‌سیز اولاراق قئید اولوناجاق.",
        "selfredirect": "<strong>دیققت:</strong>سیز صفحه نین یولون اوزونه دَییشدیریمک حالیندا سیز.\nایمکانی وار یانلیش سون بیر یئری یولون دَییشمک اوچون سئچیب سیز،یا دا صفحه نی یانلیش دَییشدیرسیز.\nایر\"{{int:savearticle}}\" اوستون یئنی دن باساسینیز یولون دَییشیکلیگی دوزلجک.",
        "missingcommenttext": "لوطفاً آشاغی‌دا بیر یوروم یازین.",
-       "missingcommentheader": "'''یادا سالما:''' سیز یورومونوز اوچون بیر قونو/باشلیق یازمامیسینیز.\n«{{int:savearticle}}»-ی تیک‌لاسازسا، دَییشیکلیگینیز، قونو/باشلیق-ی اولمایاراق قئید اولوناجاق‌دیر.",
+       "missingcommentheader": "<strong>یادا سالما:</strong> سیز یورومونوز اوچون بیر قونو یازمامیسینیز.\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}}|مدیر]]  ایله بو وضعیتی گؤروشه بیلرسینیز. [[Special:Preferences|ترجیح لرینیز]] قیسمینده اعتبارلی بیر ائ-پوچت اونوانی گیرمئدیسئنیز \"ایستیفاده‌چییه ائ-پوچت گؤندر\" خصوصیتینی ایستیفاده ائده، ترجیهلرینیز ایمیل عنوانینیزی علاوه ایمیل گؤندرمک حقوقونا صاحب اولاجاقسینیز.\nبو آنکی باغلانما عنوانینیز $ 3، ائنگئللئنمئ نؤمره‌نیز # $ 5.\nبیر ایداره‌چی‌لر وضعیتینیز حاقیندا معلومات آلماق ایستدیگینیزده و یا هر هانسی بیر سورگودا بو معلومات‌لار لازیم اولا‌جاق، خاهیش ائدیریک نوت ائدین.",
        "readonlywarning": "'''دیقت: باخیم سببی ایله دیتابیس بو آندا قیفیللی‌دیر. بو سببله دییشیک‌لیکلری‌نین بو آندا قئید ائدیل میه‌جکدیر. یازدیقلارینیزی باشقا بیر فایل‌دا آلیب ساخلایا و داها سونرا یئنی‌دن بورا گتیریب یازا بیلرسینیز.\n\nاونو قیفیل‌لایان ایداره‌چی، بو شرحی وئریب‌دیر: $1",
        "protectedpagewarning": "' 'خاطیرلیریق: بو ​​صحیفه باغلانیب دیر و یالنیز مودیر اولان‌لار طرفین‌دن دییش‌دیریله بیلر.'\nسون گونده‌لیک گیردی‌سی ایستیناد مقصدلی آشاغیدا وئریلمیش‌دیر:",
        "semiprotectedpagewarning": "'قئید:' بو صحیفه محافظه‌لی اولدوغو اوچون یالنیز قئیدیات‌دان کئچمیش ایستیفاده‌چی‌لر دییشدیر ائده بیلرلر.",
-       "cascadeprotectedwarning": "'''خاطیرلایریق:''' بو صحیفه بو یئرده {{PLURAL:$1|صحیفهٔ|صحیفه‌لر}} یئرلشمیه یه گوره آبشاری- حفظ اولونوب آلتیندا باغلانیب بونجه مودیر فقط ائلیه بیله لر دییشدیر ائده بیلسین لر",
+       "cascadeprotectedwarning": "<strong>خاطیرلایریق:</strong> بو صحیفه بو یئرده {{PLURAL:$1|صحیفهٔ|صحیفه‌لر}} یئرلشمگه گوره آبشاری حفظ اولونوب آلتیندا باغلانیب بونجه مودیر فقط ائلیه بیله‌لر دییشدیر ائده بیلسینلر",
        "titleprotectedwarning": "'دیققت! بو صحیفه محافظه‌لی‌دیر، یالنیز [[Special:ListGroupRights|ایجازه سی اولان]] ایستیفاده‌چی‌لر اونو دییشدیر ائده بیلرلر.'",
        "templatesused": "{{PLURAL:$1|شابلون}} بو صفحه‌ده ایشلنیب‌دیر:",
        "templatesusedpreview": "{{PLURAL:$1|بیر|$1}} شابلون بو اؤن‌گؤستریش‌ده ایشلنیب‌دیر:",
        "prefs-watchlist-token": "ایزله‌دیک‌لر آدرسی:",
        "prefs-misc": "باشقا",
        "prefs-resetpass": "رمزی دَییشدیر",
-       "prefs-changeemail": "ایمیل آدرسینی دَییشدیر",
+       "prefs-changeemail": "ایمیل آدرسینی دَییشدیر یا سیل",
        "prefs-setemail": "بیر ایمیل آدرسی وئر",
        "prefs-email": "ایمیل ترجیحلری",
        "prefs-rendering": "گؤرونوش",
        "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 a0cdf69..9896994 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": "усё",
+       "watchlist-hide": "Схаваць",
+       "wlshowtime": "Паказаць апошнія:",
+       "wlshowhideminor": "дробныя праўкі",
+       "wlshowhidebots": "робатаў",
+       "wlshowhideliu": "зарэгістраваных удзельнікаў",
+       "wlshowhideanons": "ананімных удзельнікаў",
+       "wlshowhidepatr": "патруляваныя праўкі",
+       "wlshowhidemine": "мае праўкі",
        "watchlist-options": "Налады сьпісу назіраньня",
        "watching": "Дадаецца ў сьпіс назіраньня…",
        "unwatching": "Выдаляецца са сьпісу назіраньня…",
        "blocklist-userblocks": "Схаваць блякаваньні рахункаў",
        "blocklist-tempblocks": "Схаваць часовыя блякаваньні",
        "blocklist-addressblocks": "Схаваць блякаваньні асобных IP-адрасоў",
-       "blocklist-rangeblocks": "хаваньне блякаваньняў дыяпазонаў",
+       "blocklist-rangeblocks": "Схаваць блякаваньні дыяпазонаў",
        "blocklist-timestamp": "Дата/час",
        "blocklist-target": "Мэта",
        "blocklist-expiry": "Сканчаецца",
        "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 afe80df..732f6d7 100644 (file)
        "laggedslavemode": "<strong>Увага:</strong> Старонка можа не ўтрымліваць апошніх змен.",
        "readonly": "База звестак зачынена",
        "enterlockreason": "Упішыце прычыну зачынення, а таксама меркаваны час адчынення",
-       "readonlytext": "Ð\91аза Ð´Ð°Ð½Ñ\8bÑ\85 Ð½Ðµ Ð¿Ñ\80Ñ\8bймае Ð½Ð¾Ð²Ñ\8bÑ\85 Ñ\81Ñ\82аÑ\80онак Ñ\96 Ñ\96нÑ\88Ñ\8bÑ\85 Ð·Ð¼Ñ\8fненнÑ\8fÑ\9e, Ñ\82амÑ\83 Ñ\88Ñ\82о Ñ\8fна Ð·Ð°Ñ\80аз Ð·Ð°Ñ\87Ñ\8bнена, Ð²Ñ\96даÑ\86Ñ\8c, Ð´Ð·ÐµÐ»Ñ\8f Ð°Ð±Ñ\81лÑ\83гоÑ\9eваннÑ\8f, Ð¿Ð°Ñ\81лÑ\8f Ñ\87аго Ð±Ñ\83дзе Ð²ÐµÑ\80нÑ\83Ñ\82а Ð´Ð° Ð½Ð°Ñ\80малÑ\8cнай Ð¿Ñ\80аÑ\86Ñ\8b.\n\nÐ\90дмÑ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82аÑ\80, Ñ\8fкÑ\96 Ð·Ð°Ñ\87Ñ\8bнÑ\8fў базу, растлумачыў гэта так: $1",
+       "readonlytext": "Ð\91аза Ð´Ð°Ð½Ñ\8bÑ\85 Ð·Ð°Ñ\80аз Ð·Ð°Ð±Ð»Ð°ÐºÑ\96Ñ\80авана Ð°Ð´ Ð´Ð°Ð±Ð°Ñ\9eленнÑ\8f Ð½Ð¾Ð²Ñ\8bÑ\85 Ð·Ð°Ð¿Ñ\96Ñ\81аÑ\9e Ñ\96 Ñ\96нÑ\88Ñ\8bÑ\85 Ð·Ð¼ÐµÐ½, Ð²ÐµÑ\80агодна, Ð´Ð·ÐµÐ»Ñ\8f Ð¿Ð»Ð°Ð½Ð°Ð²Ð°Ð³Ð° Ð°Ð±Ñ\81лÑ\83гоÑ\9eваннÑ\8f, Ð¿Ð°Ñ\81лÑ\8f Ñ\8fкога Ñ\8fна Ð±Ñ\83дзе Ð²ÐµÑ\80нÑ\83Ñ\82а Ð´Ð° Ð½Ð°Ñ\80малÑ\8cнай Ð¿Ñ\80аÑ\86Ñ\8b.\n\nÐ\90дмÑ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82аÑ\80, Ñ\8fкÑ\96 Ð·Ð°Ð±Ð»Ð°ÐºÑ\96Ñ\80аваў базу, растлумачыў гэта так: $1",
        "missing-article": "Не ўдалося знайсці тэксту старонкі ў базе даных, хаця ён мусіць там быць, з назвай \"$1\" $2.\n\nЗвычайна так бывае, калі адкрываюць састарэлую розніцу (diff) або спасылку з гісторыі сцёртай старонкі.\n\nКалі гэта не так, то, магчыма, гэта памылка ў праграмах.\nПаведамце пра гэта, разам з праблемным URL, аднаму з [[Special:ListUsers/sysop|адміністратараў]].",
        "missingarticle-rev": "(версія #: $1)",
        "missingarticle-diff": "(розн.: $1, $2)",
        "title-invalid-interwiki": "Запытаны загаловак зьмяшчае інтэрвікі-спасылку, якую нельга ўжываць у назвах.",
        "perfcached": "Гэта ўзятыя з кэшу звесткі, і яны могуць не быць актуальнымі. У кэшы захоўваецца не больш за {{PLURAL:$1|адзін вынік|$1 вынікі|$1 вынікаў}}.",
        "perfcachedts": "Наступныя звесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} не больш за $4 {{PLURAL:$4|вынік|вынікі|вынікаў}}.",
-       "querypage-no-updates": "Ð\9dемагÑ\87Ñ\8bма Ð°Ð±Ð½Ð°Ð²Ñ\96Ñ\86Ñ\8c Ð¿Ð°ÐºÐ°Ð·Ð°Ð½Ñ\8bÑ\8f Ð·Ð²ÐµÑ\81Ñ\82кÑ\96, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð·Ð°Ñ\80аз Ð°Ð±Ð½Ð°Ñ\9eленнÑ\96 Ð³Ñ\8dÑ\82ай Ñ\81Ñ\82аÑ\80онкÑ\96 Ð½Ðµ Ð´Ð°Ð·Ð²Ð¾Ð»ÐµÐ½Ñ\8b.",
+       "querypage-no-updates": "Ð\90бнаÑ\9eленне Ð³Ñ\8dÑ\82ай Ñ\81Ñ\82аÑ\80онкÑ\96 Ñ\86Ñ\8fпеÑ\80 Ð°Ð´ÐºÐ»Ñ\8eÑ\87ана.\nÐ\9fаказанÑ\8bÑ\8f Ñ\82Ñ\83Ñ\82 Ð·Ð²ÐµÑ\81Ñ\82кÑ\96 Ð·Ð°Ñ\80аз Ð½Ðµ Ð°Ð±Ð½Ð¾Ð²Ñ\8fÑ\86Ñ\86а.",
        "viewsource": "Паказаць зыходны тэкст",
        "viewsource-title": "Прагляд зыходнага тэксту старонкі $1",
        "actionthrottled": "Дзеянне прыгашана",
        "createaccountreason": "Прычына:",
        "createacct-reason": "Прычына",
        "createacct-reason-ph": "Чаму вы ствараеце іншы ўліковы запіс",
-       "createacct-captcha": "Праверка бяспекі",
-       "createacct-imgcaptcha-ph": "Увядзіце тэкст, які вы бачыце вышэй",
        "createacct-submit": "Стварыць уліковы запіс",
        "createacct-another-submit": "Стварыць яшчэ адзін уліковы запіс",
        "createacct-benefit-heading": "{{SITENAME}} зроблены такімі ж людзьмі, як вы.",
        "accountcreatedtext": "Створаны ўліковы запіс удзельніка [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|размовы]]).",
        "createaccount-title": "Стварэнне рахунка на {{SITENAME}}",
        "createaccount-text": "На пляцоўцы {{SITENAME}} ($4) быў створаны рахунак удзельніка з гэтым адрасам эл.пошты. Назва рахунка \"$2\", пароль \"$3\". Варта адразу ўвайсці ў сістэму і змяніць пароль.\n\nКалі рахунак быў створаны памылкова, то на гэтае паведамленне можна не звяртаць увагі.",
-       "login-throttled": "Занадта многа нядаўніх спробаў увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
+       "login-throttled": "Занадта многа нядаўніх спроб увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
        "login-abort-generic": "Няўдалая спроба ўвайсці ў сістэму",
        "loginlanguagelabel": "Мова: $1",
        "suspicious-userlogout": "Ваш запыт на выхад быў адмоўлены, паколькі ён выглядае як накіраваны са зламанага браўзера або кэшаванне проксі-сервераў.",
        "retypenew": "Новы пароль паўторна:",
        "resetpass_submit": "Наставіць пароль і ўвайсці",
        "changepassword-success": "Ваш пароль паспяхова зменены!",
-       "changepassword-throttled": "Занадта многа нядаўніх спробаў увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
+       "changepassword-throttled": "Занадта многа нядаўніх спроб увайсці пад гэтым уліковым запісам. \nПачакайце $1 перад тым, як спрабаваць ізноў.",
        "resetpass_forbidden": "Не дазволена мяняць паролі",
        "resetpass-no-info": "Трэба ўвайсці ў сістэму, каб звяртацца да гэтай старонкі наўпрост.",
        "resetpass-submit-loggedin": "Змяніць пароль",
        "changeemail-none": "(няма)",
        "changeemail-password": "Ваш {{SITENAME}} пароль:",
        "changeemail-submit": "Змяніць адрас электроннай пошты:",
-       "changeemail-throttled": "Надта штмат спробаў увайсці пад гэтым рахункам. Пачакайце $1 перад тым, як спрабаваць ізноў.",
+       "changeemail-throttled": "Надта многа спроб увайсці пад гэтым рахункам. Пачакайце $1 перад тым, як спрабаваць ізноў.",
        "resettokens": "Скінуць токены",
        "resettokens-text": "Вы можаце пераўстанавіць токены, якія дазваляюць атрымліваць доступ да пэўных прыватных звестак, звязаных з вашым уліковым запісам.\n\nВы мусіце скінуць токены, калі выпадкова падзяліліся імі з кім-небудзь, ці ваш уліковы запіс быў скампраметаваны.",
        "resettokens-no-tokens": "Няма чаго скідваць.",
        "accmailtitle": "Быў адасланы пароль",
        "accmailtext": "На адрас $2 быў дасланы згенераваны пароль для [[User talk:$1|$1]]. Ён можа быць зменены на <em>[[Special:ChangePassword|старонцы змены пароля]]</em> пасля ўваходу ў сістэму.",
        "newarticle": "(Новы)",
-       "newarticletext": "Ð\92Ñ\8b Ð¿ÐµÑ\80айÑ\88лÑ\96 Ð´Ð° Ñ\81Ñ\82аÑ\80онкÑ\96, Ñ\8fкой Ñ\8fÑ\88Ñ\87Ñ\8d Ð½Ñ\8fма, Ñ\96 Ñ\82амÑ\83 Ñ\82Ñ\80апÑ\96лÑ\96 Ñ\81Ñ\8eдÑ\8b. \nÐ\9aаб Ð¿Ð°Ñ\87аÑ\86Ñ\8c Ð½Ð¾Ð²Ñ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83, Ð¿Ñ\96Ñ\88Ñ\8bÑ\86е Ñ\8fе Ñ\82Ñ\8dкÑ\81Ñ\82 Ñ\83 Ð½Ñ\96жÑ\8dйпаказанÑ\8bм Ð°ÐºÐ½Ðµ Ñ\80Ñ\8dдагаваннÑ\8f (падÑ\80абÑ\8fзнаÑ\81Ñ\86Ñ\96 Ð±Ð°Ñ\87 Ñ\83 [$1 Ð´Ð°Ð²ÐµÐ´Ñ\86Ñ\8b]). \nКалі вы тут выпадкова, проста націсніце <strong>назад</strong> у браўзеры.",
+       "newarticletext": "Ð\92Ñ\8b Ð¿ÐµÑ\80айÑ\88лÑ\96 Ð¿Ð° Ñ\81паÑ\81Ñ\8bлÑ\86Ñ\8b Ð½Ð° Ñ\81Ñ\82аÑ\80онкÑ\83, Ñ\8fкой Ñ\8fÑ\88Ñ\87Ñ\8d Ð½Ñ\8fма.\nÐ\9aаб Ñ\8fе Ñ\81Ñ\82ваÑ\80Ñ\8bÑ\86Ñ\8c, Ð½Ð°Ð±Ñ\8fÑ\80Ñ\8bÑ\86е Ñ\8fе Ñ\82Ñ\8dкÑ\81Ñ\82 Ñ\83 Ð½Ñ\96жÑ\8dйпаказанÑ\8bм Ð°ÐºÐ½Ðµ Ñ\80Ñ\8dдагаваннÑ\8f (падÑ\80абÑ\8fзнаÑ\81Ñ\86Ñ\96 Ð³Ð». Ñ\9e [$1 Ð´Ð°Ð²ÐµÐ´Ñ\86Ñ\8b]).\nКалі вы тут выпадкова, проста націсніце <strong>назад</strong> у браўзеры.",
        "anontalkpagetext": "----''Гэта старонка размовы з ананімным удзельнікам, які або не мае свайго рахунка, або ім не карыстаўся. Таму дзеля яго ці яе ідэнтыфікацыі мы мусім выкарыстаць лічбавы IP-адрас. Такі адрас IP могуць дзяліць між сабою некалькі асоб. Калі вы ананімны ўдзельнік, і лічыце, што атрымліваеце няслушныя заўвагі,[[Special:UserLogin/signup|стварыце рахунак]] або [[Special:UserLogin|зайдзіце ў сістэму]], каб вас больш не блыталі з іншымі ананімнымі ўдзельнікамі.''",
        "noarticletext": "Старонка не ўтрымлівае тэксту. Вы можаце [[Special:Search/{{PAGENAME}}|пашукаць гэткую назву]] ў іншых старонках ці <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах],\nабо [{{fullurl:{{FULLPAGENAME}}|action=edit}} папрацаваць з гэтай старонкай]</span>.",
        "noarticletext-nopermission": "Старонка не ўтрымлівае тэксту.\nВы можаце [[Special:Search/{{PAGENAME}}|пашукаць гэткую назву]] ў іншых старонках,\nці <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах]</span>, але вы не маеце дазволу на стварэнне гэтай старонкі.",
        "copyrightwarning2": "Заўважце, што кожны ўклад на {{SITENAME}} можа быць папраўлены, зменены або выдалены іншымі ўдзельнікамі. Калі вы не жадаеце, каб вашыя матэрыялы бязлітасна правіліся, то і не давайце іх сюды.<br />\nТаксама вы нам абяцаеце, што напісалі гэта самі, або скапіравалі з рэсурсу, які знаходзіцца ў публічнай уласнасці, або з аналагічнага свабоднага рэсурсу (бач падрабязнасці на $1).\n'''НЕ КЛАДЗІЦЕ СЮДЫ, БЕЗ АДПАВЕДНАГА ДАЗВОЛУ, МАТЭРЫЯЛУ, ЯКІ АХОЎВАЕЦЦА АЎТАРСКІМ ПРАВАМ!'''",
        "longpageerror": "'''Памылка: Аб’ём тэксту, які Вы спрабуеце запісаць складае $1 {{PLURAL:$1|кілабайт|кілабайты|кілабайтаў}}, што болей устаноўленага абмежавання на $2 {{PLURAL:$2|кілабайт|кілабайты|кілабайтаў}}.'''\nСтаронка не можа быць захаваная.",
        "readonlywarning": "<strong>Увага: зараз вы не можаце запісаць свае праўкі, таму што база звестак зачынена на абслугоўванне.</strong>\nМагчыма, варта перанесці ваш тэкст у асобны файл і запісаць на потым.\n\nАдміністратар, які зачыніў базу, растлумачыў гэта так: $1",
-       "protectedpagewarning": "'''УВАГА: старонка пастаўленая пад ахову, таму яе могуць правіць толькі адміністратары.'''\nНіжэй паказаны апошні запіс з адпаведнага журналу:",
-       "semiprotectedpagewarning": "'''Увага:''' старонка пастаўленая пад ахову, таму яе могуць правіць толькі рэгістраваныя ўдзельнікі («паў-ахова»). Ніжэй паказаны апошні запіс з адпаведнага журналу:",
+       "protectedpagewarning": "'''УВАГА: старонка пастаўлена пад ахову, таму яе могуць правіць толькі адміністратары.'''\nНіжэй паказаны апошні запіс з адпаведнага журнала:",
+       "semiprotectedpagewarning": "'''Увага:''' старонка пастаўлена пад ахову, таму яе могуць правіць толькі зарэгістраваныя ўдзельнікі («паў-ахова»). Ніжэй паказаны апошні запіс з адпаведнага журнала:",
        "cascadeprotectedwarning": "'''Увага:''' гэтая старонка ахоўваецца, таму яе могуць правіць толькі ўдзельнікі з правамі адміністратара. Прычына аховы: улучэнне гэтай старонкі ў {{PLURAL:$1|старонку, якая стаіць|старонкі, якія стаяць}} пад каскаднай аховай:",
-       "titleprotectedwarning": "'''УВАГА: старонка пастаўленая пад ахову, таму яе могуць ствараць толькі ўдзельнікі з [[Special:ListGroupRights|адмысловымі правамі]].'''\nНіжэй паказаны апошні запіс з адпаведнага журналу:",
+       "titleprotectedwarning": "'''УВАГА: старонка пастаўлена пад ахову, таму яе могуць ствараць толькі ўдзельнікі з [[Special:ListGroupRights|адмысловымі правамі]].'''\nНіжэй паказаны апошні запіс з адпаведнага журнала:",
        "templatesused": "Шабло{{PLURAL:$1|н|ны}} на гэтай старонцы:",
        "templatesusedpreview": "Шабло{{PLURAL:$1|н у|ны ў}} гэтым перадпаказе:",
        "templatesusedsection": "Шабло{{PLURAL:$1|н у|ны ў}} гэтым раздзеле:",
        "edit-hook-aborted": "Праўка спынена хукам (hook).\nТлумачэнняў не было.",
        "edit-gone-missing": "Не ўдалося абнавіць старонку.\nЗдаецца, што яна была сцёртая.",
        "edit-conflict": "Канфлікт правак.",
-       "edit-no-change": "Вашая праўка была праігнараваная, таму што не мяняўся тэкст.",
+       "edit-no-change": "Ваша праўка была праігнаравана, таму што тэкст не памяняўся.",
        "postedit-confirmation-created": "Створана старонка.",
        "postedit-confirmation-restored": "Старонка адноўлена.",
        "postedit-confirmation-saved": "Ваша праўка запісана.",
        "mergehistory-empty": "Няма версій, якія можна аб'яднаць.",
        "mergehistory-done": "$3 {{PLURAL:$3|версія|версій}} $1 паспяхова аб'яднаныя ў склад [[:$2]].",
        "mergehistory-fail": "Немагчыма аб'яднаць гісторыі, праверце зададзеныя назву і час.",
-       "mergehistory-fail-toobig": "Ð\9dемагÑ\87Ñ\8bма Ð²Ñ\8bканаÑ\86Ñ\8c Ð·Ð»Ñ\96Ñ\86Ñ\86Ñ\91 Ð³Ñ\96Ñ\81Ñ\82оÑ\80Ñ\8bй, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð±Ð¾Ð»Ñ\8cÑ\88 Ð·Ð° Ð»Ñ\96мÑ\96Ñ\82 Ñ\83 $1 {{PLURAL:$1|веÑ\80Ñ\81Ñ\96Ñ\8e|веÑ\80Ñ\81Ñ\96Ñ\96|веÑ\80Ñ\81Ñ\96й}} Ñ\82Ñ\80Ñ\8dба Ð¿ÐµÑ\80аноÑ\81Ñ\96Ñ\86Ñ\8c.",
+       "mergehistory-fail-toobig": "Ð\9dемагÑ\87Ñ\8bма Ð°Ð±'Ñ\8fднаÑ\86Ñ\8c Ð³Ñ\96Ñ\81Ñ\82оÑ\80Ñ\8bÑ\96 Ð¿Ñ\80авак, Ð±Ð¾ Ð´Ð»Ñ\8f Ð³Ñ\8dÑ\82ага Ñ\82Ñ\80Ñ\8dба Ð¿ÐµÑ\80анеÑ\81Ñ\86Ñ\96 Ð±Ð¾Ð»Ñ\8cÑ\88 Ð·Ð° Ð»Ñ\96мÑ\96Ñ\82 Ñ\83 $1 {{PLURAL:$1|веÑ\80Ñ\81Ñ\96Ñ\8e|веÑ\80Ñ\81Ñ\96Ñ\96|веÑ\80Ñ\81Ñ\96й}}.",
        "mergehistory-no-source": "Не існуе крынічная старонка $1.",
        "mergehistory-no-destination": "Не існуе мэтавая старонка $1.",
        "mergehistory-invalid-source": "Крынічная старонка павінна мець карэктную назву.",
        "recentchangesdays-max": "(найбольш $1 {{PLURAL:$1|дзень|дзён}})",
        "recentchangescount": "Прадвызначаная колькасць правак дзеля паказу:",
        "prefs-help-recentchangescount": "Гэта ўключае ў сябе апошнія змены, гісторыі старонак, журналы.",
-       "prefs-help-watchlist-token2": "Гэта сакрэтны ключ к сеціўнай стужцы з вашага спісу назірання.\nКожны, хто ведае гэты ключ, будзе мець магчымасць чытаць ваш спіс назірання, таму не дзяліцеся ім.\nКалі трэба, можна [[Special:ResetTokens|скінуць яго]].",
+       "prefs-help-watchlist-token2": "Гэта сакрэтны ключ к сеціўнай стужцы з вашага спіса назірання.\nКожны, хто ведае гэты ключ, будзе мець магчымасць чытаць ваш спіс назірання, таму не дзяліцеся ім.\nКалі трэба, можна [[Special:ResetTokens|скінуць яго]].",
        "savedprefs": "Настройкі замацаваныя.",
        "timezonelegend": "Часавы пояс:",
        "localtime": "Мясцовы час:",
        "wlheader-showupdated": "Старонкі, якія былі зменены пасля вашага апошняга наведвання, паказаны <strong>абрысам шрыфту</strong>.",
        "wlnote": "Ніжэй {{PLURAL:$1|паказана апошняя <strong>$1</strong> змена|паказаны апошнія <strong>$1</strong> змены|паказаны апошнія <strong>$1</strong> змен}} за {{PLURAL:$2|апошнюю|апошнія|апошнія}} <strong>$2</strong> {{PLURAL:$2|гадзіну|гадзіны|гадзін}}, на момант часу $3 $4.",
        "wlshowlast": "Паказваць апошнія $1 гадз. $2 дзён",
+       "watchlistall2": "усе",
        "watchlist-options": "Магчымасці назірання",
        "watching": "Дапісваецца ў спіс назірання...",
        "unwatching": "Спыняем назіранне...",
        "revertpage-nouser": "Праўкі (імя ўдзельніка схавана) адкочаны да версіі {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Адкочаны праўкі $1; вернута апошняя версія $2.",
        "sessionfailure-title": "Памылка сеансу",
-       "sessionfailure": "Магчыма, ёсць праблемы з вашым сеансам працы ў сістэме. Таму вам было адмоўлена ў выкананні дзеяння, каб засцерагчыся ад захопу сеанса. Націсніце \"Назад\", і перачытайце старонку, з якой вы сюды прыйшлі, тады паспрабуйце нанова.",
+       "sessionfailure": "Магчыма, ёсць праблемы з вашым сеансам працы ў сістэме. Таму вам было адмоўлена ў выкананні дзеяння, каб засцерагчыся ад захопу сеанса.\n\nВярніцеся на папярэднюю старонку, перазагрузіце яе і тады паспрабуйце зноў.",
        "protectlogpage": "Журнал аховы",
        "protectlogtext": "Ніжэй прыведзены журнал змен абароны старонкі.\nВы можаце таксама прагледзець [[Special:ProtectedPages|пералік старонак пад аховай]].",
        "protectedarticle": "пад аховай «[[$1]]»",
        "prot_1movedto2": "[[$1]] перанесена ў [[$2]]",
        "protect-badnamespace-title": "Прастора імёнаў без аховы",
        "protect-badnamespace-text": "Старонкі ў гэтай прасторы імёнаў не могуць знаходзіцца пад аховай.",
-       "protect-norestrictiontypes-text": "Старонка не можа ахоўвацца, таму што недаступны тыпы абмежавання.",
+       "protect-norestrictiontypes-text": "Старонка не можа ахоўвацца, бо для яе няма даступных тыпаў абмежавання.",
        "protect-norestrictiontypes-title": "Неахоўвальная старонка",
        "protect-legend": "Пацверджанне пачатку аховы",
        "protectcomment": "Прычына:",
        "protect-unchain-permissions": "Адкрыць падрабязныя магчымасці аховы",
        "protect-text": "Тут можна пабачыць і паправіць узровень аховы для старонкі '''$1'''.",
        "protect-locked-blocked": "Вы заблакаваны і не можаце мяняць узроўняў аховы. Вось актуальныя настройкі для старонкі '''$1''':",
-       "protect-locked-dblock": "Ð\9dемагÑ\87Ñ\8bма Ð¼Ñ\8fнÑ\8fÑ\86Ñ\8c Ñ\83зÑ\80оÑ\9eнÑ\96 Ð°Ñ\85овÑ\8b, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð±Ð°Ð·Ð° Ð´Ð°Ð½Ñ\8bÑ\85 Ð·Ð°Ñ\80аз Ð·Ð°Ñ\87Ñ\8bнена.\nВось актуальныя настройкі аховы для старонкі '''$1''':",
+       "protect-locked-dblock": "Ð\9dемагÑ\87Ñ\8bма Ð¿Ð°Ð¼Ñ\8fнÑ\8fÑ\86Ñ\8c Ñ\83зÑ\80оÑ\9eнÑ\96 Ð°Ñ\85овÑ\8b, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð±Ð°Ð·Ð° Ð´Ð°Ð½Ñ\8bÑ\85 Ð·Ð°Ñ\80аз Ð·Ð°Ð±Ð»Ð°ÐºÑ\96Ñ\80авана.\nВось актуальныя настройкі аховы для старонкі '''$1''':",
        "protect-locked-access": "Ваш рахунак не мае правоў, патрэбных каб мяняць ахову старонкі.\nВось актуальныя настройкі для старонкі '''$1''':",
        "protect-cascadeon": "Старонка зараз ахоўваецца, таму што ўлучана ў наступн{{PLURAL:$1|ую старонку, на якую|ыя старонкі, на якія}} пастаўлена каскадная ахова. Можна змяніць узровень аховы гэтай старонкі, але вынікаў каскаднай аховы гэта не пераможа.",
        "protect-default": "Дазваляць усім удзельнікам",
        "protect-expiring-local": "канчацца $1",
        "protect-expiry-indefinite": "бясконца",
        "protect-cascade": "Каскад - ахоўваць таксама і ўсе тыя старонкі, які ўлучаюцца ў гэтую.",
-       "protect-cantedit": "Вы не можаце змяніць узроўню засцерагання гэтай старонкі, таму што не маеце дазволу, каб правіць яе.",
+       "protect-cantedit": "Вы не можаце змяніць узровень аховы гэтай старонкі, таму што не маеце дазволу правіць яе.",
        "protect-othertime": "Іншы час:",
        "protect-othertime-op": "іншы час",
        "protect-existing-expiry": "Вызначаны час сканчэння: $3, $2",
        "change-blocklink": "змяніць блок",
        "contribslink": "уклад",
        "emaillink": "адправіць ліст",
-       "autoblocker": "Ð\90Ñ\9eÑ\82амаÑ\82Ñ\8bÑ\87нÑ\8b Ð±Ð»Ð¾Ðº, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð²Ð°Ñ\88Ñ\8bм Ð°Ð´Ñ\80аÑ\81ам IP Ð½Ñ\8fдаÑ\9eна ÐºÐ°Ñ\80Ñ\8bÑ\81Ñ\82аÑ\9eÑ\81Ñ\8f \"[[User:$1|$1]]\".\nÐ\91лакаванне $1 Ð¿Ð°Ñ\82лÑ\83маÑ\87ана Ñ\82ак: \"$2\"",
+       "autoblocker": "Ð\90Ñ\9eÑ\82амаÑ\82Ñ\8bÑ\87нÑ\8b Ð±Ð»Ð¾Ðº, Ñ\82амÑ\83 Ñ\88Ñ\82о Ð²Ð°Ñ\88Ñ\8bм Ð°Ð´Ñ\80аÑ\81ам IP Ð½Ñ\8fдаÑ\9eна ÐºÐ°Ñ\80Ñ\8bÑ\81Ñ\82аÑ\9eÑ\81Ñ\8f \"[[User:$1|$1]]\".\nÐ\9fÑ\80Ñ\8bÑ\87Ñ\8bна Ð±Ð»Ð°ÐºÑ\96Ñ\80оÑ\9eкÑ\96 Ñ\9eдзелÑ\8cнÑ\96ка $1: \"$2\"",
        "blocklogpage": "Журнал блокаў",
        "blocklog-showlog": "{{GENDER:$1|Гэты ўдзельнік ужо блакаваўся|Гэта ўдзельніца ўжо блакавалася}} раней.\nЖурнал блакіровак прыведзены ніжэй:",
        "blocklog-showsuppresslog": "Гэты ўдзельнік ужо заблакаваны і скрыты. Журнал утойвання прыведзены ніжэй:",
        "ipb-otherblocks-header": "{{PLURAL:$1|Іншая блакіроўка|Іншыя блакіроўкі}}",
        "unblock-hideuser": "Вы не можаце разблакаваць гэтага ўдзельніка, бо яго імя было ўтоена.",
        "ipb_cant_unblock": "Памылка: не знойдзены блок з ID $1. Магчыма, ён ўжо быў зняты.",
-       "ipb_blocked_as_range": "Ð\9dелÑ\8cга Ð·Ð½Ñ\8fÑ\86Ñ\8c Ð±Ð»Ð¾Ðº Ð· IP-адÑ\80аÑ\81Ñ\83 $1, Ñ\82амÑ\83 Ñ\88Ñ\82о Ñ\91н Ð·Ð°Ð±Ð»Ð°ÐºÐ°Ð²Ð°Ð½Ñ\8b Ð½Ðµ Ð½Ð°Ñ\9eпÑ\80оÑ\81Ñ\82, Ð°Ð»Ðµ Ñ\8fк Ñ\87аÑ\81Ñ\82ка Ð°Ð±Ñ\81Ñ\8fгÑ\83 $2; Ñ\82ой Ð°Ð±Ñ\81Ñ\8fг, Ñ\83 Ñ\81ваÑ\8e Ñ\87аÑ\80гÑ\83, Ð¼Ð¾Ð¶Ð½Ð° Ñ\80азблакоÑ\9eваць.",
+       "ipb_blocked_as_range": "Ð\9fамÑ\8bлка: Ð\9dелÑ\8cга Ñ\80азблакÑ\96Ñ\80аваÑ\86Ñ\8c IP-адÑ\80аÑ\81 $1, Ð±Ð¾ Ñ\91н Ð±Ñ\8bÑ\9e Ð·Ð°Ð±Ð»Ð°ÐºÑ\96Ñ\80аванÑ\8b Ð½Ðµ Ð½Ð°Ð¿Ñ\80амÑ\83Ñ\8e, Ð° Ñ\8fк Ñ\87аÑ\81Ñ\82ка Ð°Ð±Ñ\81Ñ\8fгÑ\83 Ð°Ð´Ñ\80аÑ\81оÑ\9e $2, Ñ\8fкÑ\96 Ð¼Ð¾Ð¶Ð½Ð° Ñ\80азблакÑ\96Ñ\80аваць.",
        "ip_range_invalid": "Няправільны абсяг IP.",
        "ip_range_toolarge": "Блакіроўкі дыяпазонаў звыш /$1 забаронены.",
        "proxyblocker": "Блакіратар проксі",
-       "proxyblockreason": "Ваш адрас IP заблакаваны, таму што ён належыць да ліку адкрытых проксі.\nГэта сур'ёзная праблема бяспекі; паведамце пра гэта свайму Інтэрнет-правайдэру або ў службу тэхнічнай падтрымкі.",
+       "proxyblockreason": "Ваш адрас IP заблакіраваны, таму што ён адпавядае адкрытаму проксі-серверу.\nГэта сур'ёзная праблема бяспекі; паведаміце пра гэта свайму Інтэрнет-правайдэру або ў службу тэхнічнай падтрымкі.",
        "sorbsreason": "Ваш адрас IP знаходзіцца ў спісе забароненых адкрытых проксі, якім карыстаецца {{SITENAME}}.",
        "sorbs_create_account_reason": "Ваш адрас IP знаходзіцца ў спісе забароненых адкрытых проксі, якім карыстаецца {{SITENAME}}.\nВы не можаце рэгістравацца",
        "xffblockreason": "IP-адрас, прыведзены ў загалоўку X-Forwarded-For, або ваш, або проксі-сервера, які вы выкарыстоўваеце, быў заблакаваны. Першапачаткова блок патлумачаны так: $1",
        "movepage-moved-redirect": "Была створана перасылка.",
        "movepage-moved-noredirect": "Не была створаная перасылка.",
        "articleexists": "Старонка з такой назвай ужо існуе, або\nвамі выбрана недапушчальнае імя.\nВыберыце іншае імя.",
-       "cantmove-titleprotected": "Немагчыма перанесці старонку пад гэтую назву, таму што назва ахоўваецца ад стварэння",
+       "cantmove-titleprotected": "Немагчыма перанесці старонку пад гэтую назву, таму што назва ахоўваецца ад стварэння.",
        "movetalk": "Перанесці таксама старонку размоў",
        "move-subpages": "Таксама перанесці пад-старонкі (да ўзроўню $1)",
        "move-talk-subpages": "Таксама перанесці пад-старонкі размовы (да ўзроўню $1)",
        "thumbnail_image-type": "Дадзены тып выявы не падтрымліваецца",
        "thumbnail_gd-library": "Няпоўная канфігурацыя бібліятэкі GD, адсутнічае функцыя $1",
        "thumbnail_image-missing": "Хутчэй за ўсё, адсутнічае файл $1",
-       "thumbnail_image-failure-limit": "Занадта шмат няўдалых спробаў ($1 ці болей) стварыць гэту мініяцюру, за апошні час. Калі ласка, паспрабуйце пазней.",
+       "thumbnail_image-failure-limit": "Занадта шмат нядаўніх няўдалых спроб ($1 ці болей) стварыць гэту мініяцюру. Калі ласка, паспрабуйце пазней.",
        "import": "Імпартаваць старонкі",
        "importinterwiki": "Імпарт Transwiki",
        "import-interwiki-text": "Выбар вікі і назвы старонкі дзеля імпарту.\nДаты версій і імёны аўтараў будуць захаваныя.\nУсе транс-вікавыя імпарты запісваюцца ў [[Special:Log/import|журнале імпартаў]].",
        "deletedrevision": "Сцёрта старая версія $1",
        "filedeleteerror-short": "Памылка пры сціранні файла: $1",
        "filedeleteerror-long": "Памылкі пры спробе сцірання файла:\n\n$1",
-       "filedelete-missing": "Не быў сцёрты азначаны файл \"$1\", таму што не быў знойдзены.",
+       "filedelete-missing": "Немагчыма выдаліць файл \"$1\", таму што ён не існуе.",
        "filedelete-old-unregistered": "Не знойдзена ў базе даных азначаная версія файла \"$1\".",
        "filedelete-current-unregistered": "Не знойдзены ў базе даных азначаны файл \"$1\".",
        "filedelete-archive-read-only": "Немагчыма для веб-сервера запісаць у архіўны каталог \"$1\".",
        "years": "{{PLURAL:$1|$1 год|$1 гады|$1 гадоў}}",
        "ago": "$1 назад",
        "just-now": "толькі што",
-       "hours-ago": "$1 {{PLURAL:$1|гадзіну|гадзіны|гадзін}} таму",
-       "minutes-ago": "$1 {{PLURAL:$1|мінуту|мінуты|мінут}} таму",
+       "hours-ago": "$1 {{PLURAL:$1|гадзіну|гадзіны|гадзін}} назад",
+       "minutes-ago": "$1 {{PLURAL:$1|мінуту|мінуты|мінут}} назад",
        "seconds-ago": "$1 {{PLURAL:$1|секунду|секунды|секунд}} назад",
        "monday-at": "У панядзелак а $1",
        "tuesday-at": "У аўторак а $1",
        "autosumm-new": "Новая старонка: '$1'",
        "autosumm-newblank": "Створана пустая старонка",
        "lag-warn-normal": "Змены, зробленыя менш за $1 {{PLURAL:$1|сек.|сек.}} таму назад, могуць не трапіць у гэты спіс.",
-       "lag-warn-high": "З прычыны моцных затрымак на серверы баз звестак, змены, зробленыя менш за $1 {{PLURAL:$1|сек.|сек.}} таму назад, могуць не трапіць у гэты спіс.",
+       "lag-warn-high": "З прычыны моцных затрымак на серверы баз звестак, змены, зробленыя менш за $1 {{PLURAL:$1|секунду|секунды|секунд}} назад, могуць не трапіць у гэты спіс.",
        "watchlistedit-normal-title": "Спіс назірання",
        "watchlistedit-normal-legend": "Выдаленне складнікаў са спіса назірання",
        "watchlistedit-normal-explain": "Назвы старонак з ліку назіраных паказаныя ніжэй. Каб нешта сцерці, адзначце клетку побач з адпаведным радком, пасля чаго націсніце \"Выняць складнікі\". Таксама можна правіць гэты спіс непасрэдна, [[Special:EditWatchlist/raw|без афармлення]].",
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 2091b9f..c62206b 100644 (file)
@@ -30,6 +30,7 @@
        "tog-hideminor": "Sakrij manje izmjene u spisku nedavnih izmjena",
        "tog-hidepatrolled": "Sakrij patrolirane izmjene u nedavnim promjenama",
        "tog-newpageshidepatrolled": "Sakrij patrolirane stranice sa spiska novih stranica",
+       "tog-hidecategorization": "Sakrij kategorizaciju stranica",
        "tog-extendwatchlist": "Proširi spisak praćenja za pogled svih izmjena, ne samo nedavnih",
        "tog-usenewrc": "Grupiraj izmjene po stranicama sa nedavnih izmjena i praćenih članaka",
        "tog-numberheadings": "Automatski numeriši podnaslove",
@@ -59,6 +60,7 @@
        "tog-watchlisthideliu": "Sakrij izmjene prijavljenih korisnika sa spiska praćenih članaka",
        "tog-watchlisthideanons": "Sakrij izmjene anonimnih korisnika sa spiska praćenih članaka",
        "tog-watchlisthidepatrolled": "Sakrij patrolirane izmjene sa spiska praćenja",
+       "tog-watchlisthidecategorization": "Sakrij kategorizaciju stranica",
        "tog-ccmeonemails": "Pošalji mi kopije e-pošte koju pošaljem drugim korisnicima",
        "tog-diffonly": "Ne prikazuj sadržaj stranice ispod razlika",
        "tog-showhiddencats": "Prikaži skrivene kategorije",
        "createacct-benefit-body2": "{{PLURAL:$1|stranica|stranice|stranica}}",
        "createacct-benefit-body3": "nedavnih {{PLURAL:$1|doprinosa}}",
        "badretype": "Šifre koje ste unijeli se ne poklapaju.",
+       "usernameinprogress": "Račun za ovo korisničko ime već se pravi. Molimo sačekajte.",
        "userexists": "Korisničko ime je već u upotrebi.\nIzaberite drugo.",
        "loginerror": "Greška pri prijavljivanju",
        "createacct-error": "Došlo je do greške pri otvaranju naloga",
        "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.",
+       "changeemail-nochange": "Molimo unesite drugu adresu e-pošte.",
        "resettokens": "Resetovanje žetona",
        "resettokens-text": "Možete ponovno postaviti tokene koji će vam omogućiti pristup određenim privatnim podacima povezanim sa vašim računom ovdje.\n\nTrebali bi to učiniti ako ih mimo volje podijelite s nekim ili ako je vaš račun ugrožen.",
        "resettokens-no-tokens": "Nema žetona za resetovanje.",
        "permissionserrors": "Greška pri odobrenju",
        "permissionserrorstext": "Nemate dopuštenje za ovu radnju iz {{PLURAL:$1|sljedećeg razloga|sljedećih razloga}}:",
        "permissionserrorstext-withaction": "Nemate dopuštenje da $2, iz {{PLURAL:$1|sljedećeg|sljedećih}} razloga:",
+       "contentmodelediterror": "Ne možete urediti ovu izmjenu jer je njen model sadržaja <code>$1</code>, a trenutni model sadržaja stranice je <code>$2</code>.",
        "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",
+       "moveddeleted-notice-recent": "Žao nam je, ova stranica je nedavno obrisana (u prethodna 24 sata).\nNiže su navedeni zapisnici brisanja i premještanja.",
+       "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]",
        "search-category": "(kategorija $1)",
        "search-file-match": "(podudara se sadržaj datoteke)",
        "search-suggest": "Da li ste mislili: $1",
+       "search-rewritten": "Prikazujem rezultate za $1. Umjesto toga potraži $2.",
        "search-interwiki-caption": "Srodni projekti",
        "search-interwiki-default": "$1 rezultati:",
        "search-interwiki-more": "(više)",
        "showingresultsinrange": "Ispod {{PLURAL:$1|je prikazan <strong>1</strong> rezultat|su prikazana <strong>$1</strong> rezultata|je prikazano <strong>$1</strong> rezultata}}, u rasponu od <strong>$2</strong> do <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> od <strong>$3</strong>|Rezultati <strong>$1 - $2</strong> od <strong>$3</strong>}}",
        "search-nonefound": "Nisu pronađeni rezultati koji odgovaraju upitu.",
+       "search-nonefound-thiswiki": "Nisu pronađeni rezultati koji odgovaraju upitu na ovom sajtu.",
        "powersearch-legend": "Napredna pretraga",
        "powersearch-ns": "Pretraga u imenskim prostorima:",
        "powersearch-togglelabel": "Označi:",
        "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",
        "prefs-help-recentchangescount": "Ovo uključuje nedavne izmjene, historije stranice i zapisnike.",
        "prefs-help-watchlist-token2": "Ovo je tajni ključ sažetka vašeg spiska izmjena. Ko god da ga zna, moći će ga čitati. Ne dijelite ga ni s kim. Ako je potrebno, [[Special:ResetTokens|možete ga ponovo postaviti]].",
        "savedprefs": "Vaše postavke su sačuvane.",
+       "savedrights": "Korisnička prava {{GENDER:$1|korisnika|korisnice}} $1 su sačuvana.",
        "timezonelegend": "Vremenska zona:",
        "localtime": "Lokalno vrijeme:",
        "timezoneuseserverdefault": "Koristi postavke wikija ($1)",
        "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",
        "rcshowhidemine": "$1 moje izmjene",
        "rcshowhidemine-show": "Prikaži",
        "rcshowhidemine-hide": "Sakrij",
+       "rcshowhidecategorization": "$1 kategorizaciju stranice",
        "rcshowhidecategorization-show": "Prikaži",
        "rcshowhidecategorization-hide": "Sakrij",
        "rclinks": "Prikaži posljednjih $1 izmjena u posljednjih $2 dana<br />$3",
        "recentchangeslinked-summary": "Ova posebna stranica prikazuje promjene na povezanim stranicama.\nStranice koje su na vašem [[Special:Watchlist|spisku praćenja]] su '''podebljane'''.",
        "recentchangeslinked-page": "Naslov stranice:",
        "recentchangeslinked-to": "Pokaži promjene stranica koji su povezane sa datom stranicom",
+       "recentchanges-page-added-to-category": "[[:$1]] dodana je u kategoriju",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] i još {{PLURAL:$2|jedna stranica|$2 stranice|$2 stranica}} su dodane u kategoriju",
+       "recentchanges-page-removed-from-category": "[[:$1]] je uklonjena iz kategorije",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] i još {{PLURAL:$2|jedna stranica|$2 stranice|$2 stranica}} su uklonjene iz kategorije",
+       "autochange-username": "Automatska promjena MediaWikija",
        "upload": "Postavi datoteku",
        "uploadbtn": "Postavi datoteku",
        "reuploaddesc": "Vrati me na formular za postavljanje datoteka.",
        "upload-options": "Opcije postavljanja",
        "watchthisupload": "Prati ovu datoteku",
        "filewasdeleted": "Datoteka s ovim nazivom je ranije postavljana i nakon toga obrisana.\nPrije no što nastavite da je ponovo postavite trebate provjeriti $1.",
+       "filename-thumb-name": "Izgleda da je naslov u obliku sličice. Nemojte postavljati sličice nazad na istu wiki. Ako je riječ o nečemu drugom, popravite naziv datoteke tako da ima više značenja i da nema prefiks sličice.",
        "filename-bad-prefix": "Naziv datoteke koju postavljate počinje sa '''\"$1\"''', što je naziv koji obično automatski dodjeljuju digitalni fotoaparati i kamere.\nMolimo Vas da odaberete naziv datoteke koji opisuje njen sadržaj.",
        "filename-prefix-blacklist": " #<!-- ostavite ovu liniju onakvom kakva jeste --> <pre>\n# Sintaksa je slijedeća:\n#   * Sve od karaktera \"#\" pa do kraja je komentar\n#   * Svaka neprazna linija je prefiks za tipična imena datoteka koja automatski dodjeljuje digitalna kamera\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # neki mobilni telefoni\nIMG # generic\nJD # Jenoptik\nMGP # Pentax\nPICT # razni\n #</pre> <!-- ostavite ovu liniju onakvom kakva jeste -->",
        "upload-success-subj": "Uspješno slanje",
        "foreign-structured-upload-form-label-own-work": "Ovo je moje djelo",
        "foreign-structured-upload-form-label-infoform-categories": "Kategorije",
        "foreign-structured-upload-form-label-infoform-date": "Datum",
+       "foreign-structured-upload-form-label-own-work-message-local": "Potvrđujem da postavljam ovu datoteku u skladu s uvjetima korištenja i pravilima o licenciranju na {{GRAMMAR:dativ|{{SITENAME}}}}.",
+       "foreign-structured-upload-form-label-not-own-work-message-local": "Ako niste u stanju postaviti ovu datoteku pod pravilima {{GRAMMAR:genitiv|{{SITENAME}}}}, molimo zatvorite ovaj prozor i pokušajte drugom metodom.",
+       "foreign-structured-upload-form-label-not-own-work-local-local": "Također možete pokušati [[Special:Upload|na standardnoj stranici za postavljanje]].",
+       "foreign-structured-upload-form-label-own-work-message-default": "Shvatam da postavljam ovu datoteku na zajedničko spremište. Potvrđujem da to činim u skladu s uvjetima korištenja i ovdašnjim pravilima licenciranja.",
+       "foreign-structured-upload-form-label-not-own-work-message-default": "Ako niste u stanju postaviti ovu datoteku pod pravilima zajedničkog skladišta, molimo zatvorite ovaj prozor i pokušajte drugom metodom.",
+       "foreign-structured-upload-form-label-not-own-work-local-default": "Možete također pokušati koristeći  [[Special:Upload|stranicu za postavljanje na  {{GRAMMAR:dativ|{{SITENAME}}}}]], ako se ova datoteka može postaviti pod tamošnjim pravilima.",
        "foreign-structured-upload-form-label-own-work-message-shared": "Potvrđujem da posjedujem autorska prava za ovu datoteku i slažem se da ću je neopozivo postaviti na Wikimedia Commons pod licencom [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0], te se slažem s [https://wikimediafoundation.org/wiki/Terms_of_Use Uvjetima korištenja].",
        "foreign-structured-upload-form-label-not-own-work-message-shared": "Ako ne posjedujete autorska prava za ovu datoteku ili je želite postaviti pod drugom licencom, imajte na umu da možete koristiti [https://commons.wikimedia.org/wiki/Special:UploadWizard čarobnjak za postavljanje datoteka na Commonsu].",
        "foreign-structured-upload-form-label-not-own-work-local-shared": "Također možete koristiti [[Special:Upload|stranicu za postavljanje datoteka na projektu {{SITENAME}}]] ako politika stranice dozvoljava postavljanje ove datoteke.",
        "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-hide": "Sakrij",
+       "wlshowtime": "Prikaži posljednjih:",
+       "wlshowhideminor": "manje izmjene",
+       "wlshowhidebots": "botove",
+       "wlshowhideliu": "registrovane korisnike",
+       "wlshowhideanons": "anonimne korisnike",
+       "wlshowhidepatr": "patrolirane izmjene",
+       "wlshowhidemine": "moje izmjene",
        "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:",
        "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",
        "logentry-protect-move_prot": "$1 {{GENDER:$2|premjestio|premjestila}} je postavke zaštite sa $4 na $3",
        "logentry-protect-unprotect": "$1 {{GENDER:$2|uklonio|uklonila}} je zaštitu sa stranice $3",
        "logentry-protect-protect": "$1 {{GENDER:$2|zaštitio|zaštitila}} je $3 $4",
+       "logentry-protect-protect-cascade": "$1 {{GENDER:$2|zaštitio|zaštitila}} je $3 $4 [prenosiva zaštita]",
        "logentry-protect-modify": "$1 {{GENDER:$2|promijenio|promijenila}} je stepen zaštite za $3 $4",
+       "logentry-protect-modify-cascade": "$1 {{GENDER:$2|promijenio|promijenila}} je nivo zaštite za $3 $4 [prenosiva zaštita]",
        "logentry-rights-rights": "$1 {{GENDER:$2|promijenio|promijenila}} je članstvo grupe za $3 iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5",
        "special-characters-title-endash": "crtica",
        "special-characters-title-emdash": "duga crta",
        "special-characters-title-minus": "minus",
+       "mw-widgets-dateinput-no-date": "Nikakav datum nije izabran",
        "mw-widgets-titleinput-description-new-page": "stranica još ne postoji",
-       "mw-widgets-titleinput-description-redirect": "preusmjerava na $1"
+       "mw-widgets-titleinput-description-redirect": "preusmjerava na $1",
+       "api-error-blacklisted": "Molimo izaberite drugačiji, deskriptivniji naziv."
 }
index bac086c..9cc6cd1 100644 (file)
        "showingresultsinrange": "Es mostren a continuació fins a {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resultats}} de #<strong>$2</strong> a #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Resultat <strong>$1</strong> de <strong>$3</strong>|Resultats <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "La cerca no ha donat cap resultat.",
+       "search-nonefound-thiswiki": "No hi ha cap resultat que coincideixi amb la consulta en aquest lloc web.",
        "powersearch-legend": "Cerca avançada",
        "powersearch-ns": "Cerca als espais de noms:",
        "powersearch-togglelabel": "Activar:",
        "group-bot": "Bots",
        "group-sysop": "Administradors",
        "group-bureaucrat": "Buròcrates",
-       "group-suppress": "Oversights",
+       "group-suppress": "Supressors",
        "group-all": "(tots)",
        "group-user-member": "{{GENDER:$1|usuari|usuària}}",
        "group-autoconfirmed-member": "{{GENDER:$1|usuari autoconfirmat|usuària autoconfirmada}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
        "group-sysop-member": "{{GENDER:$1|administrador|administradora}}",
        "group-bureaucrat-member": "{{GENDER:$1|buròcrata}}",
-       "group-suppress-member": "{{GENDER:$1|supervisió}}",
+       "group-suppress-member": "{{GENDER:$1|supressor|supressora}}",
        "grouppage-user": "{{ns:project}}:Usuaris",
        "grouppage-autoconfirmed": "{{ns:project}}:Usuaris autoconfirmats",
        "grouppage-bot": "{{ns:project}}:Bots",
        "grouppage-sysop": "{{ns:project}}:Administradors",
        "grouppage-bureaucrat": "{{ns:project}}:Buròcrates",
-       "grouppage-suppress": "{{ns:project}}:Oversight",
+       "grouppage-suppress": "{{ns:project}}:Supressió",
        "right-read": "Llegir pàgines",
        "right-edit": "Modificar pàgines",
        "right-createpage": "Crear pàgines (que no són de discussió)",
        "uploaded-event-handler-on-svg": "No es permet establir els atributs de gestió d’events <code>$1=\"$2\"</code> als fitxers SVG.",
        "uploaded-href-attribute-svg": "No es permeten els atributs d’«href» <code>&lt;$1 $2=\"$3\"&gt;</code> amb objectius no locals (p. ex., http:// i javascript:) als fitxers SVG.",
        "uploaded-href-unsafe-target-svg": "S’ha trobat un element «href» amb un objectiu no segur <code>&lt;$1 $2=\"$3\"&gt;</code> al fitxer SVG carregat.",
+       "uploaded-animate-svg": "S'ha trobat l'etiqueta «animate» que pot estar canviant l'href mitjançant l'atribut <code>&lt;$1 $2=\"$3\"&gt;</code> en el fitxer SVG carregat.",
        "uploadscriptednamespace": "Aquest fitxer SVG conté un espai de noms \"$1\" no autoritzat",
        "uploadinvalidxml": "No s'ha pogut analitzar l'XML del fitxer carregat.",
        "uploadvirus": "El fitxer conté un virus! Detalls: $1",
        "foreign-structured-upload-form-label-own-work": "Això és el meu propi treball",
        "foreign-structured-upload-form-label-infoform-categories": "Categories",
        "foreign-structured-upload-form-label-infoform-date": "Data",
+       "foreign-structured-upload-form-label-not-own-work-local-local": "També podeu provar [[Special:Upload|la pàgina de càrrega per defecte]].",
+       "foreign-structured-upload-form-label-own-work-message-default": "Entenc que esteu carregant el fitxer en un repositori compartit. Confirmo que ho estic fent seguint les condicions d'ús i les polítiques de llicenciament que s'hi apliquen.",
        "backend-fail-stream": "No s'ha pogut transmetre el fitxer $1.",
        "backend-fail-backup": "No s'ha pogut fer una còpia de seguretat del fitxer $1.",
        "backend-fail-notexists": "El fitxer $1 no existeix.",
        "nopagetext": "La pàgina que heu especificat no existeix.",
        "pager-newer-n": "{{PLURAL:$1|1 posterior|$1 posteriors}}",
        "pager-older-n": "{{PLURAL:$1|anterior|$1 anteriors}}",
-       "suppress": "Oversight",
+       "suppress": "Supressió",
        "querypage-disabled": "Aquesta pàgina especial està desactivada per a no perjudicar el rendiment.",
        "apihelp": "Ajuda de l'API",
        "apihelp-no-such-module": "No s'ha trobat el mòdul \"$1\".",
        "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-hide": "Amaga",
+       "wlshowhideminor": "edicions menors",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "usuaris registrats",
+       "wlshowhideanons": "usuaris anònims",
+       "wlshowhidepatr": "edicions supervisades",
+       "wlshowhidemine": "les meves edicions",
        "watchlist-options": "Opcions de la llista de seguiment",
        "watching": "S'està vigilant...",
        "unwatching": "S'està desatenent...",
        "deletepage": "Elimina la pàgina",
        "confirm": "Confirma",
        "excontent": "el contingut era: «$1»",
-       "excontentauthor": "el contingut era: «$1» (i l'únic coŀlaborador era [[Special:Contributions/$2|$2]])",
+       "excontentauthor": "el contingut era: «$1», i l'únic col·laborador era «[[Special:Contributions/$2|$2]]» ([[User talk:$2|discussió]])",
        "exbeforeblank": "el contingut abans de buidar era: '$1'",
        "delete-confirm": "Elimina «$1»",
        "delete-legend": "Elimina",
        "tags-update-remove-not-allowed-multi": "No es permet eliminar manualment {{PLURAL:$2|la etiqueta següent|les etiquetes següents}}: $1",
        "tags-edit-title": "Modifica les etiquetes",
        "tags-edit-manage-link": "Gestiona les etiquetes",
+       "tags-edit-revision-selected": "{{PLURAL:$1|Revisió seleccionada|Revisions seleccionades}} de [[:$2]]:",
        "tags-edit-existing-tags": "Etiquetes existents:",
        "tags-edit-existing-tags-none": "''Cap''",
        "tags-edit-new-tags": "Etiquetes noves:",
index 8fddbf1..7190ba0 100644 (file)
        "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 427275b..4af8146 100644 (file)
@@ -9,7 +9,8 @@
                        "Palang hernan",
                        "Reedy",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Leeheonjin"
                ]
        },
        "tog-underline": "Binadlisan nga mga sumpay:",
        "unwatch": "Pasagdi",
        "watchlist-details": "{{PLURAL:$1|$1 ka panid|$1 ka mga panid}} ang imong gibantayan, way labot ang mga panid sa hisgot.",
        "wlshowlast": "Ipakita ang miaging $1 ka oras $2 ka mga adlaw",
+       "watchlistall2": "tanan",
+       "watchlist-hide": "Tagoa",
        "watchlist-options": "Mga opsyon sa akong gibantayan",
        "watching": "Gibantayan...",
        "unwatching": "Gipasagdan...",
        "block-log-flags-nocreate": "ang paghimo'g akawnt gipugngan",
        "movepagetext": "Gamit ang form sa ubos moilis og ngalan sa panid, mabalhin ang tanang kaagi niini ngadto sa bag-ong ngalan.\nAng karaang titulo mahimong panid sa redirekta ngadto sa bag-ong titulo.\nPuyde nimo awtomatik nga i-update ang mga redirekta nga mipunterya sa orihinal nga titulo.\nKon dili nimo kini pilion, siguradoha nga i-tsek nimo ang [[Special:DoubleRedirects|duble]] o [[Special:BrokenRedirects|buak nga redirek]].\nIkaw ang responsable sa pagsigurado nga ang mga sumpay padayon nga magpuntirya ngadto sa saktong adtoan.\n\nBantayi nga ang panid '''dili''' ibalhin kon aduna nay panid sa bag-ong titulo, waylabot kon kini walay sulod o kaha redirek lang ug walay kaagi sa pag-usab.\nBuot ipasabot nga puyde nimo ibalik ang pag-ilis sa ngalan ngadto sa karaang ngalan kon ikaw nasayop, ug dili ka maka-overwrite sa panid nga anaa na.\n\n'''Pahibalo!'''\nMahimo nga drastiko ug wala damha nga kausaban kini sa usa ka panid nga popular;\npalihog siguradoha nga nasabtan nimo ang idangat niini bag-o nimo kini ipadayon.",
        "movepagetalktext": "Ang kaubang panid sa hisgot awtomatikong mabalhin uban sa meyn nga panid '''waylabot kon:'''\n*Usa ka may-sulod nga panid sa hisgot anaa na ubos sa bag-ong ngalan, o\n*Imo gi-uncheck ang kahon sa ubos.\n\nSa maong mga kaso, manwal nga imo ibalhin o i-merge ang panid kon gustohon.",
-       "movearticle": "Ibalhin ang panid:",
        "newtitle": "Ngadto sa bag-ong titulo:",
        "move-watch": "Bantayi kining panid",
        "movepagebtn": "Ibalhin ang panid",
index e5f65c0..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": "لابردنی چاودێری...",
        "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..42b7317 100644 (file)
@@ -29,6 +29,7 @@
        "tog-hideminor": "Vurnayışanê şenıkan pela vurnayışanê peyênan de bınımne",
        "tog-hidepatrolled": "Vurnayışanê qontrolkerdeyan pela vurnayışê peyêni de bınımne",
        "tog-newpageshidepatrolled": "Pelanê qontrolkerdeyan lista pelanê neweyan de bınımne",
+       "tog-hidecategorization": "Pera kategorizasyoni bınımne",
        "tog-extendwatchlist": "Lista seyrkerdışi hera bıke ke vurnayışi pêro basê, tenya tewr peyêni nê",
        "tog-usenewrc": "Vurnayışê ke pela vurnayışanê peyênan û lista seyrkerdışi derê inan grube ke.",
        "tog-numberheadings": "Sernuşteyan be xo numre cı şane",
@@ -39,6 +40,7 @@
        "tog-watchdefault": "Pel u dosyeyê ke mı vurnayê lista mına seyrkerdışi ke",
        "tog-watchmoves": "Pel u dosyeyê ke mı kırıştê lista mına seyrkerdışi ke",
        "tog-watchdeletion": "Pel u dosyeyê ke mı esterıtê lista mına seyrkerdışi ke",
+       "tog-watchrollback": "'''Peleyi ke ez peyser ameya cı, lista da temaşi miyan ke'''",
        "tog-minordefault": "Vurnayışanê xo pêrune ''vurnayışo qıckek'' nışan bıde",
        "tog-previewontop": "Verqayti pela nuştışi ser de bımocne",
        "tog-previewonfirst": "Vurnayışo verên de verqayti tım bımocne",
@@ -49,7 +51,7 @@
        "tog-shownumberswatching": "Amarê karberanê seyrkerdoğan bımocne",
        "tog-oldsig": "İmzaya mewcude:",
        "tog-fancysig": "İmza rê mameleyê wikimeqaley bıke (bê gıreyo otomatik)",
-       "tog-uselivepreview": "Verqayto giyane bıgureyne (cerrebane)",
+       "tog-uselivepreview": "Verqayto giyane bıgureyne",
        "tog-forceeditsummary": "Mı ke xulasa veng verdaye, hay a mı ser de",
        "tog-watchlisthideown": "Vurnayışanê mı lista mına seyrkerdışi de bınımne",
        "tog-watchlisthidebots": "Lista seyrkerdışi ra vurnayışanê boti bınımne",
@@ -57,6 +59,7 @@
        "tog-watchlisthideliu": "Lista seyrkerdışi ra vurnayışanê karberanê cıkewteyan bınımne",
        "tog-watchlisthideanons": "Lista seyrkerdışi ra vurnayışanê karberanê anoniman bınımne",
        "tog-watchlisthidepatrolled": "Lista seyrkerdışi ra vurnayışanê qontrolkerdeyan bınımne",
+       "tog-watchlisthidecategorization": "Pera kategorizasyoni bınımne",
        "tog-ccmeonemails": "E-posteyanê ke ez karberanê binan rê rışenan, mı rê kopya inan bırışe",
        "tog-diffonly": "Qıyasê versiyonan de tek ferqan bımocne, pela butıne nê",
        "tog-showhiddencats": "Kategoriyanê dızdiye bımocne",
        "pool-timeout": "Kılitbiyayışi sero wextê vınetışi",
        "pool-queuefull": "Rêza hewze pırra",
        "pool-errorunknown": "Xeta nêzanıtiye",
+       "poolcounter-usage-error": "Xırab karyayış:$1",
        "aboutsite": "Heqa {{SITENAME}} de",
        "aboutpage": "Project:Heqa {{SITENAME}} de",
        "copyright": "Zerrekacı $1 bındı not biya.",
        "disclaimers": "Redê mesuliyeti",
        "disclaimerpage": "Project:Reddê mesuliyetê bıngey",
        "edithelp": "Peştdariya vurnayışi",
+       "helppage-top-gethelp": "Desteg",
        "mainpage": "Pela Seri",
        "mainpage-description": "Pela seri",
        "policy-url": "Project:Terzê hereketi",
        "hidetoc": "bınımne",
        "collapsible-collapse": "Kılm ke",
        "collapsible-expand": "Hera ke",
+       "confirmable-confirm": "{{GENDER:$1|Şıma }} do emeli?",
+       "confirmable-yes": "E",
+       "confirmable-no": "Nê",
        "thisisdeleted": "Bıvêne ya zi $1 peyser biya?",
        "viewdeleted": "$1 bıvêne?",
        "restorelink": "{{PLURAL:$1|jew vurnayış besteriya|$1 vurnayışi besteriyaye}}",
        "viewyourtext": "Na pela '''Vurnayışê ke kerdê''' re şıma şenê kopya kerê:",
        "protectedinterface": "Na pela qandê nusnerin destegê verri dana u kes xırabin nêqero deye kerda kılit.",
        "editinginterface": "'''İqaz:''' Şıma hayo yew pela ke seba nuşteyê meqalanê cayanê bırnayeyan dana, vurnenê.\nVurnayışê na pele karberanê binan rê serpela karberi kena ke bımocno.\nSeba çarnayışi, yardımê [//translatewiki.net/wiki/Main_Page?setlang=diq translatewiki.net]i ra procêdoşkerdışi rê diqet kerên.",
-       "cascadeprotected": "No pel de vurnayiş qedexe biyo, çunke şıma tuşa \"kademeyın\" aqtif kerdo u no {{PLURAL:$1|pelo|pelo}} pawıteyo de xebıtyeno:\n$2",
+       "cascadeprotected": "No pel de vurnayiş qedexe biyo, çunke şıma tuşa \"kademeyın\" aqtif kerdo u no {{PLURAL:$1|pele|pelo}} pawıteyo de xebıtyeno:\n$2",
        "namespaceprotected": "No '''$1''' ca de icazetê şıma çino şıma pel rêz keri.",
        "customcssprotected": "Mısadeyê şıma çıniyo ke na pela CSSi bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.",
        "customjsprotected": "Mısadeyê şıma çıniyo ke na pela Java Scripti bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.",
        "invalidtitle-knownnamespace": "Canemey \"$2\" u metnê \"$3\" xırabo",
        "invalidtitle-unknownnamespace": "Sernameye nêşınasiya yana amraiya canameyo  $1 u metno \"$2\" xırab",
        "exception-nologin": "Şıma cıkewtış nêvıraşto",
-       "exception-nologin-text": "Na pera ya zi na karkerdışi de  na wiki de [[Special:Userlogin|cıkewtış]] icab keno.",
+       "exception-nologin-text": "Na pera ya zi na karkerdışi de  na wiki de cı kewtış icab keno.",
        "exception-nologin-text-manual": "Na pele resayışi re $1 bıgire.",
        "virus-badscanner": "Eyaro şaş: no virus-cıgerayox nêzanyeno: ''$1''",
        "virus-scanfailed": "cıgerayiş tamam nêbı (kod $1)",
        "externaldberror": "Ya database de xeta esta ya zi heqê şıma çino şıma no hesab bıvurni.",
        "login": "Cı kewe",
        "nav-login-createaccount": "Dekew de / hesab vıraze",
-       "userlogin": "Cı kewe / hesab vıraze",
+       "userlogin": "Dekewtış / Hesab vıraştış",
        "userloginnocreate": "Cı kewe",
        "logout": "Bıveciye",
        "userlogout": "Bıveciye",
        "createacct-reason": "Sebeb",
        "createacct-reason-ph": "Şımaye çı xo re zewbi hesab vırazeni?",
        "createacct-submit": "Hesabê xo vıraze",
-       "createacct-another-submit": "Zewbi hesab vıraz",
+       "createacct-another-submit": "Hesab vıraz",
        "createacct-benefit-heading": "{{SITENAME}} meş de merduman şi",
        "createacct-benefit-body1": "{{PLURAL:$1|vurnayış|vurnayışi}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pele|peli}}",
        "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ê.",
        "mergehistory-go": "Vernayîşê yewbiyayeni bimocne",
        "mergehistory-submit": "revizyonî yew bike",
        "mergehistory-empty": "Revizyonî yew nibenê.",
-       "mergehistory-done": "$3 {{PLURAL:$3|revizyonê|revizyonê}} $1 u [[:$2]] yew biyê.",
+       "mergehistory-done": "$3 de {{PLURAL:$3|revizyona|revizyonê}} $1 de [[:$2]] yew {{PLURAL:$3|biy|biye}}.",
        "mergehistory-fail": "Tarixê pele yew nibeno, ma rica kenê ke pel u wext control bike.",
        "mergehistory-no-source": "Pela çımeyê $1 çıniya.",
        "mergehistory-no-destination": "Pela destinasyoni $1 çini yo.",
        "search-result-category-size": "{{PLURAL:$1|1 eza|$1 ezayan}} ({{PLURAL:$2|1 kategoriyê bini|$2 kategirayanê binan}}, {{PLURAL:$3|1 dosya|$3 dosyayan}})",
        "search-redirect": "($1 ra ardış)",
        "search-section": "(qısmê $1)",
+       "search-category": "(kategori $1)",
        "search-file-match": "(zerreyê dosya yewbini gêno)",
        "search-suggest": "To va: $1",
        "search-interwiki-caption": "Proceyê bıray",
        "preferences": "Tercihi",
        "mypreferences": "Tercihi",
        "prefs-edits": "Amarê vurnayışan:",
-       "prefsnologintext2": "Reca kem  sazé tercihané karberi $1.",
+       "prefsnologintext2": "Reca kem sazé tercihané karberi eyar kerdışi re ronıştış akeré",
        "prefs-skin": "Çerme",
        "skin-preview": "Verqayt",
        "datedefault": "Tercih çıniyo",
        "prefs-user-pages": "Pela Karberi",
        "prefs-personal": "Pela karberi",
        "prefs-rc": "Vurnayışê peyêni",
-       "prefs-watchlist": "Lista seyrkerdışi",
+       "prefs-watchlist": "Listey Seyr kerdışi",
        "prefs-watchlist-days": "Rocê ke lista seyrkerdışi de bêrê ramocnaene",
        "prefs-watchlist-days-max": "tewr vêşi $1 {{PLURAL:$1|roci|roci}}",
        "prefs-watchlist-edits": "tewr zêde amarê vurnayışi ke lista seyrkerdışia herakerdiye de bıasê:",
        "prefs-tokenwatchlist": "Morge",
        "prefs-diffs": "Ferqi",
        "prefs-help-prefershttps": "Na tercih, fına dekewten dı bena aktiv.",
+       "prefswarning-warning": "'''Şıma tay vurnayışi kerdi lakin hona qeyd nébiyé. Hetana şıma \"$1\" népıloğne iştirağa şıma do qeyd nébo.'''",
        "email-address-validity-valid": "e-posta adresi raştayo",
        "email-address-validity-invalid": "e-postayo raştay defiye de",
        "userrights": "İdarey heqanê karberan",
        "grouppage-bot": "{{ns:project}}:Boti",
        "grouppage-sysop": "{{ns:project}}:İdarekeri",
        "grouppage-bureaucrat": "{{ns:project}}:Burokrati",
-       "grouppage-suppress": "{{ns:project}}:Qontrol",
+       "grouppage-suppress": "{{ns:project}}:Temaşekar",
        "right-read": "Pera bıwané",
        "right-edit": "Pele bıvurne",
        "right-createpage": "Pele vıraze (pelê ke ê werênayışi niyê)",
        "right-move": "Pele bere",
        "right-move-subpages": "Pele be bınpelanê cı ra pia bere",
        "right-move-rootuserpages": "Pelanê kaberiê rıstımi bere",
+       "right-move-categorypages": "Pela kategoriyer bere",
        "right-movefile": "Dosyan bere",
        "right-suppressredirect": "Wexto ke pelan benê, pelanê çımey ra neql mevıraze",
        "right-upload": "Dosyeyan bar ke",
        "right-protect": "Sewiyanê pawıtışi (mıhafezey) bıvurne u pelanê kılitbiyaiyan sero bıgureye.",
        "right-editprotected": "Pera pawıtiyan sero bıxebteye (bê pawıtena kaskadi (game be game))",
        "right-editsemiprotected": "Xısusi pera timaryayış \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Modela Errek da peler bıvurne",
        "right-editinterface": "Interfaceê karberi sero bıgureye",
        "right-editusercssjs": "CSS u dosyanê JSiê karberanê binan sero bıgureye",
        "right-editusercss": "Dosyanê CSSiê karberanê binan sero bıgureye",
        "rcshowhidemine": "Vurnayışanê mı $1",
        "rcshowhidemine-show": "Bımocne",
        "rcshowhidemine-hide": "Bınımne",
-       "rclinks": "Peyniya $2 rocan de $1 vurnayışan bımocne <br />$3",
+       "rcshowhidecategorization-show": "Bıvin",
+       "rcshowhidecategorization-hide": "Bınımne",
+       "rclinks": "Peyni $2 rocan de $1 vurnayışa bımocne;<br /> $3",
        "diff": "ferq",
        "hist": "verên",
        "hide": "Bınımne",
        "boteditletter": "b",
        "unpatrolledletter": "!",
        "number_of_watching_users_pageview": "[$1 ho seyr keno {{PLURAL:$1|karber|karberî}}]",
-       "rc_categories": "Kategoriyanî rê limît bike (pê \"|\" ciya bike)",
-       "rc_categories_any": "Her yew",
+       "rc_categories": "Limita kategoriyan (pêra cıya ke \"|\")",
+       "rc_categories_any": "Weçinayiya her yeweri",
        "rc-change-size": "$1",
        "rc-change-size-new": "Vurnayışa dıma $1 {{PLURAL:$1|bayt|bayt}}",
        "newsectionsummary": "/* $1 */ qısımo newe",
        "recentchangeslinked-summary": "Lista cêrêne, pela bêlikerdiye rê (ya zi karberanê kategoriya bêlikerdiye rê) pelanê gırêdayoğan de lista de vurnayışê peyênana.\n[[Special:Watchlist|Lista şımaya seyrkedışi de]] peli be nuşteyo '''qolınd''' bêli kerdê.",
        "recentchangeslinked-page": "Nameyê pele:",
        "recentchangeslinked-to": "Heruna pela ke yena dayene, vurnayışanê pelanê ke daye ra gırêdayiyê inan bımocne",
+       "recentchanges-page-added-to-category": "[[:$1]] kategori dekerd de",
+       "recentchanges-page-removed-from-category": "[[:$1]] kategori ra vet",
        "upload": "Dosya bar ke",
        "uploadbtn": "Dosya bar ke",
        "reuploaddesc": "Barkerdışi iptal ke u peyser şo formê barkerdışi",
        "uploaderror": "Ğeletê bar kerdişî",
        "upload-recreate-warning": "'''Diqet: Yew dosya pê ena name wedariya ya zi vurniya.'''\n\nLogê wedariyayiş u berdişi seba ena pele a ti ra xezir kerda:",
        "uploadtext": "Qey barkerdişê dosyayî, formê cêrinî bişuxulne.\nDosyayê ke vera cû bar biyê eke şima qayîl e ney dosyayan bivînê ya zî bigerî biewnê[[Special:FileList|listeyê dosyayê bar bîyaye]] (tekrar) bar bîyaye [[Special:Log/upload|rocaneyê barkerdişî]] de, hewn a şîyaye zî tîya de [[Special:Log/delete|rocaneyê hewn a kerdişî]] pawiyene.\n\nwexta şima qayîl e yew peli re dosya bierzî, formanê cêrinan ra yewi bişuxulne;\n* Qey xebitnayişê dosyayî: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.jpg]]</nowiki></code>'''\n*Heto çep de zerreyê yew qutî de, qey xebitnayişi 'nuşteyê binîn' û 200 pikseli: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.png|200px|thumb|left|alt metin]]</nowiki></code>'''\n* Dosya memocın, dosya te direk gırey bıerz: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosya.ogg]]</nowiki></code>'''",
-       "upload-permitted": "Tipanê dosyayi ke izin ey estê: $1.",
-       "upload-preferred": "Tipanê dosyayi ke tercihe ey estê: $1",
-       "upload-prohibited": "Babetê dosyayanê tometebiyayeyan: $1.",
+       "upload-permitted": "Tipanê dosyayi ke izin ey estê: {{PLURAL:$2|bayt|bayti}}:$1.",
+       "upload-preferred": "Tipanê dosyayi ke tercihe ey estê:{{PLURAL:$2|bayti}} $1",
+       "upload-prohibited": "Babetê dosyayanê tometebiyayeyan: {{PLURAL:$2|bayti}} $1.",
        "uploadlogpage": "Cıkewtışê bar-kerdışi",
        "uploadlogpagetext": "cêr de [[Special:NewFiles|listeyê dosyayan]] estî.",
        "filename": "Namey Dosya",
        "largefileserver": "Ena dosya zaf girde ke server kebul nikeno.",
        "emptyfile": "dosya ya ke şıma bar kerda veng asena, nameyê dosyayi şaş nusyaya belka.",
        "windows-nonascii-filename": "Na wiki namen de dosyayan de xısusi karaxtera karkerdışa peşti nêdana.",
-       "fileexists": "no name de yew dosya ca ra esta.\nEke şıma emin niyê bıvurni bıewne na dosya<strong>[[:$1]]</strong>\n[[$1|thumb]]",
+       "fileexists": "no name de yew dosya ca ra esta.\nEke {{GENDER:|şıma}} emin niyê bıvurni bıewne na dosya<strong>[[:$1]]</strong>\n[[$1|thumb]]",
        "filepageexists": "qey na dosya pelê eşkera kerdışi <strong>[[:$1]]</strong> na adresi de ca ra vıraziyayo labele no name de yew dosya nêasena.\nkılmnuşteyê şıma nêasena eke şıma qayili bıvini gani şıma pê dest bıvurni\n[[$1|resimo qıc]]",
        "fileexists-extension": "zey no nameyê dosyayi yewna nameyê dosyayi esta: [[$2|thumb]]\n* dosyaya ke bar biya: <strong>[[:$1]]</strong>\n* dosyaya ke ca ra esta: <strong>[[:$2]]</strong>\nkerem kere yewna name bıvıcinê",
        "fileexists-thumbnail-yes": "na dosya wina asena ke versiyona yew resmê qıc biyayeya ''(thumbnail)''. [[$1|thumb]]\nkerem kerê <strong>[[:$1]]</strong> na dosya konrol bıkerê .",
        "upload-too-many-redirects": "Eno URL de zaf redireksiyonî esto.",
        "upload-http-error": "Yew ğeletê HTTPî biyo: $1",
        "upload-copy-upload-invalid-domain": "Na domain ra kopyayê barkerdışanê nêbenê.",
+       "upload-dialog-title": "Dosya bar ke",
+       "upload-dialog-button-cancel": "Bıtexelne",
+       "upload-dialog-button-done": "Qeyd ke",
+       "upload-dialog-button-save": "Star ke",
+       "upload-dialog-button-upload": "Bar ke",
+       "upload-form-label-select-file": "Dosya weçine",
+       "upload-form-label-infoform-title": "Teferruati",
+       "upload-form-label-infoform-name": "Name",
+       "upload-form-label-infoform-description": "Şınasnayış",
+       "upload-form-label-usage-title": "Karfinayış",
+       "upload-form-label-usage-filename": "Namey dosya",
+       "foreign-structured-upload-form-label-own-work": "Ena aite mına",
+       "foreign-structured-upload-form-label-infoform-categories": "Kategoriy",
+       "foreign-structured-upload-form-label-infoform-date": "Tarix",
        "backend-fail-stream": "$1 nê vırazeyê",
        "backend-fail-backup": "$1 nê wendeyê",
        "backend-fail-notexists": "Dosyaya $1 çıniya.",
        "randomincategory": "Ğoseri pera kategoriya",
        "randomincategory-invalidcategory": "\"$1\" yew nameyê kategoriya vêrdiye niyo.",
        "randomincategory-nopages": "Kategori da [[:Category:$1|$1]] de qet  per çıniya.",
+       "randomincategory-category": "Kategori:",
        "randomincategory-submit": "Şo",
        "randomredirect": "Serçarnayışo rastameye",
        "randomredirect-nopages": "Cayê nameyê \"$1\" de serşıkıtışi çıniyê.",
        "double-redirect-fixed-move": "[[$1]] kırışiye.\nNa otomatikmen biye rocaniye û nıka [[$2]] ser şıknena.",
        "double-redirect-fixed-maintenance": "Serkışışteno dıletê [[$1]] ra  pela da [[$2]] vuriyeno.",
        "double-redirect-fixer": "Fixerî redirek bike",
-       "brokenredirects": "Hetenayışê vengi",
+       "brokenredirects": "Hetenayışê xırabey",
        "brokenredirectstext": "Redireksiyonê ey ki pelanê hama çiniyeno ra link dano:",
        "brokenredirects-edit": "bıvurne",
        "brokenredirects-delete": "bestere",
        "withoutinterwiki-submit": "Bımocne",
        "fewestrevisions": "Pelê be senık çımraviyarnayışi",
        "nbytes": "$1 {{PLURAL:$1|bayt|bayti}}",
-       "ncategories": "$1 {{PLURAL:$1|Kategoriye|Kategoriy}}",
+       "ncategories": "$1 {{PLURAL:$1|Kategoriye|Kategoriyi}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikiy}}",
        "nlinks": "$1 {{PLURAL:$1|link|linkî}}",
        "nmembers": "$1 {{PLURAL:$1|eza|ezayan}}",
        "uncategorizedcategories": "Kategoriyê ke kategorize nêbiyê",
        "uncategorizedimages": "Dosyayê ke bê kategoriyê",
        "uncategorizedtemplates": "Şablonê ke bêkategoriyê",
-       "unusedcategories": "Kategoriyê ke nêgureniyê",
+       "unusedcategories": "Kategoriyê ke nêgurénê",
        "unusedimages": "Dosyeyê ke nê xebtênê",
        "wantedcategories": "Kategoriyê ke waziyayê",
        "wantedpages": "Peleye ke waştênê",
        "prefixindex-strip": "Listeya réz bıyayışi",
        "shortpages": "Pelê kılmeki",
        "longpages": "Peleyê dergeki",
-       "deadendpages": "Pelê nêgıredayey",
+       "deadendpages": "Pelé ke pelan de binaré grey cı Ã§Ä±niyo",
        "deadendpagestext": "Ena pelan ke {{SITENAME}} de zerrî ey de link çini yo.",
        "protectedpages": "Pelê pawıtiyey",
        "protectedpages-indef": "têna pawıteyê bêmuddeti",
        "nopagetext": "pelê hedefi ke şıma nişane kerdo çin o.",
        "pager-newer-n": "{{PLURAL:$1|newiyer 1|newiyer $1}}",
        "pager-older-n": "{{PLURAL:$1|deha kehan 1|deha kehan $1}}",
-       "suppress": "Çımpawıten",
+       "suppress": "Vındardış",
        "querypage-disabled": "Na pelaya xısusi,sebeb de performansi ra qefılneyê.",
+       "apihelp": "API desteg",
+       "apihelp-no-such-module": "$1 deyne modul çınya.",
        "booksources": "Çımeyê kıtaban",
        "booksources-search-legend": "Seba çımeyanê kıtaban cı geyre",
        "booksources-isbn": "ISBN:",
        "booksources-text": "listeya cêrıni, keyepelê kitap rotoxan o.",
        "booksources-invalid-isbn": "ISBN raşt nêasena bıewnê çımeyê orjinali, raşt kopya biya nê nêbiyaya?",
        "specialloguserlabel": "Kerdoğ:",
-       "speciallogtitlelabel": "Menzil (sernuşte yana karber):",
+       "speciallogtitlelabel": "Etiket (sername yana {{ns:user}}:namey karberi semedi karberi):",
        "log": "Qeydi",
        "all-logs-page": "Umumi qeydi pêro",
        "alllogstext": "qey {{SITENAME}}i mocnayişê heme rocaneyani.\ntipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyna hessasiyê herfa pil u qıciyi) bıweçine u esayiş qıc kerê.",
        "listgrouprights-addgroup-self-all": "şıma eşkeni hesabê xo re heme gruban têare bıkerî",
        "listgrouprights-removegroup-self-all": "şıma hesabê xo ra eşkeni heme gruban bıveci",
        "listgrouprights-namespaceprotection-namespace": "Heruna nami",
-       "trackingcategories": "Kategoriyê teqibi",
+       "trackingcategories": "Kategoriyê ke çıtiyayé",
        "trackingcategories-msg": "Kategoriya teqibi",
        "trackingcategories-name": "Namey mesaci",
        "trackingcategories-desc": "Kriterê definayışê kategoriye",
        "usermessage-editor": "Mesaj berdoxe sistemi",
        "usermessage-template": "MediaWiki:UserMessage",
        "watchlist": "Lista seyrkerdışi",
-       "mywatchlist": "Lista seyrkerdışi",
+       "mywatchlist": "Listey Seyr kerdışi",
        "watchlistfor2": "Qandê $1 ($2)",
        "nowatchlist": "listeya temaşa kerdıişê şıma de yew madde zi çina.",
        "watchlistanontext": "qey vurnayişê maddeya listeya temaşakerdişi $1.",
        "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-hide": "Bınımne",
+       "wlshowtime": "Peyni bıvin:",
+       "wlshowhideminor": "vurnayışani werdiya",
+       "wlshowhidebots": "botan",
+       "wlshowhideliu": "karberani qeydınan",
+       "wlshowhideanons": "Karberani anoniman",
+       "wlshowhidepatr": "vurnayışani dewriyan",
+       "wlshowhidemine": "vurnayışani mı",
        "watchlist-options": "Tercihê liste da seyri",
        "watching": "Seyr ke...",
        "unwatching": "Seyr meke...",
        "deletepage": "Pele bestere",
        "confirm": "Tesdiq ke",
        "excontent": "Zerreko verén: '$1'",
-       "excontentauthor": "Zerrey cı: '$1' no/na ('[[Special:Contributions/$2|$2]]'  teyna iştıraq kerdo)",
+       "excontentauthor": "Zerrey cı: '$1' no/na ('[[Special:Contributions/$2|$2]]' ([[User talk:$2|talk]])",
        "exbeforeblank": "behsê verê esteriyayişi: '$1'",
        "delete-confirm": "\"$1\" bestere",
        "delete-legend": "Bestere",
        "rollback-success": "vurnayişê no kesi $1 tepiya geriyayo u hetê no\n$2 kesi ra cıwa ver o ke revizyon biyo no revizyon tepiya anciyayo.",
        "sessionfailure-title": "Seans xeripiya",
        "sessionfailure": "cıkewtışê hesabê şıma de yew problem aseno;\nno kar semedê dızdiyê hesabi ibtal biyo.\nkerem kerê \"tepiya\" şiyerê u pel o ke şıma tera ameyî u o pel newe ra bar kerê , newe ra tesel/cereb kerê.",
+       "changecontentmodel-title-label": "Namey pela",
+       "changecontentmodel-model-label": "Newe modela zerreki",
+       "changecontentmodel-reason-label": "Sebeb:",
        "protectlogpage": "Qeydê staryayan",
        "protectlogtext": "Şıma vurnayişê gırewtışê/wedarnayışê pawıtişi vinenê.\nQey malumato ziyede [[Special:ProtectedPages|Peleyê ke star biye]] bewni rê êna .",
        "protectedarticle": "\"[[$1]]\" kılit biyo",
        "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",
        "specialpages-group-maintenance": "Raporê pawıtışi",
        "specialpages-group-other": "Pelê xasiyê bini",
        "specialpages-group-login": "Cı kewe / hesab vıraze",
-       "specialpages-group-changes": "Vurnayişê peni u logan",
-       "specialpages-group-media": "Raporê medya Ã» barkerdışi",
-       "specialpages-group-users": "Karber u heqqî",
+       "specialpages-group-changes": "Vurnayişê penéni u qeydi",
+       "specialpages-group-media": "Raporé Dosyayan u Bar kerdışi",
+       "specialpages-group-users": "Karberi u heqé karberan",
        "specialpages-group-highuse": "Peleyê ke vêşi karênê",
        "specialpages-group-pages": "Listeyê pelan",
        "specialpages-group-pagetools": "Haletê pelan",
        "specialpages-group-wiki": "Melumat u haceti",
-       "specialpages-group-redirects": "Pela xasîyê ke heteneyayê",
+       "specialpages-group-redirects": "Pelé Xısusiyé Hetenayışi",
        "specialpages-group-spam": "haletê spami",
        "specialpages-group-developer": "Xacetanê raverberdoğî",
        "blankpage": "Pela venge",
        "expand_templates_generate_xml": "Dara XML arêdayoği bımocne",
        "expand_templates_generate_rawhtml": "Xam HTML'i bıvin",
        "expand_templates_preview": "Verqayt",
+       "pagelanguage": "Pela zoni weçinayoğ",
+       "pagelang-name": "Pela",
+       "pagelang-language": "Zon",
+       "pagelang-use-default": "Hesıbyaye zoni bıkarne",
+       "pagelang-select-lang": "Zon weçine",
+       "right-pagelang": "Zoni pela bıvurne",
+       "action-pagelang": "Zoni peler bıvurne",
+       "log-name-pagelang": "Qeyd zon vurnayışi",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bayt|$1 bayti}} ($2; $3%)",
+       "mediastatistics-table-mimetype": "Tewra NIME",
        "special-characters-group-latin": "Latin",
        "special-characters-group-latinextended": "latinkiya hêrabiyaye",
        "special-characters-group-ipa": "IPA",
        "special-characters-title-minus": "işaretê kemiye",
        "mw-widgets-dateinput-placeholder-day": "SSSS-AA-RR",
        "mw-widgets-dateinput-placeholder-month": "SSSS-AA",
+       "mw-widgets-titleinput-description-redirect": "$1 ra açarneya",
        "api-error-blacklisted": "Reca keme zewbina weçine, name wa şınasnaye bo."
 }
index 06f82ad..b59c58a 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": "Άτομο",
        "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ή Ï\84Ï\81οÏ\80οÏ\80οίηÏ\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-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": "Εάν δεν είστε σε θέση να ανεβάσετε αυτό το αρχείο στο πλαίσιο των πολιτικών της 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": "Κανένα αρχείο με αυτό το όνομα δεν υπάρχει",
        "wlheader-showupdated": "Σελίδες που έχουν υποστεί αλλαγές από την τελευταία φορά που τις επισκεφθήκατε εμφανίζονται με '''έντονους χαρακτήρες'''.",
        "wlnote": "Παρακάτω είναι {{PLURAL:$1|η πιο πρόσφατη αλλαγή|οι <strong>$1</strong> πιο πρόσφατες αλλαγές}} κατά τη διάρκεια {{PLURAL:$2|της τελευταίας ώρας|των <strong>$2</strong> τελευταίων ωρών}} ως προς τις $3 στις $4.",
        "wlshowlast": "Εμφάνιση των τελευταίων $1 ωρών $2 ημερών",
+       "watchlistall2": "όλα",
+       "watchlist-hide": "Απόκρυψη",
+       "wlshowtime": "Εμφάνιση τελευταίου:",
+       "wlshowhideminor": "μικρές τροποποιήσεις",
+       "wlshowhidebots": "bots",
+       "wlshowhideliu": "εγγεγραμμένοι χρήστες",
+       "wlshowhideanons": "ανώνυμοι χρήστες",
+       "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": "Î\95Ï\80ιλέξÏ\84ε Î±Ï\85Ï\84Ï\8c Ï\84ο Ï\80λαίÏ\83ιο Î³Î¹Î± Î½Î± Î±Ï\80οκÏ\81Ï\8dÏ\88εÏ\84ε Î±Î»Î»Î±Î³Î­Ï\82 Ï\83ε Ï\83ελίδεÏ\82 Î¼Î­Ï\83α Ï\83Ï\84ον ÎµÏ\80ιλεγμένο Ï\87Ï\8eÏ\81ο Î¿Î½Î¿Î¼Î¬Ï\84Ï\89ν (και Ï\84Ï\89ν Ï\83Ï\85Ï\83Ï\87εÏ\84ικÏ\8eν Ï\87Ï\8eÏ\81Ï\89ν Î¿Î½Î¿Î¼Î¬Ï\84Ï\89ν, ÎµÎ¬Î½ ÎµÏ\80ιλεγχθούν)",
+       "tooltip-invert": "ΤικάÏ\81εÏ\84ε Î±Ï\85Ï\84Ï\8c Ï\84ο Ï\80λαίÏ\83ιο Î³Î¹Î± Î½Î± Î±Ï\80οκÏ\81Ï\8dÏ\88εÏ\84ε Î±Î»Î»Î±Î³Î­Ï\82 Ï\83ε Ï\83ελίδεÏ\82 Î¼Î­Ï\83α Ï\83Ï\84ον ÎµÏ\80ιλεγμένο Î¿Î½Î¿Î¼Î±Ï\84οÏ\87Ï\8eÏ\81ο (και Ï\84Ï\89ν Ï\83Ï\85Ï\83Ï\87εÏ\84ικÏ\8eν Î¿Î½Î¿Î¼Î±Ï\84οÏ\87Ï\8eÏ\81Ï\89ν, ÎµÎ¬Î½ ÎµÏ\80ιλεχθούν)",
        "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 Î»Î¯Ï\83Ï\84α με όλες τις ειδικές σελίδες",
+       "tooltip-t-specialpages": "Î\9aαÏ\84άλογοÏ\82 με όλες τις ειδικές σελίδες",
        "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": "Μοντέλο φωτογραφικής μηχανής",
        "watchlistedit-normal-submit": "Αφαίρεση Σελίδων",
        "watchlistedit-normal-done": "{{PLURAL:$1|1 τίτλος|$1 τίτλοι}} αφαιρέθηκαν από τη λίστα παρακολούθησής σας:",
        "watchlistedit-raw-title": "Επεξεργασία πηγαίας λίστας παρακολούθησης",
-       "watchlistedit-raw-legend": "Î\94ιÏ\8cÏ\81θÏ\89Ï\83ε Ï\84ην Ï\80ηγαία Î»Î¯Ï\83Ï\84α παρακολούθησης",
+       "watchlistedit-raw-legend": "Î\95Ï\80εξεÏ\81γαÏ\83ία Ï\80ηγαίαÏ\82 Î»Î¯Ï\83Ï\84αÏ\82 παρακολούθησης",
        "watchlistedit-raw-explain": "Οι σελίδες στη λίστα παρακολούθησής σας φαίνονται παρακάτω και μπορείτε να τις επεξεργαστείτε\nπροσθαφαιρώντας από τη λίστα, έναν τίτλο ανά σειρά. Όταν ολοκληρώσετε την επεξεργασία, κάντε κλικ στο \"{{int:Watchlistedit-raw-submit}}\".\nΜπορείτε επίσης να χρησιμοποιήσετε την [[Special:EditWatchlist|προεπιλεγμένη μέθοδο επεξεργασίας]].",
        "watchlistedit-raw-titles": "Σελίδες:",
        "watchlistedit-raw-submit": "Ενημέρωση Λίστας Παρακολούθησης",
        "htmlform-cloner-create": "Προσθήκη περισσοτέρων",
        "htmlform-cloner-delete": "Αφαίρεση",
        "htmlform-cloner-required": "Απαιτείται τουλάχιστον μία τιμή.",
-       "htmlform-title-not-exists": "Ο τίτλος $1 δεν υπάρχει.",
+       "htmlform-title-badnamespace": "[[:$1]] δεν είναι στο \"{{ns:$2}}\" ονοματοχώρο.",
+       "htmlform-title-not-exists": "Το $1 δεν υπάρχει.",
        "htmlform-user-not-exists": "Δεν υπάρχει χρήστης με όνομα <strong>$1</strong>.",
        "htmlform-user-not-valid": "Το <strong>$1</strong> δεν είναι έγκυρο όνομα χρήστη.",
        "sqlite-has-fts": "$1 με υποστήριξη αναζήτησης πλήρους κειμένου",
        "api-error-stashfailed": "Εσωτερικό σφάλμα: ο διακομιστής απέτυχε να αποθηκεύσει το προσωρινό αρχείο.",
        "api-error-publishfailed": "Εσωτερικό σφάλμα: ο διακομιστής απέτυχε να αποθηκεύσει το προσωρινό αρχείο.",
        "api-error-stasherror": "Παρουσιάστηκε ένα σφάλμα κατά το ανέβασμα του αρχείου στην κρύπτη.",
+       "api-error-stashfilestorage": "Παρουσιάστηκε ένα σφάλμα κατά την αποθήκευση του αρχείου στην κρύπτη.",
        "api-error-stashzerolength": "Ο διακομιστής δεν θα μπορούσε να κρύψει το αρχείο, επειδή είχε μηδενικό μήκος.",
        "api-error-timeout": "Ο διακομιστής δεν αποκρίθηκε εντός του αναμενόμενου χρόνου.",
        "api-error-unclassified": "Προέκυψε ένα άγνωστο σφάλμα.",
index acc50f1..a274fac 100644 (file)
        "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",
        "logentry-suppress-block": "$1 {{GENDER:$2|blocked}} {{GENDER:$4|$3}} with an expiry time of $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} with an expiry time of $5 $6",
        "logentry-import-upload": "$1 {{GENDER:$2|imported}} $3 by file upload",
+       "logentry-import-upload-details": "$1 {{GENDER:$2|imported}} $3 by file upload ($4 {{PLURAL:$4|revision|revisions}})",
        "logentry-import-interwiki": "$1 {{GENDER:$2|imported}} $3 from another wiki",
+       "logentry-import-interwiki-details": "$1 {{GENDER:$2|imported}} $3 from $5 ($4 {{PLURAL:$4|revision|revisions}})",
        "logentry-merge-merge": "$1 {{GENDER:$2|merged}} $3 into $4 (revisions up to $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moved}} page $3 to $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moved}} page $3 to $4 without leaving a redirect",
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..695d5b4 100644 (file)
                        "Laurenslimb",
                        "Tusca",
                        "Tadol",
-                       "Nelson6e65"
+                       "Nelson6e65",
+                       "Matiia"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "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",
+       "watchlist-hide": "Ocultar",
+       "wlshowtime": "Mostrar cambios desde hace:",
+       "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..1a6f6c0 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.",
        "previousrevision": "←Berrikuspen zaharragoa",
        "nextrevision": "Berrikuspen berriagoa→",
        "currentrevisionlink": "Oraingo berrikuspena ikusi",
-       "cur": "orain",
+       "cur": "oraingoa",
        "next": "hurrengoa",
-       "last": "azkena",
+       "last": "aurrekoa",
        "page_first": "lehena",
        "page_last": "azkena",
        "histlegend": "Alderaketa hautatzea: marka itzazu alderatu nahi dituzun bi bertsioak, eta saka ezazu «Enter» edo klika ezazu beheko botoia.<br />\nAzalpenak: '''({{int:cur}})''' = oraingo bertsioarekiko aldeak,\n'''({{int:last}})''' = aurreko bertsioarekiko aldeak, \n'''{{int:minoreditletter}}''' = aldaketa txikia.",
        "difference-title-multipage": "«$1» eta «$2» orrien arteko aldeak",
        "difference-multipage": "(Orrien arteko aldeak)",
        "lineno": "$1. lerroa:",
-       "compareselectedversions": "Hautatutako bertsioak alderatu",
+       "compareselectedversions": "Alderatu hautatutako bertsioak",
        "showhideselectedversions": "Erakutsi/ezkutatu aukeratutako berrikuspenak",
        "editundo": "desegin",
        "diff-empty": "(Ez dago alderik)",
        "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",
+       "watchlist-hide": "Ezkutatu",
+       "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...",
        "spambot_username": "MediaWikiren spam garbiketa",
        "spam_reverting": "$1(e)rako loturarik ez daukan azken bertsiora itzultzen",
        "spam_blanking": "Berrikuspen guztiek $1(e)rako lotura zeukaten, husten",
-       "spam_deleting": "$1(e)ra loturak dituzten errebisio guztiak ezabatzen",
+       "spam_deleting": "''$1'' webgunera loturak dituzte berrikuspen guztiek; ezabatzekoa",
        "simpleantispam-label": "Anti-spam egiaztapena.\nAtal hau <strong>ez</strong> bete!",
        "pageinfo-title": "\"$1\"(r)entzako informazioa",
        "pageinfo-not-current": "Barkatu, errebisio zaharretako informazioa eskaintzea ezinezkoa da.",
index 77ffa1e..e6381ff 100644 (file)
@@ -94,7 +94,7 @@
        "tog-prefershttps": "در حالت ورود به سامانه همواره از اتصال امن استفاده شود",
        "underline-always": "همیشه",
        "underline-never": "هرگز",
-       "underline-default": "پوسته یا مرورگر پیش‌فرض",
+       "underline-default": "پیش‌فرض پوسته یا مرورگر",
        "editfont-style": "سبک قلم جعبهٔ ویرایش:",
        "editfont-default": "پیش‌فرض مرورگر",
        "editfont-monospace": "قلم با فاصلهٔ ثابت",
        "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..73e622f 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",
+       "watchlist-hide": "Piilota",
+       "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...",
        "logentry-block-reblock": "$1 {{GENDER:$2|muutti}} eston asetuksia kohteessa {{GENDER:$4|$3}}. Eston kesto on $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|esti}} käyttäjän {{GENDER:$4|$3}}. Eston kesto on $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|muutti}} eston asetuksia kohteessa {{GENDER:$4|$3}}. Eston kesto on $5 $6",
-       "logentry-import-upload": "$1 {{GENDER:$2|toi}} kohteen $3 tiedostotallennuksella",
-       "logentry-import-interwiki": "$1 {{GENDER:$2|toi}} kohteen $3 muusta wikistä",
+       "logentry-import-upload": "$1 {{GENDER:$2|on tuonut}} kohteen $3 tiedostotallennuksella",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|on tuonut}} kohteen $3 muusta wikistä",
        "logentry-merge-merge": "$1 {{GENDER:$2|yhdisti}} sivun $3 sivuun $4 (versiot $5 saakka)",
        "logentry-move-move": "$1 {{GENDER:$2|siirsi}} sivun $3 uudelle nimelle $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|siirsi}} sivun $3 uudelle nimelle $4 luomatta ohjausta",
index 78e8d39..0c420ae 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]] :",
        "right-noratelimit": "Ne pas être affecté par les limites de taux",
        "right-import": "Importer des pages depuis d'autres wikis",
        "right-importupload": "Importer des pages depuis un fichier",
-       "right-patrol": "Marquer des modifications des autres comme vérifiées",
+       "right-patrol": "Marquer des modifications des autres comme relues",
        "right-autopatrol": "Avoir ses modifications automatiquement marquées comme surveillées",
        "right-patrolmarks": "Voir les marquages de surveillance dans les modifications récentes",
        "right-unwatchedpages": "Voir la liste des pages non suivies",
        "recentchanges-label-newpage": "Cette modification a créé une nouvelle page",
        "recentchanges-label-minor": "Cette modification est mineure.",
        "recentchanges-label-bot": "Cette modification a été effectuée par un robot.",
-       "recentchanges-label-unpatrolled": "Cette modification n'a pas encore été patrouillée.",
+       "recentchanges-label-unpatrolled": "Cette modification n’a pas encore été relue.",
        "recentchanges-label-plusminus": "La taille de la page a changé de ce nombre d’octets.",
        "recentchanges-legend-heading": "'''Légende :'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (voir aussi la [[Special:NewPages|liste des nouvelles pages]]).",
        "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",
+       "watchlist-hide": "Masquer",
+       "wlshowtime": "Période affichée :",
+       "wlshowhideminor": "modifications mineures",
+       "wlshowhidebots": "robots",
+       "wlshowhideliu": "utilisateurs inscrits",
+       "wlshowhideanons": "utilisateurs anonymes",
+       "wlshowhidepatr": "modifications relues",
+       "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..c513637 100644 (file)
        "foreign-structured-upload-form-label-own-work-message-default": "Comprendo que estou a cargar este ficheiro nun repositorio compartido. Confirmo que fago isto seguindo os termos de uso e políticas de licenza existentes alí.",
        "foreign-structured-upload-form-label-not-own-work-message-default": "Se non é capaz de cargar este ficheiro baixo as políticas do repositorio compartido, por favor peche este diálogo e intente outro método.",
        "foreign-structured-upload-form-label-not-own-work-local-default": "Tamén pode interesarlle usar [[Special:Upload|a páxina de carga en {{SITENAME}}]], se este ficheiro pode ser cargado alí baixo as súas políticas.",
+       "foreign-structured-upload-form-label-own-work-message-shared": "Certifico que son o propietario dos dereitos de autor deste ficheiro, e que concordo a liberar irrevocablemente este ficheiro a Wikimedia Commons baixo a licenza [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0], e que concordo cos [https://wikimediafoundation.org/wiki/Terms_of_Use Termos de uso].",
+       "foreign-structured-upload-form-label-not-own-work-message-shared": "Se non posúe os dereitos de autor deste ficheiro, ou quere liberalo baixo unha licenza diferente, considere usar o [https://commons.wikimedia.org/wiki/Special:UploadWizard Asistente de subas de Commons].",
+       "foreign-structured-upload-form-label-not-own-work-local-shared": "Tamén pode interesarlle usar [[Special:Upload|a páxina de carga en {{SITENAME}}]], se o sitio permite a suba deste ficheiro nas súas políticas.",
        "backend-fail-stream": "Non se puido transmitir o ficheiro \"$1\".",
        "backend-fail-backup": "Non se puido facer unha copia de seguridade do ficheiro \"$1\".",
        "backend-fail-notexists": "O ficheiro \"$1\" non existe.",
        "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",
+       "watchlist-hide": "Agochar",
+       "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..9e99881 100644 (file)
        "prefs-help-recentchangescount": "Ovo uključuje nedavne promjene, stare izmjene, i evidencije.",
        "prefs-help-watchlist-token2": "Ovo je tajni ključ prema sažetku Vašeg popisa praćenja. Svaki suradnik kojem je poznat, moći će čitati Vaš popis praćenih stranica. Ne dijelite ga ni s kim. [[Special:ResetTokens|Kliknite ovdje ako ga želite ponovo postaviti]].",
        "savedprefs": "Vaše postavke su sačuvane.",
+       "savedrights": "Suradnička prava {{GENDER:suradnika $1|suradnice $1}} su spremljena.",
        "timezonelegend": "Vremenska zona:",
        "localtime": "Lokalno vrijeme:",
        "timezoneuseserverdefault": "Koristi postavke wikija ($1)",
        "upload-too-many-redirects": "URL je sadržavao previše preusmjeravanja",
        "upload-http-error": "HTTP-pogrješka: $1",
        "upload-copy-upload-invalid-domain": "Kopije postavljenih datoteka nisu dostupne s ove domene.",
+       "upload-dialog-title": "Postavi datoteku",
+       "upload-dialog-button-cancel": "Odustani",
+       "upload-dialog-button-done": "Gotovo",
+       "upload-dialog-button-save": "Spremi",
+       "upload-dialog-button-upload": "Postavi",
+       "upload-form-label-select-file": "Odaberi datoteku",
+       "foreign-structured-upload-form-label-own-work": "Ovo je moje djelo",
+       "foreign-structured-upload-form-label-not-own-work-local-default": "Možete pokušati [[Special:Upload|postaviti datoteku na projektu {{SITENAME}}]], pod uvjetom da može biti tamo postavljena, sukladno pravilima projekta.",
+       "foreign-structured-upload-form-label-own-work-message-shared": "Potvrđujem da posjedujem autorska prava ove datoteke i slažem se da je nepozivo postavljam na Zajednički poslužitelj pod licencijom  [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0], i pristajem na [https://wikimediafoundation.org/wiki/Terms_of_Use Uvjete uporabe].",
+       "foreign-structured-upload-form-label-not-own-work-message-shared": "Ako ne posjedujete autorska prava za ovu datoteku, ili je želite objaviti pod drugom licencijom, razmislite o uporabi [https://commons.wikimedia.org/wiki/Special:UploadWizard Čarobnjaka za postavljanje] na Zajedničkom poslužitelju.",
+       "foreign-structured-upload-form-label-not-own-work-local-shared": "Možete pokušati [[Special:Upload|postaviti datoteku na projektu {{SITENAME}}]], pod uvjetom da je dopušteno postavljanje ove datoteke, sukladno pravilima projekta.",
        "backend-fail-stream": "Ne mogu prikazati datoteku $1.",
        "backend-fail-backup": "Izrada sigurnosne kopije datoteke \"$1\" nije uspjela.",
        "backend-fail-notexists": "Datoteka $1 ne postoji.",
        "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..f902c75 100644 (file)
@@ -48,6 +48,7 @@
        "tog-hideminor": "Apró változtatások elrejtése a friss változtatások lapon",
        "tog-hidepatrolled": "Az ellenőrzött szerkesztések elrejtése a friss változtatások lapon",
        "tog-newpageshidepatrolled": "Ellenőrzött lapok elrejtése az új lapok listájáról",
+       "tog-hidecategorization": "Lapok kategorizálásának elrejtése",
        "tog-extendwatchlist": "A figyelőlistán az összes változtatás látszódjon, ne csak az utolsó",
        "tog-usenewrc": "Szerkesztések csoportosítása oldal szerint a friss változtatásokban és a figyelőlistán",
        "tog-numberheadings": "Fejezetcímek automatikus számozása",
@@ -77,6 +78,7 @@
        "tog-watchlisthideliu": "Bejelentkezett szerkesztők módosításainak elrejtése a figyelőlistáról",
        "tog-watchlisthideanons": "Névtelen szerkesztések elrejtése",
        "tog-watchlisthidepatrolled": "Az ellenőrzött szerkesztések elrejtése",
+       "tog-watchlisthidecategorization": "Lapok kategorizálásának elrejtése",
        "tog-ccmeonemails": "A másoknak küldött e-mailjeimről kapjak másolatot",
        "tog-diffonly": "Ne mutassa a lap tartalmát a lapváltozatok közötti eltérések megtekintésekor",
        "tog-showhiddencats": "Rejtett kategóriák megjelenítése",
        "createacct-reason": "Indoklás",
        "createacct-reason-ph": "Miért hozol létre egy másik fiókot",
        "createacct-submit": "Felhasználói fiók létrehozása",
-       "createacct-another-submit": "Újabb felhasználói fiók létrehozása",
+       "createacct-another-submit": "Fiók létrehozása",
        "createacct-benefit-heading": "A(z) {{SITENAME}}-t hozzád hasonló emberek készítik.",
        "createacct-benefit-body1": "{{PLURAL:$1|szerkesztés|szerkesztés}}",
        "createacct-benefit-body2": "{{PLURAL:$1|lap|lap}}",
        "passwordreset-emailtext-ip": "Valaki (vélhetően Te, a $1 IP-címről) a jelszavad visszaállítását kérte a {{SITENAME}} ($4) oldalon felvett {{PLURAL:$3|fiókban|fiókokban}}. A következő felhasználói {{PLURAL:$3|fiók van|fiókok vannak}} hozzárendelve ehhez az e-mail címhez:\n\n$2\n\n{{PLURAL:$3|Ez az ideiglenes jelszó|Ezek az ideiglenes jelszavak}} $5 nap múlva {{PLURAL:$3|jár|járnak}} le. Jelentkezz be, és cseréld le a jelszavadat. Ha valaki más kérte az emlékeztetőt, vagy eszedbe jutott a régi jelszó, és nem akarod lecserélni a jelszavadat, hagyd figyelmen kívül ezt az üzenetet, és használd a régi jelszavadat.",
        "passwordreset-emailtext-user": "$1 felhasználó jelszó-visszaállítást kért a {{SITENAME}} ($4) oldalon felvett {{PLURAL:$3|fiókban|fiókokban}}. A következő felhasználói {{PLURAL:$3|fiók van|fiókok vannak}} hozzárendelve ehhez az e-mail címhez:\n\n$2\n\n{{PLURAL:$3|Ez az ideiglenes jelszó|Ezek az ideiglenes jelszavak}} $5 nap múlva {{PLURAL:$3|jár|járnak}} le. Jelentkezz be, és cseréld le a jelszavadat. Ha valaki más kérte az emlékeztetőt, vagy eszedbe jutott a régi jelszó, és nem akarod lecserélni a jelszavadat, hagyd figyelmen kívül ezt az üzenetet, és használd a régi jelszavadat.",
        "passwordreset-emailelement": "Felhasználónév: \n$1\n\nIdeiglenes jelszó: \n$2",
-       "passwordreset-emailsent": "Jelszó-visszaállító e-mail elküldve.",
+       "passwordreset-emailsent": "Ha ez egy regisztrált e-mail cím a fiókodhoz, egy jelszó-visszaállító e-mailt küldünk.",
        "passwordreset-emailsent-capture": "Az alább látható jelszó-visszaállító e-mail lett elküldve.",
        "passwordreset-emailerror-capture": "A jelszó-visszaállító e-mail generálása megtörtént, mint az alább látszik, de elküldése a {{GENDER:$2|szerkesztőnek}} nem sikerült: $1",
-       "changeemail": "E-mail cím megváltoztatása",
+       "changeemail": "E-mail cím megváltoztatása vagy eltávolítása",
        "changeemail-header": "A fiókhoz tartozó e-mail cím megváltoztatása",
        "changeemail-no-info": "A lap közvetlen eléréséhez be kell jelentkezned.",
        "changeemail-oldemail": "Jelenlegi e-mail cím:",
        "missingsummary": "'''Emlékeztető:''' Nem adtál meg szerkesztési összefoglalót. Ha összefoglaló nélkül akarod elküldeni a szöveget, kattints újra a mentésre.",
        "selfredirect": "<strong>Figyelem:</strong> Az lapot önmagára készült átirányítani. Lehet, hogy rossz célt adtál meg, vagy rossz oldalt szerkesztesz. Ha ismét a {{int:savearticle}} gombra kattintasz, akkor az átirányítás mégis létrejön.",
        "missingcommenttext": "Kérjük, írj összefoglalót a szerkesztésedhez.",
-       "missingcommentheader": "'''Emlékeztető:''' Nem adtad meg a megjegyzés tárgyát vagy címét.\nHa ismét a „{{int:savearticle}}” gombra kattintasz, akkor a szerkesztésed nélküle lesz elmentve.",
+       "missingcommentheader": "<strong>Emlékeztető:</strong> Nem adtad meg a megjegyzés tárgyát.\nHa ismét a „{{int:savearticle}}” gombra kattintasz, akkor a szerkesztésed nélküle lesz elmentve.",
        "summary-preview": "A szerkesztési összefoglaló előnézete:",
        "subject-preview": "A téma/főcím előnézete:",
        "previewerrortext": "Hiba történt a változások előnézete megjelenítése során.",
        "mergehistory-go": "Egyesíthető szerkesztések mutatása",
        "mergehistory-submit": "Változatok egyesítése",
        "mergehistory-empty": "Nincs egyesíthető változás.",
-       "mergehistory-done": "$1 {{PLURAL:$3|egy|$3}} változata sikeresen egyesítve lett a(z) [[:$2]] lappal.",
+       "mergehistory-done": "$1 $3 változata sikeresen egyesítve lett a(z) [[:$2]] lappal.",
        "mergehistory-fail": "Nem sikerült a laptörténetek egyesítése. Kérlek, ellenőrizd újra az oldalt és a megadott időparamétereket.",
        "mergehistory-fail-toobig": "Nem lehetséges a laptörténetek egyesítése, mivel több mint $1 {{PLURAL:$1|változást}} kellene áthelyezni.",
        "mergehistory-no-source": "Nem létezik forráslap $1 néven.",
        "prefs-watchlist-token": "A figyelőlista kulcsa:",
        "prefs-misc": "Egyéb",
        "prefs-resetpass": "Jelszó megváltoztatása",
-       "prefs-changeemail": "e-mail cím megváltoztatása",
+       "prefs-changeemail": "E-mail cím megváltoztatása vagy eltávolítása",
        "prefs-setemail": "e-mail cím megadása",
        "prefs-email": "Levelezés",
        "prefs-rendering": "Lapok megjelenítése",
        "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-hide": "Elrejtés",
        "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..58b732b 100644 (file)
        "nstab-template": "Կաղապար",
        "nstab-help": "Օգնության էջ",
        "nstab-category": "Կատեգորիա",
+       "mainpage-nstab": "Գլխավոր էջ",
        "nosuchaction": "Նման գործողություն չկա",
        "nosuchactiontext": "URL-ում նշված գործողությունը սխալ է։\nՀնարավոր է դուք վրիպակ եք թույլ տվել URL-ի մուտքագրման ժամանակ կամ հետևել եք սխալ հղմամբ։\nՍա կարող է նաև լինել {{SITENAME}} նախագծում օգտագործվող ծրագրի սխալ։",
        "nosuchspecialpage": "Նման սպասարկող էջ չկա",
        "accountcreatedtext": "[[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|քննարկում]]) մասնակցի հաշիվը ստեղծված է։",
        "createaccount-title": "{{SITENAME}}. մասնակցային հաշվի ստեղծում",
        "createaccount-text": "Ինչ-որ մեկը ստեղծել է «$2» անվանմամբ մասնակցային հաշիվ «$3» գաղտնաբառով {{SITENAME}} ($4) նախագծում՝ նշելով ձեր էլ-հասցեն։ Ձեզ անհրաժեշտ է մտնել համակարգ և փոխել գաղտնաբառը։\n\nԿարող եք անտեսել այս հաղորդագրությունը, եթե հաշիվը ստեղծվել է սխալմամբ։",
-       "login-throttled": "Դուք կատարել եք չափից շատ մուտքի փորձ։\nԽնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։",
+       "login-throttled": "Դուք կատարել եք չափից շատ մուտքի փորձ։\nԽնդրում ենք սպասել $1 կրկին փորձելուց առաջ։",
        "loginlanguagelabel": "Լեզու՝ $1",
        "pt-login": "Մուտք գործել",
        "pt-login-button": "Մտնել",
        "wlheader-showupdated": "Էջերը, որոնք փոփոխվել են ձեր դրանց վերջին այցից հետո բերված են '''թավատառ'''։",
        "wlnote": "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում։",
        "wlshowlast": "Ցուցադրել վերջին $1 ժամերը $2 օրերը",
+       "watchlistall2": "բոլոր",
        "watchlist-options": "Հսկացանկի նախընտրություններ",
        "watching": "Հսկվում է...",
        "unwatching": "Հանվում է հսկումից...",
index 32d7733..5be6bd8 100644 (file)
        "missingarticle-rev": "(numero del version: $1)",
        "missingarticle-diff": "(Diff: $1, $2)",
        "readonly_lag": "Le base de datos ha essite automaticamente blocate durante que le servitores de base de datos secundari se synchronisa con le servitor principal.",
+       "nonwrite-api-promise-error": "Le capite HTTP 'Promise-Non-Write-API-Action' ha essite inviate, ma le requesta se ha dirigite a un modulo API de scriptura.",
        "internalerror": "Error interne",
        "internalerror_info": "Error interne: $1",
        "internalerror-fatal-exception": "Error irreversibile de typo \"$1\"",
        "showingresultsinrange": "In basso es monstrate usque a {{PLURAL:$1|<strong>1</strong> resultato|<strong>$1</strong> resultatos}} inter #<strong>$2</strong> e #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Resultato <strong>$1</strong> de <strong>$3</strong>|Resultatos <strong>$1 - $2</strong> de <strong>$3</strong>}}",
        "search-nonefound": "Le recerca non ha producite resultatos.",
+       "search-nonefound-thiswiki": "Le recerca non ha producite resultatos in iste sito.",
        "powersearch-legend": "Recerca avantiate",
        "powersearch-ns": "Cercar in spatios de nomines:",
        "powersearch-togglelabel": "Seliger:",
        "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": "toto",
+       "watchlist-hide": "Celar",
+       "wlshowtime": "Monstrar le ultime:",
+       "wlshowhideminor": "modificationes minor",
+       "wlshowhidebots": "robots",
+       "wlshowhideliu": "usatores registrate",
+       "wlshowhideanons": "usatores anonyme",
+       "wlshowhidepatr": "modificationes patruliate",
+       "wlshowhidemine": "mi modificationes",
        "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..69547f4 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. {{SITENAME}} inniheldur '''[[Special:NewPages|{{NUMBEROFARTICLES}}]]''' {{PLURAL:{{NUMBEROFARTICLES}}|grein|greinar}} og '''[[Special:Statistics|{{NUMBEROFEDITS}}]]''' {{PLURAL:{{NUMBEROFEDITS}}|breytingu|breytingar}}. '''[[Special:ActiveUsers|{{NUMBEROFACTIVEUSERS}}]]''' {{PLURAL:{{NUMBEROFACTIVEUSERS}}|notandi|notendur}} hafa hjálpað til í þ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..1e01227 100644 (file)
@@ -92,7 +92,8 @@
                        "CassiodoroVicinetti",
                        "Bultro",
                        "Oggioniale",
-                       "Wim b"
+                       "Wim b",
+                       "V6rg"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "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",
+       "watchlist-hide": "Nascondi",
+       "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..7d17c1e 100644 (file)
                        "Otokoume",
                        "赤城。",
                        "Sujiniku",
-                       "Azeha"
+                       "Azeha",
+                       "Kana Higashikawa"
                ]
        },
        "tog-underline": "リンクの下線:",
-       "tog-hideminor": "最近の更新に細部の編集を表示しない",
-       "tog-hidepatrolled": "最近の更新に巡回済みの編集を表示しない",
+       "tog-hideminor": "最近の更新に細部の編集を表示しない",
+       "tog-hidepatrolled": "最近の更新に巡回済みの編集を表示しない",
        "tog-newpageshidepatrolled": "新しいページの一覧に、巡回済みのページを表示しない",
        "tog-hidecategorization": "ページのカテゴリ化を隠す",
        "tog-extendwatchlist": "ウォッチリストを拡張し、最新のものだけではなくすべての変更を表示",
        "tog-showtoolbar": "編集用のツールバーを表示",
        "tog-editondblclick": "ダブルクリックでページを編集",
        "tog-editsectiononrightclick": "節見出しの右クリックで節を編集できるようにする",
-       "tog-watchcreations": "è\87ªå\88\86ã\81\8cä½\9cæ\88\90ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\82\84ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\97ã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«è¿½å\8a ",
-       "tog-watchdefault": "è\87ªå\88\86ã\81\8cç·¨é\9b\86ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«è¿½å\8a ",
-       "tog-watchmoves": "è\87ªå\88\86ã\81\8c移å\8b\95ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«è¿½å\8a ",
-       "tog-watchdeletion": "è\87ªå\88\86ã\81\8cå\89\8aé\99¤ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\82\84ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«è¿½å\8a ",
+       "tog-watchcreations": "自分が作成したページやアップロードしたファイルをウォッチリストに追加",
+       "tog-watchdefault": "自分が編集したページやファイルをウォッチリストに追加",
+       "tog-watchmoves": "自分が移動したページやファイルをウォッチリストに追加",
+       "tog-watchdeletion": "自分が削除したページやファイルをウォッチリストに追加",
        "tog-watchrollback": "巻き戻したページを、ウォッチリストに追加",
-       "tog-minordefault": "ç´°é\83¨ã\81®ç·¨é\9b\86ã\81\99ã\81¹ã\81¦ã\81«ã\80\81æ\97¢å®\9aã\81§ã\83\81ã\82§ã\83\83ã\82¯ã\82\92å\85¥ã\82\8cる",
+       "tog-minordefault": "ç·¨é\9b\86ã\82\92ã\81\99ã\81¹ã\81¦æ\97¢å®\9aã\81§ç´°é\83¨ã\81®ç·¨é\9b\86ã\81¨ã\81\99る",
        "tog-previewontop": "プレビューを編集ボックスの前に配置",
        "tog-previewonfirst": "編集開始時にもプレビューを表示",
        "tog-enotifwatchlistpages": "ウォッチリストにあるページやファイルが更新されたら、メールを受け取る",
        "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": "操作が速度規制されました",
        "namespaceprotected": "<strong>$1</strong>名前空間にあるページを編集する権限がありません。",
        "customcssprotected": "この CSS ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。",
        "customjsprotected": "この JavaScript ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。",
-       "mycustomcssprotected": "あなたには CSS ページを編集する権限がありません。",
-       "mycustomjsprotected": "あなたには JavaScript ページを編集する権限がありません。",
+       "mycustomcssprotected": "あなたにはこの CSS ページを編集する権限がありません。",
+       "mycustomjsprotected": "あなたにはこの JavaScript ページを編集する権限がありません。",
        "myprivateinfoprotected": "あなたには自身の非公開情報を編集する権限がありません。",
        "mypreferencesprotected": "あなたには自身の個人設定を編集する権限がありません。",
        "ns-specialprotected": "特別ページは編集できません。",
        "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": "すべて",
+       "watchlist-hide": "非表示",
+       "wlshowtime": "表示範囲:直近",
+       "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 e06f053..50e9fb7 100644 (file)
        "tog-hidepatrolled": "موجودہ وختہ بیرو تبدیلیان موژار گشتی ترمیماتن کھوشتاؤے",
        "tog-newpageshidepatrolled": "جدید صفحاتی فہرستہ گشتی صفحاتن کھوشاوے",
        "tog-extendwatchlist": "زیرِنظرفہرستو پھیلاؤ  کورے تاکہ ھیارا تھمامو ترمیمات غیچھی گیانی، نہ کہ صرفی تازہ ترین",
-       "tog-usenewrc": "اÙ\81زÙ\88دÛ\81 Ø­Ø§Ù\84Û\8cÛ\81 ØªØ¨Ø¯Û\8cÙ\84Û\8cاÙ\86 Ø§Ø³ØªØ¹Ù\85اÙ\84 Ú©Ù\88رÛ\92 (JavaScript Ø¶Ø±Ù\88رت Ø¨Ù\88Û\8c)",
+       "tog-usenewrc": "حاÙ\84Û\8cÛ\81 ØªØ¨Ø¯Û\8cÙ\84Û\8cاÙ\86 Ø§Ù\88Ú\86Û\92 Ø²Û\8cر Ù\86ظر Ù\81Û\81رستÛ\81 ØªØ¨Ø¯Û\8cÙ\84Û\8cاÙ\86 Ø¨Ù\84حاظ ØµÙ\81Ø­Û\81 Ú¯Ø±Ù\88Û\81 Ø¨Ù\86دÛ\8c Ú©Ù\88رÛ\92",
        "tog-numberheadings": "سرخیانتے تان لمبار دیت",
-       "tog-showtoolbar": "تدÙ\88Û\8cÙ\86Û\8c Ø§Ù\88زارداÙ\86Ù\86 Ù¾Ø´Ø§Ø¤Û\92 ( JavaScript Ø¶Ø±Ù\88رت Ø¨Ù\88Û\8c)",
-       "tog-editondblclick": "کلکہ صفحاتن  ترمیم (JavaScript ضرورت بوی)",
+       "tog-showtoolbar": "ترÙ\85Û\8cÙ\85 Ú©Ù\88رÛ\8cÚ©Ù\88 Ø§Ù\88زاراÙ\86 Ù¾Ø´Ø§Ù\88Û\92",
+       "tog-editondblclick": "جو کلکہ صفحاتن ترمیم کورے",
        "tog-editsectiononrightclick": "سطری عنواناتا فروسکی کلکو ذریعا سطری ترمیم کاریو فعال ساؤزاوے",
        "tog-watchcreations": "مہ مرتب کاردو صفحاتن مہ  زیرِنظرفہرستہ شامل کورے",
        "tog-watchdefault": "مہ ترمیم کاردو صفحاتن مہ  زیرِنظرفہرستہ شامل کورے",
@@ -41,6 +41,9 @@
        "tog-ccmeonemails": "دیگر ممبراننتے ارسال کاردو بشلی کغازان نقلان متے انزاوے",
        "tog-diffonly": "مختلفاتن موڑا صفحو مشمولاتن مو پشاوے",
        "tog-showhiddencats": "پوشیدہ(کھوشت) زمرہ جاتن پشاوے",
+       "tog-norollbackdiff": "Undo کوریکار آچی فرقو ختم کورے",
+       "tog-useeditwarning": "غیر محفوظ تبدیلیان کی پیچھیتام متے لو دیت",
+       "tog-prefershttps": "لاگ ان ہال بیکو موژی ہمیشہ محفوظ کنیکشن استعمال کورے",
        "underline-always": "ہمیش",
        "underline-never": "کیاوت دی نو",
        "underline-default": "براوزرو طے شدہ",
        "june-date": "$1 جون",
        "july-date": "$1 جولائی",
        "august-date": "$1 اگست",
-       "september-date": "ستمبر",
+       "september-date": "$1 دسمبر",
        "october-date": "$1 اکتوبر",
        "november-date": "$1 نومبر",
        "december-date": "$1 دسمبر",
        "searcharticle": "Go/بوغے",
        "history": "تاریخچہ ء صفحہ",
        "history_short": "تاریخچہ",
+       "updatedmarker": "مہ آخری گیکا پت نوغ",
        "printableversion": "قابل طبع نسخہ",
        "permalink": "مستقل لنک",
        "print": "طباعت",
        "view-pool-error": "معذرت: تمام سرورا موجودہ وختہ اِضافی بوجھ شیر.\nبو زیادہ صارفین موجودہ وختہ ھیہ صفحو لاڑینیان \nبرائے مہربانی! صفحو لوڑیکو بچے دوبارہ کوشش کوریکاری پروشٹی پھوکرو انتظار کورے.\n\n$1",
        "generic-pool-error": "معذرت: تمام سرورا موجودہ وختہ اِضافی بوجھ شیر.\nبو زیادہ صارفین موجودہ وختہ ھیہ صفحو لاڑینیان \nبرائے مہربانی! صفحو لوڑیکو بچے دوبارہ کوشش کوریکاری پروشٹی پھوکرو انتظار کورے.\n\n$1",
        "pool-errorunknown": "نامعلوم خطا",
+       "poolcounter-usage-error": "استعمالہ خامی: $1",
        "aboutsite": "تعارف {{SITENAME}}",
        "aboutpage": "Project:کھوار ویکیپیڈیو تعارف",
        "copyright": "تمام مواد $1 تحتہ میانسار شیر",
        "disclaimers": "اعلانات",
        "disclaimerpage": "Project:عام اعلان",
        "edithelp": "مدد براۓ ترمیم",
+       "helppage-top-gethelp": "مدد",
        "mainpage": "آویلو صفحہ",
        "mainpage-description": "سرورق",
        "policy-url": "Project:حکمتِ عملی",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "retrievedfrom": "‘‘$1’’ نقل کاردو",
        "youhavenewmessages": "تہ بچے ای $1 شیر۔ ($2)",
+       "newmessageslinkplural": "{{PLURAL:$1|نوغ پیغام|999=نوغ پیغاماتs}}",
+       "newmessagesdifflinkplural": "آخری {{PLURAL:$1|تبدیلی|تبدیلی}}",
        "youhavenewmessagesmulti": "ء$1 تہ بچے نوغ نوغ پیغامات شینی",
        "editsection": "ترمیم",
        "editold": "ترمیم",
        "hidetoc": "کھوشتاوے",
        "collapsible-collapse": "خاتمہ/Collapse",
        "collapsible-expand": "فراخ کورے",
+       "confirmable-confirm": "کیا {{GENDER:$1|تتے}} ھیہ لوو یقین شیرا؟",
        "confirmable-yes": "Yes/دی",
        "confirmable-no": "نو",
        "thisisdeleted": "لوڑے  یا بحال کورے $1",
        "feed-rss": "آر ایس ایس",
        "red-link-title": "\n$1 (صفحہ موجود نیکی)",
        "sort-descending": "ترتیب نزولی",
+       "sort-ascending": "ترتیب صعودی",
        "nstab-main": "صفحہ",
        "nstab-user": "یوزرو صفحہ",
        "nstab-media": "صفحۂ میڈیا",
        "nstab-template": "سانچہ",
        "nstab-help": "مدد",
        "nstab-category": "زمرہ",
+       "mainpage-nstab": "آویلو صفحہ",
        "nosuchaction": "کیہ دی عمل نیکی",
        "nosuchactiontext": "URL ووشکیاری مختص کاردو عمل درست نو.\nتہ URL غلط نیویشیتاو، یا کیہ غیر صحیح ربطو پیرویو کوری آسوس.\n{{ھموش نامہ SITENAME زیرِ استعمال مصنع لطیفا چاریو نشاندہیو دی اندیشہ شیر}}.",
        "nosuchspecialpage": "کیہ ہش خاص صفحہ نیکی",
        "nospecialpagetext": "\"<big>'''تو ای ناقص خاص صفحہو بچے درخاس کوری آسوس.'''</big>\n\n{{درست خاص صفحاتن ای فھرست  [[Special:SpecialPages|{{int:specialpages}}]]  لوڑیکو بوس}}.\"",
        "error": "Error/خطاء",
        "databaseerror": "خطائے ڈیٹابیس",
+       "databaseerror-text": "ڈیٹا بیس کیوریا خامی پیدا بیتی شیر.\nھیہ سافٹ ویئراای مسئلہ (بگ)و نشاندیکو بوس.",
+       "databaseerror-textcl": "ڈیٹا بیس کیوریا خامی پیدا بیتی شیر.",
+       "databaseerror-query": "کیوری: $1",
+       "databaseerror-function": "فنکشن: $ 1",
+       "databaseerror-error": "خرابی: $ 1",
        "laggedslavemode": "Warning: Page may not contain recent updates.\nخبردار: منکھن شیر کہ صفحہا موجودہ بتاریخہ جات شامل نو بونی",
        "readonly": "ڈیٹابیسا قلف لیگی شیر",
        "enterlockreason": "قلفو بچے کیہ وجہ درج کورے، بشمولِ تخمینہ کہ قلفو کیاوت کھولاو کورونو بوئے",
        "filerenameerror": "مسلو \"$1\" و \"$2\" خور نم دیونو نو ھوی",
        "filedeleteerror": "مسلو \"$1\" حذف کورونو نو ھوی",
        "directorycreateerror": "رہنامچہ \"$1\" تخلیق کورونو نو ھوی",
+       "directoryreadonlyerror": "ڈائریکٹری \"$1\" صرف ریکو بچے.",
+       "directorynotreadableerror": "ڈائریکٹری \"$1\" ریکو قابلا نیکی.",
        "filenotfound": "مسلو \"$1\" تلاش کورونو نو ھوی",
        "unexpected": "غیرمتوقع قدر: \"$1\"=\"$2\"",
        "formerror": "خطا: کغاز انځینو نو ھوی",
        "badarticleerror": "ھیہ صفحہا ھیہ عمل انجام دیونو نو ھوی۔",
        "cannotdelete": "صفحہو $1 ڈیلیٹ کورونو نو ھوی۔ (ھیہ منکھن شیر کہ ھمو پروشٹی تان کا ڈیلیٹ کوری آسور۔)",
+       "cannotdelete-title": "صفحہ بوغین نو بوئے \"$1\"",
+       "delete-hook-aborted": "حذف شدگی روکا کورونو ہوئے\nوضاحت کورونو نو ہوئے",
        "badtitle": "خراب عنوان",
        "badtitletext": "'درخاس شدہ صفحہو عنوان ناقص، خالی، یا کیہ غلط ربط شدہ بین لسانی یا بین ویکی عنوان شیر.\nشاید ھیارا ای یا زیات ھݰ حروف موجود شینی کہ ھیت عنوانا استعمال نو بونیان.',",
        "perfcached": "ذیلی ڈیٹا ابطن شدہ شیر وا ھمو بیکا امکان شیر 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.",
        "querypage-no-updates": "ھیہ صفحہو بچے بتاریخات فی الحال ناقابل ساوزینو بیتی شینی. \nھمو ڈیٹا ھنیسے تازہ کورونو نو بوئے",
        "viewsource": "مسودو لوڑے",
+       "viewsource-title": "$1 و مسودو لوڑے",
        "actionthrottledtext": "بطورِ ای ضدسپم تدبیر، تہ مختصار وختہ کئی دفعہ ھیہ کورومو کوریکو وجھین محدود کورونو ہوئے، وا تو ھیہ حدو پار کوری آسوس.\nبراہِ کرم، ای کما میلیٹ آچہ کھوشش کورے",
        "protectedpagetext": "ھیہ صفحہو تدویناری محفوظ لاکھیکو بچے قلف لیگینو بیتی شیر",
        "viewsourcetext": "تو صرف مضمونو لوڑیکو بوس وا ھو نقل کوریکو بوس:",
+       "viewyourtext": "تو ھیہ موادو لوڑیکو بوس وا ھمو کاپی کوریکو بوس <strong>تہ  ترامیم</strong> ھیہ صفحہا۔",
        "protectedinterface": "ھیہ صفحہ مصنع‌لطیفو بچے سطح‌البینی متن فراہم کورویان، وا  ناجائزاستعمالو سدِبابو بچے ھمو قلف لیگینو بیتی شیر",
        "editinginterface": "\"'''خبردار:''' تو ای ھش صفحہو تدوینو کوروسان کہ ھیہ مصنع‌لطیفو بچے سطح‌البینی متن فراہم کورویان۔ ھیہ صفحہا کاردو ترمیم، دیگر ممبارانن بچے سطح‌البینو تبدیل کوروی۔\nبراہِ کرم، ترجمہ کوریکو بچے  [//translatewiki.net/wiki/Main_Page?setlang=en '''بیٹاویکی'''] (میڈیاویکی مقامیانی منصوبو) استعمال کورے.\",",
+       "translateinterface": "تمام ویکیپیڈا تبدیلی یا شامل کوریکو بچے، ھمو استعمال کورے [//translatewiki.net/ translatewiki.net]، میڈیا ویکی دارالترجمہ.",
        "namespaceprotected": "\"تتے '''$1''' فضائے نامہ صفحاتن تدوینو کوریکو اِجازت نیکی.\",",
+       "mycustomcssprotected": "تے ھیہ سی ایس ایس (CSS) صفحہا ترمیم کوریکو اختیار نیکی۔",
+       "mycustomjsprotected": "تتے ھیہ جاوا اسکپرٹ (JavaScript) صفحہا ترمیم کوریکو اختیار نیکی۔",
+       "myprivateinfoprotected": "تتے ھمی ذاتی معلواتہ (private information) ترمیم کویکو اختیار نیکی۔",
+       "mypreferencesprotected": "تتے تان ھمی ترجیحاتہ (preferences) ترمیم کوریکو اختیار نیکی۔",
        "ns-specialprotected": "خاص صفحاتن تدوین کوریکو اجازت نیکی",
        "titleprotected": "ھیہ عنوانو [[User:$1|$1]] تخلیق کوریکاری محفوظ کوری آسور.\nوجہ ھیہ شیر: \"''$2''\"",
        "virus-badscanner": "\"خراب وضعیت: نوژان وائرسی مفراس: ''$1''\",",
        "yourname": "اسمِ رکنیت",
        "userlogin-yourname": "اسمِ رکنیت",
        "userlogin-yourname-ph": "تان صارف نام درج کورے",
+       "createacct-another-username-ph": "صارف نامو درج کورے",
        "yourpassword": "کلمۂ شناخت(پاسورڈ)",
        "userlogin-yourpassword": "کلمۂ شناخت(پاسورڈ)",
        "userlogin-yourpassword-ph": "تان پاس ورڈو داخل کورے",
        "remembermypassword": "ھیہ براوزیرا مہ داخلِ نوشتگی معلوماتن یاد لاکھے (زیاتاری زیات $1 {{PLURAL:$1|بس|بسان}} بچے)",
        "userlogin-remembermypassword": "مہ داخل بہچاوے",
        "yourdomainname": "تہ ڈومین",
+       "password-change-forbidden": "تتے ھیہ ویکیپیڈیا تان پاس روڈو تبدیل کوریکو اختیار نیکی",
        "externaldberror": "یا تھے توثیقی ڈیٹابیسا خطا واقع بیتی شیر یا تتے بیریو کھاتو بتاریخ کوریکو اِجازت نیکی",
        "login": "داخل بوس",
        "nav-login-createaccount": "کھاتہ کھولاو کورے یا اندراج کورے",
        "userlogin-resetlink": "آوا داخل بیکو بچے تان تفصیلاتن روخڅی اسوم",
        "userlogin-resetpassword-link": "کلمہء شناختو روخڅیتام؟",
        "userlogin-helplink2": "لاگن کوراوا مدد کورے",
+       "userlogin-createanother": "کھاتہ ساوزاوے",
+       "createacct-emailrequired": "ای میل پتہ",
        "createacct-emailoptional": "ای میل ایڈریس (اختیاری)",
        "createacct-email-ph": "تان ای میلو داخل کورے",
-       "createaccountmail": "بذریعۂ بشلی ڈاک",
+       "createacct-another-email-ph": "تان ای میلو داخل کورے",
+       "createaccountmail": "عارضی پاسورڈ استعمال کورے وا ھورو ای میلا انزاوے",
+       "createacct-realname": "اصلی نام (اختیاری)",
        "createaccountreason": "وجہ:",
-       "createacct-captcha": "حفاظتی تدبیر",
-       "createacct-imgcaptcha-ph": "تو توری لوڑی نیویشے",
+       "createacct-reason": "وجہ",
+       "createacct-reason-ph": "تو ڈبل کھاتہ کھیوتے ساوزیسان؟",
        "createacct-submit": "کھاتہ ساوزاوے",
+       "createacct-another-submit": "کھاتہ ساوزاوے",
        "createacct-benefit-heading": "{{SITENAME}} تہ غون روئے ایڈٹ کورونیان.",
        "createacct-benefit-body1": "{{PLURAL:$1|ترمیم|ترامیم}}",
        "createacct-benefit-body2": "$1 {{PLURAL:$1|صفحہ|صفحات}}",
        "badretype": "درج شدہ کلمۂ شناخت اصلو مطابقت نو لاکھویان",
        "userexists": "تو کہ نامو کہ درج کوری آسوس ھیس پروشٹیاری استعمالہ شیر۔ مختلف نام استعمال کورے",
        "loginerror": "داخلا غلطی",
+       "createacct-error": "اکاونٹ کھولاو کوریکا نقص شیر",
        "createaccounterror": "کھاتہ $1 ساوزینو نو بویان",
        "noname": "تو تان صحیح اسم صارفو داخل نو آرو",
        "loginsuccesstitle": "داخلہ کامیاب",
        "listgrouprights-namespaceprotection-namespace": "نامو ژاغہ:",
        "emailuser": "ممباروت بشلی کغاز انڅاوے",
        "emailuser-title-notarget": "ای میل صارف",
-       "emailpage": "ممباروت بشلی کغاز انځاوے",
        "emailusername": "ممبارو نم",
        "emailusernamesubmit": "داخل کورے",
        "emailfrom": "ری",
        "unwatch": "زیرنظرمنسوخ",
        "watchlist-details": " تہ زیرِنظرفہرستا {{PLURAL:$1|$1 صفحہ شیر|$1 صفحات شینی}}، ھیارا تبادلۂ خیالو صفحاتن تعداد شامل نیکی.",
        "wlshowlast": "پشاوے آخری $1 گھنٹو $2 آنوسو",
+       "watchlistall2": "سف",
        "watchlist-options": "واچ لسٹ آپشن",
        "watching": "زیر نظر",
        "unwatching": "منسوخ",
        "block-log-flags-nocreate": "کھاتہ کھولاو کوریکو سورا پاوپندی شیر",
        "ipb_expiry_invalid": "Expiry ٹیم غلط شیر.",
        "move-page-legend": "مـنـتـقـل کـورے",
-       "movearticle": "مـنـتـقـل کـورے",
        "newtitle": "نوغ عنوان",
        "move-watch": "صفحہ زیر نظر",
        "movepagebtn": "منتقل",
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..7530cd4 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-hide": "숨기기",
+       "wlshowtime": "주시할 기간:",
+       "wlshowhideminor": "사소한 편집",
+       "wlshowhidebots": "봇",
+       "wlshowhideliu": "등록된 사용자",
+       "wlshowhideanons": "익명 사용자",
+       "wlshowhidemine": "내 편집",
        "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..6a32ae1 100644 (file)
        "uploaddisabledtext": "D'Eropluede vu Fichieren ass ausgeschalt.",
        "php-uploaddisabledtext": "D'Eropluede vu Fichieren ass am PHP desaktivéiert. Kuckt w.e.g. d'Astellung ''file_uploads'' no.",
        "uploadscripted": "An dësem Fichier ass HTML- oder Scriptcode, dee vun engem Webbrowser falsch interpretéiert kéint ginn.",
+       "upload-scripted-pi-callback": "Et ass net méiglech XML-Fichieren eropzelueden an deenen XML-Stylesheet Instruktioune fir d'Verschaffen drastinn",
        "uploadscriptednamespace": "An dësem SVG-Fichier ass en illegalen Nummraum \"$1\"",
        "uploadinvalidxml": "Den XML am eropgelueden Fichier konnt net verschafft ginn.",
        "uploadvirus": "An dësem Fichier ass ee Virus! Detailer: $1",
        "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 …",
        "protect-expiring": "bis $1 (UTC)",
        "protect-expiring-local": "bis $1",
        "protect-expiry-indefinite": "net definéiert",
-       "protect-cascade": "Kaskade-Spär – alleguerten d'Schablounen déi an dës Säit agebonne si ginn och gespaart.",
+       "protect-cascade": "Kaskade-Spär – alleguer d'Schablounen déi an dës Säit agebonne si ginn och gespaart.",
        "protect-cantedit": "Dir kënnt d'Spär vun dëser Säit net änneren, well Dir net déi néideg Rechter hutt fir déi Säit z'änneren.",
        "protect-othertime": "Aner Zäit:",
        "protect-othertime-op": "aner Zäit",
        "restriction-upload": "Eroplueden",
        "restriction-level-sysop": "ganz gespaart",
        "restriction-level-autoconfirmed": "hallef gespaart (nëmmen ugemellt Benotzer déi net nei sinn)",
-       "restriction-level-all": "alleguerten",
+       "restriction-level-all": "alleguer",
        "undelete": "Geläscht Säite restauréieren",
        "undeletepage": "Geläscht Säite kucken a restauréieren",
        "undeletepagetitle": "'''Op dëser Lëscht sti geläscht Versioune vun [[:$1]]'''.",
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..2cb13c2 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",
+       "watchlist-hide": "Slėpti",
+       "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..a664556 100644 (file)
        "wlheader-showupdated": "Страниците што се изменети од вашата последна посета се прикажани со '''задебелени''' букви",
        "wlnote": "Подолу {{PLURAL:$1|е прикажана последната промена|се прикажани последните <strong>$1</strong> промени}} во {{PLURAL:$2|последниов час|последниве <strong>$2</strong> часа}}, заклучно со $3, $4 ч.",
        "wlshowlast": "Прикажи ги последните $1 часа, $2 дена,",
+       "watchlistall2": "сè",
+       "watchlist-hide": "Скриј",
+       "wlshowtime": "Прикажи ги последните:",
+       "wlshowhideminor": "ситни уредувања",
+       "wlshowhidebots": "ботови",
+       "wlshowhideliu": "регистрирани корисници",
+       "wlshowhideanons": "анонимни корисници",
+       "wlshowhidepatr": "проверени уредувања",
+       "wlshowhidemine": "моите уредувања",
        "watchlist-options": "Поставки за список на набљудувања",
        "watching": "Набљудување...",
        "unwatching": "Отстранувам од набљудувани...",
index e39477f..ca49657 100644 (file)
        "wlheader-showupdated": "താങ്കളുടെ അവസാന സന്ദർശനത്തിനു ശേഷം മാറ്റം വന്ന താളുകൾ  '''കടുപ്പിച്ച്''' കാണിച്ചിരിക്കുന്നു",
        "wlnote": "$3, $4-നു കഴിഞ്ഞ {{PLURAL:$2|മണിക്കൂറിൽ|<strong>$2</strong> മണിക്കൂറിൽ}} നടന്ന {{PLURAL:$1|ഒരു പുതിയ മാറ്റം|<strong>$1</strong> പുതിയ മാറ്റങ്ങൾ}} താഴെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.",
        "wlshowlast": "ഒടുവിലത്തെ $1 മണിക്കൂറുകൾ $2 ദിനങ്ങൾ പ്രദർശിപ്പിക്കുക",
+       "watchlistall2": "എല്ലാം",
+       "watchlist-hide": "മറയ്ക്കുക",
+       "wlshowtime": "അവസാനത്തേത് പ്രദർശിപ്പിക്കുക:",
+       "wlshowhideminor": "ചെറുതിരുത്തുകൾ",
+       "wlshowhidebots": "യന്ത്രങ്ങൾ",
+       "wlshowhideliu": "അംഗത്വമെടുത്ത ഉപയോക്താക്കൾ",
+       "wlshowhideanons": "അജ്ഞാത ഉപയോക്താക്കൾ",
+       "wlshowhidepatr": "റോന്തു ചുറ്റിയ മാറ്റങ്ങൾ",
+       "wlshowhidemine": "എന്റെ തിരുത്തുകൾ",
        "watchlist-options": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ സജ്ജീകരണങ്ങൾ",
        "watching": "ശ്രദ്ധിക്കുന്നു...",
        "unwatching": "അവഗണിക്കുന്നു...",
        "show-big-image": "പൂർണ്ണ വലിപ്പം",
        "show-big-image-preview": "ഈ പ്രിവ്യൂവിന്റെ വലിപ്പം: $1.",
        "show-big-image-preview-differ": "ഈ  $2 പ്രമാണത്തിന്റെ $3 പ്രിവ്യൂവിന്റെ വലിപ്പം: $1.",
-       "show-big-image-other": "à´\95àµ\82à´\9fàµ\81തൽ {{PLURAL:$2|à´±àµ\86സലàµ\82ഷൻ}}: $1.",
+       "show-big-image-other": "മറàµ\8dà´±àµ\8d {{PLURAL:$2|à´±àµ\86സലàµ\82ഷൻ|à´±àµ\86സലàµ\82à´·à´¨àµ\81à´\95ൾ}}: $1.",
        "show-big-image-size": "$1 × $2 പിക്സലുകൾ",
        "file-info-gif-looped": "പുനരാവർത്തിതം",
        "file-info-gif-frames": "{{PLURAL:$1|ഒരു ചട്ടം|$1 ചട്ടങ്ങൾ}}",
        "logentry-protect-unprotect": "$3 താളിലെ സംരക്ഷണം $1 {{GENDER:$2|നീക്കി}}",
        "logentry-protect-protect": "$3 താൾ $1 {{GENDER:$2|സംരക്ഷിച്ചു}} $4",
        "logentry-protect-protect-cascade": "$3 താൾ $1 {{GENDER:$2|സംരക്ഷിച്ചു}} $4 [നിർഝരിതം]",
+       "logentry-protect-modify": "$3 താളിന്റെ സംരക്ഷണതലം $1 {{GENDER:$2|മാറ്റി}} $4",
+       "logentry-protect-modify-cascade": "$3 താളിന്റെ സംരക്ഷണതലം $1 {{GENDER:$2|മാറ്റി}} $4 [നിർഝരിതം]",
        "logentry-rights-rights": "$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം, $4 എന്നതിൽ നിന്നു $5 എന്നതിലേക്ക്, $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-rights-rights-legacy": "$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-rights-autopromote": "$1 എന്ന ഉപയോക്താവ് $4 എന്നതിൽ നിന്നും $5 എന്നതിലേയ്ക്ക് സ്വയമേവ {{GENDER:$2|ഉയർത്തപ്പെട്ടിരിക്കുന്നു}}",
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..03523bb 100644 (file)
@@ -53,6 +53,7 @@
        "tog-hideminor": "Skjul mindre redigeringer i siste endringer",
        "tog-hidepatrolled": "Skjul patruljerte redigeringer i siste endringer",
        "tog-newpageshidepatrolled": "Skjul patruljerte sider fra listen over nye sider",
+       "tog-hidecategorization": "Skjul kategorisering av sider",
        "tog-extendwatchlist": "Utvid overvåkningslisten til å vise alle endringer, ikke bare de siste",
        "tog-usenewrc": "Grupper endringer etter side i siste endringer og overvåkingslisten",
        "tog-numberheadings": "Autonummerer overskrifter",
@@ -82,6 +83,7 @@
        "tog-watchlisthideliu": "Skjul endringer av innloggede brukere fra overvåkningslisten",
        "tog-watchlisthideanons": "Skjul endringer av anonyme brukere fra overvåkningslisten",
        "tog-watchlisthidepatrolled": "Skjul patruljerte endringer fra overvåkningslisten",
+       "tog-watchlisthidecategorization": "Skjul kategorisering av sider",
        "tog-ccmeonemails": "Send meg kopier av e-poster jeg sender til andre brukere",
        "tog-diffonly": "Ikke vis sideinnhold under differ",
        "tog-showhiddencats": "Vis skjulte kategorier",
        "missingarticle-rev": "(revisjon#: $1)",
        "missingarticle-diff": "(diff: $1, $2)",
        "readonly_lag": "Databasen er automatisk skrivebeskyttet så slavetjenerne kan ta igjen mestertjeneren",
+       "nonwrite-api-promise-error": "HTTP-headeren 'Promise-Non-Write-API-Action' ble sendt, men forespørselen var til en API skrivemodul.",
        "internalerror": "Intern feil",
        "internalerror_info": "Intern feil: $1",
        "internalerror-fatal-exception": "Uhåndterlig unntak av typen «$1»",
        "passwordreset-emailsent-capture": "Passordtilbakestillingseposten vist under har blitt sendt ut.",
        "passwordreset-emailerror-capture": "En passordtilbakestillingsepost ble laget, men det lyktes ikke å sende denne til {{GENDER:$2|brukeren}}: $1",
        "changeemail": "Endre eller fjerne epostadresse",
-       "changeemail-header": "Endre kontoens e-postadresse",
+       "changeemail-header": "Fyll ut dette skjemaet for å bytte din epost-adresse. Hvis du vil fjerne epostadressen fra din konto, kan du la ny epostadresse-feltet være tomt når.",
        "changeemail-passwordrequired": "Du må skrive inn passordet ditt for å bekrefte denne endringen.",
        "changeemail-no-info": "Du må være innlogget for å få direkte tilgang til denne siden.",
        "changeemail-oldemail": "Nåværende e-postadresse:",
        "sig_tip": "Din signatur med dato",
        "hr_tip": "Horisontal linje (bruk sparsomt)",
        "summary": "Redigeringsforklaring:",
-       "subject": "Emne/overskrift:",
+       "subject": "Emne:",
        "minoredit": "Dette er en mindre endring",
        "watchthis": "Overvåk denne siden",
        "savearticle": "Lagre siden",
        "rcshowhidemine": "$1 mine endringer",
        "rcshowhidemine-show": "Vis",
        "rcshowhidemine-hide": "Skjul",
+       "rcshowhidecategorization": "$1 kategorisering av sider",
+       "rcshowhidecategorization-show": "Vis",
+       "rcshowhidecategorization-hide": "Skjul",
        "rclinks": "Vis siste $1 endringer i de siste $2 dagene<br />$3",
        "diff": "diff",
        "hist": "hist",
        "recentchanges-page-added-to-category-bundled": "[[:$1]] og {{PLURAL:$2|én side|$2 sider}} lagt til kategori",
        "recentchanges-page-removed-from-category": "[[:$1]] fjernet fra kategori",
        "recentchanges-page-removed-from-category-bundled": "[[:$1]] og {{PLURAL:$2|én side|$2 sider}} fjernet fra kategori",
+       "autochange-username": "Automatisk MediaWiki-endring",
        "upload": "Last opp fil",
        "uploadbtn": "Last opp fil",
        "reuploaddesc": "Avbryt opplasting og gå tilbake til opplastingsskjemaet",
        "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-hide": "Skjul",
+       "wlshowtime": "Vis siste:",
+       "wlshowhideminor": "mindre redigeringer",
+       "wlshowhidebots": "boter",
+       "wlshowhideliu": "registrerte brukere",
+       "wlshowhideanons": "anonyme brukere",
+       "wlshowhidepatr": "patruljerte redigeringer",
+       "wlshowhidemine": "mine redigeringer",
        "watchlist-options": "Alternativ for overvåkningslisten",
        "watching": "Overvåker…",
        "unwatching": "Fjerner fra overvåkningsliste…",
        "rollback-success": "Tilbakestilte endringer av $1; endret til siste versjon av $2.",
        "sessionfailure-title": "Sesjonsfeil",
        "sessionfailure": "Det ser ut til å være et problem med innloggingen din, og den ble avbrutt av sikkerhetshensyn. Trykk ''Tilbake'' i nettleseren din, oppdater siden og prøv igjen.",
+       "changecontentmodel": "Endre innholdsmodell for en side",
+       "changecontentmodel-legend": "Endre innholdsmodell",
        "changecontentmodel-title-label": "Sidetittel",
        "changecontentmodel-model-label": "Ny innholdsmodell",
        "changecontentmodel-reason-label": "Begrunnelse:",
        "pageinfo-header-properties": "Sideegenskaper",
        "pageinfo-display-title": "Visningstittel",
        "pageinfo-default-sort": "Standardsorteringsnøkkel",
-       "pageinfo-length": "Sidelengde (i bytes)",
+       "pageinfo-length": "Sidestørrelse (i bytes)",
        "pageinfo-article-id": "Side-ID",
        "pageinfo-language": "Språk for sideinnholdet",
        "pageinfo-content-model": "Modell for sideinnhold",
        "pageinfo-robot-index": "Tillatt",
        "pageinfo-robot-noindex": "Ikke tillatt",
        "pageinfo-watchers": "Antall overvåkere av siden",
+       "pageinfo-visiting-watchers": "Antall sideovervåkere med nylig aktivitet",
        "pageinfo-few-watchers": "Færre enn $1 {{PLURAL:$1|overvåker|overvåkere}}",
+       "pageinfo-few-visiting-watchers": "Det kan finnes sideovervåkere med nylig aktivitet",
        "pageinfo-redirects-name": "Antall omdirigeringer til denne siden",
        "pageinfo-subpages-name": "Undersider av siden",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|omdirigering|omdirigeringer}}; $3 {{PLURAL:$3|ikke-omdirigering|ikke-omdirigeringer}})",
        "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..0825cc0 100644 (file)
        "edit-gone-missing": "Kunne ikkje oppdatere sida.\nDet ser ut til at ho er sletta.",
        "edit-conflict": "Endringskonflikt.",
        "edit-no-change": "Endringa di vart ignorert fordi det ikkje vart gjort endringar i teksten.",
+       "postedit-confirmation-created": "Sida vart oppretta.",
        "postedit-confirmation-saved": "Endringa di vart lagra.",
        "edit-already-exists": "Kunne ikkje opprette ny side fordi ho alt eksisterer.",
        "defaultmessagetext": "Standard meldingstekst",
        "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..8408227 100644 (file)
@@ -11,7 +11,9 @@
        "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-usenewrc": "Ryhmittele muutokset sivun mugah uuzien muutoksien listal da valvonduluvettelol",
        "tog-numberheadings": "Automuattizesti numeroija kirjutuksien nimet",
        "tog-showtoolbar": "Ozuta ruadovälinehpalki",
        "tog-editondblclick": "Edituiče sivuloi kaksoispainalduksel",
@@ -39,6 +41,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",
        "category-article-count": "{{PLURAL:$2|Täs kategouries on vaiku tämä sivu.|{{PLURAL:$1|Tämä sivu on|$1 Nämmä sivut ollah}} täs kategouries, $2 kaikkiedah.}}",
        "category-article-count-limited": "{{PLURAL:$1|Tämä sivu on|$1 Nämmä sivut ollah}} täs kategouries.",
        "category-file-count": "{{PLURAL:$2|Täs kategouriis on vaiku tämä failu.| {{PLURAL:$1|Tämä failu on|$1 Nämmä failat ollah}} täs kategouries, $2 kaikkiedah.}}",
+       "category-file-count-limited": "Täs kategouries on {{PLURAL:$1|yksi tiijosto|$1 tiijostuo}}",
        "listingcontinuesabbrev": "(jatko)",
        "index-category": "Indeksiruitut sivut",
        "noindex-category": "Indeksiruičemattomat sivut",
        "delete": "Ota iäre",
        "deletethispage": "Ota tämä sivu iäre",
        "undeletethispage": "Tuo sivu järilleh",
+       "undelete_short": "Tuo järilleh {{PLURAL:$1|one kohendus|$1 kohendustu}}",
+       "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",
        "jumptosearch": "eči",
+       "view-pool-error": "Pahakse mielekse palvelimet ollah ylikuormittunnuot täl hetkel. Liijan moni käyttäi oppiu tarkastella tädä sivuu. Vuota kodvaine enne gu opit uvvessah.",
+       "generic-pool-error": "Pahakse mielekse palvelimet ollah ylikuormittunnuot nygöi. Liijan moni käyttäi oppiu tarkastella tädä sivuu.",
+       "pool-timeout": "Lukittumizen vuotanduaigu on loppenuhes.",
+       "pool-queuefull": "Ečindykyzymykzien tallendustila on täyzi",
        "pool-errorunknown": "Tundematoi haireh",
+       "pool-servererror": "Pool counter -palvelu ei ole käytös ($1).",
        "poolcounter-usage-error": "Käyttöhaireh: $1",
        "aboutsite": "Lähteh {{SITENAME}}",
        "aboutpage": "Project:Kuvavus",
+       "copyright": "Sizäldö on käytös luval $1, ei olle toizin mainittu.",
        "copyrightpage": "{{ns:project}}:Luadijan oigevukset",
        "currentevents": "Aijankohtazet tapahtumat",
        "currentevents-url": "Project:Aijankohtazet tapahtumat",
        "privacy": "Luottamuksen periuateh",
        "privacypage": "Project:Luottamuksen periuateh",
        "badaccess": "Ei oigevuksii",
+       "badaccess-group0": "Sinul ei ole lubua suorittua tädä toiminduo.",
+       "badaccess-groups": "Tämän toimindon voijah suorittua vai {{PLURAL:$2|täh joukkoh|nämmih joukkoloih}} kuulujat käyttäjät.",
        "versionrequired": "MediiWikis pidäy vähimyölleh versii $1",
        "versionrequiredtext": "MediiWikis pidäy vähimyölleh versii $1 tädä sivuu kaččojes. Kačo [[Special:Version|versii]].",
        "ok": "OK",
        "toc": "Sizäldö",
        "showtoc": "ozuttua",
        "hidetoc": "peittiä",
+       "collapsible-collapse": "Peitä",
        "collapsible-expand": "Levitä",
        "confirmable-confirm": "{{GENDER:$1|Oletgo}} varmu?",
        "confirmable-yes": "Muga",
        "confirmable-no": "Ei",
+       "thisisdeleted": "Ozuta libo tuo järilleh $1?",
        "viewdeleted": "Ozuta $1?",
        "restorelink": "{{PLURAL:$1|yksi iäre otettu edituičendu|$1 iäre otettuu edituičendua}}",
        "feedlinks": "Syöteh:",
+       "feed-invalid": "Viäry syötehtaba.",
+       "feed-unavailable": "Sindikacien syöttehet ei olla käytös",
        "site-rss-feed": "$1 (RSS-syöteh)",
        "site-atom-feed": "$1 Atom-lentu",
-       "page-rss-feed": "$1 (RsS-syöteh)",
+       "page-rss-feed": "$1 (RSS-syöteh)",
        "page-atom-feed": "$1 Atom-lentu",
        "red-link-title": "$1 (sivuu ei lövvy)",
+       "sort-descending": "Lajittele laskevas järjestykses",
+       "sort-ascending": "Lajittele nouzevas järjestykses",
        "nstab-main": "Sivu",
        "nstab-user": "Käyttäisivu",
        "nstab-media": "Mediisivu",
        "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\"",
        "mycustomjsprotected": "Sinul ei ole oigevuksii edituija tädä JavaScript-sivuu.",
        "ns-specialprotected": "Toimindosivuloi ei voi edituija.",
        "exception-nologin": "Ei ole kirjutannuhes",
-       "virus-scanfailed": "skanniruičendu ei ozavunnu (koudu $1)",
+       "virus-scanfailed": "skaniiruičendua ei voidu luadie (koudu $1)",
        "welcomeuser": "Tule terveh, $1!",
        "yourname": "Käyttäinimi:",
        "userlogin-yourname": "Käyttäinimi",
        "userlogin-yourpassword": "Peittosana",
        "userlogin-yourpassword-ph": "Kirjuta sinun peittosana",
        "createacct-yourpassword-ph": "Kirjuta peittosana",
-       "yourpasswordagain": "Kirjuta peittosana myös:",
-       "createacct-yourpasswordagain": "Lujenda peittosana",
+       "yourpasswordagain": "Kirjuta peittosana uvvessah:",
+       "createacct-yourpasswordagain": "Varmista peittosana",
        "createacct-yourpasswordagain-ph": "Myös kirjuta peittosana",
        "userlogin-remembermypassword": "Pie minut kirjutannuhuonnu",
        "userlogin-signwithsecure": "Käytä suojattuu yhtevytty",
        "gotaccountlink": "Kirjuttai",
        "userlogin-resetlink": "Unohtitgo sinun käyttäinimen/peittosanan?",
        "userlogin-resetpassword-link": "Unohtitgo sinun peittosanan?",
-       "userlogin-helplink2": "Abuu ku kirjuttuakseh",
+       "userlogin-helplink2": "Abuu kirjuttamizeh",
        "userlogin-loggedin": "Olet jo kirjutannuhes nimel {{GENDER:$1|$1}}.\nKäytä al olijua ankiettua ku kirjuttuakseh eri käyttäjänny.",
        "userlogin-createanother": "Luaji toine tili",
        "createacct-emailrequired": "Sähköpoštuadressu",
        "createaccounterror": "Ei voinuh luadie tilii: $1",
        "loginsuccesstitle": "Olet kirjutannuhes",
        "loginsuccess": "<strong>Olet kirjutannuhes sivule {{SITENAME}} käyttäitunnuksel \"$1\".</strong>",
-       "nosuchusershort": "Ei ole käyttäjiä nimel \"$1\". Tarkista kirjutitgo oigein.",
+       "nosuchusershort": "Ei ole käyttäjiä nimel \"$1\". Tarkista kirjutitgo oigieh.",
        "nouserspecified": "Käyttäinimi pidäy.",
        "login-userblocked": "Tämä käyttäi on estetty. Ei oigevuttu kirjuttuakseh.",
        "wrongpassword": "Kirjutit viärän peittosanan. Ole hyvä, opi vie kerdu.",
        "passwordtoolong": "Peittosana ei voi olla pitkembi $1 {{PLURAL:$1|merkii}}.",
        "password-name-match": "Peittosana pidäy olla eri migu käyttäinimi.",
        "password-login-forbidden": "Tämän käyttäinimen da peittosanan käyttö on estetty.",
-       "mailmypassword": "Azeta peittosana uvvelleh",
+       "mailmypassword": "Azeta peittosana uvvessah",
        "passwordremindertitle": "Uuzi väliaigaine peittosana {{SITENAME}}-sivuh niškoi",
        "passwordremindertext": "Kentah IP-adressispäi $1 kyzyi työndämäh uuttu peittosanua saitale {{SITENAME}} ($4). Väliaigaine peittosana käyttäjäle $2 on nygöi $3. Kirjuttai da vaihta peittosana. Väliaigaine peittosana vahnenou {{PLURAL:$5|yhten päivän|$5 päivän}} jälles.\n\nOllou kentah toine työndänyh tämän pakičuksen, libo ku ollet mustanuh sinun peittosanan da et tahto vaihtua sidä, voit jättiä tämän viestin huomivottah da jatkua vahnan peittosanan käyttyö.",
        "passwordsent": "Uuzi peittosana on työtty käyttäjän <b>$1</b> sähköpoštuadressah.\nOle hyvä da kirjuttai sen suaduu.",
        "resetpass-recycled": "Ole hyvä, valliče uvvekse peittosanakse eri migu nygöine peittosana.",
        "resetpass-temp-password": "Väliaigaine peittosana:",
        "resetpass-expired": "Sinun peittosana on vahnennuh. Ole hyvä, luaji uuzi peittosana ku kirjuttuakseh.",
-       "passwordreset": "Azeta peittosana uvvelleh",
+       "passwordreset": "Azeta peittosana uvvessah",
        "passwordreset-username": "Käyttäinimi:",
        "passwordreset-domain": "Domain:",
        "passwordreset-email": "Sähköpoštuadressu:",
        "subject-preview": "Teeman ezikačondu:",
        "previewerrortext": "Rodih haireh oppijes ezikaččuo muutoksii.",
        "blockedtitle": "Käyttäi on estetty",
-       "blockednoreason": "ei viärysty annettu",
+       "blockednoreason": "syydy ei annettu",
        "whitelistedittext": "Sinun pidäy $1 ku edituija sivuloi.",
        "nosuchsectiontitle": "Nengostu sektsiedu ei ole",
        "loginreqtitle": "Pidäy kirjuttuakseh",
        "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.",
        "cantcreateaccounttitle": "Ei voi luadie tunnustu",
        "cantcreateaccount-text": "Tunnuksien luadimine täs IP-adressaspäi ('''$1''') on estetty. Estäjänny on [[User:$3|$3]].\n\nKäyttäjän $3 annettu syy on ''$2''",
        "cantcreateaccount-range-text": "Tunnuksien luadimine IP-adressilois adressualovehel '''$1''', kuduah kuuluu sinungi käytetty IP-adressu('''$4'''), on estetty. Eston on azetannuh [[User:$3|$3]].\n\nKäyttäjän $3 annettu syy estole on \"$2\".",
-       "viewpagelogs": "Ozuta tämän sivun logat",
+       "viewpagelogs": "Ozuta tämän sivun lougat",
        "nohistory": "Täl sivul ei ole kohendushistoriedu.",
        "currentrev": "Jälgimäzin versii",
        "currentrev-asof": "Sivun $1 jälgimäzin versii",
        "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 7b33d53..addacea 100644 (file)
@@ -21,6 +21,7 @@
        "tog-hideminor": "ନିକଟରେ ହୋଇଥିବା ଛୋଟ ବଦଳସବୁକୁ ଲୁଚାଇବେ",
        "tog-hidepatrolled": "ନଗଦ ବଦଳରେ ନିରିକ୍ଷଣ କରାଯାଇଥିବା ବଦଳ ସବୁକୁ ଲୁଚାଇବେ",
        "tog-newpageshidepatrolled": "ନୂଆ ପୃଷ୍ଠାତାଲିକାରୁ ଜଗାହୋଇଥିବା ବଦଳସବୁକୁ ଲୁଚାଇବେ",
+       "tog-hidecategorization": "ପୃଷ୍ଠାସବୁର ଶ୍ରେଣୀବିଭାଗ ଲୁଚାନ୍ତୁ",
        "tog-extendwatchlist": "କେବଳ ନଗଦ ହିଁ ନୁହେଁ, ସବୁଯାକ ବଦଳକୁ ଦେଖାଇବା ପାଇଁ ଦେଖଣାତାଲିକାକୁ ପୂରା ଦେଖାଇବେ",
        "tog-usenewrc": "ନଗଦ ବଦଳରେ ପୃଷ୍ଠା ଅନୁଯାୟୀ ଗୋଷ୍ଠୀ ବଦଳ ଏବଂ ଦେଖଣା",
        "tog-numberheadings": "ଆପେଆପେ-ସଂଖ୍ୟାର ନାମଗୁଡ଼ିକ",
@@ -50,6 +51,7 @@
        "tog-watchlisthideliu": "ଲଗ ଇନ କରିଥିବା ସଭ୍ୟମାନଙ୍କ ଦେଇ କରାହୋଇଥିବା ବଦଳଗୁଡ଼ିକ ଲୁଚାଇବେ",
        "tog-watchlisthideanons": "ଅଜଣା ସଭ୍ୟମାନଙ୍କ ଦେଇ କରାହୋଇଥିବା ବଦଳଗୁଡ଼ିକ ଲୁଚାଇବେ",
        "tog-watchlisthidepatrolled": "ମୋ ଦେଖଣା ତାଲିକାରୁ ଜଗାଯାଇଥିବା ସମ୍ପାଦନାଗୁଡ଼ିକ ଲୁଚାଇବେ",
+       "tog-watchlisthidecategorization": "ପୃଷ୍ଠାସବୁର ଶ୍ରେଣୀବିଭାଗ ଲୁଚାନ୍ତୁ",
        "tog-ccmeonemails": "ମୁଁ ଯେଉଁ ଇ-ମେଲ ସବୁ ଅନ୍ୟମାନଙ୍କୁ ପଠାଉଛି ସେସବୁର ନକଲ ମୋତେ ପଠାଇବେ ।",
        "tog-diffonly": "ତୁଳନା ତଳେ ପୃଷ୍ଠାର ଭିତର ଭାଗ ଦେଖାନ୍ତୁ ନାହିଁ",
        "tog-showhiddencats": "ଲୁଚାଯାଇଥିବା ଶ୍ରେଣୀଗୁଡ଼ିକ ଦେଖାଇବେ",
        "createaccountreason": "କାରଣ:",
        "createacct-reason": "କାରଣ",
        "createacct-reason-ph": "ଆପଣ ଅନ୍ୟଏକ ଖାତା କାହିଁକି ତିଆରି କରୁଛନ୍ତି",
-       "createacct-captcha": "ନିରାପତ୍ତା ଯାଞ୍ଚ",
-       "createacct-imgcaptcha-ph": "ଉପରେ ଲେଖାଥିବା ଅକ୍ଷରକୁ ଲେଖନ୍ତୁ",
        "createacct-submit": "ନିଜର ନୂଆ ଖାତାଟିଏ ଖୋଲନ୍ତୁ",
        "createacct-another-submit": "ଆଉ ଏକ ଖାତା ଖୋଲନ୍ତୁ",
        "createacct-benefit-heading": "{{SITENAME}} ଆପଣଙ୍କ ଭଳି ଲୋକମାନଙ୍କ ଦ୍ୱାରା ଗଢ଼ା ।",
        "wlheader-showupdated": "ଆପଣ ଶେଷଥର ଦେଖିଥିବା ପୃଷ୍ଠାଗୁଡ଼ିକ '''ମୋଟା ଅକ୍ଷର'''ରେ ଦେଖାଯାଉଅଛି ।",
        "wlnote": "$3, $4 ଅନୁସାରେ ବିଗତ {{PLURAL:$2|ଘଣ୍ଟାକରେ|<strong>$2</strong> ଘଣ୍ଟାରେ}}{{PLURAL:$1|ଶେଷ ବଦଳ|ଶେଷ <strong>$1</strong> ବଦଳ ତଳେ ଦିଆଗଲା}} ।",
        "wlshowlast": "ଗତ $1 ଘଣ୍ଟା $2 ଦିନ ଦେଖାନ୍ତୁ",
+       "watchlistall2": "ସବୁ",
        "watchlist-options": "ଦେଖଣା ବିକଳ୍ପସବୁ",
        "watching": "ଦେଖୁଛି...",
        "unwatching": "ଦେଖୁନାହିଁ...",
index c56ea5d..61604b5 100644 (file)
        "rcshowhideanons": "$1 talagamit a e migpakilala",
        "rcshowhidepatr": "$1 edit a babanten (patrolled edits)",
        "rcshowhidemine": "$1 deng elilan ku",
+       "rcshowhidecategorization-show": "Pakit",
        "rclinks": "Pakit la reng tauling $1 miyalilan anyang tauling $2 aldo<br />$3",
        "diff": "aliwa",
        "hist": "amlat",
        "wlheader-showupdated": "'''Makapal''' la pangasulat deng bulung a miyalilan manibat aniang tauli mu lang pintalan.",
        "wlnote": "{{PLURAL:$1|Ing makatuki ing tauling|Ding makatuki ring tauling '''$1''' miyalilan}} kilub {{PLURAL:$2|ning tauling metung a oras|ding tauling '''$2''' oras}}.",
        "wlshowlast": "Pakit la reng tauling $1 oras $2 aldo",
+       "watchlistall2": "eganagana",
+       "watchlist-hide": "Isalikut",
+       "wlshowtime": "Ipakit ya ing tauli:",
+       "wlshowhideminor": "deng malating edit",
+       "wlshowhidebots": "Deng bot",
+       "wlshowhideanons": "Deng e migpakilalang talagamit",
+       "wlshowhidemine": "Deng kanakung edit",
        "watchlist-options": "Deng maliaring gawan kareng listaan da reng babanten (''watchlist'')",
        "watching": "Babanten...",
        "unwatching": "E ne babanten...",
index f960f6c..f6ffa81 100644 (file)
        "permissionserrorstext-withaction": "Nie masz uprawnień do $2 z {{PLURAL:$1|następującego powodu|następujących powodów}}:",
        "recreate-moveddeleted-warn": "'''Uwaga! Zamierzasz utworzyć stronę, która została wcześniej usunięta.'''\n\nUpewnij się, czy ponowne utworzenie tej strony jest uzasadnione.\nPoniżej znajduje się rejestr usunięć i zmian nazwy tej strony:",
        "moveddeleted-notice": "Ta strona została usunięta.\nRejestr usunięć i zmian nazwy tej strony jest pokazany poniżej.",
+       "moveddeleted-notice-recent": "Przepraszamy, ale ta strona została niedawno (w ciągu ostatnich 24 godzin) usunięta. Poniżej znajduje się rejestr usunięć i zmian nazwy tej strony.",
        "log-fulllog": "Pokaż cały rejestr",
        "edit-hook-aborted": "Edycja zatrzymana z powodu haka.\nWystąpił z nieokreślonej przyczyny.",
        "edit-gone-missing": "Nie udało się zaktualizować strony.\nZdaje się, że została skasowana.",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Poniżej {{PLURAL:$5|pokazano zmianę|pokazano zmiany}} {{PLURAL:$5|wykonaną|wykonane}} po <strong>$3, $4</strong> (nie więcej niż '''$1''' pozycji).",
        "rclistfrom": "Pokaż nowe zmiany od $3 $2",
-       "rcshowhideminor": "$1 drobne zmiany",
+       "rcshowhideminor": "$1 drobne edycje",
        "rcshowhideminor-show": "Pokaż",
        "rcshowhideminor-hide": "Ukryj",
        "rcshowhidebots": "$1 boty",
        "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",
+       "watchlist-hide": "Ukryj",
+       "wlshowtime": "Pokaż ostatnie:",
+       "wlshowhideminor": "drobne edycje",
+       "wlshowhidebots": "boty",
+       "wlshowhideliu": "zarejestrowanych",
+       "wlshowhideanons": "anonimowych",
+       "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..0ffb96a 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}} ستاسې په څېر خلکو جوړ کړی.",
        "passwordreset-emailelement": "کارن-نوم: \n$1\n\nلنډمهاله پټنوم: \n$2",
        "passwordreset-emailsent": "د پټنوم بيا پرځای کېدنې لپاره برېښليک درولېږل شو.",
        "passwordreset-emailsent-capture": "د پټنوم بياپرځای کېدنې لپار مو يو برېښليک درولېږه، برېښليک په لاندې توگه ښودل شوی.",
-       "changeemail": "برېښليک پته بدلول",
+       "changeemail": "برېښليک پته بدلول يا ليرې کول",
        "changeemail-header": "د گڼون برېښليک پته بدلول",
        "changeemail-no-info": "دې مخ ته د لاسرسي لپاره بايد غونډال کې ورننوځۍ.",
        "changeemail-oldemail": "اوسنۍ برېښليک پته:",
        "wlheader-showupdated": "هغه مخونه چې ستاسې د کتلو نه وروسته بدلون موندلی په '''روڼ''' ليک په نښه شوي.",
        "wlnote": "دلته لاندې {{PLURAL:$1|وروستی بدلون دی|وروستي '''$1''' بدلونونه دي}} چې په {{PLURAL:$2|تېر ساعت|تېرو '''$2''' ساعتونو}} کې تر $3 نېټې او $4 بجو پېښ شوي.",
        "wlshowlast": "وروستي $1 ساعتونه $2 ورځې ښکاره کول",
+       "watchlistall2": "ټول",
+       "watchlist-hide": "پټول",
+       "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..ec8ebcf 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",
+       "wlshowhideminor": "edições menores",
+       "wlshowhidebots": "robôs",
+       "wlshowhideliu": "usuários registrados",
+       "wlshowhideanons": "usuários anônimos",
+       "wlshowhidepatr": "edições patrulhadas",
+       "wlshowhidemine": "minhas edições",
        "watchlist-options": "Opções da lista de páginas vigiadas",
        "watching": "A vigiar...",
        "unwatching": "A deixar de vigiar...",
index cc81576..bd3776e 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).",
-       "wlshowtime": "Appears on [[Special:Watchlist]].",
-       "watchlistall2": "Appears on [[Special:Watchlist]], after {{msg-mw|wlshowtime}}, as the option to display all available data regardless of age.",
-       "wlshowhideminor": "Option text in [[Special:Watchlist]].",
-       "wlshowhidebots": "Option text in [[Special:Watchlist]].",
-       "wlshowhideliu": "Option text in [[Special:Watchlist]].",
-       "wlshowhideanons": "Option text in [[Special:Watchlist]].",
-       "wlshowhidepatr": "Option text in [[Special:Watchlist]].",
-       "wlshowhidemine": "Option text in [[Special:Watchlist]].",
+       "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]]. Label of a drop-down list used to specify the period of time to display in the watchlist. This period can be {{msg-mw|days}}, {{msg-mw|hours}}, or {{msg-mw|watchlistall2}}.",
+       "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.",
        "logentry-suppress-block": "{{Logentry}}\n* $4 - user name for gender or empty string for autoblocks\n* $5 - the block duration, localized and formatted with the english tooltip\n* $6 - block detail flags or empty string",
        "logentry-suppress-reblock": "{{Logentry}}\n* $4 - user name for gender or empty string for autoblocks\n* $5 - the block duration, localized and formatted with the english tooltip\n* $6 - block detail flags or empty string",
        "logentry-import-upload": "{{Logentry|[[Special:Log/import]]}}",
+       "logentry-import-upload-details": "{{Logentry|[[Special:Log/import]]}}\n* $4 - Number of imported revisions",
        "logentry-import-interwiki": "{{Logentry|[[Special:Log/import]]}}",
+       "logentry-import-interwiki-details": "{{Logentry|[[Special:Log/import]]}}\n* $4 - Number of imported revisions\n* $5 - Interwiki title",
        "logentry-merge-merge": "{{Logentry|[[Special:Log/merge]]}}\n* $4 - the page into which the content is merged\n* $5 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
        "logentry-move-move": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
        "logentry-move-move-noredirect": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
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 2a1affa..6aa4eb5 100644 (file)
@@ -85,7 +85,8 @@
                        "WindEwriX",
                        "Nzeemin",
                        "INS Pirat",
-                       "Краснорядцева Елена"
+                       "Краснорядцева Елена",
+                       "Frhdkazan"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "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-hide": "Скрыть",
+       "wlshowtime": "Показать последние:",
+       "wlshowhideminor": "малые правки",
+       "wlshowhidebots": "ботов",
+       "wlshowhideliu": "зарегистрированных участников",
+       "wlshowhideanons": "анонимных участников",
+       "wlshowhidepatr": "проверенные правки",
+       "wlshowhidemine": "мои правки",
        "watchlist-options": "Настройки списка наблюдения",
        "watching": "Добавление в список наблюдения…",
        "unwatching": "Удаление из списка наблюдения…",
index 96b8e89..7d92420 100644 (file)
        "retrievedfrom": "\"$1\" इत्यस्माद् पुनः प्राप्तिः",
        "youhavenewmessages": "{{PLURAL:$3|भवतः/भवत्याः कृते}} $1 ($2).",
        "youhavenewmessagesfromusers": "{{PLURAL:$4|भवतः/भवत्याः कृते}} $1  {{PLURAL:$3|अन्यस्मात् योजकात्|$3 अन्येभ्यः योजकेभ्यः}} अस्ति ($2)।",
-       "youhavenewmessagesmanyusers": "नà¥\88à¤\95à¥\87भà¥\8dयà¤\83 à¤¯à¥\8bà¤\9cà¤\95ेभ्यः ते $1 सन्ति ($2) ।",
+       "youhavenewmessagesmanyusers": "नà¥\88à¤\95à¥\87भà¥\8dयà¤\83 à¤¸à¤¦à¤¸à¥\8dयेभ्यः ते $1 सन्ति ($2) ।",
        "newmessageslinkplural": "{{PLURAL:$1|नूतनः सन्देशः|नूतनाः सन्देशाः}}",
        "newmessagesdifflinkplural": "सद्यः {{PLURAL:$1|परिवर्तनम्| परिवर्तनानि}}",
        "youhavenewmessagesmulti": "भवते नूतनसन्देशाः सन्ति अत्र $1",
        "sort-descending": "अवरोहक्रमेण सज्जयतु",
        "sort-ascending": "आरोहक्रमेण सज्जयतु",
        "nstab-main": "पृष्ठम्",
-       "nstab-user": "यà¥\8bà¤\9cà¤\95पृष्ठम्",
+       "nstab-user": "सदसà¥\8dयपृष्ठम्",
        "nstab-media": "माध्यमपृष्ठम्",
        "nstab-special": "विशेषपृष्ठम्",
        "nstab-project": "प्रकल्पपृष्ठम्",
        "nstab-template": "फलकम्",
        "nstab-help": "साहाय्यपृष्ठम्",
        "nstab-category": "वर्गः",
+       "mainpage-nstab": "मुख्यपृष्ठम्",
        "nosuchaction": "तादृशं कार्यं न विद्यते",
        "nosuchactiontext": "अनेन सार्वसङ्केन (URL) दर्शिता क्रिया अयोग्या अस्ति । अयोग्यं त्रुटियुक्तं वा सार्वसङ्केतं भवता/भवत्या लिखितं स्यात् ।",
        "nosuchspecialpage": "तादृशं विशेषपृष्ठं न विद्यते",
        "translateinterface": "विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
        "cascadeprotected": "इदं पृष्ठं सम्पादनात् संरक्षितमस्ति । कारणम् एतत् पृष्ठं {{PLURAL:$1|तादृशे पृष्ठे|तादृशेषु पृष्ठेषु}} अन्तर्भवति, यादृशेषु पृष्ठेषु सोपानवत् सुरक्षा अस्ति : $2",
        "namespaceprotected": "भवान्/भवती '''$1''' नामाकाशे अन्तर्भूतेषु पृष्ठेषु परिवर्तनं कर्तुं न शक्नोति ।",
-       "customcssprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 CSS à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¤à¤\83 à¤\85नà¥\8dयसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
-       "customjsprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 JavaScript à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¤à¤\83 à¤\85नà¥\8dयसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
+       "customcssprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 CSS à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¤à¤\83 à¤\85नà¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
+       "customjsprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 JavaScript à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¤à¤\83 à¤\85नà¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
        "mycustomcssprotected": "भवान्/भवती इदं CSS पृष्ठं सम्पादयितुं न शक्नोति ।",
        "mycustomjsprotected": "भवान्/भवती इदं JavaScript पृष्ठं सम्पादयितुं न शक्नोति ।",
        "myprivateinfoprotected": "भवान्/भवती अत्र वैयक्तिकसूचनाः सम्पादयितुं न शक्नोति ।",
        "logouttext": "'''भवान्/भवती अधुना बहिः अस्ति ।'''\nभवान्/भवती {{SITENAME}} इत्येतत् अनामतया प्रयोक्तुं शक्नोति । अथवा तेनैव प्रयोक्तृनाम्ना, भिन्नप्रयोक्तृनाम्ना वा पुनः प्रवेष्टुं शक्नोति ।\nइदानीमपि कानिचन पृष्ठानि पूर्ववदेव दृश्येरन् । तत् वारयितुं गवाक्षस्य (browser) इतिहासः रिक्तीक्रियताम् ।",
        "welcomeuser": "स्वागतम्, $1!",
        "welcomecreation-msg": "भवता/भवत्या सदस्यता प्राप्ता ।\nस्वस्य [[Special:Preferences|{{SITENAME}} इष्टतमानि]] परिवर्तयितुं मा विस्मरतु ।",
-       "yourname": "यà¥\8bà¤\9cà¤\95नाम:",
-       "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नाम लिख्यताम्",
+       "yourname": "सदसà¥\8dयनाम:",
+       "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-text-many": "{{PLURAL:$1|वि-पत्रमाध्यमेन अल्पकालीनकूटशब्दं प्राप्तुम् अधस्तनां कामपि एकां पेटिकां पूरयतु ।}}",
        "passwordreset-disabled": "अस्मिन् विकि-जालस्थाने कूटशब्दं परिर्तितुं निषेधः अस्ति ।",
        "passwordreset-emaildisabled": "अस्मिन् विकि-जालस्थाने वि-पत्रसम्बद्धाः सेवाः असमर्थिताः सन्ति ।",
-       "passwordreset-username": "यà¥\8bà¤\9cà¤\95नाम:",
-       "passwordreset-domain": "à¤\95à¥\8dषà¥\87तà¥\8dरमà¥\8d:",
+       "passwordreset-username": "सदसà¥\8dयनाम:",
+       "passwordreset-domain": "पà¥\8dरदà¥\87शà¤\83 :",
        "passwordreset-capture": "परिणामस्वरूपनिर्मितानि वि-पत्राणि द्रष्टुम् इच्छति ?",
        "passwordreset-capture-help": "अस्यां मञ्जूषायां यदि भवता अङ्क्यते तर्हि वि-पत्रम् (अस्थायिकूटशब्देन सह) दर्श्यते प्रेष्यते च ।",
        "passwordreset-email": "वि-पत्रसङ्केतः",
        "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",
        "accmailtext": "[[User talk:$1|$1]] कृते अशृङ्खलितरीत्या (randomly) उत्पादितः कूटशब्दः $2 वि-पत्रसङ्केतं प्रति प्रेषितः अस्ति । <em>[[Special:ChangePassword|कूटशब्दः परिवर्त्यताम्]]</em> अत्र तत् परिर्तयितुं शक्यते ।",
        "newarticle": "(नूतनम्)",
        "newarticletext": "भवान्/भवती अनिर्मिते पृष्ठे अस्ति । \nपृष्ठं स्रष्टुम् अधः प्रदत्तायां पेटिकायां टङ्कनं प्रारभताम् (साहाय्यार्थं [$1 अत्र]) नुदतु ।\nभवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) Back नुदतु ।",
-       "anontalkpagetext": "----\n<em>à¤\8fततà¥\8d à¤¸à¤®à¥\8dभाषणपà¥\83षà¥\8dठमà¥\8d à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¤à¥\87भà¥\8dयà¤\83 à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤°à¤\9aितमसà¥\8dति, à¤¯à¥\88à¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤¨ à¤ªà¥\8dरापà¥\8dता à¤\85सà¥\8dति à¤¤à¤¥à¤¾ à¤\9a à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤¨ à¤\95à¥\81रà¥\8dवनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤</em>\nतà¥\87षाà¤\82 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\82 à¤ªà¥\8dरापà¥\8dतà¥\81मà¥\87व à¤µà¤¯à¤\82 à¤¤à¤¸à¥\8dय/तसà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\81रà¥\8dमà¤\83 à¥¤ à¤\95à¥\87à¤\9aन à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤¸à¥\8dवसà¥\8dय à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदमà¥\8d à¤\85नà¥\8dयानà¥\8d à¤¯à¥\8bà¤\9cà¤\95ानà¥\8d à¤\95थयनà¥\8dति à¥¤ \nयदà¥\8dयपि à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¤\83 à¤\85हà¤\82 à¤¨à¤¾à¤¸à¥\8dमि, à¤¤à¤¥à¤¾à¤ªà¤¿ à¤\85यà¥\8bà¤\97à¥\8dयसà¥\82à¤\9aनाà¤\83 à¤®à¤® à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤\86à¤\97à¤\9aà¥\8dà¤\9bनà¥\8dतà¥\8dयà¤\83 à¤¸à¤¨à¥\8dति à¤\87ति à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¶à¤\99à¥\8dà¤\95तà¥\87, à¤¤à¤°à¥\8dहि à¤\8fततà¥\8d [[Special:UserLogin/signup|create an account]] à¤\8fततà¥\8d [[Special:UserLogin|log in]] à¤µà¤¾ à¤\95à¥\83तà¥\8dवा à¤­à¤µà¤¿à¤·à¥\8dयसà¥\8dय à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95ानां सन्देशेभ्यः स्वस्य रक्षणं करोतु ।",
+       "anontalkpagetext": "----\n<em>à¤\8fततà¥\8d à¤¸à¤®à¥\8dभाषणपà¥\83षà¥\8dठमà¥\8d à¤\85नामà¤\95सदसà¥\8dयà¥\87भà¥\8dयà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¤à¥\87भà¥\8dयà¤\83 à¤\85नामà¤\95सदसà¥\8dयà¥\87भà¥\8dयà¤\83 à¤°à¤\9aितमसà¥\8dति, à¤¯à¥\88à¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤¨ à¤ªà¥\8dरापà¥\8dता à¤\85सà¥\8dति à¤¤à¤¥à¤¾ à¤\9a à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤¨ à¤\95à¥\81रà¥\8dवनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤</em>\nतà¥\87षाà¤\82 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\82 à¤ªà¥\8dरापà¥\8dतà¥\81मà¥\87व à¤µà¤¯à¤\82 à¤¤à¤¸à¥\8dय/तसà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\81रà¥\8dमà¤\83 à¥¤ à¤\95à¥\87à¤\9aन à¤¸à¤¦à¤¸à¥\8dयाà¤\83 à¤¸à¥\8dवसà¥\8dय à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदमà¥\8d à¤\85नà¥\8dयानà¥\8d à¤¸à¤¦à¤¸à¥\8dयानà¥\8d à¤\95थयनà¥\8dति à¥¤ \nयदà¥\8dयपि à¤\85नामà¤\95सदसà¥\8dयà¤\83 à¤\85हà¤\82 à¤¨à¤¾à¤¸à¥\8dमि, à¤¤à¤¥à¤¾à¤ªà¤¿ à¤\85यà¥\8bà¤\97à¥\8dयसà¥\82à¤\9aनाà¤\83 à¤®à¤® à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤\86à¤\97à¤\9aà¥\8dà¤\9bनà¥\8dतà¥\8dयà¤\83 à¤¸à¤¨à¥\8dति à¤\87ति à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¶à¤\99à¥\8dà¤\95तà¥\87, à¤¤à¤°à¥\8dहि à¤\8fततà¥\8d [[Special:UserLogin/signup|create an account]] à¤\8fततà¥\8d [[Special:UserLogin|log in]] à¤µà¤¾ à¤\95à¥\83तà¥\8dवा à¤­à¤µà¤¿à¤·à¥\8dयसà¥\8dय à¤\85नामà¤\95सदसà¥\8dयानां सन्देशेभ्यः स्वस्य रक्षणं करोतु ।",
        "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}}\" नुद्य प्रयोगं करोतु ।",
        "userjsyoucanpreview": "'''सूचना :''' JavaScript नवीनलिप्याः संरक्षणं करणात् प्राक् एतत् \"{{int:showpreview}}\" नुद्य प्रयोगं करोतु ।",
-       "usercsspreview": "<strong>à¤\8fततà¥\8d à¤\95à¥\87वलà¤\82 à¤¯à¥\8bà¤\9cà¤\95स्य CSS इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
-       "userjspreview": "<strong>à¤\8fततà¥\8d à¤\95à¥\87वलà¤\82 à¤¯à¥\8bà¤\9cà¤\95स्य JabaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
+       "usercsspreview": "<strong>à¤\8fततà¥\8d à¤\95à¥\87वलà¤\82 à¤¸à¤¦à¤¸à¥\8dयस्य CSS इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
+       "userjspreview": "<strong>à¤\8fततà¥\8d à¤\95à¥\87वलà¤\82 à¤¸à¤¦à¤¸à¥\8dयस्य JabaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
        "sitecsspreview": "<strong>एतत् केवलं CSS इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
        "sitejspreview": "<strong>एतत् केवलं JavaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
        "userinvalidcssjstitle": "'''पूर्वसूचना:'''  \"$1\" इति त्वक् न विद्यते।\nयोजकपरिवर्तिते .css, .js सञ्चिके लघु-आङ्ग्लवर्णमालायाः वर्णैः लिख्येते । उदा. {{ns:user}}:Foo/Vector.css एवं न लेखनीयम् । लघुवर्णैः {{ns:user}}:Foo/vector.css एवं लेखनीयम् ।",
        "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] द्रष्टुं शक्नोति ।",
        "revdelete-hide-image": "सञ्चिकाधेयं गोप्यताम्",
        "revdelete-hide-name": "परिमितयः (parameters), लक्ष्यं च गोप्यताम्",
        "revdelete-hide-comment": "सम्पादनसारः गोप्यताम्",
-       "revdelete-hide-user": "यà¥\8bà¤\9cà¤\95स्य प्रयोकतृनाम/अन्तर्जालसंविद् (IP)",
+       "revdelete-hide-user": "सदसà¥\8dयस्य प्रयोकतृनाम/अन्तर्जालसंविद् (IP)",
        "revdelete-hide-restricted": "प्रबन्धकेभ्यः, अन्येभ्यश्च सूचनाधारः गोप्यताम्",
        "revdelete-radio-same": "(मा परिवर्त्यताम्)",
        "revdelete-radio-set": "निगूहितम्",
        "revdelete-modify-no-access": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तितवस्तुनि दोषः दृष्टः । तत् वस्तु निषिद्धावल्याम् अस्ति । भवान्/भवती तत् परिवर्तितुं न शक्नोति ।",
        "revdelete-modify-missing": "ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
        "revdelete-no-change": "'''पूर्वसूचना :''' $2, $1 इत्यस्मिन् याचितवस्तूनि पूर्वमेव विद्यन्ते ।",
-       "revdelete-concurrent-change": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तनेषु दोषः दृष्टः । अस्य पृष्ठस्य यदा भवान्/भवती सम्पादनं करोति स्म, तदा अन्य कोऽपि अत्र परिवर्तनम् अकरोत् । अतः परिवर्तनस्य इतिहासे अन्यस्य नाम दृश्यते । \nकृपया स्वस्य संरक्षिताऽऽवलिं पश्यतु ।",
+       "revdelete-concurrent-change": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तनेषु दोषः दृष्टः । अस्य पृष्ठस्य यदा भवान्/भवती सम्पादनं करोति स्म, तदा अन्य कोऽपि अत्र परिवर्तनम् अकरोत् । अतः परिवर्तनस्य इतिहासे अन्यस्य नाम दृश्यते । \nकृपया स्वस्य संरक्षिताऽऽवलिं पश्यतु ।",
        "revdelete-only-restricted": "$2 दिनाङ्कस्य $1 समयस्य निगूढनकार्ये दोषः दृष्टः । भावान्/भवती दृश्यता-विकल्पे परिवर्तनं अकृत्वा प्रबन्धकेभ्यः एतत् परिवर्तनं निगूहितुं न शक्नोति ।",
-       "revdelete-reason-dropdown": "* à¤\85पाà¤\95रणसà¥\8dय à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dयà¤\95ारणानि\n** à¤ªà¥\8dरतिà¤\95à¥\83तà¥\8dयधिà¤\95ारसà¥\8dय à¤\89लà¥\8dलà¤\99à¥\8dà¤\98नमà¥\8d\n** à¤\85यà¥\8bà¤\97à¥\8dया à¤\9fिपà¥\8dपणà¥\80 à¤µà¥\88यà¤\95à¥\8dतिà¤\95सà¥\82à¤\9aनाधारà¤\83 à¤µà¤¾\n** à¤\85यà¥\8bà¤\97à¥\8dयà¤\82 à¤¯à¥\8bà¤\9cà¤\95नाम\n** हानिकारकसूचनाधारः",
+       "revdelete-reason-dropdown": "* à¤\85पाà¤\95रणसà¥\8dय à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dयà¤\95ारणानि\n** à¤ªà¥\8dरतिà¤\95à¥\83तà¥\8dयधिà¤\95ारसà¥\8dय à¤\89लà¥\8dलà¤\99à¥\8dà¤\98नमà¥\8d\n** à¤\85यà¥\8bà¤\97à¥\8dया à¤\9fिपà¥\8dपणà¥\80 à¤µà¥\88यà¤\95à¥\8dतिà¤\95सà¥\82à¤\9aनाधारà¤\83 à¤µà¤¾\n** à¤\85यà¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम\n** हानिकारकसूचनाधारः",
        "revdelete-otherreason": "अपरं/अतिरिक्तं कारणम् :",
        "revdelete-reasonotherlist": "अन्यानि कारणानि",
        "revdelete-edit-reasonlist": "सम्पादनस्य अपाकरणकारणानि",
        "datedefault": "इष्टतमानि न सन्ति",
        "prefs-labs": "प्रयोगशालावैशिष्ट्यम्",
        "prefs-user-pages": "योजकपृष्ठानि",
-       "prefs-personal": "यà¥\8bà¤\9cà¤\95स्य विवरणम्",
+       "prefs-personal": "सदसà¥\8dयस्य विवरणम्",
        "prefs-rc": "सद्यो जातानि परिवर्तनानि",
        "prefs-watchlist": "निरीक्षासूचिः",
        "prefs-editwatchlist": "निरीक्षासूचिः सम्पाद्यताम्",
        "prefs-reset-intro": "भवान्/भवती अस्य पृष्ठस्य साहाय्येन स्वस्य इष्टतमविकल्पान् मूलविकि-विकल्पसदृशं स्थापयितुं (कर्तुं) शक्नोति ।\nपरन्तु ततः भवान्/भवती पूर्ववत् स्थितिं प्राप्तुं न शक्ष्यति ।",
        "prefs-emailconfirm-label": "वि-पत्रं दृढीक्रियताम् :",
        "youremail": "वि-पत्रसङ्केतः :",
-       "username": "{{GENDER:$1|यà¥\8bà¤\9cà¤\95नाम}} :",
+       "username": "{{GENDER:$1|सदसà¥\8dयनाम}} :",
        "prefs-memberingroups": "{{PLURAL:$1|समूहस्य|समूहानां}} {{GENDER:$2|सदस्यः|सदस्याः}} :",
        "prefs-registration": "पञ्जीकरणकालः :",
        "yourrealname": "वास्तविकनाम :",
        "email": "वि-पत्रम्",
        "prefs-help-realname": "वास्तविकनाम ऐच्छकम् अस्ति । भवान्/भवती एनं विकल्पं समर्थयति चेत्, भवतः/भवत्याः योगदानश्रेयस्य उल्लेखसमये अस्य उपयोगः भविष्यति ।",
        "prefs-help-email": "वि-पत्रसङ्केतः अनिवार्यः नास्ति । किन्तु कूटशब्दः विस्मर्यते चेत्, तस्य परिवर्तनाय आवश्यकः भवति ।",
-       "prefs-help-email-others": "यà¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठ-समà¥\8dभाषणपà¥\83षà¥\8dठयà¥\8bà¤\83 à¤®à¤¾à¤§à¥\8dयमà¥\87न, à¤µà¤¿-पतà¥\8dरमाधà¥\8dयमà¥\87न à¤µà¤¾ à¤\85नà¥\8dयà¥\87 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81यà¥\81à¤\83 à¥¤\nसमà¥\8dपरà¥\8dà¤\95à¥\87ऽसà¥\8dमिनà¥\8d à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तमà¥\8d à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95ाः ज्ञातुं न प्रभवन्ति ।",
+       "prefs-help-email-others": "सदसà¥\8dयपà¥\83षà¥\8dठ-समà¥\8dभाषणपà¥\83षà¥\8dठयà¥\8bà¤\83 à¤®à¤¾à¤§à¥\8dयमà¥\87न, à¤µà¤¿-पतà¥\8dरमाधà¥\8dयमà¥\87न à¤µà¤¾ à¤\85नà¥\8dयà¥\87 à¤¸à¤¦à¤¸à¥\8dयाà¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81यà¥\81à¤\83 à¥¤\nसमà¥\8dपरà¥\8dà¤\95à¥\87ऽसà¥\8dमिनà¥\8d à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤µà¤¿-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तमà¥\8d à¤\85नà¥\8dयसदसà¥\8dयाः ज्ञातुं न प्रभवन्ति ।",
        "prefs-help-email-required": "वि-पत्रसङ्केतः अनिवार्यः ।",
        "prefs-info": "मूलसूचना",
        "prefs-i18n": "अन्ताराष्ट्रियकरणम्",
        "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]]''' à¤\87तà¥\8dयसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95ाधिकारः परिवर्त्यते । $2",
+       "editinguser": "'''[[User:$1|$1]]''' à¤\87तà¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयाधिकारः परिवर्त्यते । $2",
        "userrights-editusergroup": "योजकसमूहः सम्पाद्यताम्",
        "saveusergroups": "योजकसमूहः रक्ष्यताम्",
        "userrights-groupsmember": "अस्य सदस्यः :",
        "userrights-reason": "कारणम् :",
        "userrights-no-interwiki": "अन्यविकि-जालस्थानेषु योजकाधिकारं सम्पादयितुं ते अनुमतिः नास्ति ।",
        "userrights-nodatabase": "$1 दत्तांशनिधिः न विद्यते अथवा तु सः स्थानीयः नास्ति ।",
-       "userrights-nologin": "यà¥\8bà¤\9cà¤\95ेभ्यः अधिकारं दातुं प्रबन्धकत्वेन प्रवेशः आवश्यकः । [[Special:UserLogin|प्रविश्यताम्]]",
-       "userrights-notallowed": "यà¥\8bà¤\9cà¤\95ेभ्यः अधिकारं दातुं, योजकान् अपाकर्तुं च ते अनुमतिः नास्ति ।",
+       "userrights-nologin": "सदसà¥\8dयेभ्यः अधिकारं दातुं प्रबन्धकत्वेन प्रवेशः आवश्यकः । [[Special:UserLogin|प्रविश्यताम्]]",
+       "userrights-notallowed": "सदसà¥\8dयेभ्यः अधिकारं दातुं, योजकान् अपाकर्तुं च ते अनुमतिः नास्ति ।",
        "userrights-changeable-col": "परिवर्तनार्हाः समूहाः",
        "userrights-unchangeable-col": "परिवर्तयितुम् अनर्हाः समूहाः",
        "userrights-conflict": "सदस्याधिकारस्य परिवर्तनेषु अन्तर्विरोधः अस्ति ! कृपया स्वकृतानि परिवर्तनानि पुनरवलोक्य संरक्ष्यन्ताम् ।",
        "userrights-removed-self": "भवता/भवत्या सफलतया स्वाधिकाराः अपाकृताः । अतः भवान्/भवती एतत् पृष्ठं द्रष्टुं न प्रभवति ।",
        "group": "समूहः :",
-       "group-user": "यà¥\8bà¤\9cà¤\95ाः",
+       "group-user": "सदसà¥\8dयाः",
        "group-autoconfirmed": "स्वदृढितयोजकाः",
        "group-bot": "बॉट्स्",
        "group-sysop": "प्रबन्धकाः",
        "group-sysop-member": "{{GENDER:$1|प्रबन्धकः}}",
        "group-bureaucrat-member": "{{GENDER:$1|अधिकारी}}",
        "group-suppress-member": "{{GENDER:$1|अलक्ष्यम्}}",
-       "grouppage-user": "{{ns:project}}:यà¥\8bà¤\9cà¤\95ाः",
+       "grouppage-user": "{{ns:project}}:सदसà¥\8dयाः",
        "grouppage-autoconfirmed": "{{ns:project}}:स्वदृढितयोजकाः",
        "grouppage-bot": "{{ns:project}}:बॉट्स्",
        "grouppage-sysop": "{{ns:project}}:प्रबन्धकाः",
        "right-suppressrevision": "प्रबन्धकैः निगूहितानि, सम्मुखं स्थापितानि च विशिष्टसंस्करणानि पुनः पश्यतु, पुनस्स्थापयतु च",
        "right-viewsuppressed": "अन्ययोजकैः गूहितं संस्करणं दृश्यताम्",
        "right-suppressionlog": "वैयक्तिकसंस्करणानि दृश्यन्ताम्",
-       "right-block": "à¤\85सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य सम्पादनानि अवरुध्यन्ताम्",
+       "right-block": "à¤\85सà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य सम्पादनानि अवरुध्यन्ताम्",
        "right-blockemail": "वि-पत्रप्रेषयितुम् एषः सदस्यः अवरुध्यताम्",
-       "right-hideuser": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
+       "right-hideuser": "सदसà¥\8dयनाम अवरुध्यताम्, तत् अन्ययोजकेभ्यः गोप्यतां च",
        "right-ipblock-exempt": "स्वयम् अवरोधितं, समूहावरोधितम् अन्तर्जालसङ्केतम् (IP) अवगण्य अग्रे गच्छतु",
        "right-proxyunbannable": "प्रतिनिधीनां (of prxies) स्वयम्-अवरोधान् अवगण्य अग्रे गच्छतु",
        "right-unblockself": "स्वं मा अवरुध्यताम्",
        "right-editsemiprotected": "\"{{int:protect-level-autoconfirmed}}\"-त्वेन संरक्षितानि पृष्ठानि सम्पाद्यन्ताम्",
        "right-editcontentmodel": "एकस्य पृष्ठस्य विषयोदाहरणं सम्पाद्यताम्",
        "right-editinterface": "योजकमाध्यमं सम्पाद्यताम्",
-       "right-editusercssjs": "à¤\85नà¥\8dयसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य CSS, JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
-       "right-editusercss": "à¤\85नà¥\8dयसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य CSS सञ्चिकाः सम्पाद्यन्ताम्",
-       "right-edituserjs": "à¤\85नà¥\8dयसà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
+       "right-editusercssjs": "à¤\85नà¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य CSS, JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
+       "right-editusercss": "à¤\85नà¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य CSS सञ्चिकाः सम्पाद्यन्ताम्",
+       "right-edituserjs": "à¤\85नà¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
        "right-editmyusercss": "स्वस्य CSS सञ्चिकाः सम्पाद्यन्ताम्",
        "right-editmyuserjs": "स्वस्य JavaScript सञ्चिकाः सम्पाद्यन्ताम्",
        "right-viewmywatchlist": "स्वस्य निरीक्षासूचिः दृश्यताम्",
        "rcshowhidebots": "$1 बोट् इत्येतानि",
        "rcshowhidebots-show": "दृश्यताम्",
        "rcshowhidebots-hide": "गोप्यताम्",
-       "rcshowhideliu": "$1 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः",
+       "rcshowhideliu": "$1 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः",
        "rcshowhideliu-show": "दृश्यताम्",
        "rcshowhideliu-hide": "गोप्यताम्",
-       "rcshowhideanons": "à¤\85नामà¤\95ाà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः $1",
+       "rcshowhideanons": "à¤\85नामà¤\95ाà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः $1",
        "rcshowhideanons-show": "दृश्यताम्",
        "rcshowhideanons-hide": "गोप्यताम्",
        "rcshowhidepatr": "$1 ईक्षितसम्पादनानि",
        "img-auth-isdir": "भवान् \"$1\"निदेशिकाम् अभिगन्तुं यतते ।\nसञ्चिकाभिगमनम् एव अनुमतम् ।",
        "img-auth-streaming": "\"$1\"इत्यस्य प्रवाहिनी ।",
        "img-auth-public": "स्वायत्तविकितः सञ्चिकाः नेतुम् अयं कार्यक्रमः img_auth.php उपयुज्यते ।\nएषा विकिः सार्वजनिकविकिः इति  दृढिता । \nवैकल्पिकसुरक्षार्थं img_auth.php अपलपितः । ।",
-       "img-auth-noread": "\"$1\"पठनà¥\87 à¤¯à¥\8bà¤\9cà¤\95स्य अभिगमनं नास्ति ।",
+       "img-auth-noread": "\"$1\"पठनà¥\87 à¤¸à¤¦à¤¸à¥\8dयस्य अभिगमनं नास्ति ।",
        "http-invalid-url": " $1 इति अमान्यम् URL ।",
        "http-invalid-scheme": "\"$1\"योजनायुक्तं URLs नानुमोदितानि ।",
        "http-request-error": " अज्ञातदोषात् HTTP अभ्यर्थनं निष्पलम् ।",
        "listfiles_thumb": "अंगुष्ठनखाकारम् ।",
        "listfiles_date": "दिनाङ्क",
        "listfiles_name": "नाम",
-       "listfiles_user": "यà¥\8bà¤\9cà¤\95",
+       "listfiles_user": "सदसà¥\8dयà¤\83",
        "listfiles_size": "आकार",
        "listfiles_description": "वर्णनम्",
        "listfiles_count": "आवृत्ति",
        "filedelete-nofile": "'''$1''' न वर्तते ।",
        "filedelete-nofile-old": "'''$1''' इत्यस्य भवता वर्णितविशेषतायुतम् अवतरणम् अत्र न वर्तते ।",
        "filedelete-otherreason": "अपरम्/अतिरिक्तं कारणम् :",
-       "filedelete-reason-otherlist": "अन्य कारणम्",
+       "filedelete-reason-otherlist": "अन्यकारणम्",
        "filedelete-reason-dropdown": "* अपमर्जनस्य सामान्यं कारणम् । \n** कृतिस्वाम्यस्य उल्लङ्घनम् । \n** प्रतिकृता सञ्चिका ।",
        "filedelete-edit-reasonlist": "अपमार्जनकारणानि सम्पादयतु ।",
        "filedelete-maintenance": "सञ्चिकानाम् अपमर्जनम् अनमपमर्जनं च निर्वहणकाले तात्कालिकतया निष्क्रियौ ।",
        "statistics-edits-average": "प्रतिपुटं माध्यसम्पादनानि ।",
        "statistics-users": "पञ्जीकृतः [[Special:ListUsers|सदस्यः]]",
        "statistics-users-active": "सक्रियाः सदस्याः",
-       "statistics-users-active-desc": "à¤\97तà¥\87षà¥\81 {{PLURAL:$1|day|$1 à¤¦à¤¿à¤¨à¥\87षà¥\81}} à¤¸à¤\95à¥\8dरियाà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः  ।",
+       "statistics-users-active-desc": "à¤\97तà¥\87षà¥\81 {{PLURAL:$1|day|$1 à¤¦à¤¿à¤¨à¥\87षà¥\81}} à¤¸à¤\95à¥\8dरियाà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः  ।",
        "pageswithprop": "प्रगुणविशेषयुतानि पृष्ठानि",
        "pageswithprop-legend": "प्रगुणविशेषयुतानि पृष्ठानि",
        "pageswithprop-text": "निश्चितपृष्ठस्य अवच्छेदकतानाम् उपयोगं कुर्वतानां पृष्ठानाम् आवलिः ।",
        "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": "अवरोहक्रमेण क्रमबद्धं क्रियताम्",
        "usereditcount": "$1 {{PLURAL:$1|दिनम्|दिनानि}}",
        "usercreated": "$1 दिने $2 समये {{GENDER:$3|रचितं}}",
        "newpages": "नवीनपृष्ठानि",
-       "newpages-username": "यà¥\8bà¤\9cà¤\95नामनà¥\8d:",
+       "newpages-username": "सदसà¥\8dयनाम :",
        "ancientpages": "प्राचीनतमानि पृष्ठानि",
        "move": "शीर्षकं परिवर्त्यताम्",
        "movethispage": "एतस्य पृष्ठस्य शीर्षकं परिवर्त्यताम्",
        "unusedimagestext": "अधो दत्तसञ्चिकाः सन्ति किन्तु कस्मिंश्चिदपि पुटे न न्यस्ताः ।",
        "unusedcategoriestext": "निम्नलिखितवर्गाः सन्ति तथापि अन्यपुटं वर्गः वा न उपयुङ्क्ते ।",
        "notargettitle": "लक्ष्यं नास्ति ।",
-       "notargettext": "एतत्कार्यं समाचरितुं भवान् लक्षितपुटं योजकं वा न निर्दिष्टवान् ।",
+       "notargettext": "एतत्कार्यं समाचरितुं भवान्/भवती लक्षितपृष्ठं सदस्यं वा न निर्दिष्टवान् ।",
        "nopagetitle": "तादृशलक्षितपुटं नास्ति ।",
        "nopagetext": "भवता निर्दिष्टं लक्षितपुटं नास्ति ।",
        "pager-newer-n": "{{PLURAL:$1|नूतनतरम् 1|नूतनतराणि $1}}",
        "specialloguserlabel": "आचारी :",
        "speciallogtitlelabel": "लक्ष्यम् (शीर्षकम् / योजकः)",
        "log": "संरक्षिताऽऽवल्यः (Logs)",
-       "all-logs-page": "सरà¥\8dवसारà¥\8dवà¤\9cनिà¤\95पà¥\8dरवà¥\87शà¤\83 à¥¤",
-       "alllogstext": "{{SITENAME}}à¤\87तà¥\8dयसà¥\8dय à¤\89बलबà¥\8dधपà¥\8dरवà¥\87शानाà¤\82  à¤¸à¤\82यà¥\81à¤\95à¥\8dतपà¥\8dरदरà¥\8dशनमà¥\8d à¥¤\nपà¥\8dरवà¥\87शपà¥\8dरà¤\95ारà¤\82 à¤\9aितà¥\8dवा à¤­à¤µà¤¾à¤¨à¥\8d à¤¦à¥\83शà¥\8dयà¤\82 à¤\95à¥\8dषाययितà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¥\8bà¤\9cà¤\95नाम,  सदस्य नाम (ह्रस्वदीर्घाक्षरसंवादी) प्रभावितपुटम् ।",
+       "all-logs-page": "सरà¥\8dवाà¤\83 à¤¸à¤°à¥\8dवसारà¥\8dवà¤\9cनिà¤\95à¥\8dयà¤\83 à¤¸à¤\82रà¤\95à¥\8dषितावलà¥\8dयà¤\83",
+       "alllogstext": "{{SITENAME}}à¤\87तà¥\8dयसà¥\8dय à¤\89बलबà¥\8dधपà¥\8dरवà¥\87शानाà¤\82  à¤¸à¤\82यà¥\81à¤\95à¥\8dतपà¥\8dरदरà¥\8dशनमà¥\8d à¥¤\nपà¥\8dरवà¥\87शपà¥\8dरà¤\95ारà¤\82 à¤\9aितà¥\8dवा à¤­à¤µà¤¾à¤¨à¥\8d à¤¦à¥\83शà¥\8dयà¤\82 à¤\95à¥\8dषाययितà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¸à¤¦à¤¸à¥\8dयनाम,  सदस्य नाम (ह्रस्वदीर्घाक्षरसंवादी) प्रभावितपुटम् ।",
        "logempty": "प्रवेशे मेलयुक्तपुटं नास्ति ।",
        "log-title-wildcard": "अनेन पाठेन आरब्धानि शीर्षकानि अन्विषतु ।",
        "showhideselectedlogentries": "चितप्रवेशावलीः प्रदर्शयतु/गोपयतु ।",
        "listgrouprights-group": "दलम्",
        "listgrouprights-rights": "अधिकाराः ।",
        "listgrouprights-helppage": "Help: समूहाधिकाराः ।",
-       "listgrouprights-members": "(यà¥\8bà¤\9cà¤\95ानाम् आवलिः)",
+       "listgrouprights-members": "(सदसà¥\8dयानाम् आवलिः)",
        "listgrouprights-addgroup": "{{PLURAL:$2|समूहः}} योज्यताम् $1",
        "listgrouprights-removegroup": "समूहः{{PLURAL:$2|विलोपयतु}}: $1",
        "listgrouprights-addgroup-all": "सर्वसमूहान् योजयतु ।",
        "emailuser-title-notarget": "वि-पत्रयुक्तः सदस्यः",
        "emailpagetext": "{{GENDER:$1|अस्मै}} योजकाय विद्युन्मानपत्रं प्रेषयितुम् अधो दत्तप्रपत्रम् उपयोक्तुं शक्नोति । \n[[Special:Preferences|your user preferences]] अत्र भवता विनिवेशितः वि-पत्रसङ्केतः सकाशात् इति स्थाने प्रतिभाति । अनेन स्वीकर्ता साक्षात् प्रत्युत्तरं दातुं प्रभविष्यति ।",
        "defemailsubject": "{{SITENAME}}\"$1\" इति योजकात् विद्युन्मानपत्रम् ।",
-       "usermaildisabled": "यà¥\8bà¤\9cà¤\95स्य विद्युन्मानपत्रं निष्क्रियम् ।",
+       "usermaildisabled": "सदसà¥\8dयस्य विद्युन्मानपत्रं निष्क्रियम् ।",
        "usermaildisabledtext": "अस्यां विक्याम् अन्ययोजकेभ्यः विद्युन्मानपत्रं प्रेषयितुं नै शक्नोति ।",
        "noemailtitle": "विद्युन्मानपत्रसङ्केतः नास्ति ।",
-       "noemailtext": "à¤\85सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95स्य निरिदिष्टः विद्युन्मानपत्रसङ्केतः नास्ति ।",
+       "noemailtext": "à¤\85सà¥\8dय à¤¸à¤¦à¤¸à¥\8dयस्य निरिदिष्टः विद्युन्मानपत्रसङ्केतः नास्ति ।",
        "nowikiemailtext": "अयं सदस्यः अन्यसदस्येभ्यः वि-पत्राणि स्वीकर्तुं नेच्छति ।",
-       "emailnotarget": "सà¥\8dवà¥\80à¤\95रà¥\8dतà¥\81à¤\83 à¤\85सà¥\8dतितà¥\8dवविहà¥\80नमà¥\8d à¤\85थवा à¤\85मानà¥\8dयà¤\82 à¤¯à¥\8bà¤\9cà¤\95नाम  ।",
-       "emailtarget": "सà¥\8dवà¥\80à¤\95रà¥\8dतà¥\81à¤\83 à¤¯à¥\8bà¤\9cà¤\95नाम लिखतु ।",
-       "emailusername": "यà¥\8bà¤\9cà¤\95नामनà¥\8d:",
+       "emailnotarget": "सà¥\8dवà¥\80à¤\95रà¥\8dतà¥\81à¤\83 à¤\85सà¥\8dतितà¥\8dवविहà¥\80नमà¥\8d à¤\85थवा à¤\85मानà¥\8dयà¤\82 à¤¸à¤¦à¤¸à¥\8dयनाम  ।",
+       "emailtarget": "सà¥\8dवà¥\80à¤\95रà¥\8dतà¥\81à¤\83 à¤¸à¤¦à¤¸à¥\8dयनाम लिखतु ।",
+       "emailusername": "सदसà¥\8dयनाम :",
        "emailusernamesubmit": "उपस्थाप्यताम्",
        "email-legend": "{{SITENAME}}  इति अन्ययोजकाय विद्युन्मानपत्रं प्रेषयतु ।",
        "emailfrom": "सकाशात्",
        "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 इत्यनया}} चालितमस्ति",
        "alreadyrolled": "[[User:$2|$2]] ([[User talk:$2|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) द्वारा कृतम्  [[:$1]] इत्यस्य गतसम्पादनं पूर्वतनस्थितौ प्रत्याहरणं न शक्यते । अत्रान्तरे कोऽप्यन्यः एतत्पुटं पुनस्सम्पादितवान् अथवा पूर्वमेव प्राचीनस्थितौ आनीतम् अस्ति ।\nअस्य पुटास्य अन्तिमसम्पादनं [[User:$3|$3]] ([[User talk:$3|वार्ता]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) इत्यनेन कृतम् ।",
        "editcomment": "\"''$1''\" इति सम्पादनसारः आसीत् ।",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]])इत्यस्य सम्पादनम् अपमर्ज्य  [[User:$1|$1]] इति अन्तिमपुनरावृत्तिः ।",
-       "revertpage-nouser": "(यà¥\8bà¤\9cà¤\95स्य नाम अपाकृतम्) इत्यस्य सम्पादनानि अपाकृत्य {{GENDER:$1|[[User:$1|$1]]}} इत्यस्य अन्तिमं संस्करणं पूर्ववत् कृतम् ।",
+       "revertpage-nouser": "(सदसà¥\8dयस्य नाम अपाकृतम्) इत्यस्य सम्पादनानि अपाकृत्य {{GENDER:$1|[[User:$1|$1]]}} इत्यस्य अन्तिमं संस्करणं पूर्ववत् कृतम् ।",
        "rollback-success": "$1 इत्यस्य सम्पादनम् अपनयतु । \n$2 द्वारा सम्पादितां अन्तिमावृत्तिं पुनस्थापयतु ।",
        "sessionfailure-title": "सत्रस्य वैफल्यम् ।",
        "sessionfailure": "भवतः प्रवेशत्रेण सह कापि समस्या अस्ति इति भाति ।\nसत्रापहरणात् रक्षणस्य सावधानार्थं भवतः क्रियाकलापः अपनीतः ।\nनिर्गत्य पूर्वपुटं गत्वा पुनः गत्वा प्रयत्नं करोतु ।",
-       "protectlogpage": "सà¥\81रà¤\95à¥\8dषाऽऽवलिः",
+       "protectlogpage": "सà¥\81रà¤\95à¥\8dषािता à¤¸à¤\82रà¤\95à¥\8dषितावलिः",
        "protectlogtext": "अधो दत्ता सुरक्षार्थं कृतपरिवर्ननानां सूचिका अस्ति । \nवरतमानस्य सुरक्षितपुटानां सूचिकार्थम् अत्र [[Special:ProtectedPages|सुरक्षितपुटानां सूचिका]] पश्यतु ।",
        "protectedarticle": "\"[[$1]]\" संरक्षितमस्ति",
        "modifiedarticleprotection": "\"[[$1]]\" इत्येतदर्थं सुरक्षा-स्तरः परिवर्तित: :",
        "protect-locked-access": "भवान् अस्य पृष्ठस्य सुरक्षा-स्तरं परिवर्तयितुम् अनुज्ञां न धारयति। '''$1''' इति पृष्ठस्य अधुनातनः सुरक्षा-स्तरः :",
        "protect-cascadeon": "एतत् पृष्ठं सद्यः संरक्षितम् अस्ति, यतो हि {{PLURAL:$1|एतस्य पृष्ठस्य|एतेषां पृष्ठानां}} सुरक्षा-सोपाने विद्यते । एतस्य पृष्ठस्य सुरक्षा-स्तरे परिवर्तनं कृते सति सुरक्षा-सोपाने परिवर्नं न भविष्यति ।",
        "protect-default": "सर्वान् प्रयोक्तॄन् अनुज्ञापयतु।",
-       "protect-fallback": "\"$1\" à¤\85नà¥\81à¤\9cà¥\8dà¤\9eायà¥\81à¤\95à¥\8dताà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः अनुमिताः",
-       "protect-level-autoconfirmed": "सà¥\8dवानà¥\81मà¥\8bदिताà¤\83 à¤¯à¥\8bà¤\9cà¤\95ा एव अनुमिताः",
+       "protect-fallback": "\"$1\" à¤\85नà¥\81à¤\9cà¥\8dà¤\9eायà¥\81à¤\95à¥\8dताà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः अनुमिताः",
+       "protect-level-autoconfirmed": "सà¥\8dवानà¥\81मà¥\8bदिताà¤\83 à¤¸à¤¦à¤¸à¥\8dयाà¤\83 एव अनुमिताः",
        "protect-level-sysop": "केवलं प्रबन्धकाः अनुमिताः",
        "protect-summary-cascade": "सोपानात्मकम्",
        "protect-expiring": "अवसानम् $1 (UTC)",
        "undeleterevisions": "$1 {{PLURAL:$1|पुनरावृत्तिः}}",
        "undeletehistory": "यदि भवान् पुटानि पुनस्थापयितुमिच्छति तर्हि पुनरवृत्तीनां सर्वेतिहासाः पुनस्थापितानि भवन्ति । \nअपनयनात् परं यदि तस्मिन् एव नाम्नि नूतनपुटनिर्माणं करोति चेत् तस्य पुनस्थापितावृत्तिः पूर्वेतिहासे एव दृश्यते ।",
        "undeleterevdel": "यदि पुनस्थापनस्य फलस्वरूपशीर्षकपुटं, सञ्चिकां, पुनरावृत्तिं वा आंशिकरूपेण नाशयति चेत् एतत् न क्रियते ।\nएतादस्थितौ नूतनापनीताः पुनरावृत्तीनाम् अपचयनं असङ्गोपनं वा कुर्याट् ।",
-       "undeletehistorynoadmin": "à¤\8fततà¥\8dपà¥\81à¤\9fमà¥\8d à¤\85पमरà¥\8dà¤\9cितमà¥\8d à¥¤\nà¤\85धà¤\83 à¤\85पमरà¥\8dà¤\9cनसà¥\8dय à¤\95ारणà¤\82 à¤¦à¤°à¥\8dशितमà¥\8d à¥¤ à¤\85पमरà¥\8dà¤\9cनातà¥\8d à¤ªà¥\82रà¥\8dवà¤\82 à¤¯à¥\87 à¤¯à¥\8bà¤\9cà¤\95ाः सम्पादनं कृतवन्तः तेषां विषयः अपि दर्शिताः । \nअपमर्जितपुनरावृत्तीनां वास्तवपाठः केवलं प्रशासकै दृष्टुं शक्यते ।",
+       "undeletehistorynoadmin": "à¤\8fततà¥\8dपà¥\81à¤\9fमà¥\8d à¤\85पमरà¥\8dà¤\9cितमà¥\8d à¥¤\nà¤\85धà¤\83 à¤\85पमरà¥\8dà¤\9cनसà¥\8dय à¤\95ारणà¤\82 à¤¦à¤°à¥\8dशितमà¥\8d à¥¤ à¤\85पमरà¥\8dà¤\9cनातà¥\8d à¤ªà¥\82रà¥\8dवà¤\82 à¤¯à¥\87 à¤¸à¤¦à¤¸à¥\8dयाः सम्पादनं कृतवन्तः तेषां विषयः अपि दर्शिताः । \nअपमर्जितपुनरावृत्तीनां वास्तवपाठः केवलं प्रशासकै दृष्टुं शक्यते ।",
        "undelete-revision": "$3 द्वारा $1 ($4 दिनाङ्के $5 वादने) इत्येतेतस्य पृष्ठस्य अपाकृतं संस्करणम् ।",
        "undeleterevision-missing": "अमान्यम् अथवा विलुप्तं संस्करणम् । भवान्/भवती \nकदाचित् अयोग्यपरिसन्धेः उपयोगं करोति, अथवा तु एतत् संस्करणं पूर्वमेव पुनर्स्थापितम् अस्ति । लेखागारात् निष्कासितं स्याद्वा ।",
        "undelete-nodiff": "पूर्वतनसंस्करणं न प्राप्तम् ।",
        "tooltip-namespace_association": "चितनामस्थानेन सह सम्बद्धं विषयनामस्थानम् अथवा सम्भाषणम् अपि उपादातुम् इमां मञ्जूषाम् अर्गलयतु ।",
        "blanknamespace": "(मुख्यम्)",
        "contributions": "{{GENDER:$1|प्रयोक्तॄणां}} योगदानानि",
-       "contributions-title": "$1 à¤\95à¥\83तà¥\87 à¤¯à¥\8bà¤\9cà¤\95स्य योगदानानि",
+       "contributions-title": "$1 à¤\95à¥\83तà¥\87 à¤¸à¤¦à¤¸à¥\8dयस्य योगदानानि",
        "mycontris": "योगदानानि",
        "contribsub2": "($2) कृते {{GENDER:$3|$1}}",
        "contributions-userdoesnotexist": "\"$1\" इत्यषा योजकलेखा पञ्जीकृतं नास्ति ।",
        "sp-contributions-newbies-title": "नूतनलेखार्थं योजकयोगदानम् ।",
        "sp-contributions-blocklog": "अवरोधाऽऽवलिः",
        "sp-contributions-suppresslog": "अपमर्जितानि योजकयोगदानानि",
-       "sp-contributions-deleted": "यà¥\8bà¤\9cà¤\95स्य अपाकृतं योगदानम्",
+       "sp-contributions-deleted": "सदसà¥\8dयस्य अपाकृतं योगदानम्",
        "sp-contributions-uploads": "उपारोहणानि",
        "sp-contributions-logs": "संरक्षिताऽऽवल्यः (Logs)",
        "sp-contributions-talk": "सम्भाषणम्",
        "sp-contributions-blocked-notice": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते।\nनूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति:",
        "sp-contributions-blocked-notice-anon": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते।\nनूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति:",
        "sp-contributions-search": "योगदानानि अन्विष्यन्ताम्",
-       "sp-contributions-username": "à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d (I P address) à¤¯à¥\8bà¤\9cà¤\95नाम वा :",
+       "sp-contributions-username": "à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d (I P address) à¤¸à¤¦à¤¸à¥\8dयनाम वा :",
        "sp-contributions-toponly": "सम्पादनानां नूतनतमा आवलिः दृश्यताम्",
        "sp-contributions-newonly": "केवलं पृष्ठनिर्माणस्य सम्पादनानाम् आवलिः दृश्यताम्",
        "sp-contributions-submit": "अन्विष्यताम्",
        "unblock": "योजकम् अनवरुणद्धु ।",
        "blockip": "{{GENDER:$1|सदस्यः}} अवरुद्ध्यताम्",
        "blockip-legend": "योजकम् अवरुणद्धु ।",
-       "blockiptext": "विशिषà¥\8dà¤\9fà¤\82  IP à¤¸à¤\99à¥\8dà¤\95à¥\87तमà¥\8d à¤\85थवा à¤¯à¥\8bà¤\9cà¤\95नाम लेखानाधिकारस्य प्राप्तये निम्नदत्तपत्रस्य उपयोगं करोतु ।\nकेवलं नाशकत्वम् अवरोद्धुं एतस्य उपयोगं करोतु । [[{{MediaWiki:Policy-url}}|नीतिः]] इत्यानुसारं करणीयम् ।\nअधः विशिष्टं कारणमपि लिखतु ।",
-       "ipaddressorusername": "à¤\86à¤\87.पà¥\80.सà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85थवा à¤¯à¥\8bà¤\9cà¤\95नाम :",
+       "blockiptext": "विशिषà¥\8dà¤\9fà¤\82  IP à¤¸à¤\99à¥\8dà¤\95à¥\87तमà¥\8d à¤\85थवा à¤¸à¤¦à¤¸à¥\8dयनाम लेखानाधिकारस्य प्राप्तये निम्नदत्तपत्रस्य उपयोगं करोतु ।\nकेवलं नाशकत्वम् अवरोद्धुं एतस्य उपयोगं करोतु । [[{{MediaWiki:Policy-url}}|नीतिः]] इत्यानुसारं करणीयम् ।\nअधः विशिष्टं कारणमपि लिखतु ।",
+       "ipaddressorusername": "à¤\86à¤\87.पà¥\80.सà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85थवा à¤¸à¤¦à¤¸à¥\8dयनाम :",
        "ipbexpiry": "समाप्तिः :",
        "ipbreason": "कारणम् :",
-       "ipbreason-dropdown": "* à¤\85वरà¥\8bधसà¥\8dय à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dयानि à¤\95ारणानि à¥¤  \n** à¤®à¤¿à¤¥à¥\8dया à¤¯à¥\8bà¤\9cà¤\95नाम à¥¤ \n** à¤\8fà¤\95ाधिà¤\95यà¥\8bà¤\9cà¤\95सà¥\8dथानà¤\82 à¤¨à¤¿à¤°à¥\8dमà¥\80य à¤¤à¥\87षाà¤\82 à¤¦à¥\81रà¥\81पयà¥\8bà¤\97à¤\83 à¥¤ \n** à¤\85सतà¥\8dयविषयानामà¥\8d à¤\89तà¥\8dतारणमà¥\8d à¥¤ \n** à¤ªà¥\81à¤\9fà¥\87षà¥\81 à¤\85वà¤\95रपà¥\82रणमà¥\8d à¥¤ \n** à¤ªà¥\81à¤\9fà¥\87भà¥\8dयà¤\83 à¤ªà¤¦à¤¾à¤°à¥\8dथानà¥\8d à¤\85पनयनमà¥\8d à¥¤ \n** à¤¬à¤¾à¤¹à¥\8dयà¤\9cालसà¥\8dथानामà¥\8d à¤\85समà¥\8dबदà¥\8dधानà¥\81बनà¥\8dधानामà¥\8d à¤¸à¤\82यà¥\8bà¤\9cनमà¥\8d à¥¤ \n** à¤¯à¥\8bà¤\9cà¤\95ानां पीडनम् ।",
+       "ipbreason-dropdown": "* à¤\85वरà¥\8bधसà¥\8dय à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dयानि à¤\95ारणानि à¥¤  \n** à¤®à¤¿à¤¥à¥\8dया à¤¸à¤¦à¤¸à¥\8dयनाम à¥¤ \n** à¤\8fà¤\95ाधिà¤\95यà¥\8bà¤\9cà¤\95सà¥\8dथानà¤\82 à¤¨à¤¿à¤°à¥\8dमà¥\80य à¤¤à¥\87षाà¤\82 à¤¦à¥\81रà¥\81पयà¥\8bà¤\97à¤\83 à¥¤ \n** à¤\85सतà¥\8dयविषयानामà¥\8d à¤\89तà¥\8dतारणमà¥\8d à¥¤ \n** à¤ªà¥\81à¤\9fà¥\87षà¥\81 à¤\85वà¤\95रपà¥\82रणमà¥\8d à¥¤ \n** à¤ªà¥\81à¤\9fà¥\87भà¥\8dयà¤\83 à¤ªà¤¦à¤¾à¤°à¥\8dथानà¥\8d à¤\85पनयनमà¥\8d à¥¤ \n** à¤¬à¤¾à¤¹à¥\8dयà¤\9cालसà¥\8dथानामà¥\8d à¤\85समà¥\8dबदà¥\8dधानà¥\81बनà¥\8dधानामà¥\8d à¤¸à¤\82यà¥\8bà¤\9cनमà¥\8d à¥¤ \n** à¤¸à¤¦à¤¸à¥\8dयानां पीडनम् ।",
        "ipb-hardblock": "नामाभिलेखितयोजकान् अनेन ऐपि सङ्केतेन सम्पादनं निवारयतु ।",
        "ipbcreateaccount": "योजकस्थानस्य निर्माणं निवारयतु ।",
-       "ipbemailban": "यà¥\8bà¤\9cà¤\95स्य विद्युन्मानसन्देशप्रेषणम् अवरुणद्धु ।",
+       "ipbemailban": "सदसà¥\8dयस्य विद्युन्मानसन्देशप्रेषणम् अवरुणद्धु ।",
        "ipbenableautoblock": "अनेन योजकेन उपयुक्तम् ऐपिसङ्केतम्, अग्रे अनेन योजकेन सम्पादयितुं प्रयतमानम् ऐपिसङ्केतं च स्वयम् अवरुद्धं करोतु ।",
        "ipbsubmit": "एतं योजकम् अवरुणद्धु ।",
        "ipbother": "अन्यः समयः ।",
        "ipboptions": "२ होरे:2 hours,१ दिनम्:1 day,३ दिनानि:3 days,१ सप्ताहः:1 week,२ सप्ताहौ:2 weeks,१ मासः:1 month,३ मासाः:3 months,६ मासाः:6 months,१ वर्षम्:1 year,अनन्तम्:infinite",
-       "ipbhidename": "समà¥\8dपादनà¥\87भà¥\8dयà¤\83 à¤\86वलà¥\80भà¥\8dयà¤\83 à¤\9a à¤¯à¥\8bà¤\9cà¤\95नाम सङ्गोपयतु ।",
-       "ipbwatchuser": "à¤\85सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95पà¥\81à¤\9fानि सम्भाषणपुटानि च अवलोकयतु ।",
+       "ipbhidename": "समà¥\8dपादनà¥\87भà¥\8dयà¤\83 à¤\86वलà¥\80भà¥\8dयà¤\83 à¤\9a à¤¸à¤¦à¤¸à¥\8dयनाम सङ्गोपयतु ।",
+       "ipbwatchuser": "à¤\85सà¥\8dय à¤¸à¤¦à¤¸à¥\8dयसà¥\8dय à¤¸à¤¦à¤¸à¥\8dयपà¥\83षà¥\8dठानि सम्भाषणपुटानि च अवलोकयतु ।",
        "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": "अवरोधः सफलः ।",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]]इत्येतत् अवरुद्धम् । <br />\nअवरोधानां समीक्षां करोतु । [[Special:BlockList|IP अवरोधसूचिका]]",
        "ipb-blockingself": "भवान् स्वयम् अवरोधने निरतः । निश्चयेन स्वावरोधनम् इच्छति वा ?",
-       "ipb-confirmhideuser": "यà¥\8bà¤\9cà¤\95à¤\97à¥\8bपनसà¥\8dय à¤ªà¤¿à¤\9eà¥\8dà¤\9cà¤\82 à¤¨à¤¿à¤ªà¥\80डयनà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d à¤¯à¥\8bà¤\9cà¤\95ावरà¥\81दà¥\8dधिà¤\82 à¤¯à¤¤à¤¤à¥\87 à¥¤ à¤\8fततà¥\8d à¤¸à¤°à¥\8dवावलà¥\80षà¥\81 à¤¸à¤°à¥\8dवपà¥\8dरवà¥\87शसà¥\82à¤\9aिà¤\95ासà¥\81 à¤\9a à¤¯à¥\8bà¤\9cà¤\95नाम निग्रहति । भवान् निश्चयेन एतत् कर्तुमिच्छति वा ?",
+       "ipb-confirmhideuser": "सदसà¥\8dयà¤\97à¥\8bपनसà¥\8dय à¤ªà¤¿à¤\9eà¥\8dà¤\9cà¤\82 à¤¨à¤¿à¤ªà¥\80डयनà¥\8d à¤­à¤µà¤¾à¤¨à¥\8d à¤¸à¤¦à¤¸à¥\8dयावरà¥\81दà¥\8dधिà¤\82 à¤¯à¤¤à¤¤à¥\87 à¥¤ à¤\8fततà¥\8d à¤¸à¤°à¥\8dवावलà¥\80षà¥\81 à¤¸à¤°à¥\8dवपà¥\8dरवà¥\87शसà¥\82à¤\9aिà¤\95ासà¥\81 à¤\9a à¤¸à¤¦à¤¸à¥\8dयनाम निग्रहति । भवान् निश्चयेन एतत् कर्तुमिच्छति वा ?",
        "ipb-confirmaction": "भवान्/भवती निश्चयेन एतत् कर्तुम् इच्छति चेत्  \"{{int:ipb-confirm}}\" इत्येत् कुड्मलं समर्थयतु",
        "ipb-edit-dropdown": "अवरोधकारणानि सम्पादयतु ।",
        "ipb-unblock-addr": "$1 अनवरोधनं करोतु ।",
-       "ipb-unblock": "यà¥\8bà¤\9cà¤\95नाम अथवा ऐपिसङ्केतम् अवरुणद्धु ।",
+       "ipb-unblock": "सदसà¥\8dयनाम अथवा ऐपिसङ्केतम् अवरुणद्धु ।",
        "ipb-blocklist": "वर्तमानावरोधान् अवलोकयतु ।",
        "ipb-blocklist-contribs": "{{GENDER:$1|$1}} कृते योगदानम्",
        "unblockip": "योजकसु अवरोधं परिहरतु ।",
        "unblockiptext": "सद्यः अवरुद्धान् ऐपिसङ्केतान् अथवा अवरुद्धानि योजकनामानि पुनस्संस्थाप्य लिखनावकाशं प्राप्तुम् अधो दत्तप्रपत्रस्य उपयोगं करोतु ।",
        "ipusubmit": "अवरोधम् अपनयतु ।",
-       "unblocked": "[[User:$1|$1]] à¤\87ति à¤¯à¥\8bà¤\9cà¤\95स्य अवरोधम् अपनयतु ।",
+       "unblocked": "[[User:$1|$1]] à¤\87ति à¤¸à¤¦à¤¸à¥\8dयस्य अवरोधम् अपनयतु ।",
        "unblocked-range": "$1 इत्येतस्य अवरोधः कृतः ।",
        "unblocked-id": "$1 इत्यस्य अवरोधः अपनीतः ।",
        "unblocked-ip": "[[Special:Contributions/$1|$1]] स्थनसूच्याः निष्कासितः ।",
-       "blocklist": "à¤\85वरà¥\81दà¥\8dधाà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¥¤",
-       "ipblocklist": "à¤\85वरà¥\81दà¥\8dधाà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः",
+       "blocklist": "à¤\85वरà¥\81दà¥\8dधाà¤\83 à¤¸à¤¦à¤¸à¥\8dयाà¤\83",
+       "ipblocklist": "à¤\85वरà¥\81दà¥\8dधाà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः",
        "ipblocklist-legend": "अवरुद्धयोजकं पश्यतु ।",
        "blocklist-userblocks": "योजकस्थानावरुद्धिं गोपयतु ।",
        "blocklist-tempblocks": "तात्कालिकावरुद्धिं गोपयतु ।",
        "emailblock": "वि-पत्रं निष्क्रियम्",
        "blocklist-nousertalk": "स्वस्य सम्भाषणपुटं सम्पादयितुं न शक्यते ।",
        "ipblocklist-empty": "अवरोधावली रिक्ता अस्ति ।",
-       "ipblocklist-no-results": "à¤\85भà¥\8dयरà¥\8dथितà¤\83 à¤\90पिसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85थवा à¤\85भà¥\8dयरà¥\8dथितà¤\83 à¤¯à¥\8bà¤\9cà¤\95नाम अवरुद्धं न ।",
+       "ipblocklist-no-results": "à¤\85भà¥\8dयरà¥\8dथितà¤\83 à¤\90पिसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85थवा à¤\85भà¥\8dयरà¥\8dथितà¤\83 à¤¸à¤¦à¤¸à¥\8dयनाम अवरुद्धं न ।",
        "blocklink": "अवरुद्ध्यताम्",
        "unblocklink": "अवरोधः निरस्त्यताम्",
        "change-blocklink": "अवरोधः परिवर्त्यताम्",
        "reblock-logentry": "[[$1]] इत्यस्य अवरोधस्य विन्यासः परिवर्तितः अयं $2 $3 समये विनश्येत् ।",
        "blocklogtext": "इयम् अवरुद्धानवरुद्धप्रक्रियायाः अवलोकनस्य सूचिका । \nस्वयम् अवरुद्धानाम् ऐपिसङ्केतानाम् आवली न कृता ।\nसद्यः उपयोगनिषेधस्य अवरोधानाम् आवलीप्राप्तये [[Special:BlockList|block list]] अवलोकयतु ।",
        "unblocklogentry": "अनिरुद्धम् $1",
-       "block-log-flags-anononly": "à¤\85नामà¤\95ाà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः केवलम् ।",
+       "block-log-flags-anononly": "à¤\85नामà¤\95ाà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः केवलम् ।",
        "block-log-flags-nocreate": "सदस्यता प्राप्तिः अवरुद्धा अस्ति",
        "block-log-flags-noautoblock": "स्वयमवरोधः निष्क्रियः ।",
        "block-log-flags-noemail": "वि-पत्रं निष्क्रियम्",
        "block-log-flags-nousertalk": "स्वस्य सम्भाषणपुटं सम्पादयितुं न शक्यते ।",
        "block-log-flags-angry-autoblock": " उन्नतीकृतः स्वयमवरोधः सक्रियः ।",
-       "block-log-flags-hiddenname": "यà¥\8bà¤\9cà¤\95स्य नाम सङ्गुप्तम् ।",
+       "block-log-flags-hiddenname": "सदसà¥\8dयस्य नाम सङ्गुप्तम् ।",
        "range_block_disabled": " प्रादेशिकावरोधस्य प्रशासकस्य सामर्थ्यं निष्क्रियम् ।",
        "ipb_expiry_invalid": "अवसानसमयः अमान्योऽस्ति।",
        "ipb_expiry_temp": "सङ्गुप्तयोजकनामावरोधः शश्वतः भवेत् ।",
        "ipb_already_blocked": "\"$1\" इत्येषः पूर्वमेव अवरुद्धः ।",
        "ipb-needreblock": "$1 इत्येषः पूर्वमेव अवरुद्धः विन्यासं परिवर्तयितुमिच्छति वा ?",
        "ipb-otherblocks-header": "अन्याः {{PLURAL:$1|अवरोधः |अवरोधाः}}",
-       "unblock-hideuser": "à¤\8fतà¤\82 à¤¯à¥\8bà¤\9cà¤\95मà¥\8d à¤\85वरà¥\8bधातà¥\8d à¤µà¤¿à¤®à¥\8bà¤\9aयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤¯à¤¤à¤\83 à¤\85सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95नाम सङ्गुप्तम् ।",
+       "unblock-hideuser": "à¤\8fतà¤\82 à¤¸à¤¦à¤¸à¥\8dयमà¥\8d à¤\85वरà¥\8bधातà¥\8d à¤µà¤¿à¤®à¥\8bà¤\9aयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤¯à¤¤à¤\83 à¤\85सà¥\8dय à¤¸à¤¦à¤¸à¥\8dयनाम सङ्गुप्तम् ।",
        "ipb_cant_unblock": " दोषः : $1 इति अवरुद्धः पत्रसङ्केतः न दृष्टः । प्रायः तावत् पूर्वमेव उत्तारितम् ।",
        "ipb_blocked_as_range": "दोषः : $1 इति ऐपिसङ्केतः साक्षात् अवरुद्धः न अपि च विमोचनं न शक्यते ।\n$2 इति प्रकारस्य अवरोधं कर्तुं शक्यते यत् अनवरोधमिच्छति ।",
        "ip_range_invalid": "अमान्यः ऐपिप्रकारः",
        "movepagetext": "निम्नपत्रं पृष्ठस्य नाम परिवर्तयिष्यति । तस्य पृष्ठस्य सम्पूर्णेतिहासोऽपि नूतननाम्ना दर्शिष्यति ।\nपुरातनं शीर्षकं नूतनशीर्षकं प्रति पुनर्निर्देिष्टं भविष्यति ।\nमूलशीर्षकं प्रति नेतॄन् पुनार्निर्देशान् भवान्/भवती स्वचालितरूपेण परिवर्तयितुम् अपि शक्नोति ।\nयदि भवान्/भवती एवं न करोति, तर्हि कृपया [[Special:DoubleRedirects|पुनर्निर्देशस्य द्वित्वम्]] उत [[Special:BrokenRedirects|खण्डितपुनर्निर्देशः]] इत्यनयोः परीक्षणं निश्चयेन करोतु ।\nपरिसन्धयः योग्यस्थानं प्रति गच्छेत् इति सुनिश्चितकरणं भवतः/भवत्याः दायित्वम् अस्ति ।\n\nयदि नवीनशीर्षकस्य नाम्ना लेखः पूर्वमेव विद्यते, तर्हि पुनर्निर्देशः <strong> न </strong> भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं न प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\n\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।",
        "movepagetext-noredirectfixer": "निम्नपत्रं पृष्ठस्य नाम परिवर्तयिष्यति । तस्य पृष्ठस्य सम्पूर्णेतिहासोऽपि नूतननाम्ना दर्शिष्यति ।\nपुरातनं शीर्षकं नूतनशीर्षकं प्रति पुनर्निर्देिष्टं भविष्यति । मूलशीर्षकं प्रति नेतॄन् पुनार्निर्देशान् भवान्/भवती स्वचालितरूपेण परिवर्तयितुम् अपि शक्नोति । यदि भवान्/भवती एवं न करोति, तर्हि कृपया पुनर्निर्देशस्य [[Special:DoubleRedirects|द्वित्वम्]] उत [[Special:BrokenRedirects|खण्डितपुनर्निर्देशः]] इत्यनयोः परीक्षणं निश्चयेन करोतु । \n\nपरिसन्धयः योग्यस्थानं प्रति गच्छेत् इति सुनिश्चितकरणं भवतः/भवत्याः दायित्वम् अस्ति ।\nयदि नवीनशीर्षकस्य नाम्ना लेखः पूर्वमेव विद्यते, तर्हि पुनर्निर्देशः न भविष्यति । परन्तु नवीनशीर्षकस्य नाम्ना लेखः नास्ति उत कुत्रापि अनुप्रेषितं नास्ति चेदेव स्थानान्तरणस्य प्रक्रिया भविष्यति ।\n\nअर्थात् त्रुट्या स्थानान्तरणस्य प्रक्रिया अभवत् चेत्, पुरातनपृष्ठे स्थानान्तरणं कर्तुं प्रभविष्यति । तथा च विद्यामाने पृष्ठे सति भवान्/भवती स्थानान्तरणं कर्तुं <strong>न</strong> प्रभवति ।\n\n<strong>पूर्वसूचना !</strong>\nयदि पृष्ठम् अतिलोकप्रियम् अस्ति, तर्हि बृहत् आकस्मिकं परिवर्तनं भवितुं शक्नोति, अतः स्थानान्तरणात् प्राक् अन्तिमपरिणामस्य विषये पूर्वानुमानं करोतु ।\"",
        "movepagetalktext": "सम्बद्धसम्भाषणपुटानि अनेन सह स्थानान्तरितानि भवन्ति अन्यथा  \n* भवान् पृष्ठम् अन्यस्थानान्तरं कुर्वन् अस्ति । \n* अस्मिन् नाम्नि सम्भाषणपुटं पूर्वनिर्मितमस्ति अस्थवा  \n* अधोदत्ताम् अर्गलनमञ्चूषाम् उत्पाटितवान् । \nअस्मिन् विषये यदि इच्छति तर्हि भवता पुटानि चालनीयानि अथवा संयोजनीयानि ।",
-       "moveuserpage-warning": "पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤¯à¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठà¤\82 à¤\9aालयितà¥\81मà¥\8d à¤\89दà¥\8dयà¥\81à¤\95à¥\8dतà¤\83 à¥¤ à¤¸à¥\8dमरतà¥\81 à¤\95à¥\87वलà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¥\8dथानानà¥\8dतरितà¤\82 à¤­à¤µà¤¤à¤¿ à¤¨ à¤¤à¥\81 à¤¯à¥\8bà¤\9cà¤\95नाम परिवर्तनं न भविष्यति ।",
+       "moveuserpage-warning": "पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤¸à¤¦à¤¸à¥\8dयपà¥\83षà¥\8dठà¤\82 à¤\9aालयितà¥\81मà¥\8d à¤\89दà¥\8dयà¥\81à¤\95à¥\8dतà¤\83 à¥¤ à¤¸à¥\8dमरतà¥\81 à¤\95à¥\87वलà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¥\8dथानानà¥\8dतरितà¤\82 à¤­à¤µà¤¤à¤¿ à¤¨ à¤¤à¥\81 à¤¸à¤¦à¤¸à¥\8dयनाम परिवर्तनं न भविष्यति ।",
        "movecategorypage-warning": "<strong>पूर्वसूचना :</strong> भवान्/भवती वर्गं स्थानान्तरितं कर्तुम् इच्छति । अतः जानातु यत्, केवलं पृष्ठं स्थानान्तरितं भविष्यति पृष्ठे विद्यमानानि पुरातनवर्गाः परिवर्तिताः <em>न</em> भविष्यन्ति ।",
        "movenologintext": " [[Special:UserLogin|logged in]] पञ्जीकृतयोजकः भवता नामाभिलेखनं करणीयं भवति ।",
        "movenotallowed": "पुटानि स्थानान्तरियितुम् अनुमतिः नाश्ति ।",
        "imageinvalidfilename": "लक्षितसञ्चिकानाम अमान्यम् ।",
        "fix-double-redirects": "यङ्कमपि पुनर्निदेशं उन्नतीकरोतु यः मूलशीर्षकं निदेशति ।",
        "move-leave-redirect": "कञ्चित् पुनर्निदेशं पूर्वमेव त्यजतु ।",
-       "protectedpagemovewarning": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना ''' à¤ªà¥\8dरशासà¤\95पदयà¥\81à¤\95à¥\8dताà¤\83 à¤¯à¥\8bà¤\9cà¤\95ाः एव सम्पादनं कर्तुमर्हन्ति । अतः एतत्पुटं सुरक्षितम् । निदेशार्थम् अधः जघन्यप्रवेशः सूचितः ।",
+       "protectedpagemovewarning": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना ''' à¤ªà¥\8dरशासà¤\95पदयà¥\81à¤\95à¥\8dताà¤\83 à¤¸à¤¦à¤¸à¥\8dयाः एव सम्पादनं कर्तुमर्हन्ति । अतः एतत्पुटं सुरक्षितम् । निदेशार्थम् अधः जघन्यप्रवेशः सूचितः ।",
        "semiprotectedpagemovewarning": "'''सूचना ''' पञ्जीकृतयोजकानां  उपयोगार्थ केवलम् एतत्पुटम् अभिरक्षितम् । जघन्यप्रवेशस्य सूचना आनुकूल्यार्थम् अधोनिदेशिता ।",
        "move-over-sharedrepo": "==वर्तमानसञ्चिकाः==\n [[:$1]] विभक्तकोशे सञ्चिकास्ति । अस्यां शीर्षकं स्थानान्तरणेन विभक्तसञ्चिका विकृता भवति ।",
        "file-exists-sharedrepo": "विभक्तकोशे चितसञ्चिकानाम प्रथममेव उपयोगे अस्ति  । अन्यं नाम चिनोतु ।",
        "import-options-wrong": "असमीचीनः {{PLURAL:$2|विकल्पः|विकल्पाः}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "दत्तमूलपुटम् अमान्यशीर्षकयुक्तम् ।",
        "import-rootpage-nosubpage": "मूलपुटस्य \"$1\" इति नामस्थाने उपपुटानि नानुमतानि ।",
-       "importlogpage": "à¤\86यातसà¥\82à¤\9aिà¤\95ा à¥¤",
+       "importlogpage": "à¤\86यातसà¥\8dय à¤¸à¤\82रà¤\95à¥\8dषितावलिà¤\83",
        "importlogpagetext": "अन्यविकितः सम्पादितेतिहाससहितानि प्रशासकानाम् आयातपुटानि ।",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|संस्करणस्य|संस्करणानाम्}} आयातः अभवत्",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|संस्करणस्य|संस्करणानाम्}} आयातः अभवत् $2",
        "javascripttest-pagetext-frameworks": "अधो दत्तेषु कञ्चिदेकां परीक्षाप्रक्रियां चिनोतु : $1",
        "javascripttest-pagetext-skins": "अनेन सह परीक्षां सञ्चालयितुं  काचित् त्वक् चिनोतु ।",
        "javascripttest-qunit-intro": "mediawiki.org. [$1 अभिलेखपरीक्षा] इत्यत्र पश्यतु ।",
-       "tooltip-pt-userpage": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\9cà¤\95पृष्ठम्",
+       "tooltip-pt-userpage": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤¦à¤¸à¥\8dयपृष्ठम्",
        "tooltip-pt-anonuserpage": "ऐपिसङ्केतार्थं योजकपुटं भवान् सम्पादयति एवम्..",
        "tooltip-pt-mytalk": "भवतः/भवत्याः सम्भाषणपृष्ठम्",
        "tooltip-pt-anontalk": "एतस्मात् ऐपिसङ्केतात् सम्पादनस्य परिचर्चा ।",
        "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-t-recentchangeslinked": "एतत्पृष्ठसम्बद्धेषु पृष्ठेषु जातानि नवीनपरिवर्तनानि",
        "tooltip-feed-rss": "अस्मै पृष्ठाय आर-एस-एस-पूरणम्",
        "tooltip-feed-atom": "अस्मै पृष्ठाय अणुपूरणम्",
-       "tooltip-t-contributions": "à¤\85सà¥\8dय à¤¯à¥\8bà¤\9cà¤\95सà¥\8dय योगदानानाम् आवलिः",
+       "tooltip-t-contributions": "à¤\85नà¥\87न à¤¸à¤¦à¤¸à¥\8dयà¥\87न à¤\95à¥\83तानाà¤\82 योगदानानाम् आवलिः",
        "tooltip-t-emailuser": "एतस्मै योजकाय वि-पत्रं प्रेष्यताम्",
        "tooltip-t-info": "एतस्य पृष्ठस्य विषये अधिकं विवरणम्",
        "tooltip-t-upload": "सञ्चिकाः उपारोप्यन्ताम्",
        "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-undo": "'\"पूर्ववत्\"' इति अन्तिमसम्पादनम् अपाकरोति, सम्पादनप्रारूपं प्राग्दृश्यरूपेण उद्घाटयति, नवीनसम्पादनानन्तरं सम्पादनपृष्ठं प्राग्दृश्यत्वेन प्रदर्शयति च । \n\nअस्य सारांशे अपाकरणस्य कारणमपि लिखितुं शक्यते ।",
        "tooltip-preferences-save": "आद्यताः रक्षतु ।",
        "tooltip-summary": "सङ्क्षिप्तसारांशः योज्यताम्",
-       "anonymous": "{{SITENAME}} à¤\87तà¥\8dयसà¥\8dय {{PLURAL:$1||}} à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95ः ।",
-       "siteuser": "{{SITENAME}} à¤¯à¥\8bà¤\9cà¤\95 $1",
+       "anonymous": "{{SITENAME}} à¤\87तà¥\8dयसà¥\8dय {{PLURAL:$1||}} à¤\85नामà¤\95सदसà¥\8dयः ।",
+       "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",
+       "others": "अन्य",
+       "siteusers": "{{SITENAME}} {{PLURAL:$2|सदसà¥\8dयà¤\83|सदसà¥\8dयाà¤\83}} $1",
        "anonusers": "{{SITENAME}} {{PLURAL:$2|अज्ञातयोजकः|अज्ञातयोजकाः}} $1",
        "creditspage": "पुटनां समाकलनानि ।",
        "nocredits": "अस्य पुटस्य समाकलनसूचना नोपलब्धा ।",
        "markedaspatrollederror-noautopatrol": "स्वस्य परिवर्तनानि आरक्षितं कर्तुं भवान् नानुमतः ।",
        "markedaspatrollednotify": "$1 इत्यस्य एतत् परिवर्तनं समीक्षितम् इति अङ्कितम्।",
        "markedaspatrollederrornotify": "समीक्षितम् इति चिह्नीकरणं विफलम्।",
-       "patrol-log-page": "à¤\86रà¤\95à¥\8dषणसà¥\82à¤\9aिà¤\95ा à¥¤",
+       "patrol-log-page": "निरà¥\80à¤\95à¥\8dषिता à¤¸à¤\82रà¤\95à¥\8dषितावलिà¤\83",
        "patrol-log-header": "इयम् आरक्षितपुनरावृत्तीनां सूचिका अस्ति ।",
-       "log-show-hide-patrol": "$1 à¤\87तà¥\8dयसà¥\8dय à¤\86रà¤\95à¥\8dषणसà¥\82à¤\9aिà¤\95ा à¥¤",
+       "log-show-hide-patrol": "$1 à¤\87तà¥\8dयनà¥\87न à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषिता à¤¸à¤\82रà¤\95à¥\8dषितावलिà¤\83",
        "log-show-hide-tag": "$1 चिह्नाऽऽवलिः",
        "deletedrevision": "अपमर्जितप्राचीनपुनरावृत्तिः $1",
        "filedeleteerror-short": "सञ्चिकानपमर्जने दोषः : $1",
        "version-credits-title": "$1 कृते कृतज्ञता",
        "version-credits-not-found": "एतस्य विस्तारक्षेत्राय विस्तृतं कृतज्ञतासूचनं न प्राप्तम्",
        "version-poweredby-credits": "इयं विकिः अनेन सञ्चालिता '''[https://www.mediawiki.org/ MediaWiki]''', स्वामित्वम् © 2001 - $1  $2 ।",
-       "version-poweredby-others": "अन्य",
+       "version-poweredby-others": "अन्य",
        "version-poweredby-translators": "translatewiki.net अनुवादकाः",
        "version-credits-summary": "[[Special:Version|MediaWiki]] इत्यत्र योगदानार्थं वयं अधोलिखितान् जनान् प्रशंसितुमिच्छामः।",
        "version-license-info": "मिडियाविकिः तु निश्शुल्कतन्त्रांशः ; भवान् पुनः वितर्तुं शक्नोति अथवा GNU सामान्यसार्वजनिकानुज्ञपत्रस्य नियमानुगुणं द्वीतीयावृत्तिम् अथवा अन्यनूतनावृतिं संस्कर्तुं शक्नोति । \n\nएषा बहूपयोगाय भवेत् इति धिया मिडियाविकिः वितीर्णा । किन्तु केनापि प्रमाणत्वेन विना दत्ता । अथवा निर्दिष्टोद्देशर्थे अनुकूलकरं वेति अपरिशील्य अथवा वाणिज्यस्य आनुषङ्गिकानुज्ञापत्रेण विना अपि मीडियाविकिः प्रदत्ता । विशेषविवरणप्राप्तये GNU सर्वजनसामान्यम् अनुज्ञापत्रं पश्यतु ।\n\n[{{SERVER}}{{SCRIPTPATH}}/COPYING काचित् प्रतिः, GNU सर्वजनसामान्यम् अनुज्ञापत्रम्] इत्येतत् भवान् स्वीकृतवान् । अनेन कार्यकलापेन सह , यदि नास्ति, निश्शुल्कतन्त्रज्ञानप्रतिष्ठानं पत्रं प्रेषयतु । सङ्केतः - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html सद्यसः पठितुमर्हति]",
        "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": "à¤\8fततà¥\8d à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fपà¥\83षà¥\8dठà¤\82 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ाà¤\82 (सà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¨à¤¾à¤® à¤ªà¥\8dरदतà¥\8dतमà¥\8d) à¤ªà¥\8dरति à¤ªà¥\81नरà¥\8dनिरà¥\8dदिषà¥\8dà¤\9fमà¥\8d à¤\85सà¥\8dति à¥¤ à¤ªà¥\83षà¥\8dठà¤\82 (à¤\85भिà¤\9cà¥\8dà¤\9eापà¤\95सà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¤\89त à¤ªà¥\83षà¥\8dठाभिà¤\9cà¥\8dà¤\9eापà¤\95à¤\82 à¤ªà¥\8dरदतà¥\8dतमà¥\8d), à¤\89त à¤¯à¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठमà¥\8d (सà¤\99à¥\8dà¤\96à¥\8dयातà¥\8dमà¤\95à¤\82 à¤¯à¥\8bà¤\9cà¤\95ाभिज्ञापकं प्रदत्तम्) । उपयोगः : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], उत [[{{#Special:Redirect}}/user/101]].",
+       "redirect-summary": "à¤\8fततà¥\8d à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fपà¥\83षà¥\8dठà¤\82 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ाà¤\82 (सà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤¨à¤¾à¤® à¤ªà¥\8dरदतà¥\8dतमà¥\8d) à¤ªà¥\8dरति à¤ªà¥\81नरà¥\8dनिरà¥\8dदिषà¥\8dà¤\9fमà¥\8d à¤\85सà¥\8dति à¥¤ à¤ªà¥\83षà¥\8dठà¤\82 (à¤\85भिà¤\9cà¥\8dà¤\9eापà¤\95सà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¤\89त à¤ªà¥\83षà¥\8dठाभिà¤\9cà¥\8dà¤\9eापà¤\95à¤\82 à¤ªà¥\8dरदतà¥\8dतमà¥\8d), à¤\89त à¤¸à¤¦à¤¸à¥\8dयपà¥\83षà¥\8dठमà¥\8d (सà¤\99à¥\8dà¤\96à¥\8dयातà¥\8dमà¤\95à¤\82 à¤¸à¤¦à¤¸à¥\8dयाभिज्ञापकं प्रदत्तम्) । उपयोगः : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], उत [[{{#Special:Redirect}}/user/101]].",
        "redirect-submit": "गम्यताम्",
        "redirect-lookup": "अन्विष्याम् :",
        "redirect-value": "मूल्यम्",
        "specialpages-group-login": "प्रविश्यताम् / लेखा सृज्यताम्",
        "specialpages-group-changes": "सद्योजातानि परिवर्तनानि आवल्यश्च",
        "specialpages-group-media": "माध्यमस्य इतिवृत्तम् आरोपणानि च",
-       "specialpages-group-users": "यà¥\8bà¤\9cà¤\95ाः अधिकाराश्च",
+       "specialpages-group-users": "सदसà¥\8dयाः अधिकाराश्च",
        "specialpages-group-highuse": "अधिकोपयोगीनि पृष्ठानि",
        "specialpages-group-pages": "पृष्ठानाम् आवली",
        "specialpages-group-pagetools": "पृष्ठोपकरणानि",
        "tags-hitcount": "$1 {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}",
        "tags-manage-no-permission": "भवतः/भवत्याः पार्श्वे परिवर्तनचिह्नानि सञ्चालयितुम् अनुमतिः नास्ति ।",
        "tags-create-heading": "नूतनचिह्नं सृज्यताम्",
-       "tags-create-explanation": "यदभावà¥\87, à¤¨à¤µà¥\80नरà¤\9aितानि à¤\85à¤\99à¥\8dà¤\95नानि à¤¯à¥\8bà¤\9cà¤\95ेभ्यः, बॉट् इत्येतेभ्यश्च उपलब्धानि सन्ति ।",
+       "tags-create-explanation": "यदभावà¥\87, à¤¨à¤µà¥\80नरà¤\9aितानि à¤\85à¤\99à¥\8dà¤\95नानि à¤¸à¤¦à¤¸à¥\8dयेभ्यः, बॉट् इत्येतेभ्यश्च उपलब्धानि सन्ति ।",
        "tags-create-tag-name": "अङ्कननाम :",
        "tags-create-reason": "कारणम् :",
        "tags-create-submit": "सृज्यताम्",
        "htmlform-required": "इदं मूल्यम् अपेक्षितम् ।",
        "htmlform-submit": "उपस्थाप्यताम्",
        "htmlform-reset": "परिवर्तनानि पूर्वस्थितिं प्रति आनयतु",
-       "htmlform-selectorother-other": "अन्य",
+       "htmlform-selectorother-other": "अन्यत्",
        "htmlform-no": "न",
        "htmlform-yes": "आम्",
        "htmlform-chosen-placeholder": "एकं विकल्पं चिनोतु",
        "logentry-suppress-revision-legacy": "$3 इत्यत्र संरक्षिताऽऽवलेः दर्शनीयता $1 द्वारा रहस्यमयरीत्या {{GENDER:$2|परिवर्तिता}}",
        "revdelete-content-hid": "सामग्री अपाकृता",
        "revdelete-summary-hid": "सम्पादनसारः विलोपितः",
-       "revdelete-uname-hid": "यà¥\8bà¤\9cà¤\95स्य नाम सङ्गुप्तम् ।",
+       "revdelete-uname-hid": "सदसà¥\8dयस्य नाम सङ्गुप्तम् ।",
        "revdelete-content-unhid": "आधेयं न लोपितम्",
        "revdelete-summary-unhid": "सम्पादनसारः न लोपितः",
-       "revdelete-uname-unhid": "यà¥\8bà¤\9cà¤\95स्य नाम न लोपितम्",
+       "revdelete-uname-unhid": "सदसà¥\8dयस्य नाम न लोपितम्",
        "revdelete-restricted": "प्रबन्धकानां प्रतिबन्धनानि आरोपितानि",
        "revdelete-unrestricted": "प्रबन्धकानां प्रतिबन्धनानि निष्कासितानि",
        "logentry-block-block": "$1 {{GENDER:$2|प्रतिबन्धितः}} {{GENDER:$4|$3}} $5 $6 कालं यावत्",
        "feedback-submit": "उपस्थाप्यताम्",
        "feedback-terms": "मम योजकानुयोज्यस्य सूचना, मम गवेषकेन, कासंविधायाः संस्करणे सह मम प्रतिक्रिया च जनसामान्येभ्यः दृश्यमाना भविष्यति ।",
        "feedback-termsofuse": "उपयोगनियमान्तर्गतम् अहं स्वप्रतिक्रियां दातुम् इच्छामि ।",
-       "feedback-thanks": "धनà¥\8dयवादà¤\83 ! भवतः प्रतिस्पन्दः \"[ $2  $1 ]\" पृष्ठाय प्रेषितः अस्ति ।",
+       "feedback-thanks": "à¤\95à¥\83तà¤\9cà¥\8dà¤\9eता ! भवतः प्रतिस्पन्दः \"[ $2  $1 ]\" पृष्ठाय प्रेषितः अस्ति ।",
        "feedback-thanks-title": "कृतज्ञतां निवेदयामि !",
        "feedback-useragent": "योजकानुयोज्यः :",
        "searchsuggest-search": "अन्वेषणम्",
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 cefe44c..61b28a0 100644 (file)
        "notanarticle": "غير موادي صفحو",
        "watchlist-details": "{{PLURAL:$1|$1 صفحو|$1 صفحا}} توهان جي ٽيٽ فهرست، ڳالھ ٻولھ جا صفحا الڳ شمار نٿا ٿين.",
        "wlshowlast": "گذريل $1 ڪلاڪ $2 ڏينهن ڏيکاريو",
+       "watchlistall2": "سڀ",
+       "wlshowtime": "آخري ڏيکاريو",
+       "wlshowhideminor": "معمولي ترميم",
+       "wlshowhideliu": "کاتيدار يُوزرس",
+       "wlshowhideanons": "گمنام يُوزرس",
+       "wlshowhidemine": "منهنجون ترميمون",
        "watching": "ٽيٽيندي...",
        "unwatching": "اڻ ٽيٽيندي...",
        "enotif_impersonal_salutation": "{{SITENAME}} يُوزر",
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..96ee497 100644 (file)
@@ -10,7 +10,8 @@
                        "Milicevic01",
                        "Macofe",
                        "KWiki",
-                       "Matma Rex"
+                       "Matma Rex",
+                       "Srdjan m"
                ]
        },
        "tog-underline": "Podvuci linkove:",
        "moredotdotdot": "Još...",
        "morenotlisted": "Ovaj spisak nije kompletan.",
        "mypage": "Moja stranica",
-       "mytalk": "Moj razgovor / Мој разговор",
+       "mytalk": "Razgovor / Разговор",
        "anontalk": "Razgovor za ovu IP adresu",
        "navigation": "Navigacija - Навигација",
        "and": "&#32;i",
        "searchdisabled": "Pretraga teksta na ovoj Wiki je trenutno onemogućena.\nU međuvremenu možete pretraživati preko Googlea.\nUzmite u obzir da njegovi indeksi za ovu Wiki ne moraju biti ažurirani.",
        "search-error": "Dogodila se pogreška prilikom pretraživanja: $1",
        "preferences": "Postavke / Подешавања",
-       "mypreferences": "Moje postavke / Моја подешавања",
+       "mypreferences": "Postavke / Подешавања",
        "prefs-edits": "Broj izmjena:",
        "prefsnologintext2": "Molimo Vas prijavite se da biste promijenili postavke.",
        "prefs-skin": "Izgled (skin)",
        "rcshowhidebots": "$1 botove / ботове",
        "rcshowhidebots-show": "Pokaži",
        "rcshowhidebots-hide": "Sakrij",
-       "rcshowhideliu": "$1 registrovanih korisnika",
+       "rcshowhideliu": "$1 registrirane / регистроване",
        "rcshowhideliu-show": "Pokaži",
        "rcshowhideliu-hide": "Sakrij",
        "rcshowhideanons": "$1 anonimne / анонимне",
        "usermessage-summary": "Ostavljanje sistemske poruke.",
        "usermessage-editor": "Sistem za poruke",
        "watchlist": "Spisak praćenja / Списак праћења",
-       "mywatchlist": "Moj popis praćenja / Списак надгледања",
+       "mywatchlist": "Popis praćenja / Списак надгледања",
        "watchlistfor2": "Za $1 $2",
        "nowatchlist": "Nemate ništa na svom spisku praćenih članaka.",
        "watchlistanontext": "Morate biti prijavljeni kako biste vidjeli ili uređivali svoj spisak praćenih članaka.",
        "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 10e65c0..14dfb7f 100644 (file)
@@ -40,6 +40,7 @@
        "tog-hideminor": "V posledných úpravách nezobrazovať drobné úpravy",
        "tog-hidepatrolled": "Skryť strážené úpravy v Posledných úpravách",
        "tog-newpageshidepatrolled": "Skryť strážené stránky zo zoznamu nových stránok",
+       "tog-hidecategorization": "Skryť kategorizáciu stránok",
        "tog-extendwatchlist": "Rozšíriť zoznam sledovaných stránok, aby zobrazoval všetky úpravy, nie len posledné",
        "tog-usenewrc": "Zoskupiť zmeny v posledných úpravách a na zozname sledovaných stránok podľa stránky",
        "tog-numberheadings": "Automaticky číslovať nadpisy",
@@ -69,6 +70,7 @@
        "tog-watchlisthideliu": "Skryť úpravy prihlásených používateľov zo zoznamu sledovaných stránok",
        "tog-watchlisthideanons": "Skryť úpravy anonymných používateľov zo zoznamu sledovaných stránok",
        "tog-watchlisthidepatrolled": "Skryť strážené úpravy Zozname sledovaných stránok",
+       "tog-watchlisthidecategorization": "Skryť kategorizáciu stránok",
        "tog-ccmeonemails": "Posielať mi kópie e-mailov, ktoré pošlem ostatným používateľom",
        "tog-diffonly": "Nezobrazovať obsah stránky pod rozdielmi",
        "tog-showhiddencats": "Zobraziť skryté kategórie",
        "nstab-template": "Šablóna",
        "nstab-help": "Pomoc",
        "nstab-category": "Kategória",
+       "mainpage-nstab": "Hlavná stránka",
        "nosuchaction": "Takáto činnosť neexistuje",
        "nosuchactiontext": "Operácia, ktorú vyžadujete pomocou URL nie je platná.\nJe možné, že ste napísali URL chybne alebo ste klikli na chybný odkaz.\nPríčinou tiež môže byť chyba v softvéri, ktorý používa {{SITENAME}}.",
        "nosuchspecialpage": "Takáto špeciálna stránka neexistuje",
        "createaccountreason": "Dôvod:",
        "createacct-reason": "Dôvod",
        "createacct-reason-ph": "Prečo si vytvárate ďalší účet",
-       "createacct-captcha": "Bezpečnostná kontrola",
-       "createacct-imgcaptcha-ph": "Zadajte text, ktorý vidíte vyššie",
        "createacct-submit": "Vytvoriť účet",
        "createacct-another-submit": "Vytvoriť ďalší účet",
        "createacct-benefit-heading": "{{GRAMMAR:akuzatív|{{SITENAME}}}} tvoria ľudia ako vy.",
        "createacct-benefit-body2": "{{PLURAL:$1|stránka|stránky|stránok}}",
        "createacct-benefit-body3": "{{PLURAL:$1|nedávny prispievateľ|nedávni prispievatelia|nedávnych prispievateľov}}",
        "badretype": "Zadané heslá nie sú rovnaké.",
+       "usernameinprogress": "Vytváranie účtu s týmto menom už prebieha. Počkajte prosím.",
        "userexists": "Zadané používateľské meno sa už používa.\nProsím, zvoľte si iné meno.",
        "loginerror": "Chyba pri prihlasovaní",
        "createacct-error": "Chyba pri vytváraní účtu",
        "passwordreset-emailerror-capture": "Bol odoslaný email s novým heslom, ktorý je zobrazený nižšie, ale nepodarilo sa ho odoslať {{GENDER:$2|používateľovi}}: $1",
        "changeemail": "Zmeniť emailovú adresu",
        "changeemail-header": "Zmena e-mailovej adresy pre účet",
+       "changeemail-passwordrequired": "Pre potvrdenie tejto zmeny budete musieť zadať svoje heslo.",
        "changeemail-no-info": "Na prístup k tejto stránke musíte byť prihlásený.",
        "changeemail-oldemail": "Súčasná e-mailová adresa:",
        "changeemail-newemail": "Nová e-mailová adresa:",
+       "changeemail-newemail-help": "Ak chcete svoju e-mailovú adresu odstrániť, táto položka by mala zostať prázdna. Ak bude e-mailová adresa odstránená, nebudete si môcť obnoviť zbudnuté heslo, ani prijímať e-maily z tejto wiki.",
        "changeemail-none": "(žiadna)",
        "changeemail-password": "Vaše heslo k {{GRAMMAR:lokál|{{SITENAME}}}}:",
        "changeemail-submit": "Zmeniť e-mail",
        "changeemail-throttled": "Uskutočnili ste príliš mnoho neúspešných pokusov o prihlásenie. Prosím, počkajte $1 predtým, než to skúsite znova.",
+       "changeemail-nochange": "Zadajte prosím odlišnú e-mailovú adresu.",
        "resettokens": "Obnoviť tokeny",
        "resettokens-text": "Tu môžete obnoviť tokeny, ktoré umožňujú prístup k určitým súkromným údajom spojeným s vaším účtom.\n\nMali by ste to urobiť, ak ste ich omylom niekomu poskytli alebo ak bolo vaše konto zneužité.",
        "resettokens-no-tokens": "Neexistujú žiadne tokeny, ktoré by bolo možné obnoviť.",
        "search-section": "(sekcia $1)",
        "search-category": "($1 kategória)",
        "search-suggest": "Mali ste na mysli „$1“?",
+       "search-rewritten": "Zobrazujú sa výsledky pre $1. Vyhľadať namiesto toho $2.",
        "search-interwiki-caption": "Sesterské projekty",
        "search-interwiki-default": "$1 výsledkov:",
        "search-interwiki-more": "(viac)",
        "showingresultsinrange": "Nižšie {{PLURAL:$1|je zobrazený|sú zobrazené|je zobrazených}} max <strong>$1</strong> {{PLURAL:$1|výsledok|výsledky|výsledkov}} v rozsahu #<strong>$2</strong> – #<strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Výsledok <strong>$1</strong> z <strong>$3</strong>|Výsledky <strong>$1 – $2</strong> z <strong>$3</strong>}}",
        "search-nonefound": "Vyhľadávanie nenašlo žiadne výsledky.",
+       "search-nonefound-thiswiki": "Hľadanému výrazu nezodpovedajú na tejto wiki žiadne výskyty.",
        "powersearch-legend": "Pokročilé hľadanie",
        "powersearch-ns": "Hľadať v menných priestoroch:",
        "powersearch-togglelabel": "Skontrolovať:",
        "columns": "Stĺpce:",
        "searchresultshead": "Vyhľadávanie",
        "stub-threshold": "Prah formátovania <a href=\"#\" class=\"stub\">výhonkov</a> (v bajtoch):",
+       "stub-threshold-sample-link": "príklad",
        "stub-threshold-disabled": "Vypnuté",
        "recentchangesdays": "Koľko dní zobrazovať v posledných úpravách:",
        "recentchangesdays-max": "(maximálne $1 {{PLURAL:$1|deň|dni|dní}})",
        "prefs-help-recentchangescount": "Toto sa týka posledných úprav, histórií stránok a záznamov.",
        "prefs-help-watchlist-token2": "Toto je tajný kľúč k webovému kanálu vášho zoznamu sledovaných stránok.\nkaždý, kto ho pozná si bude môcť prečítať váš zoznam sledovaných stránok, preto ho nezverejňujte.\n[[Special:ResetTokens|Kliknite sem, ak potrebujete vytvoriť nový]].",
        "savedprefs": "Vaše nastavenia boli uložené.",
+       "savedrights": "Práva {{GENDER:$1|používateľa|používateľky}} $1 boli uložené.",
        "timezonelegend": "Časové pásmo:",
        "localtime": "Miestny čas:",
        "timezoneuseserverdefault": "Použiť predvoľby wiki ($1)",
        "prefs-diffs": "Rozdiely",
        "prefs-help-prefershttps": "Táto voľba sa prejaví pri vašom ďalšom prihlásení.",
        "prefswarning-warning": "Vykonali ste zmeny v nastaveniach, ktoré zatiaľ nie sú uložené. Ak túto stránku opustíte bez kliknutia na „$1“, vaše nastavenia sa neaktualizujú.",
+       "prefs-tabs-navigation-hint": "Tip: prepínať medzi záložkami môžete aj pomocou šípok vľavo a vpravo.",
        "email-address-validity-valid": "Formát e-mailovej adresy sa zdá byť správny",
        "email-address-validity-invalid": "Zadajte platnú e-mailovú adresu",
        "userrights": "Spravovanie používateľských práv",
        "rcshowhidemine": "$1 moje úpravy",
        "rcshowhidemine-show": "Zobraziť",
        "rcshowhidemine-hide": "Skryť",
+       "rcshowhidecategorization": "$1 kategorizáciu stránok",
+       "rcshowhidecategorization-show": "Zobraziť",
+       "rcshowhidecategorization-hide": "Skryť",
        "rclinks": "Zobraziť posledných $1 úprav v posledných $2 dňoch<br />$3",
        "diff": "rozdiel",
        "hist": "história",
        "recentchangeslinked-summary": "Táto špeciálna stránka obsahuje zoznam posledných úprav stránok, ''na ktoré odkazuje'' zadaná stránka (alebo ktoré patria do zadanej kategórie).\nStránky, ktoré sa nachádzajú vo vašom [[Special:Watchlist|zozname sledovaných]] sú vyznačené '''hrubo'''.",
        "recentchangeslinked-page": "Názov stránky:",
        "recentchangeslinked-to": "Zobraziť zmeny na stránkach, ''ktoré odkazujú na'' zadanú stránku",
+       "recentchanges-page-added-to-category": "[[:$1]] zaradená do kategórie",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] a {{PLURAL:$2|jedna ďalšia zaradené|$2 ďalšie zaradené|$2 ďalších zaradených}} do kategórie",
+       "recentchanges-page-removed-from-category": "[[:$1]] vyradená z kategórie",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] a {{PLURAL:$2|jedna ďalšia vyradené|$2 ďalšie vyradené|$2 ďalších vyradených}} z kategórie",
+       "autochange-username": "Automatická úprava MediaWiki",
        "upload": "Nahrať súbor",
        "uploadbtn": "Nahrať súbor",
        "reuploaddesc": "Zrušiť nahrávanie a vrátiť sa späť na nahrávací formulár.",
        "wlheader-showupdated": "Stránky, ktoré boli zmenené od vašej poslednej návštevy sú zobrazené '''tučne'''.",
        "wlnote": "Nižšie {{PLURAL:$1|je posledná úprava|sú posledné <strong>$1</strong> úpravy|je posledných <strong>$1</strong> úprav}} za {{PLURAL:$2|poslednú hodinu|posledné <strong>$2</strong> hodiny|posledných <strong>$2</strong> hodín}} do $4, $3.",
        "wlshowlast": "Zobraziť posledných $1 hodín $2 dní",
+       "watchlistall2": "všetky",
+       "watchlist-hide": "Skryť",
+       "wlshowtime": "Zobraziť posl.:",
+       "wlshowhideminor": "drobné úpravy",
+       "wlshowhidebots": "botov",
+       "wlshowhideliu": "registrovaných",
+       "wlshowhideanons": "anonymov",
+       "wlshowhidepatr": "preverené úpravy",
+       "wlshowhidemine": "moje úpravy",
        "watchlist-options": "Nastavenia zoznamu sledovaných",
        "watching": "Pridávam do zoznamu sledovaných...",
        "unwatching": "Odoberám zo zoznamu sledovaných...",
        "svg-long-error": "Neplatný súbor SVG: $1",
        "show-big-image": "Pôvodný súbor",
        "show-big-image-preview": "Veľkosť tohto náhľadu: $1.",
+       "show-big-image-preview-differ": "Veľkosť tohoto $3 náhľadu tohoto $2 súboru: $1.",
        "show-big-image-other": "Iné {{PLURAL:$2|rozlíšenie|rozlíšenia}}: $1 .",
        "show-big-image-size": "$1 × $2 pixlov",
        "file-info-gif-looped": "v cykle",
        "expand_templates_generate_xml": "Zobraziť strom XML",
        "expand_templates_generate_rawhtml": "Zobraziť surové HTML",
        "expand_templates_preview": "Náhľad",
+       "pagelanguage": "Voľba jazyka stránky",
        "pagelang-name": "Stránka",
        "pagelang-language": "Jazyk",
        "pagelang-use-default": "Použiť predvolený jazyk",
        "pagelang-select-lang": "Vybrať jazyk",
        "right-pagelang": "Zmeniť jazyk stránky",
+       "action-pagelang": "meniť jazyk stránky",
        "default-skin-not-found": "Uups! Základná tapeta pre Vašu wiki, popísanú v <code dir=\"ltr\">$wgDefaultSkin</code> ako <code>$1</code>, nie je dostupná. \n\nVaša inštalácia pravdepodobne obsahuje nasledovné tapety. Pozri [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pre viac informácii o ich aktivácii a zvoľte základnú.\n\n$2\n\n; Ak ste MediaWiki len teraz nainštalovali\n; Zrejme ste to nainštalovali z gitu alebo priamo zo zdrojového kódu inou metódou. Je to očakávané. Skúste nainštalovať nejaké tapety z [https://www.mediawiki.org/wiki/Category:All_skins mediawiki.org's skin directory];\n:*Stiahnutím [https://www.mediawiki.org/wiki/Download tarball installer], ktorý ponúka viacero tapiet a rozšírení. Skopírovať a nalepiť možno priamo z <code>skins/</code>.\n:*Klonovanie jednej zo <code>mediawiki/skins/*</code> schránok cez git do <code dir=\"ltr\">skins/</code> priečinku Vašej Media Wiki inštalácie.\n: S existujúcou git schránkou, ak ste vývojár MediaWiki, by nemal byť konflikt.\n\n: Ak ste upgradeovali MediaWiki\n: MediaWiki 1.24 a novšie už tapety automaticky neaktivujú. (see [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Nasledovný kód môžete skopírovať do <code>LocalSettings.php</code> pre aktivovanie všetkých dostupných tapiet.\n\n<pre dir=\"ltr\">$3</pre>\n\n; Ak ste upravili <code>LocalSettings.php</code>:\n: Skontrolujte chyby.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (povolený)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''zakázaný''')",
        "special-characters-title-endash": "pomlčka",
        "special-characters-title-emdash": "dlhá pomlčka",
        "special-characters-title-minus": "mínus",
+       "mw-widgets-dateinput-no-date": "Nebol zvolený žiaden dátum",
        "mw-widgets-dateinput-placeholder-day": "RRRR-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "RRRR-MM",
+       "mw-widgets-titleinput-description-new-page": "stránka zatiaľ neexistuje",
+       "mw-widgets-titleinput-description-redirect": "presmerovanie na $1",
        "api-error-blacklisted": "Prosím, zvoľte iný, opisný názov."
 }
index 6dca4f7..280e6aa 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",
+       "watchlist-hide": "Skrij",
+       "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..0ed1b81 100644 (file)
        "changeemail-password": "Ваша лозинка:",
        "changeemail-submit": "Промени",
        "changeemail-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
+       "changeemail-nochange": "Унесите другу нову имејл адресу.",
        "resettokens": "Ресетовање жетона",
        "resettokens-text": "Можете поново поставити жетоне који ће вам омогућити приступ одређеним приватним подацима повезаним са вашим налогом овде.\n\nТребали бисте то да урадите ако их мимо воље поделите с неким или ако је ваш налог угрожен.",
        "resettokens-no-tokens": "Нема жетона за ресетовање.",
        "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-hide": "Сакриј",
+       "wlshowhideminor": "мање измене",
+       "wlshowhidebots": "ботове",
+       "wlshowhideliu": "регистроване кориснике",
+       "wlshowhideanons": "анонимне кориснике",
+       "wlshowhidepatr": "патролиране измене",
+       "wlshowhidemine": "моје измене",
        "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..f2cabe4 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",
+       "watchlist-hide": "Dölj",
+       "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 88727e0..75f4dcf 100644 (file)
@@ -96,7 +96,7 @@
        "august-gen": "ಆಗೋಸ್ಟು",
        "september-gen": "ಸಪ್ಟಂಬರೊ",
        "october-gen": "ಅಕ್ಟೋಬರ",
-       "november-gen": "ನವಂಬರ",
+       "november-gen": "ನವಂಬರ",
        "december-gen": "ದಸಂಬರೊ",
        "jan": "ಜನವರಿ",
        "feb": "ಪೆಬ್ರವರಿ",
        "faq": "ಸಾಮಾನ್ಯವಾದ್ ಕೇನುನ ಪ್ರಶ್ನೆಲು",
        "faqpage": "Project:ಸಾಮಾನ್ಯವಾದ್ ಕೇನುನ ಪ್ರಶ್ನೆಲು",
        "actions": "ಕ್ರಿಯೆಕ್ಕುಲು",
-       "namespaces": "ನಾಮà³\8a ವರ್ಗೊಲು",
+       "namespaces": "ಪà³\81ದರà³\8dâ\80\8dದ ವರ್ಗೊಲು",
        "variants": "ದಿಂಜ",
        "navigation-heading": "ಸಂಚಾರೊದ ಮೆನು",
        "errorpagetitle": "ದೋಷ",
        "returnto": "$1ಗ್ ಪಿರಪೋಲೆ.",
        "tagline": "{{SITENAME}}ರ್ದ್",
-       "help": "ಸಾಯೊ",
+       "help": "ಸಹಾಯà³\8a",
        "search": "ನಾಡ್‍ಲೆ",
        "searchbutton": "ನಾಡ್‍ಲೆ",
        "go": "ಪೋ",
        "createacct-benefit-heading": "{{SITENAME}}ನಿಕ್ಲೆನಂಚಿತ್ತಿನ ಜನೊಕ್ಲೆಡ್ದ್ ಉಂಡಾಪುಂಡು.",
        "createacct-benefit-body1": "{{PLURAL:$1|ಸಂಪದನೆ|ಸಂಪದನೆಲು}}",
        "createacct-benefit-body2": "{{PLURAL:$1|ಪುಟೊ|ಪುಟೊಕ್ಕುಲು}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|à²\95à³\8aಡà³\81à²\97à³\86|à²\95à³\8aಡà³\81à²\97à³\86ಲು}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|à²\87ನಾಮà³\81|à²\87ನಾಮà³\81ಲು}}",
        "badretype": "ಈರ್ ಕೊರ್ನ ಪ್ರವೇಶ ಪದೆ ಬೇತೆ ಬೇತೆ ಅತ್ಂಡ್",
        "userexists": "ಈರ್ ಕೊರ್ನ ಸದಸ್ಯರ ಪುದರ್ ಬಳಕೆಡ್ ಉಂಡು. ದಯದೀದ್ ಬೇತೆ ಪುದರ್ ಕೊರ್ಲೆ",
        "loginerror": "ಲಾಗಿನ್ ದೋಷ",
        "rclistfrom": "$3 $2 ರ್ದ್ ಸುರುವಾತಿನ ಪೊಸ ಬದಲಾವಣೆಲೆನ್ ತೊಜ್ಪಾವು",
        "rcshowhideminor": "$1 ಎಲ್ಯೆಲ್ಯ ಬದಲಾವಣೆಲು",
        "rcshowhideminor-show": "ತೋಜಾಲೆ",
-       "rcshowhideminor-hide": "ದೆಂಗಾವು",
+       "rcshowhideminor-hide": "à²\85ಡೆಂಗಾವು",
        "rcshowhidebots": "$1ಬೋಟ್‍ಲು",
        "rcshowhidebots-show": "ತೊಜಾವು",
-       "rcshowhidebots-hide": "ದà³\86à²\82à²\97ಾಲà³\86",
+       "rcshowhidebots-hide": "à²\85ಡà³\86à²\82à²\97ಾವà³\81",
        "rcshowhideliu": "ನೋಂದವಣೆ ಆತಿನಂಚಿನ ಸದಸ್ಯೆರ್ $1",
-       "rcshowhideliu-hide": "ದೆಂಗಾವು",
+       "rcshowhideliu-hide": "à²\85ಡೆಂಗಾವು",
        "rcshowhideanons": "ಪುದರ್ ಇದ್ಯಾಂದಿನ ಸದಸ್ಯೆರ್ $1",
        "rcshowhideanons-show": "ತೋಜಾಲೆ",
-       "rcshowhideanons-hide": "ದೆಂಗಾವು",
+       "rcshowhideanons-hide": "à²\85ಡೆಂಗಾವು",
        "rcshowhidepatr": "$1 ಪರೀಕ್ಷಿಸಾದಿನ ಸಂಪಾದನೆಲು",
        "rcshowhidemine": "ಎನ್ನ ಸಂಪಾದನೆಲೆನ್ $1",
        "rcshowhidemine-show": "ತೋಜಾಲೆ",
-       "rcshowhidemine-hide": "ದೆಂಗಾವು",
+       "rcshowhidemine-hide": "à²\85ಡೆಂಗಾವು",
        "rclinks": "ದುಂಬುದ $2 ದಿನೊಲೆಡ್ ಮಲ್ತಿನ $1 ಪಿರವುದ ಬದಲಾವಣೆಲೆನ್ ತೂಲೆ <br />$3",
        "diff": "ವ್ಯತ್ಯಾಸೊ",
        "hist": "ಇತಿಹಾಸೊ",
-       "hide": "ದೆಂಗಾವು",
+       "hide": "à²\85ಡೆಂಗಾವು",
        "show": "ತೋಜಾವು",
        "minoreditletter": "ಚು",
        "newpageletter": "ಪೊ",
        "watch": "ತೂಲೆ",
        "watchthispage": "ಈ ಪುಟೊನು ತೂಲೆ",
        "unwatch": "ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆಪ್ಪು",
+       "watchlistall2": "ಪೂರ",
        "watchlist-options": "ವೀಕ್ಷಣಾಪಟ್ಟಿ ಆಯ್ಕೆಲು",
        "watching": "ವೀಕ್ಷಣಾಪಟ್ಟಿಗ್ ಸೇರ್ಪಾವೊಂದುಂಡು...",
        "unwatching": "ವೀಕ್ಷಣಾಪಟ್ಟಿರ್ದ್ ದೆತ್ತೊಂದುಂಡು...",
        "blanknamespace": "(ಮುಖ್ಯ)",
        "contributions": "{{$1ಸದಸ್ಯೆರ್ನ}}ಕಾಣಿಕೆಲು",
        "contributions-title": "$1 ಗ್ ಸದಸ್ಯೆರ್ನ ಕಾಣಿಕೆ",
-       "mycontris": "à²\8eನà³\8dನ à²\95ಾಣಿಕೆಲು",
+       "mycontris": "à²\8eನà³\8dನ à²\95ಾನಿಕೆಲು",
        "contribsub2": "$1 ($2) ಗ್",
        "uctop": " (ಮಿತ್ತ್)",
        "month": "ಈ ತಿಂಗೊಲುರ್ದ್ (ಬೊಕ್ಕ ದುಂಬುದ):",
        "thumbnail_error": "ಮುನ್ನೋಟ ಚಿತ್ರೊನು ಸೃಷ್ಟಿ ಮನ್ಪುನಗ ದೋಷ: $1",
        "tooltip-pt-userpage": "ಎನ್ನ ಸದಸ್ಯ ಪುಟೊ",
        "tooltip-pt-mytalk": "ಎನ್ನ ಚರ್ಚೆ ಪುಟೊ",
-       "tooltip-pt-preferences": "à²\8eನà³\8dನ à²\87ಷ್ಟೊಲು",
+       "tooltip-pt-preferences": "à²\8eನà³\8dನ à²\87ಸ್ಟೊಲು",
        "tooltip-pt-watchlist": "ಈರ್ ಬದಲಾವಣೆಗಾದ್ ನಿಗಾ ದೀತಿನಂಚಿನ ಪುಟೊಲೆನ ಪಟ್ಟಿ",
-       "tooltip-pt-mycontris": "à²\8eನà³\8dನ à²\95ಾಣಿಕೆಲೆ ಪಟ್ಟಿ",
+       "tooltip-pt-mycontris": "à²\8eನà³\8dನ à²\95ಾನಿಕೆಲೆ ಪಟ್ಟಿ",
        "tooltip-pt-login": "ಈರ್ ಲಾಗಿನ್ ಆವೊಡುಂದು ಕೇನೊಂದುಲ್ಲೊ, ಆಂಡ ಉಂದು ದಾಲ ಕಡ್ಡಾಯ ಅತ್ತ್.",
        "tooltip-pt-logout": "ಲಾಗ್ ಔಟ್",
        "tooltip-pt-createaccount": "ನಿಕುಲು ಪೊಸ ಖಾತೆ ಸುರುಮಾಂತ್‍ದ್ ಲಾಗಿನ್ ಆಪುನೈನ್ ಪ್ರೋತ್ಸಾಹಿಸವೊ, ಆಂಡಲಾ ಉಂದು ಕಡ್ಡಾಯ ಅತ್ತ್.",
        "tooltip-n-randompage": "ಇಚ್ಚೆದ ಪುಟೊ ಒಂಜೆನ್ ತೋಜಾವು",
        "tooltip-n-help": "ಇಂದೆತ ಬಗೆಟ್ ತೆರೆಯೊನುನ ಜಾಗೆ",
        "tooltip-t-whatlinkshere": "ಇಡೆಗ್ ಕೊಂಡಿ ಕೊರ್ಪುನಂಚಿನ ಪೂರ ವಿಕಿ ಪುಟೊಲೆನ ಪಟ್ಟಿ",
-       "tooltip-t-recentchangeslinked": "ಈ ಪುಟೊಡ್ದ್ ಸಂಪರ್ಕ ಉಪ್ಪುನಂಚಿನ ಪುಟೊಡ್ ಇಂಚಿಪೊದ ಬದಲಾವಣೆಲು",
+       "tooltip-t-recentchangeslinked": "ಈ ಪುಟೊಡ್ದ್ ಸಂಪರ್ಕ ಉಪ್ಪುನಂಚಿನ ಪುಟೊಡ್ ಇಂಚಿಪೊದ ಬದಲಾವಣೆಲು",
        "tooltip-feed-rss": "ಈ ಪುಟೊಗು ಆರ್.ಎಸ್.ಎಸ್ ಫೀಡ್",
        "tooltip-feed-atom": "ಈ ಪುಟೊಗು ಆಟಮ್ ಫೀಡ್ ಮಲ್ಪುಲೆ",
        "tooltip-t-contributions": "ಈ ಸದಸ್ಯೆರ್ನ ಕಾಣಿಕೆದ ಪಟ್ಟಿನ್ ತೋಜಾವು",
        "exif-colorspace": "ಬಣ್ಣೊದ ಜಾಗೆ",
        "exif-datetimeoriginal": "ಮಾಹಿತಿ ಸ್ರಿಸ್ಟಿಸಯಿನ ದಿನೊ ಬೊಕ್ಕ ಪೊರ್ತು",
        "exif-datetimedigitized": "ಗಣಕೀಕರಣೊದ ದಿನೊ ಬೊಕ್ಕ ಪೊರ್ತು",
-       "exif-orientation-1": "ಸಾದಾರಣೊ",
+       "exif-orientation-1": "ಸಾದಾರನೊ",
        "namespacesall": "ಮಾತ",
        "monthsall": "ಮಾತ",
        "watchlisttools-view": "ಪ್ರಸ್ತುತ ಬದಲಾವಣೆಲ್ ತೋಜಾಲೆ",
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 f7069e7..31f9d7b 100644 (file)
        "createaccountreason": "Dahilan:",
        "createacct-reason": "Dahilan",
        "createacct-reason-ph": "Bakit ka gagawa ng isa pang account?",
-       "createacct-captcha": "Siyasatin ang seguridad",
-       "createacct-imgcaptcha-ph": "Ilagay ang tekstong makikita sa itaas.",
        "createacct-submit": "Likhain ang iyong account",
        "createacct-another-submit": "Lumikha ng ibang account",
        "createacct-benefit-heading": "{{SITENAME}} ay nilikha ng mga taong iyong katulad.",
        "wlheader-showupdated": "Ipinapakitang may '''makakapal na mga panitik''' ang nabagong/binagong mga pahina mula pa noong huli mong pagdalaw sa kanila",
        "wlnote": "Nasa ibaba ang {{PLURAL:$1|pinakahuling pagbabago|pinakahuling '''$1''' mga pagbabago}} sa loob ng huling {{PLURAL:$2|oras|'''$2''' mga oras}}, magmula noong $3 sa ganap na ika-$4.",
        "wlshowlast": "Ipakita ang huling $1 mga oras $2 mga araw",
+       "watchlistall2": "lahat",
+       "watchlist-hide": "Itago",
+       "wlshowhideliu": "mga nakarehistrong tagagamit",
        "watchlist-options": "Mga pagpipilian para sa talaan ng mga binabantayan",
        "watching": "Isinasama sa mga binabantayan...",
        "unwatching": "Tinatanggal mula sa mga binabantayan...",
        "htmlform-submit": "Ipasa",
        "htmlform-reset": "Bawiin ang mga pagbabago",
        "htmlform-selectorother-other": "Iba pa",
+       "htmlform-title-not-exists": "Hindi nairal ang $1.",
        "sqlite-has-fts": "$1 na may suportang paghahanap ng buong teksto",
        "sqlite-no-fts": "$1 na walang suporta ng paghahanap ng buong teksto",
        "logentry-delete-delete": "Binura ni $1 ang pahinang $3",
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 b6a4003..da47b46 100644 (file)
@@ -8,7 +8,8 @@
                        "Urhixidur",
                        "לערי ריינהארט",
                        "아라",
-                       "Amire80"
+                       "Amire80",
+                       "Frhdkazan"
                ]
        },
        "tog-underline": "Sıltamalarnıñ astına sızu:",
@@ -23,8 +24,8 @@
        "tog-editsectiononrightclick": "Bülek isemenä tıçqannıñ uñ çirttermäse belän törtkäç üzgärtü bite açılsın (JavaScript kiräk)",
        "tog-watchcreations": "Tözegän bitlärem küzätü isemlegemä östälsen",
        "tog-watchdefault": "Üzgärtkän bitlärem küzätü isemlegemä östälsen",
-       "tog-watchmoves": "Küçergän bitlärem küzätü isemlegemä östälsen",
-       "tog-watchdeletion": "Beterelgän bitläremne küzätü isemlegemgä östäw",
+       "tog-watchmoves": "Küçerelgän bit häm fayllar küzätü isemlegemä östälsen",
+       "tog-watchdeletion": "Min betergän bitlär häm fayllar küzätü isemlegemä östälsen",
        "tog-minordefault": "Barlıq üzgärtülärne kileşü buyınça keçe dip bilgelänsen",
        "tog-previewontop": "Üzgärtü täräzäsennän östäräk bitne aldan qaraw ölkäsen kürsätelsen",
        "tog-previewonfirst": "Üzgärtü bitenä küçkändä başta aldan qaraw bite kürsätelsen",
        "newwindow": "(yaña täräzädä açıla)",
        "cancel": "Baş tartu",
        "moredotdotdot": "Däwamı…",
-       "mypage": "Şäxsi bitem",
-       "mytalk": "Bäxäsem",
+       "mypage": "Bit",
+       "mytalk": "Bäxäs",
        "anontalk": "Bu IP adresı öçen bäxäs bite",
        "navigation": "Küçü",
        "and": "&#32;häm",
        "actions": "Xäräkät",
        "namespaces": "İsemnär mäydanı",
        "variants": "Törlär",
+       "navigation-heading": "Navigatsiä menüsı",
        "errorpagetitle": "Xata",
        "returnto": "$1 bitenä qaytu.",
        "tagline": "{{SITENAME}} proyektınnan",
        "printableversion": "Bastıru versiäse",
        "permalink": "Daimi sıltama",
        "print": "Bastıru",
+       "view": "Qaraw",
        "edit": "Üzgärtü",
        "create": "Tözü",
        "editthispage": "Bu bitne üzgärtü",
        "protect": "Yaqlaw",
        "protect_change": "üzgärtü",
        "protectthispage": "Bu bitne yaqlaw",
-       "unprotect": "Yaqlawnı beterü",
-       "unprotectthispage": "Bu bitneñ yaqlawın beterü",
+       "unprotect": "Yaqlawnı üzgärtü",
+       "unprotectthispage": "Bu bitneñ yaqlawın üzgärtü",
        "newpage": "Yaña bit",
        "talkpage": "Bit turında fiker alışu",
        "talkpagelinktext": "Bäxäs",
        "pool-timeout": "Qısılunıñ  waqıtı uzdı",
        "pool-queuefull": "Sorawlarnı saqlaw  bite tulı",
        "pool-errorunknown": "Bilgesez  xata",
+       "poolcounter-usage-error": "Qullanılış xatası: $1",
        "aboutsite": "{{SITENAME}} turında",
        "aboutpage": "Project:Taswirlama",
-       "copyright": "Mäğlümat $1 buyınça taratıla.",
+       "copyright": "Başqası belderelmägändä mäğlümat $1 nigezendä taratıla.",
        "copyrightpage": "{{ns:project}}:Avtorlıq xoquqları",
        "currentevents": "Xäzerge waqıyğalar",
        "currentevents-url": "Project:Xäzerge waqıyğalar",
        "disclaimers": "Cawaplılıqtan baş tartu",
        "disclaimerpage": "Project:Cawaplılıqtan baş tartu",
        "edithelp": "Üzgärtü buyınça yärdäm",
+       "helppage-top-gethelp": "Yärdäm",
        "mainpage": "Baş bit",
        "mainpage-description": "Baş bit",
        "policy-url": "Project:Qäğidälär",
        "toc": "Eçtälek",
        "showtoc": "kürsätü",
        "hidetoc": "yäşerü",
+       "collapsible-collapse": "Qaplarğa",
+       "collapsible-expand": "Açırğa",
+       "confirmable-yes": "Äye",
+       "confirmable-no": "Yuq",
        "thisisdeleted": "$1 qararğa yäki torğızırğa telisezme?",
        "viewdeleted": "$1 qararğa telisezme?",
        "restorelink": "{{PLURAL:$1|1 beterelgän üzgärtüne|$1 beterelgän üzgärtüne}}",
        "nstab-template": "Ürnäk",
        "nstab-help": "Yärdäm",
        "nstab-category": "Törkem",
+       "mainpage-nstab": "Baş bit",
        "nosuchaction": "Mondıy ğämäl yuq",
        "nosuchactiontext": "URLda kürsätelgän ğämäl xatalı.\nSez URLnı xatalı cıyğan yäisä xatalı sıltamadan küçkän bulırğa mömkinsez.\nBu şulay uq {{SITENAME}} proyektındağı xata säbäple dä bulırğa mömkin.",
        "nosuchspecialpage": "Mondıy maxsus bit yuq",
        "nospecialpagetext": "<strong>Sez sorıy torğan maxsus bit yuq.</strong>\n\nMaxsus bitlär isemlegen qarağız: [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Xata",
        "databaseerror": "Mäğlümatlar bazasında xata",
+       "databaseerror-function": "Funktsiä: $1",
+       "databaseerror-error": "Xata: $1",
        "laggedslavemode": "İğtibar: bittä soñğı yañartular kürsätelmägän bulırğa mömkin.",
        "readonly": "Mäğlümatlar bazasına yazu yabılğan",
        "enterlockreason": "Yabılu säbäben häm waqıtın kürsätegez.",
        "perfcachedts": "Bu mäğlümatlar keştan alınğan, ul soñğı tapqır $1 yañartıldı. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "Xäzer bu bitne yañartıp bulmıy. Monda kürsätelgän mäğlümatlar qabul itelmäyäçäk.",
        "viewsource": "Qaraw",
+       "viewsource-title": "$1 çığanağın qaraw",
        "actionthrottled": "Tizlek kimetelgän",
        "actionthrottledtext": "Spamğa qarşı köräş öçen az waqıt eçendä bu ğämälne yış qullanu tıyılğan. Zinhar, soñaraq qabatlağız.",
        "protectedpagetext": "Bu bit üzgärtü öçen yabıq.",
        "virus-scanfailed": "skanerlaw xatası ($1 kodı)",
        "virus-unknownscanner": "bilgesez antivirus:",
        "logouttext": "'''Sez xisap yazmağızdan çıqtığız.'''\n\nSez {{SITENAME}} proyektında anonim räweştä qala yäisä şul uq yäki başqa isem belän yañadan <span class='plainlinks'>[$1 kerä]</span> alasız.\nQayber bitlär Sez kergän kebek kürsätelergä mömkin. Monı beterü öçen brauzer keşın çistartığız.",
+       "welcomeuser": "Räxim itegez, $1!",
        "yourname": "Qullanuçı iseme:",
+       "userlogin-yourname": "Xisap yazması",
+       "userlogin-yourname-ph": "Xisap yazmağıznı kertegez",
+       "createacct-another-username-ph": "Xisap yazmağıznı kertegez",
        "yourpassword": "Sersüz:",
+       "userlogin-yourpassword": "Sersüz",
+       "userlogin-yourpassword-ph": "Sersüzegezne kertegez",
+       "createacct-yourpassword-ph": "Sersüzne kertegez",
        "yourpasswordagain": "Sersüzne qabat kertü:",
+       "createacct-yourpasswordagain": "Sersüzegezne raslağız",
+       "createacct-yourpasswordagain-ph": "Sersüzne yañadan kertegez",
        "remembermypassword": "Xisap yazmamnı bu brauzerda saqlansın (iñ küp $1 {{PLURAL:$1|kön|kön|kön}}gä qädär)",
        "yourdomainname": "Sezneñ domenığız:",
        "externaldberror": "Tışqı mäğlümat bazası yärdämendä awtentifikatsiä ütkändä xata çıqtı, yäisä tışqı xisap yazmağızğa üzgäreşlär kertü xoquqığız yuq.",
        "createaccount": "Yaña qullanuçı terkäw",
        "gotaccount": "Sez inde terkäldegezme? '''$1'''.",
        "gotaccountlink": "Kerü",
-       "createaccountmail": "elektron poçta aşa",
+       "userlogin-resetpassword-link": "Sersüzegezne onıttığızmı?",
+       "createacct-emailrequired": "Email adresı",
+       "createacct-emailoptional": "Email adresı (kürsätü mäcbür tügel)",
+       "createacct-email-ph": "Elektron xatlaşu adresığıznı kertegez",
+       "createacct-another-email-ph": "Elektron xatlaşu adresığıznı kertegez",
+       "createaccountmail": "Waqıtlıça oçraqlı sersüz qullan häm anı kürsätelgän elektron xatlaşu adresına yulla",
+       "createacct-realname": "Çın isemegez (kürsätü mäcbüri tügel)",
        "createaccountreason": "Säbäp:",
+       "createacct-reason": "Säbäp",
+       "createacct-reason-ph": "İkençe xisap yazmanı buldıru säbäben",
+       "createacct-submit": "Xisap yazmağıznı tözegez",
+       "createacct-another-submit": "Xisap yazmanı tözü",
+       "createacct-benefit-heading": "{{SITENAME}} sezneñ kebek keşelär tarafınnan buldırıla.",
+       "createacct-benefit-body1": "{{PLURAL:$1|üzgärtü}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|bit}}",
        "badretype": "Kertelgän sersüzlär ber ük tügel.",
        "userexists": "Kertelgän isem qullanıla.\nZinhar, başqa isem saylağız.",
        "loginerror": "Kerü xatası",
        "login-throttled": "Sez artıq küp tapqır kerergä tırıştığız.\nYañadan qabatlağançı beraz kötüegez sorala.",
        "loginlanguagelabel": "Tel: $1",
        "suspicious-userlogout": "Sezneñ eşçänlekne beterü sorawığız kire qağıldı, çönki ul yalğış brauzer yäisä keşlawçı proksi aşa cibärelerge mömkin.",
+       "pt-login": "Kerü",
+       "pt-login-button": "Kerü",
+       "pt-createaccount": "Xisap yazmanı tözü",
        "changepassword": "Sersüzne üzgärtü",
        "resetpass_announce": "Sez elektron poçta aşa waqıtlıça birelgän sersüz yärdämendä kerdegez. Sistemağa kerüne tögälläw öçen yaña sersüz tözegez.",
        "resetpass_text": "<!-- Monda tekst östägez -->",
        "mergehistory-reason": "Säbäp:",
        "mergelog": "Berläşterülär köndälege",
        "revertmerge": "Bülü",
-       "history-title": "$1 biteneñ üzgärtü tarixı",
+       "history-title": "$1 biteneñ üzgärtelü tarixı",
        "lineno": "$1 yul:",
        "compareselectedversions": "Saylanğan yuramalarnı çağıştıru",
        "showhideselectedversions": "Saylanğan yuramalarnı kürsätü/yäşerü",
        "notextmatches": "Tiñdäş tekstlı bitlär yuq",
        "prevn": "aldağı {{PLURAL:$1|$1}}",
        "nextn": "çirattağı {{PLURAL:$1|$1}}",
+       "shown-title": "Bitkä $1 {{PLURAL:$1|yul}} kürsät",
        "viewprevnext": "Kürsätelüe: ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "'''«[[:$1]]»  isemle yaña bit yasaw'''",
        "searchprofile-articles": "Töp bitlär",
        "powersearch-togglenone": "Birni dä yuq",
        "search-external": "Tışqı ezläw",
        "preferences": "Köylänmälär",
-       "mypreferences": "Köylänmälärem",
+       "mypreferences": "Köylänmälär",
        "prefs-edits": "Üzgärtülär isäbe:",
        "prefs-skin": "Küreneş",
        "skin-preview": "Aldan qaraw",
        "action-createtalk": "bäxäs biten yasarğa",
        "action-move": "bu bitne küçererge",
        "nchanges": "$1 {{PLURAL:$1|üzgärtü|üzgärtü}}",
+       "enhancedrc-history": "tarixı",
        "recentchanges": "Soñğı üzgärtülär",
        "recentchanges-legend": "Soñğı üzgärtülär köyläwläre",
        "recentchanges-summary": "Bu bittä {{grammar:genitive|{{SITENAME}}}} proyektınıñ soñğı üzgärtüläre kürsätelä.",
        "recentchanges-feed-description": "Bu ağımda soñğı üzgärtülärne küzätü.",
        "recentchanges-label-newpage": "Bu üzgärtü belän yaña bit tözelde",
        "recentchanges-label-minor": "Bu keçe üzgärtü",
+       "recentchanges-label-bot": "Bu üzgärtmä bot tarafınnan yasaldı",
+       "recentchanges-label-plusminus": "Bit zurlığınıñ baytlardağı üzgäreş",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (şulay uq [[Special:NewPages|yaña bitlär isemlegen]] qarap alığız)",
        "rcnotefrom": "Astaraq '''$2''' başlap ('''$1''' qädär) üzgärtülär kürsätelgän.",
        "rclistfrom": "$3 $2 başlap yaña üzgärtülärne kürsät",
        "rcshowhideminor": "keçe üzgärtülärne $1",
+       "rcshowhideminor-show": "Kürsätü",
+       "rcshowhideminor-hide": "Yäşerü",
        "rcshowhidebots": "botlarnı $1",
-       "rcshowhideliu": "kergän qullanuçılarnı $1",
+       "rcshowhidebots-show": "Kürsätü",
+       "rcshowhidebots-hide": "Yäşerü",
+       "rcshowhideliu": "$1 terkälgän qullanuçı",
+       "rcshowhideliu-hide": "Yäşerü",
        "rcshowhideanons": "kermägän qullanuçılarnı $1",
+       "rcshowhideanons-show": "Kürsätü",
+       "rcshowhideanons-hide": "Yäşerü",
        "rcshowhidepatr": "tikşerergän üzgärtülärne $1",
        "rcshowhidemine": "minem üzgärtüläremne $1",
+       "rcshowhidemine-show": "Kürsätü",
+       "rcshowhidemine-hide": "Yäşerü",
        "rclinks": "Soñğı $2 kön eçendä soñğı $1 üzgärtüne kürsät<br />$3",
        "diff": "ayırma",
        "hist": "tarix",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|küzätep tora qullanuçı}}]",
        "rc_categories": "Törkemnärdä genä tora («|» bülüçe)",
        "rc_categories_any": "Härber",
+       "rc-change-size-new": "üzgäreştän soñ $1 {{PLURAL:$1|bayt}}",
        "newsectionsummary": "/* $1 */ yaña bülek",
        "rc-enhanced-expand": "Waqlıqlarnı kürsätü (JavaScript kiräk)",
        "rc-enhanced-hide": "Waqlıqlarnı yäşerü",
        "filehist-dimensions": "Zurlıq",
        "filehist-filesize": "Faylnıñ zurlığı",
        "filehist-comment": "İskärmä",
-       "imagelinks": "Faylğa sıltamalar",
+       "imagelinks": "Fayl qullanışı",
        "linkstoimage": "Bu faylğa älege {{PLURAL:$1|bit|$1 bit}} sıltıy:",
        "nolinkstoimage": "Bu faylğa sıltağan bitlär yuq.",
        "duplicatesoffile": "{{PLURAL:$1|Älege $1 fayl }} astağı faylnıñ küçerelmäse bulıp tora ([[Special:FileDuplicateSearch/$2|tulıraq]]):",
        "filepage-nofile-link": "Mondıy isemle fayl  yuq. Sez anı [$1 yökli alasız].",
        "uploadnewversion-linktext": "Bu faylnıñ yaña yuramasın yökläw",
        "shared-repo-from": "$1 dän",
+       "upload-disallowed-here": "Bu faylnı almaştıra almıysız.",
        "filerevert": "$1 yuramasına kire qaytu",
        "filerevert-legend": "Faylnıñ iske yuramasın kire qaytaru",
        "filerevert-comment": "Säbäp:",
        "suppress": "Yäşerü",
        "booksources": "Kitap çığanaqları",
        "booksources-search-legend": "Kitap çığanaqlarını ezläw",
+       "booksources-search": "Ezläw",
        "booksources-text": "Älege bittä kürsätelgän sıltamalar yärämendä sezneñ qızıqsındırğan kitap buyınça östämä mäğlümatlar tabarğa mömkin. Bolar internet-kibetlär häm kitapxanä cıyıntığında ezläwçe sistemalar.",
        "booksources-invalid-isbn": "Birelgän ISBN sanı bälki xataldır. Zinhar, birelgän sannarnı yañadan tikşeregez.",
        "specialloguserlabel": "Qullanuçı:",
        "listgrouprights-helppage": "Help:Törkemnärneñ xoquqları",
        "listgrouprights-members": "(törkem isemlege)",
        "emailuser": "Bu qullanuçığa xat",
-       "emailpage": "Qullanuçığa xat cibärü",
        "defemailsubject": "{{SITENAME}}: xat",
        "noemailtitle": "Elektron poçta adresı yuq",
        "emailfrom": "Kemnän:",
        "emailsent": "Xat cibärelgän",
        "emailsenttext": "E-mail xatığız ciberelde.",
        "watchlist": "Küzätü isemlegem",
-       "mywatchlist": "Küzätü isemlegem",
+       "mywatchlist": "Küzätü isemlege",
        "nowatchlist": "Küzätü isemlegegezdä bitlär yuq.",
        "watchnologin": "Kermädegez",
        "addedwatchtext": "\"[[:$1]]\" bite [[Special:Watchlist|küzätü isemlegegezgä]] östälde.\nBu bittä häm anıñ bäxäslegendä barlıq bulaçaq üzgärtülär şunda kürsäteler, häm, [[Special:RecentChanges|soñğı üzgärtülär]] isemlegendä bu bitne ciñelräk tabu öçen, ul '''qalın mäten''' belän kürsäteler.",
        "notanarticle": "Mäqälä tügel",
        "watchlist-details": "Küzätü isemlegegezdä, bäxäs bitlären sanamıyça, {{PLURAL:$1|$1 bit|$1 bit}} bar.",
        "wlshowlast": "Bayağı $1 säğät $2 kön eçendä yäki nı kürsät",
+       "watchlistall2": "barlıq",
        "watchlist-options": "Küzätü isemlege köyläwläre",
        "watching": "Küzätü isemlegemä östäwe…",
        "unwatching": "Küzätü isemlegemnän çığaruı…",
        "namespace": "İsemnär mäydanı:",
        "invert": "Kiresen saylaw",
        "blanknamespace": "(Töp)",
-       "contributions": "Qullanuçınıñ kerteme",
+       "contributions": "{{GENDER:$1|Qullanuçınıñ}} kerteme",
        "contributions-title": "$1 isemle qullanuçınıñ kerteme",
-       "mycontris": "Kertemem",
+       "mycontris": "Kertem",
        "contribsub2": "$1 ($2) öçen",
        "uctop": "(axırğı)",
        "month": "Aydan başlap (häm elegräk):",
        "move-page-legend": "Bitne küçerü",
        "movepagetext": "Astağı formanı qullanu bitneñ isemen alıştırıp, anıñ barlıq tarixın yaña isemle bitkä küçerer.\nİske isemle bit yaña isemle bitkä yünältü bulıp qalır.\nSez iske isemgä yünältülärne avtomatik räweştä yaña isemgä küçerä alasız.\nÄgär monı eşlämäsägez, [[Special:DoubleRedirects|ikele]] häm [[Special:BrokenRedirects|özelgän yünältülärne]] tikşeregez.\nSez barlıq sıltamalarnıñ kiräkle cirgä sıltawına cawaplı.\n\nKüzdä totığız: ägär yaña isem urınında bit bulsa inde, häm ul buş yäki yünältü tügel isä, bit '''küçerelmäyäçäk'''.\nBu şunı añlata: sez yalğışıp küçersägez, bitne qaytara alasız, ämma inde bulğan bitne beterä almıysız.\n\n'''İğtibar!'''\nPopulyar bitlärne küçerü zur häm kötelmägän näticälärgä kiterä ala.\nDäwam itkänçe, barlıq näticälärne añlawığıznı tağın ber qat uylağız.",
        "movepagetalktext": "Bu bitneñ bäxäs bite dä küçereläçäk, '''bu oçraqlardan tış''':\n*Andıy isemle buş bulmağan bäxäs bite bar inde, yäisä\n*Sez astağı flajoqnı quymağansız.\n\nBu oçraqlarda sezgä bitlärne üz qulığız belän küçerergä yäki quşarğa turı kiler.",
-       "movearticle": "Bitne küçerü:",
        "movenotallowed": "Sezdä mäqälälärne küçerü xoquqları yuq.",
        "newtitle": "Yaña başlam:",
        "move-watch": "Bu bitne küzätü",
        "tooltip-pt-mycontris": "Sezneñ kertemengezne isemlege",
        "tooltip-pt-login": "Sez xisap yazması tözi alır idegez, ämma bu mäcbüri tügel.",
        "tooltip-pt-logout": "Çığu",
+       "tooltip-pt-createaccount": "Üzegezneñ xisap yazmanı tözep sistemağa anıñ belän kerergä çaqırabız; şulay da bu mäcbüri tügel",
        "tooltip-ca-talk": "Bitneñ eçtälege turında bäxäs",
        "tooltip-ca-edit": "Sez bu bit üzgärtä alasız. Zinhar, saqlağançı qarap alunı qullanığız.",
        "tooltip-ca-addsection": "Yaña bülek başlaw",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|qullanuçısı|qullanuçıları}} $1",
        "creditspage": "Räxmätlär",
        "spamprotectiontitle": "Spam filtrı",
+       "simpleantispam-label": "Anti-spam tikşerüe.\nBu urınğa simvollar kert<strong>mä</strong>gez!",
+       "pageinfo-toolboxlink": "Bit turında mäğlümat",
        "markaspatrolledtext": "Bu mäqäläne tikşerelgän dip tamğalaw",
        "markedaspatrolled": "Tikşerelgän dip tamğalandı",
        "markedaspatrolledtext": "Saylanğan [[:$1]] mäqäläseneñ älege yuraması tikşerelgän dip tamğalandı.",
        "file-info-size": "$1 × $2 noqta, faylnıñ zurlığı: $3, MIME tibı: $4",
        "file-nohires": "Yuğarı açıqlıq belän yurama yuq.",
        "svg-long-desc": "SVG faylı, şartlı $1 × $2 noqta, faylnıñ zurlığı: $3",
-       "show-big-image": "Tulı açıqlıq",
+       "show-big-image": "Original fayl",
+       "show-big-image-size": "$1 × $2 piksel",
        "newimages": "Yaña sürätlär cıyılması",
        "newimages-legend": "Filtr",
        "ilsubmit": "Ezläw",
        "blankpage": "Buş bit",
        "intentionallyblankpage": "Bu bit maxsus buş qaldırılğan",
        "tag-filter-submit": "Filtrlaw",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Teg|Teglar}}]]: $2)",
        "tags-edit": "üzgärtü",
        "compare-submit": "Çağıştır",
        "dberr-problems": "Ğafu itegez! Saytta texnik qıyınlıqlar çıqtı.",
        "htmlform-reset": "Üzgärtülärne kire qaytaru",
        "htmlform-selectorother-other": "Başqa",
        "revdelete-restricted": "çikläwlär idaräçelärgä dä qullanıla",
+       "logentry-newusers-create": "$1 qullanuçı xisap yazması {{GENDER:$2|tözelde}}",
        "rightsnone": "(yuq)",
-       "revdelete-summary": "üzgärtülär taswirlaması"
+       "revdelete-summary": "üzgärtülär taswirlaması",
+       "searchsuggest-search": "Ezläw"
 }
index 322d07c..ca63c2a 100644 (file)
        "missingarticle-rev": "(версія № $1)",
        "missingarticle-diff": "(Різниця: $1, $2)",
        "readonly_lag": "База даних автоматично заблокована від змін, доки вторинний сервер бази даних не синхронізується з первинним.",
+       "nonwrite-api-promise-error": "Був надісланий HTTP-заголовок 'Promise-Non-Write-API-Action', але запит був до API-модуля запису.",
        "internalerror": "Внутрішня помилка",
        "internalerror_info": "Внутрішня помилка: $1",
        "internalerror-fatal-exception": "Критичний виняток типу «$1»",
        "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-hide": "Приховати",
+       "wlshowtime": "Показати останні:",
+       "wlshowhideminor": "незначні редагування",
+       "wlshowhidebots": "ботів",
+       "wlshowhideliu": "зареєстрованих користувачів",
+       "wlshowhideanons": "анонімний користувачів",
+       "wlshowhidepatr": "перевірені редагування",
+       "wlshowhidemine": "мої редагування",
        "watchlist-options": "Налаштування списку спостереження",
        "watching": "Додавання до списку спостереження…",
        "unwatching": "Вилучення зі списку спостереження…",
index 0330ef5..312fae9 100644 (file)
        "watchlist-details": "آپ کی زیرِنظرفہرست پر {{PLURAL:$1|$1 صفحہ ہے|$1 صفحات ہیں}}، اِس میں تبادلۂ خیال صفحات کی تعداد شامل نہیں.",
        "wlnote": "نیچےآخری $1 تبدیلیاں ہیں جو کے پیچھلے <b>$2</b> گھنٹوں میں کی گئیں۔",
        "wlshowlast": "دکھائیں آخری $1 گھنٹے $2 دن",
+       "watchlistall2": "تمام",
        "watchlist-options": "اختیارات برائے زیرِنظرفہرست",
        "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_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_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",
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 25e2a0b..e838938 100644 (file)
        "errorpagetitle": "Sayop",
        "returnto": "Balik ngadto ha $1.",
        "tagline": "Tikang ha {{SITENAME}}",
-       "help": "Bulig",
+       "help": "Pabulig",
        "search": "Bilnga",
        "searchbutton": "Bilnga",
        "go": "Kadto-a",
        "imagepage": "Kitaa in pakli hin paypay",
        "mediawikipage": "Kitaa in pakli hin mensahe",
        "templatepage": "Kitaa in pakli hin plantilya",
-       "viewhelppage": "Kitaa in pakli hin bulig",
+       "viewhelppage": "Kitaa in pakli hin pabulig",
        "categorypage": "Kitaa in pakli hin kaarangay",
        "viewtalkpage": "Kitaa in hiruhimangraw",
        "otherlanguages": "Ha iba nga mga yinaknan",
        "currentevents-url": "Project:Mga panhitabo",
        "disclaimers": "Mga Disclaimer",
        "disclaimerpage": "Project:Kasahiran nga disclaimer",
-       "edithelp": "Bulig hin pagliwat",
-       "helppage-top-gethelp": "Bulig",
+       "edithelp": "Pagliwat hin pabulig",
+       "helppage-top-gethelp": "Pabulig",
        "mainpage": "Syahan nga Pakli",
        "mainpage-description": "Syahan nga Pakli",
        "policy-url": "Project:Polisiya",
        "nstab-image": "Paypay",
        "nstab-mediawiki": "Mensahe",
        "nstab-template": "Batakan",
-       "nstab-help": "Pakli hin bulig",
+       "nstab-help": "Pakli hin pabulig",
        "nstab-category": "Kaarangay",
        "mainpage-nstab": "Panguna nga pakli",
        "nosuchaction": "Waray sugad nga buhat",
        "gotaccountlink": "Sakob",
        "userlogin-resetlink": "Nangalimot han imo detalye han pagsakob?",
        "userlogin-resetpassword-link": "¿Nangalimot ka han imo tigaman-pansulod?",
-       "userlogin-helplink2": "Búlig hin pagsakob",
+       "userlogin-helplink2": "Pabúlig hin pagsakob",
        "userlogin-loggedin": "Nakalog-in kana komo hi {{GENDER:$1|$1}}.\nGamiti an porma ha ubos para makalog-in komo iba nga gumaramit.",
        "userlogin-createanother": "Paghimo hin iba nga akawnt",
        "createacct-emailrequired": "Email address",
        "notvisiblerev": "An urhi nga pagliwat han iba nga gumaramit in ginpara",
        "watchlist-details": "{{PLURAL:$1|$1 nga pakli|$1 nga mga pakli}} nga aada ha imo talaan nga binabantayan, diri bulag nga paglakip han mga hiruhimangraw-nga-pakli.",
        "wlshowlast": "Igpakita an katapusan nga $1 nga mga oras $2 nga mga adlaw",
+       "watchlistall2": "ngatanan",
        "watchlist-options": "Mga pirilian han talaan han binabantayan",
        "watching": "Ginbabantay...",
        "unwatching": "Diri na ginbabantay...",
        "tooltip-ca-nstab-image": "Kitaa an pakli han fayl",
        "tooltip-ca-nstab-mediawiki": "Kitaa an mensahe han sistema",
        "tooltip-ca-nstab-template": "Kitaa an plantilya",
-       "tooltip-ca-nstab-help": "Kitaa an pakli hin bulig",
+       "tooltip-ca-nstab-help": "Kitaa an pakli han pabulig",
        "tooltip-ca-nstab-category": "Kitaa an pakli hin kaarangay",
        "tooltip-minoredit": "Tigamni ini nga gamay nga pagliwat",
        "tooltip-save": "Ig-seyb an imo mga pagbabag-o",
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..536e3c2 100644 (file)
        "wlheader-showupdated": "您上次访问后发生更改的页面<strong>加粗</strong>显示。",
        "wlnote": "下面是{{PLURAL:$2|过去<strong>$2</strong>小时}}的{{PLURAL:$1|最后<strong>$1</strong>个更改}},截至$3 $4。",
        "wlshowlast": "显示过去$1小时$2天",
+       "watchlistall2": "所有",
+       "watchlist-hide": "隐藏",
+       "wlshowtime": "显示最近:",
+       "wlshowhideminor": "小编辑",
+       "wlshowhidebots": "机器人",
+       "wlshowhideliu": "注册用户",
+       "wlshowhideanons": "匿名用户",
+       "wlshowhidepatr": "已巡查的编辑",
+       "wlshowhidemine": "我的编辑",
        "watchlist-options": "监视列表选项",
        "watching": "正在监视...",
        "unwatching": "正在取消监视...",
index bf54690..1543458 100644 (file)
                        "Macofe",
                        "578985s",
                        "Matma Rex",
-                       "范"
+                       "范",
+                       "Jasonzhuocn",
+                       "Bowleerin"
                ]
        },
        "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": "全部",
+       "watchlist-hide": "隱藏",
+       "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 2e252ad..5aaf01f 100644 (file)
@@ -61,7 +61,7 @@ do {
                exit;
        }
 
-       $args = explode( ' ', $line );
+       $args = explode( ' ', $line, 2 );
        $command = array_shift( $args );
 
        // process command
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();
diff --git a/maintenance/fixDefaultJsonContentPages.php b/maintenance/fixDefaultJsonContentPages.php
new file mode 100644 (file)
index 0000000..1265891
--- /dev/null
@@ -0,0 +1,128 @@
+<?php
+/**
+ * Fix instances of pre-existing JSON pages
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ */
+
+require_once __DIR__ . '/Maintenance.php';
+
+/**
+ * Usage:
+ *  fixDefaultJsonContentPages.php
+ *
+ * It is automatically run by update.php
+ */
+class FixDefaultJsonContentPages extends LoggedUpdateMaintenance {
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription =
+                               'Fix instances of JSON pages prior to them being the ContentHandler default';
+               $this->setBatchSize( 100 );
+       }
+
+       protected function getUpdateKey() {
+               return __CLASS__;
+       }
+
+       protected function doDBUpdates() {
+               if ( !$this->getConfig()->get( 'ContentHandlerUseDB' ) ) {
+                       $this->output( "\$wgContentHandlerUseDB is not enabled, nothing to do.\n" );
+                       return true;
+               }
+
+               $dbr = wfGetDB( DB_SLAVE );
+               $namespaces = array(
+                       NS_MEDIAWIKI => $dbr->buildLike( $dbr->anyString(), '.json' ),
+                       NS_USER => $dbr->buildLike( $dbr->anyString(), '/', $dbr->anyString(), '.json' ),
+               );
+               foreach ( $namespaces as $ns => $like ) {
+                       $lastPage = 0;
+                       do {
+                               $rows = $dbr->select(
+                                               'page',
+                                               array( 'page_id', 'page_title', 'page_namespace', 'page_content_model' ),
+                                               array(
+                                                               'page_namespace' => $ns,
+                                                               'page_title ' . $like,
+                                                               'page_id > ' . $dbr->addQuotes( $lastPage )
+                                               ),
+                                               __METHOD__,
+                                               array( 'ORDER BY' => 'page_id', 'LIMIT' => $this->mBatchSize )
+                               );
+                               foreach ( $rows as $row ) {
+                                       $this->handleRow( $row );
+                               }
+                       } while ( $rows->numRows() >= $this->mBatchSize );
+               }
+
+               return true;
+       }
+
+       protected function handleRow( stdClass $row ) {
+               $title = Title::makeTitle( $row->page_namespace, $row->page_title );
+               $this->output( "Processing {$title} ({$row->page_id})...\n" );
+               $rev = Revision::newFromTitle( $title );
+               $content = $rev->getContent( Revision::RAW );
+               $dbw = wfGetDB( DB_MASTER );
+               if ( $content instanceof JsonContent ) {
+                       if ( $content->isValid() ) {
+                               // Yay, actually JSON. We need to just change the
+                               // page_content_model because revision will automatically
+                               // use the default, which is *now* JSON.
+                               $this->output( "Setting page_content_model to json..." );
+                               $dbw->update(
+                                       'page',
+                                       array( 'page_content_model' => CONTENT_MODEL_JSON ),
+                                       array( 'page_id' => $row->page_id ),
+                                       __METHOD__
+                               );
+                               $this->output( "done.\n" );
+                               wfWaitForSlaves();
+                       } else {
+                               // Not JSON...force it to wikitext. We need to update the
+                               // revision table so that these revisions are always processed
+                               // as wikitext in the future. page_content_model is already
+                               // set to "wikitext".
+                               $this->output( "Setting rev_content_model to wikitext..." );
+                               // Grab all the ids for batching
+                               $ids = $dbw->selectFieldValues(
+                                       'revision',
+                                       'rev_id',
+                                       array( 'rev_page' => $row->page_id ),
+                                       __METHOD__
+                               );
+                               foreach ( array_chunk( $ids, 50 ) as $chunk ) {
+                                       $dbw->update(
+                                               'revision',
+                                               array( 'rev_content_model' => CONTENT_MODEL_WIKITEXT ),
+                                               array( 'rev_page' => $row->page_id, 'rev_id' => $chunk )
+                                       );
+                                       wfWaitForSlaves();
+                               }
+                               $this->output( "done.\n" );
+                       }
+               } else {
+                       $this->output( "not a JSON page? Skipping\n" );
+               }
+       }
+}
+
+$maintClass = 'FixDefaultJsonContentPages';
+require_once RUN_MAINTENANCE_IF_MAIN;
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..66e373a 100644 (file)
@@ -1233,7 +1233,6 @@ return array(
                        'filename-bad-prefix',
                        'filename-thumb-name',
                        'badfilename',
-                       'api-error-duplicate-archive',
                        'api-error-blacklisted', // HACK
                ),
        ),
@@ -1246,6 +1245,7 @@ return array(
                        'mediawiki.widgets.CategorySelector',
                        'mediawiki.widgets.DateInputWidget',
                        'mediawiki.jqueryMsg',
+                       'moment',
                ),
                'messages' => array(
                        'foreign-structured-upload-form-label-own-work',
@@ -1320,7 +1320,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 +1369,6 @@ return array(
                        'editingsection',
                        'pagetitle',
                        'otherlanguages',
-                       'tooltip-p-lang',
                        'summary-preview',
                        'subject-preview',
                        'parentheses',
@@ -2042,6 +2042,9 @@ return array(
                        'mediawiki.ForeignApi',
                        'mediawiki.Title',
                ),
+               'messages' => array(
+                       'red-link-title',
+               ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.widgets.UserInputWidget' => array(
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..a00b973 100644 (file)
@@ -1,12 +1,20 @@
+/*
+ * Local backports:
+ *
+ * - 4fbbc737c86b500c11bbb471ec1001c50ab8853c
+ *   SelectFileWidget: Use i18n string for button label
+ *   We totally forgot to use a localisation message we carefully introduced.
+ */
+
 /*!
- * 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 +358,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 +2414,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 +2432,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 +2450,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 +2468,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 +2672,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 +2696,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 +2716,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 +2730,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 +2745,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 +2948,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 +3468,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 +3530,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 +4286,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 +6040,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 +6053,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 +6075,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 +6267,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 +6278,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 +6298,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 +6338,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 +6690,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 +7424,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 +7543,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 +7565,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 +7633,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 +7681,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 +7768,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 +11493,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 +11533,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 +11854,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' ],
@@ -14150,7 +14242,7 @@ OO.ui.SelectFileWidget = function OoUiSelectFileWidget( config ) {
 
        this.selectButton = new OO.ui.ButtonWidget( {
                classes: [ 'oo-ui-selectFileWidget-selectButton' ],
-               label: 'Select a file',
+               label: OO.ui.msg( 'ooui-selectfile-button-select' ),
                disabled: this.disabled || !this.isSupported
        } );
 
@@ -16125,7 +16217,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 +16227,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 +16240,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 24b0e72..6db7c12 100644 (file)
                        title = new ForeignTitle( this.title.getPrefixedText() ), // HACK
                        prefix = this.apiUrl.replace( '/w/api.php', '' ); // HACK
 
+               this.missing = missing;
+
                if ( !missing ) {
                        this.$link
                                .attr( 'href', prefix + title.getUrl() )
+                               .attr( 'title', title.getPrefixedText() )
                                .removeClass( 'new' );
                } else {
                        this.$link
                                .attr( 'href', prefix + title.getUrl( { action: 'edit', redlink: 1 } ) )
+                               .attr( 'title', mw.msg( 'red-link-title', title.getPrefixedText() ) )
                                .addClass( 'new' );
                }
        };
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..620dd5e 100644 (file)
         * @return {jQuery} return.return
         */
        function getFailableParserFn( options ) {
-               var parser = new mw.jqueryMsg.parser( options );
-
                return function ( args ) {
                        var fallback,
+                               parser = new mw.jqueryMsg.parser( options ),
                                key = args[ 0 ],
                                argsArray = $.isArray( args[ 1 ] ) ? args[ 1 ] : slice.call( args, 1 );
                        try {
        mw.jqueryMsg.parser = function ( options ) {
                this.settings = $.extend( {}, parserDefaults, options );
                this.settings.onlyCurlyBraceTransform = ( this.settings.format === 'text' || this.settings.format === 'escaped' );
+               this.astCache = {};
 
                this.emitter = new mw.jqueryMsg.htmlEmitter( this.settings.language, this.settings.magic );
        };
                 * @return {jQuery}
                 */
                parse: function ( key, replacements ) {
-                       return this.emitter.emit( this.getAst( key ), replacements );
+                       var ast = this.getAst( key );
+                       return this.emitter.emit( ast, replacements );
                },
 
                /**
                 * @return {string|Array} string of '[key]' if message missing, simple string if possible, array of arrays if needs parsing
                 */
                getAst: function ( key ) {
-                       var wikiText = this.settings.messages.get( key );
-                       if ( typeof wikiText !== 'string' ) {
-                               wikiText = '\\[' + key + '\\]';
+                       var wikiText;
+
+                       if ( !this.astCache.hasOwnProperty( key ) ) {
+                               wikiText = this.settings.messages.get( key );
+                               if ( typeof wikiText !== 'string' ) {
+                                       wikiText = '\\[' + key + '\\]';
+                               }
+                               this.astCache[ key ] = this.wikiTextToAst( wikiText );
                        }
-                       return this.wikiTextToAst( wikiText );
+                       return this.astCache[ key ];
                },
 
                /**
        // Replace the default message parser with jqueryMsg
        oldParser = mw.Message.prototype.parser;
        mw.Message.prototype.parser = function () {
-               var messageFunction;
-
-               // TODO: should we cache the message function so we don't create a new one every time? Benchmark this maybe?
-               // Caching is somewhat problematic, because we do need different message functions for different maps, so
-               // we'd have to cache the parser as a member of this.map, which sounds a bit ugly.
-               // Do not use mw.jqueryMsg unless required
                if ( this.format === 'plain' || !/\{\{|[\[<>&]/.test( this.map.get( this.key ) ) ) {
                        // Fall back to mw.msg's simple parser
                        return oldParser.apply( this );
                }
 
-               messageFunction = mw.jqueryMsg.getMessageFunction( {
-                       messages: this.map,
-                       // For format 'escaped', escaping part is handled by mediawiki.js
-                       format: this.format
-               } );
-               return messageFunction( this.key, this.parameters );
+               if ( !this.map.hasOwnProperty( this.format ) ) {
+                       this.map[ this.format ] = mw.jqueryMsg.getMessageFunction( {
+                               messages: this.map,
+                               // For format 'escaped', escaping part is handled by mediawiki.js
+                               format: this.format
+                       } );
+               }
+               return this.map[ this.format ]( 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 db07ec9..b58ce49 100644 (file)
                                /**
                                 * Register a source.
                                 *
-                                * The #work method will use this information to split up requests by source.
+                                * The #work() method will use this information to split up requests by source.
                                 *
                                 *     mw.loader.addSource( 'mediawikiwiki', '//www.mediawiki.org/w/load.php' );
                                 *
-                                * @param {string} id Short string representing a source wiki, used internally for
-                                *  registered modules to indicate where they should be loaded from (usually lowercase a-z).
-                                * @param {Object|string} loadUrl load.php url, may be an object for backwards-compatibility
-                                * @return {boolean}
+                                * @param {string|Object} id Source ID, or object mapping ids to load urls
+                                * @param {string} loadUrl Url to a load.php end point
+                                * @throws {Error} If source id is already registered
                                 */
                                addSource: function ( id, loadUrl ) {
                                        var source;
                                                for ( source in id ) {
                                                        mw.loader.addSource( source, id[ source ] );
                                                }
-                                               return true;
+                                               return;
                                        }
 
                                        if ( hasOwn.call( sources, id ) ) {
                                                throw new Error( 'source already registered: ' + id );
                                        }
 
-                                       if ( typeof loadUrl === 'object' ) {
-                                               loadUrl = loadUrl.loadScript;
-                                       }
-
                                        sources[ id ] = loadUrl;
-
-                                       return true;
                                },
 
                                /**
index 325b20e..1863929 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 ) )
@@ -60,6 +60,7 @@ abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
 /* Stubs */
 
 class ResourceLoaderTestModule extends ResourceLoaderModule {
+       protected $messages = array();
        protected $dependencies = array();
        protected $group = null;
        protected $source = 'local';
@@ -67,7 +68,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 ) {
@@ -83,6 +84,10 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
                return array( '' => $this->styles );
        }
 
+       public function getMessages() {
+               return $this->messages;
+       }
+
        public function getDependencies( ResourceLoaderContext $context = null ) {
                return $this->dependencies;
        }
index e69fa20..2a2b603 100644 (file)
@@ -136,8 +136,9 @@ class BlockTest extends MediaWikiLangTestCase {
        public function testBlockedUserCanNotCreateAccount() {
                $username = 'BlockedUserToCreateAccountWith';
                $u = User::newFromName( $username );
-               $u->setId( 14146 );
                $u->addToDatabase();
+               $userId = $u->getId();
+               $this->assertNotEquals( 0, $userId, 'sanity' );
                TestUser::setPasswordForUser( $u, 'NotRandomPass' );
                unset( $u );
 
@@ -157,7 +158,7 @@ class BlockTest extends MediaWikiLangTestCase {
                // Foreign perspective (blockee not on current wiki)...
                $blockOptions = array(
                        'address' => $username,
-                       'user' => 14146,
+                       'user' => $userId,
                        'reason' => 'crosswiki block...',
                        'timestamp' => wfTimestampNow(),
                        'expiry' => $this->db->getInfinity(),
@@ -205,13 +206,13 @@ class BlockTest extends MediaWikiLangTestCase {
                // Local perspective (blockee on current wiki)...
                $user = User::newFromName( 'UserOnForeignWiki' );
                $user->addToDatabase();
-               // Set user ID to match the test value
-               $this->db->update( 'user', array( 'user_id' => 14146 ), array( 'user_id' => $user->getId() ) );
+               $userId = $user->getId();
+               $this->assertNotEquals( 0, $userId, 'sanity' );
 
                // Foreign perspective (blockee not on current wiki)...
                $blockOptions = array(
                        'address' => 'UserOnForeignWiki',
-                       'user' => 14146,
+                       'user' => $user->getId(),
                        'reason' => 'crosswiki block...',
                        'timestamp' => wfTimestampNow(),
                        'expiry' => $this->db->getInfinity(),
@@ -234,7 +235,7 @@ class BlockTest extends MediaWikiLangTestCase {
                        $block->getTarget()->getName(),
                        'Correct blockee name'
                );
-               $this->assertEquals( '14146', $block->getTarget()->getId(), 'Correct blockee id' );
+               $this->assertEquals( $userId, $block->getTarget()->getId(), 'Correct blockee id' );
                $this->assertEquals( 'MetaWikiUser', $block->getBlocker(), 'Correct blocker name' );
                $this->assertEquals( 'MetaWikiUser', $block->getByName(), 'Correct blocker name' );
                $this->assertEquals( 0, $block->getBy(), 'Correct blocker id' );
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 622fce2..f338633 100644 (file)
@@ -108,6 +108,16 @@ class ObjectFactoryTest extends PHPUnit_Framework_TestCase {
                        '11 args' => array( array( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ) ),
                );
        }
+
+       /**
+        * @expectedException InvalidArgumentException
+        */
+       public function testNamedArgs() {
+               $args = array( 'foo' => 1, 'bar' => 2, 'baz' => 3 );
+               $obj = ObjectFactory::constructClassInstance(
+                       'ObjectFactoryTestFixture', $args
+               );
+       }
 }
 
 class ObjectFactoryTestFixture {
index a1fdd91..e2c6ac7 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()
         */
@@ -300,8 +391,22 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertLessThan( 0, $curTTL, "Deleted key has current TTL < 0" );
 
                $this->cache->set( $key, $value . 'more' );
+               $v = $this->cache->get( $key, $curTTL );
                $this->assertFalse( $v, "Deleted key is tombstoned and has false value" );
                $this->assertLessThan( 0, $curTTL, "Deleted key is tombstoned and has current TTL < 0" );
+
+               $this->cache->set( $key, $value );
+               $this->cache->delete( $key, WANObjectCache::HOLDOFF_NONE );
+
+               $curTTL = null;
+               $v = $this->cache->get( $key, $curTTL );
+               $this->assertFalse( $v, "Deleted key has false value" );
+               $this->assertNull( $curTTL, "Deleted key has null current TTL" );
+
+               $this->cache->set( $key, $value );
+               $v = $this->cache->get( $key, $curTTL );
+               $this->assertEquals( $value, $v, "Key was created with value" );
+               $this->assertGreaterThan( 0, $curTTL, "Existing key has current TTL > 0" );
        }
 
        /**
@@ -343,6 +448,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( -4.9, $curTTL, "Correct CTL" );
+               $this->assertGreaterThan( -5.1, $curTTL, "Correct CTL" );
+       }
+
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testSetWithLag() {
                $value = 1;
 
@@ -362,6 +501,9 @@ class WANObjectCacheTest extends MediaWikiTestCase {
                $this->assertEquals( false, $this->cache->get( $key ), "Lagged value not written." );
        }
 
+       /**
+        * @covers WANObjectCache::set()
+        */
        public function testWritePending() {
                $value = 1;
 
diff --git a/tests/phpunit/includes/logging/ImportLogFormatterTest.php b/tests/phpunit/includes/logging/ImportLogFormatterTest.php
new file mode 100644 (file)
index 0000000..5e67c6b
--- /dev/null
@@ -0,0 +1,123 @@
+<?php
+
+class ImportLogFormatterTest extends LogFormatterTestCase {
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideUploadLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'import',
+                                       'action' => 'upload',
+                                       'comment' => 'upload comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'ImportPage',
+                                       'params' => array(
+                                               '4:number:count' => '1',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User imported ImportPage by file upload (1 revision)',
+                                       'api' => array(
+                                               'count' => 1,
+                                       ),
+                               ),
+                       ),
+
+                       // old format - without details
+                       array(
+                               array(
+                                       'type' => 'import',
+                                       'action' => 'upload',
+                                       'comment' => '1 revision: import comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'ImportPage',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User imported ImportPage by file upload',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideUploadLogDatabaseRows
+        */
+       public function testUploadLogDatabaseRows( $row, $extra ) {
+               $this->doTestLogFormatter( $row, $extra );
+       }
+
+       /**
+        * Provide different rows from the logging table to test
+        * for backward compatibility.
+        * Do not change the existing data, just add a new database row
+        */
+       public static function provideInterwikiLogDatabaseRows() {
+               return array(
+                       // Current format
+                       array(
+                               array(
+                                       'type' => 'import',
+                                       'action' => 'interwiki',
+                                       'comment' => 'interwiki comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'ImportPage',
+                                       'params' => array(
+                                               '4:number:count' => '1',
+                                               '5:title-link:interwiki' => 'importiw:PageImport',
+                                       ),
+                               ),
+                               array(
+                                       'text' => 'User imported ImportPage from importiw:PageImport (1 revision)',
+                                       'api' => array(
+                                               'count' => 1,
+                                               'interwiki_ns' => 0,
+                                               'interwiki_title' => 'importiw:PageImport',
+                                       ),
+                               ),
+                       ),
+
+                       // old format - without details
+                       array(
+                               array(
+                                       'type' => 'import',
+                                       'action' => 'interwiki',
+                                       'comment' => '1 revision from importiw:PageImport: interwiki comment',
+                                       'namespace' => NS_MAIN,
+                                       'title' => 'ImportPage',
+                                       'params' => array(),
+                               ),
+                               array(
+                                       'text' => 'User imported ImportPage from another wiki',
+                                       'api' => array(),
+                               ),
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideInterwikiLogDatabaseRows
+        */
+       public function testInterwikiLogDatabaseRows( $row, $extra ) {
+               // Setup importiw: as interwiki prefix
+               $this->setMwGlobals( 'wgHooks', array(
+                       'InterwikiLoadPrefix' => array(
+                               function ( $prefix, &$data ) {
+                                       if ( $prefix == 'importiw' ) {
+                                               $data = array( 'iw_url' => 'wikipedia' );
+                                       }
+                                       return false;
+                               }
+                       )
+               ) );
+
+               $this->doTestLogFormatter( $row, $extra );
+       }
+}
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|||||' );
        }
 
 }
diff --git a/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php b/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php
new file mode 100644 (file)
index 0000000..3de315a
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+
+/**
+ * @group Database
+ * @group Cache
+ * @covers MessageBlobStore
+ */
+class MessageBlobStoreTest extends ResourceLoaderTestCase {
+       protected $tablesUsed = array( 'msg_resource' );
+
+       protected function makeBlobStore( $methods = null, $rl = null ) {
+               $blobStore = $this->getMockBuilder( 'MessageBlobStore' )
+                       ->setConstructorArgs( array( $rl ) )
+                       ->setMethods( $methods )
+                       ->getMock();
+
+               return $blobStore;
+       }
+
+       protected function makeModule( array $messages ) {
+               $module = new ResourceLoaderTestModule( array( 'messages' => $messages ) );
+               $module->setName( 'test.blobstore' );
+               return $module;
+       }
+
+       public function testGetBlob() {
+               $module = $this->makeModule( array( 'foo' ) );
+               $rl = new ResourceLoader();
+               $rl->register( $module->getName(), $module );
+
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->once() )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->returnValue( 'Example' ) );
+
+               $blob = $blobStore->getBlob( $module, 'en' );
+
+               $this->assertEquals( '{"foo":"Example"}', $blob, 'Generated blob' );
+       }
+
+       public function testGetBlobCached() {
+               $module = $this->makeModule( array( 'example' ) );
+               $rl = new ResourceLoader();
+               $rl->register( $module->getName(), $module );
+
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->once() )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->returnValue( 'First' ) );
+
+               $module = $this->makeModule( array( 'example' ) );
+               $blob = $blobStore->getBlob( $module, 'en' );
+               $this->assertEquals( '{"example":"First"}', $blob, 'Generated blob' );
+
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->never() )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->returnValue( 'Second' ) );
+
+               $module = $this->makeModule( array( 'example' ) );
+               $blob = $blobStore->getBlob( $module, 'en' );
+               $this->assertEquals( '{"example":"First"}', $blob, 'Cache hit' );
+       }
+
+       public function testUpdateMessage() {
+               $module = $this->makeModule( array( 'example' ) );
+               $rl = new ResourceLoader();
+               $rl->register( $module->getName(), $module );
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->exactly( 2 ) )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->onConsecutiveCalls( 'First', 'Second' ) );
+
+               $blob = $blobStore->getBlob( $module, 'en' );
+               $this->assertEquals( '{"example":"First"}', $blob, 'Generated blob' );
+
+               $blobStore->updateMessage( 'example' );
+
+               $module = $this->makeModule( array( 'example' ) );
+               $rl = new ResourceLoader();
+               $rl->register( $module->getName(), $module );
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->never() )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->returnValue( 'Wrong' ) );
+
+               $blob = $blobStore->getBlob( $module, 'en' );
+               $this->assertEquals( '{"example":"Second"}', $blob, 'Updated blob' );
+       }
+
+       public function testValidation() {
+               $module = $this->makeModule( array( 'foo' ) );
+               $rl = new ResourceLoader();
+               $rl->register( $module->getName(), $module );
+
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->once() )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->returnValueMap( array(
+                               array( 'foo', 'en', 'Hello' ),
+                       ) ) );
+
+               $blob = $blobStore->getBlob( $module, 'en' );
+               $this->assertEquals( '{"foo":"Hello"}', $blob, 'Generated blob' );
+
+               // Now, imagine a change to the module is deployed. The module now contains
+               // message 'foo' and 'bar'. While updateMessage() was not called (since no
+               // message values were changed) it should detect the change in list of
+               // message keys.
+               $module = $this->makeModule( array( 'foo', 'bar' ) );
+               $rl = new ResourceLoader();
+               $rl->register( $module->getName(), $module );
+
+               $blobStore = $this->makeBlobStore( array( 'fetchMessage' ), $rl );
+               $blobStore->expects( $this->exactly( 2 ) )
+                       ->method( 'fetchMessage' )
+                       ->will( $this->returnValueMap( array(
+                               array( 'foo', 'en', 'Hello' ),
+                               array( 'bar', 'en', 'World' ),
+                       ) ) );
+
+               $blob = $blobStore->getBlob( $module, 'en' );
+               $this->assertEquals( '{"foo":"Hello","bar":"World"}', $blob, 'Updated blob' );
+       }
+}
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 9473137..53a714f 100644 (file)
                        message[ format ]();
                        assert.strictEqual( outerCalled, shouldCall, 'Outer function called for ' + key );
                        assert.strictEqual( innerCalled, shouldCall, 'Inner function called for ' + key );
+                       delete mw.messages[ format ];
                }
 
                verifyGetMessageFunction( 'curly-brace', 'parse', true );