Merge "Drop unnecessary CSS selectors for a.external[href^="gopher://"]"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sun, 15 Sep 2013 19:42:44 +0000 (19:42 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 15 Sep 2013 19:42:44 +0000 (19:42 +0000)
50 files changed:
RELEASE-NOTES-1.22
includes/GlobalFunctions.php
includes/Preferences.php
includes/Title.php
includes/WebStart.php
includes/installer/InstallDocFormatter.php
includes/parser/Parser.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/revisiondelete/RevisionDeleteAbstracts.php
includes/specials/SpecialBlock.php
includes/specials/SpecialImport.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialUnblock.php
includes/specials/SpecialUpload.php
languages/Language.php
languages/messages/MessagesAf.php
languages/messages/MessagesAr.php
languages/messages/MessagesEn.php
languages/messages/MessagesFa.php
languages/messages/MessagesFr.php
languages/messages/MessagesHu.php
languages/messages/MessagesIlo.php
languages/messages/MessagesLv.php
languages/messages/MessagesMg.php
languages/messages/MessagesOc.php
languages/messages/MessagesPa.php
languages/messages/MessagesPms.php
languages/messages/MessagesQqq.php
languages/messages/MessagesSah.php
languages/messages/MessagesSl.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesTyv.php
languages/messages/MessagesVep.php
languages/messages/MessagesVmf.php
languages/messages/MessagesZh_hans.php
maintenance/Maintenance.php
maintenance/doMaintenance.php
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/userDupes.inc
resources/Resources.php
resources/jquery/jquery.tablesorter.js
resources/mediawiki/mediawiki.util.js
tests/parser/parserTests.txt
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/installer/InstallDocFormatterTest.php
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js

index e503e30..295a95f 100644 (file)
@@ -291,6 +291,7 @@ production.
 * (bug 51742) Add data-sort-value for better sorting of hitcounts Special:Tags
 * (bug 26811) On DB error pages, server hostnames are now hidden when both
   $wgShowHostnames and $wgShowSQLErrors are false.
+* (bug 6200) line breaks in <blockquote> are handled like they are in <div>
 
 === API changes in 1.22 ===
 * (bug 25553) The JSON output formatter now leaves forward slashes unescaped
index bed2c44..f43393a 100644 (file)
@@ -2521,7 +2521,7 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
                wfDebug( "$caller: called wfMkdirParents($dir)\n" );
        }
 
-       if ( strval( $dir ) === '' || file_exists( $dir ) ) {
+       if ( strval( $dir ) === '' || ( file_exists( $dir ) && is_dir( $dir ) ) ) {
                return true;
        }
 
@@ -2537,6 +2537,11 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
        wfRestoreWarnings();
 
        if ( !$ok ) {
+               //directory may have been created on another request since we last checked
+               if ( is_dir( $dir ) ) {
+                       return true;
+               }
+
                // PHP doesn't report the path in its warning message, so add our own to aid in diagnosis.
                wfLogWarning( sprintf( "failed to mkdir \"%s\" mode 0%o", $dir, $mode ) );
        }
index bf3e037..c9caf4f 100644 (file)
@@ -390,6 +390,18 @@ class Preferences {
                        }
                }
 
+               // Stuff from Language::getExtraUserToggles()
+               // FIXME is this dead code? $extraUserToggles doesn't seem to be defined for any language
+               $toggles = $wgContLang->getExtraUserToggles();
+
+               foreach ( $toggles as $toggle ) {
+                       $defaultPreferences[$toggle] = array(
+                               'type' => 'toggle',
+                               'section' => 'personal/i18n',
+                               'label-message' => "tog-$toggle",
+                       );
+               }
+
                // show a preview of the old signature first
                $oldsigWikiText = $wgParser->preSaveTransform( "~~~", $context->getTitle(), $user, ParserOptions::newFromContext( $context ) );
                $oldsigHTML = $context->getOutput()->parseInline( $oldsigWikiText, true, true );
