Merge "Fixes to Special:FileDuplicateSearch form"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 26 Mar 2013 08:31:18 +0000 (08:31 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 26 Mar 2013 08:31:18 +0000 (08:31 +0000)
170 files changed:
RELEASE-NOTES-1.21
includes/ArrayUtils.php
includes/AutoLoader.php
includes/Cdb_PHP.php
includes/ChangesFeed.php
includes/ChangesList.php
includes/Collation.php
includes/Defines.php
includes/Exception.php
includes/Export.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/Hooks.php
includes/HttpFunctions.php
includes/ImagePage.php
includes/Import.php
includes/LinksUpdate.php
includes/MWFunction.php
includes/MimeMagic.php
includes/Namespace.php
includes/OutputPage.php
includes/Revision.php
includes/RevisionList.php
includes/Sanitizer.php
includes/SeleniumWebSettings.php
includes/Setup.php
includes/SiteConfiguration.php
includes/Skin.php
includes/SpecialPageFactory.php
includes/Timestamp.php
includes/Title.php
includes/User.php
includes/UserArray.php
includes/WebRequest.php
includes/WikiMap.php
includes/WikiPage.php
includes/Xml.php
includes/api/ApiBase.php
includes/api/ApiImageRotate.php
includes/api/ApiMain.php
includes/api/ApiPageSet.php
includes/api/ApiQueryAllCategories.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQuerySiteinfo.php
includes/cache/SquidUpdate.php
includes/content/ContentHandler.php
includes/db/Database.php
includes/db/DatabaseMssql.php
includes/db/DatabaseOracle.php
includes/db/LBFactory.php
includes/diff/DairikiDiff.php
includes/filebackend/FSFileBackend.php
includes/filebackend/FileBackend.php
includes/filebackend/FileBackendMultiWrite.php
includes/filebackend/FileBackendStore.php
includes/filebackend/FileOp.php
includes/filerepo/file/File.php
includes/filerepo/file/ForeignAPIFile.php
includes/installer/DatabaseInstaller.php
includes/installer/DatabaseUpdater.php
includes/installer/Installer.i18n.php
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/MysqlInstaller.php
includes/installer/OracleInstaller.php
includes/installer/PostgresInstaller.php
includes/installer/PostgresUpdater.php
includes/installer/WebInstaller.php
includes/installer/WebInstallerPage.php
includes/media/BMP.php
includes/media/Bitmap.php
includes/media/DjVuImage.php
includes/media/ExifBitmap.php
includes/media/FormatMetadata.php
includes/media/ImageHandler.php
includes/media/Jpeg.php
includes/media/MediaHandler.php
includes/media/PNGMetadataExtractor.php
includes/media/SVGMetadataExtractor.php
includes/media/XMP.php
includes/media/XMPValidate.php
includes/objectcache/MemcachedClient.php
includes/parser/DateFormatter.php
includes/parser/LinkHolderArray.php
includes/parser/Parser.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/profiler/Profiler.php
includes/profiler/ProfilerSimpleUDP.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/revisiondelete/RevisionDelete.php
includes/revisiondelete/RevisionDeleteAbstracts.php
includes/revisiondelete/RevisionDeleter.php
includes/search/SearchMySQL.php
includes/search/SearchOracle.php
includes/search/SearchPostgres.php
includes/search/SearchSqlite.php
includes/search/SearchUpdate.php
includes/site/MediaWikiSite.php
includes/specials/SpecialActiveusers.php [deleted file]
includes/specials/SpecialAllpages.php
includes/specials/SpecialBlock.php
includes/specials/SpecialCategories.php
includes/specials/SpecialContributions.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialJavaScriptTest.php
includes/specials/SpecialProtectedpages.php
includes/specials/SpecialProtectedtitles.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialWatchlist.php
includes/specials/SpecialWhatlinkshere.php
includes/templates/NoLocalSettings.php
includes/upload/UploadBase.php
includes/upload/UploadFromChunks.php
languages/Language.php
languages/data/plurals-mediawiki.xml
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBn.php
languages/messages/MessagesCa.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDv.php
languages/messages/MessagesEn.php
languages/messages/MessagesEt.php
languages/messages/MessagesFo.php
languages/messages/MessagesGl.php
languages/messages/MessagesHe.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKa.php
languages/messages/MessagesKm.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLb.php
languages/messages/MessagesLez.php
languages/messages/MessagesLt.php
languages/messages/MessagesLus.php
languages/messages/MessagesMl.php
languages/messages/MessagesNn.php
languages/messages/MessagesPl.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesRu.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSw.php
languages/messages/MessagesTh.php
languages/messages/MessagesUk.php
languages/messages/MessagesUz.php
languages/messages/MessagesWar.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh_hans.php
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
resources/Resources.php
tests/phpunit/includes/TimeAdjustTest.php
tests/phpunit/includes/cache/MessageCacheTest.php
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/languages/LanguageHeTest.php
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js

index 56d812c..8844f9b 100644 (file)
@@ -335,6 +335,7 @@ changes to languages because of Bugzilla reports.
   - ShowStats -> ShowSiteStats.
 * BREAKING CHANGE: (bug 38244) Removed the mediawiki.api.titleblacklist module
   and moved it to the TitleBlacklist extension.
+* The Special:ActiveUsers special page was removed
 
 == Compatibility ==
 
index 0b74f06..985271f 100644 (file)
@@ -39,7 +39,7 @@ class ArrayUtils {
         *
         * @return bool|int|string
         */
-       public static function pickRandom( $weights ){
+       public static function pickRandom( $weights ) {
                if ( !is_array( $weights ) || count( $weights ) == 0 ) {
                        return false;
                }
index 42cea7a..ad12fbc 100644 (file)
@@ -891,7 +891,6 @@ $wgAutoloadLocalClasses = array(
        'SiteStore' => 'includes/site/SiteStore.php',
 
        # includes/specials
-       'ActiveUsersPager' => 'includes/specials/SpecialActiveusers.php',
        'AllmessagesTablePager' => 'includes/specials/SpecialAllmessages.php',
        'AncientPagesPage' => 'includes/specials/SpecialAncientpages.php',
        'BlockListPager' => 'includes/specials/SpecialBlockList.php',
@@ -936,7 +935,6 @@ $wgAutoloadLocalClasses = array(
        'ProtectedTitlesPager' => 'includes/specials/SpecialProtectedtitles.php',
        'RandomPage' => 'includes/specials/SpecialRandompage.php',
        'ShortPagesPage' => 'includes/specials/SpecialShortpages.php',
-       'SpecialActiveUsers' => 'includes/specials/SpecialActiveusers.php',
        'SpecialAllmessages' => 'includes/specials/SpecialAllmessages.php',
        'SpecialAllpages' => 'includes/specials/SpecialAllpages.php',
        'SpecialBlankpage' => 'includes/specials/SpecialBlankpage.php',
index 71b55f8..e16397b 100644 (file)
@@ -411,7 +411,7 @@ class CdbWriter_PHP extends CdbWriter {
                // Calculate the number of items that will be in each hashtable
                $counts = array_fill( 0, 256, 0 );
                foreach ( $this->hplist as $item ) {
-                       ++ $counts[ 255 & $item['h'] ];
+                       ++ $counts[255 & $item['h']];
                }
 
                // Fill in $starts with the *end* indexes
index 476de5b..ac6d332 100644 (file)
@@ -146,7 +146,7 @@ class ChangesFeed {
                        $feedLastmodUnix = wfTimestamp( TS_UNIX, $feedLastmod );
                        $lastmodUnix = wfTimestamp( TS_UNIX, $lastmod );
 
-                       if( $feedAge < $wgFeedCacheTimeout || $feedLastmodUnix > $lastmodUnix) {
+                       if( $feedAge < $wgFeedCacheTimeout || $feedLastmodUnix > $lastmodUnix ) {
                                wfDebug( "RC: loading feed from cache ($key; $feedLastmod; $lastmod)...\n" );
                                if ( $feedLastmodUnix < $lastmodUnix ) {
                                        $wgOut->setLastModified( $feedLastmod ); // bug 21916
index 8461001..0c4d69e 100644 (file)
@@ -936,7 +936,7 @@ class EnhancedChangesList extends ChangesList {
                krsort( $userlinks );
                asort( $userlinks );
                $users = array();
-               foreach( $userlinks as $userlink => $count) {
+               foreach( $userlinks as $userlink => $count ) {
                        $text = $userlink;
                        $text .= $this->getLanguage()->getDirMark();
                        if( $count > 1 ) {
index 3f0fa7b..107e8f9 100644 (file)
@@ -364,8 +364,8 @@ class IcuCollation extends Collation {
                        // Append additional characters
                        $letters = array_merge( $letters, self::$tailoringFirstLetters[$this->locale] );
                        // Remove unnecessary ones, if any
-                       if ( isset( self::$tailoringFirstLetters[ '-' . $this->locale ] ) ) {
-                               $letters = array_diff( $letters, self::$tailoringFirstLetters[ '-' . $this->locale ] );
+                       if ( isset( self::$tailoringFirstLetters['-' . $this->locale] ) ) {
+                               $letters = array_diff( $letters, self::$tailoringFirstLetters['-' . $this->locale] );
                        }
                } else {
                        $letters = wfGetPrecompiledData( "first-letters-{$this->locale}.ser" );
index c4a8633..28847db 100644 (file)
@@ -197,8 +197,8 @@ define( 'EDIT_AUTOSUMMARY', 64 );
 define( 'LIST_COMMA', 0 );
 define( 'LIST_AND', 1 );
 define( 'LIST_SET', 2 );
-define( 'LIST_NAMES', 3);
-define( 'LIST_OR', 4);
+define( 'LIST_NAMES', 3 );
+define( 'LIST_OR', 4 );
 /**@}*/
 
 /**
index 0bd7a2a..7d9f63d 100644 (file)
@@ -75,11 +75,11 @@ class MWException extends Exception {
                        return null; // Just silently ignore
                }
 
-               if ( !array_key_exists( $name, $wgExceptionHooks ) || !is_array( $wgExceptionHooks[ $name ] ) ) {
+               if ( !array_key_exists( $name, $wgExceptionHooks ) || !is_array( $wgExceptionHooks[$name] ) ) {
                        return null;
                }
 
-               $hooks = $wgExceptionHooks[ $name ];
+               $hooks = $wgExceptionHooks[$name];
                $callargs = array_merge( array( $this ), $args );
 
                foreach ( $hooks as $hook ) {
@@ -130,8 +130,7 @@ class MWException extends Exception {
                                '</p><p>Backtrace:</p><p>' . nl2br( htmlspecialchars( $this->getTraceAsString() ) ) .
                                "</p>\n";
                } else {
-                       return
-                               "<div class=\"errorbox\">" .
+                       return "<div class=\"errorbox\">" .
                                '[' . $this->getLogId() . '] ' .
                                gmdate( 'Y-m-d H:i:s' ) .
                                ": Fatal exception of type " . get_class( $this ) . "</div>\n" .
index d8cc024..8df7dcb 100644 (file)
@@ -563,8 +563,9 @@ class XmlDumpWriter {
                foreach ( $wgContLang->getFormattedNamespaces() as $ns => $title ) {
                        $spaces .= '      ' .
                                Xml::element( 'namespace',
-                                       array(  'key' => $ns,
-                                                       'case' => MWNamespace::isCapitalized( $ns ) ? 'first-letter' : 'case-sensitive',
+                                       array(
+                                               'key' => $ns,
+                                               'case' => MWNamespace::isCapitalized( $ns ) ? 'first-letter' : 'case-sensitive',
                                        ), $title ) . "\n";
                }
                $spaces .= "    </namespaces>";
index e1e1234..0b291ec 100644 (file)
@@ -3338,7 +3338,7 @@ function wfCheckEntropy() {
  */
 function wfFixSessionID() {
        // If the cookie or session id is already set we already have a session and should abort
-       if ( isset( $_COOKIE[ session_name() ] ) || session_id() ) {
+       if ( isset( $_COOKIE[session_name()] ) || session_id() ) {
                return;
        }
 
index 6863973..4a527bb 100644 (file)
@@ -256,7 +256,7 @@ class HTMLForm extends ContextSource {
         */
        public function setDisplayFormat( $format ) {
                if ( !in_array( $format, $this->availableDisplayFormats ) ) {
-                       throw new MWException ( 'Display format must be one of ' . print_r( $this->availableDisplayFormats, true ) );
+                       throw new MWException( 'Display format must be one of ' . print_r( $this->availableDisplayFormats, true ) );
                }
                $this->displayFormat = $format;
                return $this;
index 8cc7ace..e3ffb19 100644 (file)
@@ -190,7 +190,7 @@ class Hooks {
                                        }
                                } elseif ( is_string( $hook[0] ) ) {
                                        $func = $hook[0];
-                                       if ( count( $hook ) > 1) {
+                                       if ( count( $hook ) > 1 ) {
                                                $data = $hook[1];
                                                $have_data = true;
                                        }
index 9e280db..4730a97 100644 (file)
@@ -563,8 +563,8 @@ class MWHttpRequest {
                        $this->parseHeader();
                }
 
-               if ( isset( $this->respHeaders[strtolower ( $header ) ] ) ) {
-                       $v = $this->respHeaders[strtolower ( $header ) ];
+               if ( isset( $this->respHeaders[strtolower( $header )] ) ) {
+                       $v = $this->respHeaders[strtolower( $header )];
                        return $v[count( $v ) - 1];
                }
 
@@ -646,17 +646,17 @@ class MWHttpRequest {
                $headers = $this->getResponseHeaders();
 
                //return full url (fix for incorrect but handled relative location)
-               if ( isset( $headers[ 'location' ] ) ) {
-                       $locations = $headers[ 'location' ];
+               if ( isset( $headers['location'] ) ) {
+                       $locations = $headers['location'];
                        $domain = '';
                        $foundRelativeURI = false;
                        $countLocations = count( $locations );
 
                        for ( $i = $countLocations - 1; $i >= 0; $i-- ) {
-                               $url = parse_url( $locations[ $i ] );
+                               $url = parse_url( $locations[$i] );
 
                                if ( isset( $url['host'] ) ) {
-                                       $domain = $url[ 'scheme' ] . '://' . $url[ 'host' ];
+                                       $domain = $url['scheme'] . '://' . $url['host'];
                                        break; //found correct URI (with host)
                                } else {
                                        $foundRelativeURI = true;
@@ -665,15 +665,15 @@ class MWHttpRequest {
 
                        if ( $foundRelativeURI ) {
                                if ( $domain ) {
-                                       return $domain . $locations[ $countLocations - 1 ];
+                                       return $domain . $locations[$countLocations - 1];
                                } else {
                                        $url = parse_url( $this->url );
-                                       if ( isset($url[ 'host' ]) ) {
-                                               return $url[ 'scheme' ] . '://' . $url[ 'host' ] . $locations[ $countLocations - 1 ];
+                                       if ( isset( $url['host'] ) ) {
+                                               return $url['scheme'] . '://' . $url['host'] . $locations[$countLocations - 1];
                                        }
                                }
                        } else {
-                               return $locations[ $countLocations - 1 ];
+                               return $locations[$countLocations - 1];
                        }
                }
 
@@ -938,8 +938,7 @@ class PhpHttpRequest extends MWHttpRequest {
 
                // If everything went OK, or we received some error code
                // get the response body content.
-               if ( $this->status->isOK()
-                               || (int)$this->respStatus >= 300) {
+               if ( $this->status->isOK() || (int)$this->respStatus >= 300 ) {
                        while ( !feof( $fh ) ) {
                                $buf = fread( $fh, 8192 );
 
index b3a485a..aba9ab5 100644 (file)
@@ -719,7 +719,7 @@ EOT
                $limit = 100;
 
                $out = $this->getContext()->getOutput();
-               $res = $this->queryImageLinks( $this->getTitle()->getDbKey(), $limit + 1);
+               $res = $this->queryImageLinks( $this->getTitle()->getDbKey(), $limit + 1 );
                $rows = array();
                $redirects = array();
                foreach ( $res as $row ) {
index fee636f..f337043 100644 (file)
@@ -47,7 +47,7 @@ class WikiImporter {
 
                stream_wrapper_register( 'uploadsource', 'UploadSourceAdapter' );
                $id = UploadSourceAdapter::registerSource( $source );
-               if (defined( 'LIBXML_PARSEHUGE' ) ) {
+               if ( defined( 'LIBXML_PARSEHUGE' ) ) {
                        $this->reader->open( "uploadsource://$id", null, LIBXML_PARSEHUGE );
                } else {
                        $this->reader->open( "uploadsource://$id" );
index d99ae22..f79b423 100644 (file)
@@ -847,7 +847,7 @@ class LinksDeletionUpdate extends SqlDataUpdate {
                $res = $this->mDb->select( 'categorylinks', 'cl_to', array( 'cl_from' => $id ), __METHOD__ );
 
                foreach ( $res as $row ) {
-                       $cats [] = $row->cl_to;
+                       $cats[] = $row->cl_to;
                }
 
                $this->mPage->updateCategoryCounts( array(), $cats );
index 36fcc30..240a6d3 100644 (file)
@@ -32,7 +32,7 @@ class MWFunction {
                        if ( strpos( $callback, '::' ) !== false ) {
                                // PHP 5.1 cannot use call_user_func( 'Class::Method' )
                                // It can only handle only call_user_func( array( 'Class', 'Method' ) )
-                               $callback = explode( '::', $callback, 2);
+                               $callback = explode( '::', $callback, 2 );
                        }
                }
 
index edabd54..7592530 100644 (file)
@@ -432,7 +432,7 @@ class MimeMagic {
                $ext = explode( ' ', $ext );
 
                $extension = strtolower( $extension );
-               return  in_array( $extension, $ext );
+               return in_array( $extension, $ext );
        }
 
        /**
@@ -689,11 +689,11 @@ class MimeMagic {
                $script_type = null;
 
                # detect by shebang
-               if ( substr( $head, 0, 2) == "#!" ) {
+               if ( substr( $head, 0, 2 ) == "#!" ) {
                        $script_type = "ASCII";
-               } elseif ( substr( $head, 0, 5) == "\xef\xbb\xbf#!" ) {
+               } elseif ( substr( $head, 0, 5 ) == "\xef\xbb\xbf#!" ) {
                        $script_type = "UTF-8";
-               } elseif ( substr( $head, 0, 7) == "\xfe\xff\x00#\x00!" ) {
+               } elseif ( substr( $head, 0, 7 ) == "\xfe\xff\x00#\x00!" ) {
                        $script_type = "UTF-16BE";
                } elseif ( substr( $head, 0, 7 ) == "\xff\xfe#\x00!" ) {
                        $script_type = "UTF-16LE";
@@ -804,7 +804,7 @@ class MimeMagic {
                                 * These mime's are stored in the database, where we don't really want
                                 * x-opc+zip, because we use it only for internal purposes
                                 */
-                               if ( $this->isMatchingExtension( $ext, $mime) ) {
+                               if ( $this->isMatchingExtension( $ext, $mime ) ) {
                                        /* A known file extension for an OPC file,
                                         * find the proper mime type for that file extension
                                         */
@@ -817,10 +817,10 @@ class MimeMagic {
                } elseif ( substr( $header, 0, 8 ) == "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1" &&
                                ($headerpos = strpos( $tail, "PK\x03\x04" ) ) !== false &&
                                preg_match( $openxmlRegex, substr( $tail, $headerpos + 30 ) ) ) {
-                       if ( substr( $header, 512, 4) == "\xEC\xA5\xC1\x00" ) {
+                       if ( substr( $header, 512, 4 ) == "\xEC\xA5\xC1\x00" ) {
                                $mime = "application/msword";
                        }
-                       switch( substr( $header, 512, 6) ) {
+                       switch( substr( $header, 512, 6 ) ) {
                                case "\xEC\xA5\xC1\x00\x0E\x00":
                                case "\xEC\xA5\xC1\x00\x1C\x00":
                                case "\xEC\xA5\xC1\x00\x43\x00":
index fccfbed..8001b41 100644 (file)
@@ -387,9 +387,9 @@ class MWNamespace {
                if ( in_array( $index, self::$alwaysCapitalizedNamespaces ) ) {
                        return true;
                }
-               if ( isset( $wgCapitalLinkOverrides[ $index ] ) ) {
+               if ( isset( $wgCapitalLinkOverrides[$index] ) ) {
                        // $wgCapitalLinkOverrides is explicitly set
-                       return $wgCapitalLinkOverrides[ $index ];
+                       return $wgCapitalLinkOverrides[$index];
                }
                // Default to the global setting
                return $wgCapitalLinks;
index 1e0c396..905b005 100644 (file)
@@ -1401,7 +1401,7 @@ class OutputPage extends ContextSource {
         * @param $timestamp Mixed: string, or null
         * @return Mixed: previous value
         */
-       public function setRevisionTimestamp( $timestamp) {
+       public function setRevisionTimestamp( $timestamp ) {
                return wfSetVar( $this->mRevisionTimestamp, $timestamp );
        }
 
index 2b34984..18cd94e 100644 (file)
@@ -1340,8 +1340,8 @@ class Revision implements IDBAccessObject {
                        $defaultModel = ContentHandler::getDefaultModelFor( $title );
                        $defaultFormat = ContentHandler::getForModelID( $defaultModel )->getDefaultFormat();
 
-                       $row[ 'rev_content_model' ] = ( $model === $defaultModel ) ? null : $model;
-                       $row[ 'rev_content_format' ] = ( $format === $defaultFormat ) ? null : $format;
+                       $row['rev_content_model'] = ( $model === $defaultModel ) ? null : $model;
+                       $row['rev_content_format'] = ( $format === $defaultFormat ) ? null : $format;
                }
 
                $dbw->insert( 'revision', $row, __METHOD__ );
@@ -1517,8 +1517,8 @@ class Revision implements IDBAccessObject {
                        );
 
                        if ( $wgContentHandlerUseDB ) {
-                               $row[ 'content_model' ] = $current->rev_content_model;
-                               $row[ 'content_format' ] = $current->rev_content_format;
+                               $row['content_model'] = $current->rev_content_model;
+                               $row['content_format'] = $current->rev_content_format;
                        }
 
                        $revision = new Revision( $row );
index d87c540..666df96 100644 (file)
@@ -352,8 +352,7 @@ class RevisionItem extends RevisionItemBase {
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $this->context->msg( 'diff' )->escaped();
                } else {
-                       return
-                               Linker::link(
+                       return Linker::link(
                                        $this->list->title,
                                        $this->context->msg( 'diff' )->escaped(),
                                        array(),
index 2dff081..3acb740 100644 (file)
@@ -507,7 +507,7 @@ class Sanitizer {
                                                !in_array( 'table', $tagstack ) ) {
                                                        $badtag = true;
                                                } elseif ( in_array( $t, $tagstack ) &&
-                                               !isset( $htmlnest [$t ] ) ) {
+                                               !isset( $htmlnest[$t] ) ) {
                                                        $badtag = true;
                                                # Is it a self closed htmlpair ? (bug 5487)
                                                } elseif ( $brace == '/>' &&
@@ -555,12 +555,14 @@ class Sanitizer {
                                                continue;
                                        }
                                }
-                               $text .= '&lt;' . str_replace( '>', '&gt;', $x);
+                               $text .= '&lt;' . str_replace( '>', '&gt;', $x );
                        }
                        # Close off any remaining tags
-                       while ( is_array( $tagstack ) && ($t = array_pop( $tagstack )) ) {
+                       while ( is_array( $tagstack ) && ( $t = array_pop( $tagstack ) ) ) {
                                $text .= "</$t>\n";
-                               if ( $t == 'table' ) { $tagstack = array_pop( $tablestack ); }
+                               if ( $t == 'table' ) {
+                                       $tagstack = array_pop( $tablestack );
+                               }
                        }
                } else {
                        # this might be possible using tidy itself
@@ -585,7 +587,7 @@ class Sanitizer {
                                                continue;
                                        }
                                }
-                               $text .= '&lt;' . str_replace( '>', '&gt;', $x);
+                               $text .= '&lt;' . str_replace( '>', '&gt;', $x );
                        }
                }
                wfProfileOut( __METHOD__ );
@@ -723,7 +725,7 @@ class Sanitizer {
                        }
 
                        # Allow any attribute beginning with "data-", if in HTML5 mode
-                       if ( !($wgHtml5 && preg_match( '/^data-/i', $attribute )) && !isset( $whitelist[$attribute] ) ) {
+                       if ( !( $wgHtml5 && preg_match( '/^data-/i', $attribute ) ) && !isset( $whitelist[$attribute] ) ) {
                                continue;
                        }
 
@@ -1357,9 +1359,9 @@ class Sanitizer {
                if( $matches[1] != '' ) {
                        return Sanitizer::decodeEntity( $matches[1] );
                } elseif( $matches[2] != '' ) {
-                       return  Sanitizer::decodeChar( intval( $matches[2] ) );
+                       return Sanitizer::decodeChar( intval( $matches[2] ) );
                } elseif( $matches[3] != '' ) {
-                       return  Sanitizer::decodeChar( hexdec( $matches[3] ) );
+                       return Sanitizer::decodeChar( hexdec( $matches[3] ) );
                }
                # Last case should be an ampersand by itself
                return $matches[0];
@@ -1443,30 +1445,31 @@ class Sanitizer {
                if ( $wgAllowRdfaAttributes ) {
                        #RDFa attributes as specified in section 9 of http://www.w3.org/TR/2008/REC-rdfa-syntax-20081014
                        $common = array_merge( $common, array(
-                           'about', 'property', 'resource', 'datatype', 'typeof',
+                               'about', 'property', 'resource', 'datatype', 'typeof',
                        ) );
                }
 
                if ( $wgHtml5 && $wgAllowMicrodataAttributes ) {
                        # add HTML5 microdata tags as specified by http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#the-microdata-model
                        $common = array_merge( $common, array(
-                           'itemid', 'itemprop', 'itemref', 'itemscope', 'itemtype'
+                               'itemid', 'itemprop', 'itemref', 'itemscope', 'itemtype'
                        ) );
                }
 
                $block = array_merge( $common, array( 'align' ) );
                $tablealign = array( 'align', 'char', 'charoff', 'valign' );
-               $tablecell = array( 'abbr',
-                                   'axis',
-                                   'headers',
-                                   'scope',
-                                   'rowspan',
-                                   'colspan',
-                                   'nowrap', # deprecated
-                                   'width',  # deprecated
-                                   'height', # deprecated
-                                   'bgcolor' # deprecated
-                                   );
+               $tablecell = array(
+                       'abbr',
+                       'axis',
+                       'headers',
+                       'scope',
+                       'rowspan',
+                       'colspan',
+                       'nowrap', # deprecated
+                       'width', # deprecated
+                       'height', # deprecated
+                       'bgcolor', # deprecated
+               );
 
                # Numbers refer to sections in HTML 4.01 standard describing the element.
                # See: http://www.w3.org/TR/html4/
index 7715484..26c2df5 100644 (file)
@@ -67,7 +67,7 @@ if ( isset( $_GET['setupTestSuite'] ) ) {
        $testGlobalConfigs = array(); // an array containing all the global configs needed for this test
        $testResourceFiles = array(); // an array containing all the resource files needed for this test
        $callback = $wgSeleniumTestConfigs[$setupTestSuiteName];
-       call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles));
+       call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles ) );
 
        if ( isset( $testResourceFiles['images'] ) ) {
                $testImageZip = $testResourceFiles['images'];
@@ -112,7 +112,7 @@ if ( isset( $_COOKIE[$cookieName] ) ) {
        $testGlobalConfigs = array(); // an array containing all the global configs needed for this test
        $testResourceFiles = array(); // an array containing all the resource files needed for this test
        $callback = $wgSeleniumTestConfigs[$testSuiteName];
-       call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles));
+       call_user_func_array( $callback, array( &$testIncludes, &$testGlobalConfigs, &$testResourceFiles ) );
 
        if ( isset( $testResourceFiles['db'] ) ) {
                $testResourceName = getTestResourceNameFromTestSuiteName( $testSuiteName );
index e87b200..a602b79 100644 (file)
@@ -426,7 +426,7 @@ wfMemoryLimit();
  * that happens whenever you use a date function without the timezone being
  * explicitly set. Inspired by phpMyAdmin's treatment of the problem.
  */
-if ( is_null( $wgLocaltimezone) ) {
+if ( is_null( $wgLocaltimezone ) ) {
        wfSuppressWarnings();
        $wgLocaltimezone = date_default_timezone_get();
        wfRestoreWarnings();
index bbc14a1..2d250df 100644 (file)
@@ -228,7 +228,7 @@ class SiteConfiguration {
                                                        $retval = $thisSetting[$suffix];
                                                }
                                                break;
-                                       } elseif ( array_key_exists( "+$suffix", $thisSetting ) && is_array($thisSetting["+$suffix"]) ) {
+                                       } elseif ( array_key_exists( "+$suffix", $thisSetting ) && is_array( $thisSetting["+$suffix"] ) ) {
                                                if ( !isset( $retval ) ) {
                                                        $retval = array();
                                                }
index 0cc1086..a34afb6 100644 (file)
@@ -1252,7 +1252,7 @@ abstract class Skin extends ContextSource {
                                                }
 
                                                global $wgExternalLinkTarget;
-                                               if ( $wgExternalLinkTarget) {
+                                               if ( $wgExternalLinkTarget ) {
                                                        $extraAttribs['target'] = $wgExternalLinkTarget;
                                                }
                                        } else {
index 7368ab7..7c639d0 100644 (file)
@@ -99,7 +99,6 @@ class SpecialPageFactory {
                'Listusers'                 => 'SpecialListUsers',
                'Listadmins'                => 'SpecialListAdmins',
                'Listbots'                  => 'SpecialListBots',
-               'Activeusers'               => 'SpecialActiveUsers',
                'Userrights'                => 'UserrightsPage',
                'EditWatchlist'             => 'SpecialEditWatchlist',
 
index 1cf99a7..7dbfabf 100644 (file)
@@ -141,7 +141,7 @@ class MWTimestamp {
 
                try {
                        $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
-               } catch(Exception $e) {
+               } catch( Exception $e ) {
                        throw new TimestampException( __METHOD__ . ' Invalid timestamp format.' );
                }
 
index 974ea91..80be529 100644 (file)
@@ -993,7 +993,7 @@ class Title {
         */
        public function getSkinFromCssJsSubpage() {
                $subpage = explode( '/', $this->mTextform );
-               $subpage = $subpage[ count( $subpage ) - 1 ];
+               $subpage = $subpage[count( $subpage ) - 1];
                $lastdot = strrpos( $subpage, '.' );
                if ( $lastdot === false )
                        return $subpage; # Never happens: only called for names ending in '.css' or '.js'
index 6b7348a..0e63704 100644 (file)
@@ -710,7 +710,7 @@ class User {
                                return 'passwordtooshort';
                        } elseif ( $wgContLang->lc( $password ) == $wgContLang->lc( $this->mName ) ) {
                                return 'password-name-match';
-                       } elseif ( isset( $blockedLogins[ $this->getName() ] ) && $password == $blockedLogins[ $this->getName() ] ) {
+                       } elseif ( isset( $blockedLogins[$this->getName()] ) && $password == $blockedLogins[$this->getName()] ) {
                                return 'password-login-forbidden';
                        } else {
                                //it seems weird returning true here, but this is because of the
@@ -1521,7 +1521,7 @@ class User {
                // Set the user limit key
                if ( $userLimit !== false ) {
                        wfDebug( __METHOD__ . ": effective user limit: $userLimit\n" );
-                       $keys[ wfMemcKey( 'limiter', $action, 'user', $id ) ] = $userLimit;
+                       $keys[wfMemcKey( 'limiter', $action, 'user', $id )] = $userLimit;
                }
 
                $triggered = false;
@@ -4018,7 +4018,7 @@ class User {
                }
 
                // Re-map numeric keys of AddToSelf/RemoveFromSelf to the 'user' key for backwards compatibility
-               if( empty( $wgGroupsAddToSelf['user']) || $wgGroupsAddToSelf['user'] !== true ) {
+               if( empty( $wgGroupsAddToSelf['user'] ) || $wgGroupsAddToSelf['user'] !== true ) {
                        foreach( $wgGroupsAddToSelf as $key => $value ) {
                                if( is_int( $key ) ) {
                                        $wgGroupsAddToSelf['user'][] = $value;
@@ -4026,7 +4026,7 @@ class User {
                        }
                }
 
-               if( empty( $wgGroupsRemoveFromSelf['user']) || $wgGroupsRemoveFromSelf['user'] !== true ) {
+               if( empty( $wgGroupsRemoveFromSelf['user'] ) || $wgGroupsRemoveFromSelf['user'] !== true ) {
                        foreach( $wgGroupsRemoveFromSelf as $key => $value ) {
                                if( is_int( $key ) ) {
                                        $wgGroupsRemoveFromSelf['user'][] = $value;
index 3b8f5c1..1f55ef3 100644 (file)
@@ -44,7 +44,7 @@ abstract class UserArray implements Iterator {
                $ids = array_map( 'intval', (array)$ids ); // paranoia
                if ( !$ids ) {
                        // Database::select() doesn't like empty arrays
-                       return new ArrayIterator(array());
+                       return new ArrayIterator( array() );
                }
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select( 'user', '*', array( 'user_id' => $ids ),
index 98007ef..15da246 100644 (file)
@@ -224,7 +224,7 @@ class WebRequest {
                }
 
                $matches = self::getPathInfo( 'title' );
-               foreach( $matches as $key => $val) {
+               foreach( $matches as $key => $val ) {
                        $this->data[$key] = $_GET[$key] = $_REQUEST[$key] = $val;
                }
        }
@@ -603,7 +603,7 @@ class WebRequest {
         * @return Boolean
         */
        public function checkSessionCookie() {
-               return isset( $_COOKIE[ session_name() ] );
+               return isset( $_COOKIE[session_name()] );
        }
 
        /**
@@ -844,7 +844,7 @@ class WebRequest {
 
                if ( function_exists( 'apache_request_headers' ) ) {
                        foreach ( apache_request_headers() as $tempName => $tempValue ) {
-                               $this->headers[ strtoupper( $tempName ) ] = $tempValue;
+                               $this->headers[strtoupper( $tempName )] = $tempValue;
                        }
                } else {
                        foreach ( $_SERVER as $name => $value ) {
@@ -1103,7 +1103,7 @@ HTML;
                                $curIP = IP::canonicalize( $curIP );
                                if ( wfIsTrustedProxy( $curIP ) ) {
                                        if ( isset( $ipchain[$i + 1] ) ) {
-                                               if ( $wgUsePrivateIPs || IP::isPublic( $ipchain[$i + 1 ] ) ) {
+                                               if ( $wgUsePrivateIPs || IP::isPublic( $ipchain[$i + 1] ) ) {
                                                        $ip = $ipchain[$i + 1];
                                                }
                                        }
index b04a784..4697b12 100644 (file)
@@ -218,8 +218,7 @@ class WikiReference {
         * @return String: URL
         */
        public function getFullUrl( $page ) {
-               return
-                       $this->mServer .
+               return $this->mServer .
                        $this->getLocalUrl( $page );
        }
 }
index 8d9d740..f4d2e23 100644 (file)
@@ -1274,7 +1274,7 @@ class WikiPage implements Page, IDBAccessObject {
                );
 
                if ( $wgContentHandlerUseDB ) {
-                       $row[ 'page_content_model' ] = $revision->getContentModel();
+                       $row['page_content_model'] = $revision->getContentModel();
                }
 
                $dbw->update( 'page',
@@ -2591,8 +2591,8 @@ class WikiPage implements Page, IDBAccessObject {
                );
 
                if ( $wgContentHandlerUseDB ) {
-                       $row[ 'ar_content_model' ] = 'rev_content_model';
-                       $row[ 'ar_content_format' ] = 'rev_content_format';
+                       $row['ar_content_model'] = 'rev_content_model';
+                       $row['ar_content_format'] = 'rev_content_format';
                }
 
                $dbw->insertSelect( 'archive', array( 'page', 'revision' ),
index ee19dee..8697962 100644 (file)
@@ -493,17 +493,17 @@ class Xml {
 
                $options = self::option( $other, 'other', $selected === 'other' );
 
-               foreach ( explode( "\n", $list ) as $option) {
+               foreach ( explode( "\n", $list ) as $option ) {
                                $value = trim( $option );
                                if ( $value == '' ) {
                                        continue;
-                               } elseif ( substr( $value, 0, 1) == '*' && substr( $value, 1, 1) != '*' ) {
+                               } elseif ( substr( $value, 0, 1 ) == '*' && substr( $value, 1, 1 ) != '*' ) {
                                        // A new group is starting ...
                                        $value = trim( substr( $value, 1 ) );
                                        if( $optgroup ) $options .= self::closeElement( 'optgroup' );
                                        $options .= self::openElement( 'optgroup', array( 'label' => $value ) );
                                        $optgroup = true;
-                               } elseif ( substr( $value, 0, 2) == '**' ) {
+                               } elseif ( substr( $value, 0, 2 ) == '**' ) {
                                        // groupmember
                                        $value = trim( substr( $value, 2 ) );
                                        $options .= self::option( $value, $value, $selected === $value );
index d2d50ae..741e908 100644 (file)
@@ -1535,7 +1535,7 @@ abstract class ApiBase extends ContextSource {
        public function getWatchlistUser( $params ) {
                if ( !is_null( $params['owner'] ) && !is_null( $params['token'] ) ) {
                        $user = User::newFromName( $params['owner'], false );
-                       if ( !($user && $user->getId()) ) {
+                       if ( !( $user && $user->getId() ) ) {
                                $this->dieUsage( 'Specified user does not exist', 'bad_wlowner' );
                        }
                        $token = $user->getOption( 'watchlisttoken' );
index b2d7582..e261f38 100644 (file)
@@ -56,7 +56,7 @@ class ApiImageRotate extends ApiBase {
 
        public function execute() {
                $params = $this->extractRequestParams();
-               $rotation = $params[ 'rotation' ];
+               $rotation = $params['rotation'];
                $user = $this->getUser();
 
                $pageSet = $this->getPageSet();
@@ -111,12 +111,12 @@ class ApiImageRotate extends ApiBase {
                                continue;
                        }
                        $ext = strtolower( pathinfo( "$srcPath", PATHINFO_EXTENSION ) );
-                       $tmpFile = TempFSFile::factory( 'rotate_', $ext);
+                       $tmpFile = TempFSFile::factory( 'rotate_', $ext );
                        $dstPath = $tmpFile->getPath();
                        $err = $handler->rotate( $file, array(
                                "srcPath" => $srcPath,
                                "dstPath" => $dstPath,
-                               "rotation"=> $rotation
+                               "rotation" => $rotation
                        ) );
                        if ( !$err ) {
                                $comment = wfMessage( 'rotate-comment' )->numParams( $rotation )->text();
@@ -157,8 +157,8 @@ class ApiImageRotate extends ApiBase {
         */
        protected function checkPermissions( $user, $title ) {
                $permissionErrors = array_merge(
-                       $title->getUserPermissionsErrors( 'edit' , $user ),
-                       $title->getUserPermissionsErrors( 'upload' , $user )
+                       $title->getUserPermissionsErrors( 'edit', $user ),
+                       $title->getUserPermissionsErrors( 'upload', $user )
                );
 
                if ( $permissionErrors ) {
index 80bca2f..a6813e3 100644 (file)
@@ -83,7 +83,7 @@ class ApiMain extends ApiBase {
                'import' => 'ApiImport',
                'userrights' => 'ApiUserrights',
                'options' => 'ApiOptions',
-               'imagerotate' =>'ApiImageRotate',
+               'imagerotate' => 'ApiImageRotate',
        );
 
        /**
@@ -418,7 +418,7 @@ class ApiMain extends ApiBase {
                }
 
                // Log the request whether or not there was an error
-               $this->logRequest( microtime( true ) - $t);
+               $this->logRequest( microtime( true ) - $t );
 
                // Send cache headers after any code which might generate an error, to
                // avoid sending public cache headers for errors.
index 074efe4..c76e22b 100644 (file)
@@ -595,7 +595,7 @@ class ApiPageSet extends ApiBase {
                }
 
                foreach ( $this->mRequestedPageFields as $fieldName => &$fieldValues ) {
-                       $fieldValues[$pageId] = $row-> $fieldName;
+                       $fieldValues[$pageId] = $row->$fieldName;
                }
        }
 
index 496a0eb..952c2dc 100644 (file)
@@ -76,7 +76,7 @@ class ApiQueryAllCategories extends ApiQueryGeneratorBase {
                if ( $dir == 'newer' ) {
                        $this->addWhereRange( 'cat_pages', 'newer', $min, $max );
                } else {
-                       $this->addWhereRange( 'cat_pages', 'older', $max, $min);
+                       $this->addWhereRange( 'cat_pages', 'older', $max, $min );
                }
 
                if ( isset( $params['prefix'] ) ) {
index 3ef6b84..6899808 100644 (file)
@@ -294,9 +294,9 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                                        // We've reached the one extra which shows that there are additional pages to be had. Stop here...
                                        // We need to keep the parent page of this redir in
                                        if ( $this->hasNS ) {
-                                               $parentID = $this->pageMap[$row-> { $this->bl_ns } ][$row-> { $this->bl_title } ];
+                                               $parentID = $this->pageMap[$row->{$this->bl_ns}][$row->{$this->bl_title}];
                                        } else {
-                                               $parentID = $this->pageMap[NS_FILE][$row-> { $this->bl_title } ];
+                                               $parentID = $this->pageMap[NS_FILE][$row->{$this->bl_title}];
                                        }
                                        $this->continueStr = $this->getContinueRedirStr( $parentID, $row->page_id );
                                        break;
@@ -377,8 +377,8 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                if ( $row->page_is_redirect ) {
                        $a['redirect'] = '';
                }
-               $ns = $this->hasNS ? $row-> { $this->bl_ns } : NS_FILE;
-               $parentID = $this->pageMap[$ns][$row-> { $this->bl_title } ];
+               $ns = $this->hasNS ? $row->{$this->bl_ns} : NS_FILE;
+               $parentID = $this->pageMap[$ns][$row->{$this->bl_title}];
                // Put all the results in an array first
                $this->resultArr[$parentID]['redirlinks'][] = $a;
                $this->getResult()->setIndexedTagName( $this->resultArr[$parentID]['redirlinks'], $this->bl_code );
index d9be9f2..ba90452 100644 (file)
@@ -63,7 +63,7 @@ class ApiQueryBlocks extends ApiQueryBase {
                $this->addTables( 'ipblocks' );
                $this->addFields( 'ipb_auto' );
 
-               $this->addFieldsIf ( 'ipb_id', $fld_id );
+               $this->addFieldsIf( 'ipb_id', $fld_id );
                $this->addFieldsIf( array( 'ipb_address', 'ipb_user' ), $fld_user || $fld_userid );
                $this->addFieldsIf( 'ipb_by_text', $fld_by );
                $this->addFieldsIf( 'ipb_by', $fld_byid );
index 810e1d6..1488b2d 100644 (file)
@@ -675,7 +675,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                ' variables             - Returns a list of variable IDs',
                                ' protocols             - Returns a list of protocols that are allowed in external links.',
                        ),
-                       'filteriw' =>  'Return only local or only nonlocal entries of the interwiki map',
+                       'filteriw' => 'Return only local or only nonlocal entries of the interwiki map',
                        'showalldb' => 'List all database servers, not just the one lagging the most',
                        'numberingroup' => 'Lists the number of users in user groups',
                        'inlanguagecode' => 'Language code for localised language names (best effort, use CLDR extension)',
index 39bf4c9..69f0bf7 100644 (file)
@@ -219,7 +219,7 @@ class SquidUpdate {
                                // implementation exists, so adapt to Squid
                                $htcpPacket = pack( 'nxxnCxNxxa*n',
                                        $htcpLen, $htcpDataLen, $htcpOpCLR,
-                                       $htcpTransID, $htcpSpecifier, 2);
+                                       $htcpTransID, $htcpSpecifier, 2 );
 
                                // Send out
                                wfDebug( "Purging URL $url via HTCP\n" );
index 9c20195..9c5ebcd 100644 (file)
@@ -1086,8 +1086,8 @@ abstract class ContentHandler {
                                $contentObjects[$k] = $v;
 
                                $v = $v->serialize();
-                               $contentTexts[ $k ] = $v;
-                               $args[ $k ] = $v;
+                               $contentTexts[$k] = $v;
+                               $args[$k] = $v;
                        }
                }
 
@@ -1098,7 +1098,7 @@ abstract class ContentHandler {
                foreach ( $contentTexts as $k => $orig ) {
                        /* @var Content $content */
 
-                       $modified = $args[ $k ];
+                       $modified = $args[$k];
                        $content = $contentObjects[$k];
 
                        if ( $modified !== $orig ) {
@@ -1106,7 +1106,7 @@ abstract class ContentHandler {
                                $content = $content->getContentHandler()->unserializeContent( $modified );
                        }
 
-                       $args[ $k ] = $content;
+                       $args[$k] = $content;
                }
 
                return $ok;
index 5ad196d..d0b877f 100644 (file)
@@ -1582,19 +1582,19 @@ abstract class DatabaseBase implements DatabaseType {
        static function generalizeSQL( $sql ) {
                # This does the same as the regexp below would do, but in such a way
                # as to avoid crashing php on some large strings.
-               # $sql = preg_replace ( "/'([^\\\\']|\\\\.)*'|\"([^\\\\\"]|\\\\.)*\"/", "'X'", $sql);
+               # $sql = preg_replace( "/'([^\\\\']|\\\\.)*'|\"([^\\\\\"]|\\\\.)*\"/", "'X'", $sql );
 
-               $sql = str_replace ( "\\\\", '', $sql );
-               $sql = str_replace ( "\\'", '', $sql );
-               $sql = str_replace ( "\\\"", '', $sql );
-               $sql = preg_replace ( "/'.*'/s", "'X'", $sql );
-               $sql = preg_replace ( '/".*"/s', "'X'", $sql );
+               $sql = str_replace( "\\\\", '', $sql );
+               $sql = str_replace( "\\'", '', $sql );
+               $sql = str_replace( "\\\"", '', $sql );
+               $sql = preg_replace( "/'.*'/s", "'X'", $sql );
+               $sql = preg_replace( '/".*"/s', "'X'", $sql );
 
                # All newlines, tabs, etc replaced by single space
-               $sql = preg_replace ( '/\s+/', ' ', $sql );
+               $sql = preg_replace( '/\s+/', ' ', $sql );
 
                # All numbers => N
-               $sql = preg_replace ( '/-?[0-9]+/s', 'N', $sql );
+               $sql = preg_replace( '/-?[0-9]+/s', 'N', $sql );
 
                return $sql;
        }
index 575f629..dde3af5 100644 (file)
@@ -148,7 +148,7 @@ class DatabaseMssql extends DatabaseBase {
                }
 
                // MSSQL doesn't have EXTRACT(epoch FROM XXX)
-               if ( preg_match('#\bEXTRACT\s*?\(\s*?EPOCH\s+FROM\b#i', $sql, $matches ) ) {
+               if ( preg_match( '#\bEXTRACT\s*?\(\s*?EPOCH\s+FROM\b#i', $sql, $matches ) ) {
                        // This is same as UNIX_TIMESTAMP, we need to calc # of seconds from 1970
                        $sql = str_replace( $matches[0], "DATEDIFF(s,CONVERT(datetime,'1/1/1970'),", $sql );
                }
@@ -202,9 +202,9 @@ class DatabaseMssql extends DatabaseBase {
                $retErrors = sqlsrv_errors( SQLSRV_ERR_ALL );
                if ( $retErrors != null ) {
                        foreach ( $retErrors as $arrError ) {
-                               $strRet .= "SQLState: " . $arrError[ 'SQLSTATE'] . "\n";
-                               $strRet .= "Error Code: " . $arrError[ 'code'] . "\n";
-                               $strRet .= "Message: " . $arrError[ 'message'] . "\n";
+                               $strRet .= "SQLState: " . $arrError['SQLSTATE'] . "\n";
+                               $strRet .= "Error Code: " . $arrError['code'] . "\n";
+                               $strRet .= "Message: " . $arrError['message'] . "\n";
                        }
                } else {
                        $strRet = "No errors found";
@@ -429,9 +429,9 @@ class DatabaseMssql extends DatabaseBase {
                        // if we have an identity column
                        if( $identity ) {
                                // iterate through
-                               foreach ($a as $k => $v ) {
+                               foreach ( $a as $k => $v ) {
                                        if ( $k == $identity ) {
-                                               if( !is_null($v) ) {
+                                               if( !is_null( $v ) ) {
                                                        // there is a value being passed to us, we need to turn on and off inserted identity
                                                        $sqlPre = "SET IDENTITY_INSERT $table ON;";
                                                        $sqlPost = ";SET IDENTITY_INSERT $table OFF;";
@@ -501,7 +501,7 @@ class DatabaseMssql extends DatabaseBase {
                        } elseif ( $ret != null ) {
                                // remember number of rows affected
                                $this->mAffectedRows = sqlsrv_rows_affected( $ret );
-                               if ( !is_null($identity) ) {
+                               if ( !is_null( $identity ) ) {
                                        // then we want to get the identity column value we were assigned and save it off
                                        $row = sqlsrv_fetch_object( $ret );
                                        $this->mInsertId = $row->$identity;
index 7db032f..e59ca95 100644 (file)
@@ -206,7 +206,7 @@ class DatabaseOracle extends DatabaseBase {
        }
 
        function __destruct() {
-               if ($this->mOpened) {
+               if ( $this->mOpened ) {
                        wfSuppressWarnings();
                        $this->close();
                        wfRestoreWarnings();
@@ -791,7 +791,7 @@ class DatabaseOracle extends DatabaseBase {
                $endArray[] = strtoupper( $prefix . 'PAGE' );
                $endArray[] = strtoupper( $prefix . 'IMAGE' );
                $fixedOrderTabs = $endArray;
-               while ( ($row = $result->fetchRow()) !== false ) {
+               while ( ( $row = $result->fetchRow() ) !== false ) {
                        if ( !in_array( $row['table_name'], $fixedOrderTabs ) )
                                $endArray[] = $row['table_name'];
                }
@@ -1125,12 +1125,12 @@ class DatabaseOracle extends DatabaseBase {
                $conds2 = array();
                foreach ( $conds as $col => $val ) {
                        if ( is_array( $val ) ) {
-                               $conds2[$col] = $this->wrapConditionsForWhere ( $table, $val, $col );
+                               $conds2[$col] = $this->wrapConditionsForWhere( $table, $val, $col );
                        } else {
                                if ( is_numeric( $col ) && $parentCol != null ) {
-                                       $this->wrapFieldForWhere ( $table, $parentCol, $val );
+                                       $this->wrapFieldForWhere( $table, $parentCol, $val );
                                } else {
-                                       $this->wrapFieldForWhere ( $table, $col, $val );
+                                       $this->wrapFieldForWhere( $table, $col, $val );
                                }
                                $conds2[$col] = $val;
                        }
index d469e86..85e7775 100644 (file)
@@ -201,7 +201,7 @@ class LBFactory_Simple extends LBFactory {
                                $flags |= DBO_COMPRESS;
                        }
 
-                       $servers = array(array(
+                       $servers = array( array(
                                'host' => $wgDBserver,
                                'user' => $wgDBuser,
                                'password' => $wgDBpassword,
index 1a26d0c..f9cb656 100644 (file)
@@ -508,7 +508,7 @@ class _DiffEngine {
                        reset( $seps );
                        $pt1 = $seps[0];
                        while ( $pt2 = next( $seps ) ) {
-                               $this->_compareseq ( $pt1[0], $pt2[0], $pt1[1], $pt2[1] );
+                               $this->_compareseq( $pt1[0], $pt2[0], $pt1[1], $pt2[1] );
                                $pt1 = $pt2;
                        }
                }
index c976998..92fee83 100644 (file)
@@ -319,7 +319,7 @@ class FSFileBackend extends FileBackendStore {
                        $status->value = new FSFileOpHandle( $this, $params, 'Copy', $cmd, $dest );
                } else { // immediate write
                        $this->trapWarnings();
-                       $ok = copy( $source, $dest );
+                       $ok = ( $source === $dest ) ? true : copy( $source, $dest );
                        $this->untrapWarnings();
                        // In some cases (at least over NFS), copy() returns true when it fails
                        if ( !$ok || ( filesize( $source ) !== filesize( $dest ) ) ) {
@@ -383,7 +383,7 @@ class FSFileBackend extends FileBackendStore {
                        $status->value = new FSFileOpHandle( $this, $params, 'Move', $cmd );
                } else { // immediate write
                        $this->trapWarnings();
-                       $ok = rename( $source, $dest );
+                       $ok = ( $source === $dest ) ? true : rename( $source, $dest );
                        $this->untrapWarnings();
                        clearstatcache(); // file no longer at source
                        if ( !$ok ) {
index 638e7cd..2d6d2d7 100644 (file)
@@ -261,9 +261,10 @@ abstract class FileBackend {
         *   - ignoreMissingSource : The operation will simply succeed and do
         *                           nothing if the source file does not exist.
         *   - overwrite           : Any destination file will be overwritten.
-        *   - overwriteSame       : An error will not be given if a file already
-        *                           exists at the destination that has the same
-        *                           contents as the new contents to be written there.
+        *   - overwriteSame       : If a file already exists at the destination with the
+        *                           same contents, then do nothing to the destination file
+        *                           instead of giving an error. This does not compare headers.
+        *                           This option is ignored if 'overwrite' is already provided.
         *   - headers             : If supplied, the backend will return these headers when
         *                           GETs/HEADs of the destination file are made. Header values
         *                           should be smaller than 256 bytes, often options or numbers.
index 939315d..17b060c 100644 (file)
@@ -457,7 +457,7 @@ class FileBackendMultiWrite extends FileBackend {
         * @return bool Path container should have dir changes pushed to all backends
         */
        protected function replicateContainerDirChanges( $path ) {
-               list( , $shortCont,  ) = self::splitStoragePath( $path );
+               list( , $shortCont, ) = self::splitStoragePath( $path );
                return !in_array( $shortCont, $this->noPushDirConts );
        }
 
index 1a9ac3b..be0d502 100644 (file)
@@ -276,10 +276,12 @@ abstract class FileBackendStore extends FileBackend {
         */
        protected function doMoveInternal( array $params ) {
                unset( $params['async'] ); // two steps, won't work here :)
+               $nsrc = FileBackend::normalizeStoragePath( $params['src'] );
+               $ndst = Filebackend::normalizeStoragePath( $params['dst'] );
                // Copy source to dest
                $status = $this->copyInternal( $params );
-               if ( $status->isOK() ) {
-                       // Delete source (only fails due to races or medium going down)
+               if ( $nsrc !== $ndst && $status->isOK() ) {
+                       // Delete source (only fails due to races or network problems)
                        $status->merge( $this->deleteInternal( array( 'src' => $params['src'] ) ) );
                        $status->setResult( true, $status->value ); // ignore delete() errors
                }
@@ -303,9 +305,13 @@ abstract class FileBackendStore extends FileBackend {
        final public function describeInternal( array $params ) {
                wfProfileIn( __METHOD__ );
                wfProfileIn( __METHOD__ . '-' . $this->name );
-               $status = $this->doDescribeInternal( $params );
-               $this->clearCache( array( $params['src'] ) );
-               $this->deleteFileCache( $params['src'] ); // persistent cache
+               if ( count( $params['headers'] ) ) {
+                       $status = $this->doDescribeInternal( $params );
+                       $this->clearCache( array( $params['src'] ) );
+                       $this->deleteFileCache( $params['src'] ); // persistent cache
+               } else {
+                       $status = Status::newGood(); // nothing to do
+               }
                wfProfileOut( __METHOD__ . '-' . $this->name );
                wfProfileOut( __METHOD__ );
                return $status;
index e019324..62e9fba 100644 (file)
@@ -46,7 +46,7 @@ abstract class FileOp {
 
        protected $doOperation = true; // boolean; operation is not a no-op
        protected $sourceSha1; // string
-       protected $destSameAsSource; // boolean
+       protected $overwriteSameCase; // boolean
        protected $destExists; // boolean
 
        /* Object life-cycle */
@@ -55,7 +55,7 @@ abstract class FileOp {
        const STATE_ATTEMPTED = 3;
 
        /**
-        * Build a new file operation transaction
+        * Build a new batch file operation transaction
         *
         * @param $backend FileBackendStore
         * @param $params Array
@@ -64,8 +64,10 @@ abstract class FileOp {
        final public function __construct( FileBackendStore $backend, array $params ) {
                $this->backend = $backend;
                list( $required, $optional ) = $this->allowedParams();
+               // @TODO: normalizeAnyStoragePaths() calls are overzealous, use a parameter list
                foreach ( $required as $name ) {
                        if ( isset( $params[$name] ) ) {
+                               // Normalize paths so the paths to the same file have the same string
                                $this->params[$name] = self::normalizeAnyStoragePaths( $params[$name] );
                        } else {
                                throw new MWException( "File operation missing parameter '$name'." );
@@ -73,6 +75,7 @@ abstract class FileOp {
                }
                foreach ( $optional as $name ) {
                        if ( isset( $params[$name] ) ) {
+                               // Normalize paths so the paths to the same file have the same string
                                $this->params[$name] = self::normalizeAnyStoragePaths( $params[$name] );
                        }
                }
@@ -341,7 +344,7 @@ abstract class FileOp {
 
        /**
         * Check for errors with regards to the destination file already existing.
-        * Also set the destExists, destSameAsSource and sourceSha1 member variables.
+        * Also set the destExists, overwriteSameCase and sourceSha1 member variables.
         * A bad status will be returned if there is no chance it can be overwritten.
         *
         * @param $predicates Array
@@ -354,7 +357,7 @@ abstract class FileOp {
                if ( $this->sourceSha1 === null ) { // file in storage?
                        $this->sourceSha1 = $this->fileSha1( $this->params['src'], $predicates );
                }
-               $this->destSameAsSource = false;
+               $this->overwriteSameCase = false;
                $this->destExists = $this->fileExists( $this->params['dst'], $predicates );
                if ( $this->destExists ) {
                        if ( $this->getParam( 'overwrite' ) ) {
@@ -368,7 +371,7 @@ abstract class FileOp {
                                        // Give an error if the files are not identical
                                        $status->fatal( 'backend-fail-notsame', $this->params['dst'] );
                                } else {
-                                       $this->destSameAsSource = true; // OK
+                                       $this->overwriteSameCase = true; // OK
                                }
                                return $status; // do nothing; either OK or bad status
                        } else {
@@ -489,7 +492,7 @@ class CreateFileOp extends FileOp {
         * @return Status
         */
        protected function doAttempt() {
-               if ( !$this->destSameAsSource ) {
+               if ( !$this->overwriteSameCase ) {
                        // Create the file at the destination
                        return $this->backend->createInternal( $this->setFlags( $this->params ) );
                }
@@ -561,8 +564,8 @@ class StoreFileOp extends FileOp {
         * @return Status
         */
        protected function doAttempt() {
-               // Store the file at the destination
-               if ( !$this->destSameAsSource ) {
+               if ( !$this->overwriteSameCase ) {
+                       // Store the file at the destination
                        return $this->backend->storeInternal( $this->setFlags( $this->params ) );
                }
                return Status::newGood();
@@ -638,14 +641,19 @@ class CopyFileOp extends FileOp {
         * @return Status
         */
        protected function doAttempt() {
-               // Do nothing if the src/dst paths are the same
-               if ( $this->params['src'] !== $this->params['dst'] ) {
-                       // Copy the file into the destination
-                       if ( !$this->destSameAsSource ) {
-                               return $this->backend->copyInternal( $this->setFlags( $this->params ) );
-                       }
+               if ( $this->overwriteSameCase ) {
+                       $status = Status::newGood(); // nothing to do
+               } elseif ( $this->params['src'] === $this->params['dst'] ) {
+                       // Just update the destination file headers
+                       $headers = $this->getParam( 'headers' ) ?: array();
+                       $status = $this->backend->describeInternal( $this->setFlags( array(
+                               'src' => $this->params['dst'], 'headers' => $headers
+                       ) ) );
+               } else {
+                       // Copy the file to the destination
+                       $status = $this->backend->copyInternal( $this->setFlags( $this->params ) );
                }
-               return Status::newGood();
+               return $status;
        }
 
        /**
@@ -717,18 +725,27 @@ class MoveFileOp extends FileOp {
         * @return Status
         */
        protected function doAttempt() {
-               // Do nothing if the src/dst paths are the same
-               if ( $this->params['src'] !== $this->params['dst'] ) {
-                       if ( !$this->destSameAsSource ) {
-                               // Move the file into the destination
-                               return $this->backend->moveInternal( $this->setFlags( $this->params ) );
+               if ( $this->overwriteSameCase ) {
+                       if ( $this->params['src'] === $this->params['dst'] ) {
+                               // Do nothing to the destination (which is also the source)
+                               $status = Status::newGood();
                        } else {
-                               // Just delete source as the destination needs no changes
-                               $params = array( 'src' => $this->params['src'] );
-                               return $this->backend->deleteInternal( $this->setFlags( $params ) );
+                               // Just delete the source as the destination file needs no changes
+                               $status = $this->backend->deleteInternal( $this->setFlags(
+                                       array( 'src' => $this->params['src'] )
+                               ) );
                        }
+               } elseif ( $this->params['src'] === $this->params['dst'] ) {
+                       // Just update the destination file headers
+                       $headers = $this->getParam( 'headers' ) ?: array();
+                       $status = $this->backend->describeInternal( $this->setFlags(
+                               array( 'src' => $this->params['dst'], 'headers' => $headers )
+                       ) );
+               } else {
+                       // Move the file to the destination
+                       $status = $this->backend->moveInternal( $this->setFlags( $this->params ) );
                }
-               return Status::newGood();
+               return $status;
        }
 
        /**
index cecd0ae..5eff954 100644 (file)
@@ -518,7 +518,7 @@ abstract class File {
         * @param $version integer version number.
         * @return Array containing metadata, or what was passed to it on fail (unserializing if not array)
         */
-       public function convertMetadataVersion($metadata, $version) {
+       public function convertMetadataVersion( $metadata, $version ) {
                $handler = $this->getHandler();
                if ( !is_array( $metadata ) ) {
                        // Just to make the return type consistent
@@ -681,7 +681,7 @@ abstract class File {
                if ( $mime === "unknown/unknown" ) {
                        return false; #unknown type, not trusted
                }
-               if ( in_array( $mime, $wgTrustedMediaFormats) ) {
+               if ( in_array( $mime, $wgTrustedMediaFormats ) ) {
                        return true;
                }
 
index a96c1f3..4cc6308 100644 (file)
@@ -67,7 +67,7 @@ class ForeignAPIFile extends File {
                                ? count( $data['query']['redirects'] ) - 1
                                : -1;
                        if( $lastRedirect >= 0 ) {
-                               $newtitle = Title::newFromText( $data['query']['redirects'][$lastRedirect]['to']);
+                               $newtitle = Title::newFromText( $data['query']['redirects'][$lastRedirect]['to'] );
                                $img = new self( $newtitle, $repo, $info, true );
                                if( $img ) {
                                        $img->redirectedFrom( $title->getDBkey() );
@@ -166,7 +166,7 @@ class ForeignAPIFile extends File {
                }
                $ret = array();
                foreach( $metadata as $meta ) {
-                       $ret[ $meta['name'] ] = self::parseMetadata( $meta['value'] );
+                       $ret[$meta['name']] = self::parseMetadata( $meta['value'] );
                }
                return $ret;
        }
index 8231e7f..cd14e4e 100644 (file)
@@ -510,8 +510,7 @@ abstract class DatabaseInstaller {
         * @return String
         */
        public function getInstallUserBox() {
-               return
-                       Html::openElement( 'fieldset' ) .
+               return Html::openElement( 'fieldset' ) .
                        Html::element( 'legend', array(), wfMessage( 'config-db-install-account' )->text() ) .
                        $this->getTextBox( '_InstallUser', 'config-db-username', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-install-username' ) ) .
                        $this->getPasswordBox( '_InstallPassword', 'config-db-password', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-install-password' ) ) .
index b88ae61..94164eb 100644 (file)
@@ -302,7 +302,7 @@ abstract class DatabaseUpdater {
         * @param string $fieldName The field to be modified
         * @param string $sqlPath The path to the SQL change path
         */
-       public function modifyExtensionField( $tableName, $fieldName, $sqlPath) {
+       public function modifyExtensionField( $tableName, $fieldName, $sqlPath ) {
                $this->extensionUpdates[] = array( 'modifyField', $tableName, $fieldName, $sqlPath, true );
        }
 
index ee07a13..3b097de 100644 (file)
@@ -574,6 +574,7 @@ When that has been done, you can '''[$2 enter your wiki]'''.",
  * @author Shirayuki
  * @author Siebrand
  * @author Umherirrender
+ * @author Waldir
  */
 $messages['qqq'] = array(
        'config-desc' => '{{desc}}',
@@ -602,6 +603,7 @@ Used as error message.',
        'config-page-name' => '{{Identical|Name}}',
        'config-page-options' => '{{Identical|Options}}',
        'config-page-install' => '{{Identical|Install}}',
+       'config-page-releasenotes' => '{{Identical|Release notes}}',
        'config-page-copying' => 'This is a link to the full GPL text',
        'config-restart' => 'Button text to confirm the installation procedure has to be restarted.',
        'config-copyright' => 'This message follows {{msg-mw|config-env-good}}.
@@ -744,6 +746,7 @@ See also:
 * $1 - full URL of index.php
 See also:
 * {{msg-mw|config-upgrade-done}}',
+       'config-regenerate' => 'This message appears in a button after LocalSettings.php is generated and downloaded at the end of the MediaWiki installation process.',
        'config-show-table-status' => '{{doc-important|"<code>SHOW TABLE STATUS</code>" is a MySQL command. Do not translate this.}}',
        'config-db-web-account-same' => 'checkbox label',
        'config-db-web-create' => 'checkbox label',
@@ -1043,12 +1046,10 @@ U gebruik tans $2.',
        'config-sqlite-dir' => 'Gids vir SQLite se data:',
        'config-oracle-def-ts' => 'Standaard tabelruimte:',
        'config-oracle-temp-ts' => 'Tydelike tabelruimte:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-header-mysql' => 'MySQL-instellings',
        'config-header-postgres' => 'PostgreSQL-instellings',
        'config-header-sqlite' => 'SQLite-instellings',
        'config-header-oracle' => 'Oracle-instellings',
-       'config-header-ibm_db2' => 'Instellings vir IBM DB2',
        'config-invalid-db-type' => 'Ongeldige databasistipe',
        'config-missing-db-name' => 'U moet \'n waarde vir "Databasnaam" verskaf',
        'config-sqlite-readonly' => 'Die lêer <code>$1</code> kan nie geskryf word nie.',
@@ -1056,7 +1057,7 @@ U gebruik tans $2.',
        'config-upgrade-done-no-regenerate' => 'Opgradering is voltooi.
 
 U kan nou [$1 u wiki gebruik].',
-       'config-regenerate' => 'Herskep <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Herskep LocalSettings.php →',
        'config-show-table-status' => 'Die uitvoer van <code>SHOW TABLE STATUS</code> het gefaal!',
        'config-db-web-account' => 'Databasisgebruiker vir toegang tot die web',
        'config-mysql-engine' => 'Stoor-enjin:',
@@ -1698,7 +1699,6 @@ ResourceLoader, складнік MediaWiki, будзе абходзіць гэт
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki падтрымлівае наступныя сыстэмы базаў зьвестак:
 
 $1
@@ -1708,12 +1708,10 @@ $1
        'config-support-postgres' => '* $1 — вядомая сыстэма базы зьвестак з адкрытым кодам, якая зьяўляецца альтэрнатывай MySQL ([http://www.php.net/manual/en/pgsql.installation.php як кампіляваць PHP з падтрымкай PostgreSQL]). Яна можа ўтрымліваць дробныя памылкі, і не рэкамэндуецца выкарыстоўваць яе для працуючых праектаў.',
        'config-support-sqlite' => '* $1 — невялікая сыстэма базы зьвестак, якая мае вельмі добрую падтрымку. ([http://www.php.net/manual/en/pdo.installation.php як кампіляваць PHP з падтрымкай SQLite], выкарыстоўвае PDO)',
        'config-support-oracle' => '* $1 зьяўляецца камэрцыйнай прафэсійнай базай зьвестак. ([http://www.php.net/manual/en/oci8.installation.php Як скампіляваць PHP з падтрымкай OCI8])',
-       'config-support-ibm_db2' => '* $1 — база зьвестак маштабу прадпрыемства. ([http://www.php.net/manual/en/ibm-db2.installation.php Як скампіляваць PHP з падтрымкай IBM DB2])',
        'config-header-mysql' => 'Налады MySQL',
        'config-header-postgres' => 'Налады PostgreSQL',
        'config-header-sqlite' => 'Налады SQLite',
        'config-header-oracle' => 'Налады Oracle',
-       'config-header-ibm_db2' => 'Налады IBM DB2',
        'config-invalid-db-type' => 'Няслушны тып базы зьвестак',
        'config-missing-db-name' => 'Вы павінны ўвесьці значэньне парамэтру «Імя базы зьвестак»',
        'config-missing-db-host' => 'Вы павінны ўвесьці значэньне парамэтру «Хост базы зьвестак»',
@@ -1775,7 +1773,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => 'Абнаўленьне скончанае.
 
 Цяпер Вы можаце [$1 пачаць працу з вікі].',
-       'config-regenerate' => 'Рэгенэраваць <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Рэгенэраваць LocalSettings.php →',
        'config-show-table-status' => "Запыт '<code>SHOW TABLE STATUS</code>' не атрымаўся!",
        'config-unknown-collation' => "'''Папярэджаньне:''' база зьвестак выкарыстоўвае нераспазнанае супастаўленьне.",
        'config-db-web-account' => 'Рахунак базы зьвестак для вэб-доступу',
@@ -1805,7 +1803,6 @@ chmod a+w $3</pre>',
 Гэта болей эфэктыўна за рэжым MySQL UTF-8, і дазваляе Вам выкарыстоўваць увесь дыяпазон сымбаляў Unicode.
 
 У '''рэжыме UTF-8''', MySQL ведае, якая табліцы сымбаляў выкарыстоўваецца ў Вашых зьвестках, і можа адпаведна прадстаўляць і канвэртаваць іх, але гэта не дазволіць Вам захоўваць сымбалі па-за межамі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базавага шматмоўнага дыяпазону].",
-       'config-ibm_db2-low-db-pagesize' => "Вашая база зьвестак DB2 мае таблічную прасторну зь недастатковым памерам старонкі. Памер старонкі мусіць быць ня менш за '''32к'''.",
        'config-site-name' => 'Назва вікі:',
        'config-site-name-help' => 'Назва будзе паказвацца ў загалоўку браўзэра і ў некаторых іншых месцах.',
        'config-site-name-blank' => 'Увядзіце назву сайта.',
@@ -2224,7 +2221,6 @@ $1
 Това включва сурови данни за потребителите (адреси за е-поща, хеширани пароли), както и изтрити версии на страници и друга чувствителна и с ограничен достъп информация от и за уикито.
 
 Базата от данни е препоръчително да се разположи на друго място, например в <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'МедияУики поддържа следните системи за бази от данни:
 
 $1
@@ -2234,12 +2230,10 @@ $1
        'config-support-postgres' => '* $1 е популярна система за бази от данни с отворен изходен код, която е алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php как се компилира PHP с поддръжка на PostgreSQL]). Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.',
        'config-support-sqlite' => '* $1 е лека система за база от данни, която е много добре поддържана. ([http://www.php.net/manual/en/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)',
        'config-support-oracle' => '* $1 е комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])',
-       'config-support-ibm_db2' => '* $1 е комерсиална фирмена база от данни. ([http://www.php.net/manual/en/ibm-db2.installation.php Как се компилира PHP с поддръжка на IBM DB2])',
        'config-header-mysql' => 'Настройки за MySQL',
        'config-header-postgres' => 'Настройки за PostgreSQL',
        'config-header-sqlite' => 'Настройки за SQLite',
        'config-header-oracle' => 'Настройки за Oracle',
-       'config-header-ibm_db2' => 'Настройки за IBM DB2',
        'config-invalid-db-type' => 'Невалиден тип база от данни',
        'config-missing-db-name' => 'Необходимо е да се въведе стойност за "Име на базата от данни"',
        'config-missing-db-host' => 'Необходимо е да се въведе стойност за "Хост на базата от данни"',
@@ -2301,7 +2295,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => 'Обновяването приключи.
 
 Вече е възможно [$1 да използвате уикито].',
-       'config-regenerate' => 'Създаване на <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Създаване на LocalSettings.php →',
        'config-show-table-status' => 'Заявката <code>SHOW TABLE STATUS</code> не сполучи!',
        'config-unknown-collation' => "'''Предупреждение:''' Базата от данни използва неразпозната колация.",
        'config-db-web-account' => 'Сметка за уеб достъп до базата от данни',
@@ -2926,7 +2920,7 @@ Da hizivaat anezho da VediaWiki $1, klikañ war '''Kenderc'hel'''.",
        'config-upgrade-done-no-regenerate' => 'Hizivadenn kaset da benn.
 
 Gallout a rit [$1 kregiñ da implijout ho wiki].',
-       'config-regenerate' => 'Adgenel <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Adgenel LocalSettings.php →',
        'config-show-table-status' => "C'hwitet ar reked <code>SHOW TABLE STATUS</code> !",
        'config-unknown-collation' => "'''Diwallit :''' Emañ an diaz roadennoù o renkañ an traoù diouzh un urzh lizherennek dianav.",
        'config-db-web-account' => 'Kont an diaz roadennoù evit ar voned Kenrouedad',
@@ -3501,7 +3495,6 @@ Zvažte umístění databáze někam zcela jinam, například do <code>/var/lib/
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Věštba',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki podporuje následující databázové systémy:
 
 $1
@@ -3511,12 +3504,10 @@ Pokud v nabídce níže nevidíte databázový systém, který chcete použít,
        'config-support-postgres' => '* $1 je populární open-source databázový systém používaný jako alternativa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php jak přeložit PHP s podporou PostgreSQL]). Mohou se vyskytnout ještě nějaké menší chyby, použití v produkčním prostředí se nedoporučuje.',
        'config-support-sqlite' => '* $1 je velmi dobře podporovaný lehký databázový systém. ([http://www.php.net/manual/en/pdo.installation.php Jak přeložit PHP s podporou SQLite], používá PDO)',
        'config-support-oracle' => '* $1 je komerční podniková databáze. ([http://www.php.net/manual/en/oci8.installation.php Jak přeložit PHP s podporou OCI8])',
-       'config-support-ibm_db2' => '* $1 je komerční podniková databáze. ([http://www.php.net/manual/en/ibm-db2.installation.php Jak přeložit PHP s podporou IBM DB2])',
        'config-header-mysql' => 'Nastavení MySQL',
        'config-header-postgres' => 'Nastavení PostgreSQL',
        'config-header-sqlite' => 'Nastavení SQLite',
        'config-header-oracle' => 'Nastavení Oracle',
-       'config-header-ibm_db2' => 'Nastavení IBM DB2',
        'config-invalid-db-type' => 'Chybný typ databáze',
        'config-missing-db-name' => 'Musíte zadat hodnotu pro „Jméno databáze“',
        'config-missing-db-host' => 'Musíte zadat hodnotu pro „Databázový server“',
@@ -3578,7 +3569,7 @@ To se ale '''nedoporučuje''', pokud s wiki nemáte problémy.",
        'config-upgrade-done-no-regenerate' => 'Aktualizace byla dokončena.
 
 Svou wiki teď můžete [$1 začít používat].',
-       'config-regenerate' => 'Přegenerovat <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Přegenerovat LocalSettings.php →',
        'config-show-table-status' => 'Dotaz <code>SHOW TABLE STATUS</code> se nezdařil!',
        'config-unknown-collation' => "'''Upozornění:''' Databáze používá nerozpoznané řazení.",
        'config-db-web-account' => 'Databázový účet pro webový přístup',
@@ -3608,7 +3599,6 @@ Databáze MyISAM bývají poškozeny častěji než databáze InnoDB.",
 To je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.
 
 V '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět, ale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-ibm_db2-low-db-pagesize' => "Vaše DB2 databáze má implicitní tabulkový prostor s nedostatečnou velikostí stránky. Velikost stránky musí být minimálně '''32K'''.",
        'config-site-name' => 'Název wiki:',
        'config-site-name-help' => 'Bude se zobrazovat v titulku prohlížeče a na dalších místech.',
        'config-site-name-blank' => 'Zadejte název serveru.',
@@ -3940,7 +3930,7 @@ Dieses Programm ist freie Software, d. h. es kann, gemäß den Bedingungen der v
 
 Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, allerdings '''ohne jegliche Garantie''' und sogar ohne die implizierte Garantie einer '''Marktgängigkeit''' oder '''Eignung für einen bestimmten Zweck'''. Hierzu sind weitere Hinweise in der ''GNU General Public License'' enthalten.
 
-Eine <doclink href=Copying>Kopie der ''GNU General Public License''</doclink> sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [http://www.gnu.org/copyleft/gpl.html online gelesen] werden.",
+Eine <doclink href=Copying>Kopie der GNU General Public License</doclink> sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [http://www.gnu.org/copyleft/gpl.html online gelesen] werden.",
        'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]
 * [//www.mediawiki.org/wiki/Help:Contents/de Benutzeranleitung]
 * [//www.mediawiki.org/wiki/Manual:Contents/de Administratorenanleitung]
@@ -4003,7 +3993,7 @@ Der Installationsvorgang könnte daher scheitern!",
        'config-xcache' => '[http://xcache.lighttpd.net/ XCache] ist installiert',
        'config-apc' => '[http://www.php.net/apc APC] ist installiert',
        'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] ist installiert',
-       'config-no-cache' => "'''Warnung:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] konnten nicht gefunden werden.
+       'config-no-cache' => "'''Warnung:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] wurden nicht gefunden.
 Das Objektcaching kann daher nicht aktiviert werden.",
        'config-mod-security' => "'''Warnung:''' Auf dem Webserver wurde [http://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann dies zu Problemen mit MediaWiki sowie anderer Software auf dem Server führen und es Benutzern ermöglichen beliebige Inhalte im Wiki einzustellen.
 Für weitere Informationen empfehlen wir die [http://modsecurity.org/documentation/ Dokumentation zu ModSecurity] oder den Kontakt zum Hoster, sofern Fehler auftreten.",
@@ -4179,7 +4169,7 @@ Dies wird '''nicht empfohlen''', es sei denn, es treten Probleme mit dem Wiki au
        'config-upgrade-done-no-regenerate' => 'Die Aktualisierung ist abgeschlossen.
 
 Das Wiki kann nun [$1 genutzt werden].',
-       'config-regenerate' => '<code>LocalSettings.php</code> neu erstellen →',
+       'config-regenerate' => 'LocalSettings.php neu erstellen →',
        'config-show-table-status' => 'Die Abfrage <code>SHOW TABLE STATUS</code> ist gescheitert!',
        'config-unknown-collation' => "'''Warnung:''' Die Datenbank nutzt eine unbekannte Kollation.",
        'config-db-web-account' => 'Datenbankkonto für den Webzugriff',
@@ -4874,7 +4864,6 @@ Considere la posibilidad de poner la base de datos en algún otro sitio, por eje
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki es compatible con los siguientes sistemas de bases de datos:
 
 $1
@@ -4884,12 +4873,10 @@ Si no encuentras en el listado el sistema de base de datos que estás intentando
        'config-support-postgres' => '$1 es un popular sistema de base de datos de código abierto, alternativa a MySQL. ([http://www.php.net/manual/es/pgsql.installation.php cómo compilar PHP con compatibilidad PostgreSQL]). Puede haber algunos defectos menores destacables, y no es recomendable para uso en un entorno de producción.',
        'config-support-sqlite' => '* $1 es una base de datos ligera con gran compatibilidad con MediaWiki ([http://www.php.net/manual/es/pdo.installation.php cómo compilar PHP con compatibilidad SQLite usando PDO]).',
        'config-support-oracle' => '* $1 es una base de datos comercial a nivel empresarial ([http://www.php.net/manual/es/oci8.installation.php cómo compilar PHP con compatibilidad con OCI8])',
-       'config-support-ibm_db2' => '* $1 es una base de datos comercial a nivel empresarial ([http://www.php.net/manual/es/ibm-db2.installation.php cómo compilar PHP con compatibilidad con ibm_db2]).', # Fuzzy
        'config-header-mysql' => 'Configuración de MySQL',
        'config-header-postgres' => 'Configuración de PostgreSQL',
        'config-header-sqlite' => 'Configuración de SQLite',
        'config-header-oracle' => 'Configuración de Oracle',
-       'config-header-ibm_db2' => 'Configuración de IBM DB2',
        'config-invalid-db-type' => 'Tipo de base de datos inválida',
        'config-missing-db-name' => 'Debes introducir un valor para "Nombre de la base de datos"',
        'config-missing-db-host' => 'Debe introducir un valor para "Servidor (host) de base de datos"',
@@ -4950,7 +4937,7 @@ Esto '''no se recomienda''' a menos que esté teniendo problemas con su wiki.",
        'config-upgrade-done-no-regenerate' => 'Actualización completa.
 
 Usted puede ahora [$1  empezar a usar su wiki].',
-       'config-regenerate' => 'Regenerar <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regenerar LocalSettings.php →',
        'config-show-table-status' => '<code>SHOW TABLE STATUS</code> ha fallado!',
        'config-unknown-collation' => "'''Advertencia:''' La base de datos está utilizando una intercalación no reconocida.",
        'config-db-web-account' => 'Cuenta de base de datos para acceso Web',
@@ -4980,7 +4967,6 @@ Las bases de datos MyISAM tienden a corromperse más a menudo que las bases de d
 Esto es más eficiente que el modo UTF-8 de MySQL y le permite utilizar la gama completa de caracteres Unicode.
 
 En '''modo UTF-8''', MySQL sabrá qué conjunto de caracteres emplean sus datos y puede presentarlos y convertirlos adecuadamente, pero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
-       'config-ibm_db2-low-db-pagesize' => "Su base de datos DB2 tiene un espacio de tablas por defecto con un tamaño de página insuficiente. El tamaño de página tiene que ser '''32 K''' o superior.",
        'config-site-name' => 'Nombre del wiki:',
        'config-site-name-help' => 'Esto aparecerá en la barra de título del navegador y en varios otros lugares.',
        'config-site-name-blank' => 'Ingresar un nombre de sitio.',
@@ -5568,13 +5554,10 @@ Asennus saattaa epäonnistua!",
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
-       'config-support-ibm_db2' => '* $1 on kaupallinen tietokanta yrityskäyttöön.', # Fuzzy
        'config-header-mysql' => 'MySQL-asetukset',
        'config-header-postgres' => 'PostgreSQL-asetukset',
        'config-header-sqlite' => 'SQLite-asetukset',
        'config-header-oracle' => 'Oracle-asetukset',
-       'config-header-ibm_db2' => 'IBM DB2 -asetukset',
        'config-invalid-db-type' => 'Virheellinen tietokantatyyppi',
        'config-missing-db-name' => 'Kenttä »Tietokannan nimi» on pakollinen',
        'config-invalid-db-name' => '”$1” ei kelpaa tietokannan nimeksi.
@@ -5598,7 +5581,7 @@ Tämä '''ei ole suositeltavaa''', jos wikissäsi ei ole ongelmia.",
        'config-upgrade-done-no-regenerate' => 'Päivitys valmis.
 
 Voit [$1 aloittaa wikin käytön].',
-       'config-regenerate' => 'Luo <code>LocalSettings.php</code> uudelleen →',
+       'config-regenerate' => 'Luo LocalSettings.php uudelleen →',
        'config-show-table-status' => 'Kysely <code>SHOW TABLE STATUS</code> epäonnistui!',
        'config-mysql-engine' => 'Tallennusmoottori',
        'config-mysql-innodb' => 'InnoDB',
@@ -5903,7 +5886,6 @@ Envisagez de placer la base de données ailleurs, par exemple dans <code>/var/li
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => "MediaWiki supporte ces systèmes de bases de données :
 
 $1
@@ -5913,12 +5895,10 @@ Si vous ne voyez pas le système de base de données que vous essayez d'utiliser
        'config-support-postgres' => "* $1 est un système de base de données populaire et ''open source'' qui peut être une alternative à MySQL ([http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). Il peut contenir quelques bogues mineurs et n'est pas recommandé dans un environnement de production.",
        'config-support-sqlite' => '* $1 est un système de base de données léger qui est bien supporté. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], utilise PDO)',
        'config-support-oracle' => '* $1 est un système commercial de gestion de base de données d’entreprise. ([http://www.php.net/manual/en/oci8.installation.php Comment compiler PHP avec le support OCI8])',
-       'config-support-ibm_db2' => "* $1 est une base de données d'entreprise commerciale. ([http://www.php.net/manual/en/ibm-db2.installation.php Comment compiler PHP avec le support de DB2 d’IBM])",
        'config-header-mysql' => 'Paramètres de MySQL',
        'config-header-postgres' => 'Paramètres de PostgreSQL',
        'config-header-sqlite' => 'Paramètres de SQLite',
        'config-header-oracle' => 'Paramètres d’Oracle',
-       'config-header-ibm_db2' => 'paramètres de IBM DB2',
        'config-invalid-db-type' => 'Type de base de données non valide',
        'config-missing-db-name' => 'Vous devez saisir une valeur pour « Nom de la base de données »',
        'config-missing-db-host' => "Vous devez entrer une valeur pour « l'hôte de la base de données »",
@@ -5980,7 +5960,7 @@ Ce '''n'est pas recommandé''' sauf si vous rencontrez des problèmes avec votre
        'config-upgrade-done-no-regenerate' => 'Mise à jour terminée.
 
 Vous pouvez maintenant [$1 commencer à utiliser votre wiki].',
-       'config-regenerate' => 'Regénérer <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regénérer LocalSettings.php →',
        'config-show-table-status' => 'Échec de la requête <code>SHOW TABLE STATUS</code> !',
        'config-unknown-collation' => "'''Attention:''' La base de données effectue un classement alphabétique (''collation'') inconnu.",
        'config-db-web-account' => "Compte de la base de données pour l'accès Web",
@@ -6007,7 +5987,6 @@ Si votre installation MySQL supporte InnoDB, il est fortement recommandé que vo
 
 En ''mode binaire'', MediaWiki stocke le texte UTF-8 dans des champs binaires de la base de données. C'est plus efficace que le ''mode UTF-8'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.
 En ''mode UTF-8'', MySQL connaîtra le jeu de caractères de vos données et pourra présenter et convertir les données de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
-       'config-ibm_db2-low-db-pagesize' => "Votre base de données DB2 a un espace de stockage par défaut avec un pagesize insuffisant. Le pagesize doit être au minimum '''32K'''.",
        'config-site-name' => 'Nom du wiki :',
        'config-site-name-help' => 'Il apparaîtra dans la barre de titre du navigateur et en divers autres endroits.',
        'config-site-name-blank' => 'Entrez un nom de site.',
@@ -6286,18 +6265,16 @@ Portant, MediaWiki at fôta de PHP $2 ou ben ples hôt.',
        'config-sqlite-dir' => 'Dossiér de les balyês SQLite :',
        'config-oracle-def-ts' => "Èspâço de stocâjo (''tablespace'') per dèfôt :",
        'config-oracle-temp-ts' => "Èspâço de stocâjo (''tablespace'') temporèro :",
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-header-mysql' => 'Paramètres de MySQL',
        'config-header-postgres' => 'Paramètres de PostgreSQL',
        'config-header-sqlite' => 'Paramètres de SQLite',
        'config-header-oracle' => 'Paramètres d’Oracle',
-       'config-header-ibm_db2' => 'Paramètres d’IBM DB2',
        'config-invalid-db-type' => 'Tipo de bâsa de balyês envalido',
        'config-missing-db-name' => 'Vos dête buchiér una valor por « Nom de la bâsa de balyês »',
        'config-missing-db-host' => 'Vos dête buchiér una valor por « Hôto de la bâsa de balyês »',
        'config-missing-db-server-oracle' => 'Vos dête buchiér una valor por « TNS de la bâsa de balyês »',
        'config-sqlite-readonly' => 'Lo fichiér <code>$1</code> est pas accèssiblo en ècritura.',
-       'config-regenerate' => 'Refâre <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Refâre LocalSettings.php →',
        'config-show-table-status' => 'Falyita de la requéta <code>SHOW TABLE STATUS</code> !',
        'config-db-web-account' => 'Compto de la bâsa de balyês por l’accès vouèbe',
        'config-db-web-account-same' => 'Utilisâd lo mémo compto que por l’enstalacion',
@@ -6720,7 +6697,6 @@ Considere poñer a base de datos nun só lugar, por exemplo en <code>/var/lib/me
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki soporta os seguintes sistemas de bases de datos:
 
 $1
@@ -6730,12 +6706,10 @@ Se non ve listado a continuación o sistema de base de datos que intenta usar, s
        'config-support-postgres' => '* $1 é un sistema de base de datos popular e de código aberto como alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar o PHP con soporte PostgreSQL]). É posible que haxa algúns pequenos erros e non se recomenda o seu uso nunha contorna de produción.',
        'config-support-sqlite' => '* $1 é un sistema de base de datos lixeiro moi ben soportado. ([http://www.php.net/manual/en/pdo.installation.php Como compilar o PHP con soporte SQLite], emprega PDO)',
        'config-support-oracle' => '* $1 é un sistema comercial de xestión de base de datos de empresa. ([http://www.php.net/manual/en/oci8.installation.php Como compilar o PHP con soporte OCI8])',
-       'config-support-ibm_db2' => '* $1 é unha base de datos de empresa comercial. ([http://www.php.net/manual/en/ibm-db2.installation.php Como compilar o PHP con soporte IBM DB2])',
        'config-header-mysql' => 'Configuración do MySQL',
        'config-header-postgres' => 'Configuración do PostgreSQL',
        'config-header-sqlite' => 'Configuración do SQLite',
        'config-header-oracle' => 'Configuración do Oracle',
-       'config-header-ibm_db2' => 'Configuración de IBM DB2',
        'config-invalid-db-type' => 'Tipo de base de datos incorrecto',
        'config-missing-db-name' => 'Debe escribir un valor "Nome da base de datos"',
        'config-missing-db-host' => 'Debe escribir un valor "Servidor da base de datos"',
@@ -6797,7 +6771,7 @@ Isto '''non é recomendable''' a menos que estea a ter problemas co seu wiki.",
        'config-upgrade-done-no-regenerate' => 'Actualización completada.
 
 Xa pode [$1 comezar a usar o seu wiki].',
-       'config-regenerate' => 'Rexenerar <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Rexenerar LocalSettings.php →',
        'config-show-table-status' => 'A pescuda <code>SHOW TABLE STATUS</code> fallou!',
        'config-unknown-collation' => "'''Atención:''' A base de datos está a empregar unha clasificación alfabética irrecoñecible.",
        'config-db-web-account' => 'Conta na base de datos para o acceso á internet',
@@ -6828,7 +6802,6 @@ Isto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango complet
 
 No '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,
 pero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
-       'config-ibm_db2-low-db-pagesize' => "A súa base de datos DB2 ten un espazo de táboa cun tamaño de páxina insuficiente. O tamaño de páxina debe ser '''32k''' ou maior.",
        'config-site-name' => 'Nome do wiki:',
        'config-site-name-help' => 'Isto aparecerá na barra de títulos do navegador e noutros lugares.',
        'config-site-name-blank' => 'Escriba o nome do sitio.',
@@ -7438,7 +7411,6 @@ $1
 כדאי לשקול לשים את מסד הנתונים במקום אחר לגמרי, למשל ב־<code dir="ltr">/var/lib/mediawiki/yourwik</code>.',
        'config-oracle-def-ts' => 'מרחב טבלאות לפי בררת מחדל (default tablespace):',
        'config-oracle-temp-ts' => 'מרחב טבלאות זמני (temporary tablespace):',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'מדיה־ויקי תומכת במערכות מסדי הנתונים הבאות:
 
 $1
@@ -7448,12 +7420,10 @@ $1
        'config-support-postgres' => '$1 הוא מסד נתונים נפוץ בקוד פתוח והוא נפוץ בתור חלופה ל־MySQL (ר׳ [http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). ייתכן שיש בתצורה הזאת באגים מסוימים והיא לא מומלצת לסביבות מבצעיות.',
        'config-support-sqlite' => '* $1 הוא מסד נתונים קליל עם תמיכה טובה מאוד. (ר׳ [http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], משתמש ב־PDO)',
        'config-support-oracle' => '* $1 הוא מסד נתונים עסקי מסחרי. (ר׳ [http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
-       'config-support-ibm_db2' => '* $1 הוא מסד נתונים מסחרי ארגוני. ([http://www.php.net/manual/en/ibm-db2.installation.php How to compile PHP with IBM DB2 support])',
        'config-header-mysql' => 'הגדרות MySQL',
        'config-header-postgres' => 'הגדרות PostgreSQL',
        'config-header-sqlite' => 'הגדרות SQLite',
        'config-header-oracle' => 'הגדרות Oracle',
-       'config-header-ibm_db2' => 'תצורת IBM DB2',
        'config-invalid-db-type' => 'סוג מסד הנתונים שגוי',
        'config-missing-db-name' => 'עליך להזין ערך עבור "שם מסד הנתונים"',
        'config-missing-db-host' => 'יש להכניס ערך לשדה "שרת מסד הנתונים"',
@@ -7515,7 +7485,7 @@ chmod a+w $3</pre></div>',
        'config-upgrade-done-no-regenerate' => 'השדרוג הושלם.
 
 עכשיו אפשר [$1 להתחיל להשתמש בוויקי שלכם].',
-       'config-regenerate' => 'לחולל מחדש את <code>LocalSettings.php</code> ←',
+       'config-regenerate' => 'לחולל מחדש את LocalSettings.php ←',
        'config-show-table-status' => 'שאילתת <code>SHOW TABLE STATUS</code> נכשלה!',
        'config-unknown-collation' => "'''אזהרה:''' מסד הנתונים משתמש בשיטת מיון שאינה מוּכּרת.",
        'config-db-web-account' => 'חשבון במסד הנתונים לגישה מהרשת',
@@ -7545,7 +7515,6 @@ chmod a+w $3</pre></div>',
 זה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.
 
 ב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קבוצת התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
-       'config-ibm_db2-low-db-pagesize' => "במסד הנתונים DB2 שלכם יש מרחב טבלאות לפי מחדלי עם גודל דף בלתי־מספיק. גודל הדף צריך להיות '''32K''' או יותר.",
        'config-site-name' => 'שם הוויקי:',
        'config-site-name-help' => 'זה יופיע בשורת הכותרת של הדפדפן ובמקומות רבים אחרים.',
        'config-site-name-blank' => 'נא להזין שם לאתר.',
@@ -7992,7 +7961,7 @@ Zo by je na MediaWiki $1 aktualizował, klikń na '''Dale'''.",
        'config-upgrade-done-no-regenerate' => 'Aktualizacija dokónčena.
 
 Móžeš nětko [$1 swój wiki wužiwać].',
-       'config-regenerate' => '<code>LocalSettings.php</code> znowa wutworić →',
+       'config-regenerate' => 'LocalSettings.php znowa wutworić →',
        'config-show-table-status' => 'Naprašowanje <code>SHOW TABLE STATUS</code> je so njeporadźiło!',
        'config-unknown-collation' => "'''Warnowanje:''' Datowa banka njeznatu kolaciju wužiwa.",
        'config-db-web-account' => 'Konto datoweje banki za webpřistup',
@@ -8379,7 +8348,6 @@ A telepítő készít egy <code>.htaccess</code> fájlt az adatbázis mellé, az
 Fontold meg az adatbázis más helyre történő elhelyezését, például a <code>/var/lib/mediawiki/tewikid</code> könyvtárba.",
        'config-oracle-def-ts' => 'Alapértelmezett táblatér:',
        'config-oracle-temp-ts' => 'Ideiglenes táblatér:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'A MediaWiki a következő adatbázisrendszereket támogatja:
 
 $1
@@ -8389,12 +8357,10 @@ Ha az alábbi listán nem találod azt a rendszert, melyet használni szeretnél
        'config-support-postgres' => '* A $1 népszerű, nyílt forráskódú adatbázisrendszer, a MySQL alternatívája ([http://www.php.net/manual/en/pgsql.installation.php Hogyan fordítható a PHP PostgreSQL-támogatással]). Több apró, javítatlan hiba is előfordulhat, így nem ajánlott éles környezetben használni.',
        'config-support-sqlite' => '* Az $1 egy könnyű, nagyon jól támogatott adatbázisrendszer. ([http://www.php.net/manual/en/pdo.installation.php Hogyan fordítható a PHP SQLite-támogatással], PDO-t használ)',
        'config-support-oracle' => '* Az $1 kereskedelmi, vállalati adatbázisrendszer. ([http://www.php.net/manual/en/oci8.installation.php Hogyan fordítható a PHP OCI8-támogatással])',
-       'config-support-ibm_db2' => '* Az $1 kereskedelmi vállalati adatbázisrendszer.', # Fuzzy
        'config-header-mysql' => 'MySQL-beállítások',
        'config-header-postgres' => 'PostgreSQL-beállítások',
        'config-header-sqlite' => 'SQLite-beállítások',
        'config-header-oracle' => 'Oracle-beállítások',
-       'config-header-ibm_db2' => 'IBM DB2-beállítások',
        'config-invalid-db-type' => 'Érvénytelen adatbázistípus',
        'config-missing-db-name' => 'Meg kell adnod az „Adatbázisnév” értékét',
        'config-missing-db-host' => 'Meg kell adnod az „Adatbázis hosztneve” értékét',
@@ -8456,7 +8422,7 @@ Ez '''nem ajánlott''', csak akkor, ha problémák vannak a wikivel.",
        'config-upgrade-done-no-regenerate' => "A frissítés befejeződött.
 
 Most már '''[$1 beléphetsz a wikibe]'''.",
-       'config-regenerate' => '<code>LocalSettings.php</code> elkészítése újra →',
+       'config-regenerate' => 'LocalSettings.php elkészítése újra →',
        'config-show-table-status' => 'A <code>SHOW TABLE STATUS</code> lekérdezés nem sikerült!',
        'config-unknown-collation' => "'''Figyelmeztetés:''' az adatbázis ismeretlen egybevetést használ.",
        'config-db-web-account' => 'A webes hozzáférésnél használt adatbázisfiók',
@@ -8485,7 +8451,6 @@ A '''MyISAM''' gyorsabb megoldás lehet egyfelhasználós vagy csak olvasható k
 Ez sokkal hatékonyabb a MySQL UTF-8-as módjánál, és lehetővé teszi a teljes Unicode-karakterkészlet használatát.
 
 '''UTF-8-as módban''' a MySQL tudni fogja,hogy az adatok milyen karakterkészlettel rendelkeznek, és megfelelően átalakítja őket, azonban nem tárolhatóak olyan karakterek, melyek a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] felett vannak.",
-       'config-ibm_db2-low-db-pagesize' => "A DB2 adatbázisodnak alapértelmezett táblatere van elégtelen lapmérettel. A lapméretnek legalább '''32K'''-nak kell lennie.",
        'config-site-name' => 'A wiki neve:',
        'config-site-name-help' => 'A böngésző címsorában és még számos más helyen jelenik meg.',
        'config-site-name-blank' => 'Add meg az oldal nevét.',
@@ -9010,7 +8975,6 @@ Considera poner le base de datos in un loco completemente differente, per exempl
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki supporta le sequente systemas de base de datos:
 
 $1
@@ -9020,12 +8984,10 @@ Si tu non vide hic infra le systema de base de datos que tu tenta usar, alora se
        'config-support-postgres' => '* $1 es un systema de base de datos popular e open source, alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP con supporto de PostgreSQL]). Es possibile que resta alcun minor defectos non resolvite, dunque illo non es recommendate pro uso in un ambiente de production.',
        'config-support-sqlite' => '* $1 es un systema de base de datos legier que es multo ben supportate. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP con supporto de SQLite], usa PDO)',
        'config-support-oracle' => '* $1 es un banca de datos commercial pro interprisas. ([http://www.php.net/manual/en/oci8.installation.php Como compilar PHP con supporto de OCI8])',
-       'config-support-ibm_db2' => '* $1 es un systema commercial de base de datos pro interprisas.', # Fuzzy
        'config-header-mysql' => 'Configuration de MySQL',
        'config-header-postgres' => 'Configuration de PostgreSQL',
        'config-header-sqlite' => 'Configuration de SQLite',
        'config-header-oracle' => 'Configuration de Oracle',
-       'config-header-ibm_db2' => 'Configurationes pro IBM DB2',
        'config-invalid-db-type' => 'Typo de base de datos invalide',
        'config-missing-db-name' => 'Tu debe entrar un valor pro "Nomine de base de datos"',
        'config-missing-db-host' => 'Tu debe entrar un valor pro "Host del base de datos"',
@@ -9087,7 +9049,7 @@ Isto '''non es recommendate''' si tu non ha problemas con tu wiki.",
        'config-upgrade-done-no-regenerate' => 'Actualisation complete.
 
 Tu pote ora [$1 comenciar a usar tu wiki].',
-       'config-regenerate' => 'Regenerar <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regenerar LocalSettings.php →',
        'config-show-table-status' => 'Le consulta <code>SHOW TABLE STATUS</code> falleva!',
        'config-unknown-collation' => "'''Aviso:''' Le base de datos usa un collation non recognoscite.",
        'config-db-web-account' => 'Conto de base de datos pro accesso via web',
@@ -9117,7 +9079,6 @@ Le bases de datos MyISAM tende a esser corrumpite plus frequentemente que le bas
 Isto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres Unicode.
 
 In '''modo UTF-8''', MySQL cognoscera le codification de characteres usate pro tu dats, e pote presentar e converter lo appropriatemente, ma illo non permittera immagazinar characteres supra le [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
-       'config-ibm_db2-low-db-pagesize' => 'Tu base de datos DB2 ha un "tablespace" (spatio de tabella) predefinite con un "pagesize" (dimension de pagina) insufficiente. Le "pagesize" debe esser \'\'\'32K\'\'\' o plus.',
        'config-site-name' => 'Nomine del wiki:',
        'config-site-name-help' => 'Isto apparera in le barra de titulo del navigator e in varie altere locos.',
        'config-site-name-blank' => 'Entra un nomine de sito.',
@@ -9625,7 +9586,7 @@ Tindakan ini '''tidak dianjurkan''' kecuali jika Anda mengalami masalah dengan w
        'config-upgrade-done-no-regenerate' => 'Pemutakhiran selesai.
 
 Anda sekarang dapat [$1 mulai menggunakan wiki Anda].',
-       'config-regenerate' => 'Regenerasi <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regenerasi LocalSettings.php →',
        'config-show-table-status' => 'Kueri <code>SHOW TABLE STATUS</code> gagal!',
        'config-unknown-collation' => "'''Peringatan:''' basis data menggunakan kolasi yang tidak dikenal.",
        'config-db-web-account' => 'Akun basis data untuk akses web',
@@ -10439,7 +10400,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => 'アップグレードが完了しました。
 
 [$1 ウィキの使用を開始]することができます。',
-       'config-regenerate' => '<code>LocalSettings.php</code> を再生成→',
+       'config-regenerate' => 'LocalSettings.php を再生成→',
        'config-show-table-status' => '<code>SHOW TABLE STATUS</code> クエリが失敗しました!',
        'config-unknown-collation' => "'''警告:''' データベースは認識されない照合を使用しています。",
        'config-db-web-account' => 'ウェブアクセスのためのデータベースアカウント',
@@ -11142,7 +11103,6 @@ MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전
        'config-oracle-def-ts' => '기본 테이블공간:',
        'config-oracle-temp-ts' => '임시 테이블공간:',
        'config-type-oracle' => '오라클',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => '미디어위키는 다음의 데이터베이스 시스템을 지원합니다:
 
 $1
        'config-support-postgres' => '* $1은 MySQL의 대안으로 인기 있는 오픈 소스 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQL을 지원하여 PHP를 컴파일하는 방법]) 몇가지 사소한 해결하지 못한 버그가 있을 수 있으며, 이를 제작 환경에서 사용하지 않는 것이 좋습니다.',
        'config-support-sqlite' => '* $1는 매우 잘 지원하는 가벼운 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pdo.installation.php SQLite를 지원하여 PHP를 컴파일하는 방법], PDO 사용)',
        'config-support-oracle' => '* $1은 상용 엔터프라이스 데이터베이스입니다. ([http://www.php.net/manual/en/oci8.installation.php OCI8을 지원하여 PHP를 컴파일하는 방법])',
-       'config-support-ibm_db2' => '* $1는 상용 엔터프라이즈 데이터베이스입니다.([http://www.php.net/manual/en/ibm-db2.installation.php IBM DB2를 지원하여 PHP를 컴파일하는 방법])',
        'config-header-mysql' => 'MySQL 설정',
        'config-header-postgres' => 'PostgreSQL 설정',
        'config-header-sqlite' => 'SQLite 설정',
        'config-header-oracle' => '오라클 설정',
-       'config-header-ibm_db2' => 'IBM DB2 설정',
        'config-invalid-db-type' => '잘못된 데이터베이스 종류',
        'config-missing-db-name' => '"데이터베이스 이름"에 대한 값을 입력해야 합니다',
        'config-missing-db-host' => '"데이터베이스 호스트"에 대한 값을 입력해야 합니다',
@@ -11219,7 +11177,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => '업그레이드가 완료되었습니다.
 
 이제 [$1 위키를 시작]할 수 있습니다.',
-       'config-regenerate' => '<code>LocalSettings.php</code> 다시 만들기 →',
+       'config-regenerate' => 'LocalSettings.php 다시 만들기 →',
        'config-show-table-status' => '<code>SHOW TABLE STATUS</code> 쿼리를 실패했습니다!',
        'config-unknown-collation' => "'''경고:''' 데이터베이스가 인식하지 않는 정렬을 사용하고 있습니다.",
        'config-db-web-account' => '웹 접근을 위한 데이터베이스 계정',
@@ -11249,7 +11207,6 @@ MyISAM 데이터베이스는 InnoDB 데이터베이스보다 더 자주 손실
 MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
 '''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만
 [//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
-       'config-ibm_db2-low-db-pagesize' => "DB2 데이터베이스에 부족한 페이지 크기가 기본 테이블 공간에 있습니다. 페이지 크기는 '''32K''' 이상이어야 합니다.",
        'config-site-name' => '위키 이름:',
        'config-site-name-help' => '브라우저 제목 표시줄과 다른 여러 곳에 나타납니다.',
        'config-site-name-blank' => '사이트 이름을 입력하세요.',
@@ -12179,13 +12136,10 @@ Wann et de Kont net gëtt, a wann den Installatiouns-Kont genuch Rechter huet, g
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
-       'config-support-ibm_db2' => '* $1 ass eng kommerziell Firma fir Datebanken', # Fuzzy
        'config-header-mysql' => 'MySQL-Astellungen',
        'config-header-postgres' => 'PostgreSQL-Astellungen',
        'config-header-sqlite' => 'SQLite-Astellungen',
        'config-header-oracle' => 'Oracle-Astellungen',
-       'config-header-ibm_db2' => 'IBM DB2-Astellungen',
        'config-invalid-db-type' => 'Net valabelen Datebank-Typ',
        'config-missing-db-name' => 'Dir musst en Numm fir de Wäert "Numm vun der Datebank" uginn',
        'config-missing-db-host' => 'Dir musst e Wäert fir "Database host" uginn',
@@ -12200,7 +12154,7 @@ E gëtt fir den Numm vum SQLite Date-Fichier benotzt.',
        'config-upgrade-done-no-regenerate' => "D'Aktualisatioun ass ofgeschloss.
 
 Dir kënnt elo [$1 ufänken Är Wiki ze benotzen]",
-       'config-regenerate' => '<code>LocalSettings.php</code> regeneréieren →',
+       'config-regenerate' => 'LocalSettings.php regeneréieren →',
        'config-db-web-account' => 'Datebankkont fir den Accès iwwer de Web',
        'config-db-web-account-same' => 'Dee selwechte Kont wéi bei der Installatioun benotzen',
        'config-db-web-create' => 'De Kont uleeë wann et e net scho gëtt',
@@ -12790,7 +12744,6 @@ $1
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'МедијаВики ги поддржува следниве системи на бази на податоци:
 
 $1
        'config-support-postgres' => '* $1 е популарен систем на бази на податоци со отворен код кој претставува алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php како да составите PHP со поддршка за PostgreSQL]). Може сè уште да има некои грешки. па затоа не се препорачува за употреба во производна средина.',
        'config-support-sqlite' => '* $1 е лесен систем за бази на податоци кој е многу добро поддржан. ([http://www.php.net/manual/en/pdo.installation.php Како да составите PHP со поддршка за SQLite], користи PDO)',
        'config-support-oracle' => '* $1 е база на податоци на комерцијално претпријатие. ([http://www.php.net/manual/en/oci8.installation.php Како да составите PHP со поддршка за OCI8])',
-       'config-support-ibm_db2' => '* $1 е комерцијална база на податоциза фирми. ([http://www.php.net/manual/en/ibm-db2.installation.php Како да составите PHP со поддршка за IBM DB2])',
        'config-header-mysql' => 'Нагодувања на MySQL',
        'config-header-postgres' => 'Нагодувања на PostgreSQL',
        'config-header-sqlite' => 'Нагодувања на SQLite',
        'config-header-oracle' => 'Нагодувања на Oracle',
-       'config-header-ibm_db2' => 'Нагодувања на IBM DB2',
        'config-invalid-db-type' => 'Неважечки тип на база',
        'config-missing-db-name' => 'Мора да внесете значење за параметарот „Име на базата“',
        'config-missing-db-host' => 'Мора да внесете вредност за „Домаќин на базата на податоци“',
@@ -12867,7 +12818,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => 'Надградбата заврши.
 
 Сега можете да [$1 почнете да го користите викито].',
-       'config-regenerate' => 'Пресоздај <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Пресоздај LocalSettings.php →',
        'config-show-table-status' => 'Барањето <code>SHOW TABLE STATUS</code> не успеа!',
        'config-unknown-collation' => "'''Предупредување:''' Базата корисни непрепознаена упатна споредба.",
        'config-db-web-account' => 'Сметка на базата за мрежен пристап',
@@ -12897,7 +12848,6 @@ chmod a+w $3</pre>',
 Ова е поефикасно отколку  TF-8 режимот на MySQL, и ви овозможува да ја користите целата палета на уникодни знаци.
 
 Во '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори, но нема да ви дозволи да складиратезнаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
-       'config-ibm_db2-low-db-pagesize' => "Вашата база на податоци DB2 има основно-зададен табеларен простор со недоволна големина на страниците. Таа треба да изнесува барем '''32 килобајти'''.",
        'config-site-name' => 'Име на викито:',
        'config-site-name-help' => 'Ова ќе се појавува во заглавната лента на прелистувачот и на разни други места.',
        'config-site-name-blank' => 'Внесете име на мрежното место.',
@@ -13177,7 +13127,7 @@ $1
        'config-connection-error' => '$1.
 
 താഴെ നൽകിയിരിക്കുന്ന ഹോസ്റ്റ്, ഉപയോക്തൃനാമം, രഹസ്യവാക്ക് എന്നിവ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.',
-       'config-regenerate' => '<code>LocalSettings.php</code> പുനഃസൃഷ്ടിക്കുക →',
+       'config-regenerate' => 'LocalSettings.php പുനഃസൃഷ്ടിക്കുക →',
        'config-mysql-engine' => 'സ്റ്റോറേജ് എൻജിൻ:',
        'config-site-name' => 'വിക്കിയുടെ പേര്:',
        'config-site-name-help' => 'ഇത് ബ്രൗസറിന്റെ ടൈറ്റിൽ ബാറിലും മറ്റനേകം ഇടങ്ങളിലും പ്രദർശിപ്പിക്കപ്പെടും.',
@@ -13532,7 +13482,7 @@ $messages['nan'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki的公布列單]',
 );
 
-/** Norwegian Bokmål (norsk (bokmål)‎)
+/** Norwegian Bokmål (norsk bokmål)
  * @author Event
  * @author Nghtwlkr
  * @author 아라
@@ -13763,7 +13713,6 @@ Vurder å plassere databasen et helt annet sted, for eksempel i <code>/var/lib/m
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki støtter følgende databasesystem:
 
 $1
@@ -13773,12 +13722,10 @@ Hvis du ikke ser databasesystemet du prøver å bruke i listen nedenfor, følg i
        'config-support-postgres' => '* $1 er et populært åpen kildekode-databasesystem som er et alternativ til MySQL ([http://www.php.net/manual/en/pgsql.installation.php hvordan kompilere PHP med PostgreSQL-støtte]). Det kan være noen små utestående feil og det anbefales ikke for bruk i et produksjonsmiljø.',
        'config-support-sqlite' => '* $1 er et lettvekts-databasesystem som er veldig godt støttet. ([http://www.php.net/manual/en/pdo.installation.php hvordan kompilere PHP med SQLite-støtte], bruker PDO)',
        'config-support-oracle' => '* $1 er en kommersiell bedriftsdatabase. ([http://www.php.net/manual/en/oci8.installation.php Hvordan kompilere PHP med OCI8-støtte])',
-       'config-support-ibm_db2' => '* $1 er en kommersiell bedriftsdatabase.', # Fuzzy
        'config-header-mysql' => 'MySQL-innstillinger',
        'config-header-postgres' => 'PostgreSQL-innstillinger',
        'config-header-sqlite' => 'SQLite-innstillinger',
        'config-header-oracle' => 'Oracle-innstillinger',
-       'config-header-ibm_db2' => 'IBM DB2-innstillinger',
        'config-invalid-db-type' => 'Ugyldig databasetype',
        'config-missing-db-name' => 'Du må skrive inn en verdi for «Databasenavn»',
        'config-missing-db-host' => 'Du må skrive inn en verdi for «Databasevert»',
@@ -13840,7 +13787,7 @@ Dette er '''ikke anbefalt''' med mindre du har problemer med wikien din.",
        'config-upgrade-done-no-regenerate' => 'Oppgradering fullført.
 
 Du kan nå [$1 begynne å bruke wikien din].',
-       'config-regenerate' => 'Regenerer <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regenerer LocalSettings.php →',
        'config-show-table-status' => '<code>SHOW TABLE STATUS</code> etterspørselen mislyktes!',
        'config-unknown-collation' => "'''Advarsel:''' Databasen bruker en ukjent sortering.",
        'config-db-web-account' => 'Databasekonto for nettilgang',
@@ -13864,7 +13811,6 @@ Dette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spek
 
 I '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,
 men det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
-       'config-ibm_db2-low-db-pagesize' => "DB2-databasen din har et standard tabellområde med en utilstrekkelig pagesize. Pagesize må være '''32K''' eller større.",
        'config-site-name' => 'Navn på wiki:',
        'config-site-name-help' => 'Dette vil vises i tittellinjen i nettleseren og diverse andre steder.',
        'config-site-name-blank' => 'Skriv inn et nettstedsnavn.',
@@ -14268,7 +14214,6 @@ Overweeg om de database op een totaal andere plaats neer te zetten, bijvoorbeeld
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki ondersteunt de volgende databasesystemen:
 
 $1
@@ -14278,12 +14223,10 @@ Als u het databasesysteem dat u wilt gebruiken niet in de lijst terugvindt, volg
        'config-support-postgres' => '* $1 is een populair open source databasesysteem als alternatief voor MySQL ([http://www.php.net/manual/en/pgsql.installation.php hoe PHP gecompileerd moet zijn met ondersteuning voor PostgreSQL]). Het is mogelijk dat er een aantal bekende problemen zijn met MediaWiki in combinatie met deze database en daarom wordt PostgreSQL niet aanbevolen voor een productieomgeving.',
        'config-support-sqlite' => '* $1 is een zeer goed ondersteund lichtgewicht databasesysteem ([http://www.php.net/manual/en/pdo.installation.php hoe PHP gecompileerd zijn met ondersteuning voor SQLite]; gebruikt PDO)',
        'config-support-oracle' => '* $1 is een commerciële data voor grote bedrijven ([http://www.php.net/manual/en/oci8.installation.php PHP compileren met ondersteuning voor OCI8]).',
-       'config-support-ibm_db2' => '* $1 is een commerciële enterprisedatabase. ([http://www.php.net/manual/en/ibm-db2.installation.php Hoe PHP compolieren met ondersteuning voor IBM DB2])',
        'config-header-mysql' => 'MySQL-instellingen',
        'config-header-postgres' => 'PostgreSQL-instellingen',
        'config-header-sqlite' => 'SQLite-instellingen',
        'config-header-oracle' => 'Oracle-instellingen',
-       'config-header-ibm_db2' => 'Instellingen voor IBM DB2',
        'config-invalid-db-type' => 'Ongeldig databasetype',
        'config-missing-db-name' => 'U moet een waarde ingeven voor "Databasenaam"',
        'config-missing-db-host' => 'U moet een waarde invoeren voor "Databaseserver"',
@@ -14347,7 +14290,7 @@ Dit is '''niet aan te raden''' tenzij u problemen hebt met uw wiki.",
        'config-upgrade-done-no-regenerate' => 'Het bijwerken is afgerond.
 
 U kunt nu [$1 uw wiki gebruiken].',
-       'config-regenerate' => '<code>LocalSettings.php</code> opnieuw aanmaken →',
+       'config-regenerate' => 'LocalSettings.php opnieuw aanmaken →',
        'config-show-table-status' => 'Het uitvoeren van <code>SHOW TABLE STATUS</code> is mislukt!',
        'config-unknown-collation' => "'''Waarschuwing:''' de database gebruikt een collatie die niet wordt herkend.",
        'config-db-web-account' => 'Databasegebruiker voor webtoegang',
@@ -14378,7 +14321,6 @@ Dit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledig
 
 In '''UTF-8-modus''' kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.
 Het is dat niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
-       'config-ibm_db2-low-db-pagesize' => "Uw DB2-database heeft een standaard tablespace met een onvoldoende grote pagesize. De pagesize moet tenminste '''32K''' zijn.",
        'config-site-name' => 'Naam van de wiki:',
        'config-site-name-help' => 'Deze naam verschijnt in de titelbalk van browsers en op andere plaatsen.',
        'config-site-name-blank' => 'Geef een naam op voor de site.',
@@ -15201,7 +15143,6 @@ Zawiera ona nieopracowane dane użytkownika (adresy e-mail, zahaszowane hasła)
 Warto rozważyć umieszczenie w bazie danych zupełnie gdzie indziej, na przykład w <code>/var/lib/mediawiki/yourwiki</code> .",
        'config-oracle-def-ts' => 'Domyślna przestrzeń tabel',
        'config-oracle-temp-ts' => 'Przestrzeń tabel tymczasowych',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki może współpracować z następującymi systemami baz danych:
 
 $1
@@ -15211,12 +15152,10 @@ Poniżej wyświetlone są systemy baz danych gotowe do użycia. Jeżeli poniżej
        'config-support-postgres' => '* $1 jest popularnym systemem baz danych, często stosowanym zamiast MySQL  ([http://www.php.net/manual/en/pgsql.installation.php Zobacz, jak skompilować PHP ze wsparciem dla PostgreSQL]). Z powodu możliwości wystąpienia drobnych błędów, nie jest zalecana do wymagających wdrożeń.',
        'config-support-sqlite' => '* $1 jest niewielkim systemem bazy danych, z którym MediaWiki bardzo dobrze współpracuje. ([http://www.php.net/manual/en/pdo.installation.php Jak skompilować PHP ze wsparciem dla SQLite], korzystając z PDO)',
        'config-support-oracle' => '* $1 jest komercyjną profesjonalną bazą danych. ([http://www.php.net/manual/en/oci8.installation.php Jak skompilować PHP ze wsparciem dla OCI8])',
-       'config-support-ibm_db2' => '* $1 jest komercyjną zaawansowaną bazą danych.', # Fuzzy
        'config-header-mysql' => 'Ustawienia MySQL',
        'config-header-postgres' => 'Ustawienia PostgreSQL',
        'config-header-sqlite' => 'Ustawienia SQLite',
        'config-header-oracle' => 'Ustawienia Oracle',
-       'config-header-ibm_db2' => 'ustawienia dla IBM DB2',
        'config-invalid-db-type' => 'Nieprawidłowy typ bazy danych',
        'config-missing-db-name' => 'Należy wpisać wartość w polu „Nazwa bazy danych”',
        'config-missing-db-host' => 'Musisz wpisać wartość w polu „Serwer bazy danych”',
@@ -15278,7 +15217,7 @@ Jest to '''nie zalecane''', chyba że występują problemy z twoją wiki.",
        'config-upgrade-done-no-regenerate' => 'Aktualizacja zakończona.
 
 Możesz wreszcie [$1 zacząć korzystać ze swojej wiki].',
-       'config-regenerate' => 'Ponowne generowanie <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Ponowne generowanie LocalSettings.php →',
        'config-show-table-status' => 'Zapytanie „<code>SHOW TABLE STATUS</code>” nie powiodło się!',
        'config-unknown-collation' => "'''Uwaga''' – bazy danych używa nierozpoznanej metody porównywania.",
        'config-db-web-account' => 'Konto bazy danych dla dostępu przez WWW',
@@ -15308,7 +15247,6 @@ Bazy danych MyISAM mają tendencję do ulegania uszkodzeniom częściej niż baz
 Jest on bardziej wydajny niż tryb UTF-8 w MySQL i pozwala na używanie znaków pełnego zakresu Unicode.
 
 W '''trybie UTF-8''', MySQL będzie znać zestaw znaków w jakim zakodowano dane, można też przedstawić i przekonwertuj je odpowiednio, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
-       'config-ibm_db2-low-db-pagesize' => "Baza danych DB2 posiada domyślny obszar tabel z niewystarczającym rozmiarem strony. Wartość rozmiaru strony musi być równa lub powyżej  '''32 K'''.",
        'config-site-name' => 'Nazwa wiki',
        'config-site-name-help' => 'Ten napis pojawi się w pasku tytułowym przeglądarki oraz w różnych innych miejscach.',
        'config-site-name-blank' => 'Wprowadź nazwę witryny.',
@@ -15745,7 +15683,6 @@ Lòn a comprend ij dat brut ëd l'utent (adrëssa ëd pòsta eletrònica, ciav t
 Ch'a consìdera ëd buté la base ëd dàit tuta antrega da n'àutra part, për esempi an <code>/var/lib/mediawiki/yourwiki</code>.",
        'config-oracle-def-ts' => 'Spassi dla tàula dë stàndard:',
        'config-oracle-temp-ts' => 'Spassi dla tàula temporani:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => "MediaWiki a manten ij sistema ëd base ëd dàit sì-dapress:
 
 $1
@@ -15755,12 +15692,10 @@ S'a vëd pa listà sì-sota ël sistema ëd base ëd dàit ch'a preuva a dovré,
        'config-support-postgres' => "* $1 e l'é un sistema ëd base ëd dàit popolar a sorgiss duverta com alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php com compilé PHP con ël manteniment ëd PostgreSQL]). A peulo ess-ie chèich cit bigat, e a l'é nen arcomandà ëd dovrelo an n'ambient ëd produssion.",
        'config-support-sqlite' => "* $1 e l'é un sistema ëd base ëd dàit leger che a l'é motobin bin mantnù ([http://www.php.net/manual/en/pdo.installation.php com compilé PHP con ël manteniment ëd SQLite], a deuvra PDO)",
        'config-support-oracle' => "* $1 a l'é na base ëd dàit comersial për j'amprèise. ([http://www.php.net/manual/en/oci8.installation.php Com compilé PHP con ël manteniment OCI8])",
-       'config-support-ibm_db2' => "* $1 a l'é na base ëd dàit d'asiendal comersial.", # Fuzzy
        'config-header-mysql' => 'Ampostassion MySQL',
        'config-header-postgres' => 'Ampostassion PostgreSQL',
        'config-header-sqlite' => 'Ampostassion SQLite',
        'config-header-oracle' => 'Ampostassion Oracle',
-       'config-header-ibm_db2' => "Ampostassion d'IBM DB2",
        'config-invalid-db-type' => 'Sòrt ëd ëd base ëd dàit pa bon-a',
        'config-missing-db-name' => 'A dev buteje un valor për "Nòm ëd la base ëd dàit"',
        'config-missing-db-host' => 'A dev buteje un valor për "l\'òspit ëd la base ëd dàit"',
@@ -15820,7 +15755,7 @@ Sòn a l'è '''pa arcomandà''' gavà ch'a rancontra dij problema con soa wiki."
        'config-upgrade-done-no-regenerate' => 'Agiornament complet.
 
 It peule adess [$1 ancaminé a dovré toa wiki].',
-       'config-regenerate' => 'Generé torna <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Generé torna LocalSettings.php →',
        'config-show-table-status' => 'Arcesta <code>SHOW TABLE STATUS</code> falìa!',
        'config-unknown-collation' => "'''Avis:''' La base ëd dàit a deuvra na classificassion pa arconossùa.",
        'config-db-web-account' => "Cont dla base ëd dàit për l'acess a l'aragnà",
@@ -15850,7 +15785,6 @@ La base ëd dàit MyISAM a tira a corompse pi 'd soens che la base ëd dàit Inn
 Sòn a l'é pi eficient che la manera UTF-8 ëd MySQL, e a-j përmët ëd dovré l'ansema antregh ëd caràter Unicode.
 
 An '''manera UTF-8''', MySQL a conossrà an che ansem ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassa pa memorisé ij caràter ëdzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghìstich ëd base].",
-       'config-ibm_db2-low-db-pagesize' => "Soa base ëd dàit DB2 a l'ha në spassi d'ambaronament predefinì con na dimension ëd pàgina insuficent. La dimension ëd pàgina a dev esse '''32K''' o pi gròssa.",
        'config-site-name' => 'Nòm ëd la wiki:',
        'config-site-name-help' => "Sòn a comparirà ant la bara dël tìtol dël navigador e an vàire d'àutri pòst.",
        'config-site-name-blank' => "Ch'a buta un nòm ëd sit.",
@@ -16367,7 +16301,6 @@ Considere colocar a base de dados num local completamente diferente, como, por e
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'O MediaWiki suporta as seguintes plataformas de base de dados:
 
 $1
@@ -16377,12 +16310,10 @@ Se a plataforma que pretende usar não está listada abaixo, siga as instruçõe
        'config-support-postgres' => '* $1 é uma plataforma de base de dados comum, de fonte aberta, alternativa ao MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP com suporte PostgreSQL]). Poderão existir alguns pequenos problemas e não é recomendado o seu uso em ambientes de exploração/produção.',
        'config-support-sqlite' => '* $1 é uma plataforma de base de dados ligeira muito bem suportada. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP com suporte SQLite], usa PDO)',
        'config-support-oracle' => '* $1 é uma base de dados de uma empresa comercial. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
-       'config-support-ibm_db2' => '* $1 é uma base de dados empresarial.', # Fuzzy
        'config-header-mysql' => 'Definições MySQL',
        'config-header-postgres' => 'Definições PostgreSQL',
        'config-header-sqlite' => 'Definições SQLite',
        'config-header-oracle' => 'Definições Oracle',
-       'config-header-ibm_db2' => 'Configurações da IBM DB2',
        'config-invalid-db-type' => 'O tipo de base de dados é inválido',
        'config-missing-db-name' => 'Tem de introduzir um valor para "Nome da base de dados"',
        'config-missing-db-host' => 'Tem de introduzir um valor para "Servidor da base de dados"',
@@ -16444,7 +16375,7 @@ Esta operação '''não é recomendada''' a menos que esteja a ter problemas com
        'config-upgrade-done-no-regenerate' => 'Actualização terminada.
 
 Agora pode [$1 começar a usar a sua wiki].',
-       'config-regenerate' => 'Regenerar o <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regenerar o LocalSettings.php →',
        'config-show-table-status' => 'A consulta <code>SHOW TABLE STATUS</code> falhou!',
        'config-unknown-collation' => "'''Aviso:''' A base de dados está a utilizar uma colação ''(collation)'' desconhecida.",
        'config-db-web-account' => 'Conta na base de dados para acesso pela internet',
@@ -16475,7 +16406,6 @@ Isto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados t
 
 No modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,
 mas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
-       'config-ibm_db2-low-db-pagesize' => "A sua base de dados DB2 tem um tablespace padrão com um pagesize insuficiente. O pagesize tem de ser '''32K'' ou maior.",
        'config-site-name' => 'Nome da wiki:',
        'config-site-name-help' => 'Este nome aparecerá no título da janela do seu browser e em vários outros sítios.',
        'config-site-name-blank' => 'Introduza o nome do site.',
@@ -16882,12 +16812,10 @@ Totuși, MediaWiki necesită PHP $2 sau mai nou.',
        'config-sqlite-dir' => 'Director de date SQLite:',
        'config-oracle-def-ts' => 'Spațiu de stocare („tablespace”) implicit:',
        'config-oracle-temp-ts' => 'Spațiu de stocare („tablespace”) temporar:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-header-mysql' => 'Setările MySQL',
        'config-header-postgres' => 'Setări PostgreSQL',
        'config-header-sqlite' => 'Setări SQLite',
        'config-header-oracle' => 'Setări Oracle',
-       'config-header-ibm_db2' => 'Setări IBM DB2',
        'config-invalid-db-type' => 'Tip de bază de date incorect',
        'config-missing-db-name' => 'Trebuie să introduci o valoare pentru „Numele bazei de date”',
        'config-connection-error' => '$1.
@@ -16896,7 +16824,7 @@ Verificați gazda, numele de utilizator și parola și reîncercați.',
        'config-upgrade-done-no-regenerate' => 'Actualizare completă.
 
 Acum puteți [$1 începe să vă folosiți wikiul].',
-       'config-regenerate' => 'Regenerare <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Regenerare LocalSettings.php →',
        'config-unknown-collation' => 'AVERTISMENT: Baza de date folosește o colaționare nerecunoscută.',
        'config-db-web-account' => 'Contul bazei de date pentru accesul web.',
        'config-db-web-create' => 'Creați contul dacă nu există deja',
@@ -16994,6 +16922,8 @@ $messages['roa-tara'] = array(
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
+       'config-mysql-innodb' => 'InnoDB',
+       'config-mysql-myisam' => 'MyISAM',
        'config-admin-email' => 'Indirizze e-mail:',
        'config-install-step-done' => 'fatte',
        'config-install-step-failed' => 'fallite',
@@ -17251,7 +17181,6 @@ MediaWiki требует поддержки UTF-8 для корректной р
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki поддерживает следующие СУБД:
 
 $1
        'config-support-postgres' => '* $1 — популярная открытая СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php инструкция, как собрать PHP с поддержкой PostgreSQL]). Могут встречаться небольшие неисправленные ошибки, не рекомендуется для использования в рабочей системе.',
        'config-support-sqlite' => '* $1 — это легковесная система баз данных, имеющая очень хорошую поддержку. ([http://www.php.net/manual/en/pdo.installation.php инструкция, как собрать PHP с поддержкой SQLite], работающей посредством PDO)',
        'config-support-oracle' => '* $1 — это коммерческая база данных масштаба предприятия. ([http://www.php.net/manual/en/oci8.installation.php Как собрать PHP с поддержкой OCI8])',
-       'config-support-ibm_db2' => '$1 — коммерческая база данных масштаба предприятия.', # Fuzzy
        'config-header-mysql' => 'Настройки MySQL',
        'config-header-postgres' => 'Настройки PostgreSQL',
        'config-header-sqlite' => 'Настройки SQLite',
        'config-header-oracle' => 'Настройки Oracle',
-       'config-header-ibm_db2' => 'Настройки IBM DB2',
        'config-invalid-db-type' => 'Неверный тип базы данных',
        'config-missing-db-name' => 'Вы должны ввести значение параметра «Имя базы данных»',
        'config-missing-db-host' => 'Необходимо ввести значение параметра «Сервер базы данных»',
@@ -17328,7 +17255,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => 'Обновление завершено.
 
 Теперь вы можете [$1 начать работу с вики].',
-       'config-regenerate' => 'Создать <code>LocalSettings.php</code> заново →',
+       'config-regenerate' => 'Создать LocalSettings.php заново →',
        'config-show-table-status' => 'Запрос «<code>SHOW TABLE STATUS</code>» не выполнен!',
        'config-unknown-collation' => "'''Внимание:''' База данных использует нераспознанные правила сортировки.",
        'config-db-web-account' => 'Учётная запись для доступа к базе данных из веб-сервера',
@@ -17357,7 +17284,6 @@ chmod a+w $3</pre>',
 Это более эффективно, чем ''UTF-8 режим'' MySQL, и позволяет использовать полный набор символов Unicode.
 
 В '''режиме UTF-8''' MySQL будет знать в какой кодировке находятся Ваши данные и может отображать и преобразовывать их соответствующим образом, но это не позволит вам хранить символы выше [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базовой Многоязыковой Плоскости].",
-       'config-ibm_db2-low-db-pagesize' => "В вашей базе данных DB2 по умолчанию задано табличное пространство с недостаточным размером страницы. Размер страницы должен быть не менее '''32K'''.",
        'config-site-name' => 'Название вики:',
        'config-site-name-help' => 'Название будет отображаться в заголовке окна браузера и в некоторых других местах вики.',
        'config-site-name-blank' => 'Введите название сайта.',
@@ -17730,17 +17656,15 @@ $messages['si'] = array(
        'config-sqlite-dir' => 'SQLite දත්ත නාමවලිය:',
        'config-oracle-def-ts' => 'සාමාන්‍ය වගු අවකාශය:',
        'config-oracle-temp-ts' => 'තාවකාලික වගු අවකාශය:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-header-mysql' => 'MySQL සැකසුම්',
        'config-header-postgres' => 'PostgreSQL සැකසුම්',
        'config-header-sqlite' => 'SQLite සැකසුම්',
        'config-header-oracle' => 'ඔරකල් සැකසුම්',
-       'config-header-ibm_db2' => 'IBM DB2 සැකසුම්',
        'config-invalid-db-type' => 'වලංගු නොවන දත්ත සංචිත වර්ගය',
        'config-missing-db-name' => '"දත්ත සංචිත නාමය" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
        'config-missing-db-host' => '"දත්ත සංචිත ධාරකය" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
        'config-missing-db-server-oracle' => '"දත්ත සංචිත TNS" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
-       'config-regenerate' => 'නැවත ජනිත කරන්න <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'නැවත ජනිත කරන්න LocalSettings.php →',
        'config-db-web-account' => 'ජාල ප්‍රවේශනය සඳහා දත්ත සංචිත ගිණුම',
        'config-mysql-engine' => 'ආචයන එන්ජිම:',
        'config-mysql-innodb' => 'InnoDB',
@@ -17938,7 +17862,6 @@ Vendar pa MediaWiki zahteva PHP $2 ali višji.',
        'config-db-schema-help' => 'Ta shema je po navadi v redu.
 Spremenite jo samo, če veste, da jo morate.',
        'config-sqlite-dir' => 'Mapa podatkov SQLite:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki podpira naslednje sisteme zbirk podatkov:
 
 $1
@@ -17948,7 +17871,6 @@ $1
        'config-header-postgres' => 'Nastavitve PostgreSQL',
        'config-header-sqlite' => 'Nastavitve SQLite',
        'config-header-oracle' => 'Nastavitve Oracle',
-       'config-header-ibm_db2' => 'Nastavitve IBM DB2',
        'config-invalid-db-type' => 'Neveljavna vrsta zbirke podatkov',
        'config-missing-db-name' => 'Vnesti morate vrednost za »Ime zbirke podatkov«',
        'config-missing-db-host' => 'Vnesti morate vrednost za »Gostitelj zbirke podatkov«',
@@ -17971,7 +17893,7 @@ Preverite mapo podatkov in ime zbirke podatkov spodaj ter poskusite znova.',
        'config-upgrade-done-no-regenerate' => 'Nadgradnja je končana.
 
 Sedaj lahko [$1 začnete uporabljati vaš wiki].',
-       'config-regenerate' => 'Ponovno ustvari <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Ponovno ustvari LocalSettings.php →',
        'config-show-table-status' => 'Poizvedba <code>SHOW TABLE STATUS</code> ni uspela!',
        'config-unknown-collation' => "'''Opozorilo:''' Zbirke podatkov uporablja neprepoznano razvrščanje znakov.",
        'config-db-web-account' => 'Račun zbirke podatkov za spletni dostop',
@@ -18910,7 +18832,6 @@ Isaalang-alang ang paglalagay na magkakasama ang kalipunan ng dato sa ibang luga
        'config-type-postgres' => 'PostgreSQL',
        'config-type-sqlite' => 'SQLite',
        'config-type-oracle' => 'Oracle',
-       'config-type-ibm_db2' => 'DB2 ng IBM',
        'config-support-info' => 'Sinusuportahan ng MediaWiki ang sumusunod na mga sistema ng kalipunan ng dato:
 
 $1
@@ -18920,12 +18841,10 @@ Kung hindi mo makita ang sistema ng kalipunan ng dato na sinusubukan mong gamiti
        'config-support-postgres' => '* Ang $1 ay isang bantog na sistema ng kalipunan ng dato na bukas ang pinagmulan na panghalili sa MySQL ([http://www.php.net/manual/en/pgsql.installation.php paano magtipon ng PHP na mayroong suporta ng PostgreSQL]). Maaaring mayroong ilang hindi pangunahing mga surot na natitira pa, at hindi iminumungkahi para gamitin sa loob ng isang kapaligiran ng produksiyon.',
        'config-support-sqlite' => 'Ang $1 ay isang magaan ang timbang na sistema ng kalipunan ng dato na sinusuportahan nang napaka mainam. ([http://www.php.net/manual/en/pdo.installation.php Paano magtipon ng PHP na mayroong suporta ng SQLite], gumagamit ng PDO)',
        'config-support-oracle' => '* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal. ([http://www.php.net/manual/en/oci8.installation.php Paano magtipunan ng PHP na mayroong suporta ng OCI8])',
-       'config-support-ibm_db2' => '* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal.', # Fuzzy
        'config-header-mysql' => 'Mga katakdaan ng MySQL',
        'config-header-postgres' => 'Mga katakdaan ng PostgreSQL',
        'config-header-sqlite' => 'Mga katakdaan ng SQLite',
        'config-header-oracle' => 'Mga katakdaan ng Oracle',
-       'config-header-ibm_db2' => 'Mga katakdaan ng DB2 ng IBM',
        'config-invalid-db-type' => 'Hindi tanggap na uri ng kalipunan ng dato',
        'config-missing-db-name' => 'Dapat kang magpasok ng isang halaga para sa "Pangalan ng kalipunan ng dato"',
        'config-missing-db-host' => 'Dapat kang magpasok ng isang halaga para sa "Tagapagpasinaya ng kalipunan ng dato"',
@@ -18987,7 +18906,7 @@ Kung nais mong muling likhain ang iyong talaksang <code>LocalSettings.php</code>
        'config-upgrade-done-no-regenerate' => 'Buo na ang pagsasapanahon.
 
 Maaari ka na ngayong [$1 magsimula sa paggamit ng wiki mo].',
-       'config-regenerate' => 'Muling likhain ang <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Muling likhain ang LocalSettings.php →',
        'config-show-table-status' => 'Nabigo ang pagtatanong na IPAKITA ANG KALAGAYAN NG TALAHANAYAN!', # Fuzzy
        'config-unknown-collation' => "'''Babala:''' Ang kalipunan ng dato ay gumagagamit ng hindi nakikilalang pag-iipon.",
        'config-db-web-account' => 'Akawnt ng kalipunan ng dato para sa pagpunta sa web',
@@ -19017,7 +18936,6 @@ May gawi ang mga kalipunan ng dato ng MyISAM na masira nang mas madalas kaysa sa
 Mas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo upang magamit ang buong kasaklawan ng mga panitik ng Unikodigo.
 
 Sa ''gawi na UTF-8''', malalaman ng MySQL kung sa anong pangkat ng panitik nakapaloob ang iyong dato, at angkop na makakapagharap at makapapagpalit nito, subalit hindi ka nito papayagan na mag-imbak ng mga panitik na nasa itaas ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Tapyas na Pangmaramihang Wika.",
-       'config-ibm_db2-low-db-pagesize' => "Ang kalipunan mo ng dato na DB2 ay mayroong isang likas na nakatakdang puwang ng talahanayan na mayroong hindi sapat na sukat ng pahina. Ang sukat ng pahina ay dapat na maging '''32K''' o mas mataas.",
        'config-site-name' => 'Pangalan ng wiki:',
        'config-site-name-help' => "Lilitaw ito sa bareta ng pamagat ng pantingin-tingin at sa samu't saring ibang mga lugar.",
        'config-site-name-blank' => 'Magpasok ng isang pangalan ng sityo.',
@@ -19522,7 +19440,6 @@ MediaWiki вимагає підтримку UTF-8 для коректної ро
 За можливості розташуйте базу даних десь окремо, наприклад в <code>/var/lib/mediawiki/yourwiki</code>.",
        'config-oracle-def-ts' => 'Простір таблиць за замовчуванням:',
        'config-oracle-temp-ts' => 'Тимчасовий простір таблиць:',
-       'config-type-ibm_db2' => 'IBM DB2',
        'config-support-info' => 'MediaWiki підтримує таки системи баз даних:
 
 $1
        'config-support-postgres' => '* $1 — популярна відкрита СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php як зібрати PHP з допомогою PostgreSQL]). Можуть зустрічатись деякі невеликі невиправлені помилки, не рекомендується використовувати у робочій системі.',
        'config-support-sqlite' => '* $1 — легка система баз даних, яка дуже добре підтримується. ([http://www.php.net/manual/en/pdo.installation.php Як зібрати PHP з допомогою SQLite], що використовує PDO)',
        'config-support-oracle' => '* $1 — комерційна база даних масштабу підприємства. ([http://www.php.net/manual/en/oci8.installation.php Як зібрати PHP з підтримкою OCI8])',
-       'config-support-ibm_db2' => '* $1 — комерційна база даних масштабу підприємства.', # Fuzzy
        'config-header-mysql' => 'Налаштування MySQL',
        'config-header-postgres' => 'Налаштування PostgreSQL',
        'config-header-sqlite' => 'Налаштування SQLite',
        'config-header-oracle' => 'Налаштування Oracle',
-       'config-header-ibm_db2' => 'Налаштування IBM DB2',
        'config-invalid-db-type' => 'Невірний тип бази даних',
        'config-missing-db-name' => "Ви повинні ввести значення параметру «Ім'я бази даних»",
        'config-missing-db-host' => 'Ви повинні ввести значення параметру «Хост бази даних»',
@@ -19599,7 +19514,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => 'Оновлення завершено.
 
 Ви можете зараз [$1 починати використовувати свою вікі].',
-       'config-regenerate' => 'Повторно згенерувати <code>LocalSettings.php</code> →',
+       'config-regenerate' => 'Повторно згенерувати LocalSettings.php →',
        'config-show-table-status' => 'Запит <code>SHOW TABLE STATUS</code> не виконано!',
        'config-unknown-collation' => "'''Увага:''' База даних використовує нерозпізнане сортування.",
        'config-db-web-account' => 'Обліковий запис бази даних для інтернет-доступу',
@@ -19629,7 +19544,6 @@ chmod a+w $3</pre>',
 Це більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.
 
 У '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином, але не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-ibm_db2-low-db-pagesize' => "У Вашій базі даних DB2 за замовчуванням заданий табличний простір з недостатнім розміром сторінки. Розмір сторінки має бути '''32K''' і більше.",
        'config-site-name' => 'Назва вікі:',
        'config-site-name-help' => 'Це буде відображатись у заголовку вікна браузера та у деяких інших місцях.',
        'config-site-name-blank' => 'Введіть назву сайту.',
@@ -20332,7 +20246,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => '升级完成。
 
 现在您可以[$1 开始使用您的wiki]了。',
-       'config-regenerate' => '重新生成<code>LocalSettings.php</code> →',
+       'config-regenerate' => '重新生成LocalSettings.php →',
        'config-show-table-status' => '<code>SHOW TABLE STATUS</code>语句执行失败!',
        'config-unknown-collation' => "'''警告:'''数据库使用了无法识别的整理。",
        'config-db-web-account' => '供网页访问使用的数据库帐号',
@@ -20772,7 +20686,7 @@ chmod a+w $3</pre>',
        'config-upgrade-done-no-regenerate' => '升級完成。
 
 現在您可以[$1 開始使用您的wiki]了。',
-       'config-regenerate' => '重新生成<code>LocalSettings.php</code> →',
+       'config-regenerate' => '重新生成LocalSettings.php →',
        'config-show-table-status' => '查詢<code>SHOW TABLE STATUS</code>失敗!',
        'config-unknown-collation' => "'''警告:'''數據庫使用了無法識別的整理。",
        'config-db-web-account' => '供網頁訪問使用的數據庫帳號',
index 8aee15c..daac558 100644 (file)
@@ -997,7 +997,7 @@ abstract class Installer {
                }
 
                # Try the current value of LANG.
-               if ( isset( $candidatesByLocale[ getenv( 'LANG' ) ] ) ) {
+               if ( isset( $candidatesByLocale[getenv( 'LANG' )] ) ) {
                        $this->setVar( 'wgShellLocale', getenv( 'LANG' ) );
                        return true;
                }
@@ -1408,10 +1408,10 @@ abstract class Installer {
                // then adding any callbacks that wanted to attach after a given step
                foreach( $coreInstallSteps as $step ) {
                        $this->installSteps[] = $step;
-                       if( isset( $this->extraInstallSteps[ $step['name'] ] ) ) {
+                       if( isset( $this->extraInstallSteps[$step['name']] ) ) {
                                $this->installSteps = array_merge(
                                        $this->installSteps,
-                                       $this->extraInstallSteps[ $step['name'] ]
+                                       $this->extraInstallSteps[$step['name']]
                                );
                        }
                }
@@ -1598,7 +1598,7 @@ abstract class Installer {
                $status = Status::newGood();
                try {
                        $page = WikiPage::factory( Title::newMainPage() );
-                       $content = new WikitextContent (
+                       $content = new WikitextContent(
                                wfMessage( 'mainpagetext' )->inContentLanguage()->text() . "\n\n" .
                                wfMessage( 'mainpagedocfooter' )->inContentLanguage()->text()
                        );
@@ -1608,7 +1608,7 @@ abstract class Installer {
                                        EDIT_NEW,
                                        false,
                                        User::newFromName( 'MediaWiki default' ) );
-               } catch (MWException $e) {
+               } catch ( MWException $e ) {
                        //using raw, because $wgShowExceptionDetails can not be set yet
                        $status->fatal( 'config-install-mainpage-failed', $e->getMessage() );
                }
index 7cb3779..aa7fc97 100644 (file)
@@ -227,7 +227,7 @@ class LocalSettingsGenerator {
                        case 'db':
                        case 'memcached':
                        case 'accel':
-                               $cacheType = 'CACHE_' . strtoupper( $this->values['wgMainCacheType']);
+                               $cacheType = 'CACHE_' . strtoupper( $this->values['wgMainCacheType'] );
                                break;
                        case 'none':
                        default:
index 06821f8..72514f2 100644 (file)
@@ -86,8 +86,7 @@ class MysqlInstaller extends DatabaseInstaller {
         * @return string
         */
        public function getConnectForm() {
-               return
-                       $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
+               return $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
                        Html::openElement( 'fieldset' ) .
                        Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
                        $this->getTextBox( 'wgDBname', 'config-db-name', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-name-help' ) ) .
index e853889..632015f 100644 (file)
@@ -59,8 +59,7 @@ class OracleInstaller extends DatabaseInstaller {
                if ( $this->getVar( 'wgDBserver' ) == 'localhost' ) {
                        $this->parent->setVar( 'wgDBserver', '' );
                }
-               return
-                       $this->getTextBox( 'wgDBserver', 'config-db-host-oracle', array(), $this->parent->getHelpBox( 'config-db-host-oracle-help' ) ) .
+               return $this->getTextBox( 'wgDBserver', 'config-db-host-oracle', array(), $this->parent->getHelpBox( 'config-db-host-oracle-help' ) ) .
                        Html::openElement( 'fieldset' ) .
                        Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
                        $this->getTextBox( 'wgDBprefix', 'config-db-prefix' ) .
index 4e5ae8c..e7ae8d5 100644 (file)
@@ -56,8 +56,7 @@ class PostgresInstaller extends DatabaseInstaller {
        }
 
        function getConnectForm() {
-               return
-                       $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
+               return $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
                        $this->getTextBox( 'wgDBport', 'config-db-port' ) .
                        Html::openElement( 'fieldset' ) .
                        Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
@@ -137,7 +136,8 @@ class PostgresInstaller extends DatabaseInstaller {
                                $this->getVar( 'wgDBserver' ),
                                $user,
                                $password,
-                               $dbName);
+                               $dbName
+                       );
                        $status->value = $db;
                } catch ( DBConnectionError $e ) {
                        $status->fatal( 'config-connection-error', $e->getMessage() );
index 0a4b5e6..17285c5 100644 (file)
@@ -613,7 +613,7 @@ END;
                }
        }
 
-       protected function changeNullableField( $table, $field, $null) {
+       protected function changeNullableField( $table, $field, $null ) {
                $fi = $this->db->fieldInfo( $table, $field );
                if ( is_null( $fi ) ) {
                        $this->output( "...ERROR: expected column $table.$field to exist\n" );
index 35d649b..ac66cd9 100644 (file)
@@ -353,7 +353,7 @@ class WebInstaller extends Installer {
        public function getFingerprint() {
                // Get the base URL of the installation
                $url = $this->request->getFullRequestURL();
-               if ( preg_match( '!^(.*\?)!', $url, $m) ) {
+               if ( preg_match( '!^(.*\?)!', $url, $m ) ) {
                        // Trim query string
                        $url = $m[1];
                }
@@ -724,8 +724,7 @@ class WebInstaller extends Installer {
                        $attributes['for'] = $forId;
                }
 
-               return
-                       "<div class=\"config-block\">\n" .
+               return "<div class=\"config-block\">\n" .
                        "  <div class=\"config-block-label\">\n" .
                        Xml::tags( 'label',
                                $attributes,
@@ -767,8 +766,7 @@ class WebInstaller extends Installer {
                if ( !isset( $params['help'] ) ) {
                        $params['help'] = "";
                }
-               return
-                       $this->label(
+               return $this->label(
                                $params['label'],
                                $params['controlName'],
                                Xml::input(
@@ -814,8 +812,7 @@ class WebInstaller extends Installer {
                if ( !isset( $params['help'] ) ) {
                        $params['help'] = "";
                }
-               return
-                       $this->label(
+               return $this->label(
                                $params['label'],
                                $params['controlName'],
                                Xml::textarea(
@@ -898,8 +895,7 @@ class WebInstaller extends Installer {
                        $labelText = $this->parse( wfMessage( $params['label'] )->text() );
                }
 
-               return
-                       "<div class=\"config-input-check\">\n" .
+               return "<div class=\"config-input-check\">\n" .
                        $params['help'] .
                        "<label>\n" .
                        Xml::check(
index 9119c12..305c012 100644 (file)
@@ -1051,8 +1051,7 @@ class WebInstaller_Options extends WebInstallerPage {
                }
                $wrapperStyle = ($this->getVar( '_LicenseCode' ) == 'cc-choose') ? '' : 'display: none';
 
-               return
-                       "<div class=\"config-cc-wrapper\" id=\"config-cc-wrapper\" style=\"$wrapperStyle\">\n" .
+               return "<div class=\"config-cc-wrapper\" id=\"config-cc-wrapper\" style=\"$wrapperStyle\">\n" .
                        Html::element( 'iframe', $iframeAttribs, '', false /* not short */ ) .
                        "</div>\n";
        }
@@ -1062,8 +1061,7 @@ class WebInstaller_Options extends WebInstallerPage {
                // If you change this height, also change it in config.css
                $expandJs = str_replace( '$1', '54em', $js );
                $reduceJs = str_replace( '$1', '70px', $js );
-               return
-                       '<p>'.
+               return '<p>'.
                        Html::element( 'img', array( 'src' => $this->getVar( 'wgRightsIcon' ) ) ) .
                        '&#160;&#160;' .
                        htmlspecialchars( $this->getVar( 'wgRightsText' ) ) .
@@ -1242,7 +1240,7 @@ class WebInstaller_Complete extends WebInstallerPage {
                        // JS appears the only method that works consistently with IE7+
                        $this->addHtml( "\n<script type=\"" . $GLOBALS['wgJsMimeType'] .
                                '">jQuery( document ).ready( function() { document.location=' .
-                               Xml::encodeJsVar( $lsUrl) . "; } );</script>\n" );
+                               Xml::encodeJsVar( $lsUrl ) . "; } );</script>\n" );
                } else {
                        $this->parent->request->response()->header( "Refresh: 0;url=$lsUrl" );
                }
index 46d1b95..e1bacf3 100644 (file)
@@ -65,8 +65,8 @@ class BmpHandler extends BitmapHandler {
                fclose( $f );
 
                // Extract binary form of width and height from the header
-               $w = substr( $header, 18, 4);
-               $h = substr( $header, 22, 4);
+               $w = substr( $header, 18, 4 );
+               $h = substr( $header, 22, 4 );
 
                // Convert the unsigned long 32 bits (little endian):
                try {
index e2dc68b..1d8337d 100644 (file)
@@ -765,16 +765,16 @@ class BitmapHandler extends ImageHandler {
        public function rotate( $file, $params ) {
                global $wgImageMagickConvertCommand;
 
-               $rotation = ( $params[ 'rotation' ] + $this->getRotation( $file ) ) % 360;
+               $rotation = ( $params['rotation'] + $this->getRotation( $file ) ) % 360;
                $scene = false;
 
                $scaler = self::getScalerType( null, false );
                switch ( $scaler ) {
                        case 'im':
                                $cmd = wfEscapeShellArg( $wgImageMagickConvertCommand ) . " " .
-                                       wfEscapeShellArg( $this->escapeMagickInput( $params[ 'srcPath' ], $scene ) ) .
+                                       wfEscapeShellArg( $this->escapeMagickInput( $params['srcPath'], $scene ) ) .
                                        " -rotate -$rotation " .
-                                       wfEscapeShellArg( $this->escapeMagickOutput( $params[ 'dstPath' ] ) ) . " 2>&1";
+                                       wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) ) . " 2>&1";
                                wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
                                wfProfileIn( 'convert' );
                                $retval = 0;
index 4698966..0831e68 100644 (file)
@@ -263,7 +263,7 @@ class DjVuImage {
                        $retval = '';
                        $txt = wfShellExec( $cmd, $retval, array(), array( 'memory' => self::DJVUTXT_MEMORY_LIMIT ) );
                        wfProfileOut( 'djvutxt' );
-                       if( $retval == 0) {
+                       if( $retval == 0 ) {
                                # Strip some control characters
                                $txt = preg_replace( "/[\013\035\037]/", "", $txt );
                                $reg = <<<EOR
index 1671ab2..98c423f 100644 (file)
@@ -51,11 +51,11 @@ class ExifBitmapHandler extends BitmapHandler {
 
                // Treat Software as a special case because in can contain
                // an array of (SoftwareName, Version).
-               if (isset( $metadata['Software'] )
+               if ( isset( $metadata['Software'] )
                        && is_array( $metadata['Software'] )
-                       && is_array( $metadata['Software'][0])
+                       && is_array( $metadata['Software'][0] )
                        && isset( $metadata['Software'][0][0] )
-                       && isset( $metadata['Software'][0][1])
+                       && isset( $metadata['Software'][0][1] )
                ) {
                        $metadata['Software'] = $metadata['Software'][0][0] . ' (Version '
                                . $metadata['Software'][0][1] . ')';
index 1a7d772..5bcb484 100644 (file)
@@ -79,7 +79,7 @@ class FormatMetadata {
                        }
 
                        //This is done differently as the tag is an array.
-                       if ( $tag == 'GPSTimeStamp' && count( $vals ) === 3) {
+                       if ( $tag == 'GPSTimeStamp' && count( $vals ) === 3 ) {
                                //hour min sec array
 
                                $h = explode( '/', $vals[0] );
@@ -682,7 +682,7 @@ class FormatMetadata {
                                                $urgency = 'high';
                                        } elseif ( $val == 5 ) {
                                                $urgency = 'normal';
-                                       } elseif ( $val <= 8 && $val > 5) {
+                                       } elseif ( $val <= 8 && $val > 5 ) {
                                                $urgency = 'low';
                                        }
 
index 419afee..ad9919b 100644 (file)
@@ -160,7 +160,7 @@ abstract class ImageHandler extends MediaHandler {
                $width = intval( $width );
 
                # Sanity check $width
-               if( $width <= 0) {
+               if( $width <= 0 ) {
                        wfDebug( __METHOD__ . ": Invalid destination width: $width\n" );
                        return false;
                }
index 3551943..cb0fbb3 100644 (file)
@@ -69,18 +69,18 @@ class JpegHandler extends ExifBitmapHandler {
        public function rotate( $file, $params ) {
                global $wgJpegTran;
 
-               $rotation = ( $params[ 'rotation' ] + $this->getRotation( $file ) ) % 360;
+               $rotation = ( $params['rotation'] + $this->getRotation( $file ) ) % 360;
 
-               if( $wgJpegTran && is_file( $wgJpegTran ) ){
+               if( $wgJpegTran && is_file( $wgJpegTran ) ) {
                        $cmd = wfEscapeShellArg( $wgJpegTran ) .
                                " -rotate " . wfEscapeShellArg( $rotation ) .
-                               " -outfile " . wfEscapeShellArg( $params[ 'dstPath' ] ) .
-                               " " . wfEscapeShellArg( $params[ 'srcPath' ] ) .  " 2>&1";
-                               wfDebug( __METHOD__ . ": running jpgtran: $cmd\n" );
-                               wfProfileIn( 'jpegtran' );
-                               $retval = 0;
-                               $err = wfShellExec( $cmd, $retval, $env );
-                               wfProfileOut( 'jpegtran' );
+                               " -outfile " . wfEscapeShellArg( $params['dstPath'] ) .
+                               " " . wfEscapeShellArg( $params['srcPath'] ) . " 2>&1";
+                       wfDebug( __METHOD__ . ": running jpgtran: $cmd\n" );
+                       wfProfileIn( 'jpegtran' );
+                       $retval = 0;
+                       $err = wfShellExec( $cmd, $retval, $env );
+                       wfProfileOut( 'jpegtran' );
                        if ( $retval !== 0 ) {
                                $this->logErrorForExternalProcess( $retval, $err, $cmd );
                                return new MediaTransformError( 'thumbnail_error', 0, 0, $err );
index b36bfa9..b67f3d3 100644 (file)
@@ -136,7 +136,7 @@ abstract class MediaHandler {
        static function getMetadataVersion() {
                $version = Array( '2' ); // core metadata version
                wfRunHooks( 'GetMetadataVersion', Array( &$version ) );
-               return implode( ';', $version);
+               return implode( ';', $version );
        }
 
        /**
index 87f705c..e65a558 100644 (file)
@@ -214,9 +214,9 @@ class PNGMetadataExtractor {
                                                        continue;
                                                }
                                        }
-                                       $finalKeyword = self::$text_chunks[ $items[1] ];
-                                       $text[ $finalKeyword ][ $items[3] ] = $items[5];
-                                       $text[ $finalKeyword ]['_type'] = 'lang';
+                                       $finalKeyword = self::$text_chunks[$items[1]];
+                                       $text[$finalKeyword][$items[3]] = $items[5];
+                                       $text[$finalKeyword]['_type'] = 'lang';
 
                                } else {
                                        // Error reading iTXt chunk
@@ -251,9 +251,9 @@ class PNGMetadataExtractor {
                                        throw new Exception( __METHOD__ . ": Read error (error with iconv)" );
                                }
 
-                               $finalKeyword = self::$text_chunks[ $keyword ];
-                               $text[ $finalKeyword ][ 'x-default' ] = $content;
-                               $text[ $finalKeyword ]['_type'] = 'lang';
+                               $finalKeyword = self::$text_chunks[$keyword];
+                               $text[$finalKeyword]['x-default'] = $content;
+                               $text[$finalKeyword]['_type'] = 'lang';
 
                        } elseif ( $chunk_type == 'zTXt' ) {
                                if ( function_exists( 'gzuncompress' ) ) {
@@ -303,9 +303,9 @@ class PNGMetadataExtractor {
                                                throw new Exception( __METHOD__ . ": Read error (error with iconv)" );
                                        }
 
-                                       $finalKeyword = self::$text_chunks[ $keyword ];
-                                       $text[ $finalKeyword ][ 'x-default' ] = $content;
-                                       $text[ $finalKeyword ]['_type'] = 'lang';
+                                       $finalKeyword = self::$text_chunks[$keyword];
+                                       $text[$finalKeyword]['x-default'] = $content;
+                                       $text[$finalKeyword]['_type'] = 'lang';
 
                                } else {
                                        wfDebug( __METHOD__ . " Cannot decompress zTXt chunk due to lack of zlib. Skipping." );
index e07fd86..f21d6b0 100644 (file)
@@ -179,7 +179,7 @@ class SVGReader {
         * @param string $metafield that we will fill with the result
         */
        private function readField( $name, $metafield=null ) {
-               $this->debug ( "Read field $metafield" );
+               $this->debug( "Read field $metafield" );
                if( !$metafield || $this->reader->nodeType != XmlReader::ELEMENT ) {
                        return;
                }
@@ -201,7 +201,7 @@ class SVGReader {
         * @throws MWException
         */
        private function readXml( $metafield=null ) {
-               $this->debug ( "Read top level metadata" );
+               $this->debug( "Read top level metadata" );
                if( !$metafield || $this->reader->nodeType != XmlReader::ELEMENT ) {
                        return;
                }
@@ -220,7 +220,7 @@ class SVGReader {
         * @param string $name of the element that we are reading from
         */
        private function animateFilter( $name ) {
-               $this->debug ( "animate filter for tag $name" );
+               $this->debug( "animate filter for tag $name" );
                if( $this->reader->nodeType != XmlReader::ELEMENT ) {
                        return;
                }
index d9cca3f..081433b 100644 (file)
@@ -993,15 +993,15 @@ class XMPReader {
                if ( $elm !== self::NS_RDF . ' li' ) {
                        throw new MWException( __METHOD__ . " <rdf:li> expected but got $elm." );
                }
-               if ( !isset( $attribs[ self::NS_XML . ' lang'] )
-                       || !preg_match( '/^[-A-Za-z0-9]{2,}$/D', $attribs[ self::NS_XML . ' lang' ] ) )
+               if ( !isset( $attribs[self::NS_XML . ' lang'] )
+                       || !preg_match( '/^[-A-Za-z0-9]{2,}$/D', $attribs[self::NS_XML . ' lang'] ) )
                {
                        throw new MWException( __METHOD__
                                . " <rdf:li> did not contain, or has invalid xml:lang attribute in lang alternative" );
                }
 
                // Lang is case-insensitive.
-               $this->itemLang = strtolower( $attribs[ self::NS_XML . ' lang' ] );
+               $this->itemLang = strtolower( $attribs[self::NS_XML . ' lang'] );
 
                // need to add curItem[0] on again since one is for the specific item
                // and one is for the entire group.
index b7b35dc..f727400 100644 (file)
@@ -214,7 +214,7 @@ class XMPValidate {
                        // this only validates standalone properties, not arrays, etc
                        return;
                }
-               if ( !preg_match( '/^[-A-Za-z0-9]{2,}$/D', $val) ) {
+               if ( !preg_match( '/^[-A-Za-z0-9]{2,}$/D', $val ) ) {
                        //this is a rather naive check.
                        wfDebugLog( 'XMP', __METHOD__ . " Expected Lang code but got $val" );
                        $val = null;
index 0d96ed6..bc2acb3 100644 (file)
@@ -55,9 +55,9 @@
  *              'compress_threshold' => 10240,
  *              'persistent' => true));
  *
- * $mc->add('key', array('some', 'array'));
- * $mc->replace('key', 'some random string');
- * $val = $mc->get('key');
+ * $mc->add( 'key', array( 'some', 'array' ) );
+ * $mc->replace( 'key', 'some random string' );
+ * $val = $mc->get( 'key' );
  *
  * @author  Ryan T. Dean <rtdean@cytherianage.net>
  * @version 0.1.2
@@ -489,17 +489,17 @@ class MWMemcached {
                        }
                        $key = is_array( $key ) ? $key[1] : $key;
                        if ( !isset( $sock_keys[$sock] ) ) {
-                               $sock_keys[ intval( $sock ) ] = array();
+                               $sock_keys[intval( $sock )] = array();
                                $socks[] = $sock;
                        }
-                       $sock_keys[ intval( $sock ) ][] = $key;
+                       $sock_keys[intval( $sock )][] = $key;
                }
 
                $gather = array();
                // Send out the requests
                foreach ( $socks as $sock ) {
                        $cmd = 'gets';
-                       foreach ( $sock_keys[ intval( $sock ) ] as $key ) {
+                       foreach ( $sock_keys[intval( $sock )] as $key ) {
                                $cmd .= ' ' . $key;
                        }
                        $cmd .= "\r\n";
index a2da307..08b1f3e 100644 (file)
@@ -337,7 +337,7 @@ class DateFormatter {
        function makeIsoYear( $year ) {
                # Assumes the year is in a nice format, as enforced by the regex
                if ( substr( $year, -2 ) == 'BC' ) {
-                       $num = intval(substr( $year, 0, -3 )) - 1;
+                       $num = intval( substr( $year, 0, -3 ) ) - 1;
                        # PHP bug note: sprintf( "%04d", -1 ) fails poorly
                        $text = sprintf( '-%04d', $num );
 
index 49b2d33..f125510 100644 (file)
@@ -406,7 +406,8 @@ class LinkHolderArray {
                $text = preg_replace_callback(
                        '/(<!--LINK .*?-->)/',
                        $replacer->cb(),
-                       $text);
+                       $text
+               );
 
                wfProfileOut( __METHOD__ . '-replace' );
                wfProfileOut( __METHOD__ );
index 8209f8a..59f32d0 100644 (file)
@@ -3592,7 +3592,7 @@ class Parser {
                }
 
                $dom = $this->preprocessToDom( $text, self::PTD_FOR_INCLUSION );
-               $this->mTplDomCache[ $titleText ] = $dom;
+               $this->mTplDomCache[$titleText] = $dom;
 
                if ( !$title->equals( $cacheTitle ) ) {
                        $this->mTplRedirCache[$cacheTitle->getPrefixedDBkey()] =
@@ -3811,8 +3811,8 @@ class Parser {
                $dbw->replace( 'transcache', array( 'tc_url' ), array(
                        'tc_url' => $url,
                        'tc_time' => $dbw->timestamp( time() ),
-                       'tc_contents' => $text)
-               );
+                       'tc_contents' => $text
+               ) );
                return $text;
        }
 
index d0c57ab..78ebbbb 100644 (file)
@@ -397,7 +397,7 @@ class Preprocessor_DOM implements Preprocessor {
 
                                                if ( $stack->top ) {
                                                        $part = $stack->top->getCurrentPart();
-                                                       if ( !(isset( $part->commentEnd ) && $part->commentEnd == $wsStart - 1 )) {
+                                                       if ( !( isset( $part->commentEnd ) && $part->commentEnd == $wsStart - 1 ) ) {
                                                                $part->visualEnd = $wsStart;
                                                        }
                                                        // Else comments abutting, no change in visual end
@@ -746,7 +746,7 @@ class PPDStack {
                        $class = $this->elementClass;
                        $this->stack[] = new $class( $data );
                }
-               $this->top = $this->stack[ count( $this->stack ) - 1 ];
+               $this->top = $this->stack[count( $this->stack ) - 1];
                $this->accum =& $this->top->getAccum();
        }
 
@@ -757,7 +757,7 @@ class PPDStack {
                $temp = array_pop( $this->stack );
 
                if ( count( $this->stack ) ) {
-                       $this->top = $this->stack[ count( $this->stack ) - 1 ];
+                       $this->top = $this->stack[count( $this->stack ) - 1];
                        $this->accum =& $this->top->getAccum();
                } else {
                        $this->top = self::$false;
@@ -1014,11 +1014,13 @@ class PPFrame_DOM implements PPFrame {
 
                while ( count( $iteratorStack ) > 1 ) {
                        $level = count( $outStack ) - 1;
-                       $iteratorNode =& $iteratorStack[ $level ];
+                       $iteratorNode =& $iteratorStack[$level];
                        $out =& $outStack[$level];
                        $index =& $indexStack[$level];
 
-                       if ( $iteratorNode instanceof PPNode_DOM ) $iteratorNode = $iteratorNode->node;
+                       if ( $iteratorNode instanceof PPNode_DOM ) {
+                               $iteratorNode = $iteratorNode->node;
+                       }
 
                        if ( is_array( $iteratorNode ) ) {
                                if ( $index >= count( $iteratorNode ) ) {
@@ -1148,9 +1150,7 @@ class PPFrame_DOM implements PPFrame {
 
                                        # Insert a heading marker only for <h> children of <root>
                                        # This is to stop extractSections from going over multiple tree levels
-                                       if ( $contextNode->parentNode->nodeName == 'root'
-                                         && $this->parser->ot['html'] )
-                                       {
+                                       if ( $contextNode->parentNode->nodeName == 'root' && $this->parser->ot['html'] ) {
                                                # Insert heading index marker
                                                $headingIndex = $contextNode->getAttribute( 'i' );
                                                $titleText = $this->title->getPrefixedDBkey();
index fad1adb..9f87ed7 100644 (file)
@@ -332,7 +332,7 @@ class Preprocessor_Hash implements Preprocessor {
 
                                                if ( $stack->top ) {
                                                        $part = $stack->top->getCurrentPart();
-                                                       if ( !(isset( $part->commentEnd ) && $part->commentEnd == $wsStart - 1 )) {
+                                                       if ( !( isset( $part->commentEnd ) && $part->commentEnd == $wsStart - 1 ) ) {
                                                                $part->visualEnd = $wsStart;
                                                        }
                                                        // Else comments abutting, no change in visual end
@@ -952,7 +952,7 @@ class PPFrame_Hash implements PPFrame {
 
                while ( count( $iteratorStack ) > 1 ) {
                        $level = count( $outStack ) - 1;
-                       $iteratorNode =& $iteratorStack[ $level ];
+                       $iteratorNode =& $iteratorStack[$level];
                        $out =& $outStack[$level];
                        $index =& $indexStack[$level];
 
index 5ecdc4f..c732b8d 100644 (file)
@@ -537,7 +537,7 @@ class Profiler {
                                $eventCount = $this->mCalls[$name];
                                $timeSum = (float) ($elapsed * 1000);
                                $memorySum = (float)$this->mMemory[$name];
-                               $name = substr($name, 0, 255);
+                               $name = substr( $name, 0, 255 );
 
                                // Kludge
                                $timeSum = ($timeSum >= 0) ? $timeSum : 0;
index abefa81..1cf4fa7 100644 (file)
@@ -58,7 +58,7 @@ class ProfilerSimpleUDP extends ProfilerSimple {
                                continue;
                        }
                        $pfline = sprintf( "%s %s %d %f %f %f %f %s\n", $this->getProfileID(), "-", $pfdata['count'],
-                               $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry);
+                               $pfdata['cpu'], $pfdata['cpu_sq'], $pfdata['real'], $pfdata['real_sq'], $entry );
                        $length = strlen( $pfline );
                        /* printf("<!-- $pfline -->"); */
                        if ( $length + $plength > 1400 ) {
index 0f8e54c..e840300 100644 (file)
@@ -108,7 +108,7 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
         * @return array|int|Mixed
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
-               $this->language = Language::factory( $context ->getLanguage() );
+               $this->language = Language::factory( $context->getLanguage() );
                $cache = wfGetCache( CACHE_ANYTHING );
                $key = wfMemcKey( 'resourceloader', 'langdatamodule', 'changeinfo' );
 
index 1ace383..ae5d934 100644 (file)
@@ -242,8 +242,7 @@ class RevDel_RevisionItem extends RevDel_Item {
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $this->list->msg( 'diff' )->escaped();
                } else {
-                       return
-                               Linker::linkKnown(
+                       return Linker::linkKnown(
                                        $this->list->title,
                                        $this->list->msg( 'diff' )->escaped(),
                                        array(),
index b2108de..fcbec9e 100644 (file)
@@ -68,7 +68,7 @@ abstract class RevDel_List extends RevisionListBase {
 
                for ( $this->reset(); $this->current(); $this->next() ) {
                        $item = $this->current();
-                       unset( $missing[ $item->getId() ] );
+                       unset( $missing[$item->getId()] );
 
                        $oldBits = $item->getBits();
                        // Build the actual new rev_deleted bitfield
index fe351c5..d2e10e1 100644 (file)
@@ -40,7 +40,7 @@ class RevisionDeleter {
         */
        protected static function checkItem( $desc, $field, $diff, $new, &$arr ) {
                if( $diff & $field ) {
-                       $arr[ ( $new & $field ) ? 0 : 1 ][] = $desc;
+                       $arr[( $new & $field ) ? 0 : 1][] = $desc;
                }
        }
 
index 4a501fd..605a71b 100644 (file)
@@ -99,7 +99,7 @@ class SearchMySQL extends SearchEngine {
                                $strippedVariants = array_unique( $strippedVariants );
 
                                $searchon .= $modifier;
-                               if( count( $strippedVariants) > 1 )
+                               if( count( $strippedVariants ) > 1 )
                                        $searchon .= '(';
                                foreach( $strippedVariants as $stripped ) {
                                        $stripped = $this->normalizeText( $stripped );
@@ -111,7 +111,7 @@ class SearchMySQL extends SearchEngine {
                                        }
                                        $searchon .= "$quote$stripped$quote$wildcard ";
                                }
-                               if( count( $strippedVariants) > 1 )
+                               if( count( $strippedVariants ) > 1 )
                                        $searchon .= ')';
 
                                // Match individual terms or quoted phrase in result highlighting...
index b0ea97f..dd152f7 100644 (file)
  */
 class SearchOracle extends SearchEngine {
 
-       private $reservedWords = array ('ABOUT' => 1,
-                                                                       'ACCUM' => 1,
-                                                                       'AND' => 1,
-                                                                       'BT' => 1,
-                                                                       'BTG' => 1,
-                                                                       'BTI' => 1,
-                                                                       'BTP' => 1,
-                                                                       'FUZZY' => 1,
-                                                                       'HASPATH' => 1,
-                                                                       'INPATH' => 1,
-                                                                       'MINUS' => 1,
-                                                                       'NEAR' => 1,
-                                                                       'NOT' => 1,
-                                                                       'NT' => 1,
-                                                                       'NTG' => 1,
-                                                                       'NTI' => 1,
-                                                                       'NTP' => 1,
-                                                                       'OR' => 1,
-                                                                       'PT' => 1,
-                                                                       'RT' => 1,
-                                                                       'SQE' => 1,
-                                                                       'SYN' => 1,
-                                                                       'TR' => 1,
-                                                                       'TRSYN' => 1,
-                                                                       'TT' => 1,
-                                                                       'WITHIN' => 1);
+       private $reservedWords = array(
+               'ABOUT' => 1,
+               'ACCUM' => 1,
+               'AND' => 1,
+               'BT' => 1,
+               'BTG' => 1,
+               'BTI' => 1,
+               'BTP' => 1,
+               'FUZZY' => 1,
+               'HASPATH' => 1,
+               'INPATH' => 1,
+               'MINUS' => 1,
+               'NEAR' => 1,
+               'NOT' => 1,
+               'NT' => 1,
+               'NTG' => 1,
+               'NTI' => 1,
+               'NTP' => 1,
+               'OR' => 1,
+               'PT' => 1,
+               'RT' => 1,
+               'SQE' => 1,
+               'SYN' => 1,
+               'TR' => 1,
+               'TRSYN' => 1,
+               'TT' => 1,
+               'WITHIN' => 1,
+       );
 
        /**
         * Creates an instance of this class
@@ -199,8 +201,8 @@ class SearchOracle extends SearchEngine {
                                // Search terms in all variant forms, only
                                // apply on wiki with LanguageConverter
                                $temp_terms = $wgContLang->autoConvertToAllVariants( $terms[2] );
-                               if( is_array( $temp_terms )) {
-                                       $temp_terms = array_unique( array_values( $temp_terms ));
+                               if( is_array( $temp_terms ) ) {
+                                       $temp_terms = array_unique( array_values( $temp_terms ) );
                                        foreach( $temp_terms as $t ) {
                                                $searchon .= ($terms[1] == '-' ? ' ~' : ' & ') . $this->escapeTerm( $t );
                                        }
@@ -227,9 +229,9 @@ class SearchOracle extends SearchEngine {
        private function escapeTerm( $t ) {
                global $wgContLang;
                $t = $wgContLang->normalizeForSearch( $t );
-               $t = isset( $this->reservedWords[strtoupper( $t )] ) ? '{'.$t.'}' : $t;
-               $t = preg_replace('/^"(.*)"$/', '($1)', $t);
-               $t = preg_replace('/([-&|])/', '\\\\$1', $t);
+               $t = isset( $this->reservedWords[strtoupper( $t )] ) ? '{' . $t . '}' : $t;
+               $t = preg_replace( '/^"(.*)"$/', '($1)', $t );
+               $t = preg_replace( '/([-&|])/', '\\\\$1', $t );
                return $t;
        }
        /**
index 56464e9..b8d5dc1 100644 (file)
@@ -86,18 +86,18 @@ class SearchPostgres extends SearchEngine {
                wfDebug( "parseQuery received: $term \n" );
 
                ## No backslashes allowed
-               $term = preg_replace('/\\\/', '', $term);
+               $term = preg_replace( '/\\\/', '', $term );
 
                ## Collapse parens into nearby words:
-               $term = preg_replace('/\s*\(\s*/', ' (', $term);
-               $term = preg_replace('/\s*\)\s*/', ') ', $term);
+               $term = preg_replace( '/\s*\(\s*/', ' (', $term );
+               $term = preg_replace( '/\s*\)\s*/', ') ', $term );
 
                ## Treat colons as word separators:
-               $term = preg_replace('/:/', ' ', $term);
+               $term = preg_replace( '/:/', ' ', $term );
 
                $searchstring = '';
                $m = array();
-               if( preg_match_all('/([-!]?)(\S+)\s*/', $term, $m, PREG_SET_ORDER ) ) {
+               if( preg_match_all( '/([-!]?)(\S+)\s*/', $term, $m, PREG_SET_ORDER ) ) {
                        foreach( $m as $terms ) {
                                if ( strlen( $terms[1] ) ) {
                                        $searchstring .= ' & !';
@@ -118,19 +118,19 @@ class SearchPostgres extends SearchEngine {
                }
 
                ## Strip out leading junk
-               $searchstring = preg_replace('/^[\s\&\|]+/', '', $searchstring);
+               $searchstring = preg_replace( '/^[\s\&\|]+/', '', $searchstring );
 
                ## Remove any doubled-up operators
-               $searchstring = preg_replace('/([\!\&\|]) +(?:[\&\|] +)+/', "$1 ", $searchstring);
+               $searchstring = preg_replace( '/([\!\&\|]) +(?:[\&\|] +)+/', "$1 ", $searchstring );
 
                ## Remove any non-spaced operators (e.g. "Zounds!")
-               $searchstring = preg_replace('/([^ ])[\!\&\|]/', "$1", $searchstring);
+               $searchstring = preg_replace( '/([^ ])[\!\&\|]/', "$1", $searchstring );
 
                ## Remove any trailing whitespace or operators
-               $searchstring = preg_replace('/[\s\!\&\|]+$/', '', $searchstring);
+               $searchstring = preg_replace( '/[\s\!\&\|]+$/', '', $searchstring );
 
                ## Remove unnecessary quotes around everything
-               $searchstring = preg_replace('/^[\'"](.*)[\'"]$/', "$1", $searchstring);
+               $searchstring = preg_replace( '/^[\'"](.*)[\'"]$/', "$1", $searchstring );
 
                ## Quote the whole thing
                $searchstring = $this->db->addQuotes( $searchstring );
@@ -169,7 +169,7 @@ class SearchPostgres extends SearchEngine {
                }
                else {
                        $m = array();
-                       if( preg_match_all("/'([^']+)'/", $top, $m, PREG_SET_ORDER ) ) {
+                       if( preg_match_all( "/'([^']+)'/", $top, $m, PREG_SET_ORDER ) ) {
                                foreach( $m as $terms ) {
                                        $this->searchTerms[$terms[1]] = $terms[1];
                                }
index f3f4788..ee30d9b 100644 (file)
@@ -101,7 +101,7 @@ class SearchSqlite extends SearchEngine {
                                $strippedVariants = array_unique( $strippedVariants );
 
                                $searchon .= $modifier;
-                               if( count( $strippedVariants) > 1 )
+                               if( count( $strippedVariants ) > 1 )
                                        $searchon .= '(';
                                foreach( $strippedVariants as $stripped ) {
                                        if( $nonQuoted && strpos( $stripped, ' ' ) !== false ) {
@@ -112,7 +112,7 @@ class SearchSqlite extends SearchEngine {
                                        }
                                        $searchon .= "$quote$stripped$quote$wildcard ";
                                }
-                               if( count( $strippedVariants) > 1 )
+                               if( count( $strippedVariants ) > 1 )
                                        $searchon .= ')';
 
                                // Match individual terms or quoted phrase in result highlighting...
index eabcda3..35199d6 100644 (file)
@@ -66,7 +66,7 @@ class SearchUpdate implements DeferrableUpdate {
                $lc = SearchEngine::legalSearchChars() . '&#;';
 
                if( $this->mText === false ) {
-                       $search->updateTitle($this->mId,
+                       $search->updateTitle( $this->mId,
                                $search->normalizeText( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) );
                        wfProfileOut( __METHOD__ );
                        return;
index 0509272..21226fd 100644 (file)
@@ -185,7 +185,7 @@ class MediaWikiSite extends Site {
                // the single page in the "pages" substructure.
                if ( isset( $externalData['query']['pages'] ) ) {
                        $pages = array_values( $externalData['query']['pages'] );
-                       if ( count( $pages) === 1 ) {
+                       if ( count( $pages ) === 1 ) {
                                return $pages[0];
                        }
                }
diff --git a/includes/specials/SpecialActiveusers.php b/includes/specials/SpecialActiveusers.php
deleted file mode 100644 (file)
index c9c82ad..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-/**
- * Implements Special:Activeusers
- *
- * Copyright © 2008 Aaron Schulz
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup SpecialPage
- */
-
-/**
- * This class is used to get a list of active users. The ones with specials
- * rights (sysop, bureaucrat, developer) will have them displayed
- * next to their names.
- *
- * @ingroup SpecialPage
- */
-class ActiveUsersPager extends UsersPager {
-
-       /**
-        * @var FormOptions
-        */
-       protected $opts;
-
-       /**
-        * @var Array
-        */
-       protected $hideGroups = array();
-
-       /**
-        * @var Array
-        */
-       protected $hideRights = array();
-
-       /**
-        * @param $context IContextSource
-        * @param $group null Unused
-        * @param string $par Parameter passed to the page
-        */
-       function __construct( IContextSource $context = null, $group = null, $par = null ) {
-               global $wgActiveUserDays;
-
-               parent::__construct( $context );
-
-               $this->RCMaxAge = $wgActiveUserDays;
-               $un = $this->getRequest()->getText( 'username', $par );
-               $this->requestedUser = '';
-               if ( $un != '' ) {
-                       $username = Title::makeTitleSafe( NS_USER, $un );
-                       if( !is_null( $username ) ) {
-                               $this->requestedUser = $username->getText();
-                       }
-               }
-
-               $this->setupOptions();
-       }
-
-       public function setupOptions() {
-               $this->opts = new FormOptions();
-
-               $this->opts->add( 'hidebots', false, FormOptions::BOOL );
-               $this->opts->add( 'hidesysops', false, FormOptions::BOOL );
-
-               $this->opts->fetchValuesFromRequest( $this->getRequest() );
-
-               if ( $this->opts->getValue( 'hidebots' ) == 1 ) {
-                       $this->hideRights[] = 'bot';
-               }
-               if ( $this->opts->getValue( 'hidesysops' ) == 1 ) {
-                       $this->hideGroups[] = 'sysop';
-               }
-       }
-
-       function getIndexField() {
-               return 'rc_user_text';
-       }
-
-       function getQueryInfo() {
-               $dbr = wfGetDB( DB_SLAVE );
-               $conds = array( 'rc_user > 0' ); // Users - no anons
-               if( !$this->getUser()->isAllowed( 'hideuser' ) ) {
-                       $conds[] = 'ipb_deleted IS NULL OR ipb_deleted = 0'; // don't show hidden names
-               }
-               $conds[] = 'rc_log_type IS NULL OR rc_log_type != ' . $dbr->addQuotes( 'newusers' );
-               $conds[] = 'rc_timestamp >= ' . $dbr->addQuotes(
-                       $dbr->timestamp( wfTimestamp( TS_UNIX ) - $this->RCMaxAge*24*3600 ) );
-
-               if( $this->requestedUser != '' ) {
-                       $conds[] = 'rc_user_text >= ' . $dbr->addQuotes( $this->requestedUser );
-               }
-
-               return array(
-                       'tables' => array( 'recentchanges', 'ipblocks' ),
-                       'fields' => array(
-                               'user_name' => 'rc_user_text', // for Pager inheritance
-                               'rc_user_text', // for Pager
-                               'user_id' => 'rc_user',
-                               'recentedits' => 'COUNT(*)',
-                               'ipb_deleted' => 'MAX(ipb_deleted)'
-                       ),
-                       'options' => array(
-                               'GROUP BY' => array( 'rc_user_text', 'user_id' ),
-                               'USE INDEX' => array( 'recentchanges' => 'rc_user_text' )
-                       ),
-                       'join_conds' => array( // check for suppression blocks
-                               'ipblocks' => array( 'LEFT JOIN', array(
-                                       'rc_user=ipb_user',
-                                       'ipb_auto' => 0 # avoid duplicate blocks
-                               )),
-                       ),
-                       'conds' => $conds
-               );
-       }
-
-       function formatRow( $row ) {
-               $userName = $row->user_name;
-
-               $ulinks = Linker::userLink( $row->user_id, $userName );
-               $ulinks .= Linker::userToolLinks( $row->user_id, $userName );
-
-               $lang = $this->getLanguage();
-
-               $list = array();
-               $user = User::newFromId( $row->user_id );
-
-               // User right filter
-               foreach( $this->hideRights as $right ) {
-                       // Calling User::getRights() within the loop so that
-                       // if the hideRights() filter is empty, we don't have to
-                       // trigger the lazy-init of the big userrights array in the
-                       // User object
-                       if ( in_array( $right, $user->getRights() ) ) {
-                               return '';
-                       }
-               }
-
-               // User group filter
-               // Note: This is a different loop than for user rights,
-               // because we're reusing it to build the group links
-               // at the same time
-               foreach( $user->getGroups() as $group ) {
-                       if ( in_array( $group, $this->hideGroups ) ) {
-                               return '';
-                       }
-                       $list[] = self::buildGroupLink( $group, $userName );
-               }
-
-               $groups = $lang->commaList( $list );
-
-               $item = $lang->specialList( $ulinks, $groups );
-               if( $row->ipb_deleted ) {
-                       $item = "<span class=\"deleted\">$item</span>";
-               }
-               $count = $this->msg( 'activeusers-count' )->numParams( $row->recentedits )
-                       ->params( $userName )->numParams( $this->RCMaxAge )->escaped();
-               $blocked = !is_null( $row->ipb_deleted ) ? ' ' . $this->msg( 'listusers-blocked', $userName )->escaped() : '';
-
-               return Html::rawElement( 'li', array(), "{$item} [{$count}]{$blocked}" );
-       }
-
-       function getPageHeader() {
-               global $wgScript;
-
-               $self = $this->getTitle();
-               $limit = $this->mLimit ? Html::hidden( 'limit', $this->mLimit ) : '';
-
-               $out = Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) ); # Form tag
-               $out .= Xml::fieldset( $this->msg( 'activeusers' )->text() ) . "\n";
-               $out .= Html::hidden( 'title', $self->getPrefixedDBkey() ) . $limit . "\n";
-
-               $out .= Xml::inputLabel( $this->msg( 'activeusers-from' )->text(),
-                       'username', 'offset', 20, $this->requestedUser ) . '<br />';# Username field
-
-               $out .= Xml::checkLabel( $this->msg( 'activeusers-hidebots' )->text(),
-                       'hidebots', 'hidebots', $this->opts->getValue( 'hidebots' ) );
-
-               $out .= Xml::checkLabel( $this->msg( 'activeusers-hidesysops' )->text(),
-                       'hidesysops', 'hidesysops', $this->opts->getValue( 'hidesysops' ) ) . '<br />';
-
-               $out .= Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) . "\n";# Submit button and form bottom
-               $out .= Xml::closeElement( 'fieldset' );
-               $out .= Xml::closeElement( 'form' );
-
-               return $out;
-       }
-}
-
-/**
- * @ingroup SpecialPage
- */
-class SpecialActiveUsers extends SpecialPage {
-
-       /**
-        * Constructor
-        */
-       public function __construct() {
-               parent::__construct( 'Activeusers' );
-       }
-
-       /**
-        * Show the special page
-        *
-        * @param $par Mixed: parameter passed to the page or null
-        */
-       public function execute( $par ) {
-               global $wgActiveUserDays;
-
-               $this->setHeaders();
-               $this->outputHeader();
-
-               $out = $this->getOutput();
-               $out->wrapWikiMsg( "<div class='mw-activeusers-intro'>\n$1\n</div>",
-                       array( 'activeusers-intro', $this->getLanguage()->formatNum( $wgActiveUserDays ) ) );
-
-               $up = new ActiveUsersPager( $this->getContext(), null, $par );
-
-               # getBody() first to check, if empty
-               $usersbody = $up->getBody();
-
-               $out->addHTML( $up->getPageHeader() );
-               if ( $usersbody ) {
-                       $out->addHTML(
-                               $up->getNavigationBar() .
-                               Html::rawElement( 'ul', array(), $usersbody ) .
-                               $up->getNavigationBar()
-                       );
-               } else {
-                       $out->addWikiMsg( 'activeusers-noresult' );
-               }
-       }
-
-       protected function getGroupName() {
-               return 'users';
-       }
-}
index f9cb5cd..a9491d0 100644 (file)
@@ -88,7 +88,7 @@ class SpecialAllpages extends IncludableSpecialPage {
                $namespaces = $wgContLang->getNamespaces();
 
                $out->setPageTitle(
-                       ( $namespace > 0 && in_array( $namespace, array_keys( $namespaces) ) ) ?
+                       ( $namespace > 0 && in_array( $namespace, array_keys( $namespaces ) ) ) ?
                        $this->msg( 'allinnamespace', str_replace( '_', ' ', $namespaces[$namespace] ) ) :
                        $this->msg( 'allarticles' )
                );
index 50fdbc2..8dafbae 100644 (file)
@@ -634,7 +634,7 @@ class SpecialBlock extends FormSpecialPage {
                        return array( 'badipaddress' );
                }
 
-               if ( ( strlen( $data['Expiry'] ) == 0) || ( strlen( $data['Expiry'] ) > 50 )
+               if ( ( strlen( $data['Expiry'] ) == 0 ) || ( strlen( $data['Expiry'] ) > 50 )
                        || !self::parseExpiryInput( $data['Expiry'] ) )
                {
                        return array( 'ipb_expiry_invalid' );
index 9040c64..f56ca52 100644 (file)
@@ -126,8 +126,7 @@ class CategoryPager extends AlphabeticPager {
        public function getStartForm( $from ) {
                global $wgScript;
 
-               return
-                       Xml::tags( 'form', array( 'method' => 'get', 'action' => $wgScript ),
+               return Xml::tags( 'form', array( 'method' => 'get', 'action' => $wgScript ),
                                Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
                                Xml::fieldset( $this->msg( 'categories' )->text(),
                                        Xml::inputLabel( $this->msg( 'categoriesfrom' )->text(),
index b118059..75983e8 100644 (file)
@@ -747,7 +747,7 @@ class ContribsPager extends ReverseChronologicalPager {
                        if ( !$this->associated ) {
                                return array( "page_namespace $eq_op $selectedNS" );
                        } else {
-                               $associatedNS = $this->mDb->addQuotes (
+                               $associatedNS = $this->mDb->addQuotes(
                                        MWNamespace::getAssociated( $this->namespace )
                                );
                                return array(
index b5ad589..163e5c6 100644 (file)
@@ -119,11 +119,11 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                                throw new ThrottledError;
                        case 'mailnologin':
                        case 'usermaildisabled':
-                               throw new  ErrorPageError( $error, "{$error}text" );
+                               throw new ErrorPageError( $error, "{$error}text" );
                        default:
                                # It's a hook error
                                list( $title, $msg, $params ) = $error;
-                               throw new  ErrorPageError( $title, $msg, $params );
+                               throw new ErrorPageError( $title, $msg, $params );
                }
                // Got a valid target user name? Else ask for one.
                $ret = self::getTarget( $this->mTarget );
index d204d50..ab42549 100644 (file)
@@ -112,7 +112,7 @@ class SpecialJavaScriptTest extends SpecialPage {
                if( !in_array( $state, $validStates ) ) {
                        throw new MWException( __METHOD__
                                . ' given an invalid state. Must be one of "'
-                               . join( '", "', $validStates) . '".'
+                               . join( '", "', $validStates ) . '".'
                        );
                }
                return "<div id=\"mw-javascripttest-summary\" class=\"mw-javascripttest-$state\">$html</div>";
index eb89bec..9ddce0c 100644 (file)
@@ -202,16 +202,14 @@ class SpecialProtectedpages extends SpecialPage {
         * @return string Formatted HTML
         */
        protected function getExpiryCheck( $indefOnly ) {
-               return
-                       Xml::checkLabel( $this->msg( 'protectedpages-indef' )->text(), 'indefonly', 'indefonly', $indefOnly ) . "\n";
+               return Xml::checkLabel( $this->msg( 'protectedpages-indef' )->text(), 'indefonly', 'indefonly', $indefOnly ) . "\n";
        }
 
        /**
         * @return string Formatted HTML
         */
        protected function getCascadeCheck( $cascadeOnly ) {
-               return
-                       Xml::checkLabel( $this->msg( 'protectedpages-cascade' )->text(), 'cascadeonly', 'cascadeonly', $cascadeOnly ) . "\n";
+               return Xml::checkLabel( $this->msg( 'protectedpages-cascade' )->text(), 'cascadeonly', 'cascadeonly', $cascadeOnly ) . "\n";
        }
 
        /**
@@ -220,8 +218,7 @@ class SpecialProtectedpages extends SpecialPage {
        protected function getSizeLimit( $sizetype, $size ) {
                $max = $sizetype === 'max';
 
-               return
-                       Xml::radioLabel( $this->msg( 'minimum-size' )->text(), 'sizetype', 'min', 'wpmin', !$max ) .
+               return Xml::radioLabel( $this->msg( 'minimum-size' )->text(), 'sizetype', 'min', 'wpmin', !$max ) .
                        '&#160;' .
                        Xml::radioLabel( $this->msg( 'maximum-size' )->text(), 'sizetype', 'max', 'wpmax', $max ) .
                        '&#160;' .
index 6a94deb..8548a7b 100644 (file)
@@ -176,8 +176,7 @@ class SpecialProtectedtitles extends SpecialPage {
                        $options[] = Xml::option( $text, $type, $selected );
                }
 
-               return
-                       Xml::label( $this->msg( 'restriction-level' )->text(), $this->IdLevel ) . '&#160;' .
+               return Xml::label( $this->msg( 'restriction-level' )->text(), $this->IdLevel ) . '&#160;' .
                        Xml::tags( 'select',
                                array( 'id' => $this->IdLevel, 'name' => $this->IdLevel ),
                                implode( "\n", $options ) );
@@ -200,7 +199,7 @@ class ProtectedTitlesPager extends AlphabeticPager {
                $this->mConds = $conds;
                $this->level = $level;
                $this->namespace = $namespace;
-               $this->size = intval($size);
+               $this->size = intval( $size );
                parent::__construct( $form->getContext() );
        }
 
index 391c4a7..99dac8f 100644 (file)
@@ -183,7 +183,7 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
                                }
                        }
 
-                       if( $dbr->unionSupportsOrderAndLimit()) {
+                       if( $dbr->unionSupportsOrderAndLimit() ) {
                                $order = array( 'ORDER BY' => 'rc_timestamp DESC' );
                        } else {
                                $order = array();
@@ -198,7 +198,7 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
                                $join_conds + array( $link_table => array( 'INNER JOIN', $subjoin ) )
                        );
 
-                       if( $dbr->unionSupportsOrderAndLimit())
+                       if( $dbr->unionSupportsOrderAndLimit() )
                                $query = $dbr->limitResult( $query, $limit );
 
                        $subsql[] = $query;
index 5a5f8ff..d23e812 100644 (file)
@@ -581,7 +581,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                foreach( $this->checks as $item ) {
                        list( /* message */, $name, $field ) = $item;
                        $val = $this->getRequest()->getInt( $name, 0 /* unchecked */ );
-                       if( $val < -1 || $val > 1) {
+                       if( $val < -1 || $val > 1 ) {
                                $val = -1; // -1 for existing value
                        }
                        $bitfield[$field] = $val;
index 6c40148..380e20e 100644 (file)
@@ -912,8 +912,7 @@ class SpecialSearch extends SpecialPage {
                        $hidden .= Html::hidden( $key, $value );
                }
                // Return final output
-               return
-                       Xml::openElement(
+               return Xml::openElement(
                                'fieldset',
                                array( 'id' => 'mw-searchoptions', 'style' => 'margin:0em;' )
                        ) .
@@ -1098,7 +1097,8 @@ class SpecialSearch extends SpecialPage {
                        'a',
                        array(
                                'href' => $this->getTitle()->getLocalURL( $stParams ),
-                               'title' => $tooltip),
+                               'title' => $tooltip
+                       ),
                        $label
                );
        }
index e036348..ed550a0 100644 (file)
@@ -1041,9 +1041,10 @@ class SpecialUndelete extends SpecialPage {
                $user = $this->getUser();
                $lang = $this->getLanguage();
                $rdel = Linker::getRevDeleteLink( $user, $rev, $this->mTargetObj );
-               if ( $rdel ) $rdel = " $rdel";
-               return
-                       '<div id="mw-diff-' . $prefix . 'title1"><strong>' .
+               if ( $rdel ) {
+                       $rdel = " $rdel";
+               }
+               return '<div id="mw-diff-' . $prefix . 'title1"><strong>' .
                                Linker::link(
                                        $targetPage,
                                        $this->msg(
index c7f122b..afea377 100644 (file)
@@ -246,7 +246,7 @@ class SpecialWatchlist extends SpecialPage {
                # Show watchlist header
                $form .= $this->msg( 'watchlist-details' )->numParams( $nitems )->parse() . "\n";
 
-               if( $user->getOption( 'enotifwatchlistpages' ) && $wgEnotifWatchlist) {
+               if( $user->getOption( 'enotifwatchlistpages' ) && $wgEnotifWatchlist ) {
                        $form .= $this->msg( 'wlheader-enotif' )->parseAsBlock() . "\n";
                }
                if( $wgShowUpdatedMarker ) {
index cb3e985..8841af8 100644 (file)
@@ -170,21 +170,24 @@ class SpecialWhatLinksHere extends SpecialPage {
                        $options['ORDER BY'] = 'pl_from';
                        $plRes = $dbr->select( array( 'pagelinks', 'page', 'redirect' ), $fields,
                                $plConds, __METHOD__, $options,
-                               $joinConds);
+                               $joinConds
+                       );
                }
 
                if( !$hidetrans ) {
                        $options['ORDER BY'] = 'tl_from';
                        $tlRes = $dbr->select( array( 'templatelinks', 'page', 'redirect' ), $fields,
                                $tlConds, __METHOD__, $options,
-                               $joinConds);
+                               $joinConds
+                       );
                }
 
                if( !$hideimages ) {
                        $options['ORDER BY'] = 'il_from';
                        $ilRes = $dbr->select( array( 'imagelinks', 'page', 'redirect' ), $fields,
                                $ilConds, __METHOD__, $options,
-                               $joinConds);
+                               $joinConds
+                       );
                }
 
                if( ( !$fetchlinks || !$plRes->numRows() ) && ( $hidetrans || !$tlRes->numRows() ) && ( $hideimages || !$ilRes->numRows() ) ) {
index 2483e58..b0ec8b5 100644 (file)
@@ -22,7 +22,7 @@
  */
 
 if ( !defined( 'MEDIAWIKI' ) ) {
-        die( "NoLocalSettings.php is not a valid MediaWiki entry point\n" );
+       die( "NoLocalSettings.php is not a valid MediaWiki entry point\n" );
 }
 
 if ( !isset( $wgVersion ) ) {
index 8381b4c..78c64e1 100644 (file)
@@ -70,17 +70,18 @@ abstract class UploadBase {
         * @return string
         */
        public function getVerificationErrorCode( $error ) {
-               $code_to_status = array(self::EMPTY_FILE => 'empty-file',
-                                                               self::FILE_TOO_LARGE => 'file-too-large',
-                                                               self::FILETYPE_MISSING => 'filetype-missing',
-                                                               self::FILETYPE_BADTYPE => 'filetype-banned',
-                                                               self::MIN_LENGTH_PARTNAME => 'filename-tooshort',
-                                                               self::ILLEGAL_FILENAME => 'illegal-filename',
-                                                               self::OVERWRITE_EXISTING_FILE => 'overwrite',
-                                                               self::VERIFICATION_ERROR => 'verification-error',
-                                                               self::HOOK_ABORTED => 'hookaborted',
-                                                               self::WINDOWS_NONASCII_FILENAME => 'windows-nonascii-filename',
-                                                               self::FILENAME_TOO_LONG => 'filename-toolong',
+               $code_to_status = array(
+                       self::EMPTY_FILE => 'empty-file',
+                       self::FILE_TOO_LARGE => 'file-too-large',
+                       self::FILETYPE_MISSING => 'filetype-missing',
+                       self::FILETYPE_BADTYPE => 'filetype-banned',
+                       self::MIN_LENGTH_PARTNAME => 'filename-tooshort',
+                       self::ILLEGAL_FILENAME => 'illegal-filename',
+                       self::OVERWRITE_EXISTING_FILE => 'overwrite',
+                       self::VERIFICATION_ERROR => 'verification-error',
+                       self::HOOK_ABORTED => 'hookaborted',
+                       self::WINDOWS_NONASCII_FILENAME => 'windows-nonascii-filename',
+                       self::FILENAME_TOO_LONG => 'filename-toolong',
                );
                if( isset( $code_to_status[$error] ) ) {
                        return $code_to_status[$error];
@@ -360,7 +361,7 @@ abstract class UploadBase {
                global $wgVerifyMimeType;
                wfProfileIn( __METHOD__ );
                if ( $wgVerifyMimeType ) {
-                       wfDebug ( "\n\nmime: <$mime> extension: <{$this->mFinalExtension}>\n\n" );
+                       wfDebug( "\n\nmime: <$mime> extension: <{$this->mFinalExtension}>\n\n" );
                        global $wgMimeTypeBlacklist;
                        if ( $this->checkFileExtension( $mime, $wgMimeTypeBlacklist ) ) {
                                wfProfileOut( __METHOD__ );
index e784e51..8144c34 100644 (file)
@@ -182,7 +182,7 @@ class UploadFromChunks extends UploadFromFile {
                // Get the offset before we add the chunk to the file system
                $preAppendOffset = $this->getOffset();
 
-               if ( $preAppendOffset + $chunkSize > $this->getMaxUploadSize()) {
+               if ( $preAppendOffset + $chunkSize > $this->getMaxUploadSize() ) {
                        $status = Status::newFatal( 'file-too-large' );
                } else {
                        // Make sure the client is uploading the correct chunk with a matching offset.
index 42883b5..16de816 100644 (file)
@@ -4006,8 +4006,9 @@ class Language {
                        if ( end( $fallbacks ) === 'en' ) {
                                array_pop( $fallbacks );
                        }
-                       // Append the site's fallback chain
+                       // Append the site's fallback chain, including the site language itself
                        $siteFallbacks = self::getFallbacksFor( $wgLanguageCode );
+                       array_unshift( $siteFallbacks, $wgLanguageCode );
 
                        // Eliminate any languages already included in the chain
                        $siteFallbacks = array_intersect( array_diff( $siteFallbacks, $fallbacks ), $siteFallbacks );
index 5ad6717..70d45a3 100644 (file)
@@ -2,10 +2,16 @@
 <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
 <supplementalData>
        <plurals>
-               <!-- What is this override for Hebrew based on? Is there a CLDR ticket for this? -Ryan Kaldari 2013-01-28 -->
+               <!--
+               The "one" and "two" rules are copied directly from CLDR.
+               The "many" rule overrides CLDR, because CLDR seems to have a mistake:
+               it's sometimes needed for multiples of 10, but not for 10 itself.
+               When the CLDR is fixed, this should be removed.
+               -->
                <pluralRules locales="he">
                        <pluralRule count="one">n is 1</pluralRule>
                        <pluralRule count="two">n is 2</pluralRule>
+                       <pluralRule count="many">n is not 0 AND n is not 10 AND n mod 10 is 0</pluralRule>
                </pluralRules>
                <pluralRules locales="dsb hsb">
                        <pluralRule count="one">n mod 100 is 1</pluralRule>
index 4a5a91d..b8c9c8e 100644 (file)
@@ -567,8 +567,8 @@ $2',
 'blocked-mailpassword' => 'سیزین آی‌پی آدرسینیز دَییشیک وئرمه‌یه باغلانیب و سوءاستفاده قاباغی آلماق اوچون، رمزی یئنی‌دن اله گتیرمک ایمکانینا ایجازه‌نیز یوخدور.',
 'eauthentsent' => 'سیزین سئچیلمیش ایمیل آدرسینه، دوغرولاماق اوچون بیر ایمیل گؤندریلدی.
 هر یئنی بیر ایمیل گؤندرمک‌دن اؤنجه، بو حسابین دوغرودان سیزین اولدوغونو گؤسترمک اوچون، او ایمیل‌ده‌کی ایشلری گؤرمه‌لیسینیز.',
-'throttled-mailpassword' => 'سÙ\88Ù\86 {{PLURAL:$1|ساعات|$1 Ø³Ø§Ø¹Ø§Øª}}â\80\8cدا Ø³Û\8cزÙ\87 Ø¨Û\8cر Ø±Ù\85ز Û\8cادا Ø³Ø§Ù\84Ù\85ا گؤندریلیب‌دیر.
-سÙ\88ءاستÙ\81ادÙ\87 Ù\82اباغÛ\8cÙ\86 Ø¢Ù\84Ù\85اÙ\82 Ø§Ù\88Ú\86Ù\88Ù\86Ø\8c Ù\87ر {{PLURAL:$1|ساعات|$1 Ø³Ø§Ø¹Ø§Øª}}â\80\8cدا Û\8cاÙ\84Ù\86Û\8cز Ø¨Û\8cر Ø±Ù\85ز Û\8cادا Ø³Ø§Ù\84Ù\85ا گؤندریلر.',
+'throttled-mailpassword' => 'سÙ\88Ù\86 {{PLURAL:$1|ساعات|$1 Ø³Ø§Ø¹Ø§Øª}}â\80\8cدا Ø³Û\8cزÙ\87 Ø¨Û\8cر Ø±Ù\85ز Û\8cئÙ\86Û\8cÙ\84Ù\87â\80\8cÙ\85Ù\87 Ø§Û\8cÙ\85Û\8cÙ\84Û\8c گؤندریلیب‌دیر.
+سÙ\88ءاستÙ\81ادÙ\87 Ù\82اباغÛ\8cÙ\86 Ø¢Ù\84Ù\85اÙ\82 Ø§Ù\88Ú\86Ù\88Ù\86Ø\8c Ù\87ر {{PLURAL:$1|ساعات|$1 Ø³Ø§Ø¹Ø§Øª}}â\80\8cدا Û\8cاÙ\84Ù\86Û\8cز Ø¨Û\8cر Ø±Ù\85ز Û\8cئÙ\86Û\8cÙ\84Ù\87â\80\8cÙ\85Ù\87 Ø§Û\8cÙ\85Û\8cÙ\84Û\8c گؤندریلر.',
 'mailerror' => 'ایمیل گؤندرمه خطاسی: $1',
 'acct_creation_throttle_hit' => 'سیزین آی‌پی آدرسینیزی ایشلدن زیارتچیلر، سون گون‌ده {{PLURAL:$1|بیر حساب|$1 حساب}} یارادیبلار کی ان چون ایجازه وئریلن‌دیر.
 اونا باخاراق، بو آی‌پی آدرسی ایشلدن زیارتچیلر، بو زامان‌دا، داها آرتیق حساب یارادابیلمزلر.',
@@ -619,7 +619,7 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'رمزی یئنی‌له',
-'passwordreset-text' => 'حسابÛ\8cÙ\86Û\8cزا Ø¨Û\8cÙ\84Ú¯Û\8cÙ\84رÛ\8cÙ\86Ù\87 Ú¯Ø¤Ø±Ù\87 Û\8cادا Ø³Ø§Ù\84Ù\85ا Ø§Û\8cÙ\85Û\8cÙ\84Û\8c Ø¢Ù\84Ù\85اÙ\82 Ø§Ù\88Ú\86Ù\88Ù\86Ø\8c بو فورمو دولدورون.',
+'passwordreset-text' => 'رÙ\85زÛ\8cÙ\86Û\8cزÛ\8c Û\8cئÙ\86Û\8cÙ\84Ù\87â\80\8cÙ\85Ú© Ø§Ù\88Ú\86Ù\88Ù\86 بو فورمو دولدورون.',
 'passwordreset-legend' => 'رمزی یئنی‌له',
 'passwordreset-disabled' => 'بو ویکی‌ده رمزی یئنی‌له‌مک باغلانیب‌دیر.',
 'passwordreset-pretext' => '{{PLURAL:$1|آشاغیداکی وئری پارچالارینین بیرینی وئرین}}',
@@ -629,13 +629,13 @@ $2',
 'passwordreset-capture-help' => 'بو قوطویا علامت قویساز، (گئچیجی رمزی اولان) ایمیل ایستیفاده‌چی‌یه گؤندریلن کیمی بوردا سیزه گؤستریله‌جکدیر.',
 'passwordreset-email' => 'ایمیل آدرسی:',
 'passwordreset-emailtitle' => '{{SITENAME}}-ده حساب بیلگیلری',
-'passwordreset-emailtext-ip' => 'بیر کس (احتیمالاً سیز، $1 آی‌پی آدرسی‌له)، {{SITENAME}} ($4) سایتینداکی حسابینیز اوچون یادا سالما بیلگیلری ایسته‌ییب‌دیر. آشاغیداکی ایستیفاده‌چی {{PLURAL:$3|حسابی|حسابلاری}} بو ایمیل ایله ایلگی‌لی‌دیرلر:
+'passwordreset-emailtext-ip' => 'بیر کس (احتیمالاً سیز، $1 آی‌پی آدرسی‌له)، {{SITENAME}} ($4) سایتینداکی حسابینیز اوچون رمزی یئنیله‌مک ایسته‌ییب‌دیر. آشاغیداکی ایستیفاده‌چی {{PLURAL:$3|حسابی|حسابلاری}} بو ایمیل ایله ایلگی‌لی‌دیرلر:
 
 $2
 
 بو گئچیجی {{PLURAL:$3|رمز|رمزلر}}، {{PLURAL:$5|بیر گون|$5 گون}}‌ده {{PLURAL:$3|واختی|واختلاری}} قورتاراجاق‌دیر.
 سیز گرک ایندی سایتا گیریب و یئنی بیر رمز سئچه‌سینیز. باشقا آدام بو ایستَگی وئرمیش‌سه، یوخسا سیز اسکی رمزینیزی یادا گتیرمیشسینیزسه، و داها اونو چئویرمک ایسته‌میرسینیزسه، بو مئساژی سایماییب و اسکی رمزینیزی ایشلدمگه داوام ائده بیلرسینیز.',
-'passwordreset-emailtext-user' => '{{SITENAME}} سایتیندا، $1 ایستیفاده‌چی، سیزین اوردا ($4) حسابینیز بیلگیلری اوچون بیر یادا سالما ایستگی وئریب‌دیر. آشاغیداکی {{PLURAL:$3|ایستیفاده‌چی|ایستیفاده‌چیلر}} بو ایمیل ایله ایلگیلیدیرلر:
+'passwordreset-emailtext-user' => '{{SITENAME}} سایتیندا، $1 ایستیفاده‌چی، سیزین اوردا ($4) حسابینیزین رمزینی یئنیله‌مک ایستگی وئریب‌دیر. آشاغیداکی {{PLURAL:$3|ایستیفاده‌چی|ایستیفاده‌چیلر}} بو ایمیل ایله ایلگیلیدیرلر:
 
 $2
 
@@ -643,9 +643,9 @@ $2
 سیز گرک ایندی گیریب و بیر یئنی رمز سئچه‌سینیز. باشقا آدام بو ایستَگی وئرمیش‌سه، یوخسا سیز اسکی رمزینیزی یادا گتیرمیشسینیزسه، و داها اونو چئویرمک ایسته‌میرسینیزسه، بو مئساژی سایماییب و اسکی رمزینیزی ایشلدمگه داوام ائده بیلرسینیز.',
 'passwordreset-emailelement' => 'ایستیفاده‌چی آدی: $1
 گئچیجی رمز: $2',
-'passwordreset-emailsent' => 'بیر یادا سالما ایمیلی گؤندریلیب‌دیر.',
-'passwordreset-emailsent-capture' => 'آشاغیدا گؤستریلن کیمی بیر یادا سالما ایمیلی گؤندریلیب‌دیر.',
-'passwordreset-emailerror-capture' => 'آشاغیدا گؤستریلن کیمی بیر یادا سالما ایمیل یارادیلیب‌دیر، اما ایستیفاده‌چی‌یه گؤندرمگی باشاریلی اولمادی: $1',
+'passwordreset-emailsent' => 'بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.',
+'passwordreset-emailsent-capture' => 'آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی گؤندریلیب‌دیر.',
+'passwordreset-emailerror-capture' => 'آشاغیدا گؤستریلن کیمی بیر رمز یئنیله‌مه ایمیلی یارادیلیب‌دیر، اما ایستیفاده‌چی‌یه گؤندرمگی باشاریلی اولمادی: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'ایمیل آدرسینی دَییشدیر',
@@ -2875,7 +2875,7 @@ $1 آدلی ایستیفاده‌چی‌نین باغلانما سببی: "$2"',
 'pageinfo-robot-noindex' => 'ایندِکسله‌نه بیلمز',
 'pageinfo-views' => 'گؤسترمه صحیفه‌سی',
 'pageinfo-watchers' => 'صحیفه‌نین تاماشا‌چی سایی',
-'pageinfo-few-watchers' => '$1-دن آز {{PLURAL:$1|ایزله‌ین|ایزله‌ین}}',
+'pageinfo-few-watchers' => '$1-دن آز {{PLURAL:$1|ایزله‌ین}}',
 'pageinfo-redirects-name' => 'بو صحیفه‌یه یول‌لاندیرمالار',
 'pageinfo-subpages-name' => 'بو صحیفه‌نین آلت‌صحیفه‌لری',
 'pageinfo-subpages-value' => '$1 ({{PLURAL:$2|بیر|$2}} یول‌لاندیرما؛ {{PLURAL:$3|بیر|$3}} قِیری-یول‌لاندیرما)',
@@ -3706,10 +3706,10 @@ $5
 'sqlite-no-fts' => '$1 بوتون یازی آختارماماق‌لا',
 
 # New logging system
-'logentry-delete-delete' => '$1، $3 صحیفه‌سینی سیلدی',
-'logentry-delete-restore' => '$1، $3 صحیفه‌سینی قایتاردی',
-'logentry-delete-event' => '$1، $3-ده $5 سیاهی اولایینین {{PLURAL:$5|گؤرونوشونو|گؤرونوشلرینی}} دَییشدیردی: $4',
-'logentry-delete-revision' => '$1، $3 صحیفه‌سینده $5 نوسخه‌نین {{PLURAL:گؤرونوشونو|گؤرونوشلرینی}} دَییشدیردی: $4',
+'logentry-delete-delete' => '$1، $3 صحیفه‌سینی {{GENDER:$2|سیلدی}}',
+'logentry-delete-restore' => '$1، $3 صحیفه‌سینی {{GENDER:$2|قایتاردی}}',
+'logentry-delete-event' => '$1، $3-ده $5 سیاهی اولایینین {{PLURAL:$5|گؤرونوشونو|گؤرونوشلرینی}} {{GENDER:$2|دَییشدیردی}}: $4',
+'logentry-delete-revision' => '$1، $3 صحیفه‌سینده $5 نوسخه‌نین {{PLURAL:گؤرونوشونو|گؤرونوشلرینی}} {{GENDER:$2|دَییشدیردی}}: $4',
 'logentry-delete-event-legacy' => '$1، $3-ده سیاهی اولایلارینین گؤرونوشلرینی دَییشدیردی',
 'logentry-delete-revision-legacy' => '$1، $3 صحیفه‌سینده نوسخه‌لرین گؤرونوشلرینی دَییشدیردی',
 'logentry-suppress-delete' => '$1، $3 صحیفه‌سینی یاتیردی',
index 85246aa..d8a85a7 100644 (file)
@@ -11,6 +11,7 @@
  * @author Comp1089
  * @author Haqmar
  * @author Kaganer
+ * @author Matma Rex
  * @author Reedy
  * @author Roustammr
  * @author Sagan
@@ -958,7 +959,7 @@ $3 белдергән сәбәп: ''$2''",
 'currentrev' => 'Ағымдағы версия',
 'currentrev-asof' => '$1, ағымдағы версия',
 'revisionasof' => '$1 версияһы',
-'revision-info' => '<div id="viewingold-warning" style="background: #FFBDBD; border: 1px solid #BB7979; color: #000000; margin: 1em 0 .5em; padding: .5em 1em; vertical-align: middle; font-weight: bold; font-family: Palatino Linotype, Microsoft Sans Serif, Arial Unicode MS, Droid Sans; clear: both;">Хәҙер һеҙ был биттең иҫке, <span id="mw-revision-name">$2</span> тарафынан <span id="mw-revision-date">$1</span> һаҡланған версияһын ҡарайһығыҙ. Уның <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}}} ағымдағы версиянан] айырмаһы булыуы мөмкин</span>.</div>',
+'revision-info' => 'Версия: $1; $2',
 'previousrevision' => '← Алдағы',
 'nextrevision' => 'Киләһе →',
 'currentrevisionlink' => 'Ағымдағы версия',
index 001d6bf..85e0588 100644 (file)
@@ -889,7 +889,7 @@ $3-এর দেয়া কারণ হল ''$2''",
 'last' => 'পূর্ববর্তী',
 'page_first' => 'প্রথম',
 'page_last' => 'শেষ',
-'histlegend' => 'পার্থক্য (Diff) নির্বাচন: যে সংস্করণগুলো তুলনা করতে চান, সেগুলো চিহ্নিত করে এন্টার বা নিচের বোতামটি টিপুন।<br />
+'histlegend' => 'পার্থক্য নির্বাচন: যে সংস্করণগুলো তুলনা করতে চান, সেগুলো চিহ্নিত করে এন্টার বা নিচের বোতামটি টিপুন।<br />
 নির্দেশিকা: (বর্তমান) = বর্তমান সংস্করণের সাথে পার্থক্য, (পূর্ববর্তী) =  পূর্বের সংস্করণের সাথে পার্থক্য, অ = অনুল্লেখ্য সম্পাদনা।',
 'history-fieldset-title' => 'ব্রাউজ ইতিহাস',
 'history-show-deleted' => 'শুধুমাত্র অপসারণ',
@@ -2834,6 +2834,7 @@ $1',
 
 # Skin names
 'skinname-standard' => 'ক্লাসিক',
+'skinname-vector' => 'ভেক্টর',
 
 # Patrolling
 'markaspatrolleddiff' => 'পরীক্ষিত বলে চিহ্নিত করুন',
@@ -3594,14 +3595,15 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 # New logging system
 'logentry-delete-delete' => '$1 কর্তৃক $3 পাতাটি অপসারিত হয়েছে',
 'logentry-delete-restore' => '$1 কর্তৃক $3 পাতাটি {{GENDER:$2|ফিরিয়ে আনা}} হয়েছে',
-'logentry-delete-event' => '$1 {{PLURAL:$5|একটি লগ ইভেন্টের|$5 লগ ইভেন্টসমূহর}} ভিজিবিলিটি পরিবর্তন করেছেন $3: $4',
-'logentry-delete-revision' => '$1 {{PLURAL:$5|একটি সংস্করণের|$5 সংস্করণসমূহর}} ভিজিবিলিটি পরিবর্তন করেছেন $3: $4',
-'logentry-delete-event-legacy' => '$1 $3টায় লগ ইভেন্টসমূহরে ভিজিবিলিটি পরিবর্তন করেছেন',
-'logentry-delete-revision-legacy' => '$1 $3টায় সংস্করণসমূহরে ভিজিবিলিটি পরিবর্তন করেছেন',
-'logentry-suppress-event' => '$1 গোপনে {{PLURAL:$5|একটি লগ ইভেন্টের|$5 লগ ইভেন্টসমূহর}} ভিজিবিলিটি পরিবর্তন করেছেন $3: $4',
-'logentry-suppress-revision' => '$1 গোপনে {{PLURAL:$5|একটি সংস্করণের|$5 সংস্করণসমূহর}} ভিজিবিলিটি পরিবর্তন করেছেন $3: $4',
-'logentry-suppress-event-legacy' => '$1 গোপনে $3টায় লগ ইভেন্টসমূহরে ভিজিবিলিটি পরিবর্তন করেছেন',
-'logentry-suppress-revision-legacy' => '$1 গোপনে $3টায় সংস্করণসমূহরে ভিজিবিলিটি পরিবর্তন করেছেন',
+'logentry-delete-event' => '$1 {{PLURAL:$5|একটি লগ ইভেন্টের|$5 লগ ইভেন্টসমূহের}} ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4',
+'logentry-delete-revision' => '$1 {{PLURAL:$5|একটি সংস্করণের|$5 সংস্করণসমূহের}} ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4',
+'logentry-delete-event-legacy' => '$1 $3টায় লগ ইভেন্টসমূহের ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন',
+'logentry-delete-revision-legacy' => '$1 $3টায় সংস্করণসমূহের ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন',
+'logentry-suppress-delete' => '$1 কর্তৃক $3 পাতাটি {{GENDER:$2|ফিরিয়ে আনা}} হয়েছে',
+'logentry-suppress-event' => '$1 গোপনে {{PLURAL:$5|একটি লগ ইভেন্টের|$5 লগ ইভেন্টসমূহের}} ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4',
+'logentry-suppress-revision' => '$1 গোপনে {{PLURAL:$5|একটি সংস্করণের|$5 সংস্করণসমূহের}} ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন $3: $4',
+'logentry-suppress-event-legacy' => '$1 গোপনে $3টায় লগ ইভেন্টসমূহের ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন',
+'logentry-suppress-revision-legacy' => '$1 গোপনে $3টায় সংস্করণসমূহের ভিজিবিলিটি {{GENDER:$2|পরিবর্তন}} করেছেন',
 'revdelete-content-hid' => 'বিষয়বস্তু লুকায়িত',
 'revdelete-summary-hid' => 'সম্পাদনা সারাংশ লুকায়িত',
 'revdelete-uname-hid' => 'ব্যবহারকারী নাম লুকায়িত',
@@ -3610,17 +3612,18 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'revdelete-uname-unhid' => 'ব্যবহারকারী নাম প্রদর্শিত',
 'revdelete-restricted' => 'এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে প্রয়োগ করো',
 'revdelete-unrestricted' => 'এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে তুলে নাও',
-'logentry-move-move' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে স্থানান্তর করেছেন',
-'logentry-move-move-noredirect' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে কোনো পুনর্নির্দেশনা ছাড়াই স্থানান্তর করেছেন',
-'logentry-move-move_redir' => '$1 à¦¬à§\8dযবহারà¦\95ারà§\80 $3 à¦ªà¦¾à¦¤à¦¾à¦\9fিà¦\95à§\87 $4 à¦¶à¦¿à¦°à§\8bনামà§\87 à¦ªà§\81নিরà§\8dনিরà§\8dদà§\87শনার à¦\93পর à¦¦à¦¿à¦¯à¦¼à§\87 à¦¸à§\8dথানানà§\8dতর করেছেন',
-'logentry-move-move_redir-noredirect' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে পুনর্নির্দেশনার ওপর দিয়ে কোনো পুনর্নির্দেশনা ছাড়াই স্থানান্তর করেছেন',
+'logentry-move-move' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে {{GENDER:$2|স্থানান্তর}} করেছেন',
+'logentry-move-move-noredirect' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে কোনো পুনর্নির্দেশনা ছাড়াই {{GENDER:$2|স্থানান্তর}} করেছেন',
+'logentry-move-move_redir' => '$1 à¦¬à§\8dযবহারà¦\95ারà§\80 $3 à¦ªà¦¾à¦¤à¦¾à¦\9fিà¦\95à§\87 $4 à¦¶à¦¿à¦°à§\8bনামà§\87 à¦ªà§\81নিরà§\8dনিরà§\8dদà§\87শনার à¦®à¦¾à¦§à§\8dযমà§\87 {{GENDER:$2|সà§\8dথানানà§\8dতর}} করেছেন',
+'logentry-move-move_redir-noredirect' => '$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে পুনর্নির্দেশনা ছাড়াই {{GENDER:$2|স্থানান্তর}} করেছেন',
 'logentry-patrol-patrol' => '$1 ব্যবহারকারী $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে {{GENDER:$2|চিহ্নিত}} করেছেন',
-'logentry-patrol-patrol-auto' => '$1 ব্যবহারকারী স্বয়ংক্রিয়ভাবে $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে {GENDER:$2|চিহ্নিত}} করেছেন',
-'logentry-newusers-newusers' => '$1 ব্যবহারকারী অ্যাকাউন্টটি {GENDER:$2|তৈরি করা}} হয়েছে',
-'logentry-newusers-create' => '$1 অ্যাকাউন্টটি তৈরী করা হয়েছে',
-'logentry-newusers-create2' => '$1 ব্যবহারকারী $3 নামের অ্যাকাউন্টটি তৈরী করেছেন',
-'logentry-newusers-autocreate' => '$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে তৈরি হয়েছে',
-'logentry-rights-rights' => '$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ পরিবর্তন করেছেন',
+'logentry-patrol-patrol-auto' => '$1 ব্যবহারকারী স্বয়ংক্রিয়ভাবে $3 পাতার $4 নম্বর সংস্করণ পরীক্ষিত বলে {{GENDER:$2|চিহ্নিত}} করেছেন',
+'logentry-newusers-newusers' => '$1 ব্যবহারকারী অ্যাকাউন্টটি {{GENDER:$2|তৈরি করা}} হয়েছে',
+'logentry-newusers-create' => '$1 অ্যাকাউন্টটি {{GENDER:$2|তৈরী করা}} হয়েছে',
+'logentry-newusers-create2' => '$1 ব্যবহারকারী $3 নামের অ্যাকাউন্টটি {{GENDER:$2|তৈরী}} করেছেন',
+'logentry-newusers-byemail' => '$1, $3 ব্যবহারকরী অ্যাকাউন্টটি {{GENDER:$2|তৈরী করেছেন}} এবং পাসওয়ার্ড ইমেইলের মাধ্যমে পাঠানো হয়েছে',
+'logentry-newusers-autocreate' => '$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে {{GENDER:$2|তৈরি}} হয়েছে',
+'logentry-rights-rights' => '$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন',
 'logentry-rights-autopromote' => '$1 সয়ংক্রিয়ভাবে $4 থেকে $5 এ {{GENDER:$2|উন্নীত}} হয়েছে',
 'rightsnone' => '(কিছু নাই)',
 
index 020c424..1fdb49c 100644 (file)
@@ -2635,30 +2635,31 @@ Recordeu-vos de [[Special:UnlockDB|treure el bloqueig]] quan hàgiu acabat el ma
 'move-page' => 'Mou $1',
 'move-page-legend' => 'Reanomena la pàgina',
 'movepagetext' => "Amb el formulari següent reanomenareu una pàgina, movent tot el seu historial al nou nom.
-El títol anterior es convertirà en una redirecció al títol que hàgiu creat.
-Podeu actualitzar automàticament els enllaços a l'antic títol de la pàgina.
-Si no ho feu, assegureu-vos de verificar que no deixeu redireccions [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|trencades]].
-Serà de la vostra responsabilitat verificar que els enllaços seguirien apuntant cap a on se suposa que ho han de fer.
+El títol anterior es convertirà en una pàgina de redirecció al nou títol.
+Podeu actualitzar automàticament les redireccions que apuntin al títol original.
+Si no ho feu, assegureu-vos de verificar les redireccions [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|trencades]].
+Serà de la vostra responsabilitat verificar que els enllaços segueixin apuntant cap a on se suposa que ho han de fer.
 
-Tingueu en compte que la pàgina '''no''' serà traslladada si ja existeix una pàgina amb el títol nou, a no ser que sigui una pàgina buida o una ''redirecció'' sense historial.
+Tingueu en compte que la pàgina '''no''' serà traslladada si ja existeix una pàgina amb el títol nou, a no ser que sigui una redirecció sense més historial.
 Això significa que podeu reanomenar de nou una pàgina al seu títol original si cometeu un error, i que no podeu sobreescriure una pàgina existent.
 
-'''ADVERTÈNCIA!'''
-Açò pot ser un canvi dràstic i inesperat en una pàgina que sigui popular; assegureu-vos d'entendre les conseqüències que comporta abans de seguir endavant.",
-'movepagetext-noredirectfixer' => "El títol anterior es convertirà en un redireccionament al nou títol. 
+'''Atenció!'''
+Açò pot ser un canvi dràstic i inesperat en una pàgina que sigui popular; 
+assegureu-vos d'entendre les conseqüències que comporta abans de seguir endavant.",
+'movepagetext-noredirectfixer' => "Amb el formulari següent podeu reanomenar una pàgina movent tot el seu historial al nom nou.
+El títol anterior es convertirà en una pàgina de redirecció al nou títol. 
+Assegureu-vos de verificar les redireccions [[Special:DoubleRedirects|dobles]] o [[Special:BrokenRedirects|trencades]].
+És responsabilitat vostra assegurar que els enllaços continuen apuntant cap a on se suposa que han d'anar. 
 
-Assegureu-vos de verificar els redireccionaments [[Special:DoubleRedirects|doble]]s i els [[Special:BrokenRedirects|trencat]]s.
-
-Sigueu responsable de fer que els enllaços continuen apuntant cap a on se suposa que han d'anar. 
-
-Tingueu en compte que la pàgina '''no''' serà traslladada si ja existeix una pàgina amb el títol nou proposat, tret del cas que la pàgina és buida o no n'hi ha un historial de redireccionaments. 
-
-Això significa que si reanomeneu per equivocació una pàgina amb el seu nom anterior no ho podreu fer, ja que no es pot sobreescriure una pàgina existent.
+Tingueu en compte que la pàgina '''no''' serà traslladada si ja existeix una pàgina amb el títol nou, a no ser que sigui una redirecció i no tingui més historial. 
+Això significa que podeu reanomenar de nou una pàgina al seu títol original si cometeu un error, i que no podeu sobreescriure una pàgina existent.
  
-'''Avís:''' Això pot ser un canvi dràstic i inesperat per una pàgina popular; si us plau, assegureu-vos que sabeu el que feu abans de continuar.",
-'movepagetalktext' => "La pàgina de discussió associada, si existeix, serà traslladada automàticament '''tret dels següents casos''':
-* Ja hi existeix una pàgina de discussió no buida amb el nou nom, o si
-* la opció de davall es troba desactivada
+'''Atenció!''' 
+Això pot ser un canvi dràstic i inesperat per una pàgina popular; 
+assegureu-vos que sabeu el que feu abans de continuar.",
+'movepagetalktext' => "La pàgina de discussió associada també serà traslladada automàticament '''a no ser que''':
+* Ja existeix una pàgina de discussió no buida amb el nou nom, o
+* Desactiveu la opció de més avall.
 
 En aquests casos, haureu de traslladar o fusionar la pàgina manualment si ho desitgeu.",
 'movearticle' => 'Reanomena la pàgina',
index c2980ab..8cd2418 100644 (file)
@@ -363,7 +363,7 @@ $messages = array(
 'categorypage' => 'په‌ڕه‌ی هاوپۆل نیشانبده‌',
 'viewtalkpage' => 'بینینی لێدوان',
 'otherlanguages' => 'بە زمانەکانی تر',
-'redirectedfrom' => '(ڕەوانەکراوە لە $1 ەوە)',
+'redirectedfrom' => '(ڕەوانەکراوە لە $1ەوە)',
 'redirectpagesub' => 'پەڕەی ڕەوانەکردن',
 'lastmodifiedat' => 'ئەم پەڕەیە دواجار لە $2ی $1 نوێ کراوەتەوە.',
 'viewcount' => 'ئەم پەڕەیە {{PLURAL:$1|یەکجار|$1 جار}} بینراوە.',
@@ -1386,7 +1386,7 @@ $1",
 'right-browsearchive' => 'گەڕانی پەڕە سڕاوەکان',
 'right-undelete' => 'هاوەردنەوەی لاپەڕەیەک',
 'right-suppressrevision' => 'چاوپێداخشان و هاردنوەی ئەو لاپەڕانەی لە بەڕێوبەران داشاردرابوو.',
-'right-suppressionlog' => 'دیتنی لۆگە ئەهلیەکان',
+'right-suppressionlog' => 'دیتنی لۆگە نھێنییەکان',
 'right-block' => 'بەربەستنی بەکارھێنەرانی تر لە دەستکاری کردن',
 'right-blockemail' => 'بەرگری بەکارهێنەرێک بکە لە ناردنی ئیمەیل',
 'right-hideuser' => 'بەربەست‌کردنی ناوێکی بەکارهێنەری، داشاردنی لە بەرچاوی هەموان',
@@ -1412,7 +1412,7 @@ $1",
 'right-userrights-interwiki' => 'دەستکاری مافەکانی بەکارهێنەریی بەکارهێنەران لە ویکی‌یەکانی دیکە‌دا',
 'right-siteadmin' => 'داخستن و کردنەوەی بنکەدراو',
 'right-override-export-depth' => 'هەناردنی لاپەڕەکان کە لاپەڕەکانی بەستەر پێ‌دراو تا قووڵایی 5 لەخۆ بگرێت',
-'right-sendemail' => 'ئەمەیل بنێرە بۆ بەکارھێنەرانی تر',
+'right-sendemail' => 'ناردنی ئیمەیل بۆ بەکارھێنەرانی تر',
 
 # Special:Log/newusers
 'newuserlogpage' => 'لۆگی دروستکردنی بەکارھێنەر',
@@ -1459,7 +1459,7 @@ $1",
 'action-sendemail' => 'ناردنی ئیمەیلەکان',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|گۆڕانکاری|گۆڕانکاری}}',
+'nchanges' => '$1 {{PLURAL:$1|گۆڕانکاری}}',
 'recentchanges' => 'دوایین گۆڕانکارییەکان',
 'recentchanges-legend' => 'ھەڵبژاردەکانی دوایین گۆڕانکارییەکان',
 'recentchanges-summary' => 'دوایین گۆڕانکارییەکانیی ویکی لەم پەڕەیەدا ببینە.',
@@ -1485,8 +1485,8 @@ $1",
 'minoreditletter' => 'ب',
 'newpageletter' => 'ن',
 'boteditletter' => '.بۆت',
-'number_of_watching_users_pageview' => '[$1 چاودێر لەسەر {{PLURAL:$1|بەکارهێنەر|بەکارهێنەر}}]',
-'rc_categories' => 'بەرتەسک‌کردنەوە بە هاوپۆلەکان (به "|" جودای بکەوە‌)',
+'number_of_watching_users_pageview' => '[$1 چاودێر لەسەر {{PLURAL:$1|بەکارھێنەر}}]',
+'rc_categories' => 'بەرتەسک‌کردنەوە بە هاوپۆلەکان (به «|» جیای بکەوە‌)',
 'rc_categories_any' => 'هەرکام',
 'rc-change-size-new' => '$1 {{PLURAL:$1|بایت}} پاش گۆڕانکاری',
 'newsectionsummary' => '/* $1 */ بەشی نوێ',
@@ -1533,8 +1533,8 @@ $1",
 'uploadlogpagetext' => 'لەخوارەوە لیستی دوایین بارکراوەکان دەبینی.
 بۆ ئەوەی چاوێکیان لێ بکەی، [[Special:NewFiles|گالەری پەڕگە نوێکان]] ببینە.',
 'filename' => 'ناوی پەڕگە',
-'filedesc' => 'پوختە',
-'fileuploadsummary' => 'پوختە:',
+'filedesc' => 'کورتە',
+'fileuploadsummary' => 'کورتە:',
 'filereuploadsummary' => 'گۆرانکارییەکانی پەڕگە:',
 'filestatus' => 'بارودۆخی مافی لەبەرگرتنەوە:',
 'filesource' => 'سەرچاوە:',
@@ -1980,7 +1980,7 @@ $1',
 'listgrouprights-group' => 'گرووپ',
 'listgrouprights-rights' => 'مافەکان',
 'listgrouprights-helppage' => 'Help:مافەکانی گرووپ',
-'listgrouprights-members' => '(Ù\84Û\8cستی ئەندامەکان)',
+'listgrouprights-members' => '(Ù¾Û\8eرستی ئەندامەکان)',
 'listgrouprights-addgroup' => 'زیادکردنی {{PLURAL:$2|گرووپ|گرووپ}}: $1',
 'listgrouprights-removegroup' => 'لابردنی {{PLURAL:$2|گرووپ|گرووپ}}: $1',
 'listgrouprights-addgroup-all' => 'زیادکردنی هەموو گرووپەکان',
@@ -2151,10 +2151,10 @@ $UNWATCHURL
 
 دوایین دەستکاری ئەم لاپەڕە [[User:$3|$3]] کردوویە ([[User talk:$3|وتووێژ]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "پوختەی دەستکاری \"''\$1''\" بوو.",
-'revertpage' => 'گەڕاندنەوەی دەستکارییەکانی [[Special:Contributions/$2|$2]] ([[User talk:$2|لێدوان]]) بۆ دوایین دەستکاریی [[User:$1|$1]]',
+'revertpage' => 'گەڕاندنەوەی دەستکارییەکانی [[Special:Contributions/$2|$2]] ([[User talk:$2|لێدوان]]) بۆ دوایین پێداچوونەوەی [[User:$1|$1]]',
 'revertpage-nouser' => 'دەستکارییەکانی (ناوی بەکارھێنەر سڕاوەتەوە) بۆ دوایین پێداچوونەوەی [[User:$1|$1]] گەڕێنراوە.',
 'rollback-success' => 'دەستکارییەکانی $1 وەرگێرایەوە؛<br />
-گۆڕدرا بۆ دوایین دەستکاریی $2.',
+گۆڕدرا بۆ دوایین پێداچوونەوەی $2.',
 
 # Edit tokens
 'sessionfailure' => 'لەوەدەچی کێشەیەک لە دانیشتنی چوونەژوورەوەت (login session)دا ببێت.
@@ -2305,7 +2305,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'ھەنووکە ئەم ناونیشانەی IPیە بەربەست کراوە.
 دوایین بابەتی لۆگی بەربەستن لە ژێرەوە ھاتووە:',
 'sp-contributions-search' => 'گەڕان بۆ بەشدارییەکان',
-'sp-contributions-username' => 'ناونیشانی ئای‌پی یان ناوی‌ بەکارھێنەری:',
+'sp-contributions-username' => 'ناونیشانی ئایپی یان ناوی‌ بەکارھێنەر:',
 'sp-contributions-toponly' => 'تەنیا ئەو دەستکارییانە نیشانبدە کە دوایین پیاچوونەوەن',
 'sp-contributions-submit' => 'بگەڕێ',
 
@@ -2337,7 +2337,7 @@ $1',
 'blockiptext' => 'لەم فۆرمەی خوارەوە دەتوانی بۆ بەربەست‌کردنی دەست‌پێ‌گەیشتنی نووسین لە ناونیشانێکی ئای‌پی تایبەت یا ناوی بەکارهێنەریەک، کەڵک وەرگریت.
 ئەمە تەنها دەبێ بۆ بەرگری لە خراپکاری بەکاربێت و ڕێکەوتنی هەبێ دەگەڵ [[{{MediaWiki:Policy-url}}|سیاسەتەکان]].
 لە خوارەوە هۆکارێک بە ڕوونی بنووسە (بۆ نموونە بە وردی ئەو لاپەڕانە و خراپکاری تێدا کراوە وەک، وەک بەڵگە، بنووسە).',
-'ipadressorusername' => 'ناونیشانی ئای‌پی یان ناوی‌ بەکارهێنەری:',
+'ipadressorusername' => 'ناونیشانی ئایپی یان ناوی‌ بەکارھێنەر:',
 'ipbexpiry' => 'بەسەرچوون:',
 'ipbreason' => 'هۆکار:',
 'ipbreasonotherlist' => 'هۆکاری تر',
@@ -2722,7 +2722,7 @@ $1',
 'tooltip-watchlistedit-raw-submit' => 'نوێکردنەوەی لیستی چاودێری',
 'tooltip-recreate' => 'درووست‌کردنەوەی لاپەڕە ئەگەرچی سڕاوەتەوە',
 'tooltip-upload' => 'دەستپێکردنی بارکردن',
-'tooltip-rollback' => '«گەڕاندنەوە» بە یەک کرتە گۆڕانکاریی/گۆڕانکارییەکانی ئەم پەڕەیە دەگەڕێنێتەوە بۆ دواین بەشداربوو',
+'tooltip-rollback' => '«گەڕاندنەوە» بە یەک کرتە گۆڕانکاریی/گۆڕانکارییەکانی ئەم پەڕەیە دەگەڕێنێتەوە بۆ دوایین بەشداربوو',
 'tooltip-undo' => '«پووچەڵکردنەوە» ئەم گۆڕانکارییە دەگەڕێنێتەوە و فۆرمی دەستکاریکردن لە شێوەی پێشبینیندا دەکاتەوە. بەم جۆرە دەکرێ ھۆکارێک لە کورتەی دەستکاریدا بنووسرێ.',
 'tooltip-preferences-save' => 'هەڵبژاردنەکانت بپارێزە',
 'tooltip-summary' => 'پوختەیەکی کورتی تێبخە',
index ab81729..6e72f5f 100644 (file)
@@ -1463,8 +1463,8 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'rclinks' => 'Dangos y $1 newid diweddaraf yn ystod y(r) $2 diwrnod diwethaf<br />$3',
 'diff' => 'gwahan',
 'hist' => 'hanes',
-'hide' => 'Cuddio',
-'show' => 'Dangos',
+'hide' => 'Cuddier',
+'show' => 'Dangoser',
 'minoreditletter' => 'B',
 'newpageletter' => 'N',
 'boteditletter' => 'b',
@@ -3736,7 +3736,7 @@ Dangosir delweddau ar eu maint llawn, dechreuir ffeiliau o fathau eraill yn unio
 'revdelete-unrestricted' => 'tynnwyd y cyfyngiadau ar allu gweinyddwyr i weld',
 'logentry-move-move' => 'Symudodd $1 y dudalen $3 i $4',
 'logentry-move-move-noredirect' => 'Symudodd $1 y dudalen $3 i $4 heb adael dolen ailgyfeirio',
-'logentry-move-move_redir' => 'Symudwyd y dudalen $3 i $4 gan $1 dros y ddolen ailgyfeirio',
+'logentry-move-move_redir' => '{{GENDER:$2|Symudwyd}} y dudalen $3 i $4 gan $1 dros y ddolen ailgyfeirio',
 'logentry-move-move_redir-noredirect' => 'Symudwyd y dudalen $3 i $4 gan $1 dros ddolen ailgyfeirio heb adael dolen ailgyfeirio newydd',
 'logentry-patrol-patrol' => "Rhoddodd $1 nod ar ddiwygiad $4 o'r dudalen $3 yn dynodi ei fod wedi derbyn ymweliad patrôl",
 'logentry-patrol-patrol-auto' => "Rhoddodd $1 nod yn awtomatig ar ddiwygiad $4 o'r dudalen $3 yn dynodi ei fod wedi derbyn ymweliad patrôl",
index 9c58c96..9ede4da 100644 (file)
@@ -3329,10 +3329,10 @@ Durch das Herunterladen und Öffnen der Datei kann dein Computer beschädigt wer
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'seconds' => '{{PLURAL:$1|$1 Sekunde|$1 Sekunden}}',
 'minutes' => '{{PLURAL:$1|$1 Minute|$1 Minuten}}',
-'hours' => '{{PLURAL:$1|einer Stunde|$1 Stunden}}',
+'hours' => '{{PLURAL:$1|1 Stunde|$1 Stunden}}',
 'days' => '{{PLURAL:$1|$1 Tag|$1 Tage}}',
-'months' => '{{PLURAL:$1|Ein Monat|$1 Monate}}',
-'years' => '{{PLURAL:$1|Ein Jahr|$1 Jahre}}',
+'months' => '{{PLURAL:$1|1 Monat|$1 Monate}}',
+'years' => '{{PLURAL:$1|1 Jahr|$1 Jahre}}',
 'ago' => 'vor $1',
 'just-now' => 'Gerade eben',
 
index 0019ad1..ea0ee2a 100644 (file)
@@ -12,6 +12,7 @@
  * @author Belekvor
  * @author Erdemaslancan
  * @author George Animal
+ * @author Gorizon
  * @author Kaganer
  * @author Mirzali
  * @author Nemo bis
@@ -421,11 +422,11 @@ $messages = array(
 'pagecategories' => '{{PLURAL:$1|Kategoriye|Kategoriy}}',
 'category_header' => 'Pelê ke kategoriya "$1" derê',
 'subcategories' => 'Kategoriyê bınêni',
-'category-media-header' => 'Dosyeyê ke kategoriya da "$1" deyê',
+'category-media-header' => 'Dosyeyê ke kategoriya "$1" derê',
 'category-empty' => "''Ena kategoriye de hewna qet nuştey ya zi medya çıniyê.''",
 'hidden-categories' => '{{PLURAL:$1|Kategoriya nımıtiye|Kategoriyê nımıtey}}',
 'hidden-category-category' => 'Kategoriyê nımıtey',
-'category-subcat-count' => '{{PLURAL:$2|Na kategoriye de ena kategoriya bınêne esta.|Na kategoriye de $2 ra pêro pia, {{PLURAL:$1|ena kategoriya bınêne esta|enê $1 kategoriyê bınêni estê.}}, be $2 ra pêro pia.}}',
+'category-subcat-count' => '{{PLURAL:$2|Na kategoriye de ena kategoriya bınêne esta.|Na kategoriye de $2 ra pêro piya, {{PLURAL:$1|ena kategoriya bınêne esta|enê $1 kategoriyê bınêni estê.}}, be $2 ra pêro piya.}}',
 'category-subcat-count-limited' => 'Na kategoriye de {{PLURAL:$1|ena kategoriya bınêne esta|enê $1 kategoriyê bınêni estê}}.',
 'category-article-count' => '{{PLURAL:$2|Na kategoriye de teyna ena pele esta.|Na kategoriye de $2 ra pêro pia, {{PLURAL:$1|ena pele esta|enê $1 peli estê.}}, be $2 ra pêro pia}}',
 'category-article-count-limited' => '{{PLURAL:$1|Pela cêrêne|$1 Pelê cêrêni}} na kategoriye derê.',
@@ -445,7 +446,8 @@ $messages = array(
 'newwindow' => '(pençereyê newey de beno a)',
 'cancel' => 'Bıtexelne',
 'moredotdotdot' => 'Vêşi...',
-'mypage' => 'Per',
+'morenotlisted' => 'Vêşêri lista nêbi...',
+'mypage' => 'Pele',
 'mytalk' => 'Werênayış',
 'anontalk' => 'Pela werênayışê nê IPy',
 'navigation' => 'Geyrayış',
@@ -878,6 +880,7 @@ Parola vêrdiye: $2',
 'changeemail-oldemail' => 'E-postay şımaya newki:',
 'changeemail-newemail' => 'E-posta adresiyo newe:',
 'changeemail-none' => '(Çıno)',
+'changeemail-password' => 'Parolaya şımaya {{SITENAME}}i:',
 'changeemail-submit' => 'E-postay xo bıvurne',
 'changeemail-cancel' => 'Bıtexelne',
 
@@ -1692,8 +1695,8 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'recentchangeslinked-toolbox' => 'Vurnayışê elaqeyıni',
 'recentchangeslinked-title' => 'vurnayışan ser "$1"',
 'recentchangeslinked-noresult' => 'Pelanê ke link biye ey vurnayîşî çino.',
-'recentchangeslinked-summary' => "Lista cêrêne, pela bêlikerdiye rê (ya zi karberanê kategoriya bêlikerdiye rê) pelanê gırêdaoğan de lista de vurnayışê peyênana.
-[[Special:Watchlist|Lista şımawa seyrkedışi de]] peli be nuşteyo '''qolınd''' bêli kerdê.",
+'recentchangeslinked-summary' => "Lista cêrêne, pela bêlikerdiye rê (ya zi karberanê kategoriya bêlikerdiye rê) pelanê gırêdayoğan de lista de vurnayışê peyênana.
+[[Special:Watchlist|Lista şımaya seyrkedışi de]] peli be nuşteyo '''qolınd''' bêli kerdê.",
 'recentchangeslinked-page' => 'Nameyê pele:',
 'recentchangeslinked-to' => 'Pelayan ke ena pela ri gire bi, ser ayi vurnayışi bımoc',
 
@@ -2079,6 +2082,8 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 'disambiguationspage' => 'Template:Maneo bin',
 'disambiguations-text' => "Peleyê ke satır da sıteyên dı pelanê '''maneo bin'''i rê esteyina zeregri mocnenê. Nara satırda dıdın dı zi <br />tiya de [[MediaWiki:Disambiguationspage|Pelaya Maneo do bini ]] gani heme gıreyê şablonê ciya-manayan re gıre dayış icab keno.",
 
+'pageswithprop-submit' => 'Şo',
+
 'doubleredirects' => 'Hetenayışê dıletıni',
 'doubleredirectstext' => 'no pel pelê ray motışani liste keno.
 gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
@@ -2511,7 +2516,7 @@ Tı eşkeno seviyeye kılit kerdışi bıvurno, feqat tı nıeşken "cascading p
 'restriction-edit' => 'Bıvurne',
 'restriction-move' => 'Berê',
 'restriction-create' => 'Vıraze',
-'restriction-upload' => 'Barke',
+'restriction-upload' => 'Bar ke',
 
 # Restriction levels
 'restriction-level-sysop' => 'pawıtışê tamamîye',
@@ -2591,12 +2596,12 @@ $1',
 'sp-contributions-newbies' => 'Tenya iştıraqanê karberanê neweyan bımocne',
 'sp-contributions-newbies-sub' => 'Qe hesebê newe',
 'sp-contributions-newbies-title' => 'Îştîrakê karberî ser hesabê neweyî',
-'sp-contributions-blocklog' => 'Qeydê kılit-kerdışi',
-'sp-contributions-deleted' => 'vurnayîşê karberî wedariyayê',
+'sp-contributions-blocklog' => 'Qeydê kılitkerdışi',
+'sp-contributions-deleted' => 'iştırakê karberiê esterıtey',
 'sp-contributions-uploads' => 'barkerdey',
 'sp-contributions-logs' => 'qeydi',
-'sp-contributions-talk' => 'mesac',
-'sp-contributions-userrights' => 'Îdarayê heqqanê karberan',
+'sp-contributions-talk' => 'werênayış',
+'sp-contributions-userrights' => 'İdareyê heqanê karberan',
 'sp-contributions-blocked-notice' => 'verniyê no/na karber/e geriyayo/a
 qê referansi qeydê vernigrewtışi cêr de eşkera biyo:',
 'sp-contributions-blocked-notice-anon' => 'Eno adresê IPi bloke biyo.
@@ -2702,8 +2707,8 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'ipblocklist-empty' => 'Lista kılitkerdışi venga.',
 'ipblocklist-no-results' => 'Adresa IPya waştiye ya zi namey karberi kılit nêbiyo.',
 'blocklink' => 'kılit ke',
-'unblocklink' => 'bloqi hewad',
-'change-blocklink' => 'kılit-kerdışi bıvurne',
+'unblocklink' => 'a ke',
+'change-blocklink' => 'kılitkerdışi bıvurne',
 'contribslink' => 'iştıraqi',
 'emaillink' => 'e-poste bırışe',
 'autoblocker' => 'Şıma otomatikmen kılit biy, çıke adresa şımawa \'\'IP\'\'y terefê "[[User:$1|$1]]" gureniyena.
@@ -2881,8 +2886,8 @@ ma vaci: qey pelê "[[{{MediaWiki:Mainpage}}]]i " [[{{#Special:Export}}/{{MediaW
 '''Not:''' pê no form teberdayişê verê (tarix) pelan battal biyo",
 'exportlistauthors' => 'zerre de qandê her pela listey iştiraxkara esto',
 'export-submit' => 'Teber de',
-'export-addcattext' => 'kategoriya cerıni ra maddeyan têare ker',
-'export-addcat' => 'têare ker',
+'export-addcattext' => 'Kategoriye ra pelan têare ke',
+'export-addcat' => 'Têare ke',
 'export-addnstext' => 'pelan cayê nameyan ra têare ker',
 'export-addns' => 'têare ker',
 'export-download' => 'yewna qaydeyi de qeydker',
@@ -3118,7 +3123,8 @@ Tı eşkeno yew sebeb bınus.',
 'pageinfo-recent-authors' => 'Amarina nuştekaran pêro',
 'pageinfo-magic-words' => '{{PLURAL:$1|Çekuya|Çekuyê}} ($1) sihırini',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategoriye|Kategoriyan}} ($1) bınımne',
-'pageinfo-templates' => '{{PLURAL:$1|Şablon|Şabloni}} ($1) açarneyayê',
+'pageinfo-templates' => '{{PLURAL:$1|Şablono|Şablonê}} ke mocniyenê ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|1 Pele|$1 Pelan}} de bestiya pıra',
 'pageinfo-toolboxlink' => 'Melumatê pele',
 'pageinfo-redirectsto' => 'Beno hetê',
 'pageinfo-redirectsto-info' => 'melumat',
@@ -3127,6 +3133,10 @@ Tı eşkeno yew sebeb bınus.',
 'pageinfo-protect-cascading' => 'Sıtarkerdey tiya cı ra yenê war',
 'pageinfo-protect-cascading-yes' => 'Heya',
 'pageinfo-protect-cascading-from' => 'Sıtarkerdey cı ra yenê war',
+'pageinfo-category-info' => 'Şınasiya kategoriye',
+'pageinfo-category-pages' => 'Amarê pelan',
+'pageinfo-category-subcats' => 'Amarê bınkategoriyan',
+'pageinfo-category-files' => 'Amarê dosyeyan',
 
 # Skin names
 'skinname-standard' => 'Klasik',
@@ -4073,7 +4083,7 @@ Resımi be tam asayış mocniyayê, tipê dosyaê bini be programê cıyo elaqed
 'specialpages-group-highuse' => 'Peleyê ke vêşi karênê',
 'specialpages-group-pages' => 'listeyanê pelan',
 'specialpages-group-pagetools' => 'Haletê pelan',
-'specialpages-group-wiki' => 'Malumatê wiki u haceti',
+'specialpages-group-wiki' => 'Melumat u haceti',
 'specialpages-group-redirects' => 'Pela xasîyê ke heteneyayê',
 'specialpages-group-spam' => 'haletê spami',
 
@@ -4147,9 +4157,9 @@ Ena sita dı newke xırabiya teknik esta.',
 'logentry-delete-restore' => "Karber $1' pelay $3' peyser grot",
 'logentry-delete-event' => '$1 asaneyaışê {{PLURAL:$5|weqey roceke|$5 weqey rocekan}} kerdi het de $3: $4 vurna',
 'logentry-delete-revision' => '$1 $3: pela da $4 dı  {{PLURAL:$5|jew revizyon|$5 revizyon}} asayışê cı vurna',
-'logentry-delete-event-legacy' => '$1 Asayışê vurnayışê $3 dekerde de',
+'logentry-delete-event-legacy' => '$1 Asayışê {{GENDER:$2|vurnayışê}} $3 dekerde de',
 'logentry-delete-revision-legacy' => '$1 revizyonê pela da $3 asayışê cı vurna',
-'logentry-suppress-delete' => '$1  $3 rê pıloxneyê',
+'logentry-suppress-delete' => '$1  $3 rê {{GENDER:$2|pıloxneyê}}',
 'logentry-suppress-event' => '$1 asayışê  {{PLURAL:$5|weqey rocaka|$5 weqey rocekan}}  $3: $4 miyanıki vurna',
 'logentry-suppress-revision' => '$1 $3: pela da $4 dı  {{PLURAL:$5|jew revizyon|$5 revizyon}} asayışê cı xısusiye vurna',
 'logentry-suppress-event-legacy' => '$1 Asayışê vurnayışê ciyo xısusiyeta cı $3 dekerde de',
@@ -4162,16 +4172,16 @@ Ena sita dı newke xırabiya teknik esta.',
 'revdelete-uname-unhid' => 'namey karberi ne nımteyo',
 'revdelete-restricted' => 'verger (vergırewtış) ê ke qey xızmkaran biye',
 'revdelete-unrestricted' => 'verger (ver gırewtış) ê ke qey xızmkaran diyê wera (wedariyê)',
-'logentry-move-move' => "Karber $1' pelay $3' berd $4",
+'logentry-move-move' => '$1 pera $3 {{GENDER:$2|berd}} $4',
 'logentry-move-move-noredirect' => "$1'i pelay $3 raçarnayış neker dı u berd $4",
 'logentry-move-move_redir' => 'Hetenayışi sera pela $3 ra $1 {{GENDER:$2|berd}} pela $4',
 'logentry-move-move_redir-noredirect' => '$1 hetenayışê qeydê pela da  $3 ahulnê $4 sero hetenayış vıraşt',
 'logentry-patrol-patrol' => '$1 revizyonê pela da $4 $3 ke kontrol',
 'logentry-patrol-patrol-auto' => "$1 pelay $3'i rewizyon dê $4 ya kontrol ke",
-'logentry-newusers-newusers' => 'Hesabê karberi $1 vıraziya',
+'logentry-newusers-newusers' => 'Hesabê karberê $1 {{GENDER:$2|vıraziya}}',
 'logentry-newusers-create' => 'Hesabê karberi $1 vıraziya',
 'logentry-newusers-create2' => 'Hesabê karberi $1 terefê $3 ra vıraziya',
-'logentry-newusers-autocreate' => 'Hesabê $1 Otomatikmen vıraziya',
+'logentry-newusers-autocreate' => 'Hesabê $1 Otomatikmen {{GENDER:$2|vıraşt}}',
 'logentry-rights-rights' => '$1 qandê $3 rê ezayina grube $4 ra $5 vuriye',
 'logentry-rights-rights-legacy' => '$1 qandê $3 rê ezayina grube vuriye',
 'logentry-rights-autopromote' => '$1 otomatikmen $4 ra terfi bi ra $5',
index a7dafad..a2ca9b8 100644 (file)
@@ -444,7 +444,9 @@ $1',
 'revisionasof' => '$1ގެ ނުސްހާ',
 'previousrevision' => '→ ކުރީގެ ނުސްހާ',
 'nextrevision' => 'ފަހުގެ ނުސްހާ ←',
+'cur' => 'އެންމެ ފަހުގެ',
 'next' => 'ކުރިޔަށް',
+'last' => 'ފަރަޤު',
 'histfirst' => 'އެންމެ ކުރީގެ',
 'histlast' => 'އެންމެ ފަހުގެ',
 
@@ -455,6 +457,7 @@ $1',
 # Diffs
 'lineno' => 'ފޮޅުވަތް $1:',
 'compareselectedversions' => 'އިހުތިޔާރު ކުރެވިފައިވާ ނުސްހާތައް އަޅައިކިޔުއްވާ',
+'editundo' => 'ކުރީގެ ނުސްހާއަށް ބަދަލުކުރައްވާ',
 
 # Search results
 'searchresults' => 'ހޯދުމުގެ ނަތީޖާ',
@@ -638,7 +641,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 # Special:ListGroupRights
 'listgrouprights-members' => '(މެމްބަރުންގެ ލިސްޓު)',
 
-# E-mail user
+# Email user
 'emailuser' => 'މި މެންބަރަށް އީމޭލު ފޮނުއްވާ',
 
 # Watchlist
@@ -780,6 +783,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'tooltip-preview' => 'ބަދަލުތައް ދައްކަވާ، ރައްކާކުރެއްވުމުގެ ކުރިން މި ބޭނުންކުރައްވާ!',
 'tooltip-watch' => 'މިޞަފްޙާއަށް ނަޒަރުބަހައްޓަވާ',
 'tooltip-rollback' => '"ކުރީގެ ނުސްހާ އަކަށް ބަދަލުކުރައްވާ" އިން މި ޞަފްޙާއަށް އެންމެ ފަހުން އުނިއިތުރު ގެންނެވި މެމްބަރުގެ އުނިއިތުރު(އުނިއިތުރުތައް) ފޮހެލެވޭނެއެވެ.',
+'tooltip-undo' => '"ކުރީގެ ނުސްހާއަށް ބަދަލުކުރައްވާ" އިން މި ނުސްހާގެ ކުރީގައި އިން ނުސްހާއަށް ބަދަލުކޮށްދޭނެއެވެ. އަދި އުނިއިތުރުގެ ޚުލާސާ ލިޔުމުގެ ފުރުސަތު ދޭނެއެވެ.',
 'tooltip-summary' => 'ކުރު ޚުލާސާއެއް ލިޔުއްވާ',
 
 # Info page
@@ -824,7 +828,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchlistall2' => 'ހުރިހާ',
 'namespacesall' => 'ހުރިހާ',
 
-# E-mail address confirmation
+# Email address confirmation
 'confirmemail' => 'އީމޭލު އެޑްރެސް ޔަގީންކުރައްވާ',
 
 # action=purge
index 52082af..adac7e9 100644 (file)
@@ -372,7 +372,6 @@ $magicWords = array(
  * hook.
  */
 $specialPageAliases = array(
-       'Activeusers'               => array( 'ActiveUsers' ),
        'Allmessages'               => array( 'AllMessages' ),
        'Allpages'                  => array( 'AllPages' ),
        'Ancientpages'              => array( 'AncientPages' ),
@@ -2780,16 +2779,6 @@ Supported {{PLURAL:$2|protocol|protocols}}: <code>$1</code> (defaults to http://
 'listusers-noresult' => 'No user found.',
 'listusers-blocked'  => '(blocked)',
 
-# Special:ActiveUsers
-'activeusers'            => 'Active users list',
-'activeusers-summary'    => '', # do not translate or duplicate this message to other languages
-'activeusers-intro'      => 'This is a list of users who had some kind of activity within the last $1 {{PLURAL:$1|day|days}}.',
-'activeusers-count'      => '$1 {{PLURAL:$1|action|actions}} in the last {{PLURAL:$3|day|$3 days}}',
-'activeusers-from'       => 'Display users starting at:',
-'activeusers-hidebots'   => 'Hide bots',
-'activeusers-hidesysops' => 'Hide administrators',
-'activeusers-noresult'   => 'No users found.',
-
 # Special:ListGroupRights
 'listgrouprights'                      => 'User group rights',
 'listgrouprights-summary'              => 'The following is a list of user groups defined on this wiki, with their associated access rights.
index aadb5b5..43a0840 100644 (file)
@@ -761,8 +761,8 @@ Pärast parooli saamist logige palun sisse.',
 'blocked-mailpassword' => 'Sinu IP-aadressi jaoks on toimetamine blokeeritud, seetõttu ei saa sa kasutada ka parooli meeldetuletamise funktsiooni.',
 'eauthentsent' => 'Sisestatud e-posti aadressile on saadetud kinnituse e-kiri.
 Enne kui su kontole ükskõik milline muu e-kiri saadetakse, pead sa e-kirjas olevat juhist järgides kinnitama, et konto on tõepoolest sinu.',
-'throttled-mailpassword' => 'Parooli meeldetuletus lähetatud viimase {{PLURAL:$1|tunni|$1 tunni}} jooksul.
-Väärtarvitamise vältimiseks saadetakse {{PLURAL:$1|tunni|$1 tunni}} jooksul ainult üks meeldetuletus.',
+'throttled-mailpassword' => 'Parooli lähtestamise e-kiri saadetud viimase {{PLURAL:$1|tunni|$1 tunni}} jooksul.
+Väärtarvitamise vältimiseks saadetakse {{PLURAL:$1|tunni|$1 tunni}} jooksul ainult üks lähtestamise e-kiri.',
 'mailerror' => 'Viga kirja saatmisel: $1',
 'acct_creation_throttle_hit' => 'Selle viki külastajad, kes kasutavad sinu IP-aadressi, on viimase ööpäeva jooksul loonud {{PLURAL:$1|ühe konto|$1 kontot}}, mis on selles ajavahemikus ülemmääraks.
 Seetõttu ei saa seda IP-aadressi kasutades hetkel rohkem kontosid luua.',
@@ -801,7 +801,8 @@ Sisselogimise lõpetamiseks pead siia uue parooli sisestama:',
 'newpassword' => 'Uus parool:',
 'retypenew' => 'Sisesta uus parool uuesti:',
 'resetpass_submit' => 'Sisesta parool ja logi sisse',
-'resetpass_success' => 'Sinu parool on edukalt muudetud! Sisselogimine...',
+'resetpass_success' => 'Sinu parool on edukalt muudetud!
+Sisselogimine...',
 'resetpass_forbidden' => 'Paroole ei saa muuta',
 'resetpass-no-info' => 'Pead olema sisselogitud, et sellele lehele pääseda.',
 'resetpass-submit-loggedin' => 'Muuda parool',
@@ -812,7 +813,7 @@ Võib-olla oled juba edukalt muudnud oma salasõna või taotlenud uut ajutist sa
 
 # Special:PasswordReset
 'passwordreset' => 'Parooli lähtestamine',
-'passwordreset-text' => 'Täida see vorm, et saada e-kiri oma konto andmetega.',
+'passwordreset-text' => 'Täida see vorm, et oma parool lähtestada.',
 'passwordreset-legend' => 'Parooli lähtestamine',
 'passwordreset-disabled' => 'Selles vikis on paroolide lähtestamine keelatud.',
 'passwordreset-pretext' => '{{PLURAL:$1||Sisesta üks järgmistest andmeüksustest}}',
@@ -822,13 +823,13 @@ Võib-olla oled juba edukalt muudnud oma salasõna või taotlenud uut ajutist sa
 'passwordreset-capture-help' => 'Kui valid selle märkeruudu, näidatakse sulle ajutist parooli sisaldavat e-kirja, mis ühtlasi kasutajale saadetakse.',
 'passwordreset-email' => 'E-posti aadress:',
 'passwordreset-emailtitle' => '{{GRAMMAR:genitive|{{SITENAME}}}} konto andmed',
-'passwordreset-emailtext-ip' => 'Keegi, arvatavasti sina ise, IP-aadressilt $1 palus meelde tuletada sinu {{GRAMMAR:genitive|{{SITENAME}}}} ($4) konto üksikasjad. Selle e-posti aadressiga on seotud {{PLURAL:$3|järgmine konto|järgmised kontod}}:
+'passwordreset-emailtext-ip' => 'Keegi, arvatavasti sina ise, IP-aadressilt $1 palus lähtestada sinu {{GRAMMAR:genitive|{{SITENAME}}}} ($4) parooli. Selle e-posti aadressiga on seotud {{PLURAL:$3|järgmine konto|järgmised kontod}}:
 
 $2
 
 {{PLURAL:$3|See ajutine parool aegub|Need ajutised paroolid aeguvad}} {{PLURAL:$5|ühe|$5}} päeva pärast.
 Peaksid nüüd sisse logima ja uue parooli valima. Kui selle palve esitas keegi teine või kui sulle meenus su parool ja sa ei soovi seda enam muuta, võid teadet eirata ja jätkata vana parooli kasutamist.',
-'passwordreset-emailtext-user' => '{{GRAMMAR:genitive|{{SITENAME}}}} kasutaja $1 palus meelde tuletada sinu {{GRAMMAR:genitive|{{SITENAME}}}} ($4) konto üksikasjad. Selle e-posti aadressiga on seotud {{PLURAL:$3|järgmine konto|järgmised kontod}}:
+'passwordreset-emailtext-user' => '{{GRAMMAR:genitive|{{SITENAME}}}} kasutaja $1 palus lähtestada sinu {{GRAMMAR:genitive|{{SITENAME}}}} ($4) parooli. Selle e-posti aadressiga on seotud {{PLURAL:$3|järgmine konto|järgmised kontod}}:
 
 $2
 
@@ -836,9 +837,9 @@ $2
 Peaksid nüüd sisse logima ja uue parooli valima. Kui selle palve esitas keegi teine või kui sulle meenus su parool ja sa ei soovi seda enam muuta, võid teadet eirata ja jätkata vana parooli kasutamist.',
 'passwordreset-emailelement' => 'Kasutajanimi: $1
 Ajutine parool: $2',
-'passwordreset-emailsent' => 'Meeldetuletuskiri on saadetud.',
-'passwordreset-emailsent-capture' => 'E-kirjatsi on saadetud allpool näidatav meeldetuletus.',
-'passwordreset-emailerror-capture' => 'Koostati allpool näidatav meeldetuletus, aga selle e-kirjatsi kasutajale saatmine ebaõnnestus: $1',
+'passwordreset-emailsent' => 'Parooli lähtestamise e-kiri on saadetud.',
+'passwordreset-emailsent-capture' => 'E-kirjatsi on saadetud allpool näidatav parooli lähtestuskiri.',
+'passwordreset-emailerror-capture' => 'Koostati allpool näidatav parooli lähtestuskiri, aga selle e-kirjatsi kasutajale saatmine ebaõnnestus: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'E-posti aadressi muutmine',
@@ -870,7 +871,7 @@ Ajutine parool: $2',
 'media_sample' => 'Näidis.ogg',
 'media_tip' => 'Link failile',
 'sig_tip' => 'Sinu allkiri ajatempliga',
-'hr_tip' => 'Horisontaalkriips (kasuta säästlikult)',
+'hr_tip' => 'Rõhtkriips (kasuta liialdamata)',
 
 # Edit pages
 'summary' => 'Resümee:',
@@ -931,7 +932,7 @@ Võimalik, et see teisaldati või kustutati, sellal kui lehekülge vaatasid.',
 'loginreqtitle' => 'Vajalik on sisselogimine',
 'loginreqlink' => 'sisse logima',
 'loginreqpagetext' => 'Lehekülgede vaatamiseks pead $1.',
-'accmailtitle' => 'Parool saadetud.',
+'accmailtitle' => 'Parool saadetud',
 'accmailtext' => "Kasutajale '$1' genereeritud juhuslik parool saadeti aadressile $2.
 
 Seda parooli on võimalik muuta ''[[Special:ChangePassword|parooli muutmise lehel]]'' peale uuele kontole sisse logimist.",
@@ -1333,9 +1334,9 @@ Vahepeal saad otsimiseks Google'it kasutada.
 Pane tähele, et Google'is talletatud {{GRAMMAR:genitive|{{SITENAME}}}} sisu võib olla iganenud.",
 
 # Quickbar
-'qbsettings' => 'Kiirriba sätted',
-'qbsettings-none' => 'Ei_ole',
-'qbsettings-fixedleft' => 'Püsivalt_vasakul',
+'qbsettings' => 'Kiirriba',
+'qbsettings-none' => 'Puudub',
+'qbsettings-fixedleft' => 'Püsivalt vasakul',
 'qbsettings-fixedright' => 'Püsivalt paremal',
 'qbsettings-floatingleft' => 'Ujuvalt vasakul',
 'qbsettings-floatingright' => 'Ujuvalt paremal',
@@ -2409,6 +2410,7 @@ Mine tagasi eelmisele leheküljele ja taaslaadi see, seejärel proovi uuesti.',
 'prot_1movedto2' => 'Lehekülg "[[$1]]" teisaldatud pealkirja "[[$2]]" alla',
 'protect-badnamespace-title' => 'Kaitstamatu nimeruum',
 'protect-badnamespace-text' => 'Selles nimeruumis olevaid lehekülgi ei saa kaitsta.',
+'protect-norestrictiontypes-title' => 'Kaitstamatu lehekülg',
 'protect-legend' => 'Kaitse kinnitamine',
 'protectcomment' => 'Põhjus:',
 'protectexpiry' => 'Aegub:',
@@ -3860,17 +3862,17 @@ Pilt kuvatakse algupärases suuruses, muu fail avatakse koheselt seostuva progra
 'sqlite-no-fts' => '$1 ilma täistekstiotsingu toeta',
 
 # New logging system
-'logentry-delete-delete' => '$1 kustutas lehekülje $3',
-'logentry-delete-restore' => '$1 taastas lehekülje $3',
-'logentry-delete-event' => '$1 muutis leheküljel $3 {{PLURAL:$5|ühe|$5}} logisündmuse nähtavust: $4',
-'logentry-delete-revision' => '$1 muutis leheküljel $3 {{PLURAL:$5|ühe|$5}} redaktsiooni nähtavust: $4',
-'logentry-delete-event-legacy' => '$1 muutis leheküljel $3 logisündmuste nähtavust',
-'logentry-delete-revision-legacy' => '$1 muutis leheküljel $3 redaktsioonide nähtavust',
-'logentry-suppress-delete' => '$1 varjas lehekülje $3',
-'logentry-suppress-event' => '$1 muutis salaja leheküljel $3 {{PLURAL:$5|ühe|$5}} logisündmuse nähtavust: $4',
-'logentry-suppress-revision' => '$1 muutis salaja leheküljel $3 {{PLURAL:$5|ühe|$5}} redaktsiooni nähtavust: $4',
-'logentry-suppress-event-legacy' => '$1 muutis salaja leheküljel $3 logisündmuste nähtavust',
-'logentry-suppress-revision-legacy' => '$1 muutis salaja leheküljel $3 redaktsioonide nähtavust',
+'logentry-delete-delete' => '$1 {{GENDER:$2|kustutas}} lehekülje $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|taastas}} lehekülje $3',
+'logentry-delete-event' => '$1 {{GENDER:$2|muutis}} leheküljel $3 {{PLURAL:$5|ühe|$5}} logisündmuse nähtavust: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|muutis}} leheküljel $3 {{PLURAL:$5|ühe|$5}} redaktsiooni nähtavust: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|muutis}} leheküljel $3 logisündmuste nähtavust',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|muutis}} leheküljel $3 redaktsioonide nähtavust',
+'logentry-suppress-delete' => '$1 {{GENDER:$2|varjas}} lehekülje $3',
+'logentry-suppress-event' => '$1 {{GENDER:$2|muutis}} salaja leheküljel $3 {{PLURAL:$5|ühe|$5}} logisündmuse nähtavust: $4',
+'logentry-suppress-revision' => '$1 {{GENDER:$2|muutis}} salaja leheküljel $3 {{PLURAL:$5|ühe|$5}} redaktsiooni nähtavust: $4',
+'logentry-suppress-event-legacy' => '$1 {{GENDER:$2|muutis}} salaja leheküljel $3 logisündmuste nähtavust',
+'logentry-suppress-revision-legacy' => '$1 {{GENDER:$2|muutis}} salaja leheküljel $3 redaktsioonide nähtavust',
 'revdelete-content-hid' => 'peideti sisu',
 'revdelete-summary-hid' => 'peideti resümee',
 'revdelete-uname-hid' => 'peideti kasutajanimi',
@@ -3879,16 +3881,16 @@ Pilt kuvatakse algupärases suuruses, muu fail avatakse koheselt seostuva progra
 'revdelete-uname-unhid' => 'nähtavaks tehti kasutajanimi',
 'revdelete-restricted' => 'kehtestati piirangud administraatoritele',
 'revdelete-unrestricted' => 'eemaldati administraatoritelt piirangud',
-'logentry-move-move' => '$1 teisaldas lehekülje $3 pealkirja $4 alla',
-'logentry-move-move-noredirect' => '$1 teisaldas lehekülje $3 pealkirja $4 alla ümbersuunamist maha jätmata',
-'logentry-move-move_redir' => '$1 teisaldas lehekülje $3 ümbersuunamise $4 asemele',
-'logentry-move-move_redir-noredirect' => '$1 teisaldas lehekülje $3 ümbersuunamise $4 asemele ümbersuunamist maha jätmata',
-'logentry-patrol-patrol' => '$1 märkis lehekülje $3 redaktsiooni $4 kontrollituks',
-'logentry-patrol-patrol-auto' => '$1 märkis automaatselt lehekülje $3 redaktsiooni $4 kontrollituks',
-'logentry-newusers-newusers' => 'Loodud kasutajakonto $1',
-'logentry-newusers-create' => 'Loodud kasutajakonto $1',
-'logentry-newusers-create2' => '$1 lõi kasutajakonto $3',
-'logentry-newusers-autocreate' => 'Konto $1 loodi automaatselt',
+'logentry-move-move' => '$1 {{GENDER:$2|teisaldas}} lehekülje $3 pealkirja $4 alla',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|teisaldas}} lehekülje $3 pealkirja $4 alla ümbersuunamist maha jätmata',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|teisaldas}} lehekülje $3 ümbersuunamise $4 asemele',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|teisaldas}} lehekülje $3 ümbersuunamise $4 asemele ümbersuunamist maha jätmata',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|märkis}} lehekülje $3 redaktsiooni $4 kontrollituks',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|märkis}} automaatselt lehekülje $3 redaktsiooni $4 kontrollituks',
+'logentry-newusers-newusers' => '{{GENDER:$2|Loodud}} kasutajakonto $1',
+'logentry-newusers-create' => '{{GENDER:$2|Loodud}} kasutajakonto $1',
+'logentry-newusers-create2' => '$1 {{GENDER:$2|lõi}} kasutajakonto $3',
+'logentry-newusers-autocreate' => 'Konto $1 {{GENDER:$2|loodi}} automaatselt',
 'rightsnone' => '(puudub)',
 
 # Feedback
index ed66796..6824281 100644 (file)
@@ -595,8 +595,8 @@ Vinarliga rita inn eftir at tú hevur fingið hana.',
 'blocked-mailpassword' => 'Tín IP adressa er stongd fyri at gera rættingar á síðum, og tí er tað ikki loyvt at brúka funkuna fyri endurskapan av loyniorði, hetta fyri at forða fyri misnýtslu.',
 'eauthentsent' => '↓ Ein váttanar t-postur er sendur til givna t-post bústaðin.
 Áðrenn aðrir teldupostar verða sendir til kontuna, mást tú fylgja leiðbeiningunum í t-postinum, fyri at vátta at kontoin veruliga er tín.',
-'throttled-mailpassword' => 'Ein teldupost við áminning um loyniorði er longu sendur fyri bert {{PLURAL:$1|tíma|$1 tímum}}.
-Fyri at fyribyrja misnýtslu, verður bert ein teldupostur við áminning um loyniorði sendur fyri hvønn/hvørjir {{PLURAL:$1|tíma|$1 tímar}}.',
+'throttled-mailpassword' => 'Ein teldupostur har loyniorðið verður nullstillað er longu sendur fyri bert {{PLURAL:$1|tíma|$1 tímum}} síðan.
+Fyri at fyribyrja misnýtslu, verður bert ein teldupostur við nullstillaðum loyniorði sendur fyri pr. {{PLURAL:$1|tíma|$1 tímar}}.',
 'mailerror' => 'Villa tá t-postur var sendur: $1',
 'acct_creation_throttle_hit' => 'Vitjandi á hesi wiki, sum nýta tína IP addressu, hava stovnað {{PLURAL:$1|1 kontu|$1 kontur}} seinastu dagarnar, sum er mest loyvda hetta tíðarskeið.
 Sum eitt úrslit av hesum, kunnu vitjandi sum brúka hesa IP adressuna ikki stovna fleiri kontur í løtuni.',
@@ -649,7 +649,7 @@ Møguliga hevur tú longu broytt títt loyniorð ella biðið um eitt nýtt fyri
 
 # Special:PasswordReset
 'passwordreset' => 'Nullstilla loyniorðið',
-'passwordreset-text' => 'Útfyll hetta skjalið fyri at fáa eina áminning við t-posti við tínum konto upplýsingum.',
+'passwordreset-text' => 'Útfyll hetta skjalið fyri at nullstilla títt loyniorð.',
 'passwordreset-legend' => 'Nulstilla loyniorðið',
 'passwordreset-disabled' => 'Tað ber ikki til at nullstilla loyniorðið á hesi wiki.',
 'passwordreset-pretext' => '{{PLURAL:$1||Skriva ein av upplýsingunum niðanfyri}}',
@@ -679,8 +679,8 @@ umbønina, ella um tú ert komin í tankar um títt uppruna loyniorð, og tú ik
 ynskir at broyta tað, so kanst tú síggja burtur frá hesum boðum og halda fram at brúka títt gamla loyniorð.',
 'passwordreset-emailelement' => 'Brúkaranavn: $1
 Fyribils loyniorð: $2',
-'passwordreset-emailsent' => 'Ein áminningar teldupostur er blivin sendur.',
-'passwordreset-emailsent-capture' => 'Ein áminningar teldupostur er blivin sendur, sum víst niðanfyri.',
+'passwordreset-emailsent' => 'Ein teldupostur har tú kanst nullstillað loyniorðið er blivin sendur.',
+'passwordreset-emailsent-capture' => 'Ein teldupostur, har ið tú kanst nullstilla loyniorðið, er blivin sendur, sum víst niðanfyri.',
 'passwordreset-emailerror-capture' => 'Ein áminningar teldupostur var gjørdur, sum víst niðanfyri, men tað miseydnaðist at senda til brúkaran: $1',
 
 # Special:ChangeEmail
index 5b4e3d9..fb4e5e0 100644 (file)
@@ -603,7 +603,7 @@ Por favor, comuníquello a un [[Special:ListUsers/sysop|administrador]] tomando
 'filedeleteerror' => 'Non se deu borrado o ficheiro "$1".',
 'directorycreateerror' => 'Non se puido crear o directorio "$1".',
 'filenotfound' => 'Non se deu atopado o ficheiro "$1".',
-'fileexistserror' => 'Resultou imposíbel escribir no ficheiro "$1": O ficheiro xa existe.',
+'fileexistserror' => 'Non se pode escribir no ficheiro "$1": O ficheiro xa existe.',
 'unexpected' => 'Valor inesperado: "$1"="$2".',
 'formerror' => 'Erro: Non se pode enviar o formulario.',
 'badarticleerror' => 'Non pode efectuarse esa acción nesta páxina.',
@@ -1226,7 +1226,7 @@ Asegúrese de que esta modificación da páxina mantén a continuidade históric
 'mergehistory-box' => 'Fusionar as revisións de dúas páxinas:',
 'mergehistory-from' => 'Páxina de orixe:',
 'mergehistory-into' => 'Páxina de destino:',
-'mergehistory-list' => 'Historial de edicións fusionábeis',
+'mergehistory-list' => 'Historial de edicións fusionables',
 'mergehistory-merge' => 'As revisións seguintes de [[:$1]] pódense fusionar con [[:$2]]. Use a columna de botóns de selección para fusionar só as revisións creadasen e antes da hora indicada. Teña en conta que se usa as ligazóns de navegación a columna limparase.',
 'mergehistory-go' => 'Mostrar as edicións que se poden fusionar',
 'mergehistory-submit' => 'Fusionar as revisións',
@@ -2624,10 +2624,10 @@ Explique a razón específica do bloqueo (por exemplo, citando as páxinas concr
 ** Inserir información falsa
 ** Eliminar o contido de páxinas
 ** Ligazóns lixo a sitios externos
-** Inserir textos sen sentido ou inintelixíbeis
+** Inserir textos sen sentido ou inintelixibles
 ** Comportamento intimidatorio/acoso
 ** Abuso de múltiples contas de usuario
-** Nome de usuario inaceptábel',
+** Nome de usuario inaceptable',
 'ipb-hardblock' => 'Impedir que usuarios rexistrados editen desde este enderezo IP',
 'ipbcreateaccount' => 'Previr a creación de contas',
 'ipbemailban' => 'Impedir que o usuario envíe correos electrónicos',
@@ -2761,7 +2761,7 @@ Lembre [[Special:UnlockDB|eliminar o bloqueo]] unha vez completado o seu manteme
 O título vello vaise converter nunha páxina de redirección ao novo título.
 Pode actualizar automaticamente as redireccións que van dar ao título orixinal.
 Se escolle non facelo, asegúrese de verificar que non hai redireccións [[Special:DoubleRedirects|dobres]] ou [[Special:BrokenRedirects|crebadas]].
-Vostede é responsábel de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.
+Vostede é responsable de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.
 
 Teña en conta que a páxina '''non''' será trasladada se xa existe unha páxina co novo título, a menos que esta última sexa unha redirección e non teña historial de edicións.
 Isto significa que pode volver renomear unha páxina ao seu nome antigo se comete un erro, e que non pode sobrescribir unha páxina que xa existe.
@@ -2772,7 +2772,7 @@ por favor, asegúrese de que entende as consecuencias disto antes de proseguir."
 'movepagetext-noredirectfixer' => "Ao usar o formulario inferior vai cambiar o nome da páxina, movendo todo o seu historial ao novo nome.
 O título vello vaise converter nunha páxina de redirección ao novo título.
 Asegúrese de verificar que non hai redireccións [[Special:DoubleRedirects|dobres]] ou [[Special:BrokenRedirects|crebadas]].
-Vostede é responsábel de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.
+Vostede é responsable de asegurarse de que as ligazóns continúan a apuntar cara a onde se supón que deberían.
 
 Teña en conta que a páxina '''non''' será trasladada se xa existe unha páxina co novo título, a menos que esta última sexa unha redirección e non teña historial de edicións.
 Isto significa que pode volver renomear unha páxina ao seu nome antigo se comete un erro, e que non pode sobrescribir unha páxina que xa existe.
index a1e453c..6bc4440 100644 (file)
@@ -832,7 +832,7 @@ $2',
 עליכם להיכנס לאתר ולשנות את סיסמתכם בהקדם האפשרי. אם מישהו אחר ביקש סיסמה חדשה זו או אם נזכרתם בסיסמתכם
 ואינכם רוצים עוד לשנות אותה, באפשרותכם להתעלם מהודעה זו ולהמשיך להשתמש בסיסמתכם הישנה.',
 'noemail' => 'לא רשומה כתובת דואר אלקטרוני עבור המשתמש "$1".',
-'noemailcreate' => 'עליכם לספק כתובת דואר אלקטרוני תקינה',
+'noemailcreate' => 'עליכם לספק כתובת דואר אלקטרוני תקינה.',
 'passwordsent' => 'סיסמה חדשה נשלחה לכתובת הדואר האלקטרוני הרשומה עבור "$1".
 אנא היכנסו חזרה לאתר אחרי שתקבלו אותה.',
 'blocked-mailpassword' => 'כתובת ה־IP שלכם חסומה מעריכה, ולפיכך אינכם מורשים להשתמש באפשרות שחזור הסיסמה כדי למנוע ניצול לרעה של התכונה.',
index 0214e82..be7a3ce 100644 (file)
@@ -630,8 +630,8 @@ Per favor aperi session de novo post reciper lo.',
 'blocked-mailpassword' => 'Tu adresse IP es blocate de facer modificationes, e pro impedir le abuso, le uso del function pro recuperar contrasignos es equalmente blocate.',
 'eauthentsent' => 'Un e-mail de confirmation ha essite inviate al adresse de e-mail specificate.
 Pro poter reciper altere e-mail a iste conto, tu debe sequer le instructiones in iste e-mail pro confirmar que le conto es realmente tue.',
-'throttled-mailpassword' => 'Un rememoration del contrasigno ha jam essite inviate intra le ultime {{PLURAL:$1|hora|$1 horas}}.
-Pro prevenir le abuso, solmente un rememoration de contrasigno essera inviate per {{PLURAL:$1|hora|$1 horas}}.',
+'throttled-mailpassword' => 'Un message pro le reinitialisation del contrasigno ha jam essite inviate intra le ultime {{PLURAL:$1|hora|$1 horas}}.
+Pro prevenir le abuso, solmente un message pro le reinitialisation del contrasigno essera inviate per {{PLURAL:$1|hora|$1 horas}}.',
 'mailerror' => 'Error de inviar e-mail: $1',
 'acct_creation_throttle_hit' => 'Le visitatores de iste wiki usante tu adresse IP ha create {{PLURAL:$1|1 conto|$1 contos}} durante le ultime die, e isto es le maximo permittite in iste periodo de tempore.
 A causa de isto, le visitatores usante iste adresse IP non pote crear nove contos al momento.',
@@ -684,7 +684,7 @@ Es possibile que tu ha ja cambiate tu contrasigno o requestate un nove contrasig
 
 # Special:PasswordReset
 'passwordreset' => 'Reinitialisar contrasigno',
-'passwordreset-text' => 'Complete iste formulario pro reciper un rememoration in e-mail del datos de tu conto.',
+'passwordreset-text' => 'Completa iste formulario pro reinitialisar tu contrasigno.',
 'passwordreset-legend' => 'Reinitialisar contrasigno',
 'passwordreset-disabled' => 'Le reinitialisation de contrasignos ha essite disactivate in iste wiki.',
 'passwordreset-pretext' => '{{PLURAL:$1||Entra un del elementos de datos hic infra}}',
@@ -694,8 +694,8 @@ Es possibile que tu ha ja cambiate tu contrasigno o requestate un nove contrasig
 'passwordreset-capture-help' => 'Si tu marca iste quadrato, le e-mail (con le contrasigno temporari) non solmente essera inviate al usator, ma anque monstrate a te.',
 'passwordreset-email' => 'Adresse de e-mail:',
 'passwordreset-emailtitle' => 'Detalios del conto in {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Un persona (probabilemente tu, ab le adresse IP $1) requestava un rememoration del
-detalios de tu conto in {{SITENAME}} ($4). Le {{PLURAL:$3|conto|contos}} de usator sequente es
+'passwordreset-emailtext-ip' => 'Un persona (probabilemente tu, ab le adresse IP $1) requestava le reinitialisation de tu
+contrasigno de {{SITENAME}} ($4). Le {{PLURAL:$3|conto|contos}} de usator sequente es
 associate con iste adresse de e-mail:
 
 $2
index b8f27d7..443679e 100644 (file)
@@ -447,19 +447,19 @@ $messages = array(
 'dec' => 'Des',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Kategori|Kategori}}',
+'pagecategories' => '{{PLURAL:$1|Kategori}}',
 'category_header' => 'Halaman dalam kategori "$1"',
 'subcategories' => 'Subkategori',
 'category-media-header' => 'Media dalam kategori "$1"',
 'category-empty' => "''Saat ini, tidak terdapat halaman ataupun media dalam kategori ini.''",
-'hidden-categories' => '{{PLURAL:$1|Kategori tersembunyi|Kategori tersembunyi}}',
+'hidden-categories' => '{{PLURAL:$1|Kategori tersembunyi}}',
 'hidden-category-category' => 'Kategori tersembunyi',
-'category-subcat-count' => '{{PLURAL:$2|Kategori ini hanya memiliki satu subkategori berikut.|Kategori ini memiliki {{PLURAL:$1|subkategori|$1 subkategori}} berikut, dari total $2.}}',
-'category-subcat-count-limited' => 'Kategori ini memiliki {{PLURAL:$1|subkategori|$1 subkategori}} berikut.',
-'category-article-count' => '{{PLURAL:$2|Kategori ini hanya memiliki satu halaman berikut.|Kategori ini memiliki {{PLURAL:$1|halaman|$1 halaman}}, dari total $2.}}',
-'category-article-count-limited' => 'Kategori ini memiliki {{PLURAL:$1|satu halaman|$1 halaman}} berikut.',
-'category-file-count' => '{{PLURAL:$2|Kategori ini hanya memiliki satu berkas berikut.|Kategori ini memiliki {{PLURAL:$1|berkas|$1 berkas}} berikut, dari total $2.}}',
-'category-file-count-limited' => 'Kategori ini memiliki {{PLURAL:$1|berkas|$1 berkas}} berikut.',
+'category-subcat-count' => '{{PLURAL:$2|Kategori ini memiliki {{PLURAL:$1|$1 subkategori}} berikut, dari total $2.}}',
+'category-subcat-count-limited' => 'Kategori ini memiliki {{PLURAL:$1|$1 subkategori}} berikut.',
+'category-article-count' => '{{PLURAL:$2|Kategori ini memiliki {{PLURAL:$1|$1 halaman}}, dari total $2.}}',
+'category-article-count-limited' => 'Kategori ini memiliki {{PLURAL:$1|$1 halaman}} berikut.',
+'category-file-count' => '{{PLURAL:$2|Kategori ini memiliki {{PLURAL:$1|$1 berkas}} berikut, dari total $2.}}',
+'category-file-count-limited' => 'Kategori ini memiliki {{PLURAL:$1|$1 berkas}} berikut.',
 'listingcontinuesabbrev' => 'samb.',
 'index-category' => 'Halaman yang diindeks',
 'noindex-category' => 'Halaman yang tidak diindeks',
@@ -516,7 +516,7 @@ $messages = array(
 'searchbutton' => 'Cari',
 'go' => 'Tuju ke',
 'searcharticle' => 'Tuju ke',
-'history' => 'Halaman riwayat',
+'history' => 'Riwayat halaman',
 'history_short' => 'Versi terdahulu',
 'updatedmarker' => 'diubah sejak kunjungan terakhir saya',
 'printableversion' => 'Versi cetak',
@@ -529,8 +529,8 @@ $messages = array(
 'create-this-page' => 'Buat halaman ini',
 'delete' => 'Hapus',
 'deletethispage' => 'Hapus halaman ini',
-'undelete_short' => 'Batal hapus $1 {{PLURAL:$1|suntingan|suntingan}}',
-'viewdeleted_short' => 'Lihat {{PLURAL:$1|satu suntingan|$1 suntingan}} yang dihapus',
+'undelete_short' => 'Batal hapus {{PLURAL:$1|$1 suntingan}}',
+'viewdeleted_short' => 'Lihat {{PLURAL:$1|$1 suntingan}} yang dihapus',
 'protect' => 'Lindungi',
 'protect_change' => 'ubah',
 'protectthispage' => 'Lindungi halaman ini',
@@ -558,7 +558,7 @@ $messages = array(
 'redirectedfrom' => '(Dialihkan dari $1)',
 'redirectpagesub' => 'Halaman pengalihan',
 'lastmodifiedat' => 'Halaman ini terakhir diubah pada $2, $1.',
-'viewcount' => 'Halaman ini telah diakses sebanyak {{PLURAL:$1|satu kali|$1 kali}}.<br />',
+'viewcount' => 'Halaman ini telah diakses sebanyak {{PLURAL:$1|$1 kali}}.<br />',
 'protectedpage' => 'Halaman yang dilindungi',
 'jumpto' => 'Langsung ke:',
 'jumptonavigation' => 'navigasi',
@@ -594,7 +594,7 @@ $1',
 
 'badaccess' => 'Kesalahan hak akses',
 'badaccess-group0' => 'Anda tidak diizinkan untuk melakukan tindakan yang Anda minta.',
-'badaccess-groups' => 'Tindakan yang Anda minta dibatasi untuk pengguna dalam {{PLURAL:$2|kelompok|salah satu dari kelompok}}: $1.',
+'badaccess-groups' => 'Tindakan yang Anda minta dibatasi untuk pengguna dalam {{PLURAL:$2|kelompok}}: $1.',
 
 'versionrequired' => 'Dibutuhkan MediaWiki versi $1',
 'versionrequiredtext' => 'MediaWiki versi $1 dibutuhkan untuk menggunakan halaman ini. Lihat [[Special:Version|halaman versi]]',
@@ -607,11 +607,11 @@ $1',
 'youhavenewmessages' => 'Anda mempunyai $1 ($2).',
 'newmessageslink' => 'pesan baru',
 'newmessagesdifflink' => 'perubahan terakhir',
-'youhavenewmessagesfromusers' => 'Anda memiliki $1 dari {{PLURAL:$3||}}pengguna lain ($2).',
+'youhavenewmessagesfromusers' => 'Anda memiliki $1 dari {{PLURAL:$3|$3 pengguna lain}} ($2).',
 'youhavenewmessagesmanyusers' => 'Anda memiliki $1 dari pengguna lain ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1||}}pesan baru',
-'newmessagesdifflinkplural' => '{{PLURAL:$1||}}perubahan terakhir',
-'youhavenewmessagesmulti' => 'Anda mendapat beberapa pesan baru pada $1',
+'newmessageslinkplural' => '{{PLURAL:$1|pesan baru}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|perubahan}} terakhir',
+'youhavenewmessagesmulti' => 'Anda mendapat pesan baru pada $1',
 'editsection' => 'sunting',
 'editsection-brackets' => '[$1]',
 'editold' => 'sunting',
@@ -626,7 +626,7 @@ $1',
 'collapsible-expand' => 'Kembangkan',
 'thisisdeleted' => 'Lihat atau kembalikan $1?',
 'viewdeleted' => 'Lihat $1?',
-'restorelink' => '$1 {{PLURAL:$1|suntingan|suntingan}} yang telah dihapus',
+'restorelink' => '{{PLURAL:$1|$1 suntingan}} yang telah dihapus',
 'feedlinks' => 'Umpan:',
 'feed-invalid' => 'Tipe permintaan umpan tidak tepat.',
 'feed-unavailable' => 'Umpan sindikasi tidak tersedia',
@@ -654,7 +654,7 @@ $1',
 
 # Main script and global functions
 'nosuchaction' => 'Tidak ada tindakan tersebut',
-'nosuchactiontext' => 'Tindakan yang diminta oleh URL tersebut tidak valid. Anda mungkin salah mengetikkan URL, atau mengikuti suatu pranala yang tak betul. Hal ini juga mungkin mengindikasikan suatu bug pada perangkat lunak yang digunakan oleh {{SITENAME}}.',
+'nosuchactiontext' => 'Tindakan yang diminta oleh URL tersebut tidak valid. Anda mungkin salah mengetikkan URL, atau mengikuti suatu pranala yang tak benar. Hal ini juga mungkin mengindikasikan suatu bug pada perangkat lunak yang digunakan oleh {{SITENAME}}.',
 'nosuchspecialpage' => 'Tidak ada halaman istimewa tersebut',
 'nospecialpagetext' => '<strong>Anda meminta halaman istimewa yang tidak sah.</strong>
 
@@ -2746,9 +2746,9 @@ Alasan yang diberikan untuk pemblokiran $1 adalah: "$2"',
 'blocklog-showsuppresslog' => 'Pengguna ini telah diblokir dan disembunyikan sebelumnya. Log supresi disediakan di bawah untuk referensi:',
 'blocklogentry' => 'memblokir [[$1]] dengan waktu kedaluwarsa $2 $3',
 'reblock-logentry' => 'mengubah pemblokiran [[$1]] dengan waktu kedaluwarsa $2 $3',
-'blocklogtext' => 'Di bawah ko adolah log panyakek jo pambukaan sakek pado pangguno.
-Alamaik IP nan kanai sakek sacaro otomatis indak nampak dalam dafta ko.
-Lihek [[Special:BlockList|dafta panyakek]] untuak kasado pangguno nan koni kanai sakek.',
+'blocklogtext' => 'Di bawah ini adalah log pemblokiran dan pembukaan blokir terhadap pengguna.
+Alamat IP yang diblokir secara otomatis tidak terdapat di dalam daftar ini.
+Lihat [[Special:BlockList|daftar pemblokiran]] untuk semua pengguna yang saat ini diblokir.',
 'unblocklogentry' => 'menghilangkan blokir "$1"',
 'block-log-flags-anononly' => 'hanya pengguna anonim',
 'block-log-flags-nocreate' => 'pembuatan akun dimatikan',
index 19c2042..a014181 100644 (file)
@@ -3838,7 +3838,7 @@ Le immagini vengono mostrate alla massima risoluzione disponibile, per gli altri
 
 # Special:BlankPage
 'blankpage' => 'Pagina vuota',
-'intentionallyblankpage' => 'Questa pagina è lasciata volutamente vuota ed è usata per benchmark, ecc.',
+'intentionallyblankpage' => 'Questa pagina è lasciata volutamente vuota.',
 
 # External image whitelist
 'external_image_whitelist' => " #Lasciare questa riga esattamente com'è<pre>
index 1afc66c..6f912aa 100644 (file)
@@ -2617,7 +2617,7 @@ $2による直前の版へ変更されました。',
 ページ「'''$1'''」の現在の状態は以下の通りです:",
 'protect-cascadeon' => 'このページは現在、カスケード保護が有効になっている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、保護されています。
 このページの保護レベルを変更できますが、カスケード保護には影響しません。',
-'protect-default' => 'ã\81\99ã\81¹ã\81¦ã\81®å\88©ç\94¨è\80\85ã\82\92許可',
+'protect-default' => 'ã\81\99ã\81¹ã\81¦ã\81®å\88©ç\94¨è\80\85ã\81«許可',
 'protect-fallback' => '「$1」権限を持つ利用者のみに許可',
 'protect-level-autoconfirmed' => '自動承認された利用者のみに許可',
 'protect-level-sysop' => '管理者のみに許可',
@@ -2808,7 +2808,7 @@ $1',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]をブロックしました。<br />
 [[Special:BlockList|ブロックの一覧]]を参照してください。',
 'ipb-blockingself' => '自分自身をブロックしようとしています! 本当に実行しますか?',
-'ipb-confirmhideuser' => '秘匿が有効になっている利用者をブロックしようとしています。実行すると、すべてのリストやログでこの利用者名が表示されません。本当に実行しますか?',
+'ipb-confirmhideuser' => '秘匿が有効になっている利用者をブロックしようとしています。実行すると、すべての一覧や記録項目で利用者名が表示されません。本当に実行しますか?',
 'ipb-edit-dropdown' => 'ブロック理由を編集',
 'ipb-unblock-addr' => '$1のブロックを解除',
 'ipb-unblock' => '利用者またはIPアドレスのブロックを解除',
index d012011..518a00c 100644 (file)
@@ -659,9 +659,8 @@ $2',
 'eauthentsent' => 'დამადასტურებელი შეტყობინება გაიგზავნა თქვენს მიერ მითითებულ ელ. ფოსტის მისამართზე.
 სანამ ნებისმიერი სხვა შეტყობინება გაიგზავნებოდეს თქვენს ანგარიშზე, გთხოვთ მიჰყვეთ ელ.
 ფოსტაში მითითებულ ინსტრუქციებს, რათა დაადასტუროთ რომ ანგარიში ნამდვილად თქვენია.',
-'throttled-mailpassword' => 'პაროლის შეხსენება უკვე გაგზავნილია ბოლო $1 საათის განმავლობაში.
-ბოროტად გამოყენების თავიდან აცილებისთვის, მხოლოდ ერთი შეხსენება იგზავნება ყოველ
-$1 საათში.',
+'throttled-mailpassword' => 'პაროლის შეხსენება უკვე გაგზავნილია ბოლო {{PLURAL:$1|საათის|$1 საათის}} განმავლობაში.
+ბოროტად გამოყენების თავიდან აცილებისთვის, მხოლოდ ერთი შეხსენება იგზავნება ყოველ {{PLURAL:$1|საათში|$1 საათში}}.',
 'mailerror' => 'შეცდომა ფოსტის გაგზავნაში: $1',
 'acct_creation_throttle_hit' => '24 საათის განმავლობაში თქვენი IP-მისამართითან {{PLURAL:$1|შეიქმნა $1 ანგარიში|შეიქმნა $1 ანგარიშები|შეიქმნა $1 ანგარიშის}}, რაც არის აკრძალული დროის ამ მონაკვეთისთის.
 აქედან გამომდინარე თქვენი IP-მისამართის მქონე მომხმარებლები ვეღარ შექმნიან ანგარიშები.',
@@ -711,7 +710,7 @@ $1 საათში.',
 
 # Special:PasswordReset
 'passwordreset' => 'პაროლის აღდგენა',
-'passwordreset-text' => 'á\83¨á\83\94á\83\90á\83\95á\83¡á\83\94á\83\97 á\83\94á\83¡ á\83¤á\83\9dá\83 á\83\9bá\83\90, á\83 á\83\90á\83\97á\83\90 á\83\94á\83\9a\83¤á\83\9dá\83¡á\83¢á\83\98á\83\97 á\83\9bá\83\98á\83\98á\83¦á\83\9dá\83\97 á\83¨á\83\94á\83®á\83¡á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98á\83¡ á\83\9eá\83\90á\83 á\83\90á\83\9bá\83\94á\83¢á\83 á\83\94á\83\91á\83\98á\83¡ á\83¨á\83\94á\83¡á\83\90á\83®á\83\94á\83\91.',
+'passwordreset-text' => 'á\83¨á\83\94á\83\90á\83\95á\83¡á\83\94á\83\97 á\83\94á\83¡ á\83¤á\83\9dá\83 á\83\9bá\83\90, á\83 á\83\90á\83\97á\83\90 á\83\99á\83\95á\83\9aá\83\90á\83\95 á\83\93á\83\90á\83\90á\83§á\83\94á\83\9cá\83\9dá\83\97 á\83\97á\83¥á\83\95á\83\94á\83\9cá\83\98 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98.',
 'passwordreset-legend' => 'პაროლის აღდგენა',
 'passwordreset-disabled' => 'ამ ვიკიში პაროლის კვლავ დაყენების ფუნქცია გამორთულია.',
 'passwordreset-pretext' => '{{PLURAL:$1||შეიყვანეთ ქვემოთ მოცემულ მონაცემთა ერთ-ერთი ნაწილი.}}',
@@ -722,32 +721,32 @@ $1 საათში.',
 'passwordreset-email' => 'ელ. ფოსტის მისამართი:',
 'passwordreset-emailtitle' => 'ანგარიშის მონაცემები {{SITENAME}}-თვის',
 'passwordreset-emailtext-ip' => 'ვიღაცამ (შესაძლოა თქვენ, ამ IP-მისამართიდან $1) მოითხოვა თქვენი 
\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98á\83¡ á\83\93á\83\94á\83¢á\83\90á\83\9aá\83\94á\83\91á\83\98á\83¡ á\83¨á\83\94á\83®á\83¡á\83\94á\83\9cá\83\94á\83\91á\83\90 {{SITENAME}}-á\83\97á\83\95á\83\98á\83¡ ($4).
\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\97á\83\90á\83\95á\83\98á\83\93á\83\90á\83\9c á\83\93á\83\90á\83§á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83¡á\83\90á\83\98á\83¢á\83\98á\83¡á\83\90á\83\97á\83\95á\83\98á\83¡ {{SITENAME}} ($4).
 {{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:
 
 $2
 
-{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|$5 დღე}}.
+{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.
 თქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.
 თუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი
 და აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას
 და გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.',
 'passwordreset-emailtext-user' => 'მომხმარებელმა $1 პროექტიდან {{SITENAME}} მოითხოვა თქვენი 
\83\90á\83\9cá\83\92á\83\90á\83 á\83\98á\83¨á\83\98á\83¡ á\83\93á\83\94á\83¢á\83\90á\83\9aá\83\94á\83\91á\83\98á\83¡ á\83¨á\83\94á\83®á\83¡á\83\94á\83\9cá\83\94á\83\91á\83\90 {{SITENAME}}-á\83\97á\83\95á\83\98á\83¡ ($4).
\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\97á\83\90á\83\95á\83\98á\83\93á\83\90á\83\9c á\83\93á\83\90á\83§á\83\94á\83\9cá\83\94á\83\91á\83\90 á\83¡á\83\90á\83\98á\83¢á\83\98á\83¡á\83\90á\83\97á\83\95á\83\98á\83¡ {{SITENAME}} ($4).
 {{PLURAL:$3|შემდეგი ანგარიში მიბმულია|შემდეგი ანგარიშები მიბმულია}} ამ ელ.ფოსტის მისამართზე:
 
 $2
 
-{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|$5 დღე}}.
+{{PLURAL:$3|ეს დროებითი პაროლი|ეს დროებითი პაროლები}} იმოქმედებს {{PLURAL:$5|ერთი დღე|$5 დღე}}.
 თქვენ უნდა შეხვიდეთ სისტემაში და აირჩიოთ ახალი პაროლი.
 თუ თქვენ არ გაგიკეთებიათ აღნიშნული მოთხოვნა, ან გაიხსენეთ თქვენი პაროლი
 და აღარ გსურთ მისი შეცვლა, მაშინ შეგიძლიათ იგნორირება გაუკეთოთ ამ შეტყობინებას
 და გააგრძელოთ თქვენი ძველი პაროლის გამოყენება.',
 'passwordreset-emailelement' => 'მომხმარებლის სახელი: $1
 დროებითი პაროლი: $2',
-'passwordreset-emailsent' => 'á\83¨á\83\94á\83¡á\83\90á\83®á\83¡ენებელი ელ.ფოსტა გაიგზავნა.',
-'passwordreset-emailsent-capture' => 'á\83¥á\83\95á\83\94á\83\9bá\83\9dá\83\97 á\83\9cá\83\90á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\98 á\83¨á\83\94á\83¡á\83\90á\83®á\83¡ენებელი წერილი გაიგზავნა.',
-'passwordreset-emailerror-capture' => 'á\83¥á\83\95á\83\94á\83\9bá\83\9dá\83\97 á\83\9bá\83\9dá\83ªá\83\94á\83\9bá\83£á\83\9aá\83\98á\83\90 á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\98á\83\9aá\83\98 á\83¨á\83\94á\83¡á\83\90á\83®á\83¡ენებელი წერილი, რომლის გაგზავნაც ვერ მოხერხდა: $1 გამო',
+'passwordreset-emailsent' => 'á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\97á\83\90á\83\95á\83\98á\83\93á\83\90á\83\9c á\83\93á\83\90á\83¡á\83\90á\83§ენებელი ელ.ფოსტა გაიგზავნა.',
+'passwordreset-emailsent-capture' => 'á\83¥á\83\95á\83\94á\83\9bá\83\9dá\83\97 á\83\9cá\83\90á\83©á\83\95á\83\94á\83\9cá\83\94á\83\91á\83\98 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\97á\83\90á\83\95á\83\98á\83\93á\83\90á\83\9c á\83\93á\83\90á\83¡á\83\90á\83§ენებელი წერილი გაიგზავნა.',
+'passwordreset-emailerror-capture' => 'á\83¥á\83\95á\83\94á\83\9bá\83\9dá\83\97 á\83\9bá\83\9dá\83ªá\83\94á\83\9bá\83£á\83\9aá\83\98á\83\90 á\83¨á\83\94á\83¥á\83\9bá\83\9cá\83\98á\83\9aá\83\98 á\83\9eá\83\90á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83\93á\83\90á\83¡á\83\90á\83§ენებელი წერილი, რომლის გაგზავნაც ვერ მოხერხდა: $1 გამო',
 
 # Special:ChangeEmail
 'changeemail' => 'ელ-ფოსტის მისამართის შეცვლა',
@@ -1961,6 +1960,9 @@ $1',
 ამის ნაცვლად, სავარაუდოდ, ისისნი უნდა მიუთითებდნენ შესაბამის კონკრეტულ სტატიაზე.<br />
 გვერდი ითვლება მრავამნიშვნელოვნად, თუ მასში განთავსებულია თარგი, რომლის სახელიც მითითებულია გვერდზე [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop' => 'გვერდები განსაზღვრული თვისებით',
+'pageswithprop-legend' => 'გვერდები განსაზღვრული თვისებით',
+'pageswithprop-text' => 'აქ მოცემულია გვერდები, რომელთაც ხელით განესაზღვრათ გარკვეული თვისებები.',
 'pageswithprop-prop' => 'თვისების სახელი:',
 'pageswithprop-submit' => 'მიდი',
 
@@ -3921,17 +3923,17 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'sqlite-no-fts' => '$1 სრული ტექსტის ძიების მხარდაჭერის გარეშე',
 
 # New logging system
-'logentry-delete-delete' => 'მომხმარებელმა $1 წაშალა გვერდი: „$3“',
-'logentry-delete-restore' => '$1 აღადგინა გვერდი $3',
-'logentry-delete-event' => '$1 შეცვალა {{PLURAL:$5|ჟურნალის ჩანაწერის|$5 ჟურნალის ჩანაწერების}} ხილვადობა $3-ზე: $4',
-'logentry-delete-revision' => '$1 შეცვალა {{PLURAL:$5|$5 ვერსიის|$5 ვერსიის}} ხილვადობა გვერდისათვის $3: $4',
-'logentry-delete-event-legacy' => '$1 შეცვალა ჩანაწერების ჟურნალის ხილვადობა $3-ზე',
-'logentry-delete-revision-legacy' => '$1 შეცვალა რედაქტირების კომენტარი გვერდზე $3',
-'logentry-suppress-delete' => '$1 ჩაახშო $3 გვერდი',
-'logentry-suppress-event' => '$1 ფარულად შეცვალა {{PLURAL:$5|ჟურნალის ჩანაწერის|$5 ჟურნალის ჩანაწერების}} ხილვადობა $3-ზე: $4',
-'logentry-suppress-revision' => '$1 ფარულად შეცვალა {{PLURAL:$5|$5 ვერსიის|$5 ვერსიის}} ხილვადობა $3 გვერდზე: $4',
-'logentry-suppress-event-legacy' => '$1 ფარულად შეცვალა $3 ჩანაწერების ჟურნალის ხილვადობა',
-'logentry-suppress-revision-legacy' => '$1 ფარულად შეცვალა ვერსიის ხილვადობა $3 გვერდზე',
+'logentry-delete-delete' => 'მომხმარებელმა $1 {{GENDER:$2|წაშალა}} გვერდი: „$3“',
+'logentry-delete-restore' => 'მომხმარებელმა $1 {{GENDER:$2|აღადგინა}} გვერდი $3',
+'logentry-delete-event' => 'მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} {{PLURAL:$5|ჟურნალის ჩანაწერის|$5 ჟურნალის ჩანაწერების}} ხილვადობა $3-ზე: $4',
+'logentry-delete-revision' => 'მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} {{PLURAL:$5|$5 ვერსიის|$5 ვერსიის}} ხილვადობა გვერდისათვის $3: $4',
+'logentry-delete-event-legacy' => 'მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} ჩანაწერების ჟურნალის ხილვადობა $3-ზე',
+'logentry-delete-revision-legacy' => 'მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} რედაქტირების კომენტარი გვერდზე $3',
+'logentry-suppress-delete' => 'მომხმარებელმა $1 {{GENDER:$2|ჩაახშო}} $3 გვერდი',
+'logentry-suppress-event' => 'მომხმარებელმა $1 ფარულად {{GENDER:$2|შეცვალა}} {{PLURAL:$5|ჟურნალის ჩანაწერის|$5 ჟურნალის ჩანაწერების}} ხილვადობა $3-ზე: $4',
+'logentry-suppress-revision' => 'მომხმარებელმა $1 ფარულად {{GENDER:$2|შეცვალა}} {{PLURAL:$5|$5 ვერსიის|$5 ვერსიის}} ხილვადობა $3 გვერდზე: $4',
+'logentry-suppress-event-legacy' => 'მომხმარებელმა $1 ფარულად {{GENDER:$2|შეცვალა}} $3 ჩანაწერების ჟურნალის ხილვადობა',
+'logentry-suppress-revision-legacy' => 'მომხმარებელმა $1 ფარულად {{GENDER:$2|შეცვალა}} ვერსიის ხილვადობა $3 გვერდზე',
 'revdelete-content-hid' => 'შინაარსი დამალულია',
 'revdelete-summary-hid' => 'რედაქტირების აღწერა დამალულია',
 'revdelete-uname-hid' => 'მომხმარებლის სახელი დაფარულია',
@@ -3940,20 +3942,20 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'revdelete-uname-unhid' => 'მომხმარებლის სახელი გახსნილია',
 'revdelete-restricted' => 'შეზღუდვა ადმინისტრატორთათვის',
 'revdelete-unrestricted' => 'ადმინისტრატორთათვის შეზღუდვები მოხსნილია',
-'logentry-move-move' => 'მომხმარებელმა $1 გვერდი „$3“ გადაიტანა გვერდზე „$4“',
-'logentry-move-move-noredirect' => 'მომხმარებელმა $1 გვერდი „$3“ გადაიტანა გვერდზე „$4“ გადამისამართების დატოვების გარეშე',
-'logentry-move-move_redir' => 'მომხმარებელმა $1 გვერდი „$3“ გადაიტანა გვერდზე „$4“ გადამისამართებაზე',
-'logentry-move-move_redir-noredirect' => '$1 გადაიტანა გვერდი $3 $4-ში გადამისამართების დატოვების გარეშე',
-'logentry-patrol-patrol' => '$1 გააკეთა გვერდის „$3“ $4 ვერსიის პატრულირება',
-'logentry-patrol-patrol-auto' => '$1 ავტომატურად გააკეთა გვერდის „$3“ $4 ვერსიის პატრულირება',
-'logentry-newusers-newusers' => 'მომხმარებლის ანგარიში $1 შექმნილია',
-'logentry-newusers-create' => 'შეიქმნა მომხმარებლის ანგარიში $1',
-'logentry-newusers-create2' => 'მომხმარებლის ანგარიში $3 შექმნა მომხმარებელმა $1',
-'logentry-newusers-byemail' => 'მომხმარებლის ანგარიში $3 შექმნა მომხმარებელმა $1 და პაროლი გაგზავნა ელ. ფოსტით',
-'logentry-newusers-autocreate' => 'ავტომატურად შეიქმნა მომხმარებლის ანგარიში $1',
-'logentry-rights-rights' => '$1 შეცვალა ჯგუფის წევრობა $3-თვის $4-დან $5-ზე',
-'logentry-rights-rights-legacy' => '$1 შეცვალა ჯგუფის წევრობა $3-თვის',
-'logentry-rights-autopromote' => '$1 ავტომატურად იქნა გადაყვანილი $4–დან $5–ში',
+'logentry-move-move' => 'მომხმარებელმა $1 გვერდი „$3“ {{GENDER:$2|გადაიტანა}} გვერდზე „$4“',
+'logentry-move-move-noredirect' => 'მომხმარებელმა $1 გვერდი „$3“ {{GENDER:$2|გადაიტანა}} გვერდზე „$4“ გადამისამართების დატოვების გარეშე',
+'logentry-move-move_redir' => 'მომხმარებელმა $1 გვერდი „$3“ {{GENDER:$2|გადაიტანა}} გვერდზე „$4“ გადამისამართებაზე',
+'logentry-move-move_redir-noredirect' => 'მომხმარებელმა $1 {{GENDER:$2|გადაიტანა}} გვერდი $3 $4-ში გადამისამართების დატოვების გარეშე',
+'logentry-patrol-patrol' => 'მომხმარებელმა $1 {{GENDER:$2|გააკეთა}} გვერდის „$3“ $4 ვერსიის პატრულირება',
+'logentry-patrol-patrol-auto' => 'მომხმარებელმა $1 ავტომატურად {{GENDER:$2|გააკეთა}} გვერდის „$3“ $4 ვერსიის პატრულირება',
+'logentry-newusers-newusers' => 'მომხმარებლის ანგარიში $1 {{GENDER:$2|შექმნილია}}',
+'logentry-newusers-create' => '{{GENDER:$2|შეიქმნა}} მომხმარებლის ანგარიში $1',
+'logentry-newusers-create2' => 'მომხმარებლის ანგარიში $3 {{GENDER:$2|შექმნა}} მომხმარებელმა $1',
+'logentry-newusers-byemail' => 'მომხმარებლის ანგარიში $3 {{GENDER:$2|შექმნა}} მომხმარებელმა $1 და პაროლი გაგზავნა ელ. ფოსტით',
+'logentry-newusers-autocreate' => 'ავტომატურად {{GENDER:$2|შეიქმნა}} მომხმარებლის ანგარიში $1',
+'logentry-rights-rights' => 'მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} ჯგუფის წევრობა $3-თვის $4-დან $5-ზე',
+'logentry-rights-rights-legacy' => 'მომხმარებელმა $1 {{GENDER:$2|შეცვალა}} ჯგუფის წევრობა $3-თვის',
+'logentry-rights-autopromote' => 'მომხმარებელი $1 ავტომატურად იქნა {{GENDER:$2|გადაყვანილი}} $4–დან $5–ში',
 'rightsnone' => '(არცერთი)',
 
 # Feedback
@@ -4029,4 +4031,7 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'duration-centuries' => '$1 {{PLURAL:$1|საუკუნე|საუკუნე}}',
 'duration-millennia' => '$1 {{PLURAL:$1|ათასწლეული|ათასწლეული}}',
 
+# Image rotation
+'rotate-comment' => 'სურათი მოტრიალებულია $1 {{PLURAL:$1|გრადუსით|გრადუსით}} საათის ისრის მიმართულებით',
+
 );
index cc838e4..5598a9c 100644 (file)
@@ -752,9 +752,9 @@ $2',
 'eauthentsent' => 'អ៊ីមែល​សម្រាប់​ផ្ទៀងផ្ទាត់​បញ្ជាក់ត្រូវបានផ្ញើទៅ​អាសយដ្ឋានអ៊ីមែល​ដែលបានចុះត្រាហើយ។
 
 មុននឹងមាន​អ៊ីមែលផ្សេងមួយទៀត​ត្រូវផ្ញើទៅ​គណនីនេះ អ្នកត្រូវតែ​ធ្វើតាមសេចក្តីណែនាំ​ក្នុងអ៊ីមែល​នោះ ដើម្បីបញ្ជាក់ថា​គណនីបច្ចុប្បន្ន​ពិតជា​របស់អ្នកពិតប្រាកដមែន។',
-'throttled-mailpassword' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80ពាក្យសម្ងាត់ត្រូវបានផ្ញើទៅឱ្យអ្នកតាំងពី{{PLURAL:$1|មួយម៉ោង|$1ម៉ោង}}មុននេះហើយ។
+'throttled-mailpassword' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aពាក្យសម្ងាត់ត្រូវបានផ្ញើទៅឱ្យអ្នកតាំងពី{{PLURAL:$1|មួយម៉ោង|$1ម៉ោង}}មុននេះហើយ។
 
\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\84á\9f\92á\9e\80á\9e¶á\9e\9aá\9e¢á\9f\86á\9e\96á\9e¾á\9e\94á\9f\86á\9e\96á\9e¶á\9e\93 á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80ពាក្យសម្ងាត់តែមួយគត់នឹងត្រូវបាន​ផ្ញើក្នុងរយៈពេល{{PLURAL:$1|មួយម៉ោង|$1ម៉ោង}}។',
\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\94á\9e\84á\9f\92á\9e\80á\9e¶á\9e\9aá\9e¢á\9f\86á\9e\96á\9e¾á\9e\94á\9f\86á\9e\96á\9e¶á\9e\93 á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aពាក្យសម្ងាត់តែមួយគត់នឹងត្រូវបាន​ផ្ញើក្នុងរយៈពេល{{PLURAL:$1|មួយម៉ោង|$1ម៉ោង}}។',
 'mailerror' => 'បញ្ហាក្នុងការផ្ញើអ៊ីមែល៖ $1',
 'acct_creation_throttle_hit' => 'អ្នកទស្សនា​វិគី​នេះ​ដោយ​ប្រើប្រាស់​អាសយដ្ឋានIPរបស់​អ្នក​ បានបង្កើត{{PLURAL:$1|គណនីមួយ|គណនីចំនួន$1}}នៅ​ថ្ងៃ​ចុងក្រោយ។ ចំនួននេះ​ជា​ចំនួន​អតិបរមារ​ដែល​ត្រូវ​បាន​អនុញ្ញាត​សម្រាប់​រយៈពេល​នេះ​។
 
index 5a5cc2b..a59fb13 100644 (file)
@@ -732,7 +732,7 @@ Ene schöne Jroß vun {{GRAMMAR:Dat|{{SITENAME}}}}.
 'passwordsent' => 'E neu Passwood es aan de E-Mail Adress vun däm Metmaacher „$1“ ungerwähs. Meld dich domet aan, wann De et häs. Dat ahle Passwood bliev erhalde un kann och noch jebruch wääde, bes dat De Dich et eetste Mol met däm Neue enjelogg häs.',
 'blocked-mailpassword' => 'Ding IP Adress es blockeet.',
 'eauthentsent' => 'En <i lang="en">e-mail</i> es jetz ungerwähs aan di Adress, die en de Enstellunge steiht. Ih dat <i lang="en">e-mails</i> üvver {{GRAMMAR:Genitiv iere male|{{SITENAME}}}} <i lang="en">e-mail</i>-Knopp verscheck wääde künne, muss de <i lang="en">e-mail</i>-Adress eets ens bestätich woode sin. Wat mer doför maache moß, steiht en dä <i lang="en">e-mail</i> dren, die jrad avjescheck woode es.',
-'throttled-mailpassword' => 'En Erennerung för di Passwood es ungerwähs. Domet ene fiese Möpp keine Dress fabrizeet, passeet dat hüchstens eimol en {{PLURAL:$1|der Stund|$1 Stunde|nidd ens eine Stund}}.',
+'throttled-mailpassword' => 'En Erennerung för di Passwood es alld ongerwähs, un mieh wi eimol en {{PLURAL:$1|der Schtond|$1 Schtonde|nidd ens ener Schtond}} dommer kein schecke.',
 'mailerror' => 'Fähler beim E-Mail Verschecke: $1.',
 'acct_creation_throttle_hit' => '<b>Schad.</b>
 Besöker fun däm Wiki heh han övver de IP-Addräß, övver di De jraad aam
@@ -791,7 +791,7 @@ Do häs Der enzwesche e neuZweschepasswood jehollt.',
 
 # Special:PasswordReset
 'passwordreset' => 'Et Paßwoot zeröck säze',
-'passwordreset-text' => 'Donn dat Fommulaa heh ußfölle, öm en <i lang="en">e-mail</i> ze krijje, woh jät övver der Zohjang heh obb et Wiki för Desch dren shteiht.',
+'passwordreset-text' => 'Donn dat Fommulaa heh ußfölle, öm e neu Paßwoot faßzelääje.',
 'passwordreset-legend' => 'Et Paßwoot zeröck säze',
 'passwordreset-disabled' => 'Et Paßwoot zeröck ze säze es heh em Wiki afjeschalldt.',
 'passwordreset-pretext' => '{{PLURAL:$1||Jiff ein vun dä Saache heh dronger enn|}}',
@@ -801,8 +801,8 @@ Do häs Der enzwesche e neuZweschepasswood jehollt.',
 'passwordreset-capture-help' => 'Wann De heh e Krüzje määß, kriß de di <i lang="en">e-mail</i> met däm neue Paßwoot aanjezeish, ußer dat dä Metmaacher se och zohjescheck kritt.',
 'passwordreset-email' => 'De Adräß för de <i lang="en">e-mail</i>:',
 'passwordreset-emailtitle' => 'Einzelheite för der Zohjang op {{GRAMMAR:Akkusativ|{{SITENAME}}}}',
-'passwordreset-emailtext-ip' => 'Do künns et sällver jewääse sin, öhnswää hät vun dä Adräß $1 en Internet öm
-en e-mail jefrooch, met Daate övver Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}
+'passwordreset-emailtext-ip' => 'Do künns et sällver jewääse sin, öhnswää em Internet hät vun dä IP-Adräß $1 öm
+e neu Paßwoot jefrooch, för Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}
 $4
 Heh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:
 
@@ -813,8 +813,8 @@ Donn Desch jäz enlogge, un e neu Paßwoot faßlääje. Wann ene Andere wi
 Do dat heh aanjestüßße hät, udder wann De Desch widder aan Ding Paßwoot
 entsenne kanns, un et nimmieh ändere wells, udder es suwwisu weiß, dann
 moß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.',
-'passwordreset-emailtext-user' => 'Dä Metmaacher $1 vun {{GRAMMAR:Dativ|{{SITENAME}}}} hät öm en e-mail jefrooch,
-met Daate övver Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}
+'passwordreset-emailtext-user' => 'Dä Metmaacher $1 vun {{GRAMMAR:Dativ|{{SITENAME}}}} hät öm e neu Paßwoot jefrooch,
+r Dinge Zohjäng op {{GRAMMAR:Akkusativ|{{SITENAME}}}}
 $4
 Heh {{PLURAL:$3|dä Metmaacher hät|di Metmaacher han|hät keine Metmaacher}} Ding e-mail Addräß:
 
@@ -827,9 +827,9 @@ entsenne kanns, un et nimmieh ändere wells, udder es suwwisu weiß, dann
 moß De jäz jaa nix donn, un kanns Ding Paßwoot wigger bruche.',
 'passwordreset-emailelement' => 'Metmaacher Name: $1
 Eijmohl-Paßwoot: $2',
-'passwordreset-emailsent' => 'En <i lang="en">e-mail</i> met Aanjaabe zom Zohjang heh es verscheck.',
-'passwordreset-emailsent-capture' => 'En <i lang="en">e-mail</i> es verscheck. Heh dronger kanns De se lässe.',
-'passwordreset-emailerror-capture' => 'En <i lang="en">e-mail</i> sullt verscheck wääde. Heh dronger kanns De se lässe. Dat Verschecke hät ävver nit jeflup, wääje: $1.',
+'passwordreset-emailsent' => 'En <i lang="en">e-mail</i> met Aanjaabe zom neue Paßwoot för der Zohjang heh es verscheck.',
+'passwordreset-emailsent-capture' => 'En <i lang="en">e-mail</i> met Aanjaabe zom neue Paßwoot för der Zohjang heh es verscheck woode. Heh dronger kanns De se lässe.',
+'passwordreset-emailerror-capture' => 'En <i lang="en">e-mail</i> met Aanjaabe zom neue Paßwoot för der Zohjang heh sullt verscheck wääde, ävver dat Verschecke hät nit jeflup: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Donn Ding Address för de <i lang="en">e-mail</i> ändere',
@@ -1051,10 +1051,10 @@ oder fottjeschmesse wääde. Wann Der dat nit rääch es, schriev nix. Et es och
 Dä Tex, dä De heh jescheck häs, dä es {{PLURAL:$1|ein|$1|kei}} Kilobyte jruuß.
 Dat {{PLURAL:$2|es mieh wie ei|sin mieh wie $2|es kei}} Kilobyte. Dat künne mer nit speichere!",
 'readonlywarning' => "'''Opjepass:'''
-De Daatebank es jesperrt woode, wo Do ald am Ändere wors.
+De Daatebank es jesperrt woode, wo Do ald am Ändere wohs.
 Dä.
-Jetz kanns De Ding Änderunge nit mieh avspeichere.
-Dun se bei Dir om Rechner fasshalde un versök et späder noch ens.
+Jetz kanns De Ding Änderunge nit mieh faßhallde lohße.
+Dun se bei Dir om Rechner faßhalde un versöhg et schpäder noch ens.
 
 Nävvebei, dä Datenbank-Köbes hät för et Sperre och ene Jrund aanjejovve: $1",
 'protectedpagewarning' => "'''Opjepass: Die Sigg heh es jäje Veränderunge jeschötz. Nor de Wiki-Köbesse künne se ändere.'''
@@ -2327,7 +2327,7 @@ De Brauserprotokolle, di mer beim Söke aanjäjovve kann, sin: <code>$1</code>,
 # Special:ActiveUsers
 'activeusers' => 'Leß met de aktiive Metmaacher',
 'activeusers-intro' => 'Dat heh es en Leß met dä Metmaacher, di {{PLURAL:$1|zick jäßtere|en de läzde $1 Dääsch|hück}} ööhnsjät jemaat han.',
-'activeusers-count' => '{{PLURAL:$1|ein Änderung|$1 Änderunge|kein Änderunge}} {{PLURAL:$3|aam lezde Daach|en de lezte $3 Dääsch|hück}}',
+'activeusers-count' => '{{PLURAL:$1|ein Änderong|$1 Änderonge|kein Änderonge}} {{PLURAL:$3|aam lezde Daach|en de lezte $3 Dääsch|hück}}',
 'activeusers-from' => 'Donn de Metmaacher zeije aff:',
 'activeusers-hidebots' => 'De Bots fott lohße',
 'activeusers-hidesysops' => 'De Wiki_Köbesse fott lohße',
@@ -2397,7 +2397,7 @@ Alles klor?',
 'usermessage-editor' => 'Name vum Metmaacher för de Täxte un Nohreshte vum Wiki ze beärbeide',
 
 # Watchlist
-'watchlist' => 'ming Oppassliss',
+'watchlist' => 'ming Oppaßleß',
 'mywatchlist' => 'Oppaßleß',
 'watchlistfor2' => 'För dä $1 $2',
 'nowatchlist' => 'En Ding Oppassliss es nix dren.',
@@ -2405,12 +2405,8 @@ Alles klor?',
 'watchnologin' => 'Nit enjelogg',
 'watchnologintext' => 'Öm Ding Oppassliss ze ändere, mööts de ald [[Special:UserLogin|enjelogg]] sin.',
 'addwatch' => 'En de Oppassliss don',
-'addedwatchtext' => "Die Sigg „[[:$1]]“ es jetz en Dinge [[Special:Watchlist|Oppaßleß]].
-Av jetz, wann die Sigg verändert weed, oder ehr Klaafsigg, dann weed dat en de
-Oppassliss jezeich. Dä Endrach för die Sigg kütt en  '''Fettschreff''' en de
-„[[Special:RecentChanges|Neuste Änderunge]]“, domet De dä do och flöck fengs.
-Wann de dä widder loss wääde wells us Dinger Oppaßleß,
-dann klick op „Nimieh drop oppasse“ wann De die Sigg om Schirm häs.",
+'addedwatchtext' => 'Die Sigg „[[:$1]]“ es jetz en Dinge [[Special:Watchlist|Oppaßleß]].
+Wann di Sigg udder ier Klaafsigg verändert weed, kütt dat af jäz heh en di Oppaßleß.',
 'removewatch' => 'Us de Oppassliss nämme',
 'removedwatchtext' => 'Die Sigg „[[:$1]]“ es jetz us de [[Special:Watchlist|Oppassliss]] erusjenomme.',
 'watch' => 'Drop Oppasse',
@@ -2561,8 +2557,8 @@ Di Sigg '''„$1“:''' es jetz jrad:",
 'protect-cascadeon' => 'Die Sigg es en enne Schotz-Kaskad. Se es enjebonge en {{PLURAL:$1|die Sigg|$1 Sigge|kein Sigg}}, die per Kaskade-Schotz jeschötz {{PLURAL:$1|es|sin|es}}. Do kanns dä Schotz för die Sigg heh ändere, ävver di Kaskad blief bestonn. Dat heh sin die Sigge en dä Kaskad:',
 'protect-default' => 'Jeede Metmaacher eraan lohße',
 'protect-fallback' => 'Do weet dat Rääsch „$1“ jebruch.',
-'protect-level-autoconfirmed' => 'Donn neu Metmaacher un namelose Metmaacher nit dranlooße',
-'protect-level-sysop' => 'Nor de Wiki-Köbesse dranlooße',
+'protect-level-autoconfirmed' => 'Bloß de automattesch beschtääteschte Metmaacher dranlooße',
+'protect-level-sysop' => 'Bloß de Wiki-Köbesse dranlooße',
 'protect-summary-cascade' => 'met Schotz-Kaskad',
 'protect-expiring' => 'bes öm $3 Uhr (UTC) aam $2',
 'protect-expiring-local' => 'löüf uß: $1',
@@ -2864,21 +2860,21 @@ un verzäll dänne vun däm ärrje Risiko för de Secherheit fun dänne ehr Rä
 'move-page' => 'De Sigg „$1“ ömnenne',
 'move-page-legend' => 'Sigg Ömnenne',
 'movepagetext' => "Heh kanns De en Sigg ömnenne.
-Domet kritt die Sigg ene neue Name, un all vörherije Versione vun dä Sigg och.
-Unger däm ahle Tittel weed automatisch en Ömleitung op dä neue Tittel enjedrage.
+Domet kritt di Sigg ene neue Name, un all vörherije Versione vun dä Sigg och.
+Unger däm ahle Tittel weed automatisch en Ömleidong op dä neue Tittel enjedrare.
 
-Do kannß dat Höksche setze domet Ömleidonge automattesch aanjepaß wääde, di op dä ahle Tittel zeije — dat weet ävver nur allmählesch pö a pö hengerher jemaat.
-Links op dä ahle Tittel blieve ävver wie se wore, wann De dat Höksche nit setz.
-Dat heiß, dann moß De selver nohluure, ov do jetz [[Special:DoubleRedirects|dubbelde Ömleidunge]] udder [[Special:BrokenRedirects|kapodde Ömleidunge]] bei eruskumme.
+Do kannß dat Höksche säze domet Ömleidonge automattesch aanjepaß wääde, di op dä ahle Tittel zeije — dat weet ävver nur allmählesch pö a pö hengerher jemaat.
+Links op dä ahle Tittel blieve ävver wi se wore, wann De dat Höksche nit säz.
+Dat heiß, dann moß De selver nohluure, of do jäz [[Special:DoubleRedirects|dubbelde Ömleidonge]] udder [[Special:BrokenRedirects|kapodde Ömleiduoge]] bei eruskumme.
 Wann De en Sigg ömnenne deis, häs Do och doför ze sorje, dat de betroffene Links do henjonn, wo se hen jonn solle.
-Alsu holl Der de Liss „Wat noh heh link“ fun dä Sigg heh un jangk se dorch!
+Alsu holl Der de Liss „Wat noh heh link“ fun dä Sigg heh un jangk se dorsch!
 
-De Sigg weed '''nit''' ömjenannt, wann et met däm neue Name ald en Sigg jitt, '''ußer''' et es nix drop, oder et es en Ömleitung un se es noch nie jeändert woode.
-Esu kam_mer en Sigg jlich widder zeröck ömnenne, wam_mer sich bem Ömnenne verdonn hät, un mer kann och kein Sigge kapottmaache, wo ald jet drop steiht.
+De Sigg weed '''nit''' ömjenannt, wann et met däm neue Name ald en Sigg jitt, '''ußer''' et es en Ömleidong un se es noch nie jeändert woode.
+Esu kam_mer en Sigg jlich widder zeröck ömbenänne, wam_mer sich bem Ömbenänne verdonn hät, un mer kann och kein Sigge kapottmaache, wo ald jet drop schteiht.
 
 '''Oppjepass!'''
-Wat beim Ömnenne erus kütt, künnt en opfällije un villeich stürende Änderung aam Wiki sin, besönders bei öff jebruchte Sigge.
-Alsu bes secher, dat De versteihs, wat De heh am maache bes, ih dat De et mähs!",
+Wat beim Ömnenne erus kütt, künnt en opfällije un villeisch stüürende Änderong aam Wiki sin, besönders bei öff jebruchte Sigge.
+Alsu bes secher, dat De verschteihs, wat De heh am maache bes, ih dat De et mähs!",
 'movepagetext-noredirectfixer' => "Heh kanns De en Sigg ömnenne.
 Domet kritt die Sigg ene neue Name, un all vörherije Versione vun dä Sigg och.
 Unger däm ahle Tittel weed automatisch en Ömleitung op dä neue Tittel enjedrage.
@@ -4076,7 +4072,7 @@ Die Datei weed jlich aanjezeig, odder med däm paßende Projramm op jemaat.",
 'specialpages-group-highuse' => 'Öff jebruch…',
 'specialpages-group-pages' => 'Siggeliste',
 'specialpages-group-pagetools' => 'Werrekzüch för Sigge',
-'specialpages-group-wiki' => 'Werrekzüch un Date vum Systeem',
+'specialpages-group-wiki' => 'Werrekzüch un Daate vum Syßteem',
 'specialpages-group-redirects' => '{{int:nstab-special}}e, die ömleite, söke, un finge',
 'specialpages-group-spam' => 'Werrekzüch jäje SPÄM',
 
@@ -4147,17 +4143,17 @@ die De häs han welle. Se künnt jet ällder un nit mieh aktoäll sin.',
 'sqlite-no-fts' => 'Version $1 (kann ävver nit en janze Täxte söhke)',
 
 # New logging system
-'logentry-delete-delete' => ' $1 hät di Sigg „$3“ fottjeschmeße.',
-'logentry-delete-restore' => 'Dä $1 hät di vörmohls fottjeschmeße Sigg „$3“ wider zeröck jehollt..',
-'logentry-delete-event' => 'Dä $1 hät för {{PLURAL:$5|eine Logboochendraach|$5 Logboochendrääsh|keine Logboochendraach}}  vun dä Sigg „$3“ $4.',
-'logentry-delete-revision' => 'Dä $1 hät för {{PLURAL:$5|ein Version|$5 Versione|kein Version}}  vun dä Sigg „$3“ $4.',
-'logentry-delete-event-legacy' => 'Dä $1 hät de Seeschbakeit vun Enndrääje en Logbööscher vun dä Sigg „$3“ verändert.',
-'logentry-delete-revision-legacy' => 'Dä $1 hät de Seeschbakeit ällder Väsjohne vun dä Sigg „$3“ verändert.',
-'logentry-suppress-delete' => ' $1 hät di Sigg „$3“ ongerdröck.',
-'logentry-suppress-event' => 'Dä $1 hät heimlesh för {{PLURAL:$5|eine Logboochendraach|$5 Logboochendrääsh|keine Logboochendraach}}  vun dä Sigg „$3“ $4.',
-'logentry-suppress-revision' => 'Dä $1 hät heimlesh för {{PLURAL:$5|ein Version|$5 Versione|kein Version}}  vun dä Sigg „$3“ $4.',
-'logentry-suppress-event-legacy' => 'Dä $1 hät de Seeschbakeit vun Enndrääje en Logbööscher vun dä Sigg „$3“ heimlesch verändert.',
-'logentry-suppress-revision-legacy' => 'Dä $1 hät de Seeschbakeit ällder Väsjohne vun dä Sigg „$3“ heimlesch verändert.',
+'logentry-delete-delete' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Sigg „$3“ fottjeschmeße.',
+'logentry-delete-restore' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di vörmohls fottjeschmeße Sigg „$3“ wider zeröck jehollt.',
+'logentry-delete-event' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät för {{PLURAL:$5|eine Logboochendraach|$5 Logboochendrääsh|keine Logboochendraach}} vun dä Sigg „$3“ $4.',
+'logentry-delete-revision' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät för {{PLURAL:$5|ein Version|$5 Versione|kein Version}} vun dä Sigg „$3“ $4.',
+'logentry-delete-event-legacy' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Seeschbakeit vun Enndrääje en de Logbööscher vun dä Sigg „$3“ verändert.',
+'logentry-delete-revision-legacy' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Seeschbakeit vun älldere Väsjohne vun dä Sigg „$3“ verändert.',
+'logentry-suppress-delete' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Sigg „$3“ ongerdröck.',
+'logentry-suppress-event' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät heimlesh för {{PLURAL:$5|eine Logboochendraach|$5 Logboochendrääsh|keine Logboochendraach}} en dä Sigg „$3“ $4.',
+'logentry-suppress-revision' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät heimlesch för {{PLURAL:$5|ein Version|$5 Versione|kein Version}} vun dä Sigg „$3“ $4.',
+'logentry-suppress-event-legacy' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Seeschbakeit vun Enndrääje en dä Logbööscher op dä Sigg „$3“ heimlesch verändert.',
+'logentry-suppress-revision-legacy' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Seeschbakeit vun älldere Väsjohne vun dä Sigg „$3“ heimlesch verändert.',
 'revdelete-content-hid' => 'der Enhalt verstoche',
 'revdelete-summary-hid' => 'dat Fäld „{{int:summary}}“ vershtoche',
 'revdelete-uname-hid' => 'der Name vum Metmaacher verstoche',
@@ -4166,16 +4162,16 @@ die De häs han welle. Se künnt jet ällder un nit mieh aktoäll sin.',
 'revdelete-uname-unhid' => 'der Name vum Metmaacher öffentlesh jemaat',
 'revdelete-restricted' => ', och för de Wiki-Köbesse',
 'revdelete-unrestricted' => ', och för de Wiki-Köbesse',
-'logentry-move-move' => ' $1 hätt di Sigg „$3“ en „$4“ ömjenannt.',
-'logentry-move-move-noredirect' => ' $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei kein Ömleidong aanjelaat.',
-'logentry-move-move_redir' => 'Dä $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei en ahle Ömleingungssigg fottjeschmeße.',
-'logentry-move-move_redir-noredirect' => 'Dä $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei en ahle Ömleidongssigg fottjeschmeße un kein neue Ömliedongssig aanjelaat.',
-'logentry-patrol-patrol' => ' $1 hät di Version $4 vun dä Sigg „$3“ nohjeloort.',
-'logentry-patrol-patrol-auto' => ' $1 hät di Version $4 vun dä Sigg „$3“ automattesch nohjeloort.',
+'logentry-move-move' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt.',
+'logentry-move-move-noredirect' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei kein Ömleidong aanjelaat.',
+'logentry-move-move_redir' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei en ahle Ömleindongßsigg fottjeschmeße.',
+'logentry-move-move_redir-noredirect' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei en ahle Ömleidongßsigg fottjeschmeße un kein neue Ömleidongßsig aanjelaat.',
+'logentry-patrol-patrol' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Version $4 vun dä Sigg „$3“ nohjeloort.',
+'logentry-patrol-patrol-auto' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Version $4 vun dä Sigg „$3“ automattesch nohjeloort.',
 'logentry-newusers-newusers' => 'Dä neue Metmaacher $1 wood aanjelaat.',
-'logentry-newusers-create' => 'Dä neue Metmaacher $1 wood aanjelaat.',
-'logentry-newusers-create2' => 'Dä $1 hät dä $3 als ene neue Metmaacher aanjelaat.',
-'logentry-newusers-autocreate' => 'Dä $1 wood automattesch als Metmaacher aanjelaat.',
+'logentry-newusers-create' => '{{GENDER:$4|Dä neue Metmaacher|De neue Metmaacherėn|Dä neue Metmaacher|De neue Metmaacherėn|Dä neue Metmaacher}} $1 wood aanjelaat.',
+'logentry-newusers-create2' => '{{GENDER:$4|Dä|Dat|Dä Metmaacher|De|Dat}} $3 wood {{GENDER:$2|vum|vum|vumm Metmaacher|vun dä|vum}} $1 aanjelaat.',
+'logentry-newusers-autocreate' => '{{GENDER:$4|Dä|Dat|Dä Metmaacher|De|Dat}} $1 wood automattesch {{GENDER:$4|als Metmaacher|als Metmaacher||als Metmaacher|als Metmaacher}} aanjelaat.',
 'logentry-rights-rights' => '{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} „$1“ hät däm Metmaacher „$3“ sing Jroppe-Räächde vun „$4“ op „$5“ ömjestallt.',
 'logentry-rights-rights-legacy' => '{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dat}} $1 hät däm Metmaacher $3 sing Räääschte-Jroppe verändert.',
 'logentry-rights-autopromote' => '{{GENDER:$1|Dä|Et|Dä Metmaacher|De|Dat}} $1 wood automattesch vum $4 zom $5 jemaat.',
index 1b1a99d..483c69c 100644 (file)
@@ -821,7 +821,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Vebijartinên lêgerrînê',
 'searchmenu-exists' => "'''Rûpeleke bi navê \"[[:\$1]]\" li ser vê wîkiyê heye.'''",
-'searchmenu-new' => 'Rûpela "[[:$1]]" li ser vê derê çêke!',
+'searchmenu-new' => 'Rûpela "[[:$1]]" çêke!',
 'searchhelp-url' => 'Help:Alîkarî',
 'searchprofile-articles' => 'Rûpelên naverokê',
 'searchprofile-project' => 'Rûpelên alîkariyê û projeyê',
@@ -1620,10 +1620,10 @@ Sedemekê binivîse!",
 'ipbreasonotherlist' => 'Sedemeke din',
 'ipbreason-dropdown' => '*Sedemên astengkirinê
 ** vandalîzm
-** agahiya şaş kire gotarekê
+** agahiya şaş dikire gotarekê
 ** naveroka rûpelekê vala kir
 ** girêdanên xerab tevlî rûpelan dikir
-** tiştên tewş dikir gotaran
+** tiştên tewş tevlî gotaran dikir
 ** heqaretkirin
 ** pir hesab bikaranîn
 ** navekî ku nayê pejirandin',
@@ -2120,6 +2120,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'blankpage' => 'Rûpela vala',
 
 # Special:Tags
+'tag-filter' => 'Parzûna [[Special:Tags|nîşankirinê]]:',
 'tag-filter-submit' => 'Parzûn',
 'tags-title' => 'Nîşankirin',
 'tags-tag' => 'Tag name',
index d7a4bdb..0caa42e 100644 (file)
@@ -728,7 +728,7 @@ Vläicht hutt Dir Äert Passwuert scho geännert oder en neit temporäert Passwu
 'passwordreset-capture-help' => 'Wann Dir dës Këscht ukräizt, gëtt de Mail (mam temporäre Passwuert) Iech gewisen an dem Benotzer geschéckt.',
 'passwordreset-email' => 'E-Mailadress:',
 'passwordreset-emailtitle' => 'Detailer vum Benotzerkont op{{SITENAME}}',
-'passwordreset-emailtext-ip' => "Iergendee mat der IP-Adress $1, wahrscheinlech Dir selwer, huet eng Erënnerung fir Är Benotzerkonteninformatiounen op {{SITENAME}} gefrot ($4). {{PLURAL:$3|De Benotzerkont ass|D'Benutzerkonte si}} mat dëser E-Mail-Adress verbonn:
+'passwordreset-emailtext-ip' => "Iergendee mat der IP-Adress $1, wahrscheinlech Dir selwer, huet d'Zrécksetze vun Ärem Passwuert op {{SITENAME}} gefrot ($4). {{PLURAL:$3|De Benotzerkont ass|D'Benutzerkonte si}} mat dëser E-Mail-Adress verbonn:
 
 $2
 
@@ -1106,7 +1106,7 @@ Dir hutt keen Zougang dozou.',
 'revdelete-no-change' => "'''Opgepasst:''' D'Element vum $2 ëm $1 Auer huet schonn déi ugefrote Sichtbarkeetsastellung.",
 'revdelete-concurrent-change' => "Feeler beim Ännere vum Element vum $1 ëm $2 Auer: säit Statut schéngt geännert ginn ze si während Dir vericht hutt et z'änneren.
 Kuckt w.e.g. an de Logbicher no.",
-'revdelete-only-restricted' => 'Feler beim verstoppe vum Objet vum $2, $1: Dir kënnt keng Objete virun den Administrateure verstoppen ouni och eng vun den aneren Optiounen vum weisen erauszesichen.',
+'revdelete-only-restricted' => 'Feeler beim verstoppe vum Element vum $2, $1: Dir kënnt keng Elementer virun den Administrateure verstoppen ouni och eng vun den aneren Optiounen vum weisen erauszesichen.',
 'revdelete-reason-dropdown' => "* Generell Läschgrënn
 ** Verletzung vun den Droits d'Auteur
 ** Net ubruechte perséinlech Informatioun
@@ -3582,7 +3582,7 @@ Dëse Confirmatiouns-Code leeft den $4 of.',
 'table_pager_first' => 'Éischt Säit',
 'table_pager_last' => 'Lescht Säit',
 'table_pager_limit' => '$1 Objete pro Säit weisen',
-'table_pager_limit_label' => 'Objete pro Säit:',
+'table_pager_limit_label' => 'Elementer pro Säit:',
 'table_pager_limit_submit' => 'Lass',
 'table_pager_empty' => 'Keng Resultater',
 
@@ -3773,9 +3773,9 @@ Den ugefrote Fichier gëtt direkt gewise respektiv mat enger verbonner Applikati
 # New logging system
 'logentry-delete-delete' => "$1 {{GENDER:$2|huet}} d'Säit $3 geläscht",
 'logentry-delete-restore' => "$1 {{GENDER:$2|huet}} d'Säit $3 restauréiert",
-'logentry-delete-event' => "$1 huet d'Visibilitéit vun {{PLURAL:$5|engem Evenement|$5 Evenementer}} am Logbuch op $3:$4 geännert",
-'logentry-delete-event-legacy' => "$1 huet d'Visibilitéit vun Elementer am Log op $3 geännert",
-'logentry-delete-revision-legacy' => "$1 huet d'Visibilitéit vu Versioune vun der Säit $3 geännert",
+'logentry-delete-event' => "$1 huet d'Visibilitéit vun {{PLURAL:$5|engem Evenement|$5 Evenementer}} am Logbuch op $3:$4 {{GENDER:$2|geännert}}",
+'logentry-delete-event-legacy' => "$1 huet d'Visibilitéit vun Elementer am Log op $3 {{GENDER:$2|geännert}}",
+'logentry-delete-revision-legacy' => "$1 huet d'Visibilitéit vu Versioune vun der Säit $3 {{GENDER:$2|geännert}}",
 'logentry-suppress-delete' => "$1 {{GENDER:$2|huet}} d'Säit $3 ewechgeholl",
 'logentry-suppress-event-legacy' => "$1 {{GENDER:$2|huet}} diskret d'Visibilitéit vun Elementer am Log op $3 geännert",
 'logentry-suppress-revision-legacy' => "$1 huet diskret d'Visibilitéit vu Versioune vun der Säit $3 geännert",
index f49b17b..cbce738 100644 (file)
@@ -163,7 +163,7 @@ $messages = array(
 'vector-action-unprotect' => 'Хуьн дегишарун',
 'vector-simplesearch-preference' => 'Гегьенш жагъурунин рикIел гъун кутун (кьилди "Вектор" акунар патал)',
 'vector-view-create' => 'Туькlуьрун',
-'vector-view-edit' => 'Дуьзар хъувун',
+'vector-view-edit' => 'Дуьзарин',
 'vector-view-history' => 'Тарихдиз килигун',
 'vector-view-view' => 'Кlелун',
 'vector-view-viewsource' => 'Чешме къалурун',
@@ -315,7 +315,7 @@ $messages = array(
 'actionthrottled' => 'Фадвилин сергьятар',
 
 # Virus scanner
-'virus-scanfailed' => 'Сканди гъалатl (кулег$1)',
+'virus-scanfailed' => 'Сканди гъалатӀ (кулег$1)',
 'virus-unknownscanner' => 'Малумтушир антивирус',
 
 # Login and logout pages
@@ -327,7 +327,7 @@ $messages = array(
 'login' => 'Гьахьун',
 'nav-login-createaccount' => 'Гьахьун/аккаунт туькlуьрун',
 'loginprompt' => 'Системадиз гьахьун патал "куки" -яр куькlуьрна кIанзава',
-'userlogin' => 'ГЬахьун/аккаунт туькlуьрун',
+'userlogin' => 'Гьахьун/аккаунт туькӀуьрун',
 'userloginnocreate' => 'Гьахьун',
 'logout' => 'ЭкъечIун',
 'userlogout' => 'ЭкъечIун',
@@ -340,7 +340,7 @@ $messages = array(
 'userlogin-resetlink' => 'Гьахьунин куьлуь-шуьлуьяр рикlел алатнани?',
 'createaccountmail' => 'Э-чар галаз',
 'createaccountreason' => 'Себеб:',
-'loginerror' => 'ГЬахьунин гъалатI',
+'loginerror' => 'Гьахьунин гъалатӀ',
 'createaccounterror' => 'И аккаунт туькIуьриз мумкин ттуш: $1',
 'loginsuccesstitle' => 'Агалкьунралди гьахьун',
 'wrongpasswordempty' => 'Тавакъу ийида, ичIи тушир парол ттур.',
@@ -866,7 +866,7 @@ $messages = array(
 'disambiguationspage' => 'Template:гзафманавал',
 
 'brokenredirects-edit' => 'дегишарун',
-'brokenredirects-delete' => 'кÑ\8aакÑ\8aудун',
+'brokenredirects-delete' => 'алудун',
 
 'withoutinterwiki-submit' => 'КЪалурун',
 
index 9b439ce..bc7f588 100644 (file)
@@ -617,7 +617,7 @@ Nepamirškite pakeisti savo [[Special:Preferences|{{SITENAME}} nustatymų]].',
 'gotaccount' => "Jau turite paskyrą? '''$1'''.",
 'gotaccountlink' => 'Prisijunkite',
 'userlogin-resetlink' => 'Pamiršote savo prisijungimo duomenis?',
-'createaccountmail' => 'el. paštu',
+'createaccountmail' => 'Naudokite laikiną atsitiktinį slaptažodį ir nusiųskite jį į elektroninį paštą, nurodytą žemiau.',
 'createaccountreason' => 'Priežastis:',
 'badretype' => 'Įvesti slaptažodžiai nesutampa.',
 'userexists' => 'Įvestasis naudotojo vardas jau naudojamas.
@@ -662,6 +662,7 @@ Prašome prisijungti vėl, kai jūs jį gausite.',
 'eauthentsent' => 'Patvirtinimo laiškas buvo nusiųstas į paskirtąjį el. pašto adresą.
 Prieš išsiunčiant kitą laišką į jūsų dėžutę, jūs turite vykdyti nurodymus laiške, kad patvirtintumėte, kad dėžutė tikrai yra jūsų.',
 'throttled-mailpassword' => 'Slaptažodžio priminimas jau buvo išsiųstas, per {{PLURAL:$1|$1 paskutinę valandą|$1 paskutines valandas|$1 paskutinių valandų}}.
+
 Norint apsisaugoti nuo piktnaudžiavimo, slaptažodžio priminimas gali būti išsiųstas tik kas {{PLURAL:$1|$1 valandą|$1 valandas|$1 valandų}}.',
 'mailerror' => 'Klaida siunčiant paštą: $1',
 'acct_creation_throttle_hit' => 'Šio projekto lankytojai, naudojantys jūsų IP adresą, sukūrė {{PLURAL:$1|$1 paskyrą|$1 paskyras|$1 paskyrų}} per paskutiniąją dieną, o tai yra didžiausias leidžiamas kiekis per šį laiko tarpą.
@@ -714,7 +715,7 @@ Jūs galbūt jau sėkmingai pakeitėte savo slaptažodį ar gavote naują laikin
 
 # Special:PasswordReset
 'passwordreset' => 'Atstatyti slaptažodį',
-'passwordreset-text' => 'Užpildykite šią formą, norėdami gauti el priminimas jūsų sąskaitos informaciją.',
+'passwordreset-text' => 'Užpildykite šią formą, norėdami atkurti savo slaptažodį.',
 'passwordreset-legend' => 'Atstatyti slaptažodį',
 'passwordreset-disabled' => 'Slaptažodžių atstatymai šiame wikyje išjungti.',
 'passwordreset-pretext' => '{{PLURAL:$1| | Langelyje parašykite vieną duomenų vienetų žemiau}}',
@@ -724,8 +725,15 @@ Jūs galbūt jau sėkmingai pakeitėte savo slaptažodį ar gavote naują laikin
 'passwordreset-capture-help' => 'Jei jūs čia pažymėsite, tai e-mail laiškas (su laikinuoju slaptažodžiu) bus parodytas jums prieš išsiunčiant jį naudotojui.',
 'passwordreset-email' => 'E-pašto adresas:',
 'passwordreset-emailtitle' => 'Paskyros informacija apie {{sitename}}',
-'passwordreset-emailtext-ip' => 'Kažkas (tikriausiai jūs, IP adresu $1 ) paprašė informacijos priminimas jūsų! N! sąskaitą {{sitename}} ( $4 ). Šis vartotojas {{PLURAL:$3| sąskaita | sąskaitas}} N!! N!, susijusių su šiuo e-pašto adresą!: N!! $2 ! N! N! {{PLURAL:$3| Šis laikinas slaptažodis | Šie laikini slaptažodžiai}} baigsis {{PLURAL:$5| vieną dieną | $5 dienų}} slaptažodis.! N! Jūs turėtumėte prisijungti ir pasirinkti naują. Jei kažkas padarė tai! N! prašymu, arba jūs prisiminėte savo pirminį slaptažodį, ir jums nebereikia! N! nori ją pakeisti, galite ignoruoti šį pranešimą ir toliau naudotis savo senuoju! N! slaptažodį.',
-'passwordreset-emailtext-user' => 'Vartotojo $1 d. {{sitename}} prašoma informacija priminimas jūsų sąskaitos {{sitename}}! N! ( $4 ). Šis vartotojas {{PLURAL:$3| sąskaita | sąskaitas}}, susijusių su šiuo e-pašto adresą:! N! N! $2 ! N! N! {{PLURAL:$3| Šis laikinas slaptažodis | Šie laikini slaptažodžiai }} baigsis {{PLURAL:$5| vieną dieną | $5 dienų}} slaptažodis.! N! Jūs turėtumėte prisijungti ir pasirinkti naują. Jei kažkas padarė tai! N! prašymu, arba jūs prisiminėte savo pirminį slaptažodį, ir jums nebereikia! N! nori ją pakeisti, galite ignoruoti šį pranešimą ir toliau naudotis savo senuoju! N! slaptažodį.',
+'passwordreset-emailtext-ip' => 'Kažkas (tikriausiai jūs, IP adresu $1) paprašė priminti jūsų slaptažodį svetainėje {{SITENAME}} ($4). Šio naudotojo {PLURAL:$3|paskyra|paskyros}} yra susietos su šiuo elektroninio pašto adresu $2
+
+{{PLURAL:$3|Šis laikinas slaptažodis |Šie laikini slaptažodžiai}} baigsis po {{PLURAL:$5|vienos dienos| $5 dienų}}. 
+
+Jūs turėtumėte prisijungti ir pasirinkti naują slaptažodį. Jei kažkas kitas padarė šį prašymą arba jūs prisiminėte savo pirminį slaptažodį, ir jums nebereikia jo pakeisti, galite ignoruoti šį pranešimą ir toliau naudotis savo senuoju slaptažodžiu.',
+'passwordreset-emailtext-user' => 'Naudotojas $1 svetainėje {{SITENAME}} sukūrė užklausą slaptažodžio priminimui svetainėje {{SITENAME}}
+($4). Šio naudotojo {{PLURAL:$3|paskyra|paskyros}} susieto su šiuo elektroniniu paštu $2. 
+
+{{PLURAL:$3|Šis laikinas slaptažodis|Šie laikini slaptažodžiai}} baigs galioti po {{PLURAL:$5|vienos dienos|$5 dienų}}. Jūs turėtumėte prisijungti ir pasirinkti naują slaptažodį. Jei kažkas padarė tai be jūsų žinios arba jūs prisiminėte savo pirminį slaptažodį, ir jūs nebenorite jo pakeisti, galite ignoruoti šį pranešimą ir toliau naudotis savo senuoju slaptažodžiu.',
 'passwordreset-emailelement' => 'Naudotojo vardas: $1
 Laikinas slaptažodis: $2',
 'passwordreset-emailsent' => 'Priminimo laiškas buvo išsiųstas.',
index 30c4628..6adb439 100644 (file)
@@ -27,17 +27,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Hlawm thupui ding-hmeh hmangin hlawm siamţhat theihna awmtir rawh (JavaScript a ngai)',
 'tog-showtoc' => 'A chhunga thu awm te tilang rawh (thupui 3 aia tam phêk tan)',
 'tog-rememberpassword' => 'He ka rangpuifannaah hian min hre reng rawh (a rei berah ni $1  {{PLURAL:$1}})',
-'tog-watchcreations' => 'Ka phêk siamte ka ralvèn zing-ah telh rawh',
+'tog-watchcreations' => 'Ka phêk siamte leh ka taksa hlankaite ka ralvèn zing-ah telh rawh',
 'tog-watchdefault' => 'Ka phêk siamţhatte ka ralvèn zing-ah telh rawh',
-'tog-watchmoves' => 'Ka phêk sawnte ka ralvèn zing-ah telh rawh',
-'tog-watchdeletion' => 'Ka phêk nuaibo apiang ka ralvèn zingah telh rawh',
+'tog-watchmoves' => 'Ka phêk leh taksa sawnte ka ralvèn zing-ah telh rawh',
+'tog-watchdeletion' => 'Ka phêk leh taksa nuaibo apiang ka ralvèn zingah telh rawh',
 'tog-minordefault' => "Siamţhat tawh phawt chu 'tenau'-ah dah vek rawh",
 'tog-previewontop' => 'Siamţhatna bawm hmaah endikna dah rawh',
 'tog-previewonfirst' => 'Siamţhat vawi khatnaah endikna tilang rawh',
 'tog-nocache' => 'Fanna-in phêk a cache tur veng rawh',
-'tog-enotifwatchlistpages' => 'Ka ralvèn zinga phêk pakhat tihdanglam a nih apiangin e-lehkha min thawn rawh',
+'tog-enotifwatchlistpages' => 'Ka ralvèn zinga phêk emaw taksa pakhat tihdanglam a nih apiangin e-lehkha min thawn rawh',
 'tog-enotifusertalkpages' => 'Ka hmangtu-sawihona phêk tihdanglam a nihin e-lehkha min thawn rawh',
-'tog-enotifminoredits' => 'Phêk siamţhat tenauah pawh e-lehkha min thawn tho rawh',
+'tog-enotifminoredits' => 'Phêk leh taksa siamţhat tenauah pawh e-lehkha min thawn tho rawh',
 'tog-enotifrevealaddr' => 'Hriattirna email zingah ka email address pho lang rawh',
 'tog-shownumberswatching' => 'Ralvèngtu zât tilang rawh',
 'tog-oldsig' => 'Khàrna hming hman mék:',
@@ -60,7 +60,7 @@ $messages = array(
 
 'underline-always' => 'Ziah/ngei ngei',
 'underline-never' => 'Ngai lo',
-'underline-default' => 'Rängpuifanna duhdàn',
+'underline-default' => 'Vun leh rängpuifanna duhdàn',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Siamţhatna hmun hawrawp pian',
@@ -145,8 +145,9 @@ $messages = array(
 'newwindow' => '(Tukverh tharah a inhawng ang)',
 'cancel' => 'Sûtna',
 'moredotdotdot' => 'Chhunzawmna...',
-'mypage' => 'Ka phêk',
-'mytalk' => 'Ka sawihona',
+'morenotlisted' => 'Tarlan loh dang...',
+'mypage' => 'Phêk',
+'mytalk' => 'Sawihona',
 'anontalk' => 'He chenhmun-IP tana sawihona',
 'navigation' => 'Fanzauna',
 'and' => '&#32;leh',
@@ -168,7 +169,7 @@ $messages = array(
 'vector-action-protect' => 'Venhimna',
 'vector-action-undelete' => 'Lak kir lehna',
 'vector-action-unprotect' => 'Venhimna dinhmun tidanglam rawh',
-'vector-simplesearch-preference' => 'Sawn awlsam lehzualna rawtna awmtir rawh (Vektawr vun tan chauh)',
+'vector-simplesearch-preference' => 'Zawn awlsam lehzualna rawtna awmtir rawh (Vektawr vun tan chauh)',
 'vector-view-create' => 'Siamna',
 'vector-view-edit' => 'Siamţhatna',
 'vector-view-history' => 'Hunhlui-chanchin',
@@ -178,6 +179,7 @@ $messages = array(
 'namespaces' => 'Hminghmun',
 'variants' => 'Zedang',
 
+'navigation-heading' => 'Fankualna',
 'errorpagetitle' => 'Dik lo',
 'returnto' => '$1 phekah kir leh rawh.',
 'tagline' => '{{SITENAME}} aṭangin',
@@ -371,10 +373,10 @@ Thil zawn: $2',
 'viewsource-title' => '$1 hnar en rawh',
 'actionthrottled' => 'Thiltih upbeh a ni.',
 'actionthrottledtext' => 'Thu dukdak lo ven nan hun rei lo te chhunga vawi tam tak tih nawn phal loh a ni, i thiltih ngai i tihnawn ngun tawh lutuk avangin dan beh hrih i ni. Nakin deuhvah tum chhin leh rawh.',
-'protectedpagetext' => 'He phêk hi khawih danglam theih loh nan venhim hrih a ni.',
+'protectedpagetext' => 'He phêk hi khawih danglam theih emaw tihchingpen theih loh nana venhim hrih a ni.',
 'viewsourcetext' => 'A hnar i lachhawngin i en thei ang:',
 'viewyourtext' => "'''I siamţhatte''' chu he phêkah hian i enin i lachhawng thei ang.",
-'protectedinterface' => 'He phêk hian khawlthluak tan hmangtu-ţawng a phuhru a, hman khawloh a nih loh nan venhim hrih a ni.',
+'protectedinterface' => 'He phêk hian khawlthluak tan hmangtu-ţawng a phuhru a, hman khawloh a nih loh nan venhim hrih a ni. Lehlinna tidanglam tur emaw belh tur chuan [//translatewiki.net/ translatewiki.net], MediaWiki lehzauna hmachhawp hi i hmang dawn nia.',
 'sqlhidden' => '(SQL zawhna thuhrûk hrih a ni)',
 'cascadeprotected' => 'He phêk hi siam danglam phal a ni hrih lo, a chhan chu {{PLURAL:$1|he phêk|hêng phêk}}, "a huhova venhim" tih hmanga ven chhunga awm a nih vang a ni: 
 $2',
@@ -385,6 +387,7 @@ $2',
 'titleprotected' => 'He phêk hi hmangtu [[User:$1|$1]] siam phalsak a ni lo. A chhan hetah: "\'\'$2\'\'" hian pêk a ni.',
 'invalidtitle-knownnamespace' => 'Hming pawm loh hminghmun "$2"-a "$3" tih thu chuang.',
 'invalidtitle-unknownnamespace' => 'Hming pawm loh leh hminghmun zât hriat loh $1-a thu chuang "$2"',
+'exception-nologin' => 'I la lût lo',
 
 # Virus scanner
 'virus-badscanner' => "Inremdan dikhlel: Hrik thiantu hriat loh: ''$1''",
@@ -510,6 +513,7 @@ Thurûk lailâwk: $2',
 'changeemail-oldemail' => 'Tùna i e-chenhmun:',
 'changeemail-newemail' => 'E-chenhmun thar:',
 'changeemail-none' => '(pakhat mah)',
+'changeemail-password' => 'I {{SITENAME}} thurûk:',
 'changeemail-submit' => 'E-chenhmun thlâk rawh',
 'changeemail-cancel' => 'Sûtna',
 
@@ -571,7 +575,7 @@ Tihsual palh thilthua heta lo lût i nih chuan i rangpuifanna-a '''letna''' fei
 Phêk dangah [[Special:Search/{{PAGENAME}}| he phêk hming hi i zawng]] thei ang, a nih loh pawhin a laichin 
 <span class="plainlinks">[{{fullurl:{{#Special:Log}} | page={{FULLPAGENAMEE}}}} chanchin-ziak dang i zawng thei ang]; a nih loh chuan [{{fullurl:{{FULLPAGENAME}}|action=edit}} he phêk hi i siamţha thei ang] </span>.',
 'noarticletext-nopermission' => 'He phêkah hian thu a la awm hrih lo.
-He phêk hming hi hmun dangah i [[Special:Search/{{PAGENAME}}|zawng]] thei ang, a nih loh pawhin <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}-a a laichin chanchin dang] i zawng thei bawk ang. </span>',
+He phêk hming hi hmun dangah i [[Special:Search/{{PAGENAME}}|zawng]] thei ang, a nih loh pawhin <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}-a a laichin chanchin dang] i zawng thei bawk ang,</span> mahsé hë phêk siam phalna hi i nei lo tlat thung.',
 'userpage-userdoesnotexist' => 'Hmangtu siangchan "$1" hi hriat a ni lo.
 He phêk hi siam/siamţhat emaw i duh chuan enfiah rawh.',
 'userpage-userdoesnotexist-view' => 'Hmangtu siangchan "$1" hi hriat a ni lo.',
@@ -579,6 +583,7 @@ He phêk hi siam/siamţhat emaw i duh chuan enfiah rawh.',
 I rawn atan a danbeh chhinchhiahna kan han tarlang a ni e:',
 'usercssyoucanpreview' => "'''Rawlrûk:''' I CSS fiah tùrin i dahţhat hmain \"{{int:showpreview}}\" hmehkhep hi hmang rawh.",
 'userjsyoucanpreview' => "'''Rawlrûk:''' I JavaScript thar fiah tùrin i dahţhat hmain \"{{int:showpreview}}\" hmehkhep hi hmang rawh.",
+'updated' => '(Bithuam fel a ni)',
 'note' => "'''Hriat tùr:'''",
 'previewnote' => "'''Heihi endikna chauh a ni tih hrereng ang che.'''
 I tihdanglamna dahţhat a la ni lo!",
@@ -626,6 +631,13 @@ Nuaibo a ni tawh a nih hmèl.',
 'edit-already-exists' => 'Phêk thar siam theih a ni lo.
 A awm tawh sa.',
 'defaultmessagetext' => 'Thuthawn tùr ziahsa',
+'invalid-content-data' => 'Kentel phal loh thil',
+
+# Content models
+'content-model-wikitext' => 'wikithü',
+'content-model-text' => 'thutluang',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
 
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Vaukhanna:''' Siamsa telh a lian leh lutuk.
@@ -634,6 +646,12 @@ Siamsa ţhenkhat hmaih a ni ang.",
 'post-expand-template-argument-warning' => "'''Vaukhanna:''' He phekah hian siamsa kawng kaihparh theih lenzawng nei lian leh lutuk pakhat tal a awm a ni.
 Heng kawngte hi hmaih mai tur.",
 'post-expand-template-argument-category' => 'Siamsa kawng hmaih awmna phekte',
+'parser-template-loop-warning' => 'Siamsa inthawnkual a awm tlat: [[$1]]',
+'language-converter-depth-warning' => 'Ṭawng lehna thûkzawng pèl ($1)',
+'node-count-exceeded-category' => 'Tihbawk theih chin pèl phêkte',
+'node-count-exceeded-warning' => 'Suihbawl theih chin pèl phêkte',
+'expansion-depth-exceeded-category' => 'Tihchiam theih chin pèl phêkte',
+'expansion-depth-exceeded-warning' => 'Tihchiam theih chin phêkin a pèl',
 
 # History pages
 'viewpagelogs' => 'He phêk chanchin hi en rawh',
index 83a8cc4..b61ff5c 100644 (file)
@@ -3855,7 +3855,7 @@ $5
 
 ഈ പ്രോഗ്രാമിനൊപ്പം [{{SERVER}}{{SCRIPTPATH}}/COPYING ഗ്നു സാർവ്വജനിക അനുവാദപത്രത്തിന്റെ ഒരു പകർപ്പ്] താങ്കൾക്ക് ലഭിച്ചിരിക്കും; ഇല്ലെങ്കിൽ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA എന്ന വിലാസത്തിലെഴുതുക അല്ലെങ്കിൽ [//www.gnu.org/licenses/old-licenses/gpl-2.0.html അനുവാദപത്രം ഓൺലൈനായി വായിക്കുക].',
 'version-software' => 'ഇൻസ്റ്റോൾ ചെയ്ത സോഫ്റ്റ്‌വെയർ',
-'version-software-product' => 'à´¸àµ\8bà´«àµ\8dà´±àµ\8dà´±àµ\8dâ\80\8cà´µàµ\86യർ à´\89à´²àµ\8dà´ªàµ\8dപനàµ\8dà´¨à´\82',
+'version-software-product' => 'സോഫ്റ്റ്‌വെയർ ഉല്പന്നം',
 'version-software-version' => 'വിവരണം',
 'version-entrypoints' => 'പ്രവേശനസ്ഥാന യു.ആർ.എല്ലുകൾ',
 'version-entrypoints-header-entrypoint' => 'പ്രവേശനസ്ഥാനം',
index 62483f9..d6852e5 100644 (file)
@@ -2525,7 +2525,7 @@ $1',
 'tooltip-invert' => 'Hak av boksen for å gøyma endringar på sider i det valde namnerommet (og det tilknytte namnerommet om det er haka av)',
 'namespace_association' => 'Tilknytt namnerom',
 'tooltip-namespace_association' => 'Hak av boksen for at diskusjonssida eller emnenamnerommet knytt til det valde namnerommet skal vera med òg',
-'blanknamespace' => '(Hovud)',
+'blanknamespace' => '(hovud)',
 
 # Contributions
 'contributions' => '{{GENDER:$1|Brukarbidrag}}',
@@ -3916,7 +3916,7 @@ Bilete vert viste i full oppløysing, andre filtypar vert starta direkte i dei t
 'logentry-newusers-create' => 'Brukarkontoen $1 vart oppretta',
 'logentry-newusers-create2' => 'Brukarkontoen $3 vart oppretta av $1',
 'logentry-newusers-byemail' => 'Brukarkontoen $3 vart oppretta av $1 og passord vart sendt med e-post',
-'logentry-newusers-autocreate' => 'Kontoen $1 vart oppretta av seg sjølv',
+'logentry-newusers-autocreate' => 'Brukarkontoen $1 vart {{GENDER:$2|oppretta}} av seg sjølv',
 'logentry-rights-rights' => '$1 endra gruppemedlemskap for $3 frå $4 til $5',
 'logentry-rights-rights-legacy' => '$1 endra gruppemedlemskap for $3',
 'logentry-rights-autopromote' => '$1 vart automatisk forfremja frå $4 til $5',
index e5e57aa..b5890c5 100644 (file)
@@ -782,7 +782,7 @@ Po otrzymaniu go zaloguj się ponownie.',
 'eauthentsent' => 'Potwierdzenie zostało wysłane na adres e‐mail.
 Zanim jakiekolwiek inne wiadomości zostaną wysłane na ten adres, należy wykonać zawarte w mailu instrukcje. Potwierdzisz w ten sposób, że ten adres e‐mail należy do Ciebie.',
 'throttled-mailpassword' => 'Przypomnienie hasła zostało już wysłane w ciągu {{PLURAL:$1|ostatniej godziny|ostatnich $1 godzin}}.
-W celu powstrzymania nadużyć możliwość wysyłania przypomnień została ograniczona do jednego na {{PLURAL:$1|godzinę|$1 godziny|$1 godzin}}.',
+Aby zapobiec nadużyciom nadużyć możliwość wysyłania przypomnień została ograniczona do jednego na {{PLURAL:$1|godzinę|$1 godziny|$1 godzin}}.',
 'mailerror' => 'W trakcie wysyłania wiadomości e‐mail wystąpił błąd: $1',
 'acct_creation_throttle_hit' => 'Z adresu IP, z którego korzystasz {{PLURAL:$1|ktoś już utworzył dziś konto|utworzono dziś $1 konta|utworzono dziś $1 kont}}, co jest maksymalną dopuszczalną liczbą w tym czasie.
 W związku z tym, osoby korzystające z tego adresu IP w chwili obecnej nie mogą założyć kolejnego.',
@@ -2096,6 +2096,8 @@ Strona uznawana jest za ujednoznaczniającą, jeśli zawiera szablon linkowany p
 'pageswithprop' => 'Strony z właściwościami',
 'pageswithprop-legend' => 'Strony z właściwościami',
 'pageswithprop-text' => 'Ta strona zawiera listę stron korzystających z właściwości.',
+'pageswithprop-prop' => 'Nazwa właściwości:',
+'pageswithprop-submit' => 'Pokaż',
 
 'doubleredirects' => 'Podwójne przekierowania',
 'doubleredirectstext' => 'Lista zawiera strony z przekierowaniami do stron, które przekierowują do innej strony.
@@ -4071,7 +4073,7 @@ Grafiki są pokazywane w pełnej rozdzielczości. Inne typy plików są otwieran
 'logentry-newusers-create' => 'Konto użytkownika $1 zostało utworzone',
 'logentry-newusers-create2' => 'Konto użytkownika $3 zostało utworzone przez użytkownika $1',
 'logentry-newusers-byemail' => 'Konto $3 zostało utworzone przez użytkownika $1, hasło wysłano e-mailem',
-'logentry-newusers-autocreate' => '$1 automatycznie tworzy konto użytkownika',
+'logentry-newusers-autocreate' => '$1 automatycznie {{GENDER:$2|utworzył|utworzyła|utworzył}} konto użytkownika',
 'logentry-rights-rights' => '$1 {{GENDER:$2|zmienił|zmieniła}} przynależność $3 do grup ($4 → $5)',
 'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|zmienił|zmieniła}} przynależność $3 do grup',
 'logentry-rights-autopromote' => '$1 automatycznie {{GENDER:$2|zmienił|zmieniła}} przynależność ($4 → $5)',
index 14f8b25..744f0ba 100644 (file)
@@ -458,9 +458,8 @@ See also:
 * {{msg-mw|Accesskey-n-help}}
 * {{msg-mw|Tooltip-n-help}}
 {{Identical|Help}}',
-'search' => 'Noun. Text of menu section shown on every page of the wiki above the search form.
-
-Also used as title of [[Special:Search]] page in [[Special:SpecialPages]].
+'search' => '{{doc-special|Search}}
+Noun. Text of menu section shown on every page of the wiki above the search form.
 
 See also:
 * {{msg-mw|Search}}
@@ -550,6 +549,9 @@ See also:
 {{Identical|Talk}}',
 'specialpage' => '{{Identical|Special page}}',
 'personaltools' => 'Heading for a group of links to your user page, talk page, preferences, watchlist, and contributions. This heading is visible in the sidebar in some skins. For an example, see [{{canonicalurl:Main_Page|useskin=simple}} Main Page using simple skin].',
+'postcomment' => 'Used as link text.
+
+The link points to the talk page and has the parameters "action=edit&section=new".',
 'articlepage' => "'Content page' is used for NS_MAIN and any other non-standard namespace and this message is only used in skins Nostalgia, Cologneblue and Standard in the bottomLinks part.
 
 {{Identical|Content page}}",
@@ -1072,6 +1074,7 @@ See also:
 * {{msg-mw|Tooltip-pt-logout}}
 {{Identical|Log out}}',
 'userlogout' => '{{Doc-actionlink}}
+{{doc-special|UserLogout|unlisted=1}}
 {{Identical|Log out}}',
 'notloggedin' => 'This message is displayed in the standard skin when not logged in. The message is placed above the login link in the top right corner of pages.
 
@@ -1080,7 +1083,10 @@ See also:
 * $1 - a link to the account creation form, and the text of it is {{msg-mw|Nologinlink}}',
 'nologinlink' => 'Text of the link to the account creation form. Before that link, the message {{msg-mw|Nologin}} appears.
 {{Identical|Create an account}}',
-'createaccount' => 'The title of [[Special:CreateAccount]], where users can register a new account. Used on [[Special:SpecialPages]] and on the submit button in the form where you register a new account.
+'createaccount' => '{{doc-special|CreateAccount}}
+The special page enables users to register a new account.
+
+Used on the submit button in the form where you register a new account.
 
 It is also used on the top of the page for logged out users, where it appears next to {{msg-mw|login}}, so consider making them similar.
 {{Identical|Create account}}',
@@ -1116,8 +1122,10 @@ Parameters:
 'nosuchusershort' => "Displayed when trying to log in with a non-existant username. This message is only shown when you can't create an account, otherwise the message {{msg-mw|nosuchusershort}} is displayed.",
 'nouserspecified' => 'Used as error message when username to fetch is not specified.',
 'login-userblocked' => 'This message supports GENDER, username is available in $1.',
-'wrongpassword' => 'Used as error message when the provided password is wrong.',
-'wrongpasswordempty' => 'Error message displayed when entering a blank password',
+'wrongpassword' => 'Used as error message when the provided password is wrong.
+{{Identical|Please try again}}',
+'wrongpasswordempty' => 'Error message displayed when entering a blank password.
+{{Identical|Please try again}}',
 'passwordtooshort' => 'This message is shown at
 
 * [[Special:Preferences]]
@@ -1138,7 +1146,7 @@ $1 is the minimum number of characters in the password.',
 
 Parameters:
 * $1 is a user name. This parameter can be used with GENDER.',
-'noemailcreate' => 'Error message.',
+'noemailcreate' => 'Used as error message in [[Special:UserLogin]].',
 'passwordsent' => '* $1 - username',
 'blocked-mailpassword' => 'Used as error message in password recovery.',
 'eauthentsent' => "This message appears after entering an e-mail address in [[Special:Preferences]] > {{int:prefs-personal}} > {{int:email}}, then clicking on '{{int:saveprefs}}'.",
@@ -1342,7 +1350,8 @@ See also:
 See also:
 * {{msg-mw|Savearticle}}
 * {{msg-mw|Accesskey-save}}
-* {{msg-mw|Tooltip-save}}',
+* {{msg-mw|Tooltip-save}}
+{{Identical|Save page}}',
 'preview' => 'The title of the Preview page shown after clicking the "Show preview" button in the edit page. Since this is a heading, it should probably be translated as a noun and not as a verb.
 
 {{Identical|Preview}}',
@@ -1755,7 +1764,8 @@ Used in History and [[Special:Contributions]].',
 It is followed by the message {{msg-mw|Viewprevnext}}.',
 'histlast' => 'This is part of the navigation message on the top and bottom of Page History pages which are lists of things in date order, e.g. [{{canonicalurl:Support|action=history}} Page History of Support].
 
-It is followed by the message {{msg-mw|Viewprevnext}}.',
+It is followed by the message {{msg-mw|Viewprevnext}}.
+{{Identical|Latest}}',
 'historysize' => '* $1 - byte count',
 'historyempty' => 'Text in page history for empty page revisions
 
@@ -1805,7 +1815,8 @@ See [{{canonicalurl:x|feed=atom&action=history}} example].',
 'rev-showdeleted' => 'Link in page history for oversight (see also {{msg-mw|rev-delundel}})
 {{Identical|Show}}',
 'revisiondelete' => '{{RevisionDelete}}
-It is the page title of [[Special:RevisionDelete]].',
+
+{{doc-special|RevisionDelete|unlisted=1}}',
 'revdelete-nooldid-title' => '{{RevisionDelete}}',
 'revdelete-nooldid-text' => '{{RevisionDelete}}',
 'revdelete-nologtype-title' => 'See also:
@@ -1999,6 +2010,7 @@ Title of the suppression log. Shown in the drop down menu at [[Special:log]] and
 'suppressionlogtext' => 'Description text of the suppression log. Shown at top of [[Special:log/suppress]].',
 
 # History merging
+'mergehistory' => '{{doc-special|MergeHistory}}',
 'mergehistory-header' => 'Used as header for Merge form in [[Special:MergeHistory]].
 
 See also:
@@ -2101,6 +2113,7 @@ A revision row in the merge history page. Parameters:
 
 # Merge log
 'mergelog' => '{{doc-logpage}}
+
 This is the name of a log of merge actions done on [[Special:MergeHistory]]. This special page and this log is not enabled by default.',
 'pagemerge-logentry' => "This log message is used in a merge log entry.
 
@@ -2687,7 +2700,8 @@ If you are in that group, you have (by default) the '''right \"autoconfirmed\"''
 If someone with this right (bots by default) edits a user talk page and marks it as minor (requires {{msg-mw|right-minoredit}}), the user will not get a notification "You have new messages".',
 'right-apihighlimits' => '{{doc-right|apihighlimits}}',
 'right-writeapi' => '{{doc-right|writeapi}}',
-'right-delete' => '{{doc-right|delete}}',
+'right-delete' => '{{doc-right|delete}}
+{{Identical|Delete page}}',
 'right-bigdelete' => '{{doc-right|bigdelete}}',
 'right-deletelogentry' => '{{doc-right|deletelogentry}}
 This user right is part of the [[mw:RevisionDelete|RevisionDelete]] feature.
@@ -2779,6 +2793,7 @@ Part of the "Newuserlog" extension. It is both the title of [[Special:Log/newuse
 
 # User rights log
 'rightslog' => '{{doc-logpage}}
+
 In [[Special:Log]]',
 'rightslogtext' => 'Text in [[Special:Log/rights]].',
 
@@ -2913,15 +2928,25 @@ Does not work under $wgMiserMode ([[mwr:48986|r48986]]).',
 'rc-old-title' => 'Text that shows the original title of a page, $1 is the original title text',
 
 # Recent changes linked
-'recentchangeslinked' => 'Title of [[Special:RecentChangesLinked]] and display name of page on [[Special:SpecialPages]].
-
+'recentchangeslinked' => '{{doc-special|RecentChangesLinked}}
 See also:
 * {{msg-mw|Recentchangeslinked}}
 * {{msg-mw|Accesskey-t-recentchangeslinked}}
 * {{msg-mw|Tooltip-t-recentchangeslinked}}',
-'recentchangeslinked-feed' => 'Title of [[Special:RecentChangesLinked]] and display name of page on [[Special:SpecialPages]].',
-'recentchangeslinked-toolbox' => 'Title of [[Special:RecentChangesLinked]] and display name of page on [[Special:SpecialPages]].',
-'recentchangeslinked-title' => 'Message used as title and page header on [[Special:RecentChangesLinked]] (needs an argument like "/Main Page"). Related changes are all recent change to pages that are linked from \'\'this page\'\'. "$1" is the name of the page for which related changes are shown.',
+'recentchangeslinked-feed' => 'Used in the feed object.
+
+This message follows the message {{msg-mw|Recentchangeslinked-title}}.',
+'recentchangeslinked-toolbox' => 'Used as link text, and also used as link text in the common toolbox.
+
+These links point to [[Special:RecentChangesLinked]].',
+'recentchangeslinked-title' => "Message used as title and page header on [[Special:RecentChangesLinked]] (needs an argument like \"/Main Page\").
+
+Related changes are all recent change to pages that are linked from ''this page''.
+
+This message is followed by {{msg-mw|Recentchangeslinked-feed}}.
+
+Parameters:
+* \$1 - the name of the page for which related changes are shown",
 'recentchangeslinked-noresult' => 'Used in [[Special:RecentChangesLinked]], when there are no changes.',
 'recentchangeslinked-summary' => 'Summary of [[Special:RecentChangesLinked]].',
 'recentchangeslinked-page' => '{{Identical|Page name}}',
@@ -2974,6 +2999,7 @@ Text displayed when uploading a file using [[Special:Upload]].",
 'upload-preferred' => 'Used in [[Special:Upload]].',
 'upload-prohibited' => 'Used in [[Special:Upload]].',
 'uploadlogpage' => '{{doc-logpage}}
+
 Page title of [[Special:Log/upload]].',
 'uploadlogpagetext' => 'Appears on top of [[Special:Log/upload]].',
 'filename' => '{{Identical|Filename}}',
@@ -3005,6 +3031,7 @@ See also:
 * {{msg-mw|upload-tryagain|Submit button text}}
 * {{msg-mw|reuploaddesc|button text}}',
 'ignorewarnings' => 'In [[Special:Upload]]',
+'minlength1' => 'Used as error message in [[Special:Upload]].',
 'illegalfilename' => '* $1 - filename',
 'filename-toolong' => 'Error message when uploading a file with a filename longer than the hard-coded limit of 240 bytes. This limit will never change and is hard-coded in the message.
 
@@ -3756,6 +3783,7 @@ $1 is the name of the shared repository. On wikimedia sites, $1 is {{msg-mw|shar
 * $3 is a hour
 * $4 is an URL and must follow square bracket: [$4
 {{Identical|Revert}}',
+'filerevert-badversion' => 'Used as error message.',
 
 # File deletion
 'filedelete' => 'Used as page title. Parameters:
@@ -3811,18 +3839,20 @@ See also:
 {{Identical|Download}}',
 
 # Unwatched pages
-'unwatchedpages' => 'Name of special page displayed in [[Special:SpecialPages]] for admins',
+'unwatchedpages' => '{{doc-special|UnwatchedPages}}',
 
 # List redirects
-'listredirects' => 'Name of special page displayed in [[Special:SpecialPages]].',
+'listredirects' => '{{doc-special|ListRedirects}}',
 
 # Unused templates
-'unusedtemplates' => 'Name of special page displayed in [[Special:SpecialPages]].',
+'unusedtemplates' => '{{doc-special|UnusedTemplates}}',
 'unusedtemplatestext' => 'Shown on top of [[Special:Unusedtemplates]]',
+'unusedtemplateswlh' => 'Used as link text in [[Special:UnusedTemplates]].
 
-# Random page
-'randompage' => 'Name of special page displayed in [[Special:SpecialPages]].
+The link points to the "What links here" page.',
 
+# Random page
+'randompage' => '{{doc-special|RandomPage}}
 See also:
 * {{msg-mw|Randompage}}
 * {{msg-mw|Accesskey-n-randompage}}
@@ -3832,12 +3862,11 @@ See also:
 * $2 - number of namespaces',
 
 # Random redirect
-'randomredirect' => 'Name of special page displayed in [[Special:SpecialPages]].',
+'randomredirect' => '{{doc-special|RandomRedirect}}',
 'randomredirect-nopages' => '* $1 - namespace name',
 
 # Statistics
-'statistics' => 'Name of special page displayed in [[Special:SpecialPages]].
-
+'statistics' => '{{doc-special|Statistics}}
 {{Identical|Statistics}}',
 'statistics-header-pages' => 'Used in [[Special:Statistics]]',
 'statistics-header-edits' => 'Used in [[Special:Statistics]]',
@@ -3859,6 +3888,7 @@ Possible alternatives to the word 'content' are 'subject matter' or 'wiki subjec
 'statistics-edits' => 'Used in [[Special:Statistics]]',
 'statistics-edits-average' => 'Used in [[Special:Statistics]]',
 'statistics-views-total' => 'Used in [[Special:Statistics]]',
+'statistics-views-total-desc' => 'This message follows the message {{msg-mw|statistics-views-total}}, in [[Special:Statistics]].',
 'statistics-views-peredit' => 'Used in [[Special:Statistics]]',
 'statistics-users' => '{{doc-important|Do not translate "Special:ListUsers"}}
 Used in [[Special:Statistics]].',
@@ -3867,7 +3897,7 @@ Used in [[Special:Statistics]].',
 * \$1 - Value of <code>\$wgRCMaxAge</code> in days",
 'statistics-mostpopular' => 'Used in [[Special:Statistics]]',
 
-'disambiguations' => 'Name of a special page displayed in [[Special:SpecialPages]].',
+'disambiguations' => '{{doc-special|Disambiguations}}',
 'disambiguationspage' => 'This message is the name of the template used for marking disambiguation pages. It is used by [[Special:Disambiguations]] to find all pages which link to disambiguation pages.
 
 {{doc-important|Don\'t translate the "Template:" part!}}',
@@ -3876,7 +3906,7 @@ This block of text is shown on [[:Special:Disambiguations]].
 
 \'\'\'Background information:\'\'\' Beyond telling about links going to disambiguation pages, that they are generally bad, it should explain which pages in the article namespace are seen as disambiguations: [[MediaWiki:Disambiguationspage]] usually holds a list of disambiguation templates of the local wiki. Pages linking to one of them (by transclusion) will count as disambiguation pages. Pages linking to these disambiguation pages, instead to the disambiguated article itself, are listed on [[:Special:Disambiguations]].',
 
-'pageswithprop' => 'Title for [[Special:PagesWithProp]].
+'pageswithprop' => '{{doc-special|PagesWithProp}}
 {{Identical|Page with page property}}',
 'pageswithprop-legend' => 'Legend for the input form on [[Special:PagesWithProp]].
 {{Identical|Page with page property}}',
@@ -3886,13 +3916,13 @@ This block of text is shown on [[:Special:Disambiguations]].
 'pageswithprop-submit' => 'Label for the submit button on [[Special:PagesWithProp]].
 {{Identical|Go}}',
 
-'doubleredirects' => 'Name of [[Special:DoubleRedirects]] displayed in [[Special:SpecialPages]]',
+'doubleredirects' => '{{doc-special|DoubleRedirects}}',
 'doubleredirectstext' => 'Shown on top of [[Special:Doubleredirects]]',
 'double-redirect-fixed-move' => 'This is the message in the log when the software (under the username {{msg|double-redirect-fixer}}) updates the redirects after a page move. See also {{msg|fix-double-redirects}}.',
 'double-redirect-fixed-maintenance' => 'This is the message in the log when the software (under the username {{msg-mw|double-redirect-fixer}}) updates the redirects after running maintenance/fixDoubleRedirects.php. Compare with {{msg-mw|double-redirect-fixed-move}}.',
 'double-redirect-fixer' => "This is the '''username''' of the user who updates the double redirects after a page move. A user is created with this username, so it is perhaps better to not change this message too often. See also {{msg|double-redirect-fixed-move}} and {{msg|fix-double-redirects}}.",
 
-'brokenredirects' => 'Name of [[Special:BrokenRedirects]] displayed in [[Special:SpecialPages]]',
+'brokenredirects' => '{{doc-special|BrokenRedirects}}',
 'brokenredirectstext' => 'Shown on top of [[Special:BrokenRedirects]].',
 'brokenredirects-edit' => 'Link in [[Special:BrokenRedirects]]
 
@@ -3901,12 +3931,12 @@ This block of text is shown on [[:Special:Disambiguations]].
 
 {{Identical|Delete}}',
 
-'withoutinterwiki' => 'The title of the special page [[Special:WithoutInterwiki]].',
+'withoutinterwiki' => '{{doc-special|WithoutInterwiki}}',
 'withoutinterwiki-summary' => 'Summary of [[Special:WithoutInterwiki]].',
 'withoutinterwiki-legend' => 'Used on [[Special:WithoutInterwiki]] as title of fieldset.',
 'withoutinterwiki-submit' => '{{Identical|Show}}',
 
-'fewestrevisions' => 'Name of a special page displayed in [[Special:SpecialPages]].',
+'fewestrevisions' => '{{doc-special|FewestRevisions}}',
 
 # Miscellaneous special pages
 'nbytes' => 'Message used on the history page of a wiki page. Each version of a page consist of a number of bytes. $1 is the number of bytes that the page uses. Uses plural as configured for a language based on $1.',
@@ -3920,45 +3950,47 @@ This block of text is shown on [[:Special:Disambiguations]].
 'nimagelinks' => 'Used on [[Special:MostLinkedFiles]] to indicate how often a specific file is used.',
 'ntransclusions' => 'Used on [[Special:MostLinkedTemplates]] to indicate how often a template is in use.',
 'specialpage-empty' => 'Used on a special page when there is no data. For example on [[Special:Unusedimages]] when all images are used.',
-'lonelypages' => 'Name of [[Special:LonelyPages]] displayed in [[Special:SpecialPages]]',
+'lonelypages' => '{{doc-special|LonelyPages}}',
 'lonelypagestext' => 'Text displayed in [[Special:LonelyPages]]',
-'uncategorizedpages' => 'Name of a special page displayed in [[Special:SpecialPages]].',
-'uncategorizedcategories' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'uncategorizedimages' => 'The title of the special page [[Special:UncategorizedImages]].',
-'uncategorizedtemplates' => 'The title of the special page [[Special:UncategorizedTemplates]].',
-'unusedcategories' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'unusedimages' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'popularpages' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'wantedcategories' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'wantedpages' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'uncategorizedpages' => '{{doc-special|UncategorizedPages}}',
+'uncategorizedcategories' => '{{doc-special|UncategorizedCategories}}',
+'uncategorizedimages' => '{{doc-special|UncategorizedImages}}',
+'uncategorizedtemplates' => '{{doc-special|UncategorizedTemplates}}',
+'unusedcategories' => '{{doc-special|UnusedCategories}}',
+'unusedimages' => '{{doc-special|UnusedImages}}',
+'popularpages' => '{{doc-special|PopularPages}}',
+'wantedcategories' => '{{doc-special|WantedCategories}}',
+'wantedpages' => '{{doc-special|WantedPages}}',
 'wantedpages-badtitle' => "Error message shown when [[Special:WantedPages]] is listing a page with a title that shouldn't exist.
 
 $1 is a page title",
-'wantedfiles' => 'Name of special page displayed in [[Special:SpecialPages]] and title of [[Special:WantedFiles]].',
+'wantedfiles' => '{{doc-special|WantedFiles}}',
 'wantedfiletext-cat' => 'Message displayed at top of [[special:WantedFiles]]. $1 contains the name of the tracking category for broken files (Including Category prefix). {{msg-mw|wantedfiletext-nocat}} is used if the tracking category is disabled.',
 'wantedfiletext-nocat' => 'Message displayed at top of [[special:WantedFiles]] when broken file tracking category is disabled. See {{msg-mw|wantedfiletext-cat}}.',
-'wantedtemplates' => 'The page name of [[Special:WantedTemplates]].',
-'mostlinked' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'mostlinkedcategories' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'mostlinkedtemplates' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'mostcategories' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'mostimages' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'mostinterwikis' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'mostrevisions' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'prefixindex' => 'The page title of [[Special:PrefixIndex]]. When the user limits the list to a certain namespace, {{msg-mw|allinnamespace}} is used instead.',
+'wantedtemplates' => '{{doc-special|WantedTemplates}}',
+'mostlinked' => '{{doc-special|MostLinked}}',
+'mostlinkedcategories' => '{{doc-special|MostLinkedCategories}}',
+'mostlinkedtemplates' => '{{doc-special|MostLinkedTemplates}}',
+'mostcategories' => '{{doc-special|MostCategories}}',
+'mostimages' => '{{doc-special|MostImages}}',
+'mostinterwikis' => '{{doc-special|MostInterwikis}}',
+'mostrevisions' => '{{doc-special|MostRevisions}}',
+'prefixindex' => '{{doc-special|PrefixIndex}}
+When the user limits the list to a certain namespace, {{msg-mw|allinnamespace}} is used instead.',
 'prefixindex-namespace' => 'The page title of [[Special:PrefixIndex]] limited to a specific namespace. Similar to {{msg-mw|allinnamespace}}. $1 is the name of the namespace',
-'shortpages' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'longpages' => 'Name of special page displayed in [[Special:SpecialPages]]',
-'deadendpages' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'shortpages' => '{{doc-special|ShortPages}}',
+'longpages' => '{{doc-special|LongPages}}',
+'deadendpages' => '{{doc-special|DeadendPages}}',
 'deadendpagestext' => 'Introductory text for [[Special:DeadendPages]]',
-'protectedpages' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'protectedpages' => '{{doc-special|ProtectedPages}}',
 'protectedpages-indef' => 'Option in [[Special:ProtectedPages]]',
 'protectedpages-cascade' => 'Option in [[Special:ProtectedPages]]',
 'protectedpagestext' => 'Shown on top of [[Special:ProtectedPages]]',
-'protectedtitles' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'protectedpagesempty' => 'Used in [[Special:ProtectedPages]], when there are no protected pages with the specified parameters.',
+'protectedtitles' => '{{doc-special|ProtectedTitles}}',
 'protectedtitlestext' => 'Shown on top of list of titles on [[Special:ProtectedTitles]]. If the list is empty the message [[MediaWiki:Protectedtitlesempty]] appears instead of this. See the [[mw:Project:Protected_titles|help page on MediaWiki]] for more information.',
 'protectedtitlesempty' => 'Used on [[Special:ProtectedTitles]]. This text appears if the list of protected titles is empty. See the [[mw:Project:Protected_titles|help page on MediaWiki]] for more information.',
-'listusers' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'listusers' => '{{doc-special|ListUsers}}',
 'listusers-editsonly' => 'Option in [[Special:ListUsers]].',
 'listusers-creationsort' => 'Option in [[Special:ListUsers]].',
 'usereditcount' => 'Shown behind every username on [[Special:ListUsers]].',
@@ -3966,10 +3998,11 @@ $1 is a page title",
 * $1 - a date
 * $2 - a time
 * $3 - the name of the user, for use in GENDER',
-'newpages' => 'Name of special page displayed in [[Special:SpecialPages]]
+'newpages' => '{{doc-special|NewPages}}
 {{Identical|New page}}',
 'newpages-username' => '{{Identical|Username}}',
-'ancientpages' => 'The page title of [[Special:Ancientpages]]. [[mw:Manual:Interface/Special pages title|mw manual]]',
+'ancientpages' => '{{doc-special|AncientPages}}
+See [[mw:Manual:Interface/Special pages title|manual]].',
 'move' => 'Name of Move tab. Should be in the imperative mood.
 
 See also:
@@ -3979,6 +4012,7 @@ See also:
 {{Identical|Move}}',
 'movethispage' => '{{Identical|Move this page}}',
 'unusedimagestext' => 'Header message of [[Special:UnusedFiles]]',
+'unusedcategoriestext' => 'Used as page header in [[Special:UnusedCategories]].',
 'notargettitle' => 'Used as title of error message.
 
 See also:
@@ -4010,8 +4044,7 @@ See also:
 'querypage-disabled' => "On special pages that use expensive database queries but are not cacheable, this message is displayed when 'miser mode' is on (i.e. no expensive queries allowed).",
 
 # Book sources
-'booksources' => 'Name of special page displayed in [[Special:SpecialPages]]
-
+'booksources' => '{{doc-special|BookSources}}
 See also:
 * {{msg-mw|Booksources|title}}
 * {{msg-mw|Booksources-text|text}}',
@@ -4032,17 +4065,19 @@ See also:
 # Special:Log
 'specialloguserlabel' => 'Used in [[Special:Log]] as a label for an input field with which the log can be filtered for entries describing actions \'\'performed\'\' by the specified user.  "Carried out" and "done" are possible alternatives for "performed".',
 'speciallogtitlelabel' => 'Used in [[Special:Log]] as a label for an input field with which the log can be filtered.  This filter selects for pages or users on which a log action was performed.',
-'log' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'log' => '{{doc-special|Log}}',
 'all-logs-page' => '{{doc-logpage}}
 Title of [[Special:Log]].',
 'alllogstext' => 'Header of [[Special:Log]]',
+'logempty' => 'Used as warning when there are no items to show.',
 'log-title-wildcard' => '* Appears in: [[Special:Log]]
 * Description: A check box to enable prefix search option',
 'showhideselectedlogentries' => 'Text of the button which brings up the [[mw:RevisionDelete|RevisionDelete]] menu on [[Special:Log]].',
 
 # Special:AllPages
-'allpages' => 'First part of the navigation bar for the special page [[Special:AllPages]] and [[Special:PrefixIndex]]. The other parts are {{msg-mw|Prevpage}} and {{msg-mw|Nextpage}}.
-
+'allpages' => '{{doc-special|AllPages}}
+First part of the navigation bar for the special page [[Special:AllPages]] and [[Special:PrefixIndex]].
+The other parts are {{msg-mw|Prevpage}} and {{msg-mw|Nextpage}}.
 {{Identical|All pages}}',
 'alphaindexline' => 'Used on [[Special:AllPages]] if the main namespace contains more than 960 pages. Indicates the page range displayed behind the link. "from page $1 to page $2". $1 is the source page name. $1 is the target page name.',
 'nextpage' => 'Third part of the navigation bar for the special page [[Special:AllPages]] and [[Special:PrefixIndex]]. $1 is a page title. The other parts are {{msg-mw|Allpages}} and {{msg-mw|Prevpage}}.
@@ -4072,6 +4107,7 @@ Title of [[Special:Log]].',
 
 {{Identical|Go}}',
 'allpagesprefix' => "Used for the label of the input box of [[Special:PrefixIndex]]. On this page you can either write 'Name of namespace:string from which to begin display in alphabetical order' in the top box, or you can choose a namespace in the bottom box and put 'string from which to begin display in alphabetical order' in the top box. The result will be the same.",
+'allpagesbadtitle' => 'Used in [[Special:AllPages]], [[Special:PrefixIndex]] and [[Special:RecentChangesLinked]].',
 'allpages-bad-ns' => '* $1 - namespace name',
 'allpages-hide-redirects' => 'Label for a checkbox. If the checkbox is checked redirects will not be shown in the list. Used in [[Special:PrefixIndex]] and [[Special:Allpages]].',
 
@@ -4088,7 +4124,21 @@ Title of [[Special:Log]].',
 Text displayed in [[Special:Categories]].
 
 In order to translate ''Unused categories'' and ''wanted categories'' see {{msg|unusedcategories}} and {{msg|wantedcategories}}.",
-'special-categories-sort-count' => 'This message is used on [[Special:Categories]] to sort the list by the number of members in the categories.',
+'categoriesfrom' => 'Used as label for the input box in [[Special:Categories]].
+
+This message follows the fieldset label {{msg-mw|categories}}, and is followed by the input box.',
+'special-categories-sort-count' => 'Commented out at this time.
+
+This message is used on [[Special:Categories]] to sort the list by the number of members in the categories.
+
+See also:
+* {{msg-mw|Special-categories-sort-abc}}',
+'special-categories-sort-abc' => 'Commented out at this time.
+
+This message is used on [[Special:Categories]] to sort the list by the category name.
+
+See also:
+* {{msg-mw|Special-categories-sort-count}}',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'The message is shown as a link on user contributions page (like [[Special:Contributions/User]]) to the corresponding [[Special:DeletedContributions]] page.
@@ -4216,9 +4266,11 @@ See also:
 * {{msg-mw|Emailuser}}
 * {{msg-mw|Accesskey-t-emailuser}}
 * {{msg-mw|Tooltip-t-emailuser}}',
-'emailuser-title-target' => 'Title of [[Special:EmailUser|special page]] when a user was given to e-mail. Parameters:
-* $1 is a plain text username, used for GENDER.',
-'emailuser-title-notarget' => 'Title of [[Special:EmailUser|special page]] when no user given to e-mail yet',
+'emailuser-title-target' => '{{doc-special|EmailUser|unlisted=1}}
+Used when a user was given to e-mail. Parameters:
+* $1 - a plain text username, used for GENDER.',
+'emailuser-title-notarget' => '{{doc-special|EmailUser|unlisted=1}}
+Used when no user given to e-mail yet.',
 'emailpage' => "Title of special page [[Special:EmailUser]], when it is the destination of the sidebar link {{msg-mw|Emailuser}} on a user's page.",
 'emailpagetext' => 'This is the text that is displayed above the e-mail form on [[Special:EmailUser]].
 
@@ -4282,11 +4334,25 @@ Parameters:
 {{Identical|For $1}}',
 'nowatchlist' => 'Displayed when there is no pages in the watchlist.',
 'watchlistanontext' => '* $1 is a link to [[Special:UserLogin]] with {{msg-mw|loginreqlink}} as link description',
-'watchnologin' => '{{Identical|Not logged in}}',
-'addwatch' => 'Link to a dialog box, displayed at the end of the list of categories at the foot of each page.',
+'watchnologin' => 'Used as error page title.
+
+The error message for this title is:
+* {{msg-mw|Watchnologintext}}
+{{Identical|Not logged in}}',
+'watchnologintext' => 'Used as error message.
+
+The title for this error is {{msg-mw|Watchnologin}}.',
+'addwatch' => 'Link to a dialog box, displayed at the end of the list of categories at the foot of each page.
+
+See also:
+* {{msg-mw|Removewatch}}',
 'addedwatchtext' => 'Explanation shown when clicking on the {{msg-mw|watch}} tab.
 
 See also {{msg-mw|addedwatch}}.',
+'removewatch' => 'Link to a dialog box, displayed at the end of the list of categories at the foot of each page.
+
+See also:
+* {{msg-mw|Addwatch}}',
 'removedwatchtext' => "After a page has been removed from a user's watchlist by clicking the {{msg|unwatch}} tab at the top of an article, this message appears just below the title of the article. $1 is the title of the article. See also {{msg|removedwatch}} and {{msg|addedwatchtext}}.",
 'watch' => '{{doc-actionlink}}
 Name of the Watch tab. Should be in the imperative mood.
@@ -4455,6 +4521,8 @@ Possible value for $CHANGEDORCREATED in the following messages:
 * {{msg|enotif_body}}',
 
 # Delete
+'deletepage' => 'Used as Submit button text.
+{{Identical|Delete page}}',
 'confirm' => 'Submit button text for protection confirmation
 
 {{Identical|Confirm}}',
@@ -4480,8 +4548,8 @@ See also:
 * $1 is a page that was deleted
 * $2 is {{msg-mw|deletionlog}}',
 'dellogpage' => '{{doc-logpage}}
-The name of the deletion log. Used as heading on [[Special:Log/delete]] and in the drop down menu for selecting logs on [[Special:Log]].
 
+The name of the deletion log. Used as heading on [[Special:Log/delete]] and in the drop down menu for selecting logs on [[Special:Log]].
 {{Identical|Deletion log}}',
 'dellogpagetext' => 'Text in [[Special:Log/delete]].',
 'deletionlog' => 'This message is used to link to the deletion log:
@@ -4567,6 +4635,7 @@ The title for this error message is {{msg-mw|Sessionfailure-title}}.',
 
 # Protect
 'protectlogpage' => '{{doc-logpage}}
+
 Title of [[Special:Log/protect]].',
 'protectlogtext' => 'Text in [[Special:Log/protect]].',
 'protectedarticle' => 'Text describing an action on [[Special:Log]]. $1 is a page title.',
@@ -4621,14 +4690,18 @@ Also used in [[Special:ProtectedPages]] when a page is cascade protected. See ex
 See also:
 *{{msg-mw|Restriction-level-sysop}}
 *{{msg-mw|Restriction-level-autoconfirmed}}',
-'protect-expiring' => 'Used in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.
-* $1 is a date and time
-* $2 is a date (optional)
-* $3 is a time (optional)
-
+'protect-expiring' => 'Used as expiry text in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.
+* $1 - a date and time
+* $2 - a date (optional)
+* $3 - a time (optional)
+If the expiry is indefinite, {{msg-mw|protect-expiry-indefinite}} is used.
 {{Identical|Expires $1 (UTC)}}',
 'protect-expiring-local' => '$1 is a timestamp like "22:51, 23 July 2011 (UTC)" depending on the wiki content language.',
+'protect-expiry-indefinite' => 'Used as expiry text in page history, and in [[Special:Protectedtitles]], [[Special:Protectedpages]], and extension FlaggedRevs.
+
+If the expiry is definite, {{msg-mw|protect-expiring}} is used.',
 'protect-cascade' => 'See [[meta:Protect]] for more information.',
+'protect-cantedit' => 'Used as error message when changing the protection levels of the page.',
 'protect-othertime' => 'Used on the page protection form as label for the following input field (text)
 {{Identical|Other time}}',
 'protect-othertime-op' => 'Used on the page protection form in the drop down menu
@@ -4691,8 +4764,7 @@ See also:
 *{{msg-mw|Restriction-level-autoconfirmed}}",
 
 # Undelete
-'undelete' => 'Name of special page for admins as displayed in [[Special:SpecialPages]].
-
+'undelete' => '{{doc-special|Undelete}}
 See also:
 * {{msg-mw|Undelete}}
 * {{msg-mw|Accesskey-ca-undelete}}
@@ -4734,6 +4806,7 @@ Parameters:
 * $5 - time of the revision
 Example:
 * Deleted revision of [[Main Page]] (as of {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}, at {{CURRENTTIME}}) by [[User:Username|Username]]:',
+'undeleterevision-missing' => 'Used as warning when undeleting the revision.',
 'undelete-nodiff' => 'Used in [[Special:Undelete]].',
 'undeletebtn' => 'Shown on [[Special:Undelete]] as button caption and on [[Special:Log/delete|deletion log]] after each entry (for sysops).
 
@@ -5010,8 +5083,8 @@ See also:
 # Block/unblock
 'autoblockid' => 'Used as name of autoblock, instead of autoblocked IPs. Parameters:
 * $1 - autoblock ID',
-'block' => 'Name of the special page on [[Special:SpecialPages]]',
-'unblock' => 'Name of the special page on [[Special:SpecialPages]]',
+'block' => '{{doc-special|Block}}',
+'unblock' => '{{doc-special|Unblock}}',
 'blockip' => 'The title of the special page [[Special:BlockIP]].
 
 {{Identical|Block user}}',
@@ -5019,6 +5092,12 @@ See also:
 'blockip-legend' => 'Legend/Header for the fieldset around the input form of [[Special:Block]].
 
 {{Identical|Block user}}',
+'blockiptext' => 'Used in the {{msg-mw|Blockip}} form in [[Special:Block]].
+
+This message may follow the message {{msg-mw|Ipb-otherblocks-header}} and other block messages.
+
+See also:
+* {{msg-mw|Unblockiptext}}',
 'ipadressorusername' => '{{Identical|IP address or username}}',
 'ipbexpiry' => '{{Identical|Expiry}}',
 'ipbreason' => 'Label of the block reason dropdown in [[Special:BlockIP]] and the unblock reason textfield in [{{fullurl:Special:IPBlockList|action=unblock}} Special:IPBlockList?action=unblock].
@@ -5100,13 +5179,33 @@ The title (subject) for this message is {{msg-mw|Blockipsuccesssub}}.
 
 Parameters:
 * $1 - username, can be used for GENDER',
+'ipb-blockingself' => 'Used as confirmation message in [[Special:Block]].
+
+See also:
+* {{msg-mw|Ipb-confirmhideuser}}',
+'ipb-confirmhideuser' => 'Used as confirmation message in [[Special:Block]].
+
+See also:
+* {{msg-mw|Ipb-blockingself}}',
 'ipb-edit-dropdown' => 'Shown beneath the user block form on the right side. It is a link to {{msg-mw|Ipbreason-dropdown|notext=1}}.
 
 See also:
 * {{msg-mw|Delete-edit-reasonlist}}
 * {{msg-mw|Protect-edit-reasonlist}}',
-'ipb-unblock-addr' => 'Used in [[Special:Block]].
-* $1 - target username',
+'ipb-unblock-addr' => 'Used as page title in [[Special:Block]], if the target user is specified.
+
+Parameters:
+* $1 - target username
+
+See also:
+* {{msg-mw|Ipb-unblock}}',
+'ipb-unblock' => 'Used as page title in [[Special:Block]], if the target user is not specified.
+
+See also:
+* {{msg-mw|Ipb-unblock-addr}}',
+'ipb-blocklist' => 'Used as link text in [[Special:Block]].
+
+The link points to Specil:BlockList.',
 'ipb-blocklist-contribs' => 'Used in [[Special:Block]].
 * $1 - target username',
 'unblockip' => 'Used as legend for the form in [[Special:Unblock]].',
@@ -5131,6 +5230,7 @@ See also:
 See also:
 * {{msg-mw|Unblocked}}
 * {{msg-mw|Unblocked-range}}',
+'blocklist' => '{{doc-special|BlockList}}',
 'ipblocklist' => 'Title of [[Special:Ipblocklist]].',
 'ipblocklist-legend' => 'Used as legend of the form in [[Special:BlockList]].
 
@@ -5216,7 +5316,14 @@ See also {{msg-mw|Block-log-flags-nousertalk}}.
 Part of the log entry of user block in [[Special:BlockList]].
 
 {{Related|Blocklist}}',
-'ipblocklist-empty' => 'Shown on page [[Special:Blocklist]], if no blocks are to be shown.',
+'ipblocklist-empty' => 'Used in [[Special:BlockList]], if the target is not specified.
+
+See also:
+* {{msg-mw|Ipblocklist-no-results}}',
+'ipblocklist-no-results' => 'Used in [[Special:BlockList]], if the target is specified.
+
+See also:
+* {{msg-mw|Ipblocklist-empty}}',
 'blocklink' => "Display name for a link that, when selected, leads to a form where a user can be blocked. Used in page history and recent changes pages. Example: \"''UserName (Talk | contribs | '''block''')''\".
 
 Used as link title in [[Special:Contributions]] and in [[Special:DeletedContributions]].
@@ -5241,7 +5348,8 @@ See also:
 * {{msg-mw|sp-contributions-uploads}}
 * {{msg-mw|sp-contributions-logs}}
 * {{msg-mw|sp-contributions-deleted}}
-* {{msg-mw|sp-contributions-userrights}}',
+* {{msg-mw|sp-contributions-userrights}}
+{{Identical|Unblock}}',
 'change-blocklink' => 'Used to name the link on [[Special:Log]].
 
 Also used as link title in [[Special:Contributions]] and in [[Special:DeletedContributions]].
@@ -5315,7 +5423,9 @@ See also:
 * {{msg-mw|Range block disabled}}
 * {{msg-mw|Ip range invalid}}
 * {{msg-mw|Ip range toolarge}}',
+'ipb_expiry_invalid' => 'Used as error message in [[Special:Block]].',
 'ipb_expiry_temp' => 'Warning message displayed on [[Special:BlockIP]] if the option "hide username" is selected but the expiry time is not infinite.',
+'ipb_hide_invalid' => 'Used as error message in [[Special:Block]].',
 'ipb_already_blocked' => '{{Identical|$1 is already blocked}}',
 'ipb-needreblock' => 'Used in [[Special:Block]].
 * $1 - target username',
@@ -5338,7 +5448,8 @@ See also:
 * {{msg-mw|Range block disabled}}
 * {{msg-mw|Ip range invalid}}
 * {{msg-mw|Ip range toolarge}}',
-'blockme' => 'The page title of [[Special:Blockme]], a feature which is disabled by default.',
+'blockme' => '{{doc-special|BlockMe|unlisted=1}}
+This feature is disabled by default.',
 'proxyblocker' => 'Used in [[Special:BlockMe]].
 
 See also:
@@ -5644,6 +5755,7 @@ See also:
 * $2 - new page title',
 'movepage-max-pages' => 'PROBABLY (A GUESS): when moving a page, you can select an option of moving its subpages, but there is a maximum that can be moved automatically.',
 'movelogpage' => '{{doc-logpage}}
+
 Title of [[Special:Log/move]]. Used as heading on that page, and in the dropdown menu on log pages.',
 'movelogpagetext' => "Text on the special page 'Move log'.",
 'movesubpage' => "This is a section header on [[Special:MovePage]], below is a list of subpages.
@@ -6664,7 +6776,9 @@ Used as link text, linked to '{{int:Prefixindex}}' page ([[Special:PrefixIndex]]
 'pageinfo-firsttime' => 'The date and time the page was created.',
 'pageinfo-lastuser' => 'The last user who edited the page.',
 'pageinfo-lasttime' => 'The date and time the page was last edited.',
-'pageinfo-edits' => 'The total number of times the page has been edited.',
+'pageinfo-edits' => 'Used as label in info page. See [{{canonicalurl:Support|action=info}} example].
+
+This message is followed by the total number of times the page has been edited.',
 'pageinfo-authors' => 'The total number of users who have edited the page.',
 'pageinfo-recent-edits' => 'The number of times the page has been edited recently. $1 is a localised duration (e.g. 9 days).',
 'pageinfo-recent-authors' => 'The number of users who have edited the page recently.',
@@ -7031,6 +7145,7 @@ Varient Option for wikis with variants conversion enabled.',
 # Metadata
 'metadata' => 'The title of a section on an image description page, with information and data about the image. For example of message in use see [[commons:File:Titan-crystal_bar.JPG|Commons]].
 {{Identical|Metadata}}',
+'metadata-help' => 'This message is followed by a table with metadata.',
 'metadata-expand' => 'On an image description page, there is mostly a table containing data (metadata) about the image. The most important data are shown, but if you click on this link, you can see more data and information. For the link to hide back the less important data, see {{msg-mw|Metadata-collapse}}.',
 'metadata-collapse' => 'On an image description page, there is mostly a table containing data (metadata) about the image. The most important data are shown, but if you click on the link {{msg-mw|Metadata-expand}}, you can see more data and information. This message is for the link to hide back the less important data.',
 'metadata-fields' => '{{doc-important|Do not translate list items, only translate the text! So leave "<code>* make</code>" and the other items exactly as they are.}}
@@ -7215,11 +7330,7 @@ See [[w:Metering_mode|Wikipedia article]] on metering mode.
 'exif-flash' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].
 
 See this [[w:en:Flash_(photography)|Wikipedia article]] for an explanation of the term.
-
-See also:
-* {{msg-mw|Exif-flash}}
-* {{msg-mw|Exif-flash-fired-0}}
-* {{msg-mw|Exif-flash-fired-1}}
+{{Related|Exif-flash}}
 {{Identical|Flash}}',
 'exif-focallength' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].
 
@@ -7422,7 +7533,9 @@ This is taken from IPTC-iim 2:135 and XMP's dc:language.
 {{Identical|Category}}',
 'exif-iimsupplementalcategory' => 'Supplemental categories. Like {{msg-mw|exif-iimcategory}} but for categories beyond the main one.',
 'exif-datetimeexpires' => 'Date after which not to use the image (media). This is often used in news situations were certain things (like forecasts) should not be used after a specified date.',
-'exif-datetimereleased' => 'Earliest date the image (media) can be used. See 2:30 of http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf',
+'exif-datetimereleased' => 'Earliest date the image (media) can be used.
+
+See 2:30 of http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf',
 'exif-originaltransmissionref' => 'This is basically a job id. This could help an individual keep track of for what reason the image was created. See Job Id on page 19 of http://www.iptc.org/std/photometadata/specification/IPTC-PhotoMetadata-201007_1.pdf',
 'exif-identifier' => 'A formal identifier for the image. Often this is a URL.',
 'exif-lens' => 'Description of lens used. This is taken from aux:Lens XMP property. See http://www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart2.pdf',
@@ -7500,6 +7613,18 @@ Lempel-Ziv & Welch algorithm',
 'exif-photometricinterpretation-2' => '{{optional}}',
 'exif-photometricinterpretation-6' => '{{optional}}',
 
+'exif-unknowndate' => 'Used if the Exif date and time is "<code>0000:00:00 00:00:00</code>".
+
+Related Exif attributes:
+* {{msg-mw|Exif-datetime}}
+* {{msg-mw|Exif-datetimeoriginal}}
+* {{msg-mw|Exif-datetimedigitized}}
+* {{msg-mw|Exif-datetimereleased}}
+* {{msg-mw|Exif-datetimeexpires}}
+* {{msg-mw|Exif-gpsdatestamp}}
+* {{msg-mw|Exif-dc-date}}
+* {{msg-mw|Exif-datetimemetadata}}',
+
 'exif-orientation-1' => '0th row: top; 0th column: left
 {{Related|Exif-orientation}}
 {{Identical|Normal}}',
@@ -7626,55 +7751,28 @@ See also:
 'exif-lightsource-255' => '{{Related|Exif-lightsource}}',
 
 # Flash modes
-'exif-flash-fired-0' => 'See also:
-* {{msg-mw|Exif-flash}}
-* {{msg-mw|Exif-flash-fired-0}}
-* {{msg-mw|Exif-flash-fired-1}}',
-'exif-flash-fired-1' => 'See also:
-* {{msg-mw|Exif-flash}}
-* {{msg-mw|Exif-flash-fired-0}}
-* {{msg-mw|Exif-flash-fired-1}}',
+'exif-flash-fired-0' => '{{Related|Exif-flash}}',
+'exif-flash-fired-1' => '{{Related|Exif-flash}}',
 'exif-flash-return-0' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].
 
 "Strobe" and "flash" mean the same here.
-
-See also:
-* {{msg-mw|Exif-flash-return-0}}
-* {{msg-mw|Exif-flash-return-2}}
-* {{msg-mw|Exif-flash-return-3}}',
+{{Related|Exif-flash}}',
 'exif-flash-return-2' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].
 
 "Strobe" and "flash" mean the same here.
-
-See also:
-* {{msg-mw|Exif-flash-return-0}}
-* {{msg-mw|Exif-flash-return-2}}
-* {{msg-mw|Exif-flash-return-3}}',
+{{Related|Exif-flash}}',
 'exif-flash-return-3' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].
 
 "Strobe" and "flash" mean the same here.
-
-See also:
-* {{msg-mw|Exif-flash-return-0}}
-* {{msg-mw|Exif-flash-return-2}}
-* {{msg-mw|Exif-flash-return-3}}',
+{{Related|Exif-flash}}',
 'exif-flash-mode-1' => 'This is when you have chosen that your camera must use a flash for this picture.
-
-See also:
-* {{msg-mw|Exif-flash-mode-1}}
-* {{msg-mw|Exif-flash-mode-2}}
-* {{msg-mw|Exif-flash-mode-3}}',
+{{Related|Exif-flash}}',
 'exif-flash-mode-2' => "This is when you have chosen that your camera must ''not'' use a flash for this picture.
-
-See also:
-* {{msg-mw|Exif-flash-mode-1}}
-* {{msg-mw|Exif-flash-mode-2}}
-* {{msg-mw|Exif-flash-mode-3}}",
-'exif-flash-mode-3' => 'See also:
-* {{msg-mw|Exif-flash-mode-1}}
-* {{msg-mw|Exif-flash-mode-2}}
-* {{msg-mw|Exif-flash-mode-3}}',
-'exif-flash-function-1' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].',
+{{Related|Exif-flash}}",
+'exif-flash-mode-3' => '{{Related|Exif-flash}}',
+'exif-flash-function-1' => 'Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].
+{{Related|Exif-flash}}',
+'exif-flash-redeye-1' => '{{Related|Exif-flash}}',
 
 'exif-focalplaneresolutionunit-2' => 'See also:
 * {{msg-mw|Exif-focalplaneresolutionunit}}',
@@ -8333,8 +8431,7 @@ Parameters:
 'duplicate-defaultsort' => 'See definition of [[w:Sorting|sort key]] on Wikipedia.',
 
 # Special:Version
-'version' => 'Name of special page displayed in [[Special:SpecialPages]]
-
+'version' => '{{doc-special|Version}}
 {{Identical|Version}}',
 'version-extensions' => 'Header on [[Special:Version]].',
 'version-specialpages' => 'Part of [[Special:Version]].
@@ -8418,7 +8515,8 @@ $1 is the name of the requested file.',
 * $1 - file name',
 
 # Special:SpecialPages
-'specialpages' => 'Display name of link to [[Special:SpecialPages]] shown on all pages in the toolbox, as well as the page title and header of [[Special:SpecialPages]].
+'specialpages' => '{{doc-special|SpecialPages|unlisted=1}}
+Display name of link to [[Special:SpecialPages]] shown on all pages in the toolbox.
 
 See also:
 * {{msg-mw|Specialpages}}
@@ -8426,22 +8524,22 @@ See also:
 * {{msg-mw|Tooltip-t-specialpages}}
 {{Identical|Special page}}',
 'specialpages-note' => 'Footer note for the [[Special:SpecialPages]] page',
-'specialpages-group-maintenance' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-other' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-login' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-changes' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-media' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-users' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-highuse' => 'Section heading in the list of [[Special:SpecialPages|Special pages]].',
-'specialpages-group-pages' => 'Used on [[Special:SpecialPages]]. Title of the special pages group, containing pages like [[Special:AllPages]], [[Special:PrefixIndex]], [[Special:Categories]], [[Special:Disambiguations]], etc.',
-'specialpages-group-pagetools' => 'Title of the special pages group containing special pages like [[Special:MovePage]], [[Special:Undelete]], [[Special:WhatLinksHere]], [[Special:Export]] etc.',
-'specialpages-group-wiki' => 'Title of the special pages group, containing special pages like [[Special:Version]], [[Special:Statistics]], [[Special:LockDB]], etc.',
-'specialpages-group-redirects' => 'Title of the special pages group, containing special pages that redirect to another location, like [[Special:Randompage]], [[Special:Mypage]], [[Special:Mytalk]], etc.',
-'specialpages-group-spam' => 'Title of the special pages group, containing special pages like (...), etc.',
+'specialpages-group-maintenance' => '{{doc-special-group|like=[[Special:DoubleRedirects]], [[Special:LonelyPages]] and [[Special:WantedPages]]}}',
+'specialpages-group-other' => '{{doc-special-group|like=[[Special:AdminLinks]] and [[Special:BookSources]]}}',
+'specialpages-group-login' => '{{doc-special-group|like=[[Special:UserLogin]]}}',
+'specialpages-group-changes' => '{{doc-special-group|like=[[Special:Log]], [[Special:NewPages]] and [[Special:RecentChanges]]}}',
+'specialpages-group-media' => '{{doc-special-group|like=[[Special:FilePath]], [[Special:MIMESearch]] and [[Special:Upload]]}}',
+'specialpages-group-users' => '{{doc-special-group|like=[[Special:ActiveUsers]], [[Special:Contributions]] and [[Special:ListGroupRights]]}}',
+'specialpages-group-highuse' => '{{doc-special-group|like=[[Special:MostCategories]], [[Special:MostLinked]] and [[Special:MostRevisions]]}}',
+'specialpages-group-pages' => '{{doc-special-group|like=[[Special:AllPages]], [[Special:PrefixIndex]], [[Special:Categories]], 
+[[Special:Disambiguations]], etc}}',
+'specialpages-group-pagetools' => '{{doc-special-group|like=[[Special:MovePage]], [[Special:Undelete]], [[Special:WhatLinksHere]], [[Special:Export]] etc}}',
+'specialpages-group-wiki' => '{{doc-special-group|like=[[Special:Version]], [[Special:Statistics]], [[Special:LockDB]], etc}}',
+'specialpages-group-redirects' => '{{doc-special-group|that=redirect to another location|like=[[Special:Randompage]], [[Special:Mypage]], [[Special:Mytalk]], etc}}',
+'specialpages-group-spam' => '{{doc-special-group}}',
 
 # Special:BlankPage
-'blankpage' => 'Used as page title in [[Special:BlankPage]].
-
+'blankpage' => '{{doc-special|BlankPage|unlisted=1}}
 See also:
 * {{msg-mw|Intentionallyblankpage|text}}',
 'intentionallyblankpage' => 'Text displayed in [[Special:BlankPage]].
@@ -8580,17 +8678,17 @@ Parameters:
 * $1 - version',
 
 # New logging system
-'logentry-delete-delete' => '{{Logentry}}',
-'logentry-delete-restore' => '{{Logentry}}',
-'logentry-delete-event' => '{{Logentry}}
+'logentry-delete-delete' => '{{Logentry|[[Special:Log/delete]]}}',
+'logentry-delete-restore' => '{{Logentry|[[Special:Log/delete]]}}',
+'logentry-delete-event' => '{{Logentry|[[Special:Log/delete]]}}
 {{Logentryparam}}
-* $3 is the name of the log page inside parenthesis',
-'logentry-delete-revision' => '{{Logentry}}
+* $3 - the name of the log page inside parenthesis',
+'logentry-delete-revision' => '{{Logentry|[[Special:Log/delete]]}}
 {{Logentryparam}}
-* $5 is the number of affected revisions of the page $3.',
-'logentry-delete-event-legacy' => '{{Logentry}}
-$3 is the name of the log page inside parenthesis',
-'logentry-delete-revision-legacy' => '{{Logentry}}',
+* $5 - the number of affected revisions of the page $3.',
+'logentry-delete-event-legacy' => '{{Logentry|[[Special:Log/delete]]}}
+* $3 - the name of the log page inside parenthesis',
+'logentry-delete-revision-legacy' => '{{Logentry|[[Special:Log/delete]]}}',
 'logentry-suppress-delete' => "{{Logentry}}
 
 'Hid' is a possible alternative to 'suppressed' in this message.",
@@ -8599,7 +8697,7 @@ $3 is the name of the log page inside parenthesis',
 $3 is the name of the log page inside parenthesis',
 'logentry-suppress-revision' => '{{Logentry}}
 {{Logentryparam}}
-* $5 is the number of affected revisions of the page $3.',
+* $5 - the number of affected revisions of the page $3.',
 'logentry-suppress-event-legacy' => '{{Logentry}}
 $3 is the name of the log page inside parenthesis',
 'logentry-suppress-revision-legacy' => '{{Logentry}}',
@@ -8643,52 +8741,51 @@ $3 is the name of the log page inside parenthesis',
 * {{msg-mw|logentry-delete-revision}}
 * {{msg-mw|logentry-suppress-event}}
 * {{msg-mw|logentry-suppress-event}}',
-'logentry-move-move' => '{{Logentry}}
+'logentry-move-move' => '{{Logentry|[[Special:Log/move]]}}
 Parameter $4, the target page, is also not visible to parser functions.',
-'logentry-move-move-noredirect' => '{{Logentry}}
+'logentry-move-move-noredirect' => '{{Logentry|[[Special:Log/move]]}}
 Parameter $4, the target page, is also not visible to parser functions.',
-'logentry-move-move_redir' => '{{Logentry}}
+'logentry-move-move_redir' => '{{Logentry|[[Special:Log/move]]}}
 Parameter $4, the target page, is also not visible to parser functions.',
-'logentry-move-move_redir-noredirect' => '{{Logentry}}
+'logentry-move-move_redir-noredirect' => '{{Logentry|[[Special:Log/move]]}}
 Parameter $4, the target page, is also not visible to parser functions.',
-'logentry-patrol-patrol' => '{{Logentry}}
-* $4 is a formatted revision number, maybe linked to the diff.',
-'logentry-patrol-patrol-auto' => '{{Logentry}}
-* $4 is a formatted revision number, maybe linked to the diff.
+'logentry-patrol-patrol' => '{{Logentry|[[Special:Log/patrol]]}}
+* $4 - a formatted revision number, maybe linked to the diff.',
+'logentry-patrol-patrol-auto' => '{{Logentry|[[Special:Log/patrol]]}}
+* $4 - a formatted revision number, maybe linked to the diff.
 "Automatically" refers to users with autopatrol right who mark revisions automatically patrolled when editing.',
-'logentry-newusers-newusers' => 'Parameters:
-* $1 - user name',
-'logentry-newusers-create' => '{{Logentry}}
+'logentry-newusers-newusers' => '{{Logentry|[[Special:Log/newusers]]}}',
+'logentry-newusers-create' => '{{Logentry|[[Special:Log/newusers]]}}
 
 $4 is the gender of the target user.',
-'logentry-newusers-create2' => '{{Logentry}}
+'logentry-newusers-create2' => '{{Logentry|[[Special:Log/newusers]]}}
 
 $4 is the name of the user that was created.',
-'logentry-newusers-byemail' => '{{Logentry}}
+'logentry-newusers-byemail' => '{{Logentry|[[Special:Log/newusers]]}}
 
 $4 is the name of the user that was created.',
-'logentry-newusers-autocreate' => '{{Logentry}}
+'logentry-newusers-autocreate' => '{{Logentry|[[Special:Log/newusers]]}}
 
 $4 is the gender of the target user.',
-'logentry-rights-rights' => '*$1 - username
-*$2 - (see below)
-*$3 - username
-*$4 - list of user groups or {{msg-mw|Rightsnone}}
-*$5 - list of user groups or {{msg-mw|Rightsnone}}
+'logentry-rights-rights' => '* $1 - username
+* $2 - (see below)
+* $3 - username
+* $4 - list of user groups or {{msg-mw|Rightsnone}}
+* $5 - list of user groups or {{msg-mw|Rightsnone}}
 ----
-{{Logentry}}',
-'logentry-rights-rights-legacy' => '*$1 - username
-*$2 - (see below)
-*$3 - username
+{{Logentry|[[Special:Log/rights]]}}',
+'logentry-rights-rights-legacy' => '* $1 - username
+* $2 - (see below)
+* $3 - username
 ----
-{{Logentry}}',
-'logentry-rights-autopromote' => '*$1 - username
-*$2 - (see below)
-*$3 - (see below)
-*$4 - comma separated list of old user groups or {{msg-mw|Rightsnone}}
-*$5 - comma separated list of new user groups
+{{Logentry|[[Special:Log/rights]]}}',
+'logentry-rights-autopromote' => '* $1 - username
+* $2 - (see below)
+* $3 - (see below)
+* $4 - comma separated list of old user groups or {{msg-mw|Rightsnone}}
+* $5 - comma separated list of new user groups
 ----
-{{Logentry}}',
+{{Logentry|[[Special:Log/rights]]}}',
 'rightsnone' => 'Default rights for registered users.
 
 {{Identical|None}}',
index 17fcdef..735e816 100644 (file)
@@ -535,7 +535,7 @@ $1",
 'newmessageslinkplural' => '{{PLURAL:$1|Musuq willaymi|Musuq willaykunam}}',
 'newmessagesdifflinkplural' => 'qayna {{PLURAL:$1|hukchasqapi|hukchasqakunapi}} wakin kaynin',
 'youhavenewmessagesmulti' => 'Musuq willaykunam qhawanayki kachkan $1-pi',
-'editsection' => 'allichay',
+'editsection' => "llamk'apuy",
 'editold' => "llamk'apuy",
 'viewsourceold' => 'pukyu qillqata qhaway',
 'editlink' => "llamk'apuy",
@@ -738,7 +738,7 @@ Huk runa kay willayta mañakurqaptinqa icha yaykuna rimaykita hukchayta manaña
 Ama hina kaspa, chaskispaykiqa ruraqpa sutiykita nispa musuqmanta yaykuy.',
 'blocked-mailpassword' => "IP tiyayniykiqa hark'asqam, chayrayku manam saqillanchu yaykuna rimata musuqmanta chaskiyta, millay rurayta hark'anapaq.",
 'eauthentsent' => 'Takyachina e-chaskiqa qusqayki e-chaski imamaytaman kachamusqam. Manaraq huk e-chaskikuna kachamusqa kaptinqa, ñawpaqta e-chaskipi kamachisqakunata qatinaykim tiyan, chiqap e-chaski imamaytaykita takyachinaykipaq.',
-'throttled-mailpassword' => "Huk yaykuna rima yuyachinañam qayna {{PLURAL:$1|huk ura|$1 ura}} mit'api kachamusqam. {{PLURAL:$1|Huk ura|$1 ura}} mit'apiqa hukllam yaykuna rima yuyachina kachasqa kachun millay rurayta hark'anapaq.",
+'throttled-mailpassword' => "Huk yaykuna rima kutichinapaq yuyachina qayna {{PLURAL:$1|huk ura|$1 ura}} mit'api kachamusqañam. {{PLURAL:$1|Huk ura|$1 ura}} mit'apiqa hukllam yaykuna rima yuyachina kachasqa kachun millay rurayta hark'anapaq.",
 'mailerror' => 'E-chaskita kachaspa pantasqa: $1',
 'acct_creation_throttle_hit' => "Qampa IP huchhaykiyuq kachkaq ruraqkunaqa kay wikita watukuspa ñaqha 24 urapi {{PLURAL:$1|rakiqunaykim|$1 rakiqunaykim}} kamarirqanña. Manam atinkichikchu astawan kichayta huklla p'unchawpi chay IP huchhallayuq kaspa.",
 'emailauthenticated' => "E-chaski imamaytaykiqa $2 p'unchawpi, $3 pachapi chiqapchasqañam.",
@@ -785,7 +785,7 @@ Yaykuna rimaykitaqa aypalla hukcharqunkiñachá icha huk mit'alla yaykuna rimata
 
 # Special:PasswordReset
 'passwordreset' => 'Yaykuna rimata kutichiy',
-'passwordreset-text' => "Kay hunt'ana p'anqata hunt'ay, rakiqunaykipaq willakunayuq e-chaskita chaskinaykipaq.",
+'passwordreset-text' => "Kay hunt'ana p'anqata hunt'ay, yaykuna rimaykita kutichinaykipaq.",
 'passwordreset-legend' => 'Yaykuna rimata kutichiy',
 'passwordreset-disabled' => 'Kay wikipiqa yaykuna rimata manam kutichiyta atinkichu.',
 'passwordreset-pretext' => '{{PLURAL:$1||Qatiqpi kaq willa rakikunamanta huktam yaykuchiy}}',
@@ -796,7 +796,7 @@ Yaykuna rimaykitaqa aypalla hukcharqunkiñachá icha huk mit'alla yaykuna rimata
 'passwordreset-email' => 'E-chaski imamayta:',
 'passwordreset-emailtitle' => '{{SITENAME}}-paq rakiqunamanta willakuna',
 'passwordreset-emailtext-ip' => "Pipas (qamchiki, $1 IP huchhayuq tiyaymanta) {{SITENAME}}-paq ($4)
-rakiqunaykipaq willakunayuq yuyachinatam mañakurqan. Kay qatiq ruraqpa {{PLURAL:$3|rakiqunanmi|rakiqunankunam}}
+rakiqunaykipaq yaykuna rimata kutichinatam mañakurqan. Kay qatiq ruraqpa {{PLURAL:$3|rakiqunanmi|rakiqunankunam}}
 kay e-chaski imamaytayuq kachkan:
 
 $2
@@ -806,7 +806,7 @@ Yaykuspayki musuq yaykuna rimaykitam akllankiman. Pi wakiykipas kayta mañakurqa
 icha qam ñawpaq yaykuna rimaykita yuyaspayki manaña wakinchayta munaspaykiqa,
 kay willayta mana qhawaspa mana imatapas ruraspa ñawpaq yaykuna rimaykiwanmi llamk'ayta atinki.",
 'passwordreset-emailtext-user' => "{{SITENAME}}-pi kaq $1 sutiyuq ruraqqa {{SITENAME}}-paq ($4)
-rakiqunaykipaq willakunayuq yuyachinatam mañakurqan. Kay qatiq ruraqpa {{PLURAL:$3|rakiqunanmi|rakiqunankunam}}
+rakiqunaykipaq yaykuna rimata kutichinatam mañakurqan. Kay qatiq ruraqpa {{PLURAL:$3|rakiqunanmi|rakiqunankunam}}
 kay e-chaski imamaytayuq kachkan:
 
 $2
@@ -817,9 +817,9 @@ icha qam ñawpaq yaykuna rimaykita yuyaspayki manaña wakinchayta munaspaykiqa,
 kay willayta mana qhawaspa mana imatapas ruraspa ñawpaq yaykuna rimaykiwanmi llamk'ayta atinki.",
 'passwordreset-emailelement' => "Ruraqpa sutin: $1
 Mit'alla yaykuna rima: $2",
-'passwordreset-emailsent' => 'Yuyachina e-chaskiqa kachasqañam.',
-'passwordreset-emailsent-capture' => 'Yuyachina e-chaskiqa kachasqañam, kay qatiqpi rikunki.',
-'passwordreset-emailerror-capture' => 'Yuyachina e-chaskiqa rurasqa karqan, imatachus kay qatiqpi rikunki, ichataq kachasqa kaptin pantasqam tukurqan: $1',
+'passwordreset-emailsent' => 'Yaykuna rimata kutichina e-chaskiqa kachasqañam.',
+'passwordreset-emailsent-capture' => 'Yaykuna rimata kutichina e-chaskiqa kachasqañam, kay qatiqpi rikunki.',
+'passwordreset-emailerror-capture' => 'Yaykuna rimata kutichina e-chaskiqa rurasqa karqan, imatachus kay qatiqpi rikunki, ichataq kachasqa kaptin pantasqam tukurqan: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'E-chaski imamaytata wakinchay',
@@ -3081,7 +3081,7 @@ Payta rurachiyqa antañiqiqniykita llikaykitapas waqllinqachá.",
 'file-info-gif-looped' => 'muyupayachisqa',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|inchu|inchukuna}}',
 'file-info-png-looped' => 'muyupayachisqa',
-'file-info-png-repeat' => '$1 {{PLURAL:$1|kuti|kuti}} pukllasqa',
+'file-info-png-repeat' => '$1 {{PLURAL:$1|kuti}} pukllasqa',
 'file-info-png-frames' => '$1 {{PLURAL:$1|inchu|inchukuna}}',
 'file-no-thumb-animation' => "'''Paqtataq: Saywachasqa allwiyaraykuqa, kay willañiqimanta rikch'achakuna manam kuyuchisqa kanqachu.'''",
 'file-no-thumb-animation-gif' => "'''Paqtataq: Saywachasqa allwiyaraykuqa, kay rikch'a hina k'awchi huyakuyuq GIF rikch'akunamanta rikch'achakuna manam kuyuchisqa kanqachu.'''",
@@ -3813,17 +3813,17 @@ Rikchakunatataq hunt'a ch'irkukupim rikunki. Huk willañiqi llayakunaqa tantapus
 'sqlite-no-fts' => "$1 mana hunt'a qillqa maskana yanapawan",
 
 # New logging system
-'logentry-delete-delete' => "$1 sutiyuq ruraqqa $3 nisqa p'anqatam qullun",
-'logentry-delete-restore' => "$1 sutiyuq ruraqqa $3 nisqa p'anqatam qullusqamanta paqarichin",
-'logentry-delete-event' => "$1 sutiyuq ruraqqa {{PLURAL:$5|huk hallch'ay|$5 hallch'ay}} ruraypa rikunalla kayninta wakinchan $3 p'anqapi: $4",
-'logentry-delete-revision' => "$1 sutiyuq ruraqqa {{PLURAL:$5|huk musuqchasqap|$5 musuqchasqap}} rikunalla kayninta wakinchan $3 p'anqapi: $4",
-'logentry-delete-event-legacy' => "$1 sutiyuq ruraqqa hallch'ay ruraykunap rikunalla kayninta wakinchan $3 p'anqapi",
-'logentry-delete-revision-legacy' => "$1 sutiyuq ruraqqa musuqchasqakunap rikunalla kayninta wakinchan $3 p'anqapi",
-'logentry-suppress-delete' => "$1 sutiyuq ruraqqa $3 nisqa p'anqatam ñit'ipan",
-'logentry-suppress-event' => "$1 sutiyuq ruraqqa {{PLURAL:$5|huk hallch'ay|$5 hallch'ay}} ruraypa rikunalla kayninta pakalla wakinchan $3 p'anqapi: $4",
-'logentry-suppress-revision' => "$1 sutiyuq ruraqqa {{PLURAL:$5|huk musuqchasqap|$5 musuqchasqap}} rikunalla kayninta pakalla wakinchan $3 p'anqapi: $4",
-'logentry-suppress-event-legacy' => "$1 sutiyuq ruraqqa hallch'ay ruraykunap rikunalla kayninta pakalla wakinchan $3 p'anqapi",
-'logentry-suppress-revision-legacy' => "$1 sutiyuq ruraqqa musuqchasqakunap rikunalla kayninta pakalla wakinchan $3 p'anqapi",
+'logentry-delete-delete' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 nisqa p'anqatam qullun",
+'logentry-delete-restore' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 nisqa p'anqatam qullusqamanta paqarichin",
+'logentry-delete-event' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa {{PLURAL:$5|huk hallch'ay|$5 hallch'ay}} ruraypa rikunalla kayninta wakinchan $3 p'anqapi: $4",
+'logentry-delete-revision' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa {{PLURAL:$5|huk musuqchasqap|$5 musuqchasqap}} rikunalla kayninta wakinchan $3 p'anqapi: $4",
+'logentry-delete-event-legacy' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa hallch'ay ruraykunap rikunalla kayninta wakinchan $3 p'anqapi",
+'logentry-delete-revision-legacy' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa musuqchasqakunap rikunalla kayninta wakinchan $3 p'anqapi",
+'logentry-suppress-delete' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 nisqa p'anqatam ñit'ipan",
+'logentry-suppress-event' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa {{PLURAL:$5|huk hallch'ay|$5 hallch'ay}} ruraypa rikunalla kayninta pakalla wakinchan $3 p'anqapi: $4",
+'logentry-suppress-revision' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa {{PLURAL:$5|huk musuqchasqap|$5 musuqchasqap}} rikunalla kayninta pakalla wakinchan $3 p'anqapi: $4",
+'logentry-suppress-event-legacy' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa hallch'ay ruraykunap rikunalla kayninta pakalla wakinchan $3 p'anqapi",
+'logentry-suppress-revision-legacy' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa musuqchasqakunap rikunalla kayninta pakalla wakinchan $3 p'anqapi",
 'revdelete-content-hid' => 'samiq pakasqa',
 'revdelete-summary-hid' => "llamk'apuypa pisichaynin pakasqa",
 'revdelete-uname-hid' => 'ruraqpa sutin pakasqa',
@@ -3832,17 +3832,20 @@ Rikchakunatataq hunt'a ch'irkukupim rikunki. Huk willañiqi llayakunaqa tantapus
 'revdelete-uname-unhid' => 'ruraqpa sutin rikuchisqa',
 'revdelete-restricted' => "kamachiqkunaman llamk'achisqa saywachanakuna",
 'revdelete-unrestricted' => 'kamachiqkunamanta qichusqa saywachanakuna',
-'logentry-move-move' => "$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man",
-'logentry-move-move-noredirect' => "$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man mana pusapunata saqispa",
-'logentry-move-move_redir' => "$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man pusapunata huknachaspa",
-'logentry-move-move_redir-noredirect' => "$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man pusapunata huknachaspa mana pusapunata saqispa",
-'logentry-patrol-patrol' => "$1 sutiyuq ruraqqa $3 nisqa p'anqamanta $4 musuqchasqatam patrullasqa nispa sananchan",
-'logentry-patrol-patrol-auto' => "$1 sutiyuq ruraqqa $3 nisqa p'anqamanta $4 musuqchasqatam kikinmanta patrullasqa nispa sananchan",
-'logentry-newusers-newusers' => '$1 sutiyuq rakiquna kamarisqañam',
-'logentry-newusers-create' => '$1 sutiyuq rakiquna kamarisqañam',
-'logentry-newusers-create2' => '$1 sutiyuq ruraqqa $3 sutiyuq rakiqunatam kamarirqanñam',
-'logentry-newusers-byemail' => '$3 sutiyuq rakiqunataqa $1 kamarirqañam, yaykuna rimataq kachasqañam.',
-'logentry-newusers-autocreate' => '$1 sutiyuq rakiqunaqa kikinmanta kamarisqam',
+'logentry-move-move' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man",
+'logentry-move-move-noredirect' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man mana pusapunata saqispa",
+'logentry-move-move_redir' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man pusapunata huknachaspa",
+'logentry-move-move_redir-noredirect' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa p'anqatam astan $3-manta $4-man pusapunata huknachaspa mana pusapunata saqispa",
+'logentry-patrol-patrol' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 nisqa p'anqamanta $4 musuqchasqatam patrullasqa nispa sananchan",
+'logentry-patrol-patrol-auto' => "{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 nisqa p'anqamanta $4 musuqchasqatam kikinmanta patrullasqa nispa sananchan",
+'logentry-newusers-newusers' => '{{GENDER:$2|}}$1 sutiyuq rakiquna kamarisqañam',
+'logentry-newusers-create' => '{{GENDER:$2|}}$1 sutiyuq rakiquna kamarisqañam',
+'logentry-newusers-create2' => '{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 sutiyuq rakiqunatam kamarirqanñam',
+'logentry-newusers-byemail' => '$3 sutiyuq rakiqunataqa $1 {{GENDER:$2|kamarirqañam}}, yaykuna rimataq kachasqañam.',
+'logentry-newusers-autocreate' => '{{GENDER:$2|}}$1 sutiyuq rakiqunaqa kikinmanta kamarisqam',
+'logentry-rights-rights' => '{{GENDER:$2|}}$1 sutiyuq ruraqqa $3-pa huñuman kapuyninta hukchan $4-manta $5-man',
+'logentry-rights-rights-legacy' => '{{GENDER:$2|}}$1 sutiyuq ruraqqa $3-pa huñuman kapuyninta hukchan',
+'logentry-rights-autopromote' => '{{GENDER:$2|}}$1 sutiyuq ruraqqa kikinmantam ñawparikun $4-manta $5-man',
 'rightsnone' => '(-)',
 
 # Feedback
index 95b30c3..dbc8c11 100644 (file)
@@ -525,7 +525,7 @@ $messages = array(
 'category-subcat-count-limited' => 'В этой категории {{PLURAL:$1|$1 подкатегория|$1 подкатегории|$1 подкатегорий}}.',
 'category-article-count' => '{{#ifeq:$2|1|Эта категория содержит только следующую страницу.|Эта категория содержит следующ{{PLURAL:$1|ую $1 страницу|ие $1 страницы|ие $1 страниц}} из $2.}}',
 'category-article-count-limited' => 'В этой категории {{PLURAL:$1|$1 страница|$1 страницы|$1 страниц}}.',
-'category-file-count' => '{{PLURAL:$2|Эта категория содержит только один файл.|В этой категории {{PLURAL:$1|показан $1 файл|показано $1 файла|показано $1 файлов}} из $2 {{PLURAL:$2|имеющейся|имеющихся}}.}}',
+'category-file-count' => '{{#ifeq:$2|1|Эта категория содержит только один файл.|Следующ{{PLURAL:$1|ий $1 файл|ие $1 файла|ие $1 файлов}} из $2 имеющ{{PLURAL:$2|его|их}}ся принадлеж{{PLURAL: ит|ат}} к этой категории.}}',
 'category-file-count-limited' => 'В этой категории {{PLURAL:$1|$1 файл|$1 файла|$1 файлов}}.',
 'listingcontinuesabbrev' => '(продолжение)',
 'index-category' => 'Индексируемые страницы',
@@ -4290,6 +4290,6 @@ MediaWiki распространяется в надежде, что она бу
 'duration-millennia' => '$1 {{PLURAL:$1|тысячелетие|тысячелетия|тысячелетий}}',
 
 # Image rotation
-'rotate-comment' => 'Изображение повернуто на $1 градус{{PLURAL:$1||а|ов}} по часовой стрелке',
+'rotate-comment' => 'Изображение повёрнуто на $1 градус{{PLURAL:$1||а|ов}} по часовой стрелке',
 
 );
index 3b2b042..48c8f90 100644 (file)
@@ -556,7 +556,7 @@ $messages = array(
 'vector-view-edit' => 'Уреди',
 'vector-view-history' => 'Историја',
 'vector-view-view' => 'Читај',
-'vector-view-viewsource' => 'Изворник',
+'vector-view-viewsource' => 'Изворни код',
 'actions' => 'Радње',
 'namespaces' => 'Именски простори',
 'variants' => 'Варијанте',
@@ -670,7 +670,7 @@ $1',
 'editsection' => 'уреди',
 'editsection-brackets' => '[$1]',
 'editold' => 'уреди',
-'viewsourceold' => 'изворник',
+'viewsourceold' => 'изворни код',
 'editlink' => 'уреди',
 'viewsourcelink' => 'Извор',
 'editsectionhint' => 'Уредите одељак „$1“',
@@ -774,7 +774,7 @@ $1',
 'wrong_wfQuery_params' => 'Неисправни параметри за wfQuery()<br />
 Функција: $1<br />
 Упит: $2',
-'viewsource' => 'Изворник',
+'viewsource' => 'Изворни код',
 'viewsource-title' => 'Приказ извора странице $1',
 'actionthrottled' => 'Радња је успорена',
 'actionthrottledtext' => 'У циљу борбе против непожељних порука, ограничене су вам измене у одређеном времену, а управо сте прешли то ограничење. Покушајте поново за неколико минута.',
index 2a7c956..2541b1d 100644 (file)
@@ -2243,7 +2243,7 @@ Rejea kumbukumbu ya uzuio ya mwisho inayoandikwa chini:',
 'whatlinkshere-hideredirs' => '$1 maelekezo',
 'whatlinkshere-hidetrans' => '$1 majumuisho',
 'whatlinkshere-hidelinks' => '$1 viungo',
-'whatlinkshere-hideimages' => 'viungo $1 vya faili',
+'whatlinkshere-hideimages' => 'Viungo vya faili $1',
 'whatlinkshere-filters' => 'Machujio',
 
 # Block/unblock
index dd7fd4a..cd2a4bd 100644 (file)
@@ -2879,7 +2879,7 @@ $1',
 'spamprotectiontitle' => 'ตัวกรองป้องกันสแปม',
 'spamprotectiontext' => 'ข้อความที่คุณต้องการบันทึกถูกตัวกรองสแปมบล็อก
 อาจเกิดจากลิงก์ไปยังเว็บไซต์ภายนอกที่ถูกขึ้นบัญชีดำ',
-'spamprotectionmatch' => 'à¸\82à¹\89อà¸\84วามà¸\95à¹\88อà¹\84à¸\9bà¸\99ีà¹\89à¸\81ระà¸\95ุà¹\89à¸\99ให้ตัวกรองสแปมของเราทำงาน: $1',
+'spamprotectionmatch' => 'à¸\82à¹\89อà¸\84วามà¸\95à¹\88อà¹\84à¸\9bà¸\99ีà¹\89à¸\97ำให้ตัวกรองสแปมของเราทำงาน: $1',
 'spambot_username' => 'กวาดล้างมีเดียวิกิสแปม',
 'spam_reverting' => 'ย้อนกลับไปรุ่นก่อนหน้าที่ไม่มีลิงก์ไปยังเว็บ $1',
 'spam_blanking' => 'รุ่นการปรับปรุงทุกรุ่นประกอบไปด้วยลิงก์ไปยังเว็บ $1 (ทำหน้าว่าง)',
@@ -3342,24 +3342,24 @@ $1',
 เปิดใช้งานปุ่มด้านล่างเพื่อส่งเมลยืนยันไปยังที่อยู่ของคุณ
 เมลจะรวมลิงก์ซึ่งมีรหัส
 โหลดลิงก์ในเบราว์เซอร์ของคุณเพื่อยืนยันว่าที่อยู่อีเมลของคุณสมเหตุสมผล',
-'confirmemail_pending' => 'รหัสยืà¸\99ยัà¸\99à¸\96ูà¸\81อีà¹\80มลà¹\84à¸\9bหาคุณแล้ว 
-à¸\96à¹\89าà¸\84ุà¸\93à¹\80à¸\9eิà¹\88à¸\87สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aี à¸\84ุà¸\93อาà¸\88อยาà¸\81รอสัà¸\81à¸\84รูà¹\88à¹\83หà¹\89สà¹\88à¸\87à¹\84à¸\9bà¸\96ึà¸\87à¸\81à¹\88อà¸\99à¸\9eยายามà¸\82อรหัสà¹\83หมà¹\88',
+'confirmemail_pending' => 'รหัสยืà¸\99ยัà¸\99à¹\84à¸\94à¹\89สà¹\88à¸\87à¹\84à¸\9bยัà¸\87อีà¹\80มลà¸\82อà¸\87คุณแล้ว 
+à¸\96à¹\89าà¸\84ุà¸\93à¹\80à¸\9eิà¹\88à¸\87สรà¹\89าà¸\87à¸\9aัà¸\8dà¸\8aี à¸\84ุà¸\93อาà¸\88à¸\95à¹\89อà¸\87รอสัà¸\81à¸\84รูà¹\88à¹\83หà¹\89รหัสสà¹\88à¸\87à¹\84à¸\9bà¸\96ึà¸\87à¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\84ุà¸\93 à¹\81à¸\97à¸\99à¸\97ีà¹\88à¸\88ะà¸\82อรหัสยืà¸\99ยัà¸\99à¹\83หมà¹\88à¸\97ัà¸\99à¸\97ี',
 'confirmemail_send' => 'ส่งรหัสยืนยันทางอีเมล',
 'confirmemail_sent' => 'ส่งอีเมลยืนยันแล้ว',
 'confirmemail_oncreate' => 'รหัสยืนยันถูกส่งไปยังที่อยู่อีเมลของคุณ
 รหัสนี้ไม่กำหนดให้ต้องล็อกอิน แต่คุณต้องระบุรหัสก่อนเปิดใช้งานคุณลักษณะที่อาศัยอีเมลทั้งหมดในวิกินี้',
-'confirmemail_sendfailed' => '{{SITENAME}} ไม่สามารถส่งเมลยืนยันได้
-à¹\82à¸\9bรà¸\94à¸\95รวà¸\88สอà¸\9aà¸\97ีà¹\88อยูà¹\88อีà¹\80มลวà¹\88าà¹\84มà¹\88มีอัà¸\81à¸\82ระà¸\97ีà¹\88à¹\84มà¹\88สมà¹\80หà¸\95ุสมà¸\9cล
+'confirmemail_sendfailed' => '{{SITENAME}}ไม่สามารถส่งอีเมลยืนยันได้
+à¹\82à¸\9bรà¸\94à¸\95รวà¸\88สอà¸\9aà¸\97ีà¹\88อยูà¹\88อีà¹\80มลวà¹\88าà¹\84มà¹\88มีอัà¸\81à¸\82ระà¸\97ีà¹\88à¹\84มà¹\88à¸\96ูà¸\81à¸\95à¹\89อà¸\87
 
 ข้อความตีกลับ: $1',
 'confirmemail_invalid' => 'รหัสยืนยันไม่ถูกต้อง 
 รหัสอาจหมดอายุแล้ว',
-'confirmemail_needlogin' => 'ต้อง $1 เพื่อยืนยันที่อยู่อีเมลของคุณ',
+'confirmemail_needlogin' => 'à¸\84ุà¸\93à¸\95à¹\89อà¸\87 $1 à¹\80à¸\9eืà¹\88อยืà¸\99ยัà¸\99à¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¸\82อà¸\87à¸\84ุà¸\93',
 'confirmemail_success' => 'อีเมลคุณได้รับการยืนยันแล้ว
 คุณอาจ[[Special:UserLogin|ล็อกอิน]]ตอนนี้และสนุกกับการแก้ไขวิกิ',
 'confirmemail_loggedin' => 'อีเมลคุณได้รับการยืนยันแล้ว',
 'confirmemail_error' => 'เกิดปัญหาขณะบันทึกการยืนยันของคุณ',
-'confirmemail_subject' => 'การยืนยันที่อยู่อีเมล {{SITENAME}}',
+'confirmemail_subject' => 'การยืนยันที่อยู่อีเมลของ{{SITENAME}}',
 'confirmemail_body' => 'ใครบางคน ซึ่งอาจจะเป็นคุณ จากหมายเลขไอพี $1 ได้ลงทะเบียนในชื่อ "$2" โดยใช้อีเมลนี้ที่ {{SITENAME}}
 
 เพื่อยืนยันว่าบัญชีผู้ใช้นี้เป็นของคุณอย่างแน่อน และใช้งานฟีเจอร์ส่งอีเมลหาผู้ใช้บน {{SITENAME}} กดลิงก์นี้ในเว็บเบราวเซอร์ของคุณ:
index 9084776..73f6921 100644 (file)
@@ -1386,7 +1386,7 @@ $1",
 'shown-title' => 'Показувати $1 {{PLURAL:$1|запис|записи|записів}} на сторінці',
 'viewprevnext' => 'Переглянути ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Параметри пошуку',
-'searchmenu-exists' => "'''У цій вікі є сторінка з назвою «[[$1]]»'''",
+'searchmenu-exists' => "'''У цій вікі є сторінка з назвою «[[:$1]]»'''",
 'searchmenu-new' => "'''Створити сторінку «[[:$1]]» у цій вікі!'''",
 'searchhelp-url' => 'Help:Довідка',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Показати сторінки з цим префіксом]]',
@@ -1460,7 +1460,7 @@ $1",
 'prefs-watchlist-days-max' => 'Максимум $1 {{PLURAL:$1|день|дні|днів}}',
 'prefs-watchlist-edits' => 'Кількість редагувань для відображення у розширеному списку спостереження:',
 'prefs-watchlist-edits-max' => 'Максимально: 1000',
-'prefs-watchlist-token' => 'Ð\9fознаÑ\87ка списку спостереження:',
+'prefs-watchlist-token' => 'Ð\9cÑ\96Ñ\82ка списку спостереження:',
 'prefs-misc' => 'Інші налаштування',
 'prefs-resetpass' => 'Змінити пароль',
 'prefs-changeemail' => 'Змінити адресу електронної пошти',
index 668fca2..e9935c7 100644 (file)
@@ -406,7 +406,7 @@ $1',
 'nstab-user' => 'Foydalanuvchi sahifasi',
 'nstab-media' => 'Media sahifasi',
 'nstab-special' => 'Maxsus sahifa',
-'nstab-project' => 'Loyiha sahifasi',
+'nstab-project' => 'Loyiha haqida',
 'nstab-image' => 'Fayl',
 'nstab-mediawiki' => 'Xabar',
 'nstab-template' => 'Andoza',
index c52243f..2e337a4 100644 (file)
@@ -233,6 +233,7 @@ $messages = array(
 'namespaces' => "Mga ngaran-lat'ang",
 'variants' => 'Mga pagkadirudilain',
 
+'navigation-heading' => 'Menu hit nabigasyon',
 'errorpagetitle' => 'Sayop',
 'returnto' => 'Balik ngadto ha $1.',
 'tagline' => 'Tikang ha {{SITENAME}}',
@@ -353,6 +354,7 @@ $1',
 'restorelink' => '{{PLURAL:$1|usa nga ginpara nga pagliwat|$1 ka ginpara nga mga pagliwat}}',
 'feedlinks' => 'Igsulod:',
 'feed-invalid' => 'Inbalido nga pagpapaabot',
+'feed-unavailable' => 'Waray mga syndication feed',
 'site-rss-feed' => '$1 RSS nga feed',
 'site-atom-feed' => '$1 Atom nga feed',
 'page-rss-feed' => '"$1" RSS nga feed',
@@ -400,6 +402,9 @@ Nagbalik hin sayop an database nga "$3: $4"',
 'laggedslavemode' => 'Pahimatngon: It pakli bangin waray mga kabag-ohan nga bag-o.',
 'readonly' => 'Gintrankahan an database',
 'enterlockreason' => 'Pagbutang hin rason para han pagtrangka, upod hin banabana kon san-o kukuha-on an pagtrangka',
+'readonlytext' => 'An database in nakatrangka yana ha bag-o nga mga entrada ngan iba nga mga modipikasyon, tungod siguro ha routine database maintenance, kahuman ini in mabalik ha normal.
+
+An magdudumara nga nagtrangka hini in naghatag hini nga kasayoran: $1',
 'missing-article' => 'Ini nga database in waray nakaagi han teksto han pakli nga dapat mabilngan, nga ginngaranan nga "$1" $2.
 
 Ini in agsob hinungdan han pagsunod han kadaan nga kaibhan o sumpay han kaagi ngadto ha pakli nga ginpara.
@@ -461,11 +466,17 @@ An magdudurmara nga nagtrangka hini in naghatag hini nga eksplenasyon: "$3".',
 'exception-nologin-text' => 'Ini nga pakli o pagbuhat in nagkikinahanglan nga ikaw in mag-log-in ha dinhi nga wiki.',
 
 # Virus scanner
+'virus-badscanner' => "Maraot nga configuration: Waray kasabti nga virus scanner: ''$1''",
 'virus-scanfailed' => 'Pakyas an pag-scan (kodigo $1)',
 'virus-unknownscanner' => 'diri-nasasabtan nga antivirus:',
 
 # Login and logout pages
+'logouttext' => "'''Nakalog-out kana.'''
+
+Puydi ka magpadayon paggamit hin {{SITENAME}} nga diri magpapakilala, o puydi ka gihapon <span class='plainlinks'>[$1 mag-log in utro]</span> ha parehas o iba nga gumaramit.",
 'welcomeuser' => '¡Uswag ngan Dayon, $1!',
+'welcomecreation-msg' => 'An im akawnt in nahimo na.
+Ayaw kalimti pagbalyo han imo [[Special:Preferences|{{SITENAME}} preperensya]].',
 'yourname' => 'Agnay hit gumaramit:',
 'yourpassword' => 'Tigaman-pagsulod:',
 'yourpasswordagain' => 'Utroha pagbutang an tigaman-han-pagsakob:',
@@ -496,6 +507,7 @@ Alayon pagpili hin lain nga ngaran.',
 'createaccounterror' => 'Diri makakahimo hin akawnt: $1',
 'nocookieslogin' => '{{SITENAME}} in nagkikinahanglan hin mga kuki para makapagpalog-in hin mga gumaramit.  An im mga kuki in diri nagana.
 Alayon paganaha hira ngan utro liwat.',
+'noname' => 'Waray ka nakahatag hin maupay nga agnay-hit-gumaramit.',
 'loginsuccesstitle' => 'Malinamposon an pagsulod',
 'loginsuccess' => "'''Ikaw in nakalog-in ha {{SITENAME}} komo \"\$1\".'''",
 'nosuchuser' => 'Waray gumaramit an may-ada ngaran nga "$1".
@@ -552,8 +564,9 @@ Ikaw in naglalog-in yana...',
 
 # Special:PasswordReset
 'passwordreset' => 'igreset an tigaman-hit-pagsulod',
-'passwordreset-text' => 'Kompletoha ini nga porma para makakarawat hin email hin pahinumdom han detalye han akawnt.',
+'passwordreset-text' => 'Kumpletoha ini nga porma para makareset han imo password.',
 'passwordreset-legend' => 'igreset an tigaman-hit-pagsulod',
+'passwordreset-disabled' => 'Waray ginpaandar an password reset hini nga wiki.',
 'passwordreset-username' => 'Agnay hiton gumaramit:',
 'passwordreset-domain' => 'Dominyo:',
 'passwordreset-capture' => 'Kikitaon mo an resulta nga e-mail?',
@@ -561,9 +574,9 @@ Ikaw in naglalog-in yana...',
 'passwordreset-emailtitle' => 'Mga detalye han akawnt ha {{SITENAME}}',
 'passwordreset-emailelement' => 'Agnay han gumaramit: $1
 Temporaryo nga tigaman han pagsakob: $2',
-'passwordreset-emailsent' => 'Ginpadara hin usa ka pahinumdom nga e-mail.',
-'passwordreset-emailsent-capture' => 'Mayda pahinumdom nga ginpadangat ha im e-mail, kun diin ini in ginpapakita ha ubos.',
-'passwordreset-emailerror-capture' => 'Mayda pahinumdom nga e-mail han nahimo, kun diin ini in ginpapakita ha ubos, pero pakyas an pagpadangat ngada ha gumaramit: $1',
+'passwordreset-emailsent' => 'Ginpadangat an password reset email.',
+'passwordreset-emailsent-capture' => 'Ginpadangat an password reset email, nga ginpakita ha ubos.',
+'passwordreset-emailerror-capture' => 'Ginhimo an password reset email, kun diin nakikita ha ubos, pero pakyas an pagpadara: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Igliwan an e-mail address',
@@ -573,6 +586,7 @@ Temporaryo nga tigaman han pagsakob: $2',
 'changeemail-oldemail' => 'Yana nga e-mail address:',
 'changeemail-newemail' => 'Bag-o nga e-mail address:',
 'changeemail-none' => '(waray)',
+'changeemail-password' => 'An imo {{SITENAME}} password:',
 'changeemail-submit' => 'Igbalyo an e-mail',
 'changeemail-cancel' => 'Pasagdi',
 
@@ -893,10 +907,12 @@ Ginpapasabot nga an sulod han mga panudlok han {{SITENAME}} in bangin daan an.',
 'prefs-namespaces' => "Ngaran-lat'ang",
 'default' => 'aada-nga-daan',
 'prefs-files' => 'Mga paypay',
+'prefs-emailconfirm-label' => 'Kompirmasyon han email:',
+'prefs-textboxsize' => 'Kadako han editing window',
 'youremail' => 'E-mail:',
 'username' => '{{HENERO:$1|Agnay hit gumaramit}}:',
 'uid' => 'ID hit {{HENERO:$1|Gumaramit}}:',
-'prefs-memberingroups' => 'Api han {{PLURAL:$1| nga hugpo|nga mga hugpo}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Api}} han {{PLURAL:$1|grupo|mga grupo}}:',
 'prefs-registration' => 'Oras han pagrehistro:',
 'yourrealname' => 'Tinuod nga ngaran:',
 'yourlanguage' => 'Yinaknan:',
@@ -908,6 +924,8 @@ Dapat diri malabaw ha $1 {{PLURAL:$1|agi|mga agi}} nga kahilaba.',
 'gender-male' => 'Lalaki',
 'gender-female' => 'Babaye',
 'email' => 'E-mail',
+'prefs-help-realname' => 'Opsyonal an tinuod nga ngaran.
+Kun pilion mo nga ihatag, ini in gagamiton ha paghatag hin atribusyon ha imo mga buhat.',
 'prefs-help-email' => "Diri pinipirit it pagbutang hin E-mail address, pero kinahanglan ini para hin pag-utro hin tigaman-hit-pagsulod (''password''), ngan kun mangalimot ka hit imo tigaman-hit-pagsulod.",
 'prefs-help-email-others' => 'Puydi mo pilion nga it iba in makakontak ha imo gamit an e-mail pinaagi han sumpay ha imo gumaramit o hiruhimangraw nga pakli.
 An imo e-mail address in diri makikit-an kun an iba nga mga gumaramit in makontak ha imo.',
@@ -1093,7 +1111,7 @@ Mga pakli ha [[Special:Watchlist|imo angay timan-an]] in naka-'''bold'''.",
 
 An taramdan han pagpara ngan pagbalhin para hini nga pakli in ginhahatag para han imo kamurayaw:",
 'upload-permitted' => 'Gintutugotan nga mga klase han paypay: $1.',
-'upload-preferred' => 'Mas karugag nga mga tipo hin paypay: %1.',
+'upload-preferred' => 'Karuyag nga mga tipo hin paypay: $1.',
 'upload-prohibited' => 'Gindidire nga mga klase han paypay: $1.',
 'uploadlog' => 'Talaan hin ginkarga-pasaka',
 'uploadlogpage' => 'Talaan han mga ginkarga-paigbaw',
@@ -1113,6 +1131,7 @@ An taramdan han pagpara ngan pagbalhin para hini nga pakli in ginhahatag para ha
 'filename-tooshort' => 'An ngaran han fayl in halipot hin duro.',
 'filetype-banned' => 'Ini nga klase nga paypay in gindidire.',
 'illegal-filename' => 'An ngaran han fayl in diri gintutugutan.',
+'overwrite' => 'It pagsapaw han aada nga paypay in diri gintutugotan.',
 'unknown-error' => 'Nahitabo an waray kasasabti nga sayop.',
 'tmp-create-error' => 'Diri makakahimo hin temporaryo nga paypay.',
 'tmp-write-error' => 'Sayop ha pagsurat hin temporaryo nga paypay.',
@@ -1177,6 +1196,8 @@ $1',
 'lockmanager-fail-acquirelock' => 'Diri nakakakarawat hin trangka para hit "$1".',
 'lockmanager-fail-openlock' => 'Diri nakakaabre han nakatrangka nga paypay para hit "$1".',
 'lockmanager-fail-releaselock' => 'Diri nakakabul-iw han trangka para hit "$1".',
+'lockmanager-fail-svr-acquire' => 'Diri nakakakarawat in mga trangka ha serbidor $1.',
+'lockmanager-fail-svr-release' => 'Diri nakakabul-iw in mga trangka ha serbidor $1.',
 
 # ZipDirectoryReader
 'zip-wrong-format' => 'An espisipikado nga paypay in diri naka ZIP nga paypay.',
@@ -1189,6 +1210,9 @@ $1',
 'img-auth-nofile' => 'Waray ngada an paypay nga "$1".',
 
 # HTTP errors
+'http-read-error' => 'HTTP maysayop ha pagbasa.',
+'http-timed-out' => 'Naubosan hin oras ha pagpaalayon ha HTTP.',
+'http-curl-error' => 'May sayop ha pagkuha hin URL: $1',
 'http-host-unreachable' => 'Diri nakakaabot ha URL.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
@@ -1424,8 +1448,13 @@ An paglaladawan han iya [$2 fayl han paglaladawan nga pakli] didto in ginpapakit
 'listgrouprights-removegroup' => 'Tanggala {{PLURAL:$2|hugpo|mga hugpo}}: $1',
 'listgrouprights-addgroup-all' => 'Igdugang ngatanan nga mga hugpo',
 'listgrouprights-removegroup-all' => 'Igtanggal ngatanan nga mga hugpo',
+'listgrouprights-addgroup-self' => 'Igdugang an {{PLURAL:$2|grupo|mga grupo}} ha kalugaringon nga akawnt: $1',
+'listgrouprights-removegroup-self' => 'Igtanggal an {{PLURAL:$2|grupo|mga grupo}} tikang ha kalugaringon nga akawnt: $1',
+'listgrouprights-addgroup-self-all' => 'Igdugang an ngatanan nga mga grupo ha kalugaringon nga akawnt',
+'listgrouprights-removegroup-self-all' => 'Igtanggal an ngatanan nga mga grupo tikang ha kalugaringon nga akawnt',
 
 # Email user
+'mailnologin' => 'Waray kakadtoan nga address',
 'emailuser' => 'Ig-e-mail ini nga gumaramit',
 'emailuser-title-target' => 'Ig-E-mail ini nga {{HENERO:$1|gumaramit}}',
 'emailuser-title-notarget' => 'Gumaramit han e-mail',
@@ -1455,10 +1484,13 @@ An paglaladawan han iya [$2 fayl han paglaladawan nga pakli] didto in ginpapakit
 'watchlistfor2' => 'Para ha $1 $2',
 'watchnologin' => 'Diri nakalog-in',
 'addwatch' => 'Igdugang an listahan hit binabantayan',
+'removewatch' => 'Tanggala tikang ha listahan han binabantayan',
 'watch' => 'Bantayi',
 'watchthispage' => 'Bantayi ini nga pakli',
 'unwatch' => 'Pabay-i an pagbantay',
 'unwatchthispage' => 'Undangi pagbantay',
+'notanarticle' => 'Diri uska unod nga pakli',
+'notvisiblerev' => 'An urhi nga pagliwat han iba nga gumaramit in ginpara',
 'watchlist-details' => '{{PLURAL:$1|$1 nga pakli|$1 nga mga pakli}} nga aada ha imo talaan nga binabantayan, diri lakip an mga hiruhimangraw-nga-pakli.',
 'wlshowlast' => 'Igpakita an katapusan nga $1 nga mga oras $2 nga mga adlaw $3',
 'watchlist-options' => 'Mga pirilian han talaan han binabantayan',
@@ -1469,6 +1501,11 @@ An paglaladawan han iya [$2 fayl han paglaladawan nga pakli] didto in ginpapakit
 
 'enotif_reset' => 'Markahi an ngatanan nga mga pakli nga ginbisita na',
 'enotif_impersonal_salutation' => 'gumaramit han {{SITENAME}}',
+'enotif_subject_deleted' => 'An {{SITENAME}} pakli nga $1 in {{GENDER:$2|ginpara}} ni $2',
+'enotif_subject_created' => 'An {{SITENAME}} pakli nga $1 in {{GENDER:$2|ginhimo}} ni $2',
+'enotif_subject_moved' => 'An {{SITENAME}} pakli nga $1 in {{GENDER:$2|ginbalhin}} ni $2',
+'enotif_subject_restored' => 'An {{SITENAME}} pakli nga $1 in {{GENDER:$2|ginbalik}} ni $2',
+'enotif_subject_changed' => '{{SITENAME}} page $1 has been {{GENDER:$2|ginbal-iw}} by $2',
 'enotif_anon_editor' => 'waray magpakilala nga gumaramit $1',
 'created' => 'nahimo',
 'changed' => 'naliwanan',
@@ -1504,6 +1541,9 @@ Kitaa an $2 para hin talaan han mga gibag-ohi nga mga ginpamara.',
 'rollbacklink' => 'libot-pabalik',
 'rollbackfailed' => 'Diri malinamposon an paglibot-pabalik',
 
+# Edit tokens
+'sessionfailure-title' => 'Pakyas an sesyon',
+
 # Protect
 'protectlogpage' => 'Talaan han pinasaliporan',
 'protectedarticle' => 'pinasaliporan "[[$1]]"',
@@ -1867,6 +1907,10 @@ Makikit-an nimo an ginkuhaaan',
 'pageinfo-contentpage' => 'Ginlakip komo uska unod nga pakli',
 'pageinfo-contentpage-yes' => 'Oo',
 'pageinfo-protect-cascading-yes' => 'Oo',
+'pageinfo-category-info' => 'Impormasyon han kaarangay',
+'pageinfo-category-pages' => 'Ihap han mga pakli',
+'pageinfo-category-subcats' => 'Ihap han mga ubos-kaarangay',
+'pageinfo-category-files' => 'Ihap han mga paypay',
 
 # Patrolling
 'markaspatrolleddiff' => 'Igmarka komo ginpatrolya na',
@@ -2219,11 +2263,13 @@ An iba in daan nakatago.
 'specialpages-group-maintenance' => 'Mga sumat han pagmintinar',
 'specialpages-group-other' => 'Mga iba nga pinaurog nga pakli',
 'specialpages-group-login' => 'Magpalista nga masakob / paghimo hin bag-o nga akawnt',
+'specialpages-group-changes' => 'Mga kababag-o pala ngan mga log',
+'specialpages-group-media' => 'Sumat media ngan mga ginkarga-pasaka',
 'specialpages-group-users' => 'Mga gumaramit ngan mga katungod',
 'specialpages-group-highuse' => 'Mga pakli nga damo nagamit',
 'specialpages-group-pages' => 'Talaan hin mga pakli',
 'specialpages-group-pagetools' => 'Mga higamit han pakli',
-'specialpages-group-wiki' => 'Datos ngan mga higamit han Wiki',
+'specialpages-group-wiki' => 'Datos ngan mga higamit',
 'specialpages-group-redirects' => 'Ginreredirek an mga pakli nga pinaurog',
 'specialpages-group-spam' => 'Mga higamit han spam',
 
@@ -2258,6 +2304,8 @@ An iba in daan nakatago.
 
 # Database error messages
 'dberr-header' => 'Ini nga wiki mayda problema',
+'dberr-problems' => 'Pasayloi!
+Ini nga sityo in nageeksperyensya hin mga pagkuri teknikal.',
 
 # HTML forms
 'htmlform-submit' => 'Isumite',
index d6b3df2..b039767 100644 (file)
@@ -46,6 +46,10 @@ $namespaceAliases = array(
        'באזונדער' => NS_SPECIAL,
        'באנוצער' => NS_USER,
        'באנוצער_רעדן' => NS_USER_TALK,
+       'משתמש' => NS_USER,
+       'שיחת_משתמש' => NS_USER_TALK,
+       'משתמשת' => NS_USER,
+       'שיחת_משתמשת' => NS_USER_TALK,
        'בילד' => NS_FILE,
        'בילד_רעדן' => NS_FILE_TALK,
        'מעדיעוויקי' => NS_MEDIAWIKI,
@@ -55,6 +59,10 @@ $namespaceAliases = array(
        'באניצער' => NS_USER,
        'באניצער_רעדן' => NS_USER_TALK,
 );
+$namespaceGenderAliases = array(
+       NS_USER      => array( 'male' => 'באַניצער', 'female' => 'באַניצערין' ),
+       NS_USER_TALK => array( 'male' => 'באַניצער_רעדן', 'female' => 'באַניצערין_רעדן' ),
+);
 
 $specialPageAliases = array(
        'Activeusers'               => array( 'טעטיגע_באניצער' ),
@@ -630,16 +638,16 @@ $2',
 'createaccountmail' => 'ניצן א פראוויזאריש פאסווארט און שיקן צום ע-פאסט אדרעס געצייכנט אונטן',
 'createaccountreason' => 'אורזאַך:',
 'badretype' => 'די פאסווערטער וואס איר האט אריינגעלייגט זענען נישט אייניג.',
-'userexists' => 'דער באַניצער נאָמען איז שוין געניצט. 
+'userexists' => 'דער באַניצער נאָמען איז שוין געניצט.
 ביטע קלײַבט אױס אַן אַנדער נאָמען.',
 'loginerror' => 'לאגירן פֿעלער',
 'createaccounterror' => 'האט נישט געקענט שאַפֿן קאנטע: $1',
 'nocookiesnew' => 'די באניצער קאנטע איז באשאפן, אבער איר זענט נישט אריינלאגירט.
 {{SITENAME}} ניצט קיכלעך אריינצולאגירן באניצער.
-איר האט קיכלעך נישט-ערמעגלעכט. 
+איר האט קיכלעך נישט-ערמעגלעכט.
 ביטע ערמעגלעכט זיי, דאן טוט אריינלאגירן מיט אייערע נייע באניצער נאמען און פאסווארט.',
-'nocookieslogin' => '{{SITENAME}} נוצט קיכלעך כדי אַרײַנלאגירן באַניצער. 
-בײַ אײַך זענען קיכלעך אומדערמעגלעכט. 
+'nocookieslogin' => '{{SITENAME}} נוצט קיכלעך כדי אַרײַנלאגירן באַניצער.
+בײַ אײַך זענען קיכלעך אומדערמעגלעכט.
 ביטע אַקטיווירט זיי און פרובירט נאכאַמאָל.',
 'nocookiesfornew' => 'מען האט נישט געשאַפֿן די באַניצער קאנטע, ווײַל מען האט נישט געקענט באַשטעטיקן איר מקור.
 טוט פֿעסטשטעלן אָז קיכלעך זענען אַקטיווירט, לאָדט אָן נאכאַמאל דעם בלאַט און פרואווט ווידער.',
@@ -649,7 +657,7 @@ $2',
 'nosuchuser' => 'נישטא קיין באניצער מיטן נאמען  "$1".
 
 קוקט איבער אײַער אויסלייג, אדער [[Special:UserLogin/signup|שאַפֿט א נײַע קאנטע]].',
-'nosuchusershort' => 'נישטאָ קיין באַניצער מיטן נאָמען "$1". 
+'nosuchusershort' => 'נישטאָ קיין באַניצער מיטן נאָמען "$1".
 ביטע באַשטעטיקט דעם אויסלייג.',
 'nouserspecified' => 'איר ברויכט ספעציפֿיצירן א באַניצער-נאָמען.',
 'login-userblocked' => 'דער באַניצער איז בלאקירט. ארײַנלאגירן נישט ערלויבט.',
@@ -742,19 +750,19 @@ $2',
 $2
 
 {{PLURAL:$3|דאס פראוויזארישע פאסווארט|די פראוויזארישע פאסווערטער}} וועלן אויסגיין נאך {{PLURAL:$5|איין טאג|$5 טעג}}.
-איר זאלט אריינלאגירן און קלויבן א נייע פאסווארט אצינד. טאמער א צווייטער האט געשיקט די בקשה, 
+איר זאלט אריינלאגירן און קלויבן א נייע פאסווארט אצינד. טאמער א צווייטער האט געשיקט די בקשה,
 אדער ווען איר געדענקט יא אייער פריעריקע פאסווארט, און וויל עס נישט ענדערן,
  קענט איר איגנארירן דעם אנזאג און ניצן ווייטער דאס אלטע פאסווארט.',
-'passwordreset-emailtext-user' => 'באניצער $1 אויף  {{SITENAME}} האט געבעטן צוריקצושטעלן אייער פאסווארט פאר {{SITENAME}} ($4). 
+'passwordreset-emailtext-user' => 'באניצער $1 אויף  {{SITENAME}} האט געבעטן צוריקצושטעלן אייער פאסווארט פאר {{SITENAME}} ($4).
 די פאלגנדע באניצער {{PLURAL:$3|קאנטע איז|קאנטעס זענען}} פארבונדן מיט דעם ע־פאסט אדרעס:
 
 $2
 
 {{PLURAL:$3|דאס פראוויזארישע פאסווארט|די פראוויזארישע פאסווערטער}} וועלן אויסגיין נאך {{PLURAL:$5|איין טאג|$5 טעג}}.
-איר זאלט אריינלאגירן און קלויבן א נייע פאסווארט אצינד. טאמער א צווייטער האט געשיקט די בקשה, 
+איר זאלט אריינלאגירן און קלויבן א נייע פאסווארט אצינד. טאמער א צווייטער האט געשיקט די בקשה,
 אדער ווען איר געדענקט יא אייער פריעריקע פאסווארט, און וויל עס נישט ענדערן,
  קענט איר איגנארירן דעם אנזאג און ניצן ווייטער דאס אלטע פאסווארט.',
-'passwordreset-emailelement' => 'באַניצער נאָמען: $1 
+'passwordreset-emailelement' => 'באַניצער נאָמען: $1
 פראוויזארישער פּאַראָל: $2',
 'passwordreset-emailsent' => "מ'האט געשיקט א פאסווארט צוריקשטעלן ע-פּאָסט.",
 'passwordreset-emailsent-capture' => 'מען האט געשיקט א פאסווארט צוריקשטעלן בליצבריוו, וואס ווערט געוויזן אונטן.',
@@ -868,7 +876,7 @@ $2
 
 דאס געשעט געוויינלעך פון פאלגן א פארעלטערטן היסטאריע לינק צו א בלאט וואס איז געווארן אויסגעמעקט.
 פרטים קען מען געפינען אינעם [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} אויסמעקונג לאגבוך].',
-'userpage-userdoesnotexist' => 'באניצער קאנטע "$1" איז נישט אײַנגעשריבן. 
+'userpage-userdoesnotexist' => 'באניצער קאנטע "$1" איז נישט אײַנגעשריבן.
 קוקט איבער צי איר ווילט שאפֿן/רעדאקטירן דעם בלאט.',
 'userpage-userdoesnotexist-view' => 'באניצער קאנטע "$1" איז נישט איינגעשריבן.',
 'blocked-notice-logextract' => 'דער באַניצער איז דערווייַל פֿאַרשפאַרט.
@@ -932,7 +940,7 @@ $2
 
 אזוי אויך, זאגט איר צו אז איר האט דאס געשריבן אליין, אדער דאס איבערקאפירט פון א מקור מיט פולן רשות דאס מפקיר זיין (זעט $1 פאר מער פרטים).
 '''זיכט נישט באניצן מיט שטאף וואס איז באשיצט מיט קאפירעכטן!'''",
-'longpageerror' => "'''פעלער: דער טעקסט וואס איר האט ארײַנגעשטעלט איז לאנג {{PLURAL:$1|איין קילאבייט|$1 קילאבייטן}}, וואס איז לענגער פון דעם מאקסימום פון {{PLURAL:$2|איין קילאבייט|$2 קילאבייטן}}. 
+'longpageerror' => "'''פעלער: דער טעקסט וואס איר האט ארײַנגעשטעלט איז לאנג {{PLURAL:$1|איין קילאבייט|$1 קילאבייטן}}, וואס איז לענגער פון דעם מאקסימום פון {{PLURAL:$2|איין קילאבייט|$2 קילאבייטן}}.
 ער קען נישט ווערן אפגעהיטן.'''",
 'readonlywarning' => "'''ווארענונג: די דאטנבאזע איז געווארן פארשלאסן פאר אויפהאלטונג, ממילא וועט איר נישט קענען אפהיטן אייערע ענדערונגען אצינד. '''
 איר קענט קאפירן און ארײַנלייגן דעם טעקסט אריין צו א טעקסט טעקע און דאס דארטן אפהיטן אויף שפעטער.
@@ -1365,7 +1373,7 @@ $1",
 'email' => 'ע-פאסט',
 'prefs-help-realname' => '* עכטער נאמען (אפציאנאל): אויב וועט איר אויסוועלן צוצישטעלן דאס, וועט גענוצט ווערן צו געבן אטריביאציע צו אייער ארבייט.',
 'prefs-help-email' => 'ע-פאסט אַדרעס איז ברירהדיק, אבער עס דערמעגליכט אז מען קען אייך שיקן א ניי פאסווארט טאמער איר פֿארגעסט דאָס אַלטע.',
-'prefs-help-email-others' => 'איר קענט אויך אויסקלייבן צו לאזן אנדערע פֿארבינדן מיט אייך דורך ע־פאסט דורך א לינק אויף אייער באניצער אדער שמועס בלאט. 
+'prefs-help-email-others' => 'איר קענט אויך אויסקלייבן צו לאזן אנדערע פֿארבינדן מיט אייך דורך ע־פאסט דורך א לינק אויף אייער באניצער אדער שמועס בלאט.
 מען וועט נישט אנטפלעקן אייער ע־פאסט אדרעס ווען אנדערע פֿארבינדן זיך מיט אייך.',
 'prefs-help-email-required' => 'בליצפאסט אדרעס באדארפט.',
 'prefs-info' => 'גרונטלעכע אינפֿארמאַציע',
@@ -1663,11 +1671,11 @@ $1",
 'file-thumbnail-no' => "דער טעקע־נאמען הייבט אן מיט <strong>$1</strong>.
 זי זעט אויס ווי א פארקלענערט בילד ''(מיניאטור)''.
 טאמער האט איר דאס בילד אין פולער רעזאלוציע טוט עס ארויפלאדן, אנדערשט זייט אזוי גוט און ענדערט דעם טעקע־נאמען.",
-'fileexists-forbidden' => 'א טעקע מיט דעם נאָמען עקזיסטירט שוין, און מען קען זי נישט אַריבערשרײַבן. 
-אויב איר ווילט דאך אַרויפֿלאָדן אײַער טעקע, ביטע גיין צוריק און ניצן אַן אַנדער נאָמען. 
+'fileexists-forbidden' => 'א טעקע מיט דעם נאָמען עקזיסטירט שוין, און מען קען זי נישט אַריבערשרײַבן.
+אויב איר ווילט דאך אַרויפֿלאָדן אײַער טעקע, ביטע גיין צוריק און ניצן אַן אַנדער נאָמען.
 [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'א טעקע מיט דעם נאָמען עקזיסטירט שוין אינעם צענטראַלן אַרכיוו.
-אויב איר ווילט דאך אַרויפֿלאָדן אײַער טעקע, ביטע גיין צוריק און ניצן אַן אַנדער נאָמען. 
+אויב איר ווילט דאך אַרויפֿלאָדן אײַער טעקע, ביטע גיין צוריק און ניצן אַן אַנדער נאָמען.
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'די טעקע איז א דופליקאַט פון די פֿאלגנדע {{PLURAL:$1|טעקע|טעקעס}}:',
 'file-deleted-duplicate' => "א טעקע אידענטיש מיט דער טעקע ([[:$1]]) האט מען שוין אויסגעמעקט.
@@ -2088,7 +2096,7 @@ $1",
 'listgrouprights' => 'באַניצער גרופע רעכטן',
 'listgrouprights-summary' => "פֿאלגנד איז א רשימה פֿון באַניצער גרופעס דעפֿינירט אויף דער דאָזיקער וויקי, מיט זײַערע אַסאציאירטע צוטריט רעכטן.
 ס'קען זײַן  [[{{MediaWiki:Listgrouprights-helppage}}|מער אינפֿארמאַציע]] וועגן איינציקע רעכטן.",
-'listgrouprights-key' => '* <span class="listgrouprights-granted">נאָכגעגעבן רעכט</span> 
+'listgrouprights-key' => '* <span class="listgrouprights-granted">נאָכגעגעבן רעכט</span>
  * <span class="listgrouprights-revoked">אָפגערופֿן רעכט</span>',
 'listgrouprights-group' => 'גרופע',
 'listgrouprights-rights' => 'רעכטן',
@@ -2206,7 +2214,7 @@ $PAGEINTRO $NEWPAGE
 
 עס וועט מער נישט זיין קיין מעלדונגען אין פאל פון נאך ענדערונגען נאר אויב איר וועט באזוכן דעם בלאט.
 איר קענט אויך צוריקשטעלן די מעלדונגען פאנען פון אלע אייערע אויפֿגעפאסטע בלעטער אין אייער אויפפאסונג ליסטע.
-             
+
 אייער פֿריינטליכע  {{SITENAME}} מעלדונגען סיסטעם
 
 --
@@ -2357,8 +2365,8 @@ $UNWATCHURL
 'undeleterevisions' => '{{PLURAL:$1|איין ווערסיע|$1 ווערסיעס}} אַרכיווירט',
 'undeletehistory' => 'אויב איר שטעלט צוריק דעם בלאַט, וועלן אַלע רעוויזיעס ווערן צוריקגעשטעלט אין דער היסטאריע.
 אויב מען האט באַשאַפֿן א בלאַט מיטן זעלבן נאָמען זײַטן אויסמעקן, וועלן די צוריקגעשטעלטע רעוויזיעס זיך באַווײַזן אין דער פֿריערדיקער היסטאריע.',
-'undeletehistorynoadmin' => 'דער בלאַט איז געווארן אויסגעמעקט. 
- די סיבה פֿאַרן אויסמעקן ווערט געוויזן אין דער רעזומע אונטן, צוזאמען מיט פרטים פון די באַניצער וואס האבן רעדאַקטירט דעם בלאַט פֿאַרן אויסמעקן. 
+'undeletehistorynoadmin' => 'דער בלאַט איז געווארן אויסגעמעקט.
+ די סיבה פֿאַרן אויסמעקן ווערט געוויזן אין דער רעזומע אונטן, צוזאמען מיט פרטים פון די באַניצער וואס האבן רעדאַקטירט דעם בלאַט פֿאַרן אויסמעקן.
  דער טעקסט פון די אויסגעמעקטע ווערסיעס איז דערגרײַכלעך בלויז צו סיסאפן.',
 'undelete-revision' => 'אויסגעמעקטע ווערסיע פֿון $1 (פֿון $4, אום $5) פֿון $3:',
 'undeleterevision-missing' => 'אומגילטיקע אדער פֿעלנדיקע ווערסיע.
@@ -2545,7 +2553,7 @@ $1',
 דער פֿאַרשטיקונג לאג איז צוגעשטעלט אונטן:',
 'blocklogentry' => 'בלאקירט "[[$1]]" אויף אַ תקופה פון $2 $3',
 'reblock-logentry' => 'גענדערט די בלאקירונג דעפיניציעס פון [[$1]] מיטן צייט אפלויף פון $2 $3',
-'blocklogtext' => 'דאס איז א לאג בוך פון אלע בלאקירונגען און באפרייונגען פֿון באניצער. 
+'blocklogtext' => 'דאס איז א לאג בוך פון אלע בלאקירונגען און באפרייונגען פֿון באניצער.
 איי פי אדרעסן וואס זענען בלאקירט אויטאמאטיש ווערן נישט אויסגערעכענט דא.
 זעט די איצטיקע [[Special:BlockList|ליסטע פון בלאקירטע באניצער]].',
 'unblocklogentry' => 'אומבלאקירט $1',
@@ -2564,7 +2572,7 @@ $1',
 'ipb-needreblock' => '$1 איז שוין בלאקירט. צי ווילט איר טוישן די באַצייכנונגען?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|אנדער בלאקירונג|אנדערע בלאקירונגען}}',
 'unblock-hideuser' => 'איר קענט נישט אומבלאקירן דעם באניצער, ווײַל זײַן באַניצער נאָמען איז פֿאַרבארגן.',
-'ipb_cant_unblock' => "גרײַז: בלאק ID $1 נישט געפֿונען. 
+'ipb_cant_unblock' => "גרײַז: בלאק ID $1 נישט געפֿונען.
 ס'מעגליך שוין געווארן באַפֿרייט.",
 'ipb_blocked_as_range' => "טעות: דער IP אַדרעס $1 איז נישט בלאקירט גראָד און מען קען אים נישט אויפֿבלאקירן.
 דאך איז ער בלאקירט אַלס א טייל פֿון דעם אָפשטאַנד $2, וואָס מ'קען יא אויפֿבלאקירן.",
@@ -2607,11 +2615,11 @@ $1',
 
 איר זענט פֿאראנטווארטלעך זיכער מאכן אז אלע פֿארבינדונגען ווערן געריכטעט צום געהעריגן ציל.
 
-דער בלאט וועט '''נישט''' ווערן אריבערגעפֿירט אויב עס איז שוין דא א בלאט אונטער דעם נייעם נאמען, אחוץ ווען ער איז א ווייטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען. 
+דער בלאט וועט '''נישט''' ווערן אריבערגעפֿירט אויב עס איז שוין דא א בלאט אונטער דעם נייעם נאמען, אחוץ ווען ער איז א ווייטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען.
 פשט דערפֿון, אז איר קענט איבערקערן א ווייטערפֿירונג וואס איר האט אט געמאכט בטעות, און איר קענט נישט אריבערשרייבן אן עקסיסטירנדן בלאט.
 
 '''ווארענונג!'''
- אזא ענדערונג קען זיין דראסטיש און נישט געווינטשען פאר א פאפולערן בלאט; 
+ אזא ענדערונג קען זיין דראסטיש און נישט געווינטשען פאר א פאפולערן בלאט;
 ביטע פֿארזיכערט אז איר פֿארשטייט די ווייטגרייכנדע קאנסקווענסן צו דער אקציע בעפֿאר איר פֿירט דאס אויס.",
 'movepagetext-noredirectfixer' => "זיך באניצן מיט דעם פֿארעם אונטן וועט פֿארענדערן דעם נאמען פֿון דעם בלאט, און וועט אריבערפֿירן זיין געשיכטע צום נייעם נאמען.
 
@@ -2621,7 +2629,7 @@ $1',
 
 איר זענט פֿאראנטווארטלעך זיכער מאכן אז אלע פֿארבינדונגען ווערן געריכטעט צו דער געהעריגער ריכטונג.
 
-אַכטונג: דער בלאַט וועט '''נישט''' ווערן אַריבערגעפֿירט אויב עס איז שוין דאָ א בלאט אונטער דעם נײַעם נאמען, אחוץ ווען ער איז ליידיג. אדער ער איז א ווײַטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען. 
+אַכטונג: דער בלאַט וועט '''נישט''' ווערן אַריבערגעפֿירט אויב עס איז שוין דאָ א בלאט אונטער דעם נײַעם נאמען, אחוץ ווען ער איז ליידיג. אדער ער איז א ווײַטערפֿירונג בלאט, און ער האט נישט קיין געשיכטע פון ענדערונגען.
 פשט דערפֿון, אז איר קענט איבערקערן א ווייטערפֿירונג וואס איר האט אט געמאכט בטעות, און איר קענט נישט אריבערשרײַבן אַן עקסיסטירנדן בלאט.
 
 '''ווארענונג:''' אזא ענדערונג קען זיין דראַסטיש און נישט געוואונטשן פֿאַר א פאפולערן בלאַט; ביטע פֿאַזיכערט אז איר פֿאַרשטייט די ווײַטגרייכנדע קאנסעקווענסן צו דער אַקציע בעפֿאַר איר גייט ווײַטער.",
@@ -2782,7 +2790,7 @@ $1',
 'import-nonewrevisions' => 'אַלע רעוויזיעס שוין אימפארטירט.',
 'xml-error-string' => '$1 בײַ שורה $2, זייל $3 (בייט $4): $5',
 'import-upload' => 'אַרויפֿלאָדן XML דאַטן',
-'import-token-mismatch' => 'אָנווער פון סעסיע דאַטן. 
+'import-token-mismatch' => 'אָנווער פון סעסיע דאַטן.
  ביטע פרובירט נאכאמאל.',
 'import-invalid-interwiki' => 'נישט מעגלעך צו אימפארטירן פון ספעציפֿירטער וויקי.',
 'import-error-edit' => 'דעם בלאט "$1" קען מען נישט אימפארטירן ווייל איר האט נישט די רעכט אים צו רעדאקטירן.',
@@ -3454,7 +3462,7 @@ $3
 $5
 
 דער באשטעטיגונג קאד גייט אויס $4.',
-'confirmemail_body_set' => 'עמעצער, ווארשיינליך איר, פֿון IP אַדרעס $1, 
+'confirmemail_body_set' => 'עמעצער, ווארשיינליך איר, פֿון IP אַדרעס $1,
 האט געענדערט דעם ע־פאסט אַדרעס פֿון דער קאנטע "$2" צו דעם אדרעס אויף {{SITENAME}}.
 
 צו באַשטעטיקן אַז די קאנטע געהערט טאקע צו אייך און ווידער אַקטיווירן ע־פאסט דינסטן אויף {{SITENAME}}, ביטע טוט עפֿענען דעם לינק אין אייער בלעטערער:
index be84b22..389c2b2 100644 (file)
@@ -859,7 +859,7 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重置密码',
-'passwordreset-text' => '完成该表格以接收你账户信息的邮件提醒。',
+'passwordreset-text' => '完成该表格以重设你的密码。',
 'passwordreset-legend' => '重置密码',
 'passwordreset-disabled' => '此wiki已经禁用密码重置。',
 'passwordreset-pretext' => '{{PLURAL:$1||输入下面的数据项之一}}',
@@ -869,21 +869,21 @@ $2',
 'passwordreset-capture-help' => '如果您选中此框,电子邮件(包括临时密码)将显示,并发送给用户。',
 'passwordreset-email' => '电子邮件地址:',
 'passwordreset-emailtitle' => '在 {{SITENAME}} 的帐户详细信息',
-'passwordreset-emailtext-ip' => '有人通过IP地址 $1 (可能是您)请求获取 {{SITENAME}} ($4)上相关账户的密码提示。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:
+'passwordreset-emailtext-ip' => '有人通过IP地址$1(可能是您请求重设{{SITENAME}}($4)上相关账户的密码。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:
 
 $2
 
-{{PLURAL:$3|这个|这个}}临时密码将会在{{PLURAL:$5|一天|$5 天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。',
-'passwordreset-emailtext-user' => '用户 $1 请求获取 {{SITENAME}} ($4)上您的账户的密码提示。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:
+这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。',
+'passwordreset-emailtext-user' => '用户$1请求重设{{SITENAME}}($4)上您的账户的密码。{{PLURAL:$3|以下账户|此账户}}与该电子邮件地址关联:
 
 $2
 
-{{PLURAL:$3|这个|这个}}临时密码将会在{{PLURAL:$5|一天|$5 天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。',
+这个临时密码将会在{{PLURAL:$5|一天|$5天}}后过期。请立即登录并设置新的密码。如果请求是其他人发出的,或者您已回忆起您的旧密码并不再需要更改,您可以忽略本条消息并继续使用原密码。',
 'passwordreset-emailelement' => '用户名:$1
 临时密码:$2',
 'passwordreset-emailsent' => '密码重置邮件已发送。',
-'passwordreset-emailsent-capture' => '提醒电子邮件已发送,并在下面显示。',
-'passwordreset-emailerror-capture' => '生成的提醒电子邮件如下所示,但发送失败:$1',
+'passwordreset-emailsent-capture' => '密码重设电子邮件已发送,并在下面显示。',
+'passwordreset-emailerror-capture' => '生成的密码重设电子邮件如下所示,但发送失败:$1',
 
 # Special:ChangeEmail
 'changeemail' => '更改电子邮件地址',
@@ -3914,14 +3914,14 @@ MediaWiki发表时预期有用,但对此'''无任何保证''',亦无隐含
 'logentry-delete-delete' => '$1删除页面$3',
 'logentry-delete-restore' => '$1恢复页面$3',
 'logentry-delete-event' => '$1已更改$3中$5项日志的可见性:$4',
-'logentry-delete-revision' => '$1已更改$3中{{PLURAL:$5|$5个历史版本|$5个历史版本}}的可见性:$4',
-'logentry-delete-event-legacy' => '$1已更改$3中日志的可见性',
-'logentry-delete-revision-legacy' => '$1已更改$3中历史版本的可见性',
-'logentry-suppress-delete' => '$1已隐藏页面$3',
-'logentry-suppress-event' => '$1已不可见地更改$3中{{PLURAL:$5|$5项日志|$5项日志}}的可见性:$4',
-'logentry-suppress-revision' => '$1已不可见地更改$3中{{PLURAL:$5|$5个历史版本|$5个历史版本}}的可见性:$4',
-'logentry-suppress-event-legacy' => '$1已不可见地更改$3中日志的可见性',
-'logentry-suppress-revision-legacy' => '$1已不可见地更改$3中历史版本的可见性',
+'logentry-delete-revision' => '$1{{GENDER:$2|已更改}}$3中{{PLURAL:$5|$5个历史版本|$5个历史版本}}的可见性:$4',
+'logentry-delete-event-legacy' => '$1{{GENDER:$2|已更改}}$3中日志的可见性',
+'logentry-delete-revision-legacy' => '$1{{GENDER:$2|已更改}}$3中历史版本的可见性',
+'logentry-suppress-delete' => '$1{{GENDER:$2|已隐藏}}页面$3',
+'logentry-suppress-event' => '$1已不可见地{{GENDER:$2|更改}}$3中{{PLURAL:$5|$5项日志|$5项日志}}的可见性:$4',
+'logentry-suppress-revision' => '$1已不可见地{{GENDER:$2|更改}}$3中{{PLURAL:$5|$5个历史版本|$5个历史版本}}的可见性:$4',
+'logentry-suppress-event-legacy' => '$1已不可见地{{GENDER:$2|更改}}$3中日志的可见性',
+'logentry-suppress-revision-legacy' => '!$1已不可见地{{GENDER:$2|更改}}$3中历史版本的可见性',
 'revdelete-content-hid' => '隐藏内容',
 'revdelete-summary-hid' => '隐藏编辑摘要',
 'revdelete-uname-hid' => '隐藏用户名',
@@ -3934,13 +3934,13 @@ MediaWiki发表时预期有用,但对此'''无任何保证''',亦无隐含
 'logentry-move-move-noredirect' => '$1移动$3页面至$4,不留重定向',
 'logentry-move-move_redir' => '$1移动页面$3至$4覆盖重定向',
 'logentry-move-move_redir-noredirect' => '$1通过重定向移动$3页面至$4,不留重定向',
-'logentry-patrol-patrol' => '$1标记页面$3的版本$4为已巡查',
-'logentry-patrol-patrol-auto' => '$1自动标记页面$3的版本$4为已巡查',
-'logentry-newusers-newusers' => '已创建用户帐户 $1',
-'logentry-newusers-create' => '创建用户帐户 $1',
+'logentry-patrol-patrol' => '$1{{GENDER:$2|标记}}页面$3的版本$4为已巡查',
+'logentry-patrol-patrol-auto' => '$1自动{{GENDER:$2|标记}}页面$3的版本$4为已巡查',
+'logentry-newusers-newusers' => '已{{GENDER:$2|创建}}用户帐户$1',
+'logentry-newusers-create' => '{{GENDER:$2|创建}}用户帐户$1',
 'logentry-newusers-create2' => '创建用户帐户 $3 由 $1',
 'logentry-newusers-byemail' => '$1创建用户$3,并且密码已通过电子邮件发送',
-'logentry-newusers-autocreate' => '帐户$1已被自动地创建',
+'logentry-newusers-autocreate' => '用户帐户$1已被自动{{GENDER:$2|创建}}',
 'logentry-rights-rights' => '$1将$3的用户组从$4改为$5',
 'logentry-rights-rights-legacy' => '$1更改$3的用户组',
 'logentry-rights-autopromote' => '$1的用户组已自动从$4改为$5',
index 66cc1dc..5eb8c5c 100644 (file)
@@ -188,7 +188,6 @@ $wgIgnoredMessages = array(
        'fewestrevisions-summary',
        'upload-summary',
        'wantedtemplates-summary',
-       'activeusers-summary',
        'search-summary',
        'editpage-head-copy-warn',
        'editpage-tos-summary',
index 7c16df6..077b7fd 100644 (file)
@@ -1845,17 +1845,6 @@ $wgMessageStructure = array(
                'listusers-noresult',
                'listusers-blocked',
        ),
-       'activeusers' => array(
-               'activeusers',
-               'activeusers-summary',
-               'activeusers-intro',
-               'activeusers-count',
-               'activeusers-from',
-               'activeusers-hidebots',
-               'activeusers-hidesysops',
-               'activeusers-submit',
-               'activeusers-noresult',
-       ),
        'listgrouprights' => array(
                'listgrouprights',
                'listgrouprights-summary',
@@ -3953,7 +3942,6 @@ XHTML id names.",
        'deletedcontribs'     => 'Special:DeletedContributions',
        'linksearch'          => 'Special:LinkSearch',
        'listusers'           => 'Special:ListUsers',
-       'activeusers'         => 'Special:ActiveUsers',
        'newuserlog'          => 'Special:Log/newusers',
        'listgrouprights'     => 'Special:ListGroupRights',
        'emailuser'           => 'Email user',
index 9593fa8..4374b09 100644 (file)
@@ -198,6 +198,7 @@ return array(
        ),
        'jquery.getAttrs' => array(
                'scripts' => 'resources/jquery/jquery.getAttrs.js',
+               'targets' => array( 'desktop', 'mobile' ),
        ),
        'jquery.hidpi' => array(
                'scripts' => 'resources/jquery/jquery.hidpi.js',
index a58702b..3a2c62a 100644 (file)
@@ -4,22 +4,27 @@ class TimeAdjustTest extends MediaWikiLangTestCase {
        protected function setUp() {
                parent::setUp();
 
-               $this->setMwGlobals( array(
-                       'wgLocalTZoffset' => null,
-                       'wgContLang' => Language::factory( 'en' ),
-                       'wgLanguageCode' => 'en',
-               ) );
-
                $this->iniSet( 'precision', 15 );
        }
 
-       # Test offset usage for a given language::userAdjust
-       function testUserAdjust() {
-               global $wgLocalTZoffset, $wgContLang;
+       /**
+        * Test offset usage for a given language::userAdjust
+        * @dataProvider dataUserAdjust
+        */
+       public function testUserAdjust( $date, $localTZoffset, $expected ) {
+               global $wgContLang;
+
+               $this->setMwGlobals( 'wgLocalTZoffset', $localTZoffset );
 
-               #  Collection of parameters for Language_t_Offset.
-               # Format: date to be formatted, localTZoffset value, expected date
-               $userAdjust_tests = array(
+               $this->assertEquals(
+                       strval( $expected ),
+                       strval( $wgContLang->userAdjust( $date, '' ) ),
+                       "User adjust {$date} by {$localTZoffset} minutes should give {$expected}"
+               );
+       }
+
+       public static function dataUserAdjust() {
+               return array(
                        array( 20061231235959, 0, 20061231235959 ),
                        array( 20061231235959, 5, 20070101000459 ),
                        array( 20061231235959, 15, 20070101001459 ),
@@ -31,15 +36,5 @@ class TimeAdjustTest extends MediaWikiLangTestCase {
                        array( 20061231235959, -30, 20061231232959 ),
                        array( 20061231235959, -60, 20061231225959 ),
                );
-
-               foreach ( $userAdjust_tests as $data ) {
-                       $wgLocalTZoffset = $data[1];
-
-                       $this->assertEquals(
-                               strval( $data[2] ),
-                               strval( $wgContLang->userAdjust( $data[0], '' ) ),
-                               "User adjust {$data[0]} by {$data[1]} minutes should give {$data[2]}"
-                       );
-               }
        }
 }
index eda06d4..3b3e4a6 100644 (file)
@@ -8,25 +8,44 @@ class MessageCacheTest extends MediaWikiLangTestCase {
 
        protected function setUp() {
                parent::setUp();
+               $this->configureLanguages();
                MessageCache::singleton()->enable();
        }
 
-       function addDBData() {
-               // be sure english messages under $key, not $key/en
+       /**
+        * Helper function -- setup site language for testing
+        */
+       protected function configureLanguages() {
+               // for the test, we need the content language to be anything but English,
+               // let's choose e.g. German (de)
+               $langCode = 'de';
+               $langObj = Language::factory( $langCode );
+
                $this->setMwGlobals( array(
-                       'wgLanguageCode' => 'en',
-                       'wgContLang' => Language::factory( 'en' ),
+                       'wgLanguageCode' => $langCode,
+                       'wgLang' => $langObj,
+                       'wgContLang' => $langObj,
                ) );
+       }
+
+       function addDBData() {
+               $this->configureLanguages();
 
-               // Set up messages and fallbacks ab -> ru -> en
+               // Set up messages and fallbacks ab -> ru -> de -> en
                $this->makePage( 'FallbackLanguageTest-Full', 'ab' );
                $this->makePage( 'FallbackLanguageTest-Full', 'ru' );
+               $this->makePage( 'FallbackLanguageTest-Full', 'de' );
                $this->makePage( 'FallbackLanguageTest-Full', 'en' );
 
                // Fallbacks where ab does not exist
                $this->makePage( 'FallbackLanguageTest-Partial', 'ru' );
+               $this->makePage( 'FallbackLanguageTest-Partial', 'de' );
                $this->makePage( 'FallbackLanguageTest-Partial', 'en' );
 
+               // Fallback to the content language
+               $this->makePage( 'FallbackLanguageTest-ContLang', 'de' );
+               $this->makePage( 'FallbackLanguageTest-ContLang', 'en' );
+
                // Fallback to english
                $this->makePage( 'FallbackLanguageTest-English', 'en' );
 
@@ -67,6 +86,7 @@ class MessageCacheTest extends MediaWikiLangTestCase {
                return array(
                        array( 'FallbackLanguageTest-Full', 'ab', 'ab' ),
                        array( 'FallbackLanguageTest-Partial', 'ab', 'ru' ),
+                       array( 'FallbackLanguageTest-ContLang', 'ab', 'de' ),
                        array( 'FallbackLanguageTest-English', 'ab', 'en' ),
                        array( 'FallbackLanguageTest-None', 'ab', false ),
                );
index cacaaa3..4eda827 100644 (file)
@@ -817,32 +817,66 @@ class FileBackendTest extends MediaWikiTestCase {
                        "$base/unittest-cont1/e/fileB.a",
                        "$base/unittest-cont1/e/fileC.a"
                );
-               $ops = array();
+               $createOps = array();
                $purgeOps = array();
                foreach ( $files as $path ) {
                        $status = $this->prepare( array( 'dir' => dirname( $path ) ) );
                        $this->assertGoodStatus( $status,
                                "Preparing $path succeeded without warnings ($backendName)." );
-                       $ops[] = array( 'op' => 'create', 'dst' => $path, 'content' => mt_rand(0, 50000) );
+                       $createOps[] = array( 'op' => 'create', 'dst' => $path, 'content' => mt_rand(0, 50000) );
+                       $copyOps[] = array( 'op' => 'copy', 'src' => $path, 'dst' => "$path-2" );
+                       $moveOps[] = array( 'op' => 'move', 'src' => "$path-2", 'dst' => "$path-3" );
                        $purgeOps[] = array( 'op' => 'delete', 'src' => $path );
+                       $purgeOps[] = array( 'op' => 'delete', 'src' => "$path-3" );
                }
                $purgeOps[] = array( 'op' => 'null' );
-               $status = $this->backend->doQuickOperations( $ops );
-               $this->assertGoodStatus( $status,
-                       "Creation of source files succeeded ($backendName)." );
 
+               $this->assertGoodStatus(
+                       $this->backend->doQuickOperations( $createOps ),
+                       "Creation of source files succeeded ($backendName)." );
                foreach ( $files as $file ) {
                        $this->assertTrue( $this->backend->fileExists( array( 'src' => $file ) ),
                                "File $file exists." );
                }
 
-               $status = $this->backend->doQuickOperations( $purgeOps );
-               $this->assertGoodStatus( $status,
-                       "Quick deletion of source files succeeded ($backendName)." );
+               $this->assertGoodStatus(
+                       $this->backend->doQuickOperations( $copyOps ),
+                       "Quick copy of source files succeeded ($backendName)." );
+               foreach ( $files as $file ) {
+                       $this->assertTrue( $this->backend->fileExists( array( 'src' => "$file-2" ) ),
+                               "File $file-2 exists." );
+               }
+
+               $this->assertGoodStatus(
+                       $this->backend->doQuickOperations( $moveOps ),
+                       "Quick move of source files succeeded ($backendName)." );
+               foreach ( $files as $file ) {
+                       $this->assertTrue( $this->backend->fileExists( array( 'src' => "$file-3" ) ),
+                               "File $file-3 move in." );
+                       $this->assertFalse( $this->backend->fileExists( array( 'src' => "$file-2" ) ),
+                               "File $file-2 moved away." );
+               }
 
+               $this->assertGoodStatus(
+                       $this->backend->quickCopy( array( 'src' => $files[0], 'dst' => $files[0] ) ),
+                       "Copy of file {$files[0]} over itself succeeded ($backendName)." );
+               $this->assertTrue( $this->backend->fileExists( array( 'src' => $files[0] ) ),
+                       "File {$files[0]} still exists." );
+
+               $this->assertGoodStatus(
+                       $this->backend->quickMove( array( 'src' => $files[0], 'dst' => $files[0] ) ),
+                       "Move of file {$files[0]} over itself succeeded ($backendName)." );
+               $this->assertTrue( $this->backend->fileExists( array( 'src' => $files[0] ) ),
+                       "File {$files[0]} still exists." );
+
+               $this->assertGoodStatus(
+                       $this->backend->doQuickOperations( $purgeOps ),
+                       "Quick deletion of source files succeeded ($backendName)." );
                foreach ( $files as $file ) {
                        $this->assertFalse( $this->backend->fileExists( array( 'src' => $file ) ),
                                "File $file purged." );
+                       $this->assertFalse( $this->backend->fileExists( array( 'src' => "$file-3" ) ),
+                               "File $file-3 purged." );
                }
        }
 
index 3fbd51e..7849349 100644 (file)
@@ -7,24 +7,71 @@
 
 /** Tests for MediaWiki languages/classes/LanguageHe.php */
 class LanguageHeTest extends LanguageClassesTestCase {
-       /** @dataProvider providePlural */
-       function testPlural( $result, $value ) {
+       /*
+       The most common usage for the plural forms is two forms,
+       for singular and plural. In this case, the second form
+       is technically dual, but in practice it's used as plural.
+       In some cases, usually with expressions of time, three forms
+       are needed - singular, dual and plural.
+       CLDR also specifies a fourth form for multiples of 10,
+       which is very rare. It also has a mistake, because
+       the number 10 itself is supposed to be just plural,
+       so currently it's overridden in MediaWiki.
+       */
+
+       /** @dataProvider provideTwoPluralForms */
+       function testTwoPluralForms( $result, $value ) {
+               $forms = array( 'one', 'other' );
+               $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+       }
+
+       /** @dataProvider provideThreePluralForms */
+       function testThreePluralForms( $result, $value ) {
                $forms = array( 'one', 'two', 'other' );
                $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
        }
 
-       /** @dataProvider providePlural */
+       /** @dataProvider provideFourPluralForms */
+       function testFourPluralForms( $result, $value ) {
+               $forms = array( 'one', 'two', 'many', 'other' );
+               $this->assertEquals( $result, $this->getLang()->convertPlural( $value, $forms ) );
+       }
+
+       /** @dataProvider provideFourPluralForms */
        function testGetPluralRuleType( $result, $value ) {
                $this->assertEquals( $result, $this->getLang()->getPluralRuleType( $value ) );
        }
 
-       public static function providePlural() {
+       public static function provideTwoPluralForms() {
+               return array (
+                       array( 'other', 0 ), // Zero - plural
+                       array( 'one', 1 ), // Singular
+                       array( 'other', 2 ), // No third form provided, use it as plural
+                       array( 'other', 3 ), // Plural - other
+                       array( 'other', 10 ), // No fourth form provided, use it as plural
+                       array( 'other', 20 ), // No fourth form provided, use it as plural
+               );
+       }
+
+       public static function provideThreePluralForms() {
+               return array (
+                       array( 'other', 0 ), // Zero - plural
+                       array( 'one', 1 ), // Singular
+                       array( 'two', 2 ), // Dual
+                       array( 'other', 3 ), // Plural - other
+                       array( 'other', 10 ), // No fourth form provided, use it as plural
+                       array( 'other', 20 ), // No fourth form provided, use it as plural
+               );
+       }
+
+       public static function provideFourPluralForms() {
                return array (
-                       array( 'other', 0 ),
-                       array( 'one', 1 ),
-                       array( 'two', 2 ),
-                       array( 'other', 3 ),
-                       array( 'other', 10 ),
+                       array( 'other', 0 ), // Zero - plural
+                       array( 'one', 1 ), // Singular
+                       array( 'two', 2 ), // Dual
+                       array( 'other', 3 ), // Plural - other
+                       array( 'other', 10 ), // 10 is supposed to be plural (other), not "many"
+                       array( 'many', 20 ), // Fourth form provided - rare, but supported by CLDR
                );
        }
 
index 62dd81a..4b8ee0d 100644 (file)
@@ -38,6 +38,8 @@
                tooltip: 'Enable debug mode in ResourceLoader'
        } );
 
+       QUnit.config.requireExpects = true;
+
        /**
         * Load TestSwarm agent
         */
@@ -54,7 +56,7 @@
        /**
         * CompletenessTest
         */
-        // Adds toggle checkbox to header
+       // Adds toggle checkbox to header
        QUnit.config.urlConfig.push( {
                id: 'completenesstest',
                label: 'Run CompletenessTest',
index 307b044..1a380a5 100644 (file)
                }
        );
 
-       QUnit.test( 'Test detection routine', function ( assert ) {
+       QUnit.test( 'Test detection routine', 1, function ( assert ) {
                var $table;
                $table = $(
                        '<table class="sortable">' +
        } );
 
        /** FIXME: the diff output is not very readeable. */
-       QUnit.test( 'bug 32047 - caption must be before thead', function ( assert ) {
+       QUnit.test( 'bug 32047 - caption must be before thead', 1, function ( assert ) {
                var $table;
                $table = $(
                        '<table class="sortable">' +
                );
        } );
 
-       QUnit.test( 'data-sort-value attribute, when available, should override sorting position', function ( assert ) {
+       QUnit.test( 'data-sort-value attribute, when available, should override sorting position', 3, function ( assert ) {
                var $table, data;
 
                // Example 1: All cells except one cell without data-sort-value,
                }
        );
 
-       QUnit.test( 'Sorting images using alt text', function ( assert ) {
+       QUnit.test( 'Sorting images using alt text', 1, function ( assert ) {
                var $table = $(
                        '<table class="sortable">' +
                                '<tr><th>THEAD</th></tr>' +
                );
        } );
 
-       QUnit.test( 'Sorting images using alt text (complex)', function ( assert ) {
+       QUnit.test( 'Sorting images using alt text (complex)', 1, function ( assert ) {
                var $table = $(
                        '<table class="sortable">' +
                                '<tr><th>THEAD</th></tr>' +
                );
        } );
 
-       QUnit.test( 'Sorting images using alt text (with format autodetection)', function ( assert ) {
+       QUnit.test( 'Sorting images using alt text (with format autodetection)', 1, function ( assert ) {
                var $table = $(
                        '<table class="sortable">' +
                                '<tr><th>THEAD</th></tr>' +
index 9389651..ee854ae 100644 (file)
@@ -3,7 +3,7 @@
 
        // TODO: verify checkboxes == [ 'nsassociated', 'nsinvert' ]
 
-       QUnit.test( '"all" namespace disable checkboxes', function ( assert ) {
+       QUnit.test( '"all" namespace disable checkboxes', 8, function ( assert ) {
                var selectHtml, $env, $options;
 
                // from Special:Recentchanges