Merge "ThumbnailRenderJob: normalize parameters before generating thumb URL"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 10 Aug 2018 11:16:19 +0000 (11:16 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 10 Aug 2018 11:16:19 +0000 (11:16 +0000)
90 files changed:
RELEASE-NOTES-1.32
autoload.php
docs/export-demo.xml
includes/ActorMigration.php
includes/MediaWikiServices.php
includes/OutputPage.php
includes/Revision.php
includes/ServiceWiring.php
includes/Storage/DerivedPageDataUpdater.php
includes/TemplateParser.php
includes/api/i18n/ru.json
includes/collation/Collation.php
includes/collation/NorthernSamiUppercaseCollation.php [deleted file]
includes/filerepo/FileRepo.php
includes/installer/i18n/br.json
includes/installer/i18n/sr-ec.json
includes/jobqueue/JobQueueDB.php
includes/libs/MapCacheLRU.php
includes/libs/objectcache/WANObjectCache.php
includes/libs/rdbms/loadbalancer/ILoadBalancer.php
includes/libs/rdbms/loadbalancer/LoadBalancer.php
includes/logging/LogFormatter.php
includes/media/SVGMetadataExtractor.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/search/SearchResultSet.php
includes/session/SessionBackend.php
includes/skins/Skin.php
includes/specialpage/ChangesListSpecialPage.php
includes/specials/SpecialImport.php
includes/specials/SpecialJavaScriptTest.php
includes/widget/search/SearchFormWidget.php
languages/data/Names.php
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/cs.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/en.json
languages/i18n/fr.json
languages/i18n/gl.json
languages/i18n/ha.json
languages/i18n/he.json
languages/i18n/ia.json
languages/i18n/ja.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/kum.json
languages/i18n/lb.json
languages/i18n/mk.json
languages/i18n/mnw.json [new file with mode: 0644]
languages/i18n/my.json
languages/i18n/nb.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sat.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/ta.json
languages/i18n/tg-cyrl.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesMnw.php [new file with mode: 0644]
maintenance/jsduck/eg-iframe.html
resources/Resources.php
resources/lib/jquery.client/jquery.client.js
resources/lib/jquery/jquery.migrate.js
resources/src/jquery.tablesorter/jquery.tablesorter.js
resources/src/jquery/jquery.makeCollapsible.styles.less
resources/src/mediawiki.base/mediawiki.base.js
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
resources/src/mediawiki.special.search.interwikiwidget.styles.less
resources/src/startup/mediawiki.js
resources/src/startup/startup.js
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/MediaWikiServicesTest.php
tests/phpunit/includes/RevisionDbTestBase.php
tests/phpunit/includes/ServiceWiringTest.php [new file with mode: 0644]
tests/phpunit/includes/db/LoadBalancerTest.php
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/media/SVGMetadataExtractorTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js

index 495c0b1..92d7b9e 100644 (file)
@@ -151,6 +151,7 @@ because of Phabricator reports.
 * (T137491) Added language support for Standard Moroccan Amazigh (zgh).
 * (T198132) Added language support for Manipuri (mni).
 * (T201276) Added language support for Western Armenian (hyw).
+* (T201583) Added language support for Mon (mnw).
 
 === Breaking changes in 1.32 ===
 * $wgRequestTime, deprecated in 1.25, was removed. Use
index 38f6ba9..e02a743 100644 (file)
@@ -1012,7 +1012,6 @@ $wgAutoloadLocalClasses = [
        'NewUsersLogFormatter' => __DIR__ . '/includes/logging/NewUsersLogFormatter.php',
        'NoWriteWatchedItemStore' => __DIR__ . '/includes/watcheditem/NoWriteWatchedItemStore.php',
        'NolinesImageGallery' => __DIR__ . '/includes/gallery/NolinesImageGallery.php',
-       'NorthernSamiUppercaseCollation' => __DIR__ . '/includes/collation/NorthernSamiUppercaseCollation.php',
        'NotRecursiveIterator' => __DIR__ . '/includes/libs/iterators/NotRecursiveIterator.php',
        'NukeNS' => __DIR__ . '/maintenance/nukeNS.php',
        'NukePage' => __DIR__ . '/maintenance/nukePage.php',
index 93b237f..2e2e459 100644 (file)
@@ -27,7 +27,7 @@
       <namespace key="2" case="first-letter">User</namespace>
       <namespace key="3" case="first-letter">User talk</namespace>
       <namespace key="4" case="first-letter">DemoWiki</namespace>
-      <namespace key="5" case="first-letter">DemoWIki talk</namespace>
+      <namespace key="5" case="first-letter">DemoWiki talk</namespace>
       <namespace key="6" case="first-letter">File</namespace>
       <namespace key="7" case="first-letter">File talk</namespace>
       <namespace key="8" case="first-letter">MediaWiki</namespace>
index 161c7a9..51dfa60 100644 (file)
@@ -220,7 +220,7 @@ class ActorMigration {
         * @param UserIdentity $user User to set in the update
         * @return array with two values:
         *  - array to merge into `$values` to `IDatabase->update()` or `$a` to `IDatabase->insert()`
-        *  - callback to call with the the primary key for the main table insert
+        *  - callback to call with the primary key for the main table insert
         *    and extra fields needed for the temp table.
         */
        public function getInsertValuesWithTempTable( IDatabase $dbw, $key, UserIdentity $user ) {
index fd9b472..080a7f9 100644 (file)
@@ -403,128 +403,117 @@ class MediaWikiServices extends ServiceContainer {
        // CONVENIENCE GETTERS ////////////////////////////////////////////////////
 
        /**
-        * Returns the Config object containing the bootstrap configuration.
-        * Bootstrap configuration would typically include database credentials
-        * and other information that may be needed before the ConfigFactory
-        * service can be instantiated.
-        *
-        * @note This should only be used during bootstrapping, in particular
-        * when creating the MainConfig service. Application logic should
-        * use getMainConfig() to get a Config instances.
-        *
-        * @since 1.27
-        * @return Config
+        * @since 1.31
+        * @return ActorMigration
         */
-       public function getBootstrapConfig() {
-               return $this->getService( 'BootstrapConfig' );
+       public function getActorMigration() {
+               return $this->getService( 'ActorMigration' );
        }
 
        /**
-        * @since 1.27
-        * @return ConfigFactory
+        * @since 1.31
+        * @return BlobStore
         */
-       public function getConfigFactory() {
-               return $this->getService( 'ConfigFactory' );
+       public function getBlobStore() {
+               return $this->getService( '_SqlBlobStore' );
        }
 
        /**
-        * Returns the Config object that provides configuration for MediaWiki core.
-        * This may or may not be the same object that is returned by getBootstrapConfig().
-        *
-        * @since 1.27
-        * @return Config
+        * @since 1.31
+        * @return BlobStoreFactory
         */
-       public function getMainConfig() {
-               return $this->getService( 'MainConfig' );
+       public function getBlobStoreFactory() {
+               return $this->getService( 'BlobStoreFactory' );
        }
 
        /**
+        * Returns the Config object containing the bootstrap configuration.
+        * Bootstrap configuration would typically include database credentials
+        * and other information that may be needed before the ConfigFactory
+        * service can be instantiated.
+        *
+        * @note This should only be used during bootstrapping, in particular
+        * when creating the MainConfig service. Application logic should
+        * use getMainConfig() to get a Config instances.
+        *
         * @since 1.27
-        * @return SiteLookup
+        * @return Config
         */
-       public function getSiteLookup() {
-               return $this->getService( 'SiteLookup' );
+       public function getBootstrapConfig() {
+               return $this->getService( 'BootstrapConfig' );
        }
 
        /**
-        * @since 1.27
-        * @return SiteStore
+        * @since 1.32
+        * @return NameTableStore
         */
-       public function getSiteStore() {
-               return $this->getService( 'SiteStore' );
+       public function getChangeTagDefStore() {
+               return $this->getService( 'ChangeTagDefStore' );
        }
 
        /**
-        * @since 1.28
-        * @return InterwikiLookup
+        * @since 1.31
+        * @return CommentStore
         */
-       public function getInterwikiLookup() {
-               return $this->getService( 'InterwikiLookup' );
+       public function getCommentStore() {
+               return $this->getService( 'CommentStore' );
        }
 
        /**
         * @since 1.27
-        * @return IBufferingStatsdDataFactory
+        * @return ConfigFactory
         */
-       public function getStatsdDataFactory() {
-               return $this->getService( 'StatsdDataFactory' );
+       public function getConfigFactory() {
+               return $this->getService( 'ConfigFactory' );
        }
 
        /**
         * @since 1.32
-        * @return IBufferingStatsdDataFactory
-        */
-       public function getPerDbNameStatsdDataFactory() {
-               return $this->getService( 'PerDbNameStatsdDataFactory' );
-       }
-
-       /**
-        * @since 1.27
-        * @return EventRelayerGroup
+        * @return ConfigRepository
         */
-       public function getEventRelayerGroup() {
-               return $this->getService( 'EventRelayerGroup' );
+       public function getConfigRepository() {
+               return $this->getService( 'ConfigRepository' );
        }
 
        /**
-        * @since 1.27
-        * @return SearchEngine
+        * @since 1.29
+        * @return \ConfiguredReadOnlyMode
         */
-       public function newSearchEngine() {
-               // New engine object every time, since they keep state
-               return $this->getService( 'SearchEngineFactory' )->create();
+       public function getConfiguredReadOnlyMode() {
+               return $this->getService( 'ConfiguredReadOnlyMode' );
        }
 
        /**
-        * @since 1.27
-        * @return SearchEngineFactory
+        * @since 1.32
+        * @return \Language
         */
-       public function getSearchEngineFactory() {
-               return $this->getService( 'SearchEngineFactory' );
+       public function getContentLanguage() {
+               return $this->getService( 'ContentLanguage' );
        }
 
        /**
-        * @since 1.27
-        * @return SearchEngineConfig
+        * @since 1.31
+        * @return NameTableStore
         */
-       public function getSearchEngineConfig() {
-               return $this->getService( 'SearchEngineConfig' );
+       public function getContentModelStore() {
+               return $this->getService( 'ContentModelStore' );
        }
 
        /**
-        * @since 1.27
-        * @return SkinFactory
+        * @since 1.28
+        * @return CryptHKDF
         */
-       public function getSkinFactory() {
-               return $this->getService( 'SkinFactory' );
+       public function getCryptHKDF() {
+               return $this->getService( 'CryptHKDF' );
        }
 
        /**
         * @since 1.28
-        * @return LBFactory
+        * @deprecated since 1.32, use random_bytes()/random_int()
+        * @return CryptRand
         */
-       public function getDBLoadBalancerFactory() {
-               return $this->getService( 'DBLoadBalancerFactory' );
+       public function getCryptRand() {
+               return $this->getService( 'CryptRand' );
        }
 
        /**
@@ -537,91 +526,69 @@ class MediaWikiServices extends ServiceContainer {
 
        /**
         * @since 1.28
-        * @return WatchedItemStoreInterface
-        */
-       public function getWatchedItemStore() {
-               return $this->getService( 'WatchedItemStore' );
-       }
-
-       /**
-        * @since 1.28
-        * @return WatchedItemQueryService
+        * @return LBFactory
         */
-       public function getWatchedItemQueryService() {
-               return $this->getService( 'WatchedItemQueryService' );
+       public function getDBLoadBalancerFactory() {
+               return $this->getService( 'DBLoadBalancerFactory' );
        }
 
        /**
-        * @since 1.28
-        * @deprecated since 1.32, use random_bytes()/random_int()
-        * @return CryptRand
+        * @since 1.27
+        * @return EventRelayerGroup
         */
-       public function getCryptRand() {
-               return $this->getService( 'CryptRand' );
+       public function getEventRelayerGroup() {
+               return $this->getService( 'EventRelayerGroup' );
        }
 
        /**
-        * @since 1.28
-        * @return CryptHKDF
+        * @since 1.31
+        * @return \ExternalStoreFactory
         */
-       public function getCryptHKDF() {
-               return $this->getService( 'CryptHKDF' );
+       public function getExternalStoreFactory() {
+               return $this->getService( 'ExternalStoreFactory' );
        }
 
        /**
         * @since 1.28
-        * @return MediaHandlerFactory
+        * @return GenderCache
         */
-       public function getMediaHandlerFactory() {
-               return $this->getService( 'MediaHandlerFactory' );
+       public function getGenderCache() {
+               return $this->getService( 'GenderCache' );
        }
 
        /**
-        * @since 1.28
-        * @return MimeAnalyzer
+        * @since 1.31
+        * @return HttpRequestFactory
         */
-       public function getMimeAnalyzer() {
-               return $this->getService( 'MimeAnalyzer' );
+       public function getHttpRequestFactory() {
+               return $this->getService( 'HttpRequestFactory' );
        }
 
        /**
         * @since 1.28
-        * @return ProxyLookup
-        */
-       public function getProxyLookup() {
-               return $this->getService( 'ProxyLookup' );
-       }
-
-       /**
-        * @since 1.29
-        * @return Parser
-        */
-       public function getParser() {
-               return $this->getService( 'Parser' );
-       }
-
-       /**
-        * @since 1.30
-        * @return ParserCache
+        * @return InterwikiLookup
         */
-       public function getParserCache() {
-               return $this->getService( 'ParserCache' );
+       public function getInterwikiLookup() {
+               return $this->getService( 'InterwikiLookup' );
        }
 
        /**
         * @since 1.28
-        * @return GenderCache
+        * @return LinkCache
         */
-       public function getGenderCache() {
-               return $this->getService( 'GenderCache' );
+       public function getLinkCache() {
+               return $this->getService( 'LinkCache' );
        }
 
        /**
+        * LinkRenderer instance that can be used
+        * if no custom options are needed
+        *
         * @since 1.28
-        * @return LinkCache
+        * @return LinkRenderer
         */
-       public function getLinkCache() {
-               return $this->getService( 'LinkCache' );
+       public function getLinkRenderer() {
+               return $this->getService( 'LinkRenderer' );
        }
 
        /**
@@ -633,30 +600,30 @@ class MediaWikiServices extends ServiceContainer {
        }
 
        /**
-        * LinkRenderer instance that can be used
-        * if no custom options are needed
-        *
         * @since 1.28
-        * @return LinkRenderer
+        * @return \BagOStuff
         */
-       public function getLinkRenderer() {
-               return $this->getService( 'LinkRenderer' );
+       public function getLocalServerObjectCache() {
+               return $this->getService( 'LocalServerObjectCache' );
        }
 
        /**
-        * @since 1.28
-        * @return TitleFormatter
+        * @since 1.32
+        * @return MagicWordFactory
         */
-       public function getTitleFormatter() {
-               return $this->getService( 'TitleFormatter' );
+       public function getMagicWordFactory() {
+               return $this->getService( 'MagicWordFactory' );
        }
 
        /**
-        * @since 1.28
-        * @return TitleParser
+        * Returns the Config object that provides configuration for MediaWiki core.
+        * This may or may not be the same object that is returned by getBootstrapConfig().
+        *
+        * @since 1.27
+        * @return Config
         */
-       public function getTitleParser() {
-               return $this->getService( 'TitleParser' );
+       public function getMainConfig() {
+               return $this->getService( 'MainConfig' );
        }
 
        /**
@@ -677,90 +644,98 @@ class MediaWikiServices extends ServiceContainer {
 
        /**
         * @since 1.28
-        * @return \BagOStuff
+        * @return MediaHandlerFactory
         */
-       public function getLocalServerObjectCache() {
-               return $this->getService( 'LocalServerObjectCache' );
+       public function getMediaHandlerFactory() {
+               return $this->getService( 'MediaHandlerFactory' );
        }
 
        /**
         * @since 1.28
-        * @return VirtualRESTServiceClient
+        * @return MimeAnalyzer
         */
-       public function getVirtualRESTServiceClient() {
-               return $this->getService( 'VirtualRESTServiceClient' );
+       public function getMimeAnalyzer() {
+               return $this->getService( 'MimeAnalyzer' );
        }
 
        /**
-        * @since 1.29
-        * @return \ConfiguredReadOnlyMode
+        * @since 1.32
+        * @return OldRevisionImporter
         */
-       public function getConfiguredReadOnlyMode() {
-               return $this->getService( 'ConfiguredReadOnlyMode' );
+       public function getOldRevisionImporter() {
+               return $this->getService( 'OldRevisionImporter' );
        }
 
        /**
         * @since 1.29
-        * @return \ReadOnlyMode
+        * @return Parser
         */
-       public function getReadOnlyMode() {
-               return $this->getService( 'ReadOnlyMode' );
+       public function getParser() {
+               return $this->getService( 'Parser' );
        }
 
        /**
-        * @since 1.31
-        * @return \UploadRevisionImporter
+        * @since 1.30
+        * @return ParserCache
         */
-       public function getWikiRevisionUploadImporter() {
-               return $this->getService( 'UploadRevisionImporter' );
+       public function getParserCache() {
+               return $this->getService( 'ParserCache' );
        }
 
        /**
-        * @since 1.31
-        * @return \OldRevisionImporter
+        * @since 1.32
+        * @return PasswordFactory
         */
-       public function getWikiRevisionOldRevisionImporter() {
-               return $this->getService( 'OldRevisionImporter' );
+       public function getPasswordFactory() {
+               return $this->getService( 'PasswordFactory' );
+       }
+
+       /**
+        * @since 1.32
+        * @return IBufferingStatsdDataFactory
+        */
+       public function getPerDbNameStatsdDataFactory() {
+               return $this->getService( 'PerDbNameStatsdDataFactory' );
        }
 
        /**
         * @since 1.31
-        * @return \OldRevisionImporter
+        * @return PreferencesFactory
         */
-       public function getWikiRevisionOldRevisionImporterNoUpdates() {
-               return $this->getService( 'WikiRevisionOldRevisionImporterNoUpdates' );
+       public function getPreferencesFactory() {
+               return $this->getService( 'PreferencesFactory' );
        }
 
        /**
-        * @since 1.30
-        * @return CommandFactory
+        * @since 1.28
+        * @return ProxyLookup
         */
-       public function getShellCommandFactory() {
-               return $this->getService( 'ShellCommandFactory' );
+       public function getProxyLookup() {
+               return $this->getService( 'ProxyLookup' );
        }
 
        /**
-        * @since 1.31
-        * @return \ExternalStoreFactory
+        * @since 1.29
+        * @return \ReadOnlyMode
         */
-       public function getExternalStoreFactory() {
-               return $this->getService( 'ExternalStoreFactory' );
+       public function getReadOnlyMode() {
+               return $this->getService( 'ReadOnlyMode' );
        }
 
        /**
         * @since 1.31
-        * @return BlobStoreFactory
+        * @return RevisionFactory
         */
-       public function getBlobStoreFactory() {
-               return $this->getService( 'BlobStoreFactory' );
+       public function getRevisionFactory() {
+               return $this->getService( 'RevisionFactory' );
        }
 
        /**
         * @since 1.31
-        * @return BlobStore
+        * @return RevisionLookup
         */
-       public function getBlobStore() {
-               return $this->getService( '_SqlBlobStore' );
+       public function getRevisionLookup() {
+               return $this->getService( 'RevisionLookup' );
        }
 
        /**
@@ -780,75 +755,92 @@ class MediaWikiServices extends ServiceContainer {
        }
 
        /**
-        * @since 1.31
-        * @return RevisionLookup
+        * @since 1.27
+        * @return SearchEngine
         */
-       public function getRevisionLookup() {
-               return $this->getService( 'RevisionLookup' );
+       public function newSearchEngine() {
+               // New engine object every time, since they keep state
+               return $this->getService( 'SearchEngineFactory' )->create();
        }
 
        /**
-        * @since 1.31
-        * @return RevisionFactory
+        * @since 1.27
+        * @return SearchEngineConfig
         */
-       public function getRevisionFactory() {
-               return $this->getService( 'RevisionFactory' );
+       public function getSearchEngineConfig() {
+               return $this->getService( 'SearchEngineConfig' );
        }
 
        /**
-        * @since 1.31
-        * @return NameTableStore
+        * @since 1.27
+        * @return SearchEngineFactory
         */
-       public function getContentModelStore() {
-               return $this->getService( 'ContentModelStore' );
+       public function getSearchEngineFactory() {
+               return $this->getService( 'SearchEngineFactory' );
        }
 
        /**
-        * @since 1.31
-        * @return NameTableStore
+        * @since 1.30
+        * @return CommandFactory
         */
-       public function getSlotRoleStore() {
-               return $this->getService( 'SlotRoleStore' );
+       public function getShellCommandFactory() {
+               return $this->getService( 'ShellCommandFactory' );
        }
 
        /**
-        * @since 1.32
-        * @return NameTableStore
+        * @since 1.27
+        * @return SiteLookup
         */
-       public function getChangeTagDefStore() {
-               return $this->getService( 'ChangeTagDefStore' );
+       public function getSiteLookup() {
+               return $this->getService( 'SiteLookup' );
        }
 
        /**
-        * @since 1.31
-        * @return PreferencesFactory
+        * @since 1.27
+        * @return SiteStore
         */
-       public function getPreferencesFactory() {
-               return $this->getService( 'PreferencesFactory' );
+       public function getSiteStore() {
+               return $this->getService( 'SiteStore' );
        }
 
        /**
-        * @since 1.31
-        * @return HttpRequestFactory
+        * @since 1.27
+        * @return SkinFactory
         */
-       public function getHttpRequestFactory() {
-               return $this->getService( 'HttpRequestFactory' );
+       public function getSkinFactory() {
+               return $this->getService( 'SkinFactory' );
        }
 
        /**
         * @since 1.31
-        * @return CommentStore
+        * @return NameTableStore
         */
-       public function getCommentStore() {
-               return $this->getService( 'CommentStore' );
+       public function getSlotRoleStore() {
+               return $this->getService( 'SlotRoleStore' );
        }
 
        /**
-        * @since 1.31
-        * @return ActorMigration
+        * @since 1.27
+        * @return IBufferingStatsdDataFactory
         */
-       public function getActorMigration() {
-               return $this->getService( 'ActorMigration' );
+       public function getStatsdDataFactory() {
+               return $this->getService( 'StatsdDataFactory' );
+       }
+
+       /**
+        * @since 1.28
+        * @return TitleFormatter
+        */
+       public function getTitleFormatter() {
+               return $this->getService( 'TitleFormatter' );
+       }
+
+       /**
+        * @since 1.28
+        * @return TitleParser
+        */
+       public function getTitleParser() {
+               return $this->getService( 'TitleParser' );
        }
 
        /**
@@ -860,43 +852,51 @@ class MediaWikiServices extends ServiceContainer {
        }
 
        /**
-        * @since 1.32
-        * @return OldRevisionImporter
+        * @since 1.28
+        * @return VirtualRESTServiceClient
         */
-       public function getOldRevisionImporter() {
-               return $this->getService( 'OldRevisionImporter' );
+       public function getVirtualRESTServiceClient() {
+               return $this->getService( 'VirtualRESTServiceClient' );
        }
 
        /**
-        * @since 1.32
-        * @return ConfigRepository
+        * @since 1.28
+        * @return WatchedItemQueryService
         */
-       public function getConfigRepository() {
-               return $this->getService( 'ConfigRepository' );
+       public function getWatchedItemQueryService() {
+               return $this->getService( 'WatchedItemQueryService' );
        }
 
        /**
-        * @since 1.32
-        * @return MagicWordFactory
+        * @since 1.28
+        * @return WatchedItemStoreInterface
         */
-       public function getMagicWordFactory() {
-               return $this->getService( 'MagicWordFactory' );
+       public function getWatchedItemStore() {
+               return $this->getService( 'WatchedItemStore' );
        }
 
        /**
-        * @since 1.32
-        * @return \Language
+        * @since 1.31
+        * @return \OldRevisionImporter
         */
-       public function getContentLanguage() {
-               return $this->getService( 'ContentLanguage' );
+       public function getWikiRevisionOldRevisionImporter() {
+               return $this->getService( 'OldRevisionImporter' );
        }
 
        /**
-        * @since 1.32
-        * @return PasswordFactory
+        * @since 1.31
+        * @return \OldRevisionImporter
         */
-       public function getPasswordFactory() {
-               return $this->getService( 'PasswordFactory' );
+       public function getWikiRevisionOldRevisionImporterNoUpdates() {
+               return $this->getService( 'WikiRevisionOldRevisionImporterNoUpdates' );
+       }
+
+       /**
+        * @since 1.31
+        * @return \UploadRevisionImporter
+        */
+       public function getWikiRevisionUploadImporter() {
+               return $this->getService( 'UploadRevisionImporter' );
        }
 
        ///////////////////////////////////////////////////////////////////////////
index 3b91331..be5da53 100644 (file)
@@ -255,6 +255,11 @@ class OutputPage extends ContextSource {
 
        private $mIndexPolicy = 'index';
        private $mFollowPolicy = 'follow';
+
+       /**
+        * @var array Headers that cause the cache to vary.  Key is header name, value is an array of
+        * options for the Key header.
+        */
        private $mVaryHeader = [
                'Accept-Encoding' => [ 'match=gzip' ],
        ];
@@ -1787,7 +1792,7 @@ class OutputPage extends ContextSource {
                foreach ( $parserOutput->getOutputHooks() as $hookInfo ) {
                        list( $hookName, $data ) = $hookInfo;
                        if ( isset( $parserOutputHooks[$hookName] ) ) {
-                               call_user_func( $parserOutputHooks[$hookName], $this, $parserOutput, $data );
+                               $parserOutputHooks[$hookName]( $this, $parserOutput, $data );
                        }
                }
 
@@ -1940,7 +1945,10 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * Lower the value of the "s-maxage" part of the "Cache-control" HTTP header
+        * Set the value of the "s-maxage" part of the "Cache-control" HTTP header to $maxage if that is
+        * lower than the current s-maxage.  Either way, $maxage is now an upper limit on s-maxage, so
+        * that future calls to setCdnMaxage() will no longer be able to raise the s-maxage above
+        * $maxage.
         *
         * @param int $maxage Maximum cache time on the CDN, in seconds
         * @since 1.27
@@ -1958,9 +1966,10 @@ class OutputPage extends ContextSource {
         * TTL is 90% of the age of the object, subject to the min and max.
         *
         * @param string|int|float|bool|null $mtime Last-Modified timestamp
-        * @param int $minTTL Mimimum TTL in seconds [default: 1 minute]
+        * @param int $minTTL Minimum TTL in seconds [default: 1 minute]
         * @param int $maxTTL Maximum TTL in seconds [default: $wgSquidMaxage]
-        * @return int TTL in seconds
+        * @return int TTL in seconds passed to lowerCdnMaxage() (may not be the same as the new
+        *  s-maxage)
         * @since 1.28
         */
        public function adaptCdnTTL( $mtime, $minTTL = 0, $maxTTL = 0 ) {
@@ -1983,16 +1992,16 @@ class OutputPage extends ContextSource {
        /**
         * Use enableClientCache(false) to force it to send nocache headers
         *
-        * @param bool $state
+        * @param bool|null $state New value, or null to not set the value
         *
-        * @return bool
+        * @return bool Old value
         */
        public function enableClientCache( $state ) {
                return wfSetVar( $this->mEnableClientCache, $state );
        }
 
        /**
-        * Get the list of cookies that will influence on the cache
+        * Get the list of cookie names that will influence the cache
         *
         * @return array
         */
@@ -2045,7 +2054,8 @@ class OutputPage extends ContextSource {
                if ( !is_array( $option ) ) {
                        $option = [];
                }
-               $this->mVaryHeader[$header] = array_unique( array_merge( $this->mVaryHeader[$header], $option ) );
+               $this->mVaryHeader[$header] =
+                       array_unique( array_merge( $this->mVaryHeader[$header], $option ) );
        }
 
        /**
@@ -2120,14 +2130,13 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * T23672: Add Accept-Language to Vary and Key headers
-        * if there's no 'variant' parameter existed in GET.
+        * T23672: Add Accept-Language to Vary and Key headers if there's no 'variant' parameter in GET.
         *
         * For example:
-        *   /w/index.php?title=Main_page should always be served; but
-        *   /w/index.php?title=Main_page&variant=zh-cn should never be served.
+        *   /w/index.php?title=Main_page will vary based on Accept-Language; but
+        *   /w/index.php?title=Main_page&variant=zh-cn will not.
         */
-       function addAcceptLanguage() {
+       private function addAcceptLanguage() {
                $title = $this->getTitle();
                if ( !$title instanceof Title ) {
                        return;
@@ -2140,16 +2149,15 @@ class OutputPage extends ContextSource {
                        foreach ( $variants as $variant ) {
                                if ( $variant === $lang->getCode() ) {
                                        continue;
-                               } else {
-                                       $aloption[] = 'substr=' . $variant;
-
-                                       // IE and some other browsers use BCP 47 standards in
-                                       // their Accept-Language header, like "zh-CN" or "zh-Hant".
-                                       // We should handle these too.
-                                       $variantBCP47 = LanguageCode::bcp47( $variant );
-                                       if ( $variantBCP47 !== $variant ) {
-                                               $aloption[] = 'substr=' . $variantBCP47;
-                                       }
+                               }
+
+                               $aloption[] = "substr=$variant";
+
+                               // IE and some other browsers use BCP 47 standards in their Accept-Language header,
+                               // like "zh-CN" or "zh-Hant".  We should handle these too.
+                               $variantBCP47 = LanguageCode::bcp47( $variant );
+                               if ( $variantBCP47 !== $variant ) {
+                                       $aloption[] = "substr=$variantBCP47";
                                }
                        }
                        $this->addVaryHeader( 'Accept-Language', $aloption );
@@ -2751,7 +2759,7 @@ class OutputPage extends ContextSource {
                                $this->rlClientContext = new DerivativeResourceLoaderContext( $this->rlClientContext );
                                $this->rlClientContext->setContentOverrideCallback( function ( Title $title ) {
                                        foreach ( $this->contentOverrideCallbacks as $callback ) {
-                                               $content = call_user_func( $callback, $title );
+                                               $content = $callback( $title );
                                                if ( $content !== null ) {
                                                        return $content;
                                                }
index 7ff73dd..6d684a8 100644 (file)
@@ -1013,7 +1013,7 @@ class Revision implements IDBAccessObject {
         * @param stdClass $row The text data
         * @param string $prefix Table prefix (default 'old_')
         * @param string|bool $wiki The name of the wiki to load the revision text from
-        *   (same as the the wiki $row was loaded from) or false to indicate the local
+        *   (same as the wiki $row was loaded from) or false to indicate the local
         *   wiki (this is the default). Otherwise, it must be a symbolic wiki database
         *   identifier as understood by the LoadBalancer class.
         * @return string|false Text the text requested or false on failure
index 671544e..e2bc139 100644 (file)
 use MediaWiki\Auth\AuthManager;
 use MediaWiki\Config\ConfigRepository;
 use MediaWiki\Interwiki\ClassicInterwikiLookup;
+use MediaWiki\Interwiki\InterwikiLookup;
+use MediaWiki\Linker\LinkRenderer;
 use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\Logger\LoggerFactory;
 use MediaWiki\MediaWikiServices;
+use MediaWiki\Preferences\PreferencesFactory;
 use MediaWiki\Preferences\DefaultPreferencesFactory;
 use MediaWiki\Shell\CommandFactory;
+use MediaWiki\Storage\BlobStore;
 use MediaWiki\Storage\BlobStoreFactory;
 use MediaWiki\Storage\NameTableStore;
+use MediaWiki\Storage\RevisionFactory;
+use MediaWiki\Storage\RevisionLookup;
+use MediaWiki\Storage\RevisionStore;
 use MediaWiki\Storage\RevisionStoreFactory;
+use MediaWiki\Storage\SqlBlobStore;
 use Wikimedia\ObjectFactory;
 
 return [
-       'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) {
-               $mainConfig = $services->getMainConfig();
-
-               $lbConf = MWLBFactory::applyDefaultConfig(
-                       $mainConfig->get( 'LBFactoryConf' ),
-                       $mainConfig,
-                       $services->getConfiguredReadOnlyMode()
+       'ActorMigration' => function ( MediaWikiServices $services ) : ActorMigration {
+               return new ActorMigration(
+                       $services->getMainConfig()->get( 'ActorTableSchemaMigrationStage' )
                );
-               $class = MWLBFactory::getLBFactoryClass( $lbConf );
-
-               $instance = new $class( $lbConf );
-               MWLBFactory::setSchemaAliases( $instance, $mainConfig );
-
-               return $instance;
        },
 
-       'DBLoadBalancer' => function ( MediaWikiServices $services ) {
-               // just return the default LB from the DBLoadBalancerFactory service
-               return $services->getDBLoadBalancerFactory()->getMainLB();
+       'BlobStore' => function ( MediaWikiServices $services ) : BlobStore {
+               return $services->getService( '_SqlBlobStore' );
        },
 
-       'SiteStore' => function ( MediaWikiServices $services ) {
-               $rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
-
-               // TODO: replace wfGetCache with a CacheFactory service.
-               // TODO: replace wfIsHHVM with a capabilities service.
-               $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
-
-               return new CachingSiteStore( $rawSiteStore, $cache );
+       'BlobStoreFactory' => function ( MediaWikiServices $services ) : BlobStoreFactory {
+               return new BlobStoreFactory(
+                       $services->getDBLoadBalancer(),
+                       $services->getMainWANObjectCache(),
+                       $services->getMainConfig(),
+                       $services->getContentLanguage()
+               );
        },
 
-       'SiteLookup' => function ( MediaWikiServices $services ) {
-               $cacheFile = $services->getMainConfig()->get( 'SitesCacheFile' );
+       'ChangeTagDefStore' => function ( MediaWikiServices $services ) : NameTableStore {
+               return new NameTableStore(
+                       $services->getDBLoadBalancer(),
+                       $services->getMainWANObjectCache(),
+                       LoggerFactory::getInstance( 'NameTableSqlStore' ),
+                       'change_tag_def',
+                       'ctd_id',
+                       'ctd_name',
+                       null,
+                       false,
+                       function ( $insertFields ) {
+                               $insertFields['ctd_user_defined'] = 0;
+                               $insertFields['ctd_count'] = 0;
+                               return $insertFields;
+                       }
+               );
+       },
 
-               if ( $cacheFile !== false ) {
-                       return new FileBasedSiteLookup( $cacheFile );
-               } else {
-                       // Use the default SiteStore as the SiteLookup implementation for now
-                       return $services->getSiteStore();
-               }
+       'CommentStore' => function ( MediaWikiServices $services ) : CommentStore {
+               return new CommentStore(
+                       $services->getContentLanguage(),
+                       $services->getMainConfig()->get( 'CommentTableSchemaMigrationStage' )
+               );
        },
 
-       'ConfigFactory' => function ( MediaWikiServices $services ) {
+       'ConfigFactory' => function ( MediaWikiServices $services ) : ConfigFactory {
                // Use the bootstrap config to initialize the ConfigFactory.
                $registry = $services->getBootstrapConfig()->get( 'ConfigRegistry' );
                $factory = new ConfigFactory();
@@ -104,133 +114,192 @@ return [
                return $factory;
        },
 
-       'ConfigRepository' => function ( MediaWikiServices $services ) {
+       'ConfigRepository' => function ( MediaWikiServices $services ) : ConfigRepository {
                return new ConfigRepository( $services->getConfigFactory() );
        },
 
-       'MainConfig' => function ( MediaWikiServices $services ) {
-               // Use the 'main' config from the ConfigFactory service.
-               return $services->getConfigFactory()->makeConfig( 'main' );
+       'ConfiguredReadOnlyMode' => function ( MediaWikiServices $services ) : ConfiguredReadOnlyMode {
+               return new ConfiguredReadOnlyMode( $services->getMainConfig() );
        },
 
-       'InterwikiLookup' => function ( MediaWikiServices $services ) {
-               $config = $services->getMainConfig();
-               return new ClassicInterwikiLookup(
-                       $services->getContentLanguage(),
+       'ContentLanguage' => function ( MediaWikiServices $services ) : Language {
+               return Language::factory( $services->getMainConfig()->get( 'LanguageCode' ) );
+       },
+
+       'ContentModelStore' => function ( MediaWikiServices $services ) : NameTableStore {
+               return new NameTableStore(
+                       $services->getDBLoadBalancer(),
                        $services->getMainWANObjectCache(),
-                       $config->get( 'InterwikiExpiry' ),
-                       $config->get( 'InterwikiCache' ),
-                       $config->get( 'InterwikiScopes' ),
-                       $config->get( 'InterwikiFallbackSite' )
+                       LoggerFactory::getInstance( 'NameTableSqlStore' ),
+                       'content_models',
+                       'model_id',
+                       'model_name'
+                       /**
+                        * No strtolower normalization is added to the service as there are examples of
+                        * extensions that do not stick to this assumption.
+                        * - extensions/examples/DataPages define( 'CONTENT_MODEL_XML_DATA','XML_DATA' );
+                        * - extensions/Scribunto define( 'CONTENT_MODEL_SCRIBUNTO', 'Scribunto' );
+                        */
                );
        },
 
-       'StatsdDataFactory' => function ( MediaWikiServices $services ) {
-               return new BufferingStatsdDataFactory(
-                       rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' )
+       'CryptHKDF' => function ( MediaWikiServices $services ) : CryptHKDF {
+               $config = $services->getMainConfig();
+
+               $secret = $config->get( 'HKDFSecret' ) ?: $config->get( 'SecretKey' );
+               if ( !$secret ) {
+                       throw new RuntimeException( "Cannot use MWCryptHKDF without a secret." );
+               }
+
+               // In HKDF, the context can be known to the attacker, but this will
+               // keep simultaneous runs from producing the same output.
+               $context = [ microtime(), getmypid(), gethostname() ];
+
+               // Setup salt cache. Use APC, or fallback to the main cache if it isn't setup
+               $cache = $services->getLocalServerObjectCache();
+               if ( $cache instanceof EmptyBagOStuff ) {
+                       $cache = ObjectCache::getLocalClusterInstance();
+               }
+
+               return new CryptHKDF( $secret, $config->get( 'HKDFAlgorithm' ), $cache, $context );
+       },
+
+       'CryptRand' => function () : CryptRand {
+               return new CryptRand();
+       },
+
+       'DBLoadBalancer' => function ( MediaWikiServices $services ) : Wikimedia\Rdbms\LoadBalancer {
+               // just return the default LB from the DBLoadBalancerFactory service
+               return $services->getDBLoadBalancerFactory()->getMainLB();
+       },
+
+       'DBLoadBalancerFactory' =>
+       function ( MediaWikiServices $services ) : Wikimedia\Rdbms\LBFactory {
+               $mainConfig = $services->getMainConfig();
+
+               $lbConf = MWLBFactory::applyDefaultConfig(
+                       $mainConfig->get( 'LBFactoryConf' ),
+                       $mainConfig,
+                       $services->getConfiguredReadOnlyMode()
                );
+               $class = MWLBFactory::getLBFactoryClass( $lbConf );
+
+               $instance = new $class( $lbConf );
+               MWLBFactory::setSchemaAliases( $instance, $mainConfig );
+
+               return $instance;
+       },
+
+       'EventRelayerGroup' => function ( MediaWikiServices $services ) : EventRelayerGroup {
+               return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
        },
 
-       'PerDbNameStatsdDataFactory' => function ( MediaWikiServices $services ) {
+       'ExternalStoreFactory' => function ( MediaWikiServices $services ) : ExternalStoreFactory {
                $config = $services->getMainConfig();
-               $wiki = $config->get( 'DBname' );
-               return new BufferingStatsdDataFactory(
-                       rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' ) . '.' . $wiki
+
+               return new ExternalStoreFactory(
+                       $config->get( 'ExternalStores' )
                );
        },
 
-       'EventRelayerGroup' => function ( MediaWikiServices $services ) {
-               return new EventRelayerGroup( $services->getMainConfig()->get( 'EventRelayerConfig' ) );
+       'GenderCache' => function ( MediaWikiServices $services ) : GenderCache {
+               return new GenderCache();
        },
 
-       'SearchEngineFactory' => function ( MediaWikiServices $services ) {
-               return new SearchEngineFactory( $services->getSearchEngineConfig() );
+       'HttpRequestFactory' =>
+       function ( MediaWikiServices $services ) : \MediaWiki\Http\HttpRequestFactory {
+               return new \MediaWiki\Http\HttpRequestFactory();
        },
 
-       'SearchEngineConfig' => function ( MediaWikiServices $services ) {
-               return new SearchEngineConfig( $services->getMainConfig(),
-                       $services->getContentLanguage() );
+       'InterwikiLookup' => function ( MediaWikiServices $services ) : InterwikiLookup {
+               $config = $services->getMainConfig();
+               return new ClassicInterwikiLookup(
+                       $services->getContentLanguage(),
+                       $services->getMainWANObjectCache(),
+                       $config->get( 'InterwikiExpiry' ),
+                       $config->get( 'InterwikiCache' ),
+                       $config->get( 'InterwikiScopes' ),
+                       $config->get( 'InterwikiFallbackSite' )
+               );
        },
 
-       'SkinFactory' => function ( MediaWikiServices $services ) {
-               $factory = new SkinFactory();
+       'LinkCache' => function ( MediaWikiServices $services ) : LinkCache {
+               return new LinkCache(
+                       $services->getTitleFormatter(),
+                       $services->getMainWANObjectCache()
+               );
+       },
 
-               $names = $services->getMainConfig()->get( 'ValidSkinNames' );
+       'LinkRenderer' => function ( MediaWikiServices $services ) : LinkRenderer {
+               global $wgUser;
 
-               foreach ( $names as $name => $skin ) {
-                       $factory->register( $name, $skin, function () use ( $name, $skin ) {
-                               $class = "Skin$skin";
-                               return new $class( $name );
-                       } );
+               if ( defined( 'MW_NO_SESSION' ) ) {
+                       return $services->getLinkRendererFactory()->create();
+               } else {
+                       return $services->getLinkRendererFactory()->createForUser( $wgUser );
                }
-               // Register a hidden "fallback" skin
-               $factory->register( 'fallback', 'Fallback', function () {
-                       return new SkinFallback;
-               } );
-               // Register a hidden skin for api output
-               $factory->register( 'apioutput', 'ApiOutput', function () {
-                       return new SkinApi;
-               } );
-
-               return $factory;
        },
 
-       'WatchedItemStore' => function ( MediaWikiServices $services ) {
-               $store = new WatchedItemStore(
-                       $services->getDBLoadBalancer(),
-                       new HashBagOStuff( [ 'maxKeys' => 100 ] ),
-                       $services->getReadOnlyMode(),
-                       $services->getMainConfig()->get( 'UpdateRowsPerQuery' )
+       'LinkRendererFactory' => function ( MediaWikiServices $services ) : LinkRendererFactory {
+               return new LinkRendererFactory(
+                       $services->getTitleFormatter(),
+                       $services->getLinkCache()
                );
-               $store->setStatsdDataFactory( $services->getStatsdDataFactory() );
-
-               if ( $services->getMainConfig()->get( 'ReadOnlyWatchedItemStore' ) ) {
-                       $store = new NoWriteWatchedItemStore( $store );
-               }
+       },
 
-               return $store;
+       'LocalServerObjectCache' => function ( MediaWikiServices $services ) : BagOStuff {
+               $cacheId = \ObjectCache::detectLocalServerCache();
+               return \ObjectCache::newFromId( $cacheId );
        },
 
-       'WatchedItemQueryService' => function ( MediaWikiServices $services ) {
-               return new WatchedItemQueryService(
-                       $services->getDBLoadBalancer(),
-                       $services->getCommentStore(),
-                       $services->getActorMigration()
-               );
+       'MagicWordFactory' => function ( MediaWikiServices $services ) : MagicWordFactory {
+               return new MagicWordFactory( $services->getContentLanguage() );
        },
 
-       'CryptRand' => function () {
-               return new CryptRand();
+       'MainConfig' => function ( MediaWikiServices $services ) : Config {
+               // Use the 'main' config from the ConfigFactory service.
+               return $services->getConfigFactory()->makeConfig( 'main' );
        },
 
-       'CryptHKDF' => function ( MediaWikiServices $services ) {
-               $config = $services->getMainConfig();
+       'MainObjectStash' => function ( MediaWikiServices $services ) : BagOStuff {
+               $mainConfig = $services->getMainConfig();
 
-               $secret = $config->get( 'HKDFSecret' ) ?: $config->get( 'SecretKey' );
-               if ( !$secret ) {
-                       throw new RuntimeException( "Cannot use MWCryptHKDF without a secret." );
+               $id = $mainConfig->get( 'MainStash' );
+               if ( !isset( $mainConfig->get( 'ObjectCaches' )[$id] ) ) {
+                       throw new UnexpectedValueException(
+                               "Cache type \"$id\" is not present in \$wgObjectCaches." );
                }
 
-               // In HKDF, the context can be known to the attacker, but this will
-               // keep simultaneous runs from producing the same output.
-               $context = [ microtime(), getmypid(), gethostname() ];
+               return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
+       },
 
-               // Setup salt cache. Use APC, or fallback to the main cache if it isn't setup
-               $cache = $services->getLocalServerObjectCache();
-               if ( $cache instanceof EmptyBagOStuff ) {
-                       $cache = ObjectCache::getLocalClusterInstance();
+       'MainWANObjectCache' => function ( MediaWikiServices $services ) : WANObjectCache {
+               $mainConfig = $services->getMainConfig();
+
+               $id = $mainConfig->get( 'MainWANCache' );
+               if ( !isset( $mainConfig->get( 'WANObjectCaches' )[$id] ) ) {
+                       throw new UnexpectedValueException(
+                               "WAN cache type \"$id\" is not present in \$wgWANObjectCaches." );
                }
 
-               return new CryptHKDF( $secret, $config->get( 'HKDFAlgorithm' ), $cache, $context );
+               $params = $mainConfig->get( 'WANObjectCaches' )[$id];
+               $objectCacheId = $params['cacheId'];
+               if ( !isset( $mainConfig->get( 'ObjectCaches' )[$objectCacheId] ) ) {
+                       throw new UnexpectedValueException(
+                               "Cache type \"$objectCacheId\" is not present in \$wgObjectCaches." );
+               }
+               $params['store'] = $mainConfig->get( 'ObjectCaches' )[$objectCacheId];
+
+               return \ObjectCache::newWANCacheFromParams( $params );
        },
 
-       'MediaHandlerFactory' => function ( MediaWikiServices $services ) {
+       'MediaHandlerFactory' => function ( MediaWikiServices $services ) : MediaHandlerFactory {
                return new MediaHandlerFactory(
                        $services->getMainConfig()->get( 'MediaHandlers' )
                );
        },
 
-       'MimeAnalyzer' => function ( MediaWikiServices $services ) {
+       'MimeAnalyzer' => function ( MediaWikiServices $services ) : MimeAnalyzer {
                $logger = LoggerFactory::getInstance( 'Mime' );
                $mainConfig = $services->getMainConfig();
                $params = [
@@ -289,21 +358,21 @@ return [
                return new MimeMagic( $params );
        },
 
-       'ProxyLookup' => function ( MediaWikiServices $services ) {
-               $mainConfig = $services->getMainConfig();
-               return new ProxyLookup(
-                       $mainConfig->get( 'SquidServers' ),
-                       $mainConfig->get( 'SquidServersNoPurge' )
+       'OldRevisionImporter' => function ( MediaWikiServices $services ) : OldRevisionImporter {
+               return new ImportableOldRevisionImporter(
+                       true,
+                       LoggerFactory::getInstance( 'OldRevisionImporter' ),
+                       $services->getDBLoadBalancer()
                );
        },
 
-       'Parser' => function ( MediaWikiServices $services ) {
+       'Parser' => function ( MediaWikiServices $services ) : Parser {
                $conf = $services->getMainConfig()->get( 'ParserConf' );
                return ObjectFactory::constructClassInstance( $conf['class'],
                        [ $conf, $services->getMagicWordFactory() ] );
        },
 
-       'ParserCache' => function ( MediaWikiServices $services ) {
+       'ParserCache' => function ( MediaWikiServices $services ) : ParserCache {
                $config = $services->getMainConfig();
                $cache = ObjectCache::getInstance( $config->get( 'ParserCacheType' ) );
                wfDebugLog( 'caches', 'parser: ' . get_class( $cache ) );
@@ -314,138 +383,87 @@ return [
                );
        },
 
-       'LinkCache' => function ( MediaWikiServices $services ) {
-               return new LinkCache(
-                       $services->getTitleFormatter(),
-                       $services->getMainWANObjectCache()
+       'PasswordFactory' => function ( MediaWikiServices $services ) : PasswordFactory {
+               $config = $services->getMainConfig();
+               return new PasswordFactory(
+                       $config->get( 'PasswordConfig' ),
+                       $config->get( 'PasswordDefault' )
                );
        },
 
-       'LinkRendererFactory' => function ( MediaWikiServices $services ) {
-               return new LinkRendererFactory(
-                       $services->getTitleFormatter(),
-                       $services->getLinkCache()
+       'PerDbNameStatsdDataFactory' =>
+       function ( MediaWikiServices $services ) : IBufferingStatsdDataFactory {
+               $config = $services->getMainConfig();
+               $wiki = $config->get( 'DBname' );
+               return new BufferingStatsdDataFactory(
+                       rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' ) . '.' . $wiki
                );
        },
 
-       'LinkRenderer' => function ( MediaWikiServices $services ) {
-               global $wgUser;
-
-               if ( defined( 'MW_NO_SESSION' ) ) {
-                       return $services->getLinkRendererFactory()->create();
-               } else {
-                       return $services->getLinkRendererFactory()->createForUser( $wgUser );
-               }
-       },
-
-       'GenderCache' => function ( MediaWikiServices $services ) {
-               return new GenderCache();
-       },
-
-       '_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) {
-               return new MediaWikiTitleCodec(
-                       $services->getContentLanguage(),
-                       $services->getGenderCache(),
-                       $services->getMainConfig()->get( 'LocalInterwikis' )
-               );
-       },
-
-       'TitleFormatter' => function ( MediaWikiServices $services ) {
-               return $services->getService( '_MediaWikiTitleCodec' );
-       },
+       'PreferencesFactory' => function ( MediaWikiServices $services ) : PreferencesFactory {
+               $authManager = AuthManager::singleton();
+               $linkRenderer = $services->getLinkRendererFactory()->create();
+               $config = $services->getMainConfig();
+               $factory = new DefaultPreferencesFactory( $config, $services->getContentLanguage(),
+                       $authManager, $linkRenderer );
+               $factory->setLogger( LoggerFactory::getInstance( 'preferences' ) );
 
-       'TitleParser' => function ( MediaWikiServices $services ) {
-               return $services->getService( '_MediaWikiTitleCodec' );
+               return $factory;
        },
 
-       'MainObjectStash' => function ( MediaWikiServices $services ) {
+       'ProxyLookup' => function ( MediaWikiServices $services ) : ProxyLookup {
                $mainConfig = $services->getMainConfig();
-
-               $id = $mainConfig->get( 'MainStash' );
-               if ( !isset( $mainConfig->get( 'ObjectCaches' )[$id] ) ) {
-                       throw new UnexpectedValueException(
-                               "Cache type \"$id\" is not present in \$wgObjectCaches." );
-               }
-
-               return \ObjectCache::newFromParams( $mainConfig->get( 'ObjectCaches' )[$id] );
+               return new ProxyLookup(
+                       $mainConfig->get( 'SquidServers' ),
+                       $mainConfig->get( 'SquidServersNoPurge' )
+               );
        },
 
-       'MainWANObjectCache' => function ( MediaWikiServices $services ) {
-               $mainConfig = $services->getMainConfig();
-
-               $id = $mainConfig->get( 'MainWANCache' );
-               if ( !isset( $mainConfig->get( 'WANObjectCaches' )[$id] ) ) {
-                       throw new UnexpectedValueException(
-                               "WAN cache type \"$id\" is not present in \$wgWANObjectCaches." );
-               }
-
-               $params = $mainConfig->get( 'WANObjectCaches' )[$id];
-               $objectCacheId = $params['cacheId'];
-               if ( !isset( $mainConfig->get( 'ObjectCaches' )[$objectCacheId] ) ) {
-                       throw new UnexpectedValueException(
-                               "Cache type \"$objectCacheId\" is not present in \$wgObjectCaches." );
-               }
-               $params['store'] = $mainConfig->get( 'ObjectCaches' )[$objectCacheId];
-
-               return \ObjectCache::newWANCacheFromParams( $params );
+       'ReadOnlyMode' => function ( MediaWikiServices $services ) : ReadOnlyMode {
+               return new ReadOnlyMode(
+                       $services->getConfiguredReadOnlyMode(),
+                       $services->getDBLoadBalancer()
+               );
        },
 
-       'LocalServerObjectCache' => function ( MediaWikiServices $services ) {
-               $cacheId = \ObjectCache::detectLocalServerCache();
-               return \ObjectCache::newFromId( $cacheId );
+       'RevisionFactory' => function ( MediaWikiServices $services ) : RevisionFactory {
+               return $services->getRevisionStore();
        },
 
-       'VirtualRESTServiceClient' => function ( MediaWikiServices $services ) {
-               $config = $services->getMainConfig()->get( 'VirtualRestConfig' );
-
-               $vrsClient = new VirtualRESTServiceClient( new MultiHttpClient( [] ) );
-               foreach ( $config['paths'] as $prefix => $serviceConfig ) {
-                       $class = $serviceConfig['class'];
-                       // Merge in the global defaults
-                       $constructArg = $serviceConfig['options'] ?? [];
-                       $constructArg += $config['global'];
-                       // Make the VRS service available at the mount point
-                       $vrsClient->mount( $prefix, [ 'class' => $class, 'config' => $constructArg ] );
-               }
-
-               return $vrsClient;
+       'RevisionLookup' => function ( MediaWikiServices $services ) : RevisionLookup {
+               return $services->getRevisionStore();
        },
 
-       'ConfiguredReadOnlyMode' => function ( MediaWikiServices $services ) {
-               return new ConfiguredReadOnlyMode( $services->getMainConfig() );
+       'RevisionStore' => function ( MediaWikiServices $services ) : RevisionStore {
+               return $services->getRevisionStoreFactory()->getRevisionStore();
        },
 
-       'ReadOnlyMode' => function ( MediaWikiServices $services ) {
-               return new ReadOnlyMode(
-                       $services->getConfiguredReadOnlyMode(),
-                       $services->getDBLoadBalancer()
+       'RevisionStoreFactory' => function ( MediaWikiServices $services ) : RevisionStoreFactory {
+               $config = $services->getMainConfig();
+               $store = new RevisionStoreFactory(
+                       $services->getDBLoadBalancerFactory(),
+                       $services->getBlobStoreFactory(),
+                       $services->getMainWANObjectCache(),
+                       $services->getCommentStore(),
+                       $services->getActorMigration(),
+                       $config->get( 'MultiContentRevisionSchemaMigrationStage' ),
+                       LoggerFactory::getProvider(),
+                       $config->get( 'ContentHandlerUseDB' )
                );
-       },
 
-       'UploadRevisionImporter' => function ( MediaWikiServices $services ) {
-               return new ImportableUploadRevisionImporter(
-                       $services->getMainConfig()->get( 'EnableUploads' ),
-                       LoggerFactory::getInstance( 'UploadRevisionImporter' )
-               );
+               return $store;
        },
 
-       'OldRevisionImporter' => function ( MediaWikiServices $services ) {
-               return new ImportableOldRevisionImporter(
-                       true,
-                       LoggerFactory::getInstance( 'OldRevisionImporter' ),
-                       $services->getDBLoadBalancer()
-               );
+       'SearchEngineConfig' => function ( MediaWikiServices $services ) : SearchEngineConfig {
+               return new SearchEngineConfig( $services->getMainConfig(),
+                       $services->getContentLanguage() );
        },
 
-       'WikiRevisionOldRevisionImporterNoUpdates' => function ( MediaWikiServices $services ) {
-               return new ImportableOldRevisionImporter(
-                       false,
-                       LoggerFactory::getInstance( 'OldRevisionImporter' ),
-                       $services->getDBLoadBalancer()
-               );
+       'SearchEngineFactory' => function ( MediaWikiServices $services ) : SearchEngineFactory {
+               return new SearchEngineFactory( $services->getSearchEngineConfig() );
        },
 
-       'ShellCommandFactory' => function ( MediaWikiServices $services ) {
+       'ShellCommandFactory' => function ( MediaWikiServices $services ) : CommandFactory {
                $config = $services->getMainConfig();
 
                $limits = [
@@ -464,77 +482,51 @@ return [
                return $factory;
        },
 
-       'ExternalStoreFactory' => function ( MediaWikiServices $services ) {
-               $config = $services->getMainConfig();
-
-               return new ExternalStoreFactory(
-                       $config->get( 'ExternalStores' )
-               );
-       },
+       'SiteLookup' => function ( MediaWikiServices $services ) : SiteLookup {
+               $cacheFile = $services->getMainConfig()->get( 'SitesCacheFile' );
 
-       'RevisionStore' => function ( MediaWikiServices $services ) {
-               return $services->getRevisionStoreFactory()->getRevisionStore();
+               if ( $cacheFile !== false ) {
+                       return new FileBasedSiteLookup( $cacheFile );
+               } else {
+                       // Use the default SiteStore as the SiteLookup implementation for now
+                       return $services->getSiteStore();
+               }
        },
 
-       'RevisionStoreFactory' => function ( MediaWikiServices $services ) {
-               $config = $services->getMainConfig();
-               $store = new RevisionStoreFactory(
-                       $services->getDBLoadBalancerFactory(),
-                       $services->getBlobStoreFactory(),
-                       $services->getMainWANObjectCache(),
-                       $services->getCommentStore(),
-                       $services->getActorMigration(),
-                       $config->get( 'MultiContentRevisionSchemaMigrationStage' ),
-                       LoggerFactory::getProvider(),
-                       $config->get( 'ContentHandlerUseDB' )
-               );
-
-               return $store;
-       },
+       'SiteStore' => function ( MediaWikiServices $services ) : SiteStore {
+               $rawSiteStore = new DBSiteStore( $services->getDBLoadBalancer() );
 
-       'RevisionLookup' => function ( MediaWikiServices $services ) {
-               return $services->getRevisionStore();
-       },
+               // TODO: replace wfGetCache with a CacheFactory service.
+               // TODO: replace wfIsHHVM with a capabilities service.
+               $cache = wfGetCache( wfIsHHVM() ? CACHE_ACCEL : CACHE_ANYTHING );
 
-       'RevisionFactory' => function ( MediaWikiServices $services ) {
-               return $services->getRevisionStore();
+               return new CachingSiteStore( $rawSiteStore, $cache );
        },
 
-       'BlobStoreFactory' => function ( MediaWikiServices $services ) {
-               return new BlobStoreFactory(
-                       $services->getDBLoadBalancer(),
-                       $services->getMainWANObjectCache(),
-                       $services->getMainConfig(),
-                       $services->getContentLanguage()
-               );
-       },
+       'SkinFactory' => function ( MediaWikiServices $services ) : SkinFactory {
+               $factory = new SkinFactory();
 
-       'BlobStore' => function ( MediaWikiServices $services ) {
-               return $services->getService( '_SqlBlobStore' );
-       },
+               $names = $services->getMainConfig()->get( 'ValidSkinNames' );
 
-       '_SqlBlobStore' => function ( MediaWikiServices $services ) {
-               return $services->getBlobStoreFactory()->newSqlBlobStore();
-       },
+               foreach ( $names as $name => $skin ) {
+                       $factory->register( $name, $skin, function () use ( $name, $skin ) {
+                               $class = "Skin$skin";
+                               return new $class( $name );
+                       } );
+               }
+               // Register a hidden "fallback" skin
+               $factory->register( 'fallback', 'Fallback', function () {
+                       return new SkinFallback;
+               } );
+               // Register a hidden skin for api output
+               $factory->register( 'apioutput', 'ApiOutput', function () {
+                       return new SkinApi;
+               } );
 
-       'ContentModelStore' => function ( MediaWikiServices $services ) {
-               return new NameTableStore(
-                       $services->getDBLoadBalancer(),
-                       $services->getMainWANObjectCache(),
-                       LoggerFactory::getInstance( 'NameTableSqlStore' ),
-                       'content_models',
-                       'model_id',
-                       'model_name'
-                       /**
-                        * No strtolower normalization is added to the service as there are examples of
-                        * extensions that do not stick to this assumption.
-                        * - extensions/examples/DataPages define( 'CONTENT_MODEL_XML_DATA','XML_DATA' );
-                        * - extensions/Scribunto define( 'CONTENT_MODEL_SCRIBUNTO', 'Scribunto' );
-                        */
-               );
+               return $factory;
        },
 
-       'SlotRoleStore' => function ( MediaWikiServices $services ) {
+       'SlotRoleStore' => function ( MediaWikiServices $services ) : NameTableStore {
                return new NameTableStore(
                        $services->getDBLoadBalancer(),
                        $services->getMainWANObjectCache(),
@@ -546,68 +538,90 @@ return [
                );
        },
 
-       'ChangeTagDefStore' => function ( MediaWikiServices $services ) {
-               return new NameTableStore(
-                       $services->getDBLoadBalancer(),
-                       $services->getMainWANObjectCache(),
-                       LoggerFactory::getInstance( 'NameTableSqlStore' ),
-                       'change_tag_def',
-                       'ctd_id',
-                       'ctd_name',
-                       null,
-                       false,
-                       function ( $insertFields ) {
-                               $insertFields['ctd_user_defined'] = 0;
-                               $insertFields['ctd_count'] = 0;
-                               return $insertFields;
-                       }
+       'StatsdDataFactory' => function ( MediaWikiServices $services ) : IBufferingStatsdDataFactory {
+               return new BufferingStatsdDataFactory(
+                       rtrim( $services->getMainConfig()->get( 'StatsdMetricPrefix' ), '.' )
                );
        },
 
-       'PreferencesFactory' => function ( MediaWikiServices $services ) {
-               $authManager = AuthManager::singleton();
-               $linkRenderer = $services->getLinkRendererFactory()->create();
-               $config = $services->getMainConfig();
-               $factory = new DefaultPreferencesFactory( $config, $services->getContentLanguage(),
-                       $authManager, $linkRenderer );
-               $factory->setLogger( LoggerFactory::getInstance( 'preferences' ) );
-
-               return $factory;
+       'TitleFormatter' => function ( MediaWikiServices $services ) : TitleFormatter {
+               return $services->getService( '_MediaWikiTitleCodec' );
        },
 
-       'HttpRequestFactory' => function ( MediaWikiServices $services ) {
-               return new \MediaWiki\Http\HttpRequestFactory();
+       'TitleParser' => function ( MediaWikiServices $services ) : TitleParser {
+               return $services->getService( '_MediaWikiTitleCodec' );
        },
 
-       'CommentStore' => function ( MediaWikiServices $services ) {
-               return new CommentStore(
-                       $services->getContentLanguage(),
-                       $services->getMainConfig()->get( 'CommentTableSchemaMigrationStage' )
+       'UploadRevisionImporter' => function ( MediaWikiServices $services ) : UploadRevisionImporter {
+               return new ImportableUploadRevisionImporter(
+                       $services->getMainConfig()->get( 'EnableUploads' ),
+                       LoggerFactory::getInstance( 'UploadRevisionImporter' )
                );
        },
 
-       'ActorMigration' => function ( MediaWikiServices $services ) {
-               return new ActorMigration(
-                       $services->getMainConfig()->get( 'ActorTableSchemaMigrationStage' )
+       'VirtualRESTServiceClient' =>
+       function ( MediaWikiServices $services ) : VirtualRESTServiceClient {
+               $config = $services->getMainConfig()->get( 'VirtualRestConfig' );
+
+               $vrsClient = new VirtualRESTServiceClient( new MultiHttpClient( [] ) );
+               foreach ( $config['paths'] as $prefix => $serviceConfig ) {
+                       $class = $serviceConfig['class'];
+                       // Merge in the global defaults
+                       $constructArg = $serviceConfig['options'] ?? [];
+                       $constructArg += $config['global'];
+                       // Make the VRS service available at the mount point
+                       $vrsClient->mount( $prefix, [ 'class' => $class, 'config' => $constructArg ] );
+               }
+
+               return $vrsClient;
+       },
+
+       'WatchedItemQueryService' =>
+       function ( MediaWikiServices $services ) : WatchedItemQueryService {
+               return new WatchedItemQueryService(
+                       $services->getDBLoadBalancer(),
+                       $services->getCommentStore(),
+                       $services->getActorMigration()
                );
        },
 
-       'MagicWordFactory' => function ( MediaWikiServices $services ) {
-               return new MagicWordFactory( $services->getContentLanguage() );
+       'WatchedItemStore' => function ( MediaWikiServices $services ) : WatchedItemStore {
+               $store = new WatchedItemStore(
+                       $services->getDBLoadBalancer(),
+                       new HashBagOStuff( [ 'maxKeys' => 100 ] ),
+                       $services->getReadOnlyMode(),
+                       $services->getMainConfig()->get( 'UpdateRowsPerQuery' )
+               );
+               $store->setStatsdDataFactory( $services->getStatsdDataFactory() );
+
+               if ( $services->getMainConfig()->get( 'ReadOnlyWatchedItemStore' ) ) {
+                       $store = new NoWriteWatchedItemStore( $store );
+               }
+
+               return $store;
        },
 
-       'ContentLanguage' => function ( MediaWikiServices $services ) {
-               return Language::factory( $services->getMainConfig()->get( 'LanguageCode' ) );
+       'WikiRevisionOldRevisionImporterNoUpdates' =>
+       function ( MediaWikiServices $services ) : ImportableOldRevisionImporter {
+               return new ImportableOldRevisionImporter(
+                       false,
+                       LoggerFactory::getInstance( 'OldRevisionImporter' ),
+                       $services->getDBLoadBalancer()
+               );
        },
 
-       'PasswordFactory' => function ( MediaWikiServices $services ) {
-               $config = $services->getMainConfig();
-               return new PasswordFactory(
-                       $config->get( 'PasswordConfig' ),
-                       $config->get( 'PasswordDefault' )
+       '_MediaWikiTitleCodec' => function ( MediaWikiServices $services ) : MediaWikiTitleCodec {
+               return new MediaWikiTitleCodec(
+                       $services->getContentLanguage(),
+                       $services->getGenderCache(),
+                       $services->getMainConfig()->get( 'LocalInterwikis' )
                );
        },
 
+       '_SqlBlobStore' => function ( MediaWikiServices $services ) : SqlBlobStore {
+               return $services->getBlobStoreFactory()->newSqlBlobStore();
+       },
+
        ///////////////////////////////////////////////////////////////////////////
        // NOTE: When adding a service here, don't forget to add a getter function
        // in the MediaWikiServices class. The convenience getter should just call
index 3ad19d4..8c304ea 100644 (file)
@@ -320,7 +320,7 @@ class DerivedPageDataUpdater implements IDBAccessObject {
 
        /**
         * Checks whether this DerivedPageDataUpdater can be re-used for running updates targeting
-        * the the given revision.
+        * the given revision.
         *
         * @param UserIdentity|null $user The user creating the revision in question
         * @param RevisionRecord|null $revision New revision (after save, if already saved)
index dc7d31e..4210a96 100644 (file)
@@ -67,7 +67,7 @@ class TemplateParser {
        }
 
        /**
-        * Constructs the location of the the source Mustache template
+        * Constructs the location of the source Mustache template
         * @param string $templateName The name of the template
         * @return string
         * @throws UnexpectedValueException If $templateName attempts upwards directory traversal
index e47e6c0..d712765 100644 (file)
        "apihelp-query+revisions+base-paramvalue-prop-parsedcomment": "Распарсенное описание правки.",
        "apihelp-query+revisions+base-paramvalue-prop-content": "Текст версии.",
        "apihelp-query+revisions+base-paramvalue-prop-tags": "Метки версии.",
-       "apihelp-query+revisions+base-paramvalue-prop-parsetree": "<span class=\"apihelp-deprecated\">Устарело.</span> Вместо этого используйте <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> или <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>. Дерево парсинга XML содержимого версии (требуется модель содержимого <code>$1</code>).",
+       "apihelp-query+revisions+base-paramvalue-prop-parsetree": "Используйте <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> или <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>. Дерево парсинга XML-содержимого версии (требуется модель содержимого <code>$1</code>).",
        "apihelp-query+revisions+base-param-limit": "Сколько версий вернуть.",
        "apihelp-query+revisions+base-param-expandtemplates": "Вместо этого используйте <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd>. Раскрыть шаблоны в содержимом версии (требуется $1prop=content).",
        "apihelp-query+revisions+base-param-generatexml": "Вместо этого используйте <kbd>[[Special:ApiHelp/expandtemplates|action=expandtemplates]]</kbd> или <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>. Сгенерировать дерево парсинга XML содержимого версии (требуется $1prop=content).",
index f52dcae..b1ccdc2 100644 (file)
@@ -67,8 +67,6 @@ abstract class Collation {
                                return new AbkhazUppercaseCollation;
                        case 'uppercase-ba':
                                return new BashkirUppercaseCollation;
-                       case 'uppercase-se':
-                               return new NorthernSamiUppercaseCollation;
                        default:
                                $match = [];
                                if ( preg_match( '/^uca-([A-Za-z@=-]+)$/', $collationName, $match ) ) {
diff --git a/includes/collation/NorthernSamiUppercaseCollation.php b/includes/collation/NorthernSamiUppercaseCollation.php
deleted file mode 100644 (file)
index d373749..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @since 1.31
- *
- * @file
- */
-
-/**
- * Temporary workaround for incorrect collation of Northern Sami
- * language ('se') in Wikimedia servers (see bug T181503).
- *
- * When the ICU's 'se' collation has been included in PHP-intl and Wikimedia
- * servers updated to that new version of PHP, this file should be deleted
- * and the collation for 'se' set to 'uca-se'.
- *
- * @since 1.31
- */
-
-class NorthernSamiUppercaseCollation extends CustomUppercaseCollation {
-
-       public function __construct() {
-               parent::__construct( [
-                       'A',
-                       'Á',
-                       'B',
-                       'C',
-                       'Č',
-                       'Ʒ', // Not part of modern alphabet, but part of ICU
-                       'Ǯ', // Not part of modern alphabet, but part of ICU
-                       'D',
-                       'Đ',
-                       'E',
-                       'F',
-                       'G',
-                       'Ǧ', // Not part of modern alphabet, but part of ICU
-                       'Ǥ', // Not part of modern alphabet, but part of ICU
-                       'H',
-                       'I',
-                       'J',
-                       'K',
-                       'Ǩ', // Not part of modern alphabet, but part of ICU
-                       'L',
-                       'M',
-                       'N',
-                       'Ŋ',
-                       'O',
-                       'P',
-                       'Q',
-                       'R',
-                       'S',
-                       'Š',
-                       'T',
-                       'Ŧ',
-                       'U',
-                       'V',
-                       'W',
-                       'X',
-                       'Y',
-                       'Z',
-                       'Ž',
-                       'Ø', // Not part of native alphabet, but part of ICU
-                       'Æ', // Not part of native alphabet, but part of ICU
-                       'Å', // Not part of native alphabet, but part of ICU
-                       'Ä', // Not part of native alphabet, but part of ICU
-                       'Ö', // Not part of native alphabet, but part of ICU
-               ], Language::factory( 'se' ) );
-       }
-}
index 3d9a904..a395290 100644 (file)
@@ -1350,7 +1350,7 @@ class FileRepo {
        }
 
        /**
-        * Checks existence of a file
+        * Checks existence of a file
         *
         * @param string $file Virtual URL (or storage path) of file to check
         * @return bool
index 6ee9263..b612a8b 100644 (file)
@@ -9,7 +9,7 @@
                        "Macofe"
                ]
        },
-       "config-desc": "Poellad staliañ MediaWIki",
+       "config-desc": "Poellad staliañ MediaWiki",
        "config-title": "Staliadur MediaWiki $1",
        "config-information": "Titouroù",
        "config-localsettings-upgrade": "Kavet ez eus bet ur restr <code>LocalSettings.php</code>.\nEvit hizivaat ar staliadur-se, merkit an talvoud <code>$wgUpgradeKey</code> er voest dindan.\nE gavout a rit e <code>LocalSettings.php</code>.",
index d1127d2..baff796 100644 (file)
@@ -71,8 +71,8 @@
        "config-mysql-innodb": "InnoDB (препоручено)",
        "config-mysql-myisam": "MyISAM",
        "config-mssql-auth": "Тип потврде идентитета:",
-       "config-mssql-sqlauth": "Ð\9fоÑ\82вÑ\80да Ð¸Ð´ÐµÐ½Ñ\82иÑ\82еÑ\82а SQL Server-а",
-       "config-mssql-windowsauth": "Ð\9fоÑ\82вÑ\80да Ð¸Ð´ÐµÐ½Ñ\82иÑ\82еÑ\82а Ð\92индоÑ\83Ñ\81а",
+       "config-mssql-sqlauth": "Ð\90Ñ\83Ñ\82енÑ\82иÑ\84икаÑ\86иÑ\98а Ð·Ð° Ð¡Ð\9aÑ\83Ð\9b Ð¡ÐµÑ\80веÑ\80",
+       "config-mssql-windowsauth": "Ð\90Ñ\83Ñ\82енÑ\82иÑ\84икаÑ\86иÑ\98а Ð·Ð° Ð\92индоÑ\83Ñ\81",
        "config-site-name": "Име викија:",
        "config-site-name-blank": "Унесите име сајта.",
        "config-project-namespace": "Именски простор пројекта:",
index bc73718..689326e 100644 (file)
@@ -221,7 +221,7 @@ class JobQueueDB extends JobQueue {
                $rowSet = []; // (sha1 => job) map for jobs that are de-duplicated
                $rowList = []; // list of jobs for jobs that are not de-duplicated
                foreach ( $jobs as $job ) {
-                       $row = $this->insertFields( $job );
+                       $row = $this->insertFields( $job, $dbw );
                        if ( $job->ignoreDuplicates() ) {
                                $rowSet[$row['job_sha1']] = $row;
                        } else {
@@ -722,11 +722,10 @@ class JobQueueDB extends JobQueue {
 
        /**
         * @param IJobSpecification $job
+        * @param IDatabase $db
         * @return array
         */
-       protected function insertFields( IJobSpecification $job ) {
-               $dbw = $this->getMasterDB();
-
+       protected function insertFields( IJobSpecification $job, IDatabase $db ) {
                return [
                        // Fields that describe the nature of the job
                        'job_cmd' => $job->getType(),
@@ -734,7 +733,7 @@ class JobQueueDB extends JobQueue {
                        'job_title' => $job->getTitle()->getDBkey(),
                        'job_params' => self::makeBlob( $job->getParams() ),
                        // Additional job metadata
-                       'job_timestamp' => $dbw->timestamp(),
+                       'job_timestamp' => $db->timestamp(),
                        'job_sha1' => Wikimedia\base_convert(
                                sha1( serialize( $job->getDeduplicationInfo() ) ),
                                16, 36, 31
index ad5e58d..864880a 100644 (file)
@@ -64,7 +64,7 @@ class MapCacheLRU implements IExpiringStore, Serializable {
                Assert::parameter( $maxKeys > 0, '$maxKeys', 'must be above zero' );
 
                $this->maxCacheKeys = $maxKeys;
-               // Use the current time as the default "as of" timesamp of entries
+               // Use the current time as the default "as of" timestamp of entries
                $this->epoch = $this->getCurrentTime();
        }
 
index 2989c81..a8bbcc1 100644 (file)
@@ -107,6 +107,8 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        protected $useInterimHoldOffCaching = true;
        /** @var callable|null Function that takes a WAN cache callback and runs it later */
        protected $asyncHandler;
+       /** @var float Unix timestamp of the oldest possible valid values */
+       protected $epoch;
 
        /** @var int ERR_* constant for the "last error" registry */
        protected $lastRelayError = self::ERR_NONE;
@@ -223,6 +225,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *   - mcrouterAware: set as true if mcrouter is the backing store proxy and mcrouter
         *       is configured to interpret /<region>/<cluster>/ key prefixes as routes. This
         *       requires that "region" and "cluster" are both set above. [optional]
+        *   - epoch: lowest UNIX timestamp a value/tombstone must have to be valid. [optional]
         */
        public function __construct( array $params ) {
                $this->cache = $params['cache'];
@@ -231,6 +234,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                $this->region = $params['region'] ?? 'main';
                $this->cluster = $params['cluster'] ?? 'wan-main';
                $this->mcrouterAware = !empty( $params['mcrouterAware'] );
+               $this->epoch = $params['epoch'] ?? 1.0;
 
                $this->setLogger( $params['logger'] ?? new NullLogger() );
                $this->stats = $params['stats'] ?? new NullStatsdDataFactory();
@@ -2042,6 +2046,11 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                        $curTTL = INF;
                }
 
+               if ( $wrapped[self::FLD_TIME] < $this->epoch ) {
+                       // Values this old are ignored
+                       return [ false, null ];
+               }
+
                return [ $wrapped[self::FLD_VALUE], $curTTL ];
        }
 
@@ -2070,7 +2079,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        }
 
        /**
-        * @param string $value Wrapped value like "PURGED:<timestamp>:<holdoff>"
+        * @param string|array|bool $value Possible string of the form "PURGED:<timestamp>:<holdoff>"
         * @return array|bool Array containing a UNIX timestamp (float) and holdoff period (integer),
         *  or false if value isn't a valid purge value
         */
@@ -2078,16 +2087,24 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                if ( !is_string( $value ) ) {
                        return false;
                }
+
                $segments = explode( ':', $value, 3 );
                if ( !isset( $segments[0] ) || !isset( $segments[1] )
                        || "{$segments[0]}:" !== self::PURGE_VAL_PREFIX
                ) {
                        return false;
                }
+
                if ( !isset( $segments[2] ) ) {
                        // Back-compat with old purge values without holdoff
                        $segments[2] = self::HOLDOFF_TTL;
                }
+
+               if ( $segments[1] < $this->epoch ) {
+                       // Values this old are ignored
+                       return false;
+               }
+
                return [
                        self::FLD_TIME => (float)$segments[1],
                        self::FLD_HOLDOFF => (int)$segments[2],
index 0ff6a32..83ebd51 100644 (file)
@@ -187,7 +187,8 @@ interface ILoadBalancer {
        /**
         * Get any open connection to a given server index, local or foreign
         *
-        * Use CONN_TRX_AUTOCOMMIT to only look for connections opened with that flag
+        * Use CONN_TRX_AUTOCOMMIT to only look for connections opened with that flag.
+        * Avoid the use of begin() or startAtomic() on any such connections.
         *
         * @param int $i Server index or DB_MASTER/DB_REPLICA
         * @param int $flags Bitfield of CONN_* class constants
@@ -202,9 +203,10 @@ interface ILoadBalancer {
         * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes()
         * can be used to check such flags beforehand.
         *
-        * If the caller uses $domain or sets CONN_TRX_AUTOCOMMIT in $flags, then it must also
-        * call ILoadBalancer::reuseConnection() on the handle when finished using it.
+        * If the caller uses $domain or sets CONN_TRX_AUTOCOMMIT in $flags, then it must
+        * also call ILoadBalancer::reuseConnection() on the handle when finished using it.
         * In all other cases, this is not necessary, though not harmful either.
+        * Avoid the use of begin() or startAtomic() on any such connections.
         *
         * @param int $i Server index (overrides $groups) or DB_MASTER/DB_REPLICA
         * @param array|string|bool $groups Query group(s), or false for the generic reader
@@ -236,7 +238,8 @@ interface ILoadBalancer {
         *
         * The CONN_TRX_AUTOCOMMIT flag is ignored for databases with ATTR_DB_LEVEL_LOCKING
         * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes()
-        * can be used to check such flags beforehand.
+        * can be used to check such flags beforehand. Avoid the use of begin() or startAtomic()
+        * on any CONN_TRX_AUTOCOMMIT connections.
         *
         * @see ILoadBalancer::getConnection() for parameter information
         *
@@ -255,7 +258,8 @@ interface ILoadBalancer {
         *
         * The CONN_TRX_AUTOCOMMIT flag is ignored for databases with ATTR_DB_LEVEL_LOCKING
         * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes()
-        * can be used to check such flags beforehand.
+        * can be used to check such flags beforehand. Avoid the use of begin() or startAtomic()
+        * on any CONN_TRX_AUTOCOMMIT connections.
         *
         * @see ILoadBalancer::getConnection() for parameter information
         *
@@ -274,7 +278,8 @@ interface ILoadBalancer {
         *
         * The CONN_TRX_AUTOCOMMIT flag is ignored for databases with ATTR_DB_LEVEL_LOCKING
         * (e.g. sqlite) in order to avoid deadlocks. ILoadBalancer::getServerAttributes()
-        * can be used to check such flags beforehand.
+        * can be used to check such flags beforehand. Avoid the use of begin() or startAtomic()
+        * on any CONN_TRX_AUTOCOMMIT connections.
         *
         * @see ILoadBalancer::getConnection() for parameter information
         *
@@ -292,13 +297,14 @@ interface ILoadBalancer {
         * The index must be an actual index into the array. If a connection to the server is
         * already open and not considered an "in use" foreign connection, this simply returns it.
         *
-        * Avoid using CONN_TRX_AUTOCOMMIT for databases with ATTR_DB_LEVEL_LOCKING (e.g. sqlite) in
-        * order to avoid deadlocks. ILoadBalancer::getServerAttributes() can be used to check
+        * Avoid using CONN_TRX_AUTOCOMMIT for databases with ATTR_DB_LEVEL_LOCKING (e.g. sqlite)
+        * in order to avoid deadlocks. ILoadBalancer::getServerAttributes() can be used to check
         * such flags beforehand.
         *
-        * If the caller uses $domain or sets CONN_TRX_AUTOCOMMIT in $flags, then it must also
-        * call ILoadBalancer::reuseConnection() on the handle when finished using it.
+        * If the caller uses $domain or sets CONN_TRX_AUTOCOMMIT in $flags, then it must
+        * also call ILoadBalancer::reuseConnection() on the handle when finished using it.
         * In all other cases, this is not necessary, though not harmful either.
+        * Avoid the use of begin() or startAtomic() on any such connections.
         *
         * @note This method throws DBAccessError if ILoadBalancer::disable() was called
         *
index f2f9eb0..92cabca 100644 (file)
@@ -926,6 +926,13 @@ class LoadBalancer implements ILoadBalancer {
                }
 
                if ( $autoCommit && $conn instanceof IDatabase ) {
+                       if ( $conn->trxLevel() ) { // sanity
+                               throw new DBUnexpectedError(
+                                       $conn,
+                                       __METHOD__ . ': CONN_TRX_AUTOCOMMIT handle has a transaction.'
+                               );
+                       }
+
                        $conn->clearFlag( $conn::DBO_TRX ); // auto-commit mode
                }
 
index 35bb451..0e39b7a 100644 (file)
@@ -645,13 +645,18 @@ class LogFormatter {
         * @param Title|null $title The page
         * @param array $parameters Query parameters
         * @param string|null $html Linktext of the link as raw html
-        * @throws MWException
         * @return string
         */
        protected function makePageLink( Title $title = null, $parameters = [], $html = null ) {
                if ( !$title instanceof Title ) {
-                       throw new MWException( 'Expected title, got null' );
+                       $msg = $this->msg( 'invalidtitle' )->text();
+                       if ( !$this->plaintext ) {
+                               return Html::element( 'span', [ 'class' => 'mw-invalidtitle' ], $msg );
+                       } else {
+                               return $msg;
+                       }
                }
+
                if ( !$this->plaintext ) {
                        $html = $html !== null ? new HtmlArmor( $html ) : $html;
                        $link = $this->getLinkRenderer()->makeLink( $title, $html, [], $parameters );
index e00a5b3..ee467b0 100644 (file)
@@ -380,7 +380,11 @@ class SVGReader {
                        '' => 1.0, // "User units" pixels by default
                ];
                $matches = [];
-               if ( preg_match( '/^\s*(\d+(?:\.\d+)?)(em|ex|px|pt|pc|cm|mm|in|%|)\s*$/', $length, $matches ) ) {
+               if ( preg_match(
+                       '/^\s*([-+]?\d*(?:\.\d+|\d+)(?:[Ee][-+]?\d+)?)\s*(em|ex|px|pt|pc|cm|mm|in|%|)\s*$/',
+                       $length,
+                       $matches
+               ) ) {
                        $length = floatval( $matches[1] );
                        $unit = $matches[2];
                        if ( $unit == '%' ) {
index a0acf1f..637bae6 100644 (file)
@@ -1484,7 +1484,7 @@ MESSAGE;
        }
 
        /**
-        * Wraps JavaScript code to run after startup and base modules.
+        * Wraps JavaScript code to run after the startup module.
         *
         * @param string $script JavaScript code
         * @return string JavaScript code
index a4fd712..53c10df 100644 (file)
@@ -319,17 +319,6 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return true;
        }
 
-       /**
-        * @param ResourceLoaderContext $context
-        * @return array
-        */
-       public function getPreloadLinks( ResourceLoaderContext $context ) {
-               $url = $this->getBaseModulesUrl( $context );
-               return [
-                       $url => [ 'as' => 'script' ]
-               ];
-       }
-
        /**
         * Internal modules used by ResourceLoader that cannot be depended on.
         *
@@ -353,10 +342,18 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return [];
        }
 
+       /**
+        * @private For internal use by SpecialJavaScriptTest
+        * @since 1.32
+        * @return array
+        */
+       public function getBaseModulesInternal() {
+               return $this->getBaseModules();
+       }
+
        /**
         * Base modules implicitly available to all modules.
         *
-        * @since 1.32
         * @return array
         */
        private function getBaseModules() {
@@ -370,25 +367,6 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                return $baseModules;
        }
 
-       /**
-        * Get the load URL of the startup modules.
-        *
-        * This is a helper for getScript().
-        *
-        * @param ResourceLoaderContext $context
-        * @return string
-        */
-       private function getBaseModulesUrl( ResourceLoaderContext $context ) {
-               $rl = $context->getResourceLoader();
-               $derivative = new DerivativeResourceLoaderContext( $context );
-               $derivative->setModules( $this->getBaseModules() );
-               $derivative->setOnly( 'scripts' );
-               // Must setModules() before makeVersionQuery()
-               $derivative->setVersion( $rl->makeVersionQuery( $derivative ) );
-
-               return $rl->createLoaderURL( 'local', $derivative );
-       }
-
        /**
         * @param ResourceLoaderContext $context
         * @return string JavaScript code
@@ -399,35 +377,43 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        return '/* Requires only=script */';
                }
 
-               $out = file_get_contents( "$IP/resources/src/startup/startup.js" );
+               $startupCode = file_get_contents( "$IP/resources/src/startup/startup.js" );
 
-               // Keep in sync with maintenance/jsduck/eg-iframe.html and,
-               // keep in sync with 'fileHashes' in StartUpModule::getDefinitionSummary().
+               // The files read here MUST be kept in sync with maintenance/jsduck/eg-iframe.html,
+               // and MUST be considered by 'fileHashes' in StartUpModule::getDefinitionSummary().
                $mwLoaderCode = file_get_contents( "$IP/resources/src/startup/mediawiki.js" ) .
                        file_get_contents( "$IP/resources/src/startup/mediawiki.requestIdleCallback.js" );
                if ( $context->getDebug() ) {
                        $mwLoaderCode .= file_get_contents( "$IP/resources/src/startup/mediawiki.log.js" );
                }
 
-               $pairs = array_map( function ( $value ) {
+               $mapToJson = function ( $value ) {
                        $value = FormatJson::encode( $value, ResourceLoader::inDebugMode(), FormatJson::ALL_OK );
                        // Fix indentation
                        $value = str_replace( "\n", "\n\t", $value );
                        return $value;
-               }, [
+               };
+
+               // Perform replacements for mediawiki.js
+               $mwLoaderCode = strtr( $mwLoaderCode, [
+                       '$VARS.baseModules' => $mapToJson( $this->getBaseModules() ),
+               ] );
+
+               // Perform replacements for startup.js
+               $pairs = array_map( $mapToJson, [
                        '$VARS.wgLegacyJavaScriptGlobals' => $this->getConfig()->get( 'LegacyJavaScriptGlobals' ),
                        '$VARS.configuration' => $this->getConfigSettings( $context ),
-                       // This url may be preloaded. See getPreloadLinks().
-                       '$VARS.baseModulesUri' => $this->getBaseModulesUrl( $context ),
                ] );
+               // Raw JavaScript code (not for JSON)
                $pairs['$CODE.registrations();'] = str_replace(
                        "\n",
                        "\n\t",
                        trim( $this->getModuleRegistrations( $context ) )
                );
                $pairs['$CODE.defineLoader();'] = $mwLoaderCode;
+               $startupCode = strtr( $startupCode, $pairs );
 
-               return strtr( $out, $pairs );
+               return $startupCode;
        }
 
        /**
index e82779a..14d5c4b 100644 (file)
@@ -81,7 +81,7 @@ class SearchResultSet implements Countable, IteratorAggregate {
         *  results available.
         */
        public function __construct( $containedSyntax = false, $hasMoreResults = false ) {
-               if ( static::class === __CLASS__ ) {
+               if ( static::class === self::class ) {
                        // This class will eventually be abstract. SearchEngine implementations
                        // already have to extend this class anyways to provide the actual
                        // search results.
index 58163c6..f3bfb2b 100644 (file)
@@ -612,7 +612,7 @@ final class SessionBackend {
         * Save the session
         *
         * Update both the backend data and the associated WebRequest(s) to
-        * reflect the state of the the SessionBackend. This might include
+        * reflect the state of the SessionBackend. This might include
         * persisting or unpersisting the session.
         *
         * @param bool $closing Whether the session is being closed
index ff2a9ea..72663ca 100644 (file)
@@ -1306,7 +1306,7 @@ abstract class Skin extends ContextSource {
                                [
                                        'checkKeys' => [
                                                // Unless there is both no exact $code override nor an i18n definition
-                                               // in the the software, the only MediaWiki page to check is for $code.
+                                               // in the software, the only MediaWiki page to check is for $code.
                                                $msgCache->getCheckKey( $this->getLanguage()->getCode() )
                                        ],
                                        'lockTSE' => 30
index 58944b4..caa039b 100644 (file)
@@ -780,26 +780,20 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                $out = $this->getOutput();
                if ( $this->isStructuredFilterUiEnabled() && !$this->including() ) {
                        $jsData = $this->getStructuredFilterJsData();
-
                        $messages = [];
                        foreach ( $jsData['messageKeys'] as $key ) {
                                $messages[$key] = $this->msg( $key )->plain();
                        }
-                       $out->addBodyClasses( 'mw-rcfilters-enabled' );
 
+                       $out->addBodyClasses( 'mw-rcfilters-enabled' );
                        $collapsed = $this->getUser()->getBoolOption( static::$collapsedPreferenceName );
                        if ( $collapsed ) {
                                $out->addBodyClasses( 'mw-rcfilters-collapsed' );
                        }
 
-                       $out->addHTML(
-                               ResourceLoader::makeInlineScript(
-                                       ResourceLoader::makeMessageSetScript( $messages ),
-                                       $out->getCSPNonce()
-                               )
-                       );
-
+                       // These config and message exports should be moved into a ResourceLoader data module (T201574)
                        $out->addJsConfigVars( 'wgStructuredChangeFilters', $jsData['groups'] );
+                       $out->addJsConfigVars( 'wgStructuredChangeFiltersMessages', $messages );
                        $out->addJsConfigVars( 'wgStructuredChangeFiltersCollapsedState', $collapsed );
 
                        $out->addJsConfigVars(
index 5a6bbc4..3ef64f8 100644 (file)
@@ -79,7 +79,7 @@ class SpecialImport extends SpecialPage {
                }
 
                # @todo Allow Title::getUserPermissionsErrors() to take an array
-               # @todo FIXME: Title::checkSpecialsAndNSPermissions() has a very wierd expectation of what
+               # @todo FIXME: Title::checkSpecialsAndNSPermissions() has a very weird expectation of what
                # getUserPermissionsErrors() might actually be used for, hence the 'ns-specialprotected'
                $errors = wfMergeErrorArrays(
                        $this->getPageTitle()->getUserPermissionsErrors(
index b786c86..f858f5c 100644 (file)
@@ -103,65 +103,56 @@ class SpecialJavaScriptTest extends SpecialPage {
                $query['only'] = 'scripts';
                $startupContext = new ResourceLoaderContext( $rl, new FauxRequest( $query ) );
 
-               $query['raw'] = true;
-
                $modules = $rl->getTestModuleNames( 'qunit' );
 
                // Disable autostart because we load modules asynchronously. By default, QUnit would start
                // at domready when there are no tests loaded and also fire 'QUnit.done' which then instructs
-               // Karma to end the run before the tests even started.
+               // Karma to exit the browser process before the tests even finished loading.
                $qunitConfig = 'QUnit.config.autostart = false;'
                        . 'if (window.__karma__) {'
                        // karma-qunit's use of autostart=false and QUnit.start conflicts with ours.
-                       // Hack around this by replacing 'karma.loaded' with a no-op and call it ourselves later.
-                       // See <https://github.com/karma-runner/karma-qunit/issues/27>.
+                       // Hack around this by replacing 'karma.loaded' with a no-op and perfom its duty of calling
+                       // `__karma__.start()` ourselves. See <https://github.com/karma-runner/karma-qunit/issues/27>.
                        . 'window.__karma__.loaded = function () {};'
                        . '}';
 
                // The below is essentially a pure-javascript version of OutputPage::headElement().
-               $startup = $rl->makeModuleResponse( $startupContext, [
+               $code = $rl->makeModuleResponse( $startupContext, [
                        'startup' => $rl->getModule( 'startup' ),
                ] );
-               // Embed page-specific mw.config variables.
-               // The current Special page shouldn't be relevant to tests, but various modules (which
-               // are loaded before the test suites), reference mw.config while initialising.
-               $code = ResourceLoader::makeConfigSetScript( $out->getJSVars() );
-               // Embed private modules as they're not allowed to be loaded dynamically
-               $code .= $rl->makeModuleResponse( $embedContext, [
-                       'user.options' => $rl->getModule( 'user.options' ),
-                       'user.tokens' => $rl->getModule( 'user.tokens' ),
-               ] );
-               // Catch exceptions (such as "dependency missing" or "unknown module") so that we
-               // always start QUnit. Re-throw so that they are caught and reported as global exceptions
-               // by QUnit and Karma.
-               $modules = Xml::encodeJsVar( $modules );
-               $code .= <<<CODE
-(function () {
+               // The following has to be deferred via RLQ because the startup module is asynchronous.
+               $code .= ResourceLoader::makeLoaderConditionalScript(
+                       // Embed page-specific mw.config variables.
+                       // The current Special page shouldn't be relevant to tests, but various modules (which
+                       // are loaded before the test suites), reference mw.config while initialising.
+                       ResourceLoader::makeConfigSetScript( $out->getJSVars() )
+                       // Embed private modules as they're not allowed to be loaded dynamically
+                       . $rl->makeModuleResponse( $embedContext, [
+                               'user.options' => $rl->getModule( 'user.options' ),
+                               'user.tokens' => $rl->getModule( 'user.tokens' ),
+                       ] )
+                       // Load all the test suites
+                       . Xml::encodeJsCall( 'mw.loader.load', [ $modules ] )
+               );
+               $encModules = Xml::encodeJsVar( $modules );
+               $code .= ResourceLoader::makeInlineCodeWithModule( 'mediawiki.base', <<<JAVASCRIPT
        var start = window.__karma__ ? window.__karma__.start : QUnit.start;
-       try {
-               mw.loader.using( $modules )
-                       .always( function () {
-                               start();
-                       } )
-                       .fail( function ( e ) {
-                               setTimeout( function () {
-                                       throw e;
-                               } );
-                       } );
-       } catch ( e ) {
-               start();
-               throw e;
-       }
-}());
-CODE;
+       mw.loader.using( $encModules ).always( start );
+       mw.trackSubscribe( 'resourceloader.exception', function ( topic, err ) {
+               // Things like "dependency missing" or "unknown module".
+               // Re-throw so that they are reported as global exceptions by QUnit and Karma.
+               setTimeout( function () {
+                       throw e;
+               } );
+       } );
+JAVASCRIPT
+       );
 
                header( 'Content-Type: text/javascript; charset=utf-8' );
                header( 'Cache-Control: private, no-cache, must-revalidate' );
                header( 'Pragma: no-cache' );
                echo $qunitConfig;
-               echo $startup;
-               // The following has to be deferred via RLQ because the startup module is asynchronous.
-               echo ResourceLoader::makeLoaderConditionalScript( $code );
+               echo $code;
        }
 
        private function plainQUnit() {
index 2302177..95875cd 100644 (file)
@@ -50,7 +50,8 @@ class SearchFormWidget {
                $offset,
                $isPowerSearch
        ) {
-               return Xml::openElement(
+               return '<div class="mw-search-form-wrapper">' .
+                       Xml::openElement(
                                'form',
                                [
                                        'id' => $isPowerSearch ? 'powersearch' : 'search',
@@ -67,7 +68,8 @@ class SearchFormWidget {
                                        "<div style='clear:both'></div>" .
                                "</div>" .
                                $this->optionsHtml( $term, $isPowerSearch, $profile ) .
-                       '</form>';
+                       '</form>' .
+               '</div>';
        }
 
        /**
index bd619b1..a5b0188 100644 (file)
@@ -299,6 +299,7 @@ class Names {
                'ml' => 'മലയാളം', # Malayalam
                'mn' => 'монгол', # Halh Mongolian (Cyrillic) (ISO 639-3: khk)
                'mni' => 'মেইতেই লোন্', # Manipuri/Meitei
+               'mnw' => 'ဘာသာ မန်', # Mon, T201583
                'mo' => 'молдовеняскэ', # Moldovan, deprecated
                'mr' => 'मराठी', # Marathi
                'mrj' => 'кырык мары', # Hill Mari
index 50abe6b..31bdde4 100644 (file)
        "ns-specialprotected": "Немагчыма рэдагаваць спэцыяльныя старонкі.",
        "titleprotected": "Стварэньне старонкі з такой назвай было забароненае {{GENDER:$1|ўдзельнікам|ўдзельніцай}} [[User:$1|$1]].\nПрычына забароны: <em>$2</em>.",
        "filereadonlyerror": "Немагчыма зьмяніць файл «$1», бо файлавае сховішча «$2» знаходзіцца ў рэжыме толькі для чытаньня.\n\nСыстэмны адміністратар, які абмежаваў доступ, пазначыў прычыну: «$3».",
+       "invalidtitle": "Няслушная назва",
        "invalidtitle-knownnamespace": "Няслушны загаловак з прасторай назваў «$2» і тэкстам «$3»",
        "invalidtitle-unknownnamespace": "Няслушны загаловак зь невядомым нумарам прасторы назваў $1 і тэкстам «$2»",
        "exception-nologin": "Вы не ўвайшлі ў сыстэму",
        "edit-error-long": "Памылкі:\n\n$1",
        "revid": "вэрсія $1",
        "pageid": "Ідэнтыфікатар старонкі $1",
+       "interfaceadmin-info": "$1\n\nДазволы на рэдагаваньне агульнасайтавых CSS/JS/JSON-файлаў былі нядаўна вылучаныя з права <code>editinterface</code>. Калі вы не разумееце, чаму атрымліваеце гэтую памылку, глядзіце [[mw:MediaWiki_1.32/interface-admin]].",
        "rawhtml-notallowed": "&lt;html&gt;-тэгі ня могуць быць выкарыстаныя па-за звычайнымі старонкамі.",
        "gotointerwiki": "Пакідаем {{grammar:вінавальны|{{SITENAME}}}}",
        "gotointerwiki-invalid": "Пазначаная назва зьяўляецца няслушнай.",
index 505af10..3e02cea 100644 (file)
        "right-block": "Спиране на достъпа до редактиране",
        "right-blockemail": "Блокиране на потребители да изпращат писма по е-поща",
        "right-hideuser": "Блокиране и скриване на потребителско име",
-       "right-ipblock-exempt": "Пренебрегване на блокирания по IP blocks, автоматични блокирания и блокирани IP интервали",
+       "right-ipblock-exempt": "Пренебрегване на блокирания по IP, автоматични блокирания и блокирани IP интервали",
        "right-unblockself": "Собствено отблокиране",
        "right-protect": "Променяне на нивото на защита и редактиране на каскадно-защитените страници",
        "right-editprotected": "Редактиране на страници защитени като „{{int:protect-level-sysop}}“",
        "speciallogtitlelabel": "Цел (заглавие или {{ns:user}}:потребителско име за потребител):",
        "log": "Дневници",
        "logeventslist-submit": "Показване",
+       "logeventslist-more-filters": "Показване на още дневници:",
+       "logeventslist-patrol-log": "Дневник на патрула",
+       "logeventslist-tag-log": "Дневник на етикетите",
        "all-logs-page": "Всички публични дневници",
        "alllogstext": "Смесено показване на записи от всички налични дневници в {{SITENAME}}.\nМожете да ограничите прегледа, като изберете вид на дневника, потребителско име или определена страница.",
        "logempty": "Дневникът не съдържа записи, отговарящи на избрания критерий.",
index cad9287..2e7eb73 100644 (file)
        "logentry-patrol-patrol": "$1 ব্যবহারকারী $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে {{GENDER:$2|চিহ্নিত}} করেছেন",
        "logentry-patrol-patrol-auto": "$1 ব্যবহারকারী স্বয়ংক্রিয়ভাবে $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে {{GENDER:$2|চিহ্নিত}} করেছেন",
        "logentry-newusers-newusers": "$1 ব্যবহারকারী অ্যাকাউন্টটি {{GENDER:$2|তৈরি করা}} হয়েছে",
-       "logentry-newusers-create": "বà§\8dযবহারà¦\95ারà§\80 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f $1 {{GENDER:$2|তà§\88রà§\80 করা}} হয়েছে",
+       "logentry-newusers-create": "বà§\8dযবহারà¦\95ারà§\80 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f $1 {{GENDER:$2|তà§\88রি করা}} হয়েছে",
        "logentry-newusers-create2": "$1 ব্যবহারকারী $3 নামের অ্যাকাউন্টটি {{GENDER:$2|তৈরী}} করেছেন",
        "logentry-newusers-byemail": "$1, $3 ব্যবহারকরী অ্যাকাউন্টটি {{GENDER:$2|তৈরী করেছেন}} এবং পাসওয়ার্ড ইমেইলের মাধ্যমে পাঠানো হয়েছে",
        "logentry-newusers-autocreate": "$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে {{GENDER:$2|তৈরি}} হয়েছে",
index 7089f17..1c99d15 100644 (file)
        "ns-specialprotected": "Stránky ve jmenném prostoru {{ns:special}} nelze editovat.",
        "titleprotected": "Stránku s tímto názvem nelze založit, protože název {{GENDER:$1|zamkl|zamkla|zamkl uživatel}} [[User:$1|$1]].\nUdaným důvodem bylo <em>$2</em>.",
        "filereadonlyerror": "Nelze změnit soubor „$1“, protože úložiště souborů „$2“ je pouze pro čtení.\n\nSprávce serveru, který úložiště zamkl, poskytl toto zdůvodnění: „$3“.",
+       "invalidtitle": "Neplatný název",
        "invalidtitle-knownnamespace": "Neplatný název se jmenným prostorem „$2“ a textem „$3“",
        "invalidtitle-unknownnamespace": "Neplatný název s neznámým číslem jmenného prostoru $1 a textem „$2“",
        "exception-nologin": "Nejste přihlášen(a)",
index 7c5490d..26abde5 100644 (file)
        "ns-specialprotected": "Sider i navnerummet {{ns:special}} kan ikke redigeres.",
        "titleprotected": "Dette sidenavn er blevet beskyttet mod oprettelse af [[User:$1|$1]]. Begrundelsen for beskyttelsen er <em>$2</em>.",
        "filereadonlyerror": "Ude af stand til at redigere filen \"$1\", fordi fildatabasen \"$2\" er skrivebeskyttet.\n\nSystemadministratoren, som skrivebeskyttede den, gav denne begrundelse: \"$3\".",
+       "invalidtitle": "Ugyldig titel",
        "invalidtitle-knownnamespace": "Ugyldig titel med navnerummet \"$2\" og teksten \"$3\"",
        "invalidtitle-unknownnamespace": "Ugyldig titel med ukendt navnerum nummer $1 og tekst \"$2\"",
        "exception-nologin": "Ikke logget på",
        "prefs-dateformat": "Formatering af datoer",
        "prefs-timeoffset": "Tidsforskel",
        "prefs-advancedediting": "Generelle indstillinger",
+       "prefs-developertools": "Udviklerværktøjer",
        "prefs-editor": "Redigeringsprogrammet",
        "prefs-preview": "Forhåndsvisning",
        "prefs-advancedrc": "Avancerede indstillinger",
        "grouppage-bureaucrat": "{{ns:project}}:Bureaukrater",
        "grouppage-suppress": "{{ns:project}}:Undertryk",
        "right-read": "Se sider",
-       "right-edit": "Redigere sider",
+       "right-edit": "Rediger sider",
        "right-createpage": "Oprette andre sider end diskussionssider",
        "right-createtalk": "Oprette diskussionssider",
        "right-createaccount": "Oprette nye brugere",
        "rcfilters-filter-previousrevision-label": "Ikke den seneste revision",
        "rcfilters-filter-previousrevision-description": "Alle ændringer som ikke er »seneste revision«.",
        "rcfilters-filter-excluded": "Ekskluderet",
+       "rcfilters-exclude-button-off": "Ekskluder valgte",
+       "rcfilters-exclude-button-on": "Ekskluderer valgte",
        "rcfilters-view-tags": "Mærkede redigeringer",
        "rcfilters-view-namespaces-tooltip": "Filtrer resultater efter navnerum",
+       "rcfilters-liveupdates-button": "Live-opdateringer",
+       "rcfilters-liveupdates-button-title-on": "Sluk for live opdateringer",
        "rcfilters-liveupdates-button-title-off": "Vis nye ændringer når de sker",
        "rcfilters-watchlist-markseen-button": "Marker alle ændringer som set",
        "rcfilters-watchlist-edit-watchlist-button": "Rediger din liste med overvågede sider",
        "deadendpages": "Blindgydesider",
        "deadendpagestext": "De følgende sider henviser ikke til andre sider i denne wiki.",
        "protectedpages": "Skrivebeskyttede sider",
+       "protectedpages-filters": "Filtre:",
        "protectedpages-indef": "Kun beskyttelser på ubestemt tid",
        "protectedpages-summary": "Denne side indeholder en liste over eksisterende sider, der i øjeblikket er beskyttet. For en liste over titler, der er beskyttet fra oprettelse, se [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Kun nedarvende beskyttelser",
        "apisandbox-results-error": "Der opstod en fejl under indlæsning af API-forespørgelsessvaret: $1.",
        "apisandbox-request-format-url-label": "Adresseforepørgselsstreng",
        "apisandbox-request-url-label": "Forespurgt URL:",
+       "apisandbox-request-json-label": "Anmod om JSON:",
        "apisandbox-request-time": "Forespørgselstid: {{PLURAL:$1|$1 ms}}",
        "apisandbox-alert-page": "Felter på denne side er ugyldige.",
        "apisandbox-alert-field": "Værdien af dette felt er ugyldigt.",
        "thumbnail_dest_directory": "Kataloget kan ikke oprettes.",
        "thumbnail_image-type": "Billedtypen understøttes ikke",
        "thumbnail_gd-library": "Ufuldstændig konfiguration af GD-biblioteket: funktionen $1 mangler",
+       "thumbnail_image-size-zero": "Filstørrelsen til billedet ser ud til at være nul.",
        "thumbnail_image-missing": "Filen $1 ser til at mangle",
        "import": "Importer sider",
        "importinterwiki": "Import fra en anden wiki",
        "version-specialpages": "Specialsider",
        "version-parserhooks": "Parserfunktioner",
        "version-variables": "Variabler",
+       "version-editors": "Skribenter",
        "version-antispam": "Spamforebyggelse",
        "version-other": "Andet",
        "version-mediahandlers": "Specialhåndtering af mediefiler",
        "htmlform-time-placeholder": "TT:MM:SS",
        "htmlform-datetime-placeholder": "ÅÅÅÅ-MM-DD TT:MM:SS",
        "htmlform-title-not-exists": "$1 findes ikke.",
+       "htmlform-user-not-exists": "<strong>$1</strong> findes ikke.",
        "logentry-delete-delete": "$1 {{GENDER:$2|slettede}} siden $3",
        "logentry-delete-delete_redir": "$1 {{GENDER:$2|slettede}} omdirigering $3 ved overskrivning",
        "logentry-delete-restore": "$1 {{GENDER:$2|gendannede}} siden $3 ($4)",
+       "restore-count-files": "{{PLURAL:$1|1 fil|$1 filer}}",
        "logentry-delete-event": "$1 {{GENDER:$2|ændrede}} synligheden af {{PLURAL:$5|en loghændelse|$5 loghændelser}} for siden $3: $4",
        "logentry-delete-revision": "$1 {{GENDER:$2|ændrede}} synligheden af {{PLURAL:$5|en version|$5 versioner}} af siden $3: $4",
        "logentry-delete-event-legacy": "$1 {{GENDER:$2|ændrede}} synligheden af loghændelser for siden $3",
        "expandtemplates": "Udfold skabeloner",
        "expand_templates_intro": "Denne specialside tager en tekst og udfolder alle benyttede skabeloner rekursivt.\nDen udfolder også understøttede parserfunktioner så som\n<code><nowiki>{{</nowiki>#language:…}}</code> og variabler så som \n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>\nFaktisk udfolder den stort set alt i dobbelte tuborgklammer.",
        "expand_templates_title": "Sammenhængstitel, for {{FULLPAGENAME}} osv.:",
-       "expand_templates_input": "Inputtekst:",
+       "expand_templates_input": "Input wikitekst:",
        "expand_templates_output": "Resultat",
        "expand_templates_xml_output": "XML-kode",
        "expand_templates_html_output": "Rå HTML-output",
        "pagelang-select-lang": "Vælg sprog",
        "pagelang-reason": "Begrundelse",
        "pagelang-submit": "Indsend",
+       "pagelang-nonexistent-page": "Siden $1 findes ikke.",
+       "pagelang-unchanged-language": "Siden $1 er allerede sat til sproget $2.",
        "right-pagelang": "Ændre sidesproget",
        "mediastatistics": "Mediestatistik",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 byte|$1 bytes}} ($2; $3%)",
        "credentialsform-account": "Kontonavn:",
        "edit-error-short": "Fejl: $1",
        "edit-error-long": "Fejl:\n\n$1",
+       "pageid": "side id: $1",
        "gotointerwiki": "Forlader {{SITENAME}}",
+       "pagedata-title": "Sidedata",
        "pagedata-bad-title": "Ugyldig titel: $1",
        "passwordpolicies": "Password politikker",
        "passwordpolicies-group": "Gruppe",
index 8d4d08d..f1d6f94 100644 (file)
        "ns-specialprotected": "Spezialseiten können nicht bearbeitet werden.",
        "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung <em>$2</em> eingerichtet.",
        "filereadonlyerror": "Die Datei „$1“ kann nicht verändert werden, da auf das Dateirepositorium „$2“ nur Lesezugriff möglich ist.\n\nDer Systemadministrator, der den Schreibzugriff sperrte, gab folgenden Grund an: „$3“.",
+       "invalidtitle": "Ungültiger Titel",
        "invalidtitle-knownnamespace": "Ungültiger Titel mit Namensraum „$2“ und Text „$3“",
        "invalidtitle-unknownnamespace": "Ungültiger Titel mit unbekannter Namensraumnummer $1 und Text „$2“",
        "exception-nologin": "Nicht angemeldet",
index 0948136..caa2256 100644 (file)
        "ns-specialprotected": "Special pages cannot be edited.",
        "titleprotected": "This title has been protected from creation by [[User:$1|$1]].\nThe reason given is <em>$2</em>.",
        "filereadonlyerror": "Unable to modify the file \"$1\" because the file repository \"$2\" is in read-only mode.\n\nThe system administrator who locked it offered this explanation: \"$3\".",
+       "invalidtitle": "Invalid title",
        "invalidtitle-knownnamespace": "Invalid title with namespace \"$2\" and text \"$3\"",
        "invalidtitle-unknownnamespace": "Invalid title with unknown namespace number $1 and text \"$2\"",
        "exception-nologin": "Not logged in",
index 297f901..8105ed6 100644 (file)
        "ns-specialprotected": "Les pages spéciales ne peuvent pas être modifiés.",
        "titleprotected": "Ce titre a été protégé contre toute création par [[User:$1|$1]].\nLe motif fourni est <em>$2</em>.",
        "filereadonlyerror": "Impossible de modifier le fichier « $1 » parce que le répertoire de fichiers « $2 » est en lecture seule.\n\nL’administrateur système qui l’a verrouillé a fourni ce motif : « $3 ».",
+       "invalidtitle": "Titre non valide",
        "invalidtitle-knownnamespace": "Titre non valide avec l’espace de noms « $2 » et l’intitulé « $3 »",
        "invalidtitle-unknownnamespace": "Titre non valide avec le numéro d’espace de noms $1 inconnu et l’intitulé « $2 »",
        "exception-nologin": "Non connecté",
index 29afc8d..d19b0c3 100644 (file)
@@ -27,7 +27,8 @@
                        "Hamilton Abreu",
                        "Athena in Wonderland",
                        "Navhy",
-                       "PokéDex Nacional"
+                       "PokéDex Nacional",
+                       "Maria zaos"
                ]
        },
        "tog-underline": "Subliñar as ligazóns:",
        "recentchangescount": "Número de edicións a amosar por defecto nos cambios recentes, nos historiais de páxina e nos rexistrosː",
        "prefs-help-recentchangescount": "Número máximo: 1000",
        "prefs-help-watchlist-token2": "Esta é a clave secreta da fonte de novas web para a súa lista de vixilancia.\nCalquera persoa que a saiba poderá ler a súa lista de vixilancia; non comparta esta clave.\nSe o precisa, [[Special:ResetTokens|pode restablecela]].",
-       "prefs-help-tokenmanagement": "Podes ver e restaurar a chave secreta para a túa conta que pode acceder á fonte web da túa lista de vixiancia. Calquera que coñeza a chave poderá leer a túa lista de vixiancia, non a comparta.",
+       "prefs-help-tokenmanagement": "Podes ver e restaurar a chave secreta da túa conta que permite acceder á fonte web da túa lista de vixiancia. Calquera que coñeza a chave poderá leer a túa lista de vixiancia, así que non a compartas.",
        "savedprefs": "Gardáronse as súas preferencias.",
        "savedrights": "Gardáronse os grupos de {{GENDER:$1|usuario|usuaria}} de $1.",
        "timezonelegend": "Fuso horario:",
index 07c5c5b..cf1ce58 100644 (file)
@@ -5,10 +5,11 @@
                        "아라",
                        "DonCamillo",
                        "Koavf",
-                       "Ammarpad"
+                       "Ammarpad",
+                       "Mojaam"
                ]
        },
-       "tog-underline": "Link underlining:",
+       "tog-underline": "Zana layin link",
        "tog-hideminor": "A ɓoye ƙananan gyare-gyare na baya-bayan nan",
        "tog-hidepatrolled": "A ɓoye gyare-gyaren kan ido a cikin gyare-gyare bayan-bayan nan",
        "tog-newpageshidepatrolled": "A ɓoye shafuna kan ido a cikin sabbin shafuna",
index 4087c8a..effe952 100644 (file)
        "ns-specialprotected": "לא ניתן לערוך דפים מיוחדים.",
        "titleprotected": "[[User:$1|$1]] {{GENDER:$1|הפעיל|הפעילה}} על הדף הזה הגנה מפני יצירה.\nהסיבה שניתנה להגנה היא: <em>$2</em>.",
        "filereadonlyerror": "לא ניתן לשנות את הקובץ \"$1\" כיוון שמאגר הקבצים \"$2\" במצב קריאה בלבד.\n\nמנהל המערכת שנעל את המאגר סיפק את ההסבר הבא: \"$3\".",
+       "invalidtitle": "כותרת בלתי תקינה",
        "invalidtitle-knownnamespace": "כותרת בלתי־תקינה עם מרחב השם \"$2\" ועם שם הדף \"$3\"",
        "invalidtitle-unknownnamespace": "כותרת בלתי־תקינה עם מרחב שם בלתי־ידוע מספר $1 ועם שם הדף \"$2\"",
        "exception-nologin": "לא בחשבון",
index 48828ae..3d964b4 100644 (file)
        "customcssprotected": "Tu non ha le permission de modificar iste pagina de CSS perque illo contine le configuration personal de un altere usator.",
        "customjsonprotected": "Tu non ha le permission de modificar iste pagina JSON perque illo contine le configuration personal de un altere usator.",
        "customjsprotected": "Tu non ha le permission de modificar iste pagina de JavaScript perque illo contine le configuration personal de un altere usator.",
+       "sitecssprotected": "Tu non ha le permission de modificar iste pagina CSS perque isto pote affectar tote le visitantes",
+       "sitejsonprotected": "Tu non ha le permission de modificar iste pagina JSON perque isto pote affectar tote le visitantes",
+       "sitejsprotected": "Tu non ha le permission de modificar iste pagina JavaScript perque isto pote affectar tote le visitantes",
        "mycustomcssprotected": "Tu non ha le permission de modificar iste pagina de CSS.",
        "mycustomjsonprotected": "Tu non ha le permission de modificar iste pagina JSON.",
        "mycustomjsprotected": "Tu non ha le permission de modificar iste pagina de JavaScript.",
        "ns-specialprotected": "Le paginas special non es modificabile.",
        "titleprotected": "Iste titulo ha essite protegite contra creation per [[User:$1|$1]].\nLe motivo specificate es <em>$2</em>.",
        "filereadonlyerror": "Impossibile modificar le file \"$1\" perque le repositorio de files \"$2\" es in modo de lectura sol.\n\nLe administrator de systema qui lo blocava offereva iste explication: \"$3\".",
+       "invalidtitle": "Titulo invalide",
        "invalidtitle-knownnamespace": "Titulo invalide con spatio de nomines \"$2\" e texto \"$3\"",
        "invalidtitle-unknownnamespace": "Titulo invalide con spatio de nomines incognite $1 e texto \"$2\"",
        "exception-nologin": "Non identificate",
index b9dcbce..700b15b 100644 (file)
        "right-editusercss": "他の利用者のCSSファイルを編集",
        "right-edituserjson": "他の利用者のJSONファイルを編集",
        "right-edituserjs": "他の利用者のJavaScriptファイルを編集",
+       "right-editsitecss": "サイト全体のCSSを編集",
+       "right-editsitejson": "サイト全体のJSONを編集",
+       "right-editsitejs": "サイト全体のJavaScriptを編集",
        "right-editmyusercss": "自身のCSSファイルを編集",
        "right-editmyuserjson": "自身のJSONファイルを編集",
        "right-editmyuserjs": "自身のJavaScriptファイルを編集",
        "right-managechangetags": "[[Special:Tags|タグ]]の作成、有効化および無効化",
        "right-applychangetags": "自分の編集に[[Special:Tags|タグ]]を適用する",
        "right-changetags": "個々の版と記録項目の任意の[[Special:Tags|タグ]]の追加と削除",
-       "right-deletechangetags": "データベースから[[Special:Tags|タグ]]を削除します",
+       "right-deletechangetags": "データベースから[[Special:Tags|タグ]]を削除",
        "grant-generic": "「$1」の権限バンドル",
        "grant-group-page-interaction": "ページとの相互作用",
        "grant-group-file-interaction": "メディアとの相互作用",
        "grant-editmycssjs": "あなた自身の利用者 CSS/JSON/JavaScript を編集",
        "grant-editmyoptions": "あなたの個人設定を編集",
        "grant-editmywatchlist": "あなたのウォッチリストを編集",
+       "grant-editsiteconfig": "サイト全体と利用者のCSS/JSを編集",
        "grant-editpage": "既存のページを編集",
        "grant-editprotected": "保護されたページを編集",
        "grant-highvolume": "多量の編集",
        "rcfilters-watchlist-showupdated": "最終訪問以降に変更されたページは、塗りつぶされた丸印と一緒に、<strong>太字</strong>で表示されます。",
        "rcfilters-preference-label": "最近の更新の改善版を隠す",
        "rcfilters-preference-help": "2017年のインターフェース更新およびそれ以降に追加された新しいツールを無効化します。",
+       "rcfilters-watchlist-preference-label": "ウォッチリストの改善版を隠す",
        "rcfilters-filter-showlinkedfrom-label": "リンク先ページの変更を表示する",
        "rcfilters-filter-showlinkedfrom-option-label": "選択されているページから<strong>リンクされているページ</strong>",
        "rcfilters-filter-showlinkedto-label": "リンク先ページの変更を表示する",
        "magiclink-tracking-isbn": "ISBNマジックリンクを使用しているページ",
        "magiclink-tracking-isbn-desc": "このページはISBNマジックリンクを使用しています。移行方法について[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org]を参照してください。",
        "specialloguserlabel": "実行者:",
-       "speciallogtitlelabel": "対象 (ページ名ã\81¾ã\81\9fã\81¯ {{ns:user}}:å\88©ç\94¨è\80\85å\90\8d):",
+       "speciallogtitlelabel": "対象 (ページ名 ã\81¾ã\81\9fã\81¯ã\80\8c{{ns:user}}:å\88©ç\94¨è\80\85å\90\8dã\80\8d):",
        "log": "記録",
        "logeventslist-submit": "表示",
        "logeventslist-more-filters": "付加記録を表示:",
        "special-characters-title-endash": "en ダッシュ",
        "special-characters-title-emdash": "em ダッシュ",
        "special-characters-title-minus": "マイナス記号",
-       "mw-widgets-dateinput-no-date": "日付未選択",
+       "mw-widgets-dateinput-no-date": "日付が選択されていません",
        "mw-widgets-dateinput-placeholder-day": "YYYY-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "YYYY-MM",
        "mw-widgets-mediasearch-input-placeholder": "メディアを検索",
        "mw-widgets-titleinput-description-redirect": "$1 へのリダイレクト",
        "mw-widgets-categoryselector-add-category-placeholder": "カテゴリを追加...",
        "mw-widgets-usersmultiselect-placeholder": "さらに追加",
-       "date-range-from": "開始日:",
-       "date-range-to": "終了日:",
+       "date-range-from": "この日から:",
+       "date-range-to": "この日まで:",
        "sessionmanager-tie": "複数の要求の認証方法を組み合わせることはできません: $1。",
        "sessionprovider-generic": "$1 セッション",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "Cookie ベースのセッション",
        "log-action-filter-contentmodel-new": "標準でないコンテンツ・モデルによるページの作成",
        "log-action-filter-delete-delete": "ページの削除",
        "log-action-filter-delete-delete_redir": "転送の上書き",
-       "log-action-filter-delete-restore": "ã\83\9aã\83¼ã\82¸ã\81®å¾©å¸°",
+       "log-action-filter-delete-restore": "ã\83\9aã\83¼ã\82¸ã\81®å¾©å\85\83",
        "log-action-filter-delete-event": "記録の削除",
        "log-action-filter-delete-revision": "版指定削除",
        "log-action-filter-import-interwiki": "ウィキ間の取り込み",
        "edit-error-long": "エラー:\n\n\n\n$1",
        "revid": "版 $1",
        "pageid": "ページID $1",
+       "interfaceadmin-info": "$1\n\nサイト全体のCSS/JS/JSONの編集における許可は、最近まで<code>editinterface</code>権限と分けられていました。なぜこのエラーが表示されるのかわからない場合は、[[mw:MediaWiki_1.32/interface-admin]]をご覧ください。",
        "rawhtml-notallowed": "&lt;html&gt;タグは通常ページ以外では使用できません。",
-       "gotointerwiki": "{{SITENAME}}ã\82\92é\9b¢ã\82\8cる",
+       "gotointerwiki": "{{SITENAME}}ã\81\8bã\82\89ä»\96ã\82µã\82¤ã\83\88ã\81¸ç§»å\8b\95ã\81\99る",
        "gotointerwiki-invalid": "指定したページは無効です。",
-       "gotointerwiki-external": "{{SITENAME}}を離れ、別のウェブサイトである[[$2]]を訪れようとしています。\n\n'''[$1 $1に行く]'''",
+       "gotointerwiki-external": "あなたは{{SITENAME}}から別のウェブサイトである[[$2]]へ移動しようとしています。\n\n'''[$1 $1 へ移動する]'''",
        "undelete-cantedit": "このページを編集する許可がないため復元できません。",
        "undelete-cantcreate": "同名のページが存在せず、このページを作成する許可がないため復元できません。",
        "pagedata-title": "ページ・データ",
index 4e3b594..5038969 100644 (file)
        "recentchanges-label-plusminus": "ಪುಟದ ಗಾತ್ರವು ಇಷ್ಟು ಸಂಖ್ಯೆಯ ಬೈಟ್‍ಗಳಿಂದ ಬದಲಾಯಿಸಲ್ಪಟ್ಟಿದೆ",
        "recentchanges-legend-heading": "<strong>ಪರಿವಿಡಿ:</strong>",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|ಹೊಸ ಪುಟಗಳ ಪಟ್ಟಿ]]ಯನ್ನೂ ನೋಡಿ)",
+       "rcfilters-legend-heading": "<strong> ಸಂಕ್ಷೇಪಣಗಳ ಪಟ್ಟಿ:</strong>",
+       "rcfilters-activefilters": "ಸಕ್ರಿಯ ಸೋಸುಕಗಳು",
+       "rcfilters-activefilters-hide-tooltip": "ಸಕ್ರಿಯ ಶೋಧಕಗಳ ಪ್ರದೇಶ ಅಡಗಿಸಿ",
+       "rcfilters-advancedfilters": "ಸುಧಾರಿಸಿದ ಶೋಧಕಗಳು",
+       "rcfilters-days-title": "ಇತ್ತೀಚಿನ ದಿನಗಳು",
+       "rcfilters-days-show-days": "$1 {{PLURAL:$1|ದಿನ|ದಿನಗಳು}}",
+       "rcfilters-quickfilters": "ಉಳಿಸಲಾದ ಶೋಧಕಗಳು",
+       "rcfilters-savedqueries-defaultlabel": "ಉಳಿಸಲಾದ ಶೋಧಕಗಳು",
+       "rcfilters-restore-default-filters": "ಪೂರ್ವನಿಯೋಜಿತ ಶೋಧಕಗಳನ್ನು ಮರುಹೊಂದಿಸಿ",
+       "rcfilters-empty-filter": "ಸಕ್ರಿಯ ಶೋಧಕಗಳಿಲ್ಲ. ಎಲ್ಲಾ ಕೊಡುಗೆಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ.",
+       "rcfilters-filterlist-noresults": "ಶೋಧಕಗಳು ಲಭ್ಯವಿಲ್ಲ",
        "rcfilters-target-page-placeholder": "ಒಂದು ಪುಟದ ಹೆಸರನ್ನು ನಮೂದಿಸಿ (ಅಥವಾ ವಿಭಾಗ)",
        "rcnotefrom": "'''$2''' ಇಂದ ಆಗಿರುವ ಬದಲಾವಣೆಗಳು ಕೆಳಗಿವೆ (ಕೊನೆಯ '''$1'''ರವರೆಗೆ ತೋರಿಸಲಾಗಿದೆ).",
        "rclistfrom": "$2,$3 ಇಂದ ಪ್ರಾರಂಭಿಸಿ ಮಾಡಲಾದ ಬದಲಾವಣೆಗಳನ್ನು ನೋಡಿ",
        "deadendpages": "ಕೊನೆಯಂಚಿನ ಪುಟಗಳು",
        "deadendpagestext": "ಈ ಕೆಳಗಿನ ಪುಟಗಳು {{SITENAME}} ಅಲ್ಲಿ ಇರುವ ಇತರ ಪುಟಗಳಿಗೆ ಕೊಂಡಿಯನ್ನು ಹೊಂದಿಲ್ಲ.",
        "protectedpages": "ಸಂರಕ್ಷಿತ ಪುಟಗಳು",
+       "protectedpages-filters": "ಶೋಧಕಗಳುː",
        "protectedpages-indef": "ಅನಿಯಮಿತ ಸಂರಕ್ಷಣೆಗಳು ಮಾತ್ರ",
        "protectedpages-noredirect": "ಪುನರ್ನಿದೇಶನಗಳನ್ನು ಅಡಗಿಸಿ",
        "protectedpagesempty": "ಈ ನಿಯಮಾವಳಿಗಳಲ್ಲಿ ಯಾವ ಪುಟವೂ ಸಂರಕ್ಷಿತವಾಗಿಲ್ಲ.",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|ಸದಸ್ಯ|ಸದಸ್ಯರು}} $1",
        "creditspage": "ಪುಟದ ಗೌರವಗಳು",
        "simpleantispam-label": "ಆಂಟಿ-ಸ್ಪ್ಯಾಮ್ ಪರೀಕ್ಷೆ.\nಇದನ್ನು ತುಂಬ <strong>ಬೇಡಿ</strong>!",
-       "pageinfo-title": "ಮಹಿತಿ \"$1\"",
+       "pageinfo-title": "ಮಾಹಿತಿ \"$1\"",
        "pageinfo-header-basic": "ಮೂಲಭೂತ ಮಾಹಿತಿ",
        "pageinfo-header-edits": "ಇತಿಹಾಸ ಸಂಪಾದಿಸಿ",
        "pageinfo-header-restrictions": "ಪುಟ ರಕ್ಷಣೆ",
        "ilsubmit": "ಹುಡುಕು",
        "bydate": "ದಿನಾಂಕಕ್ಕನುಗುಣವಾಗಿ",
        "sp-newimages-showfrom": "$2, $1 ಇಂದ ಪ್ರಾರಂಭಿಸಿ ಹೊಸ ಫೈಲುಗಳನ್ನು ತೋರು",
+       "days": "{{PLURAL:$1|$1 ದಿನ|$1 ದಿನಗಳು}}",
        "just-now": "ಇದೀಗ",
        "monday-at": "ಸೋಮವಾರ $1",
        "tuesday-at": "ಮಂಗಳವಾರ $1",
index b5f743c..64e4e9e 100644 (file)
        "ns-specialprotected": "특수 문서는 편집할 수 없습니다.",
        "titleprotected": "[[User:$1|$1]]님이 문서 만들기를 보호했습니다.\n이유는 다음과 같습니다. <em>$2</em>",
        "filereadonlyerror": "\"$2\" 파일 저장소가 읽기 전용이기 때문에 \"$1\" 파일을 바꿀 수 없습니다.\n\n파일 저장소를 잠근 시스템 관리자가 다음과 같은 설명을 남겼습니다: \"$3\".",
+       "invalidtitle": "잘못된 제목",
        "invalidtitle-knownnamespace": "제목 오류: \"$2\" 이름공간과 \"$3\" 텍스트",
        "invalidtitle-unknownnamespace": "제목 오류: 알 수 없는 $1 이름공간 번호와 \"$2\" 텍스트",
        "exception-nologin": "로그인하지 않음",
index 4ec03ed..caa65d8 100644 (file)
@@ -78,7 +78,7 @@
        "hidden-categories": "{{PLURAL:$1|Яшырылгъан категория|Яшырылгъан категориялар}}‎",
        "category-subcat-count": "{{PLURAL:$2|Бу категорияда тек сонггъу гелеген тюпкатегориясы бар.|Бу категорияда {{PLURAL:$1|тюпкатегория|$1 тюпкатегориялар}} бар, жамда $2 тюпкатегориядан.}}",
        "category-article-count": "{{PLURAL:$2|Бу категорияда янгыз гелеген бир сагьифа бар.|Бу категориядагъы $2 {{PLURAL:$1|сагьифасы}} гёрсетилген.}}",
-       "category-file-count": "{{PLURAL:$2|Бу категорияда бир тек сонггъу гелеген сапламы бар.|Сонггъу гелеген {{PLURAL:$1|саплам|$1 сапламлар}}{{PLURAL:$2|категориядадыр|категориядадырлар}}}}.",
+       "category-file-count": "{{PLURAL:$2|Бу категорияда бир тек сонгра гелеген сапламы бар.|Сонгра гелеген {{PLURAL:$1|саплам|$1 сапламлар}} бу категориядадыр, жамы $2 санавундан.}}",
        "listingcontinuesabbrev": "давам",
        "noindex-category": "Индексленмейген сагьифалар",
        "broken-file-category": "Ишлеймейген саплам байланывлары булан сагьифалар",
        "template-semiprotected": "(ярты-къорулгъан)",
        "hiddencategories": "Бу сагьифа {{PLURAL:$1|1 яшырылгъан категориягъа}} янаша:",
        "permissionserrors": "Гириш ихтиярланы хатасы",
-       "permissionserrorstext-withaction": "Бугъар $2 гелеген {{PLURAL:$1|себепге|себеплеге}} гёре ихтиярынг ёкъ:",
+       "permissionserrorstext-withaction": "Бугъар $2 {{PLURAL:$1|бу себеп|бу себеплеге}} гёре ихтиярынг ёкъ:",
        "recreate-moveddeleted-warn": "<strong>Тергев бер: Алдын тайдырылгъан сагьифаны ярашдырма айланасан.</strong>\n\nБашлап тергеп къара, гертиден де тарыкъмы экен ол сагьифаны ярашдырмагъа.\nТайдырыв ва атын алышдырыв гюнделиги тюпде берилген:",
        "moveddeleted-notice": "Бу сагьифа тайдырылгъан эди.\nБу сагьифаны тайдырыв, къорув ва атянгыртыв гюнделиги маълюмат саялы тюпде гёрсетилген.",
        "content-model-wikitext": "викиматын",
        "nextrevision": "Сонггъу тюрю →",
        "currentrevisionlink": "Ахырынчы тюрю",
        "cur": "гьал.",
-       "next": "гелеген",
+       "next": "сонггъу",
        "last": "ингкъ.",
        "page_first": "биринчи",
        "page_last": "ахырынчы",
        "prevn": "алдагъы {{PLURAL:$1|$1}}",
        "nextn": "сонггъу {{PLURAL:$1|$1}}",
        "prev-page": "алдагъы сагьифа",
-       "next-page": "гелеген сагьифа",
+       "next-page": "сонггъу сагьифа",
        "prevn-title": "Алдагъы $1 {{PLURAL:$1|гьасил}}",
-       "nextn-title": "Ð\93елеген $1 {{PLURAL:$1|гьасил|гьасиллер}}",
+       "nextn-title": "СонггÑ\8aÑ\83 $1 {{PLURAL:$1|гьасил|гьасиллер}}",
        "shown-title": "Айры бир сагьифада $1 {{PLURAL:$1|языв|язывланы}} гёрсетмек",
        "viewprevnext": "($1 {{int:pipe-separator}} $2) ($3) къарамакъ",
        "searchmenu-exists": "<strong>Бу викиде \"[[:$1]]\" деп аты булан сагьифа бар.</strong> {{PLURAL:$2|0=|Дагъы да табылгъан натижалагъа да къара.}}",
        "whatlinkshere": "Бери байланылгъан",
        "whatlinkshere-title": "\"$1\" бетге байлангъан сагьифалар",
        "whatlinkshere-page": "Сагьифа:",
-       "linkshere": "Ð\93елеген сагьифалар бугъар байлавлу <strong>$2</strong>:",
+       "linkshere": "СонгÑ\80а Ð³Ñ\91Ñ\80Ñ\81еÑ\82илген сагьифалар бугъар байлавлу <strong>$2</strong>:",
        "nolinkshere": "Бугъар байлавлу сагьифалар ёкъ <strong>$2</strong>:",
        "isredirect": "ёллав-сагьифа",
        "istemplate": "къошув",
        "exif-orientation-1": "Нормал",
        "namespacesall": "бары да",
        "monthsall": "бары да",
-       "imgmultipagenext": "гелеген сагьифа →",
+       "imgmultipagenext": "сонггъу сагьифа →",
        "imgmultigo": "Гечмек!",
        "imgmultigoto": "Сагьифагъа гечмек $1",
        "watchlisttools-clear": "Тергев тизмени тазаламакъ",
index b965f81..dd8283b 100644 (file)
        "ns-specialprotected": "Spezialsäite kënnen net verännert ginn.",
        "titleprotected": "Dësen Titel gouf vum [[User:$1|$1]] esou gespaart datt en net kann ugeluecht ginn. De Grond deen ugi gouf ass <em>$2</em>",
        "filereadonlyerror": "De Fichier \"$1\" konnt net geännert ginn well de Repertoire vun de Fichieren \"$2\" nëmme gelies däerf ginn.\n\nDe System-Administrateur deen d'Schreiwe gespaart huet, huet dës Erklärung uginn: \"$3\"",
+       "invalidtitle": "Net valabelen Titel",
        "invalidtitle-knownnamespace": "Net valabelen Titel mam Nummraum \"$2\" a mam Text \"$3\"",
        "invalidtitle-unknownnamespace": "Net valabelen Titel mat der onbekannter Nummraum-Zuel $1 a mam Text \"$2\"",
        "exception-nologin": "Net ageloggt",
index 0376083..64fbb7c 100644 (file)
        "ns-specialprotected": "Службени страници не може да се уредуваат.",
        "titleprotected": "Овој наслов од страна на [[User:$1|$1]] е заштитен и не може да се создаде.\nПричината за тоа е: <em>$2</em>.",
        "filereadonlyerror": "Не можам да ја изменам податотеката „$1“ бидејќи складиштето „$2“ е во незаписен режим.\n\t\nАдминистраторот што ја заклучи го понуди следново образложение: „''$3''“.",
+       "invalidtitle": "Погрешен наслов",
        "invalidtitle-knownnamespace": "Неважечки наслов со именски простор „$2“ и текст „$3“",
        "invalidtitle-unknownnamespace": "Неважечки наслов со именски простор бр. $1 и текст „$2“",
        "exception-nologin": "Не сте најавени",
diff --git a/languages/i18n/mnw.json b/languages/i18n/mnw.json
new file mode 100644 (file)
index 0000000..f3c35a7
--- /dev/null
@@ -0,0 +1,630 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Dr Lotus Black",
+                       "Htawmonzel"
+               ]
+       },
+       "sunday": "တ္ၚဲအဒိုက်",
+       "monday": "တ္ၚဲစန်",
+       "tuesday": "တ္ၚဲအၚာ",
+       "wednesday": "တ္ၚဲဗုဒ္ဓဝါ",
+       "thursday": "တ္ၚဲအၚာ",
+       "friday": "တ္ၚဲသိုက်",
+       "saturday": "တ္ၚဲသ္ၚိသဝ်",
+       "sun": "အဒိုက်",
+       "mon": "စန်",
+       "tue": "အ္ၚာ",
+       "wed": "ဗုဒ္ဓ",
+       "thu": "ဗြဴ",
+       "fri": "သိုက်",
+       "sat": "သဝ်",
+       "january": "ဇာန်နဝါရဳ",
+       "february": "ဖေဖဝ်ဝါရဳ",
+       "march": "မာတ်",
+       "april": "ဨပြဳ",
+       "may_long": "မေ",
+       "june": "ဂျောန်",
+       "july": "ဂျူလာင်",
+       "august": "အဝ်ဂေတ်",
+       "september": "သေပ်တေမ်ပါ",
+       "october": "အံက်တဝ်ပါ",
+       "november": "နဝ်ဝေမ်ပါ",
+       "december": "ဒဳဇြေန်ပါ",
+       "january-gen": "ဇာန်နဝါရဳ",
+       "february-gen": "ဖေဖဝ်ဝါရဳ",
+       "march-gen": "မာတ်",
+       "april-gen": "ဨပြဳ",
+       "may-gen": "မေ",
+       "june-gen": "ဂျန်",
+       "july-gen": "ဂျူလာင်",
+       "august-gen": "အဝ်ဂေတ်",
+       "september-gen": "သေပ်တေမ်ပါ",
+       "october-gen": "အံက်တဝ်ပါ",
+       "november-gen": "နဝ်ဝေမ်ပါ",
+       "december-gen": "ဒဳဇြေန်ပါ",
+       "jan": "ဇာန်နဝါရဳ",
+       "feb": "ဖေ",
+       "mar": "မာတ်",
+       "apr": "ဨ",
+       "may": "မေ",
+       "jun": "ဂျန်",
+       "jul": "ဂျူ",
+       "aug": "အဝ်",
+       "sep": "သေတ်",
+       "oct": "အံက်",
+       "nov": "နဝ်",
+       "dec": "ဒဳ",
+       "pagecategories": "{{PLURAL:$1|ကဏ္ဍ|ကဏ္ဍဂမၠိုင်}}",
+       "category_header": "မုက်လိက်ဂမၠိုင် ပ္ဍဲ ကဏ္ဍ \"$1\"",
+       "subcategories": "ကဏ္ဍလစှ်ေဂမၠိုင်",
+       "category-media-header": "မဳဒဳယာ စပ်ကဵု ကဏ္ဍ \"$1\"",
+       "category-empty": "<em>ကဏ္ဍဏအ် ပြဟ်ဟ်ဏအ် ဟွံမဲ ကု မုက်လိက် ဟွံသေင်မ္ဂး ပရူမွဲမွဲဏီရ</em>",
+       "hidden-categories": "{{PLURAL:$1|ကဏ္ဍ မပၞုက်|ကဏ္ဍ မပၞုက်ဂမၠိုင်}}",
+       "category-subcat-count": "{{PLURAL:$2|ကဏ္ဍဏအ်ဂှ် ကဏ္ဍလစှ်ေ နွံဆ အတိုင်ဗွဲသၟဝ်ဝွံရ၊၊|ကဏ္ဍဏအ် နွံဆအတိုင် ဗွဲသၟဝ်ဝွံရ၊၊ {{PLURAL:$1|ကဏ္ဍလစှ်ေ|$1 ကဏ္ဍလစှ်ေဂမၠိုင်}}, ပၞောဝ်ကဵု $2 သီုဖအိုတ်}}",
+       "category-article-count": "{{PLURAL:$2|ကဏ္ဍဏအ် နွံဆၜိုတ် အတိုင်ဗွဲသၟဝ်ဏအ်ရ.| ဗွဲသၟဝ်ဏအ်ဂှ် {{PLURAL:$1| ဒှ်လၟိဟ် မုက်လိက်| ဒှ်လၟိဟ် မုက်လိက်ဂမၠိုင် $1 }} စပ် ကုကဏ္ဍဏအ်ရ၊၊ သီုဖအိုတ် နွံ  $2}}",
+       "category-file-count": "{{PLURAL:$2|ကဏ္ဍဏအ် နွံဆၜိုတ် ဝှာင်|အတိုင် ဗွဲသၟဝ်ဏအ်ရ {{PLURAL:$1|ဝှာင် ဂှ်|$1 ဝှာင်တအ် ဂှ်}} ပ္ဍဲကဏ္ဍဏအ် သီုဖအိုတ် နွံ $2 ၊၊}}",
+       "listingcontinuesabbrev": "ဆက်",
+       "noindex-category": "မုက်လိက် မသက္ကုလိက်",
+       "broken-file-category": "မုက်လိက် နကဵုလေန် ဝှာင်မလီုလာ်ဂမၠိုင်",
+       "about": "ပရူ",
+       "newwindow": "(ပံက် ပ္ဍဲ မုက်ဗတင် တၟိ)",
+       "cancel": "တးပဲါ",
+       "mytalk": "ဓရီုကျာ",
+       "navigation": "သ္ၚိအင်",
+       "and": "&#32; ကေုာံ",
+       "namespaces": "ဒၞာဲယၟု",
+       "variants": "မူတၞဟ်",
+       "navigation-heading": "သ္ၚိအင် မေန်နူ",
+       "returnto": "ကလေင်အာ ဇရေင် $1",
+       "tagline": "နူ {{SITENAME}}",
+       "help": "ရီု",
+       "search": "ဂၠာဲ",
+       "searchbutton": "ဂၠာဲ",
+       "searcharticle": "အာ",
+       "history": "ဝှာင် လၟေင်အပြံင်အလှာဲ",
+       "history_short": "အရာမဗှ်လဝ်တုဲ",
+       "printableversion": "မူလိက် မပြေန်ပ္တိတ်ဂွံ",
+       "permalink": "ဌာန်ဒတန်လေန် လၟိုန်",
+       "view": "ဗဗဵု",
+       "view-foreign": "ဗဵု ပ္ဍဲ $1",
+       "edit": "ပလေဝ်ဒါန်",
+       "create": "ခၞံကၠောန်",
+       "create-local": "စုတ် ပရူပရာဒေသ",
+       "delete": "ပလီု",
+       "newpage": "မုက်လိက် တၟိ",
+       "talkpagelinktext": "ဓရီုကျာ",
+       "personaltools": "ကြိယာ သွက်ပူဂဵု",
+       "talk": "သဳကၠဳ",
+       "views": "ထ္ၜး",
+       "toolbox": "ကြိယာ",
+       "otherlanguages": "နကဵု အရေဝ်ဘာသာ တၞဟ်",
+       "redirectedfrom": "(ကလေင်ထ္ၜး နူ $1)",
+       "redirectpagesub": "မုက်လိက် ကလေင်ပညုင်",
+       "redirectto": "ကလေင်စၞောန်ပညုင်လဝ် နူကဵု-",
+       "lastmodifiedat": "မုက်လိက်ဏအ် လက္ကရဴအိုတ် ပလေဝ်ဒါန်လဝ် ပ္ဍဲ $1 ပ္ဍဲ $2",
+       "jumpto": "ဒံင် လုပ်",
+       "jumptonavigation": "သ္ၚိအင်",
+       "jumptosearch": "ဂၠာဲ",
+       "aboutsite": "ပရူ {{SITENAME}}",
+       "aboutpage": "Project:ပရူ",
+       "copyright": "လိက်ဂှ် မံက် ပ္ဍဲ $1 ယဝ်ရတင်ယောင်ယာ မွဲမွဲ ဟွံမွဲမ္ဂး၊၊",
+       "copyrightpage": "{{ns:project}}:Copyrights",
+       "currentevents": "သဘင် လၟုဟ်ဂမၠိုင်",
+       "currentevents-url": "Project:သဘင် လၟုဟ်ဂမၠိုင်",
+       "disclaimers": "ဒဒှ်မဟွံဆက်စပ်",
+       "disclaimerpage": "Project:ဒဒှ်မဟွံဆက်စပ် နာနာ",
+       "edithelp": "အရီုအဗင် ပ္ဍဲအရာမပလေဝ်ဒါန်",
+       "mainpage": "မုက်လိက်တမ်",
+       "mainpage-description": "မုက်လိက်တမ်",
+       "portal": "ပါင်မုက် ဂကောံ",
+       "portal-url": "Project:ပါင်မုက် ဂကောံ",
+       "privacy": "ပဝ်လသဳ မဆေင်ကဵု အခေါင်အရာပူဂဵု",
+       "privacypage": "Project:ပဝ်လသဳ အခေါင်ပူဂဵု",
+       "retrievedfrom": "ကလေင်သီကေတ်လဝ် နူ \"$1\"",
+       "youhavenewmessages": "{{PLURAL:$3|မၞး ကလိဂွံ}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|မၞး ကလိဂွံ}} $1 နူ {{PLURAL:$3| မဒှ် ညးလွပ်တၞဟ်မွဲ|$3 ညးလွပ်ဂမၠိုင်}} ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|ပရိုင်မေတ်သုက် တၟိ|999=ပရိုင်မေတ်သုက်တၟိဂမၠိုင်}}",
+       "newmessagesdifflinkplural": "လက္ကရဴအိုတ် {{PLURAL:$1|အပြံင်အလှာဲ|999=အပြံင်အလှာဲဂမၠိုင်}}",
+       "editsection": "ပလေဝ်ဒါန်",
+       "editold": "ပလေဝ်ဒါန်",
+       "viewsourceold": "ထ္ၜး တမ်ရိုဟ်",
+       "editlink": "ပလေဝ်ဒါန်",
+       "viewsourcelink": "ထ္ၜး တမ်ရိုဟ်",
+       "editsectionhint": "ဒၞာဲ မပလေဝ်ဒါန် - $1",
+       "toc": "မာတိကာ",
+       "site-atom-feed": "$1 ဒၞာဲ ဗလးပတိတ်",
+       "page-atom-feed": "\"$1\" ဒၞာဲ ဗလးပတိတ်",
+       "red-link-title": "$1(မုက်လဝ်ဏအ် ဟွံပြာကတ်)",
+       "nstab-main": "မုက်လိက်",
+       "nstab-user": "မုက်လိက် ညးလွပ်",
+       "nstab-special": "မုက်လိက် တၟေင်",
+       "nstab-project": "မုက်လိက် ပရဝ်ဂျေတ်",
+       "nstab-image": "ဝှာင်",
+       "nstab-mediawiki": "ပရိုင်မေတ်သုက်",
+       "nstab-template": "Template",
+       "nstab-category": "ကဏ္ဍ",
+       "mainpage-nstab": "မုက်လိက်တမ်",
+       "nosuchspecialpage": "မုက်လိက် တၟေင် ညံင်ရဴဏအ် ဟွံမဲ",
+       "nospecialpagetext": "<strong>မၞး အာတ်မိက်လဝ် မုက်လိက်တၟေင် မဟွံမဲမွဲရ၊၊</strong>\n\nစရင် မုက်လိက်တၟေင် မနွံတအ်ဂှ် ဂွံဆဵုကေတ် ပ္ဍဲ [[Special:SpecialPages|{{int:specialpages}}]].",
+       "badtitle": "က္ဍိုပ်လိက် ဟွံခိုဟ်",
+       "badtitletext": "မုက်လိက် မအာတ်မိက်လဝ်ဂှ် ဟွံသၟဟ်အစောမ်၊ သၠာတ်သၠးဒၟံင် ဟွံသေင်မ္ဂး ဆက်စၠောအ်လေန်လဝ် ကုအရေဝ်ဘာသာနာနာ ဟွံသေင်မ္ဂး က္ဍိုပ်လိက် အပ္ဍဲအကြာဝဳကဳ ဟွံဒးရ၊၊\nဟိုတ်နူ စကာလဝ် မလိက် နဒဒှ်က္ဍိုပ်လိက်ဟွံဂွံ ပါလုပ်ဒၟံင် မွဲမ ဟွံသေင်မ္ဂး မဂၠိုင် ကုမ လေဝ် ဒှ်မာန်ရ၊၊",
+       "viewsource": "ထ္ၜး တမ်ရိုဟ်",
+       "viewsource-title": "ဗဵု တမ်ရိုဟ် သွက် $1",
+       "viewsourcetext": "မၞး ဗဵု ကေုာံ စၠောအ်ကပ်ပဳကေတ် တမ်ရိုဟ် မုက်လိက်ဏအ် ဂွံရ၊၊",
+       "userlogin-yourname": "ယၟုညးလွပ်",
+       "userlogin-yourname-ph": "စုတ် ယၟုညးလွပ်",
+       "userlogin-yourpassword": "မလိက်ပၞုက်",
+       "userlogin-yourpassword-ph": "စုတ် မလိက်ပၞုက် မၞးညိ",
+       "createacct-yourpassword-ph": "စုတ် မလိက်ပၞုက် မွဲညိ",
+       "createacct-yourpasswordagain": "ပဒတန် မလိက်ပၞုက်ညိ",
+       "createacct-yourpasswordagain-ph": "စုတ် မလိက်ပၞုက် မွဲဝါပၠန်ညိ",
+       "userlogin-remembermypassword": "လုပ်လံက်အေန်လဝ် အဲညိ၊၊",
+       "login": "လုပ်လံက်အေန်",
+       "userlogin-noaccount": "ဟွံကလိဂွံ အကံက်ဏီ?",
+       "userlogin-joinproject": "လုပ်ပံင်တောဲ {{SITENAME}}",
+       "createaccount": "ခၞံကၠောန် အကံက်",
+       "userlogin-resetpassword-link": "ဝိုတ်စ မလိက်ပၞုက် မၞးဟာ?",
+       "userlogin-helplink2": "အရီုအဗင် သွက်ဂွံ လုပ်လံက်အေန်",
+       "createacct-emailoptional": "ဌာန်ဒၟံင် အဳမေဝ် (သ္ဒးစုတ်ဟေင်)",
+       "createacct-email-ph": "စုတ် ဌာန်ဒၟံင် အဳမေဝ် မၞးညိ",
+       "createacct-submit": "ခၞံကၠောန် အကံက် မၞးညိ",
+       "createacct-benefit-heading": "{{SITENAME}} ဂှ် ကၠောန်လဝ် နကဵု မၞိဟ် ညံင်ရဴမၞးကီုရ၊၊",
+       "createacct-benefit-body1": "{{PLURAL:$1|တင်ပလေဝ်ဒါန်|တင်ပလေဝ်ဒါန်ဂမၠိုင်}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|မုက်လိက်|မုက်လိက်ဂမၠိုင်}}",
+       "createacct-benefit-body3": "ခြာဟွံလအ် {{PLURAL:$1|ညးမခၞံကၠောန်|ညးမခၞံကၠောန်ဂမၠိုင်}}",
+       "loginlanguagelabel": "အရေဝ်ဘာသာ- $1",
+       "pt-login": "လုပ်လံက်အေန်",
+       "pt-login-button": "လုပ်လံက်အေန်",
+       "pt-createaccount": "ခၞံကၠောန် အကံက်",
+       "pt-userlogout": "တိတ်",
+       "passwordreset": "ကလေင်စုတ် မလိက်ပၞုက်",
+       "bold_sample": "မလိက် တီု",
+       "bold_tip": "မလိက် တီု",
+       "italic_sample": "မလိက်ဓစေင်",
+       "italic_tip": "မလိက်ဓစေင်",
+       "link_sample": "လေန် က္ဍိုပ်လိက်",
+       "link_tip": "လေန် ဗွဲအပ္ဍဲ",
+       "extlink_sample": "http://www.example.com လေန် က္ဍိုပ်လိက်",
+       "extlink_tip": "လေန် ဗွဲမ္ၚး (remember http:// prefix)",
+       "headline_sample": "မလိက် က္ဍိုပ်လိက်",
+       "headline_tip": "က္ဍိုပ်လိက် ကဆံင် ၂",
+       "nowiki_sample": "စုတ် မလိက် ဟွံ-ဖျေဟ်ဗီုပြင်ဏီ ပ္ဍဲဒၞာဲဏအ်",
+       "nowiki_tip": "Ignore wiki formatting",
+       "image_tip": "Embedded file",
+       "media_tip": "လေန် ဝှာင်",
+       "sig_tip": "စၟတ်တဲ မၞး နကဵု တဆိပ်အခိင်",
+       "hr_tip": "လာင် ဗွဲလနေင်",
+       "summary": "သကေမ်",
+       "minoredit": "ဣဏအ်ဂှ် ဒှ်အရာ မပလေဝ်ဒါန် ညိည",
+       "watchthis": "မင်မဲ မုက်လိက်ဏအ်",
+       "savearticle": "ဂိုင်သိပ် မုက်လိက်",
+       "preview": "ကိုပ်ဗဗဵု",
+       "showpreview": "ထ္ၜး ကိုပ်ဗဗဵု",
+       "showdiff": "ထ္ၜး အရာမပြံင်လှာဲ",
+       "anoneditwarning": "<strong>သတိ</strong> မၞး ဟွံဂွံ လုပ်လံက်အေန်လဝ်ရ၊၊ IP address မၞး မံက်ဒၟံင်ရောင် ယဝ်ရ မၞးကၠောန်သ္ပ ပရေင်ပလေဝ်ပလေတ်မွဲမွဲမ္ဂး၊၊ ယဝ်ရ <strong>[$1 လုပ်လံက်အေန်]</strong> ဟွံသေင်မ္ဂး <strong>[$2 ခၞံကၠောန် အကံက်မွဲ]</strong>မ္ဂး၊ ပရေင်ပလေဝ်ဒါန်မၞး တြးပတိတ် နကဵု ယၟုသုင်စောဲ မၞးရောင်၊၊",
+       "blockedtext": "<strong>ယၟုညးလွပ် ဟွံသေင်မ္ဂး ဌာန်ဒၟံင်အာင်ဒဳမၞး ဒးဒုင်ကၟာတ်စဵုဒၞာလဝ်</strong>\n\nပွမကၟာတ်စဵုဒၞာဂှ် ကၠောန်လဝ် နကဵု $1.\nဟိုတ်မဂွံကၟာတ်စဵုဒၞာဂှ် <em>$2</em>.\n\n* အခိင်မစကၟာတ်စဵုဒၞာ- $8\n* အခိင်မကၟာတ်စဵုဒၞာအိုတ်- $6\n* မရန်တၟအ် blockee- $7\n\nမၞး ဆက်ကဵု $1 ဟွံသေင်မ္ဂး ညးတၞဟ်သအာင် [[{{MediaWiki:Grouppage-sysop}}|administrator]] ယဝ်ရ မိက်ဂွံ ပတိုန်ဂလာန် စပ်ကဵု မဒးဒုင်ကၟာတ်စဵုဒၞာဂှ်ဂွံရ၊၊\nမၞး စကာ အဳမေလ် \"{{int:emailuser}}\" ဟွံဂွံရ၊၊ ဆဂး ယဝ်ရ ဌာန်ဒၟံင်အဳမေလ်ဂှ် ဒှ်အရာတၟေင် ပ္ဍဲ [[Special:Preferences|account preferences]] မၞး ကေုာံ မၞးဟွံဒးဒုင် ကၟာတ်စဵုဒၞာလဝ် နကဵုအဳမေဝ်ဂှ်မ္ဂး ဂွံမာန်ရ၊၊\nIP address မၞး လၟုဟ်ဂှ် ဒှ် $3, တုဲ ID မဒးဒုင်ကၟာတ်စဵုဒၞာဂှ် ဒှ် #$5 ရ၊၊ \nယဝ်ရ မၞးမိက်ဂွံ သၟာန်မ္ဂး တင်ဂၞင် ဗွဲလတူတအ် သီုဖအိုတ်ဂှ် ဗၟံက်ထ္ၜးကဵုညိ၊၊",
+       "loginreqlink": "လုပ်လံက်အေန်",
+       "newarticletext": "မၞး စိုပ်အာ ဇရေင် မုက်လိက်လေန် မဟွံဂွံကၠောန်လဝ်ဏီရ၊၊\nသွက်ဂွံ ခၞံကၠောန် မုက်လိက်ဏအ်ဂှ် ပ္ဍဲခံက်အင် ဗွဲသၟဝ်ဏအ်ဂှ် စတက်စုတ် မလိက်ညိ\n(မိက်ဂွံ ဆက်တီ ပရူဏအ်မ္ဂး ဆက်ကျောဝ် ပ္ဍဲ[$1မုက်လိက်အရီုအဗင်]ညိ)။ ဟိုတ်နူဗၠေတ်တုဲ မၞး စိုပ်ကၠုင် ပ္ဍဲဒၞာဲဏအ်မ္ဂး ဍဵု <strong>back</strong> တုဲ ကလေင်အာ ဒၞာဲတြေံညိ၊၊",
+       "anontalkpagetext": "----\n<em>မုက်လိက်ဏအ်ဂှ် ဒှ်ဒၞာဲ သွက်မၞိဟ် မဟွံဗမံက်ယၟု၊ မၞိဟ်ဟွံဂွံကၠောန်လဝ် အကံက်တအ်ဏီ ဂွံပတိုန်လညာတ် ပါ်ပဲါရ၊၊</em>\nဟိုတ်ဂှ်ရ ပိုယ်ဒးစကာ မဂၞန် IP address သွက်ဂွံ တီညးတအ်ရ၊၊ IP address ဗီုဏအ်မွဲမွဲဂှ် ပါ်ပရအ်ဂွံ ညးလွပ် ဗွဲမဂၠိုင်ရ၊၊ ယဝ်ရ မၞးဂှ် ဒှ်ညးလွပ် မဟွံဗမံက်ယၟုမွဲ စှ်ေစိုတ် တင်ဂလာန်တအ်ဏအ်ဂှ် ဒှ်ဟွံထေက်မ္ဂး ပဂုန်တုဲ [[Special:CreateAccount|ခၞံကၠောန် အကံက်မွဲ]] ဟွံသေင်မ္ဂး [[Special:UserLogin|လုပ်လံက်အေန်]] သွက်ဂွံ ဝေင်ပဲါ ညးလွပ် မဟွံဗမံက်ယၟုတအ်တၞဟ်တအ်ရ၊၊",
+       "noarticletext": "ပ္ဍဲမုက်လိက်ဏအ် လိက်ဟွံမွဲဏီရ၊၊\nမၞး ဂၠာဲကေတ်  [[Special:Search/{{PAGENAME}}|search for this page title]] ပ္ဍဲမုက်လိက်တၞဟ်မ္ဂး ကလိဂွံမာန်ရောင်၊၊\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nဟွံသေင်မ္ဂး  [{{fullurl:{{FULLPAGENAME}}|action=edit}} ခၞံကၠောန် လိက်မုက်ဏအ်ညိ၊၊]</span>.",
+       "noarticletext-nopermission": "ပ္ဍဲမုက်လိက်ဏအ် လိက်ဟွံမဲဏီရ၊၊ မၞး ဂၠာဲကေတ် [[Special:Search/{{PAGENAME}}|search for this page title]] ပ္ဍဲမုက်လိက်တၞဟ်၊ဟွံသေင်မ္ဂး ကလိဂွံမာန်ရ၊၊ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, ဆဂး မၞးအခေါင် ခၞံကၠောန် မုက်လိက်ဏအ် ဟွံမဲ၊၊",
+       "userpage-userdoesnotexist-view": "အကံက် ညးလွပ် \"$1\" ဂှ် ဟွံဂွံပၠောပ်လဝ် စရင်၊၊",
+       "clearyourcache": "<strong>Note:</strong> After saving, you may have to bypass your browser's cache to see the changes.\n* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clicking <em>Reload</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)\n* <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)\n* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clicking <em>Refresh</em>, or press <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
+       "previewnote": "<strong>မုက်ဏအ်ဂှ် ဆကိုပ်ဗဗဵုဟေင်ရောင်ဂှ် ကဵုဂွံသတိညိ</strong>\nအရာမၞး မပြံင်လှာဲလဝ်တအ်ဂှ် ဟွံဂွံ ဂိုင်သိပ် ဏီရ!",
+       "continue-editing": "အာ ဇရေင် ဒၞာဲမပလေဝ်ဒါန်",
+       "editing": " $1 ပလေဝ်ဒါန်ဒၟံင်",
+       "creating": "မခၞံကၠောန်ဒၟံင် $1",
+       "editingsection": "ပလေဝ်ဒါန်ဒၟံင် (ဒကုတ်) $1",
+       "templatesused": "{{PLURAL:$1|Template|Templates}} မသုင်စောဲ ပ္ဍဲ မုက်လိက်ဏအ်:",
+       "templatesusedpreview": "{{PLURAL:$1|Template|Templates}} မစကာလဝ် ပ္ဍဲကိုပ်ဗဗဵုဏအ်-",
+       "template-protected": "(စဵုဒၞာလဝ်)",
+       "template-semiprotected": "(မစဵုဒၞာလဝ်-ကဝက်)",
+       "hiddencategories": "မုက်လိက်ဏအ်ဂှ် ဒှ်ဂကောံ ကု{{PLURAL:$1|1 hidden category|$1 hidden categories}}:",
+       "permissionserrors": "တင်သၠးအခေါင် ဗၠေတ်",
+       "permissionserrorstext-withaction": "မၞး ဟွံကလိဂွံလဝ် အခေါင် သွက် $2, အတိုင်ဗွဲသၟဝ်ဏအ်ရ၊၊ {{PLURAL:$1|ဟိုတ်|ဟိုတ်ဂမၠိုင်}}:$1",
+       "recreate-moveddeleted-warn": "<strong>သတိ - မုက်လိက် မဒးဒုင်ပလီုလဝ်တုဲ ခြာဟွံလအ်ဂှ် မၞး ကလေင်ခၞံကၠောန်ဒၟံင်ရ၊၊</strong>\nမုက်လိက်ဂှ် မၞးကလေင်ပလေဝ်ဒါန်ကၠောန် ထေက် ဟွံထေက်ဂှ် မၞးထေက် ကဵုဒးဗစာရဏာရ၊၊\n\nသွက်မၞး ဂွံဆဵုကေတ်မာန်ဂှ် တင်စၟတ်သမ္တီ ဒဒှ်မပလီု ကေုာံ မပြံင်ပဆုဲတအ်ဂှ် ထ္ၜးကဵုလဝ် ပ္ဍဲဒၞာဲဏအ်ရ၊၊",
+       "moveddeleted-notice": "မုက်လိက်ဏအ် ဒးဒုင် ပလီုထောအ်လဝ်ရ၊၊\nတင်စၟတ်သမ္တီ အရာမပလီု၊ မစဵုဒၞာ၊ မပြံင်လဝ် မုက်လိက်တအ်ဂှ် ဗၟံက်ထ္ၜးလဝ် ဗွဲသၟဝ်ဏအ် သွက်ဂွံနိဿဲ၊၊",
+       "content-model-wikitext": "ဖျုန်လိက်ဝဳကဳ",
+       "undo-failure": "ပရေင်ပလေဝ်ဒါန်ဂှ် ပတုဲဟွံဂွံ ဟိုတ်တုန် ဒၟာနူ မၞုံ ကုအခက်အခုဲ ပရေင်ပလေဝ်ဒါန် ဗွဲအပ္ဍဲ၊၊",
+       "viewpagelogs": "ဗဵု တင်စၟတ်သမ္တီ မုက်လိက်ဏအ်",
+       "currentrev-asof": "မူမဒါန်လဝ် လက္ကရဴအိုတ် နကဵု $1",
+       "revisionasof": "မူလိက်မပလေဝ်လဝ် နဒဒှ် $1",
+       "revision-info": "မူပလေဝ်ဒါန်လဝ် ပ္ဍဲ စၟတ်တ္ၚဲ နကဵု {{GENDER:$6|$2}}$7",
+       "previousrevision": "← မူလိက်မပလေဝ်လဝ် တြေံ",
+       "nextrevision": "မူမဒါန်လဝ် တၟိနူဂှ် →",
+       "currentrevisionlink": "မူမဒါန်လဝ် လက္ကရဴအိုတ်",
+       "cur": "ပစ္စုပ္ပန်",
+       "last": "ကိုပ်ဗဗဵု",
+       "histlegend": "တၞဟ်န ဂွံပတောအ်ၜတ် အကြာမူမပလေဝ်ဒါန်လဝ်တအ်ဂှ် ကဵုစၟတ် ပ္ဍဲခံက်အင်ရေဒဳယော radio boxes တုဲ ဍဵုenter ဟွံသေင်မ္ဂး ဍဵု ကောန်ဍေင် သၟဝ်ဂှ်ညိ၊၊ <br />Legend: <strong>({{int:cur}})</strong> = အရာမတၞဟ်ခြာ ကုမူလက္ကရဴအိုတ် <strong>({{int:last}})</strong> = အရာမတၞဟ်ခြာ ကုမူကၠာနူဂှ်၊၊ <strong>{{int:minoreditletter}}</strong> = မပလေဝ်ဒါန်လဝ် ညိည၊၊",
+       "history-fieldset-title": "ဂၠာဲ မူတြေံဂမၠိုင်",
+       "histfirst": "တြေံအိုတ်",
+       "histlast": "တၟိအိုတ်",
+       "history-feed-title": "လၟေင်အပြံင်အလှာဲ မူလိက်",
+       "history-feed-description": "လၟေင်အပြံင်အလှာဲ မပလေဝ်ဒါန်လဝ် ပ္ဍဲမုက်လိက်ဏအ် ပ္ဍဲကဵု ဝဳကဳ",
+       "history-feed-item-nocomment": "$1 ပ္ဍဲ $2",
+       "rev-delundel": "ပြံင်လှာဲ ဗီုပြင်မဂွံညာတ်ကေတ်",
+       "mergelog": "တင်စၟတ်သမ္တီ အရာမပံင်ပကောံလဝ်",
+       "history-title": "လၟေင်အပြံင်အလှာဲ မူမပလေဝ်ဒါန်လဝ် \"$1\"",
+       "difference-title": "အရာမတၞဟ်ခြာ အကြာ မူတၞဟ်ဂမၠိုင် \"$1\"",
+       "lineno": "လာင် $1-",
+       "compareselectedversions": "ၜတ်ကၞာတ် မူတၞဟ်ခြာ မရုဲစှ်လဝ်ဂမၠိုင်",
+       "editundo": "ဟွံပ",
+       "diff-empty": "(ဟွံ တၞဟ်ခြာ)",
+       "diff-multi-sameuser": "({{PLURAL:$1|မူတၞဟ် မၞုံအကြာ မွဲ|$1 မူတၞဟ် မၞုံအကြာဂမၠိုင်}} မခၞံကၠောန်လဝ် နကဵု ညးလွပ် တုပ်ပ်တအ်ဂှ် ဟွံထ္ၜးလဝ်ရ၊၊)",
+       "diff-multi-otherusers": "({{PLURAL:$1|မူတၞဟ် မၞုံအကြာ မွဲ|$1 မူတၞဟ် မၞုံအကြာဂမၠိုင်}} မခၞံကၠောဝန်လဝ် နကဵု{{PLURAL:$2|ညးလွပ်တၞဟ် မွဲ|$2 ညးလွပ်တၞဟ်ဂမၠိုင်}}ဂှ် ဟွံထ္ၜးလဝ်ရ၊၊)",
+       "searchresults": "သွဟ် မဂၠာဲ",
+       "searchresults-title": "သွဟ် မဂၠာဲ သွက် \"$1\"",
+       "prevn": "ကၠာ {{PLURAL:$1|$1}}",
+       "nextn": "ဂတ {{PLURAL:$1|$1}}",
+       "prevn-title": "မတုဲကၠုင် $1 {{PLURAL:$1|သွဟ်|သွဟ်ဂမၠိုင်}}",
+       "nextn-title": "ဆက်တုဲ $1 {{PLURAL:$1|သွဟ်|သွဟ်ဂမၠိုင်}}",
+       "shown-title": "ထ္ၜး $1 {{PLURAL:$1|သွဟ်|သွဟ်ဂမၠိုဟ်}} နကဵု မုက်လိက်",
+       "viewprevnext": "ဗဗဵု ($1 {{int:pipe-separator}} $2) ($3)",
+       "searchmenu-exists": "<strong>မုက်လိက် ယၟု\"[[:$1]]\" မွဲ ပ္ဍဲဝဳကဳ၊၊</strong> {{PLURAL:$2|0=|ရံင် ပ္ဍဲသွဟ် မဂၠာဲဆဵု တၞဟ်တအ်ကီုညိ၊၊}}",
+       "searchmenu-new": "<strong>ခၞံကၠောန် မုက်လိက်ဏအ်  \"[[:$1]]\" ပ္ဍဲဝဳကဳ!</strong> {{PLURAL:$2|0=|ကျောဝ် သီုကဵု မုက်လိက် မဂွံဆဵုကေတ် အတိုင်မၞးမဂၠာဲ| ကျောဝ် သီုကဵု သွဟ် မကလိဂွံ နူကဵု မဂၠာဲသ္ၚေဝ်}}",
+       "searchprofile-articles": "မုက်လိက် မာတိကာဂမၠိုင်",
+       "searchprofile-images": "မဳဒဳယာနာနာ",
+       "searchprofile-everything": "ဇၟာပ်ပ်အရာ",
+       "searchprofile-advanced": "ဆက်ဂၠာဲ",
+       "searchprofile-articles-tooltip": "ဂၠာဲ ပ္ဍဲ $1",
+       "searchprofile-images-tooltip": "ဂၠာဲ ဝှာင်",
+       "searchprofile-everything-tooltip": "ဂၠာဲ လိက် သီုဖအိုတ် (သီုကဵု နူ မုက်လိက်ဓရီုကျာ)",
+       "searchprofile-advanced-tooltip": "ဂၠာဲ ပ္ဍဲ ဒၞာဲယၟု",
+       "search-result-size": "$1 ({{PLURAL:$2|1 မလိက်|$2 မလိက်ဂမၠိုင်}})",
+       "search-result-category-size": "{{PLURAL:$1|1 ကောန်ဂကောံ|$1 ကောန်ဂကောံဂမၠိုင်}} ({{PLURAL:$2|1 ကဏ္ဍလစှ်ေ|$2 ကဏ္ဍလစှ်ေဂမၠိုင်}}, {{PLURAL:$3|1 ဝှာင်|$3 ဝှာင်ဂမၠိုင်}})",
+       "search-redirect": "(ကလေင်ထ္ၜး နူ $1)",
+       "search-section": "(သကုတ် $1)",
+       "search-file-match": "(ဝှာင် မကိတ်ညဳ ကုပရူပရာ)",
+       "search-suggest": "မၞး မိက်ဂွံဟီုဂှ် - $1",
+       "searchall": "သီုဖအိုတ်",
+       "search-showingresults": "{{PLURAL:$4|သွဟ် <strong>$1</strong> ကု <strong>$3</strong>|သွဟ်ဂမၠိုင်<strong>$1 – $2</strong> ကု <strong>$3</strong>}}",
+       "search-nonefound": "အရာမဂၠာဲသ္ၚေဝ်တအ်ဂှ် ဟွံဂွံဆဵုကေတ်",
+       "mypreferences": "မဒးဂၞပ်စိုတ်",
+       "group-bot": "ဗောတ်ဂမၠိုင်",
+       "group-sysop": "မၞိဟ်မကောပ်ကာဲဂမၠိုင်",
+       "grouppage-bot": "{{ns:project}}:ဗောတ်ဂမၠိုင်",
+       "grouppage-sysop": "{{ns:project}}:မၞိဟ်မကောပ်ကာဲဂမၠိုင်",
+       "right-writeapi": "အခေါင်အရာ ညးမချူ API",
+       "newuserlogpage": "စၟတ်သမ္တီ ညးလွပ် မခၞံကၠောန်လဝ်",
+       "rightslog": "တင်စၟတ်သမ္တီ အခေါင်အရာ ညးလွပ်",
+       "action-edit": "ပလေဝ်ဒါန် မုက်လိက် ဏအ်",
+       "action-createaccount": "ခၞံကၠောန် အကံက် ညးလွပ်ဏအ်",
+       "enhancedrc-history": "လၟေင်မပြံင်လှာဲလဝ်",
+       "recentchanges": "မပပြံင်လှာဲ လၟုဟ်",
+       "recentchanges-legend": "အရာမရုဲစှ် မပြံင်လှာဲ ပြဟ်ဟ်ဏအ်",
+       "recentchanges-summary": "ကလေင်သ္ၚေဝ်မဲ အရာမပြံင်လှာဲ ဂၠိုင်အိုတ် ပ္ဍဲ ဝဳကဳ ပ္ဍဲမုက်လိက်ဏအ်၊၊",
+       "recentchanges-noresult": "အပ္ဍဲ အပိုင်အခြာအခိင် မကဵုလဝ်ဂှ် ပရေင်ပြံင်လှာဲ မကိတ်ညဳ ကုကဆံင်မပိုင်ခြာလဝ် ဟွံမဲ၊၊",
+       "recentchanges-feed-description": "ကလေင်သ္ၚေဝ်မဲ အရာမပြံင်လှာဲ ဂၠိုင်အိုတ် ပ္ဍဲ ဝဳကဳ ပ္ဍဲ feed ဏအ်၊၊",
+       "recentchanges-label-newpage": "ပလေဝ်ဒါန်ဏအ် ခၞံဗဒှ်လဝ် မုက်လိက်တၟိ",
+       "recentchanges-label-minor": "ဣဏအ်ဂှ် ဒှ်အရာ မပလေဝ်ဒါန် ညိည",
+       "recentchanges-label-bot": "ပရေင်ပလေဝ်ပလေတ်ဏအ် ကၠောန်လဝ် နကဵု စက်ဗန်",
+       "recentchanges-label-unpatrolled": "အရာပလေဝ်ဒါန်ဏအ်ဂှ် ဟွံဂွံ စၟဳစၟတ်ဏီ",
+       "recentchanges-label-plusminus": "ဇမၞော် မုက်လိက်ဏအ် သၠာဲအာ နကဵု လၟိဟ်လျိုင်ဗာက်",
+       "recentchanges-legend-heading": "<strong>Legend:</strong>",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (also see [[Special:NewPages|list of new pages]])",
+       "rcfilters-filter-user-experience-level-registered-description": "လော့အင် ဝင်ထားသော တည်းဖြတ်သူများ",
+       "rcfilters-filter-user-experience-level-unregistered-description": "လော့အင် မဝင်ထားသော တည်းဖြတ်သူများ",
+       "rcfilters-filter-minor-label": "အသေးစား တည်းဖြတ်မှုများ",
+       "rcfilters-filtergroup-changetype": "ပြောင်းလဲမှု အမျိုးအစား",
+       "rcfilters-filter-pageedits-label": "စာမျက်နှာ တည်းဖြတ်မှုများ",
+       "rcnotefrom": "ဗွဲသၟဝ်ဝွံ {{PLURAL:$5|ဒှ် အရာမပြံင်လှာဲ|ဒှ် အရာမပြံင်လှာဲဂမၠိုင်}} စနူ<strong>$3, $4</strong> (စဵုကဵု <strong>$1</strong> ဂှ် ထ္ၜးလဝ်ရ)၊၊",
+       "rclistfrom": "ထ္ၜး အရာမပြံင်လှာဲတၟိတၟိ စနူ $2, $3",
+       "rcshowhideminor": "$1 ပလေဝ်ဒါန်လဝ် ညိည",
+       "rcshowhideminor-show": "ထ္ၜး",
+       "rcshowhideminor-hide": "ဗဒန်",
+       "rcshowhidebots": "$1 bots",
+       "rcshowhidebots-show": "ထ္ၜး",
+       "rcshowhidebots-hide": "ဗဒန်",
+       "rcshowhideliu": "$1 ညးလွပ် မစၟတ်သမ္တီလဝ်တုဲဂမၠိုင်",
+       "rcshowhideliu-show": "ထ္ၜး",
+       "rcshowhideliu-hide": "ဗဒန်",
+       "rcshowhideanons": "$1 ညးလွပ် ဟွံဗမံက်ယၟု",
+       "rcshowhideanons-show": "ထ္ၜး",
+       "rcshowhideanons-hide": "ဗဒန်",
+       "rcshowhidepatr": "$1 သွက်ဂွံ ပလေဝ်ဒါန်မင်မဲ",
+       "rcshowhidemine": "$1 ပလေဝ်ဒါန်လဝ် နကဵုအဲ",
+       "rcshowhidemine-show": "ထ္ၜး",
+       "rcshowhidemine-hide": "ဗဒန်",
+       "rclinks": "ထ္ၜး အောန်အိုတ် $1 ပြံင်လှာဲလဝ် မတုဲကၠုင် $2 တ္ၚဲ",
+       "diff": "တၞဟ်ခြာ",
+       "hist": "တင်ဂၞင်မတုဲကၠုင်",
+       "hide": "ဗဒန်",
+       "show": "ထ္ၜး",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ကြဴနူ ပြံင်ထောအ်တုဲ",
+       "rc-old-title": "တမ်မူလဂှ် ခၞံကၠောန်လဝ် နကဵုယၟု \"$1\"",
+       "recentchangeslinked": "အရာမဆက်စပ် ကု အပြံင်အလှာဲ",
+       "recentchangeslinked-feed": "တြးပတိတ် အပြံင်အလှာဲ",
+       "recentchangeslinked-toolbox": "တြးပတိတ် အပြံင်အလှာဲ",
+       "recentchangeslinked-title": "အရာမပြံင်လှာဲဂှ် ဆက်စပ်ဒၟံင် ကု \"$1\"",
+       "recentchangeslinked-summary": "စုတ် ယၟု မိက်လိက်မွဲ သွက်ဂွံဆဵု အရာမပြံင်လှာဲ ပ္ဍဲ လေန်မုက်လိက် ဟွံသေင်မ္ဂး နူကဵု မုက်လိက်ဏအ်၊၊ (သွက်ဂွံ ဆဵု ကောန်ဂကောံဂမၠိုင် ပ္ဍဲကဏ္ဍမွဲ၊ စုတ် {{ns:category}}:ယၟု ကဏ္ဍ). သၠာဲ ပ္ဍဲမုက်လိက် ပ္ဍဲ [[Special:Watchlist|your Watchlist]] ဒှ် ပ္ဍဲ <strong>bold</strong>.",
+       "recentchangeslinked-page": "ယၟု မုက်လိက်-",
+       "recentchangeslinked-to": "ထ္ၜး အရာပြံင်လှာဲ ပ္ဍဲလေန်မုက်လိက် သွက်ဂွံကဵု မုက်လိက် မၞးဒၞာဲ",
+       "upload": "ပတိုန်ပၠောပ် ဝှာင်",
+       "uploadlogpage": "တင်စၟတ်သမ္တီ အရာမ Upload ပတိုန်လဝ်",
+       "filedesc": "သကေမ်",
+       "license": "မစၟတ်သမ္တီလာင်ဇြေန်-",
+       "license-header": "မသ္ဂုတ်သွာတ်လာင်ဇြေန်",
+       "imgfile": "ဝှာင်",
+       "listfiles": "စရင်ဝှာင်",
+       "file-anchor-link": "ဝှာင်",
+       "filehist": "ဝှာင် လၟေင်အပြံင်အလှာဲ",
+       "filehist-help": "ဍဵု လတူ စၟတ်တ္ၚဲ/အခိင် မွဲမွဲ သွက်ဂွံ ထ္ၜးကဵု ဝှာင် မကတဵုဒှ်လဝ် ပ္ဍဲအခိင်ဂှ်၊၊",
+       "filehist-revert": "ကလေင်ပြံင်",
+       "filehist-current": "လၟုဟ်",
+       "filehist-datetime": "စၟတ်တ္ၚဲ/အခိင်",
+       "filehist-thumb": "ဗီုပြင်နမူနာ",
+       "filehist-thumbtext": "ဍဵုသၞေမ်ၝောအ်တဲ သွက်မူလိက် နကဵု $1",
+       "filehist-nothumb": "ဗီုပြင်နမူနာ ဟွံမဲ",
+       "filehist-user": "ညးလွပ်",
+       "filehist-dimensions": "ပမာဏ",
+       "filehist-comment": "တင်ပသောင်ကလး",
+       "imagelinks": "ဝှာင် ဗီုဂွံစကာ",
+       "linkstoimage": "အရာမဆက်ဗက်ကၠုင် {{PLURAL:$1|page links|$1 pages link}} ကုဝှာင်ဏအ် ဂမၠိုင်ဂှ် -",
+       "linkstoimage-more": "ဂၠိုင် နူ $1 {{PLURAL:$1|မုက်လိက် မဆက်စပ်|မုက်လိက် အဆက်စပ်ဂမၠိုင်}} ကုဝှာင်ဏအ်၊၊\nစရင်သၟဝ်ဏအ် ထ္ၜး{{PLURAL:$1|မုက်လိက် အဆက်စပ် ပထမ|ကၠာအိုတ် $1 မုက်လိက် အဆက်စပ်ဂမၠိုင်}} ကု ဝှာင်ဏအ်ဟေင်၊၊\nA [[Special:WhatLinksHere/$2|စရင် သီုဖအိုတ်လေဝ်]] ကလိဂွံမာန်ရ၊၊",
+       "nolinkstoimage": "မုက်လိက် မဆက်စပ် ကု ဝှာင်ဏအ် ဟွံဂွံဆဵုကေတ်ရ၊၊",
+       "linkstoimage-redirect": "$1 (ဝှာင် ကလေင်ပညုင်) $2",
+       "sharedupload-desc-here": "ဝှာင်ဏအ် ဒှ်ဝှာင် နူကဵု $1 တုဲ မဒှ်ဝှာင် မသုင်စောဲလဝ် နကဵုပရဝ်ဂျေတ် တၞဟ်လေဝ် ဒှ်မာန်ရ၊၊\nအရာမလဴထ္ၜး ပ္ဍဲဝှာင်တအ်ဂှ် [$2 မုက်လိက် မလဴထ္ၜး ဝှာင်] ထ္ၜးကဵုလဝ် အတိုင်ဗွဲသၟဝ်ဝွံရ၊၊",
+       "filepage-nofile": "ဝှာင် နကဵု ယၟုဏအ် ဟွံမွဲ၊၊",
+       "upload-disallowed-here": "မၞး ထပ်ချူစုတ် ပ္ဍဲ ဝှာင်ဏအ် ဟွံဂွံ၊၊",
+       "randompage": "မုက်လိက် ဇဟောမ်",
+       "statistics": "စရင်အင်",
+       "double-redirect-fixer": "ညးမပလေဝ် အရာမကလေင်စၞောန်ပညုင်",
+       "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
+       "nmembers": "$1 {{PLURAL:$1|ကောန်ဂကောံ|ကောန်ဂကောံဂမၠိုင်}}",
+       "prefixindex": "မုက်လိက် သီုဖအိုတ် နကဵု prefix",
+       "listusers": "စရင် ညးလွပ်",
+       "newpages": "မုက်လိက် တၟိ",
+       "move": "ပြံင်ပဆုဲ",
+       "pager-newer-n": "{{PLURAL:$1|တၟိနူ 1|တၟိနူ $1}}",
+       "pager-older-n": "{{PLURAL:$1|တြေံနူ 1|တြေံနူ $1}}",
+       "booksources": "လိက်ကၞပ် မနိဿဲဂမၠိုင်",
+       "booksources-search-legend": "ဂၠာဲ သွက် တမ်ရိုဟ် လိက်ကၞပ်",
+       "booksources-search": "ဂၠာဲ",
+       "specialloguserlabel": "ညးမရေင်တၠုင် -",
+       "speciallogtitlelabel": "တင်မရန်တၟအ် (က္ဍိုပ်လိက် ဟွံသေင်မ္ဂး {{ns:user}}:ယၟုညးလွပ် သွက် ညးလွပ်):",
+       "log": "လံက်",
+       "all-logs-page": "တင်စၟတ်သမ္တီ မပတိတ်တြး သီုဖအိုတ်",
+       "alllogstext": "{{SITENAME}}ဏအ်ဂှ် ဒှ်တင်သမ္တီ မပံင်ပ္ကောံလဝ် ၜိုတ်မကလိဂွံမာန်ရ၊၊\nနကဵု မရုဲစှ် ဂကူစၟတ်သမ္တီ၊ ယၟုညးလွပ် ဟွံသေင်မ္ဂး မုက်လိက် မစိုပ်တရဴတအ်တုဲ မၞးဖ္ဍန်ဖျေဟ် အရာမထ္ၜးတအ်မာန်ရ၊၊",
+       "logempty": "အရာမကိတ်ညဳ ပ္ဍဲ တင်စၟတ်သမ္တီ ဟွံမဲ၊၊",
+       "allpages": "မုက်လိက် သီုဖအိုတ်",
+       "allarticles": "မုက်လိက် သီုဖအိုတ်",
+       "allpagessubmit": "အာ",
+       "allpages-hide-redirects": "ပၞုက် အရာမကလေင်ပညုင်ဂမၠိုင်ညိ",
+       "categories": "ကဏ္ဍဂမၠိုင်",
+       "listgrouprights-members": "(စရင် ကောန်ဂကောံ)",
+       "emailuser": "ပလံင် အဳမေလ် ကုညးလွပ်ဏအ်",
+       "usermessage-editor": "သၞောတ် ပရိုင်မေတ်သေန်ဂျာ",
+       "watchlist": "စရင်မမင်မဲ",
+       "mywatchlist": "စရင်မမင်မဲ",
+       "watchlistfor2": "သွက် $1 $2",
+       "watch": "မင်မဲ",
+       "unwatch": "ဟွံမင်မဲ",
+       "watchlist-details": "{{PLURAL:$1|$1 မုက်လိက်ဂှ် နွံ|$1 မုက်လိက်တအ်ဂှ် နွံ}} ပ္ဍဲ စရင်မမင်မဲ မၞး (သီုကဵု မုက်လိက် ဓရီုကျာဂမၠိုင်).",
+       "wlheader-showupdated": "မုက်လိက် မပြံင်လှာဲလဝ် ကြဴနူ မၞးမလုပ်ဝေင်လဝ်တုဲတအ်ဂှ် ထ္ၜးလဝ် နကဵု <strong>အက္ခရ်တီုတီု</strong>.",
+       "wlnote": "ဗွဲသၟဝ်ဝွံ {{PLURAL:$1|ဒှ် အရာ မပြံင်လှာဲလဝ် လက္ကရဴအိုတ်ရ၊၊| ဒှ် အရာ မပြံင်လှာဲလဝ် လက္ကရဴအိုတ်ဂမၠိုင်ရ၊၊ <strong>$1</strong> အပြံင်အလှာဲ}} ပ္ဍဲအခိင် မအောန် နူ {{PLURAL:$2|နာဍဳ|<strong>$2</strong> နာဍဳ}}, ကု $3, $4.",
+       "wlshowlast": "လက္ကရဴအိုတ် $1 နာဍဳ $2 တ္ၚဲ ဂှ် ထ္ၜးညိ",
+       "watchlist-options": "အရာမရုဲစှ် သွက် စရင်မမင်မဲ",
+       "enotif_reset": "ကဵုစၟတ် ကုမုက်လိက် မဗဵုစိုပ်လဝ်တုဲ သီုဖအိုတ်",
+       "dellogpage": "တင်စၟတ်သမ္တီ အရာမဇိုတ်ပလီုလဝ်",
+       "rollbacklink": "ကလေင်",
+       "rollbacklinkcount": "ကလေင်အာ $1 {{PLURAL:$1|ပလေဝ်ဒါန်|ပလေဝ်ဒါန်ဂမၠိုင်}}",
+       "protectlogpage": "တင်စၟတ်သမ္တီ အရာမစဵုဒၞာဂမၠိုင်",
+       "protectedarticle": "မစဵုဒၞာလဝ် \"[[$1]]\"",
+       "modifiedarticleprotection": "ပြံင်လှာဲ ကဆံင်မစဵုဒၞာ သွက် မုက်လိက် \"[[$1]]\"",
+       "protect-default": "ကဵုအခေါင် ညးလွပ် သီုဖအိုတ်",
+       "restriction-edit": "ပလေဝ်ဒါန်",
+       "restriction-move": "ပြံင်ပဆုဲ",
+       "namespace": "ဒၞာဲယၟု",
+       "invert": "ဂတးထောအ် အရာမရုဲစှ်လဝ်",
+       "tooltip-invert": "Check this box to hide changes to pages within the selected namespace (and the associated namespace if checked)",
+       "namespace_association": "မပံင်ဗစိုပ် ကုဒၞာဲယၟု",
+       "tooltip-namespace_association": "Check this box to also include the talk or subject namespace associated with the selected namespace",
+       "blanknamespace": "(တမ်)",
+       "contributions": "{{GENDER:$1|User}} ပတိတ်တြး",
+       "contributions-title": "အရာမကၠောန်ဗဒှ် ညးလွပ် သွက် $1",
+       "mycontris": "အရာမကၠောန်လဝ်ဂမၠိုင်",
+       "anoncontribs": "အရာမကၠောန်လဝ်ဂမၠိုင်",
+       "contribsub2": "သွက် {{GENDER:$3|$1}} ($2)",
+       "nocontribs": "အရာမပလေဝ်ဒါန် မကိတ်ညဳ ကုတင်ဂၞင်တအ်ဂှ် ဟွံဂွံဆဵုကေတ်၊၊",
+       "uctop": "(လၟုဟ်)",
+       "month": "နူ ဂိတု (ကေုာံ ပြဟ်နူ)",
+       "year": "နူ သၞာံ (ကေုာံ ပြဟ်နူ):",
+       "sp-contributions-newbies": "ထ္ၜး အရာမကၠောန်ခၞံ နူကဵု အကံက်တၟိ ဟေင်",
+       "sp-contributions-blocklog": "စၟတ်သမ္တီ အရာမကၟာတ်ဗလံက်လဝ်",
+       "sp-contributions-uploads": "ပတိုန်ပၠောပ်",
+       "sp-contributions-logs": "တင်စၟတ်သမ္တီဂမၠိုင်",
+       "sp-contributions-talk": "ဓရီုကျာ",
+       "sp-contributions-search": "ဂၠာဲ သွက် အရာမရီုဗင်ကၠောန်ဂမၠိုင်",
+       "sp-contributions-username": "IP address ဟွံသေင်မ္ဂး ယၟုမသုင်စောဲ:",
+       "sp-contributions-toponly": "ထ္ၜး အရာမပလေဝ်ဒါန်လဝ် လက္ကရဴအိုတ်ဂှ် ဟေင်ညိ",
+       "sp-contributions-newonly": "ထ္ၜး မုက်လိက်မခၞံကၠောန်လဝ် ကၠာအိုတ်ဂှ် ဟေင်ညိ",
+       "sp-contributions-submit": "ဂၠာဲ",
+       "whatlinkshere": "မု အဆက်အစပ် ကုအရာဂှ်",
+       "whatlinkshere-title": "မုက်လိက် မဆက်လေန်လဝ် ကု \"$1\"",
+       "whatlinkshere-page": "မုက်လိက် -",
+       "linkshere": "မုက်လိက် ဗွဲသၟဝ်ဝွံ ဆက်စပ် ကဵု<strong>$2</strong>:",
+       "nolinkshere": "မုက်လိက် ဆက်စပ် ကု <strong>$2</strong> ဟွံမဲ၊၊",
+       "isredirect": "မုက်လိက် မကလေင်ထ္ၜး",
+       "istemplate": "အရာမထပ်ဗပေင်ပၠောပ်လဝ်",
+       "isimage": "လေန် ဝှာင်",
+       "whatlinkshere-prev": "{{PLURAL:$1|ကလေင်|ကလေင် $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|ဂတ|ဂတ $1}}",
+       "whatlinkshere-links": "← လေန်",
+       "whatlinkshere-hideredirs": "$1 ကလေင်ထ္ၜး",
+       "whatlinkshere-hidetrans": "$1 အရာမထပ်ဗပေင်ပၠောပ်လဝ်",
+       "whatlinkshere-hidelinks": "$1 လေန်",
+       "whatlinkshere-hideimages": "$1 ဝှာင်အဆက်အစပ်",
+       "whatlinkshere-filters": "ဖဍိုဟ်",
+       "ipboptions": "၂ နာဍဳ:2 hours,၁ တ္ၚဲ:1 day,၃တ္ၚဲ:3 days,၁ သတ္တဟ:1 week,၂သတ္တဟ:2 weeks,၁ ဂိတု:1 month,၃ ဂိတု:3 months,၆ ဂိတု:6 months,၁ သၞာံ:1 year,ဟွံချိုတ်ပၠိုတ်:infinite",
+       "infiniteblock": "မဟွံမဲကုအပိုင်အခြာ",
+       "blocklink": "ကၟာတ်ဗလံက်",
+       "contribslink": "တြးပတိတ်",
+       "blocklogpage": "စၟတ်သမ္တီ အရာမကၟာတ်ဗလံက်လဝ်",
+       "blocklogentry": "ကၟာတ်ဗလံက်လဝ် [[$1]] နကဵု အပိုင်အခြာအခိင်  $2 ဟိုတ်နူ $3",
+       "reblock-logentry": "ဒဒှ်မကၟာတ်လဒဵု ညးလွပ်  [[$1]] ဂှ် ပြံင်လှာဲလဝ် နကဵု တ္ၚဲလက္ကရဴအိုတ် $2 $3",
+       "block-log-flags-nocreate": "ပွမခၞံကၠောန် အကံက်ဂှ် ဟွံသၟဟ်ရထ",
+       "proxyblocker": "ညးမကၟာတ်စဵု proxy",
+       "movelogpage": "ပြံင်ပဆုဲ တင်စၟတ်သမ္တီ",
+       "export": "ပတိတ်တြး မုက်လိက်တအ်",
+       "thumbnail-more": "ဇၞော်ပတိုန်",
+       "importlogpage": "တင်စၟတ်သမ္တီ မပၠောပ်စုတ်",
+       "tooltip-pt-userpage": "မုက်လိက် {{GENDER:|မၞးမသုင်စောဲ}}",
+       "tooltip-pt-mytalk": "{{GENDER:|မုက်လိက် မၞး}} မဓရီုကျာ",
+       "tooltip-pt-preferences": "{{GENDER:|မၞး}} မဒးဂၞပ်စိုတ်ဂမၠိုင်",
+       "tooltip-pt-watchlist": "စရင် မုက်လိက် မၞး မင်မဲဒၟံင် သွက်ဂွံပြံင်လှာဲ",
+       "tooltip-pt-mycontris": "စရင် {{GENDER:|မၞး}} မကၠောန်ပတိတ်လဝ်ဂမၠိုင်",
+       "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": "အရာမပလေဝ်ဒါန်ကၠုင် မုက်လိက်ဏအ်",
+       "tooltip-ca-protect": "စဵုဒၞာ မုက်လိက်ဏအ်",
+       "tooltip-ca-delete": "ပလီု မုက်လိက်ဏအ်",
+       "tooltip-ca-move": "ပြံင်ပဆုဲ မုက်လိက်ဏအ်",
+       "tooltip-ca-watch": "စုတ် မုက်လိက်ဏအ် ပ္ဍဲစရင်မမင်မဲမၞး",
+       "tooltip-ca-unwatch": "ပတိတ်ထောအ် မုက်လိက်ဏအ် ပ္ဍဲစရင်မမင်မဲမၞး",
+       "tooltip-search": "ဂၠာဲ {{SITENAME}}",
+       "tooltip-search-go": "အတိုင်ယၟုဏအ် ယဝ်ရ နွံမ္ဂး အာ ဇရေင် မုက်လိက်ဂှ်",
+       "tooltip-search-fulltext": "ဂၠာဲ ပ္ဍဲမုက်လိက် နကဵု လိက်ဏအ်",
+       "tooltip-p-logo": "အာ မုက်လိက် တမ်",
+       "tooltip-n-mainpage": "အာ မုက်လိက် တမ်",
+       "tooltip-n-mainpage-description": "အာ မုက်လိက် တမ်",
+       "tooltip-n-portal": "ပရူပရဝ်ဂျေက်၊ မု မၞး မပဂွံ၊ အလဵု မၞး ဂွံဂၠာဲ အရာတအ်",
+       "tooltip-n-currentevents": "ဂၠာဲ တင်ဂၞင်ပရိုင် စပ်ကဵု သဘင်ဏအ်",
+       "tooltip-n-recentchanges": "စရင် မပလေဝ်လဝ် ပြဟ်ဟ်ဏအ် ပ္ဍဲ ဝဳကဳ",
+       "tooltip-n-randompage": "ပံက် မုက်လိက် ဇယောမ်",
+       "tooltip-n-help": "ဒၞာဲ သွက်ဂွံ ဂၠာဲ",
+       "tooltip-t-whatlinkshere": "စရင် မုက်လိက် ဝဳကဳ မဆက်စပ် ကု ပရူဏအ် သီုဖအိုတ်",
+       "tooltip-t-recentchangeslinked": "မပြံင်လှာဲ လၟုဟ် ပ္ဍဲမုက်လိက်ဏအ်ဂှ် ဆက်စပ်ဒၟံင် ကုမုက်လိက်ဏအ်",
+       "tooltip-feed-atom": "ဒၞာဲဗလးပတိတ် မုက်လိက်ဏအ်",
+       "tooltip-t-contributions": "စရင် မကၠောန်လဝ် နကဵု {{GENDER:$1|ညးလွပ်ဏအ်}}",
+       "tooltip-t-emailuser": "ပလံင် အဳမေလ် ကု {{GENDER:$1|မဒှ် ညးလွပ်ဏအ်}}",
+       "tooltip-t-upload": "ပတိုန်ပၠောပ် ဝှာင်",
+       "tooltip-t-specialpages": "စရင် မုက်လိက် တၟေင် သီုဖအိုတ်",
+       "tooltip-t-print": "မူမုက်လိက် မပြေန်ပ္တိတ်ဂွံ",
+       "tooltip-t-permalink": "ဌာန်ဒၟံင်လေန် လၟိုန် မုက်လိက် မကလေင်ပလေဝ်ဏအ်",
+       "tooltip-ca-nstab-main": "ဗဵု မုက်လိက် မာတိကာ",
+       "tooltip-ca-nstab-user": "ဗဵု မုက်လိက် ညးလွပ်",
+       "tooltip-ca-nstab-special": "မုက်လိက်ဏအ်ဂှ် ဒှ်မုက် တၟေင်၊ ဟိုတ်ဂှ်ရ ပလေဝ် ဟွံဂွံ",
+       "tooltip-ca-nstab-project": "ဗဵု မုက်လိက် ပရဝ်ဂျေတ်",
+       "tooltip-ca-nstab-image": "ဗဵု မုက်လိက် ဝှာင်",
+       "tooltip-ca-nstab-mediawiki": "ကျောဝ်ဗဵု သၞောတ် ပရိုင်မေတ်သုက်",
+       "tooltip-ca-nstab-template": "ကျောဝ်ဗဵု template",
+       "tooltip-ca-nstab-category": "ဗဵု မုက်လိက်ကဏ္ဍ",
+       "tooltip-minoredit": "ကဵုစၟတ် အရာဏအ် ဒဒှ်ရ မဒှ် အရာမပလေဝ်ဒါန် ညိည",
+       "tooltip-save": "ဂိုင်သိပ် အရာမၞး မပြံင်လှာဲလဝ်",
+       "tooltip-preview": "ကိုပ်ဗဗဵု အရာမၞး မပြံင်လှာဲလဝ်၊၊ ပဂုန်တုဲ ကၠာဟွံဂွံဂိုင်သိပ်ဂှ် ကၠောန်ကၠာညိ၊၊",
+       "tooltip-diff": "ထ္ၜး ဒၞာဲ မလိက် မၞးမပြံင်လှာဲလဝ်ဂှ်ညိ",
+       "tooltip-compareselectedversions": "ရံင် ဗီုတၞဟ်ခြာ အကြာ မူမပလေဝ်ဒါန်လဝ် ပ္ဍဲမုက်လိက်ဏအ် ဒၞာဲမရုဲစှ်လဝ် ၜါဂှ်",
+       "tooltip-watch": "စုတ် မုက်လိက်ဏအ် ပ္ဍဲစရင်မမင်မဲ မၞး",
+       "tooltip-rollback": "\"Rollback\" reverts the last contributor's edit(s) to this page in one click",
+       "tooltip-undo": "\"ဟွံကၠောန်\" ဂှ် ဒှ်အရာ မဟွံကၠောန်တုဲ ကလေင်အာ ဗီုအတိုင်တြေံ ကၠာဟွံဂွံစ ပလေဝ်လဝ်ဂှ်ရ၊၊ မုဟိုတ် ကလေင်အာ အတိုင်ဗီုတြေံပၠန်ဂှ် ချူစၟတ်သမ္တီ သကေံ မာန်ရ၊၊",
+       "tooltip-summary": "စုတ် သကေမ် summary ဇမၠေအ်",
+       "simpleantispam-label": "စၟဳစၟတ် အရာမပလီုပလာ်\n<strong>လ္ပ </strong> စုတ် ပ္ဍဲဏအ်ညိ!",
+       "pageinfo-title": "ပရိုင်တင်ဂၞင် သွက် \"$1\"",
+       "pageinfo-header-basic": "ပရိုင်တင်ဂၞင် သဇိုင်",
+       "pageinfo-header-edits": "လၟေင်စၟတ်သမ္တီ မပလေဝ်ဒါန်လဝ်",
+       "pageinfo-header-restrictions": "ပရေင်စဵုဒၞာ မုက်လိက်",
+       "pageinfo-header-properties": "ဒြပ်ရတ် မုက်လိက်",
+       "pageinfo-display-title": "က္ဍိုပ်ပရိုင် မထ္ၜးပျး",
+       "pageinfo-length": "ဇမၠိင် မုက်လိက် (နကဵု ဘာက်)",
+       "pageinfo-article-id": "မုက်လိက် ID",
+       "pageinfo-language": "မုက်လိက် အရေဝ်ဘာသာ ဖျုန်လိက်",
+       "pageinfo-content-model": "မုက်လိက် မဝ်ဒေလ် မာတိက",
+       "pageinfo-robot-policy": "ကၠောန်မာတိကာ index နကဵု စက်ရဝ်ဗတ်",
+       "pageinfo-robot-index": "မသၠးကဵုလဝ်အခေါင်",
+       "pageinfo-robot-noindex": "ဟွံကဵုလဝ်အခေါင်",
+       "pageinfo-watchers": "လၟိဟ် ပၟင်ပၟဲ မုက်လိက်",
+       "pageinfo-few-watchers": "အောန်နူ $1 {{PLURAL:$1|ပၟင်ပၟဲ|ပၟင်ပၟဲဂမၠိုင်}}",
+       "pageinfo-redirects-name": "လၟိဟ် မကလေင်ပညုင် ကုမုက်လိက်ဏအ်",
+       "pageinfo-subpages-name": "လၟိဟ် မုက်လိက်လစှ်ေ ဒဒက်တဴ ကုမုက်လိက်ဏအ်",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|အရာမကလေင်ပညုင်|အရာမကလေင်ပညုင်ဂမၠိုင်}}; $3 {{PLURAL:$3|ဟွံမဲ-အရာမကလေင်ပညုင်|ဟွံမဲ-အရာမကလေင်ပညုင်ဂမၠိုင်}})",
+       "pageinfo-firstuser": "ညးမခၞံဗဒှ် မုက်လိက်",
+       "pageinfo-firsttime": "စၟတ်တ္ၚဲ မခၞံဗဒှ်လဝ် မုက်လိက်",
+       "pageinfo-lastuser": "မပလေဝ်ဒါန်လဝ် လက္ကရဴအိုတ်",
+       "pageinfo-lasttime": "စၟတ်တ္ၚဲ မပလေဝ်ဒါန်လဝ် လက္ကရဴအိုတ်",
+       "pageinfo-edits": "လၟိဟ် မပလေဝ်ဒါန်လဝ် သီုဖအိုတ်",
+       "pageinfo-authors": "လၟိဟ် အစာချူလိက် သီုဖအိုတ်",
+       "pageinfo-recent-edits": "လၟိဟ် အရာမပလေဝ်ဒါန်လဝ် ပြဟ်ဟ်ဏအ် (အပ္ဍဲ $1)",
+       "pageinfo-recent-authors": "လၟိဟ် အစာချူလိက် ပြဟ်ဟ်ဏအ်",
+       "pageinfo-magic-words": "မှဝ် {{PLURAL:$1|မလိက်|မလိက်ဂမၠိုင်}} ($1)",
+       "pageinfo-hidden-categories": "ပၞုက် {{PLURAL:$1|ကဏ္ဍ|ကဏ္ဍဂမၠိုင်}} ($1)",
+       "pageinfo-templates": "မကၠောန် Transcluded လဝ် {{PLURAL:$1|template|templates}} ($1)",
+       "pageinfo-toolboxlink": "မုက်လိက် ပရိုင်တင်ဂၞင်",
+       "pageinfo-contentpage": "ရိုဟ်လၟိဟ် နဒဒှ် မုက်လိက် မာတိကာ",
+       "pageinfo-contentpage-yes": "ယွံ",
+       "patrol-log-page": "တင်စၟတ်သမ္တီ အရာမစဳစောတ်ကောပ်ကာဲ",
+       "previousdiff": "← အရာမပလေဝ်ဒါန်လဝ် တြေံ",
+       "nextdiff": "မပလေဝ်ဒါန်လဝ် တၟိနူဂှ် →",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|မုက်လိက်|မုက်လိက်ဂမၠိုင်}}",
+       "file-info-size": "$1 × $2 pixels, file size: $3, MIME type: $4",
+       "file-info-size-pages": "$1 × $2 pixels, ဇမၞော် ဝှာင်: $3, MIME ဂကူ: $4, $5 {{PLURAL:$5|မုက်လိက်|မုက်လိက်ဂမၠိုင်}}",
+       "file-nohires": "resolution ခိုဟ် နူဏအ် ဟွံဂွံဆဵုရ၊၊",
+       "svg-long-desc": "SVG ဝှာင်, မိက်ကဵုကသပ် $1 × $2 pixels, ဇမၞော် ဝှာင်: $3",
+       "show-big-image": "ဝှာင် တမ်မူလ",
+       "show-big-image-preview": "ဇမၞော် ကိုပ်ဗဗဵုဏအ် - $1",
+       "show-big-image-other": "တၞဟ် {{PLURAL:$2|resolution|resolutions}}: $1.",
+       "show-big-image-size": "$1 × $2 pixels",
+       "metadata": "Metadata",
+       "metadata-help": "ပ္ဍဲဝှာင်ဏအ်ဂှ် နွံဒၟံင် နကဵုအရာမဗပေင်စုတ်လဝ်ရ၊၊ မဒှ်အရာ မဗပေင်စုတ်လဝ် နူကဵု ကမ္မရာ ဒဳဂျဳတေဝ် ဟွံသေင်မ္ဂး နူသကေန်နာ မွဲမွဲ ဒှ်မာန်ရ၊၊\nယဝ်ရ ဝှာင်ဂှ် ဒးဒုင်ပလေဝ်ပလေတ် နူတမ်မူလဍေဟ်မ္ဂး၊ အရာလ္ၚဵုတအ်ဂှ် ဟွံမံက် ပ္ဍဲဝှာင်ဂှ် ဒှ်မာန်ရ၊၊",
+       "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "ဒဒှ်မဖျေဟ်ဗီုပြင်မုက်",
+       "exif-xresolution": "သွဟ် ဂၠံင်လၞင်",
+       "exif-yresolution": "သွဟ် ဂၠံင်စှ်ေ",
+       "exif-datetime": "ဝှာင် ပြံင်လှာဲ စၟတ်တ္ၚဲ ကေုာံ အခိင်",
+       "exif-make": "ညးမကၠောန်ပတိတ် ကမ္မရာ",
+       "exif-model": "မဝ်ဒေလ် ကမ္မရာ",
+       "exif-software": "သပ်ဝဴ မစကာလဝ်",
+       "exif-exifversion": "Exif version",
+       "exif-colorspace": "ဒၞာဲ အသာ်",
+       "exif-datetimeoriginal": "စၟတ်တ္ၚဲ ကေုာံ အခိင် မခၞံဗဒှ် ဒါတာ",
+       "exif-datetimedigitized": "စၟတ်တ္ၚဲ ကေုာံ အခိင် မပြံင်လှာဲ နကဵုဒဳဂျဳတေဝ်",
+       "exif-orientation-1": "ဓမ္မတာ",
+       "namespacesall": "သီုဖအိုတ်",
+       "monthsall": "သီုဖအိုတ်",
+       "imgmultipagenext": "မုက်လိက်ဂတ →",
+       "imgmultigo": "အာ!",
+       "imgmultigoto": "အာ ဇရေင် မုက်လိက် $1",
+       "watchlisttools-clear": "ဖအး စရင်မမင်မွဲဂှ်",
+       "watchlisttools-view": "ဗဵု အရာမပြံင်လှာဲထေက်တအ်",
+       "watchlisttools-edit": "ဗဵု ကေုာံ ပလေဝ် စရင်မမင်မဲ",
+       "watchlisttools-raw": "ပလေဝ် စရင်မမင်မဲ အပြောမ်",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ဓရီု]])",
+       "redirect": "ကလေင်စၞောန်ပညုင်လဝ် နကဵု ဝှာင်၊ ညးလွပ်၊ မုက်လိက်၊ မူမပလေဝ်ဒန်လဝ် ဟွံသေင်မ္ဂး အာင်ဒဳ",
+       "redirect-summary": "မုက်လိက်တၟေင်ဏအ် ကလေင်စၞောန် ကဵု ဝှာင်(မကဵုလဝ်ယၟု), မုက်လိက်မွဲ (given a revision ID or page ID), မုက်လိက် ညးမသုင်စောဲမွဲ (given a numeric user ID), ဟွံသေင်မ္ဂး တင်စၟတ်သမ္တီမွဲ (given the log ID). Usage: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
+       "redirect-submit": "အာ",
+       "redirect-lookup": "ဂၠာဲသ္ၚေဝ်",
+       "redirect-value": "ၚုဟ်မး -",
+       "redirect-user": "အာင်ဒဳ ညးလွပ်",
+       "redirect-page": "မုက်လိက် အာင်ဒဳ",
+       "redirect-revision": "မုက်လိက် မူမပလေဝ်ဒါန်",
+       "redirect-file": "ယၟုဝှာင်",
+       "specialpages": "မုက်လိက် တၟေင်",
+       "tag-filter": "[[Special:Tags|Tag]] ဝှာင်ဂမၠိုင်:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
+       "tags-active-yes": "ယွံ",
+       "tags-active-no": "ဟအှ်ေ",
+       "tags-hitcount": "$1 {{PLURAL:$1|ပြံင်လှာဲ|ပြံင်လှာဲဂမၠိုင်}}",
+       "logentry-delete-delete": "$3 မုက်လိက်ဂှ် $1 {{GENDER:$2|ပလီုထောအ်လဝ်ရ}}",
+       "logentry-delete-restore": "$1 {{GENDER:$2|ကလေင်ပ္တန်}} မုက်လိက် $3 ($4)",
+       "logentry-delete-revision": "ပ္ဍဲမုက်လိက် $3: $4 ဂှ် $1 {{GENDER:$2|ပြံင်လှာဲလဝ်}} ဗီုပြင် မုက်လိက် {{PLURAL:$5|မူလိက်မဒါန်လဝ် မွဲ|$5 မူလိက်မဒါန်လဝ်ဂမၠိုင်}}",
+       "revdelete-content-hid": "ဒဒှ် မပၞုက် ပရူပရာ",
+       "logentry-move-move": "$1 {{GENDER:$2|ပြံင်ပဆုဲလဝ်}} မုက်လိက် $3 ဇရေင် $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|ပြံင်ပဆုဲလဝ်}} မုက်လိက် $3 ဇရေင် $4 သီုကဵု ဟွံဂွံ ဂိုင်စွံလဝ် မကလေင်ပညုင်",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|ပြံင်ပဆုဲလဝ်}} မုက်လိက် $3 ဇရေင် $4 နကဵု မကလေင်ပညုင်",
+       "logentry-patrol-patrol-auto": "ပရေင်ပလေဝ်ဒါန် $3 ပ္ဍဲ $4 ဂှ် $1 ညးမင်သ္ၚေဝ်မဲဒၟံင် {{GENDER:$2|မကဵုစၟတ်}}အလဵုလဵုရ၊၊",
+       "logentry-newusers-create": "အကံက် ညးလွပ် $1 ဂှ် {{GENDER:$2|ခၞံကၠောန်လဝ်}}",
+       "logentry-newusers-autocreate": "အကံက် ညးလွပ် $1 ဂှ် {{GENDER:$2|ခၞံကၠောန်လဝ်}} အလဵုအလဵုရ၊၊",
+       "logentry-upload-upload": "$1  {{GENDER:$2|ပတိုန်ပၠောပ်လဝ်}} $3",
+       "logentry-upload-overwrite": "$1 {{GENDER:$2|ပလံင်ပၠောပ်လဝ်}} မူလိက် $3ဏအ် တၟိမွဲ",
+       "searchsuggest-search": "ဂၠာဲ {{SITENAME}}",
+       "duration-days": "$1 {{PLURAL:$1|တ္ၚဲ|တ္ၚဲဂမၠိုင်}}",
+       "randomrootpage": "တမ် မုက်လိက် ဇဟောမ်"
+}
index 0654d77..c1c9d19 100644 (file)
@@ -28,7 +28,7 @@
                        "Dr Lotus Black"
                ]
        },
-       "tog-underline": "လင့်ကို မျဉ်းသားသည့် ပုံစံ -",
+       "tog-underline": "လင့်ကို မျဉ်းသားသည့် ပုံစံ:",
        "tog-hideminor": "အရေးမကြီးသော တည်းဖြတ်မှုများကို လတ်တလော အပြောင်းအလဲများမှ ဝှက်ရန်",
        "tog-hidepatrolled": "လတ်တလော အပြောင်းအလဲများတွင် ကင်းလှည့်တည်းဖြတ်မှုများကို ဝှက်ရန်",
        "tog-newpageshidepatrolled": "စာမျက်နှာသစ်စာရင်းတွင် ကင်းလှည့်စာမျက်နှာများကို ဝှက်ရန်",
        "period-pm": "ညနေ",
        "pagecategories": "{{PLURAL:$1|ကဏ္ဍ|ကဏ္ဍများ}}",
        "category_header": "ကဏ္ဍ \"$1\" မှ စာမျက်နှာများ",
-       "subcategories": "ကဏ္ဍခွဲ",
+       "subcategories": "ကဏ္ဍခွဲများ",
        "category-media-header": "ကဏ္ဍ \"$1\" မှ မီဒီယာ",
        "category-empty": "<em>ဤကဏ္ဍသည် လက်ရှိတွင် စာမျက်နှာများ သို့မဟုတ် မီဒီယာများ မရှိပါ။</em>",
        "hidden-categories": "{{PLURAL:$1|ဝှက်ထားသော ကဏ္ဍ|ဝှက်ထားသော ကဏ္ဍများ}}",
        "noindex-category": "အက္ခရာမစဉ်ထားသော စာမျက်နှာများ",
        "broken-file-category": "ကျိုးပျက်နေသော ဖိုင်လင့်များပါသည့် စာမျက်နှာများ",
        "about": "အကြောင်း",
-       "article": "စာမျက်နှာ",
+       "article": "á\80\99á\80¬á\80\90á\80­á\80\80á\80¬á\80\85á\80¬á\80\99á\80»á\80\80á\80ºá\80\94á\80¾á\80¬",
        "newwindow": "(ဝင်းဒိုးအသစ်တစ်ခုတွင် ဖွင့်ရန်)",
        "cancel": "မ​လုပ်​တော့​",
        "moredotdotdot": "နောက်ထပ်...",
        "history_short": "ရာဇဝင်",
        "history_small": "ရာဇဝင်",
        "updatedmarker": "နောက်ဆုံးကြည့်ပြီးသည့်နောက်ပိုင်း တည်းဖြတ်ထားသည်။",
-       "printableversion": "á\80\95á\80\9bá\80\84á\80·á\80ºá\80\91á\80¯á\80\90á\80ºá\80\9bá\80\94á\80º",
+       "printableversion": "á\80\95á\80\9bá\80\84á\80·á\80ºá\80\91á\80¯á\80\90á\80ºá\80\94á\80­á\80¯á\80\84á\80ºá\80\9eá\80±á\80¬ á\80\97á\80¬á\80¸á\80\9bá\80¾á\80\84á\80ºá\80¸",
        "permalink": "ပုံ​သေ​လိပ်​စာ​",
        "print": "ပရင့်",
        "view": "ကြည့်ရန်",
        "viewsourcetext": "ဤစာမျက်နှာ၏ ရင်းမြစ်ကို ကြည့်ရှု၍ ကူးယူနိုင်သည်။",
        "viewyourtext": "ဤစာမျက်နှာရှိ <strong>သင့်တည်းဖြတ်မှုများ</strong>၏ ရင်းမြစ်ကို ကြည့်ရှုပြီး ကူးယူနိုင်သည်။",
        "editinginterface": "<strong>သတိပေးချက်။</strong> သင်သည် ဆော့ဖ်ဝဲလ်၏ အသွင်အပြင်စာသားများကို အထောက်အကူပြုရာတွင် သုံးသော စာမျက်နှာအား တည်းဖြတ်နေသည်။\nဤစာမျက်နှာတွင် ပြောင်းလဲမှုများသည် ဤဝီကီရှိ အခြားအသုံးပြုသူများ၏ အသုံးပြုသူ အသွင်အပြင်များအပေါ် အကျိုးသက်ရောက်ပါလိမ့်မည်။",
+       "translateinterface": "ဝီကီများအားလုံးအတွက် ဘာသာပြန်များကို ပေါင်းထည့်၊ ပြင်ဆင်ရန်အတွက် မီဒီယာဝီကီ၏ ဒေသတွင်းပြုမှု ပရောဂျက် [https://translatewiki.net/ translatewiki.net] ကို အသုံးပြုပါ။",
        "namespaceprotected": "'''$1''' စာညွှန်းဖြင့် စာမျက်နှာကို တည်းဖြတ်ရန် ခွင့်ပြုချက် မရှိပါ။",
        "mycustomcssprotected": "ဤ CSS စာမျက်နှာကို သင်တည်းဖြတ်ပြင်ဆင်ခွင့် မရှိပါ။",
        "mycustomjsprotected": "ဤ JavaScript စာမျက်နှာကို သင်တည်းဖြတ်ပြင်ဆင်ခွင့် မရှိပါ။",
        "myprivateinfoprotected": "သင်သည် သင်၏ ပုဂ္ဂိုလ်ရေးရာ အချက်အလက်များကို ပြင်ဆင်ခွင့် မရှိပါ။",
        "mypreferencesprotected": "သင်သည် သင်၏ ရွေးချယ်စရာများကို ပြင်ဆင်ခွင့်မရှိပါ။",
        "ns-specialprotected": "အထူးစာမျက်နှာများကို တည်းဖြတ်မရနိုင်ပါ။",
+       "titleprotected": "ဤခေါင်းစဉ်ကို ဖန်တီးခြင်းမှ [[User:$1|$1]]က ကာကွယ်ထားသည်။ ပေးထားသော အကြောင်းပြချက်မှာ <em>$2</em> ဖြစ်သည်။",
+       "invalidtitle": "မဆီလျော်သော ခေါင်းစဉ်",
        "exception-nologin": "အကောင့် မဝင်ထားပါ",
        "exception-nologin-text": "ဤစာမျက်နှာကို ကြည့်ရှုနိုင်ရန် သို့မဟုတ် အခြားလုပ်ဆောင်ချက်များ ခွင့်ပြုချက်ရရှိရန် ကျေးဇူးပြု၍ အကောင့်ဝင်ပါ။",
        "exception-nologin-text-manual": "ဤစာမျက်နှာကို ဝင်ရောက်နိုင်ရန် သို့မဟုတ် အခြားလုပ်ဆောင်ချက်များ ရရှိနိုင်ရန် ကျေးဇူးပြု၍ $1 ပါ။",
        "cannotlogoutnow-text": "$1 ကိုအသုံးပြုနေစဉ်အတွင်း အကောင့်ထွက်ရန် မဖြစ်နိုင်ပါ။",
        "welcomeuser": "ကြိုဆိုပါတယ် $1!",
        "welcomecreation-msg": "သင့်အကောင့်အား ဖန်တီးပြီးပါပြီ။\nသင် ဆန္ဒရှိပါက {{SITENAME}} [[Special:Preferences|ပုဂ္ဂိုလ်ရေးအချက်အလက်များ]]ကို ပြောင်းလဲနိုင်ပါသည်။",
-       "yourname": "အသုံးပြုသူအမည် -",
+       "yourname": "အသုံးပြုသူအမည်:",
        "userlogin-yourname": "အသုံးပြုသူအမည်",
        "userlogin-yourname-ph": "သင်၏ အသုံးပြုသူအမည် ရိုက်ထည့်ပါ",
        "createacct-another-username-ph": "အသုံးပြုသူအမည် ရိုက်ထည့်ပါ",
        "pt-login-continue-button": "ဆက်လက် ဝင်ရောက်ပါ",
        "pt-createaccount": "အကောင့် ဖန်တီးရန်",
        "pt-userlogout": "အကောင့်ထွက်ရန်",
+       "user-mail-no-addy": "အီးမေးလ်လိပ်စာမရှိဘဲ အီးမေးလ်ပို့ကြည့်ခဲ့သည်။",
        "changepassword": "စကားဝှက် ပြောင်းရန်",
        "resetpass_announce": "လော့ဂ်အင်ဝင်ရောက်ခြင်း ပြီးမြောက်ရန် စကားဝှက်အသစ် ပေးရမည် ဖြစ်သည်။",
        "resetpass_header": "အကောင့်စကားဝှက်ပြောင်းရန်",
        "resetpass-submit-cancel": "မလုပ်တော့ပါ",
        "resetpass-recycled": "သင်၏ လက်ရှိစကားဝှက်ထက် အခြားစကားဝှက်တစ်ခုခုကို ပြောင်းလဲပေးပါ။",
        "resetpass-temp-emailed": "ယာယီစကားဝှက်ကုဒ်ဖြင့် ဝင်ထားပါသည်၊ အပြီးသတ်ရန် စကားဝှက်အသစ်တစ်ခု ဤနေရာတွင် ဆောင်ရွက်ရပါမည်။",
-       "resetpass-temp-password": "ယာယီစကားဝှက် -",
+       "resetpass-temp-password": "ယာယီစကားဝှက်:",
        "resetpass-expired": "သင်၏ စကားဝှက် သက်တမ်းကုန်သွားပါသည်။ လော့အင်ဝင်ရန် စကားဝှက်အသစ် သတ်မှတ်ပါ။",
        "passwordreset": "စကားဝှက်အသစ် ပြုလုပ်ရန်",
-       "passwordreset-username": "အသုံးပြုသူအမည် :",
-       "passwordreset-email": "အီးမေး လိပ်စာ :",
+       "passwordreset-username": "အသုံးပြုသူအမည်:",
+       "passwordreset-domain": "ဒိုမိန်း:",
+       "passwordreset-email": "အီးမေးလ် လိပ်စာ:",
        "passwordreset-emailtitle": "{{SITENAME}} ရှိ အကောင့် အသေးစိတ်",
        "passwordreset-emailelement": "အသုံးပြုသူအမည်:\n$1\n\nယာယီ စကားဝှက်:\n$2",
        "passwordreset-invalidemail": "တရားမဝင်သော အီးမေးလ်လိပ်စာ",
        "whitelistedittext": "စာမျက်နှာများကို တည်းဖြတ်ရန် $1ရမည်။",
        "nosuchsectiontitle": "အပိုင်းကို ရှာမရနိုင်ပါ",
        "loginreqtitle": "login ဝင်ထားရန် လိုသည်",
-       "loginreqlink": "log in ဝင်",
+       "loginreqlink": "အကောင့်ဝင်ရန်",
        "loginreqpagetext": "အခြားစာမျက်နှာများကို ကြည့်ရန် $1ရမည်။",
        "accmailtitle": "စကားဝှက်ကို ပို့ပြီးပြီ",
        "newarticle": "(အသစ်)",
        "userpage-userdoesnotexist-view": "အသုံးပြုသူအကောင့် \"$1\" သည် မှတ်ပုံမတင်ထားပါ။",
        "blocked-notice-logextract": "ဤအသုံးပြုသူအား လတ်တလောတွင် ပိတ်ပင်ထားသည်။\nနောက်ဆုံးပိတ်ပင်မှု မှတ်တမ်းအား ကိုးကားနိုင်ရန် အောက်တွင် ဖော်ပြထားသည်။",
        "clearyourcache": "<strong>မှတ်ချက်။</strong> သိမ်းဆည်းလိုက်ပြီးသည့်နောက် ပြောင်းလဲမှုများ မြင်ရနိုင်ရန် သင့်အနေဖြင့် ဘရောက်ဇာ၏ cache အား ဖြတ်ကျော်နိုင်ရန် လိုအပ်ပါသည်။\n* <strong>Firefox / Safari:</strong> <em>Reload</em> ကို နှိပ်နေစဉ်အတွင်း <em>Shift</em> ကို ဖိထားပါ၊ သို့မဟုတ် <em>Ctrl-F5</em> သို့ <em>Ctrl-R</em> (Mac တွင် <em>⌘-R</em>) ကို နှိပ်ပါ။\n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> (Mac တွင် <em>⌘-Shift-R</em>) ကို နှိပ်ပါ။\n* <strong>Internet Explorer:</strong> <em>Refresh</em> ကို နှိပ်နေစဉ်အတွင်း <em>Ctrl</em> ကို ဖိထားပါ၊ သို့မဟုတ် <em>Ctrl-F5</em> ကို နှိပ်ပါ။\n* <strong>Opera:</strong> <em>Menu → Settings</em> (Mac တွင် <em>Opera → Preferences</em>) သို့ သွားပြီး <em>Privacy & security → Clear browsing data → Cached images and files</em> ကို ပြုလုပ်ပါ။",
-       "note": "'''မှတ်ချက် -'''",
+       "updated": "(မွမ်းမံပြီး)",
+       "note": "<strong>မှတ်စု:</strong>",
        "previewnote": "<strong>ဤသည်မှာ နမူနာ ကြည့်နေခြင်းသာဖြစ်ကြောင်း မမေ့ပါနှင့်။</strong>\nသင်ပြောင်းလဲထားသည်များကို မသိမ်းရသေးပါ။",
        "continue-editing": "တည်းဖြတ်ဧရိယာသို့ သွားရန်",
        "editing": "$1 ကို တည်းဖြတ်နေသည်",
        "postedit-confirmation-restored": "စာမျက်နှာကို ပြန်လည်ထိန်းသိမ်းပြီးပြီ။",
        "postedit-confirmation-saved": "သင့်တည်းဖြတ်မှုကို သိမ်းဆည်းပြီးပြီ။",
        "edit-already-exists": "စာမျက်နှာအသစ်တစ်ခု မဖန်တီးနိုင်ပါ။\nယင်းစာမျက်နှာ တည်ရှိပြီး ဖြစ်သည်။",
+       "invalid-content-data": "မဆီလျော်သော မာတိကာဒေတာ",
+       "content-not-allowed-here": "\"$1\" မာတိကာကို [[$2]] စာမျက်နှာပေါ်တွင် ခွင့်မပြုပါ။",
+       "editpage-invalidcontentmodel-title": "မာတိကာမော်ဒယ်သည် မထောက်ပံ့ထားပါ",
+       "editpage-invalidcontentmodel-text": "မာတိကာမော်ဒယ် \"$1\" သည် မထောက်ပံ့ထားပါ။",
+       "editpage-notsupportedcontentformat-title": "မာတိကာပုံစံသည် မထောက်ပံ့ထားပါ",
+       "editpage-notsupportedcontentformat-text": "မာတိကာပုံစံ $1 အား မာတိကာမော်ဒယ် $2 မှ မထောက်ပံ့ထားပါ။",
        "content-model-wikitext": "ဝီကီစာသား",
        "duplicate-args-category": "တမ်းပလိတ်တွင်းရှိ arguments ထပ်နေသော စာမျက်နှာများ",
        "post-expand-template-inclusion-warning": "'''သတိပေးချက် -''' တမ်းပလိတ်အရွယ်အစား ကြီးလွန်းနေသည်။\nအချို့တမ်းပလိတ်တို့ ပါဝင်မည်မဟုတ်။",
        "currentrev-asof": "$1 က နောက်ဆုံး တည်းဖြတ်မူ",
        "revisionasof": "$1 ရက်နေ့က မူ",
        "revision-info": "$1 နေ့က {{GENDER:$6|$2}}$7 တည်းဖြတ်သည့်မူ",
-       "previousrevision": "မူဟောင်း",
+       "previousrevision": "← မူဟောင်း",
        "nextrevision": "ပိုသစ်သော တည်းဖြတ်မူ →",
        "currentrevisionlink": "နောက်ဆုံး မူ",
        "cur": "လက်ရှိ",
        "history-show-deleted": "ဖျက်ထားသော မူများသာ",
        "histfirst": "အဟောင်းဆုံး",
        "histlast": "အသစ်ဆုံး",
+       "historysize": "({{PLURAL:$1|1 ဘိုက်|$1 ဘိုက်}})",
        "historyempty": "(ဘာမှမရှိ)",
        "history-feed-title": "မူရာဇဝင်မှတ်တမ်း",
        "history-feed-description": "ဝီကီပေါ်ရှိ ဤစာမျက်နှာ၏ တည်းဖြတ်မှုရာဇဝင်",
        "revdel-restore": "မည်မျှ ရှုမြင်နိုင်သည်ကို ပြောင်းရန်",
        "pagehist": "စာမျက်နှာ မှတ်တမ်း",
        "deletedhist": "ဖျက်ပစ်လိုက်သော မှတ်တမ်း",
+       "revdelete-reason-dropdown": "*ယေဘုယျ ဖျက်ပစ်ခြင်း အကြောင်းပြချက်များ\n** မူပိုင်ခွင့် ချိုးဖောက်မှု\n** မသင့်တော်သောမှတ်ချက် သို့ ပုဂ္ဂိုလ်ရေးအချက်အလက်\n** မသင့်တော်သော အသုံးပြုသူအမည်\n** အသရေဖျက်နိုင်ခြေရှိသော အချက်အလက်",
        "revdelete-otherreason": "အခြားသော/နောက်ထပ် အကြောင်းပြချက် -",
        "revdelete-reasonotherlist": "အခြား အကြောင်းပြချက်",
        "revdelete-edit-reasonlist": "ဖျက်ပစ်လိုက်ရသော အကြောင်းရင်းများကို တည်းဖြတ်ရန်",
        "mergehistory-go": "ပေါင်းစည်းနိုင်သော တည်းဖြတ်မှုများကို ပြရန်",
        "mergehistory-submit": "မူများကို ပေါင်းရန်",
        "mergehistory-empty": "ပေါင်းစည်းနိုင်သော မူများ မရှိပါ။",
+       "mergehistory-fail-invalid-source": "ရင်းမြစ်စာမျက်နှာသည် မဆီလျော်ပါ။",
+       "mergehistory-fail-invalid-dest": "ဦးတည်စာမျက်နှာသည် ဆီလျော်ပါ။",
+       "mergehistory-fail-permission": "ရာဇဝင် ပေါင်းစပ်ရန် ခွင့်ပြုချက်များ မလုံလောက်ပါ။",
+       "mergehistory-fail-self-merge": "ရင်းမြစ်နှင့် ဦးတည်စာမျက်နှာများသည် အတူတူပင်ဖြစ်သည်။",
        "mergehistory-no-source": "ရင်းမြစ်စာမျက်နှာ $1 မတည်ရှိပါ။",
        "mergehistory-no-destination": "သတ်မှတ်ထားသောစာမျက်နှာ $1 မတည်ရှိပါ။",
        "mergehistory-invalid-source": "ရင်းမြစ်စာမျက်နှာသည် တရားဝင်သော ခေါင်းစဉ် ဖြစ်ရမည်။",
        "powersearch-togglelabel": "စစ်ဆေးရန် -",
        "powersearch-toggleall": "အားလုံး",
        "powersearch-togglenone": "အမည်ညွှန်းမရှိ",
+       "powersearch-remember": "နောင်ရှာဖွေမှုများအတွက် ရွေးချယ်မှုကို အမှတ်ရရန်",
        "search-external": "အပြင်တွင် ရှာရန်",
        "preferences": "​ရွေး​ချယ်​စ​ရာ​များ​",
        "mypreferences": "​ရွေး​ချယ်​စ​ရာ​များ​",
        "prefs-searchoptions": "ရှာဖွေရန်",
        "prefs-namespaces": "အမည်ညွှန်း",
        "default": "ပုံမှန်အားဖြင့်",
-       "prefs-files": "ဖိုင်",
+       "prefs-files": "ဖိုင်များ",
        "prefs-custom-css": "စိတ်ကြိုက် CSS",
        "prefs-custom-js": "စိတ်ကြိုက် Javascript",
        "prefs-emailconfirm-label": "အီးမေးအတည်ပြုရန်",
-       "youremail": "အီး​မေး -",
+       "youremail": "အီးမေးလ်:",
        "username": "{{GENDER:$1|အသုံးပြုသူအမည်}} -",
        "prefs-memberingroups": "{{PLURAL:$1|အုပ်စု|အုပ်စုများ}}၏ {{GENDER:$2|အဖွဲ့ဝင်}} -",
        "prefs-registration": "မှတ်ပုံတင်သည့် အချိန် -",
        "yourrealname": "နာမည်ရင်း -",
        "yourlanguage": "ဘာသာစကား:",
        "yournick": "လက်မှတ်အသစ် -",
+       "prefs-help-signature": "ဆွေးနွေးချက်စာမျက်နှာများတွင် မှတ်ချက်ပေးရာ၌ \"<nowiki>~~~~</nowiki>\" ဖြင့် လက်မှတ်ထိုးသင့်ပါသည်၊ ယင်းသည် သင်၏လက်မှတ်နှင့် အချိန်မှတ်တမ်းကို ပြောင်းပေးမည်ဖြစ်သည်။",
        "badsig": "တရားမဝင်သည့် လက်မှတ်အကြမ်း။\nHTML tags ကို စစ်ဆေးပါ။",
        "badsiglength": "သင့်လက်မှတ်သည် ရှည်လွန်းနေပါသည်။\nယင်းသည် စာလုံး {{PLURAL:$1|လုံး|လုံး}}ထက် မရှည်ရပါ။",
        "yourgender": "သင်ဘယ်လို ဖော်ပြစေချင်ပါသလဲ?",
        "gender-unknown": "သင့်အားရည်ညွှန်းရာတွင် ဆော့ဖ်ဝဲလ်သည် ဖြစ်နိုင်ပါက ဘက်မလိုက်သည့် လိင်အသုံးအနှုန်းများကို အသုံးပြုလိမ့်မည်",
        "gender-male": "သူသည် ဝီကီစာမျက်နှာများကို တည်းဖြတ်သည်",
        "gender-female": "သူမသည် ဝီကီစာမျက်နှာများကို တည်းဖြတ်သည်",
-       "email": "အီးမေး",
+       "prefs-help-gender": "ဤအပြင်အဆင်ကို သတ်မှတ်လိုက သတ်မှတ်နိုင်သည်။ ဆော့ဝဲလ်က အခြားသူများကို သင့်အားဖော်ပြရာတွင် သင့်လျော်သော သဒ္ဒါစဉ်အတိုင်း အသုံးပြုပါသည်။ ဤသတင်းအချက်အလက်သည် အများကြည့်နိုင်သောအရာ ဖြစ်ပါလိမ့်မည်။",
+       "email": "အီးမေးလ်",
+       "prefs-help-realname": "နာမည်ရင်းကို ထည့်သွင်းလိုကထည့်နိုင်သည်။ ထည့်သွင်းထားပါက သင်၏လုပ်ဆောင်မှုအတွက် ထည့်သွင်းတွက်ချက်မှုအား သင့်ကိုပေးရာတွင် အသုံးပြုနိုင်သည်။",
        "prefs-help-email": "အီးမေးလ်လိပ်စာ ပေးမည် မပေးမည်မှာ သင့်သဘောသာ ဖြစ်ပါသည်။ သို့သော်လည်း သင် စကားဝှက်ကို မေ့သွားပါက စကားဝှက်ကို reset လုပ်ရန် အီးမေးလ်လိပ်စာ လိုအပ်ပါလိမ့်မည်။",
        "prefs-help-email-others": "သင့်အသုံးပြုသူစာမျက်နှာ သို့မဟုတ် ဆွေးနွေးရန်စာမျက်နှာရှိ လင့်မှတဆင့် သင့်ထံ အခြားသူများ အီးမေးမှဆက်သွယ်ရန်လည်း ရွေးချယ်နိုင်သည်။\nအခြားသူများ သင့်ထံဆက်သွယ်သည့်အခါ သင့်အီးမေးကို သူတို့အား ဖော်ပြမည်မဟုတ်ပါ။",
        "prefs-help-email-required": "အီးမေးလိပ်စာ လိုအပ်ပါသည်။",
        "group-autoconfirmed": "အလိုအလျောက် အတည်ပြုထားသော အသုံးပြုသူများ",
        "group-bot": "ဘော့များ",
        "group-sysop": "စီမံခန့်ခွဲသူများ",
-       "group-bureaucrat": "ဗျူရိုကရက်",
+       "group-bureaucrat": "ဗျူရိုကရက်များ",
        "group-all": "(အားလုံး)",
        "group-user-member": "{{GENDER:$1|အသုံးပြုသူ}}",
        "group-autoconfirmed-member": "{{GENDER:$1|အလိုအလျောက် အတည်ပြုထားသော အသုံးပြုသူ}}",
        "right-hideuser": "အသုံးပြုသူအမည်ကို ပိတ်ပင်ရန်နှင့် ယင်းအမည်ကို အများမမြင်နိုင်အောင် ဝှက်ထားရန်",
        "right-unblockself": "ကိုယ့်ကိုကိုယ် ပြန်မပိတ်ပင်ရန်",
        "right-protect": "ကာကွယ်မှုအဆင့် ပြောင်းလဲရန်နှင့် သွယ်ဖြာ-ကာကွယ်ထားသည့် စာမျက်နှာများကို တည်းဖြတ်ရန်",
+       "right-editcontentmodel": "စာမျက်နှာ၏ မာတိကာမော်ဒယ်ကို ပြင်ဆင်ရန်",
        "right-editusercss": "အခြားအသုံးပြုသူများ၏ CSS ဖိုင်ကို တည်းဖြတ်ရန်",
        "right-edituserjs": "အခြားအသုံးပြုသူများ၏ JavaScript ဖိုင်ကို တည်းဖြတ်ရန်",
+       "right-viewmywatchlist": "သင်၏ကိုယ်ပိုင် စောင့်ကြည့်စာရင်းကို ကြည့်ရန်",
+       "right-viewmyprivateinfo": "သင်၏ကိုယ်ပိုင် ပုဂ္ဂလိကဒေတာကို ကြည့်ရန် (ဥပမာ - အီးမေးလ်လိပ်စာ၊ နာမည်ရင်း)",
+       "right-editmyprivateinfo": "သင်၏ကိုယ်ပိုင် ပုဂ္ဂလိကဒေတာကို ပြင်ရန် (ဥပမာ - အီးမေးလ်လိပ်စာ၊ နာမည်ရင်း)",
+       "right-editmyoptions": "သင်၏ကိုယ်ပိုင် အပြင်အဆင်များကို ပြင်ရန်",
        "right-import": "အခြားဝီကီများမှ စာမျက်နှာများကို ထည့်သွင်းရန်",
        "right-importupload": "Upload တင်လိုက်သော ဖိုင်တစ်ခုမှ စာမျက်နှာများကို ထည့်သွင်းရန်",
        "right-patrol": "အခြားသောတည်းဖြတ်မှုများကို စောင့်ကြည့်နေသည်ဟု မှတ်သားရန်",
        "grant-group-email": "အီးမေးလ် ပို့ရန်",
        "grant-blockusers": "အသုံးပြုသူများအား ပိတ်ပင်ခြင်းနှင့် ပိတ်ပင်မှု ဖယ်ရှားခြင်း",
        "grant-createaccount": "အကောင့်များ ဖန်တီးရန်",
+       "grant-editmyoptions": "သင်၏အသုံးပြုသူ အပြင်အဆင်များကို ပြင်ရန်",
        "grant-editmywatchlist": "သင့် စောင့်ကြည့်စာရင်းကို တည်းဖြတ်ရန်",
        "grant-editpage": "ရှိပြီးသား စာမျက်နှာများကို တည်းဖြတ်ရန်",
        "grant-editprotected": "ကာကွယ်ထားသော စာမျက်နှာများကို တည်းဖြတ်ရန်",
        "grant-sendemail": "အခြားအသုံးပြုသူများကို အီးမေးပို့ရန်",
        "grant-uploadfile": "ဖိုင်အသစ်များ တင်ရန်",
        "grant-basic": "အခြေခံ ရပိုင်ခွင့်များ",
+       "grant-viewdeleted": "ဖျက်ထားသော ဖိုင်နှင့်စာမျက်နှာများကို ကြည့်ရန်",
+       "grant-viewmywatchlist": "သင့် စောင့်ကြည့်စာရင်းကို ကြည့်ရန်",
        "newuserlogpage": "အသုံးပြုသူအသစ်ရောက်လာခြင်း မှတ်တမ်း",
        "newuserlogpagetext": "ဤသည်မှာ အသုံးပြုသူအသစ် ဖန်တီးမှု မှတ်တမ်း ဖြစ်သည်။",
        "rightslog": "အသုံးပြုသူ၏ အခွင့်အရေးများ မှတ်တမ်း",
        "action-userrights": "အသုံးပြုသူ၏အခွင့်အရေးများအားလုံးကို တည်းဖြတ်ရန်",
        "action-userrights-interwiki": "အခြားဝီကီများမှ အသုံးပြုသူများ၏ အသုံးပြုသူအခွင့်အရေးများကို တည်းဖြတ်ရန်",
        "action-sendemail": "အီးမေးများ ပို့ရန်",
+       "action-editmyoptions": "သင်၏ ရွေးချယ်စရာများကို ပြင်ရန်",
        "action-editmywatchlist": "သင့် စောင့်ကြည့်စာရင်းကို တည်းဖြတ်ရန်",
        "action-viewmywatchlist": "သင့် စောင့်ကြည့်စာရင်းကို ကြည့်ရန်",
+       "action-editcontentmodel": "စာမျက်နှာ၏ မာတိကာမော်ဒယ်ကို ပြင်ဆင်ရန်",
        "action-purge": "ဤစာမျက်နှာကို ရှင်းသန့်ရန်",
        "nchanges": "ပြောင်းလဲချက် $1 {{PLURAL:$1|ခု|ခု}}",
        "enhancedrc-history": "ရာဇဝင်",
        "rcfilters-legend-heading": "<strong>အတိုကောက်များ စာရင်း:</strong>",
        "rcfilters-other-review-tools": "အခြား ဆန်းစစ်ကိရိယာများ",
        "rcfilters-group-results-by-page": "စာမျက်နှာအလိုက် ရလဒ်များ အုပ်စုဖွဲ့ရန်",
-       "rcfilters-activefilters": "သက်ဝင်နေသာ filter များ",
+       "rcfilters-activefilters": "သက်ဝင်နေသာ စိစစ်မှုများ",
        "rcfilters-activefilters-hide": "ဝှက်",
        "rcfilters-activefilters-show": "ပြ",
-       "rcfilters-advancedfilters": "အဆင့်မြင့် filter များ",
+       "rcfilters-advancedfilters": "အဆင့်မြင့် စိစစ်မှုများ",
        "rcfilters-limit-title": "ပြသမည့် ရလဒ်များ",
+       "rcfilters-date-popup-title": "ရှာဖွေရန် အချိန်ကာလ",
        "rcfilters-days-title": "မကြာသေးမီက ရက်များ",
        "rcfilters-hours-title": "မကြာသေးမီက နာရီများ",
        "rcfilters-days-show-days": "$1 {{PLURAL:$1|ရက်|ရက်}}",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|နာရီ|နာရီ}}",
-       "rcfilters-quickfilters": "သိမ်းထားသော filter များ",
+       "rcfilters-quickfilters": "သိမ်းထားသော စိစစ်မှုများ",
        "rcfilters-quickfilters-placeholder-title": "မည်သည့် filter မှ မသိမ်းရသေးပါ",
-       "rcfilters-savedqueries-defaultlabel": "သိမ်းထားသော filter များ",
+       "rcfilters-savedqueries-defaultlabel": "သိမ်းထားသော စိစစ်မှုများ",
        "rcfilters-savedqueries-rename": "အမည်ပြန်ပြောင်းရန်",
        "rcfilters-savedqueries-setdefault": "မူလပုံသေအဖြစ် သတ်မှတ်ရန်",
        "rcfilters-savedqueries-unsetdefault": "မူလပုံသေအဖြစ်မှ ဖယ်ရှားရန်",
        "rcfilters-savedqueries-remove": "ဖျက်ရန်",
        "rcfilters-savedqueries-new-name-label": "အမည်",
-       "rcfilters-savedqueries-new-name-placeholder": "filter ၏ ရည်ရွယ်ချက်ကို ဖော်ပြရန်",
-       "rcfilters-savedqueries-apply-label": "filter ဖန်တီးရန်",
-       "rcfilters-savedqueries-apply-and-setdefault-label": "မူလပုံသေ filter ဖန်တီးရန်",
+       "rcfilters-savedqueries-new-name-placeholder": "စိစစ်မှု၏ ရည်ရွယ်ချက်ကို ဖော်ပြရန်",
+       "rcfilters-savedqueries-apply-label": "စိစစ်မှု ဖန်တီးရန်",
+       "rcfilters-savedqueries-apply-and-setdefault-label": "မူလပုံသေ စိစစ်မှုကို ဖန်တီးရန်",
        "rcfilters-savedqueries-cancel-label": "မလုပ်တော့ပါ",
-       "rcfilters-savedqueries-add-new-title": "လက်ရှိ filter အပြင်အဆင်များ သိမ်းရန်",
-       "rcfilters-restore-default-filters": "မူလပုံသေ filter များအတိုင်း ပြန်ထားရန်",
-       "rcfilters-clear-all-filters": "filter များအားလုံး ရှင်းလင်းရန်",
+       "rcfilters-savedqueries-add-new-title": "လက်ရှိ စိစစ်မှုအပြင်အဆင်များကို သိမ်းရန်",
+       "rcfilters-restore-default-filters": "မူလပုံသေ စိစစ်မှုများအတိုင်း ပြန်ထားရန်",
+       "rcfilters-clear-all-filters": "စိစစ်မှုများအားလုံး ရှင်းလင်းရန်",
        "rcfilters-show-new-changes": "နောက်ဆုံး ပြောင်းလဲမှုများကို ကြည့်ရန်",
-       "rcfilters-invalid-filter": "မရေရာသော filter",
+       "rcfilters-search-placeholder": "စိစစ်မှုစနစ် အပြောင်းအလဲများ (စိစစ်စနစ်အမည်အတွက် menu သို့မဟုတ် ရှာဖွေခလုတ်ကို အသုံးပြုပါ)",
+       "rcfilters-invalid-filter": "မရေရာသော စိစစ်မှု",
        "rcfilters-filterlist-title": "စိစစ်မှုများ",
        "rcfilters-highlightmenu-title": "အရောင်တစ်ခု ရွေးချယ်ပါ",
-       "rcfilters-filterlist-noresults": "စီစစ်မှုများ မတွေ့ရှိပါ",
+       "rcfilters-filterlist-noresults": "စိစစ်မှုများ မတွေ့ရှိပါ",
+       "rcfilters-filtergroup-authorship": "ပံ့ပိုးမှု စာပေလက်ရာ",
        "rcfilters-filter-editsbyself-label": "သင်၏ ပြောင်းလဲမှုများ",
        "rcfilters-filter-editsbyself-description": "သင်၏ ဆောင်ရွက်ချက်များ။",
        "rcfilters-filter-editsbyother-label": "အခြားသူများ၏ ပြောင်းလဲမှုများ",
        "rcfilters-filter-humans-description": "လူတည်းဖြတ်သူများ၏ တည်းဖြတ်မှုများ။",
        "rcfilters-filtergroup-reviewstatus": "အခြေအနေ သုံးသပ်ရန်",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "မစောင့်ကြည့်မစစ်ဆေးရသေး",
+       "rcfilters-filtergroup-significance": "အရေးပါထင်ရှားမှု",
        "rcfilters-filter-minor-label": "အရေးမကြီးသည့် တည်းဖြတ်မှုများ",
        "rcfilters-filter-minor-description": "အရေးမကြီးဟု မှတ်သားလိုက်သော တည်းဖြတ်မှုများ။",
        "rcfilters-filter-major-label": "အရေးမကြီး မဟုတ်သော တည်းဖြတ်မှုများ",
        "rcfilters-view-tags": "စာတွဲမှတ်ထားသော တည်းဖြတ်မှုများ",
        "rcfilters-view-namespaces-tooltip": "အမည်ညွှန်းအလိုက် ရလဒ်များ စစ်ထုတ်ရန်",
        "rcfilters-view-tags-tooltip": "တည်းဖြတ်စာတွဲများ အသုံးပြု၍ ရလဒ်များ စစ်ထုတ်ရန်",
-       "rcfilters-view-return-to-default-tooltip": "ပင်မ filter မီနူးသို့ ပြန်သွားရန်",
+       "rcfilters-view-return-to-default-tooltip": "ပင်မ စိစစ်မှုမီနူးသို့ ပြန်သွားရန်",
        "rcfilters-view-tags-help-icon-tooltip": "စာတွဲမှတ်ထားသော တည်းဖြတ်မှုများအကြောင်း ပိုမိုလေ့လာရန်",
        "rcfilters-liveupdates-button": "အချိန်နှင့်တစ်ပြေးညီ မွမ်းမံမှုများ",
        "rcfilters-liveupdates-button-title-on": "အချိန်နှင့်တစ်ပြေးညီ မွမ်းမံမှုများကို ပိတ်ရန်",
        "upload-permitted": "ခွင့်ပြုထားသော ဖိုင် {{PLURAL:$2|အမျိုးအစား|အမျိုးအစားများ}}: $1။",
        "upload-preferred": "အလေးပေးထားသော ဖိုင် {{PLURAL:$2|အမျိုးအစား|အမျိုးအစားများ}}: $1။",
        "upload-prohibited": "တားမြစ်ထားသော ဖိုင် {{PLURAL:$2|အမျိုးအစား|အမျိုးအစားများ}}: $1။",
-       "uploadlogpage": "Upload တင်သည့် မှတ်တမ်း",
+       "uploadlogpage": "ဖိုင်တင်သည့် မှတ်တမ်း",
        "uploadlogpagetext": "အောက်ပါတို့သည် မကြာမီက upload လုပ်ထားသော ဖိုင်စာရင်း ဖြစ်သည်။\nပိုမို၍ ခြုံငုံသုံးသပ်ကြည့်ရှုနိုင်ရန် [[Special:NewFiles|ဖိုင်အသစ်များ ပြခန်း]]ကို ကြည့်ပါ။",
        "filename": "ဖိုင်အမည်",
        "filedesc": "အကျဉ်းချုပ်",
        "upload-options": "Upload တင်သည့် ရွေးချယ်မှုများ",
        "watchthisupload": "ဤဖိုင်အား စောင့်ကြည့်ရန်",
        "upload-misc-error": "upload တင်ရာတွင် အမည်မသိ အမှား",
+       "upload-dialog-title": "ဖိုင်​တင်​ရန်​",
+       "upload-dialog-button-cancel": "မလုပ်တော့ပါ",
+       "upload-dialog-button-back": "နောက်သို့",
+       "upload-dialog-button-done": "ပြီးပြီ",
+       "upload-dialog-button-save": "သိမ်းရန်",
+       "upload-dialog-button-upload": "တင်ရန်",
+       "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": "ဖိုင်အမည်",
+       "upload-form-label-own-work": "ဤအရာသည် ကိုယ်ပိုင်ဖန်တီးမှုဖြစ်သည်",
        "upload-form-label-infoform-categories": "ကဏ္ဍများ",
+       "upload-form-label-infoform-date": "နေ့စွဲ",
+       "backend-fail-notexists": "ဖိုင် \"$1\" မတည်ရှိပါ။",
+       "backend-fail-invalidpath": "\"$1\" သည် ကျိုးကြောင်းညီညွတ်သော သိုလှောင်လမ်းကြောင်းမဟုတ်ပါ။",
+       "backend-fail-delete": "ဖိုင် \"$1\" ကို မဖျက်နိုင်ခဲ့ပါ။",
+       "backend-fail-describe": "ဖိုင် \"$1\" အတွက် မေတာဒေတာကို မပြောင်းလဲနိုင်ခဲ့ပါ။",
+       "backend-fail-alreadyexists": "ဖိုင် \"$1\" ရှိနှင့်ပြီးဖြစ်သည်။",
+       "backend-fail-store": "\"$2\" တွင် \"$1\" ဖိုင်ကို မသိုလှောင်နိုင်ခဲ့ပါ။",
+       "backend-fail-copy": "ဖိုင် \"$1\" ကို \"$2\" သို့ ကော်ပီကူးမရပါ။",
+       "backend-fail-move": "ဖိုင် \"$1\" ကို \"$2\" သို့ မပြောင်းရွေ့နိုင်ခဲ့ပါ။",
+       "backend-fail-opentemp": "ယာယီဖိုင်ကို မဖွင့်နိုင်ခဲ့ပါ။",
+       "backend-fail-writetemp": "ယာယီဖိုင်ကို မရေးနိုင်ခဲ့ပါ။",
+       "backend-fail-closetemp": "ယာယီဖိုင်ကို မပိတ်နိုင်ခဲ့ပါ။",
+       "backend-fail-read": "ဖိုင် \"$1\" ကို မဖတ်နိုင်ခဲ့ပါ။",
+       "backend-fail-create": "ဖိုင် \"$1\" ကို မရေးနိုင်ခဲ့ပါ။",
+       "uploadstash-bad-path": "လမ်းကြောင်း မတည်ရှိပါ။",
+       "uploadstash-bad-path-invalid": "လမ်းကြောင်းသည် ဆီလျော်မှုမရှိပါ။",
        "img-auth-accessdenied": "ဝင်ရောက်ခြင်းကို ငြင်းပယ်လိုက်သည်",
        "img-auth-nofile": "\"$1\" ဟူသည့်ဖိုင် မရှိပါ။",
        "img-auth-streaming": "\"$1\" ကို စထရင်းမင်း ဆွဲနေသည်။",
        "license": "လိုင်စင်သတ်မှတ်ခြင်း -",
        "license-header": "လိုင်စင်သတ်မှတ်ခြင်း",
        "nolicense": "ဘာမှရွေးချယ်မထားပါ",
+       "licenses-edit": "လိုင်စင် ရွေးစရာများကို ပြင်ဆင်ရန်",
        "license-nopreview": "(နမူနာ မရနိုင်ပါ)",
        "upload_source_url": "တရားဝင်၍ အများပြည်သူ သုံးစွဲခွင့်ရှိသော URL လင့်တစ်ခုမှ သင်ရွေးချယ်ထားသည့် File",
        "upload_source_file": "(သင်ရွေးချယ်ထားသော သင့်ကွန်ပျူတာမှ ဖိုင်တစ်ခု)",
+       "listfiles-delete": "ဖျက်",
+       "listfiles-summary": "ဤအထူးစာမျက်နှာသည် တင်ထားသောဖိုင်အားလုံးကို ပြသပေးသည်။",
        "listfiles_search_for": "မီဒီယာအမည်ကို ရှာရန် -",
+       "listfiles-userdoesnotexist": "အသုံးပြုသူအကောင့် \"$1\" သည် မှတ်ပုံမတင်ထားပါ။",
        "imgfile": "ဖိုင်",
        "listfiles": "ဖိုင်စာရင်း",
        "listfiles_thumb": "နမူနာပုံငယ်",
        "listfiles_size": "အရွယ်အစား",
        "listfiles_description": "ဖော်ပြချက်",
        "listfiles_count": "ဗားရှင်းများ",
+       "listfiles-latestversion": "လက်ရှိဗားရှင်း",
+       "listfiles-latestversion-yes": "မှန်",
+       "listfiles-latestversion-no": "မဟုတ်",
        "file-anchor-link": "ဖိုင်",
        "filehist": "ဖိုင်မှတ်တမ်း",
        "filehist-help": "ဖိုင်ကို ယင်းနေ့စွဲ အတိုင်း မြင်နိုင်ရန် နေ့စွဲ/အချိန် တစ်ခုခုပေါ်တွင် ကလစ်နှိပ်ပါ။",
        "filedelete-nofile": "'''$1''' မရှိပါ။",
        "filedelete-otherreason": "အခြားသော/နောက်ထပ် အကြောင်းပြချက် -",
        "filedelete-reason-otherlist": "အခြား အကြောင်းပြချက်",
+       "filedelete-reason-dropdown": "*ယေဘုယျ ဖျက်ပစ်ခြင်း အကြောင်းပြချက်များ\n** မူပိုင်ခွင့် ချိုးဖောက်\n*** ထပ်နေသောဖိုင်",
        "filedelete-edit-reasonlist": "ဖျက်ပစ်လိုက်ရသော အကြောင်းရင်းများကို တည်းဖြတ်ရန်",
+       "filedelete-maintenance": "ထိန်းပြင်လုပ်နေစဉ် ဖိုင်များ ဖျက်ခြင်း၊ ပြန်လည်ဆယ်ယူခြင်းကို ယာယီပိတ်ထားသည်။",
+       "filedelete-maintenance-title": "ဖိုင်ကို မဖျက်နိုင်ပါ",
        "mimesearch": "MIME ရှာဖွေခြင်း",
        "mimetype": "MIME အမျိုးအစား -",
        "download": "ဒေါင်းလုဒ်",
        "unusedtemplateswlh": "အခြားလင့်ခ်များ",
        "randompage": "ကျပန်းစာမျက်နှာ",
        "randomincategory": "ကဏ္ဍတွင်းရှိ ကျပန်း စာမျက်နှာ",
+       "randomincategory-invalidcategory": "\"$1\" သည် ဆီလျော်သော ကဏ္ဍအမည်မဟုတ်ပါ။",
+       "randomincategory-nopages": "ကဏ္ဍ [[:Category:$1|$1]] ထဲတွင် စာမျက်နှာများ မရှိပါ။",
        "randomincategory-category": "ကဏ္ဍ:",
+       "randomincategory-legend": "ကဏ္ဍထဲရှိ ကျပန်းစာမျက်နှာ",
+       "randomincategory-submit": "သွားပါ",
        "randomredirect": "ကျပန်းပြန်ညွှန်း",
        "randomredirect-nopages": "အမည်ညွှန်း \"$1\" တွင် ပြန်ညွှန်းမရှိပါ။",
        "statistics": "စာရင်းအင်း",
        "statistics-users": "မှတ်ပုံတင်ထားသော အသုံးပြုသူများ",
        "statistics-users-active": "လက်ရှိလုပ်ကိုင်နေသော အသုံးပြုသူများ",
        "statistics-users-active-desc": "နောက်ဆုံး {{PLURAL:$1|ရက်|$1 ရက်}}အတွင်း ဆောင်ရွက်ချက်ရှိသည့် အသုံးပြုသူများ",
+       "pageswithprop": "စာမျက်နှာဂုဏ်အင်တစ်ခုနှင့် စာမျက်နှာများ",
+       "pageswithprop-legend": "စာမျက်နှာဂုဏ်အင်တစ်ခုနှင့် စာမျက်နှာများ",
+       "pageswithprop-text": "ဤစာမျက်နှာသည် တစ်ခုချင်းအလိုက် စာမျက်နှာဂုဏ်အင်ကို အသုံးပြုသည့် စာမျက်နှာများကို စာရင်းပြုစုထားသည်။",
+       "pageswithprop-prop": "ဂုဏ်အင်အမည်:",
+       "pageswithprop-reverse": "ပြောင်းပြန်အစဉ်လိုက် စီရန်",
+       "pageswithprop-sortbyvalue": "ဂုဏ်အင်တန်ဖိုးအလိုက် စီရန်",
+       "pageswithprop-submit": "သွားပါ",
        "doubleredirects": "နှစ်ဆင့်ပြန် ပြန်ညွှန်းများ",
        "double-redirect-fixed-move": "[[$1]] ကို ရွှေ့ပြောင်းပြီးဖြစ်သည်။ ၎င်းအား အလိုအလျောက် ပြင်ဆင်ပြီး [[$2]] သို့ ပြန်ညွှန်းထားသည်။",
        "double-redirect-fixer": "ပြန်ညွှန်းပြင်ဆင်သူ",
        "withoutinterwiki-submit": "ပြ",
        "fewestrevisions": "တည်းဖြတ်မူအနည်းဆုံး စာမျက်နှာများ",
        "nbytes": "$1 {{PLURAL:$1|ဘိုက်|ဘိုက်}}",
+       "ncategories": "$1 {{PLURAL:$1|ကဏ္ဍ|ကဏ္ဍများ}}",
        "nlinks": "{{PLURAL:$1|လင့်|လင့်ခ်များ}} $1",
        "nmembers": "အဖွဲ့ဝင် $1 {{PLURAL:$1|ခု|ခု}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|အဖွဲ့ဝင်|အဖွဲ့ဝင်များ}}",
+       "nrevisions": "$1 {{PLURAL:$1|ပြန်လည်ပြင်ဆင်မှု|ပြန်လည်ပြင်ဆင်မှုများ}}",
+       "nimagelinks": "$1 {{PLURAL:$1|စာမျက်နှာ|စာမျက်နှာများ}}ပေါ်တွင် သုံးထားသည်",
+       "ntransclusions": "$1 {{PLURAL:$1|စာမျက်နှာ|စာမျက်နှာများ}}ပေါ်တွင် သုံးထားသည်",
        "specialpage-empty": "ဤသတင်းပို့ချက်အတွက် ရလဒ်မရှိပါ။",
+       "lonelypages": "မိဘမဲ့ စာမျက်နှာများ",
        "uncategorizedpages": "ကဏ္ဍမခွဲထားသော စာမျက်နှာများ",
        "uncategorizedcategories": "ကဏ္ဍမခွဲထားသော ကဏ္ဍများ",
        "uncategorizedimages": "ကဏ္ဍမခွဲထားသော ဖိုင်များ",
        "mostlinkedcategories": "အများဆုံး လာရောက် ချိတ်ဆက်ထားသည့် ကဏ္ဍများ",
        "mostcategories": "ကဏ္ဍအများဆုံးပါသော စာမျက်နှာများ",
        "mostimages": "အများဆုံး လာရောက်ချိတ်ဆက်ထားသည့် ဖိုင်များ",
+       "mostinterwikis": "အပြန်အလှန်ချိတ်ဆက်ဝီကီအများဆုံးနှင့် စာမျက်နှာများ",
        "mostrevisions": "တည်းဖြတ်မှု အများဆုံး စာမျက်နှာများ",
        "prefixindex": "ရှေ့ဆုံးမှ prefix ပါသော စာမျက်နှာ အားလုံး",
        "prefixindex-submit": "ပြသရန်",
        "deadendpages": "လမ်းဆုံးနေသော (လင့်ခ်မချိတ်ထားသော) စာမျက်နှာများ",
        "deadendpagestext": "အောက်ပါ စာမျက်နှာများသည် {{SITENAME}} တွင် အခြား စာမျက်နှာများသို့ လင့်ခ်ချိတ်ဆက်ထားခြင်း မရှိပါ။",
        "protectedpages": "ကာကွယ်ထားသော စာမျက်နှာများ",
+       "protectedpages-filters": "စိစစ်မှုများ:",
        "protectedpages-noredirect": "ပြန်ညွှန်းများအား ဝှက်ရန်",
        "protectedpages-page": "စာမျက်နှာ",
        "protectedtitles": "ကာကွယ်ထားသော ခေါင်းစဉ်များ",
        "listusers": "အသုံးပြုသူစာရင်း",
        "listusers-editsonly": "တည်းဖြတ်ထားဖူးသော အသုံးပြုသူများကိုသာ ဖော်ပြရန်",
+       "listusers-temporarygroupsonly": "ယာယီအသုံးပြုသူအုပ်စုများထဲရှိ အသုံးပြုသူများကိုသာ ပြရန်",
        "listusers-creationsort": "စတင်ရေးသားသည့်ရက်စွဲအလိုက် စီရန်",
+       "listusers-desc": "ကြီးစဉ်ငယ်လိုက် စီရန်",
        "usereditcount": "တည်းဖြတ်မှု $1 {{PLURAL:$1|ခု|ခု}}",
        "usercreated": "$1 $2 အချိန်တွင် {{GENDER:$3|ဖန်တီးခဲ့သည်}}",
        "newpages": "စာမျက်နှာအသစ်",
        "unusedimagestext": "အောက်ပါဖိုင်များသည် မည်သည့်စာမျက်နှာတွင်မှ သုံးစွဲထားခြင်း မရှိပါ။\nအခြားသော ဝက်ဘ်ဆိုဒ်များမှနေ၍ ဖိုင်တစ်ခုခုသို့ တိုက်ရိုက် URL ဖြင့် တိုက်ရိုက်ချိတ်ဆက်ထားခြင်း ရှိနေနိုင်ပြီး သုံးစွဲနေခြင်းမရှိသော်လည်း ဤနေရာတွင် ဖော်ပြထားနိုင်ကြောင်း ကျေးဇူးပြု၍ မှတ်သားပါ။",
        "pager-newer-n": "{{PLURAL:$1|ပိုသစ်သော တစ်ခု|ပိုသစ်သော $1 ခု}}",
        "pager-older-n": "{{PLURAL:$1|ပိုဟောင်းသော တစ်ခု|ပိုဟောင်းသော $1 ခု}}",
+       "apihelp-no-such-module": "မော်ဂျူး \"$1\" မတွေ့ရှိပါ။",
+       "apisandbox-reset": "ရှင်းလင်း",
+       "apisandbox-retry": "ပြန်လုပ်",
+       "apisandbox-helpurls": "အကူအညီလင့်ခ်များ",
+       "apisandbox-examples": "ဥပမာများ",
+       "apisandbox-dynamic-parameters": "နောက်ထပ် ပါရာမီတာများ",
+       "apisandbox-dynamic-parameters-add-label": "ပါရာမီတာ ပေါင်းထည့်ရန်:",
+       "apisandbox-dynamic-parameters-add-placeholder": "ပါရာမီတာ အမည်",
+       "apisandbox-results": "ရလဒ်များ",
+       "apisandbox-continue": "ဆက်လက်",
+       "apisandbox-continue-clear": "ရှင်းလင်း",
        "booksources": "မှီငြမ်း စာအုပ်များ",
        "booksources-search-legend": "စာအုပ်ရင်းမြစ်များကို ရှာရန်",
        "booksources-search": "ရှာဖွေရန်",
        "speciallogtitlelabel": "ရည်ရွယ်ရာ (ခေါင်းစဉ် သို့ {{ns:user}}:အသုံးပြုသူအတွက် အသုံးပြုအမည်):",
        "log": "မှတ်​တမ်း​များ​",
        "logeventslist-submit": "ပြသရန်",
+       "logeventslist-patrol-log": "စောင့်ကြပ်စစ်ဆေးမှု မှတ်တမ်း",
+       "logeventslist-tag-log": "စာတွဲ မှတ်တမ်း",
        "all-logs-page": "အများနှင့်ဆိုင်သောမှတ်တမ်းအားလုံး",
        "alllogstext": "{{SITENAME}}၏ ရရှိနိုင်သော မှတ်တမ်းများအားလုံး ပေါင်းစည်းပြသခြင်း ဖြစ်သည်။\nမှတ်တမ်းအမျိုးအစား၊ အသုံးပြုသူအမည် (စာလုံးအကြီးအသေး)၊ သို့မဟုတ် သက်ဆိုင်ရာ စာမျက်နှာ (စာလုံးအကြီးအသေး) ကို ရွေးချယ်ခြင်းဖြင့် ကြည့်ရှုမှုကို အကျဉ်းချုံးနိုင်ပါသည်။",
        "logempty": "မှတ်တမ်းထဲတွင် ကိုက်ညီသော အရာများ မရှိပါ။",
        "showhideselectedlogentries": "ရွေးချယ်ထားသော မှတ်တမ်းများ၏ မြင်နိုင်မှုကို ပြောင်းလဲရန်",
+       "checkbox-select": "ရွေးချယ်: $1",
        "checkbox-all": "အားလုံး",
+       "checkbox-none": "ဘာမှမရှိ",
        "allpages": "စာမျက်နှာအားလုံး",
        "nextpage": "နောက်ထပ်စာမျက်နှာ ($1)",
        "prevpage": "ယခင် စာမျက်နှာ ($1)",
        "activeusers-count": "{{PLURAL:$3|ရက်|$3 ရက်}}အတွင်း {{PLURAL:$1|လုပ်ဆောင်မှု|လုပ်ဆောင်မှု}} $1 ခု",
        "activeusers-from": "ဤမှစသော အသုံးပြုသူများကို ပြရန် -",
        "activeusers-noresult": "အသုံးပြုသူ မတွေ့ပါ။",
+       "activeusers-submit": "လတ်တလောအသုံးပြုသူများကို ပြသရန်",
        "listgrouprights": "အသုံးပြုသူအုပ်စု အခွင့်အရေးများ",
        "listgrouprights-group": "အုပ်စု",
        "listgrouprights-rights": "အခွင့်အရေးများ",
        "watchlist-submit": "ပြသရန်",
        "wlshowtime": "ပြသပေးရမည့် အချိန်ကာလ:",
        "wlshowhideminor": "အရေးမကြီးသော ပြင်ဆင်မှုများ",
+       "wlshowhidebots": "ဘော့များ",
        "wlshowhideliu": "မှတ်ပုံတင်ထားသော အသုံးပြုသူများ",
        "wlshowhideanons": "အမည်မသိ အသုံးပြုသူများ",
+       "wlshowhidepatr": "စောင့်ကြပ်တည်းဖြတ်မှုများ",
        "wlshowhidemine": "ကျွန်ုပ်၏ တည်းဖြတ်မှုများ",
        "wlshowhidecategorization": "စာမျက်နှာ ကဏ္ဍထည့်သွင်းခြင်း",
        "watchlist-options": "စောင့်ကြည့်စာရင်းအတွက် ရွေးချယ်စရာများ",
        "watching": "စောင့်ကြည့်လျက်ရှိ...",
        "unwatching": "စောင့်မကြည့်တော့...",
+       "watcherrortext": "\"$1\" အတွက် သင်၏စောင့်ကြည့်စာရင်း အပြင်အဆင်များကို ပြောင်းလဲစဉ် အမှားတစ်ခု ဖြစ်ပွားခဲ့သည်။",
        "enotif_reset": "စာမျက်နှာများအားလုံး ကြည့်ရှုပြီးကြောင်း မှတ်သားရန်",
        "enotif_impersonal_salutation": "{{SITENAME}} အသုံးပြုသူ",
+       "enotif_lastdiff": "ဤပြောင်းလဲမှုအား ကြည့်ရန် $1 ကို ကြည့်ပါ",
        "enotif_anon_editor": "အမည်မသိ အသုံးပြုသူ $1",
+       "enotif_minoredit": "ဤအရာသည် အရေးမကြီးသောပြင်​ဆင်​မှု ​ဖြစ်​သည်​",
        "created": "ဖန်တီးလိုက်သည်",
        "changed": "ပြောင်းလဲလိုက်သည်",
        "deletepage": "စာမျက်နှာကိုဖျက်ပါ",
        "confirm": "အတည်ပြု",
+       "excontent": "အကြောင်းအရာမှာ: \"$1\"",
        "excontentauthor": "ပါဝင်အကြောင်းအရာမှာ - \"$1\"၊ ဖြစ်ပြီး တစ်ဦးတည်းသော ပံ့ပိုးထားသူမှာ \"[[Special:Contributions/$2|$2]]\" ([[User talk:$2|ဆွေးနွေး]])  ဖြစ်သည်",
+       "exbeforeblank": "ဗလာမလုပ်ခင် အကြောင်းအရာမှာ: \"$1\"",
        "delete-confirm": "\"$1\"ကို ဖျက်ပါ",
        "delete-legend": "ဖျက်",
        "historywarning": "<strong>သတိပေးချက်။</strong> သင်ဖျက်ပစ်တော့မည့် စာမျက်နှာတွင် {{PLURAL:$1|တည်းဖြတ်မူ|တည်းဖြတ်မူများ}} $1 ခု ရှိနေသည်-",
        "dellogpage": "ဖျက်ထားသည်များ မှတ်တမ်း",
        "dellogpagetext": "အောက်ပါတို့သည် မကြာမီက ဖျက်ထားမှုများ စာရင်း ဖြစ်သည်။",
        "deletionlog": "ဖျက်ပစ်သည့်မှတ်တမ်း",
+       "log-name-create": "စာမျက်နှာဖန်တီးမှု မှတ်တမ်း",
+       "log-description-create": "အောက်ပါများသည် မကြာသေးခင်က စာမျက်နှာဖန်တီးမှုစာရင်း ဖြစ်သည်။",
+       "logentry-create-create": "$1 က စာမျက်နှာ $3 ကို {{GENDER:$2|ဖန်တီးခဲ့}}သည်",
        "reverted": "ယခင်တည်းဖြတ်မူသို့ နောက်ပြန်ပြင်ပြီးပြီ",
        "deletecomment": "အ​ကြောင်း​ပြ​ချက် -",
        "deleteotherreason": "အခြားသော/နောက်ထပ် အကြောင်းပြချက် -",
        "deletereasonotherlist": "အခြား အကြောင်းပြချက်",
+       "deletereason-dropdown": "* ယေဘုယျ ဖျက်ပစ်ခြင်း အကြောင်းရင်းများ\n** ဆပန်း\n** လက်သရမ်းမှု\n** မူပိုင်ခွင့် ချိုးဖောက်မှု\n** စာရေးသူ တောင်းဆိုမှု\n** ကျိုးပျက်နေသော ပြန်ညွှန်း",
        "delete-edit-reasonlist": "ဖျက်ပစ်ရသော အကြောင်းရင်းများကို တည်းဖြတ်ရန်",
+       "deleteprotected": "ဤစာမျက်နှာသည် ကာကွယ်ထားသောကြောင့် ဖျက်ပစ်၍မရနိုင်ပါ။",
        "deleting-backlinks-warning": "<strong>သတိပေးချက်။</strong> သင်ဖျက်ပစ်တော့မည့် စာမျက်နှာအား [[Special:WhatLinksHere/{{FULLPAGENAME}}|အခြားစာမျက်နှာများမှ]] ချိတ်ဆက်ထားခြင်း သို့မဟုတ် ထည့်သွင်းထားခြင်း ရှိနေသည်။",
        "rollbacklink": "နောက်ပြန် ပြန်သွားရန်",
        "rollbacklinkcount": "{{PLURAL:$1|တည်းဖြတ်မှု|တည်းဖြတ်မှုများ}} $1 ကို နောက်ပြန်ပြင်ရန်",
        "revertpage": "[[Special:Contributions/$2|$2]] ([[User talk:$2|ဆွေးနွေး]]) ၏ ပြင်ဆင်မှုများကို [[User:$1|$1]] ၏ နောက်ဆုံးတည်းဖြတ်မူသို့ နောက်ပြန် ပြန်ပြင်ခဲ့သည်",
+       "changecontentmodel": "စာမျက်နှာ၏ မာတိကာမော်ဒယ်ကို ပြောင်းလဲရန်",
+       "changecontentmodel-legend": "မာတိကာမော်ဒယ်ကို ပြောင်းလဲရန်",
+       "changecontentmodel-title-label": "စာမျက်နှာ ခေါင်းစဉ်",
+       "changecontentmodel-model-label": "မာတိကာမော်ဒယ် အသစ်",
+       "changecontentmodel-reason-label": "အ​ကြောင်း​ပြ​ချက်:",
+       "changecontentmodel-submit": "ပြောင်းလဲရန်",
+       "changecontentmodel-success-title": "မာတိကာမော်ဒယ် ပြောင်းလဲခဲ့သည်",
+       "changecontentmodel-success-text": "[[:$1]]၏ မာတိကာအမျိုးအစား ပြောင်းလဲသွားသည်။",
+       "changecontentmodel-cannot-convert": "[[:$1]]ပေါ်ရှိ မာတိကာသည် $2 အမျိူးအစားတစ်ခုသို့ မကူးပြောင်းနိုင်ပါ။",
+       "changecontentmodel-nodirectediting": "$1 မာတိကာမော်ဒယ်သည် တိုက်ရိုက်တည်းဖြတ်မှုကို မထောက်ပံ့ပါ",
+       "changecontentmodel-emptymodels-title": "မည်သည့် မာတိကာမော်ဒယ်မှ မရရှိနိုင်ပါ",
+       "changecontentmodel-emptymodels-text": "[[:$1]]ပေါ်ရှိ မာတိကာသည် မည်သည့်အမျိူးအစားတစ်ခုသို့ မကူးပြောင်းနိုင်ပါ။",
+       "log-name-contentmodel": "မာတိကာမော်ဒယ် ပြောင်းလဲမှုမှတ်တမ်း",
        "protectlogpage": "ကာကွယ်မှုများ၏ မှတ်တမ်း",
        "protectlogtext": "အောက်ပါတို့သည် စာမျက်နှာ ကာကွယ်မှုများအတွက် အပြောင်းအလဲ စာရင်း ဖြစ်သည်။\nလက်ရှိ စာမျက်နှာ ကာကွယ်မှုများ စာရင်းအတွက် [[Special:ProtectedPages|ကာကွယ်ထားသော စာမျက်နှာများ စာရင်း]]ကို ကြည့်ပါ။",
        "protectedarticle": "\"[[$1]]\" ကို ကာကွယ်ထားသည်",
        "prot_1movedto2": "[[$1]]  မှ​ [[$2]] သို့​",
        "protect-legend": "ကာကွယ်မှု အတည်ပြုရန်",
        "protectcomment": "အ​ကြောင်း​ပြ​ချက်:",
-       "protectexpiry": "သက်တမ်းကုန်လွန်မည် -",
+       "protectexpiry": "သက်တမ်းကုန်လွန်မည်:",
        "protect_expiry_invalid": "သက်တမ်းကုန်လွန်မည့် အချိန်သည် တရားမဝင်ပါ။",
        "protect_expiry_old": "သက်တမ်းသည် အတိတ်ကာလတွင် ကုန်လွန်ခဲ့ပြီး ဖြစ်သည်။",
        "protect-unchain-permissions": "နောက်ထပ် ကာကွယ်မှု ရွေးချယ်စရာများ ဖော်ပြရန်",
        "protect-expiry-indefinite": "အနန္တ",
        "protect-cascade": "ဤစာမျက်နှာအတွင်း ပါဝင်သော စာမျက်နှာများကို ထိန်းသိမ်းကာကွယ်ပါ (အများခွင့်ပြုချက်ဖြင့်သာ ပြင်ဆင်သင့်သည်)",
        "protect-cantedit": "ကာကွယ်ထားသောစာမျက်နှာဖြစ်သည့်အတွက် ပြင်ဆင်၍ မရနိုင်ပါ။ အဘယ့်ကြောင့်ဆိုသော် သင့်မှာ တည်းဖြတ်ပိုင်ခွင့် မရှိ၍ ဖြစ်ပါသည်။",
+       "protect-othertime": "အခြားအချိန်:",
+       "protect-othertime-op": "အခြားအချိန်",
        "protect-otherreason": "အခြားသော/နောက်ထပ် အကြောင်းပြချက် -",
        "protect-otherreason-op": "အခြား အကြောင်းပြချက်",
+       "protect-dropdown": "*ယေဘုယျ ကာကွယ်ရခြင်း အကြောင်းပြချက်များ\n** လက်သရမ်းမှု များပြားခြင်း\n** လိုက်ဖွခြင်း များပြား\n** တည်းဖြတ်မှုစစ်ပွဲအတွက် တန်ပြန်ဆင်ခြင်း\n** လူကြည့်များသော စာမျက်နှာ",
        "protect-edit-reasonlist": "ကာကွယ်ထားရသော အကြောင်းရင်းများကို တည်းဖြတ်ရန်",
        "protect-expiry-options": "၁ နာရီ:1 hour,၁ နေ့:1 day,၁ ပတ်:1 week,၂ ပတ်:2 weeks,၁ လ:1 month,၃ လ:3 months,၆ လ:6 months,၁ နှစ်:1 year,အနန္တ:infinite",
        "restriction-type": "ခွင့်ပြုချက် -",
        "pagesize": "(ဘိုက်)",
        "restriction-edit": "ပြင်ဆင်ရန်",
        "restriction-move": "ရွှေ့ရန်",
-       "restriction-create": "á\80\91á\80½á\80\84á\80º",
-       "restriction-upload": "Upload တင်ရန်",
+       "restriction-create": "á\80\96á\80\94á\80ºá\80\90á\80®á\80¸",
+       "restriction-upload": "ဖိုင်တင်ရန်",
        "restriction-level-sysop": "အပြည့်အဝကာကွယ်ထားသည်။",
        "restriction-level-autoconfirmed": "တစ်စိတ်တစ်ပိုင်း ကာကွယ်ထားသည်",
        "restriction-level-all": "မည်သည့်အဆင့်မဆို",
        "undeleteviewlink": "ကြည့်ရန်",
        "undeleteinvert": "ရွေးချယ်ထားခြင်းကို ပြောင်းပြန်လှန်ရန်",
        "undeletecomment": "အ​ကြောင်း​ပြ​ချက် -",
+       "undelete-header": "မကြာသေးခင်က ဖျက်ထားသည့်စာမျက်နှာများအတွက် [[Special:Log/delete|ဖျက်ထားသည်များ မှတ်တမ်း]]ကို ကြည့်ပါ။",
+       "undelete-search-title": "ဖျက်ပစ်လိုက်သော စာမျက်နှာများကို ရှာရန်",
        "undelete-search-box": "ဖျက်ပစ်သည့် စာမျက်နှာများမှ ရှာရန်",
        "undelete-search-submit": "ရှာဖွေရန်",
        "undelete-show-file-submit": "မှန်",
        "whatlinkshere-hidelinks": "လင့်ခ်များ $1 ခု",
        "whatlinkshere-hideimages": "ဖိုင်အချိတ်အဆက်များ $1 ခု",
        "whatlinkshere-filters": "စိစစ်မှုများ",
+       "whatlinkshere-submit": "သွားပါ",
+       "block": "အသုံးပြုသူကို ပိတ်ပင်ရန်",
        "unblock": "အသုံးပြုသူကို ပိတ်ပင်ထားရာမှ ပြန်ဖွင့်ပေးရန်",
        "blockip": "{{GENDER:$1|အသုံးပြုသူ}} ပိတ်ပင်ရန်",
+       "blockiptext": "သတ်မှတ်ထားသော အိုင်ပီလိပ်စာ သို့မဟုတ် အသုံးပြုသူအမည်ကို ရေးသားပိုင်ခွင့်မှ ပိတ်ပင်တားဆီးရန် အောက်ပါပုံစံကို အသုံးပြုပါ။ ဤသည် [[{{MediaWiki:Policy-url}}|မူဝါဒ]] အရ ဖျက်လိုဖျက်ဆီးလုပ်ဆောင်မှုကို ကာကွယ်ရန်အတွက်သာ ဆောင်ရွက်သင့်သည်။ ပိတ်ပင်ရသည့် အကြောင်းပြချက်များကိုလည်း အောက်တွင်\nဖြည့်သွင်းပါ။ အိုင်ပီလိပ်စာ အတိုင်းအတာအလိုက် [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] syntax ကို အသုံးပြု၍ ပိတ်ပင်နိုင်ပါသည်။ အများဆုံး ခွင့်ပြုပမာဏမှာ IPv4 အတွက် /$1 ဖြစ်ပြီး IPv6 အတွက် /$2 ဖြစ်သည်။",
        "ipaddressorusername": "အိုင်ပီလိပ်စာ သို့ အသုံးပြုသူအမည် -",
        "ipbexpiry": "သက်တမ်းကုန်လွန်ရက် -",
        "ipbreason": "အ​ကြောင်း​ပြ​ချက်:",
+       "ipbreason-dropdown": "*ယေဘုယျ ပိတ်ပင်တားဆီးရခြင်း အကြောင်းပြချက်များ\n** မှားယွင်းအချက်အလက်များကို ထည့်သွင်းမှု\n** စာမျက်နှာများမှ အကြောင်းအရာကို ဖယ်ရှားမှု\n** ပြင်ပဆိုဒ်များသို့လင့်ခ်ချိတ်၍ ဖွမှု\n** စာမျက်နှာများတွင် ပေါက်တတ်ကရများ ထည့်သွင်းမှု\n** ခြိမ်းခြောက်ခြင်း အပြုအမူ/အနှောက်အယှက်ပေးခြင်း\n** အကောင့်များစွာကို အလွဲသုံးစားလုပ်မှု\n** လက်ခံနိုင်ဖွယ်မရှိသော အသုံးပြုသူအမည်",
        "ipb-hardblock": "ဤအိုင်ပီလိပ်စာမှ လော့ဂ်အင်ဝင်ထားသော အသုံးပြုသူများကို တည်းဖြတ်ခြင်းမှ တားမြစ်ရန်",
        "ipbcreateaccount": "အကောင့်အသစ်ပြုလုပ်ခြင်းကို တားဆီးရန်",
        "ipbemailban": "အီးမေးပို့ခြင်းမှ အသုံးပြုသူကို တားဆီးရန်",
        "unblocked-id": "$1 ကို ပိတ်ပင်ထားမှုကို ဖယ်ရှာလိုက်သည်",
        "blocklist": "ပိတ်ပင်ထားသော အသုံးပြုသူများ",
        "autoblocklist": "အလိုအလျောက် ပိတ်ပင်မှုများ",
+       "autoblocklist-submit": "ရှာဖွေရန်",
        "autoblocklist-legend": "အလိုအလျောက် ပိတ်ပင်မှုများ စာရင်း",
        "autoblocklist-localblocks": "ဒေသဆိုင်ရာ {{PLURAL:$1|အလိုအလျောက် ပိတ်ပင်မှု|အလိုအလျောက် ပိတ်ပင်မှုများ}}",
        "autoblocklist-otherblocks": "အခြား {{PLURAL:$1|အလိုအလျောက် ပိတ်ပင်မှု|အလိုအလျောက် ပိတ်ပင်မှုများ}}",
        "movepage-page-unmoved": "စာမျက်နှာ $1 ကို $2 သို့ ရွှေ့မရနိုင်ပါ။",
        "movelogpage": "ရွှေ့ပြောင်းခြင်း မှတ်တမ်း",
        "movelogpagetext": "အောက်ပါတို့သည် စာမျက်နှာ ရွေ့ပြောင်းမှုများ အားလုံး စာရင်း ဖြစ်သည်။",
+       "movesubpage": "{{PLURAL:$1|စာမျက်နှာခွဲ|စာမျက်နှာခွဲများ}}",
+       "movenosubpage": "ဤစာမျက်နှာတွင် စာမျက်နှာခွဲများ မရှိပါ။",
        "movereason": "အ​ကြောင်း​ပြ​ချက် -",
        "revertmove": "ပြောင်းရန်",
        "delete_and_move_confirm": "ဟုတ်ပါသည်။ စာမျက်နှာကို ဖျက်ပါ။",
        "allmessages-filter-all": "အားလုံး",
        "allmessages-filter-modified": "ပြုပြင်ထားသော",
        "allmessages-language": "ဘာသာစကား:",
-       "allmessages-filter-submit": "သွား",
+       "allmessages-filter-submit": "သွားပါ",
        "thumbnail-more": "ပုံကြီးချဲ့ရန်",
        "filemissing": "ဖိုင်ပျောက်နေသည်",
        "thumbnail_error": "ပုံစံငယ်ဖန်တီးရာတွင် အမှားပြနေသည် - $1",
        "tooltip-feed-atom": "ဤစာမျက်နှာအတွက် Atom feed",
        "tooltip-t-contributions": "{{GENDER:$1|ဤအသုံးပြုသူ}}၏ ဆောင်ရွက်ချက်များ စာရင်း",
        "tooltip-t-emailuser": "{{GENDER:$1|ဤအသုံးပြုသူထံ}} အီးမေးပေးပို့ရန်",
-       "tooltip-t-upload": "ဖိုင်တင်ရန်",
+       "tooltip-t-upload": "á\80\96á\80­á\80¯á\80\84á\80ºá\80\99á\80»á\80¬á\80¸á\80\90á\80\84á\80ºá\80\9bá\80\94á\80º",
        "tooltip-t-specialpages": "အထူး စာမျက်နှာများအားလုံး စာရင်း",
        "tooltip-t-print": "ဤစာမျက်နှာ၏ ပရင့်ထုတ်နိုင်သောမူ",
        "tooltip-t-permalink": "ယခုမူအတွက် ပုံသေလိပ်စာ",
        "pageinfo-toolboxlink": "စာမျက်နှာ အချက်အလက်များ",
        "pageinfo-contentpage": "မာတိကစာမျက်နှာအဖြစ် ရေတွက်ပြီး",
        "pageinfo-contentpage-yes": "မှန်",
+       "pageinfo-category-info": "ကဏ္ဍ သတင်းအချက်အလက်",
+       "pageinfo-category-total": "အဖွဲ့ဝင်များ စုစုပေါင်းအရေအတွက်",
+       "pageinfo-category-pages": "စာမျက်နှာများ အရေအတွက်",
+       "pageinfo-category-subcats": "ကဏ္ဍခွဲများ အရေအတွက်",
+       "pageinfo-category-files": "ဖိုင်များ အရေအတွက်",
+       "pageinfo-user-id": "အသုံးပြုသူ အိုင်ဒီ",
        "markaspatrolleddiff": "စောင့်ကြပ်စစ်ဆေးပြီးကြောင်း မှတ်သားရန်",
        "markaspatrolledtext": "ဤစာမျက်နှာအား စောင့်ကြပ်စစ်ဆေးပြီးကြောင်း မှတ်သားရန်",
        "markedaspatrolled": "စောင့်ကြပ်စစ်ဆေးပြီးကြောင်း မှတ်သားပြီး",
        "markedaspatrolledtext": "[[:$1]] ၏ ရွေးချယ်ထားသော တည်းဖြတ်မူကို စောင့်ကြပ်စစ်ဆေးပြီးကြောင်း မှတ်သားပြီးပါပြီ။",
        "markedaspatrollednotify": "$1 သို့ ဤပြောင်းလဲမှုအား စောင့်ကြပ်စစ်ဆေးပြီးကြောင်း မှတ်သားပြီးပါပြီ။",
        "patrol-log-page": "စောင့်ကြပ်စစ်ဆေးမှု မှတ်တမ်း",
+       "confirm-markpatrolled-button": "အိုကေ",
        "filedeleteerror-short": "ဖိုင်ဖျက်ရာတွင် အမှားအယွင်း - $1",
        "previousdiff": "← တည်းဖြတ်မူ အဟောင်း",
        "nextdiff": "ပိုသစ်သော တည်းဖြတ်မှု",
        "newimages": "ပုံအသစ်များပြခန်း",
        "newimages-legend": "စိစစ်မှု",
        "newimages-label": "ဖိုင်အမည် (သို့ ယင်း၏အစိတ်အပိုင်း) -",
+       "newimages-user": "အိုင်ပီလိပ်စာ သို့ အသုံးပြုသူအမည်",
+       "newimages-newbies": "အကောင့်အသစ်များ၏ ပံ့ပိုးမှုများကိုသာ ပြရန်",
+       "newimages-mediatype": "မီဒီယာ အမျိုးအစား:",
        "noimages": "ကြည့်စရာဘာမှ မရှိပါ။",
        "ilsubmit": "ရှာဖွေရန်",
        "bydate": "ရက်စွဲဖြင့်",
        "sp-newimages-showfrom": "$1 နေ့ $2 အချိန်ကစသော ဖိုင်အသစ်များကို ပြရန်",
+       "seconds": "{{PLURAL:$1|$1 စက္ကန့်|$1 စက္ကန့်}}",
+       "minutes": "{{PLURAL:$1|$1 မိနစ်|$1 မိနစ်}}",
+       "hours": "{{PLURAL:$1|$1 နာရီ|$1 နာရီ}}",
+       "days": "{{PLURAL:$1|$1 ရက်|$1 ရက်}}",
+       "weeks": "{{PLURAL:$1|$1 ပတ်|$1 ပတ်}}",
+       "months": "{{PLURAL:$1|$1 လ|$1 လ}}",
+       "years": "{{PLURAL:$1|$1 နှစ်|$1 နှစ်}}",
+       "ago": "$1 အကြာက",
+       "just-now": "ယခုလေးတင်",
+       "hours-ago": "$1 {{PLURAL:$1|နာရီ|နာရီ}}အကြာက",
+       "minutes-ago": "$1 {{PLURAL:$1|မိနစ်|မိနစ်}} အကြာက",
+       "seconds-ago": "$1 {{PLURAL:$1|စက္ကန့်|စက္ကန့်}} အကြာက",
        "bad_image_list": "ဖောမတ်ပုံစံမှာ အောက်ပါအတိုင်းဖြစ်သည်။\n\nစာရင်းတွင်ထည့်သွင်းထားသော အရာများကိုသာ ထည့်သွင်းစဉ်းစားမည်။ (ခရေပွင့် * ဖြင့်စသော စာကြောင်းများ)\nစာကြောင်း၏ ပထမဆုံး လင့်သည် ဖိုင်ညံ့ ဖြစ်ရမည်။\nယင်းစာကြောင်းတွင်ပင် နောက်ထပ်လာသောလင့်များကို ချွင်းချက်အဖြစ် စဉ်းစားမည်။ ဆိုလိုသည်မှာ ၎င်းလင့်များတွင်လည်း အဆိုပါ ဖိုင်ညံ့ ပါကောင်း ပါဝင်နေမည်။",
-       "metadata": "Metadata",
+       "metadata": "မီတာဒေတာ",
        "metadata-help": "ဤဖိုင်တွင် သတင်းအချက်အလက် အပိုများ ပါဝင်သည်။ ဒီဂျစ်တယ် ကင်မရာ သို့ စကင်နာများက ထည့်ပေါင်းပေးလိုက်ခြင်း ဖြစ်ကောင်းဖြစ်မည်။\nအကယ်၍ ဖိုင်ကို မူရင်းအခြေအနေမှ ပြုပြင်လိုက်ပါက အသေးစိတ်အချို့သည် ပြုပြင်ထားသောဖိုင်တွင် အပြည့်အစုံ ပြန်ပါလာမည်မဟုတ်။",
        "metadata-expand": "ချဲ့ထားသော အသေးစိတ်များကို ပြရန်",
        "metadata-collapse": "ချဲ့ထားသော အသေးစိတ်များကို ပြရန်",
        "exif-gpslongitude": "လောင်ဂျီကျု",
        "exif-gpsaltitude": "အမြင့်",
        "exif-gpsdatestamp": "ဂျီပီအက်စ်ရက်စွဲ",
+       "exif-contact": "ဆက်သွယ်ရန် လိပ်စာ",
        "exif-languagecode": "ဘာသာစကား",
+       "exif-iimcategory": "ကဏ္ဍ",
+       "exif-cameraownername": "ကင်မရာပိုင်ရှင်",
+       "exif-copyrighted": "မူပိုင်ခွင့် အခြေအနေ",
+       "exif-copyrightowner": "မူပိုင်ခွင့်ပိုင်ရှင်",
+       "exif-disclaimer": "သတိပြုစရာ",
+       "exif-contentwarning": "အကြောင်းအရာ သတိပေးချက်",
        "exif-orientation-1": "ပုံမှန်",
        "exif-componentsconfiguration-0": "မတည်ရှိပါ",
        "exif-subjectdistance-value": "$1 မီတာ",
        "exif-sharpness-0": "ပုံမှန်",
        "exif-subjectdistancerange-1": "မက်ကရို",
        "exif-gpslongitude-w": "အနောက်လောင်ဂျီကျု",
+       "exif-gpsaltitude-above-sealevel": "ပင်လယ်ရေမျက်နှာပြင်အမြင့် $1 {{PLURAL:$1|မီတာ|မီတာ}}",
+       "exif-gpsaltitude-below-sealevel": "ပင်လယ်ရေမျက်နှာပြင်အောက် $1 {{PLURAL:$1|မီတာ|မီတာ}}",
+       "exif-gpsmeasuremode-2": "နှစ်ဖက်မြင် အတိုင်းအတာ",
+       "exif-gpsmeasuremode-3": "သုံးဖက်မြင် အတိုင်းအတာ",
+       "exif-gpsspeed-k": "တစ်နာရီလျင် ကီလိုမီတာနှုန်း",
        "exif-gpsspeed-m": "တစ်နာရီလျှင် ရှိသည့် မိုင်နှုန်း",
+       "exif-gpsspeed-n": "တစ်နာရီလျင် ရေမိုင်နှုန်း",
+       "exif-gpsdestdistance-k": "ကီလိုမီတာ",
+       "exif-gpsdestdistance-m": "မိုင်",
+       "exif-gpsdestdistance-n": "ရေမိုင်",
+       "exif-gpsdop-excellent": "အထူးကောင်း ($1)",
+       "exif-gpsdop-good": "ကောင်း ($1)",
+       "exif-gpsdop-moderate": "အလယ်အလတ် ($1)",
+       "exif-gpsdop-fair": "အတော်အသင့် ($1)",
+       "exif-gpsdop-poor": "ညံ့ဖျင်း ($1)",
+       "exif-objectcycle-a": "မနက်ပိုင်းသာ",
+       "exif-objectcycle-p": "ညနေပိုင်းသာ",
        "exif-dc-contributor": "ဆောင်ရွက်ပေးထားသူများ",
+       "exif-dc-source": "ရင်းမြစ် မီဒီယာ",
+       "exif-dc-type": "မီဒီယာ အမျိုးအစား",
+       "exif-iimcategory-ace": "အနုပညာ၊ ယဥ်ကျေးမှုနှင့် ဖြေဖျော်ရေး",
+       "exif-iimcategory-clj": "ရာဇဝတ်မှုနှင့် ဥပဒေ",
+       "exif-iimcategory-dis": "ဘေးအန္တရာယ်များနှင့် မတော်တဆမှုများ",
+       "exif-iimcategory-fin": "စီးပွားရေးနှင့် စီးပွားရေးလုပ်ငန်း",
+       "exif-iimcategory-edu": "ပညာရေး",
+       "exif-iimcategory-evn": "ပတ်ဝန်းကျင်",
+       "exif-iimcategory-hth": "ကျန်းမာရေး",
+       "exif-iimcategory-lab": "အလုပ်အကိုင်",
+       "exif-iimcategory-pol": "နိုင်ငံရေး",
+       "exif-iimcategory-rel": "ဘာသာရေးနှင့် ယုံကြည်မှု",
+       "exif-iimcategory-sci": "သိပ္ပံနှင့် နည်းပညာ",
+       "exif-iimcategory-spo": "အားကစား",
+       "exif-iimcategory-wea": "ရာသီဥတု",
+       "exif-urgency-normal": "ပုံမှန် ($1)",
+       "exif-urgency-low": "နိမ့် ($1)",
+       "exif-urgency-high": "မြင့် ($1)",
        "namespacesall": "အားလုံး",
        "monthsall": "အားလုံး",
        "confirmemail": "အီးမေးကိုအတည်ပြုပါ",
        "recreate": "ပြန်လည်ဖန်တီးရန်",
        "confirm_purge_button": "အိုကေ",
        "confirm-purge-top": "ဤစာမျက်နှာ၏ cache အား ရှင်းလင်းမည်လော?",
+       "confirm-watch-button": "အိုကေ",
+       "confirm-unwatch-button": "အိုကေ",
+       "confirm-rollback-button": "အိုကေ",
        "imgmultipageprev": "← ပြီးခဲ့သော စာမျက်နှာ",
        "imgmultipagenext": "နောက်စာမျက်နှာ →",
        "imgmultigo": "သွားပါ!",
        "imgmultigoto": "စာမျက်နှာ $1 ကို သွားရန်",
        "img-lang-default": "(ပင်မ ဘာသာစကား)",
+       "img-lang-go": "သွားပါ",
+       "ascending_abbrev": "ငယ်စဉ်ကြီးလိုက်",
+       "descending_abbrev": "ကြီးစဉ်ငယ်လိုက်",
        "table_pager_next": "နောက်စာမျက်နှာ",
        "table_pager_prev": "ပြီးခဲ့သော စာမျက်နှာ",
        "table_pager_first": "ပထမဆုံး စာမျက်နှာ",
        "autoredircomment": "စာမျက်နှာကို [[$1]] သို့ ပြန်ညွှန်းလိုက်သည်",
        "autosumm-changed-redirect-target": "ပြန်ညွှန်းကို [[$1]] မှ [[$2]] သို့ ပြောင်းလဲခဲ့သည်",
        "autosumm-new": "\"$1\" အစချီသော စာလုံးတို့နှင့် စာမျက်နှာကို ဖန်တီးလိုက်သည်",
+       "autosumm-newblank": "ဗလာစာမျက်နှာကို ဖန်တီးခဲ့သည်",
        "size-bytes": "$1 {{PLURAL:$1|ဘိုက်|ဘိုက်}}",
        "watchlistedit-normal-title": "စောင့်ကြည့်စာရင်းကို တည်းဖြတ်ရန်",
        "watchlistedit-normal-legend": "စောင့်ကြည့်စာရင်းမှ ခေါင်းစဉ်များကို ဖျက်ရန်",
        "watchlistedit-normal-submit": "ခေါင်းစဉ်များကို ဖယ်ရှားရန်",
        "watchlistedit-normal-done": "{{PLURAL:$1|ခေါင်းစဉ်တစ်ခု|ခေါင်းစဉ် $1 ခုတို့}}ကို သင်၏ စောင့်ကြည့်စာရင်းမှ ဖယ်ရှားပြီးပြီ:",
        "watchlistedit-raw-titles": "ခေါင်းစဉ်များ -",
+       "watchlistedit-raw-submit": "စောင့်ကြည့်စာရင်းကို မွမ်းမံရန်",
+       "watchlistedit-raw-done": "သင်၏ စောင့်ကြည့်စာရင်းကို မွမ်းမံပြီးဖြစ်သည်။",
+       "watchlistedit-clear-title": "စောင့်ကြည့်စာရင်းကို ရှင်းလင်းရန်",
+       "watchlistedit-clear-legend": "စောင့်ကြည့်စာရင်းကို ရှင်းလင်းရန်",
+       "watchlistedit-clear-titles": "ခေါင်းစဉ်များ -",
        "watchlisttools-clear": "စောင့်ကြည့်စာရင်းကို ရှင်းလင်းရန်",
        "watchlisttools-view": "ကိုက်ညီသော အပြောင်းအလဲများကို ကြည့်ရန်",
        "watchlisttools-edit": "စောင့်ကြည့်စာရင်းများကို ကြည့်ပြီး တည်းဖြတ်ပါ။",
        "version": "ဗားရှင်း",
        "version-specialpages": "အထူး စာမျက်နှာများ",
        "version-other": "အခြား",
+       "version-no-ext-name": "[အမည်မရှိ]",
        "version-license": "မီဒီယာဝီကီ လိုင်စင်",
+       "version-ext-license": "လိုင်စင်",
+       "version-skin-colheader-name": "အသွင်အပြင်",
+       "version-ext-colheader-version": "ဗားရှင်း",
+       "version-ext-colheader-license": "လိုင်စင်",
+       "version-ext-colheader-description": "ဖော်ပြချက်",
+       "version-ext-colheader-credits": "စာရေးသူများ",
+       "version-license-title": "$1 အတွက် လိုင်စင်",
        "version-software": "သွင်းထားသော ဆော့ဝဲ",
        "version-software-product": "ထုတ်ကုန်",
        "version-software-version": "ဗားရှင်း",
        "redirect": "ဖိုင်၊ အသုံးပြုသူ၊ စာမျက်နှာ၊ တည်းဖြတ်မူ၊ သို့မဟုတ် မှတ်တမ်းအိုင်ဒီ မှ ပြန်ညွှန်းသည်",
        "redirect-summary": "ဤအထူးစာမျက်နှာသည် ဖိုင်တစ်ခု (ပေးထားသော ဖိုင်အမည်)၊ စာမျက်နှာတစ်ခု (ပေးထားသော တည်းဖြတ်မူအိုင်ဒီ သို့ စာမျက်နှာအိုင်ဒီ)၊ အသုံးပြုသူစာမျက်နှာတစ်ခု (ပေးထားသော အသုံးပြုသူဂဏန်းအိုင်ဒီ)၊ သို့မဟုတ် မှတ်တမ်းတစ်ခု (ပေးထားသော မှတ်တမ်းအိုင်ဒီ) ဆီသို့ ပြန်ညွှန်းသည်။ အသုံးပြုပုံ - [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], သို့မဟုတ် [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "သွားပါ",
-       "redirect-lookup": "ရှာဖွေ",
-       "redirect-value": "တန်ဖိုး",
+       "redirect-lookup": "ရှာဖွေ:",
+       "redirect-value": "တန်ဖိုး:",
        "redirect-user": "အသုံးပြုသူ အိုင်ဒီ",
        "redirect-page": "စာမျက်နှာ အိုင်ဒီ",
        "redirect-revision": "စာမျက်နှာ တည်းဖြတ်မူ",
        "redirect-file": "ဖိုင်အမည်",
        "fileduplicatesearch": "နှစ်ခုထပ်နေသောဖိုင်များကို ရှာရန်",
-       "fileduplicatesearch-filename": "ဖိုင်အမည် -",
+       "fileduplicatesearch-filename": "ဖိုင်အမည်:",
        "fileduplicatesearch-submit": "ရှာဖွေရန်",
        "specialpages": "အထူး စာမျက်နှာများ",
        "specialpages-note-restricted": "* ပုံမှန် အထူးစာမျက်နှာများ။\n* <span class=\"mw-specialpagerestricted\">ကန့်သတ်ထားသော အထူးစာမျက်နှာများ။</span>",
        "specialpages-group-maintenance": "ထိန်းသိမ်းမှု အစီရင်ခံချက်များ",
        "specialpages-group-other": "အခြားအထူးစာမျက်နှာများ",
-       "specialpages-group-login": "Log in ဝင်ရန်/ အကောင့် ဖန်တီးရန်",
+       "specialpages-group-login": "အကောင့်ဝင်ရန် / ဖန်တီးရန်",
        "specialpages-group-changes": "လတ်တလော အပြောင်းအလဲနှင့် မှတ်တမ်းများ",
        "specialpages-group-media": "မီဒီယာ အစီရင်ခံချက်များနှင့် Upload တင်ထားသည်များ",
        "specialpages-group-users": "အသုံးပြုသူများနှင့် အခွင့်အရေးများ",
        "tag-filter": "[[Special:Tags|Tag]] သီးသန့်စစ်ထုတ်ရန် -",
        "tag-filter-submit": "စိစစ်မှု",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|စာတွဲ|စာတွဲများ}}]]: $2)",
+       "tag-mw-contentmodelchange": "မာတိကာမော်ဒယ် ပြောင်းလဲမှု",
        "tag-mw-new-redirect": "ပြန်ညွှန်းအသစ်",
        "tag-mw-removed-redirect": "ပြန်ညွှန်းကို ဖယ်ရှားခဲ့သည်",
        "tag-mw-changed-redirect-target": "ပြန်ညွှန်းကို ပြောင်းလဲခဲ့သည်",
        "tag-mw-replace": "အစားထိုးခဲ့သည်",
        "tag-mw-rollback": "နောက်ပြန် ပြန်ပြင်ခြင်း",
        "tag-mw-undo": "နောက်ပြန် ပြန်ပြင်ခြင်း",
-       "tags-title": "အမည်တွဲ",
+       "tags-title": "အမည်တွဲများ",
        "tags-tag": "အမည်တွဲ အမည်",
        "tags-active-yes": "မှန်",
        "tags-active-no": "မလုပ်ပါ",
+       "tags-source-extension": "ဆော့ဝဲလ်မှ သတ်မှတ်ထားသော",
+       "tags-source-none": "အသုံးမပြုတော့ပါ",
        "tags-edit": "ပြင်ဆင်ရန်",
+       "tags-delete": "ဖျက်",
+       "tags-activate": "စတင်သက်ဝင်စေရန်",
+       "tags-deactivate": "သက်ဝင်ခြင်းမလုပ်တော့ရန်",
        "tags-hitcount": "ပြောင်းလဲချက် $1 {{PLURAL:$1|ခု|ခု}}",
+       "tags-manage-no-permission": "သင့်တွင် အမည်တွဲများ အပြောင်းအလဲကို စီမံရန် ခွင့်ပြုချက်မရှိပါ။",
+       "tags-manage-blocked": "{{GENDER:$1|သင်}}သည် ပိတ်ပင်ခံရစဉ် အမည်တွဲများ အပြောင်းအလဲကို စီမံခွင့်မရှိပါ။",
+       "tags-create-heading": "အမည်တွဲအသစ် ဖန်တီးရန်",
+       "tags-create-tag-name": "အမည်တွဲ အမည်:",
+       "tags-create-reason": "အ​ကြောင်း​ပြ​ချက်:",
+       "tags-create-submit": "ဖန်တီးရန်",
+       "tags-create-already-exists": "အမည်တွဲ \"$1\" ရှိနှင့်ပြီးဖြစ်သည်။",
+       "tags-create-warnings-below": "အမည်တွဲ ဆက်လက်ဖန်တီးရန် ဆန္ဒရှိပါသလား။",
+       "tags-delete-title": "အမည်တွဲကို ဖျက်ရန်",
+       "tags-delete-reason": "အ​ကြောင်း​ပြ​ချက်:",
+       "tags-delete-not-found": "အမည်တွဲ \"$1\" မတည်ရှိပါ။",
+       "tags-delete-no-permission": "သင့်တွင် အမည်တွဲများ အပြောင်းအလဲကို ဖျက်ပစ်ရန် ခွင့်ပြုချက်မရှိပါ။",
+       "tags-activate-title": "အမည်တွဲကို သက်ဝင်စေရန်",
+       "tags-activate-reason": "အ​ကြောင်း​ပြ​ချက်:",
+       "tags-activate-not-found": "အမည်တွဲ \"$1\" မတည်ရှိပါ။",
+       "tags-activate-submit": "စတင်သက်ဝင်စေရန်",
+       "tags-deactivate-title": "အမည်တွဲကို သက်ဝင်ခြင်းမလုပ်တော့ပါ",
+       "tags-deactivate-reason": "အ​ကြောင်း​ပြ​ချက်:",
+       "tags-deactivate-submit": "သက်ဝင်ခြင်းမလုပ်တော့ရန်",
+       "tags-edit-title": "အမည်တွဲများကို တည်းဖြတ်ရန်",
+       "tags-edit-manage-link": "အမည်တွဲများကို စီမံခန့်ခွဲရန်",
+       "tags-edit-existing-tags": "ရှိနှင့်ပြီးသော အမည်တွဲများ:",
+       "tags-edit-existing-tags-none": "<em>ဘာမှမရှိ</em>",
+       "tags-edit-new-tags": "အမည်တွဲ အသစ်များ:",
+       "tags-edit-add": "ဤအမည်တွဲများကို ပေါင်းထည့်ရန်:",
+       "tags-edit-remove": "ဤအမည်တွဲများကို ဖယ်ရှားရန်:",
+       "tags-edit-remove-all-tags": "(အမည်တွဲများအားလုံးကို ဖယ်ရှား)",
+       "tags-edit-chosen-placeholder": "အမည်တွဲများအချို့ကို ရွေးချယ်ရန်",
+       "tags-edit-chosen-no-results": "ကိုက်ညီသော အမည်တွဲများ မတွေ့ရှိပ",
+       "tags-edit-reason": "အ​ကြောင်း​ပြ​ချက်:",
        "comparepages": "စာမျက်နှာများကို နှိုင်းယှဉ်ရန်",
        "compare-page1": "စာမျက်နှာတစ်",
        "compare-page2": "စာမျက်နှာနှစ်",
        "compare-rev1": "မူ တစ်",
        "compare-rev2": "မူ နှစ်",
        "compare-submit": "နှိုင်းယှဉ်ရန်",
+       "diff-form": "ကွဲပြားချက်များ",
+       "diff-form-submit": "ကွဲပြားချက်များကို ပြသရန်",
+       "permanentlink": "ပုံ​သေ​လိပ်​စာ​",
        "dberr-problems": "ဝမ်းနည်းပါသည်။ ဤဆိုက်သည် နည်းပညာပိုင်းဆိုင်ရာ အခက်အခဲများ ကြုံတွေ့နေရပါသည်။",
        "htmlform-required": "ဤတန်ဖိုး လိုအပ်သည်",
        "htmlform-submit": "ထည့်သွင်းရန်",
        "htmlform-reset": "ပြောင်းလဲထားသည်များ မလုပ်တော့ရန်",
        "htmlform-selectorother-other": "အခြား",
+       "htmlform-cloner-delete": "ဖယ်ရှားရန်",
+       "htmlform-cloner-required": "အနည်းဆုံး တန်ဖိုးတစ်ခု လိုအပ်သည်။",
+       "htmlform-title-not-creatable": "\"$1\" ဖန်တီးနိုင်စွမ်းရှိသော စာမျက်နှာခေါင်းစဉ် မဟုတ်ပါ",
+       "htmlform-title-not-exists": "$1 မတည်ရှိပါ။",
+       "htmlform-user-not-exists": "<strong>$1</strong> မတည်ရှိပါ။",
+       "htmlform-user-not-valid": "<strong>$1</strong> သည် ဆီလျော်သော အသုံးပြုသူအမည် မဟုတ်ပါ။",
        "logentry-delete-delete": "$3 စာမျက်နှာကို $1 က {{GENDER:$2|ဖျက်ပစ်ခဲ့သည်}}",
        "logentry-delete-delete_redir": "ပြန်ညွှန်း $3 ကို ထပ်ပိုးရေးသားခြင်းဖြင့် $1 က {{GENDER:$2|ဖျက်ပစ်ခဲ့သည်}}",
        "logentry-delete-restore": "စာမျက်နှာ $3 ($4) ကို $1 က {{GENDER:$2|ပြန်လည်ထိန်းသိမ်းခဲ့သည်}}",
+       "restore-count-files": "{{PLURAL: $1|၁ ဖိုင်|$1 ဖိုင်များ}}",
        "logentry-delete-revision": "$3 စာမျက်နှာပေါ်ရှိ {{PLURAL:$5|တည်းဖြတ်မူတစ်ခု|တည်းဖြတ်မူ $5 ခု}}၏ အမြင်ပုံစံကို $1 က {{GENDER:$2|ပြောင်းလဲခဲ့သည်}}: $4",
        "revdelete-content-hid": "အကြောင်းအရာ ဝှက်ခြင်း",
        "revdelete-restricted": "အက်ဒမင်များသို့ ကန့်သတ်ချက်များ သက်ရောက်ရန်",
        "logentry-rights-rights": "{{GENDER:$6|$3}} အတွက် အုပ်စုအဖွဲ့ဝင် $4 မှ $5 သို့ $1 က {{GENDER:$2|ပြောင်းလဲခဲ့သည်}}",
        "logentry-upload-upload": "$1 သည် $3 ကို {{GENDER:$2|upload တင်ခဲ့သည်}}",
        "logentry-upload-overwrite": "$3 ၏ ဗားရှင်းအသစ်ကို $1 {{GENDER:$2|upload တင်ခဲ့သည်}}",
+       "log-name-managetags": "အမည်တွဲ စီမံခန့်ခွဲမှု မှတ်တမ်း",
+       "log-name-tag": "စာတွဲ မှတ်တမ်း",
        "rightsnone": "(ဘာမှမရှိ)",
+       "feedback-back": "နောက်သို့",
+       "feedback-cancel": "မလုပ်တော့ပါ",
+       "feedback-close": "ပြီးပြီ",
+       "feedback-dialog-title": "အကြံပေး ပေါင်းထည့်ရန်",
+       "feedback-message": "မက်ဆေ့:",
+       "feedback-subject": "အကြောင်းအရာ:",
+       "feedback-submit": "ထည့်သွင်းရန်",
+       "feedback-thanks-title": "ကျေးဇူးတင်ပါသည်",
        "searchsuggest-search": "{{SITENAME}} တွင် ရှာဖွေရန်",
        "api-error-unknown-warning": "မသိသေးသော သတိပေးချက်: \"$1\"။",
+       "api-error-unknownerror": "အမည်မသိ အမှား - \"$1\"",
+       "duration-seconds": "$1 {{PLURAL:$1|စက္ကန့်|စက္ကန့်}}",
+       "duration-minutes": "$1 {{PLURAL:$1|မိနစ်|မိနစ်}}",
+       "duration-hours": "$1 {{PLURAL:$1|နာရီ|နာရီ}}",
        "duration-days": "$1 {{PLURAL:$1|ရက်|ရက်}}",
+       "duration-weeks": "$1 {{PLURAL:$1|ပတ်|ပတ်}}",
+       "duration-years": "$1 {{PLURAL:$1|ခုနှစ်|ခုနှစ်}}",
+       "duration-decades": "$1 {{PLURAL:$1|ဆယ်စုနှစ်|ဆယ်စုနှစ်များ}}",
+       "duration-centuries": "$1 {{PLURAL:$1|ရာစုနှစ်|ရာစုနှစ်များ}}",
+       "duration-millennia": "$1 {{PLURAL:$1|ထောင်စုနှစ်|ထောင်စုနှစ်များ}}",
+       "limitreport-cputime": "စီပီယူ အချိန်အသုံးပြုမှု",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|စက္ကန့်|စက္ကန့်}}",
+       "limitreport-walltime-value": "$1 {{PLURAL:$1|စက္ကန့်|စက္ကန့်}}",
+       "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|ဘိုက်|ဘိုက်}}",
+       "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|ဘိုက်|ဘိုက်}}",
+       "limitreport-unstrip-size-value": "$1/$2 {{PLURAL:$2|ဘိုက်|ဘိုက်}}",
+       "expand_templates_output": "ရလဒ်",
+       "expand_templates_ok": "အိုကေ",
+       "expand_templates_remove_comments": "မှတ်ချက်များ ဖယ်ရှားရန်",
+       "expand_templates_preview": "ကြိုတင်အစမ်းကြည့်ရှုရန်",
        "pagelanguage": "စာမျက်နှာ ဘာသာစကား ပြောင်းလဲရန်",
        "pagelang-name": "စာမျက်နှာ",
        "pagelang-language": "ဘာသာစကား",
        "pagelang-use-default": "ပင်မ ဘာသာစကားကို အသုံးပြုရန်",
+       "pagelang-select-lang": "ဘာသာစကား ရွေးရန်",
+       "pagelang-reason": "အကြောင်းပြချက်",
+       "pagelang-submit": "ထည့်သွင်းရန်",
+       "pagelang-nonexistent-page": "စာမျက်နှာ $1 မတည်ရှိပါ။",
        "right-pagelang": "စာမျက်နှာ ဘာသာစကား ပြောင်းလဲရန်",
+       "action-pagelang": "စာမျက်နှာ ဘာသာစကား ပြောင်းလဲရန်",
        "log-name-pagelang": "ဘာသာစကား ပြောင်းလဲမှု မှတ်တမ်း",
        "log-description-pagelang": "ဤအရာသည် စာမျက်နှာ၏ဘာသာစကားများ ပြောင်းလဲမှုမှတ်တမ်း ဖြစ်သည်။",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (လုပ်ခွင့်ပြုပြီး)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 (<strong>လုပ်ခွင့်မပြုထားပါ</strong>)",
        "mediastatistics": "မီဒီယာ စာရင်းအင်း",
        "mediastatistics-nbytes": "{{PLURAL:$1|$1 ဘိုက်|$1 ဘိုက်}} ($2; $3%)",
+       "mediastatistics-bytespertype": "ဤအပိုင်းအတွက် စုစုပေါင်းဖိုင်အရွယ်အစား: {{PLURAL:$1|$1 ဘိုက်|$1 ဘိုက်}} ($2; $3%)။",
+       "mediastatistics-allbytes": "ဖိုင်အားလုံးအတွက် စုစုပေါင်းဖိုင်အရွယ်အစား: {{PLURAL:$1|$1 ဘိုက်|$1 ဘိုက်}} ($2)။",
+       "mediastatistics-table-count": "ဖိုင်များ အရေအတွက်",
+       "mediastatistics-header-total": "ဖိုင်အားလုံး",
+       "special-characters-group-latin": "လက်တင်",
        "special-characters-group-symbols": "သင်္ကေတများ",
+       "special-characters-group-greek": "ဂရိ",
+       "special-characters-group-arabic": "အာရဗီ",
+       "special-characters-group-hebrew": "ဟီးဘရူး",
+       "special-characters-group-bangla": "ဘင်္ဂလား",
+       "special-characters-group-thai": "ထိုင်း",
+       "special-characters-group-lao": "လာအို",
+       "special-characters-group-khmer": "ခမာ",
+       "mw-widgets-mediasearch-noresults": "မည်သည့်ရလဒ်မျှ မရပါ",
+       "mw-widgets-titleinput-description-new-page": "စာမျက်နှာ မရှိသေးပါ",
+       "mw-widgets-categoryselector-add-category-placeholder": "ကဏ္ဍတစ်ခု ထည့်ပေါင်း...",
+       "mw-widgets-usersmultiselect-placeholder": "ပို၍ ထည့်ပေါင်း...",
+       "date-range-from": "နေ့စွဲမှ:",
+       "date-range-to": "နေ့စွဲသို့:",
        "randomrootpage": "ကျပန်း အခြေ စာမျက်နှာ",
        "log-action-filter-newusers": "အကောင့်ဖန်တီးမှု အမျိုးအစား:",
        "log-action-filter-all": "အားလုံး",
+       "log-action-filter-block-block": "ပိတ်ပင်",
+       "log-action-filter-contentmodel-change": "မာတိကာမော်ဒယ်၏ ပြောင်းလဲမှု",
+       "log-action-filter-delete-delete": "စာမျက်နှာ ဖျက်ပစ်ခြင်း",
+       "log-action-filter-delete-event": "မှတ်တမ်း ဖျက်ပစ်ခြင်း",
+       "log-action-filter-managetags-create": "အမည်တွဲ ဖန်တီးခြင်း",
+       "log-action-filter-managetags-delete": "အမည်တွဲ ဖျက်ပစ်ခြင်း",
+       "log-action-filter-managetags-activate": "အမည်တွဲ သက်ဝင်စေခြင်း",
+       "log-action-filter-managetags-deactivate": "အမည်တွဲ မသက်ဝင်စေတော့ခြင်း",
        "log-action-filter-newusers-create": "အမည်မသိ အသုံးပြုသူများမှ ဖန်တီးမှု",
        "log-action-filter-newusers-create2": "မှတ်ပုံတင်ထားသော အသုံးပြုသူမှ ဖန်တီးမှု",
        "log-action-filter-newusers-autocreate": "အလိုအလျောက် ဖန်တီးမှု",
        "log-action-filter-newusers-byemail": "အီးမေးလ်မှတဆင့် စကားဝှက်ပို့၍ ဖန်တီးမှု",
+       "log-action-filter-protect-protect": "ကာကွယ်မှု",
+       "authmanager-provider-temporarypassword": "ယာယီစကားဝှက်",
        "gotointerwiki": "{{SITENAME}} မှ ထွက်ခွာနေသည်",
+       "pagedata-title": "စာမျက်နှာ ဒေတာ",
+       "pagedata-bad-title": "မဆီလျော်သော ခေါင်းစဉ်: $1",
        "passwordpolicies": "စကားဝှက် မူဝါဒများ",
-       "passwordpolicies-summary": "ဤသည်မှာ ဤဝီကီရှိ အသုံးပြုသူအုပ်စုများအတွက် အကျုံးဝင်သော စကားဝှက် မူဝါဒများ ဖြစ်သည်။"
+       "passwordpolicies-summary": "ဤသည်မှာ ဤဝီကီရှိ အသုံးပြုသူအုပ်စုများအတွက် အကျုံးဝင်သော စကားဝှက် မူဝါဒများ ဖြစ်သည်။",
+       "passwordpolicies-group": "အုပ်စု",
+       "passwordpolicies-policies": "မူဝါဒများ",
+       "passwordpolicies-policy-passwordcannotmatchusername": "စကားဝှက်သည် အသုံးပြုသူအမည်နှင့် မတူညီရပါ"
 }
index c56ba7a..459a65e 100644 (file)
        "ns-specialprotected": "Spesialsider kan ikke redigeres.",
        "titleprotected": "Denne tittelen har blitt låst for oppretting av [[User:$1|$1]].\nDen angitte grunnen er <em>$2</em>.",
        "filereadonlyerror": "Kan ikke endre filen «$1» fordi filsamlingen «$2» er skrivebeskyttet.\n\nSystemadministrator ga følgende begrunnelse: «$3».",
+       "invalidtitle": "Ugyldig tittel",
        "invalidtitle-knownnamespace": "Ugyldig tittel med navnerommet «$2» og teksten «$3»",
        "invalidtitle-unknownnamespace": "Ugyldig tittel med ukjent navneromsnummer $1 og teksten «$2»",
        "exception-nologin": "Ikke innlogget",
index 08002eb..bb2a544 100644 (file)
        "ns-specialprotected": "Stron specjalnych nie można edytować.",
        "titleprotected": "Utworzenie strony o tej nazwie zostało zablokowane przez [[User:$1|$1]].\nUzasadnienie blokady: <em>$2</em>.",
        "filereadonlyerror": "Nie można zmodyfikować pliku „$1”, ponieważ repozytorium plików „$2” jest w trybie tylko do odczytu.\n\nBlokujący go administrator systemu podał następujący powód: „$3”.",
+       "invalidtitle": "Nieprawidłowy tytuł",
        "invalidtitle-knownnamespace": "Nieprawidłowa nazwa \"$3\" w przestrzeni nazw \"$2\"",
        "invalidtitle-unknownnamespace": "Nieprawidłowy tytuł \"$2\" z nieznanym numerem przestrzeni nazw $1",
        "exception-nologin": "Nie jesteś zalogowany/a",
index 1b36349..aab0cfe 100644 (file)
        "ns-specialprotected": "Não é possível editar páginas especiais",
        "titleprotected": "Este título foi protegido, para que não seja criado.\nQuem o protegeu foi [[User:$1|$1]], com a justificativa: <em>$2</em>.",
        "filereadonlyerror": "Não é possível modificar o arquivo \"$1\" porque o repositório do arquivo \"$2\" está em modo somente leitura.\n\nO administrador de sistema que bloqueou ofereceu a seguinte explicação: \"$3\".",
+       "invalidtitle": "Título inválido",
        "invalidtitle-knownnamespace": "Título inválido para o espaço nominal \"$2\" e texto \"$3\"",
        "invalidtitle-unknownnamespace": "Título inválido para o espaço nominal de número desconhecido ($1) e texto \"$2\"",
        "exception-nologin": "Não está autenticado",
index 6bc4061..2e7fb21 100644 (file)
        "ns-specialprotected": "Não é possível editar páginas especiais.",
        "titleprotected": "Este título foi protegido contra criação por [[User:$1|$1]].\nA justificação dada foi <em>$2</em>.",
        "filereadonlyerror": "Não é possível modificar o ficheiro \"$1\" porque o repositório de ficheiros \"$2\" está em modo de leitura.\n\nO administrador do sistema que efetuou o bloqueio deu a seguinte explicação: \"$3\".",
+       "invalidtitle": "Título inválido",
        "invalidtitle-knownnamespace": "Título inválido com o domínio \"$2\" e texto \"$3\"",
        "invalidtitle-unknownnamespace": "Título inválido com número de domínio $1 desconhecido e texto \"$2\"",
        "exception-nologin": "Não está autenticado",
index 41765df..4b1717d 100644 (file)
        "ns-specialprotected": "Error message displayed when trying to edit a page in the Special namespace",
        "titleprotected": "Used as error message. Parameters:\n* $1 - username; GENDER supported\n* $2 - reason for protection",
        "filereadonlyerror": "Parameters:\n* $1 - file name\n* $2 - file repository name\n* $3 - reason",
+       "invalidtitle": "Displayed when an invalid title was encountered (generally in a list) and there are no details about it to be shown.",
        "invalidtitle-knownnamespace": "Displayed when an invalid title was encountered (generally in a list), but the namespace number is known to exist.\n\nParameters:\n* $1 - (Unused) the namespace number\n* $2 - the namespace name in content language or {{msg-mw|blanknamespace}} for the main namespace\n* $3 - the part of the title after the namespace (e.g. SomeName for the page User:SomeName)",
        "invalidtitle-unknownnamespace": "Displayed when an invalid title was encountered (generally in a list) and the namespace number is unknown.\n\nParameters:\n* $1 - the namespace number\n* $2 - the part of the title after the namespace (e.g. SomeName for the page User:SomeName)",
        "exception-nologin": "Generic page title used on error page when a user is not logged in. Message used by the UserNotLoggedIn exception.\n{{Identical|Not logged in}}",
index e340e7f..1ee7786 100644 (file)
        "password-login-forbidden": "L'ause de stu nome utende e passuord onne state vietate.",
        "mailmypassword": "Azzere 'a passuord",
        "passwordremindertitle": "Passuord temboranea nova pe {{SITENAME}}",
-       "passwordremindertext": "Quacchedune (pò essere tu, da quiste indirizze IP $1) ha cerchete 'na nova password pe {{SITENAME}} ($4).\n'Na password temboranea pe l'utende \"$2\" ha state ccrejete e ha state 'mbostete a \"$3\".\nCe quiste ere quidde ca vulive, mo vide ce te colleghe e te scacchie 'na password nova.\n'A password temboranea adda murè 'mbrà {{PLURAL:$5|'nu giurne|$5 giurne}}.\n\nCe quacche otre 'nvece ha fatte sta rechieste, o ce tu t'è recurdate 'a password, e non g'à vuè cu cangè cchiù, allore no sce penzanne a 'stu messagge e continue a ausà 'a vecchia password.",
+       "passwordremindertext": "Quacchedune (da quiste indirizze IP $1) ha cerchete 'na nova password pe {{SITENAME}} ($4).\n'Na password temboranea pe l'utende \"$2\" ha state ccrejete e ha state 'mbostete a \"$3\".\nCe quiste ere quidde ca vulive, mo vide ce te colleghe e te scacchie 'na password nova.\n'A password temboranea adda murè 'mbrà {{PLURAL:$5|'nu giurne|$5 giurne}}.\n\nCe quacche otre 'nvece ha fatte sta rechieste, o ce tu t'è recurdate 'a password, e non g'à vuè cu cangè cchiù, allore no sce penzanne a 'stu messagge e continue a ausà 'a vecchia password.",
        "noemail": "Non ge stonne email reggistrete pe l'utende \"$1\".",
        "noemailcreate": "Tu ha mèttere 'n'indirizze e-mail valide",
        "passwordsent": "'Na nova passuord ha state mannete a l'indirizze e-mail reggistrete pe \"$1\".\nPe piacere, colleghete n'otra vota quanne l'è ricevute.",
        "botpasswords-existing": "Passuord de le bot esistende",
        "botpasswords-createnew": "Ccreje 'na passuord nove pu bot",
        "botpasswords-editexisting": "Cange 'na passuord d'u bot ca esiste ggià",
+       "botpasswords-label-needsreset": "(le password onna essere repristinate)",
        "botpasswords-label-appid": "Nome d'u bot:",
        "botpasswords-label-create": "Ccreje",
        "botpasswords-label-update": "Aggiorne",
        "resetpass-submit-loggedin": "Cange 'a password",
        "resetpass-submit-cancel": "Annulle",
        "resetpass-wrong-oldpass": "'A password temboranée o quedda corrende non g'è valide.\nPò essere ca tu è già cangiate 'a password toje o n'è cercate una nove temboranée.",
-       "resetpass-recycled": "Pe piacere azzere 'a password toje cu 'n'otra password deverse da quedde de mò.",
+       "resetpass-recycled": "Pe piacere cange 'a password toje cu 'n'otra password deverse da quedde de mò.",
        "resetpass-temp-emailed": "Tu è trasute cu 'nu codece email tembaranèe.\nPe spiccià de trasè, tu ha 'mbostà 'na password nove aqquà:",
        "resetpass-temp-password": "Password temboranea:",
        "resetpass-abort-generic": "'U cange de passuord ha state annullate da 'n'estenzione.",
        "resetpass-expired": "'A password toje ha scadute. Pe piacere 'mboste 'a password nove pe trasè.",
-       "resetpass-expired-soft": "'A password toje ha scadute e ave abbesògne de essere azzerate. Pe piacere scacchie 'n'otra password mò, o cazze \"{{int:authprovider-resetpass-skip-label}}\" pe azzerarle cchiù tarde.",
-       "resetpass-validity-soft": "'A password toje non g'è valide: $1\n\nPe piacere scacchie 'na password nove, o cazze \"{{int:authprovider-resetpass-skip-label}}\"pe azzerarle cchiù tarde.",
+       "resetpass-expired-soft": "'A password toje ha scadute e ave abbesògne de essere cangiate. Pe piacere scacchie 'n'otra password mò, o cazze \"{{int:authprovider-resetpass-skip-label}}\" pe cangiale cchiù tarde.",
+       "resetpass-validity-soft": "'A password toje non g'è valide: $1\n\nPe piacere scacchie 'na password nove, o cazze \"{{int:authprovider-resetpass-skip-label}}\" pe cangiale cchiù tarde.",
        "passwordreset": "Azzere 'a passuord",
        "passwordreset-text-one": "Comblete stu module pe azzerà 'a passuord toje.",
        "passwordreset-text-many": "{{PLURAL:$1|Inghie une de le cambe pe azzerà 'a passuord toje.}}",
        "previewerrortext": "'N'errore ha assute quanne ste facive l'andeprime de le cangiaminde.",
        "blockedtitle": "L'utende è blocchete",
        "blockedtext": "<strong>'U nome de l'utende o l'indirizze IP ha state bloccate.</strong>\n\n'U blocche ha state fatte da $1.\n'U mutive date jè <em>$2</em>.\n\n* 'U Blocche accumenze: $8\n* 'U Blocche spicce: $6\n* Tipe de blocche: $7\n\nTu puè condatta $1 o n'otre [[{{MediaWiki:Grouppage-sysop}}|amministratore]] pe 'ngazzarte sus a 'u blocche.\nTu non ge puè ausà 'u strumende \"{{int:emailuser}}\" senza ca mitte n'indirizze email valide jndr'à le\n[[Special:Preferences|preferenze tune]] e ce è state bloccate sus a l'use sue.\nL'IP ca tine mò jè $3 e 'u codece d'u blocche jè #$5.\nPe piacere mitte ste doje 'mbormaziune ce manne 'na richieste de sblocche.",
-       "autoblockedtext": "L'indirizze IP tue ha state automaticamende blocchete purcè ha state ausete da n'otre utende, ca avère state blocchete da $1.\n'U mutive date jè 'u seguende:\n\n:''$2''\n\n* Inizie d'u blocche: $8\n* Scadenze d'u blocche: $6\n* Blocche 'ndise: $7\n\nTu puè cundattà $1 o une de l'otre [[{{MediaWiki:Grouppage-sysop}}|amministrature]] pe parà de stu probbleme.\n\nVide Bbuene ca tu non ge puè ausà 'a funziona \"manne n'e-mail a stu utende\" senze ca tu tìne 'n'indirizze e-mail valide e reggistrete jndr'à seziona [[Special:Preferences|me piace accussì]] e tu non ge sinde blocchete da ausarle.\n\nL'indirizze IP corrende jè $3, e 'u codece d'u blocche jè #$5.\nPe piacere mitte tutte le dettaglie ca ponne essere utile pe le richieste tue.",
+       "autoblockedtext": "L'indirizze IP tue ha state automaticamende blocchete purcè ha state ausete da n'otre utende, ca avère state blocchete da $1.\n'U mutive date jè 'u seguende:\n\n:''$2''\n\n* Inizie d'u blocche: $8\n* Scadenze d'u blocche: $6\n* Blocche 'ndise: $7\n\nTu puè cundattà $1 o une de l'otre [[{{MediaWiki:Grouppage-sysop}}|amministrature]] pe parà de stu probbleme.\n\nVide Bbuene ca tu non ge puè ausà 'a funziona \"manne n'e-mail a stu utende\" senze ca tu tìne 'n'indirizze e-mail valide e reggistrete jndr'à seziona [[Special:Preferences|me piace accussì]] e tu non ge sinde blocchete da ausarle.\n\nL'indirizze IP corrende jè $3, e 'u codece d'u blocche jè #$5.\nPe piacere mitte tutte le dettaglie ca ponne essere utile pe le richieste tune.",
        "blockednoreason": "nisciune mutive",
        "whitelistedittext": "Tu ha $1 pàggene da cangià.",
        "confirmedittext": "Tu a confermà l'indirizze e-mail tue apprime de cangià le pàggene.\nPe piacere mitte e validesce l'indirizze e-mail tue ausanne le [[Special:Preferences|preferenze de l'utende]].",
        "userjspreview": "'''Arrecuerdete ca tu ste vide/teste sulamende in andeprime 'u JavaScript tue.'''\n'''Non g'à state angore reggistrete ninde!'''",
        "sitecsspreview": "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u CSS tune.'''\n'''Non g'à state angore reggistrate ninde!'''",
        "sitejspreview": "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u codece JavaScript tune.'''\n'''Non g'à state angore reggistrate ninde!'''",
-       "userinvalidconfigtitle": "'''Attenziò:''' Non ge stè 'nu skin \"$1\".\nArrecuerdete ca jndr'à le file personalizzete .css e .js s'ause scrivere le titele cu le lettere piccenne, pe esembie {{ns:user}}:Foo/vector.css è diverse da {{ns:user}}:Foo/Vector.css.",
+       "userinvalidconfigtitle": "<strong>Attenziò:</strong> Non ge stè 'nu skin \"$1\".\nArrecuerdete ca jndr'à le file personalizzete .css, .json e .js s'ause scrivere le titele cu le lettere piccenne, pe esembie {{ns:user}}:Foo/vector.css è diverse da {{ns:user}}:Foo/Vector.css.",
        "updated": "(Cangiete)",
        "note": "'''Vide Bbuene:'''",
        "previewnote": "'''Arrecuerdete queste è sole 'n'andeprime.'''\nle cangiaminde non g'onne state angore reggistrate!",
        "longpageerror": "'''ERRORE: 'U teste ca tu vuè ccu reggistre è luenghe {{PLURAL:$1|'nu kilobyte|$1 kilobyte}}, invece 'u limite massime jè de {{PLURAL:$2|'nu kilobyte|$2 kilobyte}}.'''\nNon ge puè reggistrà sta pàggene.",
        "readonlywarning": "<strong>FA ATTENZIO': 'U database ha state bloccate pe manutenzione, e allore tu non ge puè reggistrà le cangiaminde ca ste face mò.</strong>\nTu puè fa 'na bella cose, tagghie e 'nzicche le cangiaminde jndr'à 'nu file de teste sus a 'u combiuter tune e pò cchiù tarde le reggistre sus 'a Uicchi.\n\nL'amministratore ca ha bloccate 'u database ha date stu mutive: $1",
        "protectedpagewarning": "'''ATTENZIO': Sta pàgene ha state bloccate e allore sulamende le utinde cu le privilegge de ''sysop'' ponne cangiarle.'''\nL'urteme archivie de le trasute ha state previste aqquà sotte pe referimende:",
-       "semiprotectedpagewarning": "'''Fà attenzione:''' Sta pàgene ha state bloccate accussì sulamende l'utinde reggistrete ponne fà cangiaminde.\nL'urteme archivije de le trasute ha state previste aqquà sotte pe referimende:",
+       "semiprotectedpagewarning": "<strong>Fà attenzione:</strong> Sta pàgene ha state bloccate accussì sulamende l'utinde reggistrete ponne fà cangiaminde.\nL'urteme archivije de le trasute ha state previste aqquà sotte pe referimende:",
        "cascadeprotectedwarning": "<strong>Fa attenziò:</strong> Sta pàgene ha state protette accussì sulamende l'utinde ca tènene le [[Special:ListGroupRights|deritte de amministratore]] a ponne cangià, purcè inglude {{PLURAL:$1|pàgene|pàggene}} prutette a cascate:",
        "titleprotectedwarning": "'''ATTENZIONE: Sta pàgene ha state bloccate accussì sulamende [[Special:ListGroupRights|specifice diritte]] a ponne ccrejà.'''\nL'urteme archivije de le trasute jè provviste sotte pe referimende:",
        "templatesused": "{{PLURAL:$1|Template|Template}} ausate sus 'a sta pàgene:",
        "recentchangesdays": "Sciurne da fà vedè jndr'à le cangiaminde recende:",
        "recentchangesdays-max": "(massime $1 {{PLURAL:$1|sciurne|sciurne}})",
        "recentchangescount": "Numere de cangiaminde da fà vedè pe default:",
-       "prefs-help-recentchangescount": "Quiste 'nglude le urteme cangiaminde, le storie de le pàggene e le archivije.",
+       "prefs-help-recentchangescount": "Numere massime: 1000",
        "prefs-help-watchlist-token2": "Queste jè 'a chiave segrete a le feed d'u web de l'elenghe de le pàggene condrollate tune.\nCengate vò ccu canosce ce pò leggere l'elenghe de le pàggene condrollate tune, accussì non g'ù pò condividere.\nCe è abbesogne, [[Special:ResetTokens|'u puè azzerà]].",
        "savedprefs": "Le preferenze tue onne state aggiornete.",
        "savedrights": "Le gruppe utinde de {{GENDER:$1|$1}} onne state reggistrate.",
        "lockmanager-fail-closelock": "Non ge pozze achiudere 'u blocche d'u file pe \"$1\".",
        "lockmanager-fail-deletelock": "Non ge pozze scangellà 'u blocche d'u file pe \"$1\".",
        "lockmanager-fail-acquirelock": "Non ge pozze pigghià blocche pe \"$1\".",
-       "lockmanager-fail-openlock": "Non ge pozze aprè 'u blocche d'u file pe \"$1\".",
+       "lockmanager-fail-openlock": "Non ge pozze aprè 'u blocche d'u file pe \"$1\". Assecurate ca 'a cartelle pe le carecaminde ha state configurate bbuene e 'u web server tène le permesse pe scrivere sus. 'Ndruche  https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgUploadDirectory per cchiù 'mbormaziune.",
        "lockmanager-fail-releaselock": "Non ge pozze relassà blocche pe \"$1\".",
        "lockmanager-fail-db-bucket": "Non ge pozze condattà 'u database purcé stonne troppe blocche jndr'à $1.",
        "lockmanager-fail-db-release": "Non ge pozze relassà le blocche sus a 'u database $1.",
        "uploadstash-bad-path-unrecognized-thumb-name": "Nome d'a miniature non acchiate.",
        "invalid-chunk-offset": "distanze d'u chunk invalide",
        "img-auth-accessdenied": "Accesse negate",
-       "img-auth-nopathinfo": "No se iacchie PATH_INFO.\n'U server tune non g'è 'mbostate o non ge passe sta 'mbormazione.\nPò essere ca jè basate sus a 'u CGI e non ge pò supportà img_auth.\nVide https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization",
+       "img-auth-nopathinfo": "No se iacchie 'u percorse d'a 'mbormnazione.\n'U server tune adda essere 'mbostate pe passà sta 'le variabbile REQUEST_URI e/o PATH_INFO.\nCe jè accussì, pruève a abbilità $wgUsePathInfo.\n'Ndruche https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "img-auth-notindir": "'U percorse richieste non ge stè jndr'à cartelle de carecamende configurate",
        "img-auth-badtitle": "Non ge se pò costruì 'nu titele valide da \"$1\".",
        "img-auth-nologinnWL": "Tu non ge sì collegate e \"$1\" non ge stè jndr'à lista vianghe.",
        "doubleredirects": "Ridirezionaminde a doppie",
        "doubleredirectstext": "Sta pàgene elenghe le pàggene ca se ridirezionane sus a otre pàggene de ridirezionaminde.\nOgne righe condene 'nu collegamende a 'u prime e a 'u seconde ridirezionamende pe fà vedè addò arrive 'u seconde ridirezionamende, 'u quale jè normalmende 'a pàgena de destinaziona \"rèale\", addò 'u prime ridirezionamende avesse appondà.\nLe situaziune de <del>ingrocie</del> onne state resolte.",
        "double-redirect-fixed-move": "[[$1]] ha state spustate.\nAvène aggiornate automaticamende e mò s'avène redirette a [[$2]].",
-       "double-redirect-fixed-maintenance": "Aggiuste le doppie redirezionaminde da [[$1]] a [[$2]] jndr'à 'na fatije de manutenzione.",
+       "double-redirect-fixed-maintenance": "Aggiuste le doppie redirezionaminde da [[$1]] a [[$2]] jndr'à 'na fatije de manutenzione",
        "double-redirect-fixer": "Correttore de redirezionaminde",
        "brokenredirects": "Redirezionamninde scuasciete",
        "brokenredirectstext": "Le ridirezionaminde ca seguene appondene a pàggene ca non g'esistene:",
        "cachedspecial-refresh-now": "Vide l'urteme.",
        "categories": "Le Categorije",
        "categories-submit": "Fà 'ndrucà",
-       "categoriespagetext": "{{PLURAL:$1|'A seguende categorije tène|Le seguende categorije tènene}} pàggene o media.\n[[Special:UnusedCategories|Categorije non ausate]] non ge se vèdene aqquà.\nVide pure [[Special:WantedCategories|Categorije cercate]].",
+       "categoriespagetext": "{{PLURAL:$1|'A seguende categorije tène|Le seguende categorije tènene}} pàggene o media.\n'Ndruche pure [[Special:WantedCategories|Categorije cercate]].",
        "categoriesfrom": "Fà vedè le categorije partenne da:",
        "deletedcontributions": "Condrebbute de l'utende scangellete",
        "deletedcontributions-title": "Condrebbute de l'utende scangellate",
        "fix-double-redirects": "Aggiorne ogne redirezionamende ca apponde a 'u titele origginale",
        "move-leave-redirect": "Lasse 'nu ridirezionamende rréte",
        "protectedpagemovewarning": "'''Attenziò:''' Sta pàgene ha state bloccate accussì sulamende l'utinde cu le deritte d'amministratore 'a ponne spustà.\nL'urteme archivije de le trasute ha state mise aqquà sotte pe referimende:",
-       "semiprotectedpagemovewarning": "'''Vide Bbuène:''' Sta pàgene ha state blocchete accussì sulamende l'utinde reggistrate 'a ponne spustà.\nL'urteme archivije de le trasute ha state mise aqquà sotte pe referimende:",
+       "semiprotectedpagemovewarning": "<strong>Vide Bbuène:</strong> Sta pàgene ha state blocchete accussì sulamende l'utinde reggistrate 'a ponne spustà.\nL'urteme archivije de le trasute ha state mise aqquà sotte pe referimende:",
        "move-over-sharedrepo": "[[:$1]] esiste sus a 'n'archivie condivise. Spustanne 'u file sus a stu titole vèje a sovrascrive 'u file condivise.",
        "file-exists-sharedrepo": "'U nome d'u file ca è scacchiate jè già ausate sus a 'n'archivie condivise.\nPe piacere scacchiene 'notre.",
        "export": "Pàggene esportete",
        "version-poweredby-others": "otre",
        "version-poweredby-translators": "tradutture de translatewiki.net",
        "version-credits-summary": "Nuje vulesseme acchià le persone seguende pe le lore condrebbute a [[Special:Version|MediaUicchi]].",
-       "version-license-info": "MediaUicchi jè 'nu softuare libbere, tu 'u puè redestribbuì  e/o cangiarle sotte le termine d'a GNU (Licenze Pubbleche Generale) cumme pubblecate da 'a Free Software Foundation; endrambe le versiune 2 d'a Licenze, o (a scelta toje) 'le versiune cchiù nnove.\n\nMediauicchi jè destribbuite cu 'a speranze ca jè utile, ma SENZE NISCIUNA GARANZIE; senze nemmanghe 'a garanzie imblicite de COMMERCIABBELETÀ o IDONIETÀ PE 'NU SCOPE PARTICOLARE. Vatte a vide 'a GNU (Licenze Pubbleche Generale) pe cchiù 'mbormaziune.\n\nAvisse avè ricevute [{{SERVER}}{{SCRIPTPATH}}/COPYING 'na copie d'a GNU (Licenze Pubbleche Generale)] 'nzieme a stu programme, ce none, scrive a 'a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor , Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html liggele sus a Indernette].",
+       "version-license-info": "MediaUicchi jè 'nu softuare libbere, tu 'u puè redestribbuì  e/o cangiarle sotte le termine d'a GNU (Licenze Pubbleche Generale) cumme pubblecate da 'a Free Software Foundation; endrambe le versiune 2 d'a Licenze, o (a scelta toje) 'le versiune cchiù nnove.\n\nMediauicchi jè destribbuite cu 'a speranze ca jè utile, ma <em>SENZE NISCIUNA GARANZIE</em>; senze nemmanghe 'a garanzie imblicite de <strong>COMMERCIABBELETÀ</strong> o <strong>IDONIETÀ PE 'NU SCOPE PARTICOLARE</strong>. Vatte a vide 'a GNU (Licenze Pubbleche Generale) pe cchiù 'mbormaziune.\n\nAvisse avè ricevute [{{SERVER}}{{SCRIPTPATH}}/COPYING 'na copie d'a GNU (Licenze Pubbleche Generale)] 'nzieme a stu programme, ce none, scrive a 'a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor , Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html liggele sus a Indernette].",
        "version-software": "Softuer installete",
        "version-software-product": "Prodotte",
        "version-software-version": "Versione",
        "limitreport-expansiondepth": "Espanzione massime de profonnetà",
        "limitreport-expensivefunctioncount": "Analizzatore d'u cunde d'a funzione ca coste assaije",
        "expandtemplates": "Template spannute",
-       "expand_templates_intro": "Sta pàgena speciale pigghie quacche teste e spanne tutte le template jndr'à jidde recorsivamende.<br />\nJidde spanne pure le funziune de analise cumme<br />\n<code><nowiki>{{</nowiki>#language:…}}</code>, e variabbele cumme <br />\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.<br />\nIn pratiche tutte quidde ca stè jndr'à le doppie parendesi graffe.<br />",
+       "expand_templates_intro": "Sta pàgena speciale pigghie quacche uicchiteste e spanne tutte le template jndr'à jidde recorsivamende.<br />\nJidde spanne pure le funziune de analise cumme<br />\n<code><nowiki>{{</nowiki>#language:…}}</code>, e variabbele cumme <br />\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.<br />\nIn pratiche tutte quidde ca stè jndr'à le doppie parendesi graffe.<br />",
        "expand_templates_title": "Titele condestuale, pe {{FULLPAGENAME}} ecc.:",
        "expand_templates_input": "Uicchiteste de input:",
        "expand_templates_output": "Resultete",
index 464f3ee..374662c 100644 (file)
        "ns-specialprotected": "Страницы пространства имён «{{ns:special}}» не могут правиться.",
        "titleprotected": "Создание страницы с таким заголовком было запрещено участником [[User:$1|$1]].\nУказана следующая причина: <em>$2</em>.",
        "filereadonlyerror": "Не удаётся изменить файл «$1», так как хранилище «$2» находится в режиме «только для чтения».\n\nСистемный администратор, заблокировавший базу, оставил следующее объяснение: «$3».",
+       "invalidtitle": "Недопустимое название",
        "invalidtitle-knownnamespace": "Недопустимый заголовок с пространством имен «$2» и текстом «$3»",
        "invalidtitle-unknownnamespace": "Недопустимый заголовок с неизвестным номером пространства $1 и текстом «$2»",
        "exception-nologin": "Вы не представились системе",
index 89a5e2c..b9101ae 100644 (file)
@@ -19,7 +19,8 @@
                        "R Ashwani Banjan Murmu",
                        "Fagunkoyel Hansdah",
                        "Subasmurmu",
-                       "Amire80"
+                       "Amire80",
+                       "Dulal Kisku"
                ]
        },
        "tog-underline": "ᱡᱚᱱᱚᱲ ᱞᱟᱛᱟᱨᱨᱮ ᱫᱟᱜᱽ ᱩᱫᱩᱜᱽᱢᱮ:",
        "anontalk": "ᱨᱚᱲ",
        "navigation": "ᱟᱹᱪᱩᱨᱵᱟᱲᱟ",
        "and": "&#32;ᱟᱨ",
-       "faq": "FAQ",
+       "faq": "ᱵᱹᱞᱹᱠᱹ",
        "actions": "ᱠᱟᱹᱢᱤᱠᱩ",
        "namespaces": "ᱧᱤᱛᱩᱢ ᱡᱟᱜᱟ",
        "variants": "ᱮᱴᱟᱜᱠᱳ",
        "badaccess-group0": "ᱟᱢ ᱫᱚ ᱚᱠᱟ ᱠᱟᱹᱢᱤ ᱞᱟᱹᱜᱤᱛ ᱮᱢ ᱟᱨᱚᱡᱽ ᱟᱠᱟᱛ, ᱚᱱᱟ ᱠᱟᱹᱢᱤ ᱯᱩᱨᱟᱹᱣ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱟᱹᱭᱫᱟᱹᱨᱤ ᱫᱚ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
        "badaccess-groups": "ᱟᱢ ᱫᱚ ᱚᱠᱟ ᱠᱟᱹᱢᱤᱢ ᱢᱮᱱᱡᱚᱝᱠᱟᱱ ᱚᱱᱟ ᱫᱚ ᱠᱷᱟᱹᱞᱤ {{PLURAL:$2 ᱨᱟᱹᱥᱤᱭᱟᱹᱠᱚᱨᱮ ᱱᱚᱣᱟ ᱨᱟᱹᱥᱤᱭᱟᱹ ᱨᱮᱭᱟᱜ ᱢᱤᱫᱴᱮᱱ ᱨᱮ}} ᱢᱤᱫᱴᱮᱱ ᱵᱮᱵᱷᱟᱨᱤᱡ ᱥᱟᱯᱲᱟᱣ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ: $1᱾",
        "versionrequired": "ᱢᱤᱰᱤᱭᱟ ᱩᱭᱠᱤ ᱨᱮᱭᱟᱜ $1 ᱱᱟᱣᱟ ᱵᱷᱟᱨᱥᱚᱱ ᱡᱟᱹᱨᱩᱲᱟ",
-       "versionrequiredtext": "Version $1 of ᱢᱤᱰᱤᱭᱟ ᱣᱤᱠᱤ ᱫᱚ ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱜᱟᱣᱭᱟ᱾\nᱧᱮᱞᱢᱮ [[Special:Version|version page]]᱾",
+       "versionrequiredtext": "ᱵᱷᱟᱨᱥᱚᱱ $1 ᱨᱮᱱᱟᱜ ᱢᱤᱰᱤᱭᱟ ᱣᱤᱠᱤ ᱫᱚ ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱜᱟᱣᱭᱟ᱾\nᱧᱮᱞᱢᱮ [[Special:Version|ᱵᱷᱟᱨᱥᱚᱱ ᱥᱟᱦᱴᱟ]]᱾",
        "ok": "ᱴᱷᱤᱠ ᱜᱮᱭᱟ",
        "retrievedfrom": "\"$1\" ᱠᱷᱚᱱ ᱧᱟᱢ ᱟᱹᱜᱩᱭ",
        "youhavenewmessages": "{{PLURAL:$3|ᱟᱢᱟᱜ ᱢᱮᱱᱟᱜ-ᱟ}} $1 ($2)᱾",
        "confirmable-yes": "ᱦᱮᱸ",
        "confirmable-no": "ᱵᱟᱝ",
        "thisisdeleted": "ᱧᱮᱞ ᱥᱮ ᱨᱩᱭᱟᱹᱲ ᱫᱚᱲᱦᱟ $1?",
-       "viewdeleted": "$1 á±§á±®á±\9eᱢᱮ",
+       "viewdeleted": "$1 á±§á±®á±\9eá±\9fá±¢?",
        "restorelink": "{{PLURAL:$1 ᱢᱤᱫᱴᱮᱱ ᱚᱪᱚᱜ ᱜᱤᱰᱤ ᱥᱟᱯᱲᱟᱣ $1 ᱜᱟᱱ ᱩᱫᱩᱜᱽ ᱜᱤᱰᱤ ᱥᱟᱯᱲᱟᱣ}}",
        "feedlinks": "ᱟᱡᱚ:",
        "feed-invalid": "ᱜᱟᱨᱦᱟᱠ feed ᱨᱮᱭᱟᱜ ᱨᱚᱠᱚᱢ ᱫᱚ ᱚᱝᱞᱮᱠᱟᱛᱮ ᱵᱟᱝᱠᱟᱱᱟ᱾",
        "feed-unavailable": "ᱥᱤᱱᱰᱤᱠᱮᱥᱚᱱ ᱟᱡᱚ ᱠᱩᱫᱚ ᱵᱟᱝ ᱧᱟᱢᱚᱜ ᱠᱟᱱᱟ",
-       "site-rss-feed": "$1 RSS feed",
+       "site-rss-feed": "$1 ᱨᱥᱥ ᱯᱷᱤᱰ",
        "site-atom-feed": " $1 ᱡᱚᱢ ᱚᱪᱚ",
-       "page-rss-feed": "\"$1\" RSS feed",
+       "page-rss-feed": "\"$1\" ᱨᱥᱥ ᱯᱷᱤᱰ",
        "page-atom-feed": " $1 ᱡᱚᱢ ᱚᱪᱚ",
        "red-link-title": "$1 (ᱱᱤᱭᱟᱹ ᱥᱟᱦᱴᱟ ᱫᱚ ᱵᱟᱹᱱᱩᱜ-ᱟ)",
        "sort-descending": "ᱩᱞᱴᱟᱹᱣᱛᱮ ᱥᱟᱡᱟᱣ",
        "sort-ascending": "ᱥᱟᱢᱴᱟᱣ ᱛᱮ",
        "nstab-main": "ᱥᱟᱦᱴᱟ",
        "nstab-user": "ᱵᱮᱵᱦᱟᱹᱨᱤᱭᱟᱹᱜ ᱥᱟᱦᱴᱟ",
-       "nstab-media": "Media ᱥᱟᱦᱴᱟ",
+       "nstab-media": "ᱢᱤᱰᱤᱭᱟ ᱥᱟᱦᱴᱟ",
        "nstab-special": "ᱚᱥᱚᱠᱟᱭᱛᱮᱭᱟᱜ ᱥᱟᱦᱴᱟ",
        "nstab-project": "ᱯᱨᱚᱡᱮᱠᱴ ᱥᱟᱦᱴᱟ",
        "nstab-image": "ᱨᱮᱫ",
        "viewyourtext": "ᱟᱢ ᱫᱚ <strong>'''ᱟᱢᱟᱜ ᱥᱟᱯᱲᱟᱣ</strong>''' ᱥᱟᱦᱴᱟ ᱧᱮᱞ ᱟᱨ ᱮᱢ ᱠᱚᱯᱤ ᱦᱟᱛᱟᱣ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ:",
        "protectedinterface": "ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱨᱮᱭᱟᱜ ᱵᱟᱵᱚᱛᱠᱚ ᱫᱚ ᱣᱤᱠᱤ ᱥᱚᱯᱷᱴᱚᱭᱟᱨ ᱨᱮᱭᱟᱜ ᱢᱤᱫᱴᱮᱱ ᱤᱱᱴᱟᱨᱯᱷᱮᱥ ᱠᱷᱚᱵᱚᱨᱮ ᱮᱢᱟ, ᱚᱱᱟᱛᱮ ᱱᱚᱣᱟ ᱫᱟ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱫᱚᱦᱚ ᱦᱩᱭᱠᱟᱱᱟ᱾",
        "cascadeprotected": "ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱫᱚ ᱥᱟᱯᱲᱟᱣ ᱠᱷᱚᱱ ᱨᱩᱠᱷᱤᱭᱟᱹᱨᱮ ᱢᱮᱱᱟᱜ-ᱟ, ᱠᱟᱨᱚᱱ ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱫᱚ ᱞᱟᱛᱟᱨ ᱨᱮᱭᱟᱜ {{PLURAL:$1 ᱜᱟᱱ ᱥᱟᱦᱴᱟ ᱨᱮᱭᱟᱜ ᱜᱟᱱ ᱥᱟᱦᱴᱟ ᱨᱮᱭᱟᱜ}} ᱵᱷᱤᱛᱨᱤᱨᱮ, ᱚᱠᱟ ᱥᱟᱦᱴᱟ ᱫᱚ (cascading) ᱛᱮ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱢᱮᱱᱟᱜ-ᱟ:\n$2",
-       "namespaceprotected": "ᱥᱟᱦᱴᱟ ᱡᱚᱱᱚᱲ ᱞᱟᱹᱜᱤᱛ ᱟᱢᱟᱜ ᱟᱹᱭᱫᱟᱹᱨᱤ ᱫᱚ ᱵᱟᱹᱱᱩᱜ ᱛᱟᱢᱟ '''$1''' ᱧᱩᱛᱩᱢ ᱡᱟᱭᱜᱟ᱾",
+       "namespaceprotected": "ᱥᱟᱦᱴᱟ ᱡᱚᱱᱚᱲ ᱞᱟᱹᱜᱤᱛ ᱟᱢᱟᱜ ᱟᱹᱭᱫᱟᱹᱨᱤ ᱫᱚ ᱵᱟᱹᱱᱩᱜ ᱛᱟᱢᱟ <strong>$1</strong> ᱧᱩᱛᱩᱢ ᱡᱟᱭᱜᱟ᱾",
        "customcssprotected": "ᱱᱤᱭᱟᱹ CSS ᱥᱟᱠᱟᱢ ᱥᱟᱯᱲᱟᱣ ᱵᱟᱝ ᱜᱟᱱᱚᱜ ᱛᱟᱢᱟ, ᱪᱮᱫᱟᱜ ᱥᱮ ᱱᱤᱭᱟᱹ ᱫᱚ ᱮᱴᱟᱜ ᱦᱚᱲ ᱟᱭᱟᱜ ᱥᱮᱴᱤᱜ ᱨᱮᱭ ᱫᱚᱦᱚ ᱟᱠᱟᱫᱟ᱾",
        "mycustomcssprotected": "ᱱᱤᱭᱟᱹ CSS ᱥᱟᱠᱟᱢ ᱥᱟᱯᱲᱟᱣ ᱵᱟᱝ ᱜᱟᱱᱚᱜ ᱛᱟᱢᱟ᱾",
        "mycustomjsprotected": "ᱱᱤᱭᱟᱹ JavaScript ᱥᱟᱠᱟᱢ ᱥᱟᱯᱲᱟᱣ ᱵᱟᱝ ᱜᱟᱱᱚᱜ ᱛᱟᱢᱟ᱾",
        "ns-specialprotected": "ᱟᱥᱚᱠᱟᱭ ᱛᱮᱭᱟᱜ ᱥᱟᱦᱴᱟᱠᱚ ᱥᱟᱯᱲᱟᱣ ᱨᱮᱭᱟᱜ ᱟᱹᱭᱫᱟᱹᱨᱤ ᱫᱚ ᱟᱢᱟᱜ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
        "exception-nologin": "ᱵᱟᱢ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟ",
        "exception-nologin-text": "ᱫᱟᱭᱟᱠᱟᱛᱮ ᱵᱚᱞᱚᱱ ᱢᱮ ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱨᱮ ᱡᱟᱦᱟᱸᱱ ᱠᱟᱹᱢᱤ ᱞᱟᱹᱜᱤᱫ",
-       "virus-badscanner": "Vul konfigareson: baṅ orom vairas skenar: \"$1\"",
-       "virus-scanfailed": "Esken baṅ hoelena (Code $1)",
-       "virus-unknownscanner": "Baṅ urum anṭvayras:",
+       "virus-badscanner": "ᱵᱟᱹᱲᱤᱡ ᱠᱚᱱᱯᱷᱤᱜᱟᱨᱮᱥᱚᱱ: ᱵᱟᱝ ᱩᱨᱩᱢ ᱵᱷᱟᱭᱨᱟᱥ ᱮᱥᱠᱮᱱᱟᱨ: \"$1\"",
+       "virus-scanfailed": "ᱮᱥᱠᱮᱱ ᱵᱟᱝ ᱦᱩᱭᱞᱮᱱᱟ (Code $1)",
+       "virus-unknownscanner": "ᱵᱟᱝ ᱩᱨᱩᱢ ᱮᱱᱴᱤᱵᱷᱟᱭᱨᱟᱥ:",
        "cannotlogoutnow-title": "ᱱᱤᱛ ᱚᱰᱚᱠ ᱵᱟᱭ ᱜᱟᱱᱚᱜ ᱠᱟᱱᱟ",
        "cannotlogoutnow-text": "ᱚᱰᱚᱠᱚᱜ ᱫᱚ ᱵᱟᱭ ᱜᱟᱱᱚᱜᱼᱟ ᱡᱚᱠᱷᱚᱱ $1 ᱵᱮᱵᱷᱟᱨᱚᱜ ᱠᱟᱱᱟ",
        "welcomeuser": "ᱥᱟᱹᱜᱩᱱ ᱫᱟᱨᱟᱢ, $1!",
        "cannotloginnow-text": "ᱵᱚᱞᱚᱱ ᱫᱚ ᱵᱟᱭ ᱜᱟᱱᱚᱜᱼᱟ ᱡᱚᱠᱷᱚᱱ $1 ᱵᱮᱵᱷᱟᱨᱚᱜ ᱠᱟᱱᱟ",
        "cannotcreateaccount-title": "ᱮᱠᱟᱶᱩᱴ ᱵᱟᱝ ᱛᱮᱭᱟᱨᱞᱮᱱᱟ",
        "yourdomainname": "ᱟᱢᱟᱜ ᱧᱩᱛᱩᱢ:",
-       "externaldberror": "Hoe daṛeyaḱa jahan bahre reaḱ jacaeaḱ ḍaṭabes vul hoeakana se amaḱ bahre reaḱ ekaunṭ do nahaḱ halot aguire ạidạri bạnuḱa.",
+       "externaldberror": "ᱦᱩᱭ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ ᱡᱟᱸᱦᱟᱸᱱ ᱵᱟᱨᱦᱮ ᱨᱮᱭᱟᱜ ᱡᱟᱪᱟᱭᱤᱡ ᱰᱟᱴᱟᱵᱮᱥ ᱵᱷᱩᱞ ᱦᱩᱭᱠᱟᱱᱟ ᱥᱮ ᱟᱢᱟᱜ ᱵᱟᱨᱦᱮ ᱨᱮᱭᱟᱜ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱷᱟ ᱫᱚ ᱱᱟᱦᱟᱜ ᱦᱟᱞᱚᱛ ᱨᱩᱣᱟᱹᱲ ᱟᱹᱭᱫᱟᱹᱨᱤ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
        "login": "ᱵᱚᱞᱚᱜ ᱢᱮ",
        "login-security": "ᱟᱢᱟᱜ ᱩᱯᱲᱩᱢ ᱵᱤᱰᱟᱹᱣ ᱢᱮ",
        "nav-login-createaccount": "ᱵᱚᱞᱚᱜ ᱫᱩᱣᱟᱹᱨ / ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨᱢᱮ",
        "createaccount": "ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨᱢᱮ",
        "userlogin-resetpassword-link": "ᱟᱢᱟᱜ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱦᱤᱲᱤᱧ ᱠᱮᱫᱟᱢ?",
        "userlogin-helplink2": "ᱵᱚᱞᱚᱜ ᱠᱷᱟᱹᱛᱤᱨ ᱜᱚᱸᱲᱚᱸ",
-       "userlogin-loggedin": "ᱟᱢ ᱫᱚ {{GENDER:$1|$1} ᱞᱮᱠᱟᱛᱮ ᱵᱚᱞᱚᱜᱮ ᱢᱮᱱᱟᱢᱟ᱾ ᱮᱴᱟᱜ ᱦᱚᱲ ᱞᱮᱠᱟᱛᱮ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ ᱞᱟᱛᱟᱨ ᱨᱮᱱᱟᱜ ᱯᱷᱚᱨᱢ ᱵᱮᱣᱦᱟᱨ ᱢᱮ᱾",
+       "userlogin-loggedin": "ᱟᱢ ᱫᱚ {{GENDER:$1|$1}} ᱞᱮᱠᱟᱛᱮ ᱵᱚᱞᱚᱜᱮ ᱢᱮᱱᱟᱢᱟ᱾ ᱮᱴᱟᱜ ᱦᱚᱲ ᱞᱮᱠᱟᱛᱮ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ ᱞᱟᱛᱟᱨ ᱨᱮᱱᱟᱜ ᱯᱷᱚᱨᱢ ᱵᱮᱣᱦᱟᱨ ᱢᱮ᱾",
        "userlogin-reauth": "ᱟᱢ {{GENDER:$1|$1}} ᱠᱟᱱᱟᱢ ᱚᱱᱟ ᱵᱤᱰᱟᱹᱣ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱫᱚᱥᱟᱨ ᱛᱮ ᱵᱚᱞᱚᱜ ᱢᱮ᱾",
        "userlogin-createanother": "ᱮᱴᱟᱜ ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨᱢᱮ",
        "createacct-emailrequired": "ᱤᱢᱮᱞ ᱵᱩᱴᱟᱹ",
        "createacct-benefit-body1": "{{PLURAL:$1|ᱥᱟᱯᱲᱟᱣ|ᱥᱟᱯᱲᱟᱣᱠᱚ}}",
        "createacct-benefit-body2": "{{PLURAL:$1|ᱥᱟᱦᱴᱟ|ᱥᱟᱦᱴᱟᱠᱳ}}",
        "createacct-benefit-body3": "ᱱᱮᱛᱟᱨ {{PLURAL:$1|ᱮᱱᱮᱢᱤᱭᱟᱹ|ᱮᱱᱮᱢᱤᱭᱟᱹᱠᱚ}}",
-       "badretype": "Am do okaṭaḱ oku nambarkom em keda ona do baṅ milạolena.",
-       "userexists": "Laṛcaṛicaḱ ńutum em hoyena ona do beohar hoyakana.\nDayakatet́ eṭagaḱ ńutum bachaome.",
+       "badretype": "ᱟᱢ ᱫᱚ ᱚᱠᱟᱴᱟᱜ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨᱠᱚᱢ ᱮᱢ ᱠᱟᱫᱟ ᱚᱱᱟ ᱫᱚ ᱵᱟᱝ ᱢᱤᱞᱟᱹᱜ ᱠᱟᱱᱟ᱾",
+       "userexists": "ᱞᱟᱲᱪᱟᱹᱨᱤᱡ ᱧᱩᱛᱩᱢ ᱮᱢ ᱦᱩᱭᱱᱟ ᱚᱱᱟ ᱫᱚ ᱵᱮᱵᱷᱟᱨ ᱦᱩᱭ ᱟᱠᱟᱱᱟ᱾\nᱫᱟᱭᱟᱠᱟᱛᱮᱛ ᱮᱴᱟᱜ-ᱟ ᱧᱩᱛᱩᱢ ᱵᱟᱪᱷᱟᱣᱢᱮ᱾",
        "loginerror": "ᱵᱷᱤᱛᱨᱤ ᱵᱚᱞᱚᱜ ᱦᱩᱲᱟᱹᱜ",
        "createacct-error": "ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨ ᱦᱩᱲᱟᱹᱜ",
        "createaccounterror": "ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱵᱟᱝ ᱛᱮᱭᱟᱨᱠᱟᱱᱟ: $1",
        "nocookiesfornew": "Beoharićaḱ ekaunṭ do baṅ tear akana, Cedaḱ je noa ńamoḱ jaega babote ale do bale uruma.\nAle do baḍae ocolem amaḱ kuki doe kạmikana, sakam do arhõ rakaṕ lạgit́te kurumuṭuemẽ.",
        "noname": "Am do asol beoharićaḱ ńutum ṭhikte bam emakada.",
        "loginsuccesstitle": "ᱵᱷᱤᱛᱨᱤ ᱵᱚᱠᱟᱜ ᱫᱚ ᱢᱚᱡᱽᱛᱮᱜᱮ ᱯᱩᱨᱟᱹᱣᱱᱟ",
-       "loginsuccess": "'''Am do nitge \"$1\" ńutumte {{SITENAME}} rem bolo akana.'''",
+       "loginsuccess": "'''ᱟᱢ ᱫᱚ ᱱᱤᱛᱜᱮ \"$1\" ᱧᱩᱛᱩᱢᱛᱮ {{SITENAME}} ᱨᱮᱢ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟ᱾'''",
        "nosuchuser": "\"$1\" ᱧᱩᱛᱩᱢᱟᱱ ᱡᱟᱸᱦᱟᱱ ᱵᱮᱵᱷᱟᱨᱤᱡ ᱵᱟᱹᱱᱩᱭᱟ᱾ ᱵᱮᱵᱷᱟᱨᱤᱡ ᱧᱩᱛᱩᱢ ᱫᱚ ᱵᱩᱠᱨᱩᱜᱮᱭᱟ᱾ ᱟᱢᱟᱜ ᱵᱟᱱᱟᱱᱠᱩ  ᱧᱮᱞᱢᱮ, ᱥᱮ [[Special:CreateAccount|ᱱᱟᱣᱟ ᱢᱤᱫᱴᱮᱱ ᱮᱠᱟᱶᱩᱴ ᱛᱮᱭᱟᱨᱢᱮ]]᱾",
-       "nosuchusershort": "\"$1\" ńutuman jahãe beoharko do banuḱkoa. Ńutum reaḱ banan biḍaomẽ.",
-       "nouserspecified": "Am do pusṭaote laṛcaṛićaḱ ńutum em hoyoḱtama.",
-       "login-userblocked": "Nui laṛcaṛic doe esetgea. bhitri boloḱ ạidạri bań emoḱ kana.",
-       "wrongpassword": "ᱵᱮᱷá±\9fᱨᱤᱭá±\9fá±\9c á±§á±©á±\9bᱩᱢ á±¥á±® á±©á± á±© á±±á±\9fᱢᱵá±\9fᱨ á±µá±\9fá±\9d á±¢á±¤á±\9eá±\9fá±¹á±\9c á± á±\9fá±±ᱟ᱾\nᱫᱚᱲᱦᱟᱛᱮ ᱠᱩᱨᱩᱢᱩᱴᱩᱭᱢᱮ᱾",
-       "wrongpasswordempty": "Em hoyen oku nambar do cetge banuḱa.\nDaya katet́ arhõ kurumuṭuyme.",
-       "passwordtooshort": "Uku nambar do {{PLURAL:$1 1 horop reaḱ $1 horop reaḱ}} mudre hoyoḱ jạruṛa.",
-       "password-name-match": "Amaḱ oku nambar do amaḱ ńutum khon eṭaḱ hoyoḱ jạruṛtama.",
-       "password-login-forbidden": "Noa laṛcaṛicaḱ ńutum ar oku nambar do ạnlekate baṅkana.",
+       "nosuchusershort": "\"$1\" ᱧᱩᱛᱩᱢᱟᱱ ᱡᱟᱸᱦᱟᱸᱭ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹᱠᱳ ᱫᱚ ᱵᱟᱹᱱᱩᱜ ᱠᱳᱣᱟ᱾\nᱧᱩᱛᱩᱢ ᱨᱮᱭᱟᱜ ᱵᱟᱱᱟᱱ ᱵᱤᱰᱟᱹᱣᱢᱮ᱾",
+       "nouserspecified": "ᱟᱢ ᱫᱚ ᱯᱩᱥᱴᱟᱹᱣᱛᱮ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱜ ᱧᱩᱛᱩᱢ ᱮᱢ ᱦᱩᱭᱩᱛᱟᱢᱟ᱾",
+       "login-userblocked": "ᱱᱩᱭ ᱵᱮᱵᱷᱟᱨᱤᱭᱟ ᱫᱚᱭ ᱮᱥᱮᱫᱜᱮᱭᱟ᱾ ᱵᱷᱤᱛᱨᱤ ᱵᱚᱞᱚᱜ ᱟᱹᱭᱫᱟᱹᱨᱤ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
+       "wrongpassword": "á±\9fᱫᱮᱨá±\9fá± á±\9fᱫ á±µá±®á±·á±\9fᱨᱤᱭá±\9fá±¹ á±§á±©á±\9bᱩᱢ á±¥á±® á±«á±\9fá±±á±\9fá±\9d á±¥á±\9fá±µá±\9fᱫᱽ á±¦á±©á±²á±\9fá±¹á±\9c á±\9cᱮᱭᱟ᱾\nᱫᱚᱲᱦᱟᱛᱮ ᱠᱩᱨᱩᱢᱩᱴᱩᱭᱢᱮ᱾",
+       "wrongpasswordempty": "ᱮᱢ ᱦᱩᱭᱮᱱ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱨᱮ ᱫᱚ ᱪᱮᱫ ᱜᱮ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾\nᱫᱟᱭᱟᱠᱟᱛᱮ ᱟᱨᱦᱚᱸ ᱠᱩᱨᱩᱢᱩᱴᱩᱭᱢᱮ᱾",
+       "passwordtooshort": "ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱫᱚ {{PLURAL:$1 1 ᱦᱚᱨᱚᱯ ᱨᱮᱭᱟᱜ $1 ᱦᱚᱨᱚᱯ ᱨᱮᱭᱟᱜ}} ᱢᱩᱫᱨᱮ ᱦᱩᱭᱩᱜ ᱡᱟᱹᱨᱩᱲᱟ᱾",
+       "password-name-match": "ᱟᱢᱟᱜ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱫᱚ ᱟᱢᱟᱜ ᱧᱩᱛᱩᱢ ᱠᱷᱚᱱ ᱮᱴᱟᱜ ᱦᱩᱭᱩᱜ ᱡᱟᱹᱨᱩᱲᱟ᱾",
+       "password-login-forbidden": "ᱱᱚᱣᱟ ᱵᱮᱵᱷᱟᱨᱤᱭᱟ ᱧᱩᱛᱩᱢ ᱟᱨ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱫᱚ ᱮᱠᱟᱞᱛᱮ ᱵᱟᱝ ᱜᱟᱱᱚᱜ-ᱟ᱾",
        "mailmypassword": "ᱱᱟᱣᱟᱛᱮ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱮᱢ",
        "passwordremindertitle": "ᱱᱟᱣᱟ ᱱᱤᱛ ᱞᱟᱹᱜᱤᱛ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ {{SITENAME}} ᱞᱟᱹᱜᱤᱛ ᱛᱮ",
-       "noemail": "\"$1\" beoharić lạgit́te do jahan e-mail ṭhikana rukhiyạ doho bạnuḱa.",
-       "noemailcreate": "Am do mitṭen jewet e-mail ṭhikạna em jaruṛ menaḱtama.",
-       "passwordsent": "\"$1\" á¹­hikạnate resá¹­ariyen e-mail lạgitÌ\81te mitá¹­en oku nambar em hoyena.\nDaya kate Å\84am porte arhõ bhitri boloḱme.",
+       "noemail": "\"$1\" ᱵᱮᱵᱷᱟᱨᱤᱡ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱫᱚ ᱡᱟᱸᱦᱟᱸᱱ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱫᱚᱦᱚ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
+       "noemailcreate": "ᱟᱢ ᱫᱚ ᱢᱤᱫᱴᱮᱱ ᱡᱤᱣᱟᱹᱛ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱮᱢ ᱡᱟᱹᱨᱩᱲ ᱢᱮᱱᱟᱜ ᱛᱟᱢᱟ᱾",
+       "passwordsent": "\"$1\" á±´á±·á±¤á± á±\9fá±±á±\9fá±\9bá±® á±¨á±®á±¥á±´á±¨á±¤á±­á±®á±± e-mail á±\9eá±\9fá±¹á±\9cᱤá±\9bá±\9bá±® á±¢á±¤á±«á±´á±®á±± á±©á± á±© á±±á±\9aᱢᱵá±\9aᱨ á±®á±¢ á±¦á±©á±­á±®á±±á±\9fá±¾\nᱫá±\9fá±­á±\9fá± á±\9fá±\9bá±® á±§á±\9fá±¢ á±¯á±\9aᱨᱮá±\9bá±® á±\9fᱨᱦá±\9aᱸ á±µá±·á±¤á±´á±¨á±¤ á±µá±\9aá±\9eá±\9aá±\9c á±¢á±®á±¾",
        "blocked-mailpassword": "ᱟᱢᱟᱜ IP ᱴᱷᱤᱠᱟᱹᱱᱟ ᱠᱷᱚᱱ ᱥᱟᱯᱲᱟᱣ ᱰᱚᱱᱫᱽ ᱜᱮᱭᱟ᱾ ᱚᱱᱟᱛᱮ ᱱᱚᱣᱟ ᱴᱷᱤᱠᱟᱹᱱᱟ ᱵᱟᱝ ᱵᱮᱵᱷᱟᱨ ᱠᱟᱛᱮ ᱩᱠᱩ ᱱᱟᱢᱵᱟᱨ ᱨᱩᱣᱟᱹᱲ ᱵᱟᱝ ᱦᱩᱭᱩᱜ-ᱟ᱾",
-       "mailerror": "E-mail kulte eṭkẽṭõrẽ: $1",
+       "mailerror": "E-mail ᱠᱩᱞᱛᱮ ᱮᱴᱠᱮᱴᱚᱸᱲᱮ: $1",
        "emailauthenticated": "ᱟᱢᱟᱜ ᱤ-ᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱱᱟ ᱫᱚ $2 ᱛᱟᱹᱨᱤᱠᱷ ᱨᱮᱭᱟᱜ $3 ᱨᱮ ᱡᱟᱹᱦᱤᱨᱮᱱᱟ᱾",
        "emailnotauthenticated": "ᱟᱢᱟᱜ e-mail ᱨᱮᱭᱟᱜ ᱴᱷᱤᱠᱟᱹᱱᱟ ᱫᱚ <strong> ᱱᱤᱛ ᱦᱚᱸ ᱵᱟᱝ ᱡᱟᱹᱪᱟᱹᱭ ᱟᱠᱟᱱᱟ </strong> ᱞᱟᱛᱟᱨ ᱨᱮᱭᱟᱜ features ᱞᱟᱹᱜᱤᱛᱛᱮ ᱡᱟᱸᱦᱟᱸᱱ e-mail ᱫᱚ ᱵᱟᱝᱠᱩᱞᱟᱠᱳ᱾",
-       "noemailprefs": "Noa features ko kạmie ocoy lạgit́te mit́ṭen e-mail ṭhikạna dohoe hoyoḱa.",
-       "emailconfirmlink": "Amaḱ e-mail ṭhikana do sạriyme.",
-       "invalidemailaddress": "Noa e-mail ṭhikạna do baṅ hataoa, karon noa formeṭ do pusṭạote baṅ em akana. Dayakate pusṭao formeṭte ṭhikạna emmẽ, se khet do khạliemẽ.",
-       "cannotchangeemail": "Ekaunṭ e-mail ṭhikạnakodo noa wiki re baṅ bodoloḱ kana.",
-       "emaildisabled": "Noa sayeṭre do e-mail em subita bạnuḱa.",
+       "noemailprefs": "ᱱᱚᱣᱟ ᱯᱷᱤᱪᱟᱨᱥ ᱠᱳ ᱠᱟᱹᱢᱤ ᱚᱪᱚᱭᱛᱮ ᱢᱤᱫᱴᱮᱱ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱫᱚᱦᱚᱭ ᱦᱩᱭᱩᱜ-ᱟ᱾",
+       "emailconfirmlink": "ᱟᱢᱟᱜ ᱤᱢᱮᱞ ᱵᱩᱴᱟᱹ ᱥᱟᱹᱨᱤᱢᱮ",
+       "invalidemailaddress": "ᱱᱚᱣᱟ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱫᱚ ᱵᱟᱝ ᱦᱟᱛᱟᱣᱚᱜ-ᱟ, ᱠᱟᱨᱚᱱ ᱱᱚᱣᱟ ᱯᱷᱚᱨᱢᱮᱴ ᱫᱚ ᱯᱩᱥᱴᱟᱹᱣᱛᱮ ᱵᱟᱝ ᱮᱢ ᱟᱠᱟᱱᱟ᱾ \nᱫᱟᱭᱟᱠᱟᱛᱮ ᱯᱩᱥᱴᱟᱹᱣ ᱯᱷᱚᱨᱢᱮᱴᱛᱮ ᱴᱷᱤᱠᱟᱱᱟ ᱮᱢ ᱢᱮ, ᱥᱮ ᱠᱷᱟᱹᱞᱤ ᱫᱚᱦᱚᱭᱢᱮ᱾",
+       "cannotchangeemail": "ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱷᱟ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱫᱚ ᱱᱚᱣᱟ ᱣᱤᱠᱤ ᱨᱮ ᱵᱟᱝ ᱵᱚᱫᱚᱞᱚᱜ ᱠᱟᱱᱟ᱾",
+       "emaildisabled": "ᱱᱚᱣᱟ ᱥᱟᱭᱤᱴᱨᱮ ᱫᱚ e-mail ᱮᱢ ᱥᱩᱵᱤᱫᱟ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
        "accountcreated": "ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨᱱᱟ",
-       "accountcreatedtext": "$1 ᱞᱟᱹᱜᱤᱛᱛᱮ ᱮᱠᱟᱣᱱᱴ ᱫᱚ ᱵᱮᱱᱟᱣᱮᱱᱟ᱾",
+       "accountcreatedtext": "ᱱᱤᱭᱟᱹ ᱵᱮᱵᱷᱟᱨᱤᱭᱟ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱫᱚ [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) ᱵᱮᱱᱟᱣᱱᱟ᱾",
        "createaccount-title": "{{SITENAME}} ᱞᱟᱹᱜᱤᱛᱛᱮ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨ",
-       "createaccount-text": "Okoe co am lạgit́te mitṭen ekaunṭko amaḱ e-mail ṭhikạna lạgit {{SITENAME}} re ($4) ńutum \"$2\", oku nambar \"$3\".\nAm do mesagem baṅ daṛeyaḱa, judi noa ekaunṭ do vulge benaolen khan.",
-       "login-throttled": "ᱟᱢ ᱫᱚ ᱢᱤᱫᱜᱷᱟᱹᱲᱤ ᱞᱟᱦᱟᱨᱮ ᱟᱭᱢᱟ ᱫᱷᱟᱣ ᱵᱚᱞᱚᱜᱮᱢ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱠᱮᱫᱟ᱾ \nᱟᱨᱦᱚᱸ ᱠᱩᱨᱩᱢᱩᱴᱩᱭ ᱞᱟᱦᱟᱨᱮ ᱫᱟᱭᱟᱠᱟᱛᱮ ᱛᱷᱟᱲᱟᱜᱟᱱ ᱛᱟᱸᱜᱤᱭᱢᱮ᱾",
+       "createaccount-text": "ᱚᱠᱚᱭ ᱪᱚ ᱟᱢ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱢᱤᱫᱴᱮᱱ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱟᱢᱟᱜ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱞᱟᱹᱜᱤᱛ {{SITENAME}} ᱨᱮ ($4) ᱧᱩᱛᱩᱢ \"$2\", ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ\"$3\"᱾\nᱟᱢ ᱫᱚ ᱱᱮᱛᱚᱜ ᱵᱚᱞᱚᱜ ᱢᱮ ᱟᱨ ᱟᱢᱟᱜ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱵᱟᱫᱟᱞ ᱢᱮ᱾\n\nᱟᱢ ᱫᱚ ᱱᱤᱭᱟ ᱠᱷᱚᱵᱚᱨᱮᱢ ᱵᱟᱫᱽ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ ᱡᱩᱫᱤ ᱱᱤᱭᱟᱹ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱷᱟ ᱵᱷᱩᱞᱛᱮ ᱵᱮᱱᱟᱣᱞᱮᱱ ᱠᱷᱟᱱ᱾",
+       "login-throttled": "ᱟᱢ ᱫᱚ ᱢᱤᱫᱜᱷᱟᱹᱲᱤ ᱞᱟᱦᱟᱨᱮ ᱟᱭᱢᱟ ᱫᱷᱟᱣ ᱵᱚᱞᱚᱜᱮᱢ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱠᱮᱫᱟ᱾ \nᱟᱨᱦᱚᱸ ᱠᱩᱨᱩᱢᱩᱴᱩᱭ ᱞᱟᱦᱟᱨᱮ ᱫᱟᱭᱟᱠᱟᱛᱮ $1 ᱛᱟᱸᱜᱤᱭᱢᱮ᱾",
        "login-abort-generic": "ᱟᱢᱟᱜ ᱵᱷᱤᱛᱨᱤ ᱵᱚᱠᱟᱜ ᱫᱚ ᱵᱟᱝ ᱦᱩᱭᱞᱮᱱᱟ - ᱵᱟᱫᱽᱱᱟ",
        "loginlanguagelabel": "ᱯᱟᱹᱨᱥᱤ: $1",
        "pt-login": "ᱵᱚᱞᱚᱜ ᱫᱩᱭᱟᱹᱨ",
        "pt-login-continue-button": "ᱞᱮᱛᱟᱲ ᱵᱚᱞᱚ ᱠᱚᱜᱼᱢᱮ",
        "pt-createaccount": "ᱴᱷᱟᱭ ᱵᱮᱱᱟᱣᱢᱮ",
        "pt-userlogout": "ᱚᱰᱚᱠᱚᱜ ᱢᱮ",
-       "user-mail-no-addy": "Jahan e-mail ṭhikana bạgi kate e-mail kul kurumuṭu hoena.",
+       "user-mail-no-addy": "ᱡᱟᱸᱦᱟᱸᱱ e-mail ᱴᱷᱤᱠᱟᱱᱟ ᱵᱟᱹᱜᱤ ᱠᱟᱛᱮ e-mail ᱠᱩᱞ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱦᱩᱭᱮᱱᱟ᱾",
        "changepassword": "ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱚᱫᱚᱞ",
        "resetpass_header": "ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱨᱮᱱᱟᱜ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱚᱫᱚᱞ",
        "oldpassword": "ᱢᱟᱨᱮᱭᱟᱜ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ:",
        "botpasswords-deleted-title": "ᱵᱚᱴ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱢᱩᱪᱷᱟᱹᱣᱱᱟ",
        "resetpass_forbidden": "ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱟᱝ ᱵᱚᱫᱚᱞᱜ-ᱟ",
        "resetpass_forbidden-reason": "ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱟᱝ ᱵᱚᱫᱚᱞᱚᱜ-ᱟ: $1",
-       "resetpass-no-info": "Noa sakam sojhete laṛcaṛ lạgit́te am do bhitri boloḱ hoyoḱtama.",
+       "resetpass-no-info": "ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱥᱚᱡᱽᱦᱮᱛᱮ ᱞᱟᱲᱪᱟᱲ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱟᱢ ᱫᱚ ᱵᱷᱤᱛᱨᱤ ᱵᱚᱞᱚᱜ ᱦᱩᱭᱩᱜᱛᱟᱢᱟ᱾",
        "resetpass-submit-loggedin": "ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱚᱫᱚᱞ",
        "resetpass-submit-cancel": "ᱵᱟᱫᱽ",
        "resetpass-temp-password": "ᱱᱮᱛᱚᱜ ᱞᱟᱹᱜᱤᱛ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ:",
        "passwordreset": "ᱱᱟᱣᱟᱛᱮ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱮᱢ",
-       "passwordreset-disabled": "Noa wikire amaḱ uku nambar nãwãte em lạgit subita do bando gea.",
+       "passwordreset-disabled": "ᱱᱚᱣᱟ ᱣᱤᱠᱤ ᱨᱮ ᱟᱢᱟᱜ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱱᱟᱣᱟᱛᱮ ᱮᱢ ᱞᱟᱹᱜᱤᱛ ᱥᱩᱵᱤᱫᱟ ᱫᱚ ᱵᱚᱱᱫ ᱜᱮᱭᱟ᱾",
        "passwordreset-username": "ᱵᱮᱵᱦᱟᱨᱤᱡ ᱧᱩᱛᱩᱢ:",
        "passwordreset-domain": "ᱧᱩᱛᱩᱢ:",
        "passwordreset-email": "ᱤᱢᱮᱞ ᱵᱩᱴᱟᱹ:",
-       "passwordreset-emailtitle": "{{SITENAME}} sayeṭre beoharićaḱ purạo thutiko",
+       "passwordreset-emailtitle": "{{SITENAME}} ᱨᱮ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱜ ᱯᱩᱨᱟᱹᱣ ᱛᱷᱩᱛᱷᱤᱠᱳ",
        "passwordreset-emailelement": "ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱜ ᱧᱩᱛᱩᱢ: \n$1\n\nᱢᱤᱫ ᱜᱷᱟᱹᱲᱤ ᱞᱟᱹᱜᱤᱛ ᱫᱟᱱᱟᱝ ᱱᱟᱵᱟᱫᱽ: \n$2",
        "passwordreset-emailsentemail": "ᱱᱚᱣᱟ ᱤᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱱᱟ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱥᱟᱶᱛᱮ ᱢᱮᱥᱟ ᱢᱮᱱᱟᱜ ᱠᱷᱟᱡ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱫᱤᱥᱟᱹ ᱨᱩᱣᱟᱹᱲ  ᱤᱢᱮᱞ ᱫᱚ ᱠᱩᱞᱮᱱᱟ᱾",
        "changeemail": "ᱤᱢᱮᱞ ᱴᱷᱤᱠᱱᱟ ᱵᱚᱫᱚᱞ ᱢᱮ ᱥᱮ ᱚᱪᱚᱜᱽ ᱢᱮ",
        "changeemail-header": "e-mail ᱴᱷᱤᱠᱟᱹᱱᱟ ᱵᱚᱫᱚᱞ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱱᱤᱭᱟᱹ ᱯᱷᱚᱨᱢ ᱯᱩᱨᱳᱱᱢᱮ᱾ ᱡᱟᱸᱦᱟᱸᱱ email ᱡᱩ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱨᱮ ᱢᱮᱥᱟ ᱢᱮᱱᱟᱜ-ᱟ ᱚᱱᱟᱠᱩ ᱚᱪᱚᱜ ᱞᱟᱹᱜᱤᱛ email ᱴᱷᱤᱠᱟᱹᱱᱟ ᱚᱞ ᱡᱟᱜᱟ ᱫᱚ ᱯᱷᱟᱠᱟ ᱫᱚᱦᱚᱭᱢᱮ᱾",
-       "changeemail-no-info": "Noa sakam sojhete laṛcaṛ lạgit́te am do bhitri boloḱ hoyoḱtama.",
+       "changeemail-no-info": "ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱥᱚᱡᱽᱦᱮᱛᱮ ᱞᱟᱲᱪᱟᱲ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱟᱢ ᱫᱚ ᱵᱷᱤᱛᱨᱤ ᱵᱚᱞᱚᱜ ᱦᱩᱭᱩᱜᱛᱟᱢᱟ᱾",
        "changeemail-oldemail": "ᱱᱮᱛᱚᱜ-ᱟᱜ ᱤᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱱᱟ",
        "changeemail-newemail": "ᱱᱟᱣᱟ ᱤᱢᱮᱞ ᱵᱩᱴᱟᱹ:",
        "changeemail-none": "(ᱪᱮᱫ ᱦᱚᱸ ᱵᱟᱹᱱᱩᱜ-ᱟ)",
        "link_sample": "ᱡᱚᱱᱚᱲ ᱴᱟᱭᱴᱮᱞ",
        "link_tip": "ᱵᱷᱤᱛᱨᱤ ᱡᱚᱱᱚᱲ",
        "extlink_sample": "http://www.example.com ᱡᱚᱱᱚᱲ ᱴᱟᱭᱴᱮᱞ",
-       "extlink_tip": "á±µá±\9fᱨᱦᱮ á±¨á±®á±±á±\9fá±\9c á±¡á±\9aá±±á±\9aá±² (ᱫᱤᱥá±\9fᱹᱭᱢᱮ http:// prefix)",
+       "extlink_tip": "ᱵᱟᱨᱦᱮ ᱡᱚᱱᱚᱲ (ᱫᱤᱥᱟᱹᱭᱢᱮ http:// prefix)",
        "headline_sample": "ᱵᱚᱦᱚᱜ ᱨᱮᱱᱟᱜ ᱚᱞ",
        "headline_tip": "ᱞᱮᱵᱷᱮᱞ ᱒ ᱦᱮᱰᱞᱟᱭᱤᱱ",
        "nowiki_sample": "ᱵᱮᱜᱚᱨ ᱯᱷᱚᱨᱢᱮᱴ ᱚᱞᱠᱩ ᱵᱷᱚᱨᱟᱣᱢᱮ",
        "showpreview": "ᱧᱮᱞᱡᱚᱝ ᱩᱫᱩᱜᱽᱢᱮ",
        "showdiff": "ᱵᱚᱫᱚᱞᱠᱩ ᱩᱫᱩᱜᱽ ᱢᱮ",
        "anoneditwarning": "<strong>ᱦᱩᱥᱤᱭᱟᱹᱨ:</strong> ᱟᱢ ᱵᱟᱢ ᱵᱚᱞᱚᱣᱟᱠᱟᱱᱟ ᱾ ᱡᱩᱫᱤ ᱟᱢ ᱡᱟᱦᱟᱸᱱᱟᱜ ᱥᱟᱯᱲᱟᱣᱟᱢ ᱟᱢᱟᱜ IP ᱵᱩᱴᱟᱹ ᱥᱚᱫᱚᱨ ᱛᱟᱦᱮᱸᱱᱟ ᱾ ᱡᱩᱫᱤ ᱟᱢ [$1 ᱵᱚᱞᱚᱱᱟᱢ]</strong> ᱟᱨᱵᱟᱝ <strong>[$2 ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨᱟᱢ]</strong>, ᱟᱢᱟᱜ ᱥᱟᱯᱲᱟᱣ ᱫᱚ ᱩᱫᱩᱜᱚᱜ-ᱟ ᱟᱢᱟᱜ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱧᱩᱛᱩᱢ, ᱥᱟᱶᱛᱮ ᱮᱴᱟᱜ ᱥᱩᱵᱤᱫᱷᱟ ᱠᱚ ᱾",
-       "anonpreviewwarning": "\"Am do bhitri bam bolo akana. Noa sakamre amaḱ kạmiko jạre IP ṭhiikạ̣nare rukhiyạ ḱa.\"",
+       "anonpreviewwarning": "\"ᱟᱢ ᱫᱚ ᱵᱷᱤᱛᱨᱤ ᱵᱟᱢ ᱵᱚᱞᱚ ᱟᱠᱟᱱᱟ᱾ ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱨᱮ ᱟᱢᱟᱜ ᱠᱟᱹᱢᱤᱠᱳ ᱡᱟᱨᱮ IP ᱴᱷᱤᱠᱟᱱᱟ ᱨᱮ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱠᱟᱜ᱾\"",
        "missingcommenttext": "ᱫᱟᱭᱟ ᱠᱟᱛᱮ ᱟᱢᱟᱜ ᱠᱟᱛᱷᱟ ᱵᱚᱞᱚᱭ ᱢᱮ᱾",
        "summary-preview": "ᱜᱩᱴ ᱠᱟᱛᱷᱟ ᱩᱱᱩᱫᱩᱜ:",
        "subject-preview": "ᱜᱩᱴᱠᱟᱛᱷᱟ ᱩᱱᱩᱫᱩᱜ:",
        "nosuchsectiontitle": "ᱛᱷᱚᱠ ᱵᱟᱝ ᱧᱟᱢᱞᱮᱱᱟ",
        "loginreqtitle": "ᱵᱚᱞᱚᱜ ᱡᱟᱹᱨᱩᱲᱟ",
        "loginreqlink": "ᱵᱚᱞᱚᱜ ᱢᱮ",
-       "loginreqpagetext": "Eṭagaḱ sakamko ńel lạgit́te do am $1 hoyoḱ jạruṛtama.",
+       "loginreqpagetext": "ᱮᱴᱟᱜ ᱥᱟᱦᱴᱟᱠᱳ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱫᱚ ᱟᱢ $1 ᱦᱩᱭᱩᱜ ᱡᱟᱹᱨᱩᱲᱛᱟᱢᱟ᱾",
        "accmailtitle": "ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱩᱞ ᱦᱩᱭᱱᱟ",
        "accmailtext": "[[User talk:$1 $1]] ᱞᱟᱹᱜᱤᱛᱛᱮ ᱟᱪᱛᱮ ᱵᱮᱱᱟᱣᱮᱱ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ ᱫᱚ $2 ᱠᱩᱞ  ᱦᱩᱭᱮᱱᱟ᱾\nᱵᱷᱤᱛᱨᱤ ᱵᱚᱞᱚ ᱠᱟᱛᱮ ᱱᱚᱣᱟ ᱱᱟᱣᱟ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱟ ᱞᱟᱹᱜᱤᱛ ᱩᱠᱩ ᱱᱚᱢᱵᱚᱨ \"[[Special:ChangePassword Change password]]\" ᱥᱟᱦᱴᱟ ᱠᱷᱚᱱᱮᱢ ᱵᱚᱫᱚᱞ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ᱾",
        "newarticle": "(ᱱᱟᱣᱟᱱᱟᱜ)",
        "anontalkpagetext": "----\n\n<em>ᱱᱚᱶᱟ ᱫᱚ ᱜᱟᱞᱚᱪ ᱥᱟᱦᱴᱟ ᱠᱟᱱᱟ ᱩᱠᱩᱧᱩᱛᱩᱢ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱚᱣᱟᱜ ᱡᱟᱦᱟᱸᱭ ᱫᱚ ᱠᱷᱟᱛᱟ ᱵᱟᱭ ᱛᱮᱭᱟᱨ ᱟᱠᱟᱫᱟ ᱱᱤᱛ ᱦᱟᱹᱵᱤᱡ, ᱟᱨᱵᱟᱝ ᱡᱟᱦᱟᱸᱭ ᱵᱮᱵᱷᱟᱨ ᱟᱠᱟᱫᱟ ᱱᱚᱶᱟ ᱾</em>\nᱚᱱᱟᱛᱮ ᱟᱞᱮ ᱮᱞᱮᱞ IP ᱞᱮ ᱵᱮᱵᱷᱟᱨᱮᱜ-ᱟ ᱩᱱᱤ ᱪᱤᱱᱦᱟᱹᱣ ᱞᱟᱹᱜᱤᱫ ᱾\nᱚᱱᱠᱟᱱ IP ᱵᱩᱴᱟᱹ ᱫᱚ ᱦᱟᱹᱴᱤᱧ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ ᱛᱤᱢᱤᱱ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱫᱟᱨᱟᱭᱛᱮ ᱾\nᱡᱩᱫᱤ ᱟᱢ ᱩᱠᱩᱧᱩᱛᱩᱢ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱟᱱᱟᱢ ᱟᱨ ᱵᱷᱟᱹᱵᱤᱭᱮᱜ-ᱟᱢ ᱵᱟᱝ ᱡᱚᱲᱟᱣᱟᱱ ᱠᱟᱛᱷᱟ ᱟᱢᱮ ᱩᱫᱩᱜᱢᱮ ᱠᱟᱱᱟ, ᱮᱱᱠᱷᱟᱱ  [[Special:CreateAccount|ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨᱢᱮ]] ᱟᱨᱵᱟᱝ [[Special:UserLogin|ᱞᱚᱜᱤᱱ]] ᱢᱮ ᱫᱟᱨᱟᱭ ᱵᱷᱮᱣᱱᱟ ᱠᱚ ᱥᱟᱦᱟᱭ ᱞᱟᱹᱜᱤᱫ ᱮᱴᱟᱜ ᱩᱠᱩᱧᱩᱛᱩᱢ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱚ ᱥᱟᱶ ᱾",
        "noarticletext": "ᱱᱮᱛᱚᱜ ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟᱨᱮ ᱪᱮᱫᱜᱮ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾\nᱮᱴᱟᱜ ᱥᱟᱦᱴᱟᱨᱮᱢ [[Special:Search/{{PAGENAME}}|ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱧᱩᱛᱩᱢ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ᱡᱚᱲᱟᱣᱟᱱ ᱞᱚᱜᱽ ᱠᱚ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱥᱟᱯᱲᱟᱣ ᱢᱮ]</span>.",
        "noarticletext-nopermission": "ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟᱨᱮ ᱱᱤᱛᱚᱜ ᱪᱮᱫᱜᱮ ᱚᱞ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾\n\nᱟᱢ [[Special:Search/{{PAGENAME}}|ᱱᱚᱭᱟ ᱥᱟᱦᱴᱟᱨᱮᱱᱟᱜ ᱧᱤᱛᱩᱢᱮᱢ ᱥᱮᱸᱫᱽᱨᱟ ᱫᱟᱲᱮᱭᱟᱜ-ᱟ]] ᱮᱴᱟᱜ ᱥᱟᱦᱴᱟ ᱠᱚᱨᱮᱦᱚᱸ,\nᱟᱨᱵᱟᱝ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>.",
-       "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" ńutuman jahãe beoharićaḱ ekaunṭ do baṅ resṭri hoeakana. Daya kate biḍạo katet́ ńelmẽ noa sakam do benoa/sompadonem menet́ kana se baṅ.",
+       "userpage-userdoesnotexist": "\"<nowiki>$1</nowiki>\" ᱧᱩᱛᱩᱢᱟᱱ ᱡᱟᱸᱦᱟᱸᱭ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱜ ᱦᱤᱥᱟᱹᱵ ᱠᱷᱟᱛᱷᱟ ᱫᱚ ᱵᱟᱝ ᱨᱮᱥᱴᱨᱤ ᱦᱩᱭ ᱟᱠᱟᱱᱟ᱾\nᱫᱟᱭᱟᱠᱟᱛᱮ ᱵᱤᱰᱟᱹᱣ ᱠᱟᱛᱮᱛ ᱧᱮᱞᱢᱮ ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱫᱚ ᱵᱮᱱᱟᱣ/ᱥᱟᱯᱲᱟᱣ ᱢᱮᱱᱮᱫ ᱠᱟᱱᱟ ᱥᱮ ᱵᱟᱝ᱾",
        "userpage-userdoesnotexist-view": "ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱜ \"$1\" ᱮᱠᱟᱣᱱᱴ ᱫᱚ ᱵᱟᱝ ᱨᱮᱥᱴᱨᱤ ᱟᱠᱟᱱᱟ᱾",
        "blocked-notice-logextract": "ᱱᱩᱭ ᱵᱮᱵᱦᱟᱨᱤᱡ ᱫᱚ ᱱᱮᱛᱚᱜ ᱮ ᱥᱮᱥᱫᱜᱮᱭᱟ᱾\nᱨᱮᱯᱷᱟᱨᱮᱱᱥ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱱᱟᱣᱟᱱᱟᱜ ᱵᱚᱞᱚᱜ ᱠᱩᱨᱩᱢᱩᱴᱩ ᱞᱟᱛᱟᱨᱨᱮ ᱮᱢ ᱦᱩᱭᱱᱟ:",
        "clearyourcache": "<strong>Note:</strong> After saving, you may have to bypass your browser's cache to see the changes.\n* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clicking <em>Reload</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)\n* <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)\n* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clicking <em>Refresh</em>, or press <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Go to <em>Menu → Settings</em> (<em>Opera → Preferences</em> on a Mac) and then to <em>Privacy & security → Clear browsing data → Cached images and files</em>.",
        "defaultmessagetext": "ᱯᱩᱭᱞᱩ ᱚᱞᱠᱟᱱ ᱠᱷᱚᱵᱚᱨ",
        "content-model-wikitext": "ᱣᱤᱠᱤ-ᱚᱞ",
        "content-model-text": "ᱥᱚᱢᱟᱱ ᱚᱞ",
-       "post-expand-template-inclusion-warning": "\"Sontoroḱme\" Noa format do lạṭu geya.\nThoṛa format do noare banuḱana.",
-       "post-expand-template-inclusion-category": "Sakamko oka borḍre noa tahẽna ona doe paromkeda",
-       "post-expand-template-argument-warning": "'''Sontoroḱmẽ:''' Noa sakamre komse kom mitṭen forma joṛao menaḱa ạḍi lạṭute pasnao akana.\nOnate noa ạrgumenṭkodo bạgi giḍi hoena.",
+       "post-expand-template-inclusion-warning": "<strong>ᱥᱚᱱᱛᱚᱨᱚᱜᱢᱮ</strong> ᱱᱚᱣᱟ ᱯᱷᱚᱨᱢᱮᱴ ᱫᱚ ᱞᱟᱹᱴᱩ ᱜᱮᱭᱟ᱾ \nᱛᱷᱚᱲᱟ ᱯᱷᱚᱨᱢᱮᱴ ᱫᱚ ᱱᱟᱣᱨᱮ ᱵᱟᱹᱱᱩᱜ-ᱟ᱾",
+       "post-expand-template-inclusion-category": "ᱥᱟᱦᱴᱟ ᱫᱚ ᱚᱠᱟ ᱪᱷᱟᱸᱪ ᱨᱮ ᱛᱟᱸᱦᱮᱱ ᱚᱱᱟ ᱫᱚ ᱯᱟᱨᱚᱢᱠᱮᱫᱟᱭ",
+       "post-expand-template-argument-warning": "'''ᱥᱚᱱᱛᱚᱨᱚᱜᱢᱮ:''' ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱠᱚᱢᱥᱮ ᱠᱚᱢ ᱢᱤᱫᱴᱮᱱ ᱯᱷᱚᱨᱢᱟ ᱡᱚᱲᱟᱣ ᱢᱮᱱᱟᱜ-ᱟ ᱟᱹᱰᱤ ᱞᱟᱹᱴᱩᱛᱮ ᱯᱟᱥᱱᱟᱣ ᱟᱠᱟᱱᱟ᱾\nᱚᱱᱟᱛᱮ ᱱᱚᱣᱟ ᱜᱟᱞᱢᱟᱨᱟᱣ ᱠᱚᱫᱚ ᱜᱮᱫ ᱜᱤᱰᱤ ᱦᱩᱭᱱᱟ᱾",
        "post-expand-template-argument-category": "Pages containing omitted template arguments",
        "undo-failure": "ᱥᱟᱯᱲᱟᱣᱠᱚ ᱵᱟᱭ ᱟᱹᱪᱩᱨ ᱨᱩᱣᱟᱹᱲᱚᱜ-ᱟ ᱛᱟᱞᱟ-ᱢᱟᱞᱟ ᱥᱟᱯᱲᱟᱣ ᱵᱤᱨᱚᱫᱽ ᱤᱫᱤᱠᱟᱛᱮ |",
        "viewpagelogs": "ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱨᱮᱭᱟᱜ ᱞᱚᱜᱽᱠᱚ ᱧᱮᱞᱢᱮ",
        "search-file-match": "(ᱢᱤᱫᱩᱜᱟᱜ ᱨᱮᱫ ᱩᱱᱩᱫᱩᱜ)",
        "search-suggest": "ᱪᱮᱫ ᱮᱢ ᱢᱮᱱ ᱚᱪᱚᱭᱮᱫᱟ: $1",
        "search-interwiki-caption": "ᱥᱟᱶᱛᱮᱱ ᱯᱨᱚᱡᱮᱠᱴ ᱠᱷᱚᱱ ᱚᱨᱡᱚ",
-       "search-interwiki-default": "Results from $1:",
+       "search-interwiki-default": "$1 ᱠᱷᱚᱱ ᱚᱨᱡᱚ:",
        "search-interwiki-more": "(ᱵᱟᱹᱲᱛᱤ)",
        "search-interwiki-more-results": "ᱵᱟᱹᱲᱛᱤ ᱚᱨᱡᱚᱠᱚ",
        "search-relatedarticle": "ᱥᱟᱹᱜᱟᱹᱭᱟᱱ",
        "yournick": "ᱱᱟᱶᱟ ᱥᱩᱦᱤ:",
        "gender-male": "ᱵᱟᱵᱟ ᱦᱚᱲ ᱣᱤᱠᱤ ᱥᱟᱦᱴᱟ ᱠᱩᱭ ᱥᱟᱯᱲᱟᱣ ᱠᱮᱫᱟ",
        "gender-female": "ᱜᱚᱜᱚ ᱦᱚᱲ ᱣᱤᱠᱤ ᱥᱟᱦᱴᱟ ᱠᱩᱭ ᱥᱟᱯᱲᱟᱣ ᱠᱮᱫᱟ",
-       "email": "Email",
-       "prefs-help-email": "E-mail á¹­hikana do bạá¹\9btitege, menkhan uku namber nãwãte benao jạruá¹\9ba, am do amaḱ uku nomborem hiá¹\9b\84 keda.",
-       "prefs-help-email-others": "Am são e-mail hotete jogajog dohoy lạgitte mitṭen joṛao se amaḱ katha roṛaḱ sakam bachao jońme.\nAmaḱ e-mail ṭhikạna do bań cabaḱa tinre onko do ko beohara",
+       "email": "ᱤᱢᱮᱞ",
+       "prefs-help-email": "E-mail á±´á±·á±¤á± á±\9fá±±á±\9f á±«á±\9a á±µá±\9fᱹᱨá±\9bᱤ á±\9bá±®á±\9cá±®, á±¢á±®á±±á± á±·á±\9fá±± á±©á± á±© á±±á±\9aᱢᱵá±\9aᱨ á±±á±\9fá±£á±\9fá±\9bá±® á±µá±®á±±á±\9fá±£ á±¡á±\9fᱹᱨᱩᱲá±\9f, á±\9fá±¢ á±«á±\9a á±\9fá±¢á±\9fá±\9c á±©á± á±© á±±á±\9aᱢᱵá±\9aᱨ á±®á±¢ á±¦á±¤á±²á±¤á±§ á± á±®á±«á±\9fá±¾",
+       "prefs-help-email-others": "ᱟᱢ ᱥᱟᱶ ᱤ-ᱢᱮᱞ ᱦᱚᱛᱮᱛᱮ ᱥᱟᱹᱜᱟᱹᱭ ᱫᱚᱦᱚᱭ ᱞᱟᱹᱜᱤᱛᱛᱮ ᱢᱤᱫᱴᱮᱱ ᱡᱚᱲᱟᱣ ᱥᱮ ᱟᱢᱟᱜ ᱠᱟᱛᱷᱟ ᱨᱚᱲᱟᱜ ᱥᱟᱦᱴᱟ ᱵᱟᱪᱷᱟᱣ ᱡᱚᱝᱢᱮ᱾\nᱟᱢᱟᱜ ᱤ-ᱢᱮᱞ ᱴᱷᱤᱠᱟᱱᱟ ᱫᱚ ᱵᱟᱝ ᱪᱟᱵᱟᱠᱚᱜ ᱛᱤᱱᱨᱮ ᱩᱝᱠᱩ ᱫᱚ ᱠᱳ ᱵᱮᱵᱷᱟᱨᱚᱜ-ᱟ᱾",
        "prefs-signature": "ᱥᱩᱦᱤ",
        "prefs-editor": "ᱥᱟᱯᱲᱮᱛ",
        "prefs-preview": "ᱧᱮᱞ ᱵᱤᱰᱟᱹᱣ",
        "grouppage-sysop": "{{ns:project}}:ᱯᱟᱨᱜᱟᱱᱟᱠᱚ",
        "right-read": "ᱥᱟᱦᱴᱟᱠᱩ ᱯᱟᱲᱦᱟᱣᱢᱮ",
        "right-edit": "ᱥᱟᱦᱴᱟᱠᱩ ᱥᱟᱯᱲᱟᱣ ᱢᱮ",
-       "right-createpage": "Sakamko benoamẽ (Okako do galmarao sakamko baṅkan)",
+       "right-createpage": "ᱥᱟᱦᱴᱟ ᱵᱮᱱᱟᱣᱢᱮ (ᱚᱠᱟᱠᱳ ᱫᱚ ᱜᱟᱞᱢᱟᱨᱟᱣ ᱥᱟᱦᱴᱟᱠᱳ ᱱᱟᱝᱠᱷᱟᱱ)",
        "right-createtalk": "ᱜᱟᱞᱢᱟᱨᱟᱣ ᱥᱟᱦᱴᱟᱠᱩ ᱵᱮᱱᱟᱣᱢᱮ",
        "right-createaccount": "ᱱᱟᱶᱟ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨ",
        "right-move": "ᱥᱟᱦᱴᱟᱠᱚ ᱥᱟᱦᱟᱭᱢᱮ",
        "hist": "ᱱᱟᱜᱟᱢ",
        "hide": "ᱫᱟᱱᱟᱝ",
        "show": "ᱧᱮᱞ",
-       "minoreditletter": "m",
-       "newpageletter": "N",
-       "boteditletter": "b",
+       "minoreditletter": "",
+       "newpageletter": "",
+       "boteditletter": "",
        "rc-change-size-new": "$1 {{PLURAL:$1|ᱵᱟᱭᱤᱴ|ᱵᱟᱭᱤᱴᱥ}} ᱵᱚᱫᱚᱞ ᱛᱟᱭᱚᱢ",
        "rc-enhanced-expand": "ᱡᱚᱛᱚ ᱩᱰᱩᱜᱽ ᱢᱮ",
        "rc-enhanced-hide": "ᱡᱚᱛᱚᱭᱟᱜ ᱩᱠᱩᱭᱢᱮ",
        "filehist-current": "ᱱᱤᱛᱚᱜ",
        "filehist-datetime": "ᱢᱟᱹᱦᱤᱛ/ᱚᱠᱛᱚ",
        "filehist-thumb": "ᱴᱤᱯ",
-       "filehist-thumbtext": "Thumbnail for version as of $1",
+       "filehist-thumbtext": "$1 ᱞᱮᱠᱟᱛᱮ ᱛᱷᱚᱢᱵᱽᱱᱮᱞ ᱵᱷᱚᱨᱥᱚᱱ",
        "filehist-nothumb": "ᱵᱟᱹᱱᱩᱜ-ᱟ ᱴᱤᱯ-ᱨᱟᱢᱟ",
        "filehist-user": "ᱵᱮᱵᱷᱟᱨᱤᱡ",
        "filehist-dimensions": "ᱡᱚᱠᱷᱟ",
        "listgrouprights-members": "(ᱥᱚᱦᱮᱫᱠᱩᱣᱟᱜ ᱛᱟᱹᱞᱠᱟᱹ)",
        "listgrouprights-addgroup-all": "ᱡᱚᱛᱚ ᱜᱟᱶᱛᱟᱠᱩ ᱥᱮᱞᱮᱫ ᱠᱩ ᱢᱮ",
        "listgrouprights-removegroup-all": "ᱡᱚᱛᱚ ᱜᱟᱶᱛᱟᱠᱩ ᱚᱪᱚᱜ ᱠᱩ ᱢᱮ",
-       "emailuser": "ᱱᱩᱭ á±µá±®á±µá±¦á±\9fᱨᱤᱡ e-mail ᱮᱢᱟᱭᱢᱮ",
-       "noemailtitle": "E-mail ᱴᱷᱤᱠᱟᱹᱱᱟ ᱫᱚ ᱵᱟᱹᱱᱩᱜ-ᱟ",
+       "emailuser": "ᱱᱩᱭ á±µá±®á±µá±¦á±\9fᱨᱤᱭá±\9fá±¹ á±¤á±¢á±®á±\9e ᱮᱢᱟᱭᱢᱮ",
+       "noemailtitle": "ᱤᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱱᱟ ᱫᱚ ᱵᱟᱹᱱᱩᱜ-ᱟ",
        "emailusername": "ᱵᱮᱵᱦᱟᱨᱤᱡ ᱧᱩᱛᱩᱢᱺ",
        "emailusernamesubmit": "ᱮᱢ",
        "emailfrom": "ᱠᱩᱞᱤᱪ:",
        "ipblocklist": "ᱵᱮᱵᱦᱟᱨᱤᱡ ᱮᱥᱮᱫᱜᱮᱭᱟᱭ",
        "ipblocklist-submit": "ᱥᱮᱸᱫᱽᱨᱟ",
        "infiniteblock": "ᱚᱦᱤᱥᱟᱹᱵᱽ",
-       "emailblock": "E-mail ᱵᱚᱸᱫᱷ ᱜᱮᱭᱟ",
+       "emailblock": "ᱤᱢᱮᱞ ᱵᱚᱸᱫᱷ ᱜᱮᱭᱟ",
        "blocklink": "ᱮᱥᱮᱫᱽ",
        "unblocklink": "ᱵᱟᱝ ᱮᱥᱮᱫ",
        "change-blocklink": "block ᱵᱚᱫᱚᱞ",
        "contribslink": "ᱮᱱᱮᱢ",
-       "emaillink": "E-mail ᱠᱩᱞᱢᱮ",
+       "emaillink": "ᱤᱢᱮᱞ ᱠᱩᱞᱢᱮ",
        "blocklogpage": "ᱠᱩᱞᱩᱯ ᱮᱥᱮᱫ",
        "blocklogentry": "ᱮᱥᱮᱫ [[$1]] ᱥᱟᱶᱛᱮ ᱪᱟᱵᱟᱜ ᱚᱠᱛᱚ ᱚᱠᱟ ᱫᱚ $2 $3",
        "reblock-logentry": "ᱵᱚᱫᱚᱞᱮᱱᱟ ᱵᱚᱸᱫ ᱥᱟᱡᱟᱣᱠᱚ [[$1]] ᱞᱟᱹᱜᱤᱫ ᱪᱟᱵᱟᱜ ᱚᱠᱛᱚ $2 $3 ᱥᱟᱶ",
        "block-log-flags-nocreate": "ᱮᱠᱟᱣᱱᱴ ᱵᱮᱱᱟᱣ ᱵᱚᱱᱫᱷ ᱜᱮᱭᱟ",
-       "block-log-flags-noemail": "E-mail ᱵᱚᱸᱫᱷ ᱜᱮᱭᱟ",
+       "block-log-flags-noemail": "ᱤᱢᱮᱞ ᱵᱚᱸᱫᱷ ᱜᱮᱭᱟ",
        "block-log-flags-hiddenname": "ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱜ ᱧᱩᱛᱩᱢ ᱩᱠᱩ ᱜᱮᱭᱟ",
        "proxyblocker": "ᱯᱨᱚᱠᱥᱤ ᱮᱥᱮᱫᱤᱡ",
        "movepagebtn": "ᱥᱟᱦᱴᱟ ᱩᱪᱟᱹᱲᱢᱮ",
        "export-addcat": "ᱥᱮᱞᱮᱫ",
        "export-addns": "ᱥᱮᱞᱮᱫ",
        "allmessagesname": "ᱧᱩᱛᱩᱢ",
-       "allmessagesdefault": "Bań bhul mesag ol",
+       "allmessagesdefault": "ᱯᱩᱭᱞᱩ ᱚᱞᱠᱟᱱ ᱠᱷᱚᱵᱚᱨ",
        "allmessages-filter-all": "ᱡᱚᱛᱚ",
        "allmessages-language": "ᱯᱟᱹᱨᱥᱤ:",
        "allmessages-filter-submit": "ᱪᱟᱞᱟᱜ ᱢᱮ",
        "allmessages-filter-translate": "ᱛᱚᱨᱡᱚᱢᱟ",
        "thumbnail-more": "ᱞᱟᱹᱴᱩᱭ ᱢᱮ",
-       "thumbnail_error": "Benawakan unuduḱ kạṭuṕ do baṅ ṭhika: $1",
+       "thumbnail_error": "ᱵᱮᱱᱟᱣ ᱟᱠᱟᱱᱟ ᱩᱱᱩᱫᱩᱜ ᱠᱟᱹᱴᱩᱯ ᱫᱚ ᱵᱟᱝ ᱴᱷᱤᱠᱟ: $1",
        "import-upload-filename": "ᱨᱮᱫᱧᱩᱛᱩᱢᱺ",
        "importlogpage": "ᱞᱚᱜᱽ ᱟᱹᱜᱩ",
        "tooltip-pt-userpage": "{{GENDER:|ᱟᱢᱟᱜ ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱹ}} ᱥᱟᱦᱴᱟ",
        "tooltip-n-mainpage": "ᱢᱩᱬᱩᱛ ᱥᱟᱦᱴᱟ ᱪᱟᱞᱟᱜᱢᱮ",
        "tooltip-n-mainpage-description": "ᱢᱩᱬᱩᱛ ᱥᱟᱦᱴᱟ ᱪᱟᱞᱟᱜᱢᱮ",
        "tooltip-n-portal": "ᱱᱤᱭᱟᱹ ᱯᱨᱚᱡᱮᱠᱴ ᱠᱷᱟᱹᱛᱤᱨ, ᱪᱮᱛᱮᱢ ᱪᱮᱠᱟ ᱫᱟᱨᱮᱭᱟᱜ-ᱟ,ᱚᱠᱟᱨᱮ ᱥᱮᱸᱫᱽᱨᱟ ᱧᱟᱢᱚᱜ-ᱟ",
-       "tooltip-n-currentevents": "ᱱᱤᱛᱚᱜ events ᱨᱮ ᱡᱚᱥ ᱦᱩᱫᱤᱥ ᱧᱟᱢ ᱢᱮ",
+       "tooltip-n-currentevents": "ᱱᱤᱛᱚᱜ ᱤᱵᱷᱮᱸᱴ ᱨᱮ ᱡᱚᱥ ᱦᱩᱫᱤᱥ ᱧᱟᱢ ᱢᱮ",
        "tooltip-n-recentchanges": "ᱩᱤᱠᱤ ᱨᱮ ᱱᱟᱣᱭᱟ ᱵᱚᱫᱚᱞᱠᱳ ᱨᱮᱭᱟᱜ ᱛᱟᱹᱞᱠᱟᱹ",
        "tooltip-n-randompage": "ᱟᱨᱦᱚᱸ ᱥᱟᱦᱴᱟᱠᱳ ᱩᱫᱩᱜᱽ ᱢᱮ",
        "tooltip-n-help": "ᱥᱮᱸᱫᱽᱨᱟ ᱧᱟᱢ ᱨᱮᱭᱟᱜ ᱡᱟᱜᱟ",
        "friday-at": "ᱡᱟᱹᱨᱩᱢ ᱢᱟᱦᱟᱸ $1 ᱨᱮ",
        "saturday-at": "ᱧᱩᱦᱩᱢ ᱢᱟᱦᱟᱸ $1 ᱨᱮ",
        "yesterday-at": "ᱦᱚᱞᱟ $1 ᱨᱮ",
-       "bad_image_list": "Format do latar re leka",
+       "bad_image_list": "ᱯᱷᱚᱨᱢᱮᱴ ᱫᱚ ᱞᱟᱛᱟᱨ ᱨᱮ ᱞᱮᱠᱟ:\n\nᱠᱷᱟᱹᱞᱤ ᱛᱟᱹᱞᱠᱟᱹ ᱟᱭᱴᱮᱢᱠᱳ (ᱞᱟᱭᱤᱱ ᱮᱛᱦᱚᱵᱚ ᱟᱜ *) ᱦᱟᱛᱟᱣᱚᱜ-ᱟ᱾\nᱯᱩᱭᱞᱩ ᱡᱚᱱᱚᱲ ᱞᱟᱭᱤᱱ ᱫᱚ ᱢᱤᱫᱴᱮᱱ ᱵᱟᱹᱲᱤᱡ ᱨᱮᱫ ᱨᱮ᱾\nᱮᱴᱟᱜ subsequent ᱡᱚᱱᱚᱲᱠᱩ ᱚᱱᱟ ᱞᱟᱭᱤᱱ ᱨᱮᱜᱮ ᱦᱟᱛᱟᱣᱚᱜ-ᱟ ᱵᱮᱛᱤᱠᱨᱚᱢ ᱠᱷᱟᱹᱛᱤᱨ, i.e. ᱥᱟᱦᱴᱟᱠᱳ ᱡᱟᱸᱦᱟᱸᱨᱮ ᱨᱮᱫ ᱨᱮᱱᱟᱜ ᱞᱟᱭᱤᱱ ᱠᱩ᱾",
        "metadata": "ᱢᱮᱴᱟ ᱥᱟᱹᱠᱷᱭᱟᱹᱛ",
        "metadata-help": "ᱱᱚᱣᱟ ᱨᱮᱫ ᱨᱮᱫᱚ ᱵᱟᱹᱲᱛᱤ ᱠᱟᱛᱷᱟᱠᱚ ᱢᱮᱱᱟᱜ-ᱟ, ᱯᱟᱥᱮᱡ ᱱᱚᱣᱟ ᱫᱚ ᱰᱤᱡᱤᱴᱟᱞ ᱠᱮᱢᱨᱟ ᱥᱮ ᱮᱥᱠᱮᱱᱟᱨ ᱵᱮᱵᱦᱟᱨ ᱠᱟᱛᱮ ᱰᱤᱡᱤᱴᱟᱞ ᱟᱠᱟᱫᱟᱠᱚ᱾ ᱡᱩᱫᱤ ᱱᱚᱣᱟ ᱨᱮᱫ ᱨᱮᱭᱟᱜ ᱵᱩᱱᱤᱭᱟᱹᱫ ᱠᱷᱚᱱ ᱱᱟᱣᱟ ᱥᱩᱫᱷᱨᱟᱣ ᱞᱮᱱᱠᱷᱟᱱ, ᱯᱟᱥᱮᱡ ᱥᱟᱱᱟᱢᱠᱚ ᱛᱷᱚᱲᱟ ᱵᱟᱝᱠᱩ ᱥᱚᱫᱚᱨᱚᱜ-ᱟ ᱱᱚᱣᱟ ᱨᱮᱫ ᱨᱮᱫᱚ᱾",
        "metadata-fields": "Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.\nOthers will be hidden by default.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "watchlisttools-edit": "ᱧᱮᱞᱢᱮ ᱟᱨ ᱧᱮᱞᱚᱜ ᱛᱟᱹᱞᱠᱟᱹ ᱥᱟᱯᱲᱟᱣᱢᱮ",
        "watchlisttools-raw": "ᱵᱟᱝ ᱯᱩᱨᱟᱣ ᱟᱠᱟᱱ ᱧᱮᱞᱚᱜ ᱛᱟᱹᱞᱠᱟᱹ ᱥᱟᱯᱲᱟᱣᱢᱮ",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ᱜᱟᱞᱢᱟᱨᱟᱣ]])",
-       "duplicate-defaultsort": "'''Sontoroḱmẽ:''' ḍifolṭ sajao reaḱ cạbi: $2 lahare ḍifolṭ sajao reaḱ sakam: ''$1'' e bae luturaḱ kana.",
+       "duplicate-defaultsort": "<strong>ᱥᱚᱱᱛᱚᱨᱚᱜᱢᱮ:</strong> ᱡᱟᱭᱞᱮᱠᱟ ᱥᱟᱡᱟᱣ ᱨᱮᱭᱟᱜ ᱪᱟᱹᱵᱤ: $2 ᱞᱟᱦᱟᱨᱮ ᱡᱟᱭᱞᱮᱠᱟ ᱥᱟᱡᱟᱣ ᱨᱮᱭᱟᱜ ᱥᱟᱦᱴᱟ: ''$1'' ᱮ ᱵᱟᱭ ᱞᱩᱛᱩᱨᱟᱜ ᱠᱟᱱᱟ᱾",
        "redirect": "ᱨᱮᱫ, ᱵᱮᱵᱷᱟᱨᱩᱭᱟᱹ, ᱥᱟᱦᱴᱟ, ᱧᱮᱞ-ᱟᱹᱨᱩ, ᱵᱟᱝᱠᱷᱟᱱ ᱞᱚᱜᱽ ID ᱫᱟᱨᱟᱭᱛᱮ ᱢᱚᱦᱰᱟ",
        "redirect-summary": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱫᱚ ᱢᱚᱦᱰᱟ ᱟ ᱢᱤᱫ ᱨᱮᱫ (ᱮᱢᱟᱠᱟᱱ ᱨᱮᱫᱧᱩᱛᱩᱢ) ᱴᱷᱮᱱ, ᱢᱤᱫ ᱥᱟᱦᱴᱟ (ᱮᱢᱮᱱ ᱟᱹᱨᱩᱣᱟᱜ ID ᱟᱨᱵᱟᱝ ᱥᱟᱦᱴᱟ ID),  ᱢᱤᱫ ᱵᱮᱵᱷᱟᱨᱩᱭᱟᱹ ᱥᱟᱦᱴᱟ (ᱮᱢᱮᱱ ᱮᱞᱩᱠ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ID ), ᱟᱨᱵᱟᱝ ᱢᱤᱫ ᱞᱚᱜᱽ ᱵᱚᱞᱚ (ᱮᱢᱮᱱ ᱞᱚᱜᱽ ID) ᱾ ᱵᱮᱵᱷᱟᱨᱟᱠᱟᱱ: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], ᱟᱨᱵᱟᱝ [[{{#Special:Redirect}}/logid/186]]",
        "redirect-submit": "ᱥᱮᱱᱚᱜ",
        "fileduplicatesearch-submit": "ᱥᱮᱸᱫᱽᱨᱟ",
        "specialpages": "ᱵᱤᱥᱮᱥ ᱥᱟᱦᱴᱟᱠᱚ",
        "external_image_whitelist": "#ᱱᱚᱣᱟ ᱥᱟᱦᱴᱟ ᱫᱚ ᱪᱮᱛ ᱞᱮᱠᱟ ᱢᱮᱱᱟᱜ-ᱟ ᱚᱝᱠᱟᱜᱮ ᱫᱚᱦᱚᱭᱢᱮ\n#ᱡᱚᱛᱚ ᱚᱠᱛᱚ ᱨᱮ ᱡᱟᱹᱦᱤᱨᱮᱱ ᱠᱩᱴᱨᱟᱹ ᱞᱟᱛᱟᱨ ᱨᱮ (ᱠᱷᱟᱹᱞᱤ ᱦᱟᱹᱴᱤᱧ //ᱛᱟᱞᱟᱨᱮ) ᱵᱟᱹᱭᱥᱟᱹᱣᱢᱮ\n#ᱱᱚᱣᱟ ᱠᱚ ᱫᱚ ᱵᱟᱨᱦᱮ ᱨᱮᱭᱟᱜ (hotlinked) ᱪᱤᱛᱟᱹᱨ ᱨᱮᱭᱟᱜ URL ᱥᱟᱶᱛᱮ ᱢᱤᱞᱟᱹᱣ ᱦᱩᱭᱩᱜ-ᱟ\n#ᱚᱠᱟᱠᱩ ᱢᱤᱞᱟᱹᱜ-ᱟ, ᱚᱱᱟᱠᱩ ᱫᱚ ᱪᱤᱛᱟᱹᱨ ᱞᱮᱠᱟᱛᱮ ᱩᱫᱩᱜᱚᱜ-ᱟ, ᱵᱟᱝᱠᱷᱟᱱ ᱫᱚ ᱠᱷᱟᱹᱞᱤ ᱪᱤᱛᱟᱨ ᱡᱚᱱᱚᱲ ᱩᱫᱩᱜᱚᱜ-ᱟ\n#ᱱᱚᱣᱟ ᱞᱟᱭᱤᱱ ᱨᱮᱭᱟᱜ ᱮᱛᱦᱚᱵᱨᱮ # ᱢᱮᱱᱟᱜ-ᱟ ᱚᱱᱟ ᱞᱟᱭᱤᱱᱠᱚ ᱢᱮᱱᱠᱚ ᱦᱤᱥᱟᱹᱵᱛᱮ ᱵᱮᱵᱦᱟᱨ ᱦᱩᱭᱩᱜ-ᱟ\n#ᱱᱚᱣᱟ ᱫᱚ ᱨᱤᱢᱡᱷᱟᱹᱣᱜᱮ\n#ᱱᱚᱣᱟ ᱫᱟᱜᱽ ᱪᱮᱛᱟᱱᱨᱮ regex ᱠᱩᱴᱨᱟᱹ ᱵᱟᱹᱭᱥᱟᱹᱣᱢᱮ᱾ ᱱᱚᱣᱟ ᱞᱟᱭᱤᱱ ᱪᱮᱫᱞᱮᱠᱟ ᱢᱮᱱᱟᱜ-ᱟ ᱚᱝᱠᱟᱜᱮ ᱫᱚᱦᱚᱭᱢᱮ</pre>",
-       "tag-filter": "[[Special:Tags|Tag]] ᱪᱷᱟᱹᱠᱱᱤ:",
+       "tag-filter": "[[Special:Tags|ᱜᱚᱛᱟᱣ]] ᱪᱷᱟᱹᱱᱤ:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ᱥᱟᱛᱚᱢ|ᱥᱟᱛᱚᱢᱠᱩ}}]]: $2)",
        "tags-active-yes": "ᱦᱮᱸ",
        "tags-active-no": "ᱵᱟᱝ",
index 9eebd0d..6cc11ef 100644 (file)
        "anontalk": "Pogovorna stran",
        "navigation": "Navigacija",
        "and": "&#32;in",
-       "faq": "Najpogostejša vprašanja",
+       "faq": "Pogosta vprašanja",
        "actions": "Dejanja",
        "namespaces": "Imenski prostori",
        "variants": "Različice",
        "ns-specialprotected": "Posebnih strani ni mogoče urejati.",
        "titleprotected": "Uporabnik [[User:$1|$1]] je preprečil ustvarjanje strani s tem naslovom.\nPodan razlog je <em>$2</em>.",
        "filereadonlyerror": "Ne morem spremeniti datoteke »$1«, ker je skladišče datotek »$2« v načinu, ki dovoljuje samo branje.\n\nSistemski skrbnik, ki ga je zaklenil, je podal naslednje pojasnilo: »$3«.",
+       "invalidtitle": "Neveljaven naslov",
        "invalidtitle-knownnamespace": "Neveljaven naslov z imenskim prostorom »$2« in besedilom »$3«",
        "invalidtitle-unknownnamespace": "Neveljaven naslov z neznano številko imenskega prostora $1 in besedilom »$2«",
        "exception-nologin": "Niste prijavljeni",
        "rcfilters-restore-default-filters": "Obnovi privzete filtre",
        "rcfilters-clear-all-filters": "Počisti vse filtre",
        "rcfilters-show-new-changes": "Ogled najnovejših sprememb",
-       "rcfilters-search-placeholder": "Filtrirajte spremembe (uporabite meni ali poiščite ime filtra)",
+       "rcfilters-search-placeholder": "Filtriraj zadnje spremembe (uporabi meni ali vnesi ime filtra)",
        "rcfilters-invalid-filter": "Neveljaven filter",
        "rcfilters-empty-filter": "Ni dejavnih filtrov. Prikazani so vsi prispevki.",
        "rcfilters-filterlist-title": "Filtri",
        "rcfilters-filterlist-whatsthis": "Kako to deluje?",
-       "rcfilters-filterlist-feedbacklink": "Povejte nam, kaj menite o teh orodjih za filtriranje",
+       "rcfilters-filterlist-feedbacklink": "Povej nam, kaj meniš o tem orodju za filtriranje",
        "rcfilters-highlightbutton-title": "Označi rezultate",
-       "rcfilters-highlightmenu-title": "Izberite barvo",
-       "rcfilters-highlightmenu-help": "Izberite barvo za označitev te lastnosti",
+       "rcfilters-highlightmenu-title": "Izberi barvo",
+       "rcfilters-highlightmenu-help": "Izberi barvo za označitev te lastnosti",
        "rcfilters-filterlist-noresults": "Nismo našli nobenega filtra",
        "rcfilters-noresults-conflict": "Našli nismo nobenih rezultatov, ker si merila za iskanje nasprotujejo",
        "rcfilters-state-message-subset": "Ta filter nima učinka, saj njegove rezultate {{PLURAL:$2|vključuje naslednji, širši filter|vključujeta naslednja, širša filtra|vključujejo naslednji, širši filtri}} (označite jih, da razlikujete med njimi): $1",
        "rcfilters-state-message-fullcoverage": "Izbira vseh filtrov v tej skupini je enako kot izbira nobenega, zato ta filter nima učinka. Skupina vključuje: $1",
        "rcfilters-filtergroup-authorship": "Avtorstvo prispevka",
-       "rcfilters-filter-editsbyself-label": "Vaše spremembe",
-       "rcfilters-filter-editsbyself-description": "Vaša lastna urejanja.",
+       "rcfilters-filter-editsbyself-label": "Tvoje spremembe",
+       "rcfilters-filter-editsbyself-description": "Tvoja lastna urejanja.",
        "rcfilters-filter-editsbyother-label": "Spremembe drugih",
-       "rcfilters-filter-editsbyother-description": "Vse spremembe razen vaših.",
+       "rcfilters-filter-editsbyother-description": "Vse spremembe razen tvojih.",
        "rcfilters-filtergroup-userExpLevel": "Prijava in izkušnje uporabnika",
        "rcfilters-filter-user-experience-level-registered-label": "Registrirani",
        "rcfilters-filter-user-experience-level-registered-description": "Prijavljeni uporabniki.",
index e4ab007..f294b78 100644 (file)
        "views": "Прегледи",
        "toolbox": "Алатке",
        "tool-link-userrights": "Промени {{GENDER:$1|корисничке}} групе",
-       "tool-link-userrights-readonly": "Поглед {{GENDER:$1|корисничких}} група",
+       "tool-link-userrights-readonly": "Преглед {{GENDER:$1|корисничких}} група",
        "tool-link-emailuser": "Слање имејла {{GENDER:$1|кориснику|корисници}}",
        "imagepage": "Погледај страницу датотеке",
        "mediawikipage": "Погледај страницу поруке",
        "nosuchaction": "Нема такве радње",
        "nosuchactiontext": "Радња наведена у URL-у није валидна.\nМожда сте откуцали погрешан URL-а или сте пратили покварену везу.\nОво такође може да указује на грешку у софтверу који користи {{SITENAME}}.",
        "nosuchspecialpage": "Нема такве посебне странице",
-       "nospecialpagetext": "<strong>Захтевали сте невалидну посебну страницу.</strong>\n\nСписак валидних посебних страница се може пронаћи на „[[Special:SpecialPages|{{int:specialpages}}]]”.",
+       "nospecialpagetext": "<strong>Захтевали сте невалидну посебну страницу.</strong>\n\nСписак валидних посебних страница може да се пронађе на „[[Special:SpecialPages|{{int:specialpages}}]]”.",
        "error": "Грешка",
        "databaseerror": "Грешка у бази података",
        "databaseerror-text": "Дошло је до грешке у упиту базе података. \nОво може да указује на грешку у софтверу.",
        "databaseerror-query": "Упит: $1",
        "databaseerror-function": "Функција: $1",
        "databaseerror-error": "Грешка: $1",
-       "laggedslavemode": "<strong>Упозорење:</strong> могуће је да страница није ажурирана.",
+       "laggedslavemode": "<strong>Упозорење:</strong> страница можда не садржи скорашња ажурирања.",
        "readonly": "База података је закључана",
        "enterlockreason": "Унесите разлог за закључавање, укључујући и време откључавања",
        "readonlytext": "База података је тренутно закључана, што значи да је није могуће мењати.\n\nСистемски администратор је навео следеће објашњење: $1",
        "namespaceprotected": "Немате дозволу да уређујете странице у именском простору: <strong>$1</strong>.",
        "customcssprotected": "Немате дозволу да мењате ову CSS страницу јер садржи лична подешавања другог корисника.",
        "customjsprotected": "Немате дозволу да мењате ову страницу JavaScript јер садржи лична подешавања другог корисника.",
-       "mycustomcssprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¼ÐµÑ\9aаÑ\9aе Ð¾Ð²Ðµ CSS Ñ\81Ñ\82Ñ\80аниÑ\86е.",
-       "mycustomjsonprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¼ÐµÑ\9aаÑ\9aе Ð¾Ð²Ðµ JSON Ñ\81Ñ\82Ñ\80аниÑ\86е.",
-       "mycustomjsprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¼ÐµÑ\9aаÑ\9aе Ð¾Ð²Ðµ JavaScript Ñ\81Ñ\82Ñ\80аниÑ\86е.",
-       "myprivateinfoprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¼ÐµÑ\9aаÑ\9aе Ð²Ð°Ñ\88иÑ\85 Ð»Ð¸Ñ\87ниÑ\85 Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\98а.",
-       "mypreferencesprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¼ÐµÑ\9aаÑ\9aе Ð²Ð°Ñ\88иÑ\85 подешавања.",
+       "mycustomcssprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ñ\83Ñ\80еÑ\92Ñ\83Ñ\98еÑ\82е Ð¾Ð²Ñ\83 Ð¦Ð¡Ð¡ Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.",
+       "mycustomjsonprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ñ\83Ñ\80еÑ\92Ñ\83Ñ\98еÑ\82е Ð¾Ð²Ñ\83 Ð\88СÐ\9eÐ\9d Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83.",
+       "mycustomjsprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ñ\83Ñ\80еÑ\92Ñ\83Ñ\98еÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ñ\81 Ñ\98аваÑ\81кÑ\80ипÑ\82ом.",
+       "myprivateinfoprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ñ\83Ñ\80еÑ\92Ñ\83Ñ\98еÑ\82е Ñ\81воÑ\98е Ð¿Ñ\80иваÑ\82не Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\98е.",
+       "mypreferencesprotected": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ñ\83Ñ\80еÑ\92Ñ\83Ñ\98еÑ\82е Ñ\81воÑ\98а подешавања.",
        "ns-specialprotected": "Посебне странице се не могу уређивати.",
        "titleprotected": "Овај назив је [[User:$1|$1]] заштитио од прављења. Разлог: <em>$2</em>.",
        "filereadonlyerror": "Не могу да изменим датотеку „$1“ јер је ризница „$2“ у режиму за читање.\n\nСистемски администратор је навео следеће објашњење: „$3“.",
+       "invalidtitle": "Невалидан наслов",
        "invalidtitle-knownnamespace": "Неисправан наслов с именским простором „$2“ и текстом „$3“",
        "invalidtitle-unknownnamespace": "Неисправан наслов с именским простором бр. $1 и текстом „$2“",
        "exception-nologin": "Нисте пријављени",
        "cannotlogin-text": "Пријава није могућа",
        "cannotloginnow-title": "Пријава тренутно није могућа",
        "cannotloginnow-text": "Пријава није могућа када се користи $1.",
-       "cannotcreateaccount-title": "Ð\9eÑ\82ваÑ\80аÑ\9aе Ð½Ð°Ð»Ð¾Ð³Ð° Ð½Ð¸Ñ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе",
+       "cannotcreateaccount-title": "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82воÑ\80им Ð½Ð°Ð»Ð¾Ð³е",
        "cannotcreateaccount-text": "Директно прављење налога није омогућено на овом викију.",
        "yourdomainname": "Домен:",
        "password-change-forbidden": "Не можете да промените лозинку на овом викију.",
        "noemail": "Не постоји имејл адреса за {{GENDER:$1|корисника|корисницу}} $1.",
        "noemailcreate": "Морате да наведете валидну имејл адресу.",
        "passwordsent": "Нова лозинка је послата на имејл адресу {{GENDER:$1|корисника|кориснице|корисника}} $1.\nПријавите се пошто је примите.",
-       "blocked-mailpassword": "Ð\92аÑ\88а IP Ð°Ð´Ñ\80еÑ\81а Ð¸Ð¼Ð° Ð·Ð°Ð±Ñ\80анÑ\83 Ñ\83Ñ\80еÑ\92иваÑ\9aа. Ð Ð°Ð´Ð¸ Ñ\81пÑ\80еÑ\87аваÑ\9aа Ð·Ð»Ð¾Ñ\83поÑ\82Ñ\80ебе, Ð½Ð¸Ñ\98е Ð´Ð¾Ð·Ð²Ð¾Ñ\99ено Ð²Ñ\80аÑ\9bаÑ\9aе лозинке са ње.",
+       "blocked-mailpassword": "УÑ\80еÑ\92иваÑ\9aе Ñ\81а Ð²Ð°Ñ\88е IP Ð°Ð´Ñ\80еÑ\81е Ñ\98е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ано. Ð Ð°Ð´Ð¸ Ñ\81пÑ\80еÑ\87аваÑ\9aа Ð·Ð»Ð¾Ñ\83поÑ\82Ñ\80ебе, Ð·Ð°Ð±Ñ\80аÑ\9aена Ñ\98е Ð¸ Ñ\84Ñ\83нкÑ\86иÑ\98а Ð²Ñ\80аÑ\9bаÑ\9aа лозинке са ње.",
        "eauthentsent": "На наведену имејл адресу је послат потврдни код.\nПре него што пошаљемо даљње поруке, пратите упутства с имејла да бисте потврдили да сте Ви отворили налог.",
        "throttled-mailpassword": "Порука за промену лозинке је послата у {{PLURAL:$1|1=последњих сат времена|последња $1 сата|последњих $1 сати}}.\nДа бисмо спречили злоупотребу, подсетник шаљемо само једном у року од {{PLURAL:$1|1=сат времена|$1 сата|$1 сати}}.",
        "mailerror": "Грешка при слању поруке: $1",
        "acct_creation_throttle_hit": "Посетиоци овог викија који користе вашу IP адресу су већ отворили {{PLURAL:$1|1=један налог|$1 налога}} претходни $2, што је највећи дозвољени број у том временском периоду.\nЗбог тога посетиоци с ове IP адресе тренутно не могу отворити више налога.",
-       "emailauthenticated": "Ваша имејл адреса је потврђена на дан $2 у $3.",
+       "emailauthenticated": "Ваша имејл адреса је потврђена на дан $2 у $3 ч.",
        "emailnotauthenticated": "Ваша имејл адреса још увек није потврђена.\nИмејл неће бити послат ни у једном од следећих случајева.",
        "noemailprefs": "Наведите имејл адресу у својим подешавањима за рад ових могућности.",
        "emailconfirmlink": "Потврдите своју имејл адресу",
        "botpasswords-label-grants-column": "Одобрено",
        "botpasswords-bad-appid": "Име бота „$1” није валидно.",
        "botpasswords-insert-failed": "Неуспешно додавање бота \"$1\". Да ли је већ додат?",
-       "botpasswords-update-failed": "Ð\9dиÑ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе Ð°Ð¶Ñ\83Ñ\80иÑ\80аÑ\82и Ð±Ð¾Ñ\82а \"$1\". Да ли је обрисан?",
+       "botpasswords-update-failed": "Ð\9dеÑ\83Ñ\81пело Ð°Ð¶Ñ\83Ñ\80иÑ\80аÑ\9aе Ð±Ð¾Ñ\82а Ð¿Ð¾Ð´ Ð½Ð°Ð·Ð¸Ð²Ð¾Ð¼ â\80\9e$1â\80\9d. Да ли је обрисан?",
        "botpasswords-created-title": "Направљена лозинка бота",
        "botpasswords-created-body": "Лозинка за бота „$1” корисника „$2” је направљена.",
        "botpasswords-updated-title": "Лозинка бота промењена",
        "passwordreset-domain": "Домен:",
        "passwordreset-email": "Имејл адреса:",
        "passwordreset-emailtitle": "Детаљи налога на викију {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Неко (вероватно Ви, са IP адресе $1) је затражио нову лозинку на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом имејл адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку и наставите користити стару лозинку.",
+       "passwordreset-emailtext-ip": "Неко (вероватно Ви, с ИП адресе $1) затражио је обнављање Ваше \nлозинке за пројекат {{SITENAME}} ($4). Следећи кориснички {{PLURAL:$3|налог је повезан|налози су повезани}} \nс овом имејл адресом:\n\n$2\n\n{{PLURAL:$3|Ова привремена лозинка|Ове привремене лозинке}} ће истећи за {{PLURAL:$5|један дан|$5 дана}}.\nТребате да се пријавите и одаберите нову лозинку одмах. Ако је неко други направио овај \nзахтев или сте се сетили своје првобитне лозинке, а не \nжелите да је промените, можете да занемарите ову поруку и наставите да користите своју стару \nлозинку.",
        "passwordreset-emailtext-user": "{{GENDER:$1|Корисник је затражио|Корисница је затражила}} подсетник о подацима за пријаву на викију {{SITENAME}} ($4).\nСледећи {{PLURAL:$3|кориснички налог је повезан|кориснички налози су повезани}} с овом имејл адресом:\n\n$2\n\n{{PLURAL:$3|Привремена лозинка истиче|Привремене лозинке истичу}} за {{PLURAL:$5|један дан|$5 дана}}.\nПријавите се и изаберите нову лозинку. Ако је неко други захтевао ову радњу или сте се сетили лозинке и не желите да је мењате, занемарите ову поруку.",
        "passwordreset-emailelement": "Корисничко име: \n$1\n\nПривремена лозинка: \n$2",
        "passwordreset-emailsentemail": "Ако је ово имејл адреса повезана са Вашим налогом, подсетник о лозинци ће бити послат на имејл.",
        "showdiff": "Прикажи измене",
        "blankarticle": "<strong>Упозорење:</strong> Страница коју правите је празна.\nАко још једном притиснете „$1”, страница ће бити направљена без икаквог садржаја.",
        "anoneditwarning": "<strong>Упозорење:</strong> Нисте пријављени. Ако објавите страницу, Ваша IP адреса ће бити јавно видљива у њеној историји измена и другде. Ако се <strong>[$1 пријавите]</strong> или <strong>[$2 отворите налог]</strong>, поред осталих погодности које добијате Ваше измене ће бити приписиване Вашем корисничком имену.",
-       "anonpreviewwarning": "<em>Нисте пријављени. Ако објавите страницу, Ваша IP адреса ће бити јавно видљива у њеној историји измена и другде.</em>",
+       "anonpreviewwarning": "<em>Нисте пријављени. Ако објавите страницу, Ваша ИП адреса ће бити јавно видљива у њеној историји измена и другде.</em>",
        "missingsummary": "<strong>Подсетник:</strong> Нисте унели опис измене.\nАко поново кликнете на „$1”, Ваша измена ће бити сачувана без описа.",
        "selfredirect": "<strong>Упозорење:</strong> Преусмеравате ову страницу на њу саму.\nМожда вам је одредишна страница за преусмерење погрешна или уређујете погрешну страницу.\nАко још једном притиснете „$1”, преусмерење ће свеједно бити направљено.",
        "missingcommenttext": "Молимо унесите коментар.",
        "subject-preview": "Преглед теме:",
        "previewerrortext": "Догодила се грешка приликом приказивања ваших измена.",
        "blockedtitle": "Корисник је блокиран",
-       "blockedtext": "<strong>Ваше корисничко име или IP адреса је блокирана.</strong>\n\nБлокирање је {{GENDER:$4|извршио|извршила}} $1.\nРазлог је <em>$2</em>.\n\n* Почетак блокирања: $8\n* Истек блокирања: $6\n* Блокирани: $7\n\nМожете да се обратите {{GENDER:$4|кориснику|корисници}} $1 или [[{{MediaWiki:Grouppage-sysop}}|администратору]] ради дискусије о блокирању.\nНе можете да користите могућност „{{int:emailuser}}” осим ако сте унели валидну имејл адресу у својим [[Special:Preferences|подешавањима]] налога и нисте блокирани од коришћења исте.\nВаша тренутна IP адреса је $3, а ID блокирања #$5.\nНаведите све информације одозго при стварању било каквих упита.",
-       "autoblockedtext": "Ваша IP адреса је блокирана јер ју је употребљавао други корисник, кога је {{GENDER:$4|блокирао|блокирала}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Датум блокирања: $8\n* Блокирање истиче: $6\n* Име корисника: $7\n\nОбратите се {{GENDER:$4|кориснику|корисници}} $1 или [[{{MediaWiki:Grouppage-sysop}}|администратору]] да разјасните ствар.\n\nНе можете користити могућност „{{int:emailuser}}“ ако нисте унели валидну имејл адресу у [[Special:Preferences|подешавањима]].\n\nВаша блокирана IP адреса је $3, а ID $5.\nНаведите све податке изнад при стварању било каквих упита.",
+       "blockedtext": "<strong>Ваше корисничко име или ИП адреса је блокирана.</strong>\n\nБлокирање је {{GENDER:$4|извршио|извршила}} $1.\nРазлог је <em>$2</em>.\n\n* Почетак блокаде: $8\n* Крај блокаде: $6\n* Блокирани корисник: $7\n\nМожете да контактирате {{GENDER:$4|корисника|корисницу}} $1 или другог [[{{MediaWiki:Grouppage-sysop}}|администратора]] да бисте разговарали о блокади.\nНе можете да користите могућност „{{int:emailuser}}” осим ако сте навели ваљану имејл адресу у својим [[Special:Preferences|подешавањима налога]] и нисте блокирани од коришћења исте.\nВаша тренутна ИП адреса је $3, а ИД блокаде #$5.\nУкључите све горње детаље при прављењу било каквих упита.",
+       "autoblockedtext": "Ваша ИП адреса је аутоматски блокирана јер ју је користио други корисник, кога је {{GENDER:$4|блокирао|блокирала}} $1.\nРазлог:\n\n:<em>$2</em>\n\n* Почетак блокаде: $8\n* Крај блокаде: $6\n* Име корисника: $7\n\nМожете да контактирате {{GENDER:$4|корисника|корисницу}} $1 или другог [[{{MediaWiki:Grouppage-sysop}}|администратора]] да бисте расправљали о блокади.\n\nЗапамтите да не можете да користите могућност „{{int:emailuser}}“ осим ако сте навели ваљану имејл адресу у својим [[Special:Preferences|подешавањима]].\n\nВаша тренутна ИП адреса је $3, а ИД блокаде $5.\nУкључите све горње детаље при прављењу било каквих упита.",
        "blockednoreason": "разлог није наведен",
        "whitelistedittext": "За уређивање странице је потребно да будете $1.",
        "confirmedittext": "Морате да потврдите своју имејл адресу пре уређивања страница.\nПоставите и потврдите имејл адресу преко [[Special:Preferences|подешавања]].",
        "sectioneditnotsupported-title": "Уређивање одељка није подржано",
        "sectioneditnotsupported-text": "Уређивање одељка није подржано на овој страници.",
        "permissionserrors": "Грешка у дозволи",
-       "permissionserrorstext": "Ð\9dемаÑ\82е Ð¾Ð²Ð»Ð°Ñ\88Ñ\9bеÑ\9aе Ð·Ð° Ð¾Ð²Ñ\83 Ñ\80адÑ\9aÑ\83 Ð¸Ð· {{PLURAL:$1|1=следећег|следећих}} разлога:",
-       "permissionserrorstext-withaction": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·а $2 из {{PLURAL:$1|следећег|следећих}} разлога:",
+       "permissionserrorstext": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¾Ð²Ñ\83 Ñ\80адÑ\9aÑ\83 Ð¸Ð· {{PLURAL:$1|следећег|следећих}} разлога:",
+       "permissionserrorstext-withaction": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´а $2 из {{PLURAL:$1|следећег|следећих}} разлога:",
        "contentmodelediterror": "Не можете уредити ову измену јер је њен модел садржаја <code>$1</code>, што се разликује од тренутног модела садржаја странице <code>$2</code>.",
        "recreate-moveddeleted-warn": "<strong>Упозорење: поново правите страницу која је претходно обрисана.</strong>\n\nРазмотрите да ли је прикладно да наставите с уређивањем ове странице.\nОвде је наведена историја брисања и премештања с образложењем:",
        "moveddeleted-notice": "Ова страница је обрисана.\nЕвиденција брисања, заштите и премештања странице је наведена испод као референца.",
        "undo-summary": "Поништена измена $1 {{GENDER:$2|корисника|кориснице}} [[Special:Contribs/$2|$2]] ([[User talk:$2|разговор]])",
        "undo-summary-username-hidden": "Поништи измену $1 скривеног корисника",
        "cantcreateaccount-text": "Отварање налога с ове ИП адресе (<strong>$1</strong>) је блокирао/ла [[User:$3|$3]].\n\nРазлог који је навео/ла $3 је <em>$2</em>",
-       "cantcreateaccount-range-text": "Отварање налога са IP адреса у распону <strong>$1</strong>, који укључује и вашу IP адресу (<strong>$4</strong>) је блокирао/ла [[User:$3|$3]].\n\nРазлог који је навео/ла $3 је <em>$2</em>",
+       "cantcreateaccount-range-text": "Отварање налога са ИП адреса у распону <strong>$1</strong>, који укључује и вашу ИП адресу (<strong>$4</strong>) је блокирао/ла [[User:$3|$3]].\n\nРазлог који је навео/ла $3 је <em>$2</em>",
        "viewpagelogs": "Погледај евиденције ове странице",
        "nohistory": "Не постоји историја измена ове странице.",
        "currentrev": "Тренутна измена",
        "mergehistory-fail-permission": "Немате овлашћење за спајање историје.",
        "mergehistory-fail-self-merge": "Изворна и одредишна страница не могу бити исте.",
        "mergehistory-fail-timestamps-overlap": "Изворне измене се преклапају или долазе након одредишних измена.",
-       "mergehistory-fail-toobig": "Ð\9dиÑ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе Ñ\81поÑ\98иÑ\82и историје јер више од $1 {{PLURAL:$1|измене ће бити премештене|измена ће бити премештено}}.",
+       "mergehistory-fail-toobig": "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¸Ð·Ð²Ñ\80Ñ\88им Ñ\81паÑ\98аÑ\9aе историје јер више од $1 {{PLURAL:$1|измене ће бити премештене|измена ће бити премештено}}.",
        "mergehistory-no-source": "Изворна страница $1 не постоји.",
        "mergehistory-no-destination": "Одредишна страница $1 не постоји.",
        "mergehistory-invalid-source": "Изворна страница мора имати валидан наслов.",
        "datedefault": "Свеједно",
        "prefs-labs": "Пробне могућности",
        "prefs-user-pages": "Корисничке странице",
-       "prefs-personal": "Ð\9fрофил",
+       "prefs-personal": "Ð\9aоÑ\80иÑ\81ниÑ\87ки Ð¿рофил",
        "prefs-rc": "Скорашње измене",
        "prefs-watchlist": "Списак надгледања",
        "prefs-editwatchlist": "Уређивање списка надгледања",
        "prefs-email": "Опције имејла",
        "prefs-rendering": "Изглед",
        "saveprefs": "Сачувај",
-       "restoreprefs": "Врати сва подразумевана подешавања (у свим одељцима)",
+       "restoreprefs": "Врати сва подешавања на подразумеване вредности (у свим одељцима)",
        "prefs-editing": "Уређивање",
        "searchresultshead": "Претрага",
        "stub-threshold": "Праг за обликовање везе као клице ($1):",
        "prefs-namespaces": "Именски простори",
        "default": "подразумевана",
        "prefs-files": "Датотеке",
-       "prefs-custom-css": "прилагођени CSS",
+       "prefs-custom-css": "прилагођени ЦСС",
        "prefs-custom-json": "Прилагођени JSON",
-       "prefs-custom-js": "прилагођени Јаваскрипт",
-       "prefs-common-config": "Дељени CSS/JSON/Јаваскрипт за све теме:",
+       "prefs-custom-js": "прилагођени јаваскрипт",
+       "prefs-common-config": "Дељени ЦСС/ЈСОН/јаваскрипт за све теме:",
        "prefs-reset-intro": "Можете користити ову страницу да поново поставите своја подешавања на подразумеване вредности сајта.\nОво се не може опозвати.",
        "prefs-emailconfirm-label": "Потврда имејла:",
        "youremail": "Имејл:",
        "badsig": "Потпис је неисправан.\nПроверите ознаке HTML.",
        "badsiglength": "Ваш потпис је предугачак.\nНе сме бити дужи од $1 {{PLURAL:$1|знака|знака|знакова}}.",
        "yourgender": "Како желите да се представите?",
-       "gender-unknown": "Ð\9aад Ð\92ас спомиње, софтвер ће користити родно неутралне речи кад год је то могуће",
+       "gender-unknown": "Ð\9aад Ð²ас спомиње, софтвер ће користити родно неутралне речи кад год је то могуће",
        "gender-male": "Он уређује вики странице",
        "gender-female": "Она уређује вики странице",
-       "prefs-help-gender": "Ð\9fоÑ\81Ñ\82авÑ\99аÑ\9aе Ð¾Ð²Ð¾Ð³ Ð¿Ð¾Ð´ÐµÑ\88аваÑ\9aа Ñ\98е Ð½ÐµÐ¾Ð±Ð°Ð²ÐµÐ·Ð½Ð¾.\nСоÑ\84Ñ\82веÑ\80 ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð´Ð°Ñ\82Ñ\83 Ð²Ñ\80едноÑ\81Ñ\82 Ð´Ð° Ð±Ð¸ Ð\92ам Ñ\81е Ð¾Ð±Ñ\80аÑ\82ио Ð¸ Ñ\81поменÑ\83о Ð\92ас другима користећи одговарајући граматички род.\nОва информација ће бити јавна.",
+       "prefs-help-gender": "Ð\9fоÑ\81Ñ\82авÑ\99аÑ\9aе Ð¾Ð²Ð¾Ð³ Ð¿Ð¾Ð´ÐµÑ\88аваÑ\9aа Ñ\98е Ð½ÐµÐ¾Ð±Ð°Ð²ÐµÐ·Ð½Ð¾.\nСоÑ\84Ñ\82веÑ\80 ÐºÐ¾Ñ\80иÑ\81Ñ\82и Ð´Ð°Ñ\82Ñ\83 Ð²Ñ\80едноÑ\81Ñ\82 Ð´Ð° Ð±Ð¸ Ð²Ð°Ð¼ Ñ\81е Ð¾Ð±Ñ\80аÑ\82ио Ð¸ Ñ\81поменÑ\83о Ð²ас другима користећи одговарајући граматички род.\nОва информација ће бити јавна.",
        "email": "Имејл",
        "prefs-help-realname": "Право име није обавезно.\nАко изаберете да га унесете, оно ће бити коришћено за приписивање вашег рада.",
        "prefs-help-email": "Имејл адреса није обавезна, али је потребна за обнављање лозинке, ако је заборавите.",
-       "prefs-help-email-others": "ТакоÑ\92е Ð¼Ð¾Ð¶ÐµÑ\82е Ð¸Ð·Ð°Ð±Ñ\80аÑ\82и Ð´Ð° Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Ð´Ñ\80Ñ\83гима Ð´Ð° Ð\92аÑ\81 ÐºÐ¾Ð½Ñ\82акÑ\82иÑ\80аÑ\98Ñ\83 Ð¿Ñ\80еко Ð¸Ð¼ÐµÑ\98ла Ð¿Ñ\83Ñ\82ем Ð²ÐµÐ·Ðµ Ð½Ð° Ð\92аÑ\88оÑ\98 ÐºÐ¾Ñ\80иÑ\81ниÑ\87коÑ\98 Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸Ð»Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80.\nÐ\92аÑ\88а Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81а Ð½ÐµÑ\9bе Ð±Ð¸Ñ\82и Ð¿Ñ\80иказана Ð´Ñ\80Ñ\83гим ÐºÐ¾Ñ\80иÑ\81ниÑ\86има ÐºÐ¾Ñ\98и Ð\92ас контактирају.",
+       "prefs-help-email-others": "ТакоÑ\92е Ð¼Ð¾Ð¶ÐµÑ\82е Ð¸Ð·Ð°Ð±Ñ\80аÑ\82и Ð´Ð° Ð´Ð¾Ð¿Ñ\83Ñ\81Ñ\82иÑ\82е Ð´Ñ\80Ñ\83гима Ð´Ð° Ð²Ð°Ñ\81 ÐºÐ¾Ð½Ñ\82акÑ\82иÑ\80аÑ\98Ñ\83 Ð¿Ñ\80еко Ð¸Ð¼ÐµÑ\98ла Ð¿Ñ\83Ñ\82ем Ð²ÐµÐ·Ðµ Ð½Ð° Ð²Ð°Ñ\88оÑ\98 ÐºÐ¾Ñ\80иÑ\81ниÑ\87коÑ\98 Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸Ð»Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð·Ð° Ñ\80азговоÑ\80.\nÐ\92аÑ\88а Ð¸Ð¼ÐµÑ\98л Ð°Ð´Ñ\80еÑ\81а Ð½ÐµÑ\9bе Ð±Ð¸Ñ\82и Ð¿Ñ\80иказана Ð´Ñ\80Ñ\83гим ÐºÐ¾Ñ\80иÑ\81ниÑ\86има ÐºÐ¾Ñ\98и Ð²ас контактирају.",
        "prefs-help-email-required": "Потребна је имејл адреса.",
        "prefs-info": "Основне информације",
        "prefs-i18n": "Интернационализација",
        "right-bot": "сматрање измена као аутоматски процес",
        "right-nominornewtalk": "непоседовање мањих измена на страницама за разговор отвара прозор за нове поруке",
        "right-apihighlimits": "коришћење виших граница за упите из API-ја",
-       "right-writeapi": "могÑ\83Ñ\9bноÑ\81Ñ\82 Ð¿Ð¸Ñ\81аÑ\9aа API-Ñ\98а",
+       "right-writeapi": "коÑ\80иÑ\88Ñ\9bеÑ\9aе API-Ñ\98а Ð·Ð° Ð¿Ð¸Ñ\81аÑ\9aе",
        "right-delete": "брисање страница",
        "right-bigdelete": "брисање страница с великом историјом",
        "right-deletelogentry": "брисање и враћање одређених уноса у евиденцији",
        "newuserlogpagetext": "Ово је евиденција о регистрацији нових корисника.",
        "rightslog": "Евиденција корисничких права",
        "rightslogtext": "Ово је евиденција промена корисничких права.",
-       "action-read": "Ñ\87иÑ\82аÑ\9aе Ð¾Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е",
-       "action-edit": "уређивање ове странице",
-       "action-createpage": "пÑ\80авÑ\99еÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86а",
-       "action-createtalk": "пÑ\80авÑ\99еÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86а за разговор",
-       "action-createaccount": "оÑ\82ваÑ\80аÑ\9aе Ð¾Ð²Ð¾Ð³ ÐºÐ¾Ñ\80иÑ\81ниÑ\87ког Ð½Ð°Ð»Ð¾Ð³Ð°",
-       "action-autocreateaccount": "аÑ\83Ñ\82омаÑ\82Ñ\81ко Ð¿Ñ\80авÑ\99еÑ\9aе Ð¾Ð²Ð¾Ð³ Ñ\81поÑ\99аÑ\88Ñ\9aег ÐºÐ¾Ñ\80иÑ\81ниÑ\87ког Ð½Ð°Ð»Ð¾Ð³Ð°",
-       "action-history": "гледаÑ\9aе Ð¸Ñ\81Ñ\82оÑ\80иÑ\98е ове странице",
-       "action-minoredit": "ознаÑ\87аваÑ\9aе Ð¾Ð²Ðµ Ð¸Ð·Ð¼ÐµÐ½Ðµ ÐºÐ°Ð¾ Ð¼Ð°Ñ\9aе",
-       "action-move": "пÑ\80емеÑ\88Ñ\82аÑ\9aе Ð¾Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е",
-       "action-move-subpages": "пÑ\80емеÑ\88Ñ\82аÑ\9aе Ð¾Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е Ð¸ Ñ\9aениÑ\85 Ð¿Ð¾Ð´Ñ\81Ñ\82Ñ\80аниÑ\86а",
-       "action-move-rootuserpages": "пÑ\80емеÑ\88Ñ\82аÑ\9aе Ð¾Ñ\81новниÑ\85 ÐºÐ¾Ñ\80иÑ\81ниÑ\87киÑ\85 Ñ\81Ñ\82Ñ\80аниÑ\86а",
-       "action-move-categorypages": "пÑ\80емеÑ\88Ñ\82аÑ\9aе ÐºÐ°Ñ\82егоÑ\80иÑ\98а",
-       "action-movefile": "пÑ\80емеÑ\88Ñ\82аÑ\9aе Ð¾Ð²Ðµ Ð´Ð°Ñ\82оÑ\82еке",
-       "action-upload": "отпреми ову датотеку",
-       "action-reupload": "замењивање постојеће датотеке",
-       "action-reupload-shared": "постављање ове датотеке на заједничко складиште",
-       "action-upload_by_url": "оÑ\82пÑ\80емаÑ\9aе Ð¾Ð²Ðµ Ð´Ð°Ñ\82оÑ\82еке Ð¿Ñ\80еко Ð²ÐµÐ±-адÑ\80еÑ\81е",
-       "action-writeapi": "пиÑ\81аÑ\9aе API-Ñ\98а",
-       "action-delete": "бÑ\80иÑ\81аÑ\9aе Ð¾Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е",
-       "action-deleterevision": "бÑ\80иÑ\81аÑ\9aе Ð¸Ð·Ð¼ÐµÐ½Ð°",
-       "action-deletelogentry": "бÑ\80иÑ\81аÑ\9aе Ñ\83ноÑ\81а у евиденцијама",
-       "action-deletedhistory": "пÑ\80егледаÑ\9aе Ð¾Ð±Ñ\80иÑ\81ане Ð¸Ñ\81Ñ\82оÑ\80иÑ\98е странице",
-       "action-deletedtext": "преглед обрисаног текста измене",
-       "action-browsearchive": "претраживање обрисаних страница",
-       "action-undelete": "вÑ\80аÑ\9bаÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86а",
-       "action-suppressrevision": "пÑ\80егледаÑ\9aе Ð¸ Ð²Ñ\80аÑ\9bаÑ\9aе Ñ\81акÑ\80ивениÑ\85 Ð¸Ð·Ð¼ÐµÐ½Ð°",
-       "action-suppressionlog": "пÑ\80егледаÑ\9aе Ð¾Ð²Ðµ Ð¿Ñ\80иваÑ\82не Ð¸Ñ\81Ñ\82оÑ\80ије",
-       "action-block": "блокиÑ\80аÑ\9aе Ð´Ð°Ñ\99иÑ\85 Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¾Ð²Ð¾Ð³ ÐºÐ¾Ñ\80иÑ\81ника",
-       "action-protect": "меÑ\9aаÑ\9aе Ñ\81Ñ\82епена заштите ове странице",
-       "action-rollback": "бÑ\80зо Ð²Ñ\80аÑ\9bаÑ\9aе Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¿Ð¾Ñ\81ледÑ\9aег ÐºÐ¾Ñ\80иÑ\81ника ÐºÐ¾Ñ\98и Ñ\98е Ð¼ÐµÑ\9aао одређену страницу",
-       "action-import": "Ñ\83вожеÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð· Ð´Ñ\80Ñ\83гиÑ\85 викија",
-       "action-importupload": "Ñ\83вожеÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð· Ð¾Ñ\82пÑ\80емÑ\99ене датотеке",
-       "action-patrol": "ознаÑ\87аваÑ\9aе Ñ\82Ñ\83Ñ\92иÑ\85 Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¿Ð°Ñ\82Ñ\80олиÑ\80аним",
-       "action-autopatrol": "ознаÑ\87аваÑ\9aе Ñ\81опÑ\81Ñ\82вениÑ\85 Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¿Ð°Ñ\82Ñ\80олиÑ\80аним",
-       "action-unwatchedpages": "пÑ\80егледаÑ\9aе Ñ\81пиÑ\81ка ненадгледаних страница",
-       "action-mergehistory": "Ñ\81паÑ\98аÑ\9aе Ð¸Ñ\81Ñ\82оÑ\80иÑ\98е ове странице",
-       "action-userrights": "уређивање свих корисничких права",
-       "action-userrights-interwiki": "уређивање корисничких права на другим викијима",
-       "action-siteadmin": "закÑ\99Ñ\83Ñ\87аваÑ\9aе Ð¸Ð»Ð¸ Ð¾Ñ\82кÑ\99Ñ\83Ñ\87аваÑ\9aе Ð±Ð°Ð·Ðµ података",
-       "action-sendemail": "Ñ\81лаÑ\9aе Ð¸Ð¼ÐµÑ\98лова",
-       "action-editmyoptions": "уређивање Ваших подешавања",
-       "action-editmywatchlist": "измену сопственог списак надгледања",
-       "action-viewmywatchlist": "преглед вашег списак надгледања",
-       "action-viewmyprivateinfo": "пÑ\80егледаÑ\9aе Ð²Ð°Ñ\88иÑ\85 Ð»Ð¸Ñ\87ниÑ\85 Ð¿Ð¾Ð´Ð°Ñ\82ака",
-       "action-editmyprivateinfo": "уређивање ваших личних података",
-       "action-editcontentmodel": "мењање модела садржаја странице",
-       "action-managechangetags": "прављење и (де)активирање ознака",
-       "action-applychangetags": "додавање ознака на ваше измене",
-       "action-changetags": "додавање и уклањање разних ознака на појединачним изменама и уносима у евиденцијама",
-       "action-deletechangetags": "Ð\9eбÑ\80иÑ\88и ознаке из базе података",
-       "action-purge": "чишћење привремене меморије ове странице",
+       "action-read": "Ñ\87иÑ\82аÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83",
+       "action-edit": "уређујете ову страницу",
+       "action-createpage": "напÑ\80авиÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83",
+       "action-createtalk": "напÑ\80авиÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 за разговор",
+       "action-createaccount": "напÑ\80авиÑ\82е Ð¾Ð²Ð°Ñ\98 ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки Ð½Ð°Ð»Ð¾Ð³",
+       "action-autocreateaccount": "аÑ\83Ñ\82омаÑ\82Ñ\81ки Ð½Ð°Ð¿Ñ\80авиÑ\82е Ð¾Ð²Ð°Ñ\98 Ñ\81поÑ\99аÑ\88Ñ\9aи ÐºÐ¾Ñ\80иÑ\81ниÑ\87ки Ð½Ð°Ð»Ð¾Ð³",
+       "action-history": "гледаÑ\82е Ð¸Ñ\81Ñ\82оÑ\80иÑ\98Ñ\83 ове странице",
+       "action-minoredit": "ознаÑ\87иÑ\82е Ð¾Ð²Ñ\83 Ð¸Ð·Ð¼ÐµÐ½Ñ\83 ÐºÐ°Ð¾ Ð¼Ð°Ñ\9aÑ\83",
+       "action-move": "пÑ\80емеÑ\81Ñ\82иÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83",
+       "action-move-subpages": "пÑ\80емеÑ\81Ñ\82иÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¸ Ñ\9aене Ð¿Ð¾Ð´Ñ\81Ñ\82Ñ\80аниÑ\86е",
+       "action-move-rootuserpages": "пÑ\80емеÑ\88Ñ\82аÑ\82е Ð¾Ñ\81новне ÐºÐ¾Ñ\80иÑ\81ниÑ\87ке Ñ\81Ñ\82Ñ\80аниÑ\86е",
+       "action-move-categorypages": "пÑ\80емеÑ\88Ñ\82аÑ\82е ÐºÐ°Ñ\82егоÑ\80иÑ\98е",
+       "action-movefile": "пÑ\80емеÑ\81Ñ\82иÑ\82е Ð¾Ð²Ñ\83 Ð´Ð°Ñ\82оÑ\82екÑ\83",
+       "action-upload": "отпремите ову датотеку",
+       "action-reupload": "замењујете ову постојећу датотеку",
+       "action-reupload-shared": "премостите ову датотеку са заједничког складишта",
+       "action-upload_by_url": "оÑ\82пÑ\80емиÑ\82е Ð¾Ð²Ñ\83 Ð´Ð°Ñ\82оÑ\82екÑ\83 Ð¿Ñ\83Ñ\82ем Ð£Ð Ð\9b-а",
+       "action-writeapi": "коÑ\80иÑ\81Ñ\82иÑ\82е API Ð·Ð° Ð¿Ð¸Ñ\81аÑ\9aе",
+       "action-delete": "обÑ\80иÑ\88еÑ\82е Ð¾Ð²Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83",
+       "action-deleterevision": "бÑ\80иÑ\88еÑ\82е Ð¸Ð·Ð¼ÐµÐ½Ðµ",
+       "action-deletelogentry": "бÑ\80иÑ\88еÑ\82е Ñ\83ноÑ\81е у евиденцијама",
+       "action-deletedhistory": "пÑ\80егледаÑ\82е Ð¾Ð±Ñ\80иÑ\81анÑ\83 Ð¸Ñ\81Ñ\82оÑ\80иÑ\98Ñ\83 странице",
+       "action-deletedtext": "прегледате обрисани текст измене",
+       "action-browsearchive": "претражујете обрисане странице",
+       "action-undelete": "вÑ\80аÑ\9bаÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86е",
+       "action-suppressrevision": "пÑ\80егледаÑ\82е Ð¸ Ð²Ñ\80аÑ\9bаÑ\82е Ñ\81акÑ\80ивене Ð¸Ð·Ð¼ÐµÐ½Ðµ",
+       "action-suppressionlog": "пÑ\80егледаÑ\82е Ð¾Ð²Ñ\83 Ð¿Ñ\80иваÑ\82нÑ\83 ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86ије",
+       "action-block": "блокиÑ\80аÑ\82е Ñ\83Ñ\80еÑ\92иваÑ\9aе Ð¾Ð²Ð¾Ð¼ ÐºÐ¾Ñ\80иÑ\81никÑ\83",
+       "action-protect": "пÑ\80омениÑ\82е Ð½Ð¸Ð²Ð¾Ðµ заштите ове странице",
+       "action-rollback": "бÑ\80зо Ð²Ñ\80аÑ\82иÑ\82е Ð¸Ð·Ð¼ÐµÐ½Ðµ Ð¿Ð¾Ñ\81ледÑ\9aег ÐºÐ¾Ñ\80иÑ\81ника ÐºÐ¾Ñ\98и Ñ\98е Ñ\83Ñ\80еÑ\92ивао одређену страницу",
+       "action-import": "Ñ\83возиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86е Ð¸Ð· Ð´Ñ\80Ñ\83гог викија",
+       "action-importupload": "Ñ\83возиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86е Ð¿Ñ\83Ñ\82ем Ð¾Ñ\82пÑ\80емаÑ\9aа датотеке",
+       "action-patrol": "ознаÑ\87иÑ\82е Ñ\82Ñ\83Ñ\92е Ð¸Ð·Ð¼ÐµÐ½Ðµ ÐºÐ°Ð¾ Ð¿Ð°Ñ\82Ñ\80олиÑ\80ане",
+       "action-autopatrol": "ознаÑ\87иÑ\82е Ñ\81опÑ\81Ñ\82вене Ð¸Ð·Ð¼ÐµÐ½Ðµ ÐºÐ°Ð¾ Ð¿Ð°Ñ\82Ñ\80олиÑ\80ане",
+       "action-unwatchedpages": "пÑ\80егледаÑ\82е Ñ\81пиÑ\81ак ненадгледаних страница",
+       "action-mergehistory": "Ñ\81паÑ\98аÑ\82е Ð¸Ñ\81Ñ\82оÑ\80иÑ\98Ñ\83 ове странице",
+       "action-userrights": "уређујете сва корисничка права",
+       "action-userrights-interwiki": "уређујете корисничка права корисника на другим викијима",
+       "action-siteadmin": "закÑ\99Ñ\83Ñ\87аваÑ\82е Ð¸Ð»Ð¸ Ð¾Ñ\82кÑ\99Ñ\83Ñ\87аваÑ\82е Ð±Ð°Ð·Ñ\83 података",
+       "action-sendemail": "Ñ\88аÑ\99еÑ\82е Ð¸Ð¼ÐµÑ\98лове",
+       "action-editmyoptions": "уређујете сопствена подешавања",
+       "action-editmywatchlist": "уређујете сопствени списак надгледања",
+       "action-viewmywatchlist": "прегледате сопствени списак надгледања",
+       "action-viewmyprivateinfo": "пÑ\80егледаÑ\82е Ñ\81опÑ\81Ñ\82вене Ð»Ð¸Ñ\87не Ð¸Ð½Ñ\84оÑ\80маÑ\86иÑ\98е",
+       "action-editmyprivateinfo": "уређујете сопствене приватне информације",
+       "action-editcontentmodel": "уређујете модел садржаја странице",
+       "action-managechangetags": "правите и (де)активирате ознаке",
+       "action-applychangetags": "додате ознаке уз сопствене промене",
+       "action-changetags": "додате и уклоните разне ознаке на појединачним изменама и уносима у евиденцијама",
+       "action-deletechangetags": "бÑ\80иÑ\88еÑ\82е ознаке из базе података",
+       "action-purge": "очистите привремену меморију ове странице",
        "nchanges": "$1 {{PLURAL:$1|измена|измене|измена}}",
        "ntimes": "$1×",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|измена од ваше последње посете}}",
        "rcfilters-liveupdates-button-title-off": "Прикажите нове измене уживо",
        "rcfilters-watchlist-markseen-button": "Означи све измене као погледане",
        "rcfilters-watchlist-edit-watchlist-button": "Промени списак надгледаних страница",
-       "rcfilters-watchlist-showupdated": "Ð\98змене Ñ\81Ñ\82Ñ\80аниÑ\86а ÐºÐ¾Ñ\98е Ð½Ð¸Ñ\81Ñ\82е Ð¿Ð¾Ñ\81еÑ\82или Ð¾Ð´ ÐºÐ°Ð´Ð° Ñ\98е Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¸Ð·Ð²Ñ\80Ñ\88ена Ñ\81Ñ\83 <strong>подебÑ\99ане</strong>, Ñ\81а испуњеним ознакама.",
+       "rcfilters-watchlist-showupdated": "Ð\9fÑ\80омене Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86ама ÐºÐ¾Ñ\98е Ð½Ð¸Ñ\81Ñ\82е Ð¿Ð¾Ñ\81еÑ\82или Ð¾Ð´ ÐºÐ°Ð´Ð° Ñ\98е Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¸Ð·Ð²Ñ\80Ñ\88ена Ñ\81Ñ\83 <strong>подебÑ\99ане</strong>, Ñ\81 испуњеним ознакама.",
        "rcfilters-preference-label": "Сакриј побољшану верзију скорашњих измена",
        "rcfilters-preference-help": "Поништава редизајн интерфејса из 2017. и све алатке додате тада и после.",
        "rcfilters-watchlist-preference-label": "Сакриј побољшану верзију списка надгледања",
        "rcfilters-filter-showlinkedto-option-label": "<strong>Странице ка којима воде везе са</strong> изабране странице",
        "rcfilters-target-page-placeholder": "Унесите име странице (или категорије)",
        "rcnotefrom": "Испод {{PLURAL:$5|је измена|су измене}} од <strong>$3, $4</strong> (до <strong>$1</strong> приказано).",
-       "rclistfromreset": "Ð\9eбнови одабир датума",
+       "rclistfromreset": "РеÑ\81еÑ\82Ñ\83Ñ\98 одабир датума",
        "rclistfrom": "Прикажи нове измене почев од $2, $3",
        "rcshowhideminor": "$1 мање измене",
        "rcshowhideminor-show": "Прикажи",
        "php-uploaddisabledtext": "Отпремање датотека је онемогућено у PHP-у.\nПроверите подешавања file_uploads.",
        "uploadscripted": "Датотека садржи HTML или скриптни код који може бити погрешно протумачен од стране прегледача.",
        "upload-scripted-pi-callback": "Датотека која садржи инструкције за обраду XML стилског облика се не може отпремити.",
-       "upload-scripted-dtd": "Ð\9dиÑ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе Ð¾Ñ\82пÑ\80емаÑ\9aе SVG Ð´Ð°Ñ\82оÑ\82ека које садрже нестандардну DTD декларацију.",
+       "upload-scripted-dtd": "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð¾Ñ\82пÑ\80емим SVG Ð´Ð°Ñ\82оÑ\82еке које садрже нестандардну DTD декларацију.",
        "uploaded-script-svg": "Пронађен скриптни елеменат „$1“ у постављеној SVG датотеци.",
        "uploaded-hostile-svg": "Пронађен небезбедан CSS у стилском елементу постављене SVG датотеке.",
        "uploaded-event-handler-on-svg": "Није дозвољено постављање атрибута који контролишу догађаје <code>$1=\"$2\"</code> у SVG датотекама.",
        "uploaded-href-unsafe-target-svg": "Пронађен href са несигурним подацима: URI одредиште <code>&lt;$1 $2=\"$3\"&gt;</code> у постављеној SVG датотеци.",
        "uploaded-animate-svg": "Пронађена „animate“ ознака која можда мења href користећи се „from“ атрибутом <code>&lt;$1 $2=\"$3\"&gt;</code> у постављеној SVG датотеци.",
        "uploadscriptednamespace": "Ова SVG датотека садржи погрешан именски простор „<nowiki>$1</nowiki>“",
-       "uploadinvalidxml": "Ð\9dиÑ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе Ñ\80аÑ\88Ñ\87ланиÑ\82и XML Ð¾Ñ\82пÑ\80емÑ\99ене Ð´Ð°Ñ\82оÑ\82еке.",
+       "uploadinvalidxml": "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ñ\80аÑ\88Ñ\87ланим XML Ñ\83 Ð¾Ñ\82пÑ\80емÑ\99еноÑ\98 Ð´Ð°Ñ\82оÑ\82еÑ\86и.",
        "uploadvirus": "Датотека садржи вирус!\nДетаљи: $1",
        "uploadjava": "Датотека је формата ZIP који садржи јава .class елемент.\nСлање јава датотека није дозвољено јер оне могу изазвати заобилажење сигурносних ограничења.",
        "upload-source": "Изворна датотека",
        "speciallogtitlelabel": "Циљ (наслов или {{ns:user}}:корисничко име):",
        "log": "Евиденције",
        "logeventslist-submit": "Прикажи",
-       "logeventslist-more-filters": "Ð\9fÑ\80икажи Ð´Ð¾Ð´Ð°Ñ\82не ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86иÑ\98е:",
+       "logeventslist-more-filters": "Ð\9fÑ\80иказ Ð´Ð¾Ð´Ð°Ñ\82ниÑ\85 Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÐ°:",
        "logeventslist-patrol-log": "Евиденција патролирања",
        "logeventslist-tag-log": "Евиденција ознака",
        "all-logs-page": "Све јавне евиденције",
        "watchlist": "Списак надгледања",
        "mywatchlist": "Списак надгледања",
        "watchlistfor2": "За $1 $2",
-       "nowatchlist": "Ð\92аÑ\88 Ñ\81пиÑ\81ак Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа Ñ\98е Ð¿Ñ\80азан.",
+       "nowatchlist": "Ð\9dемаÑ\82е Ð½Ð¸Ñ\88Ñ\82а Ð½Ð° Ñ\81вом Ñ\81пиÑ\81кÑ\83 Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа.",
        "watchlistanontext": "Морате бити пријављени да бисте гледали и уређивали ставке на вашем списку надгледања.",
        "watchnologin": "Нисте пријављени",
        "addwatch": "Додај на списак надгледања",
        "unwatchthispage": "Прекини надгледање",
        "notanarticle": "Није страница са садржајем",
        "notvisiblerev": "Измена је обрисана",
-       "watchlist-details": "Ð\9dа Ð\92аÑ\88ем Ñ\81пиÑ\81кÑ\83 Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа {{PLURAL:$1|Ñ\98е $1 Ñ\81Ñ\82Ñ\80аниÑ\86а|Ñ\81Ñ\83 $1 Ñ\81Ñ\82Ñ\80аниÑ\86е|Ñ\98е $1 Ñ\81Ñ\82Ñ\80аниÑ\86а}} (плус странице за разговор).",
+       "watchlist-details": "Ð\98маÑ\82е {{PLURAL:$1|$1 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83|$1 Ñ\81Ñ\82Ñ\80аниÑ\86е|$1 Ñ\81Ñ\82Ñ\80аниÑ\86а}} Ð½Ð° Ñ\81вом Ñ\81пиÑ\81кÑ\83 Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа (плус странице за разговор).",
        "wlheader-enotif": "Обавештење имејлом је омогућено.",
        "wlheader-showupdated": "Странице које су измењене откад сте их последњи пут посетили су <strong>подебљане</strong>.",
        "wlnote": "Испод {{PLURAL:$1|је последња измена|су последње <strong>$1</strong> измене|је последњих <strong>$1</strong> измена}} у {{PLURAL:$2|претходном сату|претходна <strong>$2</strong> сата|претходних <strong>$2</strong> сати}}, закључно са $3, $4.",
        "rollbacklinkcount-morethan": "врати више од $1 {{PLURAL:$1|измене|измене|измена}}",
        "rollbackfailed": "Неуспешно враћање",
        "rollback-missingparam": "Недостаје потребан параметар на захтеву.",
-       "rollback-missingrevision": "Ð\9dиÑ\98е Ð¼Ð¾Ð³Ñ\83Ñ\9bе Ñ\83Ñ\87иÑ\82аÑ\82и податке о измени.",
+       "rollback-missingrevision": "Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ñ\83Ñ\87иÑ\82ам податке о измени.",
        "cantrollback": "Не могу да вратим измену.\nПоследњи аутор је уједно и једини.",
        "alreadyrolled": "Враћање последње измене странице [[:$1]] од стране {{GENDER:$2|корисника|кориснице|корисника}} [[User:$2|$2]] ([[User talk:$2|разговор]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) није успело; неко други је у међувремену изменио или вратио страницу.\n\nПоследњу измену је {{GENDER:$3|направио|направила|направио}} [[User:$3|$3]] ([[User talk:$3|разговор]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Опис измене: <em>$1</em>.",
        "restriction-level-sysop": "потпуно заштићено",
        "restriction-level-autoconfirmed": "полузаштићено",
        "restriction-level-all": "сви нивои",
-       "undelete": "Ð\9fÑ\80иказ обрисаних страница",
+       "undelete": "Ð\9fÑ\80еглед обрисаних страница",
        "undeletepage": "Преглед и враћање обрисаних страница",
        "undeletepagetitle": "'''Следећи садржај се састоји од обрисаних измена странице [[:$1|$1]]'''.",
        "viewdeletedpage": "Приказ обрисаних страница",
        "undeletecomment": "Разлог:",
        "cannotundelete": "Враћање једне или свих није успело:\n$1",
        "undeletedpage": "<strong>Страница $1 је враћена</strong>\n\nПогледајте [[Special:Log/delete|евиденцију брисања]] за записе о скорашњим брисањима и враћањима.",
-       "undelete-header": "Ð\9fогледаÑ\98Ñ\82е [[Special:Log/delete|иÑ\81Ñ\82оÑ\80иÑ\98аÑ\82 брисања]] за недавно обрисане странице.",
+       "undelete-header": "Ð\9fогледаÑ\98Ñ\82е [[Special:Log/delete|евиденÑ\86иÑ\98Ñ\83 брисања]] за недавно обрисане странице.",
        "undelete-search-title": "Претрага обрисаних страница",
        "undelete-search-box": "Претражи обрисане странице",
        "undelete-search-prefix": "Прикажи странице које почињу са:",
        "month": "од месеца (и раније):",
        "year": "од године (и раније):",
        "date": "Од датума (и раније):",
-       "sp-contributions-newbies": "Ð\9fÑ\80икажи Ñ\81амо Ð´Ð¾Ð¿Ñ\80иноÑ\81е Ð½Ð¾Ð²Ð¸Ñ\85 ÐºÐ¾Ñ\80иÑ\81ника",
+       "sp-contributions-newbies": "Ð\9fÑ\80икажи Ñ\81амо Ð´Ð¾Ð¿Ñ\80иноÑ\81е Ð½Ð¾Ð²Ð¸Ñ\85 Ð½Ð°Ð»Ð¾Ð³а",
        "sp-contributions-newbies-sub": "За нове кориснике",
        "sp-contributions-newbies-title": "Доприноси нових корисника",
        "sp-contributions-blocklog": "евиденција блокирања",
        "sp-contributions-talk": "разговор",
        "sp-contributions-userrights": "управљање правима {{GENDER:$1|корисника|кориснице}}",
        "sp-contributions-blocked-notice": "Овај корисник је тренутно блокиран. \nПоследњи унос у евиденцији блокирања је наведен испод као референца:",
-       "sp-contributions-blocked-notice-anon": "Ова IP адреса је тренутно блокирана.\nПоследњи унос у евиденцији блокирања је наведен испод као референца:",
+       "sp-contributions-blocked-notice-anon": "Ова ИП адреса је тренутно блокирана.\nПоследњи унос у евиденцији блокирања је наведен испод као референца:",
        "sp-contributions-search": "Претрага доприноса",
        "sp-contributions-username": "ИП адреса или корисничко име:",
        "sp-contributions-toponly": "Само најновије измене",
        "block": "Блокирање корисника",
        "unblock": "Деблокирање корисника",
        "blockip": "Блокирање {{GENDER:$1|корисника|кориснице}}",
-       "blockiptext": "Користите доњи образац да бисте забранили приступ за писање с одређене IP адресе или корисничког имена.\nОво би требало да вршите само ради спречавања вандализма, у складу са [[{{MediaWiki:Policy-url}}|смерницама]].\nИзаберите конкретан разлог испод (пример: навођење конкретних страница које су вандализоване). Можете блокирати опсеге IP адреса помоћу [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] синтаксе, највећи дозвољени опсег за IPv4 је /$1 односно /$2 за IPv6.",
-       "ipaddressorusername": "IP адреса или корисничко име:",
+       "blockiptext": "Користите доњи образац да бисте забранили приступ за писање с одређене ИП адресе или корисничког имена.\nОво би требало да вршите само ради спречавања вандализма, у складу са [[{{MediaWiki:Policy-url}}|смерницама]].\nИзаберите конкретан разлог испод (пример: навођење конкретних страница које су вандализоване). Можете блокирати опсеге ИП адреса помоћу [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing ЦИДР] синтаксе, највећи дозвољени опсег за ИПв4 је /$1 односно /$2 за Ипв6.",
+       "ipaddressorusername": "ИП адреса или корисничко име:",
        "ipbexpiry": "Истиче:",
        "ipbreason": "Разлог:",
        "ipbreason-dropdown": "*Најчешћи разлози за блокирање\n** Уношење лажних информација\n** Уклањање садржаја са страница\n** Постављање веза до спољашњих сајтова\n** Уношење бесмислица у странице\n** Непристојно понашање\n** Употреба више налога\n** Неприхватљиво корисничко име",
        "ipb-disableusertalk": "Онемогући кориснику да уређује своју страницу за разговор",
        "ipb-change-block": "Поновно блокирај корисника с овим подешавањима",
        "ipb-confirm": "Потврди блокирање",
-       "badipaddress": "Ð\9dеиÑ\81пÑ\80авна IP адреса",
+       "badipaddress": "Ð\9dеваÑ\99ана Ð\98Ð\9f адреса",
        "blockipsuccesssub": "Блокирање је успело",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] је {{GENDER:$1|блокиран|блокирана|блокиран}}.<br />\nБлокирања можете да погледате [[Special:BlockList|овде]].",
        "ipb-blockingself": "Овом радњом ћете блокирати себе! Јесте ли сигурни да то желите?",
        "emailblock": "имејл је онемогућен",
        "blocklist-nousertalk": "забрањено уређивање сопствене странице за разговор",
        "ipblocklist-empty": "Списак блокирања је празан.",
-       "ipblocklist-no-results": "Тражена IP адреса или корисничко име није блокирано.",
+       "ipblocklist-no-results": "Тражена ИП адреса или корисничко име није блокирано.",
        "blocklink": "блокирај",
        "unblocklink": "деблокирај",
        "change-blocklink": "промени блокаду",
        "ipb-otherblocks-header": "{{PLURAL:$1|Друге блокаде}}",
        "unblock-hideuser": "Не можете деблокирати овог корисника јер је његово корисничко име сакривено.",
        "ipb_cant_unblock": "Грешка: блокада $1 не постоји. Можда је корисник деблокиран.",
-       "ipb_blocked_as_range": "Грешка: IP адреса $1 није директно блокирана и не може да се деблокира.\nОна је блокирана као део блокаде $2, која може бити деблокирана.",
-       "ip_range_invalid": "Ð\9dеиÑ\81пÑ\80аван Ñ\80аÑ\81пон IP Ð°Ð´Ñ\80еÑ\81а.",
-       "ip_range_toolarge": "Ð\9eпÑ\81ежна Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aа Ð²ÐµÑ\9bа Ð¾Ð´ /$1 Ð½Ð¸Ñ\81Ñ\83 Ð´Ð¾Ð·Ð²Ð¾Ñ\99ена.",
-       "ip_range_toolow": "IP-опсези нису дозвољени.",
+       "ipb_blocked_as_range": "Грешка: ИП адреса $1 није директно блокирана и не може да се деблокира.\nОна је блокирана као део блокаде $2, која може да се деблокира.",
+       "ip_range_invalid": "Ð\9dевалидан Ð¾Ð¿Ñ\81ег Ð\98Ð\9f Ð°Ð´Ñ\80еÑ\81е.",
+       "ip_range_toolarge": "Ð\9eпÑ\81ези Ð±Ð»Ð¾ÐºÐ¸Ñ\80аÑ\9aа Ð²ÐµÑ\9bи Ð¾Ð´ /$1 Ð½Ð¸Ñ\81Ñ\83 Ð´Ð¾Ð·Ð²Ð¾Ñ\99ени.",
+       "ip_range_toolow": "ИП опсези нису дозвољени.",
        "proxyblocker": "Блокер посредника",
        "proxyblockreason": "Ваша ИП адреса је блокирана јер представља отворени посредник.\nОбратите се вашем добављачу интернет услуга или техничку подршку и обавестите их о овом озбиљном безбедносном проблему.",
        "sorbs": "DNSBL",
        "movenologintext": "Морате да будете регистровани и [[Special:UserLogin|пријављени]] да бисте премештали странице.",
        "movenotallowed": "Немате дозволу да премештате странице.",
        "movenotallowedfile": "Немате дозволу да премештате датотеке.",
-       "cant-move-user-page": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¿Ñ\80емеÑ\88Ñ\82аÑ\9aе Ð¾Ñ\81новниÑ\85 ÐºÐ¾Ñ\80иÑ\81ниÑ\87киÑ\85 Ñ\81Ñ\82Ñ\80аниÑ\86а (осим подстраница).",
-       "cant-move-to-user-page": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð¿Ñ\80емеÑ\88Ñ\82аÑ\9aе Ñ\81Ñ\82Ñ\80аниÑ\86е Ð½Ð° Ð²Ð°Ñ\88Ñ\83 корисничку страницу (осим на корисничку подстраницу).",
+       "cant-move-user-page": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ð¿Ñ\80емеÑ\88Ñ\82аÑ\82е ÐºÐ¾Ñ\80иÑ\81ниÑ\87ке Ñ\81Ñ\82Ñ\80аниÑ\86е (осим подстраница).",
+       "cant-move-to-user-page": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ð¿Ñ\80емеÑ\81Ñ\82иÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð½Ð° корисничку страницу (осим на корисничку подстраницу).",
        "cant-move-category-page": "Немате дозволу да премештате странице категорија.",
        "cant-move-to-category-page": "Немате дозволу да преместите страницу на страницу категорије.",
        "cant-move-subpages": "Немате дозволу да премештате подстранице.",
        "importlogpagetext": "Административни увози страница с историјама измена с других викија.",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|измена увезена|измене увезене|измена увезено}}",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|измена увезена|измене увезене|измена увезено}} из $2",
-       "javascripttest": "Ð\88аваÑ\81кÑ\80ипÑ\82 Ñ\82еÑ\81Ñ\82",
+       "javascripttest": "ТеÑ\81Ñ\82иÑ\80аÑ\9aе Ñ\98аваÑ\81кÑ\82ипÑ\82а",
        "javascripttest-pagetext-unknownaction": "Непозната радња „$1“.",
        "javascripttest-qunit-intro": "Погледајте [$1 документацију за тестирање] на mediawiki.org.",
        "tooltip-pt-userpage": "{{GENDER:|Ваша}} корисничка страница",
        "newimages-summary": "Ова посебна страница приказује последње отпремљене датотеке.",
        "newimages-legend": "Филтер",
        "newimages-label": "Назив датотеке (или њен део):",
-       "newimages-user": "IP адреса или корисничко име",
-       "newimages-newbies": "Ð\9fÑ\80икажи Ñ\81амо Ð´Ð¾Ð¿Ñ\80иноÑ\81е Ð½Ð¾Ð²Ð¸Ñ\85 ÐºÐ¾Ñ\80иÑ\81ника",
+       "newimages-user": "ИП адреса или корисничко име",
+       "newimages-newbies": "Ð\9fÑ\80икажи Ñ\81амо Ð´Ð¾Ð¿Ñ\80иноÑ\81е Ð½Ð¾Ð²Ð¸Ñ\85 Ð½Ð°Ð»Ð¾Ð³а",
        "newimages-showbots": "Прикажи датотеке које су послали ботови",
        "newimages-hidepatrolled": "Сакриј патролирана отпремања",
        "newimages-mediatype": "Врста датотеке:",
        "version-libraries-license": "Лиценца",
        "version-libraries-description": "Опис",
        "version-libraries-authors": "Аутори",
-       "redirect": "Ð\9fÑ\80еÑ\83Ñ\81меÑ\80еÑ\9aе Ð½Ð° Ð´Ð°Ñ\82оÑ\82екÑ\83, ÐºÐ¾Ñ\80иÑ\81ника, Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð¸Ð·Ð¼ÐµÐ½Ñ\83 Ð¸Ð»Ð¸ ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86иÑ\98Ñ\83 (ID)",
-       "redirect-summary": "Ð\9eва Ð¿Ð¾Ñ\81ебна Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¿Ñ\80еÑ\83Ñ\81меÑ\80ава Ð´Ð¾ Ð´Ð°Ñ\82оÑ\82еке (Ñ\81 Ð´Ð°Ñ\82им Ð¸Ð¼ÐµÐ½Ð¾Ð¼ Ð´Ð°Ñ\82оÑ\82еке), Ñ\81Ñ\82Ñ\80аниÑ\86е (Ñ\81 Ð´Ð°Ñ\82им ID-ом Ð¸Ð·Ð¼ÐµÐ½Ðµ Ð¸Ð»Ð¸ ID-ом Ñ\81Ñ\82Ñ\80аниÑ\86е), ÐºÐ¾Ñ\80иÑ\81ниÑ\87ке Ñ\81Ñ\82Ñ\80аниÑ\86е (Ñ\81 Ð´Ð°Ñ\82им Ð½Ñ\83меÑ\80иÑ\87ким ÐºÐ¾Ñ\80иÑ\81ниÑ\87ким ID-ом), Ð¸Ð»Ð¸ Ñ\83ноÑ\81а Ñ\83 ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86иÑ\98и (Ñ\81 Ð´Ð°Ñ\82им ID-ом ÐµÐ²Ð¸Ð´ÐµÐ½Ñ\86иÑ\98е). Употреба: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
+       "redirect": "Ð\9fÑ\80еÑ\83Ñ\81меÑ\80еÑ\9aе Ð½Ð° Ð´Ð°Ñ\82оÑ\82екÑ\83, ÐºÐ¾Ñ\80иÑ\81ника, Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð¸Ð·Ð¼ÐµÐ½Ñ\83 Ð¸Ð»Ð¸ Ð´Ð½ÐµÐ²Ð½Ð¸Ðº (ID)",
+       "redirect-summary": "Ð\9eва Ð¿Ð¾Ñ\81ебна Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¿Ñ\80еÑ\83Ñ\81меÑ\80ава Ð´Ð¾ Ð´Ð°Ñ\82оÑ\82еке (Ñ\81 Ð´Ð°Ñ\82им Ð¸Ð¼ÐµÐ½Ð¾Ð¼ Ð´Ð°Ñ\82оÑ\82еке), Ñ\81Ñ\82Ñ\80аниÑ\86е (Ñ\81 Ð´Ð°Ñ\82им ID-ом Ð¸Ð·Ð¼ÐµÐ½Ðµ Ð¸Ð»Ð¸ ID-ом Ñ\81Ñ\82Ñ\80аниÑ\86е), ÐºÐ¾Ñ\80иÑ\81ниÑ\87ке Ñ\81Ñ\82Ñ\80аниÑ\86е (Ñ\81 Ð´Ð°Ñ\82им Ð½Ñ\83меÑ\80иÑ\87ким ÐºÐ¾Ñ\80иÑ\81ниÑ\87ким ID-ом), Ð¸Ð»Ð¸ Ñ\83ноÑ\81а Ñ\83 Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÑ\83 (Ñ\81 Ð´Ð°Ñ\82им Ð´Ð½ÐµÐ²Ð½Ð¸Ñ\87ким ID-ом). Употреба: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Иди",
        "redirect-lookup": "Тип вредности:",
        "redirect-value": "Вредност:",
        "tags-deactivate-reason": "Разлог:",
        "tags-deactivate-not-allowed": "Није могуће деактивирати ознаку „$1“.",
        "tags-deactivate-submit": "Декативирај",
-       "tags-update-no-permission": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð·Ð° Ð´Ð¾Ð´Ð°Ð²Ð°Ñ\9aе Ð¸Ð»Ð¸ Ñ\83клаÑ\9aаÑ\9aе Ð¾Ð·Ð½Ð°ÐºÐµ Ð¸Ð·мена из појединачних измена или уноса у евиденцији.",
+       "tags-update-no-permission": "Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ñ\83 Ð´Ð° Ð´Ð¾Ð´Ð°Ñ\82е Ð¸Ð»Ð¸ Ñ\83клониÑ\82е Ð¾Ð·Ð½Ð°ÐºÐµ Ð¿Ñ\80омена из појединачних измена или уноса у евиденцији.",
        "tags-update-blocked": "Не можете додавати нити уклањати ознаке измена док {{GENDER:$1|сте}} блокирани.",
        "tags-update-add-not-allowed-one": "Није дозвољено да се ознака „$1” додаје ручно.",
        "tags-edit-title": "Уреди ознаке",
        "logentry-newusers-newusers": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
        "logentry-newusers-create": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
        "logentry-newusers-create2": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог $3",
-       "logentry-newusers-byemail": "$1 Ñ\98е {{GENDER:$2|напÑ\80авио|напÑ\80авила}} кориснички налог $3 и лозинка је послата на имејл",
+       "logentry-newusers-byemail": "$1 Ñ\98е {{GENDER:$2|оÑ\82воÑ\80ио|оÑ\82воÑ\80ила}} кориснички налог $3 и лозинка је послата на имејл",
        "logentry-newusers-autocreate": "Кориснички налог $1 је аутоматски {{GENDER:$2|отворен}}",
        "logentry-protect-move_prot": "$1 је {{GENDER:$2|преместио|преместила}} подешавања заштите са $4 на $3",
        "logentry-protect-unprotect": "$1 je {{GENDER:$2|скинуо|скинула}} заштиту са странице $3",
        "pagelang-unchanged-language": "Страница $1  је већ постављена на језик $2.",
        "pagelang-db-failed": "База података није успела променити језик странице.",
        "right-pagelang": "мењање језика странице",
-       "action-pagelang": "промену језика странице",
+       "action-pagelang": "промените језик странице",
        "log-name-pagelang": "Евиденција промене језика",
        "log-description-pagelang": "Ово је евиденција промена у језицима страница.",
        "logentry-pagelang-pagelang": "$1 је {{GENDER:$2|променио|променила}} језик странице $3 из $4 у $5.",
        "log-action-filter-contentmodel": "Тип промене модела садржаја:",
        "log-action-filter-delete": "Тип брисања:",
        "log-action-filter-import": "Тип увоза:",
-       "log-action-filter-managetags": "Тип Ñ\83Ñ\80еÑ\92иваÑ\9aа Ð¾Ð·Ð½Ð°Ðºа:",
+       "log-action-filter-managetags": "Тип Ñ\80адÑ\9aе Ñ\83пÑ\80авÑ\99аÑ\9aа Ð¾Ð·Ð½Ð°ÐºÐ°Ð¼а:",
        "log-action-filter-move": "Тип премештања:",
        "log-action-filter-newusers": "Тип новог налога:",
        "log-action-filter-patrol": "Тип патролирања:",
-       "log-action-filter-protect": "Тип закључавања:",
+       "log-action-filter-protect": "Тип заштите:",
        "log-action-filter-rights": "Тип промене корисничких права:",
        "log-action-filter-suppress": "Врста скривања:",
        "log-action-filter-upload": "Тип отпремања:",
        "log-action-filter-suppress-reblock": "Скривање корисника поновним блокирањем",
        "log-action-filter-upload-upload": "ново отпремање",
        "log-action-filter-upload-overwrite": "промена постојећег",
-       "authmanager-authn-not-in-progress": "Ð\9fоÑ\82вÑ\80да Ð¸Ð´ÐµÐ½Ñ\82иÑ\82еÑ\82а није у току или је дошло до губитка података о сесији. Почните испочетка.",
+       "authmanager-authn-not-in-progress": "Ð\90Ñ\83Ñ\82енÑ\82иÑ\84икаÑ\86иÑ\98а није у току или је дошло до губитка података о сесији. Почните испочетка.",
        "authmanager-authn-no-primary": "Не могу да проверим пружене акредитиве.",
        "authmanager-authn-no-local-user": "Пружени акредитиви нису повезани ни са једним корисником на овом викију.",
        "authmanager-authn-no-local-user-link": "Пружени су исправни акредитиви, али нису повезани ни с једним корисником на овом викију. Пријавите се на неки други начин или направите нови кориснички налог, што ће Вам дати могућност да повежете претходне акредитиве на нови налог.",
        "authmanager-email-help": "Имејл адреса",
        "authmanager-realname-label": "Право име",
        "authmanager-realname-help": "Право име корисника",
-       "authmanager-provider-password": "Ð\9fоÑ\82вÑ\80да Ð¸Ð´ÐµÐ½Ñ\82иÑ\82еÑ\82а лозинком",
-       "authmanager-provider-password-domain": "Ð\9fоÑ\82вÑ\80да Ð¸Ð´ÐµÐ½Ñ\82иÑ\82еÑ\82а лозинком и доменом",
+       "authmanager-provider-password": "Ð\90Ñ\83Ñ\82енÑ\82иÑ\84икаÑ\86иÑ\98а лозинком",
+       "authmanager-provider-password-domain": "Ð\90Ñ\83Ñ\82енÑ\82иÑ\84икаÑ\86иÑ\98а лозинком и доменом",
        "authmanager-provider-temporarypassword": "Привремена лозинка",
        "authprovider-confirmlink-option": "$1 ($2)",
        "authprovider-confirmlink-request-label": "Рачуни који се требају повезати",
        "authprovider-confirmlink-ok-help": "Наставите након приказивања порука за неуспешно повезивање.",
        "authprovider-resetpass-skip-label": "Прескочи",
        "authprovider-resetpass-skip-help": "Прескочите ресетовање лозинке.",
-       "authform-nosession-login": "Ð\9fоÑ\82вÑ\80да Ð¸Ð´ÐµÐ½Ñ\82иÑ\82еÑ\82а је успела, али Ваш прегледач не може да „запамти” да сте пријављени.\n\n$1",
+       "authform-nosession-login": "Ð\90Ñ\83Ñ\82енÑ\82иÑ\84икаÑ\86иÑ\98а је успела, али Ваш прегледач не може да „запамти” да сте пријављени.\n\n$1",
        "authform-nosession-signup": "Налог је направљен, али Ваш прегледач не може да „запамти” да сте пријављени.\n\n$1",
        "authform-newtoken": "Недостаје жетон. $1",
        "authform-notoken": "Недостаје жетон",
index f92970e..bcb7cea 100644 (file)
        "savechanges": "மாற்றங்களைச் சேமி",
        "publishpage": "பக்கத்தைப் பதிப்பிடுக",
        "publishchanges": "மாற்றங்களைப் பதிப்பிடுக",
+       "savearticle-start": "பக்கத்தைச் சேமி..",
+       "savechanges-start": "மாற்றங்களைச் சேமிக்கவும்...",
+       "publishpage-start": "மாற்றங்களைப் பதிப்பிடுக…",
        "publishchanges-start": "மாற்றங்களைப் பதிப்பிடுக…",
        "preview": "முன்தோற்றம்",
        "showpreview": "முன்தோற்றம் காட்டு",
        "diff-multi-manyusers": "({{PLURAL:$2|பயனரால்|$2 பயனர்களால்}} செய்யப்பட்ட {{PLURAL:$1|ஒரு இடைப்பட்ட திருத்தம்|$1 இடைப்பட்ட திருத்தங்கள்}}  காட்டப்படவில்லை.)",
        "difference-missing-revision": "இந்த வேறுபாட்டின் ($1) {{PLURAL:$2|ஒரு திருத்தம்|$2 திருத்தங்கள்}} {{PLURAL:$2|கண்டறியப்பட்டது|கண்டறியப்பட்டன}}.\n\nஇது வழக்கமாக அழிக்கப்பட்ட பக்கத்தின் ஒரு காலவதியான வேறுபாட்டு இணைப்பு காரணமாக ஏற்படுகிறது.\nமேலும் விவரங்களை [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} நீக்கல் பதிவில்] காணலாம்.",
        "searchresults": "தேடல் முடிவுகள்",
+       "search-filter-title-prefix-reset": "அணைத்துப் பக்கங்களில் தேடவும்",
        "searchresults-title": "\"$1\" இற்கான தேடல் முடிவுகள்",
        "titlematches": "கட்டுரைத் தலைப்புப் பொருந்துகிறது",
        "textmatches": "கட்டுரை உரை பொருந்துகிறது",
        "search-file-match": "(கோப்பு உள்ளடக்கத்துடன் பொருந்துகிறது)",
        "search-suggest": "நீங்கள் கருதியது இதையா: $1",
        "search-rewritten": "$1-இற்கான முடிவுகள் காட்டப்படுகின்றன. $2-இற்கு பதிலாக தேடப்படுகிறது.",
-       "search-interwiki-caption": "உறவுத் திட்டங்கள்",
+       "search-interwiki-caption": "à®\89றவà¯\81தà¯\8d à®¤à®¿à®\9fà¯\8dà®\9fà®\99à¯\8dà®\95ளிலà¯\8d à®\87à®°à¯\81நà¯\8dதà¯\81 à®®à¯\81à®\9fிவà¯\81à®\95ளà¯\8d",
        "search-interwiki-default": "$1 தளத்திலிருந்து முடிவுகள்:",
        "search-interwiki-more": "(மேலும்)",
        "search-interwiki-more-results": "மேலும் முடிவுகள்",
index 5a70fa6..e41b212 100644 (file)
        "minoredit": "Ин вироиши хурд аст",
        "watchthis": "Назар кардани ин саҳифа",
        "savearticle": "Саҳифа захира шавад",
+       "savechanges": "Захира кардан",
        "preview": "Пешнамоиш",
-       "showpreview": "Пеш намоиш",
+       "showpreview": "Пешнамоиш",
        "showdiff": "Намоиши тағйирот",
        "anoneditwarning": "'''Огоҳӣ:''' Шумо вуруд накардаед. Агар ягон вироиши кунед нишонаи IP Шумо ба ҳама намоён хоҳад буд. Агар Шумо <strong>[$1 ворид шавед]</strong> ё <strong>[$2 ҳисоберо эҷод кунед]</strong>, вироишоти Шумо ба номи корбариатон ҳамроҳ бо дигар бартариҳо муталиқ хоҳад шуд.",
        "anonpreviewwarning": "<em>Шумо вориди нашудаед. Захиракунӣ IP нишонаи шуморо дар таърихи вироиши ин саҳифа захира хоҳад кард.</em>",
index da75117..381ab36 100644 (file)
        "print": "Yazdır",
        "view": "Görüntüle",
        "view-foreign": "$1 üzerinde gör",
-       "edit": "Düzenle",
+       "edit": "Değiştir",
        "edit-local": "Yerel açıklamayı düzenle",
        "create": "Oluştur",
        "create-local": "Yerel açıklama ekle",
        "currentevents-url": "Project:Güncel olaylar",
        "disclaimers": "Sorumluluk reddi",
        "disclaimerpage": "Project:Genel sorumluluk reddi",
-       "edithelp": "Düzenleme yardımı",
+       "edithelp": "Değişiklik yardımı",
        "helppage-top-gethelp": "Yardım",
        "mainpage": "Anasayfa",
        "mainpage-description": "Anasayfa",
        "uploadwarning": "Yükleme uyarısı",
        "uploadwarning-text": "Lütfen aşağıdaki dosya açıklamasını değiştirin ve tekrar deneyin.",
        "savefile": "Dosyayı kaydet",
-       "uploaddisabled": "Geçici olarak şu anda herhangi bir dosya yüklenmez. Biraz sonra bir daha deneyiniz.",
+       "uploaddisabled": "Geçici olarak şu anda bu wiki'ye herhangi bir dosya yüklenemez. Lütfen daha sonra bir daha deneyiniz.",
        "copyuploaddisabled": "URL ile yükleme devre dışı.",
        "uploaddisabledtext": "Dosya yüklemeleri devredışı bırakılmıştır.",
        "php-uploaddisabledtext": "PHP dosyası yüklemeleri devre dışıdır. Lütfen file_uploads ayarını kontrol edin.",
index ea93a9f..91d4412 100644 (file)
        "password-login-forbidden": "Бу кулланучы исемен һәм серсүзне куллану тыелган",
        "mailmypassword": "Серсүзне бетерү",
        "passwordremindertitle": "{{SITENAME}} кулланучысына вакытлы серсүз тапшыру",
-       "passwordremindertext": "Кемдер (бәлки, сездер, IP адресы: $1)  {{grammar:genitive|{{SITENAME}}}} ($4) өчен яңа серсүз соратты. $2 кулланучысы өчен яңа вакытлыча серсүз: $3. Әгәр бу сез булган булсагыз, системага керегез һәм яңа серсүз сайлагыз. Сезнең вакытлыча серсүз гамәлдә $5 {{PLURAL:$5|көн}} булачак.\n\nӘгәр сез серсүзне алмаштыруны сорамаган булсагыз яки, оныткан очракта, исегезгә төшергән булсагыз, бу хәбәргә игътибар бирмичә, иске серсүзегезне куллануны дәвам итегез.",
+       "passwordremindertext": "Кемдер ($1 IP адресылы)  {{grammar:genitive|{{SITENAME}}}} ($4) өчен яңа серсүз соратты. $2 кулланучысы өчен яңа вакытлыча серсүз: $3. Әгәр бу сез булган булсагыз, системага керегез һәм яңа серсүз сайлагыз. Сезнең вакытлыча серсүз гамәлдә $5 {{PLURAL:$5|көн}} булачак.\n\nӘгәр сез серсүзне алмаштыруны сорамаган булсагыз яки, оныткан очракта, исегезгә төшергән булсагыз, бу хәбәргә игътибар бирмичә, иске серсүзегезне куллануны дәвам итегез.",
        "noemail": "$1 исемле кулланучы өчен электрон почта адресы язылмаган.",
        "noemailcreate": "Сез дөрес e-mail адресы күрсәтергә тиеш",
        "passwordsent": "Яңа серсүз $1 исемле кулланучының электрон почта адресына җибәрелде.\n\nЗинһар, серсүзне алгач, системага яңадан керегез.",
        "subject-preview": "Башисемне алдан карау:",
        "blockedtitle": "Кулланучы тыелды",
        "blockedtext": "<strong>Сезнең хисап язмагыз яки IP адресыгыз тыелган.</strong>\n\nТыючы идарәче: $1.\nКүрсәтелгән сәбәп: <em>$2</em>.\n\n* Тыю башланган вакыт: $8\n* Тыю ахыры: $6\n* Тыелулар саны: $7\n\nСез $1 яки башка [[{{MediaWiki:Grouppage-sysop}}|идарәчегә]] тыю буенча сорауларыгызны җибәрә аласыз.\nИсегездә тотыгыз: әгәр сез теркәлмәгән һәм электрон почта адресыгызны [[Special:Preferences|көйләнмәләрдә]] дәлилләмәгән булсагыз, сез бирелгән «{{int:emailuser}}» мөмкинчелекне куллана алмаячаксыз. Шулай ук тыю вакытында сезнең хат җибәрү мөмкинлегегезне чикләгән булырга да мөмкиннәр.\nСезнең IP адресыгыз — $3, тыю таныклыгы — $5.\nЗинһар, хатларда бу мәгълүматны күрсәтергә онытмагыз.",
-       "autoblockedtext": "Сезнең IP адресыгыз, аның тыелган кулланучы тарафыннан кулланылуы сәбәпле, автомат рәвештә тыелды.\nУл кулланучыны тыючы идарәче: $1. Күрсәтелгән сәбәп:\n\n:''$2''\n\n* Тыю башланган вакыт: $8\n* Тыю ахыры: $6\n* Тыелулар саны: $7\n\nСез $1 яки башка [[{{MediaWiki:Grouppage-sysop}}|идарәчегә]] тыю буенча сорауларыгызны җибәрә аласыз.\nИсегездә тотыгыз: әгәр сез теркәлмәгән һәм электрон почта адресыгызны дәлилләмәгән булсагыз ([[Special:Preferences|дәлилләү өчен шәхси көйләүләр монда]]), идарәчегә хат җибәрә алмыйсыз. Шулай ук тыю вакытында сезнең хат җибәрү мөмкинлегегезне чикләгән булырга да мөмкиннәр.\nСезнең IP адресы — $3, тыю идентификаторы — #$5.\nХатларда бу мәгълүматны күрсәтергә онытмагыз.",
+       "autoblockedtext": "Сезнең IP адресыгыз, аның тыелган кулланучы тарафыннан кулланылуы сәбәпле, автомат рәвештә тыелды.\nУл кулланучыны тыючы идарәче: $1. Күрсәтелгән сәбәп:\n\n:<em>$2</em>\n\n* Тыю башланган вакыт: $8\n* Тыю ахыры: $6\n* Тыелулар саны: $7\n\nСез $1 яки башка [[{{MediaWiki:Grouppage-sysop}}|идарәчегә]] тыю буенча сорауларыгызны җибәрә аласыз.\n\nИсегездә тотыгыз: әгәр сез [[Special:Preferences|көйләнмәләрдә]] электрон почта адресыгызны  күрсәтмәгән яки дәлилләмәгән булсагыз, шулай ук  сез блокта булсагыз хат җибәреп булмаячак һәм  сез \"{{int:emailuser}}\" мөмкинлеген куллана алмаячаксыз.\n\nСезнең IP адрес — $3, тыю идентификаторы — #$5.\nХатларда бу мәгълүматны күрсәтергә онытмагыз.",
        "blockednoreason": "сәбәп күрсәтелмәгән",
        "whitelistedittext": "Сез битләрне үзгәртү өчен $1 тиеш.",
        "confirmedittext": "Битләрне үзгәртү алдыннан сез электрон почта адресыгызны дәлилләргә тиеш.\nСез моны [[Special:Preferences|көйләүләр битендә]] башкара аласыз.",
        "userjspreview": "'''Бу бары тик JavaScript файлын алдан карау гына, ул әле сакланмаган!'''",
        "sitecsspreview": "'''онытмагыз, бу бары тик CSS-файлны алдан карау гына.'''\n'''Ул әле сакланмаган!'''",
        "sitejspreview": "'''Бу бары тик JavaScript файлын алдан карау гына.'''\n'''Ул әле сакланмаган!'''",
-       "userinvalidconfigtitle": "'''Игътибар:''' \"$1\" бизәү темасы табылмады. Кулланучының .css һәм .js битләре исемнәре бары тик кечкенә (юл) хәрефләрдән генә торырга тиеш икәнен онытмагыз. Мисалга: {{ns:user}}:Foo/vector.css, ә {{ns:user}}:Foo/Vector.css түгел!",
+       "userinvalidconfigtitle": "<strong>Игътибар:</strong> \"$1\" бизәү темасы табылмады. Кулланучының .css, .json һәм .js битләре исемнәре бары тик кечкенә (юл) хәрефләрдән генә торырга тиеш икәнен онытмагыз. Мисалга: {{ns:user}}:Foo/vector.css, ә {{ns:user}}:Foo/Vector.css түгел!",
        "updated": "(Яңартылды)",
        "note": "'''Искәрмә:'''",
        "previewnote": "<strong>Исегездә тотыгыз, бу алдан карау гына.</strong>\nТәзәтмәләрегез әлегә сакланмаган!",
        "longpageerror": "<strong>ХАТА: сакланучы текст зурлыгы - $1 {{PLURAL:$1|килобайт}}, бу $2 {{PLURAL:$2|килобайт}} чигеннән күбрәк. Бит саклана алмый.</strong>",
        "readonlywarning": "<strong>Кисәтү: мәгълүматлар базасында техник эшләр башкарыла, сезнең үзгәртүләр хәзер үк саклана алмый.</strong>\nБез сезгә әлеге текстны, югалмас өчен, берәр файлга сакларга тәкъдим итәбез.\n\nМәгълүматлар базасын япкан идарәче күрсәткән сәбәп: $1",
        "protectedpagewarning": "'''Кисәтү: сез бу битне үзгәртә алмыйсыз, бу хокукка идарәчеләр гына ия.'''\nТүбәндә көндәлекнең  соңгы язуы бирелгән:",
-       "semiprotectedpagewarning": "'''Кисәтү:''' бу бит якланган. Аны теркәлгән кулланучылар гына үзгәртә ала.\nАста бу битне күзәтү көндәлеге бирелгән:",
+       "semiprotectedpagewarning": "<strong>Кисәтү:</strong> бу бит якланган. Аны авторасланган кулланучылар гына үзгәртә ала.\nАста бу битнең күзәтү көндәлегендә булган соңгы язмасы бирелгән:",
        "cascadeprotectedwarning": "<strong>Кисәтү:</strong> Бу битне идарәчеләр гына үзгәртә ала., чөнки бит {{PLURAL:$1|каскадлы яклау исемлегенә кертелгән}}:",
        "titleprotectedwarning": "'''Кисәтү: Мондый исемле бит якланган, аны үзгәртү өчен [[Special:ListGroupRights|тиешле хокукка]] ия булу зарур.'''\nАста күзәтү көндәлегендәге соңгы язма бирелгән:",
        "templatesused": "Бу биттә кулланылган {{PLURAL:$1|1=калып|калыплар}} :",
index 55c7edb..8e7d4db 100644 (file)
        "stub-threshold-disabled": "閂咗",
        "recentchangesdays": "最近更改中嘅顯示日數:",
        "recentchangesdays-max": "最多 $1 日",
-       "recentchangescount": "預設顯示嘅編輯數:",
+       "recentchangescount": "喺最近修改、版歷史同日誌度預設顯示嘅編輯數:",
        "prefs-help-recentchangescount": "最大數目:1000",
        "prefs-help-watchlist-token2": "呢個係網上訂閱你個監視清單嘅密匙。\n任何人只要知道個密匙,就會睇到你個監視清單,所以唔好畀人知。\n如果有需要嘅話,[[Special:ResetTokens|你可以重設佢]]。",
        "savedprefs": "你嘅喜好設定已經儲存。",
        "upload-too-many-redirects": "個URL有太多跳轉",
        "upload-http-error": "一個HTTP錯誤發生咗: $1",
        "upload-copy-upload-invalid-domain": "從嗰個域名度冇複製上傳功能",
+       "upload-dialog-disabled": "呢個wiki停用咗用呢個對話框來上載檔案嘅功能。",
        "upload-dialog-title": "上載檔案",
        "upload-dialog-button-cancel": "取消",
        "upload-dialog-button-back": "返轉頭",
        "uploadstash-errclear": "清除檔案唔成功。",
        "uploadstash-refresh": "更新檔案清單",
        "uploadstash-thumbnail": "睇縮圖",
+       "uploadstash-bad-path-unknown-type": "未知嘅類型「$1」。",
        "invalid-chunk-offset": "非法偏移塊",
        "img-auth-accessdenied": "拒絕通行",
        "img-auth-nopathinfo": "PATH_INFO唔見咗。\n你嘅伺服器重未設定呢個資料。\n佢可能係CGI為本,唔支援img_auth。\n睇吓 https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization 。",
        "http-timed-out": "HTTP請求已過時。",
        "http-curl-error": "擷取URL嗰陣出錯:$1",
        "http-bad-status": "當做緊HTTP請求嗰陣出現咗問題:$1 $2",
+       "http-internal-error": "HTTP内部錯。",
        "upload-curl-error6": "唔可以到嗰個URL",
        "upload-curl-error6-text": "輸入嘅URL唔能夠去到。請重新檢查個URL係正確嘅同埋個網站係已經上綫。",
        "upload-curl-error28": "上載遇時",
        "unwatchedpages": "未監視嘅頁面",
        "listredirects": "彈嚟彈去一覽",
        "listduplicatedfiles": "重覆檔案一覽",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]]同[[$3|{{PLURAL:$2|另外$2個檔案重複}}]]。",
        "unusedtemplates": "未用嘅模",
        "unusedtemplatestext": "呢一頁列示喺{{ns:template}}空間名未包括喺其它頁面嘅全部頁面。請記得喺刪除佢哋之前檢查其它連結到呢個模嘅頁面。",
        "unusedtemplateswlh": "其它連結",
        "apisandbox-reset": "清除",
        "apisandbox-retry": "再試過",
        "apisandbox-examples": "範例",
+       "apisandbox-deprecated-parameters": "停用嘅參數",
        "apisandbox-results": "結果",
        "apisandbox-request-url-label": "請求URL:",
        "apisandbox-request-json-label": "請求JSON:",
index 5e80398..b89a1f2 100644 (file)
        "ns-specialprotected": "特殊页面不可编辑。",
        "titleprotected": "此标题已被[[User:$1|$1]]保护以防止创建。理由是<em>$2</em>。",
        "filereadonlyerror": "因为媒体库“$2”处于只读模式而无法修改文件“$1”。\n\n锁定数据库的系统管理员做出如下解释:“$3”。",
+       "invalidtitle": "无效标题",
        "invalidtitle-knownnamespace": "使用名字空间“$2”和文本“$3”的无效标题",
        "invalidtitle-unknownnamespace": "使用未知名字空间编号$1和文本“$2”的无效标题",
        "exception-nologin": "未登录",
        "cachedspecial-refresh-now": "查看最新的。",
        "categories": "分类",
        "categories-submit": "显示",
-       "categoriespagetext": "以下{{PLURAL:$1|分类包含}}页面或媒体文件。[[Special:UnusedCategories|未使用分类]]不在这里显示。另请见[[Special:WantedCategories|需要的分类]]。",
+       "categoriespagetext": "以下{{PLURAL:$1|分类}}在wiki存在,并且可能被也可能未被使用。另见[[Special:WantedCategories|需要的分类]]。",
        "categoriesfrom": "显示分类开始于:",
        "deletedcontributions": "被删除的用户贡献",
        "deletedcontributions-title": "被删除的用户贡献",
index bc9ff3d..3b321cd 100644 (file)
        "ns-specialprotected": "特殊頁面無法編輯。",
        "titleprotected": "此標題已經被 [[User:$1|$1]] 保護以防止建立,原因是 <em>$2</em>。",
        "filereadonlyerror": "無法修改檔案 \"$1\" 因為檔案庫 \"$2\" 目前處於唯讀模式。\n\n鎖定的系統管理員說明:\"$3\"。",
+       "invalidtitle": "無效標題",
        "invalidtitle-knownnamespace": "命名空間 \"$2\" 與名稱 \"$3\" 是無效的標題",
        "invalidtitle-unknownnamespace": "不明的命名空間編號 $1 與名稱 \"$2\" 是無效的標題",
        "exception-nologin": "未登入",
        "watchlistanontext": "請先登入以檢視或修改在監視清單的項目。",
        "watchnologin": "尚未登入",
        "addwatch": "新增至監視清單",
-       "addedwatchtext": "已於[[Special:Watchlist|您的監視清單]]新增頁面 \"[[:$1]]\" 及其討論頁面。\n未來對此頁面及其關聯的對話頁面的變更將會在此清單中列出。",
+       "addedwatchtext": "「[[:$1]]」及其討論頁已加入至您的[[Special:Watchlist|監視列表]]中。",
        "addedwatchtext-talk": "\"[[:$1]]\" 及相關的頁面已加入至您的 [[Special:Watchlist|監視清單]]。",
        "addedwatchtext-short": "已於您的監視清單新增頁面 \"$1\"。",
        "removewatch": "從監視清單中移除",
        "anonusers": "{{SITENAME}} 匿名{{PLURAL:$2|使用者}} $1",
        "creditspage": "頁面製作群",
        "nocredits": "此頁面沒有製作群資訊。",
-       "spamprotectiontitle": "垃圾訊息過濾程式",
+       "spamprotectiontitle": "垃圾連結過濾器",
        "spamprotectiontext": "您輸入文字內容已被垃圾訊息過濾程式禁止儲存,可能因您的內容包含了已封鎖的外部連結。",
        "spamprotectionmatch": "以下文字內容觸發垃圾訊息過濾程式:$1",
        "spambot_username": "MediaWiki 垃圾訊息清理",
diff --git a/languages/messages/MessagesMnw.php b/languages/messages/MessagesMnw.php
new file mode 100644 (file)
index 0000000..eea4896
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/** Mon (ဘာသာ မန်)
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ */
+
+$fallback = 'my';
index 2c7cd68..7913aab 100644 (file)
@@ -35,7 +35,9 @@
        </script>
        <script>
                // Mock startup.js
-               var mwNow = Date.now;
+               window.$VARS = {
+                       baseModules: []
+               };
 
                function startUp() {
                        mw.config = new mw.Map();
index c63eb96..c518399 100644 (file)
@@ -136,14 +136,29 @@ return [
                ],
        ],
 
-       /* jQuery */
+       /* Base modules */
+       // These modules' dependencies MUST also be included in StartUpModule::getBaseModules().
+       // These modules' dependencies MUST be dependency-free (having dependencies would cause recursion).
 
        'jquery' => [
                'scripts' => [
                        'resources/lib/jquery/jquery.js',
                        'resources/lib/jquery/jquery.migrate.js',
                ],
-               'raw' => true,
+               'targets' => [ 'desktop', 'mobile' ],
+       ],
+       'mediawiki.base' => [
+               'scripts' => [
+                       // This MUST be kept in sync with maintenance/jsduck/eg-iframe.html
+                       'resources/src/mediawiki.base/mediawiki.errorLogger.js',
+                       'resources/src/mediawiki.base/mediawiki.base.js',
+               ],
+               'dependencies' => 'jquery',
+               'targets' => [ 'desktop', 'mobile' ],
+       ],
+       'mediawiki.legacy.wikibits' => [
+               'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
+               'dependencies' => 'jquery',
                'targets' => [ 'desktop', 'mobile' ],
        ],
 
@@ -832,15 +847,6 @@ return [
        ],
 
        /* MediaWiki */
-
-       'mediawiki.base' => [
-               // Keep in sync with maintenance/jsduck/eg-iframe.html
-               'scripts' => [
-                       'resources/src/mediawiki.base/mediawiki.errorLogger.js',
-                       'resources/src/mediawiki.base/mediawiki.base.js',
-               ],
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
        'mediawiki.apihelp' => [
                'styles' => 'resources/src/mediawiki.apihelp.css',
                'targets' => [ 'desktop' ],
@@ -2389,10 +2395,6 @@ return [
                        'resources/src/mediawiki.legacy/oldshared.css' => [ 'media' => 'screen' ]
                ],
        ],
-       'mediawiki.legacy.wikibits' => [
-               'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
-               'targets' => [ 'desktop', 'mobile' ],
-       ],
 
        /* MediaWiki UI */
 
index 8257d85..bcd9c5c 100644 (file)
@@ -93,7 +93,7 @@
                                        'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'konqueror', 'lynx', 'msie', 'opera',
                                        'safari', 'ipod', 'iphone', 'blackberry', 'ps3', 'rekonq', 'android'
                                ],
-                               // Tanslations for conforming browser names
+                               // Translations for conforming browser names
                                nameTranslations = [],
                                // Names of known layout engines
                                layouts = ['gecko', 'konqueror', 'msie', 'trident', 'edge', 'opera', 'webkit'],
index 992a734..711e424 100644 (file)
@@ -3,6 +3,9 @@
  * Copyright jQuery Foundation and other contributors
  *
  * Patched for MediaWiki:
+ * - Qualify the global lookup for 'jQuery' as 'window.jQuery',
+ *   because within mw.loader.implement() for 'jquery', the closure
+ *   specifies '$' and 'jQuery', which are undefined.
  * - Add mw.track instrumentation for statistics.
  * - Disable jQuery.migrateTrace by default. They are slow and
  *   redundant given console.warn() already provides a trace.
@@ -20,7 +23,8 @@
        } else {
 
                // Browser globals
-               factory( jQuery, window );
+               // PATCH: Qualify jQuery lookup as window.jQuery. --Krinkle
+               factory( window.jQuery, window );
        }
 } )( function( jQuery, window ) {
 "use strict";
index 64d394c..59620bd 100644 (file)
 
                                // Get the CSS class names, could be done elsewhere
                                sortCSS = [ config.cssAsc, config.cssDesc ];
-                               // Messages tell the the user what the *next* state will be
+                               // Messages tell the user what the *next* state will be
                                // so are in reverse order to the CSS classes.
                                sortMsg = [ mw.msg( 'sort-descending' ), mw.msg( 'sort-ascending' ) ];
 
index f19c3c2..2281136 100644 (file)
@@ -30,7 +30,7 @@
        ul.mw-collapsible:before,
        .mw-collapsible-toggle-li {
                /*
-               Rather than inherit any margins from the the general li selector - make sure this is explicit
+               Rather than inherit any margins from the general li selector - make sure this is explicit
                to avoid reflows
                */
                display: list-item;
index 1c3dde6..9536b67 100644 (file)
@@ -22,7 +22,8 @@
                mwLoaderTrack = mw.track,
                trackCallbacks = $.Callbacks( 'memory' ),
                trackHandlers = [],
-               hasOwn = Object.prototype.hasOwnProperty;
+               hasOwn = Object.prototype.hasOwnProperty,
+               queue;
 
        /**
         * Object constructor for messages.
        // Alias $j to jQuery for backwards compatibility
        // @deprecated since 1.23 Use $ or jQuery instead
        mw.log.deprecate( window, '$j', $, 'Use $ or jQuery instead.' );
+
+       // Process callbacks for Grade A that require modules.
+       // Plain ones were already processed by startup.js.
+       queue = window.RLQ;
+       // Redefine publicly to capture any late arrivals
+       window.RLQ = {
+               push: function ( entry ) {
+                       mw.loader.using( entry[ 0 ], entry[ 1 ] );
+               }
+       };
+       while ( queue[ 0 ] ) {
+               window.RLQ.push( queue.shift() );
+       }
 }() );
index c918df8..9724927 100644 (file)
                }
        };
 
+       // Import i18n messages from config
+       mw.messages.set( mw.config.get( 'wgStructuredChangeFiltersMessages' ) );
+
        // Early execute of init
        if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
                rcfilters.init();
index 8ec2735..7265399 100644 (file)
 
        /* tablet and up */
 
-       @media only screen and ( min-width: @deviceWidthTablet ) {
+       @media only screen and ( min-width: @width-breakpoint-tablet ) {
 
                #mw-interwiki-results {
                        width: 30%;
index e2db9ea..63d23d8 100644 (file)
@@ -7,6 +7,7 @@
  * @alternateClassName mediaWiki
  * @singleton
  */
+/* global $VARS */
 
 ( function () {
        'use strict';
                                 */
                                jobs = [],
 
+                               /**
+                                * @private
+                                * @property {Array} baseModules
+                                */
+                               baseModules = $VARS.baseModules,
+
                                /**
                                 * For #addEmbeddedCSS() and #addLink()
                                 *
                                return true;
                        }
 
+                       /**
+                        * Determine whether all direct and base dependencies are in state 'ready'
+                        *
+                        * @private
+                        * @param {string} module Name of the module to be checked
+                        * @return {boolean} True if all direct/base dependencies are in state 'ready'; false otherwise
+                        */
+                       function allWithImplicitReady( module ) {
+                               return allReady( registry[ module ].dependencies ) &&
+                                       ( baseModules.indexOf( module ) !== -1 || allReady( baseModules ) );
+                       }
+
                        /**
                         * Determine whether all dependencies are in state 'ready', which means we may
                         * execute the module or job now.
                         * @param {string} module Name of module that entered one of the states 'ready', 'error', or 'missing'.
                         */
                        function handlePending( module ) {
-                               var j, job, hasErrors, m, stateChange;
+                               var j, job, hasErrors, m, stateChange, fromBaseModule;
 
                                if ( registry[ module ].state === 'error' || registry[ module ].state === 'missing' ) {
+                                       fromBaseModule = baseModules.indexOf( module ) !== -1;
                                        // If the current module failed, mark all dependent modules also as failed.
                                        // Iterate until steady-state to propagate the error state upwards in the
                                        // dependency tree.
                                                stateChange = false;
                                                for ( m in registry ) {
                                                        if ( registry[ m ].state !== 'error' && registry[ m ].state !== 'missing' ) {
-                                                               if ( anyFailed( registry[ m ].dependencies ) ) {
+                                                               // Always propagate errors from base modules to regular modules (implicit dependency).
+                                                               // Between base modules or regular modules, consider direct dependencies only.
+                                                               if (
+                                                                       ( fromBaseModule && baseModules.indexOf( m ) === -1 ) ||
+                                                                       anyFailed( registry[ m ].dependencies )
+                                                               ) {
                                                                        registry[ m ].state = 'error';
                                                                        stateChange = true;
                                                                }
                                        }
                                }
 
+                               // The current module became 'ready'.
                                if ( registry[ module ].state === 'ready' ) {
-                                       // The current module became 'ready'. Set it in the module store, and recursively execute all
-                                       // dependent modules that are loaded and now have all dependencies satisfied.
+                                       // Save it to the module store.
                                        mw.loader.store.set( module, registry[ module ] );
+                                       // Recursively execute all dependent modules that were already loaded
+                                       // (waiting for execution) and no longer have unsatisfied dependencies.
                                        for ( m in registry ) {
-                                               if ( registry[ m ].state === 'loaded' && allReady( registry[ m ].dependencies ) ) {
+                                               // Base modules may have dependencies amongst eachother to ensure correct
+                                               // execution order. Regular modules wait for all base modules.
+                                               if ( registry[ m ].state === 'loaded' && allWithImplicitReady( m ) ) {
                                                        // eslint-disable-next-line no-use-before-define
                                                        execute( m );
                                                }
                                if ( !unresolved ) {
                                        unresolved = new StringSet();
                                }
+
+                               // Add base modules
+                               if ( baseModules.indexOf( module ) === -1 ) {
+                                       baseModules.forEach( function ( baseModule ) {
+                                               if ( resolved.indexOf( baseModule ) === -1 ) {
+                                                       resolved.push( baseModule );
+                                               }
+                                       } );
+                               }
+
                                // Tracks down dependencies
                                deps = registry[ module ].dependencies;
+                               unresolved.add( module );
                                for ( i = 0; i < deps.length; i++ ) {
                                        if ( resolved.indexOf( deps[ i ] ) === -1 ) {
                                                if ( unresolved.has( deps[ i ] ) ) {
                                                        );
                                                }
 
-                                               unresolved.add( module );
                                                sortDependencies( deps[ i ], resolved, unresolved );
                                        }
                                }
                        /**
                         * Queue the loading and execution of a script for a particular module.
                         *
+                        * This does for debug mode what runScript() does for production.
+                        *
                         * @private
                         * @param {string} src URL of the script
                         * @param {string} moduleName Name of currently executing module
                         */
                        function queueModuleScript( src, moduleName, callback ) {
                                pendingRequests.push( function () {
-                                       if ( hasOwn.call( registry, moduleName ) ) {
-                                               // Emulate runScript() part of execute()
+                                       // Keep in sync with execute()/runScript().
+                                       if ( moduleName !== 'jquery' && hasOwn.call( registry, moduleName ) ) {
                                                window.require = mw.loader.require;
                                                window.module = registry[ moduleName ].module;
                                        }
                                                if ( Array.isArray( script ) ) {
                                                        nestedAddScript( script, markModuleReady, 0 );
                                                } else if ( typeof script === 'function' ) {
-                                                       // Pass jQuery twice so that the signature of the closure which wraps
-                                                       // the script can bind both '$' and 'jQuery'.
-                                                       script( window.$, window.$, mw.loader.require, registry[ module ].module );
+                                                       // Keep in sync with queueModuleScript() for debug mode
+                                                       if ( module === 'jquery' ) {
+                                                               // This is a special case for when 'jquery' itself is being loaded.
+                                                               // - The standard jquery.js distribution does not set `window.jQuery`
+                                                               //   in CommonJS-compatible environments (Node.js, AMD, RequireJS, etc.).
+                                                               // - MediaWiki's 'jquery' module also bundles jquery.migrate.js, which
+                                                               //   in a CommonJS-compatible environment, will use require('jquery'),
+                                                               //   but that can't work when we're still inside that module.
+                                                               script();
+                                                       } else {
+                                                               // Pass jQuery twice so that the signature of the closure which wraps
+                                                               // the script can bind both '$' and 'jQuery'.
+                                                               script( window.$, window.$, mw.loader.require, registry[ module ].module );
+                                                       }
                                                        markModuleReady();
 
                                                } else if ( typeof script === 'string' ) {
                                        // The module may already have been marked as erroneous
                                        if ( registry[ name ].state !== 'error' && registry[ name ].state !== 'missing' ) {
                                                registry[ name ].state = 'loaded';
-                                               if ( allReady( registry[ name ].dependencies ) ) {
+                                               if ( allWithImplicitReady( name ) ) {
                                                        execute( name );
                                                }
                                        }
index c609852..b2d86e2 100644 (file)
@@ -80,7 +80,7 @@ window.isCompatible = function ( str ) {
 };
 
 ( function () {
-       var NORLQ, script;
+       var NORLQ;
        // Handle Grade C
        if ( !isCompatible() ) {
                // Undo speculative Grade A <html> class. See ResourceLoaderClientHtml::getDocumentAttributes().
@@ -119,19 +119,20 @@ window.isCompatible = function ( str ) {
                // Process callbacks for Grade A
                // Must be after registrations and mw.config.set, which mw.loader depends on.
                var queue = window.RLQ;
-               window.RLQ = {
-                       push: function ( fn ) {
-                               if ( typeof fn === 'function' ) {
-                                       fn();
-                               } else {
-                                       // This callback has a requirement.
-                                       mw.loader.using( fn[ 0 ], fn[ 1 ] );
-                               }
+               // Redefine push(), but keep type as array for storing callbacks that require modules.
+               window.RLQ = [];
+               /* global RLQ */
+               RLQ.push = function ( fn ) {
+                       if ( typeof fn === 'function' ) {
+                               fn();
+                       } else {
+                               // This callback requires a module, handled in mediawiki.base.
+                               RLQ[ RLQ.length ] = fn;
                        }
                };
                while ( queue && queue[ 0 ] ) {
                        // Re-use our push()
-                       window.RLQ.push( queue.shift() );
+                       RLQ.push( queue.shift() );
                }
 
                // Clear and disable the Grade C queue
@@ -147,14 +148,5 @@ window.isCompatible = function ( str ) {
        // This embeds mediawiki.js, which defines 'mw' and 'mw.loader'.
        $CODE.defineLoader();
 
-       script = document.createElement( 'script' );
-       script.src = $VARS.baseModulesUri;
-       script.onload = function () {
-               // Clean up
-               script.onload = null;
-               script = null;
-               // Callback
-               startUp();
-       };
-       document.head.appendChild( script );
+       mw.requestIdleCallback( startUp );
 }() );
index 366806e..a8cc252 100644 (file)
@@ -275,7 +275,7 @@ abstract class MediaWikiTestCase extends PHPUnit\Framework\TestCase {
         *        MediaWikiServices.
         * @return MediaWikiServices
         */
-       protected static function resetGlobalServices( Config $bootstrapConfig = null ) {
+       private static function resetGlobalServices( Config $bootstrapConfig = null ) {
                $oldServices = MediaWikiServices::getInstance();
                $oldConfigFactory = $oldServices->getConfigFactory();
                $oldLoadBalancerFactory = $oldServices->getDBLoadBalancerFactory();
index 413c1a2..c838fc3 100644 (file)
@@ -1,23 +1,9 @@
 <?php
 
-use Mediawiki\Http\HttpRequestFactory;
-use MediaWiki\Interwiki\InterwikiLookup;
-use MediaWiki\Linker\LinkRenderer;
-use MediaWiki\Linker\LinkRendererFactory;
 use MediaWiki\MediaWikiServices;
-use MediaWiki\Preferences\PreferencesFactory;
 use MediaWiki\Services\DestructibleService;
 use MediaWiki\Services\SalvageableService;
 use MediaWiki\Services\ServiceDisabledException;
-use MediaWiki\Shell\CommandFactory;
-use MediaWiki\Storage\BlobStore;
-use MediaWiki\Storage\BlobStoreFactory;
-use MediaWiki\Storage\NameTableStore;
-use MediaWiki\Storage\RevisionFactory;
-use MediaWiki\Storage\RevisionLookup;
-use MediaWiki\Storage\RevisionStore;
-use MediaWiki\Storage\RevisionStoreFactory;
-use MediaWiki\Storage\SqlBlobStore;
 
 /**
  * @covers MediaWiki\MediaWikiServices
@@ -307,70 +293,18 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
        }
 
        public function provideGetService() {
-               // NOTE: This should list all service getters defined in ServiceWiring.php.
-               return [
-                       'BootstrapConfig' => [ 'BootstrapConfig', Config::class ],
-                       'ConfigFactory' => [ 'ConfigFactory', ConfigFactory::class ],
-                       'MainConfig' => [ 'MainConfig', Config::class ],
-                       'SiteStore' => [ 'SiteStore', SiteStore::class ],
-                       'SiteLookup' => [ 'SiteLookup', SiteLookup::class ],
-                       'StatsdDataFactory' => [ 'StatsdDataFactory', IBufferingStatsdDataFactory::class ],
-                       'PerDbNameStatsdDataFactory' =>
-                               [ 'PerDbNameStatsdDataFactory', IBufferingStatsdDataFactory::class ],
-                       'InterwikiLookup' => [ 'InterwikiLookup', InterwikiLookup::class ],
-                       'EventRelayerGroup' => [ 'EventRelayerGroup', EventRelayerGroup::class ],
-                       'SearchEngineFactory' => [ 'SearchEngineFactory', SearchEngineFactory::class ],
-                       'SearchEngineConfig' => [ 'SearchEngineConfig', SearchEngineConfig::class ],
-                       'SkinFactory' => [ 'SkinFactory', SkinFactory::class ],
-                       'DBLoadBalancerFactory' => [ 'DBLoadBalancerFactory', Wikimedia\Rdbms\LBFactory::class ],
-                       'DBLoadBalancer' => [ 'DBLoadBalancer', Wikimedia\Rdbms\LoadBalancer::class ],
-                       'WatchedItemStore' => [ 'WatchedItemStore', WatchedItemStore::class ],
-                       'WatchedItemQueryService' => [ 'WatchedItemQueryService', WatchedItemQueryService::class ],
-                       'CryptRand' => [ 'CryptRand', CryptRand::class ],
-                       'CryptHKDF' => [ 'CryptHKDF', CryptHKDF::class ],
-                       'MediaHandlerFactory' => [ 'MediaHandlerFactory', MediaHandlerFactory::class ],
-                       'Parser' => [ 'Parser', Parser::class ],
-                       'ParserCache' => [ 'ParserCache', ParserCache::class ],
-                       'GenderCache' => [ 'GenderCache', GenderCache::class ],
-                       'LinkCache' => [ 'LinkCache', LinkCache::class ],
-                       'LinkRenderer' => [ 'LinkRenderer', LinkRenderer::class ],
-                       'LinkRendererFactory' => [ 'LinkRendererFactory', LinkRendererFactory::class ],
-                       '_MediaWikiTitleCodec' => [ '_MediaWikiTitleCodec', MediaWikiTitleCodec::class ],
-                       'MimeAnalyzer' => [ 'MimeAnalyzer', MimeAnalyzer::class ],
-                       'TitleFormatter' => [ 'TitleFormatter', TitleFormatter::class ],
-                       'TitleParser' => [ 'TitleParser', TitleParser::class ],
-                       'ProxyLookup' => [ 'ProxyLookup', ProxyLookup::class ],
-                       'MainObjectStash' => [ 'MainObjectStash', BagOStuff::class ],
-                       'MainWANObjectCache' => [ 'MainWANObjectCache', WANObjectCache::class ],
-                       'LocalServerObjectCache' => [ 'LocalServerObjectCache', BagOStuff::class ],
-                       'VirtualRESTServiceClient' => [ 'VirtualRESTServiceClient', VirtualRESTServiceClient::class ],
-                       'ShellCommandFactory' => [ 'ShellCommandFactory', CommandFactory::class ],
-                       'BlobStoreFactory' => [ 'BlobStoreFactory', BlobStoreFactory::class ],
-                       'BlobStore' => [ 'BlobStore', BlobStore::class ],
-                       '_SqlBlobStore' => [ '_SqlBlobStore', SqlBlobStore::class ],
-                       'RevisionStore' => [ 'RevisionStore', RevisionStore::class ],
-                       'RevisionStoreFactory' => [ 'RevisionStoreFactory', RevisionStoreFactory::class ],
-                       'RevisionLookup' => [ 'RevisionLookup', RevisionLookup::class ],
-                       'RevisionFactory' => [ 'RevisionFactory', RevisionFactory::class ],
-                       'ContentModelStore' => [ 'ContentModelStore', NameTableStore::class ],
-                       'SlotRoleStore' => [ 'SlotRoleStore', NameTableStore::class ],
-                       'HttpRequestFactory' => [ 'HttpRequestFactory', HttpRequestFactory::class ],
-                       'CommentStore' => [ 'CommentStore', CommentStore::class ],
-                       'ChangeTagDefStore' => [ 'ChangeTagDefStore', NameTableStore::class ],
-                       'ConfiguredReadOnlyMode' => [ 'ConfiguredReadOnlyMode', ConfiguredReadOnlyMode::class ],
-                       'ReadOnlyMode' => [ 'ReadOnlyMode', ReadOnlyMode::class ],
-                       'UploadRevisionImporter' => [ 'UploadRevisionImporter', UploadRevisionImporter::class ],
-                       'OldRevisionImporter' => [ 'OldRevisionImporter', OldRevisionImporter::class ],
-                       'WikiRevisionOldRevisionImporterNoUpdates' =>
-                               [ 'WikiRevisionOldRevisionImporterNoUpdates', ImportableOldRevisionImporter::class ],
-                       'ExternalStoreFactory' => [ 'ExternalStoreFactory', ExternalStoreFactory::class ],
-                       'PreferencesFactory' => [ 'PreferencesFactory', PreferencesFactory::class ],
-                       'ActorMigration' => [ 'ActorMigration', ActorMigration::class ],
-                       'ConfigRepository' => [ 'ConfigRepository', \MediaWiki\Config\ConfigRepository::class ],
-                       'MagicWordFactory' => [ 'MagicWordFactory', MagicWordFactory::class ],
-                       'ContentLanguage' => [ 'ContentLanguage', Language::class ],
-                       'PasswordFactory' => [ 'PasswordFactory', PasswordFactory::class ],
-               ];
+               global $IP;
+               $serviceList = require "$IP/includes/ServiceWiring.php";
+               $ret = [];
+               foreach ( $serviceList as $name => $callback ) {
+                       $fun = new ReflectionFunction( $callback );
+                       if ( !$fun->hasReturnType() ) {
+                               throw new MWException( 'All service callbacks must have a return type defined, ' .
+                                       "none found for $name" );
+                       }
+                       $ret[$name] = [ $name, $fun->getReturnType()->__toString() ];
+               }
+               return $ret;
        }
 
        /**
@@ -401,7 +335,7 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
        public function testDefaultServiceWiringServicesHaveTests() {
                global $IP;
                $testedServices = array_keys( $this->provideGetService() );
-               $allServices = array_keys( include $IP . '/includes/ServiceWiring.php' );
+               $allServices = array_keys( require "$IP/includes/ServiceWiring.php" );
                $this->assertEquals(
                        [],
                        array_diff( $allServices, $testedServices ),
@@ -409,4 +343,24 @@ class MediaWikiServicesTest extends MediaWikiTestCase {
                );
        }
 
+       public function testGettersAreSorted() {
+               $methods = ( new ReflectionClass( MediaWikiServices::class ) )
+                       ->getMethods( ReflectionMethod::IS_STATIC | ReflectionMethod::IS_PUBLIC );
+
+               $names = array_map( function ( $method ) {
+                       return $method->getName();
+               }, $methods );
+               $serviceNames = array_map( function ( $name ) {
+                       return "get$name";
+               }, array_keys( $this->provideGetService() ) );
+               $names = array_values( array_filter( $names, function ( $name ) use ( $serviceNames ) {
+                       return in_array( $name, $serviceNames );
+               } ) );
+
+               $sortedNames = $names;
+               sort( $sortedNames );
+
+               $this->assertSame( $sortedNames, $names,
+                       'Please keep service getters sorted alphabetically' );
+       }
 }
index 57b42f6..ff4c198 100644 (file)
@@ -1386,7 +1386,7 @@ abstract class RevisionDbTestBase extends MediaWikiTestCase {
         */
        public function testNewKnownCurrent() {
                // Setup the services
-               $this->resetGlobalServices();
+               $this->overrideMwServices();
                $cache = new WANObjectCache( [ 'cache' => new HashBagOStuff() ] );
                $this->setService( 'MainWANObjectCache', $cache );
                $db = wfGetDB( DB_MASTER );
diff --git a/tests/phpunit/includes/ServiceWiringTest.php b/tests/phpunit/includes/ServiceWiringTest.php
new file mode 100644 (file)
index 0000000..74e8e1b
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * @coversNothing
+ */
+class ServiceWiringTest extends MediaWikiTestCase {
+       public function testServicesAreSorted() {
+               global $IP;
+               $services = array_keys( require "$IP/includes/ServiceWiring.php" );
+               $sortedServices = $services;
+               sort( $sortedServices );
+
+               $this->assertSame( $sortedServices, $services,
+                       'Please keep services sorted alphabetically' );
+       }
+}
index 5a748cc..2c4e6b4 100644 (file)
@@ -311,6 +311,20 @@ class LoadBalancerTest extends MediaWikiTestCase {
                                $lb->getAnyOpenConnection( $i, $lb::CONN_TRX_AUTOCOMMIT ) );
                        $this->assertEquals( $conn2,
                                $lb->getConnection( $i, [], false, $lb::CONN_TRX_AUTOCOMMIT ) );
+
+                       $conn2->startAtomic( __METHOD__ );
+                       try {
+                               $lb->getConnection( $i, [], false, $lb::CONN_TRX_AUTOCOMMIT );
+                               $conn2->endAtomic( __METHOD__ );
+                               $this->fail( "No exception thrown." );
+                       } catch ( DBUnexpectedError $e ) {
+                               $this->assertEquals(
+                                       'Wikimedia\Rdbms\LoadBalancer::openConnection: ' .
+                                       'CONN_TRX_AUTOCOMMIT handle has a transaction.',
+                                       $e->getMessage()
+                               );
+                       }
+                       $conn2->endAtomic( __METHOD__ );
                }
 
                $lb->closeAll();
index 662bb96..22aa667 100644 (file)
@@ -1569,6 +1569,44 @@ class WANObjectCacheTest extends PHPUnit\Framework\TestCase {
                $wanCache->resetCheckKey( 'test' );
        }
 
+       public function testEpoch() {
+               $bag = new HashBagOStuff();
+               $cache = new WANObjectCache( [ 'cache' => $bag, 'pool' => 'testcache-hash' ] );
+               $key = $cache->makeGlobalKey( 'The whole of the Law' );
+
+               $now = microtime( true );
+               $cache->setMockTime( $now );
+
+               $cache->set( $key, 'Do what thou Wilt' );
+               $cache->touchCheckKey( $key );
+
+               $then = $now;
+               $now += 30;
+               $this->assertEquals( 'Do what thou Wilt', $cache->get( $key ) );
+               $this->assertEquals( $then, $cache->getCheckKeyTime( $key ), 'Check key init', 0.01 );
+
+               $cache = new WANObjectCache( [
+                       'cache' => $bag,
+                       'pool' => 'testcache-hash',
+                       'epoch' => $now - 3600
+               ] );
+               $cache->setMockTime( $now );
+
+               $this->assertEquals( 'Do what thou Wilt', $cache->get( $key ) );
+               $this->assertEquals( $then, $cache->getCheckKeyTime( $key ), 'Check key kept', 0.01 );
+
+               $now += 30;
+               $cache = new WANObjectCache( [
+                       'cache' => $bag,
+                       'pool' => 'testcache-hash',
+                       'epoch' => $now + 3600
+               ] );
+               $cache->setMockTime( $now );
+
+               $this->assertFalse( $cache->get( $key ), 'Key rejected due to epoch' );
+               $this->assertEquals( $now, $cache->getCheckKeyTime( $key ), 'Check key reset', 0.01 );
+       }
+
        /**
         * @dataProvider provideAdaptiveTTL
         * @covers WANObjectCache::adaptiveTTL()
index 6fbb474..c258b6a 100644 (file)
@@ -26,6 +26,17 @@ class SVGMetadataExtractorTest extends MediaWikiTestCase {
                $this->assertMetadata( $infile, $expected );
        }
 
+       /**
+        * @dataProvider provideSvgUnits
+        */
+       public function testScaleSVGUnit( $inUnit, $expected ) {
+               $this->assertEquals(
+                       $expected,
+                       SVGReader::scaleSVGUnit( $inUnit ),
+                       'SVG unit conversion and scaling failure'
+               );
+       }
+
        function assertMetadata( $infile, $expected ) {
                try {
                        $data = SVGMetadataExtractor::getMetadata( $infile );
@@ -152,4 +163,34 @@ class SVGMetadataExtractorTest extends MediaWikiTestCase {
                        ],
                ];
        }
+
+       public static function provideSvgUnits() {
+               return [
+                       [ '1' , 1 ],
+                       [ '1.1' , 1.1 ],
+                       [ '0.1' , 0.1 ],
+                       [ '.1' , 0.1 ],
+                       [ '1e2' , 100 ],
+                       [ '1E2' , 100 ],
+                       [ '+1' , 1 ],
+                       [ '-1' , -1 ],
+                       [ '-1.1' , -1.1 ],
+                       [ '1e+2' , 100 ],
+                       [ '1e-2' , 0.01 ],
+                       [ '10px' , 10 ],
+                       [ '10pt' , 10 * 1.25 ],
+                       [ '10pc' , 10 * 15 ],
+                       [ '10mm' , 10 * 3.543307 ],
+                       [ '10cm' , 10 * 35.43307 ],
+                       [ '10in' , 10 * 90 ],
+                       [ '10em' , 10 * 16 ],
+                       [ '10ex' , 10 * 12 ],
+                       [ '10%' , 51.2 ],
+                       [ '10 px' , 10 ],
+                       // Invalid values
+                       [ '1e1.1', 10 ],
+                       [ '10bp', 10 ],
+                       [ 'p10', null ],
+               ];
+       }
 }
index de593d5..05b85be 100644 (file)
                var done = assert.async();
 
                mw.loader.register( [
-                       [ 'test.circle1', '0', [ 'test.circle2' ] ],
-                       [ 'test.circle2', '0', [ 'test.circle3' ] ],
-                       [ 'test.circle3', '0', [ 'test.circle1' ] ]
+                       [ 'test.set.circleA', '0', [ 'test.set.circleB' ] ],
+                       [ 'test.set.circleB', '0', [ 'test.set.circleC' ] ],
+                       [ 'test.set.circleC', '0', [ 'test.set.circleA' ] ]
                ] );
-               mw.loader.using( 'test.circle3' ).then(
+               mw.loader.using( 'test.set.circleC' ).then(
                        function done() {
                                assert.ok( false, 'Unexpected resolution, expected error.' );
                        },
                mw.redefineFallbacksForTest();
 
                mw.loader.register( [
-                       [ 'test.shim.circle1', '0', [ 'test.shim.circle2' ] ],
-                       [ 'test.shim.circle2', '0', [ 'test.shim.circle3' ] ],
-                       [ 'test.shim.circle3', '0', [ 'test.shim.circle1' ] ]
+                       [ 'test.shim.circleA', '0', [ 'test.shim.circleB' ] ],
+                       [ 'test.shim.circleB', '0', [ 'test.shim.circleC' ] ],
+                       [ 'test.shim.circleC', '0', [ 'test.shim.circleA' ] ]
                ] );
-               mw.loader.using( 'test.shim.circle3' ).then(
+               mw.loader.using( 'test.shim.circleC' ).then(
                        function done() {
                                assert.ok( false, 'Unexpected resolution, expected error.' );
                        },
        QUnit.test( '.load() - Error: Circular dependency', function ( assert ) {
                var capture = [];
                mw.loader.register( [
-                       [ 'test.circleA', '0', [ 'test.circleB' ] ],
-                       [ 'test.circleB', '0', [ 'test.circleC' ] ],
-                       [ 'test.circleC', '0', [ 'test.circleA' ] ]
+                       [ 'test.load.circleA', '0', [ 'test.load.circleB' ] ],
+                       [ 'test.load.circleB', '0', [ 'test.load.circleC' ] ],
+                       [ 'test.load.circleC', '0', [ 'test.load.circleA' ] ]
                ] );
                this.sandbox.stub( mw, 'track', function ( topic, data ) {
                        capture.push( {
                        } );
                } );
 
-               mw.loader.load( 'test.circleC' );
+               mw.loader.load( 'test.load.circleC' );
                assert.deepEqual(
                        [ {
                                topic: 'resourceloader.exception',
-                               error: 'Circular reference detected: test.circleB -> test.circleC',
+                               error: 'Circular reference detected: test.load.circleB -> test.load.circleC',
                                source: 'resolve'
                        } ],
                        capture,
                );
        } );
 
+       QUnit.test( '.load() - Error: Circular dependency (direct)', function ( assert ) {
+               var capture = [];
+               mw.loader.register( [
+                       [ 'test.load.circleDirect', '0', [ 'test.load.circleDirect' ] ]
+               ] );
+               this.sandbox.stub( mw, 'track', function ( topic, data ) {
+                       capture.push( {
+                               topic: topic,
+                               error: data.exception && data.exception.message,
+                               source: data.source
+                       } );
+               } );
+
+               mw.loader.load( 'test.load.circleDirect' );
+               assert.deepEqual(
+                       [ {
+                               topic: 'resourceloader.exception',
+                               error: 'Circular reference detected: test.load.circleDirect -> test.load.circleDirect',
+                               source: 'resolve'
+                       } ],
+                       capture,
+                       'Detect a direct self-dependency'
+               );
+       } );
+
        QUnit.test( '.using() - Error: Unregistered', function ( assert ) {
                var done = assert.async();
 
                        },
                        function ( e, dependencies ) {
                                assert.strictEqual( Array.isArray( dependencies ), true, 'Expected array of dependencies' );
-                               assert.deepEqual( dependencies, [ 'test.module7' ], 'Error callback called with module test.module7' );
+                               assert.deepEqual(
+                                       dependencies,
+                                       [ 'jquery', 'mediawiki.base', 'test.module7' ],
+                                       'Error callback called with module test.module7'
+                               );
                        }
                );
                mw.loader.using(
                                dependencies.sort();
                                assert.deepEqual(
                                        dependencies,
-                                       [ 'test.module7', 'test.module8', 'test.module9' ],
+                                       [ 'jquery', 'mediawiki.base', 'test.module7', 'test.module8', 'test.module9' ],
                                        'Error callback called with all three modules as dependencies'
                                );
                        }