@@ -696,6 +708,18 @@ class Preferences {
         * @param $defaultPreferences Array
         */
        static function renderingPreferences( $user, IContextSource $context, &$defaultPreferences ) {
+               ## Diffs ####################################
+               $defaultPreferences['diffonly'] = array(
+                       'type' => 'toggle',
+                       'section' => 'rendering/diffs',
+                       'label-message' => 'tog-diffonly',
+               );
+               $defaultPreferences['norollbackdiff'] = array(
+                       'type' => 'toggle',
+                       'section' => 'rendering/diffs',
+                       'label-message' => 'tog-norollbackdiff',
+               );
+
                ## Page Rendering ##############################
                global $wgAllowUserCssPrefs;
                if ( $wgAllowUserCssPrefs ) {
@@ -1068,35 +1092,9 @@ class Preferences {
        }
 
        /**
-        * @param $user User
-        * @param $context IContextSource
-        * @param $defaultPreferences Array
+        * Dummy, kept for backwards-compatibility.
         */
        static function miscPreferences( $user, IContextSource $context, &$defaultPreferences ) {
-               global $wgContLang;
-
-               ## Misc #####################################
-               $defaultPreferences['diffonly'] = array(
-                       'type' => 'toggle',
-                       'section' => 'misc/diffs',
-                       'label-message' => 'tog-diffonly',
-               );
-               $defaultPreferences['norollbackdiff'] = array(
-                       'type' => 'toggle',
-                       'section' => 'misc/diffs',
-                       'label-message' => 'tog-norollbackdiff',
-               );
-
-               // Stuff from Language::getExtraUserToggles()
-               $toggles = $wgContLang->getExtraUserToggles();
-
-               foreach ( $toggles as $toggle ) {
-                       $defaultPreferences[$toggle] = array(
-                               'type' => 'toggle',
-                               'section' => 'personal/i18n',
-                               'label-message' => "tog-$toggle",
-                       );
-               }
        }
 
        /**
index 734e009..3ad76b9 100644 (file)
@@ -3694,7 +3694,7 @@ class Title {
                                $comment .= wfMessage( 'colon-separator' )->inContentLanguage()->text() . $reason;
                        }
                        // @todo FIXME: $params?
-                       $log->addEntry( 'move_prot', $nt, $comment, array( $this->getPrefixedText() ) );
+                       $log->addEntry( 'move_prot', $nt, $comment, array( $this->getPrefixedText() ), $wgUser );
                }
 
                # Update watchlists
index f840a5e..58c953a 100644 (file)
@@ -91,9 +91,6 @@ if ( $IP === false ) {
        }
 }
 
-# Get MWInit class
-require_once "$IP/includes/Init.php";
-
 # Start the autoloader, so that extensions can derive classes from core files
 require_once "$IP/includes/AutoLoader.php";
 
index a508e24..ce282cc 100644 (file)
@@ -33,8 +33,8 @@ class InstallDocFormatter {
        protected function execute() {
                $text = $this->text;
                // Use Unix line endings, escape some wikitext stuff
-               $text = str_replace( array( '<', '{{', '[[', "\r" ),
-                       array( '&lt;', '&#123;&#123;', '&#91;&#91;', '' ), $text );
+               $text = str_replace( array( '<', '{{', '[[', '__', "\r" ),
+                       array( '&lt;', '&#123;&#123;', '&#91;&#91;', '&#95;&#95;', '' ), $text );
                // join word-wrapped lines into one
                do {
                        $prev = $text;
index fd69bfc..3376734 100644 (file)
@@ -2362,6 +2362,7 @@ class Parser {
                $this->mDTopen = $inBlockElem = false;
                $prefixLength = 0;
                $paragraphStack = false;
+               $inBlockquote = false;
 
                foreach ( $textLines as $oLine ) {
                        # Fix up $linestart
@@ -2455,10 +2456,10 @@ class Parser {
                                wfProfileIn( __METHOD__ . "-paragraph" );
                                # No prefix (not in list)--go to paragraph mode
                                # XXX: use a stack for nestable elements like span, table and div
-                               $openmatch = preg_match( '/(?:<table|<blockquote|<h1|<h2|<h3|<h4|<h5|<h6|<pre|<tr|<p|<ul|<ol|<dl|<li|<\\/tr|<\\/td|<\\/th)/iS', $t );
+                               $openmatch = preg_match( '/(?:<table|<h1|<h2|<h3|<h4|<h5|<h6|<pre|<tr|<p|<ul|<ol|<dl|<li|<\\/tr|<\\/td|<\\/th)/iS', $t );
                                $closematch = preg_match(
-                                       '/(?:<\\/table|<\\/blockquote|<\\/h1|<\\/h2|<\\/h3|<\\/h4|<\\/h5|<\\/h6|' .
-                                       '<td|<th|<\\/?div|<hr|<\\/pre|<\\/p|' . $this->mUniqPrefix . '-pre|<\\/li|<\\/ul|<\\/ol|<\\/dl|<\\/?center)/iS', $t );
+                                       '/(?:<\\/table|<\\/h1|<\\/h2|<\\/h3|<\\/h4|<\\/h5|<\\/h6|' .
+                                       '<td|<th|<\\/?blockquote|<\\/?div|<hr|<\\/pre|<\\/p|' . $this->mUniqPrefix . '-pre|<\\/li|<\\/ul|<\\/ol|<\\/dl|<\\/?center)/iS', $t );
                                if ( $openmatch or $closematch ) {
                                        $paragraphStack = false;
                                        # TODO bug 5718: paragraph closed
@@ -2466,9 +2467,14 @@ class Parser {
                                        if ( $preOpenMatch and !$preCloseMatch ) {
                                                $this->mInPre = true;
                                        }
+                                       $bqOffset = 0;
+                                       while ( preg_match( '/<(\\/?)blockquote[\s>]/i', $t, $bqMatch, PREG_OFFSET_CAPTURE, $bqOffset ) ) {
+                                               $inBlockquote = !$bqMatch[1][0]; // is this a close tag?
+                                               $bqOffset = $bqMatch[0][1] + strlen( $bqMatch[0][0] );
+                                       }
                                        $inBlockElem = !$closematch;
                                } elseif ( !$inBlockElem && !$this->mInPre ) {
-                                       if ( ' ' == substr( $t, 0, 1 ) and ( $this->mLastSection === 'pre' || trim( $t ) != '' ) ) {
+                                       if ( ' ' == substr( $t, 0, 1 ) and ( $this->mLastSection === 'pre' || trim( $t ) != '' ) and !$inBlockquote ) {
                                                # pre
                                                if ( $this->mLastSection !== 'pre' ) {
                                                        $paragraphStack = false;
index af533c6..10c25f0 100644 (file)
@@ -259,8 +259,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets all scripts for a given context concatenated together.
         *
-        * @param $context ResourceLoaderContext: Context in which to generate script
-        * @return String: JavaScript code for $context
+        * @param ResourceLoaderContext $context Context in which to generate script
+        * @return string: JavaScript code for $context
         */
        public function getScript( ResourceLoaderContext $context ) {
                $files = $this->getScriptFiles( $context );
@@ -268,7 +268,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return array
         */
        public function getScriptURLsForDebug( ResourceLoaderContext $context ) {
@@ -289,7 +289,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets loader script.
         *
-        * @return String: JavaScript code to be added to startup module
+        * @return string: JavaScript code to be added to startup module
         */
        public function getLoaderScript() {
                if ( count( $this->loaderScripts ) == 0 ) {
@@ -301,8 +301,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets all styles for a given context concatenated together.
         *
-        * @param $context ResourceLoaderContext: Context in which to generate styles
-        * @return String: CSS code for $context
+        * @param ResourceLoaderContext $context Context in which to generate styles
+        * @return string: CSS code for $context
         */
        public function getStyles( ResourceLoaderContext $context ) {
                $styles = $this->readStyleFiles(
@@ -330,7 +330,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return array
         */
        public function getStyleURLsForDebug( ResourceLoaderContext $context ) {
@@ -347,7 +347,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets list of message keys used by this module.
         *
-        * @return Array: List of message keys
+        * @return array: List of message keys
         */
        public function getMessages() {
                return $this->messages;
@@ -356,7 +356,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets the name of the group this module should be loaded in.
         *
-        * @return String: Group name
+        * @return string: Group name
         */
        public function getGroup() {
                return $this->group;
@@ -372,7 +372,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets list of names of modules this module depends on.
         *
-        * @return Array: List of module names
+        * @return array: List of module names
         */
        public function getDependencies() {
                return $this->dependencies;
@@ -394,9 +394,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * calculations on files relevant to the given language, skin and debug
         * mode.
         *
-        * @param $context ResourceLoaderContext: Context in which to calculate
+        * @param ResourceLoaderContext $context Context in which to calculate
         *     the modified time
-        * @return Integer: UNIX timestamp
+        * @return int: UNIX timestamp
         * @see ResourceLoaderModule::getFileDependencies
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
@@ -455,7 +455,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /* Protected Methods */
 
        /**
-        * @param $path string
+        * @param string $path
         * @return string
         */
        protected function getLocalPath( $path ) {
@@ -463,7 +463,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        }
 
        /**
-        * @param $path string
+        * @param string $path
         * @return string
         */
        protected function getRemotePath( $path ) {
@@ -476,8 +476,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * @param array $list List of file paths in any combination of index/path
         *     or path/options pairs
         * @param string $option option name
-        * @param $default Mixed: default value if the option isn't set
-        * @return Array: List of file paths, collated by $option
+        * @param mixed $default default value if the option isn't set
+        * @return array: List of file paths, collated by $option
         */
        protected static function collateFilePathListByOption( array $list, $option, $default ) {
                $collatedFiles = array();
@@ -506,7 +506,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * @param array $list List of lists to select from
         * @param string $key Key to look for in $map
         * @param string $fallback Key to look for in $list if $key doesn't exist
-        * @return Array: List of elements from $map which matched $key or $fallback,
+        * @return array: List of elements from $map which matched $key or $fallback,
         *     or an empty list in case of no match
         */
        protected static function tryForKey( array $list, $key, $fallback = null ) {
@@ -524,8 +524,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets a list of file paths for all scripts in this module, in order of propper execution.
         *
-        * @param $context ResourceLoaderContext: Context
-        * @return Array: List of file paths
+        * @param ResourceLoaderContext $context
+        * @return array: List of file paths
         */
        protected function getScriptFiles( ResourceLoaderContext $context ) {
                $files = array_merge(
@@ -543,8 +543,8 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
        /**
         * Gets a list of file paths for all styles in this module, in order of propper inclusion.
         *
-        * @param $context ResourceLoaderContext: Context
-        * @return Array: List of file paths
+        * @param ResourceLoaderContext $context
+        * @return array: List of file paths
         */
        protected function getStyleFiles( ResourceLoaderContext $context ) {
                return array_merge_recursive(
@@ -560,7 +560,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         *
         * @param array $scripts List of file paths to scripts to read, remap and concetenate
         * @throws MWException
-        * @return String: Concatenated and remapped JavaScript data from $scripts
+        * @return string: Concatenated and remapped JavaScript data from $scripts
         */
        protected function readScriptFiles( array $scripts ) {
                global $wgResourceLoaderValidateStaticJS;
@@ -591,9 +591,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * @param array $styles List of media type/list of file paths pairs, to read, remap and
         * concetenate
         *
-        * @param $flip bool
+        * @param bool $flip
         *
-        * @return Array: List of concatenated and remapped CSS data from $styles,
+        * @return array: List of concatenated and remapped CSS data from $styles,
         *     keyed by media type
         */
        protected function readStyleFiles( array $styles, $flip ) {
@@ -620,9 +620,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * This method can be used as a callback for array_map()
         *
         * @param string $path File path of style file to read
-        * @param $flip bool
+        * @param bool $flip
         *
-        * @return String: CSS data in script file
+        * @return string: CSS data in script file
         * @throws MWException if the file doesn't exist
         */
        protected function readStyleFile( $path, $flip ) {
@@ -655,7 +655,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
 
        /**
         * Get whether CSS for this module should be flipped
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return bool
         */
        public function getFlip( $context ) {
index 9847ac0..298f1fe 100644 (file)
@@ -71,7 +71,7 @@ abstract class ResourceLoaderModule {
         * Get this module's name. This is set when the module is registered
         * with ResourceLoader::register()
         *
-        * @return Mixed: Name (string) or null if no name was set
+        * @return mixed: Name (string) or null if no name was set
         */
        public function getName() {
                return $this->name;
@@ -91,7 +91,7 @@ abstract class ResourceLoaderModule {
         * Get this module's origin. This is set when the module is registered
         * with ResourceLoader::register()
         *
-        * @return Int ResourceLoaderModule class constant, the subclass default
+        * @return int: ResourceLoaderModule class constant, the subclass default
         *     if not set manually
         */
        public function getOrigin() {
@@ -109,7 +109,7 @@ abstract class ResourceLoaderModule {
        }
 
        /**
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @return bool
         */
        public function getFlip( $context ) {
@@ -122,8 +122,8 @@ abstract class ResourceLoaderModule {
         * Get all JS for this module for a given language and skin.
         * Includes all relevant JS except loader scripts.
         *
-        * @param $context ResourceLoaderContext: Context object
-        * @return String: JavaScript code
+        * @param ResourceLoaderContext $context
+        * @return string: JavaScript code
         */
        public function getScript( ResourceLoaderContext $context ) {
                // Stub, override expected
@@ -141,8 +141,8 @@ abstract class ResourceLoaderModule {
         * #2 is important to prevent an infinite loop, therefore this function
         * MUST return either an only= URL or a non-load.php URL.
         *
-        * @param $context ResourceLoaderContext: Context object
-        * @return Array of URLs
+        * @param ResourceLoaderContext $context
+        * @return array: Array of URLs
         */
        public function getScriptURLsForDebug( ResourceLoaderContext $context ) {
                $url = ResourceLoader::makeLoaderURL(
@@ -172,8 +172,8 @@ abstract class ResourceLoaderModule {
        /**
         * Get all CSS for this module for a given skin.
         *
-        * @param $context ResourceLoaderContext: Context object
-        * @return Array: List of CSS strings or array of CSS strings keyed by media type.
+        * @param ResourceLoaderContext $context
+        * @return array: List of CSS strings or array of CSS strings keyed by media type.
         *  like array( 'screen' => '.foo { width: 0 }' );
         *  or array( 'screen' => array( '.foo { width: 0 }' ) );
         */
@@ -188,8 +188,8 @@ abstract class ResourceLoaderModule {
         * the module, but file-based modules will want to override this to
         * load the files directly. See also getScriptURLsForDebug()
         *
-        * @param $context ResourceLoaderContext: Context object
-        * @return Array: array( mediaType => array( URL1, URL2, ... ), ... )
+        * @param ResourceLoaderContext $context
+        * @return array: array( mediaType => array( URL1, URL2, ... ), ... )
         */
        public function getStyleURLsForDebug( ResourceLoaderContext $context ) {
                $url = ResourceLoader::makeLoaderURL(
@@ -211,7 +211,7 @@ abstract class ResourceLoaderModule {
         *
         * To get a JSON blob with messages, use MessageBlobStore::get()
         *
-        * @return Array: List of message keys. Keys may occur more than once
+        * @return array: List of message keys. Keys may occur more than once
         */
        public function getMessages() {
                // Stub, override expected
@@ -221,7 +221,7 @@ abstract class ResourceLoaderModule {
        /**
         * Get the group this module is in.
         *
-        * @return String: Group name
+        * @return string: Group name
         */
        public function getGroup() {
                // Stub, override expected
@@ -231,7 +231,7 @@ abstract class ResourceLoaderModule {
        /**
         * Get the origin of this module. Should only be overridden for foreign modules.
         *
-        * @return String: Origin name, 'local' for local modules
+        * @return string: Origin name, 'local' for local modules
         */
        public function getSource() {
                // Stub, override expected
@@ -263,7 +263,7 @@ abstract class ResourceLoaderModule {
        /**
         * Get the loader JS for this module, if set.
         *
-        * @return Mixed: JavaScript loader code as a string or boolean false if no custom loader set
+        * @return mixed: JavaScript loader code as a string or boolean false if no custom loader set
         */
        public function getLoaderScript() {
                // Stub, override expected
@@ -278,7 +278,7 @@ abstract class ResourceLoaderModule {
         *
         * To add dependencies dynamically on the client side, use a custom
         * loader script, see getLoaderScript()
-        * @return Array: List of module names as strings
+        * @return array: List of module names as strings
         */
        public function getDependencies() {
                // Stub, override expected
@@ -288,7 +288,7 @@ abstract class ResourceLoaderModule {
        /**
         * Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile']
         *
-        * @return array of strings
+        * @return array: Array of strings
         */
        public function getTargets() {
                return $this->targets;
@@ -299,7 +299,7 @@ abstract class ResourceLoaderModule {
         * Currently these are only image files referenced by the module's CSS.
         *
         * @param string $skin Skin name
-        * @return Array: List of files
+        * @return array: List of files
         */
        public function getFileDependencies( $skin ) {
                // Try in-object cache first
@@ -335,7 +335,7 @@ abstract class ResourceLoaderModule {
         * Get the last modification timestamp of the message blob for this
         * module in a given language.
         * @param string $lang Language code
-        * @return Integer: UNIX timestamp, or 0 if the module doesn't have messages
+        * @return int: UNIX timestamp, or 0 if the module doesn't have messages
         */
        public function getMsgBlobMtime( $lang ) {
                if ( !isset( $this->msgBlobMtime[$lang] ) ) {
@@ -382,8 +382,8 @@ abstract class ResourceLoaderModule {
         * If you want this to happen, you'll need to call getMsgBlobMtime()
         * yourself and take its result into consideration.
         *
-        * @param $context ResourceLoaderContext: Context object
-        * @return Integer: UNIX timestamp
+        * @param ResourceLoaderContext $context
+        * @return int: UNIX timestamp
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
                // 0 would mean now
@@ -396,8 +396,8 @@ abstract class ResourceLoaderModule {
         * definitely going to be empty, it should override this method to
         * return true in that case. Callers may optimize the request for this
         * module away if this function returns true.
-        * @param $context ResourceLoaderContext: Context object
-        * @return Boolean
+        * @param ResourceLoaderContext $context
+        * @return bool
         */
        public function isKnownEmpty( ResourceLoaderContext $context ) {
                return false;
@@ -413,7 +413,7 @@ abstract class ResourceLoaderModule {
         *
         * @param string $fileName
         * @param string $contents
-        * @return string JS with the original, or a replacement error
+        * @return string: JS with the original, or a replacement error
         */
        protected function validateScriptFile( $fileName, $contents ) {
                global $wgResourceLoaderValidateJS;
index 9ace35a..d822d09 100644 (file)
@@ -203,7 +203,7 @@ abstract class RevDel_List extends RevisionListBase {
                // Actually add the deletion log entry
                $log = new LogPage( $logType );
                $logid = $log->addEntry( $this->getLogAction(), $params['title'],
-                       $params['comment'], $logParams );
+                       $params['comment'], $logParams, $this->getUser() );
                // Allow for easy searching of deletion log items for revision/log items
                $log->addRelations( $field, $params['ids'], $logid );
                $log->addRelations( 'target_author_id', $params['authorIds'], $logid );
index 6ba009a..3b73a37 100644 (file)
@@ -772,7 +772,8 @@ class SpecialBlock extends FormSpecialPage {
                        $logaction,
                        Title::makeTitle( NS_USER, $target ),
                        $data['Reason'][0],
-                       $logParams
+                       $logParams,
+                       $performer
                );
                # Relate log ID to block IDs (bug 25763)
                $blockIds = array_merge( array( $status['id'] ), $status['autoIds'] );
index 0d54bb3..d7d860d 100644 (file)
@@ -478,7 +478,7 @@ class ImportReporter extends ContextSource {
                                if ( $this->reason ) {
                                        $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $this->reason;
                                }
-                               $log->addEntry( 'upload', $title, $detail );
+                               $log->addEntry( 'upload', $title, $detail, array(), $this->getUser() );
                        } else {
                                $interwiki = '[[:' . $this->mInterwiki . ':' .
                                        $origTitle->getPrefixedText() . ']]';
@@ -487,7 +487,7 @@ class ImportReporter extends ContextSource {
                                if ( $this->reason ) {
                                        $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text() . $this->reason;
                                }
-                               $log->addEntry( 'interwiki', $title, $detail );
+                               $log->addEntry( 'interwiki', $title, $detail, array(), $this->getUser() );
                        }
 
                        $comment = $detail; // quick
index 2a86fca..fb5ea65 100644 (file)
@@ -417,7 +417,7 @@ class SpecialMergeHistory extends SpecialPage {
                $log = new LogPage( 'merge' );
                $log->addEntry(
                        'merge', $targetTitle, $this->mComment,
-                       array( $destTitle->getPrefixedText(), $timestampLimit )
+                       array( $destTitle->getPrefixedText(), $timestampLimit ), $this->getUser()
                );
 
                $this->getOutput()->addWikiMsg( 'mergehistory-success',
index c4c5c99..28d07ff 100644 (file)
@@ -210,7 +210,8 @@ class SpecialPrefixindex extends SpecialAllpages {
                                        $t = Title::makeTitle( $s->page_namespace, $s->page_title );
                                        if ( $t ) {
                                                $displayed = $t->getText();
-                                               if ( $this->stripPrefix ) {
+                                               // Try not to generate unclickable links
+                                               if ( $this->stripPrefix && $prefixLength !== strlen( $displayed ) ) {
                                                        $displayed = substr( $displayed, $prefixLength );
                                                }
                                                $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
index 4da5155..ca93b6d 100644 (file)
@@ -211,7 +211,7 @@ class SpecialUnblock extends SpecialPage {
 
                # Make log entry
                $log = new LogPage( 'block' );
-               $log->addEntry( 'unblock', $page, $data['Reason'] );
+               $log->addEntry( 'unblock', $page, $data['Reason'], array(), $performer );
 
                return true;
        }
index 263ec3a..985de80 100644 (file)
@@ -93,7 +93,6 @@ class SpecialUpload extends SpecialPage {
                if ( !$this->mDesiredDestName && $request->getFileName( 'wpUploadFile' ) !== null ) {
                        $this->mDesiredDestName = $request->getFileName( 'wpUploadFile' );
                }
-               $this->mComment = $request->getText( 'wpUploadDescription' );
                $this->mLicense = $request->getText( 'wpLicense' );
 
                $this->mDestWarningAck = $request->getText( 'wpDestFileWarningAck' );
@@ -104,6 +103,14 @@ class SpecialUpload extends SpecialPage {
                $this->mCopyrightSource = $request->getText( 'wpUploadSource' );
 
                $this->mForReUpload = $request->getBool( 'wpForReUpload' ); // updating a file
+
+               $commentDefault = '';
+               $commentMsg = wfMessage( 'upload-default-description' )->inContentLanguage();
+               if ( !$this->mForReUpload && !$commentMsg->isDisabled() ) {
+                       $commentDefault = $commentMsg->plain();
+               }
+               $this->mComment = $request->getText( 'wpUploadDescription', $commentDefault );
+
                $this->mCancelUpload = $request->getCheck( 'wpCancelUpload' )
                        || $request->getCheck( 'wpReUpload' ); // b/w compat
 
index 86639a3..356726f 100644 (file)
@@ -30,10 +30,6 @@ if ( !defined( 'MEDIAWIKI' ) ) {
        exit( 1 );
 }
 
-# Read language names
-global $wgLanguageNames;
-require_once __DIR__ . '/Names.php';
-
 if ( function_exists( 'mb_strtoupper' ) ) {
        mb_internal_encoding( 'UTF-8' );
 }
@@ -232,7 +228,7 @@ class Language {
                // Check if there is a language class for the code
                $class = self::classFromCode( $code );
                self::preloadLanguageClass( $class );
-               if ( MWInit::classExists( $class ) ) {
+               if ( class_exists( $class ) ) {
                        $lang = new $class;
                        return $lang;
                }
@@ -246,7 +242,7 @@ class Language {
 
                        $class = self::classFromCode( $fallbackCode );
                        self::preloadLanguageClass( $class );
-                       if ( MWInit::classExists( $class ) ) {
+                       if ( class_exists( $class ) ) {
                                $lang = Language::newFromCode( $fallbackCode );
                                $lang->setCode( $code );
                                return $lang;
@@ -396,7 +392,8 @@ class Language {
                }
 
                if ( $coreLanguageNames === null ) {
-                       include MWInit::compiledPath( 'languages/Names.php' );
+                       global $IP;
+                       include "$IP/languages/Names.php";
                }
 
                if ( isset( $coreLanguageNames[$tag] )
@@ -878,7 +875,8 @@ class Language {
                static $coreLanguageNames;
 
                if ( $coreLanguageNames === null ) {
-                       include MWInit::compiledPath( 'languages/Names.php' );
+                       global $IP;
+                       include "$IP/languages/Names.php";
                }
 
                $names = array();
index fed3ead..0ddbc5f 100644 (file)
@@ -352,7 +352,7 @@ $messages = array(
 'newwindow' => '(verskyn in nuwe venster)',
 'cancel' => 'Kanselleer',
 'moredotdotdot' => 'Meer…',
-'morenotlisted' => 'Meer nie gelys nie...',
+'morenotlisted' => 'Die lys is nie volledig nie.',
 'mypage' => 'Gebruikersblad',
 'mytalk' => 'Bespreking',
 'anontalk' => 'Besprekingsblad vir hierdie IP',
@@ -538,6 +538,10 @@ Dit kan ook dui op 'n fout in die sagteware van {{SITENAME}}.",
 # General errors
 'error' => 'Fout',
 'databaseerror' => 'Databasisfout',
+'databaseerror-textcl' => "'n Databasis-versoek het gefaal.",
+'databaseerror-query' => 'SQL-versoek:',
+'databaseerror-function' => 'Funksie: $1',
+'databaseerror-error' => 'Fout: $1',
 'laggedslavemode' => 'Waarskuwing: Onlangse wysigings dalk nie in bladsy vervat nie.',
 'readonly' => 'Databasis gesluit',
 'enterlockreason' => 'Rede vir die sluiting,
@@ -820,6 +824,9 @@ Tydelike wagwoord: $2',
 'changeemail-submit' => 'Wysig E-posadres',
 'changeemail-cancel' => 'Kanselleer',
 
+# Special:ResetTokens
+'resettokens-token-label' => '$1 (huidige waarde: $2)',
+
 # Edit page toolbar
 'bold_sample' => 'Vetgedrukte teks',
 'bold_tip' => 'Vetdruk',
@@ -1403,9 +1410,9 @@ Die tildes word in u handtekening omgeskakel en die datum en tyd word insluit.',
 'badsiglength' => 'U handtekening is te lank.
 Dit mag nie meer as $1 {{PLURAL:$1|karakter|karakters}} bevat nie.',
 'yourgender' => 'Geslag:',
-'gender-unknown' => 'Nie gespesifiseer',
-'gender-male' => 'Man',
-'gender-female' => 'Vrou',
+'gender-unknown' => 'Ek wil nie sê nie',
+'gender-male' => 'Hy bewerk wikiblaaie',
+'gender-female' => 'Sy bewerk wikiblaaie',
 'prefs-help-gender' => 'Opsioneel: dit word gebruik om gebruikers korrek aan te spreek in die sagteware.
 Die inligting is vir ander gebruikers sigbaar.',
 'email' => 'E-pos',
@@ -1604,6 +1611,8 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|wysiging|wysigings}}',
+'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|sedert u laaste besoek}}',
+'enhancedrc-history' => 'geskiedenis',
 'recentchanges' => 'Onlangse wysigings',
 'recentchanges-legend' => 'Opsies vir onlangse wysigings',
 'recentchanges-summary' => 'Volg die mees onlangse wysigings aan die wiki op die bladsy.',
@@ -1635,7 +1644,7 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'rc_categories_any' => 'Enige',
 'rc-change-size-new' => '$1 {{PLURAL:$1|greep|grepe}} na die wysiging',
 'newsectionsummary' => '/* $1 */ nuwe afdeling',
-'rc-enhanced-expand' => 'Wys details (benodig JavaScript)',
+'rc-enhanced-expand' => 'Wys details',
 'rc-enhanced-hide' => 'Steek details weg',
 'rc-old-title' => 'oorspronklik geskep as "$1"',
 
@@ -1917,6 +1926,8 @@ Kliek op die opskrifte om die tabel te hersorteer.',
 'listfiles_size' => 'Grootte',
 'listfiles_description' => 'Beskrywing',
 'listfiles_count' => 'Weergawes',
+'listfiles-latestversion-yes' => 'Ja',
+'listfiles-latestversion-no' => 'Nee',
 
 # File description page
 'file-anchor-link' => 'Lêer',
@@ -2011,6 +2022,9 @@ Miskien wil u eerder die beskrywing daar op die [$2 lêerbeskrywing] bywerk.',
 'randompage' => 'Lukrake bladsy',
 'randompage-nopages' => 'Daar is geen bladsye in die volgende {{PLURAL:$2|naamruimte|naamruimtes}} nie: $1.',
 
+# Random page in category
+'randomincategory-selectcategory-submit' => 'Gaan',
+
 # Random redirect
 'randomredirect' => 'Lukrake aanstuur',
 'randomredirect-nopages' => 'Daar is geen aansture in naamruimte "$1" nie.',
index ed24b23..23ad95b 100644 (file)
@@ -2727,7 +2727,7 @@ $UNWATCHURL
 'protectlogtext' => 'بالأسفل قائمة بالتغييرات في حماية الصفحات.
 انظر [[Special:ProtectedPages|قائمة الصفحات المحمية]] لقائمة بعمليات حماية الصفحات المفعلة حاليا.',
 'protectedarticle' => 'حمى "[[$1]]"',
-'modifiedarticleprotection' => 'غÙ\8aر Ù\85ستÙ\88Ù\89 Ø§Ù\84Ø­Ù\85اÙ\8aØ© Ù\84"[[$1]]"',
+'modifiedarticleprotection' => 'غÙ\8aر Ù\85ستÙ\88Ù\89 Ø­Ù\85اÙ\8aØ© "[[$1]]"',
 'unprotectedarticle' => 'أزال الحماية من "[[$1]]"',
 'movedarticleprotection' => 'نقل إعدادات الحماية من "[[$2]]" إلى "[[$1]]"',
 'protect-title' => 'ضبط مستوى الحماية ل"$1"',
index 9e7d4c2..0336e28 100644 (file)
@@ -2264,6 +2264,7 @@ To include a file in a page, use a link in one of the following forms:
 'upload-preferred'            => 'Preferred file types: $1.',
 'upload-prohibited'           => 'Prohibited file types: $1.',
 'uploadfooter'                => '-', # do not translate or duplicate this message to other languages
+'upload-default-description'  => '-', # do not translate or duplicate this message to other languages
 'uploadlog'                   => 'upload log',
 'uploadlogpage'               => 'Upload log',
 'uploadlogpagetext'           => 'Below is a list of the most recent file uploads.
index 62f1cfb..4260f6b 100644 (file)
@@ -34,6 +34,7 @@
  * @author Pouyana
  * @author Reza1615
  * @author Roozbeh Pournader <roozbeh at gmail.com>
+ * @author Rtemis
  * @author Sahim
  * @author Surena
  * @author Taha
@@ -444,7 +445,7 @@ $messages = array(
 'tog-extendwatchlist' => 'گسترش فهرست پی‌گیری‌ها برای نمایش همهٔ تغییرات، نه فقط آخرین‌ها',
 'tog-usenewrc' => 'گروه‌بندی تغییرات بر پایه صفحه در تغییرات اخیر و فهرست پیگیری‌ها (نیازمند جاوااسکریپت)',
 'tog-numberheadings' => 'شماره‌گذاری خودکار عنوان‌ها',
-'tog-showtoolbar' => 'نوار ابزار جعبهٔ ویرایش نمایش یابد (نیازمند جاوااسکریپت)',
+'tog-showtoolbar' => 'نوار ابزار جعبهٔ ویرایش نمایش یابد',
 'tog-editondblclick' => 'ویرایش صفحه‌ها با دوکلیک (نیازمند جاوااسکریپت)',
 'tog-editsection' => 'ویرایش بخش‌ها از طریق پیوندهای [ویرایش] فعال باشد',
 'tog-editsectiononrightclick' => 'امکان ویرایش بخش‌ها با کلیک راست روی عنوان‌های بخش (نیازمند جاوااسکریپت)',
@@ -1893,7 +1894,7 @@ $1",
 'rc_categories_any' => 'هر کدام',
 'rc-change-size-new' => '$1 {{PLURAL:$1|بایت}} پس از تغییر',
 'newsectionsummary' => '/* $1 */ بخش جدید',
-'rc-enhanced-expand' => 'نمایش جزئیات (نیازمند جاوااسکریپت)',
+'rc-enhanced-expand' => 'نمایش جزئیات',
 'rc-enhanced-hide' => 'نهفتن جزئیات',
 'rc-old-title' => 'ایجادشده با عنوان اصلی «$1»',
 
index 5c2e1b8..b762f44 100644 (file)
@@ -778,8 +778,8 @@ Essayez à nouveau dans quelques minutes.",
 'viewyourtext' => "Vous pouvez voir et copier le contenu de '''vos modifications''' à cette page :",
 'protectedinterface' => "Cette page fournit du texte d'interface pour le logiciel sur ce wiki, et est protégée pour éviter les abus.
 Pour ajouter ou modifier des traductions sur tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet de localisation de MediaWiki.",
-'editinginterface' => "'''Attention''': Vous êtes en train de modifier une page utilisée pour créer le texte de l'interface du logiciel. Les changements sur cette page se répercuteront dur l'apparence de l'interface utilisateur pour les autres utilisateurs de ce wiki.
-Pour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet d'internationalisation de MediaWiki.",
+'editinginterface' => "'''Attention''' : vous êtes en train de modifier une page utilisée pour créer le texte de l’interface du logiciel. Les changements sur cette page se répercuteront sur l’apparence de l’interface utilisateur pour les autres utilisateurs de ce wiki.
+Pour ajouter ou modifier des traductions pour tous les wikis, veuillez utiliser [//translatewiki.net/ translatewiki.net], le projet dinternationalisation de MediaWiki.",
 'cascadeprotected' => "Cette page est protégée car elle est incluse par {{PLURAL:$1|la page suivante, qui a été protégée|les pages suivantes, qui ont été protégées}} avec l'option « protection en cascade » activée :
 $2",
 'namespaceprotected' => "Vous n'avez pas la permission de modifier les pages de l'espace de noms « '''$1''' ».",
@@ -1173,10 +1173,10 @@ Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l'av
 '''N'UTILISEZ PAS DE TRAVAUX SOUS DROIT D'AUTEUR SANS AUTORISATION EXPRESSE !'''",
 'longpageerror' => "'''Erreur: Le texte que vous avez soumis fait {{PLURAL:$1|un Kio|$1 Kio}}, ce qui dépasse la limite fixée à {{PLURAL:$2|un Kio|$2 Kio}}.'''
 Il ne peut pas être sauvegardé.",
-'readonlywarning' => "'''AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour l'instant.'''
-Vous pouvez copier et coller votre texte dans un fichier texte et l'enregistrer pour plus tard.
+'readonlywarning' => "'''AVERTISSEMENT : la base de données a été verrouillée pour des opérations de maintenance. Vous ne pouvez donc pas publier vos modifications pour linstant.'''
+Vous pouvez copier et coller votre texte dans un fichier texte et lenregistrer pour plus tard.
 
-L'administrateur ayant verrouillé la base de données a donné l'explication suivante: $1",
+L’administrateur ayant verrouillé la base de données a donné l’explication suivante : $1",
 'protectedpagewarning' => "'''AVERTISSEMENT : cette page est protégée. Seuls les utilisateurs ayant le statut d'administrateur peuvent la modifier.'''<br />
 La dernière entrée du journal est affichée ci-dessous pour référence :",
 'semiprotectedpagewarning' => "'''Note :''' Cette page a été protégée de telle façon que seuls les contributeurs enregistrés puissent la modifier. La dernière entrée du journal est affichée ci-dessous pour référence :",
index 75fc736..9ab71ee 100644 (file)
@@ -4015,7 +4015,7 @@ A MediaWikit abban a reményben terjesztjük, hogy hasznos lesz, de GARANCIA NÉ
 'api-error-badtoken' => 'Belső hiba: hibás token.',
 'api-error-copyuploaddisabled' => 'Az URL-címes feltöltés nem engedélyezett ezen a kiszolgálón.',
 'api-error-duplicate' => 'Már van {{PLURAL:$1|egy|néhány}} [$2 másik fájl] az oldalon ugyanilyen tartalommal',
-'api-error-duplicate-archive' => 'Az oldalon {{PLURAL:$1|szerepelt|szerepeltek}} más [$2 más {{PLURAL:$1|fájl|fájlok}}] is ugyanezzel a tartalommal, de törlölve {{PLURAL:$1|lett|lettek}}.',
+'api-error-duplicate-archive' => 'Az oldalon {{PLURAL:$1|szerepelt|szerepeltek}} [$2 más {{PLURAL:$1|fájl|fájlok}}] is ugyanezzel a tartalommal, de törölve {{PLURAL:$1|lett|lettek}}.',
 'api-error-duplicate-archive-popup-title' => '{{PLURAL:$1|Az azonos fájl, ami törölve lett|Azonos fájlok, amik törölve lettek}}',
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|Duplikátum|Duplikátumok}}',
 'api-error-empty-file' => 'Az általad elküldött fájl üres volt.',
index e070127..ac71a3e 100644 (file)
@@ -42,12 +42,12 @@ $messages = array(
 'tog-hidepatrolled' => 'Ilemmeng dagiti napatruliaan nga inurnos kadagiti naudi a sinuk-sukatan',
 'tog-newpageshidepatrolled' => 'Ilemmeng dagiti napatruliaan a panid manipud ti baro a listaan ti panid',
 'tog-extendwatchlist' => 'Ipalawa ti listaan ti bambantayan tapno maipakita amin a nasukatan, tapno saan laeng a dagiti nabiit',
-'tog-usenewrc' => 'Dagiti grupo a panagbaliw babaen ti panid kadagiti kinaudi a panagbaliw ken banbantayan  (masapul ti JavaScript)',
+'tog-usenewrc' => 'Dagiti grupo a panagbaliw babaen ti panid kadagiti kinaudi a panagbaliw ken banbantayan',
 'tog-numberheadings' => 'Automatiko a pabilangan dagiti paulo',
-'tog-showtoolbar' => 'Ipakita ti baras ti ramit ti panag-urnos (masapul ti JavaScript)',
-'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagpindut (masapul ti JavaScript)',
+'tog-showtoolbar' => 'Ipakita ti baras ti ramit ti panag-urnos',
+'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagpindut',
 'tog-editsection' => 'Pakabaelan ti panag-urnos ti paset babaen kadagiti silpo nga [urnosen]',
-'tog-editsectiononrightclick' => 'Pakabaelan ti panag-urnos ti paset babaen ti kanawan a panagpindut kadagiti titulo ti paset (masapul ti JavaScript)',
+'tog-editsectiononrightclick' => 'Pakabaelan ti panag-urnos ti paset babaen ti kanawan a panagpindut kadagiti titulo ti paset',
 'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga adda ti ad-adu ngem dagiti 3 a paulo)',
 'tog-rememberpassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (iti kapaut nga $1 {{PLURAL:$1|aldaw|al-aldaw}})',
 'tog-watchcreations' => 'Agnayon kadagiti panid a pinartuatko ken papeles nga inkargak idiay listaan ti bambantayak',
@@ -65,7 +65,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Ipakita ti bilang dagiti agbuybuya nga agar-aramat',
 'tog-oldsig' => 'Ti adda a pirma:',
 'tog-fancysig' => 'Tratuen ti pirma a kas wikitext (nga awan ti automatiko a panagsilpo)',
-'tog-uselivepreview' => 'Usaren ti agdama a panagipadas (masapul ti JavaScript) (eksperimento)',
+'tog-uselivepreview' => 'Usaren ti agdama a panagipadas (eksperimento)',
 'tog-forceeditsummary' => 'Pakaammuannak no sumrek ti blanko a pakabuklan ti panag-urnos',
 'tog-watchlisthideown' => 'Ilemmeng dagiti inurnosko manipud ti listaan ti bambantayan',
 'tog-watchlisthidebots' => 'Ilemmeng dagiti inurnos ti bot manipud ti listaan ti bambantayan',
@@ -179,7 +179,7 @@ $messages = array(
 'newwindow' => '(aglukat iti sabali a tawa)',
 'cancel' => 'Ukasen',
 'moredotdotdot' => 'Adu pay...',
-'morenotlisted' => 'Adu a saan a nailista...',
+'morenotlisted' => 'Daytoy a listaan ket saan a kompleto.',
 'mypage' => 'Panid',
 'mytalk' => 'Tungtungan',
 'anontalk' => 'Tungtungan para iti daytoy a pagtaengan ti IP',
@@ -366,6 +366,12 @@ Masarakan ti listaan dagiti umisu nga espesial a pampanid iti [[Special:SpecialP
 # General errors
 'error' => 'Biddut',
 'databaseerror' => 'Biddut iti database',
+'databaseerror-text' => 'Adda napasamak a biddut ti usisa ti database.
+Daytoy ket mabalin a mangibagbaga ti parikut ti sopwer.',
+'databaseerror-textcl' => 'Adda napasamak a biddut ti usisa ti database.',
+'databaseerror-query' => 'Usisa: $1',
+'databaseerror-function' => 'Annong: $1',
+'databaseerror-error' => 'Biddut: $1',
 'laggedslavemode' => "'''Ballaag:''' Ti panid ket mabalin a saan nga aglaon kadagiti kinaudi a panagpabaro.",
 'readonly' => 'Narikepan ti database',
 'enterlockreason' => 'Agikabil ti rason para iti pannakarikep, agraman ti maysa a karkulo no kaanonto a maluktan',
@@ -1213,7 +1219,7 @@ Laglagipem laeng a dagiti pagsurotan nagyan ti {{SITENAME}} ket baka baak.',
 'prefs-rendering' => 'Tabas',
 'saveprefs' => 'Idulin',
 'resetprefs' => 'Dalusan dagiti saan a naidulin a sinuksukatan',
-'restoreprefs' => 'Isublim amin dagiti kinasigud a kasasaad',
+'restoreprefs' => 'Isubli amin dagiti kasisigud a pannakaiyasentar (kadagiti amin a paset)',
 'prefs-editing' => 'Ur-urnosen',
 'rows' => 'Ar-aray:',
 'columns' => 'Tuk-tukol:',
@@ -1304,6 +1310,7 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'prefs-displaywatchlist' => 'Ipakita dagiti pagpilian',
 'prefs-tokenwatchlist' => 'Tandaan',
 'prefs-diffs' => 'Sabali',
+'prefs-help-prefershttps' => 'Daytoy a kakaykayatan ket mapakabaelanto iti sumaruno nga iseserrekmo.',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => 'Ti esurat a pagtaengan ket kasla umiso',
@@ -1511,7 +1518,7 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'rc_categories_any' => 'Uray ania',
 'rc-change-size-new' => '$1 {{PLURAL:$1|a byte|kadagiti byte}} kalpasan ti panag-sukat',
 'newsectionsummary' => '/* $1 */ baro a paset',
-'rc-enhanced-expand' => 'Ipakita dagiti salaysay (masapul ti JavaScript)',
+'rc-enhanced-expand' => 'Ipakita dagiti salaysay',
 'rc-enhanced-hide' => 'Ilemmeng dagiti salaysay',
 'rc-old-title' => 'kasisigud nga inaramid a kas ti "$1"',
 
@@ -1773,8 +1780,7 @@ Baka kayatmo a padasen no saan a makumikom nga oras.',
 'upload_source_file' => '(papeles iti kompiutermo)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Daytoy nga espesial a panid ket agiparang kadagiti pinag-ipan kadagiti papeles.
-No sagaten ti agar-aramat, dagiti laeng papeles a pinag-ipan ti agar-aramat ti kinaudi a bersion ti papeles ti maipakita.',
+'listfiles-summary' => 'Daytoy nga espesial a panid ket agiparang kadagiti amin a naipan a papeles.',
 'listfiles_search_for' => 'Agsapul para iti nagan ti midia:',
 'imgfile' => 'papeles',
 'listfiles' => 'Listaan ti papeles',
@@ -1785,6 +1791,10 @@ No sagaten ti agar-aramat, dagiti laeng papeles a pinag-ipan ti agar-aramat ti k
 'listfiles_size' => 'Kadakkel',
 'listfiles_description' => 'Panagipalpalawag',
 'listfiles_count' => 'Dagiti bersion',
+'listfiles-show-all' => 'Iraman dagiti daan a bersion dagiti ladawan',
+'listfiles-latestversion' => 'Agdama a bersion',
+'listfiles-latestversion-yes' => 'Wen',
+'listfiles-latestversion-no' => 'Saan',
 
 # File description page
 'file-anchor-link' => 'Papeles',
@@ -3784,7 +3794,8 @@ Naka-awatka koman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 'dberr-problems' => 'Pasensian a!
 Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'dberr-again' => 'Padasem ti agururay to manu a minutos ken agikarga.',
-'dberr-info' => '(San a makontak ti database server: $1)',
+'dberr-info' => '(Saan a makontak ti database server: $1)',
+'dberr-info-hidden' => '(Saan a makontak ti database server)',
 'dberr-usegoogle' => 'Padasem  ti agbiruk idiay Google tatta.',
 'dberr-outofdate' => 'Palagip a dagiti listaan da kadagiti kukuami a nagyan ket baka nagpaso.',
 'dberr-cachederror' => 'Daytoy ket naidulin a kopia ti kiniddawmo a panid, ken mabalin a saan a kabarbaro.',
index 61c2665..216d1d8 100644 (file)
@@ -63,7 +63,7 @@ $messages = array(
 'tog-usenewrc' => "Grupēt izmaiņas pēc lapas pēdējās izmaiņās un uzraugāmo lapu sarakstā  (izmanto ''JavaScript'')",
 'tog-numberheadings' => 'Automātiski numurēt virsrakstus',
 'tog-showtoolbar' => 'Rādīt rediģēšanas rīkjoslu',
-'tog-editondblclick' => "Atvērt rediģēšanas lapu ar dubultklikšķi (izmanto ''JavaScript'')",
+'tog-editondblclick' => 'Atvērt lapu rediģēšanai ar dubultklikšķi',
 'tog-editsection' => 'Rādīt sadaļām izmainīšanas saiti "[labot]"',
 'tog-editsectiononrightclick' => "Atvērt sadaļas rediģēšanas lapu, uzklikšķinot ar labo peles pogu uz sadaļas virsraksta (izmanto ''JavaScript'')",
 'tog-showtoc' => 'Parādīt satura rādītāju (lapām, kurās ir vairāk par 3 virsrakstiem)',
@@ -196,6 +196,7 @@ $messages = array(
 'newwindow' => '(atveras jaunā logā)',
 'cancel' => 'Atcelt',
 'moredotdotdot' => 'Vairāk...',
+'morenotlisted' => 'Šis saraksts nav pilnīgs.',
 'mypage' => 'Lapa',
 'mytalk' => 'Diskusijas',
 'anontalk' => 'Šīs IP adreses diskusija',
@@ -376,6 +377,10 @@ Derīgo īpašo lapu saraksts atrodas te: [[Special:SpecialPages|{{int:specialpa
 # General errors
 'error' => 'Kļūda',
 'databaseerror' => 'Datu bāzes kļūda',
+'databaseerror-textcl' => 'Datu bāzes vaicājuma kļūda.',
+'databaseerror-query' => 'Vaicājums: $1',
+'databaseerror-function' => 'Funkcija: $1',
+'databaseerror-error' => 'Kļūda: $1',
 'laggedslavemode' => 'Uzmanību: Iespējams, šajā lapā nav redzami nesen izdarītie papildinājumi.',
 'readonly' => 'Datubāze bloķēta',
 'enterlockreason' => 'Ievadiet bloķēšanas iemeslu, ieskaitot aplēses, kad bloķēšana tiks beigta.',
index 9e0818f..325f577 100644 (file)
@@ -224,12 +224,12 @@ $messages = array(
 'tog-hidepatrolled' => "Hanitrika ny fanovana voaara-maso ao amin'ny fanovana farany",
 'tog-newpageshidepatrolled' => "Hanitsika ny pejy voaara-maso ao amin'ny pejy vaovao",
 'tog-extendwatchlist' => 'Hanitatra ny lisitra fanaraham-pejy mba haneho ny fanovana rehetra fa tsy ny vaovao indrindra fotsiny',
-'tog-usenewrc' => "Hamondrona ny fanovana araka ny pejy ao amin'ny fanovàna farany ary ao amin'ny pejy arahana (mila Javascript)",
+'tog-usenewrc' => "Hamondrona ny fanovana araky ny pejy ao amin'ny fanovana farany ary ao amin'ny lisitry ny pejy arahana",
 'tog-numberheadings' => 'Asio laharany ny lohateny',
-'tog-showtoolbar' => 'Asehoy ny edit toolbar (mila JavaScript)',
-'tog-editondblclick' => 'Ovay ny pejy rehefa voatsindry indroa misesy ny totozy (mila JavaScript)',
+'tog-showtoolbar' => 'Haneho ny toolbar fanovana',
+'tog-editondblclick' => "Hanova pejy amin'ny alalan'ny tsindrim-boalavo roa misesy",
 'tog-editsection' => "Ataovy mety ny fanovana fizaràna amin'ny alalan'ny rohy [hanova]",
-'tog-editsectiononrightclick' => "Ovay ny fizaràna rehefa manindry ny bokotra havanana amin'ny totozy eo amin'ny lohateny hoe fizaràna (mila JavaScript)",
+'tog-editsectiononrightclick' => "Hampiasa ny fanovana fizarana amin'ny tsindry havanana eo amin'ny lohatenim-pizarana.",
 'tog-showtoc' => "Asehoy ny fanoroan-takila (ho an'ny pejy misy lohateny mihoatra ny 3)",
 'tog-rememberpassword' => "Tadidio ny tenimiafiko eto amin'ity solosaina ity (mandritry ny andro $1 fara-fahabetsany){{PLURAL:}}",
 'tog-watchcreations' => 'Hanaraka ny pejy foronoko ary ny rakitra ampidiriko',
@@ -247,7 +247,7 @@ $messages = array(
 'tog-shownumberswatching' => "Asehoy ny isan'ny mpikambana manara-maso ny pejy",
 'tog-oldsig' => "Topi-mason'ny sonia :",
 'tog-fancysig' => 'Sonia tsotra (tsy misy rohy)',
-'tog-uselivepreview' => 'Ampesao ny topi-maso maikamaika (mila Javascript) (mbola am-panandramana)',
+'tog-uselivepreview' => 'Hampiasa ny topi-maso malakay (andramana)',
 'tog-forceeditsummary' => 'Teneno ahy ra tsy nametraka ny ambangovangony',
 'tog-watchlisthideown' => "Tsy ampiseho anatin'ny pejy fanaraha-maso ny zavatra nosoratako",
 'tog-watchlisthidebots' => "Asitriho amin'ny lisitro ny fanovàna nataon'ny rôbô",
@@ -259,6 +259,8 @@ $messages = array(
 'tog-diffonly' => "Aza ampiseho ny voatonin'ny pejy eo amban'ny diff",
 'tog-showhiddencats' => 'Asehoy ny sokajy misitrika',
 'tog-norollbackdiff' => 'Aza aseho ny diff rehefa avy namafa fanàvana iray',
+'tog-useeditwarning' => 'Ampitandremo aho raha miala sady mamela pejy ovaiko nefa tsy notahiriziko',
+'tog-prefershttps' => 'Fanohizana azo antoka foana no ampaisaina rehefa tafiditra',
 
 'underline-always' => 'Foana foana',
 'underline-never' => 'Tsy tsipihina mihitsy',
@@ -359,7 +361,7 @@ $messages = array(
 'newwindow' => '(sokafy anaty takila hafa)',
 'cancel' => 'Aoka ihany',
 'moredotdotdot' => 'Tohiny...',
-'morenotlisted' => 'Tohiny tsy voalisitra...',
+'morenotlisted' => 'Tsy feno ity lisitra ity.',
 'mypage' => 'Pejy',
 'mytalk' => 'Dinika',
 'anontalk' => "Resaka ho an'io adiresy IP io",
@@ -393,6 +395,7 @@ $messages = array(
 'namespaces' => 'Valam-pejy',
 'variants' => "Ny ''skin'' Voasintona",
 
+'navigation-heading' => 'Meny fitetezana',
 'errorpagetitle' => 'Tsy fetezana',
 'returnto' => "Hiverina any amin'ny $1.",
 'tagline' => "Avy amin'i {{SITENAME}}",
@@ -542,6 +545,12 @@ Mitaky version $1-n'i MediaWiki",
 # General errors
 'error' => 'Tsy mety',
 'databaseerror' => "Tsy fetezana eo amin'ny toby",
+'databaseerror-text' => "Nisy hadisoana banky angona nitranga.
+Mety maneho baogy ao amin'ny rindrankajy izany.",
+'databaseerror-textcl' => 'Nisy hadisoana banky angona nitranga.',
+'databaseerror-query' => 'Hataka: $1',
+'databaseerror-function' => 'Lefa: $1',
+'databaseerror-error' => 'Hadisoana: $1',
 'laggedslavemode' => 'Fampitandremana: Mety ho tsy nisy fanovana vao haingana angamba io pejy io',
 'readonly' => 'Mihidy ny banky angona',
 'enterlockreason' => 'Manomeza antony hanidiana ny pejy, ahitana ny fotoana tokony hamahana izay fihidiana izay',
@@ -577,6 +586,7 @@ Mety efa nataon'ny hafa angamba ny famafàna.",
 'cannotdelete-title' => 'Tsy afaka mamafa ny pejy "$1"',
 'delete-hook-aborted' => "Famafana nofoanan'ny itatra.
 Tsy nanome fanazavana.",
+'no-null-revision' => 'Tsy nahaforona famerenana poaka aty ho an\'ny pejy "$1"',
 'badtitle' => 'Tsy mety ny lohateny',
 'badtitletext' => "Tsy mety io anaram-pejy nangatahinao io na tsy misy n'inon'inona na rohy dikan-teny vahiny misy diso tsipelina.",
 'perfcached' => "Ao amin'ny voatakona ireo data manaraka ireo ary mety tsy voavao. $1{{PLURAL:}} ihany no isan'ireo zavatra voatahiry ao amin'ny voatakona",
@@ -627,16 +637,16 @@ Ny antony nomen\'ny mpandrindra nanidy azy: "$3".',
 'virus-unknownscanner' => 'Tsy fantatra io Antivirus io :',
 
 # Login and logout pages
-'logouttext' => "'''Tafavoaka ianao ankehitriny.'''
+'logouttext' => "'''Efa tafavoaka amin'izay ianao.'''
 
-Mbola afaka mampiasa ny {{SITENAME}} ianao na dia ef anivoaka aza, na afaka <span class='plainlinks'>[$1 miverina mihiditra]</span> ianao ambanin'ny anaranao na anaram-pikambana hafa.
-Fantaro fa ny endriky ny pejy sasany dia mety mitovy amin'ny endrika nahitanao azy tamin' ianao mbola niditra tato, ho toy izany ny endri-pejy raha tsy nofafanao ny cache.",
+Fantaro fa mety mbola misy ireo pejy milaza anao fa mbola tafiditra raha tsy namafa ny pejy voatakona (cache) ianao.",
 'welcomeuser' => 'Tonga soa, $1',
 'welcomecreation-msg' => "Noforonina ny aontinao.
 Aza adin ny manova ny [[Special:Preferences|safidinao ro amin'i{{SITENAME}}]].",
 'yourname' => 'Solonanarana',
 'userlogin-yourname' => 'Anaram-pikambana',
 'userlogin-yourname-ph' => 'Atsofohy ny anaram-pikambanao',
+'createacct-another-username-ph' => 'Atsofohy ny anaram-pikambana',
 'yourpassword' => 'Tenimiafina',
 'userlogin-yourpassword' => 'Tenimiafina',
 'userlogin-yourpassword-ph' => 'Atsofohy ny tenimiafinao',
@@ -668,19 +678,22 @@ Mila manaiky cookies ianao raha te hiditra amin'ny {{SITENAME}}.",
 'gotaccountlink' => 'Midira',
 'userlogin-resetlink' => "Adinonavo ve ny antsipihan'ny fidiranao ?",
 'userlogin-resetpassword-link' => 'Hamerina ny tenimiafinao',
-'helplogin-url' => 'Fanoroana:Fidirana',
+'helplogin-url' => 'Help:Fidirana',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Fanoroana mikasika ny fidirana]]',
 'createacct-join' => 'Atsofohy eo ambany ny fampahalalana momba anao.',
+'createacct-another-join' => "Atsofohy eo ambany ny fampahalalana vaovaon'ny kaonty",
 'createacct-emailrequired' => 'Adiresy mailaka :',
 'createacct-emailoptional' => 'Adiresy mailaka (azo tsy atao) :',
 'createacct-email-ph' => 'Atsofohy ny adiresy mailakao',
-'createaccountmail' => "Hampiasa tenimiafina kisendra vonjimaika ary handefa azy mailaka any amin'ny adiresy nolazaina teo ambany",
+'createacct-another-email-ph' => 'Atsofohy ny adiresy mailaka',
+'createaccountmail' => "Hampiasa tenimiafina vonjimaika ary handefa azy eo amin'ny adiresy mailaka voalaza",
 'createacct-realname' => 'Tena anarana (azo tsy atao)',
 'createaccountreason' => 'Antony :',
 'createacct-reason' => 'Antony',
 'createacct-reason-ph' => 'Inona ny antony hamoronanao kaonty hafa',
 'createacct-imgcaptcha-ph' => 'Atsofohy ny teny hitanao eo ambony',
 'createacct-submit' => 'Hamorona ny kaontinao',
+'createacct-another-submit' => 'Hamorona kaonty vaovao',
 'createacct-benefit-heading' => "Olona tahaka ianao no manoratra eo amin'i {{SITENAME}}",
 'createacct-benefit-body1' => 'fanovana{{PLURAL:$1}}',
 'createacct-benefit-body2' => 'pejy{{PLURAL:$1}}',
@@ -752,11 +765,14 @@ Tokony miditra na manokatra kaonty ianao, ary ovay ny tenimiafinao dien-izao.
 
 Aza mijery ity hafatra ity ianao raha voaforona an-tsifetezana ilay kaonty io.",
 'usernamehasherror' => 'Ny anaram-pikambana dia tsy afaka manana soratra fanaovana hash.',
-'login-throttled' => "Im-betsaka loatra ianao no nanandrana tenimiafina teo amin'io kaonty io.
-Andraso kely ary andramo indray.",
+'login-throttled' => "Betsaka loatra ny andram-pidirana nataonao.
+
+Andraso $1 alohan'ny mamerina.",
 'login-abort-generic' => 'Tsy nahomby ny fanandramanao niditra',
 'loginlanguagelabel' => 'fiteny : $1',
 'suspicious-userlogout' => "Ny fangataham-pialanao dia tsy nekena satria ohatry ny nalfan'ny mpizahan-tsehatra simba izy na kasy ny proxy.",
+'createacct-another-realname-tip' => "Azo tsy atsofoka ny tena anarana.
+Raha misafidy ny hanome azy ianao, ho ampiasaina amin'ny fanehoana ny anjara asan'ilay mpikambana ilay izy.",
 
 # Email sending
 'php-mail-error-unknown' => "Hadisoana tsy fantatra tao amin'ny tao mial() an'i PHP.",
@@ -771,7 +787,7 @@ Andraso kely ary andramo indray.",
 'newpassword' => 'Tenimiafina vaovao:',
 'retypenew' => 'Avereno ampidirina ny tenimiafina vaovao:',
 'resetpass_submit' => 'Ovay ny tenimiafina ary midira',
-'changepassword-success' => 'Voasolo soa aman-tsara ny tenimiafinao ! Mampiditranao izao ankehitriny...',
+'changepassword-success' => 'Voaova soa aman-tsara ny tenimiafinao!',
 'resetpass_forbidden' => 'Tsy afaka ovaina ny tenimiafina',
 'resetpass-no-info' => "Tsy maintsy tafiditra ao amin'ny kaontinao ianao vao afaka mijery ity pejy ity.",
 'resetpass-submit-loggedin' => 'Ovay ny tenimiafina',
@@ -830,6 +846,9 @@ Tenimiafina miserana : $2',
 'resettokens-legend' => 'Famerenana ny token',
 'resettokens-tokens' => 'Token:',
 'resettokens-token-label' => '$1 (sanda ankehitriny: $2)',
+'resettokens-watchlist-token' => "Token ho an'ny fahna web (Atom/RSS) ho an'ny  [[Special:Watchlist|fanovana ny pejy ao amin'ny lisitry ny pejy arahanao]]",
+'resettokens-done' => 'Natao reset ny token',
+'resettokens-resetbutton' => 'Hanao reset ny token voafidy',
 
 # Edit page toolbar
 'bold_sample' => 'Soratra matavy',
@@ -910,7 +929,7 @@ Mety efa nakisaka angamba izy, na voafafa tamin' ianareo namaky ity pejy ity far
 'loginreqlink' => 'miditra',
 'loginreqpagetext' => 'Tokony $1 ianao raha te hijery pejy hafa.',
 'accmailtitle' => 'Lasa ny tenimiafina.',
-'accmailtext' => 'Lasa any amin\'i $2 ny tenimiafin\'i "$1".',
+'accmailtext' => "Nalefa tany amin'i $2 ny tenimiafina kisendra ho an'ny kaonty [[User talk:$1|$1]]! Azo ovaina eo amin'i ''[[Special:ChangePassword|Manova tenimiafina]]'' izany amin'ny alalan'ny fidirana.",
 'newarticle' => '(Vaovao)',
 'newarticletext' => "Mbola tsy misy ity takelaka ity koa azonao atao ny mamorona azy eto ambany. Jereo ny [[{{MediaWiki:Helppage}}|Fanoroana]] raha misy fanazavana ilainao.
 
@@ -1066,6 +1085,7 @@ Ao aorian'ny fivelarana, mety namoaka valy lava loatra angamba izy, ary tsy namp
 'undo-failure' => "Tsy afaka esorina io fanovàna io : mety tsy miraikitra amin'ny fanovàna misy eo ampivoaniny ra esorina",
 'undo-norev' => 'Tsy afaka nesorina ilay fanovàna satria tsy misy na efa voafafa izy.',
 'undo-summary' => "Niala ny fanovàna $1 nataon'i [[Special:Contributions/$2|$2]] ([[User talk:$2|resaho]])",
+'undo-summary-username-hidden' => 'Namafa ny famerenana $1 nataom-pikambana afenina',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Tsy afaka manokatra kaonty ianao.',
@@ -1314,6 +1334,7 @@ ihany no miseho amin'ny vokatry ny karoka).",
 'powersearch-togglenone' => 'Tsy misy',
 'search-external' => 'Hikaroka any ivelany',
 'searchdisabled' => "Tsy nalefa ny karoka eto amin'i {{SITENAME}}. Afaka mampiasa an'i Google aloha ianao mandra-paha. Nefa fantaro fa mety ho efa lany daty ny valiny omeny.",
+'search-error' => 'Hadisoana nitranga tam-pikarohana: $1',
 
 # Preferences page
 'preferences' => 'Ny momba anao',
@@ -1345,7 +1366,7 @@ ihany no miseho amin'ny vokatry ny karoka).",
 'prefs-rendering' => 'Fampisehoana',
 'saveprefs' => 'Tehirizo',
 'resetprefs' => 'Avereno',
-'restoreprefs' => 'Averina ny reglages taloha',
+'restoreprefs' => "Hamerina ny safidy taloha (amin'ny fizarana rehetra)",
 'prefs-editing' => 'Fanovana',
 'rows' => 'Filaharana :',
 'columns' => 'Tsanganana/Tioba :',
@@ -1401,10 +1422,10 @@ Fenoy araka ny datin'ny solosainan'ny mpitsidika",
 'badsig' => 'Tsy mety io sonia io; hamarino ny kialo HTML.',
 'badsiglength' => "Lava loatra ny sonianao. {{PLURAL:$1||}}
 Tokony mba manana lohavy ambanimbany kokoa non'ny $1",
-'yourgender' => 'lahi-vavy :',
-'gender-unknown' => 'Tsy voalaza',
-'gender-male' => 'Lehilahy',
-'gender-female' => 'Vehivavy',
+'yourgender' => 'Tiana hofaritana ahoana ianao?',
+'gender-unknown' => 'Tsy tia hanome ny antsipirihany aho',
+'gender-male' => 'Manova pejy wiki izy (lehilahy)',
+'gender-female' => 'Manova pejy wiki izy (vehivavy)',
 'prefs-help-gender' => "Ankifidy : Ampiasaina mba hifanaraka amin'ny lahi-vavy. Ho sarababem-bahoaka io fampahalalàna io.",
 'email' => 'Imailaka',
 'prefs-help-realname' => "Anarana marina (afaka tsy fenoina): raha fenoinao ity dia hampiasaina hanomezana anao tambin'ny asa izay efainao eto.",
@@ -1601,6 +1622,7 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|fanovana|fanovana}} $1',
+'enhancedrc-history' => 'tantara',
 'recentchanges' => 'Fanovana farany',
 'recentchanges-legend' => 'Safidy ny fanovàna farany',
 'recentchanges-summary' => "Jereo eto amin'ity pejy ity izay vao niova vao haingana teto amin'ity wiki ity.",
@@ -1632,7 +1654,7 @@ Tsy haseho ny adiresy imailakao rehefa manoratra any aminao ny mpikambana hafa."
 'rc_categories_any' => 'Tsy misy fetrany',
 'rc-change-size-new' => "$1{{PLURAL:}} oktety taorian'ny fanovana",
 'newsectionsummary' => '/* $1 */ fizarana vaovao',
-'rc-enhanced-expand' => 'Jereo ny detail (mila JavaScript)',
+'rc-enhanced-expand' => 'Hijery ny antsipirihany',
 'rc-enhanced-hide' => 'Asitriho ny adidiny sy ny antsipiriany',
 'rc-old-title' => 'noforonina tamin\'ilay lohateny "$1"',
 
index ff90c3c..d53a578 100644 (file)
@@ -1004,9 +1004,9 @@ o [{{fullurl:{{FULLPAGENAME}}|action=edit}} crear aquesta pagina]</span>.',
 'noarticletext-nopermission' => 'Actualament i a pas cap de tèxte dins aquesta pagina.
 Podètz [[Special:Search/{{PAGENAME}}|far una recèrca sul títol de la pagina]] dins las autras paginas,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} recercar dins los jornals associats]</span>.',
-'missing-revision' => "La rrvision n° $1 de la pagina intitulada « {{PAGENAME}} » existís pas.
+'missing-revision' => "La revision n° $1 de la pagina intitulada « {{PAGENAME}} » existís pas.
 
-Aquò se produsís en general en seguent un ligam istoric obsolèt cap a una pagina qu'es estada suprimida.
+Aquò se produsís en general en seguent un ligam istoric obsolet cap a una pagina qu'es estada suprimida.
 Podètz trobar mai de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jornal de las supressions].",
 'userpage-userdoesnotexist' => "Lo compte d'utilizaire « <nowiki>$1</nowiki> » es pas enregistrat. Indicatz se volètz crear o editar aquesta pagina.",
 'userpage-userdoesnotexist-view' => "Lo compte d'utilizaire « $1 » es pas enregistrat.",
index fa3a13d..1abdd86 100644 (file)
@@ -200,7 +200,7 @@ $messages = array(
 'tog-showtoolbar' => 'ਸੋਧ ਸੰਦਬਕਸਾ ਵੇਖੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
 'tog-editondblclick' => "ਦੋ ਵਾਰ ਕਲਿੱਕ ਕਰਨ 'ਤੇ ਸਫ਼ੇ ਸੋਧੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)",
 'tog-editsection' => '[ਸੋਧੋ] ਲਿੰਕਾਂ ਰਾਹੀਂ ਭਾਗ ਸੋਧਣਾ ਚਾਲੂ ਕਰੋ',
-'tog-editsectiononrightclick' => 'ਭਾà¨\97 à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 ਤੇ ਸੱਜੀ ਕਲਿੱਕ ਨਾਲ਼ ਸੋਧ ਚਾਲੂ ਕਰੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
+'tog-editsectiononrightclick' => 'ਸà©\88à¨\95ਸ਼ਨ à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 â\80\99ਤੇ ਸੱਜੀ ਕਲਿੱਕ ਨਾਲ਼ ਸੋਧ ਚਾਲੂ ਕਰੋ (ਜਾਵਾਸਕਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
 'tog-showtoc' => 'ਤਤਕਰਾ ਵਿਖਾਓ (੩ ਤੋਂ ਵੱਧ ਸਿਰਲੇਖਾਂ ਵਾਲੇ ਸਫ਼ਿਆਂ ਲਈ)',
 'tog-rememberpassword' => 'ਇਸ ਬਰਾਊਜ਼ਰ ਉੱਤੇ ਮੇਰਾ ਦਾਖ਼ਲਾ ਯਾਦ ਰੱਖੋ (ਵੱਧ ਤੋਂ ਵੱਧ $1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ)',
 'tog-watchcreations' => 'ਮੇਰੇ ਵਲੋਂ ਬਣਾਏ ਗਏ ਸਫ਼ੇ ਅਤੇ ਅੱਪਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਮੇਰੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿੱਚ ਪਾਓ',
@@ -408,7 +408,7 @@ $messages = array(
 'userpage' => 'ਵਰਤੋਂਕਾਰ ਸਫ਼ਾ ਵੇਖੋ',
 'projectpage' => 'ਪ੍ਰੋਜੈਕਟ ਸਫ਼ਾ ਵੇਖੋ',
 'imagepage' => 'ਫਾਇਲ ਸਫ਼ਾ ਵੇਖੋ',
-'mediawikipage' => 'ਸà©\81ਨà©\87ਹਾ à¨ªà©\87à¨\9c ਵੇਖੋ',
+'mediawikipage' => 'ਸà©\81ਨà©\87ਹਾ à¨¸à¨«à¨¼à¨¾ ਵੇਖੋ',
 'templatepage' => 'ਫਰਮਾ ਸਫ਼ਾ ਵੇਖੋ',
 'viewhelppage' => 'ਮਦਦ ਸਫ਼ਾ ਵੇਖੋ',
 'categorypage' => 'ਸ਼੍ਰੇਣੀ ਸਫ਼ਾ ਵੇਖੋ',
@@ -597,7 +597,7 @@ $2',
 ਧਿਆਨ ਦਿਉ ਕਿ ਜਿੰਨੀ ਦੇਰ ਤੱਕ ਤੁਸੀਂ ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਦਾ ਕੈਸ਼ ਸਾਫ਼ ਨਹੀਂ ਕਰਦੇ, ਕੁਝ ਸਫ਼ੇ ਇੱਦਾਂ ਵਿਖਣਗੇ ਜਿਵੇਂ ਤੁਸੀਂ ਅਜੇ ਵੀ ਦਾਖ਼ਲ ਹੀ ਹੋ।",
 'welcomeuser' => '$1 ਜੀ ਆਇਆਂ ਨੂੰ!',
 'welcomecreation-msg' => 'ਤੁਹਾਡਾ ਖਾਤਾ ਬਣ ਚੁੱਕਾ ਹੈ। ਆਪਣੀਆਂ [[Special:Preferences|{{SITENAME}} ਪਸੰਦ]] ਬਦਲਣੀ ਨਾ ਭੁੱਲੋ।',
-'yourname' => 'ਯà©\82à¨\9c਼ਰ-ਨਾਂ:',
+'yourname' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ-ਨਾਂ:',
 'userlogin-yourname' => 'ਯੂਜ਼ਰ-ਨਾਂ',
 'userlogin-yourname-ph' => 'ਆਪਣਾ ਯੂਜ਼ਰ-ਨਾਂ ਭਰੋ',
 'createacct-another-username-ph' => 'ਯੂਜ਼ਰ ਨਾਂ ਦਿਓ',
@@ -1410,7 +1410,7 @@ HTML ਟੈਗ ਚੈੱਕ ਕਰੋ।',
 'show' => 'ਵਖਾਓ',
 'minoreditletter' => 'ਛੋ',
 'newpageletter' => 'ਨ',
-'boteditletter' => 'ਬੋ',
+'boteditletter' => 'ਬੋ',
 'number_of_watching_users_pageview' => '[$1 ਵੇਖ ਰਹੇ ਹਨ {{PLURAL:$1|ਯੂਜ਼ਰ}}]',
 'rc_categories_any' => 'ਕੋਈ ਵੀ',
 'newsectionsummary' => '/* $1 */ ਨਵਾਂ ਭਾਗ',
@@ -1995,7 +1995,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'nolinkshere' => "ਕੋਈ ਵੀ ਸਫ਼ਾ '''[[:$1]]''' ਨਾਲ ਨਹੀਂ ਜੋੜਦਾ।",
 'isredirect' => 'ਰੀਡਿਰੈਕਟ ਸਫ਼ਾ',
 'istemplate' => 'ਟਾਕਰਾ ਕਰੋ',
-'isimage' => 'ਫ਼ਾà¨\88ਲ à¨\95à©\9cà©\80',
+'isimage' => 'ਫ਼ਾà¨\88ਲ à¨²à¨¿à©°à¨\95',
 'whatlinkshere-prev' => '{{PLURAL:$1|ਪਿਛਲਾ|ਪਿਛਲੇ $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|ਅਗਲਾ|ਅਗਲੇ $1}}',
 'whatlinkshere-links' => '← ਕੜੀਆਂ',
@@ -2008,7 +2008,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 # Block/unblock
 'block' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
 'unblock' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਲੱਗੀ ਪਾਬੰਦੀ ਹਟਾਓ",
-'blockip' => 'ਪਾਬੰਦà©\80ਸ਼à©\81ਦਾ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ',
+'blockip' => 'ਵਰਤà©\8bà¨\82à¨\95ਾਰ â\80\99ਤà©\87 à¨ªà¨¾à¨¬à©°à¨¦à©\80 à¨²à¨¾à¨\93',
 'blockip-title' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
 'blockip-legend' => "ਵਰਤੋਂਕਾਰ 'ਤੇ ਪਾਬੰਦੀ ਲਾਓ",
 'ipadressorusername' => 'IP ਐਡਰੈਸ ਜਾਂ ਯੂਜ਼ਰ ਨਾਂ:',
@@ -2216,7 +2216,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'tooltip-t-contributions' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਦੇ ਯੋਗਦਾਨ ਦੀ ਸੂਚੀ',
 'tooltip-t-emailuser' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
 'tooltip-t-upload' => 'ਫ਼ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ',
-'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
+'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96਼ਾਸ à¨¸à¨«à¨¼à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
 'tooltip-t-print' => 'ਇਸ ਸਫ਼ੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
 'tooltip-t-permalink' => 'ਸਫ਼ੇ ਦੇ ਇਸ ਰੀਵਿਜਨ ਲਈ ਪੱਕੀ ਕੜੀ',
 'tooltip-ca-nstab-main' => 'ਸਮੱਗਰੀ ਸਫ਼ਾ ਵੇਖੋ',
@@ -2737,6 +2737,7 @@ $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆ
 'htmlform-chosen-placeholder' => 'ਕੋਈ ਚੋਣ ਚੁਣੋ',
 
 # New logging system
+'logentry-delete-delete' => '$1 ਨੇ ਸਫ਼ਾ $3 ਮਿਟਾਇਆ',
 'revdelete-content-hid' => 'ਸਮੱਗਰੀ ਲੁਕਾਈ ਹੋਈ',
 'revdelete-summary-hid' => 'ਸੋਧ ਸਾਰ ਲੁਕਾਈ ਹੋਈ',
 'revdelete-uname-hid' => 'ਵਰਤੋਂਕਾਰ ਨਾਂ ਲੁਕਾਇਆ ਹੋਇਆ',
index 21d6fa3..905d021 100644 (file)
@@ -600,13 +600,14 @@ Peul desse ch'a l'ha già cambià la ciav o a l'ha ciamà na neuva ciav provisò
 'passwordreset-text-one' => "Ch'a completa 's formolari për reimposté soa ciav.",
 'passwordreset-text-many' => "{{PLURAL:$1|Ch'a compila un dij camp për riamposté soa ciav.}}",
 'passwordreset-legend' => 'Riampostassion ëd la ciav',
-'passwordreset-disabled' => 'Ij cangiament ëd ciav a son stàit disabilità su sta wiki.',
+'passwordreset-disabled' => "La reinissialisassion ëd le ciav a l'é stàita disabilità su sta wiki.",
+'passwordreset-emaildisabled' => 'Le fonsionalità ëd pòsta eletrònica a son ëstàite disativà su sta wiki.',
 'passwordreset-username' => 'Stranòm:',
 'passwordreset-domain' => 'Domini:',
-'passwordreset-capture' => 'Vardé ël mëssagi arzultant?',
-'passwordreset-capture-help' => "S'a marca costa casela, ël mëssagi ëd pòsta eletrònica (con la ciav temporania) a-j sarà smonù e ant l'istess temp a sarà mandà a l'utent.",
+'passwordreset-capture' => 'Vëdde ël mëssagi arzultant?',
+'passwordreset-capture-help' => "S'a marca costa casela, ël mëssagi ëd pòsta eletrònica (con la ciav provisòria) a-j sarà smonù e ant l'istess temp a sarà mandà a l'utent.",
 'passwordreset-email' => 'Adrëssa ëd pòsta eletrònica:',
-'passwordreset-emailtitle' => 'Detaj dël cont ansima {{SITENAME}}',
+'passwordreset-emailtitle' => 'Detaj dël cont ansima {{SITENAME}}',
 'passwordreset-emailtext-ip' => "Quaidun (a l'é bel fé ch'a sia chiel, da l'adrëssa IP $1) a l'ha ciamà d'arcordé ij detaj ëd sò cont për {{SITENAME}} ($4). {{PLURAL:$3|Ël cont utent sì-sota a l'é|Ij cont utent sì-sota a son}} 
 associà a st'adrëssa ëd pòsta eletrònica:
 
index c781301..8c2e9bf 100644 (file)
@@ -765,8 +765,10 @@ See also:
 * {{msg-mw|Tooltip-n-portal}}',
 'privacy' => 'Used as page name and link at the bottom of each wiki page. The page contains a legal notice providing information about the use of personal information by the website owner.of the site. Example: [[Privacy policy]].
 {{Identical|Privacy policy}}',
-'privacypage' => 'Used as page for that contains the privacy policy. Used at the bottom of every page on the wiki. Example: [[{{MediaWiki:Privacypage}}|{{MediaWiki:Privacy}}]].
-{{doc-important|Do not change the "<tt>Project:</tt>" part.}}',
+'privacypage' => '{{doc-important|Do not change the "<tt>Project:</tt>" part.}}
+Used as page for that contains the privacy policy. Used at the bottom of every page on the wiki.
+
+Example: [[{{MediaWiki:Privacypage}}|{{MediaWiki:Privacy}}]].',
 
 'badaccess' => 'Title shown within page indicating unauthorized access.
 {{Identical|Permission error}}',
@@ -1033,10 +1035,9 @@ See example [{{canonicalurl:Main_page|action=x}} action=x].',
 'nospecialpagetext' => '{{doc-important|Do not translate <code><nowiki>[[Special:SpecialPages|{{int:specialpages}}]]</nowiki></code>.}}
 This error is shown when trying to open a special page which does not exist, e.g. [[Special:Nosuchpage]].
 
-The title of this error is the message {{msg-mw|Nosuchspecialpage}}.
+Refers to {{msg-mw|Specialpages}}.
 
-See also:
-* {{msg-mw|Specialpages}}',
+The title of this error is the message {{msg-mw|Nosuchspecialpage}}.',
 
 # General errors
 'error' => '{{Identical|Error}}',
@@ -1859,7 +1860,9 @@ Parameters:
 * $2 - email address',
 'newarticle' => '{{Identical|New}}',
 'newarticletext' => '{{doc-important|Do not translate <code><nowiki>{{MediaWiki:Helppage}}</nowiki></code>.}}
-Text displayed above the edit box in editor when trying to create a new page.',
+Text displayed above the edit box in editor when trying to create a new page.
+
+Refers to {{msg-mw|Helppage}}.',
 'anontalkpagetext' => 'Displayed at the bottom of talk pages of anonymous users.',
 'noarticletext' => 'This is the message that you get if you search for a term that has not yet got any entries on the wiki.
 
@@ -3749,6 +3752,7 @@ See also:
 See also:
 * {{msg-mw|Upload-permitted}}
 * {{msg-mw|Upload-preferred}}',
+'upload-default-description' => 'Do not translate. Default text for the description box on Special:Upload, or "-" to disable.',
 'uploadlogpage' => '{{doc-logpage}}
 
 Page title of [[Special:Log/upload]].',
index f6df0ca..a525e96 100644 (file)
@@ -51,12 +51,12 @@ $messages = array(
 'tog-hidepatrolled' => 'Ботурууллааччы көрбүт көннөрүүтүн саҥа көннөрүүлэр тиһиктэригэр көрдөрүмэ',
 'tog-newpageshidepatrolled' => 'Ботуруулламмыт сирэйдэри саҥа сирэйдэр тиһиктэригэр көрдөрүмэ',
 'tog-extendwatchlist' => 'Кэтээһин тупсарыллыбыт испииһэгэ. Бары уларытыылар көстөллөр (бүтэһиктэр эрэ буолбатах)',
-'tog-usenewrc' => 'Саҥа уларытыылар уонна кэтэбил тиһиктэригэр уларыйыылары бөлөхтүүргэ (JavaScript баар буолуохтаах)',
+'tog-usenewrc' => 'Саҥа уларытыы уонна кэтэбил тиһиктэригэр уларыйыылары бөлөхтүүргэ',
 'tog-numberheadings' => 'Бас тыллары нүөмэрдээ',
-'tog-showtoolbar' => 'Көннөрүү үстүрүмүөннэрин көрдөр (JavaScript)',
-'tog-editondblclick' => 'Хоһулатан иккитэ баттаан сирэйи уларытыы (JavaScript)',
+'tog-showtoolbar' => 'Көннөрүү үстүрүмүөннэрин көрдөр',
+'tog-editondblclick' => 'Хоһулатан иккитэ баттаан сирэйи уларытыы',
 'tog-editsection' => '[Көннөрүү] диэн ыйынньыгынан сиэксийэны көннөрүү',
-'tog-editsectiononrightclick' => 'Сиэксийэ баһыгар уҥа тимэҕинэн<br />баттаан сиэксийэни көннөрүү (JavaScript)',
+'tog-editsectiononrightclick' => 'Сиэксийэ баһыгар уҥа тимэҕинэн баттаан сиэксийэни көннөрүү',
 'tog-showtoc' => 'Иһинээҕитин көрдөр (ыстатыйа үстэн ордук бас тыллаах буоллаҕына)',
 'tog-rememberpassword' => 'Миигин бу браузерга сигээ ($1 {{PLURAL:$1|күн|күнтэн ордуга суох}})',
 'tog-watchcreations' => 'Суруйбут ыстатыйаларбын уонна укпут билэлэрбин кэтээн көрүүгэ киллэрэн ис',
@@ -74,7 +74,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Сирэйи кэтээн көрөр дьон ахсаанын көрдөр',
 'tog-oldsig' => 'Баар илии баттааһын:',
 'tog-fancysig' => 'Бэйэ илии баттааһына (ыйынньыга суох)',
-'tog-uselivepreview' => 'ТÑ\83Ñ\82аÑ\82Ñ\8bна Ñ\85айдаÑ\85 Ð±Ñ\83олаÑ\80Ñ\8bн ÐºÓ©Ñ\80Ò¯Ò¯ (JavaScript, тургутуу быһыытынан)',
+'tog-uselivepreview' => 'ХайдаÑ\85 Ð±Ñ\83олÑ\83оÑ\85Ñ\82ааÒ\95Ñ\8bн Ñ\82Ñ\83Ñ\82аÑ\82Ñ\8bна Ñ\8dÑ\80дÑ\8d ÐºÓ©Ñ\80Ò¯Ò¯ (тургутуу быһыытынан)',
 'tog-forceeditsummary' => 'Тугу уларыппытым туһунан суруйбатахпына сэрэт',
 'tog-watchlisthideown' => 'Кэтээн көрүү испииһэгэр бэйэм уларытыыларбын көрдөрүмэ',
 'tog-watchlisthidebots' => 'Кэтээн көрүү испииһэгэр робот уларытыытын көрдөрүмэ',
@@ -87,6 +87,7 @@ $messages = array(
 'tog-showhiddencats' => 'Кистэммит категориялары көрдөр',
 'tog-norollbackdiff' => 'Төннөрүү кэнниттэн барыллар уратыларын көрдөрүмэ',
 'tog-useeditwarning' => 'Эрэдээксийэлиир сирэйтэн уларытыыларбын бигэргэппэккэ тахсаары гыннахпына сэрэтээр',
+'tog-prefershttps' => 'Манна киирэргэ куруук көмүскэллээх холбонууну туттарга',
 
 'underline-always' => 'Куруук',
 'underline-never' => 'Аннынан тардыма',
@@ -187,7 +188,7 @@ $messages = array(
 'newwindow' => '(атын түннүккэ арыллар)',
 'cancel' => 'Алҕас',
 'moredotdotdot' => 'Өссө...',
-'morenotlisted' => 'Ð\90Ñ\82Ñ\8bн Ñ\81Ñ\83оÑ\85...',
+'morenotlisted' => 'Ð\91Ñ\83 Ñ\82иһик Ñ\82олоÑ\80Ñ\83Ñ\82а Ñ\81Ñ\83оÑ\85.',
 'mypage' => 'Сирэй',
 'mytalk' => 'Кэпсэтэр сирим',
 'anontalk' => 'Бу IP-га ырытыы',
@@ -371,6 +372,11 @@ $1',
 # General errors
 'error' => 'Алҕас',
 'databaseerror' => 'Билии олоҕор сыыһа',
+'databaseerror-text' => 'Билии олоҕор алҕас таҕыста.
+Бырагыраамма алҕаһа буолуон сөп.',
+'databaseerror-textcl' => 'Билии олоҕор алҕас таҕыста.',
+'databaseerror-query' => 'Ыйытык: $1',
+'databaseerror-error' => 'Алҕас: $1',
 'laggedslavemode' => 'Болҕой: Бу сирэй бүтэһик уларытыылара суох буолуон сөп',
 'readonly' => 'Билии олоҕун уларытар бобуллубут',
 'enterlockreason' => 'Уларытыыны бобуу төрүөтүн уонна төһө өр бобулларын ый.',
@@ -451,8 +457,6 @@ $2',
 # Login and logout pages
 'logouttext' => "'''Эн тиһиликтэн таҕыстыҥ.'''
 
-{{SITENAME}} ситим-сиргэ билигин урукку ааккынан буолбакка IP-аадырыһынан эрэ көстөҕүн.
-Салгыы ааккын ааттаабакка үлэлиэххин сөп, эбэтэр саҥаттан урукку ааккынан дуу, атын аатынан дуу <span class='plainlinks'>[$1 киириэххин]</span> сөп.
 Сорох сирэйдэр өссө даҕаны эйигин урукку ааккынан көрдөрүөхтэрин сөп, ону суох гыныаххын баҕардаххына интэриниэт көрдөрөөччүҥ кээһин ыраастаа.",
 'welcomeuser' => 'Нөрүөн нөргүй, $1!',
 'welcomecreation-msg' => 'Аатыҥ бэлиэтэннэ.
@@ -499,7 +503,7 @@ $2',
 'createacct-emailoptional' => 'Email аадырыс (булгуччута суох)',
 'createacct-email-ph' => 'Эл аадырыскын суруй',
 'createacct-another-email-ph' => 'Эл. почтаҕын киллэр',
-'createaccountmail' => 'Быстах киирии тылы туһаныы уонна ону email-ынан ыытыы',
+'createaccountmail' => 'Быстах киирии тылы туһаныы уонна ону ыйыллыбыт аадырыска ыытыы',
 'createacct-realname' => 'Дьиҥнээх аатыҥ (булгуччута суох)',
 'createaccountreason' => 'Төрүөтэ:',
 'createacct-reason' => 'Төрүөтэ',
@@ -576,11 +580,13 @@ $2',
 
 Саҥа аат сыыһа оҥоһуллубут буоллаҕына тугу да гыныа суоххун сөп.',
 'usernamehasherror' => 'Аакка эрэһиэккэ бэлиэтин туттар сатаммат',
-'login-throttled' => 'Ð\9dаһаа Ñ\8dлбÑ\8dÑ\85Ñ\82ик Ð±Ñ\8dйÑ\8dÒ¥ Ð°Ð°ÐºÐºÑ\8bн билиһиннэрэ сатаатыҥ.
-Бука диэн кыратык тохтуу түһэн баран өссө боруобалаа.',
+'login-throttled' => 'Ð\90аккÑ\8bн Ð°Ò»Ð°Ñ\80а Ñ\8dлбÑ\8dÑ\85Ñ\82ик билиһиннэрэ сатаатыҥ.
+Бука диэн $1 буолан баран өссө киирэн көрөөр.',
 'login-abort-generic' => 'Бу аатынан сатаан киирбэтиҥ - быстан хаалла',
 'loginlanguagelabel' => 'Омугун тыла: $1',
 'suspicious-userlogout' => 'Сеансы түмүктүүр ыйытыгыҥ ылыныллыбата, тоҕо диэтэххэ браузер эбэтэр кээштыыр прокси алҕас ыыппыт ыйытыктарыгар майгынныыр.',
+'createacct-another-realname-tip' => 'Дьиҥнээх аатыҥ булгуччута суох.
+Ыйдаххына уларыппыт сирэйиҥ устуоруйатыгар көстөр буолуоҕа.',
 
 # Email sending
 'php-mail-error-unknown' => 'mail() PHP-функциятыгар туох эрэ алҕас тахсыбыт',
@@ -596,8 +602,7 @@ $2',
 'newpassword' => 'Саҥа киирии тыл:',
 'retypenew' => 'Саҥа киирии тылы хатылаа:',
 'resetpass_submit' => 'Киирии тылы уларыт уонна киир',
-'changepassword-success' => 'Your password has been changed successfully! Now logging you in...
-Киирии тылыҥ этэҥҥэ уларыйда. Сотору кэминэн киириэҥ...',
+'changepassword-success' => 'Киирии тылыҥ этэҥҥэ уларыйда!',
 'resetpass_forbidden' => 'Киирии тылы уларытар сатаммат',
 'resetpass-no-info' => 'Ааккын билиһиннэрдэххинэ эрэ бу сирэйгэ быһа тиийиэххин сөп.',
 'resetpass-submit-loggedin' => 'Киирии тылы уларытыы',
@@ -658,6 +663,11 @@ $2
 'changeemail-submit' => 'Аадырыһы уларыт',
 'changeemail-cancel' => 'Тохтот',
 
+# Special:ResetTokens
+'resettokens' => 'Токеннары бырах',
+'resettokens-legend' => 'Токеннары бырах',
+'resettokens-tokens' => 'Токеннар:',
+
 # Edit page toolbar
 'bold_sample' => 'Модьу бичик',
 'bold_tip' => 'Модьу бичик',
@@ -735,7 +745,6 @@ IP-аадырыһыҥ $3, бобуу нүөмэрэ — #$5.
 'loginreqpagetext' => 'Атын сирэйдэри көрөргө маны оҥоруохтааххын: $1.',
 'accmailtitle' => 'Киирии тыл ыытылынна.',
 'accmailtext' => "[[User talk:$1|$1]] кыттааччыга түбэспиччэ бэлиэлэртэн оҥоһуллубут киирии тыл бу аадырыска $2 ыытылынна.
-
 Тиһиккэ бэлиэтэнэн баран киирии тылгын ''[[Special:ChangePassword|уларытыаххын]]'' сөп.",
 'newarticle' => '(Саҥа ыстатыйа)',
 'newarticletext' => 'Эн суох сирэйгэ киирэ сатаатыҥ.
@@ -1179,7 +1188,7 @@ $1",
 'prefs-rendering' => 'Тас көрүҥэ',
 'saveprefs' => 'Бигэргэт',
 'resetprefs' => 'Бигэргэтиллибэтэх уларыйыылары сот',
-'restoreprefs' => 'Туруоруулары саҥаттан',
+'restoreprefs' => 'Туруоруулары саҥаттан (салааларга барыларыгар)',
 'prefs-editing' => 'Уларытыы',
 'rows' => 'Строкаалара:',
 'columns' => 'Колонкалара:',
@@ -1236,9 +1245,9 @@ $1",
 'badsig' => 'Сыыһа илии баттааһын; HTML тиэгтэрин көр.',
 'badsiglength' => 'Наһаа уһун илии баттааһын.
 $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}} ордук буолуо суохтаах.',
-'yourgender' => 'ЭÑ\80 ÐºÐ¸Ò»Ð¸Ñ\82Ñ\8d/дÑ\8cаÑ\85Ñ\82аÑ\80а:',
-'gender-unknown' => 'Ыйыллыбатах',
-'gender-male' => 'ЭÑ\80 ÐºÐ¸Ò»Ð¸',
+'yourgender' => 'ХайаÑ\82а Ð­Ð¹Ð¸Ñ\8dÑ\85Ñ\8d Ñ\81өп Ñ\82үбÑ\8dÒ»Ñ\8dÑ\80ий?',
+'gender-unknown' => 'Ыйбат инибин',
+'gender-male' => 'Ð\9aини Ð±Ð¸Ð¸ÐºÐ¸ Ñ\81иÑ\80Ñ\8dйдÑ\8dÑ\80и Ñ\83лаÑ\80Ñ\8bÑ\82аÑ\80',
 'gender-female' => 'Дьахтар',
 'prefs-help-gender' => 'Булгуччута суох. Бырагыраамма сорох дьоҥҥо туһаайыллыбыт биллэриилэригэр эбэтэр кинилэргэ сыһыаннаах этиилэригэр кытааччы дьахтарыттан эр киһититтэн көрөн этии тутулун уларытан биэриэн сөп. Туора дьоҥҥо көстөр бэлиэтээһин.',
 'email' => 'Почта',
@@ -1251,7 +1260,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'prefs-signature' => 'Илии баттааһына',
 'prefs-dateformat' => 'Күн-дьыл көрүҥэ (формаата)',
 'prefs-timeoffset' => 'Кэм уратыта',
-'prefs-advancedediting' => 'Сүрүн (барытыгар сыһыаннаах)',
+'prefs-advancedediting' => 'Сүрүн туруоруулар',
 'prefs-editor' => 'Эрэдээктэр',
 'prefs-preview' => 'Инники көрүү',
 'prefs-advancedrc' => 'Дириҥэтиллибит туруоруулар',
@@ -1262,6 +1271,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'prefs-displaysearchoptions' => 'Көстүүтүн туруоруулара',
 'prefs-displaywatchlist' => 'Көстүүтүн туруоруулара',
 'prefs-diffs' => 'Уратылара',
+'prefs-help-prefershttps' => 'Аныгыскы киириигэр үлэлиир буолуо.',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => 'Сөп курдук көстөр',
@@ -1285,7 +1295,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'userrights-no-interwiki' => 'Атын биикилэргэ кыттааччылар бырааптарын уларытар быраабыҥ суох.',
 'userrights-nodatabase' => '$1 билэ тиһигэ (олоҕо, база данных) суох эбэтэр локальнай буолбатах.',
 'userrights-nologin' => 'Эн дьон бырааптарын уларытаргар администратор быһыытынан [[Special:UserLogin|бэлиэтэниэхтээххин]].',
-'userrights-notallowed' => 'Ð\91Ñ\8dлиÑ\8dÑ\82Ñ\8dммиÑ\82 Ð°Ð°ÐºÐºÑ\8bнан Ð°Ñ\82Ñ\8bн ÐºÑ\8bÑ\82Ñ\82ааÑ\87Ñ\87Ñ\8b Ð±Ñ\8bÑ\80аабÑ\8bн уларытар кыаҕыҥ суох эбит.',
+'userrights-notallowed' => 'Ð\90Ñ\82Ñ\8bн ÐºÑ\8bÑ\82Ñ\82ааÑ\87Ñ\87Ñ\8b Ð±Ñ\8bÑ\80аабÑ\8bн Ñ\8dбÑ\8dÑ\80 Ñ\83онна уларытар кыаҕыҥ суох эбит.',
 'userrights-changeable-col' => 'Эн уларытар кыахтаах бөлөхтөрүҥ',
 'userrights-unchangeable-col' => 'Бу бөлөхтөрү уларытар кыаҕыҥ суох',
 'userrights-conflict' => 'Кыттааччы быраабын быһаарарга алҕас таҕыста! Хатылаан көр.',
@@ -1353,7 +1363,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'right-hideuser' => 'Кыттааччы аатын бобуу уонна кистээһин',
 'right-ipblock-exempt' => 'IP хааччахтааһынын, аптамаатынан уонна диапазоннары хааччахтааһыны тумнуу',
 'right-proxyunbannable' => 'Прокси аптааматынан хааччахтааһынын тумнуу',
-'right-unblockself' => 'хааччаҕы бэйэ устуута',
+'right-unblockself' => 'Хааччаҕы бэйэ устуута',
 'right-protect' => 'Сирэйдэр көмүскэллэрин таһымын уонна каскаадынан көмүскэммит сирэйдэри уларытыы',
 'right-editprotected' => 'Уларытыллар сирэйдэр "{{int:protect-level-sysop}}" таһымынан көмүскэммиттэр',
 'right-editsemiprotected' => 'Уларытыллар сирэйдэр "{{int:protect-level-autoconfirmed}}" таһымынан көмүскэммиттэр',
@@ -1436,6 +1446,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|уларытыы|уларытыылар}}',
+'enhancedrc-history' => 'устуоруйата',
 'recentchanges' => 'Кэнники уларытыылар',
 'recentchanges-legend' => 'Кэлиҥҥи уларытыылар хайдах көстөллөрүн туруоруу',
 'recentchanges-summary' => 'Манна хаһан оҥоһуллубуттарынан сааһыланан {{SITENAME}} кэнники уларыытыылара көстөллөр.',
@@ -1467,7 +1478,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'rc_categories_any' => 'Ханнык баҕарар',
 'rc-change-size-new' => 'Уларытыы кээмэйэ: $1 баайт',
 'newsectionsummary' => '/* $1 */ саҥа сиэксийэ',
-'rc-enhanced-expand' => 'Сиһилии көрдөр (JavaScript туһаныллар)',
+'rc-enhanced-expand' => 'Сиһилии көрдөр',
 'rc-enhanced-hide' => 'Сиһилиитин көрдөрүмэ',
 'rc-old-title' => 'бастаан бу аатынан суруллубут "$1"',
 
@@ -1730,8 +1741,7 @@ $1',
 'upload_source_file' => ' (билэ көмпүүтэргэр баар)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Бу анал сирэй киллэриллибит билэлэри барытын көрдөрөр.
-Киллэрээччинэн наардаатахха киллэрээччи бүтэһик көннөрүүтэ эрэ көстүөҕэ.',
+'listfiles-summary' => 'Бу анал сирэй киллэриллибит билэлэри барытын көрдөрөр.',
 'listfiles_search_for' => 'Миэдьийэни (ойууну) аатынан көрдөтүү:',
 'imgfile' => 'билэ',
 'listfiles' => 'Билэлэр',
@@ -1742,6 +1752,9 @@ $1',
 'listfiles_size' => 'Кээмэйэ',
 'listfiles_description' => 'Быһаарыыта',
 'listfiles_count' => 'Барыллар',
+'listfiles-latestversion' => 'Билиҥҥи барыла',
+'listfiles-latestversion-yes' => 'Сөп',
+'listfiles-latestversion-no' => 'Суох',
 
 # File description page
 'file-anchor-link' => 'Билэ',
@@ -1874,8 +1887,8 @@ $1',
 'pageswithprop-text' => 'Манна сорох туруоруулара уларытыллыбыт сирэйдэр көстүбүттэр.',
 'pageswithprop-prop' => 'Туруоруу аата:',
 'pageswithprop-submit' => 'Толор',
-'pageswithprop-prophidden-long' => 'уһун тиэкис кистэммит ($1 килобайт)',
-'pageswithprop-prophidden-binary' => 'бинаар суолта кистэммит ($1 килобайт)',
+'pageswithprop-prophidden-long' => 'уһун тиэкис кистэммит ($1)',
+'pageswithprop-prophidden-binary' => 'бинаар суолта кистэммит ($1)',
 
 'doubleredirects' => 'Хос көһөрөөһүн',
 'doubleredirectstext' => 'Бу сирэйгэ атын сиргэ утаарар хос утаарыылар тиһиктэрэ көстөр.
@@ -2030,7 +2043,7 @@ $1',
 'linksearch-ok' => 'Бул',
 'linksearch-text' => 'Туруоран биэрэр бэлиэлэри туһаныахха сөп, холобур,  <code>*.wikipedia.org</code>.
 Үрдүкү таһымнаах домен буолуохтаах, холобур <code>*.org</code>.<br />
-Өйөнөр боротокуоллар: <code>$1</code> (көрдүүргэр ханнык да боротокуолу талбатаххына http:// туруоруллуо)',
+Өйөнөр {{PLURAL:$2|боротокуол|боротокуоллар}}: <code>$1</code> (көрдүүргэр ханнык да боротокуолу талбатаххына http:// туруоруллуо)',
 'linksearch-line' => 'Мантан $2 манна $1 ыйынньык',
 'linksearch-error' => 'Туруоран биэрэр бэлиэлэри аадырыс/hostname саҕаланыытыгар эрэ туттуохха сөп.',
 
@@ -2157,30 +2170,31 @@ $1',
 'enotif_lastvisited' => 'Бутэһик киирииҥ кэнниттэн оҥоһуллубут уларыйыылары барытын көрөргө манна киир: $1.',
 'enotif_lastdiff' => 'Уларытыыны манна көрүҥ: $1.',
 'enotif_anon_editor' => 'ааттамматах кыттааччы $1',
-'enotif_body' => 'Ð\9aүндү $WATCHINGUSERNAME,
+'enotif_body' => 'Ð\90лама ÐºÒ¯Ð½ Ñ\81Ñ\8bÑ\80дÑ\8bгÑ\8bнан, $WATCHINGUSERNAME!
 
-«{{SITENAME}}» $PAGETITLE кыттаачыга сыһыаннаах сирэйи $PAGEEDITDATE $PAGEEDITOR кыттааччы $CHANGEDORCREATED. Сирэй билиҥҥи туругун манна көр: $PAGETITLE_URL.
-
-$NEWPAGE
+$PAGEINTRO $NEWPAGE
 
 Уларытыы кылгас ис хоһооно: $PAGESUMMARY $PAGEMINOREDIT
 
-Уларыппыт киһи:
\8dл. Ð°Ð°Ð´Ñ\8bÑ\80Ñ\8bÒ»а: $PAGEEDITOR_EMAIL
\91иикигÑ\8d Ñ\81иÑ\80Ñ\8dйÑ\8d: $PAGEEDITOR_WIKI
+Уларыппыт киһиэхэ суруйуоххун сөп:
\8dл. Ð¿Ð¾Ñ\87Ñ\82а: $PAGEEDITOR_EMAIL
±Ð¸Ð¸ÐºÐ¸: $PAGEEDITOR_WIKI
 
-Бу сирэйи көрө иликкинэ хос биллэрии кэлиэ суоҕа. Арай кэтэбили туруорар сиргэ "уларытыыны биллэрэргэ" диэни иккистээн туруордаххына кэлиэн сөп.
+Бу сирэйи көрбөтөххүнэ биллэриилэр уонна кэлиэхтэрэ суоҕа. Биллэриилэри аналлаах сирэйгэ арааран кэбиһиэххин эмиэ сөп.
 
-         Бары үтүөнү кытта, {{SITENAME}} биллэрэр систиэмэтэ
+             Бары үтүөнү кытта, {{SITENAME}} биллэрэр тиһигэ
 
 --
-Кэтиир сирэйдэриҥ тиһигин уларытарга маны көр:
+Биллэрии кэлэрин салайыы
+{{canonicalurl:{{#special:Preferences}}}}
+
+Кэтиир тиһиги уларытыы
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
\91Ñ\83 Ñ\81иÑ\80Ñ\8dйи ÐºÑ\8dÑ\82Ñ\8dбил Ñ\82иһигиÑ\82Ñ\82Ñ\8dн Ñ\81оÑ\82оÑ\80го Ð¼Ð°Ð½Ð½Ð° ÐºÐ¸Ð¸Ñ\80:
\9aÑ\8dÑ\82ииÑ\80 Ñ\82иһикÑ\82Ñ\8dн Ñ\81иÑ\80Ñ\8dйдÑ\8dÑ\80и Ñ\81оÑ\82Ñ\83Ñ\83
 $UNWATCHURL
 
-Көмөлөһүннэрэр уонна быһаартарар сир:
+Көмө
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'created' => 'айыллыбыт',
 'changed' => 'уларыппыт (уларытыллыбыт)',
index 168f14e..9b9d330 100644 (file)
@@ -4029,7 +4029,7 @@ V nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bom
 'feedback-error2' => 'Napaka: Urejanje je spodletelo',
 'feedback-error3' => 'Napaka: Ni odgovora od API',
 'feedback-thanks' => 'Havala! Vaše povratne informacije smo objavili na strani »[$2 $1]«.',
-'feedback-close' => 'Končano',
+'feedback-close' => 'Urejeno',
 'feedback-bugcheck' => 'Izvrstno! Samo preverite, da ne gre za enega od [$1 že znanih hroščev].',
 'feedback-bugnew' => 'Sem preveril. Prijavi nov hrošč',
 
index 26803b5..65ebd7a 100644 (file)
@@ -4124,7 +4124,7 @@ $5
 
 # Friendlier slave lag warnings
 'lag-warn-normal' => 'Измене новије од $1 {{PLURAL:$1|секунде|секунде|секунди}} неће бити приказане.',
-'lag-warn-high' => 'Ð\97бог Ð¿Ñ\80еопÑ\82еÑ\80еÑ\9bеÑ\9aа Ð±Ð°Ð·Ðµ Ð¿Ð¾Ð´Ð°Ñ\82ака, Ð¸Ð·Ð¼ÐµÐ½Ðµ Ð½Ð¾Ð²Ð¸Ñ\98е Ð¾Ð´ $1 {{PLURAL:$1|Ñ\81екÑ\83нде|Ñ\81екÑ\83нде|Ñ\81екÑ\83нди}} неће бити приказане.',
+'lag-warn-high' => 'Ð\97бог Ð¿Ñ\80еопÑ\82еÑ\80еÑ\9bеÑ\9aа Ð±Ð°Ð·Ðµ Ð¿Ð¾Ð´Ð°Ñ\82ака, Ð¸Ð·Ð¼ÐµÐ½Ðµ Ð½Ð¾Ð²Ð¸Ñ\98е Ð¾Ð´ $1 {{PLURAL:$1|Ñ\81екÑ\83нда|Ñ\81екÑ\83нде}} неће бити приказане.',
 
 # Watchlist editor
 'watchlistedit-numitems' => 'Ваш списак надгледања садржи {{PLURAL:$1|један наслов|$1 наслова|$1 наслова}}, без страница за разговор.',
index 71277ec..a7068af 100644 (file)
@@ -1439,7 +1439,7 @@ Upamtite da njegovi popisi ovog vikija mogu biti zastareli.',
 'prefs-rendering' => 'Izgled',
 'saveprefs' => 'Sačuvaj',
 'resetprefs' => 'Očisti nesačuvane izmene',
-'restoreprefs' => 'Vrati sve na podrazumevano',
+'restoreprefs' => 'Vrati sve na podrazumevano (u svim odeljcima)',
 'prefs-editing' => 'Uređivanje',
 'rows' => 'Redova:',
 'columns' => 'Kolone:',
index 7925185..8a1d47e 100644 (file)
@@ -233,7 +233,7 @@ $messages = array(
 'vector-action-undelete' => 'Эгидер',
 'vector-action-unprotect' => 'Камгалалды өскертири',
 'vector-view-create' => 'Чаяары',
-'vector-view-edit' => 'Эдери',
+'vector-view-edit' => 'Эдер',
 'vector-view-history' => 'Төөгүнү көөрү',
 'vector-view-view' => 'Номчуур',
 'vector-view-viewsource' => 'Дөзү бижиин көөрү',
@@ -255,7 +255,7 @@ $messages = array(
 'permalink' => 'Турум холбаа',
 'print' => 'Саазынга үндүрер',
 'view' => 'Көөрү',
-'edit' => 'Эдери',
+'edit' => 'Эдер',
 'create' => 'Чогаадыры',
 'editthispage' => 'Бо арынны өскертири',
 'create-this-page' => 'Бо арынны чогаадыры',
@@ -510,11 +510,11 @@ Please check if you want to create/edit this page.',
 'previewnote' => "'''Бо чүгле шенеп көөрү-дүр.'''
 Бижик ам-даа шыгжатынмаан!",
 'editing' => '«$1» деп арынны эдери',
-'editingsection' => '«$1» деп арынның салбырын эдери',
+'editingsection' => 'Эдилге: «$1» (үлеш)',
 'editingcomment' => '«$1» деп арынны өскертип турар (чаа салбыр)',
 'yourtext' => 'Силерниң сөзүглелиңер',
 'yourdiff' => 'Ылгалдар',
-'templatesused' => 'Бо арында {{PLURAL:$1|Майык|Майыктар}} ажыглаттырган:',
+'templatesused' => 'Бо арында ажыглаан {{PLURAL:$1|Майык|Майыктар}}:',
 'template-protected' => '(камгалаан)',
 'template-semiprotected' => '(четпес камгалаан)',
 'hiddencategories' => 'Бо арын {{PLURAL:$1|$1 чажыт бөлүкке}} хамааржыр:',
@@ -733,7 +733,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'бо арынны номчууру',
-'action-edit' => 'бо арынны эдери',
+'action-edit' => 'бо арынның эдилгези',
 'action-createpage' => 'арыннарны чогаадыры',
 'action-createtalk' => 'чугаалажырга арыннарны чогаадыры',
 'action-createaccount' => 'бо бүрүткел бижиктерин бүдүрери',
@@ -1319,7 +1319,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'table_pager_empty' => 'Түңнеллер чок',
 
 # Auto-summaries
-'autosumm-new' => 'Чаа арынны чогаадаан: «$1»',
+'autosumm-new' => 'Чаа арын чаяатынган: «$1»',
 
 # Watchlist editor
 'watchlistedit-normal-title' => 'Хайгаарал даңзыны өскертири',
index b016193..03321d2 100644 (file)
@@ -783,8 +783,8 @@ Mugomad argumentad čutihe.",
 Znamoičendad: '''({{int:cur}})''' = erod nügüdläižes versijaspäi, '''({{int:last}})''' = erod enččes vepsijaspäi, '''{{int:minoreditletter}}''' = pen' toižetuz.",
 'history-fieldset-title' => 'Lehtelta istorii',
 'history-show-deleted' => 'Vaiše čutud',
-'histfirst' => 'Kaikiš vanhembad',
-'histlast' => 'Tantoižed',
+'histfirst' => 'vanhembad',
+'histlast' => 'udembad',
 'historysize' => '({{PLURAL:$1|1 bait|$1 baitad}})',
 'historyempty' => "(pall'az)",
 
@@ -1251,7 +1251,7 @@ Ku tö kirjutat sen, nece nimi kävutadas, miše ozutada lehtpolen toižetajad.'
 'rc-change-size' => '$1',
 'rc-change-size-new' => "$1 {{PLURAL:$1|bait|baitad}} jäl'ges toižetamišt",
 'newsectionsummary' => "/* $1 */ uz' jaguz",
-'rc-enhanced-expand' => 'Ozutada detalid (JavaScript)',
+'rc-enhanced-expand' => 'Ozutada detalid',
 'rc-enhanced-hide' => 'Peitta detalid',
 'rc-old-title' => 'Om sätud ezmässai kut "$1"',
 
@@ -1937,7 +1937,7 @@ $1',
 'contributions-title' => '$1-kävutajan tond',
 'mycontris' => 'Minun tond',
 'contribsub2' => '$1-kävutajan ($2) tond',
-'uctop' => "(jäl'gmäine)",
+'uctop' => '(nügüdläine)',
 'month' => 'Ku:',
 'year' => 'Voz’:',
 
index a2614eb..8cad007 100644 (file)
@@ -173,6 +173,7 @@ $messages = array(
 'vector-view-history' => 'Wärsjoonsfolche',
 'vector-view-view' => 'Leesn',
 'vector-view-viewsource' => 'Gwäl-dhägsd ôôgugn',
+'actions' => 'Aggdsione',
 'namespaces' => 'Nôômsrajm',
 'variants' => 'Warjandn',
 
@@ -239,6 +240,7 @@ $1",
 'copyright' => 'Was hiir schdäd däfmâr benudsn nach $1',
 'copyrightpage' => '{{ns:project}}:Uurheewâr-rächde',
 'currentevents' => 'Was grôôd basiird is',
+'currentevents-url' => 'Project:Aggduelle Ereichnisse',
 'disclaimers' => 'Imbräsum',
 'disclaimerpage' => 'Project:Imbräsum',
 'edithelp' => 'Hilfe dsum beärbâdn',
@@ -405,6 +407,10 @@ Hirmid sagsd, das Du den dhägsd '''selbâr gschriim''' hasd, das däär dhägsd
 'hiddencategories' => 'Dii sajdn ghäärd dsu {{PLURAL:$1|aanâr fârschdegdn|$1 fârschdegde}} ghadegoriin:',
 'permissionserrorstext-withaction' => 'Du däfsd ned $2, des{{PLURAL:$1||}}dâsweechn:',
 
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => "'''Obachd:''' dii Gräiß vo dii ajbundna Vorlââng is zgrouß, ajniche Vorlââng kenna ned ajbundn wärrn.",
+'post-expand-template-inclusion-category' => 'Sajdn, ba denne vo dii ajbundna Vorlââng dii Gräiß üba da gräißdmöchlichn Gräiß iss',
+
 # History pages
 'viewpagelogs' => 'Logbicher fär dii sajdn dsajchn',
 'currentrev-asof' => 'Jedsiche wärsjoon, am $2 um $3 gmachd',
@@ -445,6 +451,10 @@ Hirmid sagsd, das Du den dhägsd '''selbâr gschriim''' hasd, das däär dhägsd
 'prevn' => '{{PLURAL:$1|foorichâr|fooriche $1}}',
 'nextn' => '{{PLURAL:$1|nägschdâr|nägschde $1}}',
 'viewprevnext' => 'Dsajch ($1 {{int:pipe-separator}} $2) ($3)',
+'searchprofile-articles' => 'Sajdn dii ann Inhald zajng',
+'searchprofile-images' => 'Muldimedjâ',
+'searchprofile-everything' => 'Âlls',
+'searchprofile-advanced' => 'Erwajderd',
 'search-result-size' => '$1 ({{PLURAL:$2|1 wôrd|$2 wärdâr}})',
 'search-result-score' => 'Âjschleechich: $1 %',
 'search-redirect' => '(Wajdalajdung fon „$1“ häa)',
@@ -603,6 +613,9 @@ S'gajd awâr aa â [[Special:WhatLinksHere/$2|lisdn mid alâ fârwajs]].",
 'sharedupload-desc-there' => 'Dii dadaj ghumd fon $1, un mr däf se fir andârâ brojägd aa nemâ. Genauârs schded uf dr [$2 beschrajwungssajdâ fon dr dadaj].',
 'uploadnewversion-linktext' => ' naje wärsjoon fo derä dadaj nauflôôdn',
 
+# Random page
+'randompage' => 'Zufälliche Sajdn',
+
 # Statistics
 'statistics' => 'Schdadisdig',
 
@@ -860,6 +873,7 @@ Bidde gug's mi´m foorschau-gnobf ôô fôrm schbajchan",
 'tooltip-upload' => 'Loos midm nauflaadn',
 'tooltip-rollback' => 'Hiir glign machd mid am môl alâs riggängich, was däär benudsâr dsledschd af där sajdn gmachd had.',
 'tooltip-undo' => 'Hiir glign machd dii aane ändärung riggängich un dsajchd dan ôô, wiis dan ausschaua dääd. Dann koosd aa no â dsamfassung wisoo un warum dâdsuuschrajm.',
+'tooltip-summary' => 'Dibb schnell a glaane Zusammafassung nei.',
 
 # Stylesheets
 'common.css' => '/* CSS hiir beâjflusd ale schelfn */',
index e933c9e..00a8506 100644 (file)
@@ -481,7 +481,7 @@ $messages = array(
 'december-date' => '12月$1日',
 
 # Categories related messages
-'pagecategories' => '$1个分类',
+'pagecategories' => '$1个{{PLURAL:$1|Category|分类}}',
 'category_header' => '分类“$1”中的页面',
 'subcategories' => '子分类',
 'category-media-header' => '分类“$1”中的媒体文件',
@@ -2136,7 +2136,7 @@ $1',
 'fewestrevisions' => '版本最少页面',
 
 # Miscellaneous special pages
-'nbytes' => '$1字节',
+'nbytes' => '$1个{{PLURAL:$1|byte|字节}}',
 'ncategories' => '$1个分类',
 'ninterwikis' => '$1个跨语言链接',
 'nlinks' => '$1个链接',
@@ -3002,7 +3002,7 @@ $2',
 'tooltip-pt-preferences' => '你的设置',
 'tooltip-pt-watchlist' => '你正在监视更改的页面的列表',
 'tooltip-pt-mycontris' => '你的贡献的列表',
-'tooltip-pt-login' => '我们鼓励登录,不过这不是强制的',
+'tooltip-pt-login' => '我们鼓励登录,不过这不是强制的',
 'tooltip-pt-anonlogin' => '我们鼓励你登录,不过这不是强制的',
 'tooltip-pt-logout' => '退出登录',
 'tooltip-ca-talk' => '关于内容页面的讨论',
index e29ffd9..0023c6d 100644 (file)
@@ -453,11 +453,11 @@ abstract class Maintenance {
         */
        public function runChild( $maintClass, $classFile = null ) {
                // Make sure the class is loaded first
-               if ( !MWInit::classExists( $maintClass ) ) {
+               if ( !class_exists( $maintClass ) ) {
                        if ( $classFile ) {
                                require_once $classFile;
                        }
-                       if ( !MWInit::classExists( $maintClass ) ) {
+                       if ( !class_exists( $maintClass ) ) {
                                $this->error( "Cannot spawn child: $maintClass" );
                        }
                }
@@ -1171,7 +1171,7 @@ abstract class Maintenance {
         * @return bool
         */
        public static function posix_isatty( $fd ) {
-               if ( !MWInit::functionExists( 'posix_isatty' ) ) {
+               if ( !function_exists( 'posix_isatty' ) ) {
                        return !$fd;
                } else {
                        return posix_isatty( $fd );
index 69b4b9c..3bd508c 100644 (file)
@@ -53,8 +53,6 @@ $maintenance->setup();
 // to $maintenance->mSelf. Keep that here for b/c
 $self = $maintenance->getName();
 
-# Get the MWInit class
-require_once "$IP/includes/Init.php";
 # Start the autoloader, so that extensions can derive classes from core files
 require_once "$IP/includes/AutoLoader.php";
 # Stub the profiler
@@ -68,7 +66,7 @@ if ( file_exists( "$IP/StartProfiler.php" ) ) {
 
 // Some other requires
 require_once "$IP/includes/Defines.php";
-require_once MWInit::compiledPath( 'includes/DefaultSettings.php' );
+require_once "$IP/includes/DefaultSettings.php";
 
 # Load composer's autoloader if present
 if ( is_readable( "$IP/vendor/autoload.php" ) ) {
@@ -86,7 +84,7 @@ if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
                # Maybe a hook?
                global $cluster;
                $cluster = 'pmtpa';
-               require MWInit::interpretedPath( '../wmf-config/wgConf.php' );
+               require "$IP/../wmf-config/wgConf.php";
        }
        // Require the configuration (probably LocalSettings.php)
        require $maintenance->loadSettings();
@@ -95,7 +93,7 @@ if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
 if ( $maintenance->getDbType() === Maintenance::DB_ADMIN &&
        is_readable( "$IP/AdminSettings.php" ) )
 {
-       require MWInit::interpretedPath( 'AdminSettings.php' );
+       require "$IP/AdminSettings.php";
 }
 
 if ( $maintenance->getDbType() === Maintenance::DB_NONE ) {
@@ -105,7 +103,7 @@ if ( $maintenance->getDbType() === Maintenance::DB_NONE ) {
 }
 $maintenance->finalSetup();
 // Some last includes
-require_once MWInit::compiledPath( 'includes/Setup.php' );
+require_once "$IP/includes/Setup.php";
 
 // Much much faster startup than creating a title object
 $wgTitle = null;
index 0cdc069..c153fa7 100644 (file)
@@ -141,6 +141,7 @@ $wgIgnoredMessages = array(
        'statistics-footer',
        'talkpagetext',
        'uploadfooter',
+       'upload-default-description',
        'listgrouprights-link',
        'search-interwiki-custom',
        'allpages-summary',
index b2db694..43be195 100644 (file)
@@ -1388,6 +1388,7 @@ $wgMessageStructure = array(
                'upload-preferred',
                'upload-prohibited',
                'uploadfooter',
+               'upload-default-description',
                'uploadlog',
                'uploadlogpage',
                'uploadlogpagetext',
index 6fb29be..8bd80c9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Helper class for update.php and upgrade1_5.php.
+ * Helper class for update.php.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
@@ -158,11 +158,7 @@ class UserDupes {
         * @access private
         */
        function lock() {
-               if ( $this->newSchema() ) {
-                       $set = array( 'user', 'revision' );
-               } else {
-                       $set = array( 'user', 'cur', 'old' );
-               }
+               $set = array( 'user', 'revision' );
                $names = array_map( array( $this, 'lockTable' ), $set );
                $tables = implode( ',', $names );
 
@@ -173,14 +169,6 @@ class UserDupes {
                return $this->db->tableName( $table ) . ' WRITE';
        }
 
-       /**
-        * @return bool
-        * @access private
-        */
-       function newSchema() {
-               return MWInit::classExists( 'Revision' );
-       }
-
        /**
         * @access private
         */
@@ -266,27 +254,10 @@ class UserDupes {
         * @access private
         */
        function editCount( $userid ) {
-               if ( $this->newSchema() ) {
-                       return $this->editCountOn( 'revision', 'rev_user', $userid );
-               } else {
-                       return $this->editCountOn( 'cur', 'cur_user', $userid ) +
-                               $this->editCountOn( 'old', 'old_user', $userid );
-               }
-       }
-
-       /**
-        * Count the number of hits on a given table for this account.
-        * @param $table string
-        * @param $field string
-        * @param $userid int
-        * @return int
-        * @access private
-        */
-       function editCountOn( $table, $field, $userid ) {
                return intval( $this->db->selectField(
-                       $table,
+                       'revision',
                        'COUNT(*)',
-                       array( $field => $userid ),
+                       array( 'rev_user' => $userid ),
                        __METHOD__ ) );
        }
 
@@ -296,26 +267,10 @@ class UserDupes {
         * @access private
         */
        function reassignEdits( $from, $to ) {
-               $set = $this->newSchema()
-                       ? array( 'revision' => 'rev_user' )
-                       : array( 'cur' => 'cur_user', 'old' => 'old_user' );
-               foreach ( $set as $table => $field ) {
-                       $this->reassignEditsOn( $table, $field, $from, $to );
-               }
-       }
-
-       /**
-        * @param $table string
-        * @param $field string
-        * @param $from int
-        * @param $to int
-        * @access private
-        */
-       function reassignEditsOn( $table, $field, $from, $to ) {
-               $this->out( "reassigning on $table... " );
-               $this->db->update( $table,
-                       array( $field => $to ),
-                       array( $field => $from ),
+               $this->out( 'reassigning... ' );
+               $this->db->update( 'revision',
+                       array( 'rev_user' => $to ),
+                       array( 'rev_user' => $from ),
                        __METHOD__ );
                $this->out( "ok. " );
        }
index eeb3ae7..7850d03 100644 (file)
@@ -261,7 +261,10 @@ return array(
                'scripts' => 'resources/jquery/jquery.tablesorter.js',
                'styles' => 'resources/jquery/jquery.tablesorter.css',
                'messages' => array( 'sort-descending', 'sort-ascending' ),
-               'dependencies' => 'jquery.mwExtension',
+               'dependencies' => array(
+                       'jquery.mwExtension',
+                       'mediawiki.language.months',
+               ),
        ),
        'jquery.textSelection' => array(
                'scripts' => 'resources/jquery/jquery.textSelection.js',
index b71ef83..bdc6675 100644 (file)
@@ -8,8 +8,9 @@
  * http://www.opensource.org/licenses/mit-license.php
  * http://www.gnu.org/licenses/gpl.html
  *
- * Depends on mw.config (wgDigitTransformTable, wgMonthNames, wgMonthNamesShort,
- * wgDefaultDateFormat, wgContentLanguage)
+ * Depends on mw.config (wgDigitTransformTable, wgDefaultDateFormat, wgContentLanguage)
+ * and mw.language.months.
+ *
  * Uses 'tableSorterCollation' in mw.config (if available)
  */
 /**
                var regex = [];
                ts.monthNames = {};
 
-               for ( var i = 1; i < 13; i++ ) {
-                       var name = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
-                       ts.monthNames[name] = i;
+               for ( var i = 0; i < 12; i++ ) {
+                       var name = mw.language.months.names[i].toLowerCase();
+                       ts.monthNames[name] = i + 1;
+                       regex.push( $.escapeRE( name ) );
+                       name = mw.language.months.genitive[i].toLowerCase().replace( '.', '' );
+                       ts.monthNames[name] = i + 1;
                        regex.push( $.escapeRE( name ) );
-                       name = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
-                       ts.monthNames[name] = i;
+                       name = mw.language.months.abbrev[i].toLowerCase();
+                       ts.monthNames[name] = i + 1;
                        regex.push( $.escapeRE( name ) );
                }
 
index 071a52b..9c3a8b3 100644 (file)
@@ -53,8 +53,9 @@
                                                        || profile.name === 'konqueror' ) ) {
                                util.tooltipAccessKeyPrefix = 'ctrl-';
 
-                       // Firefox 2.x and later
-                       } else if ( profile.name === 'firefox' && profile.versionBase > '1' ) {
+                       // Firefox/Iceweasel 2.x and later
+                       } else if ( ( profile.name === 'firefox' || profile.name === 'iceweasel' )
+                               && profile.versionBase > '1' ) {
                                util.tooltipAccessKeyPrefix = 'alt-shift-';
                        }
 
                 * Get the link to a page name (relative to `wgServer`),
                 *
                 * @param {string} str Page name to get the link for.
+                * @param {Object} params A mapping of query parameter names to values,
+                *     e.g. { action: 'edit' }. Optional.
                 * @return {string} Location for a page with name of `str` or boolean false on error.
                 */
-               wikiGetlink: function ( str ) {
-                       return mw.config.get( 'wgArticlePath' ).replace( '$1',
+               wikiGetlink: function ( str, params ) {
+                       var url = mw.config.get( 'wgArticlePath' ).replace( '$1',
                                util.wikiUrlencode( typeof str === 'string' ? str : mw.config.get( 'wgPageName' ) ) );
+                       if ( params && !$.isEmptyObject( params ) ) {
+                               url += url.indexOf( '?' ) !== -1 ? '&' : '?';
+                               url += $.param( params );
+                       }
+                       return url;
                },
 
                /**
index 146f867..f841afb 100644 (file)
@@ -1239,8 +1239,9 @@ b
 </p><p>b
 </p>
 !! end
+
 !! test
-Block tag on one line
+Block tag on one line (<div>)
 !! input
 a <div>foo</div>
 
@@ -1252,7 +1253,19 @@ a <div>foo</div>
 !! end
 
 !! test
-Block tag on both lines
+Block tag on one line (<blockquote>)
+!! input
+a <blockquote>foo</blockquote>
+
+b
+!! result
+a <blockquote>foo</blockquote>
+<p>b
+</p>
+!! end
+
+!! test
+Block tag on both lines (<div>)
 !! input
 a <div>foo</div>
 
@@ -1263,6 +1276,18 @@ b <div>foo</div>
 
 !! end
 
+!! test
+Block tag on both lines (<blockquote>)
+!! input
+a <blockquote>foo</blockquote>
+
+b <blockquote>foo</blockquote>
+!! result
+a <blockquote>foo</blockquote>
+b <blockquote>foo</blockquote>
+
+!! end
+
 !! test
 Multiple lines without block tags
 !! input
@@ -1389,17 +1414,61 @@ Regression with preformatted in <center>
 
 !! end
 
-# Expected output in the following test is not really expected (there should be
-# <pre> in the output) -- it's only testing for well-formedness.
 !! test
-Bug 6200: Preformatted in <blockquote>
+Bug 52763: Preformatted in <blockquote>
 !! input
 <blockquote>
  Blah
 </blockquote>
 !! result
 <blockquote>
- Blah
+<p> Blah
+</p>
+</blockquote>
+
+!! end
+
+!! test
+Bug 51086: Double newlines in blockquotes should be turned into paragraphs
+!! input
+<blockquote>
+Foo
+
+Bar
+</blockquote>
+!! result
+<blockquote>
+<p>Foo
+</p><p>Bar
+</p>
+</blockquote>
+
+!! end
+
+!! test
+Bug 15491: <ins>/<del> in blockquote
+!! input
+<blockquote>
+Foo <del>bar</del> <ins>baz</ins> quux
+</blockquote>
+!! result
+<blockquote>
+<p>Foo <del>bar</del> <ins>baz</ins> quux
+</p>
+</blockquote>
+
+!! end
+
+# Note that the p-wrapping is newline sensitive, which could be
+# considered a bug: tidy will wrap only the 'Foo' in the example
+# below in a <p> tag. (see comment 23-25 of bug #6200)
+!! test
+Bug 15491: <ins>/<del> in blockquote (2)
+!! input
+<blockquote>Foo <del>bar</del> <ins>baz</ins> quux
+</blockquote>
+!! result
+<blockquote>Foo <del>bar</del> <ins>baz</ins> quux
 </blockquote>
 
 !! end
 !!input
  <p> foo </p>
  <div> foo </div>
+ <blockquote> foo </blockquote>
  <span> foo </span>
 !!result
  <p> foo </p>
  <div> foo </div>
+ <blockquote> foo </blockquote>
 <pre><span> foo </span>
 </pre>
 !!end
@@ -1909,6 +1980,12 @@ c
  foo
 </blockquote>
 
+<blockquote>
+<pre>
+foo
+</pre>
+</blockquote>
+
 <table><tr><td>
  foo
 </td></tr></table>
@@ -1930,7 +2007,13 @@ c
 </pre>
 </center>
 <blockquote>
- foo
+<p> foo
+</p>
+</blockquote>
+<blockquote>
+<pre>
+foo
+</pre>
 </blockquote>
 <table><tr><td>
 <pre>foo
@@ -7288,8 +7371,10 @@ Templates: 1. Simple use
 Templates: 2. Inside a block tag
 !!input
 <div>{{echo|Foo}}</div>
+<blockquote>{{echo|Foo}}</blockquote>
 !!result
 <div>Foo</div>
+<blockquote>Foo</blockquote>
 
 !!end
 
@@ -13610,9 +13695,6 @@ __NOEDITSECTION__
 </p>
 !! end
 
-# Expected output in the following test is not necessarily expected (there
-# should probably be <p> tags inside the <blockquote> in the output) -- it's
-# only testing for well-formedness.
 !! test
 Bug 6200: blockquotes and paragraph formatting
 !! input
@@ -13625,7 +13707,8 @@ bar
  baz
 !! result
 <blockquote>
-foo
+<p>foo
+</p>
 </blockquote>
 <p>bar
 </p>
@@ -14305,8 +14388,6 @@ B</strong>
 # Bug 6200: <blockquote> should behave like <div> with respect to line breaks
 !! test
 Bug 6200: paragraphs inside blockquotes (no extra line breaks)
-!! options
-disabled
 !! input
 <blockquote>Line one
 
@@ -14319,8 +14400,6 @@ Line two</blockquote>
 
 !! test
 Bug 6200: paragraphs inside blockquotes (extra line break on open)
-!! options
-disabled
 !! input
 <blockquote>
 Line one
@@ -14336,8 +14415,6 @@ Line two</blockquote>
 
 !! test
 Bug 6200: paragraphs inside blockquotes (extra line break on close)
-!! options
-disabled
 !! input
 <blockquote>Line one
 
@@ -14353,8 +14430,6 @@ Line two
 
 !! test
 Bug 6200: paragraphs inside blockquotes (extra line break on open and close)
-!! options
-disabled
 !! input
 <blockquote>
 Line one
index 6a2a0df..244b100 100644 (file)
@@ -630,6 +630,15 @@ class GlobalTest extends MediaWikiTestCase {
                return $a;
        }
 
+       function testWfMkdirParents() {
+               // Should not return true if file exists instead of directory
+               $fname = $this->getNewTempFile();
+               wfSuppressWarnings();
+               $ok = wfMkdirParents( $fname );
+               wfRestoreWarnings();
+               $this->assertFalse( $ok );
+       }
+
        /**
         * @dataProvider provideWfShellMaintenanceCmdList
         */
index 342f7d5..ea87ede 100644 (file)
@@ -27,6 +27,7 @@ class InstallDocFormatterTest extends MediaWikiTestCase {
                        array( 'Install &lt;tag>', 'Install <tag>', 'Escaping <' ),
                        array( 'Install &#123;&#123;template}}', 'Install {{template}}', 'Escaping [[' ),
                        array( 'Install &#91;&#91;page]]', 'Install [[page]]', 'Escaping {{' ),
+                       array( 'Install &#95;&#95;TOC&#95;&#95;', 'Install __TOC__', 'Escaping __' ),
                        array( 'Install ', "Install \r", 'Removing \r' ),
 
                        # Transform \t{1,2} into :{1,2}
index e867369..f2676d7 100644 (file)
@@ -17,7 +17,7 @@
                assert.equal( mw.util.wikiUrlencode( 'Test:A & B/Here' ), 'Test:A_%26_B/Here' );
        } );
 
-       QUnit.test( 'wikiGetlink', 3, function ( assert ) {
+       QUnit.test( 'wikiGetlink', 4, function ( assert ) {
                // Not part of startUp module
                mw.config.set( 'wgArticlePath', '/wiki/$1' );
                mw.config.set( 'wgPageName', 'Foobar' );
 
                href = mw.util.wikiGetlink();
                assert.equal( href, '/wiki/Foobar', 'Default title; Get link for current page ("Foobar")' );
+
+               href = mw.util.wikiGetlink( 'Sandbox', { action: 'edit' } );
+               assert.equal( href, '/wiki/Sandbox?action=edit',
+                       'Simple title with query string; Get link for "Sandbox" with action=edit' );
        } );
 
        QUnit.test( 'wikiScript', 4, function ( assert ) {