Merge "Soft deprecate $wgStyleVersion (add @deprecated)"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 27 Nov 2017 20:57:36 +0000 (20:57 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 27 Nov 2017 20:57:36 +0000 (20:57 +0000)
56 files changed:
HISTORY
includes/Feed.php
includes/StreamFile.php
includes/api/ApiFormatBase.php
includes/api/ApiQuerySiteinfo.php
includes/api/i18n/es.json
includes/api/i18n/sv.json
includes/api/i18n/zh-hant.json
includes/filebackend/FileBackendGroup.php
includes/filerepo/FileRepo.php
includes/filerepo/RepoGroup.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignAPIFile.php
includes/filerepo/file/LocalFile.php
includes/filerepo/file/UnregisteredLocalFile.php
includes/libs/objectcache/HashBagOStuff.php
includes/libs/objectcache/WANObjectCache.php
includes/libs/rdbms/database/IDatabase.php
includes/libs/rdbms/loadbalancer/LoadBalancer.php
includes/libs/rdbms/loadmonitor/LoadMonitor.php
includes/media/DjVu.php
includes/media/MediaHandler.php
includes/page/ImagePage.php
includes/specials/SpecialListgrouprights.php
includes/specials/SpecialMediaStatistics.php
includes/upload/UploadBase.php
includes/upload/UploadStash.php
includes/utils/MWFileProps.php
languages/i18n/ais.json
languages/i18n/ar.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/es.json
languages/i18n/fr.json
languages/i18n/hif-latn.json
languages/i18n/hu.json
languages/i18n/is.json
languages/i18n/ja.json
languages/i18n/khw.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/li.json
languages/i18n/nn.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/sat.json
languages/i18n/sl.json
languages/i18n/sv.json
languages/i18n/ur.json
languages/i18n/war.json
languages/messages/MessagesPs.php
maintenance/importImages.php
resources/src/mediawiki.special/mediawiki.special.preferences.styles.css
tests/phpunit/includes/libs/objectcache/WANObjectCacheTest.php
tests/phpunit/includes/media/MediaWikiMediaTestCase.php
tests/phpunit/includes/media/WebPTest.php

diff --git a/HISTORY b/HISTORY
index 0a2869d..1f30b70 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -2,6 +2,45 @@ Change notes from older releases. For current info see RELEASE-NOTES-1.30.
 
 = MediaWiki 1.29 =
 
+== MediaWiki 1.29.2 ==
+
+This is a security and maintenance release of the MediaWiki 1.29 branch.
+
+=== Changes since 1.29.1 ===
+* (T166757) Avoid scoped lock errors in Category::refreshCounts() due to nesting.
+* (T175439) Unbreak Postgres Updater when setting defaults for a column.
+* (T160298) Remove use of implicitGroupBy() in ActiveUsersPager.
+* Fixed login button label to accept RawMessage.
+* Fixed case of SpecialRecentChanges class usage.
+* (T174255) Declare uploadCount property in importDump.php.
+* (T163646) Pass a string not an int to mysql_real_escape_string().
+* (T180143) Bump justinrainbow/json-schema development dependency to ~5.2.
+* Updated dev dependancy phpunit/phpunit from v4.8.35 to v4.8.36.
+* (T178451) SECURITY: Potential XSS when $wgShowExceptionDetails = false and browser
+  sends non-standard url escaping.
+* (T165846) SECURITY: BotPassword login attempts weren't throttled.
+* (T128209) SECURITY: Reflected File Download from api.php.
+* (T134100) SECURITY: Do not reveal if user exists during login failure.
+* (T176247) SECURITY: Ensure Message::rawParams can't lead to XSS.
+* (T125163) SECURITY: Make anchor for headlines escape > and <.
+* (T180237) SECURITY: Protect vendor folder with .htaccess.
+* (T180231) SECURITY: Remove PHPUnit file with known RCE if exists in update.php.
+* (T124404) SECURITY: XSS in langconverter when regex hits pcre.backtrack_limit.
+* (T119158) SECURITY: Handle -{}- syntax in attributes safely.
+* (T180488) (T125177) "api.log contains passwords in plaintext" wasn't correctly fixed in all
+  branches in the previous security release.
+
+== MediaWiki 1.29.1 ==
+
+This is a maintenance release of the MediaWiki 1.29 branch.
+
+The SpamBlacklist and PdfHandler extensions were missing from the generated
+packages.
+
+=== Changes since 1.29.1 ===
+* (T164999) Define mw.Upload.Dialog.static.name in mediawiki.Upload.Dialog.js.
+* (T172061) Fix fatal when passing a category to refreshLinks.php.
+
 == MediaWiki 1.29.0 ==
 
 === Configuration changes in 1.29 ===
@@ -336,6 +375,45 @@ changes to languages because of Phabricator reports.
 
 = MediaWiki 1.28 =
 
+== MediaWiki 1.28.3 ==
+
+This is a security and maintenance release of the MediaWiki 1.28 branch.
+
+=== Changes since 1.28.2 ==
+* (T168856) Allow SVGs created by Dia to be uploaded.
+* (T157545) Add missing doUpdates() call to refreshLinks.php.
+* (T165714) (T100085) Better handling of jobs execution in post-connection shutdown.
+* (T154425) (T154438) (T157679) Use AutoCommitUpdate instead of Database->onTransactionIdle.
+* (T154425) Make DeferredUpdates detect LBFactory transaction rounds.
+* (T149454) Restore erroneously removed realTableName call from DatabasePostgres.
+* (T167798) Fix phrase search and highlighting for phrase queries.
+* (T151136) Provide credits information to callbacks in extension registration.
+* (T160462) Allow namespaces defined in extension.json to be overwritten locally.
+* (T168337) Fix ErrorPageError to work from non-UI contexts.
+* (T143788) Backports for PHP 7.0 and 7.1 support.
+* (T175439) Unbreak Postgres Updater when setting defaults for a column.
+* (T160298) Remove use of implicitGroupBy() in ActiveUsersPager.
+* (T174255) Declare uploadCount property in importDump.php.
+* (T180231) SECURITY: Updated dev dependancy phpunit/phpunit from v4.8.24 to v4.8.36.
+* (T178451) SECURITY: Potential XSS when $wgShowExceptionDetails = false and browser
+  sends non-standard url escaping.
+* (T165846) SECURITY: BotPassword login attempts weren't throttled.
+* (T128209) SECURITY: Reflected File Download from api.php.
+* (T134100) SECURITY: Do not reveal if user exists during login failure.
+* (T176247) SECURITY: Ensure Message::rawParams can't lead to XSS.
+* (T125163) SECURITY: Make anchor for headlines escape > and <.
+* (T180237) SECURITY: Protect vendor folder with .htaccess.
+* (T180231) SECURITY: Remove PHPUnit file with known RCE if exists in update.php.
+* (T124404) SECURITY: XSS in langconverter when regex hits pcre.backtrack_limit.
+* (T119158) SECURITY: Handle -{}- syntax in attributes safely.
+
+== MediaWiki 1.28.2 ==
+
+Due to a packaging error, the wrong version of the SyntaxHighlight extension was
+included in the tarball version of MediaWiki 1.28.1. The version included had a
+serious security issue in it (T158689). There was also some minor code fixes in
+MediaWiki itself since 1.28.1, but none of them were security relevant.
+
 == MediaWiki 1.28.1 ==
 
 This is a security and maintenance release of the MediaWiki 1.28 branch.
@@ -699,6 +777,38 @@ There's usually someone online in #mediawiki on irc.freenode.net.
 
 = MediaWiki 1.27 =
 
+== MediaWiki 1.27.4 ==
+This is a security and maintenance release of the MediaWiki 1.27 branch.
+
+=== Changes since 1.27.3 ===
+* (T100085) Better handling of jobs execution in post-connection shutdown.
+* (T141604) Support conditionally registered namespaces.
+* (T167798) Fix highlighting for phrase queries and phrase search.
+* (T151136) Provide credits information to callbacks.
+* (T160462) Allow namespaces defined in extension.json to be overwritten locally.
+* (T168856) Allow SVGs created by Dia to be uploaded.
+* (T144705) (T148662) Password reset link is no longer shown when no reset options are
+  available.
+* (T143788) (T174262) Various backports for PHP 7.0 and 7.1 support.
+* (T66795) $wgUserEmailUseReplyTo is now true by default to work around restrictive DMARC
+  policies.
+* DB_REPLICA constant added from REL1_28+ to ease backports to extensions and core.
+* (T175439) Unbreak Postgres Updater when setting defaults for a column.
+* (T160298) Remove use of implicitGroupBy() in ActiveUsersPager.
+* (T142304) Allow putting the app ID in the password for bot passwords.
+* Updated dev dependancy phpunit/phpunit from v4.8.24 to v4.8.36.
+* (T178451) SECURITY: Potential XSS when $wgShowExceptionDetails = false and browser
+  sends non-standard url escaping.
+* (T165846) SECURITY: BotPassword login attempts weren't throttled.
+* (T128209) SECURITY: Reflected File Download from api.php.
+* (T134100) SECURITY: Do not reveal if user exists during login failure.
+* (T176247) SECURITY: Ensure Message::rawParams can't lead to XSS.
+* (T125163) SECURITY: Make anchor for headlines escape > and <.
+* (T180237) SECURITY: Protect vendor folder with .htaccess.
+* (T180231) SECURITY: Remove PHPUnit file with known RCE if exists in update.php.
+* (T124404) SECURITY: XSS in langconverter when regex hits pcre.backtrack_limit.
+* (T119158) SECURITY: Handle -{}- syntax in attributes safely.
+
 == MediaWiki 1.27.3 ==
 Due to a packaging error, the wrong version of the SyntaxHighlight extension was
 included in the tarball version of MediaWiki 1.27.2. The version included had a
index fd223e6..35f2ce9 100644 (file)
@@ -232,7 +232,8 @@ abstract class ChannelFeed extends FeedItem {
                header( "Content-type: $mimetype; charset=UTF-8" );
 
                // Set a sane filename
-               $exts = MimeMagic::singleton()->getExtensionsForType( $mimetype );
+               $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                       ->getExtensionsForType( $mimetype );
                $ext = $exts ? strtok( $exts, ' ' ) : 'xml';
                header( "Content-Disposition: inline; filename=\"feed.{$ext}\"" );
 
index 71113a8..2ad42e5 100644 (file)
@@ -113,7 +113,7 @@ class StreamFile {
                        return 'unknown/unknown';
                }
 
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                // Use the extension only, rather than magic numbers, to avoid opening
                // up vulnerabilities due to uploads of files with allowed extensions
                // but disallowed types.
index c5f2fcf..4348fc8 100644 (file)
@@ -78,7 +78,8 @@ abstract class ApiFormatBase extends ApiBase {
                } elseif ( $this->getIsHtml() ) {
                        return 'api-result.html';
                } else {
-                       $exts = MimeMagic::singleton()->getExtensionsForType( $this->getMimeType() );
+                       $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                               ->getExtensionsForType( $this->getMimeType() );
                        $ext = $exts ? strtok( $exts, ' ' ) : strtolower( $this->mFormat );
                        return "api-result.$ext";
                }
index 6b896c9..2e9e69c 100644 (file)
@@ -283,6 +283,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data['interwikimagic'] = (bool)$config->get( 'InterwikiMagic' );
                $data['magiclinks'] = $config->get( 'EnableMagicLinks' );
 
+               $data['categorycollation'] = $config->get( 'CategoryCollation' );
+
                Hooks::run( 'APIQuerySiteInfoGeneralInfo', [ $this, &$data ] );
 
                return $this->getResult()->addValue( 'query', $property, $data );
index 06cd64f..00ea555 100644 (file)
        "api-help-param-direction": "En qué sentido hacer la enumeración:\n;newer: De más antiguos a más recientes. Nota: $1start debe ser anterior a $1end.\n;older: De más recientes a más antiguos (orden predefinido). Nota: $1start debe ser posterior a $1end.",
        "api-help-param-continue": "Cuando haya más resultados disponibles, utiliza esto para continuar.",
        "api-help-param-no-description": "<span class=\"apihelp-empty\">(sin descripción)</span>",
+       "api-help-param-maxbytes": "No puede sobrepasar $1 {{PLURAL:$1|byte|bytes}} de longitud.",
+       "api-help-param-maxchars": "No puede sobrepasar $1 {{PLURAL:$1|carácter|caracteres}} de longitud.",
        "api-help-examples": "{{PLURAL:$1|Ejemplo|Ejemplos}}:",
        "api-help-permissions": "{{PLURAL:$1|Permiso|Permisos}}:",
        "api-help-permissions-granted-to": "{{PLURAL:$1|Concedido a|Concedidos a}}: $2",
        "apierror-invalidurlparam": "Valor no válido para <var>$1urlparam</var> (<kbd>$2=$3</kbd>).",
        "apierror-invaliduser": "Nombre de usuario «$1» no válido.",
        "apierror-invaliduserid": "El identificador de usuario <var>$1</var> no es válido.",
+       "apierror-maxbytes": "El parámetro <var>$1</var> no puede sobrepasar $2 {{PLURAL:$2|byte|bytes}}",
+       "apierror-maxchars": "El parámetro <var>$1</var> no puede sobrepasar $2 {{PLURAL:$2|carácter|caracteres}} de longitud.",
        "apierror-mimesearchdisabled": "La búsqueda MIME está deshabilitada en el modo avaro.",
        "apierror-missingcontent-pageid": "Contenido faltante para la página con identificador $1.",
        "apierror-missingparam-at-least-one-of": "{{PLURAL:$2|El parámetro|Al menos uno de los parámetros}} $1 es necesario.",
index 546bbf5..39025ec 100644 (file)
        "api-help-param-limit": "Inte mer än $1 tillåts.",
        "api-help-param-limit2": "Inte mer än $1 ($2 för robotar) tillåts.",
        "api-help-param-multi-separate": "Separera värden med <kbd>|</kbd> eller [[Special:ApiHelp/main#main/datatypes|alternativ]].",
+       "api-help-param-maxbytes": "Kan inte vara längre än $1 {{PLURAL:$1|byte}}.",
+       "api-help-param-maxchars": "Kan inte vara längre än $1 {{PLURAL:$1|tecken}}.",
        "apierror-articleexists": "Artikeln du försökte skapa har redan skapats.",
        "apierror-baddiff": "Diff kan inte hämtas. En eller båda sidversioner finns inte eller du har inte behörighet för att visa dem.",
        "apierror-invalidoldimage": "Parametern <var>oldimage</var> har ett ogiltigt format.",
        "apierror-invalidsection": "Parametern <var>section</var> måste vara ett giltigt avsnitts-ID eller <kbd>new</kbd>.",
+       "apierror-maxbytes": "Parametern <var>$1</var> kan inte var längre än $2 {{PLURAL:$2|byte}}",
+       "apierror-maxchars": "Parametern <var>$1</var> kan inte vara längre än $2 {{PLURAL:$2|tecken}}",
        "apierror-nosuchuserid": "Det finns ingen användare med ID $1.",
        "apierror-offline": "Kunde inte fortsätta p.g.a. problem med nätverksanslutningen. Se till att du har en fungerande Internetanslutning och försök igen.",
        "apierror-protect-invalidaction": "Ogiltig skyddstyp \"$1\".",
index ea5f2dd..75baaaa 100644 (file)
        "apihelp-xml-summary": "使用 XML 格式輸出資料。",
        "apihelp-xmlfm-summary": "使用 XML 格式輸出資料 (使用 HTML 格式顯示)。",
        "api-format-title": "MediaWiki API 結果",
+       "api-format-prettyprint-header": "這是$1格式的HTML呈現。HTML適合用於除錯,但不適合應用程式使用。\n\n指定<var>format</var>參數以更改輸出格式。要檢視$1格式的非HTML呈現,設定<kbd>format=$2</kbd>。\n\n參考 [[mw:Special:MyLanguage/API|完整說明文件]] 或 [[Special:ApiHelp/main|API說明]] 以取得更多資訊。",
        "api-pageset-param-titles": "要使用的標題清單。",
        "api-pageset-param-pageids": "要使用的頁面 ID 清單。",
        "api-pageset-param-revids": "要使用的修訂 ID 清單。",
index 5d0da6d..0b61979 100644 (file)
@@ -229,7 +229,7 @@ class FileBackendGroup {
         * @since 1.27
         */
        public function guessMimeInternal( $storagePath, $content, $fsPath ) {
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                // Trust the extension of the storage path (caller must validate)
                $ext = FileBackend::extensionFromPath( $storagePath );
                $type = $magic->guessTypesForExtension( $ext );
index 5005280..5d22b8d 100644 (file)
@@ -1543,7 +1543,7 @@ class FileRepo {
         */
        public function getFileProps( $virtualUrl ) {
                $fsFile = $this->getLocalReference( $virtualUrl );
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                if ( $fsFile ) {
                        $props = $mwProps->getPropsFromPath( $fsFile->getPath(), true );
                } else {
index 2edd6d0..5e37d67 100644 (file)
@@ -452,7 +452,7 @@ class RepoGroup {
 
                        return $repo->getFileProps( $fileName );
                } else {
-                       $mwProps = new MWFileProps( MimeMagic::singleton() );
+                       $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
 
                        return $mwProps->getPropsFromPath( $fileName, true );
                }
index 827f4ca..4e79de2 100644 (file)
@@ -250,7 +250,7 @@ abstract class File implements IDBAccessObject {
                $oldMime = $old->getMimeType();
                $n = strrpos( $new, '.' );
                $newExt = self::normalizeExtension( $n ? substr( $new, $n + 1 ) : '' );
-               $mimeMagic = MimeMagic::singleton();
+               $mimeMagic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                return $mimeMagic->isMatchingExtension( $newExt, $oldMime );
        }
index 43b6855..16c154f 100644 (file)
@@ -286,7 +286,7 @@ class ForeignAPIFile extends File {
         */
        function getMimeType() {
                if ( !isset( $this->mInfo['mime'] ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $this->mInfo['mime'] = $magic->guessTypesForExtension( $this->getExtension() );
                }
 
@@ -300,7 +300,7 @@ class ForeignAPIFile extends File {
                if ( isset( $this->mInfo['mediatype'] ) ) {
                        return $this->mInfo['mediatype'];
                }
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                return $magic->getMediaType( null, $this->getMimeType() );
        }
index bb12515..4248f95 100644 (file)
@@ -1284,7 +1284,7 @@ class LocalFile extends File {
                        ) {
                                $props = $this->repo->getFileProps( $srcPath );
                        } else {
-                               $mwProps = new MWFileProps( MimeMagic::singleton() );
+                               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                                $props = $mwProps->getPropsFromPath( $srcPath, true );
                        }
                }
index cdad5fc..fde68bb 100644 (file)
@@ -151,7 +151,7 @@ class UnregisteredLocalFile extends File {
         */
        function getMimeType() {
                if ( !isset( $this->mime ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $this->mime = $magic->guessMimeType( $this->getLocalRefPath() );
                }
 
index 6d583da..f8e3b17 100644 (file)
@@ -52,7 +52,7 @@ class HashBagOStuff extends BagOStuff {
 
        protected function expire( $key ) {
                $et = $this->bag[$key][self::KEY_EXP];
-               if ( $et == self::TTL_INDEFINITE || $et > time() ) {
+               if ( $et == self::TTL_INDEFINITE || $et > $this->getCurrentTime() ) {
                        return false;
                }
 
@@ -115,4 +115,8 @@ class HashBagOStuff extends BagOStuff {
        public function clear() {
                $this->bag = [];
        }
+
+       protected function getCurrentTime() {
+               return time();
+       }
 }
index e63b32e..ae7f36c 100644 (file)
@@ -135,7 +135,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        const TTL_LAGGED = 30;
        /** Idiom for delete() for "no hold-off" */
        const HOLDOFF_NONE = 0;
-       /** Idiom for set() for "do not augment the storage medium TTL" */
+       /** Idiom for set()/getWithSetCallback() for "do not augment the storage medium TTL" */
        const STALE_TTL_NONE = 0;
 
        /** Idiom for getWithSetCallback() for "no minimum required as-of timestamp" */
@@ -613,20 +613,22 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         * on all keys that should be changed. When get() is called on those
         * keys, the relevant "check" keys must be supplied for this to work.
         *
-        * The "check" key essentially represents a last-modified field.
-        * When touched, the field will be updated on all cache servers.
-        * Keys using it via get(), getMulti(), or getWithSetCallback() will
-        * be invalidated. It is treated as being HOLDOFF_TTL seconds in the future
-        * by those methods to avoid race conditions where dependent keys get updated
-        * with stale values (e.g. from a DB replica DB).
-        *
-        * This is typically useful for keys with hardcoded names or in some cases
-        * dynamically generated names where a low number of combinations exist.
-        * When a few important keys get a large number of hits, a high cache
-        * time is usually desired as well as "lockTSE" logic. The resetCheckKey()
-        * method is less appropriate in such cases since the "time since expiry"
-        * cannot be inferred, causing any get() after the reset to treat the key
-        * as being "hot", resulting in more stale value usage.
+        * The "check" key essentially represents a last-modified time of an entity.
+        * When the key is touched, the timestamp will be updated to the current time.
+        * Keys using the "check" key via get(), getMulti(), or getWithSetCallback() will
+        * be invalidated. The timestamp of "check" is treated as being HOLDOFF_TTL seconds
+        * in the future by get*() methods in order to avoid race conditions where keys are
+        * updated with stale values (e.g. from a DB replica DB).
+        *
+        * This method is typically useful for keys with hardcoded names or in some cases
+        * dynamically generated names, provided the number of such keys is modest. It sets a
+        * high TTL on the "check" key, making it possible to know the timestamp of the last
+        * change to the corresponding entities in most cases.
+        *
+        * When a few important keys get a large number of hits, a high cache time is usually
+        * desired as well as "lockTSE" logic. The resetCheckKey() method is less appropriate
+        * in such cases since the "time since expiry" cannot be inferred, causing any get()
+        * after the reset to treat the key as being "hot", resulting in more stale value usage.
         *
         * Note that "check" keys won't collide with other regular keys.
         *
@@ -657,12 +659,9 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *        to, any temporary ejection of that server will cause the value to be
         *        seen as purged as a new server will initialize the "check" key.
         *
-        * The advantage is that this does not place high TTL keys on every cache
-        * server, making it better for code that will cache many different keys
-        * and either does not use lockTSE or uses a low enough TTL anyway.
-        *
-        * This is typically useful for keys with dynamically generated names
-        * where a high number of combinations exist.
+        * The advantage here is that the "check" keys, which have high TTLs, will only
+        * be created when a get*() method actually uses that key. This is better when
+        * a large number of "check" keys are invalided in a short period of time.
         *
         * Note that "check" keys won't collide with other regular keys.
         *
@@ -868,6 +867,11 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *      Default: WANObjectCache::LOW_TTL.
         *   - ageNew: Consider popularity refreshes only once a key reaches this age in seconds.
         *      Default: WANObjectCache::AGE_NEW.
+        *   - staleTTL: Seconds to keep the key around if it is stale. This means that on cache
+        *      miss the callback may get $oldValue/$oldAsOf values for keys that have already been
+        *      expired for this specified time. This is useful if adaptiveTTL() is used on the old
+        *      value's as-of time when it is verified as still being correct.
+        *      Default: WANObjectCache::STALE_TTL_NONE
         * @return mixed Value found or written to the key
         * @note Options added in 1.28: version, busyValue, hotTTR, ageNew, pcGroup, minAsOf
         * @note Callable type hints are not used to avoid class-autoloading
@@ -957,6 +961,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
        protected function doGetWithSetCallback( $key, $ttl, $callback, array $opts, &$asOf = null ) {
                $lowTTL = isset( $opts['lowTTL'] ) ? $opts['lowTTL'] : min( self::LOW_TTL, $ttl );
                $lockTSE = isset( $opts['lockTSE'] ) ? $opts['lockTSE'] : self::TSE_NONE;
+               $staleTTL = isset( $opts['staleTTL'] ) ? $opts['staleTTL'] : self::STALE_TTL_NONE;
                $checkKeys = isset( $opts['checkKeys'] ) ? $opts['checkKeys'] : [];
                $busyValue = isset( $opts['busyValue'] ) ? $opts['busyValue'] : null;
                $popWindow = isset( $opts['hotTTR'] ) ? $opts['hotTTR'] : self::HOT_TTR;
@@ -1056,6 +1061,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
 
                if ( $valueIsCacheable ) {
                        $setOpts['lockTSE'] = $lockTSE;
+                       $setOpts['staleTTL'] = $staleTTL;
                        // Use best known "since" timestamp if not provided
                        $setOpts += [ 'since' => $preCallbackTime ];
                        // Update the cache; this will fail if the key is tombstoned
@@ -1496,6 +1502,46 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
         *     $ttl = $cache->adaptiveTTL( $mtime, $cache::TTL_DAY );
         * @endcode
         *
+        * Another use case is when there are no applicable "last modified" fields in the DB,
+        * and there are too many dependencies for explicit purges to be viable, and the rate of
+        * change to relevant content is unstable, and it is highly valued to have the cached value
+        * be as up-to-date as possible.
+        *
+        * Example usage:
+        * @code
+        *     $query = "<some complex query>";
+        *     $idListFromComplexQuery = $cache->getWithSetCallback(
+        *         $cache->makeKey( 'complex-graph-query', $hashOfQuery ),
+        *         GraphQueryClass::STARTING_TTL,
+        *         function ( $oldValue, &$ttl, array &$setOpts, $oldAsOf ) use ( $query, $cache ) {
+        *             $gdb = $this->getReplicaGraphDbConnection();
+        *             // Account for any snapshot/replica DB lag
+        *             $setOpts += GraphDatabase::getCacheSetOptions( $gdb );
+        *
+        *             $newList = iterator_to_array( $gdb->query( $query ) );
+        *             sort( $newList, SORT_NUMERIC ); // normalize
+        *
+        *             $minTTL = GraphQueryClass::MIN_TTL;
+        *             $maxTTL = GraphQueryClass::MAX_TTL;
+        *             if ( $oldValue !== false ) {
+        *                 // Note that $oldAsOf is the last time this callback ran
+        *                 $ttl = ( $newList === $oldValue )
+        *                     // No change: cache for 150% of the age of $oldValue
+        *                     ? $cache->adaptiveTTL( $oldAsOf, $maxTTL, $minTTL, 1.5 )
+        *                     // Changed: cache for %50 of the age of $oldValue
+        *                     : $cache->adaptiveTTL( $oldAsOf, $maxTTL, $minTTL, .5 );
+        *             }
+        *
+        *             return $newList;
+        *        },
+        *        [
+        *             // Keep stale values around for doing comparisons for TTL calculations.
+        *             // High values improve long-tail keys hit-rates, though might waste space.
+        *             'staleTTL' => GraphQueryClass::GRACE_TTL
+        *        ]
+        *     );
+        * @endcode
+        *
         * @param int|float $mtime UNIX timestamp
         * @param int $maxTTL Maximum TTL (seconds)
         * @param int $minTTL Minimum TTL (seconds); Default: 30
@@ -1512,7 +1558,7 @@ class WANObjectCache implements IExpiringStore, LoggerAwareInterface {
                        return $minTTL; // no last-modified time provided
                }
 
-               $age = time() - $mtime;
+               $age = $this->getCurrentTime() - $mtime;
 
                return (int)min( $maxTTL, max( $minTTL, $factor * $age ) );
        }
index 868c2d4..bbf88dc 100644 (file)
@@ -569,7 +569,8 @@ interface IDatabase {
         * @param string|array $options The query options. See IDatabase::select() for details.
         * @param string|array $join_conds The query join conditions. See IDatabase::select() for details.
         *
-        * @return bool|mixed The value from the field, or false on failure.
+        * @return mixed The value from the field
+        * @throws DBQueryError
         */
        public function selectField(
                $table, $var, $cond = '', $fname = __METHOD__, $options = [], $join_conds = []
@@ -591,7 +592,8 @@ interface IDatabase {
         * @param string|array $options The query options. See IDatabase::select() for details.
         * @param string|array $join_conds The query join conditions. See IDatabase::select() for details.
         *
-        * @return bool|array The values from the field, or false on failure
+        * @return array The values from the field
+        * @throws DBQueryError
         * @since 1.25
         */
        public function selectFieldValues(
@@ -755,10 +757,8 @@ interface IDatabase {
         *
         *    [ 'page' => [ 'LEFT JOIN', 'page_latest=rev_id' ] ]
         *
-        * @return IResultWrapper|bool If the query returned no rows, a IResultWrapper
-        *   with no rows in it will be returned. If there was a query error, a
-        *   DBQueryError exception will be thrown, except if the "ignore errors"
-        *   option was set, in which case false will be returned.
+        * @return IResultWrapper Resulting rows
+        * @throws DBQueryError
         */
        public function select(
                $table, $vars, $conds = '', $fname = __METHOD__,
@@ -799,6 +799,7 @@ interface IDatabase {
         * @param array|string $join_conds Join conditions
         *
         * @return stdClass|bool
+        * @throws DBQueryError
         */
        public function selectRow( $table, $vars, $conds, $fname = __METHOD__,
                $options = [], $join_conds = []
@@ -823,6 +824,7 @@ interface IDatabase {
         * @param string $fname Function name for profiling
         * @param array $options Options for select
         * @return int Row count
+        * @throws DBQueryError
         */
        public function estimateRowCount(
                $table, $vars = '*', $conds = '', $fname = __METHOD__, $options = []
@@ -844,6 +846,7 @@ interface IDatabase {
         * @param array $options Options for select
         * @param array $join_conds Join conditions (since 1.27)
         * @return int Row count
+        * @throws DBQueryError
         */
        public function selectRowCount(
                $tables, $vars = '*', $conds = '', $fname = __METHOD__, $options = [], $join_conds = []
index b622ddc..a67e6e9 100644 (file)
@@ -189,6 +189,7 @@ class LoadBalancer implements ILoadBalancer {
                } else {
                        $this->loadMonitorConfig = [ 'class' => 'LoadMonitorNull' ];
                }
+               $this->loadMonitorConfig += [ 'lagWarnThreshold' => $this->maxLag ];
 
                foreach ( $params['servers'] as $i => $server ) {
                        $this->mLoads[$i] = $server['load'];
@@ -291,7 +292,7 @@ class LoadBalancer implements ILoadBalancer {
                                                "Server {host} is not replicating?", [ 'host' => $host ] );
                                        unset( $loads[$i] );
                                } elseif ( $lag > $maxServerLag ) {
-                                       $this->replLogger->warning(
+                                       $this->replLogger->info(
                                                "Server {host} has {lag} seconds of lag (>= {maxlag})",
                                                [ 'host' => $host, 'lag' => $lag, 'maxlag' => $maxServerLag ]
                                        );
index 8292c03..74c7765 100644 (file)
@@ -45,9 +45,22 @@ class LoadMonitor implements ILoadMonitor {
 
        /** @var float Moving average ratio (e.g. 0.1 for 10% weight to new weight) */
        private $movingAveRatio;
+       /** @var int Amount of replication lag in seconds before warnings are logged */
+       private $lagWarnThreshold;
 
-       const VERSION = 1; // cache key version
+       /** @var int cache key version */
+       const VERSION = 1;
+       /** @var int Default 'max lag' in seconds when unspecified */
+       const LAG_WARN_THRESHOLD = 10;
 
+       /**
+        * @param ILoadBalancer $lb
+        * @param BagOStuff $srvCache
+        * @param WANObjectCache $wCache
+        * @param array $options
+        *   - movingAveRatio: moving average constant for server weight updates based on lag
+        *   - lagWarnThreshold: how many seconds of lag trigger warnings
+        */
        public function __construct(
                ILoadBalancer $lb, BagOStuff $srvCache, WANObjectCache $wCache, array $options = []
        ) {
@@ -59,6 +72,9 @@ class LoadMonitor implements ILoadMonitor {
                $this->movingAveRatio = isset( $options['movingAveRatio'] )
                        ? $options['movingAveRatio']
                        : 0.1;
+               $this->lagWarnThreshold = isset( $options['lagWarnThreshold'] )
+                       ? $options['lagWarnThreshold']
+                       : self::LAG_WARN_THRESHOLD;
        }
 
        public function setLogger( LoggerInterface $logger ) {
@@ -159,9 +175,10 @@ class LoadMonitor implements ILoadMonitor {
                        // Scale from 10% to 100% of nominal weight
                        $weightScales[$i] = max( $newWeight, 0.10 );
 
+                       $host = $this->parent->getServerName( $i );
+
                        if ( !$conn ) {
                                $lagTimes[$i] = false;
-                               $host = $this->parent->getServerName( $i );
                                $this->replLogger->error(
                                        __METHOD__ . ": host {db_server} is unreachable",
                                        [ 'db_server' => $host ]
@@ -174,11 +191,19 @@ class LoadMonitor implements ILoadMonitor {
                        } else {
                                $lagTimes[$i] = $conn->getLag();
                                if ( $lagTimes[$i] === false ) {
-                                       $host = $this->parent->getServerName( $i );
                                        $this->replLogger->error(
                                                __METHOD__ . ": host {db_server} is not replicating?",
                                                [ 'db_server' => $host ]
                                        );
+                               } elseif ( $lagTimes[$i] > $this->lagWarnThreshold ) {
+                                       $this->replLogger->error(
+                                               "Server {host} has {lag} seconds of lag (>= {maxlag})",
+                                               [
+                                                       'host' => $host,
+                                                       'lag' => $lagTimes[$i],
+                                                       'maxlag' => $this->lagWarnThreshold
+                                               ]
+                                       );
                                }
                        }
 
index aae66d3..eb7b6ba 100644 (file)
@@ -357,7 +357,7 @@ class DjVuHandler extends ImageHandler {
                global $wgDjvuOutputExtension;
                static $mime;
                if ( !isset( $mime ) ) {
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $mime = $magic->guessTypesForExtension( $wgDjvuOutputExtension );
                }
 
index 481e880..8551a12 100644 (file)
@@ -288,7 +288,7 @@ abstract class MediaHandler {
         * @return array Thumbnail extension and MIME type
         */
        function getThumbType( $ext, $mime, $params = null ) {
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                if ( !$ext || $magic->isMatchingExtension( $ext, $mime ) === false ) {
                        // The extension is not valid for this MIME type and we do
                        // recognize the MIME type
index c4baae4..76ff41b 100644 (file)
@@ -287,10 +287,13 @@ class ImagePage extends Article {
 
        private function getLanguageForRendering( WebRequest $request, File $file ) {
                $handler = $this->displayImg->getHandler();
+               if ( !$handler ) {
+                       return null;
+               }
 
                $requestLanguage = $request->getVal( 'lang' );
                if ( !is_null( $requestLanguage ) ) {
-                       if ( $handler && $handler->validateParam( 'lang', $requestLanguage ) ) {
+                       if ( $handler->validateParam( 'lang', $requestLanguage ) ) {
                                return $requestLanguage;
                        }
                }
index 2315887..2ca4190 100644 (file)
@@ -29,7 +29,7 @@
  * @author Petr Kadlec <mormegil@centrum.cz>
  */
 class SpecialListGroupRights extends SpecialPage {
-       function __construct() {
+       public function __construct() {
                parent::__construct( 'Listgrouprights' );
        }
 
@@ -81,14 +81,10 @@ class SpecialListGroupRights extends SpecialPage {
                                ? 'all'
                                : $group;
 
-                       $msg = $this->msg( 'group-' . $groupname );
-                       $groupnameLocalized = !$msg->isBlank() ? $msg->text() : $groupname;
+                       $groupnameLocalized = UserGroupMembership::getGroupName( $groupname );
 
-                       $msg = $this->msg( 'grouppage-' . $groupname )->inContentLanguage();
-                       $grouppageLocalized = !$msg->isBlank() ?
-                               $msg->text() :
-                               MWNamespace::getCanonicalName( NS_PROJECT ) . ':' . $groupname;
-                       $grouppageLocalizedTitle = Title::newFromText( $grouppageLocalized );
+                       $grouppageLocalizedTitle = UserGroupMembership::getGroupPage( $groupname )
+                               ?: Title::newFromText( MWNamespace::getCanonicalName( NS_PROJECT ) . ':' . $groupname );
 
                        if ( $group == '*' || !$grouppageLocalizedTitle ) {
                                // Do not make a link for the generic * group or group with invalid group page
@@ -231,7 +227,7 @@ class SpecialListGroupRights extends SpecialPage {
         * @param array $remove Array of groups this group is allowed to remove or true
         * @param array $addSelf Array of groups this group is allowed to add to self or true
         * @param array $removeSelf Array of group this group is allowed to remove from self or true
-        * @return string List of all granted permissions, separated by comma separator
+        * @return string HTML list of all granted permissions
         */
        private function formatPermissions( $permissions, $revoke, $add, $remove, $addSelf, $removeSelf ) {
                $r = [];
index a6d4a3e..15749b2 100644 (file)
@@ -237,7 +237,8 @@ class MediaStatisticsPage extends QueryPage {
         * @return string Comma separated list of allowed extensions (e.g. ".ogg, .oga")
         */
        private function getExtensionList( $mime ) {
-               $exts = MimeMagic::singleton()->getExtensionsForType( $mime );
+               $exts = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer()
+                       ->getExtensionsForType( $mime );
                if ( $exts === null ) {
                        return '';
                }
index da3f9f8..c335e2b 100644 (file)
@@ -420,7 +420,7 @@ abstract class UploadBase {
                        $chunk = fread( $fp, 256 );
                        fclose( $fp );
 
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $extMime = $magic->guessTypesForExtension( $this->mFinalExtension );
                        $ieTypes = $magic->getIEMimeTypes( $this->mTempPath, $chunk, $extMime );
                        foreach ( $ieTypes as $ieType ) {
@@ -446,7 +446,7 @@ abstract class UploadBase {
                        return $status;
                }
 
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                $this->mFileProps = $mwProps->getPropsFromPath( $this->mTempPath, $this->mFinalExtension );
                $mime = $this->mFileProps['mime'];
 
@@ -505,7 +505,7 @@ abstract class UploadBase {
                # getTitle() sets some internal parameters like $this->mFinalExtension
                $this->getTitle();
 
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                $this->mFileProps = $mwProps->getPropsFromPath( $this->mTempPath, $this->mFinalExtension );
 
                # check MIME type, if desired
@@ -950,7 +950,7 @@ abstract class UploadBase {
                        $this->mFinalExtension = '';
 
                        # No extension, try guessing one
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $mime = $magic->guessMimeType( $this->mTempPath );
                        if ( $mime !== 'unknown/unknown' ) {
                                # Get a space separated list of extensions
@@ -1207,7 +1207,7 @@ abstract class UploadBase {
         * @return bool
         */
        public static function verifyExtension( $mime, $extension ) {
-               $magic = MimeMagic::singleton();
+               $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
 
                if ( !$mime || $mime == 'unknown' || $mime == 'unknown/unknown' ) {
                        if ( !$magic->isRecognizableExtension( $extension ) ) {
index c2ab899..ce087bf 100644 (file)
@@ -218,7 +218,7 @@ class UploadStash {
                        );
                }
 
-               $mwProps = new MWFileProps( MimeMagic::singleton() );
+               $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                $fileProps = $mwProps->getPropsFromPath( $path, true );
                wfDebug( __METHOD__ . " stashing file at '$path'\n" );
 
@@ -490,9 +490,9 @@ class UploadStash {
                        $extension = $n ? substr( $path, $n + 1 ) : '';
                } else {
                        // If not, assume that it should be related to the MIME type of the original file.
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $mimeType = $magic->guessMimeType( $path );
-                       $extensions = explode( ' ', MimeMagic::singleton()->getExtensionsForType( $mimeType ) );
+                       $extensions = explode( ' ', $magic->getExtensionsForType( $mimeType ) );
                        if ( count( $extensions ) ) {
                                $extension = $extensions[0];
                        }
index e60b9ab..9d05c6a 100644 (file)
@@ -30,9 +30,9 @@ class MWFileProps {
        private $magic;
 
        /**
-        * @param MimeMagic $magic
+        * @param MimeAnalyzer $magic
         */
-       public function __construct( MimeMagic $magic ) {
+       public function __construct( MimeAnalyzer $magic ) {
                $this->magic = $magic;
        }
 
index 2c30c04..12eed53 100644 (file)
        "create": "patizeng",
        "create-local": "cunusen itiniay a buhci tu kamu",
        "delete": "misipu",
+       "undelete_short": "Undelete {{PLURAL:$1|one edit|$1 edits}}",
        "viewdeleted_short": "miciwsace {{PLURAL:$1|1 masipuay tu masumad|$1 masipuay tu masumad}}",
        "protect": "midiput",
        "protect_change": "misumad",
        "redirectpagesub": "miliyaw patatuzu’",
        "redirectto": "miliyaw patatuzu’ i:",
        "lastmodifiedat": "uyni kasabelih sazikuz mikawaway tu kalumyiti i $1 $2.",
-       "viewcount": "tina belih masuped-miala tuway {{PLURAL:$1|$1}}.",
+       "viewcount": "tina kasabelih masuped-miala tuway {{PLURAL:$1|$1}}.",
        "protectedpage": "madiputay a kasabelih",
        "jumpto": "taayaw:",
        "jumptonavigation": "pasubana’ tu miidangay",
        "title-invalid-leading-colon": "milungucay a kasabelih  satangahan yamalyilu la’cusay a mahaw-bacu i lalingatuan.",
        "perfcached": "isasa’ay sa ku kabilil-miala kalunasulitan, hakay caay sabaluhay. kabilil-miala kalunasulitan sayadah taneng misuped {{PLURAL:$1|1 ku heci|$1 a heci}}.\n\n(kabilil-miala kalunasulitan: tinnaw saca zikecan dinwa, saka dayum cengse atu tangan misaungay, ilabu’ nu pazateng-sakaluk cacay nanunuz izaway madayumay a kalunasulitan.)",
        "perfcachedts": "isasa’ay u saduba’ kalunasulitan, sazikuz misabaluh tuki sa u $1. saduba’ kalunasulitan sayadah sa kapah misuped  {{PLURAL:$4|1 ku heci|$4 ku heci}}.",
+       "querypage-no-updates": "ayza mapasatezep tina kasabelih baluh sasahicaan.\ni tina belih a kalunasulitan caay masabaluh tansul.",
        "viewsource": "ciwsace yuensma-kodo",
        "viewsource-title": "ciwsace $1 a sakatizeng banggu",
        "actionthrottled": "makelec saungay tuway",
        "viewsourcetext": "kapah kisu miciwsace atu mikopi tina kasabelih a sakatizeng banggu.",
        "viewyourtext": "kapah kisu miciwsace atu kopi ilabu’ tina kasabelih <strong> kisu mikawaway-kalumyiti </strong> yuensma-kodo.",
        "protectedinterface": "tina kasabelih sapinipabeli tina Wiki zwanti taypuolayta a sulit,zumasatu mapasetin tu ku midiputay amitena’ talahaday a sumad.\nanu maydih micunus saca misumad Wiki a belih,tayza [https://translatewiki.net/ translatewiki.net] a MediaWiki sanuniyazu’en cwanan.",
+       "editinginterface": "<strong>patalaw:</strong> imahini kisu mikawaway-kalumyiti a kasabelih sulit ku sapabeli zwanti taypuolayta pisaungay.\nmisumad tina kasabelih amalawilaw zuma misaungayay itiniay a Wiki maazih a misaungayay taypuolayta.",
        "translateinterface": "anu maydih misumad Wiki a mibelih,katayza [https://translatewiki.net/ translatewiki.net] a MediaWiki sanuniyazu’en cwanan",
        "cascadeprotected": "tina kasabelih madiput tuway, la’cus mikawaway-kalumyiti, izay tina kasabelih mawawah nu isasa’ay a \"patatusulay a diput\" mapili’ay a {{PLURAL:$1|cacay belih|yadah belih}} midiput  kasabelih nicaliwan:\n$2",
        "namespaceprotected": "inayi’ ku tungus kisu mikawaway-kalumyiti <strong>$1</strong> pangangananay a salaedan a kasabelih.",
        "passwordsent": "misaungayay \"$1\" a baluhay mima mapatahkal tu i saayaway a imyiyo(email) puenengan, kapihalhal henay maala tu tigami miliyaw patalabu aca",
        "blocked-mailpassword": "numisu a IP puenengan malangat tu caay kahasa mikawaway-kalumyiti, satezep tu namakay tini IP puenengan a mima panukasan sasahicaan a mitena’ patahtah.",
        "eauthentsent": "patigami tuway ku malucekay a tigami ta kisu misetinay a imyiyo(email) puenengan.\nanu caayhen milayap zuma a imyiyo(email), kanca kisu mikilul tigami a micuzu’ay tu kawaw, pilucek tina canghaw tatenga’ u numisuay.",
+       "throttled-mailpassword": "miliyaw patizeng mima a imyiyo(email) nasawni {{PLURAL:$1|tatukian}} patigami tuway.\na mitena’ patahtah,{{PLURAL:$1|tatukian}} nacacay patigami miliyaw patizeng mima a tigami.",
        "mailerror": "pabahel imyiyo(email) mungangaw: $1",
        "acct_creation_throttle_hit": "pisaungay IP puenengan nu misu ayza ta wiki a labang i capi demiad $2 patizeng tuway {{PLURAL:$1|1 canghaw|$1 canghaw}}, mangasiw tu kakatukuhan mahasa a pabaw-sahezek.\nsisa, ayza caay palilid pisaungay tina IP puenengan a labang patizeng amahicahica canghaw.",
        "emailauthenticated": "imyiyo(email) puenengan nu misu malucek tu i $2 $3.",
        "botpasswords-label-delete": "masipu",
        "botpasswords-label-resetpassword": "miliyaw miteka setin mima",
        "botpasswords-label-grants": "matatungusay a tungus:",
+       "botpasswords-help-grants": "pabeli tu kinli kapah mahasa kisu misuped-miala situngusay a misaungayay canghaw nu misu, uyzasa itini miwawah pabeli tu kinli caay taneng misaungayay canghaw misuped-miala inayi’ay a tungus nu misu. piazih tu tatenga’ay [[Special:ListGrants|pabeli tu kinli sapat nu sulit]] maala yadah cesyun.",
        "botpasswords-label-grants-column": "pabeli tu kinli",
        "botpasswords-bad-appid": "kikay-tademaw kalungangan \"$1\" la’cus.",
        "botpasswords-insert-failed": "micunusen kikay-tademaw kalungangan \"$1\" mungnhaw, pacunusen tu haw?",
        "editingold": "<strong>patalaw: imahini kisu mikawaway-kalumyiti kasabelih maluman a sumad baziyong.</strong>\namahica kisu suped, itini masumad tu haw masumaday a amahicahica a lacul amahedaw.",
        "yourdiff": "sasizuma",
        "copyrightwarning": "piazihen, sacahamin i {{SITENAME}} namasanga’ay a paanin akilulen $2 sapabeli tu kinli a cedang patiyak (kahica nu kawaw piazih i $1).\namahica kisu caay maydih nisanga’ay tu cudad nu misu kilul tu nizateng masumad atu payakayak, amana itini patahka ku nasulitan.<br />\npiketun kisu tu tamiyan itini nisanga’ay tu cudad lacul nay sulitan nu misu, saca miala inayi’ nisanga’an niza tu tungus a kawaw midiput a binawlan a subal saca paybalucu’ laculaculan.\n<strong>amana i inayi’ pabeli tu kinli a pulita patahkal nasulitan!</strong>",
+       "copyrightwarning2": "piazihen, sacahamin i {{SITENAME}} nasanga’ay a paanin hakay amakawaway-kalumyiti ku zuma paaninay tu kalusasing, misumad saca masipu.\namahica kisu caay maydih nisanga’ay tu cudad nu misu kilul tu nizateng masumad atu payakayak, amana itini patahka ku nasulitan.<br />\npiketun kisu tu tamiyan itini nisanga’ay tu cudad lacul nay sulitan nu misu, saca miala inayi’ nisanga’an niza tu tungus a kawaw midiput a binawlan a subal saca paybalucu’ laculaculan (kahica nu kawaw piazih i $1).\n<strong>amana i inayi’ pabeli tu kinli a pulita patahkal nasulitan!</strong>",
        "editpage-cannot-use-custom-model": "tina kasabelih a lacul tatudungen-misanga’ amana pasumad.",
        "longpageerror": "<strong> mungangaw: patayzaan ku sulit lacul nu misu pulung sa {{PLURAL:$1|1 KB|$1 KB}}, mangasiw sisetyimo pabaw-sahezek {{PLURAL:$2|1 KB|$2 KB}}. </strong>\n\nla’cus misuped.",
        "readonlywarning": "<strong> patalaw: nasulitan-sulu pamutek samiteka midiput, sisa la’cus misuped nasanga’ kisu ayza mikawaway-kalumyiti saungay.</strong>\nkapah kisu mikopi numisuay a sulit zumasatu pazepit tu sulit tangan misuped, kanay misuped aca mikawaway-kalumyiti nu misu.\n\npamutek nasulitan-sulu a sisetyimo mikuwanay izaw isasa’ay a buhci tu kamu: $1",
+       "protectedpagewarning": "<strong> patalaw: tina kasabelih madiput tuway, situngusay mikuwanay misaungayay dada’ taneng mikawaway-kalumyiti.</strong>\nisasa’ pabeli capi demiad a nasulitan nazipa’an sapaazih tu tatenga’ay.",
        "semiprotectedpagewarning": "<strong> azihen:</strong>tina kasabelih madiput tuway, mapanganganay a misaungayay dada’ kapah mikawaway-kalumyiti.\nisasa’ sa, pabeli capi demiad a nasulitan nazipa’an kya kapah miazih tu tatenga’ay",
        "cascadeprotectedwarning": "<strong>patalaw:</strong> u nanu tina bilih sipakabit nu isasa’ay a {{PLURAL:$1|kasabelih}}, sisa patatusul midiput. maala a dada’[[Special:ListGroupRights|sazumaay a tungus]] a misaungayay kya kapah mikawaway-kalumyiti.",
        "titleprotectedwarning": "<strong> patalaw: tina kasabelih madiput tuway, maydih [[Special:ListGroupRights|sazumaay a tungus]] kyu taneng patizeng.</strong>\nisasa’ay nipabeli capi demiad nasulitan nazipa’an ngay miazih tu tatenga’ay",
        "templatesused": "uyni kasabelih pisaungay tu isasaay {{PLURAL:$1|taazihan mitudung}}:",
        "templatesusedpreview": "tina pataayaway miazih pisaungay kya isasa’ay a {{PLURAL:$1|taazihan mitudung}}",
-       "templatesusedsection": "tina belih pisaungay tu isasa’ay a {{PLURAL:$1|taazihan mitudung}}:",
+       "templatesusedsection": "tina kasabelih pisaungay tu isasa’ay a {{PLURAL:$1|taazihan mitudung}}:",
        "template-protected": "(madiputay)",
        "template-semiprotected": "(madiputay a kasabelih - satizep mikawaway tu kalumyiti)",
        "hiddencategories": "kina kasabelih tungusay nu {{PLURAL:$1|1 midimut kakuniza }}mamikawaw:",
        "duplicate-args-warning": "<strong>patalaw:</strong> [[:$1]] miawza [[:$2]] a \"$3\" aazihen-sulyang pisaungay mangsiw tu cacay,pisaungay dada’ nipabeli sazikuzay a aazihen-sulyang sulyang.",
        "duplicate-args-category": "anu taazihan-mitudung muawaw haw pisaungay misaliyaway a aazihen-sulyang a kasabelih",
        "duplicate-args-category-desc": "kya kasabelih yamalyilu misaliyaw pisaungay aazihen-sulyang a taazihan mitudung miawza, tinaku <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> saca  <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "expensive-parserfunction-warning": "<strong> patalaw:</strong> tina kasabelih masaungay kayadah eluc sisetyimo katahkalan nu kalisiw a tingalaw hansu-sausi.\npisaungay kinapina kanca haycay tu $2, {{PLURAL:$2|pisaungay}}, izaw {{PLURAL:$1|ayza $1 pisaungay}}.",
        "expensive-parserfunction-category": "pisaungay sayadah eluc sisetyimo katahkalan nu kalisiw a mapulita kasabelih",
        "post-expand-template-inclusion-warning": "<strong>patalaw:</strong> nicaliwan taazihan mitudung zikuz tabaki adidi’ matabesiw ku pikelec. uzuma taazihan mitudung lacul a caay papisaungay.",
        "post-expand-template-inclusion-category": "nicaliwan taazihan-mitudung mangasiw kelec nu kasabelih",
        "rev-suppressed-text-permission": "tina kasabelih sumad nay <strong> masatezep paazih </strong>.\ntaneng tayza [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} satezep paazih nasulitan nazipa’an] maala pulita cesyun.",
        "rev-deleted-text-unhide": "tina kasabelih a sumad nay <strong> masipu </strong>.\nkapah tayza [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} misipu nasulitan nazipa’an] maala pulita cesyun.\namahica kisu palalid, kapahtu kisu [$1 miciwsace tina sumad].",
        "rev-suppressed-text-unhide": "tina kasabelih a sumad nay <strong> masatezep paazih </strong>。\nkapah tayza [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} satezep paazih nasulitan nazipa’an] miala pulita cesyun。\namahica kisu apalalid,kapah tu kisu [$1 miciwsace tina sumad]",
+       "rev-deleted-text-view": "tina kasabelih masumad nay <strong>masipu</strong>.\nkapah kisu palalid ciwsace masumad, kapah tayza [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} masipu nasulitan nazipa’an] maala pulita cesyun.",
        "rev-suppressed-text-view": "tina kasabelih a sumad nay <strong> masatezep paazih </strong>.\nkapah kisu lalid miciwsace misumad,kapah tayza [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} satezep paazih nazipa’an ] miala pulita cesyun.",
        "rev-deleted-no-diff": "zayhan kasabelih ilabu’ a cacay a sumad nu ayaway nay <strong> masipu tuway </strong>, la’cus kisu miciwsace   sasizuma.\ntaneng tayza [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}] masipu nasulitan nazipa’an maala pulitaay a cesyun.",
        "rev-suppressed-no-diff": "zayhan kasabelih ilabu’ a cacay a sumad nu ayaway nay <strong>masipu tuway</strong>, la’cus kisu miciwsace sasizuma.",
        "revdelete-reasonotherlist": "zuma a mahicaay",
        "revdelete-edit-reasonlist": "masipu a mahicaay nu mikawaway-kalumyiti",
        "revdelete-offender": "masumad nu ayaway  masacudaday:",
-       "suppressionlog": "satezep paazih nasulitan nazipa’an",
+       "suppressionlog": "satezep paazih nasulitan-nazipa’an",
        "suppressionlogtext": "isasa’ay a piazihan-tu-sulit u mikuwanay micaliw tu masipuay saca malangat ku midimutay a lacul.\npitayza [[Special:BlockList|milangat piazihan-tu-sulit]] miala ayzasa malangatay a piazihan-tu-sulit.",
        "mergehistory": "mikabu kasabelih nazipa’an",
+       "mergehistory-header": "tina kasabelih kapah tu kisu mikabu nay kasabelih a nazipa’an ta zumaay baluhayay a kasabelih.\npilucekay tu tina sumad taneng palalid hizantu kya kasabelih nasawniay nazipa’an baziyong a masalaliday.",
        "mergehistory-box": "mikabu tatusa kasabelih a sumad:",
        "mergehistory-from": "saangangan kasabelih:",
        "mergehistory-into": "pabalucu’an kasabelih:",
        "diff-empty": "(inayi’ sasizuma)",
        "diff-multi-sameuser": "(malecaday misaungayay {{PLURAL:$1|ilaed izaw ku $1 a sumad}}inayi’ paazih)",
        "diff-multi-otherusers": "({{PLURAL:$1|cacay ilabu’ay a sumad|$1 ilabu’ay a sumad}} nay {{PLURAL:$2|uzumaay a misaungay|$2 misaungayay}} caay paazih)",
+       "diff-multi-manyusers": "({{PLURAL:$1|$1 ilabuay a sumad nu ayaway}} mangasiw $2 {{PLURAL:$2|misaungayay}} caay paazih)",
        "difference-missing-revision": "caykatepa’ sasizuma ($1) a {{PLURAL:$2|1 masumad nu ayaway|$2 masumad nu ayaway}}.\n\nsawsawni tina zayhan sasizuma misiket sungaliw, kasabelih masipu tu.\nkahica nu kawaw cesyun piazih [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} masipu nasulitan nazipa’an].",
        "searchresults": "heci nu makatepa",
        "searchresults-title": "$1 heci nu makatepa",
        "yournick": "baluhay sulitan a ngangan:",
        "prefs-help-signature": "i sasukamu kasabelih buhci tu kamu kanca pisaungay \"<nowiki>~~~~</nowiki>\" pangangan, bkya tatebanan nu nisulitan amaliyaw tu sulitan nu ngangan atu tuki.",
        "badsig": "mungangaw a saayaway sulitan a ngangan.\npikinsa HTML aazihen-paya.",
-       "badsiglength": "numisuay a nipangangan tadatanayu’.\nselepen tu $1 ke {{PLURAL:$1|tatebanan nu nisulitan}}",
+       "badsiglength": "sulitan a ngangan nu misu mangaleb tanaya’.\nkya tanaya’ sa amana mangasiw $1 {{PLURAL:$1|tatebanan nu nisulitan.}}",
        "yourgender": "milunguc kisu pisaungay canan a etul muawaw tisuwanan?",
        "gender-unknown": "anu miawaw tisuwan sa, tina zwanti hakay amana misaungay tu etul-sulit.",
        "gender-male": "mikawaway-kalumyiti Wiki kasabelih ciniza",
        "right-viewmywatchlist": "ciwsace misuay a miazihay a piazihan-tu-sulit",
        "right-editmywatchlist": "mikawaway-kalumyiti misuay miazihay a piazihan tu sulit. azihen, kanahatu inayi’ kuyni tungus, izaw hatizaay pisaungay cunusen ku kasabelih katukuh miazihay a piazihan tu sulit",
        "right-viewmyprivateinfo": "ciwsace numisuay a dimut kalunasulitan (tinaku, imyiyo(email) puenengan atu tatenga’ay a ngangan)",
+       "right-editmyprivateinfo": "mikawaway-kalumyiti misuay a midimut kasikazan kalunasulitan (tinaku, imyiyo(email) puenengan atu tatenga’ay a ngangan)",
        "right-editmyoptions": "mikawaway-kalumyiti nucimacimaay a setin tu kanamuhan",
        "right-rollback": "besuchan patiku sazikuzay a misaungayay a mikawaway-kalumyiti kasabelih",
        "right-markbotedits": "sacuzu’ patiku mikawaway-kalumyiti tu tademaw-kikay mikawaway-kalumyiti",
        "recentchangeslinked-page": "kasabelih kalungangan:",
        "recentchangeslinked-to": "Show changes to pages linked to the given page instead\nmisumad ku paazih masasiket tayza matuzu’ay kasabelih a nisumad",
        "recentchanges-page-added-to-category": "[[:$1]] macunus tu ta kakuniza",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] macunus ta kakuniza, [[Special:WhatLinksHere/$1|tina kasabelih mapacaliw ku zuma kasabelih]]",
        "recentchanges-page-removed-from-category": "[[:$1]] masipu tu nay kakuniza",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] nay kakuniza masipu tuway, [[Special:WhatLinksHere/$1|tina kasabelih mapacaliw ku zuma kasabelih]]",
        "autochange-username": "MediaWiki lunuk misumad",
        "upload": "patapabaw ku tangan",
        "reuploaddesc": "palawpes patapabaw satu tatiku patapabaw aazihan cudad",
        "filetype-mime-mismatch": "tangan mikilulay-tangan-ngangan \".$1\" caay katatungus sedap katukuhan tangan MIME nikalahizaan ($2)",
        "filetype-badmime": "amana mahasa patapabaw MIME nikalahizaan ku \"$1\" a tangan.",
        "filetype-bad-ie-mime": "Internet Explorer amitangan itini nikalahizaan mungangaw piazih ku \"$1\", hakay malecay midimutay a mundayk, caay mahasa patapabaw tina nikalahizaan tangan.",
+       "filetype-unwanted-type": "caay patahkal nizateng pisaungay tu tangan nikalahizaan <strong>\".$1\"</strong>.\npatahkal nizateng {{PLURAL:$3| tangan nikalahizaan izaw ku}} $2.",
+       "filetype-banned-type": "<strong>\".$1\"</strong>. {{PLURAL:$4|caay mahasa pisaungay tangan nikalahizaan}}.\nmahasaay a{{PLURAL:$3|tangan nikalahizaan}} ku $2.",
        "filetype-missing": "kya tangan inayi’ mikilulay ngangan nu tangan (tinaku \".jpg\")",
        "empty-file": "patayzaan nu misu a tangan u inayi’ay.",
        "file-too-large": "patayzaan tangan nu misu micalapay.",
        "backend-fail-closetemp": "la’cus miedeb misinga’ tu tangan.",
        "backend-fail-read": "la’cus maasip tangan \"$1\".",
        "backend-fail-create": "la’cus pasulit tu tangan \"$1\".",
+       "backend-fail-maxsize": "la’cus misulit tangan \"$1\" u nanu tangan pinalu mangasiw {{PLURAL:$2|$2 wyiyincu}}.",
        "backend-fail-readonly": "suped-sulu zikuzan \"$1\" ayzaay aasipen muse. mahicaay: <em>$2</em>",
        "backend-fail-synced": "tangan \"$1\" atu ilabuay i zikuzan nu suped-sulu a setyitase caay kalecad",
        "backend-fail-connect": "la’cus misasiket tayza suped-sulu zikuzan malutapiingan \"$1\"",
        "zip-bad": "ZIP tangan malepi’tu saca la’cus miasip.\nla’cus habutud han miteka zahkez kinsa.",
        "zip-unsupported": "ZIP tangan pisaungay tu MediaWiki ayza caay kadama sasahicaan.\nla’cus malecek miteka kazahkez mikinsa.",
        "uploadstash": "patapabaw ku sulu nu pisipetan",
+       "uploadstash-summary": "tina kasabelih kapah misuped-miala mapatapabaway saca mipatapabaw henay uyzasa caay henay i Wiki pabinawlanay a tangan, uyniyay a tangan taneng miciwsac ku patapabaway a misaungayay dada’, zumaay tatemaw la’cus miciwsac.",
        "uploadstash-clear": "palamadac tu suped-sulu nu tangan",
        "uploadstash-nofiles": "inayi’ masupetay a tangan nu misu.",
        "uploadstash-badtoken": "miteka saungay mungangaw. mikawaway-kalumyitiay nu misu a pincen hakay mangasiw, piliyaw aca.",
        "nolinkstoimage": "nayi’ ku kasabelih masasiket katukuh tini a tangan.",
        "morelinkstoimage": "miciwsace masasiket tayza tina a tangan i [[Special:WhatLinksHere/$1|sayadah masasiket]].",
        "linkstoimage-redirect": "$1 (tangan miliyaw patatuzu’) $2",
+       "duplicatesoffile": "isasa’ay a {{PLURAL:$1|tangan masaliyaw}} tu tina tangan  ([[Special:FileDuplicateSearch/$2|matineng pulita kalunasulitan]]):",
        "sharedupload": "tina tangan namakay $1 satu hakay masaungay nu zuma a cwanan.",
        "sharedupload-desc-there": "tina tangan namakay $1 tu hakay masazuma tu ku cwanan tu pisaungay.\nkapiazih tu tatenga’ay [$2 tangan  sapuelac kasabelih] matineng tatalaayaway tu cesyun.",
        "sharedupload-desc-here": "kina tangan nay $1 hakay satu pisaungay tu zuma a cwanan.\nisasaay paazih kuyniay a tangan i [$2 tangan patahkal kasabelih] a patahkalay a lacul.",
        "listredirects": "miliyaw patatuzu’ piazihan tu sulit",
        "listduplicatedfiles": "misaliyaw tu tangan piazihan tu sulit",
        "listduplicatedfiles-summary": "tina piazihan tu sulit yamalyilu sabaluhay baziyong a tangan atu zuma tangan misaliyaw a piazihan tu sulit, tina piazihan tu sulit dada’ paazih itiniay a tangan",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]] izaw [[$3|{{PLURAL:$2|a zuma|$2 a misaliyaw tu tangan}}]].",
        "unusedtemplates": "caayay kasaungay a taazihan mitudung",
        "unusedtemplatestext": "tina kasabelih pasilsil sacahamin i {{ns:template}} isasa’ nu pangangananay a salaedan caay macaliway a zuma kasabelih a taazihan mitudung.\niayaw misipu, maydihtu mikinsa izaw haw masasiket uyniyay taazihan mitudung a zuma kasabelih.",
        "randompage": "kakibalucu’ ay a kasabelih",
        "magiclink-tracking-pmid": "masasiketay a kasabelih nu pisaungay PMID kaliwaza tina Wiki mapasatezep tu miliyaw patizeng tu mima",
        "magiclink-tracking-pmid-desc": "tina kasabelih misaungay PMID kaliwaza masasiketay a kasabelih, piazih tu tatenga’ay  [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] a hicaen malimad.",
        "magiclink-tracking-isbn": "misasiketay a kasabelih nu pisaungay ISBN kaliwaza",
+       "magiclink-tracking-isbn-desc": "tina kasabelih pisaungay ISBN kaliwaza masasiket a kasabelih, pimiazih tu tatenga’ay [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_links mediawiki.org] a hicaen malimad.",
        "specialloguserlabel": "mileku-misaungayay:",
        "speciallogtitlelabel": "pamutekan (satangahan saca {{ns:user}}: misaungayay pakatineng misaungayay):",
        "log": "nasulitan nakawawan",
        "allpagesbadtitle": "matuzu’ay i kasabelih satangahan la’cus, yamalyilu labu kamu  saca labu’ay a Wiki i saayaway sulit.\nwiza hakay yamalyilu cacay saca yadahay la’cus micukaymas i pyawti a tatebanan nu nisulitan.",
        "allpages-bad-ns": "{{SITENAME}} inayi’ \"$1\" pangangananay a salaedan.",
        "allpages-hide-redirects": "midimut miliyaw patatuzu’ kasabelih",
-       "cachedspecial-viewing-cached-ttl": "imahini kisu miciwsace tina belih a saduba'ay baziyong, pabaw-sahezek izaw $1 a mautang.",
-       "cachedspecial-viewing-cached-ts": "imahini lisu ciwsace tina belih a saduba' baziyong, hakay caay malecad tu tatenga’ay.",
+       "cachedspecial-viewing-cached-ttl": "imahini kisu miciwsace tina kasabelih a saduba’ay baziyong, pabaw-sahezek izaw $1 a mautang.",
+       "cachedspecial-viewing-cached-ts": "imahini lisu ciwsace tina kasabelih a saduba’ baziyong, hakay caay malecad tu tatenga’ay.",
        "cachedspecial-refresh-now": "ciwsace sabaluhay a baziyong.",
        "categories": "kakuniza",
        "categories-submit": "paazih",
        "enotif_body_intro_restored": "{{SITENAME}} a kasabelih $1 i $PAGEEDITDATE ngay misaungayay $2 {{GENDER:$2| patiku}}, piazih ayzaay a sumad $3",
        "enotif_body_intro_changed": "{{SITENAME}} a kasabelih $1 i $PAGEEDITDATE ngay misaungayay $2 {{GENDER:$2|misumad}}, piazih ayzaay a sumad $3.",
        "enotif_anon_editor": "paceba panganganay a misaungayay $1",
+       "enotif_body": "$WATCHINGUSERNAME mahicatu kisu,\n\n$PAGEINTRO $NEWPAGE\n\nmikawaway-kalumyiti pecu’ nu lacul:$PAGESUMMARY $PAGEMINOREDIT\n\nmikawaway-kalumyitiay patakus sasakawawen:\ntigami haku:$PAGEEDITOR_EMAIL\ntina kakacawan:$PAGEEDITOR_WIKI\n\niayaw kisu miciwsace kya kasabelih, kakakilul sa kya sumad sisetyimo caaytu patakus tisuwan aca. kapahtu kisu i miazihay a piazihan tu sulit miliyaw patizeng kisu sacahamin miazih kasabelih takus setyitase.\n\n{{SITENAME}} patakus sisetyimo \n\n--\nmisumad imyiyo(email) patakus setin nu misu, katayza:\n{{canonicalurl:{{#special:Preferences}}}}\n\nmisumad nu misu miazihay a piazihan tu sulit setin, katayza:\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nnay miazihay a piazihan tu sulit masipu tina kasabelih, katayza:\n$UNWATCHURL\n\nmaminay tigami atu miala tatalaayaway a miedap:\n$HELPPAGE",
        "enotif_minoredit": "payni mikilulay a mikawaway-kalumyiti",
        "deletepage": "misipu tu kasabelih",
        "confirm": "malucekaytu",
        "deleteotherreason": "zumaay/nicunusay a mahicaay:",
        "deletereasonotherlist": "zuma a mahicaay",
        "deletereason-dropdown": "*  maazihay tu sa masipu tu mahicaay \n** sizuma sa palatuh \n** pauning\n** maalaw nisanga’an niza tu tungus a kawaw \n** masacudaday milunguc\n** malepi’ay miliyaw patatuzau’",
+       "delete-toobig": "tina kasabelih yamalyilu kayadahay a mikawaway-kalumyiti nazipa’an, mangsiw $1 {{PLURAL:$1|masumad nu ayaway}}.\nmakelec masipu tina kakuniza kasabelih a saungay, kya miliyas talibahalay miketun {{SITENAME}} a saungay.",
+       "delete-warning-toobig": "tina kasabelih izaw yadahay a mikawaway-kalumyiti nazipa’an, mangasiw $1 {{PLURAL:$1|masumad nu ayaway}}. \nmisipu kya kasabelih hakay maketun {{SITENAME}} nasulitan-sulu saungay;\npihaymawi misaungay.",
        "deleteprotected": "tina kasabelih madiputay tu, la’cus kisu misipu tina kasabelih.",
        "deleting-backlinks-warning": "<strong>patalaw:</strong>imahini kisu masipuay a kasabelih izaw [[Special:WhatLinksHere/{{FULLPAGENAME}}|zuma kasabelih]] masasiket saca nicaliwan.",
        "rollback": "panukasan mikawaway-kalumyiti",
        "protect-locked-blocked": "kasabelih malangat tuway, la’cus misumad midiput kasalaylay.\nisasa’ay kasabelih <strong>$1</strong> ayzaay a setin:",
        "protect-locked-dblock": "nasulitan-sulu maazihen, la’cus misumad midiput kasalaylay.\nzikuz u kasabelih <strong>$1</strong> ayza setin:",
        "protect-locked-access": "numisu a canghaw inayi’ ku tungus mabalic midiput kasaliyliy.\nisasa’ay kasabelih <strong>$1</strong> ayzaay a setin:",
+       "protect-cascadeon": "tina kasabelih madiput ayza, izay kasabelih mamicaliw isasa’ miteka patatusul midiput a {{PLURAL:$1|kasabelih}}.\nmisumad tina kasabelih a madiputay a kasaselal lawilaw patatusul midiput a sasahicaan.",
        "protect-default": "mahasa sacahamin misaungayay",
        "protect-fallback": "mahasa dada’ ku \"$1\" situngusay a misaungayay",
        "protect-level-autoconfirmed": "mahasa dada’ lunuk malucekay tu misaungayay",
        "undeleterevisions": "$1{{PLURAL:$1|baziyong}}misipu",
        "undeletehistory": "amahica kisu patiku kya kasabelih, sacahamin a masumaday a nazipa’an amapatiku amin.\namahica masipu tuway anu izaw ku misaungay malecaday a kalungangan patizeng baluhayay kasabelih, mapatikuay a masumaday nazipa’an atahkal iayaw nu tina nazipa’an nu kasabelih.",
        "undeleterevdel": "amahica sabaluhayay a kasabelih saca tangan masumad nu ayaway masipu tu liyad, a la’cus mileku palawpes misipuay a saungay.\nanumahiza sa kanca mipili’ hatizaay saca palawpes  midimut masipuay tu sabaluhay a sumad nu ayaway.",
+       "undeletehistorynoadmin": "kina kasabelih masipu tu.\nisasa’ay pecu’ nu lacul paazih masipu mahicaay atu masipu ayaw sacahamin  mikawaway-kalumyiti tina kasabelih a misaungayay pulita kalunasulitan.\nuyniyay masipuay tu tatenga’ay a cudad  masumad nu ayaway taneng dada’ tu mikuwanay.",
        "undelete-revision": "masipu nu $3 a $1 (i $4 $5) masumad nu ayaway",
        "undeleterevision-missing": "la’cus saca mahedaw a nisumadan.\nhakay kisu pisaungay tu mungangaway misiket, saca kya amasumad nu ayaway namaemicen patiku saca masipu.",
        "undeleterevision-duplicate-revid": "la’cus patiku {{PLURAL:$1|1 masumad nu ayaway|$1 masumad nu ayaway}}, zayhan {{PLURAL:$1|masumad nu ayaway a}} <code>rev_id</code> mapasaungay tuway.",
        "undeleteinvert": "kabelihan mipili’",
        "undeletecomment": "mahicaay:",
        "cannotundelete": "liyad saca hamin a palawpes  misipu mungangaw:\n$1",
+       "undeletedpage": "<strong>$1 mapatiku tuway </strong>\n\npiazih tu tatenga’ay [[Special:Log/delete|masipu nasulitan nazipa’an]] apalalitemuh tu kawaw capi demiad misipu atu patiku a nasulitan",
        "undelete-header": "kapiazih tu tatenga’ay [[Special:Log/delete|masipu nasulitan nazipa’an]] palalitemuh tu kawaw capi demiad masipuay kasabelih.",
        "undelete-search-title": "mikilim masipuay a kasabelih",
        "undelete-search-prefix": "paazih kasabelih miteka nay:",
        "imageinvalidfilename": "papatuzu’an a tangan  kalungangan la’cus.",
        "fix-double-redirects": "misabaluh sacahamin patatuzu’ nuayaway a satangahan miliyaw patatuzu’ kasabelih",
        "move-leave-redirect": "miliwan miliyaw patatuzu’ kasabelih",
+       "protectedpagemovewarning": "<strong>patalaw:tina kasabelih madiput tuway, situngusay mikuwanay misaungayay dada’ taneng mikawaway-kalumyiti.</strong>\nisasa’ pabeli capi demiad a nasulitan nazipa’an sapaazih tu tatenga’ay:",
        "semiprotectedpagemovewarning": "<strong> azihen:</strong> tina kasabelih madiput tuway, u mapanganganay a misaungayay dada’ kapah milimad. \nisasa’ sa, pabeli capi demiad a nasulitan nazipa’an kya kapah miazih tu tatenga’ay:",
        "move-over-sharedrepo": "[[:$1]] mamueneng tu i kapulungan tangan-sulu, u tangan a milimad tayni   satangahan a mitahpu tu kapulungan tangan.",
        "file-exists-sharedrepo": "mipili’ay a tangan kalungangan i kapulungan tangan-sulu masaungay tu ku zuma tangan.\npipili’en ku zuma a kalungangan.",
        "allmessagesdefault": "pataayaw tu kawaw palatuh  a sulit",
        "allmessagescurrent": "ayzaay palatuh a sulit",
        "allmessagestext": "tina kakitizaan pasilsil sacahamin i MediaWiki pangangananay a salaedanay a sisetyimo palatuh.\namahica kisu maydih mikileh mikuwanay a MediaWiki sanuniyazu’en, piazih tu tatenga’ay [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation MediaWiki sanuniyazu’en] atu [https://translatewiki.net translatewiki.net].",
+       "allmessagesnotsupportedDB": "mapasatezep tuway <strong>$wgUseDatabaseMessages</strong> setin, la’cus pisaungay tina kasabelih.",
        "allmessages-filter-legend": "kilim",
        "allmessages-filter": "kilul misumad zasatu mikilim:",
        "allmessages-filter-unmodified": "caay henay misumad",
        "file-no-thumb-animation": "<strong>azihen: kyu sitaneng mikelec, tina tangan sukep tu zunga nayi’ ku laheci nu tunghwa</strong>",
        "file-no-thumb-animation-gif": "<strong>piazihen: nay sitaneng kiyu makelec, tina nikalahizaan takalaw katingalaw GIF zunga inayi’ kananuwangay a teluc.</strong>",
        "newimages": "baluhay tangan a sulu nu zunga",
+       "imagelisttext": "isasa’ay ku <strong>$1</strong> {{PLURAL:$1|piazihan-tu-sulit}}, $2 kasalaylay.",
        "newimages-summary": "uyni sazumaay a kasabelih paazih sabaluhay patapabaw a tangan",
        "newimages-legend": "kilim",
        "newimages-label": "tangan kalungangan (saca liyad a nipangangan):",
        "confirmemail_invalidated": "palawpes tu imyiyo(email) puenengan palucekay",
        "invalidateemail": "palawpes imyiyo(email) malucekay tuway",
        "notificationemail_subject_changed": "{{SITENAME}} panganganay a imyiyo(email) puenengan masumad tuway",
+       "notificationemail_subject_removed": "{{SITENAME}} pangangan a imyiyo(email) puenengan masipu tuway.",
        "notificationemail_body_changed": "namakay IP puenengan $1 a tademaw (hakay kisu i), i {{SITENAME}} misumad ku canghaw $2 a imyiyo(email) puenengan tu \"$3\".\n\namahica caay kisu mihica, pisiketen calay-kakacawan(wangcan) a mikuwanay",
        "notificationemail_body_removed": "namakay IP puenengan $1 a tademaw (hakay kisu i) , i {{SITENAME}} masipu tu ku canghaw $2 a imyiyo(email) puenengan.\n\namahica caay kisu mihica, pisiketen calay-kakacawan(wangcan) a mikuwanay.",
        "scarytranscludedisabled": "[Interwiki miliyaw kodo caay ka saungayen]",
        "scarytranscludetoolong": "[URL tada tanayu’]",
        "deletedwhileediting": "<strong> patalaw:</strong>tinakasabelih i kisuwan miteka mikawaway-kalumyiti nazikuzan a masipu!",
        "confirmrecreate": "naamahiza mikawaway-kalumyiti kisu sa, misaungayay [[User:$1|$1]] ([[User talk:$1|sasukamu]]) masipu tuway tina kasabelih, mahicaay ku:\n: <em>$2</em>\npilucek kisu tatenga’ maydih miliyaw patizeng tina kasabelih.",
+       "confirmrecreate-noreason": "imahini kisu mikawaway-kalumyiti,misaungayay [[User:$1|$1]] ([[User talk:$1| sasukamu]]) misipu tuway tina kasabelih, piluceki kisu tatenga’ miliyaw patizeng tina kasabelih haw?",
        "recreate": "miliyaw miteka patizeng",
        "confirm-purge-title": "misipu tina kasabelih",
        "confirm_purge_button": "malucekay",
        "tag-mw-contentmodelchange": "lacul tatudungen misanga’  misumad",
        "tag-mw-contentmodelchange-description": "mikawaway-kalumyiti  [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel misumad kasabelih a lacul tatudungen misanga’].",
        "tags-title": "aazihen a paya",
+       "tags-intro": "tina kasabelih pasilsil sacahamin kapah sapisaungay sacuzu’ mikawaway-kalumyiti lacul a aazihen-paya atu uyniyay aazihen-paya midayhiway a sakaizaway.",
        "tags-tag": "aazihen a paya  kalungangan",
        "tags-display-header": "ilabu nu misumad nasulitan-nazipa’an paazih sasakawawen",
        "tags-description-header": "malekuay mibuhci tu kamu",
        "logentry-managetags-activate": "$1 {{GENDER:$2|misaungay tuway}} aazihen-paya \"$4\" pabeli tu misaungayay atu kikay-tademaw pisaungay",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|mapasatezep tuway}} aazihen-paya \"$4\" pabeli misaungayay atu kikay-tademaw pisaungay",
        "log-name-tag": "aazihen a paya nasulitan nazipa’an",
-       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|macunus}} tina {{PLURAL:$7|tazihan-paya}} $6 ta baziyong $4 nu belih $3",
+       "log-description-tag": "anu misaungayay nay teked masumad nu ayaway saca  nasulitan nazipa’an kasacacay micunus saca misipu [[Special:Tags|aazihen-paya]] sa apaazih i tina kasabelih. tina nasulitan nazipa’an caay pasilsil itawya sakay aazihen-paya sapisanga’ mikawaway-kalumyiti, masipu saca kalahizaan a saungay.",
+       "logentry-tag-update-add-revision": "$1 {{GENDER:$2|macunus}} tina {{PLURAL:$7|tazihan-paya}} $6 ta baziyong $4 nu kasabelih $3",
+       "logentry-tag-update-add-logentry": "$1 {{GENDER:$2|macunusen tuway}}{{PLURAL:$7|aazihen-paya}} $6 ta kasabelih $3 a nasulitan nazipa’an kasacacay $5.",
        "logentry-tag-update-remove-revision": "$1 {{GENDER:$2|masipu tuway}} {{PLURAL:$9|aazihen-paya}} $8 nay kasabelih $3  sumad $4.",
        "logentry-tag-update-remove-logentry": "$1 {{GENDER:$2|masipu tuway}} {{PLURAL:$9|aazihen-paya}} $8 nay nasulitan nazipa’an kasacacay $3 a sumad $5.",
        "logentry-tag-update-revision": "$1 {{GENDER:$2|misabaluh tuway}} aazihen-paya i kasabelih $3 a sumad $4 ({{PLURAL:$7|micunus}} $6; {{PLURAL:$9|misipu}} $8).",
        "authform-newtoken": "mahedaw mima-sacukcuk. $1",
        "authform-wrongtoken": "mima-sacukcuk mungangaw",
        "specialpage-securitylevel-not-allowed-title": "amana",
-       "specialpage-securitylevel-not-allowed": "ahicanaca, caay mahasa pisaungay tina belih kisu, u nanu ID nu misu caay henay sawantan.",
+       "specialpage-securitylevel-not-allowed": "ahicanaca, caay mahasa pisaungay tina kasabelih kisu, u nanu ID nu misu caay henay sawantan.",
        "authpage-cannot-login": "la’cus miteka patalabu.",
        "authpage-cannot-login-continue": "la’cus milalid patalabu, kasasiketan nu misu hakay mautang tuway.",
        "authpage-cannot-create": "la’cus miteka patizeng tu canghaw.",
index ed95d9d..5a70364 100644 (file)
        "cannotdelete-title": "تعذّر حذف الصفحة \"$1\"",
        "delete-hook-aborted": "أجهض خطّاف الحذف.\nلم يقدم أي توضيح.",
        "no-null-revision": "تعذر إنشاء مراجعة جديدة فارغة لصفحة \"$1\"",
-       "badtitle": "عÙ\86Ù\88اÙ\86 Ø³Ù\8aØ¡",
+       "badtitle": "عÙ\86Ù\88اÙ\86 Ø³Ù\8aئ",
        "badtitletext": "عنوان الصفحة المطلوب إما غير صحيح أو فارغ، وربما الرابط بين اللغات أو بين المشاريع خاطئ.\nربما يحوي محارف لا تصلح للاستخدام في العناوين.",
        "title-invalid-empty": "عنوان الصفحة المطلوبة فارغ أو يحتوي اسم النطاق فقط.",
        "title-invalid-utf8": "عنوان الصفحة المطلوب يحتوي سلسلة محارف UTF-8 غير صالحة.",
index 62386ac..01b0361 100644 (file)
        "recentchangesdays-max": "Максымальна $1 {{PLURAL:$1|дзень|дні|дзён}}",
        "recentchangescount": "Колькасьць рэдагаваньняў для паказу па змоўчаньні:",
        "prefs-help-recentchangescount": "Гэта ўключае апошнія зьмены, гісторыі старонак і журналы падзеяў.",
+       "prefs-help-tokenmanagement": "Вы можаце праглядзець і скінуць сакрэтны ключ да вашага рахунку, з дапамогай якога вы можаце мець доступ да вэб-стужкі вашага сьпісу назіраньня. Кожны, хто ведае ключ, можа чытаць ваш сьпіс назіраньня, таму не дзяліцеся ім.",
        "savedprefs": "Вашыя налады былі захаваныя.",
        "savedrights": "Групы {{GENDER:$1|ўдзельніка|ўдзельніцы}} $1 былі захаваныя.",
        "timezonelegend": "Часавы пояс:",
        "prefs-custom-css": "Уласны CSS",
        "prefs-custom-js": "Уласны JavaScript",
        "prefs-common-css-js": "Агульны CSS/JavaScript для ўсіх тэмаў афармленьня:",
-       "prefs-reset-intro": "Ð\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваÑ\86Ñ\8c Ð³Ñ\8dÑ\82Ñ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83 Ð´Ð»Ñ\8f Ð·Ð°Ð¼ÐµÐ½Ñ\8b Ð\92аÑ\88Ñ\8bÑ\85 Ð½Ð°Ð»Ð°Ð´Ð°Ñ\9e Ð½Ð° Ð½Ð°Ð»Ð°Ð´Ñ\8b Ñ\81айÑ\82а Ð¿Ð° Ð·Ð¼Ð¾Ñ\9eÑ\87ванÑ\8cнÑ\96.\nÐ\93Ñ\8dÑ\82ае Ð´Ð·ÐµÑ\8fнÑ\8cне Ð½Ðµ можа быць адмененае.",
+       "prefs-reset-intro": "Ð\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82аÑ\86Ñ\8c Ð³Ñ\8dÑ\82Ñ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83 Ð´Ð»Ñ\8f Ð·Ð°Ð¼ÐµÐ½Ñ\8b Ð²Ð°Ñ\88Ñ\8bÑ\85 Ð½Ð°Ð»Ð°Ð´Ð°Ñ\9e Ð½Ð° Ð½Ð°Ð»Ð°Ð´Ñ\8b Ñ\81айÑ\82Ñ\83 Ð¿Ð° Ð·Ð¼Ð¾Ñ\9eÑ\87анÑ\8cнÑ\96.\nÐ\93Ñ\8dÑ\82ае Ð´Ð·ÐµÑ\8fнÑ\8cне Ð½Ñ\8f можа быць адмененае.",
        "prefs-emailconfirm-label": "Пацьверджаньне адрасу электроннай пошты:",
        "youremail": "Адрас электроннай пошты:",
        "username": "Імя {{GENDER:$1|ўдзельніка|ўдзельніцы}}:",
        "uploadstash-file-not-found-no-object": "Не атрымалася стварыць лякальны аб’ект файлу для мініятуры.",
        "uploadstash-file-not-found-no-remote-thumb": "Памылка атрыманьня мініятуры: $1\nURL = $2",
        "uploadstash-file-not-found-missing-content-type": "Адсутнічае загаловак тыпу зьместу.",
+       "uploadstash-file-not-found-not-exists": "Не атрымалася знайсьці шлях, ці не зьяўляецца простым файлам.",
        "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.",
index 947b5e8..23f992e 100644 (file)
        "prefs-watchlist-edits": "নজরতালিকাতে দেখানোর জন্য সর্বাধিক পরিবর্তনের সংখ্যা:",
        "prefs-watchlist-edits-max": "সর্বোচ্চ সংখ্যা: ১০০০",
        "prefs-watchlist-token": "নজরতালিকা টোকেন:",
+       "prefs-watchlist-managetokens": "টোকেন পরিচালনা করুন",
        "prefs-misc": "বিবিধ",
        "prefs-resetpass": "পাসওয়ার্ড পরিবর্তন",
        "prefs-changeemail": "ইমেইল ঠিকানা পরিবর্তন বা বাতিল করুন",
        "recentchangesdays-max": "সর্বোচ্চ $1 {{PLURAL:$1|দিনের}}",
        "recentchangescount": "সাম্প্রতিক পরিবর্তনে প্রদর্শিত সম্পাদনার পূর্বনির্ধারিত সংখ্যা:",
        "prefs-help-recentchangescount": "এতে সাম্প্রতিক পরিবর্তনগুলি, পাতার ইতিহাসগুলি এবং লগগুলি অন্তর্ভুক্ত।",
+       "prefs-help-tokenmanagement": "আপনি আপনার অ্যাকাউন্টের জন্য গোপন চাবি দেখতে এবং পুনরায় নির্ধারন করতে পারবেন যা দিয়ে আপনার নজরতালিকার ওয়েব ফিডে প্রবেশাধিকার পাওয়া যাবে। যে কেউ যিনি এই চাবিটি জানেন তিনি আপনার নজর তালিকাটি পড়তে সক্ষম হবেন, তাই এটি অন্যদের সাথে ভাগ করবেন না।",
        "savedprefs": "আপনার পছন্দগুলি সংরক্ষণ করা হয়েছে।",
        "savedrights": "{{GENDER:$1|$1}}-এর ব্যবহারকারী দল সংরক্ষিত হয়েছে।",
        "timezonelegend": "সময় অঞ্চল:",
        "rcfilters-savedqueries-apply-and-setdefault-label": "পূর্বনির্ধারিত ছাঁকনি তৈরি করুন",
        "rcfilters-savedqueries-cancel-label": "বাতিল",
        "rcfilters-savedqueries-add-new-title": "বর্তমান ছাঁকনির সেটিং সংরক্ষণ করুন",
+       "rcfilters-savedqueries-already-saved": "এই ছাঁকনিগুলি ইতিমধ্যে সংরক্ষণ করা হয়েছে। একটি নতুন সংরক্ষিত ছাঁকনি তৈরি করতে আপনার সেটিং পরিবর্তন করুন।",
        "rcfilters-restore-default-filters": "পূর্বনির্ধারিত ছাঁকনি পুনরুদ্ধার করুন",
        "rcfilters-clear-all-filters": "সব ছাঁকনি পরিষ্কার করুন",
        "rcfilters-show-new-changes": "নতুনতর পরিবর্তনসমূহ দেখুন",
index 0b0921c..9a6dd93 100644 (file)
        "diff-multi-sameuser": "(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} del mismo usuario)",
        "diff-multi-otherusers": "(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} de {{PLURAL:$2|otro usuario|$2 usuarios}})",
        "diff-multi-manyusers": "(No se {{PLURAL:$1|muestra una edición intermedia|muestran $1 ediciones intermedias}} de más de {{PLURAL:$2|un usuario|$2 usuarios}})",
+       "diff-paragraph-moved-tonew": "Se trasladó el párrafo. Pulsa para saltar a la ubicación nueva.",
+       "diff-paragraph-moved-toold": "Se trasladó el párrafo. Pulsa para saltar a la ubicación anterior.",
        "difference-missing-revision": "No se {{PLURAL:$2|ha encontrado una revisión|han encontrado $2 revisiones}} de la comparación solicitada ($1).\n\nLa causa de esto suele ser un enlace obsoleto hacia una edición de una página que ha sido borrada.\nPara más información, consulta el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registro de borrados].",
        "searchresults": "Resultados de la búsqueda",
        "searchresults-title": "Resultados de la búsqueda de «$1»",
        "right-reupload-own": "Subir una nueva versión de un archivo propio",
        "right-reupload-shared": "Sobrescribir localmente archivos presentes en el repositorio multimedia compartido",
        "right-upload_by_url": "Subir un archivo a traves de un URL",
-       "right-purge": "Purgar la caché en el servidor sin tener que dar confirmación",
+       "right-purge": "Purgar la antememoria de una página sin confirmación",
        "right-autoconfirmed": "No resultar afectado por los límites de frecuencia de edición para las IP",
        "right-bot": "Ser tratado como un programa automático",
        "right-nominornewtalk": "No accionar el aviso de mensajes nuevos al realizar ediciones menores en páginas de discusión",
        "exif-saturation": "Saturación",
        "exif-sharpness": "Agudeza",
        "exif-devicesettingdescription": "Descripción de los ajustes del dispositivo",
-       "exif-subjectdistancerange": "Rango de distancia al sujeto",
+       "exif-subjectdistancerange": "Intervalo de distancia al sujeto",
        "exif-imageuniqueid": "ID único de imagen",
        "exif-gpsversionid": "Versión de la etiqueta GPS",
        "exif-gpslatituderef": "Latitud norte o sur",
index 30bf8c8..c6160b1 100644 (file)
        "diff-multi-sameuser": "({{PLURAL:$1|Une révision intermédiaire par le même utilisateur non affichée|$1 révisions intermédiaires par le même utilisateur non affichées}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Une révision intermédiaire|$1 révisions intermédiaires}} par {{PLURAL:$2|un autre utilisateur|$2 utilisateurs}} non {{PLURAL:$1|affichée|affichées}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Une révision intermédiaire|$1 révisions intermédiaires}} par plus {{PLURAL:$2|d'un utilisateur|de $2 utilisateurs}} {{PLURAL:$1|est masquée|sont masquées}})",
-       "diff-paragraph-moved-tonew": "Le paragraphe a été déplacé. Cliquez pour accéder au nouvel emplacement.",
+       "diff-paragraph-moved-tonew": "Paragraphe renommé. Cliquer pour accéder au nouvel emplacement.",
        "diff-paragraph-moved-toold": "Le paragraphe a été déplacé. Cliquez pour accéder à l'ancien emplacement.",
        "difference-missing-revision": "{{PLURAL:$2|Une révision|$2 révisions}} de cette différence ($1) {{PLURAL:$2|n’a pas été trouvée|n’ont pas été trouvées}}.\n\nCela survient en général en suivant un lien de différence désuet vers une page qui a été supprimée.\nVous pouvez trouver des détails dans le [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} journal des suppressions].",
        "searchresults": "Résultats de la recherche",
        "prefs-watchlist-edits": "Nombre maximum de modifications à afficher dans la liste de suivi :",
        "prefs-watchlist-edits-max": "Nombre maximum : 1000",
        "prefs-watchlist-token": "Jeton pour la liste de suivi :",
+       "prefs-watchlist-managetokens": "Gérer les jetons",
        "prefs-misc": "Préférences diverses",
        "prefs-resetpass": "Changer de mot de passe",
        "prefs-changeemail": "Changer ou supprimer l'adresse de courriel",
index 4c45688..c0d37fc 100644 (file)
@@ -18,7 +18,8 @@
                        "V6rg",
                        "C.R.",
                        "Smcnarayan",
-                       "Vito Genovese"
+                       "Vito Genovese",
+                       "Maxí"
                ]
        },
        "tog-underline": "Jorr ke niche line khicho:",
        "recentchangesdays-max": "(sab se jaada $1 {{PLURAL:$1|din|din}})",
        "recentchangescount": "Default se ketnaa badlao ke dekhae ke chaahi:",
        "prefs-help-recentchangescount": "Isme hai haali ke badlao, panna ke itihaas aur loga.",
-       "prefs-help-watchlist-token2": "Aap ke dhyan suchi ke web feed ke ii secret key hae.\nAur koi agar iske bare me jaane hae aap ke dhyan suchi ke parrhae sake hae, tab iske aur ki ke nai dena.\n[[Special:ResetTokens|Agar aap iske reset kare mangtaa hae tab hian pe click karo]].",
        "savedprefs": "Aap ke pasand ke save kar lewa gais hai.",
        "savedrights": "{{GENDER:$1|$1}} ke user group ke bachae lewa gais hai.",
        "timezonelegend": "Time ke zone:",
        "rcfilters-view-namespaces-tooltip": "Results ke namespace se filter karo",
        "rcfilters-view-tags-tooltip": "Results ke, edit tags ke kaam me laae ke, filter karo",
        "rcfilters-view-return-to-default-tooltip": "Main filter menu pe lauto",
-       "rcfilters-liveupdates-button": "Live updates",
+       "rcfilters-liveupdates-button": "Breytingar í beinni",
        "rcnotefrom": "Niche {{PLURAL:$5|badlao hae|badlao hae}} <strong>$3, $4</strong> (<strong>$1</strong> talak dekhawa gais) talak.",
        "rclistfromreset": "Taarik ke selection ke reset karo",
        "rclistfrom": "$3 $2 se suruu kar ke nawaa badlao dekhao",
index 7744632..3012d31 100644 (file)
        "nosuchusershort": "Nem létezik „$1” nevű szerkesztő.\nEllenőrizd, hogy helyesen írtad-e be.",
        "nouserspecified": "Meg kell adnod a felhasználói nevet.",
        "login-userblocked": "Ez a szerkesztő blokkolva van, a bejelentkezés nem engedélyezett.",
-       "wrongpassword": "A megadott jelszó érvénytelen. Próbáld meg újra.",
+       "wrongpassword": "A megadott felhasználónév vagy jelszó érvénytelen. Próbáld meg újra.",
        "wrongpasswordempty": "Nem adtál meg jelszót. Próbáld meg újra.",
        "passwordtooshort": "A jelszónak legalább $1 karakterből kell állnia.",
        "passwordtoolong": "A jelszó nem lehet hosszabb $1 karakternél.",
        "diff-multi-sameuser": "({{PLURAL:$1|Egy közbenső módosítás|$1 közbenső módosítás}} ugyanattól a szerkesztőtől nincs mutatva)",
        "diff-multi-otherusers": "({{PLURAL:$1|Egy közbenső módosítás|$1 közbenső módosítás}}, amit {{PLURAL:$2|egy másik szerkesztő végzett|$2 másik szerkesztő végzett}}, nincs mutatva)",
        "diff-multi-manyusers": "({{PLURAL:$1|Egy közbeeső változat|$1 közbeeső változat}} nincs mutatva, amit $2 szerkesztő módosított)",
+       "diff-paragraph-moved-tonew": "A szakaszt áthelyezték. Kattints ide az új helyére való ugráshoz.",
+       "diff-paragraph-moved-toold": "A szakaszt áthelyezték. Kattints ide a régi helyére való ugráshoz.",
        "difference-missing-revision": "Az összehasonlítandó változatok {{PLURAL:$2|egyike ($1) nem található|($1) nem találhatóak}}.\n\nEzt általában egy elavult, törölt oldalra mutató laptörténeti hivatkozás használata okozza. Részletek a [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} törlési naplóban] találhatóak.",
        "searchresults": "A keresés eredménye",
        "searchresults-title": "Keresési eredmények: „$1”",
        "prefs-watchlist-edits": "A figyelőlistán megjelenő szerkesztések maximális száma:",
        "prefs-watchlist-edits-max": "Legfeljebb 1000",
        "prefs-watchlist-token": "A figyelőlista kulcsa:",
+       "prefs-watchlist-managetokens": "Tokenek kezelése",
        "prefs-misc": "Egyéb",
        "prefs-resetpass": "Jelszó megváltoztatása",
        "prefs-changeemail": "E-mail-cím megváltoztatása vagy eltávolítása",
        "recentchangesdays-max": "(maximum {{PLURAL:$1|egy|$1}} nap)",
        "recentchangescount": "Az alapértelmezettként mutatott szerkesztések száma:",
        "prefs-help-recentchangescount": "Ez vonatkozik a friss változtatásokra, laptörténetekre és naplókra is.",
-       "prefs-help-watchlist-token2": "Ez a titkos kulcs a figyelőlistádhoz.\nAki ismeri, meg tudja nézni, milyen lapokat figyelsz, úgyhogy ne oszdd meg másokkal.\n[[Special:ResetTokens|Kattints ide, ha meg akarod változtatni]].",
        "savedprefs": "Az új beállításaid érvénybe léptek.",
        "savedrights": "{{GENDER:$1|$1}} felhasználói csoportjai el lettek mentve.",
        "timezonelegend": "Időzóna:",
index 6629710..e2a7436 100644 (file)
        "underline-never": "Aldrei",
        "underline-default": "Skinn eða sjálfgefið í vafra",
        "editfont-style": "Leturgerð í breytingareitum:",
-       "editfont-default": "skv. vafrastillingu",
        "editfont-monospace": "Jafnbreitt letur",
-       "editfont-sansserif": "Sans-serif letur",
-       "editfont-serif": "Serif letur",
+       "editfont-sansserif": "Steinskrift",
+       "editfont-serif": "Þverendaletur",
        "sunday": "sunnudagur",
        "monday": "mánudagur",
        "tuesday": "þriðjudagur",
        "nosuchusershort": "Það er enginn notandi með nafnið „$1“. Athugaðu hvort nafnið sé ritað rétt.",
        "nouserspecified": "Þú verður að taka fram notandanafn.",
        "login-userblocked": "Þessi notandi hefur verið settur í bann.  Innskráning ekki leyfð.",
-       "wrongpassword": "Uppgefið lykilorð er rangt. Reyndu aftur.",
+       "wrongpassword": "Rangt notandanafn eða lykilorð.\nReyndu aftur.",
        "wrongpasswordempty": "Lykilorðsreiturinn var auður. Reyndu aftur.",
        "passwordtooshort": "Lykilorð skal vera að minnsta kosti $1 {{PLURAL:$1|stafur|stafir}}.",
        "passwordtoolong": "Lykilorð geta ekki verið lengri en $1 {{PLURAL:$1|stafur|stafir}}.",
        "changepassword-success": "Það tókst að breyta lykilorðinu þínu!",
        "changepassword-throttled": "Þú hefur gert of margar tilraunir til innskráningar að undanförnu.\nBíddu í $1 áður en þú reynir aftur.",
        "botpasswords": "Lykilorð róbóta",
+       "botpasswords-label-appid": "Nafn vélmennis:",
        "botpasswords-label-create": "Búa til",
        "botpasswords-label-update": "Uppfæra",
        "botpasswords-label-cancel": "Hætta við",
        "botpasswords-label-delete": "Eyða",
        "botpasswords-label-resetpassword": "Endurstilla lykilorðið",
+       "botpasswords-bad-appid": "Vélmennanafnið „$1“ er ógilt.",
        "resetpass_forbidden": "Ekki er hægt að breyta lykilorðum",
        "resetpass_forbidden-reason": "Ekki er hægt að breyta lykilorðum: $1",
        "resetpass-no-info": "Þú verður að vera skráð(ur) inn til að hafa aðgang að þessari síðu.",
        "anoneditwarning": "<strong>Viðvörun:</strong> Þú ert ekki innskráð(ur). Vistfang þitt verður sýnt opinberlega ef þú gerir einhverjar breytingar. Ef þú <strong>[$1 skráir þig inn]</strong> eða <strong>[$2 stofnar aðgang]</strong> munu breytingarnar þínar vera tengdar við notandanafn þitt, ásamt öðrum kostum.",
        "anonpreviewwarning": "<em>Þú ert ekki skráð(ur) inn. Vistfang þitt skráist í breytingaskrá síðunnar.</em>",
        "missingsummary": "'''Áminning:''' Þú hefur ekki skrifað breytingarágrip.\nEf þú smellir á Vista aftur, verður breyting þín vistuð án þess.",
-       "missingcommenttext": "Gerðu svo vel og skrifaðu athugasemd fyrir neðan.",
+       "missingcommenttext": "Gerðu svo vel og skrifaðu athugasemd.",
        "missingcommentheader": "<strong>Áminning:</strong> Þú hefur ekki gefið upp umræðuefni.\nEf þú smellir á \"$1\" aftur, verður breyting þín vistuð án þess.",
        "summary-preview": "Forskoða breytingarágrip:",
        "subject-preview": "Forskoðun viðfangsefnis:",
        "explainconflict": "Síðunni hefur verið breytt síðan þú byrjaðir að gera breytingar á henni, textinn í efri reitnum inniheldur núverandi útgáfu úr gagnagrunni og sá neðri inniheldur þína útgáfu, þú þarft hér að færa breytingar sem þú vilt halda úr neðri reitnum í þann efri og vista síðuna. \n'''Aðeins''' texti úr efri reitnum mun vera vistaður þegar þú vistar.",
        "yourtext": "Þinn texti",
        "storedversion": "Geymd útgáfa",
-       "nonunicodebrowser": "'''Viðvörun: Vafrarinn þinn styður ekki unicode.'''\nLausn er í gildi sem leyfir þér að breyta síðum: Stafatákn sem eru ekki í ASCII kerfinu birtast í breytingarglugganum eins og sextándakóðar.",
        "editingold": "'''ATH: Þú ert að breyta gamalli útgáfu þessarar síðu og munu allar breytingar sem gerðar hafa verið á henni frá þeirri útgáfu vera fjarlægðar ef þú vistar.'''",
        "yourdiff": "Mismunur",
        "copyrightwarning": "Vinsamlegast athugaðu að öll framlög á {{SITENAME}} eru álitin leyfisbundin samkvæmt $2 (sjá $1 fyrir frekari upplýsingar).  Ef þú vilt ekki að skrif þín falli undir þetta leyfi og öllum verði frjálst að breyta og endurútgefa efnið samkvæmt því skaltu ekki leggja þau fram hér.<br />\nÞú berð ábyrgð á framlögum þínum, þau verða að vera þín skrif eða afrit texta í almannaeigu eða sambærilegs frjáls texta.\n<strong>AFRITIРEKKI HÖFUNDARRÉTTARVARIN VERK Á ÞESSA SÍÐU ÁN LEYFIS</strong>",
        "mergehistory-done": "$3 {{PLURAL:$3|útgáfa|útgáfur}} af $1 {{PLURAL:$3|var|voru}} sameinaðar í [[:$2]].",
        "mergehistory-fail": "Gat ekki sameinað breytingaskrár. Athugaðu vel síðuna og tímabreyturnar.",
        "mergehistory-fail-bad-timestamp": "Tímamerkið er ógilt.",
+       "mergehistory-fail-invalid-source": "Frumsíðan er ógild.",
        "mergehistory-no-source": "Upprunasíðan $1 er ekki til.",
        "mergehistory-no-destination": "Marksíðan $1 er ekki til.",
        "mergehistory-invalid-source": "Upprunasíðan verður að hafa gildan titil.",
        "lineno": "Lína $1:",
        "compareselectedversions": "Bera saman valdar útgáfur",
        "showhideselectedversions": "Sýna/fela valdar breytingar",
-       "editundo": "afturkalla þessa breytingu",
+       "editundo": "taka aftur þessa breytingu",
        "diff-empty": "(Enginn munur)",
        "diff-multi-sameuser": "($1 {{PLURAL:$1|millibreyting ekki sýnd|millibreytingar ekki sýndar}} frá sama notandanum)",
        "diff-multi-otherusers": "($1 {{PLURAL:$1|millibreyting ekki sýnd|millibreytingar ekki sýndar}} frá $2 {{PLURAL:$2|notanda|notendum}})",
        "timezoneregion-europe": "Evrópa",
        "timezoneregion-indian": "Indlandshaf",
        "timezoneregion-pacific": "Kyrrahaf",
-       "allowemail": "Virkja tölvupóst frá öðrum notendum",
+       "allowemail": "Leyfa öðrum notendum að senda mér tölvupóst",
        "prefs-searchoptions": "Leit",
        "prefs-namespaces": "Nafnrými",
        "default": "sjálfgefið",
        "prefs-editor": "Ritsjóri",
        "prefs-preview": "Forskoðun",
        "prefs-advancedrc": "Háþróaðir möguleikar",
+       "prefs-opt-out": "Hafna endurbótum",
        "prefs-advancedrendering": "Háþróaðir möguleikar",
        "prefs-advancedsearchoptions": "Háþróaðir möguleikar",
        "prefs-advancedwatchlist": "Háþróaðir möguleikar",
        "grant-editprotected": "Breyta vernduðum síðum",
        "grant-highvolume": "Magnbreytingar",
        "grant-oversight": "Fela notendur og bæla útgáfur",
+       "grant-privateinfo": "Skoða einkaupplýsingar",
        "grant-protect": "Vernda og afvernda síður",
+       "grant-rollback": "Afturkalla breytingar á síðum",
        "grant-sendemail": "Senda tölvupóst til annara notenda",
        "grant-uploadeditmovefile": "Hlaða inn, skipta út og færa til skrár",
        "grant-uploadfile": "Hlaða inn nýjum skrám",
        "grant-basic": "Grunnheimildir",
        "grant-viewdeleted": "Skoða skrár og síður sem hefur verið eytt",
        "grant-viewmywatchlist": "Skoða vaktlistann þinn",
+       "grant-viewrestrictedlogs": "Skoða lokaðar skráningar",
        "newuserlogpage": "Skrá yfir nýja notendur",
        "newuserlogpagetext": "Þetta er skrá yfir nýskráða notendur.",
        "rightslog": "Réttindaskrá notenda",
        "action-writeapi": "Nota API skrifun",
        "action-delete": "eyða þessari síðu",
        "action-deleterevision": "eyða breytingar",
+       "action-deletelogentry": "eyða skráningum",
        "action-deletedhistory": "skoða breytingaskrá síðu",
        "action-browsearchive": "leita í eyddum síðum",
        "action-undelete": "endurvekja síður",
        "action-userrights-interwiki": "breyta notandaréttindum annarra notenda á öðrum wiki-verkefnum",
        "action-siteadmin": "læsa eða opna gagnagrunninn",
        "action-sendemail": "senda tölvupósta",
+       "action-editmyoptions": "breyta þínum stillingum",
        "action-editmywatchlist": "breyta vaktlistanum þínum",
        "action-viewmywatchlist": "skoða vaktlistann þinn",
        "action-viewmyprivateinfo": "skoða persónuupplýsingar þínar",
        "action-editmyprivateinfo": "breyta persónuupplýsingum þínum",
        "action-managechangetags": "búa til og (af)virkja merki úr gagnagrunni",
        "action-applychangetags": "virkja merki ásamt öðrum breytingum",
+       "action-deletechangetags": "eyða merkjum úr gagnagrunni",
+       "action-purge": "hreinsa þessa síðu",
        "nchanges": "$1 {{PLURAL:$1|breyting|breytingar}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|síðan síðustu heimsókn}}",
        "enhancedrc-history": "breytingaskrá",
        "recentchanges-legend": "Stillingar nýlegra breytinga",
        "recentchanges-summary": "Hér geturðu fylgst með nýjustu breytingunum.",
        "recentchanges-noresult": "Engar breytingar í uppgefna tímabilinu sem passa við þessa mælikvarða.",
+       "recentchanges-network": "Vegna tæknivillu var ekki hægt að sækja niðurstöður. Vinsamlegast prófaðu að endurhlaða síðuna.",
        "recentchanges-feed-description": "Hér er hægt að fylgjast með nýlegum breytingum á {{SITENAME}}.",
        "recentchanges-label-newpage": "Þessi breyting skapaði nýja síðu",
        "recentchanges-label-minor": "Þetta er minniháttar breyting",
        "recentchanges-submit": "Sýna",
        "rcfilters-tag-remove": "Fjarlægja '$1'",
        "rcfilters-legend-heading": "<strong>Listi yfir styttingar</strong>",
-       "rcfilters-grouping-title": "Hópun",
+       "rcfilters-other-review-tools": "Önnur rýniverkfæri",
+       "rcfilters-group-results-by-page": "Flokka niðurstöður eftir síðum",
+       "rcfilters-grouping-title": "Flokkun",
        "rcfilters-activefilters": "Virkar síur",
        "rcfilters-advancedfilters": "Ítarlegar síur",
        "rcfilters-limit-title": "Breytingar sem á að sýna",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|klukkustund|klukkustundir}}",
        "rcfilters-highlighted-filters-list": "Áherslulitað: $1",
        "rcfilters-quickfilters": "Vistaðar síur",
+       "rcfilters-quickfilters-placeholder-title": "Engar síur vistaðar",
+       "rcfilters-quickfilters-placeholder-description": "Til þess að vista þínar síustillingar og nota þær aftur seinna, smelltu á bókamerkistáknið undir Virkum síum hér fyrir neðan.",
        "rcfilters-savedqueries-defaultlabel": "Vistaðar síur",
        "rcfilters-savedqueries-rename": "Endurnefna",
        "rcfilters-savedqueries-setdefault": "Setja sem sjálfgefið",
        "rcfilters-savedqueries-apply-label": "Búa til síu",
        "rcfilters-savedqueries-apply-and-setdefault-label": "Búa til sjálfgefna síu",
        "rcfilters-savedqueries-cancel-label": "Hætta við",
+       "rcfilters-savedqueries-add-new-title": "Vista núverandi síustillingar",
+       "rcfilters-savedqueries-already-saved": "Þessar síur hafa þegar verið vistaðar. Breyttu þínum stillingum til þess að búa til nýja vistaða síu.",
+       "rcfilters-restore-default-filters": "Endurreisa sjálfgefnar síur",
        "rcfilters-clear-all-filters": "Hreinsa allar síur",
        "rcfilters-show-new-changes": "Skoða nýjustu breytingarnar",
+       "rcfilters-search-placeholder": "Sía breytingar (notaðu valmyndina eða leitaðu að síuheiti)",
+       "rcfilters-invalid-filter": "Ógild sía",
+       "rcfilters-empty-filter": "Engar virkar síur. Öll framlög eru sýnileg.",
        "rcfilters-filterlist-title": "Síur",
+       "rcfilters-filterlist-whatsthis": "Hvernig virkar þetta?",
+       "rcfilters-filterlist-feedbacklink": "Láttu okkur vita hvað þér finnst um þessi (nýju) síuverkfæri",
        "rcfilters-highlightbutton-title": "Áherslulita niðurstöður",
        "rcfilters-highlightmenu-title": "Veldu lit",
+       "rcfilters-highlightmenu-help": "Veldu lit til að merkja þetta einkenni með",
+       "rcfilters-filterlist-noresults": "Engin sía fannst",
+       "rcfilters-noresults-conflict": "Engar niðurstöður fundust því leitarorðin stangast á",
+       "rcfilters-filtergroup-authorship": "Höfundur framlaga",
        "rcfilters-filter-editsbyself-label": "Breytingar eftir þig",
        "rcfilters-filter-editsbyself-description": "Þín eigin framlög.",
        "rcfilters-filter-editsbyother-label": "Breytingar eftir aðra",
        "rcfilters-filter-editsbyother-description": "Allir breytingar nema þínar eigin.",
        "rcfilters-filtergroup-userExpLevel": "Skráning notanda og reynsla",
        "rcfilters-filter-user-experience-level-registered-label": "Skráð/ur",
+       "rcfilters-filter-user-experience-level-registered-description": "Innskráðir notendur.",
        "rcfilters-filter-user-experience-level-unregistered-label": "Óskráður",
+       "rcfilters-filter-user-experience-level-unregistered-description": "Notendur sem ekki eru innskráðir.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Byrjendur",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Skráðir notendur sem hafa gert færri en 10 breytingar eða verið virkir í færri en 4 daga.",
        "rcfilters-filter-user-experience-level-learner-label": "Námshestar",
+       "rcfilters-filter-user-experience-level-learner-description": "Skráðir notendur sem eru á milli þess að vera „byrjendur“ og „reyndir notendur“.",
        "rcfilters-filter-user-experience-level-experienced-label": "Vanir notendur",
+       "rcfilters-filter-user-experience-level-experienced-description": "Skráðir notendur sem hafa gert fleiri en 500 breytingar og verið virkir í fleiri en 30 daga.",
        "rcfilters-filtergroup-automated": "Sjálfvirk framlög",
        "rcfilters-filter-bots-label": "Vélmenni",
+       "rcfilters-filter-bots-description": "Breytingar gerðar af sjálfvirkum verkfærum.",
        "rcfilters-filter-humans-label": "Manneskja (ekki vélmenni)",
+       "rcfilters-filter-humans-description": "Breytingar gerðar af mönnum.",
        "rcfilters-filtergroup-reviewstatus": "Staða yfirferðar",
        "rcfilters-filter-patrolled-label": "Vaktað",
+       "rcfilters-filter-patrolled-description": "Breytingar merktar sem vaktaðar.",
+       "rcfilters-filter-unpatrolled-label": "Óvaktaðar",
+       "rcfilters-filter-unpatrolled-description": "Breytingar ekki merktar sem vaktaðar.",
+       "rcfilters-filtergroup-significance": "Mikilvægi",
        "rcfilters-filter-minor-label": "Minniháttar breytingar",
+       "rcfilters-filter-minor-description": "Breytingar sem höfundurinn merkti sem minniháttar.",
+       "rcfilters-filter-major-label": "Ekki-minniháttar breytingar",
+       "rcfilters-filter-major-description": "Breytingar ekki merktar sem minniháttar.",
+       "rcfilters-filtergroup-watchlist": "Síður á vaktlista",
        "rcfilters-filter-watchlist-watched-label": "Á vaktlista",
+       "rcfilters-filter-watchlist-watched-description": "Breytingar á síðum á þínum vaktlista.",
+       "rcfilters-filter-watchlist-watchednew-label": "Nýjar breytingar á síðum á vaktlista",
+       "rcfilters-filter-watchlist-watchednew-description": "Breytingar á síðum á vaktlista sem þú hefur ekki skoðað síðan breytingarnar voru gerðar.",
+       "rcfilters-filter-watchlist-notwatched-label": "Ekki á vaktlista",
+       "rcfilters-filter-watchlist-notwatched-description": "Allt nema breytingar á síðum á þínum vaktlista.",
+       "rcfilters-filtergroup-watchlistactivity": "Vaktlistavirkni",
+       "rcfilters-filter-watchlistactivity-unseen-label": "Óskoðaðar breytingar",
+       "rcfilters-filter-watchlistactivity-unseen-description": "Breytingar á síðum þú hefur ekki skoðað síðan breytingarnar voru gerðar.",
+       "rcfilters-filter-watchlistactivity-seen-label": "Skoðaðar breytingar",
+       "rcfilters-filter-watchlistactivity-seen-description": "Breytingar á síðum þú hefur skoðað síðan breytingarnar voru gerðar.",
+       "rcfilters-filtergroup-changetype": "Tegund breytinga",
+       "rcfilters-filter-pageedits-label": "Breytingar á síðum",
+       "rcfilters-filter-pageedits-description": "Breytingar á wiki-efni, umræðum, flokkslýsingum...",
+       "rcfilters-filter-newpages-label": "Nýjar síður",
+       "rcfilters-filter-newpages-description": "Breytingar sem skapa nýjar síður.",
+       "rcfilters-filter-categorization-label": "Breytingar á flokkum",
+       "rcfilters-filter-categorization-description": "Skrá um að síðum hefur verið bætt við eða þær fjarlægðar úr flokkum.",
+       "rcfilters-filter-logactions-label": "Skráðar aðgerðir",
+       "rcfilters-filter-logactions-description": "Stjórnendaaðgerðir, nýir aðgangar, eyðingar á síðum, upphleðslur…",
+       "rcfilters-filtergroup-lastRevision": "Nýjustu útgáfur",
+       "rcfilters-filter-lastrevision-label": "Nýjasta útgáfa",
+       "rcfilters-filter-lastrevision-description": "Eingöngu nýjasta breytingin á síðu.",
+       "rcfilters-filter-previousrevision-label": "Ekki nýjasta útgáfa",
+       "rcfilters-filter-previousrevision-description": "Allar breytingar nema sú nýjasta.",
+       "rcfilters-filter-excluded": "Útilokað",
+       "rcfilters-exclude-button-off": "Útiloka val",
+       "rcfilters-view-tags": "Merktar breytingar",
+       "rcfilters-view-namespaces-tooltip": "Sía niðurstöður eftir nafnrými",
+       "rcfilters-view-tags-tooltip": "Sía niðurstöður með breytingarmerkjum",
+       "rcfilters-view-return-to-default-tooltip": "Fara aftur í aðalsíuvalmynd",
+       "rcfilters-view-tags-help-icon-tooltip": "Fræðast meira um merktar breytingar",
+       "rcfilters-liveupdates-button": "Breytingar í beinni",
+       "rcfilters-liveupdates-button-title-on": "Slökkva á breytingum í beinni",
+       "rcfilters-liveupdates-button-title-off": "Sýna nýjar breytingar um leið og þær gerast",
+       "rcfilters-watchlist-markseen-button": "Merkja allar breytingar sem skoðaðar",
+       "rcfilters-watchlist-edit-watchlist-button": "Breyta þínum lista yfir vaktaðar síður",
        "rcnotefrom": "Að neðan {{PLURAL:$5|er breyting síðan|eru breytingar síðan}} <strong>$3, $4</strong> (allt að <strong>$1</strong> sýndar).",
+       "rclistfromreset": "Endurstilla dagsetningarval",
        "rclistfrom": "Sýna breytingar frá og með $3 $2",
        "rcshowhideminor": "$1 minniháttar breytingar",
        "rcshowhideminor-show": "Sýna",
        "uploadstash-errclear": "Tæming listans mistókst.",
        "uploadstash-refresh": "Endurhlaða listann",
        "uploadstash-thumbnail": "skoða smámynd",
+       "uploadstash-bad-path": "Slóðin er ekki til.",
+       "uploadstash-bad-path-invalid": "Slóðin er ógild.",
        "invalid-chunk-offset": "Ógild raðbreyting bunka",
        "img-auth-accessdenied": "Aðgangur óheimill",
        "img-auth-nopathinfo": "PATH_INFO vantar.\nBiðlarinn þínn er ekki stilltur til að gefa upp þessar upplýsingar.\nÞær mega vera CGI-byggðar og mega ekki styðja img_auth.\nhttps://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization",
        "listfiles_size": "Stærð (bæti)",
        "listfiles_description": "Lýsing",
        "listfiles_count": "Útgáfur",
-       "listfiles-show-all": "Taka með gamlar útgáfur af myndum",
+       "listfiles-show-all": "Taka með gamlar útgáfur af skrám",
        "listfiles-latestversion": "Núverandi útgáfa",
        "listfiles-latestversion-yes": "Já",
        "listfiles-latestversion-no": "Nei",
        "sp-contributions-uploads": "innsendingar",
        "sp-contributions-logs": "aðgerðaskrá",
        "sp-contributions-talk": "spjall",
-       "sp-contributions-userrights": "Breyta {{GENDER:$1|notandaréttindum}}",
+       "sp-contributions-userrights": "breyta {{GENDER:$1|notandaréttindum}}",
        "sp-contributions-blocked-notice": "Þessi notandi er í banni.\nSíðasta færsla notandans úr bannskrá er sýnd hér fyrir neðan til skýringar:",
        "sp-contributions-blocked-notice-anon": "Þetta vistfang er í banni.\nSíðasta færsla vistfangsins úr bannskrá er sýnd hér fyrir neðan til skýringar:",
        "sp-contributions-search": "Leita að framlögum",
        "sp-contributions-username": "Vistfang eða notandanafn:",
        "sp-contributions-toponly": "Aðeins sýna síðustu breytingar",
        "sp-contributions-newonly": "Aðeins sýna breytingar sem hafa útbúið síðu",
+       "sp-contributions-hideminor": "Fela minniháttar breytingar",
        "sp-contributions-submit": "Leita að breytingum",
        "whatlinkshere": "Hvað tengist hingað",
        "whatlinkshere-title": "Síður sem tengjast „$1“",
        "block": "Banna notanda",
        "unblock": "Afbanna notanda",
        "blockip": "Banna {{GENDER:$1|notanda}}",
-       "blockip-legend": "Banna notanda",
        "blockiptext": "Notaðu eyðublaðið hér að neðan til þess að banna ákveðið IP-vistfang eða notandanafn.\nÞetta ætti einungis að gera til þess að koma í veg fyrir skemmdarverk, og í samræmi við [[{{MediaWiki:Policy-url}}|samþykktir]].\nGefðu nákvæma skýringu að neðan (til dæmis, með því að vísa í þær síður sem voru skemmdar).\nÞú getur bannað svið IP-vistfanga með því að nota [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] málsetningu; stærsta leyfilegt svið er /$1 fyrir IPv4 og /$2 fyrir IPv6.",
        "ipaddressorusername": "Vistfang eða notandanafn:",
        "ipbexpiry": "Bannið rennur út:",
        "lockdbsuccesstext": "Gagnagrunninum hefur verið læst.<br />\nMundu að [[Special:UnlockDB|opna hann aftur]] þegar þú hefur lokið viðgerðum.",
        "unlockdbsuccesstext": "Gagnagrunnurinn hefur verið opnaður.",
        "lockfilenotwritable": "Skrá gagnagrunnslássins er ekki skrifanleg.\nTil þess að læsa eða aflæsa gagnagrunni þarf vefþjónninn að geta skrifað í skrána.",
+       "databaselocked": "Gagnagrunnurinn er þegar læstur.",
        "databasenotlocked": "Gagnagrunnurinn er ekki læstur.",
        "lockedbyandtime": "(af {{GENDER:$1|$1}} kl. $3, $2)",
        "move-page": "Færa $1",
        "cant-move-to-user-page": "Þú hefur ekki leyfi til að færa síðu á notandasíðu (að frátöldum undirsíðum notanda).",
        "cant-move-category-page": "Þú hefur ekki leyfi til að færa flokkasíður.",
        "cant-move-to-category-page": "Þú hefur ekki leyfi til að færa síður yfir á flokkasíður.",
+       "cant-move-subpages": "Þú hefur ekki leyfi til að færa undirsíður.",
+       "namespace-nosubpages": "Nafnrýmið „$1“ leyfir ekki undirsíður.",
        "newtitle": "Nýr titill:",
        "move-watch": "Vakta þessa síðu",
        "movepagebtn": "Færa síðu",
        "movelogpagetext": "Þetta er listi yfir síður sem nýlega hafa verið færðar.",
        "movesubpage": "{{PLURAL:$1|Undirsíða|Undirsíður}}",
        "movesubpagetext": "Þessi síða hefur $1 {{PLURAL:$1|undirsíðu|undirsíður}} sem {{PLURAL:$1|er sýnd|eru sýndar}} hér fyrir neðan.",
+       "movesubpagetalktext": "Samsvarandi spjallsíðan hefur $1 {{PLURAL:$1|undirsíðu|undirsíður}} sem {{PLURAL:$1|er sýnd|eru sýndar}} hér fyrir neðan.",
        "movenosubpage": "Þessi síða hefur engar undirsíður.",
        "movereason": "Ástæða:",
        "revertmove": "taka til baka",
        "delete_and_move_text": "Úttakssíðan „[[:$1]]“ er þegar til. Viltu eyða henni til þess að rýma til fyrir flutningi?",
        "delete_and_move_confirm": "Já, eyða síðunni",
        "delete_and_move_reason": "Eytt til að rýma til fyrir flutning frá \"[[$1]]\"",
-       "selfmove": "Nýja nafnið er það sama og gamla, þú verður að velja annað nafn.",
+       "selfmove": "Nýi titillinn er sá sami og gamli, þú verður að velja annan titil.",
        "immobile-source-namespace": "Get ekki fært síður í nafnrýminu „$1“",
        "immobile-target-namespace": "Get ekki fært síður inn í nafnrýmið „$1“",
        "immobile-target-namespace-iw": "Óheimilt er að færa síðu með tungumálatengli.",
        "tooltip-pt-mycontris": "Listi yfir framlög þín",
        "tooltip-pt-anoncontribs": "Listi yfir breytingar sem hafa verið gerðar frá þessu vistfangi",
        "tooltip-pt-login": "Þú ert hvattur/hvött til að innskrá þig, það er hinsvegar ekki skylda.",
+       "tooltip-pt-login-private": "Þú verður að skrá þig inn til að nota þetta wiki",
        "tooltip-pt-logout": "Útskráning",
        "tooltip-pt-createaccount": "Þú ert hvattur/hvött til að búa til aðgang og skrá þig inn, en það er ekki skylda.",
        "tooltip-ca-talk": "Spallsíða þessarar síðu",
        "newimages-summary": "Þessi kerfissíða sýnir nýlega innhlaðnar skrár.",
        "newimages-legend": "Sía",
        "newimages-label": "Skráarheiti (eða hluti þess):",
+       "newimages-user": "IP-tala eða notandanafn",
+       "newimages-newbies": "Eingöngu sýna framlög frá nýjum aðgöngum",
        "newimages-showbots": "Birta innsend gögn frá vélmennum",
        "newimages-hidepatrolled": "Fela yfirfarnar innsendingar",
+       "newimages-mediatype": "Skrátegund:",
        "noimages": "Ekkert að sjá.",
        "ilsubmit": "Leita",
        "bydate": "eftir dagsetningu",
        "confirmrecreate-noreason": "Notandinn [[User:$1|$1]] ([[User talk:$1|spjall]]) eyddi þessari síðu eftir að þú fórst að breyta henni. Staðfestu að þú viljir í alvörunni endurvekja þessa síðu.",
        "recreate": "Endurvekja",
        "unit-pixel": "px",
+       "confirm-purge-title": "Hreinsa þessa síðu",
        "confirm_purge_button": "Í lagi",
        "confirm-purge-top": "Hreinsa skyndiminni þessarar síðu?",
        "confirm-purge-bottom": "Förgun síðu tæmir skyndiminnið og lætur nýjustu útgáfu síðunnar birtast.",
        "confirm-unwatch-button": "Í lagi",
        "confirm-unwatch-top": "Fjarlægja þessa síðu af vaktlistanum þínum?",
        "confirm-rollback-button": "Í lagi",
+       "confirm-rollback-top": "Afturkalla breytingar á þessari síðu?",
        "semicolon-separator": ";&#32;",
        "comma-separator": ",&#32;",
        "colon-separator": ":&#32;",
        "pagelang-language": "Tungumál",
        "pagelang-use-default": "Nota sjálfgefið tungumál",
        "pagelang-select-lang": "Veldu tungumál",
+       "pagelang-reason": "Ástæða",
        "pagelang-submit": "Senda inn",
+       "pagelang-nonexistent-page": "Síðan „$1“ er ekki til.",
        "right-pagelang": "Breyta tungumáli síðu",
        "action-pagelang": "breyta tungumáli síðunnar",
        "log-name-pagelang": "Annáll yfir breytingar á tungumáli",
        "special-characters-group-ipa": "IPA",
        "special-characters-group-symbols": "Tákn",
        "special-characters-group-greek": "Grískt",
+       "special-characters-group-greekextended": "Viðaukið grískt",
        "special-characters-group-cyrillic": "Kýrillískt",
        "special-characters-group-arabic": "Arabískt",
        "special-characters-group-arabicextended": "Viðaukið arabískt",
        "special-characters-group-thai": "Taílenskt",
        "special-characters-group-lao": "Laoskt",
        "special-characters-group-khmer": "Khmerískt",
+       "special-characters-group-canadianaboriginal": "Kanadískt frumbyggjaletur",
        "special-characters-title-endash": "stutt bandstrik (en dash)",
        "special-characters-title-emdash": "langt bandstrik (em dash)",
        "special-characters-title-minus": "mínustákn",
        "mw-widgets-dateinput-no-date": "Engin dagsetning valin",
        "mw-widgets-dateinput-placeholder-day": "ÁÁÁÁ-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "ÁÁÁÁ-MM",
+       "mw-widgets-mediasearch-input-placeholder": "Leita að efni",
+       "mw-widgets-mediasearch-noresults": "Engar niðurstöður fundust.",
        "mw-widgets-titleinput-description-new-page": "síðan er ekki enn til",
        "mw-widgets-titleinput-description-redirect": "tilvísun á $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "Bæta við flokki…",
+       "mw-widgets-usersmultiselect-placeholder": "Bæta við fleiru…",
+       "date-range-from": "Frá dagsetningu:",
+       "date-range-to": "Til dagsetningar:",
        "sessionmanager-tie": "Get ekki sameinað margar gerðir auðkenningarbeiðna: $1.",
        "sessionprovider-generic": "$1 setur",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "setur með vefkökum",
        "sessionprovider-nocookies": "Vefkökur gætu verið óvirkar. Gakktu úr skugga um að smákökur séu virkar og byrjaðu svo aftur.",
-       "randomrootpage": "Handahófsvalin rótarsíða"
+       "randomrootpage": "Handahófsvalin rótarsíða",
+       "log-action-filter-all": "Allt"
 }
index deca461..b6b6431 100644 (file)
        "showingresultsinrange": "<strong>$2</strong> 件目から<strong>$3</strong> 件目までの範囲内で最大 {{PLURAL:$1|<strong>$1</strong> 件の結果}}を表示しています。",
        "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> 件中の <strong>$1</strong> 件目|<strong>$3</strong> 件中の <strong>$1</strong> 件目から <strong>$2</strong> 件目}}",
        "search-nonefound": "問い合わせに合致する検索結果はありませんでした。",
-       "search-nonefound-thiswiki": "ã\81\93ã\81®ã\82µã\82¤ã\83\88ã\81§ã\81®ã\80\81ã\81\9dã\81®ã\82¯ã\82¨ã\83ªã\81«ä¸\80è\87´ã\81\99ã\82\8bçµ\90æ\9e\9cã\81¯ã\80\81ä½\95ã\82\82ありませんでした。",
+       "search-nonefound-thiswiki": "ã\82¯ã\82¨ã\83ªã\81«ä¸\80è\87´ã\81\99ã\82\8bçµ\90æ\9e\9cã\81¯ã\81\93ã\81®ã\82µã\82¤ã\83\88ã\81«ã\81¯ありませんでした。",
        "powersearch-legend": "高度な検索",
        "powersearch-ns": "名前空間を指定して検索:",
        "powersearch-togglelabel": "チェックを入れる:",
        "sp-contributions-newonly": "ページ作成を伴う編集のみを表示",
        "sp-contributions-hideminor": "細部の編集を表示しない",
        "sp-contributions-submit": "検索",
+       "sp-contributions-outofrange": "結果を表示できませんでした。要求されたIP範囲はCIDR上限値 /$1 を超えています。",
        "whatlinkshere": "リンク元",
        "whatlinkshere-title": "「$1」へリンクしているページ",
        "whatlinkshere-page": "ページ:",
index 1e371db..81ee93d 100644 (file)
@@ -5,7 +5,8 @@
                        "아라",
                        "Obaid Raza",
                        "Macofe",
-                       "Saraiki"
+                       "Saraiki",
+                       "BukhariSaeed"
                ]
        },
        "tog-underline": "ربطو خط کشیدگی",
@@ -51,7 +52,6 @@
        "underline-never": "کیاوت دی نو",
        "underline-default": "براوزرو طے شدہ",
        "editfont-style": "خانۂ تدوینو اندازِ تحریر:",
-       "editfont-default": "ڈیفالٹ براوزر",
        "editfont-monospace": "یکفضائی نویسہ",
        "editfont-sansserif": "بےحلیہ فونٹ",
        "editfont-serif": "حلیہ فونٹ",
        "talkpagelinktext": "مشقولگی",
        "specialpage": "خصوصی صفحہ",
        "personaltools": "ذاتی سماند",
-       "talk": "تبادÙ\84Û\81Ù´ خیال",
+       "talk": "تبادÙ\84Û\82 خیال",
        "views": "خیالات",
        "toolbox": "ٹول بکس",
        "imagepage": "ھوٹوو صفحو لوڑے",
index 765c418..eb23049 100644 (file)
        "prefs-watchlist-edits": "주시문서 목록에서 볼 최대 변경사항의 수:",
        "prefs-watchlist-edits-max": "최대 개수: 1000",
        "prefs-watchlist-token": "주시문서 목록 토큰:",
+       "prefs-watchlist-managetokens": "토큰 관리",
        "prefs-misc": "기타",
        "prefs-resetpass": "비밀번호 바꾸기",
        "prefs-changeemail": "이메일 주소를 바꾸거나 제거하기",
        "recentchangesdays-max": "최대 $1{{PLURAL:$1|일}}",
        "recentchangescount": "기본으로 보여줄 편집 수:",
        "prefs-help-recentchangescount": "이 설정은 최근 바뀜, 문서 역사와 기록에 적용됩니다.",
+       "prefs-help-tokenmanagement": "주시문서 목록의 웹 피드에 접근할 수 있는 계정의 비밀 키를 확인하고 재설정할 수 있습니다. 이 키를 알고 있는 누구든지 주시문서 목록을 읽을 수 있으므로 공유하지 마십시오.",
        "savedprefs": "설정을 저장했습니다.",
        "savedrights": "{{GENDER:$1|$1}}의 사용자 그룹이 저장되었습니다.",
        "timezonelegend": "시간대:",
index 10b75ba..aa47a9d 100644 (file)
        "diff-multi-sameuser": "({{PLURAL:$1|Eng Tëscheversioun|$1 Tëscheversioune}} vun deemselwechte Benotzer net gewisen)",
        "diff-multi-otherusers": "({{PLURAL:$1|Eng Tëscheversioun|$1 Tëscheversioune}} vun {{PLURAL:$2|engem anere|$2}} Benotzer {{PLURAL:$1|gëtt|ginn}} net gewisen)",
        "diff-multi-manyusers": "({{PLURAL:$1|Eng Tëscheversioun|$1 Tëscheversioune}} vu méi wéi $2 {{PLURAL:$2|Benotzer|Benotzer}} ginn net gewisen)",
+       "diff-paragraph-moved-tonew": "Den Abschnitt gouf geréckelt. Klickt fir op déi nei Plaz ze sprangen.",
        "difference-missing-revision": "{{PLURAL:$2|Eng Versioun|$2 Versioune}} vun dëser Differenz ($1) {{PLURAL:$2|gouf|goufen}} net fonnt.\n\nDat geschitt normalerweis wann Dir op e vereelste Link vun enger Versioun vun enger Säit klickt déi geläscht ginn ass.\nDetailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Logbuch vum Läschen].",
        "searchresults": "Resultat vum Sichen",
        "searchresults-title": "Resultater vum Sichen no \"$1\"",
index f984762..af2bbc6 100644 (file)
        "nosuchusershort": "De gebroeker \"$1\" besjteit neet. Konterleer de sjriefwieze.",
        "nouserspecified": "Doe deens 'ne gebroekersnaam op te gaeve.",
        "login-userblocked": "Deze gebroeker steit geblokkeerd. Aanmèlje is neet toegestange.",
-       "wrongpassword": "'t Ingegaeve wachwaord is neet zjus. Perbeer 't obbenuujts.",
+       "wrongpassword": "De gebroekersnaom of 't wachwaord is neet zjus. Perbeer 't obbenuujts.",
        "wrongpasswordempty": "'t Ingegaeve wachwoord waor laeg. Perbeer 't obbenuujts.",
        "passwordtooshort": "Dien wachwaord is te kort. 't Mót minstes oet {{PLURAL:$1|1 teike|$1 teikes}} besjtaon.",
        "passwordtoolong": "Wachwäörd kónne neet lenger zeen es {{PLURAL:$1|ei teike| $1 teikes}}.",
        "anonpreviewwarning": "''De bis neet aangemeld.''\n''Door dien bewirking op te sjlaon waert dien IP-adres opgesjlage in de pazjanagesjiedenis.''",
        "missingsummary": "'''Herinnering:''' doe höbs gein samevatting opgegaeve veur dien bewirking. Es te weer op ''Pagina opslaon'' kliks weurt de bewirking zonger samevatting opgesjlage.",
        "selfredirect": "<strong>Waorsjoewing:</strong> Doe höbs 'ne redirek gemaak nao dees pagina.\nMeugelik höbs se 'n verkieërdje bestumming veure redirek gebroek of bewirks se de verkieërdje pagina.\nDoor nans op \"$1\" te klikke wuuertj de redirek tonna gemaak.",
-       "missingcommenttext": "Plaats dien opmèrking hiej onger, a.u.b.",
+       "missingcommenttext": "Plaats dien opmèrking.",
        "missingcommentheader": "'''Let op:''' Doe höbs gén ongerwerp/kop veur deze opmèrking opgegaeve. Esse oppernuuj op \"$1\" kliks, wörd dien verangering zonger ongerwerp/kop opgeslage.",
        "summary-preview": "Veurvertuining van de bewirkingssamevatting:",
        "subject-preview": "Veurvertoeaning van 't óngerwirp:",
        "sectioneditnotsupported-text": "Doe kèns hie gein köpkes bewèrke",
        "permissionserrors": "Foute inne rèchter",
        "permissionserrorstext": "Doe höbs gein rèchter om det te daon om de volgende {{PLURAL:$1|reje|rejer}}:",
-       "permissionserrorstext-withaction": "Dich höbs gein rech óm $2 óm de volgende {{PLURAL:$1|raej|raej}}:",
+       "permissionserrorstext-withaction": "Dich höbs gein rech óm $2 óm de volgende {{PLURAL:$1|raej}}:",
        "contentmodelediterror": "Doe kans dees versie neet bewirke, went 't inhawdsmodel daovan is <code>$1</code> en 't hujig inhawdsmodel van de pagina is <code>$2</code>.",
        "recreate-moveddeleted-warn": "'''Waarsjoewing: de bis bezig mit 't aanmake van 'n pagina die in 't verleje eweggesjaf is.'''\n\nBedink of 't terech is dets te wiejer wirks aan dees pagina. Veur dien gemaak sjteit hiejónger 't wislogbook en 't logbook verplaatste pagina's veur dees pagina:",
        "moveddeleted-notice": "Dees pagina is eweggesjaf.\nTer infermasie weurt 't wislogbook, 't beveiligingslogbook en 't logbook verplaatsjde pagina's van dees pagina hiejónger weergegaeve.",
        "rcfilters-filter-watchlist-watchednew-label": "Nuuj volgliesverangeringe",
        "rcfilters-filter-watchlist-notwatched-label": "Neet op de volglies",
        "rcfilters-filter-pageedits-label": "Paginabewirkinge",
+       "rcfilters-filter-newpages-description": "Bewirkinge die 'n nuuj pagina aanmake.",
        "rcfilters-filter-logactions-label": "Geregistreerde akties",
        "rcfilters-tag-prefix-namespace-inverted": "<strong>:neet</strong> $1",
        "rcnotefrom": "{{PLURAL:$5|Verangering|Verangeringe}} saer <strong>$3 óm $4</strong> (maximaal <strong>$1</strong> {{PLURAL:$1|verangering|verangeringe}}).",
index 2fee33e..79872e3 100644 (file)
        "rcfilters-filter-previousrevision-description": "Alle endringar som ikkje er den siste versjonen.",
        "rcfilters-filter-excluded": "Utelate",
        "rcfilters-exclude-button-off": "Utelat dei valde",
-       "rcfilters-view-advanced-filters-label": "Avanserte filter",
        "rcfilters-view-tags": "Endringar med merke",
        "rcfilters-view-namespaces-tooltip": "Filtrer resultat etter namnerom",
        "rcfilters-view-tags-tooltip": "Filtrer resultat etter endringsmerke",
        "rcfilters-liveupdates-button": "Oppdateringar i sanntid",
+       "rcfilters-liveupdates-button-title-on": "Slå av oppdateringar i sanntid",
+       "rcfilters-liveupdates-button-title-off": "Vis nye endringar etter kvart som dei vert gjorde",
        "rcfilters-watchlist-markseen-button": "Merk alle endringar som sette",
        "rcfilters-watchlist-edit-watchlist-button": "Endra lista over sider du overvaker",
        "rcfilters-watchlist-showupdated": "Sider du ikkje har vitja sidan dei vart endra er viste med <strong>feit</strong> skrift.",
index 657b912..e913e34 100644 (file)
        "rcfilters-filtergroup-userExpLevel": "Registro e experiência do usuário",
        "rcfilters-filter-user-experience-level-registered-label": "Registrados",
        "rcfilters-filter-user-experience-level-registered-description": "Editores registrados.",
-       "rcfilters-filter-user-experience-level-unregistered-label": "Não registados",
+       "rcfilters-filter-user-experience-level-unregistered-label": "Não registrados",
        "rcfilters-filter-user-experience-level-unregistered-description": "Editores que não estão autenticados.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Recém-chegados",
        "rcfilters-filter-user-experience-level-newcomer-description": "Editores registrados com menos de 10 edições ou 4 dias de atividade.",
index 5259dc8..0fddd3e 100644 (file)
        "tog-previewontop": "Mostrar a antevisão antes da caixa de edição",
        "tog-previewonfirst": "Mostrar a antevisão na primeira edição",
        "tog-enotifwatchlistpages": "Notificar-me por correio eletrónico quando uma página ou ficheiro vigiado for alterado",
-       "tog-enotifusertalkpages": "Notificar-me por correio eletrónico quando a minha página de discussão é editada",
+       "tog-enotifusertalkpages": "Notificar-me por correio eletrónico quando a minha página de discussão for editada",
        "tog-enotifminoredits": "Notificar-me por correio eletrónico também sobre edições menores de páginas ou ficheiros",
        "tog-enotifrevealaddr": "Revelar o meu endereço de correio eletrónico nas notificações",
        "tog-shownumberswatching": "Mostrar o número de utilizadores a vigiar",
        "tog-oldsig": "A sua assinatura atual:",
-       "tog-fancysig": "Tratar assinatura como texto wiki (sem hiperligações automáticas)",
+       "tog-fancysig": "Tratar assinatura como texto wiki (sem hiperligação automática)",
        "tog-uselivepreview": "Mostrar antevisões sem recarregar a página",
        "tog-forceeditsummary": "Avisar-me se deixar o resumo da edição vazio",
        "tog-watchlisthideown": "Esconder as minhas edições ao listar mudanças às páginas vigiadas",
        "tog-ccmeonemails": "Enviar-me cópias das mensagens por correio eletrónico que eu enviar a outros utilizadores",
        "tog-diffonly": "Não mostrar o conteúdo da página ao comparar duas edições",
        "tog-showhiddencats": "Mostrar categorias ocultas",
-       "tog-norollbackdiff": "Ocultar diferenças depois de reverter edições em bloco",
-       "tog-useeditwarning": "Avisar-me ao abandonar uma página editada sem gravar as alterações.",
+       "tog-norollbackdiff": "Não mostrar diferenças depois de reverter edições em bloco",
+       "tog-useeditwarning": "Avisar-me ao abandonar uma página editada sem gravar as alterações",
        "tog-prefershttps": "Usar sempre uma ligação segura enquanto tiver sessão iniciada",
        "underline-always": "Sempre",
        "underline-never": "Nunca",
        "hidden-categories": "{{PLURAL:$1|Categoria oculta|Categorias ocultas}}",
        "hidden-category-category": "Categorias ocultas",
        "category-subcat-count": "{{PLURAL:$2|Esta categoria só contém a seguinte subcategoria.|Esta categoria contém {{PLURAL:$1|a seguinte subcategoria|as seguintes $1 subcategorias}} (de um total de $2).}}",
-       "category-subcat-count-limited": "Esta categoria tem {{PLURAL:$1|a seguinte subcategoria|as seguintes $1 subcategorias}}.",
+       "category-subcat-count-limited": "Esta categoria contém {{PLURAL:$1|a seguinte subcategoria|as seguintes $1 subcategorias}}.",
        "category-article-count": "{{PLURAL:$2|Esta categoria só contém a seguinte página.|Esta categoria contém {{PLURAL:$1|a seguinte página|as seguintes $1 páginas}} (de um total de $2).}}",
        "category-article-count-limited": "Nesta categoria há {{PLURAL:$1|uma página|$1 páginas}}.",
        "category-file-count": "{{PLURAL:$2|Esta categoria só contém o seguinte ficheiro.|Esta categoria contém {{PLURAL:$1|o seguinte ficheiro|os seguintes $1 ficheiros}} (de um total de $2).}}",
        "badtitletext": "O título de página solicitado era inválido, estava vazio, ou era uma hiperligação interlínguas ou interwikis incorreta.\nTalvez contenha um ou mais caracteres que não podem ser usados em títulos.",
        "title-invalid-empty": "O título de página solicitado está vazio ou contém apenas o nome de um domínio.",
        "title-invalid-utf8": "O título de página solicitado contém uma sequência UTF-8 inválida.",
-       "title-invalid-interwiki": "O título de página solicitado contém uma ligação interwikis que não pode ser utilizada em títulos.",
+       "title-invalid-interwiki": "O título de página solicitado contém uma hiperligação interwikis que não pode ser utilizada em títulos.",
        "title-invalid-talk-namespace": "O título de página solicitado refere-se a uma página de discussão que não pode existir.",
        "title-invalid-characters": "O título de página solicitado contém carateres inválidos: \"$1\".",
        "title-invalid-relative": "O título contém um caminho relativo. Os títulos relativos (./, ../) são inválidos porque normalmente são inacessíveis quando tratados pelo navegador do utilizador.",
        "bold_tip": "Texto a negrito",
        "italic_sample": "Texto em itálico",
        "italic_tip": "Texto em itálico",
-       "link_sample": "Título da ligação",
+       "link_sample": "Título da hiperligação",
        "link_tip": "Hiperligação interna",
-       "extlink_sample": "http://www.example.com hiperligação externa",
+       "extlink_sample": "http://www.example.com título da hiperligação",
        "extlink_tip": "Hiperligação externa (lembre-se do prefixo http://)",
        "headline_sample": "Texto do cabeçalho",
        "headline_tip": "Secção de nível 2",
        "accmailtitle": "Palavra-passe enviada.",
        "accmailtext": "Uma palavra-passe gerada aleatoriamente para [[User talk:$1|$1]] foi enviada para $2.\n\nEla pode ser alterada na página [[Special:ChangePassword|de alteração da palavra-passe]] após iniciar sessão.",
        "newarticle": "(Nova)",
-       "newarticletext": "Seguiu uma ligação para uma página que ainda não existe.\nPara criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [$1 página de ajuda] para mais detalhes).\nSe chegou aqui por engano, clique o botão <strong>voltar</strong> do seu navegador.",
+       "newarticletext": "Seguiu uma hiperligação para uma página que ainda não existe.\nPara criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [$1 página de ajuda] para mais detalhes).\nSe chegou aqui por engano, clique o botão <strong>voltar</strong> do seu navegador.",
        "anontalkpagetext": "----\n<em>Esta é a página de discussão de um utilizador anónimo que ainda não criou uma conta ou não a utiliza.</em>\nPor isso, temos de utilizar o endereço IP numérico para identificá-lo(a).\nUm mesmo endereço IP pode ser partilhado por vários utilizadores.\nSe é um utilizador anónimo e sente que lhe foram direcionados comentários irrelevantes, [[Special:CreateAccount|crie uma conta]] ou [[Special:UserLogin|inicie sessão]] para evitar futuras confusões com outros utilizadores anónimos.",
        "noarticletext": "Ainda não existe texto nesta página.\nPode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar registos relacionados]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} criar esta página]</span>.",
        "noarticletext-nopermission": "Ainda não existe texto nesta página.\nPode [[Special:Search/{{PAGENAME}}|pesquisar o título desta página]] noutras páginas, ou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} procurar registos relacionados]</span>, mas não tem permissão para criar esta página.",
        "mergehistory-from": "Página de origem:",
        "mergehistory-into": "Página de destino:",
        "mergehistory-list": "Histórico de edições fundíveis",
-       "mergehistory-merge": "As seguintes edições de [[:$1]] podem ser fundidas em [[:$2]].\nUsando os botões de opção, pode escolher fundir apenas as edições até àquela que marcar.\nNote que, se usar as ligações de navegação, os botões de opção voltarão aos valores originais.",
+       "mergehistory-merge": "As seguintes edições de [[:$1]] podem ser fundidas em [[:$2]].\nUsando os botões de opção, pode escolher fundir apenas as edições até àquela que marcar.\nNote que, se usar as hiperligações de navegação, os botões de opção voltarão aos valores originais.",
        "mergehistory-go": "Mostrar edições que podem ser fundidas",
        "mergehistory-submit": "Fundir edições",
        "mergehistory-empty": "Não existem revisões fundíveis.",
        "diff-multi-manyusers": "({{PLURAL:$1|Uma edição intermédia|$1 edições intermédias}} de mais de {{PLURAL:$2|um utilizador|$2 utilizadores}} não {{PLURAL:$1|apresentada|apresentadas}})",
        "diff-paragraph-moved-tonew": "O parágrafo foi movido. Clique para saltar para a nova posição.",
        "diff-paragraph-moved-toold": "O parágrafo foi movido. Clique para saltar para a posição anterior.",
-       "difference-missing-revision": "{{PLURAL:$2|Uma revisão|$2 revisões}} desta diferença ($1) não {{PLURAL:$2|foi encontrada|foram encontradas}}.\n\nIsto é geralmente causado por seguir uma ligação de histórico desatualizada para uma página que foi eliminada.\nOs detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].",
+       "difference-missing-revision": "{{PLURAL:$2|Uma revisão|$2 revisões}} desta diferença ($1) não {{PLURAL:$2|foi encontrada|foram encontradas}}.\n\nIsto é geralmente causado por seguir uma hiperligação de diferenças desatualizada para uma página que foi eliminada.\nOs detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminação].",
        "searchresults": "Resultados da pesquisa",
        "searchresults-title": "Resultados da pesquisa de \"$1\"",
        "titlematches": "Resultados no título das páginas",
        "restoreprefs": "Repor todas as configurações padrão (em todas as secções)",
        "prefs-editing": "Edição",
        "searchresultshead": "Pesquisar",
-       "stub-threshold": "Limite para a formatação de ligações para esboços ($1):",
+       "stub-threshold": "Limite para a formatação de hiperligações para esboços ($1):",
        "stub-threshold-sample-link": "amostra",
        "stub-threshold-disabled": "Desativado",
        "recentchangesdays": "Dias a apresentar nas mudanças recentes:",
        "email": "Correio eletrónico",
        "prefs-help-realname": "O fornecimento do nome verdadeiro é opcional.\nSe optar por revelá-lo, será utilizado para atribuir-lhe crédito pelo seu trabalho.",
        "prefs-help-email": "Opcional: o endereço de correio eletrónico é opcional, mas será necessário para redefinir a palavra-passe caso esqueça a antiga.",
-       "prefs-help-email-others": "Também pode optar por permitir que outros entrem em contacto consigo por correio eletrónico, através de uma ligação nas suas páginas de utilizador ou de discussão, sem revelar o seu endereço de correio eletrónico.",
+       "prefs-help-email-others": "Também pode optar por permitir que outros entrem em contacto consigo por correio eletrónico, através de uma hiperligação nas suas páginas de utilizador ou de discussão, sem revelar o seu endereço de correio eletrónico.",
        "prefs-help-email-required": "É necessário o endereço de correio eletrónico.",
        "prefs-info": "Informações básicas",
        "prefs-i18n": "Internacionalização",
        "right-userrights": "Editar todos os privilégios de utilizador",
        "right-userrights-interwiki": "Editar privilégios de utilizadores noutras wikis",
        "right-siteadmin": "Bloquear e desbloquear a base de dados",
-       "right-override-export-depth": "Exportar páginas incluindo páginas ligadas até uma profundidade de 5",
+       "right-override-export-depth": "Exportar páginas incluindo páginas hiperligadas até uma profundidade de 5",
        "right-sendemail": "Enviar correio eletrónico a outros utilizadores",
        "right-managechangetags": "Criar e (des)ativar [[Special:Tags|etiquetas]]",
        "right-applychangetags": "Aplicar [[Special:Tags|etiquetas]] juntamente com as alterações",
        "recentchangeslinked-title": "Alterações relacionadas com \"$1\"",
        "recentchangeslinked-summary": "Esta é uma lista de mudanças recentes a todas as páginas para as quais a página fornecida contém hiperligações (ou de todas as que pertencem à categoria fornecida).\nAs suas [[Special:Watchlist|páginas vigiadas]] aparecem a <strong>negrito</strong>.",
        "recentchangeslinked-page": "Nome da página:",
-       "recentchangeslinked-to": "Inversamente, mostrar mudanças às páginas que contêm ligações para esta",
+       "recentchangeslinked-to": "Inversamente, mostrar mudanças às páginas que contêm hiperligações para esta",
        "recentchanges-page-added-to-category": "[[:$1]] foi adicionada à categoria",
        "recentchanges-page-added-to-category-bundled": "[[:$1]] adicionada à categoria; [[Special:WhatLinksHere/$1|esta página está incluída noutras]]",
        "recentchanges-page-removed-from-category": "[[:$1]] foi removida da categoria",
        "filehist-filesize": "Tamanho do ficheiro",
        "filehist-comment": "Comentário",
        "imagelinks": "Uso do ficheiro",
-       "linkstoimage": "{{PLURAL:$1|A seguinte página contém ligação|As seguintes $1 páginas contêm ligações}} para este ficheiro:",
-       "linkstoimage-more": "Mais de {{PLURAL:$1|uma página contém ligação|$1 páginas contêm ligações}} para este ficheiro.\nA lista abaixo apresenta apenas {{PLURAL:$1|a primeira página|as primeiras $1 páginas}}.\nEncontra-se disponível uma [[Special:WhatLinksHere/$2|lista completa]].",
-       "nolinkstoimage": "Não há nenhuma página que contenha ''links'' para este ficheiro.",
-       "morelinkstoimage": "Ver a [[Special:WhatLinksHere/$1|lista completa]] de páginas que contêm ligações para este ficheiro.",
+       "linkstoimage": "{{PLURAL:$1|A seguinte página contém|As seguintes $1 páginas contêm}} hiperligações para este ficheiro:",
+       "linkstoimage-more": "Mais de {{PLURAL:$1|uma página contém|$1 páginas contêm}} hiperligações para este ficheiro.\nA lista abaixo apresenta apenas {{PLURAL:$1|a primeira página|as primeiras $1 páginas}}.\nEncontra-se disponível uma [[Special:WhatLinksHere/$2|lista completa]].",
+       "nolinkstoimage": "Não há nenhuma página que contenha hiperligações para este ficheiro.",
+       "morelinkstoimage": "Ver a [[Special:WhatLinksHere/$1|lista completa]] de páginas que contêm hiperligações para este ficheiro.",
        "linkstoimage-redirect": "$1 (redirecionamento de ficheiro) $2",
        "duplicatesoffile": "{{PLURAL:$1|O seguinte ficheiro é duplicado|Os seguintes $1 ficheiros são duplicados}} deste ficheiro ([[Special:FileDuplicateSearch/$2|mais detalhes]]):",
        "sharedupload": "Este ficheiro vem da wiki $1 e pode ser usado por outros projetos.",
        "listduplicatedfiles-summary": "Esta é uma lista de ficheiros cuja versões mais recentes são duplicados da versão mais recente de outros ficheiros. Só os ficheiros locais são considerados.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] tem [[$3|{{PLURAL:$2|um duplicado|$2 duplicados}}]].",
        "unusedtemplates": "Predefinições não utilizadas",
-       "unusedtemplatestext": "Esta página lista todas as páginas no domínio {{ns:template}} que não são incluídas em nenhuma outra página. Lembre-se de verificar a existência de outras ligações para as predefinições, antes de eliminá-las.",
-       "unusedtemplateswlh": "outras ligações",
+       "unusedtemplatestext": "Esta página lista todas as páginas no domínio (espaço nominal) {{ns:template}} que não são incluídas em nenhuma outra página. Lembre-se de verificar se existem outras hiperligações para as predefinições, antes de eliminá-las.",
+       "unusedtemplateswlh": "outras hiperligações",
        "randompage": "Página aleatória",
        "randompage-nopages": "Não há páginas {{PLURAL:$2|no seguinte domínio|nos seguintes domínios}}: $1.",
        "randomincategory": "Página aleatória na categoria",
        "pageswithprop-prophidden-long": "foi ocultado o valor da propriedade por ser um texto muito longo ($1)",
        "pageswithprop-prophidden-binary": "foi ocultado o valor da propriedade por ser binário ($1)",
        "doubleredirects": "Redirecionamentos duplos",
-       "doubleredirectstext": "Esta página lista todas as páginas que redirecionam para outras páginas de redirecionamento.\nCada linha contém ligações para o primeiro e segundo redirecionamentos, bem como o destino do segundo redirecionamento, geralmente contendo a verdadeira página de destino, que devia ser o destino do primeiro redirecionamento.\n<del>Entradas cortadas</del> já foram solucionadas.",
+       "doubleredirectstext": "Esta página lista todas as páginas que redirecionam para outras páginas de redirecionamento.\nCada linha contém hiperligações para o primeiro e segundo redirecionamentos, bem como o destino do segundo redirecionamento, geralmente contendo a verdadeira página de destino, que devia ser o destino do primeiro redirecionamento.\n<del>Entradas cortadas</del> já foram solucionadas.",
        "double-redirect-fixed-move": "[[$1]] foi movida.\nEla foi atualizada automaticamente e agora redireciona para [[$2]].",
        "double-redirect-fixed-maintenance": "A corrigir automaticamente o redirecionamento duplo de [[$1]] para [[$2]] num processo de manutenção.",
        "double-redirect-fixer": "Corretor de redirecionamentos",
        "brokenredirects": "Redirecionamentos quebrados",
-       "brokenredirectstext": "Os seguintes redirecionamentos contêm ligações para páginas inexistentes:",
+       "brokenredirectstext": "Os seguintes redirecionamentos contêm hiperligações para páginas inexistentes:",
        "brokenredirects-edit": "editar",
        "brokenredirects-delete": "eliminar",
-       "withoutinterwiki": "Páginas sem ligações interlínguas",
+       "withoutinterwiki": "Páginas sem hiperligações interlínguas",
        "withoutinterwiki-summary": "As seguintes páginas não contêm hiperligações para versões noutras línguas.",
        "withoutinterwiki-legend": "Prefixo",
        "withoutinterwiki-submit": "Mostrar",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "ncategories": "$1 {{PLURAL:$1|categoria|categorias}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikis}}",
-       "nlinks": "$1 {{PLURAL:$1|ligação|ligações}}",
+       "nlinks": "$1 {{PLURAL:$1|hiperligação|hiperligações}}",
        "nmembers": "$1 {{PLURAL:$1|membro|membros}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|membro|membros}}",
        "nrevisions": "$1 {{PLURAL:$1|edição|edições}}",
        "ntransclusions": "usada {{PLURAL:$1|numa página|em $1 páginas}}",
        "specialpage-empty": "Não existem dados para apresentar.",
        "lonelypages": "Páginas órfãs",
-       "lonelypagestext": "As seguintes páginas não são destino de links nem são transcluídas a partir de outras páginas na wiki {{SITENAME}}.",
+       "lonelypagestext": "As seguintes páginas não são destino de hiperligações nem são transcluídas a partir de outras páginas na wiki {{SITENAME}}.",
        "uncategorizedpages": "Páginas não categorizadas",
        "uncategorizedcategories": "Categorias não categorizadas",
        "uncategorizedimages": "Ficheiros não categorizados",
        "unusedimages": "Ficheiros não utilizados",
        "wantedcategories": "Categorias desejadas",
        "wantedpages": "Páginas desejadas",
-       "wantedpages-summary": "Lista de páginas inexistentes com o maior número de ligações a elas, excluindo páginas que possuem apenas redirecionamentos a elas. Para obter uma lista de páginas inexistentes que possuam redirecionamento a elas, veja [[{{#special:BrokenRedirects}}|a lista de redirecionamentos quebrados]].",
+       "wantedpages-summary": "Lista de páginas inexistentes com o maior número de hiperligações para elas, excluindo páginas que só contenham redirecionamentos para elas. Para obter uma lista de páginas inexistentes para as quais existem redirecionamentos, consulte [[{{#special:BrokenRedirects}}|a lista de redirecionamentos quebrados]].",
        "wantedpages-badtitle": "Título inválido no conjunto de resultados: $1",
        "wantedfiles": "Ficheiros desejados",
        "wantedfiletext-cat": "Os seguintes ficheiros são usados, mas não existem. Ficheiros de repositórios externos podem ser listados apesar de existirem. Tais falsos positivos aparecerão <del>riscados</del>. Adicionalmente, as páginas que incorporam ficheiros que não existem estão listadas em [[:$1]].",
        "ancientpages": "Páginas mais antigas",
        "move": "Mover",
        "movethispage": "Mover esta página",
-       "unusedimagestext": "Os seguintes ficheiros existem mas não são usados na wiki.\nNo entanto, outros sítios na Internet podem ter ligação para um ficheiro através de um URL direto e, por isso, podem estar listados ficheiros que estão a ser ativamente usados por entidades externas.",
+       "unusedimagestext": "Os seguintes ficheiros existem mas não são usados em nenhuma página.\nNote que outros sítios na Internet podem ter hiperligações para um ficheiro através de um URL direto e, por isso, podem estar listados ficheiros que estão a ser ativamente usados por entidades externas.",
        "unusedcategoriestext": "As seguintes categorias existem, embora nenhuma página ou categoria faça uso delas.",
        "notargettitle": "Sem alvo",
        "notargettext": "Especifique sobre que página alvo ou utilizador pretende executar esta função.",
index 96a5aba..f0e42bf 100644 (file)
@@ -63,7 +63,7 @@
        "editfont-serif": "Serif fonṭ",
        "sunday": "ᱥᱤᱸᱜᱮ ᱢᱟᱦᱟᱸ",
        "monday": "ᱚᱛᱮ ᱢᱟᱦᱟᱸ",
-       "tuesday": "ᱵᱟᱞᱮ ᱢᱟᱦᱟ",
+       "tuesday": "ᱵᱟᱞᱮ ᱢᱟᱦᱟ",
        "wednesday": "Budh",
        "thursday": "Lukhibar",
        "friday": "ᱡᱟᱹᱨᱩᱢ ᱢᱟᱦᱟᱸ",
        "category-file-count": "{{PLURAL:$2 Noa babot reaḱ rokom sokomre do eken latar reaḱ sakam menaḱa. Noa babot reaḱ rokom sokomre emakan moṭhe $2 gan sakam mudre {{PLURAL:$1 gan sakam $1 gan sakam}} latarre uduḱ hoena}}",
        "category-file-count-limited": "Latar reaḱ {{PLURAL:$1 rẽt rẽtko}} noa rokom sokomre menaḱa.",
        "listingcontinuesabbrev": "Calaḱa",
-       "index-category": "ᱩᱱᱩᱫᱩᱜ ᱵᱟᱹᱱᱩᱜ-ᱟᱱ ᱥᱟᱦᱴᱟᱠᱚ",
+       "index-category": "ᱩᱱᱩᱫᱩᱜ-ᱟᱱ ᱥᱟᱦᱴᱟᱠᱚ",
        "noindex-category": "ᱩᱱᱩᱫᱩᱜ ᱵᱟᱹᱱᱩᱜ-ᱟᱱ ᱥᱟᱦᱴᱟᱠᱚ",
        "broken-file-category": "Baṅ kạmi daṛeaḱ chubi joṛao soho sakamko",
        "about": "Lạgitte, Lạgti",
-       "article": "Content ᱥᱟᱦᱴᱟ",
+       "article": "ᱩᱱᱩᱫᱩᱜ ᱥᱟᱦᱴᱟ",
        "newwindow": "Nãwã khiṛki jhijme",
        "cancel": "Badme",
        "moredotdotdot": "Aema",
        "searchbutton": "ᱥᱮᱸᱫᱽᱨᱟ",
        "go": "Calaḱme",
        "searcharticle": "ᱪᱟᱞᱟᱜ ᱢᱮ",
-       "history": "á±¥á±\9fᱦᱴá±\9f á±¨á±®á±­á±\9fá±\9c á±±á±\9fá±\9cá±\9fá±¢",
+       "history": "ᱥᱟᱦᱴᱟ ᱱᱟᱜᱟᱢ",
        "history_short": "ᱱᱟᱜᱟᱢ",
        "history_small": "ᱱᱟᱜᱟᱢ",
        "updatedmarker": "Ińaḱ mucạt hiripor khon nitaḱ halot",
        "print": "Chapa",
        "view": "ᱩᱰᱩᱜᱽᱢᱮ",
        "view-foreign": "$1 re ńelme",
-       "edit": "á±¥á±\9aá±\9eᱦᱮ",
+       "edit": "á±¥á±\9fᱯᱲá±\9fá±£",
        "create": "Tearme",
        "create-local": "ᱢᱮᱥᱟᱭᱢᱮ ᱠᱟᱛᱷᱟ ᱠᱚ",
        "delete": "muchau me",
        "newmessageslinkplural": "{{PLURAL:$1|ᱢᱤᱫ ᱱᱟᱶᱟ ᱢᱮᱥᱮᱡᱽ|999=ᱱᱟᱶᱟ ᱢᱮᱥᱮᱡᱽᱠᱚ}}",
        "newmessagesdifflinkplural": "ᱢᱩᱪᱟᱹᱫ {{PLURAL:$1|ᱵᱚᱫᱚᱞ|999=ᱵᱚᱫᱚᱞᱠᱚ}}",
        "youhavenewmessagesmulti": "Amaḱ nãwã mesagko do $1 menaḱa",
-       "editsection": "á±¥á±\9aá±\9eᱦᱮ",
+       "editsection": "á±¥á±\9fᱯᱲá±\9fá±£",
        "editold": "Toṅge",
        "viewsourceold": "Ńamoḱ jayga",
        "editlink": "Tońge",
        "viewsourcelink": "ᱯᱷᱮᱰᱟᱛ ᱦᱚᱨ ᱧᱮᱞᱢᱮ",
-       "editsectionhint": "á±¥á±\9aá±\9eᱦᱮ ᱡᱟᱭᱜᱟ: $1",
-       "toc": "Contents",
+       "editsectionhint": "á±¥á±\9fᱯᱲá±\9fá±£ ᱡᱟᱭᱜᱟ: $1",
+       "toc": "ᱩᱱᱩᱫᱩᱜ",
        "showtoc": "Uduḱme",
        "hidetoc": "uku, Danaṅ",
        "collapsible-collapse": "Murchạo caba",
        "internalerror_info": "Bhitri reaḱ vul: $1",
        "filecopyerror": "\"$1\" rẽt khon \"$2\" rẽt baṅ kopilena.",
        "filerenameerror": "\"$1\" rẽt reaḱ ńutum bodol kate \"$2\" em baṅ hoyoḱ kana.",
-       "filedeleteerror": "$1 á±¥á±\9fᱦᱴá±\9f ᱫᱚ ᱵᱟᱝ ᱜᱮᱫᱽ ᱜᱤᱰᱤ ᱞᱮᱱᱟ",
+       "filedeleteerror": "$1 á±¨á±®á±« ᱫᱚ ᱵᱟᱝ ᱜᱮᱫᱽ ᱜᱤᱰᱤ ᱞᱮᱱᱟ",
        "directorycreateerror": "\"$1\" dayrekṭori do baṅ tearlena.",
        "filenotfound": "\"$1\" rẽt do baṅ sendra ńamoḱ kana.",
        "unexpected": "Baṅ asakan mạn: \"$1\"=\"$2\".",
        "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-argument-category": "Pages containing omitted template arguments",
        "undo-failure": "ᱥᱟᱯᱲᱟᱣᱠᱚ ᱵᱟᱭ ᱟᱹᱪᱩᱨ ᱨᱩᱣᱟᱹᱲᱚᱜ-ᱟ ᱛᱟᱞᱟ-ᱢᱟᱞᱟ ᱥᱟᱯᱲᱟᱣ ᱵᱤᱨᱚᱫᱽ ᱤᱫᱤᱠᱟᱛᱮ |",
-       "viewpagelogs": "á±±á±\9aᱣᱲ á±¥á±\9fᱦᱴá±\9f á±¨á±®á±­á±\9fá±\9c logs ᱧᱮᱞᱢᱮ",
+       "viewpagelogs": "á±±á±\9aá±£á±\9f á±¥á±\9fᱦᱴá±\9f á±¨á±®á±­á±\9fá±\9c á±\9eá±\9aá±\9cᱽᱠá±\9a ᱧᱮᱞᱢᱮ",
        "nohistory": "Noa sakam re do jahan sompadon reaḱ jạṛ bạnuḱa.",
        "currentrev": "Mucạt nãwã aroe",
        "currentrev-asof": "Mucạt nãwã aroy",
        "revdelete-radio-unset": "Baṅ",
        "revdelete-log": "Babot:",
        "revdel-restore": "Judạ lekate ńel",
-       "pagehist": "á±¥á±\9fᱦᱴá±\9f á±¨á±®á±­á±\9fá±\9c á±±á±\9fá±\9cá±\9fá±¢",
+       "pagehist": "ᱥᱟᱦᱴᱟ ᱱᱟᱜᱟᱢ",
        "deletedhist": "Get giḍi jạṛ",
        "revdelete-reasonotherlist": "Eṭaḱak karon",
        "mergehistory-reason": "Babot:",
        "viewprevnext": "Ńelme ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Noa wiki re do \"[[:$1]] ńutum sakam menaḱa",
        "searchmenu-new": "<strong>ᱥᱟᱦᱴᱟ ᱛᱮᱭᱟᱨ ᱢᱮ \"[[:$1]]\" ᱱᱚᱶᱟ ᱣᱤᱠᱤ ᱨᱮ!</strong> {{PLURAL:$2|0=|ᱟᱢᱟᱜ ᱥᱮᱸᱫᱽᱨᱟ ᱛᱮ ᱧᱟᱢᱮᱱ ᱥᱟᱦᱴᱟ ᱧᱮᱞᱢᱮ|ᱧᱟᱢᱮᱱ ᱥᱮᱸᱫᱽᱨᱟ ᱚᱨᱡᱚ ᱠᱚ ᱦᱚᱸ ᱧᱮᱞᱢᱮ}}",
-       "searchprofile-articles": "Menaḱaḱ sakamko",
+       "searchprofile-articles": "ᱥᱟᱛᱚᱢ ᱥᱟᱦᱴᱟᱠᱚ",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Sanamaḱ koge",
        "searchprofile-advanced": "Sompadon",
        "searchprofile-articles-tooltip": "$1 re ńelme",
        "searchprofile-images-tooltip": "File sendra",
-       "searchprofile-everything-tooltip": "Sanam ko modre sẽndra ( roṛ sakam modre hõ)",
+       "searchprofile-everything-tooltip": "ᱡᱚᱛᱚ ᱥᱟᱛᱚᱢ ᱥᱟᱦᱴᱟᱨᱮ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ (ᱨᱚᱲ ᱥᱟᱦᱴᱟ ᱠᱚᱦᱚᱸ)",
        "searchprofile-advanced-tooltip": "Judạ ńutum re sẽndra",
        "search-result-size": "$1 ({{PLURAL:$2|1 ᱟᱹᱲᱟᱹ|$2 ᱟᱹᱲᱟᱹᱠᱳ}})",
        "search-result-category-size": "{{PLURAL:$1 1 gãoren $1 gãota renko}} ({{PLURAL:$2 1 kạṭic rokom sokom $ 2 goṭen}}, {{PLURAL:$3 1 rẽt $3 rẽtko}})",
        "right-createtalk": "Galmarao sakamko benaomẽ",
        "right-createaccount": "Nãwã beoharićaḱ ekaunṭ tearmẽ",
        "right-move": "Sakamko ocogmẽ",
-       "right-move-subpages": "á±¥á±\9fᱦᱴá±\9f á±¥á±\9fᱶá±\9bᱮᱱᱠᱳ á±¥á±\9fᱦᱴá±\9f á± á±\9aᱸᱦá±\9aᱸ á±\9aᱪá±\9aá±\9cᱢᱮ",
+       "right-move-subpages": "á±¥á±\9fᱦᱴá±\9f á±¥á±\9fᱦá±\9fᱦá±\9fᱭᱢᱮ á±¥á±\9fᱶá±\9bᱮᱱ á±¥á±\9fᱦᱴá±\9fá± á±\9a á±¥á±\9fᱶ",
        "right-movefile": "Rẽtko ocogmẽ",
        "right-upload": "Rẽtko rakabmẽ",
        "right-writeapi": "ᱚᱞ API ᱨᱮᱱᱟᱜ ᱵᱮᱵᱷᱟᱨ",
        "recentchanges-summary": "Noa sakamre wiki reaḱ joto khon nãwã bodolko paṅjaṅjaymẽ.",
        "recentchanges-noresult": "ᱮᱢᱞᱮᱱ ᱥᱚᱢᱚᱭ ᱵᱷᱤᱛᱤᱨ ᱨᱮ ᱵᱚᱫᱚᱞᱟᱜ ᱠᱚ ᱵᱟᱭ ᱢᱤᱫᱩᱜ ᱠᱟᱱᱟ ᱾",
        "recentchanges-feed-description": "Noa feedre wiki reaḱ joto khon nãwã bodolko paṅjaymẽ",
-       "recentchanges-label-newpage": "Noa sompadon do nãwã mint́ṭen sakame tearkeda",
+       "recentchanges-label-newpage": "ᱱᱚᱣᱟ ᱥᱟᱯᱲᱟᱣ ᱢᱤᱫᱴᱮᱱ ᱱᱟᱣᱟ ᱥᱟᱦᱴᱟᱭ ᱛᱮᱭᱟᱨᱠᱮᱫᱟ",
        "recentchanges-label-minor": "Noado hudiń mạchi toṅge",
        "recentchanges-label-bot": "Noa toṅge do bot hotete purauena",
        "recentchanges-label-unpatrolled": "Noa sompadon do ńit́ hạbić baṅ ńel ńamakana",
        "recentchangeslinked-feed": "ᱥᱟᱹᱜᱟᱹᱭᱟᱱ ᱵᱚᱫᱚᱞᱠᱚ",
        "recentchangeslinked-toolbox": "ᱥᱟᱹᱜᱟᱹᱭᱟᱱ ᱵᱚᱫᱚᱞᱠᱚ",
        "recentchangeslinked-title": "Bodolaḱko do \"$1\" sãote joṛao geya",
-       "recentchangeslinked-summary": "Noa do ona tạlika kana oka do nebetarge bodol hoyakan oka do asokayte hatao akan sakam khon.\n\n[[Special:Watchlist|your watchlist]] renaḱ sakamko do '''bold''' .",
+       "recentchangeslinked-summary": "ᱱᱚᱣᱟ ᱫᱚ ᱚᱱᱟ ᱛᱟᱹᱞᱠᱟᱹ ᱠᱟᱱᱟ ᱚᱠᱟ ᱫᱟ ᱱᱮᱵᱮᱛᱟᱨᱜᱮ ᱵᱚᱫᱚᱞ ᱦᱩᱭ ᱟᱠᱟᱱᱟ ᱚᱠᱟ ᱫᱚ category ᱦᱟᱛᱟᱣ ᱟᱠᱟᱱ ᱥᱟᱠᱟᱢ ᱠᱷᱚᱱ᱾\n\n[[Special:Watchlist|your watchlist]] ᱨᱮᱭᱟᱜ ᱥᱟᱦᱴᱟ ᱫᱚ'''bold''' .",
        "recentchangeslinked-page": "sakạm ńutum",
        "recentchangeslinked-to": "Joṛaoaḱ sakamre ńel ocoyme emaḱ sakam bạgi katet",
        "upload": "ᱨᱮᱫ ᱞᱟᱫᱮᱢᱮ",
        "upload-description": "Rẽt reaḱ jạṛ",
        "watchthisupload": "Noa rẽt ńelmẽ",
        "upload-file-error": "Bhitri reaḱ bhul",
+       "upload-form-label-infoform-date": "ᱢᱟᱹᱦᱤᱛ",
        "license": "Laisence benao",
        "license-header": "Laisense benao",
        "imgfile": "Rẽt",
        "filehist-dimensions": "Maṕ",
        "filehist-comment": "Roṛ",
        "imagelinks": "ᱯᱷᱟᱭᱤᱞ ᱵᱮᱣᱦᱟᱨ",
-       "linkstoimage": "ᱞᱟᱛᱟᱨ ᱨᱮᱭᱟᱜ {{PLURAL:$1|ᱥᱟᱦᱴᱟ ᱡᱚᱱᱚᱲᱠᱚ|$1 Sᱟᱦᱴᱟᱠᱚ ᱡᱚᱱᱚᱲ}} ᱱᱤᱭᱟᱹ ᱨᱮᱫ ᱨᱮ:",
+       "linkstoimage": "ᱞᱟᱛᱟᱨ ᱨᱮᱭᱟᱜ {{PLURAL:$1|ᱥᱟᱦᱴᱟ ᱡᱚᱱᱚᱲᱠᱚ|$1 ᱟᱦᱴᱟᱠᱚ ᱡᱚᱱᱚᱲ}} ᱱᱤᱭᱟᱹ ᱨᱮᱫ ᱨᱮ:",
        "linkstoimage-more": "$1 ᱠᱷᱚᱱ ᱵᱟᱹᱲᱛᱤ {{PLURAL:$1|ᱥᱟᱦᱴᱟ ᱡᱚᱯᱲᱟᱣᱠᱚ|ᱥᱟᱦᱴᱟ ᱡᱚᱯᱲᱟᱣ}} ᱢᱮᱱᱟᱜ-ᱟ ᱱᱚᱣᱟ ᱨᱮᱫ ᱥᱟᱶ ᱾\nᱱᱚᱶᱟ ᱞᱤᱥᱴᱤ ᱩᱫᱩᱜᱮᱜ-ᱟᱭ {{PLURAL:$1|ᱮᱛᱚᱦᱚᱵ ᱥᱟᱦᱴᱟ ᱡᱚᱲᱟᱣ|ᱮᱛᱚᱦᱚᱵ $1 ᱥᱟᱦᱴᱟ ᱡᱚᱲᱟᱣᱠᱚ}} ᱥᱩᱢᱩᱝ ᱱᱚᱶᱟ ᱨᱮᱫ ᱥᱟᱶ ᱾\nᱢᱤᱫ [[Special:WhatLinksHere/$2|ᱡᱚᱛᱚ ᱞᱤᱥᱴᱤ]] ᱢᱮᱱᱟᱜ-ᱟ ᱾",
        "nolinkstoimage": "ᱱᱚᱸᱰᱮ ᱫᱚ ᱟᱨ ᱮᱴᱟᱜ ᱥᱟᱦᱴᱟᱠᱚ ᱵᱟᱱᱩᱜ-ᱟ ᱡᱟᱸᱦᱟᱸ ᱥᱟᱶᱛᱮ ᱱᱤᱭᱟᱹ ᱨᱮᱫ ᱨᱮᱱᱟᱜ ᱡᱚᱱᱚᱲ ᱢᱮᱱᱟᱜ-ᱟ",
        "linkstoimage-redirect": "$1 (ᱨᱮᱫ ᱢᱚᱦᱰᱟᱜ-ᱟ) $2",
-       "sharedupload-desc-here": "Noa rẽt do nonḍe khon-  $1 ar paseć eṭaḱaḱ porjekṭko beoharakana.\nNoa reaḱ pasnao katha [$2 rẽt pasnao sakam] latare emena",
+       "sharedupload-desc-here": "ᱱᱚᱣᱟ ᱨᱮᱫ ᱫᱚ ᱱᱚᱸᱰᱮ ᱠᱷᱚᱱ $1 ᱟᱨ ᱯᱟᱥᱮᱡ ᱮᱴᱟᱜ-ᱟ ᱯᱚᱨᱡᱮᱠᱴ ᱨᱮᱦᱚᱸ ᱵᱮᱵᱦᱟᱨᱚᱜ ᱠᱟᱱᱟ᱾\nᱱᱚᱣᱟ ᱨᱮᱭᱟ ᱯᱟᱥᱱᱟᱣ ᱠᱟᱛᱷᱟ [$2 ᱨᱮᱫ ᱯᱟᱥᱱᱟᱣ ᱥᱟᱦᱴᱟ] ᱞᱟᱛᱟᱨᱨᱮ ᱮᱢ ᱮᱱᱟ᱾",
        "filepage-nofile": "ᱱᱚᱶᱟ ᱧᱩᱛᱩᱢᱟᱜ ᱨᱮᱫ ᱵᱟᱹᱱᱩᱜ-ᱟ ᱾",
        "upload-disallowed-here": "Am do noa phayel cetanre bam ol daṛẽaḱa",
        "mimesearch": "MIME ᱥᱮᱸᱫᱽᱨᱟ",
        "double-redirect-fixer": "ᱢᱚᱸᱦᱟᱰᱟ ᱴᱷᱟᱹᱣᱠᱟᱹᱭᱤᱡ",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "nmembers": "$1 {{PLURAL:$1 Gaõtaren Gaõtarenko}}",
-       "prefixindex": "All pages with prefix",
+       "prefixindex": "ᱡᱚᱛᱚ ᱥᱟᱦᱴᱟᱠᱚ prefix ᱥᱟᱶ",
        "shortpages": "Huḍiń sakamko",
        "longpages": "Jiliń sakamko",
        "listusers": "beoharićaḱ tạlika",
+       "listusers-creationsort": "ᱛᱮᱭᱟᱨᱟᱠᱟᱱ ᱢᱟᱹᱦᱤᱛ ᱞᱮᱠᱟᱛᱮ ᱯᱟᱱᱛᱮ",
        "usercreated": "{{JẠT: $3 | benawakan}} $1 tarikre $2 okte",
        "newpages": "ᱱᱟᱶᱟ ᱥᱟᱦᱴᱟᱠᱳ",
        "newpages-username": "Beoharićaḱ ńutum:",
        "ancientpages": "Mare sakamko",
        "move": "Ocoḱme, Kulme",
-       "movethispage": "á±±á±\9aᱣᱲ á±¥á±\9fᱦᱴá±\9f á± á±©á±\9eᱢᱮ",
+       "movethispage": "á±±á±\9aᱶá±\9f á±¥á±\9fᱦᱴá±\9f á±¥á±\9fᱦá±\9fá±­ᱢᱮ",
        "pager-newer-n": "{{PLURAL:$1 nãwaw aroyen 1ṭen nãwã aroyen $1ṭen}}",
        "pager-older-n": "{{PLURAL:$1 arhõ mare 1ṭen arhõ mare $1ṭen}}",
        "booksources": "Puthi ńamoḱ ṭhại/jayga",
        "watchlist-details": "ᱵᱟᱝ ᱯᱩᱨᱟᱹᱣ ᱛᱟᱹᱞᱠᱟᱹᱨᱮ{{PLURAL:$1 ᱥᱟᱦᱴᱟ $1 ᱥᱟᱦᱴᱟ}} ᱢᱮᱱᱟᱜ-ᱟ (ᱨᱚᱲ ᱥᱟᱦᱴᱟ ᱠᱚᱦᱚᱸ)",
        "wlheader-showupdated": "ᱟᱢᱟᱜ ᱢᱩᱪᱟᱹᱫ ᱵᱚᱞᱚᱝᱨᱮ ᱡᱟᱸᱦᱟᱸ ᱥᱟᱦᱴᱟ ᱠᱚᱢ ᱵᱚᱫᱚᱞ ᱞᱮᱫᱟ ᱚᱱᱟᱠᱩ ᱧᱮᱞᱚᱜ-ᱟ <strong>bold</strong>.",
        "wlnote": "ᱞᱟᱛᱟᱨ ᱨᱮᱱᱟᱜ {{PLURAL:$1|ᱫᱚ ᱢᱩᱪᱟᱹᱫ ᱵᱚᱫᱚᱞ ᱠᱟᱱᱟ|ᱠᱚ ᱫᱚ ᱢᱩᱪᱟᱹᱫ <strong>$1</strong> ᱵᱚᱫᱚᱞᱠᱟᱱᱟ}} ᱢᱩᱪᱟᱹᱫ ᱨᱮ {{PLURAL:$2|ᱴᱟᱲᱟᱝ|<strong>$2</strong> ᱴᱟᱲᱟᱝ}},  $3, $4 ᱞᱮᱠᱟᱛᱮ ᱾",
-       "wlshowlast": "ᱢᱩᱪá±\9fá±¹á±\9b á±©á±«á±©á±\9cᱢᱮ $1 á±\9cá±·á±\9fᱱᱴá±\9f $2 á±¢á±\9fᱦá±\9f",
+       "wlshowlast": "ᱢᱩᱪá±\9fá±¹á±\9b á±©á±«á±©á±\9cᱢᱮ $1 á±´á±\9fá±²á±\9fá±\9d $2 á±¢á±\9fᱦá±\9fᱸ",
        "watchlist-options": "Ńelok tạlika reak sonketko",
        "watching": "Ńeloḱ kana...",
        "enotif_reset": "ᱱᱤᱱᱦᱟᱹᱭᱢᱮ ᱡᱚᱛᱚ ᱥᱟᱦᱴᱟ ᱦᱤᱨᱤᱭᱟᱠᱟᱱᱟ",
        "thumbnail_error": "Benawakan unuduḱ kạṭuṕ do baṅ ṭhika: $1",
        "import-upload-filename": "Rẽt ńutum",
        "importlogpage": "ᱞᱚᱜᱽ ᱟᱹᱜᱩ",
-       "tooltip-pt-userpage": "{{GENDER:|ᱟᱢ ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱹ}} ᱥᱟᱦᱴᱟ",
+       "tooltip-pt-userpage": "{{GENDER:|ᱟᱢᱟᱜ ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱹ}} ᱥᱟᱦᱴᱟ",
        "tooltip-pt-mytalk": "{{GENDER:|ᱟᱢᱟᱜ}} ᱨᱚᱲ ᱥᱟᱦᱴᱟ",
        "tooltip-pt-preferences": "{{GENDER:|Amaḱ}} pạsindko",
        "tooltip-pt-watchlist": "Sakam tạlika okaṭak̕katet́ am do nãwã aroy lạgitem ńeleḱkan",
        "tooltip-pt-login": "ᱟᱢ ᱫᱚ ᱵᱚᱞᱟᱜ ᱞᱟᱹᱜᱤᱛ ᱩᱫᱽᱜᱟᱣᱤᱧ ᱮᱢᱟᱢᱠᱟᱱᱟ; ᱵᱚᱞᱚᱜ ᱞᱟᱜᱟᱜ-ᱟ ᱚᱝᱠᱟ ᱫᱚ ᱵᱟᱝ",
        "tooltip-pt-logout": "O̠nḍo̠ńme",
        "tooltip-pt-createaccount": "ᱟᱢ ᱫᱚ ᱢᱤᱫᱽᱴᱮᱱ ᱦᱤᱥᱟᱹᱵ ᱡᱷᱤᱪ ᱠᱟᱛᱮ ᱵᱚᱞᱚᱜ ᱞᱟᱹᱜᱤᱛᱤᱧ ᱩᱫᱽᱜᱟᱣᱮᱛ ᱢᱮᱭᱟ; ᱟᱫᱚ ᱡᱟᱹᱨᱩᱲ ᱵᱚᱞᱚᱜ ᱚᱝᱠᱟ ᱫᱚ ᱵᱟᱝ ᱠᱟᱱᱟ",
-       "tooltip-ca-talk": "Galmãrao bhitri renaḱ sakam lạgit́",
+       "tooltip-ca-talk": "ᱥᱟᱛᱚᱢ ᱥᱟᱦᱴᱟ ᱞᱟᱹᱜᱤᱛ ᱜᱟᱞᱢᱟᱨᱟᱣ",
        "tooltip-ca-edit": "ᱱᱚᱭᱟ ᱥᱟᱦᱴᱟ ᱥᱟᱯᱲᱟᱣᱢᱮ",
        "tooltip-ca-addsection": "Nãwã sekson sạrdi",
        "tooltip-ca-viewsource": "Noa sakam do poṭom gea\nOna te source em ńel daṛeaḱ",
        "tooltip-feed-atom": "Noa sakam lạgit́ atom phiḍ",
        "tooltip-t-contributions": "ᱮᱱᱮᱢ ᱨᱮᱱᱟᱜ ᱛᱟᱹᱞᱠᱟᱹ {{GENDER:$1|ᱱᱩᱭ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ}}",
        "tooltip-t-emailuser": "ᱢᱤᱫ ᱤᱢᱮᱞ ᱠᱩᱞᱟᱭᱢᱮ {{GENDER:$1|ᱱᱩᱭ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ}}",
-       "tooltip-t-upload": "ᱯᱷá±\9fᱭᱤá±\9eá± á±³ á±\9fᱯá±\9eᱳᱰᱢᱮ",
+       "tooltip-t-upload": "ᱨᱮᱫ á± á±\9a á±\9eá±\9fᱫᱮᱢᱮ",
        "tooltip-t-specialpages": "ᱡᱟᱹᱨᱩᱲ ᱥᱟᱦᱴᱟᱠᱳ ᱨᱮᱱᱟᱜ ᱛᱟᱹᱞᱠᱟᱹ",
        "tooltip-t-print": "ᱱᱤᱭᱟᱹ ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱯᱨᱤᱱᱴ ᱜᱟᱱᱚᱜ ᱚᱰᱚᱫ",
        "tooltip-t-permalink": "ᱱᱚᱭᱟ ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱥᱟᱯᱲᱟᱣᱠᱳ ᱨᱮᱱᱟᱜ ᱛᱤᱨᱮᱡᱩᱜᱮ ᱡᱚᱱᱚᱲ",
        "tooltip-save": "Bodolaḱko rukhiyayme",
        "tooltip-preview": "Amaḱ bodolaḱ uduḱme, noa beoharme ạuri rukhiyayre",
        "tooltip-diff": "Uduḱme okaṭaḱ onolem bodolakada",
-       "tooltip-compareselectedversions": "á±±á±\9aá±£á±\9f á±¥á±\9fᱦᱴá±\9f á±¨á±®á±±á±\9fá±\9c á±µá±\9fᱨᱮᱭá±\9f revision differences á±§á±®á±\9e á±±ᱮ",
+       "tooltip-compareselectedversions": "á±±á±\9aá±£á±\9f á±¥á±\9fᱦᱴá±\9f á±¨á±®á±±á±\9fá±\9c á±µá±\9fᱨᱭá±\9f á±§á±®á±\9eá±\9fᱹᱨᱩ á±µá±·á±®á±\9cᱮᱫ á±§á±®á±\9e á±¢ᱮ",
        "tooltip-watch": "Amaḱ ńeloḱ sakamre noa do dohoyme",
-       "tooltip-rollback": "\"Ghurlạ ạcur\" noa sakam taṛam ruạṛ ńel sapha ona do amaḱ mũcạt́ mit́ dhom click re",
+       "tooltip-rollback": "ᱫᱚᱲᱦᱟᱛᱮ ᱢᱤᱫ ᱫᱷᱟᱣ ᱞᱤᱱ ᱛᱮ contributor ᱟᱜ ᱢᱩᱪᱟᱹᱫ ᱥᱟᱯᱲᱟᱣ \"ᱜᱷᱩᱨᱞᱟᱹ ᱟᱹᱪᱩᱨ\" ᱢᱮ",
        "tooltip-undo": "Noa joṛao kạmire ulṭao \"bạgiyaḱme\" ar ńeloḱ lekate noa joṛao jhicme. Noa do am guḍ karon joṛaoe ektiyariye emama.",
        "tooltip-preferences-save": "Pạsindko rukhiyaymẽ",
        "tooltip-summary": "Khaṭote guṭ katha bhoraome",
        "show-big-image-other": "Eman teaḱ {{PLURAL:$2|resolution|resolutions}}: $1",
        "show-big-image-size": "$1 X $2 Pixels",
        "ilsubmit": "Sendra",
+       "bydate": "ᱢᱟᱹᱦᱤᱛ ᱛᱮ",
+       "monday-at": "ᱚᱛᱮᱢᱟᱦᱟᱸ $1 ᱨᱮ",
+       "tuesday-at": "ᱵᱟᱞᱮᱢᱟᱦᱟᱸ $1 ᱨᱮ",
+       "wednesday-at": "ᱥᱟᱹᱜᱩᱱᱢᱟᱦᱟᱸ $1 ᱨᱮ",
+       "friday-at": "ᱡᱟᱹᱨᱩᱢ ᱢᱟᱦᱟᱸ $1 ᱨᱮ",
+       "saturday-at": "ᱧᱩᱦᱩᱢ ᱢᱟᱦᱟᱸ $1 ᱨᱮ",
+       "yesterday-at": "ᱦᱚᱞᱟ $1 ᱨᱮ",
        "bad_image_list": "Format do latar re leka",
        "metadata": "Meṭa khobor",
        "metadata-help": "Noa rẹt redo bạṛti kathako menaḱa, paseć noa do ḍejiṭal kemera se skenar bebohar hoy kate ḍijiṭal benao. Judi noa ret noa reaḱ asolak khon nãwã aro lenkhan, paseć sanamaḱko thoṛa bań sodoroḱa noa retredo.",
        "exif-colorspace": "Roṅcoṅ dhạrti",
        "exif-datetimeoriginal": "ᱰᱟᱴᱟ ᱛᱮᱭᱟᱨ ᱨᱮᱱᱟᱜ ᱢᱟᱹᱦᱤᱛ ᱟᱨ ᱚᱠᱛᱚ",
        "exif-datetimedigitized": "ᱰᱤᱡᱤᱴᱟᱭᱡᱤᱝᱟᱜ ᱢᱟᱹᱦᱤᱛ ᱟᱨ ᱚᱠᱛᱚ",
+       "exif-subsectime": "ᱢᱟᱹᱦᱤᱛ ᱚᱠᱛᱚ ᱴᱤᱯᱤᱡ",
+       "exif-exposuretime-format": "$1 ᱴᱤᱯᱤᱡ ($2)",
+       "exif-gpsdatestamp": "GPS ᱢᱟᱹᱦᱤᱛ",
+       "exif-unknowndate": "ᱚᱪᱤᱱᱦᱟᱹᱣ ᱢᱟᱹᱦᱤᱛ",
        "exif-orientation-1": "ᱥᱟᱫᱷᱟᱨᱚᱱ",
+       "exif-dc-date": "ᱢᱟᱹᱦᱤᱛ",
        "namespacesall": "sanam",
        "monthsall": "Sanamak",
+       "quotation-marks": "\"$1\"",
        "imgmultipagenext": "ᱫᱟᱨᱟᱭ ᱥᱟᱦᱴᱟ 'n",
        "imgmultigo": "ᱥᱮᱱᱚᱜ!",
        "imgmultigoto": "ᱥᱮᱱᱚᱜ ᱢᱮ ᱥᱟᱦᱴᱟ $1",
        "tags-active-yes": "ᱦᱮᱸ",
        "tags-active-no": "ᱵᱟᱝ",
        "tags-hitcount": "$1 {{PLURAL:$1|ᱟᱹᱨᱩ|ᱟᱹᱨᱩᱠᱚ}}",
+       "compare-page1": "ᱥᱟᱦᱴᱟ ᱑",
+       "compare-rev1": "ᱧᱮᱞᱟᱹᱨᱩ ᱑",
        "logentry-delete-delete": "$3 ᱥᱟᱦᱴᱟ $1 {{GENDER:$2|ᱜᱮᱫ ᱠᱮᱜ-ᱟᱭ}}",
        "logentry-delete-restore": "$1 {{GENDER:$2|ᱨᱟᱠᱷᱟ ᱫᱚᱲᱦᱟ}} ᱠᱮᱜ-ᱟ ᱥᱟᱦᱴᱟ $3 ($4)",
        "logentry-delete-revision": "$1 {{GENDER:$2|ᱵᱚᱫᱚᱞᱠᱮᱜ-ᱟᱭ}} ᱧᱮᱞᱚᱜᱟᱜ {{PLURAL:$5|ᱫᱚᱦᱲᱟᱭᱮᱱᱟᱜ|$5 ᱫᱚᱦᱲᱟᱭᱮᱱᱟᱜ ᱠᱚ}} $3: $4 ᱥᱟᱦᱴᱟ ᱪᱮᱛᱟᱱᱨᱮ",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|ᱞᱟᱫᱮᱭᱮᱱᱟ}} ᱢᱤᱫ ᱱᱟᱶᱟ ᱵᱷᱟᱨᱥᱚᱱ $3 ᱨᱮᱱᱟᱜ",
        "searchsuggest-search": "ᱥᱮᱸᱫᱽᱨᱟ {{SITENAME}}",
        "duration-days": "$1 {{PLURAL:$1|ᱢᱟᱦᱟᱸ|ᱢᱟᱸᱦᱟᱸ}}",
+       "mw-widgets-dateinput-no-date": "ᱢᱟᱹᱦᱤᱛ ᱵᱟᱝ ᱵᱟᱪᱷᱚᱱ ᱟᱠᱟᱱᱟ",
        "mw-widgets-mediasearch-input-placeholder": "ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱢᱮᱰᱤᱭᱟ",
+       "date-range-from": "ᱢᱟᱹᱦᱤᱛ ᱠᱷᱚᱱ:",
        "randomrootpage": "ᱟᱹᱛᱷᱟᱣᱲᱤ ᱨᱮᱦᱮᱫ ᱥᱟᱦᱴᱟ"
 }
index f3a2803..f6c4069 100644 (file)
        "recentchangesdays-max": "Največ $1 {{PLURAL:$1|dan|dneva|dnevi|dni}}",
        "recentchangescount": "Privzeto število prikazanih urejanj:",
        "prefs-help-recentchangescount": "Vključuje zadnje spremembe, zgodovine strani in dnevniške zapise.",
+       "prefs-help-tokenmanagement": "Lahko si ogledate ali ponastavite skrivni ključ vašega računa, s katerim lahko dostopate do spletnega vira vašega spiska nadzorov. Vsak, ki pozna vaš ključ, lahko bere vaš spisek nadzorov, zato ga ne delite.",
        "savedprefs": "Spremembe smo uspešno shranili.",
        "savedrights": "Uporabniške skupine {{GENDER:$1|$1}} smo shranili.",
        "timezonelegend": "Časovni pas",
index 4943f77..58d5704 100644 (file)
        "diff-multi-sameuser": "({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av samma användare visas inte)",
        "diff-multi-otherusers": "({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av {{PLURAL:$2|en annan användare|$2 användare}} visas inte)",
        "diff-multi-manyusers": "({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av mer än $2 användare visas inte)",
+       "diff-paragraph-moved-tonew": "Avsnittet flyttades. Klicka för att hoppa till den nya platsen.",
+       "diff-paragraph-moved-toold": "Avsnittet flyttades. Klicka för att hoppa till den gamla platsen.",
        "difference-missing-revision": "Det gick inte att hitta {{PLURAL:$2|en version|$2 versioner}} av den här differensen ($1).\n\nDetta beror oftast på att du har försökt följa en utgången difflänk till en sida som har raderats.\nMer detaljerad information finns i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} raderingsloggen].",
        "searchresults": "Sökresultat",
        "searchresults-title": "Sökresultat för \"$1\"",
        "prefs-watchlist-edits": "Maximalt antal redigeringar som visas i bevakningslistan:",
        "prefs-watchlist-edits-max": "Maximalt antal: 1 000",
        "prefs-watchlist-token": "Bevakningslistsnyckel:",
+       "prefs-watchlist-managetokens": "Hantera nycklar",
        "prefs-misc": "Diverse",
        "prefs-resetpass": "Ändra lösenord",
        "prefs-changeemail": "Ändra eller ta bort e-postadress",
        "recentchangesdays-max": "Maximalt $1 {{PLURAL:$1|dygn}}",
        "recentchangescount": "Antal redigeringar som visas som standard:",
        "prefs-help-recentchangescount": "Detta inkluderar senaste ändringarna, sidhistorik och loggar.",
+       "prefs-help-tokenmanagement": "Du kan se och återställa den hemliga nyckeln för ditt konto som har åtkomst till webbmatningen för din bevakningslista. Alla som vet nyckeln kan läsa din bevakningslista, så dela inte ut den.",
        "savedprefs": "Dina inställningar har sparats",
        "savedrights": "Användargrupperna för {{GENDER:$1|$1}} har sparats.",
        "timezonelegend": "Tidszon:",
index b8dd7cb..8c9288a 100644 (file)
        "talkpagelinktext": "تبادلۂ خیال",
        "specialpage": "خصوصی صفحہ",
        "personaltools": "ذاتی آلات",
-       "talk": "تبادÙ\84Û\81Ù´ خیال",
+       "talk": "تبادÙ\84Û\82 خیال",
        "views": "مشاہدات",
        "toolbox": "آلات",
        "tool-link-userrights": "حلقہ ہائے {{GENDER:$1|صارف}} میں تبدیلی",
        "protect-text": "یہاں آپ <strong>$1</strong> کا درجۂ حفاظت دیکھ اور تبدیل کر سکتے ہیں۔",
        "protect-locked-blocked": "پابندی کے دوران میں آپ درجہ حفاظت میں تبدیلی نہیں کر سکتے۔\nصفحہ <strong>$1</strong> کی حالیہ ترتیبات یہاں دیکھی جا سکتی ہیں:",
        "protect-locked-dblock": "ڈیٹابیس مقفل ہونے کی وجہ سے درجہ حفاظت کو تبدیل نہیں کیا جا سکتا۔\nصفحہ <strong>$1</strong> کی حالیہ ترتیبات یہاں دیکھی جا سکتی ہیں:",
-       "protect-locked-access": "آپ Ú©Ù\88 Ø¯Ø±Ø¬Û\81 حفاظت تبدیل کرنے کا اختیار حاصل نہیں ہے۔\nصفحہ <strong>$1</strong> کی حالیہ ترتیبات یہاں دیکھی جا سکتی ہیں:",
+       "protect-locked-access": "آپ Ú©Ù\88 Ø¯Ø±Ø¬Û\82 حفاظت تبدیل کرنے کا اختیار حاصل نہیں ہے۔\nصفحہ <strong>$1</strong> کی حالیہ ترتیبات یہاں دیکھی جا سکتی ہیں:",
        "protect-cascadeon": "یہ صفحہ محفوظ ہے کیونکہ یہ درج ذیل {{PLURAL:$1|صفحہ|صفحات}} میں شامل ہے جہاں آبشاری حفاظت فعال ہے۔\nآپ اس صفحہ کے درجۂ حفاظت میں تبدیلی کرسکتے ہیں، لیکن یہ آبشاری حفاظت پر اثر انداز نہیں ہوگی۔",
        "protect-default": "تمام صارفین کو اجازت ہے",
        "protect-fallback": "محض «$1» کا اختیار رکھنے والے صارفین کو اجازت ہے",
        "whatlinkshere-hidetrans": "استعمالات $1",
        "whatlinkshere-hidelinks": "روابط $1",
        "whatlinkshere-hideimages": "تصویر کے روابط $1",
-       "whatlinkshere-filters": "مقطرات",
+       "whatlinkshere-filters": "Ù\85Ù\82طارات",
        "whatlinkshere-submit": "ٹھیک",
        "autoblockid": "خودکار پابندی #$1",
        "block": "صارف مسدود کریں",
index 94dce15..970e951 100644 (file)
        "log": "Mga talaan",
        "logeventslist-submit": "Igpakita",
        "all-logs-page": "Ngatanan nga mga talaan panpubliko",
+       "alllogstext": "Pinantampo nga pagpakita han ngatanan nga mga log han {{SITENAME}}.\n\nPuydi nimo pahalipoton ini ang lista pinaagi han pagpili han kun ano nga klase nga log, an agnay-gumaramit (case-sensitive), o an apektado nga pakli (case-sensitive gihapon).",
        "logempty": "Waray nahahanungod nga mga butang dida hit log.",
        "checkbox-all": "Ngatanan",
        "checkbox-none": "Waray",
        "changecontentmodel-submit": "Balyo-a",
        "protectlogpage": "Talaan han pinasaliporan",
        "protectedarticle": "pinasaliporan \"[[$1]]\"",
+       "modifiedarticleprotection": "ginsaliwanan an lebel han pagprotektar para han \"[[$1]]\"",
        "prot_1movedto2": "[[$1]] in ginbalhin ngadto ha [[$2]]",
        "protectcomment": "Katadongan:",
        "protect-default": "Togota an ngatanan nga mga gumaramit",
index 26f1443..0b203b0 100644 (file)
 
 $rtl = true;
 
+$digitTransformTable = [
+       '0' => '۰', # &#x1776;
+       '1' => '۱', # &#x1777;
+       '2' => '۲', # &#x1778;
+       '3' => '۳', # &#x1779;
+       '4' => '۴', # &#x1780;
+       '5' => '۵', # &#x1781;
+       '6' => '۶', # &#x1782;
+       '7' => '۷', # &#x1783;
+       '8' => '۸', # &#x1784;
+       '9' => '۹', # &#x1785;
+];
+
+$separatorTransformTable = [
+       '.' => '٫', # &#x066b;
+       ',' => '٬', # &#x066c;
+];
+
 $namespaceNames = [
        NS_MEDIA            => 'رسنۍ',
        NS_SPECIAL          => 'ځانگړی',
index 526561c..d3aa280 100644 (file)
@@ -299,7 +299,7 @@ class ImportImages extends Maintenance {
                                                " publishing {$file} by '{$wgUser->getName()}', comment '$commentText'... "
                                        );
                                } else {
-                                       $mwProps = new MWFileProps( MimeMagic::singleton() );
+                                       $mwProps = new MWFileProps( MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer() );
                                        $props = $mwProps->getPropsFromPath( $file, true );
                                        $flags = 0;
                                        $publishOptions = [];
index 7be6ce1..6745695 100644 (file)
 .client-js #preferences > .oo-ui-panelLayout > .oo-ui-fieldsetLayout > .oo-ui-fieldsetLayout-header {
        margin-bottom: 1em;
 }
+
+/* Make the "Basic information" section more compact */
+/* OOUI's `align: 'left'` for FieldLayouts sucks, so we do our own */
+#mw-htmlform-info > .oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
+       width: 20%;
+       display: inline-block;
+       vertical-align: middle;
+       padding: 0;
+}
+
+#mw-htmlform-info > .oo-ui-fieldLayout-align-top > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-field {
+       width: 80%;
+       display: inline-block;
+       vertical-align: middle;
+}
index 592f72a..b779231 100644 (file)
@@ -266,6 +266,46 @@ class WANObjectCacheTest extends PHPUnit_Framework_TestCase {
                $v = $cache->getWithSetCallback( $key, 30, $func, [ 'pcTTL' => 5 ] + $extOpts );
                $this->assertEquals( $value, $v, "Value still returned after deleted" );
                $this->assertEquals( 1, $wasSet, "Value process cached while deleted" );
+
+               $backToTheFutureCache = new TimeAdjustableWANObjectCache( [
+                       'cache'   => new TimeAdjustableHashBagOStuff(),
+                       'pool'    => 'empty'
+               ] );
+
+               $oldValReceived = -1;
+               $oldAsOfReceived = -1;
+               $checkFunc = function ( $oldVal, &$ttl, array $setOpts, $oldAsOf )
+               use ( &$oldValReceived, &$oldAsOfReceived, &$wasSet ) {
+                       ++$wasSet;
+                       $oldValReceived = $oldVal;
+                       $oldAsOfReceived = $oldAsOf;
+
+                       return 'xxx' . $wasSet;
+               };
+
+               $wasSet = 0;
+               $key = wfRandomString();
+               $v = $backToTheFutureCache->getWithSetCallback(
+                       $key, 30, $checkFunc, [ 'staleTTL' => 50 ] + $extOpts );
+               $this->assertEquals( 'xxx1', $v, "Value returned" );
+               $this->assertEquals( false, $oldValReceived, "Callback got no stale value" );
+               $this->assertEquals( null, $oldAsOfReceived, "Callback got no stale value" );
+
+               $backToTheFutureCache->setTime( microtime( true ) + 40 );
+               $v = $backToTheFutureCache->getWithSetCallback(
+                       $key, 30, $checkFunc, [ 'staleTTL' => 50 ] + $extOpts );
+               $this->assertEquals( 'xxx2', $v, "Value still returned after expired" );
+               $this->assertEquals( 2, $wasSet, "Value recalculated while expired" );
+               $this->assertEquals( 'xxx1', $oldValReceived, "Callback got stale value" );
+               $this->assertNotEquals( null, $oldAsOfReceived, "Callback got stale value" );
+
+               $backToTheFutureCache->setTime( microtime( true ) + 300 );
+               $v = $backToTheFutureCache->getWithSetCallback(
+                       $key, 30, $checkFunc, [ 'staleTTL' => 50 ] + $extOpts );
+               $this->assertEquals( 'xxx3', $v, "Value still returned after expired" );
+               $this->assertEquals( 3, $wasSet, "Value recalculated while expired" );
+               $this->assertEquals( false, $oldValReceived, "Callback got no stale value" );
+               $this->assertEquals( null, $oldAsOfReceived, "Callback got no stale value" );
        }
 
        public static function getWithSetCallback_provider() {
index 196f688..a4e8056 100644 (file)
@@ -76,7 +76,7 @@ abstract class MediaWikiMediaTestCase extends MediaWikiTestCase {
        protected function dataFile( $name, $type = null ) {
                if ( !$type ) {
                        // Autodetect by file extension for the lazy.
-                       $magic = MimeMagic::singleton();
+                       $magic = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                        $parts = explode( $name, '.' );
                        $type = $magic->guessTypesForExtension( $parts[count( $parts ) - 1] );
                }
index f51693d..b8dadaf 100644 (file)
@@ -123,7 +123,7 @@ class WebPHandlerTest extends MediaWikiTestCase {
         * @dataProvider provideTestGetMimeType
         */
        public function testGuessMimeType( $path ) {
-               $mime = MimeMagic::singleton();
+               $mime = MediaWiki\MediaWikiServices::getInstance()->getMimeAnalyzer();
                $this->assertEquals( 'image/webp', $mime->guessMimeType( $path, false ) );
        }
        public function provideTestGetMimeType() {