Merge "Reposition nested FancyCaptcha, conditional help."
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 16 May 2013 20:05:50 +0000 (20:05 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 16 May 2013 20:05:50 +0000 (20:05 +0000)
189 files changed:
.gitignore
RELEASE-NOTES-1.22
img_auth.php
includes/Action.php
includes/Article.php
includes/Block.php
includes/ChangesList.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Export.php
includes/GlobalFunctions.php
includes/HashRing.php
includes/Html.php
includes/Linker.php
includes/LinksUpdate.php
includes/OutputHandler.php
includes/OutputPage.php
includes/PHPVersionError.php
includes/Preferences.php
includes/Revision.php
includes/Sanitizer.php
includes/Setup.php
includes/SiteStats.php
includes/SkinTemplate.php
includes/SpecialPage.php
includes/SpecialPageFactory.php
includes/SqlDataUpdate.php
includes/Status.php
includes/Title.php
includes/User.php
includes/WikiPage.php
includes/Xml.php
includes/actions/HistoryAction.php
includes/api/ApiBase.php
includes/api/ApiEditPage.php
includes/api/ApiPageSet.php
includes/cache/FileCacheBase.php
includes/cache/HTMLFileCache.php
includes/cache/ResourceFileCache.php
includes/content/Content.php
includes/content/CssContent.php
includes/content/JavaScriptContent.php
includes/content/TextContent.php
includes/context/ContextSource.php
includes/context/DerivativeContext.php
includes/context/IContextSource.php
includes/context/RequestContext.php
includes/db/Database.php
includes/db/DatabaseMssql.php
includes/db/DatabaseMysql.php
includes/db/DatabaseOracle.php
includes/db/DatabasePostgres.php
includes/db/DatabaseSqlite.php
includes/db/LoadBalancer.php
includes/diff/DifferenceEngine.php
includes/filebackend/FileOp.php
includes/filerepo/file/LocalFile.php
includes/installer/Installer.i18n.php
includes/job/Job.php
includes/job/JobQueue.php
includes/job/JobQueueDB.php
includes/job/JobQueueFederated.php
includes/job/JobQueueRedis.php
includes/job/jobs/PublishStashedFileJob.php
includes/logging/LogPager.php
includes/media/SVG.php
includes/parser/Parser.php
includes/parser/ParserOptions.php
includes/resourceloader/ResourceLoader.php
includes/search/SearchSqlite.php
includes/site/MediaWikiSite.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialAllpages.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialStatistics.php
includes/specials/SpecialWatchlist.php
includes/templates/NoLocalSettings.php
includes/upload/UploadBase.php
languages/LanguageConverter.php
languages/messages/MessagesAf.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBho.php
languages/messages/MessagesBn.php
languages/messages/MessagesBs.php
languages/messages/MessagesCe.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDv.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGan_hant.php
languages/messages/MessagesGl.php
languages/messages/MessagesGu.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesId.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKm.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesLb.php
languages/messages/MessagesMhr.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMs.php
languages/messages/MessagesNan.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOs.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSe.php
languages/messages/MessagesSl.php
languages/messages/MessagesSv.php
languages/messages/MessagesTe.php
languages/messages/MessagesTh.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesUr.php
languages/messages/MessagesUz.php
languages/messages/MessagesVec.php
languages/messages/MessagesVi.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/copyFileBackend.php
maintenance/fuzz-tester.php
maintenance/language/messages.inc
maintenance/namespaceDupes.php
maintenance/renderDump.php
maintenance/updateCollation.php
resources/Resources.php
resources/mediawiki.page/mediawiki.page.watch.ajax.js
resources/mediawiki.special/mediawiki.special.changeslist.css
skins/CologneBlue.php
skins/cologneblue/print.css [new file with mode: 0644]
skins/monobook/main.css
tests/parser/parserTests.txt
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/HashRingTest.php [new file with mode: 0644]
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/LinksUpdateTest.php
tests/phpunit/includes/RecentChangeTest.php
tests/phpunit/includes/RevisionStorageTest.php
tests/phpunit/includes/RevisionStorageTest_ContentHandlerUseDB.php
tests/phpunit/includes/SanitizerTest.php
tests/phpunit/includes/TitlePermissionTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/XmlSelectTest.php
tests/phpunit/includes/XmlTest.php
tests/phpunit/includes/content/JavaScriptContentTest.php
tests/phpunit/includes/content/TextContentTest.php
tests/phpunit/includes/content/WikitextContentTest.php
tests/phpunit/includes/db/DatabaseSqliteTest.php
tests/phpunit/includes/db/DatabaseTestHelper.php
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/includes/jobqueue/JobQueueTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/search/SearchEngineTest.php
tests/phpunit/includes/specials/SpecialPreferencesTest.php [new file with mode: 0644]
tests/phpunit/maintenance/backupTextPassTest.php
tests/phpunit/maintenance/backup_PageTest.php
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
thumb.php

index dbe20fc..9c0c3b6 100644 (file)
@@ -16,7 +16,9 @@ cscope.out
 ## NetBeans
 nbproject*
 project.index
+## Sublime
 sublime-*
+sftp-config.json
 
 # MediaWiki install & usage
 /cache
index ad12bf9..f9866f8 100644 (file)
@@ -16,6 +16,13 @@ production.
   Special:UserLogin/signup is activated.
 * $wgVectorUseIconWatch is now enabled by default.
 * $wgCascadingRestrictionLevels was added.
+* ftps, ssh, sftp, xmpp, sip, sips, tel, sms, bitcoin, magnet, urn, and geo
+  have been whitelisted inside of $wgUrlProtocols.
+* $wgDocType and $wgDTD have been removed and are no longer used for the DOCTYPE.
+* $wgHtml5 is no longer used by core. Setting it to false will no longer disable HTML5.
+  It is still set to true for extension compatibility but doing so in extensions is deprecated.
+* $wgXhtmlDefaultNamespace is no longer used by core. Setting it will no longer change the
+  xmlns used by MediaWiki. Reliance on this variable by extensions is deprecated.
 
 === New features in 1.22 ===
 * (bug 44525) mediawiki.jqueryMsg can now parse (whitelisted) HTML elements and attributes.
@@ -70,10 +77,12 @@ production.
   uses ES5 getter/setter to emit a warning when they are used.
 * $wgCascadingRestrictionLevels was added, allowing one to specify restriction levels
   which can be cascading (previously 'sysop' was hard-coded as the only one).
+* XHTML5 support has been improved. If you set $wgMimeType = 'application/xhtml+xml'
+  MediaWiki will try outputting markup acording to XHTML5 rules.
 
 === Bug fixes in 1.22 ===
-* Disable Special:PasswordReset when $wgEnableEmail. Previously one could still
-  navigate to the page by entering the URL directly.
+* Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
+  could still navigate to the page by entering the URL directly.
 * (bug 47138) Fixed a fatal error when a blocked user tries to automatically
   create an account on login due external authentication in some circumstances.
 * (bug 23393) HTML <hN> headings containing line breaks are now handled
@@ -91,6 +100,7 @@ production.
 * A bias in wfRandomString() toward digits 1-7 has been corrected. Generated
   strings will now start with digits 0 and 8-f as often as they should.
 * (bug 45371) Removed Parser_LinkHooks and CoreLinkFunctions classes.
+* (bug 41545) Allow <kbd>, <samp>, and <var> to be nested like allowed in html.
 
 === API changes in 1.22 ===
 * (bug 46626) xmldoublequote parameter was removed. Because of a bug, the
@@ -152,6 +162,7 @@ changes to languages because of Bugzilla reports.
   user ID, or file name.  The old Special:Filepath page was reimplemented
   to redirect through Special:Redirect.
 * Monobook: Removed the old conditional stylesheets for Opera 6, 7 and 9.
+* Support for XHTML 1.0 has been removed. MediaWiki now only outputs (X)HTML5.
 
 == Compatibility ==
 
index 667a40a..eba81f3 100644 (file)
@@ -113,6 +113,8 @@ function wfImageAuthMain() {
        }
 
        // Run hook for extension authorization plugins
+       /** @var $result array */
+       $result = null;
        if ( !wfRunHooks( 'ImgAuthBeforeStream', array( &$title, &$path, &$name, &$result ) ) ) {
                wfForbidden( $result[0], $result[1], array_slice( $result, 2 ) );
                return;
index dff3803..e996104 100644 (file)
@@ -213,7 +213,7 @@ abstract class Action {
        /**
         * Shortcut to get the user Language being used for this instance
         *
-        * @deprecated 1.19 Use getLanguage instead
+        * @deprecated since 1.19 Use getLanguage instead
         * @return Language
         */
        final public function getLang() {
index 87b94ae..d23bebf 100644 (file)
@@ -25,7 +25,7 @@
  *
  * This maintains WikiPage functions for backwards compatibility.
  *
- * @todo move and rewrite code to an Action class
+ * @todo Move and rewrite code to an Action class
  *
  * See design.txt for an overview.
  * Note: edit user interface and cache support functions have been
@@ -385,7 +385,8 @@ class Article implements Page {
 
                $content = $this->fetchContentObject();
 
-               $this->mContent = ContentHandler::getContentText( $content ); #@todo: get rid of mContent everywhere!
+               // @todo Get rid of mContent everywhere!
+               $this->mContent = ContentHandler::getContentText( $content );
                ContentHandler::runLegacyHooks( 'ArticleAfterFetchContent', array( &$this, &$this->mContent ) );
 
                wfProfileOut( __METHOD__ );
@@ -787,7 +788,7 @@ class Article implements Page {
         * Show a diff page according to current request variables. For use within
         * Article::view() only, other callers should use the DifferenceEngine class.
         *
-        * @todo: make protected
+        * @todo Make protected
         */
        public function showDiffPage() {
                $request = $this->getContext()->getRequest();
index 47ddc7d..d2f430e 100644 (file)
@@ -683,7 +683,7 @@ class Block {
                if ( $ipblock ) {
                        # Check if the block is an autoblock and would exceed the user block
                        # if renewed. If so, do nothing, otherwise prolong the block time...
-                       if ( $ipblock->mAuto && // @TODO: why not compare $ipblock->mExpiry?
+                       if ( $ipblock->mAuto && // @todo Why not compare $ipblock->mExpiry?
                                $this->mExpiry > Block::getAutoblockExpiry( $ipblock->mTimestamp )
                        ) {
                                # Reset block timestamp to now and its expiry to
index 73d3b61..5ecd4d9 100644 (file)
@@ -618,7 +618,8 @@ class OldChangesList extends ChangesList {
 
                // Indicate watched status on the line to allow for more
                // comprehensive styling.
-               $classes[] = $watched ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
+               $classes[] = $watched && $rc->mAttribs['rc_timestamp'] >= $watched
+                       ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
 
                // Moved pages (very very old, not supported anymore)
                if ( $rc->mAttribs['rc_type'] == RC_MOVE || $rc->mAttribs['rc_type'] == RC_MOVE_OVER_REDIRECT ) {
@@ -880,7 +881,8 @@ class EnhancedChangesList extends ChangesList {
                        $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns'
                                        . $block[0]->mAttribs['rc_namespace'] . '-' . $block[0]->mAttribs['rc_title'] );
                }
-               $classes[] = $block[0]->watched ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
+               $classes[] = $block[0]->watched && $block[0]->mAttribs['rc_timestamp'] >= $block[0]->watched
+                       ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
                $r = Html::openElement( 'table', array( 'class' => $classes ) ) .
                        Html::openElement( 'tr' );
 
@@ -1061,7 +1063,10 @@ class EnhancedChangesList extends ChangesList {
                        $classes = array();
                        $type = $rcObj->mAttribs['rc_type'];
 
-                       $r .= '<tr><td></td><td class="mw-enhanced-rc">';
+                       $trClass = $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched
+                               ? ' class="mw-enhanced-watched"' : '';
+
+                       $r .= '<tr' . $trClass . '><td></td><td class="mw-enhanced-rc">';
                        $r .= $this->recentChangesFlags( array(
                                'newpage' => $type == RC_NEW,
                                'minor' => $rcObj->mAttribs['rc_minor'],
@@ -1202,7 +1207,8 @@ class EnhancedChangesList extends ChangesList {
                        $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns' .
                                        $rcObj->mAttribs['rc_namespace'] . '-' . $rcObj->mAttribs['rc_title'] );
                }
-               $classes[] = $rcObj->watched ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
+               $classes[] = $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched
+                       ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
                $r = Html::openElement( 'table', array( 'class' => $classes ) ) .
                        Html::openElement( 'tr' );
 
index 46ca7ed..2cb0a36 100644 (file)
@@ -2518,48 +2518,36 @@ $wgLocalTZoffset = null;
 $wgMimeType = 'text/html';
 
 /**
- * The content type used in script tags.  This is mostly going to be ignored if
- * $wgHtml5 is true, at least for actual HTML output, since HTML5 doesn't
- * require a MIME type for JavaScript or CSS (those are the default script and
- * style languages).
+ * The content type used in script tags.  This is mostly going to be ignored at
+ * least for actual HTML output, since HTML5 doesn't require a MIME type for
+ * JavaScript or CSS (those are the default script and style languages).
  */
 $wgJsMimeType = 'text/javascript';
 
 /**
- * The HTML document type.  Ignored if $wgHtml5 is true, since <!DOCTYPE html>
- * doesn't actually have a doctype part to put this variable's contents in.
- */
-$wgDocType = '-//W3C//DTD XHTML 1.0 Transitional//EN';
-
-/**
- * The URL of the document type declaration.  Ignored if $wgHtml5 is true,
- * since HTML5 has no DTD, and <!DOCTYPE html> doesn't actually have a DTD part
- * to put this variable's contents in.
- */
-$wgDTD = 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd';
-
-/**
- * The default xmlns attribute.  Ignored if $wgHtml5 is true (or it's supposed
- * to be), since we don't currently support XHTML5, and in HTML5 (i.e., served
- * as text/html) the attribute has no effect, so why bother?
+ * The default xmlns attribute. The option to define this has been removed.
+ * The value of this variable is no longer used by core and is set to a fixed
+ * value in Setup.php for compatibility with extensions that depend on the value
+ * of this variable being set. Such a dependency however is deprecated.
+ * @deprecated since 1.22
  */
-$wgXhtmlDefaultNamespace = 'http://www.w3.org/1999/xhtml';
+$wgXhtmlDefaultNamespace = null;
 
 /**
- * Should we output an HTML5 doctype?  If false, use XHTML 1.0 Transitional
- * instead, and disable HTML5 features.  This may eventually be removed and set
- * to always true.  If it's true, a number of other settings will be irrelevant
- * and have no effect.
+ * Previously used to determine if we should output an HTML5 doctype.
+ * This is no longer used as we always output HTML5 now. For compatibility with
+ * extensions that still check the value of this config it's value is now forced
+ * to true by Setup.php.
+ * @deprecated since 1.22
  */
 $wgHtml5 = true;
 
 /**
  * Defines the value of the version attribute in the &lt;html&gt; tag, if any.
- * This is ignored if $wgHtml5 is false.  If $wgAllowRdfaAttributes and
- * $wgHtml5 are both true, and this evaluates to boolean false (like if it's
- * left at the default null value), it will be auto-initialized to the correct
- * value for RDFa+HTML5.  As such, you should have no reason to ever actually
- * set this to anything.
+ * If $wgAllowRdfaAttributes is true, and this evaluates to boolean false
+ * (like if it's left at the default null value), it will be auto-initialized
+ * to the correct value for RDFa+HTML5.  As such, you should have no reason to
+ * ever actually set this to anything.
  */
 $wgHtml5Version = null;
 
@@ -2570,7 +2558,7 @@ $wgHtml5Version = null;
 $wgAllowRdfaAttributes = false;
 
 /**
- * Enabled HTML5 microdata attributes for use in wikitext, if $wgHtml5 is also true.
+ * Enabled HTML5 microdata attributes for use in wikitext.
  */
 $wgAllowMicrodataAttributes = false;
 
@@ -2604,8 +2592,7 @@ $wgWellFormedXml = true;
  * Normally we wouldn't have to define this in the root "<html>"
  * element, but IE needs it there in some circumstances.
  *
- * This is ignored if $wgHtml5 is true, for the same reason as
- * $wgXhtmlDefaultNamespace.
+ * This is ignored if $wgMimeType is set to a non-XML mimetype.
  */
 $wgXhtmlNamespaces = array();
 
@@ -3377,17 +3364,29 @@ $wgUrlProtocols = array(
        'http://',
        'https://',
        'ftp://',
+       'ftps://', // If we allow ftp:// we should allow the secure version.
+       'ssh://',
+       'sftp://', // SFTP > FTP
        'irc://',
        'ircs://', // @bug 28503
+       'xmpp:', // Another open communication protocol
+       'sip:',
+       'sips:',
        'gopher://',
        'telnet://', // Well if we're going to support the above.. -ævar
        'nntp://', // @bug 3808 RFC 1738
        'worldwind://',
        'mailto:',
+       'tel:', // If we can make emails linkable, why not phone numbers?
+       'sms:', // Likewise this is standardized too
        'news:',
        'svn://',
        'git://',
        'mms://',
+       'bitcoin:', // Even registerProtocolHandler whitelists this along with mailto:
+       'magnet:', // No reason to reject torrents over magnet: when they're allowed over http://
+       'urn:', // Allow URNs to be used in Microdata/RDFa <link ... href="urn:...">s
+       'geo:', // geo: urls define locations, they're useful in Microdata/RDFa and when mentioning coordinates.
        '//', // for protocol-relative URLs
 );
 
@@ -5792,7 +5791,7 @@ $wgDisableQueryPageUpdate = false;
  * List of special pages, followed by what subtitle they should go under
  * at Special:SpecialPages
  *
- * @deprecated 1.21 Override SpecialPage::getGroupName instead
+ * @deprecated since 1.21 Override SpecialPage::getGroupName instead
  */
 $wgSpecialPageGroups = array();
 
@@ -6319,7 +6318,7 @@ $wgContentHandlerUseDB = true;
  * of texts are also rendered as wikitext, it only means that links, magic words, etc will have
  * the effect on the database they would have on a wikitext page.
  *
- * @todo: On the long run, it would be nice to put categories etc into a separate structure,
+ * @todo On the long run, it would be nice to put categories etc into a separate structure,
  * or at least parse only the contents of comments in the scripts.
  *
  * @since 1.21
index c97431a..27f4556 100644 (file)
@@ -2138,7 +2138,7 @@ class EditPage {
                        }
                }
 
-               //@todo: add EditForm plugin interface and use it here!
+               // @todo add EditForm plugin interface and use it here!
                //       search for textarea1 and textares2, and allow EditForm to override all uses.
                $wgOut->addHTML( Html::openElement( 'form', array( 'id' => self::EDITFORM_ID, 'name' => self::EDITFORM_ID,
                        'method' => 'post', 'action' => $this->getActionURL( $this->getContextTitle() ),
index e533dbc..a26e853 100644 (file)
@@ -689,7 +689,7 @@ class XmlDumpWriter {
                        $content_model = strval( $row->rev_content_model );
                } else {
                        // probably using $wgContentHandlerUseDB = false;
-                       // @todo: test!
+                       // @todo test!
                        $title = Title::makeTitle( $row->page_namespace, $row->page_title );
                        $content_model = ContentHandler::getDefaultModelFor( $title );
                }
@@ -700,7 +700,7 @@ class XmlDumpWriter {
                        $content_format = strval( $row->rev_content_format );
                } else {
                        // probably using $wgContentHandlerUseDB = false;
-                       // @todo: test!
+                       // @todo test!
                        $content_handler = ContentHandler::getForModelID( $content_model );
                        $content_format = $content_handler->getDefaultFormat();
                }
index 5c45577..78fcb8b 100644 (file)
@@ -1674,7 +1674,7 @@ function wfMsgExt( $key, $options ) {
 
 /**
  * Since wfMsg() and co suck, they don't return false if the message key they
- * looked up didn't exist but a XHTML string, this function checks for the
+ * looked up didn't exist but instead the key wrapped in <>'s, this function checks for the
  * nonexistence of messages by checking the MessageCache::get() result directly.
  *
  * @deprecated since 1.18. Use Message::isDisabled().
index 227a287..cd39ad8 100644 (file)
@@ -36,8 +36,8 @@ class HashRing {
         * @param array $map (location => weight)
         */
        public function __construct( array $map ) {
-               $sum = array_sum( $map );
-               if ( !count( $map ) || $sum <= 0 ) {
+               $map = array_filter( $map, function( $w ) { return $w > 0; } );
+               if ( !count( $map ) ) {
                        throw new MWException( "Ring is empty or all weights are zero." );
                }
                // Sort the locations based on the hash of their names
@@ -49,6 +49,7 @@ class HashRing {
                        return strcmp( $hashes[$a], $hashes[$b] );
                } );
                // Fit the map to weight-proportionate one with a space of size RING_SIZE
+               $sum = array_sum( $map );
                $standardMap = array();
                foreach ( $map as $location => $weight ) {
                        $standardMap[$location] = (int)floor( $weight / $sum * self::RING_SIZE );
index cb082a1..e7455b7 100644 (file)
@@ -36,8 +36,8 @@
  *
  * There are two important configuration options this class uses:
  *
- * $wgHtml5: If this is set to false, then all output should be valid XHTML 1.0
- *     Transitional.
+ * $wgMimeType: If this is set to an xml mimetype then output should be
+ *     valid XHTML5.
  * $wgWellFormedXml: If this is set to true, then all output should be
  *     well-formed XML (quotes on attributes, self-closing tags, etc.).
  *
@@ -101,19 +101,6 @@ class Html {
                'itemscope',
        );
 
-       private static $HTMLFiveOnlyAttribs = array(
-               'autocomplete',
-               'autofocus',
-               'max',
-               'min',
-               'multiple',
-               'pattern',
-               'placeholder',
-               'required',
-               'step',
-               'spellcheck',
-       );
-
        /**
         * Returns an HTML element in a string.  The major advantage here over
         * manually typing out the HTML is that it will escape all attribute
@@ -177,7 +164,7 @@ class Html {
         * @return string
         */
        public static function openElement( $element, $attribs = array() ) {
-               global $wgHtml5, $wgWellFormedXml;
+               global $wgWellFormedXml;
                $attribs = (array)$attribs;
                // This is not required in HTML5, but let's do it anyway, for
                // consistency and better compression.
@@ -204,36 +191,28 @@ class Html {
                                'image',
                                'reset',
                                'button',
-                       );
 
-                       // Allow more input types in HTML5 mode
-                       if ( $wgHtml5 ) {
-                               $validTypes = array_merge( $validTypes, array(
-                                       'datetime',
-                                       'datetime-local',
-                                       'date',
-                                       'month',
-                                       'time',
-                                       'week',
-                                       'number',
-                                       'range',
-                                       'email',
-                                       'url',
-                                       'search',
-                                       'tel',
-                                       'color',
-                               ) );
-                       }
+                               // HTML input types
+                               'datetime',
+                               'datetime-local',
+                               'date',
+                               'month',
+                               'time',
+                               'week',
+                               'number',
+                               'range',
+                               'email',
+                               'url',
+                               'search',
+                               'tel',
+                               'color',
+                       );
                        if ( isset( $attribs['type'] )
                        && !in_array( $attribs['type'], $validTypes ) ) {
                                unset( $attribs['type'] );
                        }
                }
 
-               if ( !$wgHtml5 && $element == 'textarea' && isset( $attribs['maxlength'] ) ) {
-                       unset( $attribs['maxlength'] );
-               }
-
                // According to standard the default type for <button> elements is "submit".
                // Depending on compatibility mode IE might use "button", instead.
                // We enforce the standard "submit".
@@ -294,12 +273,6 @@ class Html {
         * @return array An array of attributes functionally identical to $attribs
         */
        private static function dropDefaults( $element, $attribs ) {
-               // Don't bother doing anything if we aren't outputting HTML5; it's too
-               // much of a pain to maintain two sets of defaults.
-               global $wgHtml5;
-               if ( !$wgHtml5 ) {
-                       return $attribs;
-               }
 
                // Whenever altering this array, please provide a covering test case
                // in HtmlTest::provideElementsWithAttributesHavingDefaultValues
@@ -444,7 +417,7 @@ class Html {
         *   (starting with a space if at least one attribute is output)
         */
        public static function expandAttributes( $attribs ) {
-               global $wgHtml5, $wgWellFormedXml;
+               global $wgWellFormedXml;
 
                $ret = '';
                $attribs = (array)$attribs;
@@ -460,15 +433,10 @@ class Html {
                                $key = $value;
                        }
 
-                       // Not technically required in HTML5, but required in XHTML 1.0,
-                       // and we'd like consistency and better compression anyway.
+                       // Not technically required in HTML5 but we'd like consistency
+                       // and better compression anyway.
                        $key = strtolower( $key );
 
-                       // Here we're blacklisting some HTML5-only attributes...
-                       if ( !$wgHtml5 && in_array( $key, self::$HTMLFiveOnlyAttribs ) ) {
-                               continue;
-                       }
-
                        // Bug 23769: Blacklist all form validation attributes for now.  Current
                        // (June 2010) WebKit has no UI, so the form just refuses to submit
                        // without telling the user why, which is much worse than failing
@@ -552,15 +520,12 @@ class Html {
                        }
 
                        if ( in_array( $key, self::$boolAttribs ) ) {
-                               // In XHTML 1.0 Transitional, the value needs to be equal to the
-                               // key.  In HTML5, we can leave the value empty instead.  If we
-                               // don't need well-formed XML, we can omit the = entirely.
+                               // In HTML5, we can leave the value empty. If we don't need
+                               // well-formed XML, we can omit the = entirely.
                                if ( !$wgWellFormedXml ) {
                                        $ret .= " $key";
-                               } elseif ( $wgHtml5 ) {
-                                       $ret .= " $key=\"\"";
                                } else {
-                                       $ret .= " $key=\"$key\"";
+                                       $ret .= " $key=\"\"";
                                }
                        } else {
                                // Apparently we need to entity-encode \n, \r, \t, although the
@@ -602,14 +567,10 @@ class Html {
         * @return string Raw HTML
         */
        public static function inlineScript( $contents ) {
-               global $wgHtml5, $wgJsMimeType, $wgWellFormedXml;
+               global $wgWellFormedXml;
 
                $attrs = array();
 
-               if ( !$wgHtml5 ) {
-                       $attrs['type'] = $wgJsMimeType;
-               }
-
                if ( $wgWellFormedXml && preg_match( '/[<&]/', $contents ) ) {
                        $contents = "/*<![CDATA[*/$contents/*]]>*/";
                }
@@ -625,14 +586,8 @@ class Html {
         * @return string Raw HTML
         */
        public static function linkedScript( $url ) {
-               global $wgHtml5, $wgJsMimeType;
-
                $attrs = array( 'src' => $url );
 
-               if ( !$wgHtml5 ) {
-                       $attrs['type'] = $wgJsMimeType;
-               }
-
                return self::element( 'script', $attrs );
        }
 
@@ -677,8 +632,7 @@ class Html {
 
        /**
         * Convenience function to produce an "<input>" element.  This supports the
-        * new HTML5 input types and attributes, and will silently strip them if
-        * $wgHtml5 is false.
+        * new HTML5 input types and attributes.
         *
         * @param $name    string name attribute
         * @param $value   mixed  value attribute
@@ -712,9 +666,7 @@ class Html {
         * Convenience function to produce an "<input>" element.
         *
         * This supports leaving out the cols= and rows= which Xml requires and are
-        * required by HTML4/XHTML but not required by HTML5 and will silently set
-        * cols="" and rows="" if $wgHtml5 is false and cols and rows are omitted
-        * (HTML4 validates present but empty cols="" and rows="" as valid).
+        * required by HTML4/XHTML but not required by HTML5.
         *
         * @param $name    string name attribute
         * @param $value   string value attribute
@@ -723,20 +675,8 @@ class Html {
         * @return string Raw HTML
         */
        public static function textarea( $name, $value = '', $attribs = array() ) {
-               global $wgHtml5;
-
                $attribs['name'] = $name;
 
-               if ( !$wgHtml5 ) {
-                       if ( !isset( $attribs['cols'] ) ) {
-                               $attribs['cols'] = "";
-                       }
-
-                       if ( !isset( $attribs['rows'] ) ) {
-                               $attribs['rows'] = "";
-                       }
-               }
-
                if ( substr( $value, 0, 1 ) == "\n" ) {
                        // Workaround for bug 12130: browsers eat the initial newline
                        // assuming that it's just for show, but they do keep the later
@@ -859,28 +799,29 @@ class Html {
        public static function htmlHeader( $attribs = array() ) {
                $ret = '';
 
-               global $wgMimeType;
-
-               if ( self::isXmlMimeType( $wgMimeType ) ) {
-                       $ret .= "<?xml version=\"1.0\" encoding=\"UTF-8\" ?" . ">\n";
-               }
+               global $wgHtml5Version, $wgMimeType, $wgXhtmlNamespaces;
 
-               global $wgHtml5, $wgHtml5Version, $wgDocType, $wgDTD;
-               global $wgXhtmlNamespaces, $wgXhtmlDefaultNamespace;
+               $isXHTML = self::isXmlMimeType( $wgMimeType );
 
-               if ( $wgHtml5 ) {
-                       $ret .= "<!DOCTYPE html>\n";
+               if ( $isXHTML ) { // XHTML5
+                       // XML mimetyped markup should have an xml header.
+                       // However a DOCTYPE is not needed.
+                       $ret .= "<?xml version=\"1.0\" encoding=\"UTF-8\" ?" . ">\n";
 
-                       if ( $wgHtml5Version ) {
-                               $attribs['version'] = $wgHtml5Version;
-                       }
-               } else {
-                       $ret .= "<!DOCTYPE html PUBLIC \"$wgDocType\" \"$wgDTD\">\n";
-                       $attribs['xmlns'] = $wgXhtmlDefaultNamespace;
+                       // Add the standard xmlns
+                       $attribs['xmlns'] = 'http://www.w3.org/1999/xhtml';
 
+                       // And support custom namespaces
                        foreach ( $wgXhtmlNamespaces as $tag => $ns ) {
                                $attribs["xmlns:$tag"] = $ns;
                        }
+               } else { // HTML5
+                       // DOCTYPE
+                       $ret .= "<!DOCTYPE html>\n";
+               }
+
+               if ( $wgHtml5Version ) {
+                       $attribs['version'] = $wgHtml5Version;
                }
 
                $html = Html::openElement( 'html', $attribs );
@@ -901,14 +842,11 @@ class Html {
         * @return Boolean
         */
        public static function isXmlMimeType( $mimetype ) {
-               switch ( $mimetype ) {
-                       case 'text/xml':
-                       case 'application/xhtml+xml':
-                       case 'application/xml':
-                               return true;
-                       default:
-                               return false;
-               }
+               # http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#xml-mime-type
+               # * text/xml
+               # * application/xml
+               # * Any mimetype with a subtype ending in +xml (this implicitly includes application/xhtml+xml)
+               return (bool) preg_match( '!^(text|application)/xml$|^.+/.+\+xml$!', $mimetype );
        }
 
        /**
index 4003efb..3529d28 100644 (file)
@@ -1740,7 +1740,7 @@ class Linker {
         */
        public static function makeHeadline( $level, $attribs, $anchor, $html, $link, $legacyAnchor = false ) {
                $ret = "<h$level$attribs"
-                       . "<span class=\"mw-headline\" id=\"$anchor\">$html</span> "
+                       . "<span class=\"mw-headline\" id=\"$anchor\">$html</span>"
                        . $link
                        . "</h$level>";
                if ( $legacyAnchor !== false ) {
index 8c6d762..4b1b5b8 100644 (file)
@@ -27,7 +27,7 @@
  */
 class LinksUpdate extends SqlDataUpdate {
 
-       // @todo: make members protected, but make sure extensions don't break
+       // @todo make members protected, but make sure extensions don't break
 
        public $mId,         //!< Page ID of the article linked from
                $mTitle,         //!< Title object of the article linked from
index e7928cc..5104a1a 100644 (file)
@@ -177,20 +177,8 @@ function wfHtmlValidationHandler( $s ) {
 
        header( 'Cache-Control: no-cache' );
 
-       $out = <<<EOT
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr">
-<head>
-<title>HTML validation error</title>
-<style>
-.highlight { background-color: #ffc }
-li { white-space: pre }
-</style>
-</head>
-<body>
-<h1>HTML validation error</h1>
-<ul>
-EOT;
+       $out = Html::element( 'h1', null, 'HTML validation error' );
+       $out .= Html::openElement( 'ul' );
 
        $error = strtok( $errors, "\n" );
        $badLines = array();
@@ -198,26 +186,40 @@ EOT;
                if ( preg_match( '/^line (\d+)/', $error, $m ) ) {
                        $lineNum = intval( $m[1] );
                        $badLines[$lineNum] = true;
-                       $out .= "<li><a href=\"#line-{$lineNum}\">" . htmlspecialchars( $error ) . "</a></li>\n";
+                       $out .= Html::rawElement( 'li', null,
+                               Html::element( 'a', array( 'href' => "#line-{$lineNum}" ), $error ) ) . "\n";
                }
                $error = strtok( "\n" );
        }
 
-       $out .= '</ul>';
-       $out .= '<pre>' . htmlspecialchars( $errors ) . '</pre>';
-       $out .= "<ol>\n";
+       $out .= Html::closeElement( 'ul' );
+       $out .= Html::element( 'pre', null, $errors );
+       $out .= Html::openElement( 'ol' ) . "\n";
        $line = strtok( $s, "\n" );
        $i = 1;
        while ( $line !== false ) {
+               $attrs = array();
                if ( isset( $badLines[$i] ) ) {
-                       $out .= "<li class=\"highlight\" id=\"line-$i\">";
-               } else {
-                       $out .= '<li>';
+                       $attrs['class'] = 'highlight';
+                       $attrs['id'] = "line-$i";
                }
-               $out .= htmlspecialchars( $line ) . "</li>\n";
+               $out .= Html::element( 'li', $attrs, $line ) . "\n";
                $line = strtok( "\n" );
                $i++;
        }
-       $out .= '</ol></body></html>';
+       $out .= Html::closeElement( 'ol' );
+
+       $style = <<<CSS
+.highlight { background-color: #ffc }
+li { white-space: pre }
+CSS;
+
+       $out = Html::htmlHeader( array( 'lang' => 'en', 'dir' => 'ltr' ) ) .
+               Html::rawElement( 'head', null,
+                       Html::element( 'title', null, 'HTML validation error' ) .
+                       Html::inlineStyle( $style ) ) .
+               Html::rawElement( 'body', null, $out ) .
+               Html::closeElement( 'html' );
+
        return $out;
 }
index 746cd0e..d379e46 100644 (file)
@@ -1296,7 +1296,6 @@ class OutputPage extends ContextSource {
         * Return whether user JavaScript is allowed for this page
         * @deprecated since 1.18 Load modules with ResourceLoader, and origin and
         *     trustworthiness is identified and enforced automagically.
-        *     Will be removed in 1.20.
         * @return Boolean
         */
        public function isUserJsAllowed() {
@@ -2968,7 +2967,7 @@ $templates
                // This also enforces $.isReady to be true at </body> which fixes the
                // mw.loader bug in Firefox with using document.write between </body>
                // and the DOMContentReady event (bug 47457).
-               $html = Html::inlineScript( 'jQuery.ready();' );
+               $html = Html::inlineScript( 'window.jQuery && jQuery.ready();' );
 
                if ( !$wgResourceLoaderExperimentalAsyncLoading ) {
                        $html .= $this->getScriptsForBottomQueue( false );
@@ -3134,7 +3133,7 @@ $templates
         */
        public function getHeadLinksArray( $addContentType = false ) {
                global $wgUniversalEditButton, $wgFavicon, $wgAppleTouchIcon, $wgEnableAPI,
-                       $wgSitename, $wgVersion, $wgHtml5, $wgMimeType,
+                       $wgSitename, $wgVersion,
                        $wgFeed, $wgOverrideSiteFeed, $wgAdvertisedFeedTypes,
                        $wgDisableLangConversion, $wgCanonicalLanguageLinks,
                        $wgRightsPage, $wgRightsUrl;
@@ -3144,20 +3143,9 @@ $templates
                $canonicalUrl = $this->mCanonicalUrl;
 
                if ( $addContentType ) {
-                       if ( $wgHtml5 ) {
-                               # More succinct than <meta http-equiv=Content-Type>, has the
-                               # same effect
-                               $tags['meta-charset'] = Html::element( 'meta', array( 'charset' => 'UTF-8' ) );
-                       } else {
-                               $tags['meta-content-type'] = Html::element( 'meta', array(
-                                       'http-equiv' => 'Content-Type',
-                                       'content' => "$wgMimeType; charset=UTF-8"
-                               ) );
-                               $tags['meta-content-style-type'] = Html::element( 'meta', array( // bug 15835
-                                       'http-equiv' => 'Content-Style-Type',
-                                       'content' => 'text/css'
-                               ) );
-                       }
+                       # More succinct than <meta http-equiv=Content-Type>, has the
+                       # same effect
+                       $tags['meta-charset'] = Html::element( 'meta', array( 'charset' => 'UTF-8' ) );
                }
 
                $tags['meta-generator'] = Html::element( 'meta', array(
index c9321f0..02d3546 100644 (file)
@@ -61,12 +61,12 @@ function wfPHPVersionError( $type ) {
                header( 'Pragma: no-cache' );
 
                $finalOutput = <<<HTML
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml' lang='en'>
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
        <head>
+               <meta charset="UTF-8" />
                <title>MediaWiki {$mwVersion}</title>
-               <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
-               <style type='text/css' media='screen'>
+               <style media='screen'>
                        body {
                                color: #000;
                                background-color: #fff;
index 972e2c6..d83f43a 100644 (file)
@@ -90,10 +90,14 @@ class Preferences {
                        }
                }
 
+               ## Make sure that form fields have their parent set. See bug 41337.
+               $dummyForm = new HTMLForm( array(), $context );
+
                ## Prod in defaults from the user
                foreach ( $defaultPreferences as $name => &$info ) {
                        $prefFromUser = self::getOptionFromUser( $name, $info, $user );
                        $field = HTMLForm::loadInputFromParameters( $name, $info ); // For validation
+                       $field->mParent = $dummyForm;
                        $defaultOptions = User::getDefaultOptions();
                        $globalDefault = isset( $defaultOptions[$name] )
                                ? $defaultOptions[$name]
@@ -1476,7 +1480,7 @@ class Preferences {
        }
 
        /**
-        * @deprecated in 1.19; will be removed in 1.20.
+        * @deprecated in 1.19
         * @param $user User
         * @return array
         */
index 1a7d825..47626a2 100644 (file)
@@ -560,7 +560,7 @@ class Revision implements IDBAccessObject {
 
                        # if we have a content object, use it to set the model and type
                        if ( !empty( $row['content'] ) ) {
-                               //@todo: when is that set? test with external store setup! check out insertOn() [dk]
+                               // @todo when is that set? test with external store setup! check out insertOn() [dk]
                                if ( !empty( $row['text_id'] ) ) {
                                        throw new MWException( "Text already stored in external store (id {$row['text_id']}), " .
                                                "can't serialize content object" );
@@ -918,7 +918,7 @@ class Revision implements IDBAccessObject {
         *              to the $audience parameter
         *
         * @deprecated in 1.21, use getContent() instead
-        * @todo: replace usage in core
+        * @todo Replace usage in core
         * @return String
         */
        public function getText( $audience = self::FOR_PUBLIC, User $user = null ) {
index e757021..d3e3d1a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * XHTML sanitizer for %MediaWiki.
+ * HTML sanitizer for %MediaWiki.
  *
  * Copyright © 2002-2005 Brion Vibber <brion@pobox.com> et al
  * http://www.mediawiki.org/
@@ -25,7 +25,7 @@
  */
 
 /**
- * XHTML sanitizer for MediaWiki
+ * HTML sanitizer for MediaWiki
  * @ingroup Parser
  */
 class Sanitizer {
@@ -364,7 +364,7 @@ class Sanitizer {
         * @return string
         */
        static function removeHTMLtags( $text, $processCallback = null, $args = array(), $extratags = array(), $removetags = array() ) {
-               global $wgUseTidy, $wgHtml5, $wgAllowMicrodataAttributes, $wgAllowImageTag;
+               global $wgUseTidy, $wgAllowMicrodataAttributes, $wgAllowImageTag;
 
                static $htmlpairsStatic, $htmlsingle, $htmlsingleonly, $htmlnest, $tabletags,
                        $htmllist, $listtags, $htmlsingleallowed, $htmlelementsStatic, $staticInitialised;
@@ -373,7 +373,7 @@ class Sanitizer {
 
                // Base our staticInitialised variable off of the global config state so that if the globals
                // are changed (like in the screwed up test system) we will re-initialise the settings.
-               $globalContext = implode( '-', compact( 'wgHtml5', 'wgAllowMicrodataAttributes', 'wgAllowImageTag' ) );
+               $globalContext = implode( '-', compact( 'wgAllowMicrodataAttributes', 'wgAllowImageTag' ) );
                if ( !$staticInitialised || $staticInitialised != $globalContext ) {
 
                        $htmlpairsStatic = array( # Tags that must be closed
@@ -382,24 +382,22 @@ class Sanitizer {
                                'strike', 'strong', 'tt', 'var', 'div', 'center',
                                'blockquote', 'ol', 'ul', 'dl', 'table', 'caption', 'pre',
                                'ruby', 'rt', 'rb', 'rp', 'p', 'span', 'abbr', 'dfn',
-                               'kbd', 'samp'
+                               'kbd', 'samp', 'data', 'time', 'mark'
                        );
-                       if ( $wgHtml5 ) {
-                               $htmlpairsStatic = array_merge( $htmlpairsStatic, array( 'data', 'time', 'mark' ) );
-                       }
                        $htmlsingle = array(
                                'br', 'hr', 'li', 'dt', 'dd'
                        );
                        $htmlsingleonly = array( # Elements that cannot have close tags
                                'br', 'hr'
                        );
-                       if ( $wgHtml5 && $wgAllowMicrodataAttributes ) {
+                       if ( $wgAllowMicrodataAttributes ) {
                                $htmlsingle[] = $htmlsingleonly[] = 'meta';
                                $htmlsingle[] = $htmlsingleonly[] = 'link';
                        }
                        $htmlnest = array( # Tags that can be nested--??
                                'table', 'tr', 'td', 'th', 'div', 'blockquote', 'ol', 'ul',
-                               'li', 'dl', 'dt', 'dd', 'font', 'big', 'small', 'sub', 'sup', 'span'
+                               'li', 'dl', 'dt', 'dd', 'font', 'big', 'small', 'sub', 'sup', 'span',
+                               'var', 'kbd', 'samp'
                        );
                        $tabletags = array( # Can only appear inside table, we will close them
                                'td', 'th', 'tr',
@@ -709,7 +707,7 @@ class Sanitizer {
         * @todo Check for unique id attribute :P
         */
        static function validateAttributes( $attribs, $whitelist ) {
-               global $wgAllowRdfaAttributes, $wgAllowMicrodataAttributes, $wgHtml5;
+               global $wgAllowRdfaAttributes, $wgAllowMicrodataAttributes;
 
                $whitelist = array_flip( $whitelist );
                $hrefExp = '/^(' . wfUrlProtocols() . ')[^\s]+$/';
@@ -725,8 +723,8 @@ class Sanitizer {
                                continue;
                        }
 
-                       # Allow any attribute beginning with "data-", if in HTML5 mode
-                       if ( !( $wgHtml5 && preg_match( '/^data-/i', $attribute ) ) && !isset( $whitelist[$attribute] ) ) {
+                       # Allow any attribute beginning with "data-"
+                       if ( !preg_match( '/^data-/i', $attribute ) && !isset( $whitelist[$attribute] ) ) {
                                continue;
                        }
 
@@ -1029,10 +1027,10 @@ class Sanitizer {
         * @return String
         */
        static function escapeId( $id, $options = array() ) {
-               global $wgHtml5, $wgExperimentalHtmlIds;
+               global $wgExperimentalHtmlIds;
                $options = (array)$options;
 
-               if ( $wgHtml5 && $wgExperimentalHtmlIds && !in_array( 'legacy', $options ) ) {
+               if ( $wgExperimentalHtmlIds && !in_array( 'legacy', $options ) ) {
                        $id = Sanitizer::decodeCharReferences( $id );
                        $id = preg_replace( '/[ \t\n\r\f_\'"&#%]+/', '_', $id );
                        $id = trim( $id, '_' );
@@ -1422,10 +1420,10 @@ class Sanitizer {
         * @return Array
         */
        static function setupAttributeWhitelist() {
-               global $wgAllowRdfaAttributes, $wgHtml5, $wgAllowMicrodataAttributes;
+               global $wgAllowRdfaAttributes, $wgAllowMicrodataAttributes;
 
                static $whitelist, $staticInitialised;
-               $globalContext = implode( '-', compact( 'wgAllowRdfaAttributes', 'wgHtml5', 'wgAllowMicrodataAttributes' ) );
+               $globalContext = implode( '-', compact( 'wgAllowRdfaAttributes', 'wgAllowMicrodataAttributes' ) );
 
                if ( isset( $whitelist ) && $staticInitialised == $globalContext ) {
                        return $whitelist;
@@ -1451,7 +1449,7 @@ class Sanitizer {
                        ) );
                }
 
-               if ( $wgHtml5 && $wgAllowMicrodataAttributes ) {
+               if ( $wgAllowMicrodataAttributes ) {
                        # add HTML5 microdata tags as specified by http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#the-microdata-model
                        $common = array_merge( $common, array(
                                'itemid', 'itemprop', 'itemref', 'itemscope', 'itemtype'
@@ -1590,8 +1588,8 @@ class Sanitizer {
                        # 15.3
                        'hr'         => array_merge( $common, array( 'noshade', 'size', 'width' ) ),
 
-                       # XHTML Ruby annotation text module, simple ruby only.
-                       # http://www.w3c.org/TR/ruby/
+                       # HTML Ruby annotation text module, simple ruby only.
+                       # http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-ruby-element
                        'ruby'       => $common,
                        # rbc
                        # rtc
@@ -1607,25 +1605,20 @@ class Sanitizer {
                        # HTML 5 section 4.6
                        'bdi' => $common,
 
-               );
-
-               if ( $wgHtml5 ) {
                        # HTML5 elements, defined by:
                        # http://www.whatwg.org/specs/web-apps/current-work/multipage/
-                       $whitelist += array(
-                               'data' => array_merge( $common, array( 'value' ) ),
-                               'time' => array_merge( $common, array( 'datetime' ) ),
-                               'mark' => $common,
-
-                               // meta and link are only permitted by removeHTMLtags when Microdata
-                               // is enabled so we don't bother adding a conditional to hide these
-                               // Also meta and link are only valid in WikiText as Microdata elements
-                               // (ie: validateTag rejects tags missing the attributes needed for Microdata)
-                               // So we don't bother including $common attributes that have no purpose.
-                               'meta' => array( 'itemprop', 'content' ),
-                               'link' => array( 'itemprop', 'href' ),
-                       );
-               }
+                       'data' => array_merge( $common, array( 'value' ) ),
+                       'time' => array_merge( $common, array( 'datetime' ) ),
+                       'mark' => $common,
+
+                       // meta and link are only permitted by removeHTMLtags when Microdata
+                       // is enabled so we don't bother adding a conditional to hide these
+                       // Also meta and link are only valid in WikiText as Microdata elements
+                       // (ie: validateTag rejects tags missing the attributes needed for Microdata)
+                       // So we don't bother including $common attributes that have no purpose.
+                       'meta' => array( 'itemprop', 'content' ),
+                       'link' => array( 'itemprop', 'href' ),
+               );
 
                $staticInitialised = $globalContext;
 
index 565ca49..acbc3b6 100644 (file)
@@ -344,7 +344,14 @@ foreach ( $wgDisabledActions as $action ) {
        $wgActions[$action] = false;
 }
 
-if ( !$wgHtml5Version && $wgHtml5 && $wgAllowRdfaAttributes ) {
+# We always output html5 since 1.22, override any change made by local settings
+$wgHtml5 = true;
+
+# Setting wgXhtmlDefaultNamespace is not supported since 1.22.
+# However we define it here for extensions that depend on its value.
+$wgXhtmlDefaultNamespace = 'http://www.w3.org/1999/xhtml';
+
+if ( !$wgHtml5Version && $wgAllowRdfaAttributes ) {
        # see http://www.w3.org/TR/rdfa-in-html/#document-conformance
        if ( $wgMimeType == 'application/xhtml+xml' ) {
                $wgHtml5Version = 'XHTML+RDFa 1.0';
index 66bc9ee..02e1911 100644 (file)
@@ -258,7 +258,7 @@ class SiteStatsUpdate implements DeferrableUpdate {
        protected $users = 0;
        protected $images = 0;
 
-       // @TODO: deprecate this constructor
+       // @todo deprecate this constructor
        function __construct( $views, $edits, $good, $pages = 0, $users = 0 ) {
                $this->views = $views;
                $this->edits = $edits;
index e53d424..e3a6ccf 100644 (file)
@@ -174,7 +174,7 @@ class SkinTemplate extends Skin {
                global $wgContLang;
                global $wgScript, $wgStylePath;
                global $wgMimeType, $wgJsMimeType;
-               global $wgXhtmlDefaultNamespace, $wgXhtmlNamespaces, $wgHtml5Version;
+               global $wgXhtmlNamespaces, $wgHtml5Version;
                global $wgDisableCounters, $wgSitename, $wgLogo;
                global $wgMaxCredits, $wgShowCreditsIfMax;
                global $wgPageShowWatchingUsers;
@@ -236,7 +236,7 @@ class SkinTemplate extends Skin {
 
                        $tpl->set( 'jsvarurl', false );
 
-                       $tpl->setRef( 'xhtmldefaultnamespace', $wgXhtmlDefaultNamespace );
+                       $tpl->set( 'xhtmldefaultnamespace', 'http://www.w3.org/1999/xhtml' );
                        $tpl->set( 'xhtmlnamespaces', $wgXhtmlNamespaces );
                        $tpl->set( 'html5version', $wgHtml5Version );
                        $tpl->set( 'headlinks', $out->getHeadLinks() );
index f619c79..38448cd 100644 (file)
@@ -797,7 +797,7 @@ class SpecialPage {
        /**
         * Shortcut to get user's language
         *
-        * @deprecated 1.19 Use getLanguage instead
+        * @deprecated since 1.19 Use getLanguage instead
         * @return Language
         * @since 1.18
         */
index 3c4e61d..4d63553 100644 (file)
@@ -287,7 +287,7 @@ class SpecialPageFactory {
         *
         * @param $page Mixed: SpecialPage or string
         * @param $group String
-        * @deprecated 1.21 Override SpecialPage::getGroupName
+        * @deprecated since 1.21 Override SpecialPage::getGroupName
         */
        public static function setGroup( $page, $group ) {
                wfDeprecated( __METHOD__, '1.21' );
@@ -302,7 +302,7 @@ class SpecialPageFactory {
         *
         * @param $page SpecialPage
         * @return String
-        * @deprecated 1.21 Use SpecialPage::getFinalGroupName
+        * @deprecated since 1.21 Use SpecialPage::getFinalGroupName
         */
        public static function getGroup( &$page ) {
                wfDeprecated( __METHOD__, '1.21' );
index 79dcdc5..51188d8 100644 (file)
@@ -56,7 +56,7 @@ abstract class SqlDataUpdate extends DataUpdate {
                        $this->mOptions = array( 'FOR UPDATE' );
                }
 
-               // @todo: get connection only when it's needed? make sure that doesn't break anything, especially transactions!
+               // @todo get connection only when it's needed? make sure that doesn't break anything, especially transactions!
                $this->mDb = wfGetDB( DB_MASTER );
 
                $this->mWithTransaction = $withTransaction;
index 64a3c60..f0253df 100644 (file)
@@ -234,7 +234,7 @@ class Status {
         *
         * @note: this does not perform a full wikitext to HTML conversion, it merely applies
         *        a message transformation.
-        * @todo: figure out whether that is actually The Right Thing.
+        * @todo figure out whether that is actually The Right Thing.
         */
        public function getHTML( $shortContext = false, $longContext = false ) {
                $text = $this->getWikiText( $shortContext, $longContext );
index 70e8cd4..14915e5 100644 (file)
@@ -944,7 +944,7 @@ class Title {
         * @return Bool
         */
        public function isConversionTable() {
-               //@todo: ConversionTable should become a separate content model.
+               // @todo ConversionTable should become a separate content model.
 
                return $this->getNamespace() == NS_MEDIAWIKI &&
                        strpos( $this->getText(), 'Conversiontable/' ) === 0;
@@ -2242,7 +2242,7 @@ class Title {
         * Protect css subpages of user pages: can $wgUser edit
         * this page?
         *
-        * @deprecated in 1.19; will be removed in 1.20. Use getUserPermissionsErrors() instead.
+        * @deprecated in 1.19; use getUserPermissionsErrors() instead.
         * @return Bool
         */
        public function userCanEditCssSubpage() {
@@ -2256,7 +2256,7 @@ class Title {
         * Protect js subpages of user pages: can $wgUser edit
         * this page?
         *
-        * @deprecated in 1.19; will be removed in 1.20. Use getUserPermissionsErrors() instead.
+        * @deprecated in 1.19; use getUserPermissionsErrors() instead.
         * @return Bool
         */
        public function userCanEditJsSubpage() {
@@ -2349,7 +2349,7 @@ class Title {
        /**
         * Update the title protection status
         *
-        * @deprecated in 1.19; will be removed in 1.20. Use WikiPage::doUpdateRestrictions() instead.
+        * @deprecated in 1.19; use WikiPage::doUpdateRestrictions() instead.
         * @param $create_perm String Permission required for creation
         * @param string $reason Reason for protection
         * @param string $expiry Expiry timestamp
index d114b99..1d87d40 100644 (file)
@@ -4507,8 +4507,7 @@ class User {
         *
         * @return array Array of HTML attributes suitable for feeding to
         *   Html::element(), directly or indirectly.  (Don't feed to Xml::*()!
-        *   That will potentially output invalid XHTML 1.0 Transitional, and will
-        *   get confused by the boolean attribute syntax used.)
+        *   That will get confused by the boolean attribute syntax used.)
         */
        public static function passwordChangeInputAttribs() {
                global $wgMinimalPasswordLength;
index da6fff3..b8f4911 100644 (file)
@@ -187,7 +187,7 @@ class WikiPage implements Page, IDBAccessObject {
         * (and only when) $wgActions[$action] === true. This allows subclasses
         * to override the default behavior.
         *
-        * @todo: move this UI stuff somewhere else
+        * @todo Move this UI stuff somewhere else
         *
         * @return Array
         */
@@ -648,7 +648,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @return String|false The text of the current revision
         * @deprecated as of 1.21, getContent() should be used instead.
         */
-       public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) { // @todo: deprecated, replace usage!
+       public function getText( $audience = Revision::FOR_PUBLIC, User $user = null ) { // @todo deprecated, replace usage!
                ContentHandler::deprecated( __METHOD__, '1.21' );
 
                $this->loadLastEdit();
@@ -1175,7 +1175,7 @@ class WikiPage implements Page, IDBAccessObject {
                }
 
                if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI ) {
-                       // @todo: move this logic to MessageCache
+                       // @todo move this logic to MessageCache
 
                        if ( $this->exists() ) {
                                // NOTE: use transclusion text for messages.
@@ -1459,8 +1459,8 @@ class WikiPage implements Page, IDBAccessObject {
         *
         * @return boolean whether sections are supported.
         *
-        * @todo: the skin should check this and not offer section functionality if sections are not supported.
-        * @todo: the EditPage should check this and not offer section functionality if sections are not supported.
+        * @todo The skin should check this and not offer section functionality if sections are not supported.
+        * @todo The EditPage should check this and not offer section functionality if sections are not supported.
         */
        public function supportsSections() {
                return $this->getContentHandler()->supportsSections();
@@ -1956,7 +1956,7 @@ class WikiPage implements Page, IDBAccessObject {
                $options = $this->getContentHandler()->makeParserOptions( $context );
 
                if ( $this->getTitle()->isConversionTable() ) {
-                       //@todo: ConversionTable should become a separate content model, so we don't need special cases like this one.
+                       // @todo ConversionTable should become a separate content model, so we don't need special cases like this one.
                        $options->disableContentConversion();
                }
 
@@ -2110,7 +2110,7 @@ class WikiPage implements Page, IDBAccessObject {
 
                DeferredUpdates::addUpdate( new SiteStatsUpdate( 0, 1, $good, $total ) );
                DeferredUpdates::addUpdate( new SearchUpdate( $id, $title, $content->getTextForSearchIndex() ) );
-               // @TODO: let the search engine decide what to do with the content object
+               // @todo let the search engine decide what to do with the content object
 
                // If this is another user's talk page, update newtalk.
                // Don't do this if $options['changed'] = false (null-edits) nor if
@@ -2673,7 +2673,7 @@ class WikiPage implements Page, IDBAccessObject {
         * performs permissions checks on $user, then calls commitRollback()
         * to do the dirty work
         *
-        * @todo: separate the business/permission stuff out from backend code
+        * @todo Separate the business/permission stuff out from backend code
         *
         * @param string $fromP Name of the user whose edits to rollback.
         * @param string $summary Custom summary. Set to default summary if empty.
@@ -2941,7 +2941,7 @@ class WikiPage implements Page, IDBAccessObject {
         * Purge caches on page update etc
         *
         * @param $title Title object
-        * @todo:  verify that $title is always a Title object (and never false or null), add Title hint to parameter $title
+        * @todo Verify that $title is always a Title object (and never false or null), add Title hint to parameter $title
         */
        public static function onArticleEdit( $title ) {
                // Invalidate caches of articles which include this page
@@ -3403,7 +3403,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        function doWork() {
                global $wgUseFileCache;
 
-               // @todo: several of the methods called on $this->page are not declared in Page, but present
+               // @todo several of the methods called on $this->page are not declared in Page, but present
                //        in WikiPage and delegated by Article.
 
                $isCurrent = $this->revid === $this->page->getLatest();
index c62cbdf..3eedeb2 100644 (file)
@@ -739,8 +739,8 @@ class Xml {
        /**
         * Generate a form (without the opening form element).
         * Output optionally includes a submit button.
-        * @param array $fields Associative array, key is message corresponding to a description for the field (colon is in the message), value is appropriate input.
-        * @param string $submitLabel A message containing a label for the submit button.
+        * @param array $fields Associative array, key is the name of a message that contains a description for the field, value is an HTML string containing the appropriate input.
+        * @param string $submitLabel The name of a message containing a label for the submit button.
         * @return string HTML form.
         */
        public static function buildForm( $fields, $submitLabel = null ) {
@@ -750,6 +750,11 @@ class Xml {
                foreach ( $fields as $labelmsg => $input ) {
                        $id = "mw-$labelmsg";
                        $form .= Xml::openElement( 'tr', array( 'id' => $id ) );
+
+                       // TODO use a <label> here for accessibility purposes - will need
+                       // to either not use a table to build the form, or find the ID of
+                       // the input somehow.
+
                        $form .= Xml::tags( 'td', array( 'class' => 'mw-label' ), wfMessage( $labelmsg )->parse() );
                        $form .= Xml::openElement( 'td', array( 'class' => 'mw-input' ) ) . $input . Xml::closeElement( 'td' );
                        $form .= Xml::closeElement( 'tr' );
index 911fd58..f43736b 100644 (file)
@@ -789,7 +789,7 @@ class HistoryPager extends ReverseChronologicalPager {
                if ( $this->getNumRows() > 1 ) {
                        $id = $rev->getId();
                        $radio = array( 'type' => 'radio', 'value' => $id );
-                       /** @todo: move title texts to javascript */
+                       /** @todo Move title texts to javascript */
                        if ( $firstInList ) {
                                $first = Xml::element( 'input',
                                        array_merge( $radio, array(
index c500370..7e7365f 100644 (file)
@@ -1577,10 +1577,9 @@ abstract class ApiBase extends ContextSource {
                        }
                        if ( array_key_exists( 'continue', $params ) ) {
                                $ret[] = array(
-                                       array(
-                                               'code' => 'badcontinue',
-                                               'info' => 'Invalid continue param. You should pass the original value returned by the previous query'
-                                       ) );
+                                       'code' => 'badcontinue',
+                                       'info' => 'Invalid continue param. You should pass the original value returned by the previous query'
+                               );
                        }
                }
 
index e7e5e1d..3d0b425 100644 (file)
@@ -146,7 +146,7 @@ class ApiEditPage extends ApiBase {
                                }
                        }
 
-                       // @todo: Add support for appending/prepending to the Content interface
+                       // @todo Add support for appending/prepending to the Content interface
 
                        if ( !( $content instanceof TextContent ) ) {
                                $mode = $contentHandler->getModelID();
index 3caf81f..fbe5973 100644 (file)
@@ -604,7 +604,7 @@ class ApiPageSet extends ApiBase {
 
        /**
         * Do not use, does nothing, will be removed
-        * @deprecated 1.21
+        * @deprecated since 1.21
         */
        public function finishPageSetGeneration() {
                wfDeprecated( __METHOD__, '1.21' );
index 7310f61..d4bf5ee 100644 (file)
@@ -35,7 +35,7 @@ abstract class FileCacheBase {
        /* lazy loaded */
        protected $mCached;
 
-       /* @TODO: configurable? */
+       /* @todo configurable? */
        const MISS_FACTOR = 15; // log 1 every MISS_FACTOR cache misses
        const MISS_TTL_SEC = 3600; // how many seconds ago is "recent"
 
index 8233481..ab37911 100644 (file)
@@ -182,7 +182,7 @@ class HTMLFileCache extends FileCacheBase {
 
                // gzip output to buffer as needed and set headers...
                if ( $this->useGzip() ) {
-                       // @TODO: ugly wfClientAcceptsGzip() function - use context!
+                       // @todo Ugly wfClientAcceptsGzip() function - use context!
                        if ( wfClientAcceptsGzip() ) {
                                header( 'Content-Encoding: gzip' );
                                return $compressed;
index 61f1e8c..2ad7b85 100644 (file)
@@ -29,7 +29,7 @@
 class ResourceFileCache extends FileCacheBase {
        protected $mCacheWorthy;
 
-       /* @TODO: configurable? */
+       /* @todo configurable? */
        const MISS_THRESHOLD = 360; // 6/min * 60 min
 
        /**
index 72729b0..5a90e09 100644 (file)
@@ -40,8 +40,8 @@ interface Content {
         *   building a full text search index. If no useful representation exists,
         *   this method returns an empty string.
         *
-        * @todo: test that this actually works
-        * @todo: make sure this also works with LuceneSearch / WikiSearch
+        * @todo Test that this actually works
+        * @todo Make sure this also works with LuceneSearch / WikiSearch
         */
        public function getTextForSearchIndex();
 
@@ -51,11 +51,11 @@ interface Content {
         * @return string|false The wikitext to include when another page includes this
         * content, or false if the content is not includable in a wikitext page.
         *
-        * @todo allow native handling, bypassing wikitext representation, like
-        *    for includable special pages.
-        * @todo allow transclusion into other content models than Wikitext!
-        * @todo used in WikiPage and MessageCache to get message text. Not so
-        *    nice. What should we use instead?!
+        * @todo Allow native handling, bypassing wikitext representation, like
+        *  for includable special pages.
+        * @todo Allow transclusion into other content models than Wikitext!
+        * @todo Used in WikiPage and MessageCache to get message text. Not so
+        *  nice. What should we use instead?!
         */
        public function getWikitextForTransclusion();
 
index 569d122..03cc2d0 100644 (file)
@@ -46,7 +46,7 @@ class CssContent extends TextContent {
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                global $wgParser;
-               // @todo: make pre-save transformation optional for script pages
+               // @todo Make pre-save transformation optional for script pages
 
                $text = $this->getNativeData();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, $popts );
index 9cd947f..2ae572b 100644 (file)
@@ -46,7 +46,7 @@ class JavaScriptContent extends TextContent {
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                global $wgParser;
-               // @todo: make pre-save transformation optional for script pages
+               // @todo Make pre-save transformation optional for script pages
                // See bug #32858
 
                $text = $this->getNativeData();
index 8fafcb6..f66dacd 100644 (file)
@@ -171,7 +171,7 @@ class TextContent extends AbstractContent {
 
                $this->checkModelID( $that->getModel() );
 
-               # @todo: could implement this in DifferenceEngine and just delegate here?
+               // @todo could implement this in DifferenceEngine and just delegate here?
 
                if ( !$lang ) {
                        $lang = $wgContLang;
index 33f51cb..e13cfa8 100644 (file)
@@ -125,7 +125,7 @@ abstract class ContextSource implements IContextSource {
        /**
         * Get the Language object
         *
-        * @deprecated 1.19 Use getLanguage instead
+        * @deprecated since 1.19 Use getLanguage instead
         * @return Language
         */
        public function getLang() {
index b9a7006..eda56a7 100644 (file)
@@ -209,7 +209,7 @@ class DerivativeContext extends ContextSource {
        /**
         * Set the Language object
         *
-        * @deprecated 1.19 Use setLanguage instead
+        * @deprecated since 1.19 Use setLanguage instead
         * @param Language|string $l Language instance or language code
         */
        public function setLang( $l ) {
@@ -237,7 +237,7 @@ class DerivativeContext extends ContextSource {
        }
 
        /**
-        * @deprecated 1.19 Use getLanguage instead
+        * @deprecated since 1.19 Use getLanguage instead
         * @return Language
         */
        public function getLang() {
index c7b221b..35d5aed 100644 (file)
@@ -79,7 +79,7 @@ interface IContextSource {
        /**
         * Get the Language object
         *
-        * @deprecated 1.19 Use getLanguage instead
+        * @deprecated since 1.19 Use getLanguage instead
         * @return Language
         */
        public function getLang();
index fd99caf..cb26dcf 100644 (file)
@@ -233,7 +233,7 @@ class RequestContext implements IContextSource {
        /**
         * Set the Language object
         *
-        * @deprecated 1.19 Use setLanguage instead
+        * @deprecated since 1.19 Use setLanguage instead
         * @param Language|string $l Language instance or language code
         */
        public function setLang( $l ) {
@@ -261,7 +261,7 @@ class RequestContext implements IContextSource {
        }
 
        /**
-        * @deprecated 1.19 Use getLanguage instead
+        * @deprecated since 1.19 Use getLanguage instead
         * @return Language
         */
        public function getLang() {
index 85c459e..09866dc 100644 (file)
@@ -184,7 +184,7 @@ interface DatabaseType {
         *
         * @return string: wikitext of a link to the server software's web site
         */
-       static function getSoftwareLink();
+       function getSoftwareLink();
 
        /**
         * A string describing the current software version, like from
index 130ac70..240a097 100644 (file)
@@ -654,7 +654,7 @@ class DatabaseMssql extends DatabaseBase {
        /**
         * @return string wikitext of a link to the server software's web site
         */
-       public static function getSoftwareLink() {
+       public function getSoftwareLink() {
                return "[http://www.microsoft.com/sql/ MS SQL Server]";
        }
 
index d8a3723..ca5a2b4 100644 (file)
@@ -671,7 +671,7 @@ class DatabaseMysql extends DatabaseBase {
        /**
         * @return string
         */
-       public static function getSoftwareLink() {
+       public function getSoftwareLink() {
                return '[http://www.mysql.com/ MySQL]';
        }
 
index c197d91..4fa2397 100644 (file)
@@ -837,7 +837,7 @@ class DatabaseOracle extends DatabaseBase {
        /**
         * @return string wikitext of a link to the server software's web site
         */
-       public static function getSoftwareLink() {
+       public function getSoftwareLink() {
                return '[http://www.oracle.com/ Oracle]';
        }
 
index b5ac5cb..367335e 100644 (file)
@@ -1059,7 +1059,7 @@ __INDEXATTR__;
        /**
         * @return string wikitext of a link to the server software's web site
         */
-       public static function getSoftwareLink() {
+       public function getSoftwareLink() {
                return '[http://www.postgresql.org/ PostgreSQL]';
        }
 
index 53a4dcf..6692fa4 100644 (file)
@@ -68,7 +68,7 @@ class DatabaseSqlite extends DatabaseBase {
        }
 
        /**
-        * @todo: check if it should be true like parent class
+        * @todo Check if it should be true like parent class
         *
         * @return bool
         */
@@ -612,7 +612,7 @@ class DatabaseSqlite extends DatabaseBase {
        /**
         * @return string wikitext of a link to the server software's web site
         */
-       public static function getSoftwareLink() {
+       public function getSoftwareLink() {
                return "[http://sqlite.org/ SQLite]";
        }
 
index f702047..12e493a 100644 (file)
@@ -117,7 +117,7 @@ class LoadBalancer {
         * Given an array of non-normalised probabilities, this function will select
         * an element and return the appropriate key
         *
-        * @deprecated 1.21, use ArrayUtils::pickRandom()
+        * @deprecated since 1.21, use ArrayUtils::pickRandom()
         *
         * @param $weights array
         *
index 8ee2b82..4ee5014 100644 (file)
@@ -505,7 +505,7 @@ class DifferenceEngine extends ContextSource {
                        if ( $this->mNewPage->isCssJsSubpage() || $this->mNewPage->isCssOrJsPage() ) {
                                // Stolen from Article::view --AG 2007-10-11
                                // Give hooks a chance to customise the output
-                               // @TODO: standardize this crap into one function
+                               // @todo standardize this crap into one function
                                if ( ContentHandler::runLegacyHooks( 'ShowRawCssJs', array( $this->mNewContent, $this->mNewPage, $out ) ) ) {
                                        // NOTE: deprecated hook, B/C only
                                        // use the content object's own rendering
index 80afcf2..e4059d7 100644 (file)
@@ -64,7 +64,7 @@ abstract class FileOp {
        final public function __construct( FileBackendStore $backend, array $params ) {
                $this->backend = $backend;
                list( $required, $optional ) = $this->allowedParams();
-               // @TODO: normalizeAnyStoragePaths() calls are overzealous, use a parameter list
+               // @todo normalizeAnyStoragePaths() calls are overzealous, use a parameter list
                foreach ( $required as $name ) {
                        if ( isset( $params[$name] ) ) {
                                // Normalize paths so the paths to the same file have the same string
index 932a1d4..3cb1f41 100644 (file)
@@ -1686,8 +1686,10 @@ class LocalFile extends File {
         * @return bool Whether to cache in RepoGroup (this avoids OOMs)
         */
        function isCacheable() {
-               $this->load(); // if loaded from cache, metadata will be null if it didn't fit
-               return $this->metadata !== null && strlen( $this->metadata ) <= self::CACHE_FIELD_MAX_LEN;
+               $this->load();
+               // If extra data (metadata) was not loaded then it must have been large
+               return $this->extraDataLoaded
+                       && strlen( serialize( $this->metadata ) ) <= self::CACHE_FIELD_MAX_LEN;
        }
 
        /**
index 637210b..a3b98e0 100644 (file)
@@ -6495,16 +6495,17 @@ $messages['gan-hans'] = array(
 );
 
 /** Traditional Gan script (贛語(繁體)‎)
+ * @author Symane
  */
 $messages['gan-hant'] = array(
-       'mainpagetext' => "'''å®\89è£\9dæ­£MediaWikiå\98\8d。'''",
+       'mainpagetext' => "'''å®\89è£\9dæ­£MediaWikiå\93©。'''",
        'mainpagedocfooter' => '參看[//meta.wikimedia.org/wiki/Help:Contents 用戶指南]裡頭會話到啷用wiki軟件
 
 == 開始使用 ==
 
 * [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定列表]
 * [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 平常問題解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈email清單]',
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈email清單]', # Fuzzy
 );
 
 /** Scottish Gaelic (Gàidhlig)
@@ -12288,6 +12289,7 @@ Dir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki el
        'config-install-step-failed' => 'huet net fonctionnéiert',
        'config-install-extensions' => 'Mat den Ereiderungen',
        'config-install-database' => 'Datebank gëtt installéiert',
+       'config-install-pg-plpgsql' => 'No der Sprooch PL/pgSQL sichen',
        'config-pg-no-plpgsql' => "Fir d'Datebank $1 muss d'Datebanksprooch PL/pgSQL installéiert ginn",
        'config-install-user' => 'Datebank Benotzer uleeën',
        'config-install-user-alreadyexists' => 'De Benotzer "$1" gëtt et schonn!',
@@ -12305,12 +12307,13 @@ Dir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki el
        'config-help' => 'Hëllef',
        'config-nofile' => 'De Fichier "$1" gouf net fonnt. Gouf e geläscht?',
        'mainpagetext' => "'''MediaWiki gouf installéiert.'''",
-       'mainpagedocfooter' => "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir den Interface ze personnaliséieren.
+       'mainpagedocfooter' => "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.
 
-== Starthëllefen ==
+== Fir  unzefänken ==
 * [//www.mediawiki.org/wiki/Manual:Configuration_settings Hëllef bei der Konfiguratioun]
 * [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]", # Fuzzy
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]
+* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]",
 );
 
 /** Lingua Franca Nova (Lingua Franca Nova)
index bb6fb04..ab7df5d 100644 (file)
@@ -84,7 +84,7 @@ abstract class Job {
         *
         * @param array $jobs of Job objects
         * @return bool
-        * @deprecated 1.21
+        * @deprecated since 1.21
         */
        public static function batchInsert( $jobs ) {
                return JobQueueGroup::singleton()->push( $jobs );
@@ -99,7 +99,7 @@ abstract class Job {
         *
         * @param array $jobs of Job objects
         * @return bool
-        * @deprecated 1.21
+        * @deprecated since 1.21
         */
        public static function safeBatchInsert( $jobs ) {
                return JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
@@ -112,7 +112,7 @@ abstract class Job {
         *
         * @param $type string
         * @return Job|bool Returns false if there are no jobs
-        * @deprecated 1.21
+        * @deprecated since 1.21
         */
        public static function pop_type( $type ) {
                return JobQueueGroup::singleton()->get( $type )->pop();
@@ -123,7 +123,7 @@ abstract class Job {
         * This is subject to $wgJobTypesExcludedFromDefaultQueue.
         *
         * @return Job or false if there's no jobs
-        * @deprecated 1.21
+        * @deprecated since 1.21
         */
        public static function pop() {
                return JobQueueGroup::singleton()->pop();
@@ -150,7 +150,7 @@ abstract class Job {
 
        /**
         * @return integer May be 0 for jobs stored outside the DB
-        * @deprecated 1.22
+        * @deprecated since 1.22
         */
        public function getId() {
                return $this->id;
@@ -270,7 +270,7 @@ abstract class Job {
        /**
         * Insert a single job into the queue.
         * @return bool true on success
-        * @deprecated 1.21
+        * @deprecated since 1.21
         */
        public function insert() {
                return JobQueueGroup::singleton()->push( $this );
index 08d4f39..3295c24 100644 (file)
@@ -507,6 +507,28 @@ abstract class JobQueue {
                return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, 'rootjob', $signature );
        }
 
+       /**
+        * Deleted all unclaimed and delayed jobs from the queue
+        *
+        * @return bool Success
+        * @throws MWException
+        * @since 1.22
+        */
+       final public function delete() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doDelete();
+               wfProfileOut( __METHOD__ );
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::delete()
+        * @return bool Success
+        */
+       protected function doDelete() {
+               throw new MWException( "This method is not implemented." );
+       }
+
        /**
         * Wait for any slaves or backup servers to catch up.
         *
index 6f4f6d9..0e68355 100644 (file)
@@ -270,6 +270,11 @@ class JobQueueDB extends JobQueue {
 
                list( $dbw, $scope ) = $this->getMasterDB();
                $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
+               $autoTrx = $dbw->getFlag( DBO_TRX ); // get current setting
+               $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
+               $scopedReset = new ScopedCallback( function() use ( $dbw, $autoTrx ) {
+                       $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore old setting
+               } );
 
                $uuid = wfRandomString( 32 ); // pop attempt
                $job = false; // job popped off
@@ -457,6 +462,11 @@ class JobQueueDB extends JobQueue {
 
                list( $dbw, $scope ) = $this->getMasterDB();
                $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
+               $autoTrx = $dbw->getFlag( DBO_TRX ); // get current setting
+               $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
+               $scopedReset = new ScopedCallback( function() use ( $dbw, $autoTrx ) {
+                       $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore old setting
+               } );
 
                // Delete a row with a single DELETE without holding row locks over RTTs...
                $dbw->delete( 'job',
@@ -499,6 +509,17 @@ class JobQueueDB extends JobQueue {
                return true;
        }
 
+       /**
+        * @see JobQueue::doDelete()
+        * @return bool
+        */
+       protected function doDelete() {
+               list( $dbw, $scope ) = $this->getMasterDB();
+
+               $dbw->delete( 'job', array( 'job_cmd' => $this->type ) );
+               return true;
+       }
+
        /**
         * @see JobQueue::doWaitForBackups()
         * @return void
index b517d55..db5b686 100644 (file)
@@ -298,6 +298,12 @@ class JobQueueFederated extends JobQueue {
                return $this->partitionQueues[$job->metadata['QueuePartition']]->ack( $job );
        }
 
+       protected function doDelete() {
+               foreach ( $this->partitionQueues as $queue ) {
+                       $queue->doDelete();
+               }
+       }
+
        protected function doWaitForBackups() {
                foreach ( $this->partitionQueues as $queue ) {
                        $queue->waitForBackups();
index 249ba27..8250d2b 100644 (file)
@@ -484,6 +484,26 @@ LUA;
                return ( $timestamp && $timestamp > $params['rootJobTimestamp'] );
        }
 
+       /**
+        * @see JobQueue::doDelete()
+        * @return bool
+        */
+       protected function doDelete() {
+               static $props = array( 'l-unclaimed', 'z-claimed', 'z-abandoned',
+                       'z-delayed', 'h-idBySha1', 'h-sha1ById', 'h-attempts', 'h-data' );
+
+               $conn = $this->getConnection();
+               try {
+                       $keys = array();
+                       foreach ( $props as $prop ) {
+                               $keys[] = $this->getQueueKey( $prop );
+                       }
+                       $res = ( $conn->delete( $keys ) !== false );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $this->server, $conn, $e );
+               }
+       }
+
        /**
         * @see JobQueue::getAllQueuedJobs()
         * @return Iterator
index 625e8aa..5114dc0 100644 (file)
@@ -48,7 +48,7 @@ class PublishStashedFileJob extends Job {
                        );
 
                        $upload = new UploadFromStash( $user );
-                       // @TODO: initialize() causes a GET, ideally we could frontload the antivirus
+                       // @todo initialize() causes a GET, ideally we could frontload the antivirus
                        // checks and anything else to the stash stage (which includes concatenation and
                        // the local file is thus already there). That way, instead of GET+PUT, there could
                        // just be a COPY operation from the stash to the public zone.
index 963ec64..3fb7b89 100644 (file)
@@ -34,14 +34,14 @@ class LogPager extends ReverseChronologicalPager {
        /**
         * Constructor
         *
-        * @param $list LogEventsList
+        * @param LogEventsList $list
         * @param string $types or Array: log types to show
         * @param string $performer the user who made the log entries
         * @param string|Title $title the page title the log entries are for
         * @param string $pattern do a prefix search rather than an exact title match
         * @param array $conds extra conditions for the query
-        * @param $year Integer: the year to start from
-        * @param $month Integer: the month to start from
+        * @param int $year The year to start from
+        * @param int $month The month to start from
         * @param string $tagFilter tag
         */
        public function __construct( $list, $types = array(), $performer = '', $title = '', $pattern = '',
index 2987588..a133f6f 100644 (file)
@@ -263,7 +263,7 @@ class SvgHandler extends ImageHandler {
                $metadata = array( 'version' => self::SVG_METADATA_VERSION );
                try {
                        $metadata += SVGMetadataExtractor::getMetadata( $filename );
-               } catch ( MWException $e ) { // @TODO: SVG specific exceptions
+               } catch ( MWException $e ) { // @todo SVG specific exceptions
                        // File not found, broken, etc.
                        $metadata['error'] = array(
                                'message' => $e->getMessage(),
index b2bcd61..840e174 100644 (file)
@@ -28,7 +28,7 @@
 /**
  * PHP Parser - Processes wiki markup (which uses a more user-friendly
  * syntax, such as "[[link]]" for making links), and provides a one-way
- * transformation of that wiki markup it into XHTML output / markup
+ * transformation of that wiki markup it into (X)HTML output / markup
  * (which in turn the browser understands, and can display).
  *
  * There are seven main entry points into the Parser class:
@@ -4131,7 +4131,7 @@ class Parser {
         * @private
         */
        function formatHeadings( $text, $origText, $isMain = true ) {
-               global $wgMaxTocLevel, $wgHtml5, $wgExperimentalHtmlIds;
+               global $wgMaxTocLevel, $wgExperimentalHtmlIds;
 
                # Inhibit editsection links if requested in the page
                if ( isset( $this->mDoubleUnderscores['noeditsection'] ) ) {
@@ -4309,7 +4309,7 @@ class Parser {
                        # Save headline for section edit hint before it's escaped
                        $headlineHint = $safeHeadline;
 
-                       if ( $wgHtml5 && $wgExperimentalHtmlIds ) {
+                       if ( $wgExperimentalHtmlIds ) {
                                # For reverse compatibility, provide an id that's
                                # HTML4-compatible, like we used to.
                                #
index 2bd5a5d..b01f162 100644 (file)
@@ -312,7 +312,7 @@ class ParserOptions {
        function setAllowSpecialInclusion( $x )     { return wfSetVar( $this->mAllowSpecialInclusion, $x ); }
        function setTidy( $x )                      { return wfSetVar( $this->mTidy, $x ); }
 
-       /** @deprecated in 1.19; will be removed in 1.20 */
+       /** @deprecated in 1.19 */
        function setSkin( $x )                      { wfDeprecated( __METHOD__, '1.19' ); }
        function setInterfaceMessage( $x )          { return wfSetVar( $this->mInterfaceMessage, $x ); }
        function setTargetLanguage( $x )            { return wfSetVar( $this->mTargetLanguage, $x, true ); }
index fcca5a1..a3c3b10 100644 (file)
@@ -364,7 +364,7 @@ class ResourceLoader {
         * @return Array
         */
        public function getTestModuleNames( $framework = 'all' ) {
-               /// @TODO: api siteinfo prop testmodulenames modulenames
+               /// @todo api siteinfo prop testmodulenames modulenames
                if ( $framework == 'all' ) {
                        return $this->testModuleNames;
                } elseif ( isset( $this->testModuleNames[$framework] ) && is_array( $this->testModuleNames[$framework] ) ) {
index 71fd021..554181f 100644 (file)
@@ -298,7 +298,7 @@ class SearchSqlite extends SearchEngine {
                if ( !$this->fulltextSearchSupported() ) {
                        return;
                }
-               // @todo: find a method to do it in a single request,
+               // @todo find a method to do it in a single request,
                // couldn't do it so far due to typelessness of FTS3 tables.
                $dbw = wfGetDB( DB_MASTER );
 
index 98004a2..f3b8a0c 100644 (file)
@@ -123,7 +123,7 @@ class MediaWikiSite extends Site {
                                'converttitles' => true,
                                'format' => 'json',
                                'titles' => $pageName,
-                               //@todo: options for maxlag and maxage
+                               // @todo options for maxlag and maxage
                                // Note that maxlag will lead to a long delay before a reply is made,
                                // but that maxage can avoid the extreme delay. On the other hand
                                // maxage could be nice to use anyhow as it stops unnecessary requests.
@@ -133,7 +133,7 @@ class MediaWikiSite extends Site {
                        $url = wfAppendQuery( $this->getFileUrl( 'api.php' ), $args );
 
                        // Go on call the external site
-                       //@todo: we need a good way to specify a timeout here.
+                       // @todo we need a good way to specify a timeout here.
                        $ret = Http::get( $url );
                }
 
index 34a4135..3885043 100644 (file)
@@ -109,7 +109,7 @@ class ActiveUsersPager extends UsersPager {
                }
 
                return array(
-                       'tables' => 'recentchanges',
+                       'tables' => array( 'recentchanges' ),
                        'fields' => array(
                                'user_name' => 'rc_user_text', // for Pager inheritance
                                'rc_user_text', // for Pager
index 98ec4f6..a082049 100644 (file)
@@ -308,8 +308,10 @@ class SpecialAllpages extends IncludableSpecialPage {
        function showline( $inpoint, $outpoint, $namespace = NS_MAIN, $hideRedirects = false ) {
                // Use content language since page titles are considered to use content language
                global $wgContLang;
-               $inpointf = htmlspecialchars( str_replace( '_', ' ', $inpoint ) );
-               $outpointf = htmlspecialchars( str_replace( '_', ' ', $outpoint ) );
+
+               $inpointf = str_replace( '_', ' ', $inpoint );
+               $outpointf = str_replace( '_', ' ', $outpoint );
+
                // Don't let the length runaway
                $inpointf = $wgContLang->truncate( $inpointf, $this->maxPageLength );
                $outpointf = $wgContLang->truncate( $outpointf, $this->maxPageLength );
@@ -326,12 +328,13 @@ class SpecialAllpages extends IncludableSpecialPage {
                        $queryParams['hideredirects'] = 1;
                }
 
-               $link = htmlspecialchars(
-                       $this->getTitle()->getLocalURL( $queryParams ) );
+               $url = $this->getTitle()->getLocalURL( $queryParams );
+               $inlink = Html::element( 'a', array( 'href' => $url ), $inpointf );
+               $outlink = Html::element( 'a', array( 'href' => $url ), $outpointf );
 
                $out = $this->msg( 'alphaindexline' )->rawParams(
-                       "<a href=\"$link\">$inpointf</a></td><td>",
-                       "</td><td><a href=\"$link\">$outpointf</a>"
+                       "$inlink</td><td>",
+                       "</td><td>$outlink"
                )->escaped();
 
                return '<tr><td class="mw-allpages-alphaindexline">' . $out . '</td></tr>';
index df9ed57..d1f8136 100644 (file)
@@ -284,7 +284,7 @@ class SpecialPasswordReset extends FormSpecialPage {
 
        public function onSuccess() {
                if ( $this->getUser()->isAllowed( 'passwordreset' ) && $this->email != null ) {
-                       // @todo: Logging
+                       // @todo Logging
 
                        if ( $this->result->isGood() ) {
                                $this->getOutput()->addWikiMsg( 'passwordreset-emailsent-capture' );
index dbf2f0d..612ba84 100644 (file)
@@ -298,7 +298,7 @@ class SpecialStatistics extends SpecialPage {
 
                                // Collect all items that belong to the same header
                                foreach ( $items as $key => $value ) {
-                                       $name = $this->msg( $key )->inContentLanguage()->parse();
+                                       $name = $this->msg( $key )->parse();
                                        $number = htmlspecialchars( $value );
 
                                        $return .= $this->formatRow( $name, $this->getLanguage()->formatNum( $number ), array( 'class' => 'mw-statistics-hook' ) );
index 0296a63..a5e2e63 100644 (file)
@@ -99,7 +99,7 @@ class SpecialWatchlist extends SpecialPage {
                        return;
                }
 
-               // @TODO: use FormOptions!
+               // @todo use FormOptions!
                $defaults = array(
                /* float */ 'days' => floatval( $user->getOption( 'watchlistdays' ) ), /* 3.0 or 0.5, watch further below */
                /* bool  */ 'hideMinor' => (int)$user->getBoolOption( 'watchlisthideminor' ),
index 8175458..0006df4 100644 (file)
@@ -52,12 +52,12 @@ if ( !function_exists( 'session_name' ) ) {
        $installerStarted = ( $success && isset( $_SESSION['installData'] ) );
 }
 ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns='http://www.w3.org/1999/xhtml' lang='en'>
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
        <head>
+               <meta charset="UTF-8" />
                <title>MediaWiki <?php echo htmlspecialchars( $wgVersion ) ?></title>
-               <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
-               <style type='text/css' media='screen'>
+               <style media='screen'>
                        html, body {
                                color: #000;
                                background-color: #fff;
index fa62a99..17da80e 100644 (file)
@@ -256,7 +256,7 @@ abstract class UploadBase {
                wfProfileIn( __METHOD__ );
                $repo = RepoGroup::singleton()->getLocalRepo();
                if ( $repo->isVirtualUrl( $srcPath ) ) {
-                       // @TODO: just make uploads work with storage paths
+                       // @todo just make uploads work with storage paths
                        // UploadFromStash loads files via virtual URLs
                        $tmpFile = $repo->getLocalCopy( $srcPath );
                        $tmpFile->bind( $this ); // keep alive with $this
index 3770b9b..0186ccf 100644 (file)
@@ -952,7 +952,7 @@ class LanguageConverter {
                                                $txt = $revision->getContent( Revision::RAW )->getNativeData();
                                        }
 
-                                       //@todo: in the future, use a specialized content model, perhaps based on json!
+                                       // @todo in the future, use a specialized content model, perhaps based on json!
                                }
                        }
                }
index a6e8496..0cabd45 100644 (file)
@@ -3807,6 +3807,7 @@ Saam met die program moes u \'n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van van
 'version-entrypoints-header-entrypoint' => 'Ingang',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Aanstuur volgens lêer, gebruiker of weergawenommer',
 'redirect-legend' => "Aanstuur na 'n lêer of bladsy",
 'redirect-summary' => "Hierdie spesiale bladsy stuur aan na 'n lêer (as 'n lêernaam verskaf word), 'n bladsy (as 'n weergawe-nommer verskaf word) of 'n gebruikersblad (as 'n gebruiker-ID verskaf word).",
index f9b8da3..4ab8784 100644 (file)
@@ -597,7 +597,7 @@ $2',
 'yourname' => 'সদস্যনাম:',
 'userlogin-yourname' => 'সদস্যনাম',
 'userlogin-yourname-ph' => 'আপোনাৰ সদস্যনাম লিখক',
-'createacct-helpusername-url' => '{{ns:Project}}:সদস্যনাম_নীতি',
+'createacct-helpusername-url' => '{{ns:Project}}:Username_policy',
 'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(মোক বাছনি কৰাত সহায় কৰক)]]',
 'yourpassword' => 'আপোনাৰ গুপ্তশব্দ',
 'userlogin-yourpassword' => 'গুপ্তশব্দ',
@@ -608,7 +608,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'গুপ্তশব্দ আকৌ লিখক',
 'remembermypassword' => 'মোৰ প্ৰৱেশ এই কম্পিউটাৰত মনত ৰাখিব (সৰ্বাধিক $1 {{PLURAL:$1|দিনলৈ|দিনলৈ}})',
 'userlogin-remembermypassword' => 'মোক লগ্‌-ইন কৰাই ৰাখক',
-'userlogin-signwithsecure' => 'নিৰাপদ à¦\9aাৰà§\8dভাৰৰ à¦®à¦¾à¦§à§\8dযমà§\87ৰà§\87 à¦ªà§\8dৰৱà§\87শ কৰক',
+'userlogin-signwithsecure' => 'নিৰাপদ à¦¸à¦\82যà§\8bà¦\97 à¦¬à§\8dযৱহাৰ কৰক',
 'securelogin-stick-https' => 'প্ৰৱেশ কৰা পাছত HTTPS-ৰ দ্বাৰা সংযোগ ৰাখক',
 'yourdomainname' => 'আপোনাৰ ডমেইন:',
 'password-change-forbidden' => 'আপুনি এই ৱিকিত গুপ্তশব্দ সলাব নোৱাৰে।',
@@ -629,7 +629,8 @@ $2',
 'gotaccount' => "আপুনি সদস্য হয়নে? '''$1'''",
 'gotaccountlink' => 'প্ৰৱেশ',
 'userlogin-resetlink' => 'আপোনাৰ প্ৰৱেশ তথ্য পাহৰিছে?',
-'helplogin-url' => 'সহায়:প্ৰৱেশ/লগ্‌-ইন',
+'userlogin-resetpassword-link' => 'আপোনাৰ গুপ্তশব্দ ন-কৈ বহাওক',
+'helplogin-url' => 'Help:প্ৰৱেশ/লগ্‌-ইন',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|প্ৰৱেশ সম্পৰ্কীয় সাহায্য]]',
 'createacct-join' => 'আপোনাৰ তথ্যসমূহ তলত লিখক।',
 'createacct-emailrequired' => 'ই-মেইল ঠিকনা',
@@ -646,9 +647,9 @@ $2',
 'createacct-imgcaptcha-ph' => 'ওপৰত দেখা পোৱা পাঠ্য লিখক',
 'createacct-submit' => 'আপোনাৰ একাউণ্ট সৃষ্টি কৰক',
 'createacct-benefit-heading' => 'আপোনাৰ দৰে মানুহেই {{SITENAME}} তৈয়াৰ কৰিছে',
-'createacct-benefit-body1' => 'সম্পাদনাসমূহ',
-'createacct-benefit-body2' => 'পৃষ্ঠাসমূহ',
-'createacct-benefit-body3' => 'শেহতীয়া অৱদানকাৰীসকল',
+'createacct-benefit-body1' => '{{PLURAL:$1|সম্পাদনা}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|পৃষ্ঠা|পৃষ্ঠাসমূহ}}',
+'createacct-benefit-body3' => 'শেহতীয়া {{PLURAL:$1|অৱদানকাৰী|অৱদানকাৰীসকল}}',
 'badretype' => 'আপুনি দিয়া গুপ্ত শব্দ দুটা মিলা নাই।',
 'userexists' => 'আপুনি দিয়া সদস্যনাম আগৰে পৰাই ব্যৱহাৰ হৈ আছে।
 অনুগ্ৰহ কৰি বেলেগ সদস্যনাম এটা নিৰ্বাচন কৰক।',
@@ -2174,7 +2175,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 # Special:ActiveUsers
 'activeusers' => 'সক্ৰিয় ব্যবহাৰকাৰীৰ তালিকা',
 'activeusers-intro' => 'যোৱা  {{PLURAL:$1|দিন|দিন}}ৰ ভিতৰত অৱদান আগবঢ়োৱা ব্যৱহাৰকাৰীৰ তালিকা',
-'activeusers-count' => 'যà§\8bৱা {{PLURAL:$3|দিনত|$3 à¦¦à¦¿à¦¨à¦¤}} à¦\95ৰা $1{{PLURAL:$1|à¦\9fা à¦\95াম|à¦\9fা à¦\95াম}} à¦¸à¦\82à¦\96à§\8dযা',
+'activeusers-count' => 'যà§\8bৱা {{PLURAL:$3|দিনত|$3 à¦¦à¦¿à¦¨à¦¤}} à¦¸à§°à§\8dবমà§\81ঠ $1 {{PLURAL:$1|à¦\9fা à¦\95াম}}',
 'activeusers-from' => 'ইয়াৰে আৰম্ভ হোৱা ব্যৱহাৰকাৰী সকল দেখুৱাওক:',
 'activeusers-hidebots' => 'বট নেদেখুৱাব',
 'activeusers-hidesysops' => 'প্ৰশাসক নেদেখুৱাব',
@@ -3787,6 +3788,17 @@ $5
 'version-entrypoints-header-entrypoint' => 'প্ৰৱেশ পইণ্ট',
 'version-entrypoints-header-url' => 'ইউআৰএল',
 
+# Special:Redirect
+'redirect' => 'ফাইল, সদস্য, বা সংশোধন আই ডিৰে পুনঃনিৰ্দেশ',
+'redirect-legend' => 'এটা ফাইল বা এখন এখন পৃষ্ঠালৈ পুনঃনিৰ্দেশ',
+'redirect-submit' => 'যাওক',
+'redirect-lookup' => 'চাওক:',
+'redirect-value' => 'মূল্য:',
+'redirect-user' => 'সদস্য আই ডি',
+'redirect-revision' => 'পৃষ্ঠা সংশোধন',
+'redirect-file' => 'ফাইলৰ নাম',
+'redirect-not-exists' => "মূল্য পোৱা নগ'ল",
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'প্ৰতিলিপি পৃষ্ঠাসমূহ অনুসন্ধান কৰক',
 'fileduplicatesearch-summary' => 'হেছ্‌ মানসমূহৰ উপৰত নিৰ্ভৰ কৰি প্ৰতিলিপিত নথিপত্ৰসমূহৰ বাবে সন্ধান কৰক।',
@@ -3890,7 +3902,7 @@ $5
 'logentry-delete-restore' => "$3 পৃষ্ঠাখন $1 ৰদ্বাৰা {{GENDER:$2|পুনৰ্সংৰক্ষণ কৰা হ'ল}}",
 'logentry-delete-event' => '$3: $4 -ত {{PLURAL:$5|এটা লগ ঘটনা|$5 লগ ঘটনাসমূহ}} -ৰ $1 পৰিৱৰ্তন কৰা দৃশ্যমানতা',
 'logentry-delete-revision' => 'পৃষ্ঠা $3: $4ত {{PLURAL:$5|এটা পুনৰীক্ষন|$5 পুনৰীক্ষনসমূহ}}ৰ $1 দৃশ্যমানতা পৰিৱৰ্তন কৰা হ’ল',
-'logentry-delete-event-legacy' => '$3ত অভিলেখ ঘটনামসমূহৰ $1 দৃশ্যমানতা পৰিৱৰ্তন কৰা হ’ল',
+'logentry-delete-event-legacy' => "$3ত ল'গ ঘটনাসমূহৰ দৃশ্যমানতা $1 {{GENDER:$2|ৰদ্বাৰা সলোৱা হ'ল}}",
 'logentry-delete-revision-legacy' => 'পৃষ্ঠা $3ত পুনৰীক্ষনসমূহৰ $1 দৃশ্যমানতা পৰিৱৰ্তন কৰা হল',
 'logentry-suppress-delete' => '$1 সংকোচিত পৃষ্ঠা $3',
 'logentry-suppress-event' => '$3: $4 -ত {{PLURAL:$5|এটা লগ ঘটনা|$5 লগ ঘটনাসমূহ}} -ৰ $1 গোপন পৰিৱৰ্তন কৰা হ’ল দৃশ্যমানতা',
index d5102cf..b33833c 100644 (file)
@@ -53,7 +53,8 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Block'                     => array( 'Bloquiar', 'BloquiarIP', 'BloquiarUsuariu' ),
-       'Log'                       => array( 'Rexistru' ),
+       'Log'                       => array( 'Rexistru', 'Rexistros' ),
+       'Search'                    => array( 'Gueta' ),
        'Statistics'                => array( 'Estadístiques' ),
 );
 
@@ -477,7 +478,7 @@ Nun t'escaezas d'escoyer les tos [[Special:Preferences|preferencies de {{SITENAM
 'yourname' => "Nome d'usuariu:",
 'userlogin-yourname' => "Nome d'usuariu",
 'userlogin-yourname-ph' => "Escriba'l so nome d'usuariu",
-'createacct-helpusername-url' => '{{ns:Project}}:Política_de_nomes',
+'createacct-helpusername-url' => "{{ns:Project}}:Política_de_nomes_d'usuariu",
 'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(ayudame a escoyer)]]',
 'yourpassword' => 'Contraseña:',
 'userlogin-yourpassword' => 'Contraseña',
@@ -487,8 +488,8 @@ Nun t'escaezas d'escoyer les tos [[Special:Preferences|preferencies de {{SITENAM
 'createacct-yourpasswordagain' => 'Confirmar la contraseña',
 'createacct-yourpasswordagain-ph' => 'Escriba nuevamente la contraseña',
 'remembermypassword' => "Recordar la mio identificación nesti restolador (un máximu {{PLURAL:$1|d'un día|de $1 díes}})",
-'userlogin-remembermypassword' => 'Recordame',
-'userlogin-signwithsecure' => 'Aniciar sesión con un sirvidor seguru',
+'userlogin-remembermypassword' => 'Caltener abierta la sesión',
+'userlogin-signwithsecure' => 'Usar una conexón segura',
 'securelogin-stick-https' => "Siguir coneutáu al HTTPS dempués d'identificase",
 'yourdomainname' => 'El to dominiu:',
 'password-change-forbidden' => 'Nun se pueden camudar les contraseñes nesta wiki.',
@@ -509,6 +510,7 @@ Nun t'escaezas d'escoyer les tos [[Special:Preferences|preferencies de {{SITENAM
 'gotaccount' => '¿Ya tienes una cuenta? $1.',
 'gotaccountlink' => 'Identificase',
 'userlogin-resetlink' => "¿Escaecisti los datos d'identificación?",
+'userlogin-resetpassword-link' => 'Reaniciar la contraseña',
 'helplogin-url' => 'Help:Aniciar sesión',
 'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Ayuda p'aniciar sesión]]",
 'createacct-join' => 'Escriba abaxo la so información.',
@@ -519,14 +521,16 @@ Nun t'escaezas d'escoyer les tos [[Special:Preferences|preferencies de {{SITENAM
 'createacct-realname' => 'Nome real (opcional)',
 'createaccountreason' => 'Motivu:',
 'createacct-reason' => 'Motivu',
+'createacct-reason-ph' => 'Por qué quier crear otra cuenta',
 'createacct-captcha' => 'Comprobación de seguridá',
-'createacct-captcha-help-url' => '{{ns:Project}}:Solicitar una cuenta',
+'createacct-captcha-help-url' => '{{ns:Project}}:Solicite una cuenta',
 'createacct-imgcaptcha-help' => '¿Nun pue ver la imaxe? [[{{MediaWiki:createacct-captcha-help-url}}|Solicite una cuenta]]',
 'createacct-imgcaptcha-ph' => "Escriba'l testu qu'apaez arriba",
+'createacct-submit' => 'Crear la cuenta',
 'createacct-benefit-heading' => '{{SITENAME}} failu xente como vusté.',
-'createacct-benefit-body1' => 'ediciones',
-'createacct-benefit-body2' => 'Páxines',
-'createacct-benefit-body3' => 'collaboradores esti mes',
+'createacct-benefit-body1' => '{{PLURAL:$1|edición|ediciones}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|páxina|páxines}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|collaborador|collaboradores}} de recién',
 'badretype' => "Les claves qu'escribisti nun concuayen.",
 'userexists' => "El nome d'usuariu conseñáu yá ta usándose.
 Por favor escueyi un nome diferente.",
@@ -628,6 +632,7 @@ Pasando a identificate...',
 'resetpass-wrong-oldpass' => 'Clave provisional o actual non válida.
 Seique yá camudaras correutamente la clave o que pidieras una nueva clave provisional.',
 'resetpass-temp-password' => 'Clave provisional:',
+'resetpass-abort-generic' => "Una estensión encaboxó'l cambiu de la contraseña.",
 
 # Special:PasswordReset
 'passwordreset' => 'Reaniciar clave',
@@ -1317,6 +1322,7 @@ Esta información sedrá pública.",
 'userrights-notallowed' => "La to cuenta nun tien permisu p'amestar o desaniciar permisos d'usuariu.",
 'userrights-changeable-col' => 'Grupos que pues camudar',
 'userrights-unchangeable-col' => 'Grupos que nun pues camudar',
+'userrights-conflict' => "¡Hai un conflictu de permisos d'usuariu! Por favor, vuelva a aplicar los cambios.",
 
 # Groups
 'group' => 'Grupu:',
@@ -3692,6 +3698,18 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 'version-entrypoints-header-entrypoint' => "Puntu d'entrada",
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => "Redireición por nome de ficheru, o ID d'usuariu o de revisión",
+'redirect-legend' => 'Redirixir a un ficheru o una páxina',
+'redirect-summary' => "Esta páxina especial redirixe a un ficheru (dando'l nome), una páxina (dando una ID de revisión) o una páxina d'usuariu (dando una ID d'usuariu).",
+'redirect-submit' => 'Dir',
+'redirect-lookup' => 'Buscar:',
+'redirect-value' => 'Valor:',
+'redirect-user' => "ID d'usuariu:",
+'redirect-revision' => 'Revisión de páxina',
+'redirect-file' => 'Nome del ficheru',
+'redirect-not-exists' => "Nun s'alcontró'l valor",
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Buscar archivos duplicaos',
 'fileduplicatesearch-summary' => 'Busca archivos duplicaos basándose nos sos valores fragmentarios.',
@@ -3783,6 +3801,7 @@ Tendría d'haber recibío [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Llic
 'htmlform-selectorother-other' => 'Otros',
 'htmlform-no' => 'Non',
 'htmlform-yes' => 'Sí',
+'htmlform-chosen-placeholder' => 'Seleicione una opción',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 con sofitu pa gueta en testu completu',
index e443aa9..1a7b73f 100644 (file)
@@ -3674,6 +3674,7 @@ Ika dapat na nakapagresibe na kan [{{SERVER}}{{SCRIPTPATH}}/COPYING sarong kopya
 'version-entrypoints-header-entrypoint' => 'Puntong pan-entrada',
 'version-entrypoints-header-url' => 'Kilyawan',
 
+# Special:Redirect
 'redirect' => 'Palikwatong sa paagi nin sagunson, paragamit, or rebisyon kan ID',
 'redirect-legend' => 'Palikwatong pasiring sa sarong sagunson o pahina',
 'redirect-summary' => 'Ining espesyal na pahina minalikwat pasiring sa sarong sagunson (ipinagtao an ngaran kan sagunson), sarong pahina (ipinagtao an sarong rebisyon kan ID), o sarong pahina nin paragamit (ipinagtao an numerikong ID nin paragamit).',
index 2fe28f2..26b9787 100644 (file)
@@ -686,7 +686,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'Увядзіце пароль зноў',
 'remembermypassword' => 'Запомніць мяне на гэтым кампутары (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
 'userlogin-remembermypassword' => 'Запамятаць мяне',
-'userlogin-signwithsecure' => 'УваÑ\85одзÑ\96Ñ\86Ñ\8c Ð¿Ñ\80азÑ\8c Ð±Ñ\8fÑ\81Ñ\8cпеÑ\87нÑ\8b Ñ\81Ñ\8dÑ\80вÑ\8dÑ\80',
+'userlogin-signwithsecure' => 'СкаÑ\80Ñ\8bÑ\81Ñ\82аÑ\86Ñ\86а Ð±Ñ\8fÑ\81Ñ\8cпеÑ\87нÑ\8bм Ð·Ð»Ñ\83Ñ\87Ñ\8dнÑ\8cнем',
 'securelogin-stick-https' => 'Утрымліваць злучэньне праз HTTPS пасьля ўваходу ў сыстэму',
 'yourdomainname' => 'Ваш дамэн:',
 'password-change-forbidden' => 'Вы ня можаце зьмяняць паролі ў гэтай вікі.',
@@ -707,6 +707,7 @@ $2',
 'gotaccount' => 'Ужо маеце рахунак? $1.',
 'gotaccountlink' => 'Увайдзіце',
 'userlogin-resetlink' => 'Забыліся на зьвесткі для ўваходу?',
+'userlogin-resetpassword-link' => 'Забылі пароль?',
 'helplogin-url' => 'Help:Уваход у сыстэму',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Дапамога па ўваходзе ў сыстэму]]',
 'createacct-join' => 'Увядзіце свае зьвесткі ніжэй.',
@@ -3843,6 +3844,7 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Шлях да артыкула]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Пуць да скрыпту]',
 
+# Special:Redirect
 'redirect' => 'Перанакіраваньне да файла, удзельніка або вэрсіі старонкі',
 'redirect-legend' => 'Перанакіраваньне да файла або старонкі',
 'redirect-summary' => 'Гэтая спэцыяльная старонка перанакіруе да файла (паводле імя файла), старонкі (паводле нумара вэрсіі) або старонкі ўдзельніка (паводле нумара ўдзельніка).',
index 02c7613..d1c819f 100644 (file)
@@ -642,14 +642,14 @@ $2',
 'welcomecreation-msg' => 'Вашата сметка беше създадена.
 Можете да промените [[Special:Preferences|настройките на {{SITENAME}}]] според предпочитанията си.',
 'yourname' => 'Потребителско име:',
-'userlogin-yourname' => 'Потребител',
+'userlogin-yourname' => 'Потребителско име',
 'userlogin-yourname-ph' => 'Въведете вашето потребителско име',
 'yourpassword' => 'Парола:',
 'userlogin-yourpassword' => 'Парола',
 'userlogin-yourpassword-ph' => 'Въведете вашата парола',
 'createacct-yourpassword-ph' => 'Въведете парола',
 'yourpasswordagain' => 'Парола (повторно):',
-'createacct-yourpasswordagain' => 'Ð\9fоÑ\82вÑ\8aÑ\80деÑ\82е паролата',
+'createacct-yourpasswordagain' => 'Ð\9fоÑ\82вÑ\8aÑ\80ждаване Ð½Ð° паролата',
 'createacct-yourpasswordagain-ph' => 'Въведете паролата отново',
 'remembermypassword' => 'Запомняне на паролата на този компютър (най-много за $1 {{PLURAL:$1|ден|дни}})',
 'securelogin-stick-https' => 'Запазване на връзката през HTTPS след влизане',
@@ -672,7 +672,7 @@ $2',
 'gotaccount' => "Имате ли вече сметка? '''$1'''.",
 'gotaccountlink' => 'Влизане',
 'userlogin-resetlink' => 'Забравени данни за влизане в системата?',
-'createacct-emailrequired' => 'Ð\95лектронна поща',
+'createacct-emailrequired' => 'Ð\90дÑ\80еÑ\81 Ð·Ð° Ðµлектронна поща',
 'createaccountmail' => 'Използване на временна парола, която се изпраща по електронната поща, посочена по-долу',
 'createaccountreason' => 'Причина:',
 'createacct-reason' => 'Причина',
index ae393f0..3775f4c 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Anshumangupta21
  * @author Ganesh
+ * @author Nepaboy
  * @author Rajivkurjee
  */
 
@@ -49,11 +50,32 @@ $messages = array(
 'tog-underline' => 'लिंक के नीचे रेखा',
 'tog-justify' => 'पैराग्राफ जस्टीफाई',
 'tog-hideminor' => 'हाल के परिवर्तन में मामूली संपादन छुपाईं',
+'tog-hidepatrolled' => 'हाल के परिवर्तन में मामूली संपादन छुपाईं',
+'tog-newpageshidepatrolled' => 'नयका पृष्ठ के सूची में से जाँचल पृष्क के छुपाँई',
+'tog-extendwatchlist' => 'मात्र हाल के परिवर्तन ही नाही,बल्कि सब परिवर्तन के देखावे खातिर ध्यान सूची के विस्तारित करीं',
+'tog-usenewrc' => 'तुरंत भईल परिवर्तन आ ध्यानसूची परिवर्तनों के पन्ना के अनुसार समूह में बाँटी (जावास्क्रिप्ट आवश्यक)',
 'tog-numberheadings' => 'स्वयं-सांख्यिकी शिर्षक',
 'tog-showtoolbar' => 'सम्पादन औजार् बक्सा के दिखाइल् जाए',
+'tog-editondblclick' => 'दुई क्लिक पर पृष्ठ संपादित करीं (जावास्क्रिप्ट आवश्यक बा)',
+'tog-editsection' => '[संपादित करीं] कड़ि द्वारा अनुभाग संपादन सक्षम करीं',
+'tog-editsectiononrightclick' => 'अनुभाग शीर्षक पर दायाँ क्लिक कर अनुभाग सम्पादित करीं (जावास्क्रिप्ट आवश्यक बा)',
+'tog-showtoc' => 'अनुक्रम दिखाईं (जे पृष्ठ पर तीन से अधिक अनुभाग होखे)',
 'tog-rememberpassword' => 'इ ब्राउजर पर हमार प्रवेश जारी रहे (अधिकतम $1 {{PLURAL:$1|दिन|दिन}})',
+'tog-watchcreations' => 'हमरा द्वारा निर्मित पृष्ठ आ हमरा द्वारा लादल फ़ाइलन के हमार ध्यानसूची में जोड़ी',
+'tog-watchdefault' => 'हमरा द्वारा निर्मित पृष्ठ आ हमरा द्वारा लादल फ़ाइलन के हमार ध्यानसूची में जोड़ी',
+'tog-watchmoves' => 'हमरा द्वारा स्थानांतरित पृष्ठ आ लादल फाईल के हमरा ध्यानसूची में जोड़ी',
+'tog-watchdeletion' => 'हमरा द्वारा मिटावल पृष्ठ फ़ाइलन के हमार ध्यानसूची में जोड़ी',
+'tog-minordefault' => 'सारा सम्पादन के छोट सम्पादन के रुप में चिन्हित करीं',
 'tog-previewontop' => 'सम्पादन बक्सा से पहिले पुर्वदर्शन दिखाईं।',
 'tog-previewonfirst' => 'पहिलका सम्पादन पर पूर्वावलोकन देखीं',
+'tog-nocache' => 'ब्राउजर पन्ना के कैशिंग अक्षम करींरें',
+'tog-enotifwatchlistpages' => 'हमार ध्यानसूची में दर्ज कौनो भी पन्ना या फाईल में परिवर्तन होखला पर हमके ई-मेल करल जाव',
+'tog-enotifusertalkpages' => 'यदि हमार वार्तालाप पन्ना पर कौनो परिवर्तन होखे त हमके ई मेल करल जाव',
+'tog-enotifminoredits' => 'पन्ना आ फाईल पर छोटो परिवर्तन होखे त हमके ई मेल करल जाव',
+'tog-enotifrevealaddr' => 'अधिसूचना ई-मेल में हमार ई मेल पता दिखावल जाव',
+'tog-shownumberswatching' => 'ध्यान रखे वालन सदस्यन के देखावल जाव',
+'tog-oldsig' => 'वर्तमान हस्ताक्षर:',
+'tog-fancysig' => 'हस्ताक्षर के विकी पाठ के रुप में उपयोग करीं (बिना स्वचालित कड़ी के)',
 
 'underline-always' => 'हमेशा',
 'underline-never' => 'कभी ना',
@@ -729,7 +751,7 @@ Legend: '''({{int:cur}})''' = हाल के संशोधन के सा
 'metadata-expand' => 'विस्तृत विवरण देखाईं',
 'metadata-collapse' => 'विस्तृत विवरण छुपाँईं',
 
-# EXIF tags
+# Exif tags
 'exif-imagewidth' => 'चौड़ाई',
 'exif-imagelength' => 'ऊँचाई',
 'exif-bitspersample' => 'अवयव प्रति बीट',
index cc24811..6cf8145 100644 (file)
@@ -3555,6 +3555,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-entrypoints-header-entrypoint' => 'শুরু',
 'version-entrypoints-header-url' => 'ইউআরএল',
 
+# Special:Redirect
 'redirect-submit' => 'যাও',
 'redirect-lookup' => 'দেখুন:',
 'redirect-value' => 'মান:',
index 2a4a3c2..1eb6ae1 100644 (file)
@@ -2209,6 +2209,15 @@ Podržani protokoli: <code>$1</code> (ne dodavajte bilo koji od ovih u vašu pre
 'listusers-noresult' => 'Nije pronađen korisnik.',
 'listusers-blocked' => '(blokiran)',
 
+# Special:ActiveUsers
+'activeusers' => 'Spisak aktivnih korisnika',
+'activeusers-intro' => 'Ovo je spisak korisnika koji su napravili neku aktivnost u {{PLURAL:$1|zadnji $1 dan|zadnja $1 dana|zadnjih $1 dana}}.',
+'activeusers-count' => '{{PLURAL:$1|nedavna $1 izmjena|nedavne $1 izmjene|nedavnih $1 izmjena}} u {{PLURAL:$3|posljednji $3 dan|posljednja $3 dana|posljednjih $3 dana}}',
+'activeusers-from' => 'Prikaži korisnike koji počinju sa:',
+'activeusers-hidebots' => 'Sakrij botove',
+'activeusers-hidesysops' => 'Sakrij administratore',
+'activeusers-noresult' => 'Nije pronađen korisnik.',
+
 # Special:ListGroupRights
 'listgrouprights' => 'Prava korisničkih grupa',
 'listgrouprights-summary' => 'Slijedi spisak korisničkih grupa na ovoj wiki, s njihovim pravima pristupa.
@@ -3088,6 +3097,7 @@ Ovo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.',
 'pageinfo-contentpage-yes' => 'Da',
 'pageinfo-protect-cascading-yes' => 'Da',
 'pageinfo-category-pages' => 'Broj stranica',
+'pageinfo-category-files' => 'Broj datoteka',
 
 # Skin names
 'skinname-cologneblue' => 'Kelnsko plavo',
@@ -3199,7 +3209,7 @@ Svi drugi linkovi u istoj liniji se smatraju izuzecima, npr. kod stranica gdje s
 * gpslongitude
 * gpsaltitude',
 
-# EXIF tags
+# Exif tags
 'exif-imagewidth' => 'Širina',
 'exif-imagelength' => 'Visina',
 'exif-bitspersample' => 'Bita po komponenti',
@@ -3377,7 +3387,7 @@ Svi drugi linkovi u istoj liniji se smatraju izuzecima, npr. kod stranica gdje s
 'exif-originalimageheight' => 'Visina slike prije nego što je odrezana',
 'exif-originalimagewidth' => 'Širina slike prije nego što je odrezana',
 
-# EXIF attributes
+# Exif attributes
 'exif-compression-1' => 'Nekompresovano',
 'exif-compression-2' => 'CCITT Grupa 3 1 — Dimenzionalno izmijenjeo Huffmanovo šifriranje po dužini',
 'exif-compression-3' => 'CCITT Grupa 3 faks šifriranje',
@@ -3849,13 +3859,6 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'version-entrypoints-header-entrypoint' => 'Ulazna tačka',
 'version-entrypoints-header-url' => 'URL',
 
-# Special:FilePath
-'filepath' => 'Putanja datoteke',
-'filepath-page' => 'Datoteka:',
-'filepath-submit' => 'Idi',
-'filepath-summary' => 'Ova posebna stranica prikazuje potpunu putanju za datoteku.
-Slike su prikazane u punoj veličini, ostale vrste datoteka su prikazane direktno sa, s njima povezanim, programom.',
-
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Pretraga za duplim datotekama',
 'fileduplicatesearch-summary' => 'Pretraga za duplim datotekama na bazi njihove haš vrijednosti.',
@@ -3952,15 +3955,15 @@ Slike su prikazane u punoj veličini, ostale vrste datoteka su prikazane direktn
 # New logging system
 'logentry-delete-delete' => '$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3',
 'logentry-delete-restore' => '$1 je {{GENDER:$2|vratio|vratila}} stranicu $3',
-'logentry-delete-event' => '$1 je {{GENDER:|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
-'logentry-delete-revision' => '$1 je {{GENDER:|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici  $3: $4',
-'logentry-delete-event-legacy' => '$1 je {{GENDER:|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
-'logentry-delete-revision-legacy' => '$1 je {{GENDER:|promijenio|promijenila}} vidljivost izmjena na stranici $3',
-'logentry-suppress-delete' => '$1 {{GENDER:|je potisnuo|je potisnula}} stranicu $3',
-'logentry-suppress-event' => '$1 je tajno {{GENDER:|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
-'logentry-suppress-revision' => '$1 je tajno {{GENDER:|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici  $3: $4',
-'logentry-suppress-event-legacy' => '$1 je tajno {{GENDER:|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
-'logentry-suppress-revision-legacy' => '$1 je tajno {{GENDER:|promijenio|promijenila}} vidljivost izmjena na stranici $3',
+'logentry-delete-event' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
+'logentry-delete-revision' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
+'logentry-delete-event-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
+'logentry-delete-revision-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3',
+'logentry-suppress-delete' => '$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3',
+'logentry-suppress-event' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
+'logentry-suppress-revision' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
+'logentry-suppress-event-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
+'logentry-suppress-revision-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3',
 'revdelete-content-hid' => 'skriveni sadržaj',
 'revdelete-summary-hid' => 'sažetak izmjene je sakriven',
 'revdelete-uname-hid' => 'sažetak izmjene je sakriven',
@@ -3969,20 +3972,20 @@ Slike su prikazane u punoj veličini, ostale vrste datoteka su prikazane direktn
 'revdelete-uname-unhid' => 'korisničko ime je otkriveno',
 'revdelete-restricted' => 'primijenjena ograničenja za administratore',
 'revdelete-unrestricted' => 'uklonjena ograničenja za administratore',
-'logentry-move-move' => '$1 je premjestio stranicu $3 na $4',
-'logentry-move-move-noredirect' => '$1 je premjestio stranicu $3 na $4 bez ostavljanja preusmjerenja',
-'logentry-move-move_redir' => '$1 je premjestio stranicu $3 na $4 preko preusmjeravanja',
-'logentry-move-move_redir-noredirect' => '$1 je premjestio stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja',
-'logentry-patrol-patrol' => '$1 je označio izmjenu $4 stranice $3 pregledanim',
-'logentry-patrol-patrol-auto' => '$1 je automatski označio izmjenu $4 stranice $3 pregledanim',
-'logentry-newusers-newusers' => 'Korisnički račun $1 je napravljen',
-'logentry-newusers-create' => 'Korisnički račun $1 je napravljen',
+'logentry-move-move' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4',
+'logentry-move-move-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 bez ostavljanja preusmjerenja',
+'logentry-move-move_redir' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja',
+'logentry-move-move_redir-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja',
+'logentry-patrol-patrol' => '$1 je {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 pregledanim',
+'logentry-patrol-patrol-auto' => '$1 je automatski {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 pregledanim',
+'logentry-newusers-newusers' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
+'logentry-newusers-create' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
 'logentry-newusers-create2' => '$3 je {{GENDER:$2|napravio|napravila}} korisnički račun $1',
-'logentry-newusers-byemail' => 'Korisnički račun $3 je napravio $1 i lozinka/šifra je poslana putem e-maila',
-'logentry-newusers-autocreate' => 'Korisnički račun $1 je automatski napravljen',
-'logentry-rights-rights' => '$1 {{GENDER:$1|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3 iz $4 u $5',
+'logentry-newusers-byemail' => 'Korisnički račun $3 je {{GENDER:$2|napravio|napravila}} $1 i lozinka/šifra je poslana putem e-maila',
+'logentry-newusers-autocreate' => 'Korisnički račun $1 je automatski {{GENDER:$2|napravljen}}',
+'logentry-rights-rights' => '$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3 iz $4 u $5',
 'logentry-rights-rights-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3',
-'logentry-rights-autopromote' => 'Korisničkom računu $1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5',
+'logentry-rights-autopromote' => '$1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5',
 'rightsnone' => '(nema)',
 
 # Feedback
index 62268fc..306bb38 100644 (file)
@@ -253,13 +253,14 @@ $messages = array(
 'tog-showhiddencats' => 'Гайта къайлаха йолу кадегарш',
 'tog-noconvertlink' => 'Хааман хьажориг кхуллу гlирс дlабайа',
 'tog-norollbackdiff' => 'Йух яккхиначул тlаьхьа ма гайта къастаман башхо',
+'tog-useeditwarning' => 'Хаамбе бина хийцамаш дӀаязцабеш ара волучу хенахь',
 
 'underline-always' => 'Даимна',
 'underline-never' => 'Цкъа а',
 'underline-default' => 'Лелайа хьажгlодириг нисйарца',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'РéдоккÑ\85Ñ\83чохь долу йозан тайп:',
+'editfont-style' => 'ТадаÑ\80 чохь долу йозан тайп:',
 'editfont-default' => 'Йоза оцу хьажгlодириг нисйинчура',
 'editfont-monospace' => 'Цхьатерра доцу йоза',
 'editfont-sansserif' => 'Аьтта доцу йоза',
@@ -327,9 +328,9 @@ $messages = array(
 'hidden-category-category' => 'Къайлаха йолу категореш',
 'category-subcat-count' => '{{PLURAL:$2|ХӀокх категори чохь ю хӀокхуьна бухар категори.|{{PLURAL:$1|Гойташ $1 бухар категори|Гойту $1 бухар категори|Гойту $1 бухар категори}} оцу $2.}}',
 'category-subcat-count-limited' => 'Хlокх категори чохь {{PLURAL:$1|$1 бухар категори|$1 бухар категореша|$1 бухар категореш}}.',
-'category-article-count' => '{{PLURAL:$2|ХӀокх категори чохь яц цхьа агӀо бе.|{{PLURAL:$1|Гойташ $1 агlо|Гойту $1 агӀонаш|Гойту $1 агӀонаш}} хӀокх категорешца кху $2.}}',
+'category-article-count' => '{{PLURAL:$2|ХӀокх категори чохь яц цхьа агӀо бе.|{{PLURAL:$1|Гойташ $1 агӀо|Гойту $1 агӀонаш|Гойту $1 агӀонаш}} хӀокх категорешца кху $2.}}',
 'category-article-count-limited' => 'Хlокх категори чохь {{PLURAL:$1|$1 агlо|$1 агlонаш|$1 агlонаш}}.',
-'category-file-count' => '{{PLURAL:$2|Ð¥Ó\80окÑ\85 ÐºÐ°Ñ\82егоÑ\80и Ñ\87оÑ\85Ñ\8c Ñ\86Ñ\85Ñ\8cа Ñ\85Ó\80Ñ\83м Ð±Ðµ Ñ\8fÑ\86.|{{PLURAL:$1|Ð\93ойÑ\82а $1 Ñ\85Ó\80Ñ\83м|Ð\93ойÑ\82Ñ\83 $1 Ñ\85\83ма|Ð\93ойÑ\82Ñ\83 $1 Ñ\85\83мнаÑ\88}} Ñ\85lокх категорешца кху $2.}}',
+'category-file-count' => '{{PLURAL:$2|Ð¥Ó\80окÑ\85 ÐºÐ°Ñ\82егоÑ\80и Ñ\87оÑ\85Ñ\8c Ñ\86Ñ\85Ñ\8cа Ñ\84айл Ð±Ðµ Ñ\8fÑ\86.|{{PLURAL:$1|Ð\93ойÑ\82а $1 Ñ\84айл|Ð\93ойÑ\82Ñ\83 $1 Ñ\84айл|Ð\93ойÑ\82Ñ\83 $1 Ñ\84айлаÑ\88}} Ñ\85Ó\80окх категорешца кху $2.}}',
 'category-file-count-limited' => 'ХӀокх категори чохь {{PLURAL:$1|$1 файл|$1 хӀума|$1 файлаш}}.',
 'listingcontinuesabbrev' => '(кхин дlа)',
 'index-category' => 'Меттигтерахьйо агlонаш',
@@ -526,13 +527,14 @@ $1',
 
 Нагахьсан гlулкх цуьнах доьзна дацахь, хьуна карийна гlирс латточехь гlалат.
 Дехар до, хаам бе оцуьнах [[Special:ListUsers/sysop|адаманкуьйгалхога]], гойтуш URL.',
-'missingarticle-rev' => '(варси № $1)',
+'missingarticle-rev' => '(верси № $1)',
 'missingarticle-diff' => '(тейп тайпнара: $1, $2)',
 'internalerror' => 'Чоьхьара гlалат',
 'internalerror_info' => 'Чоьхьара гlалат: $1',
 'filedeleteerror' => 'ДӀаяккха цатарло файл «$1».',
 'badtitle' => 'Цамегаш йолу цlе',
 'badtitletext' => 'Дехарца йолу агlонан цlе нийса яц, йаьсса ю, хила мега нийса ца хlоттийна меттаюкъар йа юкъарвики цlе. Хила мега, цlарца цамагош йолу саберг.',
+'perfcachedts' => 'Лахара хаам схьаэца кэша чура иза тӀаьхьара цӀинялла $1. Кэша чохь латтаё оцул $4 кӀезиг {{PLURAL:$4|дӀаяздарш|дӀаяздарш|дӀаяздарш}}.',
 'viewsource' => 'Хьажар',
 'protectedpagetext' => 'ХӀара агӀо дӀакъойлина йу рé цадаккхийта.',
 'viewsourcetext' => 'Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:',
@@ -568,6 +570,7 @@ $1',
 'gotaccount' => "Дlавазвелла вуй хьо? '''$1'''.",
 'gotaccountlink' => 'Вовзийта хьой',
 'createaccountmail' => 'хааман зlене хула',
+'createaccountreason' => 'Бахьан:',
 'loginerror' => 'Гlалат ду декъашхо вовзарехь',
 'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'loginsuccesstitle' => 'Хьо вовзар хаз чакхдели',
@@ -577,6 +580,7 @@ $1',
 Нийса юьй хьажа цlе йа [[Special:UserLogin/signup|дlайазвалар кхолла керла]].',
 'wrongpassword' => 'Ахьа язъйина йолу ишар нийса яц. Хьажа йуху цхьаъз.',
 'mailmypassword' => 'Схьаэца керла ишар',
+'emailauthenticated' => 'Хьан почтан адрес бакъдина $2 $3.',
 'accountcreated' => 'Дlавазвар кхоллина дели',
 'accountcreatedtext' => 'Кхоллина декъашхо дlавазвар $1.',
 'loginlanguagelabel' => 'Мотт: $1',
@@ -591,6 +595,9 @@ $1',
 'resetpass-submit-loggedin' => 'Хийца ишар',
 'resetpass-submit-cancel' => 'Цаоьшу',
 
+# Special:ChangeEmail
+'changeemail' => 'Хийца электрони почт',
+
 # Edit page toolbar
 'bold_sample' => 'Дерстино до йоза',
 'bold_tip' => 'Дерстино до йоза',
@@ -639,8 +646,8 @@ $1',
 Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,
 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лахар кхечу тептаршкахь],
 йа '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} кхолла ишта цlе йолу агlо]'''</span>.",
-'noarticletext-nopermission' => 'Хlокх хан чохь кху агlонца йоза дац.
-Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,
+'noarticletext-nopermission' => 'ХӀокх хан чохь кху агӀонца йоза дац.
+Шуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цӀе]] кхечу яззамашкахь,
 йа <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лаха оцуьнах терадерг кхечу тептаршкахь].</span>',
 'userpage-userdoesnotexist' => 'Ишта дlайазвар «<nowiki>$1</nowiki>» хlинца дац. Хьажа билгал, хьуна бакъалла лаьи кхолла йа хийцам ба хlокху агlон.',
 'updated' => '(Карла йаькхина)',
@@ -665,7 +672,8 @@ $1',
 Адаманкуьйгалхочо сацийна гlирса бух, цо битина кхетош хlара хаам: $1",
 'protectedpagewarning' => "'''Дlахьедар. Хlара агlо гlаролла дина ю хийцам цабайта, иза хийца йа нисйа а бакъо йолуш адаманкуьйгалла лелош болу декъашхой бе бац.'''
 Лахахьа гойту хаамаш тlаьхьара бина болу хийцамна тептар чура:",
-'cascadeprotectedwarning' => "'''Дlахьедар:''' Хlокху агlонна редаккха бакъо йолуш хlара тоба йу «Адаманкуьйгалхой», хlунда аьлча иза латийна {{PLURAL:$1|кхечу агlонца|кхечу агlонашца}} хlоттделлачу гlароллийца:",
+'cascadeprotectedwarning' => '<div id="cascadeprotectedwarning" style="border:1px solid #ee0; padding:10px; background:#ffa; margin-bottom:1em">[[file:Padlock.svg|left|25px|ДовгӀа|link=]]
+ХӀара агӀо тада бакъо йолуш [[Project:Куьйгалхой|куьйгалхой]] бу, хӀунда аьлча и агӀо латийна кхечу агӀонашца хӀоттделлачу гӀаролле:</div>',
 'templatesused' => '{{PLURAL:$1|Кеп, лелийна|Кепаш, лелош ду}} хlокху агlон башхонца:',
 'templatesusedpreview' => '{{PLURAL:$1|Кеп, лелошдолу|Кепаш, лелошдолу}} оцу хьалх хьожучу агlонца:',
 'template-protected' => '(гlароллийца)',
@@ -688,14 +696,15 @@ $1',
 
 # "Undo" feature
 'undo-success' => 'Нисйинарг а тlе цалаца мега. Дехар до, хьажа цхьатерра йуй башхо, тешна хила, баккъалла иза хийцам буйте хьуна безарг, тlакха тlе таlайе «дlайазйе агlо», хийцам хlотта ба.',
+'undo-summary' => 'Юхадаьккхина {{GENDER:$2|декъашхочун|декъашхочун}} [[Special:Contributions/$2|$2]] ([[User talk:$2|дийц.]]) нисдар $1',
 
 # History pages
 'viewpagelogs' => 'Гайта хlокху агlонан тептар',
-'currentrev-asof' => 'Хlинцлера варси оцу $1',
-'revisionasof' => 'Ð\92арси $1',
+'currentrev-asof' => 'ХӀинцлера верси оцу $1',
+'revisionasof' => 'Ð\92ерси $1',
 'previousrevision' => '← Хьалха йоьдург',
 'nextrevision' => 'Тlаьхьайогlург →',
-'currentrevisionlink' => 'Ð¥lинÑ\86леÑ\80а Ð²Ð°рси',
+'currentrevisionlink' => 'Ð¥lинÑ\86леÑ\80а Ð²Ðµрси',
 'cur' => 'карара.',
 'next' => 'кхин',
 'last' => 'хьалх.',
@@ -758,7 +767,7 @@ $1',
 'searchprofile-advanced' => 'Шуьйра',
 'searchprofile-articles-tooltip' => 'Лаха оцу $1',
 'searchprofile-project-tooltip' => 'Лаха оцу $1',
-'searchprofile-images-tooltip' => 'Ð¥lÑ\83мнаш лахар',
+'searchprofile-images-tooltip' => 'Файлаш лахар',
 'searchprofile-everything-tooltip' => 'Лаха массо агlонашкахь (дийцаре агlонашцани)',
 'searchprofile-advanced-tooltip' => 'Лаха дехарца хlокху ана цlерашкахь',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 дош|$2 дешнаш|$2 дешнаш}})',
@@ -785,7 +794,8 @@ $1',
 
 # Preferences page
 'preferences' => 'Гlирс нисбан',
-'mypreferences' => 'Гlирс нисбан',
+'mypreferences' => 'ГӀирс нисбан',
+'prefs-edits' => 'Нисдарши дукхалла:',
 'changepassword' => 'Хийцамба ишарна',
 'skin-preview' => 'Хьалха муха ю хьажа',
 'prefs-beta' => 'Гlоле таронаш',
@@ -796,24 +806,48 @@ $1',
 'prefs-watchlist' => 'Тергаме могlам',
 'prefs-misc' => 'Кхин гlирсаш',
 'prefs-resetpass' => 'Хийца ишар',
+'prefs-changeemail' => 'Хийца электрони почт',
+'prefs-email' => 'Электронан почтан параметрш',
 'prefs-rendering' => 'Арахьара хатl',
 'saveprefs' => 'lалашдан',
+'restoreprefs' => 'МеттахӀоттабе гӀирс дуьхӀар сана',
 'prefs-editing' => 'Тадар',
+'rows' => 'МогӀанаш:',
 'searchresultshead' => 'Лаха',
 'timezonelegend' => 'Сахьатан аса:',
-'prefs-searchoptions' => 'Лахарна гlирс нисба',
-'prefs-files' => 'Хlумнаш',
+'localtime' => 'Меттигера хан:',
+'servertime' => 'Сервера хан:',
+'allowemail' => 'Магийта декъашхошна хьайга электрони почтехула кехат кхехьийта',
+'prefs-searchoptions' => 'Лаха',
+'prefs-files' => 'Файлаш',
+'prefs-emailconfirm-label' => 'Бакъ яр электрони почт:',
+'prefs-textboxsize' => 'Тадаран коран барам',
 'youremail' => 'Кехат яздо зlе цlе:',
 'username' => 'Дlаязвиначуьна цlе:',
+'uid' => 'Декъашхочун {{GENDER:$1|код}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Тобана|Тобана}} {{PLURAL:$1|декъашхо|декъашхо}}:',
+'prefs-registration' => 'ДӀавазвелла (елла) хан:',
 'yourrealname' => 'Хьан бакъ цlе:',
-'yourlanguage' => 'ЮкÑ\8aаÑ\80декÑ\8aа Ð¼отт:',
+'yourlanguage' => 'Ð\9cотт:',
 'yourvariant' => 'Метта башхо',
+'yournick' => 'Керла куьгтаӀор:',
 'yourgender' => 'Ву/Йу:',
 'gender-unknown' => 'хlоттийна яц',
 'gender-male' => 'борша',
 'gender-female' => 'сте',
 'prefs-help-email' => 'Кехат яздо зlен цlе цахlоттийча аъ хlумма дац, амма иза оьшар ю, нагахь хьуна хьай ишар йицлахь.',
-'prefs-diffs' => 'Башхон варси',
+'prefs-info' => 'Коьрта хаам',
+'prefs-i18n' => 'Юкъардекъа мотт',
+'prefs-signature' => 'КуьгтаӀор',
+'prefs-advancedediting' => 'Кхин гӀирс нисбар',
+'prefs-advancedrc' => 'Кхин гӀирс нисбар',
+'prefs-advancedrendering' => 'Кхин гӀирс нисбар',
+'prefs-advancedsearchoptions' => 'Кхин гӀирс нисбар',
+'prefs-advancedwatchlist' => 'Кхин гӀирс нисбар',
+'prefs-displayrc' => 'Гуш болу гӀирсаш',
+'prefs-displaysearchoptions' => 'Гуш болу гӀирсаш',
+'prefs-displaywatchlist' => 'Гуш болу гӀирсаш',
+'prefs-diffs' => 'Башхон верси',
 
 # User rights
 'userrights' => 'Декъашхочуьн бакъона урхалладар',
@@ -823,21 +857,23 @@ $1',
 # Groups
 'group' => 'Тоба:',
 'group-user' => 'Декъашхой',
+'group-autoconfirmed' => 'Бакъонаш йолу декъашхой',
 'group-bot' => 'Шаболххой',
-'group-sysop' => 'Ð\90даманкуьйгалхой',
+'group-sysop' => 'Ð\9aуьйгалхой',
 'group-bureaucrat' => 'Даржахой',
 'group-suppress' => 'Левисорхой',
 'group-all' => '(массо)',
 
 'group-user-member' => '{{GENDER:$1|декъашхо}}',
 'group-bot-member' => 'шаболххо',
-'group-sysop-member' => 'адманкуьйгалхо',
+'group-sysop-member' => '{{GENDER:$1|куьйгалхо}}',
 'group-bureaucrat-member' => 'даржахо',
 'group-suppress-member' => 'левисорхо',
 
 'grouppage-user' => '{{ns:project}}:Декъашхой',
+'grouppage-autoconfirmed' => '{{ns:project}}:Бакъонаш йолу декъашхой',
 'grouppage-bot' => '{{ns:project}}:Шаболххой',
-'grouppage-sysop' => '{{ns:project}}:Ð\90даманкуьйгалхой',
+'grouppage-sysop' => '{{ns:project}}:Ð\9aуьйгалхой',
 'grouppage-bureaucrat' => '{{ns:project}}:Даржахой',
 'grouppage-suppress' => '{{ns:project}}:Левисорхой',
 
@@ -939,15 +975,17 @@ PICT # тайп тайпан
 'filehist-thumb' => 'Жима',
 'filehist-thumbtext' => 'Жимо башхо оцу $1',
 'filehist-user' => 'Декъашхо',
-'filehist-dimensions' => 'Ð¥lÑ\83ман барам',
+'filehist-dimensions' => 'Файлан барам',
 'filehist-comment' => 'Билгалдаккхар',
-'imagelinks' => 'Ð¥Ñ\8cажоÑ\80игаÑ\88 Ð¾Ñ\86Ñ\83 Ñ\85\83ман',
+'imagelinks' => 'Ð¥Ñ\8cажоÑ\80игаÑ\88 Ð¾Ñ\86Ñ\83 Ñ\84айлан',
 'linkstoimage' => '{{PLURAL:$1|Тlаьхьайогlу $1 агlо тlетойжина|Тlаьхьайогlу $1 агlонаш тlетойжина|Тlаьхьайогlу $1 агlонаш тlетойжина}} хlокху хlуман:',
+'nolinkstoimage' => 'АгӀонашчохь файл лелош яц.',
 'sharedupload' => 'Хlара хlума оцун $1 чура ю иза хила мега лелош кхечу кхолламашкахь.',
 'uploadnewversion-linktext' => 'Чуяккха керла башхо хlокху хlуман',
 'shared-repo-name-wikimediacommons' => 'Викидlайуллуче',
 
 # File reversion
+'filerevert-comment' => 'Бахьан:',
 'filerevert-submit' => 'Юхаяккха',
 
 # File deletion
@@ -960,7 +998,9 @@ PICT # тайп тайпан
 
 {{#ifexist:{{TALKPAGENAME}}|ХӀокху агӀона ю '''[[{{TALKPAGENAME}}|дийцаре агӀо]].'''}}
 </div>",
+'filedelete-comment' => 'Бахьан:',
 'filedelete-submit' => 'ДӀаяккха',
+'filedelete-success' => '$1 дӀаяккхи.',
 'filedelete-otherreason' => 'Кхин бахьан:',
 'filedelete-reason-otherlist' => 'Кхин бахьан',
 
@@ -990,13 +1030,15 @@ PICT # тайп тайпан
 'statistics-articles' => 'Яззамаш',
 'statistics-pages' => 'Агlонаш',
 'statistics-pages-desc' => 'Массо вики агlонаш, дийцаре агlонашцани, дlасахьаждарш а кхин дерш.',
-'statistics-files' => 'ЧÑ\83йаÑ\8cÑ\85на Ñ\85\83мнаш',
+'statistics-files' => 'ЧÑ\83йаÑ\8cÑ\85на Ñ\84айлаш',
 'statistics-edits' => 'Нисдаран дукхалла {{grammar:genitive|{{SITENAME}}}} дlа йолайаларца',
 'statistics-edits-average' => 'Йукъера агlонан нисдаран терхь',
+'statistics-users' => '[[ВП:Дlаязвалар|Дlаязбелларш]] шаберигге декъашхой чохь болу [[Special:ListUsers|(могlам)]]',
 'statistics-users-active' => 'Жигар декъашхой',
 'statistics-users-active-desc' => 'Декъашхой, муьлха цхьа хlум дина болу, кху {{PLURAL:$1|тlаьххьара $1 динахь|тlаьххьара $1 дийнахь}}',
 
 'disambiguations' => 'Дуккха маьIнаш долу хьажорца йолу агIонаш',
+'disambiguationspage' => 'Куцкеп:цхьатера маьӀна доцуш',
 
 'doubleredirects' => 'ШалгIа дIасахьажийнарш',
 'double-redirect-fixed-move' => 'Агlон [[$1]] цlе хийцна, хlинца иза дlахьажийна оцу [[$2]]',
@@ -1013,7 +1055,7 @@ PICT # тайп тайпан
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт|байташ|байт}}',
 'ncategories' => '$1 {{PLURAL:$1|категори|категореш|категореш}}',
-'nmembers' => '$1 {{PLURAL:$1|файл|файлана|файлаш}}',
+'nmembers' => '$1 {{PLURAL:$1|файл|файл|файлаш}}',
 'specialpage-empty' => 'Дехаро хlумма ца елла.',
 'lonelypages' => 'Байлахь йисина агIонаш',
 'uncategorizedpages' => 'Категори йоцу агIонаш',
@@ -1029,9 +1071,10 @@ PICT # тайп тайпан
 'mostlinkedcategories' => 'Дуккха тIе хьажораш йолу кадегарш',
 'mostlinkedtemplates' => 'Массарел дуккха а леладо куцкепаш',
 'mostcategories' => 'Дуккха кадегарш тIе тоьхна йолу агIонаш',
-'mostimages' => 'Ð\9cаÑ\81Ñ\81аÑ\80ел Ð´Ñ\83ккÑ\85а Ð»ÐµÐ»Ð°Ð¹Ð¾ Ñ\85\83мнаш',
+'mostimages' => 'Ð\9cаÑ\81Ñ\81аÑ\80ел Ð´Ñ\83ккÑ\85а Ð»ÐµÐ»Ð°Ð¹Ð¾ Ñ\84айлаш',
 'mostrevisions' => 'Сих сиха нисйина йолу агIонаш',
 'prefixindex' => 'Хьалха агlонашан цlераш хlотто йеза',
+'prefixindex-namespace' => 'Хьалха агӀонашан цӀераш хӀотто еза («{{ns:$1}}»)',
 'shortpages' => 'Боцоа яззамаш',
 'longpages' => 'Беха яззамаш',
 'deadendpages' => 'Дика йоцу агIонаш',
@@ -1040,12 +1083,15 @@ PICT # тайп тайпан
 'listusers' => 'Декъашхой могlам',
 'listusers-editsonly' => 'Цхаъ мукъане а хийцам бина декъашхой гайта',
 'listusers-creationsort' => 'Кхолларан хене хьаьжна нисъяр',
+'usercreated' => '{{GENDER:$3|ДӀавазвелла}} $1 $2',
 'newpages' => 'Керла агlонаш',
 'newpages-username' => 'Декъашхо:',
 'ancientpages' => 'Яззамаш оцу терахьца тяххьара тадар дина долу',
 'move' => 'Цlе хийца',
 'movethispage' => 'Хlокху агlон цlе хийца',
 'unusedimagestext' => 'Дехар до, тидаме эца, кхин йолу дуьнана машан-меттигаш а лелош хила мега нисса йогlу хьажориг (URL) хlокху хlуман, хlокху могlаме йогlуш ялахь яцахь а иза хила мега жигара лелош.',
+'nopagetitle' => 'Ишта агӀо яц',
+'nopagetext' => 'Ишта агӀо яц.',
 'pager-newer-n' => '{{PLURAL:$1|алсамо керла|алсамо керланаш|алсамо керлачарех}} $1',
 'pager-older-n' => '{{PLURAL:$1|алсамо шира|алсамо ширниш|алсамо ширачарех}} $1',
 
@@ -1076,6 +1122,7 @@ PICT # тайп тайпан
 'allpagesprefix' => 'Лаха агlонаш, дlайуьлалуш йолу:',
 'allpagesbadtitle' => 'Цамагош йолу агlон цlе. Коьрта могlан юкъах ю юкъарвики меттанашан юкъе тlечlагlйина йолу хьаьрк йа магийна доцу оцу коьрта моlанца сабол элп йа кхин.',
 'allpages-bad-ns' => '{{SITENAME}} кху чохь ана цlераш яц «$1».',
+'allpages-hide-redirects' => 'Къайлаяха дӀасахьажийнарш',
 
 # Special:Categories
 'categories' => 'Кадегарш',
@@ -1091,11 +1138,12 @@ PICT # тайп тайпан
 'linksearch-line' => '$2 — хьажориг кху $1',
 
 # Special:ListUsers
+'listusersfrom' => 'ТӀера волавелла декъашхой гайта:',
 'listusers-submit' => 'Гайта',
 
 # Special:ActiveUsers
 'activeusers' => 'Жигар декъашхой могlам',
-'activeusers-from' => 'ТӀера волавелла декъашхой гайта',
+'activeusers-from' => 'ТӀера волавелла декъашхой гайта:',
 
 # Special:ListGroupRights
 'listgrouprights' => 'Декъашхойн тобанаши бакъонаш',
@@ -1110,7 +1158,7 @@ PICT # тайп тайпан
 
 # Watchlist
 'watchlist' => 'Тергаме могlам',
-'mywatchlist' => 'Тергаме могlам',
+'mywatchlist' => 'Тергаме могӀам',
 'watchnologin' => 'Хьо вовзита веза гlирсан',
 'addedwatchtext' => 'Хlар агlо «[[:$1]]» тlетоьхна хьан [[Special:Watchlist|тидаме могlам чу]].
 Тlаьхьабогlу хийцамаш хlокх агlонна а кхунца дозуш долу дийцаре агlо а дlаяздийра ду кху могlамашкахь, ишта къастина хирду уьш шуьрочу элпашца хlокх агlон чохь [[Special:RecentChanges|керла хийцаме могlамашкахь]], бгlаьран га атту болуш.',
@@ -1138,6 +1186,7 @@ PICT # тайп тайпан
 'exblank' => 'агlо йаьсса йара',
 'delete-confirm' => '$1 — дӀаяккхар',
 'delete-legend' => 'Дlадайáр',
+'historywarning' => "'''Тергам:''' хӀокху агӀона герггарчу хьесапехь $1 {{PLURAL:$1|версеш|верси|верси}} ю:",
 'confirmdeletetext' => 'Хьан дехар ду хlара агlо ше бухци дlабайа аьлла (йа сурт) а массо цуьнан истори оцу бух чура. Дехар до, бакъде, билгала хьайна иза лаахь, кхеташ хира ву хьо тlаьхьа хир долу чун, иза деш ду ахьа бакъонца догlуш, вахьа дехкина долучу дакъанца [[{{MediaWiki:Policy-url}}]].',
 'actioncomplete' => 'Дешдерг кхочушди',
 'deletedtext' => '«$1» дlаяккхина йара.
@@ -1149,10 +1198,10 @@ PICT # тайп тайпан
 'deletereasonotherlist' => 'Кхин бахьан',
 
 # Rollback
-'rollback' => 'Ð\99Ñ\83Ñ\85аÑ\8fккха хийцам',
-'rollbacklink' => 'йухаяккха',
-'rollbacklinkcount' => 'йухаяккха $1 {{PLURAL:$1|нисдар|нисдарш}}',
-'rollbacklinkcount-morethan' => 'йÑ\83Ñ\85аÑ\8fккха $1 дукха {{PLURAL:$1|нисдар|нисдарш|нисдарш}}',
+'rollback' => 'ЮÑ\85абаккха хийцам',
+'rollbacklink' => 'юхаяккха',
+'rollbacklinkcount' => 'юхадаккха $1 {{PLURAL:$1|нисдар|нисдарш}}',
+'rollbacklinkcount-morethan' => 'ЮÑ\85адаккха $1 дукха {{PLURAL:$1|нисдар|нисдарш|нисдарш}}',
 'revertpage' => 'Нисдарш [[Special:Contributions/$2|$2]] ([[User talk:$2|дийцаре]]) йуха йаьхна башхаллийн [[User:$1|$1]]',
 
 # Protect
@@ -1172,7 +1221,7 @@ PICT # тайп тайпан
 'protect-default' => 'Гlаролла йоцуш',
 'protect-fallback' => 'Бакъо оьшу «$1»',
 'protect-level-autoconfirmed' => 'Гlаролла дé оцу керла а дlабазбина боцучу декъашхойх',
-'protect-level-sysop' => 'Ð\90дманкÑ\83Ñ\8cйгалÑ\85ой Ð±Ã©',
+'protect-level-sysop' => 'Ð\9aÑ\83Ñ\8cйгалÑ\85оÑ\88на Ð±Ã© Ñ\86амагдо',
 'protect-summary-cascade' => 'чахчареца',
 'protect-expiring' => 'чакхйолу $1 (UTC)',
 'protect-expiry-indefinite' => 'хан чаккхе йоцуш',
@@ -1190,7 +1239,7 @@ PICT # тайп тайпан
 
 # Undelete
 'undelete' => 'ДIайайина йолу агIонашка хьажар',
-'undeletepage' => 'Ð\94Ó\80аÑ\8fÑ\85ина Ð°Ð³Ó\80онаÑ\88ка Ñ\85Ñ\8cажаÑ\80 Ð° Ð¼ÐµÑ\82Ñ\82аÑ\85Ó\80оÑ\82Ñ\82ар а',
+'undeletepage' => 'Ð\94Ó\80аÑ\8fÑ\85ина Ð°Ð³Ó\80онаÑ\88ка Ñ\85Ñ\8cажаÑ\80 Ð° Ð¼ÐµÑ\82Ñ\82аÑ\85Ó\80оÑ\82Ñ\82ор а',
 'undeletepagetitle' => "'''Лахахь гайтина хӀокху [[:$1]] агӀона дӀаяхина версеш'''.",
 'viewdeletedpage' => 'ДIайайина йолу агIонашка хьажар',
 'undelete-fieldset-title' => 'МеттахӀоттае версеш',
@@ -1200,6 +1249,7 @@ PICT # тайп тайпан
 Иштнарг хилча ахьа дlабаккха беза хlоттийна болу къастам йа хьагайта тlаьххьара дlайайина башхо.',
 'undeletebtn' => 'МеттахӀоттае',
 'undeletelink' => 'хьажа/метта хlоттаде',
+'undeleteviewlink' => 'хьажа',
 'undeleteinvert' => 'Къастае массо',
 'undeletecomment' => 'Бахьан:',
 'undeletedrevisions' => '$1 {{PLURAL:$1|хийцамаш|хийцамаш|хийцамаш}} меттахӀоттайина',
@@ -1227,6 +1277,7 @@ PICT # тайп тайпан
 'sp-contributions-newbies' => 'Гайта бекъ къинхьегам, керла дlабазбиначара бина болу',
 'sp-contributions-blocklog' => 'сацораш',
 'sp-contributions-deleted' => 'дӀадаьхна нийсдарш',
+'sp-contributions-uploads' => 'тӀетохар',
 'sp-contributions-logs' => 'тéптарш',
 'sp-contributions-talk' => 'дийцаре',
 'sp-contributions-userrights' => 'декъашхочуьн бакъона урхалладар',
@@ -1240,6 +1291,7 @@ PICT # тайп тайпан
 'whatlinkshere-title' => 'Агlонаш, хьажоригца оцу «$1»',
 'whatlinkshere-page' => 'Агlо:',
 'linkshere' => "Тlаьхьайогlу агlонаш хьажоригца ю оцу '''[[:$1]]''':",
+'nolinkshere' => "ХӀокху '''[[:$1]]''' агӀона тӀе кхечу агӀонашчохь хьажоригаш яц",
 'isredirect' => 'агlо-дlасахьажайар',
 'istemplate' => 'лата йe',
 'isimage' => 'Оцу суьртан хьажориг',
@@ -1252,16 +1304,28 @@ PICT # тайп тайпан
 'whatlinkshere-filters' => 'Литтарш',
 
 # Block/unblock
+'block' => 'Декъашхо сацавар',
 'blockip' => 'Сацаве',
+'blockip-legend' => 'Декъашхо сацавар',
 'ipadressorusername' => 'IP-долу меттиг йа декъашхон цlе:',
+'ipbexpiry' => 'Хан чекхйолу:',
+'ipbreason' => 'Бахьан:',
 'ipbreasonotherlist' => 'Кхин бахьан',
+'ipbcreateaccount' => 'Цамагдо дӀаязвалар',
+'ipbemailban' => 'Цамагдо декъашхошка хааман кехаташ кхехьийта',
+'ipbenableautoblock' => 'Сацае декъашхочо лелош йолу IP-адресаш',
+'ipbsubmit' => 'Сацаве декъашхо',
 'ipboptions' => '2 сахьат:2 hours,1 де:1 day,3 де:3 days,1 кlиран:1 week,2 кlиран:2 weeks,1 бутт:1 month,3 бутт:3 months,6 бутт:6 months,1 шо:1 year,цlкъа:infinite',
+'ipbwatchuser' => 'ТӀетоха тергаме могӀам юкъа цуьнан долахь йолу агӀо а цуьнан дийцаре агӀо а',
+'ipb-disableusertalk' => 'Цамагдо шин дийцаре агӀо та я сацийна волучу хенахь',
+'ipb-confirm' => 'Бакъде сацавар',
 'blockipsuccesssub' => 'Сацавар чакхдели',
 'blockipsuccesstext' => '[[Special:Contributions/$1|«$1»]] сацийна ву.<br />
 Хьажа. [[Special:BlockList|могlам сацийна IP-долу меттигаш]].',
 'ipb-blocklist-contribs' => 'Декъашхон къинхьегам $1',
 'unblocked' => '[[User:$1|$1]] хьайаьстина.',
 'ipblocklist' => 'Сацийна IP-долу меттиг а дlалаьрра язбаларш',
+'blocklist-reason' => 'Бахьан:',
 'ipblocklist-submit' => 'Лаха',
 'blocklink' => 'сацаве',
 'unblocklink' => 'хьаваста',
@@ -1287,6 +1351,19 @@ PICT # тайп тайпан
 '''ДlАХЬЕДАР!'''
 Цlе хийцарца хила тарло барамашкахь а цамётту хийцам ''гlар йойлачу'' агlонашна.
 Дехар до, кхин дlа хьо вахале, дика ойла йе, хьо кхеташ хиларехь тlаьхьа хиндолучунах.",
+'movepagetext-noredirectfixer' => "Бухахь йолу форманца агӀон цӀе хийцало. Цул совнах цуьна хийцаман журнал кхоьчу метте доккха. Хьалхалера цӀарахь хиръю керла кхоьллина агӀонан хьажораг.
+
+Хьовсалаш [[Special:DoubleRedirects|шалха]] а [[Special:BrokenRedirects|йохна хьажорагаш]] юй техь аьлла.
+
+Шу жоьпехь ду хьажорагаш нийса некъ гойтуш хиларан.
+
+Тидам бе хьалхалера агӀон цӀе ‘’’хийцалур яц’’’ иштта цӀе йолу агӀо йолуш елахь. Юкъардаккхар: йолуш йолу агӀа кхоьчухьа хьажораг елахь, я еса елахь а, цуьна хьийцаме истори яцахь а.
+
+И бохург ду шун агӀонан цӀе юха а хьалха хилларгчунтӀе хийца йиш ю, амма йолуш йолу агӀо дӀаяккха йиш яц.
+
+'''ДӀАХЬЕДАР!'''
+
+ЦӀе хийцар бахьнехь гӀаръялла агӀонашна дукха дагахь боцу хийцамаш хила тарло. Цундела цӀе хийцале шеш хила тарлучу тӀехьонашах кхета аьлла тешна хила.",
 'movepagetalktext' => "Тlе хlоьттина йолу дийцаре агlо ишта цlе хийцина хира ю, '''цхьа йолу ханчохь, маца:'''
 
 *Йаьсса йоцу дийцаре агlо йолуш ю оцу цlарца йа
@@ -1300,6 +1377,7 @@ PICT # тайп тайпан
 'pagemovedsub' => 'Агlон цlе хийцина',
 'movepage-moved' => "'''Агlон цlе «$1» хийцина хlокху «$2»'''",
 'movepage-moved-redirect' => 'Кхоьллина дӀасахьажориг.',
+'movepage-moved-noredirect' => 'ДӀасхьажориг кхоллар дохина.',
 'articleexists' => 'Хlарасанна цlе йолу агlо йолуш ю йа ахьа гойтуш йолу цlе магош яц.
 Дехар до, харжа кхин цlе.',
 'talkexists' => "'''Агlон цlе хийцина йара, амма дийцаре агlон цlе хийца цало, хlунда аьльча иза санна цlе йолу агlо йолуш ю. Дехар до, куьйга хlотта уьш.'''",
@@ -1311,7 +1389,7 @@ PICT # тайп тайпан
 'movesubpage' => '{{PLURAL:$1|Бухара агӀо|Бухара агӀонаш}}',
 'movenosubpage' => 'ХӀокху агӀона бухара агӀонаш яц.',
 'movereason' => 'Бахьан:',
-'revertmove' => 'йухаяккха',
+'revertmove' => 'юхаяккха',
 'delete_and_move' => 'Цle а хуьйцуш дӀаяккха',
 'delete_and_move_text' => '== ДӀаяккха хьокъ ю ==
 И цӀе йолу аг1о «[[:$1]]» йолуш ю. 
@@ -1392,7 +1470,7 @@ PICT # тайп тайпан
 'tooltip-feed-atom' => 'Хьагайтар оцу Atom цани хlокху агlон',
 'tooltip-t-contributions' => 'Хlокху декъашхочо хийцина йолу агlонашан могlам',
 'tooltip-t-emailuser' => 'Дlабахьийта хаам оцу декъашхона',
-'tooltip-t-upload' => 'ЧÑ\83даÑ\85а Ñ\81Ñ\83Ñ\8cÑ\80Ñ\82аÑ\88 Ð¹Ð° Ñ\88агойÑ\82Ñ\83Ñ\88 Ð¹Ð¾Ð»Ñ\83 Ñ\85\83мнаш',
+'tooltip-t-upload' => 'ЧÑ\83йаÑ\85а Ñ\84айлаш',
 'tooltip-t-specialpages' => 'Белха агlонаши могlам',
 'tooltip-t-print' => 'Хlокху агlонна зорба туху башхо',
 'tooltip-t-permalink' => 'Даимна йолу хьажориг хlокху башха агlонна',
@@ -1441,10 +1519,12 @@ PICT # тайп тайпан
 'nextdiff' => 'Тlяхьа догlа нисдинарг →',
 
 # Media information
+'imagemaxsize' => "Суьртан бараман доза тохар:<br />''(Файла агӀона куц дийцар)''",
+'thumbsize' => 'Жима дина суьртан барам:',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|агlо|агlонаш|агlонаш}}',
-'file-info-size' => '$1 × $2 сиртакх, хlуман барам: $3, MIME-тайп: $4',
+'file-info-size' => '$1 × $2 {{PLURAL:$2|пиксель|пикселш|пикселш}}, файлан барам: $3, MIME-тайп: $4',
 'file-nohires' => 'Кхи йоккха гlоле башхо яц.',
-'svg-long-desc' => 'SVG-Ñ\85\83ма, Ñ\85lоÑ\82Ñ\82амÑ\86а $1 Ã\97 $2 Ñ\86инÑ\82аÑ\88, Ñ\85\83ман барам: $3',
+'svg-long-desc' => 'SVG-Ñ\84айл, Ð»Ð°Ñ\80Ñ\82Ó\80аÑ\85Ñ\8c Ñ\8e $1 Ã\97 $2 {{PLURAL:$2|пикÑ\81елÑ\8c|пикÑ\81елÑ\88|пикÑ\81елÑ\88}}, Ñ\84айлан барам: $3',
 'show-big-image' => 'Сурт цlанал лаккхара бакъонца',
 
 # Special:NewFiles
@@ -1464,7 +1544,7 @@ PICT # тайп тайпан
 
 # Metadata
 'metadata' => 'Метахаамаш',
-'metadata-help' => 'Хlокху хlуманца кхин тlе хаам бу, даиман чуйоккхуш йолу терахьца чоьнашца йа тlейоккхучуьнца. Нагахь хlуман тlаьхьа хийцам биняхь, тlаккха цlхьаболу барам цlхьаьна ца ба мега хlинцлера суртаца.',
+'metadata-help' => 'ХӀокху файлаца кхин тӀе хаам бу, даиман чуйоккхуш йолу терахьца чоьнашца йа тӀейоккхучуьнца. Нагахь файлан тӀаьхьа хийцам биняхь, тӀаккха цӀхьаболу барам цӀхьаьна ца ба мега хӀинцалера суьртаца.',
 'metadata-expand' => 'Гайта кхин тlе болу хаам',
 'metadata-collapse' => 'Къайла баккха кхин тlе болу хаам',
 'metadata-fields' => 'Метахааман майда, хьахийна йолу хlокху могlамца, lад-йитича гойтур ю суьрти агlонца, йисинарш хира ю къайлаха.
@@ -1539,7 +1619,8 @@ PICT # тайп тайпан
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|дийцаре]])',
 
 # Special:Version
-'version' => 'Варси MediaWiki',
+'version' => 'Верси MediaWiki',
+'version-other' => 'Кхин',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Лаха цхьатера йолу хIумнаш',
@@ -1582,6 +1663,9 @@ PICT # тайп тайпан
 'dberr-usegoogle' => 'Цlачун хьо хьажа лаха гlонца Google.',
 'dberr-outofdate' => 'Хьуна хаалахь, цуьна йолу меттиг хила мега тишйелла черахь.',
 
+# HTML forms
+'htmlform-selectorother-other' => 'Кхин',
+
 # New logging system
 'logentry-delete-delete' => '$1 {{GENDER:$2|дӀаякхина|дӀаякхина}} агӀо $3',
 'logentry-delete-restore' => '$1 {{GENDER:$2|меттахӀоттайина|меттахӀоттайина}} агӀо $3',
@@ -1590,4 +1674,7 @@ PICT # тайп тайпан
 'logentry-move-move_redir' => '$1 {{GENDER:$2|цӀе хийцина|цӀе хийцина}} $3 оцу $4 дӀасахьажоран тӀохул',
 'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|цӀе хийцина|цӀе хийцина}} $3 оцу $4 дӀасахьажоран тӀохул а дӀасахьажийнарг цаюьтуш а',
 
+# Search suggestions
+'searchsuggest-search' => 'Лаха',
+
 );
index befb913..8eaafb2 100644 (file)
@@ -1959,6 +1959,15 @@ $1',
 'listusers-noresult' => 'ھیچ بەکارھێنەرێک نەدۆزرایەوە.',
 'listusers-blocked' => '(بەربەست کراوە)',
 
+# Special:ActiveUsers
+'activeusers' => 'پێرستی بەکارھێنەرە چالاکەکان',
+'activeusers-intro' => 'ئەمە لیستێکی ئەو بەکارھێنەرانەیە کە لە  $1 {{PLURAL:$1|ڕۆژ|ڕۆژ}}ی ڕابردوودا بە جۆرێک چالاکییەکیان ھەبووە.',
+'activeusers-count' => '$1 {{PLURAL:$1|کردەوە}} لە دوایین {{PLURAL:$3|ڕۆژ|$3 ڕۆژ}}دا',
+'activeusers-from' => 'نیشاندانی بەکارھێنەران بە دەستپێکردن لە:',
+'activeusers-hidebots' => 'بۆتەکان بشارەوە',
+'activeusers-hidesysops' => 'بەڕێوبەران بشارەوە',
+'activeusers-noresult' => 'هیچ بەکارهێنەرێک نەدۆزرایەوە',
+
 # Special:ListGroupRights
 'listgrouprights' => 'مافەکانی گرووپی بەکارھێنەر',
 'listgrouprights-summary' => 'ئەمە لیستێکە لە گرووپەکانی بەکارهێنەر لەسەر ئەم ویکی‌یە، دەگەڵ مافەکانی دەست‌پێ‌گەیشتنی هاوپەیوەندیان.
@@ -1987,7 +1996,7 @@ $1',
 'emailpage' => 'ئیمەیل بۆ بەکارھێنەر',
 'emailpagetext' => 'دەتوانی لەم فۆرمەی ژێرەوە بۆ ناردنی ئیمەیلێک بۆ ئەم {{GENDER:$1|بەکارھێنەر}}ە کەڵک وەربگریت.
 ئەو ناونیشانە ئیمەیلە لە [[Special:Preferences|ھەڵبژاردەکانی بەکارھێنەر‌یتدا]] نووسیوتە، لە ناونیشانی «لەلایەن»ی (From) ئیمەیلەکەدا نیشان دەدرێت، کە وایە بەکارھێنەری وەرگر دەتوانێ ڕاستەوخۆ وەڵامت بداتەوە.',
-'defemailsubject' => 'ئیمەیڵی {{SITENAME}} لە بەکارھێنەر «$1»ەوە',
+'defemailsubject' => 'ئیمەیلی {{SITENAME}} لە بەکارھێنەر «$1»ەوە',
 'usermaildisabled' => 'ئیمەیڵی بەکارهێنەر لەکاردانیە',
 'noemailtitle' => 'هیچ ناونیشانێکی ئی‌مەیل نییە',
 'noemailtext' => 'ئەم بەکارهێنەرە ناونێشانێکی بڕوا پێکراوی ئی‌مەیلی دانەناوە.',
@@ -2884,7 +2893,7 @@ $1',
 * gpslongitude
 * gpsaltitude',
 
-# EXIF tags
+# Exif tags
 'exif-imagewidth' => 'پانی',
 'exif-imagelength' => 'بەرزی',
 'exif-ycbcrpositioning' => 'شوێنی Y و C',
@@ -2951,7 +2960,7 @@ $1',
 # Make & model, can be wikified in order to link to the camera and model name
 'exif-subjectnewscode-value' => '$2 ($1)',
 
-# EXIF attributes
+# Exif attributes
 'exif-compression-1' => 'نەپەستێنراو',
 
 'exif-copyrighted-true' => 'خاوەنی مافی بڵاوکردنەوە',
index cb7e5ac..de2e42b 100644 (file)
@@ -786,7 +786,7 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'createacct-yourpasswordagain-ph' => 'Zadejte heslo ještě jednou',
 'remembermypassword' => 'Zapamatovat si mé přihlášení na tomto počítači (maximálně $1 {{PLURAL:$1|den|dny|dní}})',
 'userlogin-remembermypassword' => 'Přihlásit trvale',
-'userlogin-signwithsecure' => 'Přihlášení na zabezpečený server',
+'userlogin-signwithsecure' => 'Používat zabezpečené připojení',
 'securelogin-stick-https' => 'Zůstat po přihlášení připojen přes HTTPS',
 'yourdomainname' => 'Vaše doména',
 'password-change-forbidden' => 'Na této wiki nemůžete měnit hesla.',
@@ -807,6 +807,7 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'gotaccount' => "Už jste registrováni? '''$1'''.",
 'gotaccountlink' => 'Přihlaste se',
 'userlogin-resetlink' => 'Zapomněli jste přihlašovací údaje?',
+'userlogin-resetpassword-link' => 'Obnovit heslo',
 'helplogin-url' => 'Help:Přihlášení',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Nápověda k přihlašování]]',
 'createacct-join' => 'Níže zadejte své údaje.',
@@ -824,9 +825,9 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'createacct-imgcaptcha-ph' => 'Opište výše zobrazený text',
 'createacct-submit' => 'Vytvořit účet',
 'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tvoří lidé jako vy.',
-'createacct-benefit-body1' => '{{PLURAL:{{NUMBEROFEDITS:R}}|editace|editace|editací}}',
-'createacct-benefit-body2' => '{{PLURAL:{{NUMBEROFARTICLES:R}}|stránka|stránky|stránek}}',
-'createacct-benefit-body3' => '{{PLURAL:{{NUMBEROFACTIVEUSERS:R}}|nedávný přispěvatel|nedávní přispěvatelé|nedávných přispěvatelů}}',
+'createacct-benefit-body1' => '{{PLURAL:$1|editace|editace|editací}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|stránka|stránky|stránek}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|nedávný přispěvatel|nedávní přispěvatelé|nedávných přispěvatelů}}',
 'badretype' => 'Vámi napsaná hesla nesouhlasí.',
 'userexists' => 'Zadané uživatelské jméno se již používá.
 Zvolte si prosím jiné jméno.',
@@ -2513,7 +2514,7 @@ Poslední editaci této stránky provedl(a) [[User:$3|$3]] ([[User talk:$3|disku
 'sessionfailure-title' => 'Chyba sezení',
 'sessionfailure' => 'Zřejmě je nějaký problém s vaším přihlášením;
 vámi požadovaná činnost byla stornována jako prevence před neoprávněným přístupem.
-Stiskněte tlačítko „zpět“, obnovte stránku, ze které jste přišli a zkuste činnost znovu.',
+Stiskněte tlačítko „zpět“, obnovte stránku, ze které jste přišli, a zkuste činnost znovu.',
 
 # Protect
 'protectlogpage' => 'Kniha zamčení',
@@ -3979,6 +3980,7 @@ MediaWiki je distribuována v naději, že bude užitečná, avšak BEZ JAKÉKOL
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Cesta k článkům]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Cesta ke skriptům]',
 
+# Special:Redirect
 'redirect' => 'Přesměrování podle souboru, uživatele nebo ID revize',
 'redirect-legend' => 'Přesměrování na soubor či stránku',
 'redirect-summary' => 'Tato speciální stránka přesměrovává na soubor (podle názvu), stránku (podle ID revize) nebo uživatele (podle číselného uživatelského ID).',
index 990c49c..5b5573c 100644 (file)
@@ -3655,6 +3655,7 @@ Dylech fod wedi derbyn [{{SERVER}}{{SCRIPTPATH}}/COPYING gopi o GNU General Publ
 'version-entrypoints-header-entrypoint' => 'Man cyflwyno',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Ailgyfeirio yn ôl enw ffeil, ID defnyddiwr neu ID diwygiad tudalen',
 'redirect-legend' => 'Ailgyfeirio i ffeil neu dudalen',
 'redirect-summary' => "Mae'r dudalen arbennig hon yn arwain at ffeil (o roi enw'r ffeil), at dudalen (o roi ID rhyw ddidwygiad o'r dudalen), neu at dudalen defnyddiwr (o roi rhif y defnyddiwr).",
index 0291581..7c0a8b2 100644 (file)
@@ -814,7 +814,7 @@ Midlertidig adgangskode: $2',
 # Edit pages
 'summary' => 'Beskrivelse:',
 'subject' => 'Emne/overskrift:',
-'minoredit' => 'Dette er en mindre ændring.',
+'minoredit' => 'Dette er en mindre ændring',
 'watchthis' => 'Overvåg denne side',
 'savearticle' => 'Gem side',
 'preview' => 'Forhåndsvisning',
@@ -3740,6 +3740,7 @@ Du skulle have modtaget [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopi af GNU General
 'version-entrypoints-header-entrypoint' => 'Indgangspunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Omdirigering pga. fil, bruger eller udgave ID',
 'redirect-legend' => 'Omstilling til en fil eller en side',
 'redirect-summary' => "Denne side omdirigerer en (hvis filnavnet er angivet), en side (hvis udgave ID'et er angivet) eller en brugerside (hvis et numerisk brugernummer er angivet).",
index 67a8086..8fd3b62 100644 (file)
@@ -163,6 +163,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Meine_hochgeladenen_Dateien' ),
        'Newimages'                 => array( 'Neue_Dateien' ),
        'Newpages'                  => array( 'Neue_Seiten' ),
+       'PagesWithProp'             => array( 'Seiten_mit_Eigenschaften' ),
        'PasswordReset'             => array( 'Passwort_neu_vergeben' ),
        'PermanentLink'             => array( 'Permanenter_Link', 'Permalink' ),
        'Popularpages'              => array( 'Beliebteste_Seiten' ),
@@ -174,6 +175,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'Zufällige_Weiterleitung' ),
        'Recentchanges'             => array( 'Letzte_Änderungen' ),
        'Recentchangeslinked'       => array( 'Änderungen_an_verlinkten_Seiten' ),
+       'Redirect'                  => array( 'Weiterleitung' ),
        'Revisiondelete'            => array( 'Versionslöschung' ),
        'Search'                    => array( 'Suche' ),
        'Shortpages'                => array( 'Kürzeste_Seiten' ),
@@ -254,6 +256,8 @@ $magicWords = array(
        'fullpagenamee'             => array( '1', 'VOLLER_SEITENNAME_URL', 'FULLPAGENAMEE' ),
        'subpagename'               => array( '1', 'UNTERSEITE', 'SUBPAGENAME' ),
        'subpagenamee'              => array( '1', 'UNTERSEITE_URL', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', 'STAMMSEITE', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'STAMMSEITE_URL', 'ROOTPAGENAMEE' ),
        'basepagename'              => array( '1', 'OBERSEITE', 'BASEPAGENAME' ),
        'basepagenamee'             => array( '1', 'OBERSEITE_URL', 'BASEPAGENAMEE' ),
        'talkpagename'              => array( '1', 'DISKUSSIONSSEITE', 'DISK', 'TALKPAGENAME' ),
@@ -4004,6 +4008,7 @@ Eine [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie der ''GNU General Public License'']
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Artikelpfad]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Skriptpfad]',
 
+# Special:Redirect
 'redirect' => 'Weiterleitung auf Benutzerseite, Seitenversion oder Datei',
 'redirect-legend' => 'Weiterleitung auf eine Benutzerseite, Seitenversion oder Datei',
 'redirect-summary' => 'Diese Spezialseite leitet auf eine Benutzerseite (numerische Benutzerkennung angegeben), Seitenversion (Versionskennung angegeben) oder Datei (Dateiname angegeben) weiter.',
index 85dc38f..b4242a7 100644 (file)
@@ -60,15 +60,15 @@ $specialPageAliases = array(
        'Blockme'                   => array( 'BloqeyêMe' ),
        'Booksources'               => array( 'KıtabeÇıme' ),
        'BrokenRedirects'           => array( 'HetênayışoXırab' ),
-       'Categories'                => array( 'Kategoriy' ),
+       'Categories'                => array( 'Kategoriyan' ),
        'ChangeEmail'               => array( 'EpostaVurnayış' ),
        'ChangePassword'            => array( 'ParolaBıvurnê', 'ParolaResetke' ),
        'ComparePages'              => array( 'PelaPêverke' ),
        'Confirmemail'              => array( 'EpostayAraştke' ),
-       'Contributions'             => array( 'İştiraqi' ),
+       'Contributions'             => array( 'Dekerdışi' ),
        'CreateAccount'             => array( 'HesabVırazê' ),
        'Deadendpages'              => array( 'PelaBıgirê' ),
-       'DeletedContributions'      => array( 'İştıraqêkeBesterneyayê' ),
+       'DeletedContributions'      => array( 'DekerdışêkeBesterneyayê' ),
        'Disambiguations'           => array( 'Arêzekerdış' ),
        'DoubleRedirects'           => array( 'HetanayışoDılet' ),
        'EditWatchlist'             => array( 'ListeyaSeyrkerdışiVurnayış' ),
@@ -765,6 +765,7 @@ Wexta ke verhafızayê cıgerayoxê şıma pak beno no benate de taye peli de he
 'gotaccount' => "Hesabê şıma esto? '''$1'''.",
 'gotaccountlink' => 'Cı kewe',
 'userlogin-resetlink' => 'Melumatê cıkewtışi xo vira kerdê?',
+'userlogin-resetpassword-link' => 'Parolaya xo reset ke',
 'helplogin-url' => 'Help:Qeydbiyayış',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Desteg be qeydbiyayış ra]]',
 'createacct-join' => 'Cêr melumatê xo cı ke',
@@ -775,6 +776,7 @@ Wexta ke verhafızayê cıgerayoxê şıma pak beno no benate de taye peli de he
 'createacct-realname' => 'Nameyo raştıkên (mecburi niyo)',
 'createaccountreason' => 'Sebeb:',
 'createacct-reason' => 'Sebeb',
+'createacct-reason-ph' => 'Şımaye çı xo re zewbi hesab vırazeni?',
 'createacct-captcha' => 'Qontrolê asayişi',
 'createacct-captcha-help-url' => '{{ns:Project}}:Yew hesab bıwaze',
 'createacct-imgcaptcha-help' => 'Resım nêvêniya? [[{{MediaWiki:createacct-captcha-help-url}}|Yew hesab bıwaze]]',
@@ -2261,7 +2263,7 @@ hem zi bıewnê [[Special:WantedCategories|kategori yê ke waziyeni]].',
 'linksearch-ok' => 'Cı geyre',
 'linksearch-text' => 'Jokeri ê zey "*.wikipedia.org"i benê ke bıgureniyê.
 Tewr senık yew sewiya serêna cayê tesiri lazıma, mesela "*.org".<br />
-Qeydeyê destegbiyayey: <code>$1</code> (qet yew qeydeyo hesabiyaye http:// ke name nêbiyo).',
+Qeydeyê {{PLURAL:$2|protoqol|protoqoli}}:destegbiyayey: <code>$1</code> (qet yew qeydeyo hesabiyaye http:// ke name nêbiyo).',
 'linksearch-line' => '$1, $2 ra link biya',
 'linksearch-error' => 'jokeri têna nameyê makina ya serekini de aseni/eseni.',
 
@@ -2274,7 +2276,7 @@ Qeydeyê destegbiyayey: <code>$1</code> (qet yew qeydeyo hesabiyaye http:// ke n
 # Special:ActiveUsers
 'activeusers' => 'Listey karberan de aktivan',
 'activeusers-intro' => 'Ena yew listeya karberê ke $1 {{PLURAL:$1|roc|rocan}} ra tepya iştiraq kerdo ênan mocneno.',
-'activeusers-count' => 'Karberi {{PLURAL:$3|roce peyni de|$3 roca peyni de}} $1 {{PLURAL:$1|vurnayış|vurnayışi}} kerdê',
+'activeusers-count' => '$1 peyni {{PLURAL:$3|roz de|$3 rozan de}} $1 {{PLURAL:$1|hereket|hereketi}} kerdê',
 'activeusers-from' => 'Enê karberi ra tepya bımocne:',
 'activeusers-hidebots' => 'Botan bınımne',
 'activeusers-hidesysops' => 'İdarekerdoğan bınımne',
@@ -2349,7 +2351,7 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 'watchnologintext' => 'qey vurnayişê listeya temaşakerdışi [[Special:UserLogin|gani şıma hesab akeri]].',
 'addwatch' => 'Listeyê seyri deke',
 'addedwatchtext' => 'Ma pele "[[:$1]]" zerri [[Special:Watchlist|watchlist]]ê tı kerd de.
-Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni. Hem zi çı dem ma tu ri heber dun, zerri [[Special:RecentChanges|list of recent changes]] name pele beno qalın. Tı ri beno qolay çıta vurnaye biyo.',
+Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni.',
 'removewatch' => 'Listedê mınê seyr kerdışi ra hewad',
 'removedwatchtext' => 'Ena pela "[[:$1]]" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].',
 'watch' => 'Temaşe ke',
@@ -4082,6 +4084,17 @@ enê programiya piya [{{SERVER}}{{SCRIPTPATH}}/COPYING jew kopyay lisans dê GNU
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Article path]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Script path]',
 
+# Special:Redirect
+'redirect' => "Hetenayışa dosyay, karberi yana  rewizyona ID'i",
+'redirect-legend' => 'Hetenayışa dosya yana pela',
+'redirect-submit' => 'Şo',
+'redirect-lookup' => 'Bewni',
+'redirect-value' => 'Erc:',
+'redirect-user' => "ID'ê Karberi",
+'redirect-revision' => 'Rewizyona pela',
+'redirect-file' => 'Namey dosya',
+'redirect-not-exists' => 'Erc nêvineyê',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Dosyayanê zey pêyan cı geyrê',
 'fileduplicatesearch-summary' => 'Dosyanê çıftan bınê têmiyankewteyan de bıgeyre.',
@@ -4174,6 +4187,7 @@ Ena sita dı newke xırabiya teknik esta.',
 'htmlform-selectorother-other' => 'Bin',
 'htmlform-no' => 'Nê',
 'htmlform-yes' => 'Eya',
+'htmlform-chosen-placeholder' => 'Opsiyon weçine',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 tam-metn destegê cı geyrayışiya piya',
index 999b906..294ce1b 100644 (file)
@@ -37,27 +37,45 @@ $namespaceNames = array(
 );
 
 $specialPageAliases = array(
-       'Allpages'                  => array( 'ހުރިހާ ސަފްޙާއެއް' ),
+       'Activeusers'               => array( 'ހަރަކާތްތެރި_މެމްބަރުން' ),
+       'Allmessages'               => array( 'ހުރިހާ_މެސެޖެއް' ),
+       'Allpages'                  => array( 'ހުރިހާ_ޞަފްޙާއެއް' ),
+       'Ancientpages'              => array( 'ބާ_ޞަފްޙާތައް' ),
+       'Blankpage'                 => array( 'ހުސް_ޞަފްޙާ' ),
        'Contributions'             => array( 'ޙިއްސާ' ),
-       'CreateAccount'             => array( 'މެމްބަރުކަން ހާސިލްކުރައްވާ' ),
-       'Emailuser'                 => array( 'މެމްބަރަށް އީ-މެއިލް ފޮނުވާ' ),
-       'BlockList'                 => array( 'ބްލޮކް ކުރެވިފައިވާ ލިސްޓް' ),
-       'Listfiles'                 => array( 'ފައިލް ލިސްޓް' ),
-       'Longpages'                 => array( 'ދިގު ސަފްޙާތައް' ),
-       'Newimages'                 => array( 'އާ ފައިލް' ),
-       'Newpages'                  => array( 'އާ ސަފްހާތައް' ),
+       'CreateAccount'             => array( 'މެމްބަރުކަން_ހާސިލްކުރައްވާ' ),
+       'Emailuser'                 => array( 'މެމްބަރަށް_އީ-މެއިލް_ފޮނުވާ' ),
+       'BlockList'                 => array( 'ބްލޮކް_ކުރެވިފައިވާ_ލިސްޓް' ),
+       'Listfiles'                 => array( 'ފައިލް_ލިސްޓް' ),
+       'Log'                       => array( 'ލޮގު' ),
+       'Longpages'                 => array( 'ދިގު_ސަފްޙާތައް' ),
+       'Mypage'                    => array( 'މަގޭ_ޞަފްޙާ' ),
+       'Mytalk'                    => array( 'މަގޭ_ވާހަކަ' ),
+       'Myuploads'                 => array( 'މަގޭ_ފައިލުތައް' ),
+       'Newimages'                 => array( 'އާ_ފައިލް' ),
+       'Newpages'                  => array( 'އާ_ސަފްހާތައް' ),
        'Preferences'               => array( 'ތަރުޖީހުތައް' ),
-       'Protectedpages'            => array( 'ދިފާޢުކުރެވިފައިވާ ސަފްޙާތައް' ),
-       'Randompage'                => array( 'ކޮންމެވެސް ސަފްޙާއެއް' ),
-       'Recentchanges'             => array( 'އެންމެ ފަހުގެ ބަދަލްތައް' ),
-       'Shortpages'                => array( 'ކުރު ސަފްޙާތައް' ),
-       'Specialpages'              => array( 'ޙާއްސަ ސަފްޙާތައް' ),
-       'Uncategorizedtemplates'    => array( 'ޤިސްމުކުރެވިފައި ނުވާ ފަންވަތް' ),
-       'Unusedcategories'          => array( 'ބޭނުން ނުކުރާ ޤިސްމުތައް' ),
-       'Unusedimages'              => array( 'ބޭނުން ނުކުރާ ފައިލް' ),
+       'Protectedpages'            => array( 'ދިފާޢުކުރެވިފައިވާ_ސަފްޙާތައް' ),
+       'Protectedtitles'           => array( 'ދިފާޢުކުރެވިފައިވާ_ނަންތައް' ),
+       'Randompage'                => array( 'ކޮންމެވެސް_ސަފްޙާއެއް' ),
+       'Recentchanges'             => array( 'އެންމެ_ފަހުގެ_ބަދަލުތައް' ),
+       'Search'                    => array( 'ހޯއްދަވާ' ),
+       'Shortpages'                => array( 'ކުރު_ސަފްޙާތައް' ),
+       'Specialpages'              => array( 'ޙާއްސަ_ސަފްޙާތައް' ),
+       'Statistics'                => array( 'ތަފާސްހިސާބު' ),
+       'Uncategorizedpages'        => array( 'ޤިސްމުކުރެވިފައިނުވާ_ޞަފްޙާތައް' ),
+       'Uncategorizedtemplates'    => array( 'ޤިސްމުކުރެވިފައިނުވާ_ފަންވަތް' ),
+       'Unusedcategories'          => array( 'ބޭނުން_ނުކުރާ_ޤިސްމުތައް' ),
+       'Unusedimages'              => array( 'ބޭނުން_ނުކުރާ_ފައިލް' ),
+       'Unusedtemplates'           => array( 'ބޭނުންނުކުރާ_ފަންވަތްތައް' ),
        'Upload'                    => array( 'ފޮނުއްވާ' ),
        'Userlogin'                 => array( 'ވަދެވަޑައިގަންނަވާ' ),
-       'Userlogout'                => array( 'ބޭރަށް ވަޑައިގަންނަވާ' ),
+       'Userlogout'                => array( 'ބޭރަށް_ވަޑައިގަންނަވާ' ),
+       'Wantedcategories'          => array( 'ބޭނުންވާ_ޤިސްމުތައް' ),
+       'Wantedfiles'               => array( 'ބޭނުންވާ_ފައިލުތައް' ),
+       'Wantedpages'               => array( 'ބޭނުންވާ_ޞަފްޙާތައް' ),
+       'Wantedtemplates'           => array( 'ބޭނުންވާ_ފަންވަތްތައް' ),
+       'Watchlist'                 => array( 'މަގޭ_ނަޒަރު' ),
 );
 
 $messages = array(
index ee492c8..0d2c428 100644 (file)
@@ -800,12 +800,21 @@ $2',
 'gotaccount' => "Έχετε ήδη έναν λογαριασμό; '''$1'''.",
 'gotaccountlink' => 'Είσοδος',
 'userlogin-resetlink' => 'Ξεχάσατε τα στοιχεία σύνδεσής σας;',
+'userlogin-resetpassword-link' => 'Έκδοση νέου κωδικού πρόσβασης',
 'helplogin-url' => 'Βοήθεια:Σύνδεση',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Βοήθεια για τη σύνδεσή σας]]',
+'createacct-join' => 'Εισάγετε τα στοιχεία σας παρακάτω.',
 'createacct-emailrequired' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου',
+'createacct-emailoptional' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου (προαιρετικό)',
+'createacct-email-ph' => 'Εισάγετε το email σας',
 'createaccountmail' => 'Χρήση τυχαίου προσωρινού κωδικού πρόσβασης και αποστολή του στη διεύθυνση ηλεκτρονικού ταχυδρομείου που καθορίζεται παρακάτω',
+'createacct-realname' => 'Πραγματικό όνομα (προαιρετικό)',
 'createaccountreason' => 'Αιτία:',
 'createacct-reason' => 'Λόγος',
-'createacct-captcha-help-url' => '{{ns:Project}}:Αίτημα για λογαριασμό',
+'createacct-reason-ph' => 'Γιατί δημιουργείτε έναν άλλο λογαριασμό',
+'createacct-captcha' => 'Έλεγχος ασφαλείας',
+'createacct-captcha-help-url' => '{{ns:Project}}:Κάντε αίτηση για σύνδεση',
+'createacct-imgcaptcha-help' => 'Δεν μπορειτε να δείτε την εικόνα; [[{{MediaWiki:createacct-captcha-βοήθεια-url}}|Κάντε αίτηση για σύνδεση]]',
 'createacct-imgcaptcha-ph' => 'Εισαγωγή του κειμένου που βλέπετε παραπάνω',
 'createacct-benefit-body1' => 'επεξεργασίες',
 'createacct-benefit-body2' => 'σελίδες',
index 79a0a93..df89a75 100644 (file)
@@ -629,8 +629,8 @@ The sidebar for MonoBook is generated from this message, lines that do not
 begin with * or ** are discarded, furthermore lines that do begin with ** and
 do not contain | are also discarded, but do not depend on this behavior for
 future releases. Also note that since each list value is wrapped in a unique
-XHTML id it should only appear once and include characters that are legal
-XHTML id names.
+(X)HTML id it should only appear once and include characters that are legal
+(X)HTML id names.
 */
 'sidebar' => '
 * navigation
@@ -1073,112 +1073,112 @@ The administrator who locked it offered this explanation: "$3".',
 'virus-unknownscanner' => 'unknown antivirus:',
 
 # Login and logout pages
-'logouttext'                   => "'''You are now logged out.'''
+'logouttext'                      => "'''You are now logged out.'''
 
 You can continue to use {{SITENAME}} anonymously, or you can <span class='plainlinks'>[$1 log in again]</span> as the same or as a different user.
 Note that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
-'welcomeuser'                  => 'Welcome, $1!',
-'welcomecreation-msg'          => 'Your account has been created.
+'welcomeuser'                     => 'Welcome, $1!',
+'welcomecreation-msg'             => 'Your account has been created.
 Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
-'yourname'                     => 'Username:',
-'userlogin-yourname'           => 'Username',
-'userlogin-yourname-ph'        => 'Enter your username',
+'yourname'                        => 'Username:',
+'userlogin-yourname'              => 'Username',
+'userlogin-yourname-ph'           => 'Enter your username',
 'createacct-helpusername-url'     => '{{ns:Project}}:Username_policy',
 'createacct-helpusername-link'    => '[[{{MediaWiki:createacct-helpusername-url}}|(help me choose)]]',
-'yourpassword'                 => 'Password:',
-'userlogin-yourpassword'       => 'Password',
-'userlogin-yourpassword-ph'    => 'Enter your password',
+'yourpassword'                    => 'Password:',
+'userlogin-yourpassword'          => 'Password',
+'userlogin-yourpassword-ph'       => 'Enter your password',
 'createacct-yourpassword-ph'      => 'Enter a password',
-'yourpasswordagain'            => 'Retype password:',
+'yourpasswordagain'               => 'Retype password:',
 'createacct-yourpasswordagain'    => 'Confirm password',
 'createacct-yourpasswordagain-ph' => 'Enter password again',
-'remembermypassword'           => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
-'userlogin-remembermypassword' => 'Keep me logged in',
-'userlogin-signwithsecure'     => 'Use secure connection',
-'securelogin-stick-https'      => 'Stay connected to HTTPS after login',
-'yourdomainname'               => 'Your domain:',
-'password-change-forbidden'    => 'You cannot change passwords on this wiki.',
-'externaldberror'              => 'There was either an authentication database error or you are not allowed to update your external account.',
-'login'                        => 'Log in',
-'nav-login-createaccount'      => 'Log in / create account',
-'loginprompt'                  => 'You must have cookies enabled to log in to {{SITENAME}}.',
-'userlogin'                    => 'Log in / create account',
-'userloginnocreate'            => 'Log in',
-'logout'                       => 'Log out',
-'userlogout'                   => 'Log out',
-'userlogout-summary'           => '', # do not translate or duplicate this message to other languages
-'notloggedin'                  => 'Not logged in',
-'userlogin-noaccount'          => "Don't have an account?",
-'userlogin-joinproject'        => 'Join {{SITENAME}}',
-'nologin'                      => "Don't have an account? $1.",
-'nologinlink'                  => 'Create an account',
-'createaccount'                => 'Create account',
-'gotaccount'                   => 'Already have an account? $1.',
-'gotaccountlink'               => 'Log in',
-'userlogin-resetlink'          => 'Forgotten your login details?',
-'userlogin-resetpassword-link' => 'Reset your password',
-'helplogin-url'                => 'Help:Logging in',
-'userlogin-helplink'           => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]',
+'remembermypassword'              => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
+'userlogin-remembermypassword'    => 'Keep me logged in',
+'userlogin-signwithsecure'        => 'Use secure connection',
+'securelogin-stick-https'         => 'Stay connected to HTTPS after login',
+'yourdomainname'                  => 'Your domain:',
+'password-change-forbidden'       => 'You cannot change passwords on this wiki.',
+'externaldberror'                 => 'There was either an authentication database error or you are not allowed to update your external account.',
+'login'                           => 'Log in',
+'nav-login-createaccount'         => 'Log in / create account',
+'loginprompt'                     => 'You must have cookies enabled to log in to {{SITENAME}}.',
+'userlogin'                       => 'Log in / create account',
+'userloginnocreate'               => 'Log in',
+'logout'                          => 'Log out',
+'userlogout'                      => 'Log out',
+'userlogout-summary'              => '', # do not translate or duplicate this message to other languages
+'notloggedin'                     => 'Not logged in',
+'userlogin-noaccount'             => "Don't have an account?",
+'userlogin-joinproject'           => 'Join {{SITENAME}}',
+'nologin'                         => "Don't have an account? $1.",
+'nologinlink'                     => 'Create an account',
+'createaccount'                   => 'Create account',
+'gotaccount'                      => 'Already have an account? $1.',
+'gotaccountlink'                  => 'Log in',
+'userlogin-resetlink'             => 'Forgotten your login details?',
+'userlogin-resetpassword-link'    => 'Reset your password',
+'helplogin-url'                   => 'Help:Logging in',
+'userlogin-helplink'              => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]',
 'createacct-join'                 => 'Enter your information below.',
 'createacct-emailrequired'        => 'Email address',
 'createacct-emailoptional'        => 'Email address (optional)',
 'createacct-email-ph'             => 'Enter your email address',
-'createaccountmail'            => 'Use a temporary random password and send it to the email address specified below',
+'createaccountmail'               => 'Use a temporary random password and send it to the email address specified below',
 'createacct-realname'             => 'Real name (optional)',
-'createaccountreason'          => 'Reason:',
+'createaccountreason'             => 'Reason:',
 'createacct-reason'               => 'Reason',
 'createacct-reason-ph'            => 'Why you are creating another account',
 'createacct-captcha'              => 'Security check',
 'createacct-captcha-help-url'     => '{{ns:Project}}:Request an account',
-'createacct-imgcaptcha-help'      => 'Can\'t see the image? [[{{MediaWiki:createacct-captcha-help-url}}|Request an account]]',
+'createacct-imgcaptcha-help'      => "Can't see the image? [[{{MediaWiki:createacct-captcha-help-url}}|Request an account]]",
 'createacct-imgcaptcha-ph'        => 'Enter the text you see above',
 'createacct-submit'               => 'Create your account',
 'createacct-benefit-heading'      => '{{SITENAME}} is made by people like you.',
-'createacct-benefit-icon1'        => 'icon-edits',
-'createacct-benefit-head1'        => '{{NUMBEROFEDITS}}',
+'createacct-benefit-icon1'        => 'icon-edits', # do not translate or duplicate this message to other languages
+'createacct-benefit-head1'        => '{{NUMBEROFEDITS}}', # do not translate or duplicate this message to other languages
 'createacct-benefit-body1'        => '{{PLURAL:$1|edit|edits}}',
-'createacct-benefit-icon2'        => 'icon-pages',
-'createacct-benefit-head2'        => '{{NUMBEROFARTICLES}}',
+'createacct-benefit-icon2'        => 'icon-pages', # do not translate or duplicate this message to other languages
+'createacct-benefit-head2'        => '{{NUMBEROFARTICLES}}', # do not translate or duplicate this message to other languages
 'createacct-benefit-body2'        => '{{PLURAL:$1|page|pages}}',
-'createacct-benefit-icon3'        => 'icon-contributors',
-'createacct-benefit-head3'        => '{{NUMBEROFACTIVEUSERS}}',
+'createacct-benefit-icon3'        => 'icon-contributors', # do not translate or duplicate this message to other languages
+'createacct-benefit-head3'        => '{{NUMBEROFACTIVEUSERS}}', # do not translate or duplicate this message to other languages
 'createacct-benefit-body3'        => 'recent {{PLURAL:$1|contributor|contributors}}',
-'badretype'                    => 'The passwords you entered do not match.',
-'userexists'                   => 'Username entered already in use.
+'badretype'                       => 'The passwords you entered do not match.',
+'userexists'                      => 'Username entered already in use.
 Please choose a different name.',
-'loginerror'                   => 'Login error',
-'createacct-error'             => 'Account creation error',
-'createaccounterror'           => 'Could not create account: $1',
-'nocookiesnew'                 => 'The user account was created, but you are not logged in.
+'loginerror'                      => 'Login error',
+'createacct-error'                => 'Account creation error',
+'createaccounterror'              => 'Could not create account: $1',
+'nocookiesnew'                    => 'The user account was created, but you are not logged in.
 {{SITENAME}} uses cookies to log in users.
 You have cookies disabled.
 Please enable them, then log in with your new username and password.',
-'nocookieslogin'               => '{{SITENAME}} uses cookies to log in users.
+'nocookieslogin'                  => '{{SITENAME}} uses cookies to log in users.
 You have cookies disabled.
 Please enable them and try again.',
-'nocookiesfornew'              => 'The user account was not created, as we could not confirm its source.
+'nocookiesfornew'                 => 'The user account was not created, as we could not confirm its source.
 Ensure you have cookies enabled, reload this page and try again.',
-'nocookiesforlogin'            => '{{int:nocookieslogin}}', # only translate this message to other languages if you have to change it
-'noname'                       => 'You have not specified a valid username.',
-'loginsuccesstitle'            => 'Login successful',
-'loginsuccess'                 => "'''You are now logged in to {{SITENAME}} as \"\$1\".'''",
-'nosuchuser'                   => 'There is no user by the name "$1".
+'nocookiesforlogin'               => '{{int:nocookieslogin}}', # only translate this message to other languages if you have to change it
+'noname'                          => 'You have not specified a valid username.',
+'loginsuccesstitle'               => 'Login successful',
+'loginsuccess'                    => "'''You are now logged in to {{SITENAME}} as \"\$1\".'''",
+'nosuchuser'                      => 'There is no user by the name "$1".
 Usernames are case sensitive.
 Check your spelling, or [[Special:UserLogin/signup|create a new account]].',
-'nosuchusershort'              => 'There is no user by the name "$1".
+'nosuchusershort'                 => 'There is no user by the name "$1".
 Check your spelling.',
-'nouserspecified'              => 'You have to specify a username.',
-'login-userblocked'            => 'This user is blocked. Login not allowed.',
-'wrongpassword'                => 'Incorrect password entered.
+'nouserspecified'                 => 'You have to specify a username.',
+'login-userblocked'               => 'This user is blocked. Login not allowed.',
+'wrongpassword'                   => 'Incorrect password entered.
 Please try again.',
-'wrongpasswordempty'           => 'Password entered was blank.
+'wrongpasswordempty'              => 'Password entered was blank.
 Please try again.',
-'passwordtooshort'             => 'Passwords must be at least {{PLURAL:$1|1 character|$1 characters}}.',
-'password-name-match'          => 'Your password must be different from your username.',
-'password-login-forbidden'     => 'The use of this username and password has been forbidden.',
-'mailmypassword'               => 'Email new password',
-'passwordremindertitle'        => 'New temporary password for {{SITENAME}}',
-'passwordremindertext'         => 'Someone (probably you, from IP address $1) requested a new
+'passwordtooshort'                => 'Passwords must be at least {{PLURAL:$1|1 character|$1 characters}}.',
+'password-name-match'             => 'Your password must be different from your username.',
+'password-login-forbidden'        => 'The use of this username and password has been forbidden.',
+'mailmypassword'                  => 'Email new password',
+'passwordremindertitle'           => 'New temporary password for {{SITENAME}}',
+'passwordremindertext'            => 'Someone (probably you, from IP address $1) requested a new
 password for {{SITENAME}} ($4). A temporary password for user
 "$2" has been created and was set to "$3". If this was your
 intent, you will need to log in and choose a new password now.
@@ -1187,53 +1187,53 @@ Your temporary password will expire in {{PLURAL:$5|one day|$5 days}}.
 If someone else made this request, or if you have remembered your password,
 and you no longer wish to change it, you may ignore this message and
 continue using your old password.',
-'noemail'                      => 'There is no email address recorded for user "$1".',
-'noemailcreate'                => 'You need to provide a valid email address.',
-'passwordsent'                 => 'A new password has been sent to the email address registered for "$1".
+'noemail'                         => 'There is no email address recorded for user "$1".',
+'noemailcreate'                   => 'You need to provide a valid email address.',
+'passwordsent'                    => 'A new password has been sent to the email address registered for "$1".
 Please log in again after you receive it.',
-'blocked-mailpassword'         => 'Your IP address is blocked from editing, and so is not allowed to use the password recovery function to prevent abuse.',
-'eauthentsent'                 => 'A confirmation email has been sent to the nominated email address.
+'blocked-mailpassword'            => 'Your IP address is blocked from editing, and so is not allowed to use the password recovery function to prevent abuse.',
+'eauthentsent'                    => 'A confirmation email has been sent to the nominated email address.
 Before any other email is sent to the account, you will have to follow the instructions in the email, to confirm that the account is actually yours.',
-'throttled-mailpassword'       => 'A password reset email has already been sent, within the last {{PLURAL:$1|hour|$1 hours}}.
+'throttled-mailpassword'          => 'A password reset email has already been sent, within the last {{PLURAL:$1|hour|$1 hours}}.
 To prevent abuse, only one password reset email will be sent per {{PLURAL:$1|hour|$1 hours}}.',
-'loginstart'                   => '', # do not translate or duplicate this message to other languages
-'loginend'                     => '', # do not translate or duplicate this message to other languages
-'loginend-https'               => '', # do not translate or duplicate this message to other languages
-'signupstart'                  => '{{int:loginstart}}', # do not translate or duplicate this message to other languages
-'signupend'                    => '{{int:loginend}}', # do not translate or duplicate this message to other languages
-'signupend-https'              => '', # do not translate or duplicate this message to other languages
-'mailerror'                    => 'Error sending mail: $1',
-'acct_creation_throttle_hit'   => 'Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last day, which is the maximum allowed in this time period.
+'loginstart'                      => '', # do not translate or duplicate this message to other languages
+'loginend'                        => '', # do not translate or duplicate this message to other languages
+'loginend-https'                  => '', # do not translate or duplicate this message to other languages
+'signupstart'                     => '{{int:loginstart}}', # do not translate or duplicate this message to other languages
+'signupend'                       => '{{int:loginend}}', # do not translate or duplicate this message to other languages
+'signupend-https'                 => '', # do not translate or duplicate this message to other languages
+'mailerror'                       => 'Error sending mail: $1',
+'acct_creation_throttle_hit'      => 'Visitors to this wiki using your IP address have created {{PLURAL:$1|1 account|$1 accounts}} in the last day, which is the maximum allowed in this time period.
 As a result, visitors using this IP address cannot create any more accounts at the moment.',
-'emailauthenticated'           => 'Your email address was authenticated on $2 at $3.',
-'emailnotauthenticated'        => 'Your email address is not yet authenticated.
+'emailauthenticated'              => 'Your email address was authenticated on $2 at $3.',
+'emailnotauthenticated'           => 'Your email address is not yet authenticated.
 No email will be sent for any of the following features.',
-'noemailprefs'                 => 'Specify an email address in your preferences for these features to work.',
-'emailconfirmlink'             => 'Confirm your email address',
-'invalidemailaddress'          => 'The email address cannot be accepted as it appears to have an invalid format.
+'noemailprefs'                    => 'Specify an email address in your preferences for these features to work.',
+'emailconfirmlink'                => 'Confirm your email address',
+'invalidemailaddress'             => 'The email address cannot be accepted as it appears to have an invalid format.
 Please enter a well-formatted address or empty that field.',
-'cannotchangeemail'            => 'Account email addresses cannot be changed on this wiki.',
-'emaildisabled'                => 'This site cannot send emails.',
-'accountcreated'               => 'Account created',
-'accountcreatedtext'           => 'The user account for $1 has been created.',
-'createaccount-title'          => 'Account creation for {{SITENAME}}',
-'createaccount-text'           => 'Someone created an account for your email address on {{SITENAME}} ($4) named "$2", with password "$3".
+'cannotchangeemail'               => 'Account email addresses cannot be changed on this wiki.',
+'emaildisabled'                   => 'This site cannot send emails.',
+'accountcreated'                  => 'Account created',
+'accountcreatedtext'              => 'The user account for $1 has been created.',
+'createaccount-title'             => 'Account creation for {{SITENAME}}',
+'createaccount-text'              => 'Someone created an account for your email address on {{SITENAME}} ($4) named "$2", with password "$3".
 You should log in and change your password now.
 
 You may ignore this message, if this account was created in error.',
-'usernamehasherror'            => 'Username cannot contain hash characters',
-'login-throttled'              => 'You have made too many recent login attempts.
+'usernamehasherror'               => 'Username cannot contain hash characters',
+'login-throttled'                 => 'You have made too many recent login attempts.
 Please wait before trying again.',
-'login-abort-generic'          => 'Your login was unsuccessful - Aborted',
-'loginlanguagelabel'           => 'Language: $1',
-'loginlanguagelinks'           => '* {{#language:de}}|de
+'login-abort-generic'             => 'Your login was unsuccessful - Aborted',
+'loginlanguagelabel'              => 'Language: $1',
+'loginlanguagelinks'              => '* {{#language:de}}|de
 * {{#language:en}}|en
 * {{#language:eo}}|eo
 * {{#language:fr}}|fr
 * {{#language:es}}|es
 * {{#language:it}}|it
 * {{#language:nl}}|nl', # do not translate or duplicate this message to other languages
-'suspicious-userlogout'        => 'Your request to log out was denied because it looks like it was sent by a broken browser or caching proxy.',
+'suspicious-userlogout'           => 'Your request to log out was denied because it looks like it was sent by a broken browser or caching proxy.',
 
 # Email sending
 'pear-mail-error'        => '$1', # do not translate or duplicate this message to other languages
@@ -1251,7 +1251,6 @@ To finish logging in, you must set a new password here:',
 'oldpassword'               => 'Old password:',
 'newpassword'               => 'New password:',
 'retypenew'                 => 'Retype new password:',
-'resetpass-abort-generic'   => 'Password change has been aborted by an extension.',
 'resetpass_submit'          => 'Set password and log in',
 'resetpass_success'         => 'Your password has been changed successfully!
 Now logging you in...',
@@ -1262,6 +1261,7 @@ Now logging you in...',
 'resetpass-wrong-oldpass'   => 'Invalid temporary or current password.
 You may have already successfully changed your password or requested a new temporary password.',
 'resetpass-temp-password'   => 'Temporary password:',
+'resetpass-abort-generic'   => 'Password change has been aborted by an extension.',
 
 # Special:PasswordReset
 'passwordreset'                    => 'Reset password',
@@ -3946,7 +3946,7 @@ By executing it, your system may be compromised.",
 'friday-at'    => 'Friday at $1',
 'saturday-at'  => 'Saturday at $1',
 'sunday-at'    => 'Sunday at $1',
-'today-at'     => '$1',
+'today-at'     => '$1', # do not translate or duplicate this message to other languages
 'yesterday-at' => 'Yesterday at $1',
 
 # Bad image list
@@ -4805,16 +4805,16 @@ You should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU Gen
 'version-entrypoints-load-php'          => '[https://www.mediawiki.org/wiki/Manual:load.php load.php]', # do not translate or duplicate this message to other languages
 
 # Special:Redirect
-'redirect'         => 'Redirect by file, user, or revision ID',
-'redirect-legend'  => 'Redirect to a file or page',
-'redirect-text'    => '',
-'redirect-summary' => 'This special page redirects to a file (given the file name), a page (given a revision ID), or a user page (given a numeric user ID).',
-'redirect-submit'  => 'Go',
-'redirect-lookup'  => 'Lookup:',
-'redirect-value'   => 'Value:',
-'redirect-user'     => 'User ID',
-'redirect-revision' => 'Page revision',
-'redirect-file'     => 'File name',
+'redirect'            => 'Redirect by file, user, or revision ID',
+'redirect-legend'     => 'Redirect to a file or page',
+'redirect-text'       => '', # do not translate or duplicate this message to other languages
+'redirect-summary'    => 'This special page redirects to a file (given the file name), a page (given a revision ID), or a user page (given a numeric user ID).',
+'redirect-submit'     => 'Go',
+'redirect-lookup'     => 'Lookup:',
+'redirect-value'      => 'Value:',
+'redirect-user'       => 'User ID',
+'redirect-revision'   => 'Page revision',
+'redirect-file'       => 'File name',
 'redirect-not-exists' => 'Value not found',
 
 # Special:FileDuplicateSearch
index 6e1d1df..a78d1b6 100644 (file)
@@ -84,6 +84,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Ĉiuj_mesaĝoj' ),
        'Allpages'                  => array( 'Ĉiuj_paĝoj' ),
        'Ancientpages'              => array( 'Malnovaj_paĝoj' ),
+       'Badtitle'                  => array( 'Malbona_titolo' ),
        'Blankpage'                 => array( 'Malplena_paĝo' ),
        'Block'                     => array( 'Forbari_IP-adreson' ),
        'Blockme'                   => array( 'Forbari_min' ),
@@ -92,7 +93,7 @@ $specialPageAliases = array(
        'Categories'                => array( 'Kategorioj' ),
        'ChangeEmail'               => array( 'Ŝanĝi_retpoŝton' ),
        'ChangePassword'            => array( 'Ŝanĝi_pasvorton' ),
-       'ComparePages'              => array( 'Komparu_paĝojn' ),
+       'ComparePages'              => array( 'Kompari_paĝojn', 'Komparu_paĝojn' ),
        'Confirmemail'              => array( 'Konfirmi_per_retpoŝto' ),
        'Contributions'             => array( 'Kontribuoj' ),
        'CreateAccount'             => array( 'Krei_konton' ),
@@ -100,27 +101,27 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'Forigitaj_kontribuoj' ),
        'Disambiguations'           => array( 'Apartigiloj' ),
        'DoubleRedirects'           => array( 'Duoblaj_alidirektiloj' ),
-       'EditWatchlist'             => array( 'Redakti_atenatron' ),
+       'EditWatchlist'             => array( 'Redakti_atentaron' ),
        'Emailuser'                 => array( 'Retpoŝti_uzanton' ),
-       'Export'                    => array( 'Eksporti' ),
+       'Export'                    => array( 'Elporti', 'Eksporti' ),
        'Fewestrevisions'           => array( 'Plej_malmultaj_revizioj' ),
        'FileDuplicateSearch'       => array( 'Serĉi_pri_duoblaj_dosieroj' ),
-       'Filepath'                  => array( 'Dosiero-pado' ),
-       'Import'                    => array( 'Importi' ),
+       'Filepath'                  => array( 'Pado_de_dosiero', 'Dosiero-pado' ),
+       'Import'                    => array( 'Enporti', 'Importi' ),
        'Invalidateemail'           => array( 'Malvalidigi_retpoŝton' ),
        'BlockList'                 => array( 'Forbarlisto_de_IP-adresoj', 'IP-adresa_forbarlisto' ),
        'LinkSearch'                => array( 'Serĉi_ligilon' ),
        'Listadmins'                => array( 'Listigi_administrantojn' ),
        'Listbots'                  => array( 'Listigi_robotojn' ),
-       'Listfiles'                 => array( 'Bildolisto' ),
+       'Listfiles'                 => array( 'Listigi_dosierojn', 'Listigi_bildojn', 'Bildolisto' ),
        'Listgrouprights'           => array( 'Gruprajtoj_de_uzantoj' ),
-       'Listredirects'             => array( 'Listigi_alidirektojn' ),
+       'Listredirects'             => array( 'Listigi_alidirektilojn', 'Listigi_alidirektojn' ),
        'Listusers'                 => array( 'Listo_de_uzantoj' ),
        'Lockdb'                    => array( 'Ŝlosi_datumbazon' ),
        'Log'                       => array( 'Protokolo', 'Protokoloj' ),
        'Lonelypages'               => array( 'Neligitaj_paĝoj' ),
        'Longpages'                 => array( 'Longaj_paĝoj' ),
-       'MergeHistory'              => array( 'Kunigi_historion' ),
+       'MergeHistory'              => array( 'Unuigi_kronologion', 'Kunigi_kronologion', 'Kunigi_historion' ),
        'MIMEsearch'                => array( 'MIME-Serĉo' ),
        'Mostcategories'            => array( 'Plej_multaj_kategorioj' ),
        'Mostimages'                => array( 'Plej_ligitaj_bildoj' ),
@@ -130,7 +131,7 @@ $specialPageAliases = array(
        'Mostrevisions'             => array( 'Plej_multaj_revizioj' ),
        'Movepage'                  => array( 'Alinomigi_paĝon' ),
        'Mycontributions'           => array( 'Miaj_kontribuoj', 'MiajKontribuoj' ),
-       'Mypage'                    => array( 'MiaPaĝo', 'Mia_paĝo' ),
+       'Mypage'                    => array( 'Mia_paĝo', 'MiaPaĝo' ),
        'Mytalk'                    => array( 'Mia_diskutpaĝo', 'MiaDiskutpaĝo' ),
        'Myuploads'                 => array( 'Miaj_alŝutaĵoj' ),
        'Newimages'                 => array( 'Novaj_bildoj' ),
@@ -143,7 +144,7 @@ $specialPageAliases = array(
        'Protectedpages'            => array( 'Protektitaj_paĝoj' ),
        'Protectedtitles'           => array( 'Protektitaj_titoloj' ),
        'Randompage'                => array( 'Hazarda_paĝo' ),
-       'Randomredirect'            => array( 'Hazarda_alidirekto' ),
+       'Randomredirect'            => array( 'Hazarda_alidirektilo', 'Hazarda_alidirekto' ),
        'Recentchanges'             => array( 'Lastaj_ŝanĝoj' ),
        'Recentchangeslinked'       => array( 'Rilataj_ŝanĝoj' ),
        'Revisiondelete'            => array( 'Forigi_revizion' ),
@@ -178,7 +179,7 @@ $specialPageAliases = array(
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#ALIDIREKTU', '#ALIDIREKTI', '#AL', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#ALIDIREKTI', '#ALIDIREKTU', '#AL', '#REDIRECT' ),
        'notoc'                     => array( '0', '__NI__', '__NEINDEKSO__', '__NT__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__NG__', '__SENBILDARO__', '__SB__', '__SG__', '__SENGALERIO__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__FI__', '__FORTUINDEKSON__', '__FT__', '__FORCETOC__' ),
@@ -217,6 +218,7 @@ $magicWords = array(
        'pagenamee'                 => array( '1', 'PAĜONOMOO', 'PAGXONOMOO', 'PAĜNOMOO', 'PAGXNOMOO', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'NOMSPACO', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'NOMSPACOO', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'NUMERODENOMSPACO', 'NOMSPACNUMERO', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'DISKUTNOMSPACO', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'DISKUTNOMSPACOO', 'TALKSPACEE' ),
        'fullpagename'              => array( '1', 'TUTAPAĜONOMO', 'TUTAPAGXONOMO', 'TUTAPAĜNOMO', 'TUTAPAGXNOMO', 'FULLPAGENAME' ),
@@ -252,12 +254,14 @@ $magicWords = array(
        'img_text_bottom'           => array( '1', 'suba-teksto', 'text-bottom' ),
        'img_link'                  => array( '1', 'ligilo=$1', 'link=$1' ),
        'img_alt'                   => array( '1', 'alternative=$1', 'alt=$1' ),
+       'img_class'                 => array( '1', 'klaso=$1', 'class=$1' ),
        'int'                       => array( '0', 'ENE:', 'INT:' ),
        'sitename'                  => array( '1', 'TTT-NOMO', 'RETPAĜNOMO', 'RETPAGXNOMO', 'RETEJNOMO', 'SITENAME' ),
        'nse'                       => array( '0', 'NSS:', 'NSO:', 'NSE:' ),
        'localurl'                  => array( '0', 'LOKATTT:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'LOKATTTT:', 'LOCALURLE:' ),
        'articlepath'               => array( '0', 'ARTIKOLAPADO', 'ARTIKOLAVOJO', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'IDENTIGILODEPAĜO', 'PAĜID', 'PAGEID' ),
        'server'                    => array( '0', 'SERVILO', 'SERVER' ),
        'servername'                => array( '0', 'NOMODESERVILO', 'SERVILANOMO', 'SERVILONOMO', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'SKRIPTO-VOJO', 'SKRIPTOVOJO', 'SKRIPTVOJO', 'SCRIPTPATH' ),
index f3792ec..ea9c491 100644 (file)
@@ -141,10 +141,10 @@ $specialPageAliases = array(
        'Booksources'               => array( 'FuentesDeLibros', 'Fuentes_de_libros' ),
        'BrokenRedirects'           => array( 'RedireccionesRotas', 'Redirecciones_rotas' ),
        'Categories'                => array( 'Categorías' ),
-       'ChangeEmail'               => array( 'CambiarEmail', 'CambiarCorreo' ),
+       'ChangeEmail'               => array( 'Cambiar_correo_electrónico', 'CambiarEmail', 'CambiarCorreo' ),
        'ChangePassword'            => array( 'Cambiar_contraseña', 'CambiarContraseña', 'ResetearContraseña', 'Resetear_contraseña' ),
-       'ComparePages'              => array( 'CompararPáginas' ),
-       'Confirmemail'              => array( 'ConfirmarEmail', 'Confirmar_correo_electrónico' ),
+       'ComparePages'              => array( 'Comparar_páginas', 'CompararPáginas' ),
+       'Confirmemail'              => array( 'Confirmar_correo_electrónico', 'ConfirmarEmail' ),
        'Contributions'             => array( 'Contribuciones' ),
        'CreateAccount'             => array( 'Crear_una_cuenta', 'CrearCuenta' ),
        'Deadendpages'              => array( 'PáginasSinSalida', 'Páginas_sin_salida' ),
@@ -152,7 +152,7 @@ $specialPageAliases = array(
        'Disambiguations'           => array( 'Desambiguaciones', 'Desambiguación' ),
        'DoubleRedirects'           => array( 'RedireccionesDobles', 'Redirecciones_dobles' ),
        'EditWatchlist'             => array( 'EditarSeguimiento' ),
-       'Emailuser'                 => array( 'MandarEmailUsuario' ),
+       'Emailuser'                 => array( 'Enviar_correo_electrónico', 'MandarEmailUsuario' ),
        'Export'                    => array( 'Exportar' ),
        'Fewestrevisions'           => array( 'MenosEdiciones', 'Menos_ediciones' ),
        'FileDuplicateSearch'       => array( 'BuscarArchivosDuplicados', 'Buscar_archivos_duplicados' ),
@@ -664,7 +664,7 @@ $1',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Página',
-'nstab-user' => 'Página de usuario',
+'nstab-user' => 'Página {{GENDER:{{ROOTPAGENAME}}|del usuario|de la usuaria}}',
 'nstab-media' => 'Media',
 'nstab-special' => 'Página especial',
 'nstab-project' => 'Página del proyecto',
@@ -3968,6 +3968,7 @@ Has recibido [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia de la Licencia Pública
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Ruta del artículo]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Ruta de la secuencia de comandos (script)]',
 
+# Special:Redirect
 'redirect' => 'Redirigir por archivo, usuario o ID de revisión',
 'redirect-legend' => 'Redirigir a un archivo o página',
 'redirect-summary' => 'Esta página especial redirige a un fichero (dado un nombre de fichero), a una página (dado un identificador de revisión) o a una página de usuario (dado en identificador numérico de usuario).',
index d9a2d8d..32ccb38 100644 (file)
@@ -3787,6 +3787,7 @@ GNU Üldise Avaliku Litsentsi [{{SERVER}}{{SCRIPTPATH}}/COPYING eksemplar] peaks
 'version-entrypoints-header-entrypoint' => 'Sisendpunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Ümbersuunamine faili, kasutaja või redaktsiooni identifikaatori järgi',
 'redirect-legend' => 'Ümbersuunamine faili juurde või leheküljele',
 'redirect-summary' => 'See erilehekülg suunab ümber faili (toodud failinimi), lehekülje (toodud redaktsiooni identifikaator) või kasutajalehekülje (toodud numbriline kasutaja identfikaator) juurde.',
index 591f6ed..2d3fc7f 100644 (file)
@@ -75,34 +75,35 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Activeusers'               => array( 'کاربران_فعال' ),
-       'Allmessages'               => array( 'تÙ\85اÙ\85_Ù¾Û\8cغاÙ\85â\80\8cÙ\87ا' ),
-       'Allpages'                  => array( 'تÙ\85اÙ\85µÙ\81Ø­ه‌ها' ),
-       'Ancientpages'              => array( 'صÙ\81Ø­ه‌های_قدیمی' ),
+       'Allmessages'               => array( 'تمام_پیام‌ها' ),
+       'Allpages'                  => array( 'تÙ\85اÙ\85¨Ø±Ú¯ه‌ها' ),
+       'Ancientpages'              => array( 'برگه‌های_قدیمی' ),
        'Badtitle'                  => array( 'عنوان_بد' ),
-       'Blankpage'                 => array( 'صÙ\81Ø­Ù\87_خالی' ),
+       'Blankpage'                 => array( 'برگÙ\87â\80\8cÛ\8c_خالی' ),
        'Block'                     => array( 'بستن_نشانی_آی‌پی' ),
        'Blockme'                   => array( 'بستن_من' ),
        'Booksources'               => array( 'منابع_کتاب' ),
        'BrokenRedirects'           => array( 'تغییرمسیرهای_خراب' ),
-       'Categories'                => array( 'رده‌ها' ),
+       'Categories'                => array( 'دسته‌ها' ),
        'ChangeEmail'               => array( 'تغییر_رایانامه' ),
        'ChangePassword'            => array( 'از_نو_کردن_گذرواژه' ),
-       'ComparePages'              => array( 'مقایسه_صفحات' ),
-       'Confirmemail'              => array( 'تایید_رایانامه' ),
+       'ComparePages'              => array( 'مقایسه‌ی_برگه‌ها' ),
+       'Confirmemail'              => array( 'پذیرش_رایانامه' ),
        'Contributions'             => array( 'مشارکت‌ها' ),
        'CreateAccount'             => array( 'ایجاد_حساب_کاربری' ),
-       'Deadendpages'              => array( 'صÙ\81Ø­ه‌های_بن‌بست' ),
-       'DeletedContributions'      => array( 'مشارکت‌های_حذف_شده' ),
+       'Deadendpages'              => array( 'برگه‌های_بن‌بست' ),
+       'DeletedContributions'      => array( 'مشارکت‌های_پاک_شده' ),
        'Disambiguations'           => array( 'ابهام‌زدایی' ),
        'DoubleRedirects'           => array( 'تغییرمسیرهای_دوتایی' ),
        'EditWatchlist'             => array( 'ویرایش_فهرست_پی‌گیری‌ها' ),
        'Emailuser'                 => array( 'نامه_به_کاربر' ),
-       'Export'                    => array( 'برÙ\88Ù\86_برÛ\8cµÙ\81Ø­ه' ),
+       'Export'                    => array( 'برÙ\88Ù\86_برÛ\8c¨Ø±Ú¯ه' ),
        'Fewestrevisions'           => array( 'کمترین_نسخه' ),
        'FileDuplicateSearch'       => array( 'جستجوی_پرونده_تکراری' ),
        'Filepath'                  => array( 'مسیر_پرونده' ),
        'Import'                    => array( 'درون_ریزی_صفحه' ),
        'Invalidateemail'           => array( 'باطل_کردن_رایانامه' ),
+       'JavaScriptTest'            => array( 'تست_جاوا_اسکریپت' ),
        'BlockList'                 => array( 'فهرست_بستن_نشانی_آی‌پی' ),
        'LinkSearch'                => array( 'جستجوی_پیوند' ),
        'Listadmins'                => array( 'فهرست_مدیران' ),
@@ -113,60 +114,60 @@ $specialPageAliases = array(
        'Listusers'                 => array( 'فهرست_کاربران' ),
        'Lockdb'                    => array( 'قفل_کردن_پایگاه_داده' ),
        'Log'                       => array( 'سیاهه‌ها' ),
-       'Lonelypages'               => array( 'صÙ\81Ø­Ù\87â\80\8cÙ\87اÛ\8c\8cتÛ\8cÙ\85' ),
-       'Longpages'                 => array( 'صÙ\81Ø­ه‌های_بلند' ),
+       'Lonelypages'               => array( 'برگÙ\87â\80\8cÙ\87اÛ\8c_بÛ\8câ\80\8cÙ\86اÙ\85â\80\8cÙ\88Ù\86شاÙ\86' ),
+       'Longpages'                 => array( 'برگه‌های_بلند' ),
        'MergeHistory'              => array( 'ادغام_تاریخچه' ),
        'MIMEsearch'                => array( 'جستجوی_MIME' ),
-       'Mostcategories'            => array( 'بÛ\8cشترÛ\8cÙ\86±Ø¯ه' ),
+       'Mostcategories'            => array( 'بÛ\8cشترÛ\8cÙ\86¯Ø³Øªه' ),
        'Mostimages'                => array( 'بیشترین_تصویر' ),
        'Mostlinked'                => array( 'بیشترین_پیوند' ),
        'Mostlinkedcategories'      => array( 'رده_با_بیشترین_پیوند' ),
        'Mostlinkedtemplates'       => array( 'الگو_با_بیشترین_پیوند' ),
        'Mostrevisions'             => array( 'بیشترین_نسخه' ),
-       'Movepage'                  => array( 'اÙ\86تÙ\82اÙ\84_صÙ\81Ø­ه' ),
+       'Movepage'                  => array( 'جابجاÛ\8cÛ\8c_برگه' ),
        'Mycontributions'           => array( 'مشارکت‌های_من' ),
-       'Mypage'                    => array( 'صÙ\81Ø­Ù\87_من' ),
-       'Mytalk'                    => array( 'بحث_من' ),
+       'Mypage'                    => array( 'برگÙ\87â\80\8cÛ\8c_من' ),
+       'Mytalk'                    => array( 'گفتگوی_من' ),
        'Myuploads'                 => array( 'بارگذاری‌های_من' ),
-       'Newimages'                 => array( 'تصاÙ\88Û\8cر_جدÛ\8cد' ),
-       'Newpages'                  => array( 'صÙ\81Ø­ه‌های_تازه' ),
+       'Newimages'                 => array( 'تصاÙ\88Û\8cر_تازÙ\87' ),
+       'Newpages'                  => array( 'برگه‌های_تازه' ),
        'PasswordReset'             => array( 'بازنشاندن_گذرواژه' ),
        'PermanentLink'             => array( 'پیوند_دائمی' ),
-       'Popularpages'              => array( 'صÙ\81Ø­ه‌های_محبوب' ),
+       'Popularpages'              => array( 'برگه‌های_محبوب' ),
        'Preferences'               => array( 'ترجیحات' ),
        'Prefixindex'               => array( 'نمایه_پیشوندی' ),
-       'Protectedpages'            => array( 'صÙ\81Ø­ه‌های_محافظت_شده' ),
+       'Protectedpages'            => array( 'برگه‌های_محافظت_شده' ),
        'Protectedtitles'           => array( 'عنوان‌های_محافظت_شده' ),
-       'Randompage'                => array( 'صÙ\81Ø­Ù\87_تصادفی' ),
+       'Randompage'                => array( 'برگÙ\87â\80\8cÛ\8c_تصادفی' ),
        'Randomredirect'            => array( 'تغییرمسیر_تصادفی' ),
        'Recentchanges'             => array( 'تغییرات_اخیر' ),
        'Recentchangeslinked'       => array( 'تغییرات_مرتبط' ),
-       'Revisiondelete'            => array( 'حذف_نسخه' ),
+       'Revisiondelete'            => array( 'پاک_کردن_نسخه' ),
        'Search'                    => array( 'جستجو' ),
-       'Shortpages'                => array( 'صÙ\81Ø­ه‌های_کوتاه' ),
-       'Specialpages'              => array( 'صÙ\81Ø­ه‌های_ویژه' ),
+       'Shortpages'                => array( 'برگه‌های_کوتاه' ),
+       'Specialpages'              => array( 'برگه‌های_ویژه' ),
        'Statistics'                => array( 'آمار' ),
        'Tags'                      => array( 'برچسب‌ها' ),
        'Unblock'                   => array( 'باز_کردن' ),
-       'Uncategorizedcategories'   => array( 'رده‌های_رده‌بندی_نشده' ),
+       'Uncategorizedcategories'   => array( 'دسته‌های_رده‌بندی_نشده' ),
        'Uncategorizedimages'       => array( 'تصویرهای_رده‌بندی_‌نشده' ),
        'Uncategorizedpages'        => array( 'صفحه‌های_رده‌بندی_نشده' ),
        'Uncategorizedtemplates'    => array( 'الگوهای_رده‌بندی_نشده' ),
-       'Undelete'                  => array( 'احیای_صفحهٔ_حذف‌شده' ),
+       'Undelete'                  => array( 'احیای_صفحهٔ_پاک‌شده' ),
        'Unlockdb'                  => array( 'باز_کردن_پایگاه_داده' ),
-       'Unusedcategories'          => array( 'رده‌های_استفاده_نشده' ),
+       'Unusedcategories'          => array( 'دسته‌های_استفاده_نشده' ),
        'Unusedimages'              => array( 'تصاویر_استفاده_نشده' ),
        'Unusedtemplates'           => array( 'الگوهای_استفاده_نشده' ),
-       'Unwatchedpages'            => array( 'صÙ\81Ø­ه‌های_پی‌گیری_نشده' ),
+       'Unwatchedpages'            => array( 'دسته‌های_پی‌گیری_نشده' ),
        'Upload'                    => array( 'بارگذاری_پرونده' ),
        'UploadStash'               => array( 'بارگذاری_انبوه' ),
        'Userlogin'                 => array( 'ورود_به_سامانه' ),
        'Userlogout'                => array( 'خروج_از_سامانه' ),
        'Userrights'                => array( 'اختیارات_کاربر' ),
-       'Version'                   => array( 'نسخه' ),
-       'Wantedcategories'          => array( 'رده‌های_مورد_نیاز' ),
+       'Version'                   => array( 'نگارش' ),
+       'Wantedcategories'          => array( 'دسته‌های_مورد_نیاز' ),
        'Wantedfiles'               => array( 'پرونده‌های_مورد_نیاز' ),
-       'Wantedpages'               => array( 'صÙ\81Ø­ه‌های_مورد_نیاز' ),
+       'Wantedpages'               => array( 'برگه‌های_مورد_نیاز' ),
        'Wantedtemplates'           => array( 'الگوهای_مورد_نیاز' ),
        'Watchlist'                 => array( 'فهرست_پی‌گیری' ),
        'Whatlinkshere'             => array( 'پیوند_به_این_صفحه' ),
index 7a5feca..751683d 100644 (file)
@@ -753,6 +753,7 @@ Huomaa, että jotkut sivut saattavat näkyä edelleen kuin olisit kirjautunut si
 'gotaccount' => "Jos sinulla on jo tunnus, voit '''$1'''.",
 'gotaccountlink' => 'kirjautua sisään',
 'userlogin-resetlink' => 'Unohditko salasanasi?',
+'userlogin-resetpassword-link' => 'Salasanan alustus',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Auta sisäänkirjautumisessa]]',
 'createacct-join' => 'Kirjoita tietosi alle.',
 'createacct-emailrequired' => 'Sähköpostiosoite',
@@ -3796,6 +3797,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 'version-entrypoints-header-entrypoint' => 'Aloituskohta',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect-submit' => 'Siirry',
 'redirect-file' => 'Tiedostonimi',
 
index 15b75a1..415ee48 100644 (file)
@@ -4061,6 +4061,7 @@ Vous devriez avoir reçu [{{SERVER}}{{SCRIPTPATH}}/COPYING une copie de la Licen
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Chemin d’article]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Chemin de script]',
 
+# Special:Redirect
 'redirect' => 'Redirigé par fichier, utilisateur, ou ID de révision',
 'redirect-legend' => 'Rediriger vers une page ou un fichier',
 'redirect-summary' => "Cette page spéciale redirige vers un fichier (nom donné au fichier), une page (ID attribuée à la révision) ou une page d'utilisateur (identifiant numérique attribué à l'utilisateur).",
index 362750c..4360f4a 100644 (file)
@@ -58,14 +58,14 @@ $messages = array(
 # User preference toggles
 'tog-underline' => '下劃連結',
 'tog-justify' => '對到段落',
-'tog-hideminor' => '該æ\9c\9då­\90å\97°æ\94¹å\8b\95å¼\86å\88°å\97°ç´°ä¿®æ\94¹',
+'tog-hideminor' => '該æ\99\9då­\90å\97°æ\94¹å\8b\95å¼\86å\88°å\97°ç´°ä¿®æ\94¹',
 'tog-hidepatrolled' => '到箇晝子嗰修改裡頭弆到巡查過嗰編輯',
 'tog-newpageshidepatrolled' => '到新頁清單裡頭弆到巡查過嗰頁面',
 'tog-extendwatchlist' => '增加監視清單來顯示全部改動,不淨係最晏嗰',
 'tog-usenewrc' => '用強化版最晏嗰改動(需要JavaScript)',
 'tog-numberheadings' => '標題自動編號',
 'tog-showtoolbar' => '顯示編輯工具欄(JavaScript)',
-'tog-editondblclick' => 'æ\8c\89å\85©ä¸\8bæ\94¹å\90\96(JavaScript)',
+'tog-editondblclick' => 'æ\8dºå\85©ä¸\8bä¾\86æ\94¹ä¸\8b(JavaScript)',
 'tog-editsection' => '可以用[編寫]連結來編寫個別段落',
 'tog-editsectiononrightclick' => '可以按右鍵來編寫隻把子段落(JavaScript)',
 'tog-showtoc' => '超過三隻標題就顯到目錄',
@@ -227,7 +227,7 @@ $messages = array(
 'searcharticle' => '去',
 'history' => '文章歷史',
 'history_short' => '歷史',
-'updatedmarker' => '最末道瀏覽後嗰改動',
+'updatedmarker' => '頂晏嗰許到瀏覽後嗰改動',
 'printableversion' => '可打印版本',
 'permalink' => '永久連結',
 'print' => '打印',
@@ -267,7 +267,7 @@ $messages = array(
 'redirectedfrom' => '(從$1跳過來)',
 'redirectpagesub' => '跳轉頁',
 'lastmodifiedat' => '箇頁頂晏嗰改動係:$1 $2。',
-'viewcount' => 'ç®\87é \81æ\8b\95人ç\9cµå\98\9e$1回。',
+'viewcount' => 'ç®\87é \81æ\8b\95人ç\9cµå\93©$1回。',
 'protectedpage' => '拕保護頁',
 'jumpto' => '轉去:',
 'jumptonavigation' => '導航',
@@ -369,7 +369,7 @@ MySQL回到錯誤 "<tt>$3: $4</tt>"。',
 來自函數“$2”。
 MySQL回到錯誤“$3: $4”。',
 'laggedslavemode' => '警告:頁面可能冇有新近內容。',
-'readonly' => 'è³\87æ\96\99庫ä¸\8aæ­£é\8e\96å\9b\89',
+'readonly' => 'è³\87æ\96\99庫ä¸\8aæ­£é\8e\96å\93©',
 'enterlockreason' => '請輸入鎖到資料庫嗰理由,包括預計幾時間解鎖',
 'readonlytext' => '資料庫上嘞鎖改伓正,可能佢正維修中,搞正嘞仰上會還原。管理員嗰解釋: $1',
 'missing-article' => '資料庫冇尋到倷要嗰版面,「$1」 $2。
@@ -472,8 +472,8 @@ $2',
 'noemailprefs' => '話正隻email來用箇隻功能',
 'emailconfirmlink' => '確認倷嗰email',
 'invalidemailaddress' => '電子郵件地址嗰格式伓對,請輸隻對嗰電子郵件地址或者清吥箇隻輸入框。',
-'accountcreated' => '帳戶扤正嘍',
-'accountcreatedtext' => '扤正嘍$1嗰帳戶。',
+'accountcreated' => '帳戶舞正哩',
+'accountcreatedtext' => '舞正哩$1嗰帳戶。',
 'createaccount-title' => '到{{SITENAME}}創建嗰帳戶',
 'createaccount-text' => '有人到{{SITENAME}}用倷嗰電子郵件地址開設嘍隻名字係 "$2" 嗰新帳戶($4),密碼係 "$3" 。請倷仰上登錄同到修改密碼。
 
@@ -527,8 +527,8 @@ $2',
 'missingcommentheader' => "''提示:''' 汝嗰評論冇提供標題。若係汝捺過到{{int:savearticle}}嗰話,汝保存嗰編輯就會冇標題。",
 'summary-preview' => '摘要預覽:',
 'subject-preview' => '主題/頭條預覽:',
-'blockedtitle' => 'ç\94¨æ\88¶å°\81å\88°å\98\9e',
-'blockedtext' => "倷嗰用戶名或IP地址拕$1封到嘞
+'blockedtitle' => 'ç\94¨æ\88¶å°\81å\88°å\93©',
+'blockedtext' => "汝嗰用戶名或IP地址拕$1封到哩
 
 箇道封鎖係$1封嗰。個中原因係''$2''。
 
@@ -536,7 +536,7 @@ $2',
 * 箇回封鎖嗰到期時間係:$6
 * 對於拕查封嗰人:$7
 
-倷聯繫得正$1或別嗰[[{{MediaWiki:Grouppage-sysop}}|管理員]],討論箇回封鎖。除非倷到倷嗰[[Special:Preferences|帳號參數設置]]裡度設正嘞有效嗰email,伓然嗰話倷係用伓正「email到箇隻用戶」嗰功能。設正嘞有效嗰email後,箇隻功能係伓會拕封到嗰。倷嗰IP地址係$3,許拕封到嗰ID係 #$5。請倷到全部嗰查詢裡度注明箇隻地址同/或查封ID。",
+汝聯繫得正$1或別嗰[[{{MediaWiki:Grouppage-sysop}}|管理員]],討論箇回封鎖。除吥到汝嗰[[Special:Preferences|帳號參數設置]]裡度設正哩有效嗰email,伓然嗰話汝係用伓正「email到箇隻用戶」嗰功能。設正哩有效嗰email後,箇隻功能係伓會拕封到嗰。汝嗰IP地址係$3,許拕封到嗰ID係 #$5。請汝到全部嗰查詢裡度注明箇隻地址同/或查封ID。",
 'autoblockedtext' => '別嗰人用過倷嗰IP地址,故係佢拕自動鎖到嘞。封佢嗰人係$1.
 下首係封鎖嗰理由:
 
@@ -575,7 +575,7 @@ $2',
 'usercsspreview' => "'''注意倷單係到預覽倷個人嗰 CSS,內容哈冇保存!'''",
 'userjspreview' => "'''注意倷單係到測試/預覽倷個人嗰 JavaScript,內容哈冇保存!'''",
 'userinvalidcssjstitle' => "'''警告:''' 冇\"\$1\"嗰皮膚。請記到自定義嗰 .css 同 .js 頁要用小寫。就話,{{ns:user}}:Foo/vector.css 伓等同 {{ns:user}}:Foo/Vector.css。",
-'updated' => 'ï¼\88æ\9b´æ\96°æ­£å\98\8d)',
+'updated' => 'ï¼\88æ\9b´æ\96°æ­£å\93©)',
 'note' => "'''注意:'''",
 'previewnote' => "'''請記到箇光係預覽,內容哈冇保存!'''",
 'previewconflict' => '箇隻預覽係上首文字編輯區嗰內容。倷選擇保存嗰話佢才會保存到。',
@@ -667,14 +667,14 @@ $2',
 'cur' => '箇下',
 'next' => '之後',
 'last' => '先頭',
-'page_first' => '早',
-'page_last' => '晏',
+'page_first' => '早',
+'page_last' => '晏',
 'histlegend' => "差異選擇:標到伓共樣版本嗰單選鍵,接到捺吖督上嗰鍵對比吖。<br />
-說明:'''({{int:cur}})'''係跟得眼前版本嗰比較,'''({{int:last}})'''係跟到先頭修改版本嗰比較,細 = 細修改。",
+說明:'''({{int:cur}})'''係跟得如今版本嗰比較,'''({{int:last}})'''係跟到先頭修改版本嗰比較,細 = 細修改。",
 'history-fieldset-title' => '瀏覽歷史',
 'history-show-deleted' => '獨係刪吥嗰',
-'histfirst' => '早嗰版本',
-'histlast' => '晏嗰版本',
+'histfirst' => '早嗰版本',
+'histlast' => '晏嗰版本',
 'historysize' => '({{PLURAL:$1|1 字節|$1 字節}})',
 'historyempty' => '(空)',
 
@@ -686,8 +686,8 @@ $2',
 
 # Revision deletion
 'rev-deleted-comment' => '(注釋挪吥嘞)',
-'rev-deleted-user' => 'ï¼\88ç\94¨æ\88¶å\90\8dæ\8cªå\90¥å\98\9e)',
-'rev-deleted-event' => 'ï¼\88é \85ç\9b®æ\8cªå\90¥å\98\9e)',
+'rev-deleted-user' => 'ï¼\88ç\94¨æ\88¶å\90\8dæ\8cªå\90¥å\93©)',
+'rev-deleted-event' => 'ï¼\88é \85ç\9b®æ\8cªå\90¥å\93©)',
 'rev-deleted-text-permission' => '箇頁嗰改動從共用文檔挪吥嘞。到[{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} 刪除日誌] 裡度倷話伓定有詳細嗰資料。',
 'rev-deleted-text-view' => '箇頁嗰改動從共用文檔挪吥嘞。作為本站嗰管理員,倷查看得正;到[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 刪除日誌] 裡度有詳細嗰資料。',
 'rev-delundel' => '顯示/弆到',
@@ -712,7 +712,7 @@ $2',
 'revdelete-log' => '原因:',
 'revdelete-submit' => '應用到選正嗰修改',
 'revdelete-success' => "'''修訂嗰可見性設置正嘍。'''",
-'logdelete-success' => "'''äº\8b件å\97°å\8f¯è¦\8bæ\80§è¨­ç½®æ­£å\98\8d。'''",
+'logdelete-success' => "'''äº\8b件å\97°å\8f¯è¦\8bæ\80§è¨­ç½®æ­£å\93©。'''",
 'revdel-restore' => '改動可見性',
 'revdel-restore-deleted' => '刪吥嗰修訂版',
 'revdel-restore-visible' => '相得到嗰修訂版',
@@ -750,7 +750,7 @@ $2',
 'searchresulttext' => '有關嗰{{SITENAME}}嗰更多資料,請參看[[{{MediaWiki:Helppage}}|{{int:help}}]]。',
 'searchsubtitle' => "用'''[[:$1]]'''",
 'searchsubtitleinvalid' => "用'''$1'''尋",
-'toomanymatches' => 'è¿\94å\9b\9eå¤\9aå\82·å\98\8då\97°çµ\90æ\9e\9cï¼\8cè«\8b試å\90\96用別嗰詞語尋過',
+'toomanymatches' => 'è¿\94å\9b\9eå¤\9aå\82·å\93©å\97°çµ\90æ\9e\9cï¼\8cè«\8bè¼\83ä¸\8b用別嗰詞語尋過',
 'titlematches' => '文章標題符合',
 'notitlematches' => '冇頁面同文章標題符合',
 'textmatches' => '頁面內容符合',
@@ -808,10 +808,10 @@ $2',
 'datedefault' => '默認項目',
 'prefs-datetime' => '日期同到時間',
 'prefs-personal' => '用戶介紹',
-'prefs-rc' => '最近更改',
+'prefs-rc' => '頂晏嗰改動',
 'prefs-watchlist' => '監視列表',
-'prefs-watchlist-days' => '監視列表顯示久嗰日數:',
-'prefs-watchlist-edits' => '加強版嗰監視列表顯示多更改數目:',
+'prefs-watchlist-days' => '監視列表顯示久嗰日數:',
+'prefs-watchlist-edits' => '加強版嗰監視列表顯示多更改數目:',
 'prefs-misc' => '雜項',
 'saveprefs' => '存到參數',
 'resetprefs' => '設過參數',
@@ -821,9 +821,9 @@ $2',
 'searchresultshead' => '設置尋到嗰結果',
 'resultsperpage' => '設置尋到嗰連結數',
 'stub-threshold' => '<a href="#" class="stub">細文連結</a>格式門檻:',
-'recentchangesdays' => '最近更改中嗰顯示日數:',
+'recentchangesdays' => '頂晏嗰改動嗰顯示日數:',
 'recentchangescount' => '最近更改中嗰編輯數:',
-'savedprefs' => 'å\80·å\97°å\80\8b人å\8f\83æ\95¸è¨­ç½®ä¿\9då­\98æ­£å\98\9e。',
+'savedprefs' => 'å\80·å\97°å\80\8b人å\8f\83æ\95¸è¨­ç½®ä¿\9då­\98æ­£å\93©。',
 'timezonelegend' => '時區:',
 'localtime' => '當地時區',
 'timezoneoffset' => '時差¹',
@@ -893,8 +893,8 @@ $2',
 'nchanges' => '$1道改動',
 'recentchanges' => '頂晏嗰改動',
 'recentchanges-legend' => '箇晝子嗰更改選項',
-'recentchanges-summary' => '跟到箇隻wiki上嗰æ\9c\80æ\96°æ\94¹å\8b\95ã\80\82',
-'recentchanges-feed-description' => '跟到箇隻 wiki 上集合嗰最後改動。',
+'recentchanges-summary' => '跟到箇隻wiki上嗰é \82æ\99\8få\97°æ\94¹å\8b\95ã\80\82',
+'recentchanges-feed-description' => '跟到箇隻 wiki 上集合嗰頂晏嗰改動。',
 'recentchanges-label-newpage' => '箇隻編輯會建立隻新頁',
 'recentchanges-label-minor' => '箇係隻細修改',
 'recentchanges-label-bot' => '箇隻編輯係機器人舞嗰',
@@ -908,7 +908,7 @@ $2',
 'rcshowhideanons' => '$1匿名用戶嗰編輯',
 'rcshowhidepatr' => '$1檢查過嗰編輯',
 'rcshowhidemine' => '$1我嗰編輯',
-'rclinks' => '顯示最晏$2日之內最新嗰$1回改動。<br />$3',
+'rclinks' => '顯示頂晏$2日之內頂新嗰$1回改動。<br />$3',
 'diff' => '差異',
 'hist' => '歷史',
 'hide' => '弆到',
@@ -985,7 +985,7 @@ $2',
 'uploadwarning' => '上傳警告',
 'savefile' => '保存檔案',
 'uploadedimage' => '上傳正哩"[[$1]]"',
-'overwroteimage' => 'ä¸\8aå\82³æ­£å\98\9e"[[$1]]"嗰新版本',
+'overwroteimage' => 'ä¸\8aå\82³æ­£å\93©"[[$1]]"嗰新版本',
 'uploaddisabled' => '上傳伓正',
 'uploaddisabledtext' => '上傳伓正文件到{{SITENAME}}。',
 'uploadscripted' => '箇隻檔案包到可能會誤導網絡瀏覽器錯誤解釋嗰 HTML 或腳本代碼。',
@@ -995,7 +995,7 @@ $2',
 'watchthisupload' => '眏到箇頁',
 'filewasdeleted' => '先前有隻同名檔案上傳後又拕刪吥嘞。上傳箇隻檔案之前倷非要檢查$1。',
 'filename-bad-prefix' => "倷上傳嗰檔案名係以'''\"\$1\"'''做開頭嗰,通常箇種冇意義嗰名字係數碼相機度嗰自動編排。請到倷嗰檔案揀過隻更加有意義嗰名字。",
-'upload-success-subj' => 'ä¸\8aå\82³æ­£å\98\9e',
+'upload-success-subj' => 'ä¸\8aå\82³æ­£å\93©',
 
 'upload-proto-error' => '協定錯誤',
 'upload-proto-error-text' => '遠程上傳要求 URL 用 <code>http://</code> 或 <code>ftp://</code> 開頭。',
@@ -1057,9 +1057,9 @@ $2',
 'filerevert-legend' => '恢復檔案',
 'filerevert-intro' => "眼下倷恢復嘚'''[[Media:$1|$1]]'''到[$4 於$2 $3嗰版本]。",
 'filerevert-comment' => '理由:',
-'filerevert-defaultcomment' => '恢復到嘞$1, $2嗰版本',
+'filerevert-defaultcomment' => '還原到哩$1, $2嗰版本',
 'filerevert-submit' => '恢復',
-'filerevert-success' => "'''[[Media:$1|$1]]'''恢復到嘞[$4 於$2 $3嗰版本]。",
+'filerevert-success' => "'''[[Media:$1|$1]]'''還原到哩[$4 於$2 $3嗰版本]。",
 'filerevert-badversion' => '箇隻檔案所提供嗰時間標記並冇早先嗰本地版本。',
 
 # File deletion
@@ -1069,8 +1069,8 @@ $2',
 'filedelete-intro-old' => "倷正刪吥'''[[Media:$1|$1]]'''到[$4 $2 $3]嗰版本。",
 'filedelete-comment' => '原因:',
 'filedelete-submit' => '刪吥',
-'filedelete-success' => "'''$1'''å\88ªå\90¥å\98\9e。",
-'filedelete-success-old' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'æ\96¼ $2 $3 å\97°ç\89\88æ\9c¬å\88ªå\90¥å\98\9e。</span>',
+'filedelete-success' => "'''$1'''å\88ªå\90¥å\93©。",
+'filedelete-success-old' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'æ\96¼ $2 $3 å\97°ç\89\88æ\9c¬å\88ªå\90¥å\93©。</span>',
 'filedelete-nofile' => "{{SITENAME}}箇隻網站伓存在'''$1'''。",
 'filedelete-nofile-old' => "按到指定屬性嗰情況,箇首冇'''$1'''到嗰版本。",
 'filedelete-otherreason' => '別嗰/附加緣故:',
@@ -1122,7 +1122,7 @@ $2',
 'statistics-users' => '註冊過嗰[[Special:ListUsers|用戶]]',
 'statistics-users-active' => '活躍用戶',
 'statistics-users-active-desc' => '頭$1日操作過嗰用戶',
-'statistics-mostpopular' => '眵嗰人多嗰頁面',
+'statistics-mostpopular' => '眵嗰人多嗰頁面',
 
 'disambiguations' => '扤清楚頁',
 'disambiguationspage' => 'Template:舞清楚',
@@ -1144,7 +1144,7 @@ $2',
 'withoutinterwiki-legend' => '前綴',
 'withoutinterwiki-submit' => '顯到',
 
-'fewestrevisions' => '改得少嗰文章',
+'fewestrevisions' => '改得少嗰文章',
 
 # Miscellaneous special pages
 'nbytes' => '$1字節',
@@ -1165,12 +1165,12 @@ $2',
 'popularpages' => '熱門頁面',
 'wantedcategories' => '等撰嗰分類',
 'wantedpages' => '等撰嗰頁面',
-'mostlinked' => '多連結嗰頁面',
-'mostlinkedcategories' => '多連結嗰分類',
-'mostlinkedtemplates' => '多連結嗰模板',
-'mostcategories' => '多分類嗰文章',
-'mostimages' => '連結多嗰圖像',
-'mostrevisions' => '最常改動嗰文章',
+'mostlinked' => '多連結嗰頁面',
+'mostlinkedcategories' => '多連結嗰分類',
+'mostlinkedtemplates' => '多連結嗰模板',
+'mostcategories' => '多分類嗰文章',
+'mostimages' => '連結多嗰圖像',
+'mostrevisions' => '頂多改動嗰文章',
 'prefixindex' => '首碼索引',
 'shortpages' => '短文章',
 'longpages' => '長文章',
@@ -1263,8 +1263,8 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'emailsend' => '發出',
 'emailccme' => '搦我嗰消息嗰副本發到我嗰郵箱。',
 'emailccsubject' => '拿倷嗰消息複製到 $1: $2',
-'emailsent' => 'emailç\99¼å\8d\9få\98\9e',
-'emailsenttext' => '倷嗰email發卟嘞。',
+'emailsent' => 'emailç\99¼å\87ºå\93©',
+'emailsenttext' => '汝嗰email發出哩。',
 
 # Watchlist
 'watchlist' => '監視列表',
@@ -1283,10 +1283,10 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'notanarticle' => '伓係文章',
 'watchnochange' => '一徑到顯示嗰時間之內,倷眏到嗰頁面冇改動。',
 'watchlist-details' => '$1隻頁面(伓算討論頁) 拕眏到哩',
-'wlheader-enotif' => '* å\95\9få\8b\95å\98\9eemail通知功能。',
+'wlheader-enotif' => '* å\95\9få\8b\95å\93©email通知功能。',
 'wlheader-showupdated' => "* 上回倷眵嗰頁面改動嗰部分用'''粗體'''顯到",
-'watchmethod-recent' => '眵吖拕眏到嗰頁面嗰最近編輯',
-'watchmethod-list' => '望吖監視頁裡頭晏嗰改動',
+'watchmethod-recent' => '眵吖拕眏到嗰頁面嗰頂晏嗰編輯',
+'watchmethod-list' => '望吖監視頁裡頭晏嗰改動',
 'watchlistcontains' => '倷嗰監視列表包含$1隻頁面。',
 'iteminvalidname' => "頁面'$1'出錯,無效命名...",
 'wlnote' => "下底係最近'''$2'''鐘頭內嗰最晏'''$1'''道修改:",
@@ -1332,13 +1332,13 @@ $NEWPAGE
 'confirmdeletetext' => '仰上倷就要永久刪卟資料庫嗰一隻頁面或圖像同佢嗰歷史。請確定倷要噉做,哈要曉得佢嗰後果,更加伓能違反[[{{MediaWiki:Policy-url}}]]。',
 'actioncomplete' => '舞正哩',
 'actionfailed' => '操作冇舞正',
-'deletedtext' => '"$1"å\88ªå\8d\9få\98\9eã\80\82æ\9c\80晏嗰刪除記錄請望$2。',
+'deletedtext' => '"$1"å\88ªå\90¥å\93©ã\80\82é \82晏嗰刪除記錄請望$2。',
 'dellogpage' => '刪除日誌',
-'dellogpagetext' => '下底係晏刪除嗰記錄列表:',
+'dellogpagetext' => '下底係晏刪除嗰記錄列表:',
 'deletionlog' => '刪除日誌',
-'reverted' => '恢復到早先嗰版本',
-'deletecomment' => '原因:',
-'deleteotherreason' => '別嗰/附加理由:',
+'reverted' => '還原到早先嗰版本',
+'deletecomment' => '原因',
+'deleteotherreason' => '別嗰/附加理由',
 'deletereasonotherlist' => '別嗰理由',
 'deletereason-dropdown' => '*常用刪除嗰理由
 ** 寫嗰人自家嗰要求
@@ -1350,14 +1350,14 @@ $NEWPAGE
 'rollback_short' => '還原',
 'rollbacklink' => '還原',
 'rollbackfailed' => '還原失敗',
-'cantrollback' => '還原伓正;最末嗰貢獻人係文章嗰唯一作者。',
+'cantrollback' => '還原伓正;頂晏嗰貢獻人係文章嗰唯一作者。',
 'alreadyrolled' => '還原伓正由[[User:$2|$2]] ([[User talk:$2|討論]])做嗰[[$1]]嗰最晏編寫;
 別嗰人編輯過或係恢復嘞箇頁。
 
 最晏編輯人: [[User:$3|$3]] ([[User talk:$3|討論]])。',
 'editcomment' => "編輯介紹: \"''\$1''\"。",
 'revertpage' => '返回由[[Special:Contributions/$2|$2]] ([[User talk:$2|對話]])嗰編輯;恢復到[[User:$1|$1]]嗰最末一隻版本',
-'rollback-success' => '返回由$1嗰編輯;恢復到$2嗰最末一隻版本。',
+'rollback-success' => '返回由$1嗰編輯;恢復到$2嗰頂晏一隻版本。',
 
 # Edit tokens
 'sessionfailure' => '倷嗰登入好像有嚸問題,為到防範未然,箇隻動作拕取消嘞。
@@ -1368,7 +1368,7 @@ $NEWPAGE
 'protectlogpage' => '保護日誌',
 'protectlogtext' => '下底係頁面鎖定同到解除鎖定嗰列表。請望下[[Special:ProtectedPages|保護頁面列表]]來監察目前嗰頁面保護情況。',
 'protectedarticle' => '保護正哩“[[$1]] ”',
-'modifiedarticleprotection' => 'æ\94¹è®\8aå\98\9eâ\80\9c[[$1]] â\80\9d 嗰保護等級',
+'modifiedarticleprotection' => 'æ\94¹è®\8aå\93©â\80\9c[[$1]]â\80\9d嗰保護等級',
 'unprotectedarticle' => '撤銷保護“[[$1]] ”',
 'protect-title' => '保護“$1”中',
 'prot_1movedto2' => '[[$1]]移到[[$2]]',
@@ -1395,8 +1395,8 @@ $NEWPAGE
 'protect-expiry-options' => '兩個鍾頭:2 hours,一日:1 day,三日:3 days,一個禮拜:1 week,兩個禮拜:2 weeks,一個月:1 month,三個月:3 months,六個月:6 months,一年:1 year,一世:infinite',
 'restriction-type' => '許可權:',
 'restriction-level' => '限制級別:',
-'minimum-size' => 'æ\9c\80細碼å­\90',
-'maximum-size' => '最大碼子:',
+'minimum-size' => 'é \82ç´°å\97°ç¢¼å­\90',
+'maximum-size' => '頂大嗰碼子:',
 'pagesize' => '(字節)',
 
 # Restrictions (nouns)
@@ -1427,17 +1427,17 @@ $NEWPAGE
 'undeleteviewlink' => '望吖',
 'undeletereset' => '設過',
 'undeletecomment' => '評論:',
-'undeletedrevisions' => '$1隻修改版本恢復正嘞',
-'undeletedrevisions-files' => '$1隻修改版本同$2隻檔案恢復正嘞',
-'undeletedfiles' => '$1隻檔案恢復正嘞',
+'undeletedrevisions' => '$1隻修改版本還原正哩',
+'undeletedrevisions-files' => '$1隻修改版本同$2隻檔案還原正哩',
+'undeletedfiles' => '$1隻檔案還原正哩',
 'cannotundelete' => '反刪除伓正;話伓定別嗰人先倷恢復嘞箇隻頁面。',
-'undeletedpage' => "'''$1恢復正嘞'''
+'undeletedpage' => "'''$1還原正哩'''
 
 望吖[[Special:Log/delete|刪除日誌]]嗰刪除同恢復記錄。",
-'undelete-header' => '要查晏嗰記錄嗰話請望[[Special:Log/delete|刪除日誌]]。',
-'undelete-search-box' => '尋吖刪卟嗰頁面',
+'undelete-header' => '要查晏嗰記錄嗰話請望[[Special:Log/delete|刪除日誌]]。',
+'undelete-search-box' => '尋下刪吥嗰頁面',
 'undelete-search-prefix' => '顯示以下底開頭嗰頁面:',
-'undelete-search-submit' => '尋',
+'undelete-search-submit' => '尋',
 'undelete-no-results' => '刪卟記錄冇合到嗰結果。',
 'undelete-filename-mismatch' => '刪伓正帶到時間標記嗰檔案修訂 $1: 檔案伓匹配',
 'undelete-bad-store-key' => '刪伓正帶到時間標記嗰檔案修訂 $1: 檔案刪卟之前就跌卟嘞。',
@@ -1472,7 +1472,7 @@ $1',
 'sp-contributions-userrights' => '用戶許可權管理',
 'sp-contributions-search' => '尋貢獻',
 'sp-contributions-username' => 'IP地址或用戶名:',
-'sp-contributions-toponly' => '光顯示最晏修訂版本嗰編輯',
+'sp-contributions-toponly' => '獨顯示頂晏嗰修訂版本嗰編輯',
 'sp-contributions-submit' => '尋',
 
 # What links here
@@ -1519,7 +1519,7 @@ $1',
 'ipbotherreason' => '別嗰/附加原因:',
 'ipbhidename' => '封鎖日誌、活躍封鎖列表同用戶列表裡頭弆到用戶名',
 'badipaddress' => 'IP位置伓對。',
-'blockipsuccesssub' => 'å°\81é\8e\96æ­£å\98\9e',
+'blockipsuccesssub' => 'å°\81é\8e\96æ­£å\93©',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]封卟嘞。 <br />望吖[[Special:BlockList|拕封IP列表]]來審過封鎖。',
 'ipb-edit-dropdown' => '編寫封鎖原因',
 'ipb-unblock-addr' => '解封$1',
@@ -1528,8 +1528,8 @@ $1',
 'unblockip' => '解封IP地址',
 'unblockiptext' => '用下底嗰表格去恢復早先拕封嗰IP嗰編寫權。',
 'ipusubmit' => '解封箇隻地址',
-'unblocked' => '[[User:$1|$1]]解å°\81å\98\9e',
-'unblocked-id' => 'å°\81ç¦\81$1æ\8b\95å\88ªå\8d\9få\98\9e',
+'unblocked' => '[[User:$1|$1]]解å°\81å\93©',
+'unblocked-id' => 'å°\81ç¦\81$1æ\8b\95å\88ªå\90¥å\93©',
 'ipblocklist' => '拕封用戶嗰名單',
 'ipblocklist-legend' => '尋吖拕封鎖嗰用戶',
 'ipblocklist-submit' => '尋',
@@ -1549,23 +1549,23 @@ $1',
 'blocklogpage' => '封鎖日誌',
 'blocklogentry' => '[[$1]]拕封到$3 ,結束時間到$2',
 'blocklogtext' => '箇係用戶封鎖同解封操作嗰日誌。拕自動封鎖嗰IP冇列出。請參看[[Special:BlockList|拕封IP地址列表]]。',
-'unblocklogentry' => '$1 æ\8b\95解å°\81å\98\9e',
+'unblocklogentry' => '$1 æ\8b\95解å°\81å\93©',
 'block-log-flags-anononly' => '單限制匿名用戶',
 'block-log-flags-nocreate' => '禁止箇隻IP/用戶新開帳戶',
 'block-log-flags-noautoblock' => '禁用自動封禁',
 'block-log-flags-noemail' => '禁止email',
 'range_block_disabled' => '就管理員建得正禁止封鎖嗰範圍。',
 'ipb_expiry_invalid' => '冇用嗰結束時間。',
-'ipb_already_blocked' => 'é\8e\96å\88°å\98\9e"$1"',
-'ipb_cant_unblock' => 'é\8c¯èª¤: å\86\87ç\99¼ç\8f¾Block ID $1ã\80\82ç®\87é\9a»IP話ä¼\93å®\9aæ\8b\95解å°\81å\98\8d。',
+'ipb_already_blocked' => 'é\8e\96å\88°å\93©"$1"',
+'ipb_cant_unblock' => 'é\8c¯èª¤: å\86\87ç\99¼ç\8f¾Block ID $1ã\80\82ç®\87é\9a»IP話ä¼\93å®\9aæ\8b\95解å°\81å\93©。',
 'ip_range_invalid' => '冇用嗰IP範圍。',
 'blockme' => '封吥我去',
 'proxyblocker' => '代理封鎖器',
-'proxyblocker-disabled' => 'ç®\87é\9a»å\8a\9fè\83½ç\94¨ä¼\93æ­£å\98\8d。',
-'proxyblockreason' => '倷嗰IP係一隻公開嗰代理,佢拕封到嘞。請聯絡倷嗰Internet服務提供商或技術幫助再告誦佢俚箇隻嚴重嗰安全問題。',
-'proxyblocksuccess' => '扤正囉。',
-'sorbsreason' => '{{SITENAME}}用嗰 DNSBL 查到嗰IP地址係隻公開代理服務器。',
-'sorbs_create_account_reason' => '{{SITENAME}}用嗰 DNSBL 檢查到倷嗰IP地址係隻公開代理服務器,倷也就新開伓正帳戶。',
+'proxyblocker-disabled' => 'ç®\87é\9a»å\8a\9fè\83½ç\94¨ä¼\93æ­£å\93©。',
+'proxyblockreason' => '汝嗰IP係一隻公開嗰代理,佢拕封到哩。請聯絡汝嗰Internet服務提供商或技術幫助再告誦佢俚箇隻嚴重嗰安全問題。',
+'proxyblocksuccess' => '舞正哩。',
+'sorbsreason' => '{{SITENAME}}用嗰 DNSBL 查到嗰IP地址係隻公開代理服務器。',
+'sorbs_create_account_reason' => '{{SITENAME}}用嗰 DNSBL 檢查到汝嗰IP地址係隻公開代理服務器,汝也就新開伓正帳戶。',
 
 # Developer tools
 'lockdb' => '鎖到資料庫',
@@ -1577,7 +1577,7 @@ $1',
 'lockbtn' => '鎖到資料庫',
 'unlockbtn' => '莫鎖到資料庫',
 'locknoconfirm' => '倷冇選正確認鍵。',
-'lockdbsuccesssub' => 'è³\87æ\96\99庫é\8e\96æ­£å\98\9e',
+'lockdbsuccesssub' => 'è³\87æ\96\99庫é\8e\96æ­£å\93©',
 'unlockdbsuccesssub' => '資料庫解鎖',
 'lockdbsuccesstext' => '{{SITENAME}}資料庫鎖正嘞。 <br />請記得維護正後重新開到資料庫。',
 'unlockdbsuccesstext' => '{{SITENAME}}資料庫重新開放。',
@@ -1609,7 +1609,7 @@ $1',
 'newtitle' => '新標題:',
 'move-watch' => '眏到箇頁',
 'movepagebtn' => '換卟箇頁',
-'pagemovedsub' => '移正å\98\9e',
+'pagemovedsub' => '移正å\93©',
 'movepage-moved' => "'''「$1」拕移到「$2」'''",
 'articleexists' => '已經有頁面叫箇隻名字,要伓倷揀嗰名字冇用。請揀過隻名字。',
 'cantmove-titleprotected' => '倷移伓正一隻頁面到箇隻位置,箇隻新題目已經拕保護起來嘞,新建伓正。',
@@ -1617,7 +1617,7 @@ $1',
 'movedto' => '移到',
 'movetalk' => '移動相關嗰討論頁',
 'movelogpage' => '移動日誌',
-'movelogpagetext' => 'ä¸\8båº\95ä¿\82移å\8b\95å\98\9e嗰頁面列表:',
+'movelogpagetext' => 'ä¸\8båº\95ä¿\82移å\8b\95å\93©嗰頁面列表:',
 'movereason' => '原因:',
 'revertmove' => '舞還原',
 'delete_and_move' => '刪除跟到移動',
@@ -1677,7 +1677,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'importcantopen' => '開伓正導入檔案',
 'importbadinterwiki' => '扤壞嗰內部wiki連結',
 'importnotext' => '空白或冇字',
-'importsuccess' => 'å°\8eé\80²å\8e»å\98\8d!',
+'importsuccess' => 'å°\8eé\80²å\8e»å\93©!',
 'importhistoryconflict' => '挭過仗嗰修改歷史(之前就話伓定導過箇隻頁面)',
 'importnosources' => '跨Wiki導入源冇定義,哈伓準直接嗰歷史上傳。',
 'importnofile' => '冇上傳導入檔案。',
@@ -1686,7 +1686,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'importuploaderrortemp' => '導入文件上傳嗰時間冇扤正。冇尋到臨時文件夾。',
 'import-parse-failure' => 'XML 導進分析失敗',
 'import-noarticle' => '冇頁面導入!',
-'import-nonewrevisions' => '早先嗰改動全部扤進去嘍。',
+'import-nonewrevisions' => '早先嗰改動全部舞進去哩。',
 'xml-error-string' => '$1 位到 $2 行,$3 列 ($4字節):$5',
 
 # Import log
@@ -1778,7 +1778,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'anonymous' => '{{SITENAME}}嗰匿名用戶',
 'siteuser' => '{{SITENAME}}用戶$1',
 'anonuser' => '{{SITENAME}}匿名用戶$1',
-'lastmodifiedatby' => '箇頁由$3對$1 $2晏嗰改動。',
+'lastmodifiedatby' => '箇頁由$3對$1 $2晏嗰改動。',
 'othercontribs' => '以$1為基礎。',
 'others' => '別嗰',
 'siteusers' => '{{SITENAME}}用戶$1',
@@ -1791,7 +1791,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'spamprotectiontext' => '倷想存嗰頁面拕垃圾廣告隔離器測到。噉可能係外部連結扤得。',
 'spamprotectionmatch' => '下底係觸發垃圾廣告隔離器嗰內容: $1',
 'spambot_username' => 'MediaWiki 廣告清除',
-'spam_reverting' => '去歸冇包連到$1晏嗰版本',
+'spam_reverting' => '去歸冇包連到$1晏嗰版本',
 'spam_blanking' => '全部包含連到$1嗰改動,留空',
 
 # Patrolling
@@ -1800,7 +1800,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'markedaspatrolled' => '標到係檢查過嗰',
 'markedaspatrolledtext' => '選正嗰版本標到係檢查過嗰。',
 'rcpatroldisabled' => '近來修改檢查拕關閉',
-'rcpatroldisabledtext' => '該朝子改動檢查嗰功能拕關閉嘞。',
+'rcpatroldisabledtext' => '該朝子改動檢查嗰功能拕關吥哩。',
 'markedaspatrollederror' => '標伓正佢係檢查過嗰',
 'markedaspatrollederrortext' => '倷要指正某隻版本才標得正佢係檢查過嗰。',
 'markedaspatrollederror-noautopatrol' => '倷標伓正倷自家嗰修改係檢查過嗰。',
@@ -1809,12 +1809,12 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'patrol-log-page' => '巡查記錄',
 
 # Image deletion
-'deletedrevision' => 'å\88ªå\8d\9få\98\9e舊版本$1。',
+'deletedrevision' => 'å\88ªå\8d\9få\93©舊版本$1。',
 'filedeleteerror-short' => '刪卟檔案出錯: $1',
-'filedeleteerror-long' => 'å\88ªå\8d\9fæª\94æ¡\88å\87ºå\98\9eé\8c¯:
+'filedeleteerror-long' => 'å\88ªå\8d\9fæª\94æ¡\88å\87ºå\93©é\8c¯ï¼\9a
 
 $1',
-'filedelete-missing' => 'æª\94æ¡\88 "$1" ä¼\93å­\98å\9c¨ï¼\8cæ\89\80以刪佢伓正。',
+'filedelete-missing' => 'æª\94æ¡\88 "$1" ä¼\93å­\98å\9c¨ï¼\8cæ\95\85ä¿\82刪佢伓正。',
 'filedelete-old-unregistered' => '指正嗰檔案修改 "$1" 資料庫裡伓存在。',
 'filedelete-current-unregistered' => '指正嗰檔案 "$1" 資料庫裡伓存在。',
 'filedelete-archive-read-only' => '存檔目錄 "$1" 服務器裡寫伓正。',
@@ -1923,7 +1923,7 @@ $1',
 'exif-aperturevalue' => '光圈',
 'exif-brightnessvalue' => '亮度',
 'exif-exposurebiasvalue' => '曝光補償',
-'exif-maxaperturevalue' => '最大陸地光圈',
+'exif-maxaperturevalue' => '頂大嗰陸地光圈',
 'exif-subjectdistance' => '物距',
 'exif-meteringmode' => '測量模式',
 'exif-lightsource' => '光源',
@@ -2131,15 +2131,15 @@ $1',
 'confirmemail_pending' => '一隻確認代碼發到倷嗰郵箱,噉可能要等幾分鐘。
 要係冇收到,請申請過新嗰確認碼!',
 'confirmemail_send' => '寄出確認碼',
-'confirmemail_sent' => '確èª\8dé\83µä»¶ç\99¼å\87ºå\98\9e。',
-'confirmemail_oncreate' => '一隻確認碼發到倷嗰郵箱。箇隻代碼伓係話倷要仰上登入,但要係倷想用 wiki 嗰任何email嗰相關功能,就非要先提交箇隻代碼。',
+'confirmemail_sent' => '確èª\8dé\83µä»¶ç\99¼å\87ºå\93©。',
+'confirmemail_oncreate' => '一隻確認碼發到汝嗰郵箱。箇隻代碼伓係話汝要仰上登入,但要係汝想用 wiki 嗰任何email嗰相關功能,就要提交箇隻代碼起。',
 'confirmemail_sendfailed' => '發送伓正確認郵件,請檢查email地址係否含到伓合字符。
 
 郵件發送人回應: $1',
-'confirmemail_invalid' => 'ç\84¡æ\95\88å\97°ç¢ºèª\8d碼ï¼\8cç®\87é\9a»ä»£ç¢¼é\81\8eå\98\9e期。',
-'confirmemail_needlogin' => '倷要$1去確認倷嗰email地址。',
-'confirmemail_success' => '倷嗰郵箱已得到嘞確認。嘎倷能登得正入同到使用箇隻網站。',
-'confirmemail_loggedin' => '嗰email地址已得到確認。',
+'confirmemail_invalid' => 'ç\84¡æ\95\88å\97°ç¢ºèª\8d碼ï¼\8cç®\87é\9a»ä»£ç¢¼é\81\8eå\93©期。',
+'confirmemail_needlogin' => '汝要$1去確認汝嗰email地址。',
+'confirmemail_success' => '汝嗰郵箱已得到哩確認。如今汝能登得正入同到使用箇隻網站。',
+'confirmemail_loggedin' => '嗰email地址已得到確認。',
 'confirmemail_error' => '確認過程出錯。',
 'confirmemail_subject' => '{{SITENAME}}電子郵件地址確認',
 'confirmemail_body' => 'IP地址$1嗰用戶(可能係倷)到{{SITENAME}}註冊嘞帳戶"$2",並一同用嘞倷嗰email地址。
@@ -2156,11 +2156,11 @@ $3
 'scarytranscludetoolong' => '[對伓住,URL 太長]',
 
 # Delete conflict
-'deletedwhileediting' => '警告: 倷編輯嗰時間有人刪卟嘞箇頁!',
-'confirmrecreate' => "倷編輯嗰時間,用戶[[User:$1|$1]]([[User talk:$1|對話]])因為下底原因刪卟嘞箇頁:
+'deletedwhileediting' => '警告: 汝編輯嗰時間有人刪吥哩箇頁!',
+'confirmrecreate' => "汝編輯嗰時間,用戶[[User:$1|$1]]([[User talk:$1|對話]])因為下底原因刪吥哩箇頁:
 : ''$2''
-請想正後再重建頁面。",
-'recreate' => '重建',
+請想正後再建過頁面。",
+'recreate' => '建過',
 
 # action=purge
 'confirm_purge_button' => '做得',
@@ -2204,20 +2204,20 @@ $3
 
 # Watchlist editor
 'watchlistedit-numitems' => '倷嗰監視列表攏共有$1隻標題,佢伓包括對話頁。',
-'watchlistedit-noitems' => '嗰監視列表冇標題。',
+'watchlistedit-noitems' => '嗰監視列表冇標題。',
 'watchlistedit-normal-title' => '編寫監視列表',
 'watchlistedit-normal-legend' => '到監視列表移卟標題',
 'watchlistedit-normal-explain' => '倷嗰監視列表嗰標題會到下底顯到。想移卟隻標題,到佢前頭勾吖,跟到按吖移除標題。倷也能[[Special:EditWatchlist/raw|編輯原始監視列表]]或[[Special:Watchlist/clear|移除所全部標題]]。',
 'watchlistedit-normal-submit' => '移除標題',
-'watchlistedit-normal-done' => '$1隻標題從倷嗰監視列表移卟嘞:',
+'watchlistedit-normal-done' => '$1隻標題從汝嗰監視列表移吥哩:',
 'watchlistedit-raw-title' => '編寫原始監視列表',
 'watchlistedit-raw-legend' => '編寫原始監視列表',
 'watchlistedit-raw-explain' => '倷嗰監視列表嗰標題會到下底顯到,哈能利用箇隻表去加進同到移除標題;一行一隻標題。扤完後,按更新監視列表。倷也能[[Special:EditWatchlist|標準編輯器]]。',
 'watchlistedit-raw-titles' => '標題:',
 'watchlistedit-raw-submit' => '更新監視列表',
-'watchlistedit-raw-done' => '倷嗰監視列表更新正嘞。',
-'watchlistedit-raw-added' => 'å\8a å\98\9e$1é\9a»æ¨\99é¡\8c:',
-'watchlistedit-raw-removed' => '移å\98\9e$1é\9a»æ¨\99é¡\8c:',
+'watchlistedit-raw-done' => '汝嗰監視列表更新正哩。',
+'watchlistedit-raw-added' => 'å\8a å\93©$1é\9a»æ¨\99é¡\8cï¼\9a',
+'watchlistedit-raw-removed' => '移å\93©$1é\9a»æ¨\99é¡\8cï¼\9a',
 
 # Watchlist editing tools
 'watchlisttools-view' => '望下相關更改',
index f22c60d..a88e8ee 100644 (file)
@@ -94,6 +94,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'Ruta_do_ficheiro' ),
        'Import'                    => array( 'Importar' ),
        'Invalidateemail'           => array( 'Invalidar_o_enderezo_de_correo_electrónico' ),
+       'JavaScriptTest'            => array( 'Proba_do_JavaScript' ),
        'BlockList'                 => array( 'Lista_de_bloqueos', 'Lista_dos_bloqueos_a_enderezos_IP' ),
        'LinkSearch'                => array( 'Buscar_ligazóns_web' ),
        'Listadmins'                => array( 'Lista_de_administradores' ),
@@ -110,6 +111,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'Procura_MIME' ),
        'Mostcategories'            => array( 'Páxinas_con_máis_categorías' ),
        'Mostimages'                => array( 'Ficheiros_máis_ligados' ),
+       'Mostinterwikis'            => array( 'Páxinas_con_máis_interwikis' ),
        'Mostlinked'                => array( 'Páxinas_máis_ligadas' ),
        'Mostlinkedcategories'      => array( 'Categorías_máis_ligadas' ),
        'Mostlinkedtemplates'       => array( 'Modelos_máis_ligados' ),
@@ -121,6 +123,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'As_miñas_subidas' ),
        'Newimages'                 => array( 'Imaxes_novas' ),
        'Newpages'                  => array( 'Páxinas_novas' ),
+       'PagesWithProp'             => array( 'Páxinas_con_propiedades' ),
        'PasswordReset'             => array( 'Restablecer_o_contrasinal' ),
        'PermanentLink'             => array( 'Ligazón_permanente' ),
        'Popularpages'              => array( 'Páxinas_populares' ),
@@ -2446,8 +2449,8 @@ proceda con coidado.',
 'cantrollback' => 'Non se pode desfacer a edición; o último colaborador é o único autor desta páxina.',
 'alreadyrolled' => 'Non se pode desfacer a edición en "[[:$1]]" feita por [[User:$2|$2]] ([[User talk:$2|conversa]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); alguén máis editou ou desfixo os cambios desta páxina.
 
-A última edición fíxoa [[User:$3|$3]] ([[User talk:$3|conversa]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]).',
-'editcomment' => "O resumo de edición era: \"''\$1''\".",
+A última edición fíxoa [[User:$3|$3]] ([[User talk:$3|conversa]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
+'editcomment' => "O resumo de edición foi: \"''\$1''\".",
 'revertpage' => 'Desfixéronse as edicións de [[Special:Contributions/$2|$2]] ([[User talk:$2|conversa]]); cambiado á última versión feita por [[User:$1|$1]]',
 'revertpage-nouser' => 'Desfixéronse as edicións de (nome eliminado); cambiado á última versión feita por [[User:$1|$1]]',
 'rollback-success' => 'Desfixéronse as edicións de $1;
@@ -3893,6 +3896,7 @@ Debería recibir [{{SERVER}}{{SCRIPTPATH}}/COPYING unha copia da licenza públic
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Ruta dos artigos]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Ruta das escrituras]',
 
+# Special:Redirect
 'redirect' => 'Redirixir por nome de ficheiro, ID de usuario ou ID de revisión',
 'redirect-legend' => 'Redirixir a un ficheiro ou unha páxina',
 'redirect-summary' => 'Esta páxina especial redirixe cara a un ficheiro (dado o nome), unha páxina (dado o ID dunha revisión) ou unha páxina de usuario (dado o ID dun usuario).',
index 0837d37..d220dcc 100644 (file)
@@ -575,9 +575,13 @@ $2',
 'yourpassword' => 'ગુપ્ત સંજ્ઞા:',
 'userlogin-yourpassword' => 'ગુપ્ત સંજ્ઞા',
 'userlogin-yourpassword-ph' => 'ગુપ્ત સંજ્ઞા લખો',
+'createacct-yourpassword-ph' => 'પાસવર્ડ દાખલ કરો',
 'yourpasswordagain' => 'ગુપ્ત સંજ્ઞા (પાસવર્ડ) ફરી લખો',
+'createacct-yourpasswordagain' => 'પાસવર્ડની ખાતરી કરો',
+'createacct-yourpasswordagain-ph' => 'પાસવર્ડ ફરીથી દાખલ કરો',
 'remembermypassword' => 'આ કોમ્યૂટર પર મારી લૉગ ઇન વિગતો ધ્યાનમાં રાખો (વધુમાં વધુ $1 {{PLURAL:$1|દિવસ|દિવસ}} માટે)',
-'userlogin-remembermypassword' => 'મને યાદ રાખો',
+'userlogin-remembermypassword' => 'મને પ્રવેશિત રાખો',
+'userlogin-signwithsecure' => 'સલામત જોડાણ વાપરો',
 'securelogin-stick-https' => 'લોગ-ઈન કર્યા પછી  HTTPS સાથે જોડાયેલા રહો.',
 'yourdomainname' => 'તમારૂં ડોમેઇન:',
 'password-change-forbidden' => 'તમે આ વિકિ માટે પાસવર્ડ્સ બદલી શકતા નથી.',
@@ -598,12 +602,28 @@ $2',
 'gotaccount' => "પહેલેથી ખાતું ખોલેલું છે? '''$1'''.",
 'gotaccountlink' => 'પ્રવેશ કરો',
 'userlogin-resetlink' => 'પોતાની પ્રવેશ માહિતી ભૂલી ગયા છો?',
+'userlogin-resetpassword-link' => 'તમારો પાસવર્ડ બદલો',
+'helplogin-url' => 'Help:પ્રવેશ માટે',
+'createacct-join' => 'તમારી માહિતી નીચે દાખલ કરો.',
+'createacct-emailrequired' => 'ઇમેલ સરનામું',
+'createacct-emailoptional' => 'ઇમેલ સરનામું (વૈકલ્પિક)',
+'createacct-email-ph' => 'તમારું ઇમેલ સરનામું દાખલ કરો',
 'createaccountmail' => 'કામચલાઉ ગમે-તેમ પાસવર્ડ વાપરો અને તેને નીચે આપેલ ઇમેલ સરનામા પર મોકલો',
+'createacct-realname' => 'સાચું નામ (વૈકલ્પિક)',
 'createaccountreason' => 'કારણ:',
+'createacct-reason' => 'કારણ',
+'createacct-captcha' => 'સલામતી ચકાસણી',
+'createacct-captcha-help-url' => '{{ns:Project}}:ખાતાની વિનંતી કરો',
+'createacct-imgcaptcha-ph' => 'તમે જે લખાણ જુઓ છો તે દાખલ કરો',
+'createacct-submit' => 'તમારું ખાતું બનાવો',
+'createacct-benefit-body1' => '{{PLURAL:$1|ફેરફાર|ફેરફારો}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|પાનું|પાનાંઓ}}',
+'createacct-benefit-body3' => 'તાજેતરનાં {{PLURAL:$1|યોગદાનકર્તા|યોગદાનકર્તાઓ}}',
 'badretype' => 'તમે દાખલ કરેલ ગુપ્તસંજ્ઞા મળતી આવતી નથી.',
 'userexists' => 'દાખલ કરેલું સભ્ય નુ નામ વપરાશમાં છે.</br>
 કૃપયા અન્ય નામ પસંદ કરો.',
 'loginerror' => 'પ્રવેશ ત્રુટિ',
+'createacct-error' => 'ખાતું બનાવવામાં ક્ષતિ આવી',
 'createaccounterror' => 'ખાતું ખોલી શકાયું નથી: $1',
 'nocookiesnew' => 'તમારુ સભ્ય ખાતું બની ગયું છે પણ તમે પ્રવેશ (લોગ ઇન) કર્યો નથી.
 
@@ -2952,6 +2972,7 @@ $1',
 'pageinfo-robot-noindex' => 'અનુક્રમિય નહી',
 'pageinfo-views' => 'જોનારાની સંખ્યા',
 'pageinfo-watchers' => 'પાના નીરીક્ષકોની સંખ્યા',
+'pageinfo-redirects-name' => 'આ પાનાં પર વાળો',
 'pageinfo-subpages-name' => 'આ પાનાંનું ઉપપાનું',
 'pageinfo-firstuser' => 'પૃષ્ઠ સર્જક',
 'pageinfo-firsttime' => 'પૃષ્ઠ સર્જનની તારીખ',
@@ -3042,6 +3063,16 @@ $1',
 'ago' => '$1 પહેલાં',
 'just-now' => 'હમણાં',
 
+# Human-readable timestamps
+'monday-at' => '$1 પર સોમવાર',
+'tuesday-at' => '$1 પર મંગળવાર',
+'wednesday-at' => '$1 પર બુધવાર',
+'thursday-at' => '$1 પર ગુરુવાર',
+'friday-at' => '$1 પર શુક્રવાર',
+'saturday-at' => '$1 પર શનિવાર',
+'sunday-at' => '$1 પર રવિવાર',
+'yesterday-at' => '$1 પર ગઇકાલ',
+
 # Bad image list
 'bad_image_list' => 'ફોર્મેટ નીચે મુજબ છે:
 
@@ -3657,6 +3688,12 @@ $5
 'version-entrypoints-header-entrypoint' => 'પ્રવેશ સ્થળ',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'જાઓ',
+'redirect-revision' => 'પાનાંની આવૃત્તિ',
+'redirect-file' => 'ફાઇલ નામ',
+'redirect-not-exists' => 'કિંમત મળી નહી',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'નકલ ફાઇલ શોધો',
 'fileduplicatesearch-summary' => 'હેશ કિંમત પર આધારિત આબેહૂબ ફાઇલો શોધો.',
@@ -3748,6 +3785,7 @@ $5
 'htmlform-selectorother-other' => 'અન્ય',
 'htmlform-no' => 'ના',
 'htmlform-yes' => 'હા',
+'htmlform-chosen-placeholder' => 'વિકલ્પ પસંદ કરો',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 પૂર્ણ શબ્દ શોધ સહીત',
@@ -3760,7 +3798,7 @@ $5
 'logentry-delete-revision' => '$1 બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | સુધારણા | $5 આવૃત્તિઓ}} $3 પાનાં પર: $4',
 'logentry-delete-event-legacy' => '$1 બદલાઈ $3 પર લોગ ઘટનાઓ દૃશ્યતા',
 'logentry-delete-revision-legacy' => '$1 બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
-'logentry-suppress-delete' => '$1 àª¦àª¬àª¾àªµà«\80 àªªàª¾àª¨à«\81àª\82 $3',
+'logentry-suppress-delete' => '$1 àª\8f $3 àªªàª¾àª¨à«\81àª\82 {{GENDER:$2|દબાવà«\8dયà«\81àª\82}}',
 'logentry-suppress-event' => '$1  (છાની માહિતી) બદલાઈ {{PLURAL: $5 | લોગ ઘટના | $5 લોગ}} ની દ્રશ્યતા $3 : $4',
 'logentry-suppress-revision' => '$1 બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | આવૃત્તિ એ | $5 આવૃત્તિઓ}}: $4 $3 પાનાં પર',
 'logentry-suppress-event-legacy' => '$1 ગુપ્ત બદલો $3 પર લોગ ઘટનાઓ દૃશ્યતા',
index 95759a7..2c728f8 100644 (file)
@@ -362,11 +362,11 @@ $1',
 'internalerror' => '內部差錯',
 'internalerror_info' => '內部差錯:$1',
 'fileappenderrorread' => '附加當時無辦法讀取「$1」。',
-'fileappenderror' => '無辦法附加「$1」到「$2」。',
+'fileappenderror' => '無辦法附加“$1”到“$2”。',
 'filecopyerror' => '文件“$1”無辦法複製到“$2”。',
 'filerenameerror' => '文件“$1”到無辦法重新命名到“$2”。',
 'filedeleteerror' => '刪除毋到“$1”文件。',
-'directorycreateerror' => '無辦法建立目錄「$1」。',
+'directorycreateerror' => '無辦法建立目錄“$1”。',
 'filenotfound' => '尋毋到“$1”文件。',
 'fileexistserror' => '無法寫入文件“$1”:文件已存在',
 'unexpected' => '毋正常數值:"$1"="$2"。',
@@ -404,7 +404,7 @@ $1',
 $2',
 'namespaceprotected' => "汝還無權限編輯'''$1'''名字空間嘅頁面。",
 'customcssprotected' => '汝還無權限編輯邇隻CSS頁面,因為其包含矣其他用戶嘅個人設置。',
-'customjsprotected' => '還無權限去編輯邇隻JavaScript頁面,因為其包含矣另一用戶嘅個人設定。',
+'customjsprotected' => '還無權限去編輯邇隻JavaScript頁面,因為其包含矣另一用戶嘅個人設定。',
 'ns-specialprotected' => '邇兜特殊頁面係毋做得編輯嘅。',
 'titleprotected' => "邇隻標題已經分[[User:$1|$1]]保護來防止建立。理由係''$2''。",
 'filereadonlyerror' => '無辦法修改文件「$1」因為文件庫「$2」處於唯讀模式。 !
@@ -527,7 +527,7 @@ $2',
 'mailerror' => '發送郵件出差錯:$1',
 'acct_creation_throttle_hit' => '在邇隻wiki上係話訪客利用汝个IP地址在昨天創建矣$1個賬戶,係在邇段時間肚的上限。
 結果利用這個IP地址个訪客在邇段時間中無辦法創建更多个賬戶。',
-'emailauthenticated' => '汝電郵地址已經於$2 $3確認有效。',
+'emailauthenticated' => '汝電郵地址已經於$2 $3確認有效。',
 'emailnotauthenticated' => '汝嘅郵箱地址<strong>還無分認証</strong>。以下功能將毋會發送任何郵件。',
 'noemailprefs' => '在嘅嘅偏好設定肚指定一隻電子郵件地址來使用邇隻功能。',
 'emailconfirmlink' => '確認汝嘅郵箱地址',
@@ -536,7 +536,7 @@ $2',
 'accountcreated' => '已建立賬戶',
 'accountcreatedtext' => '$1嘅賬戶已經分建立。',
 'createaccount-title' => '在{{SITENAME}}肚建立新賬戶',
-'createaccount-text' => '有人在{{SITENAME}}利用汝嘅電郵創建矣一隻喊做 "$2" 嘅新賬戶($4),密碼係 "$3" 。汝應該立即登入並更改密碼。
+'createaccount-text' => '有人在{{SITENAME}}利用汝嘅電郵創建矣一隻喊做 "$2" 嘅新賬戶($4),密碼係 "$3" 。汝應該立即登入並更改密碼。
 
 如果該賬戶建立錯誤嘅話,汝可以忽略邇條訊息。',
 'usernamehasherror' => '用戶名毋可以包含Hash字符',
@@ -544,7 +544,7 @@ $2',
 請等陣再試。',
 'login-abort-generic' => '登入錯誤 - 中止',
 'loginlanguagelabel' => '語言:$1',
-'suspicious-userlogout' => 'æ\82¨登出嘅要求已經分拒絕,因為其可能係由已損壞嘅瀏覽器或者緩存代理傳送。',
+'suspicious-userlogout' => 'æ±\9d登出嘅要求已經分拒絕,因為其可能係由已損壞嘅瀏覽器或者緩存代理傳送。',
 
 # Email sending
 'php-mail-error-unknown' => '在PHP嘅mail()參數肚嘅未知錯誤',
@@ -580,8 +580,8 @@ $2',
 'passwordreset-pretext' => '{{PLURAL:$1||輸入下列其中一隻}}',
 'passwordreset-username' => '用戶名:',
 'passwordreset-domain' => '域名:',
-'passwordreset-capture' => '查看生成電子郵件係無?',
-'passwordreset-capture-help' => 'ä¿\82話汝選中邇隻框,電子郵件(包括臨時密碼)將顯示,並發送分用戶。',
+'passwordreset-capture' => '查看生成電子郵件係無?',
+'passwordreset-capture-help' => 'ä¿\82è¬\9b汝選中邇隻框,電子郵件(包括臨時密碼)將顯示,並發送分用戶。',
 'passwordreset-email' => '電郵地址:',
 'passwordreset-emailtitle' => '在{{SITENAME}}上嘅詳細信息',
 'passwordreset-emailsent' => '密碼重置電子郵件已發送。',
@@ -630,24 +630,24 @@ $2',
 'missingsummary' => "'''提示:''' 汝無提供一隻編寫摘要。假使汝再次單擊「{{int:savearticle}}」,汝嘅編寫將毋帶編寫摘要保存。",
 'missingcommenttext' => '請在下背輸入評論。',
 'missingcommentheader' => "'''提示:''' 汝還無為邇條評論提供一隻標題。假使汝再次單擊「{{int:savearticle}}」,您嘅編寫將毋帶標題保存。",
-'summary-preview' => 'Chak-yeu yi-ko:',
-'subject-preview' => 'Chú-thì/phêu-thì yi-ko:',
-'blockedtitle' => 'Yung-fu pûn chhà-fûng',
+'summary-preview' => '摘要預覽:',
+'subject-preview' => '主題/標題預覽:',
+'blockedtitle' => '用戶分查封',
 'blockedtext' => "Ngì-ke yung-fu-miàng fe̍t-chá IP thi-tiám yí-kîn pûn $1 chhà-fûng.
 
 Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he ''$2''. Ngì khó-yî lièn-lo̍k $1 fe̍t-chá khì-thâ ke [[{{MediaWiki:Grouppage-sysop}}|Kón-lî-yèn]], thó-lun liá-chhṳ ke chhà-fûng. Chhù-fî ngì yí-kîn chhai ngì-ke [[Special:Preferences|Chong-ho chhâm-su sat-chṳ]] chûng sat-thin liáu yit-ke yû-háu ke email, féu-chet ngì-he put-nèn sṳ́-yung “email liá-vi yung-fu” ke kûng-yung. Ngì-ke IP thi-tiám he $3, yì-yèn ke chhà-fûng ID he #$5. Chhiáng ngì chhai só-yû chhà-chhìm chûng chu-mìn liá-ke thi-tiám khi̍p/fe̍t-he chhà-fûng ID.",
 'autoblockedtext' => 'Ngì-ke IP thi-tiám yí-kîn pûn chhṳ-thung chhà-fûng, lî-yù he siên-chhièn ke nang yit-vi yung-fu pûn $1 só chhà-fûng. Yì-yèn chhà-fûng ke ngièn-yîn he: \'\'$2\'\' liá-chhṳ chhà-fûng ke khì-kiên he: $6 ngì khó-yî lièn-lo̍k $1 fe̍t-chá khì-thâ ke [[{{MediaWiki:Grouppage-sysop}}|kón-lî-yèn]], thó-lun liá-chhṳ chhà-fûng. Chhù-fî ngì yí-kîn chhai ngì-ke [[Special:Preferences|chong-ho chhâm-su sat-chṳ]] chûng sat-thin yit-ke yû-háu ke email thi-tiám, féu-chet ngì-he put-nèn sṳ́-yung "email liá-vi yung-fu" ke kûng-nèn. Ngì-ke chhà-fûng ID he $5. Chhiáng ngì chhai só-yû thiàu-chhà chûng chu-mìn liá-ke chhà-fûng ID.',
-'whitelistedittext' => 'Ngì pit-sî siên $1 chhòi-nèn phiên-siá vùn-chông.',
-'confirmedittext' => 'Chhai phiên-cho chhṳ́-chông chṳ̂-chhièn pit-sî khok-ngin ngì-ke email thi-tiám. Chhiáng theu-ko [[Special:Preferences|chhâm-su sat-thin]] sat-thin pin ngiam-chṳn ngì-ke email thi-tiám.',
+'whitelistedittext' => '汝必須先$1正做得編寫頁面。',
+'confirmedittext' => '在編寫邇頁之前汝必須確認汝嘅郵箱地址。請通過[[Special:Preferences|偏好設定]]設定並驗證汝嘅郵箱地址。',
 'nosuchsectiontitle' => 'Mò-yû liá-ke thon-lo̍k',
 'nosuchsectiontext' => 'Ngì sòng-chhṳ phiên-cho ke thon-lo̍k pin-put chhùn-chhai.',
-'loginreqtitle' => 'Sî-yeu Tên-ngi̍p',
-'loginreqlink' => 'tên-ngi̍p',
-'loginreqpagetext' => 'Ngì pit-sî $1 chhòi-nèn kiám-sṳ khì-thâ vùn-chông.',
-'accmailtitle' => 'Pi-Me̍t yí-kîn ki-chhut.',
+'loginreqtitle' => '愛登入',
+'loginreqlink' => '登入',
+'loginreqpagetext' => '汝必須$1正做得查看其他頁面。',
+'accmailtitle' => '密碼已經寄出',
 'accmailtext' => "'$1' ke pi-me̍t yí-kîn ki-kî to $2.",
 'newarticle' => '(新)',
-'newarticletext' => 'æ\82¨入到矣一隻還吂建立嘅頁面。
+'newarticletext' => 'æ±\9d入到矣一隻還吂建立嘅頁面。
 愛建立本頁面,請在下面嘅編寫框肚輸入內容(詳情參詳[[{{MediaWiki:Helppage}}|幫手]])。
 係講汝係毋小心來到本頁面,直接點擊汝嘅瀏覽器肚嘅“轉頭”撳掣轉頭。',
 'anontalkpagetext' => "---- ''Liá-he yit-ke hàn-mò kien-li̍p chong-ho ke ngia̍k-miàng yung-fu ke tui-fa-hong. Só-yî chṳ́-nèn yung IP thi-tiám lòi lâu kí lièn-lo̍k. Ke-IP thi-tiám khó-nèn yù-chhai kí-miàng yung-fu khiung-hióng. Kó-yèn ngì-he yit-miàng ngia̍k-miàng yung-fu ngin-vì pún-hong song ke phìn-lî kiên ngì mò-kôan, chhiáng [[Special:UserLogin|Chhóng-kien sîn chong-ho fe̍t-chá Tên-ngi̍p]] khó-yî phit-miên lòi-yì khì-thâ ngia̍k-miàng yung-fu ke fun-lon.''",
@@ -656,21 +656,23 @@ Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he '
 或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編寫邇頁]</span>。',
 'noarticletext-nopermission' => '邇頁當前無內容。
 汝做得在其它頁[[Special:Search/{{PAGENAME}}|搜尋邇頁標題]],或者<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋有關日誌]</span>,但汝無權限建立邇頁。',
-'userpage-userdoesnotexist' => 'Sṳ́-yung-tsá tsong-ho "<nowiki>$1</nowiki>" hàn-mò kien-li̍p.
-Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-tshà yit-ha-é.',
+'userpage-userdoesnotexist' => '用戶帳號“$1:還吂註冊。
+請在建立/編寫邇隻頁面前先檢查一下。',
 'clearyourcache' => "'''Chu-yi:''' Chhai tú-chhùn yî-heu, ngì pit-sî khoai chhái-chhí chhîn-chhù hi-khí chhòi-nèn khon-tó chok-chhut ke kói-pien. '''Mozilla / Firefox / Safari:''' on-tén ''Shift'' chai tiám-kit '' Chhùng-sîn chṳ́n-lî ''(fe̍t-chá on-hâ ''Ctrl-Shift-R'', chhai Phìn-kó Mac song on-hâ ''Cmd-Shift-R''); '''IE:''' on-tén ''Ctrl'' chai tiám-kit ''Chhùng-sîn chṳ́n-lî'', fe̍t-he on-hâ ''Ctrl-F5'';'''Konqueror:''' chak  sî-yeu tiám-kit ''Chhùng-sîn chṳ́n-lî''; '''Opera:''' yung-fu sî-yeu chhai ''kûng-khí-sat-thin'' chûng vàn-cháng-thi chhîn-chhù ke khoai-chhí.",
 'usercssyoucanpreview' => "'''Thì-sṳ:''' Chhai pó-chhùn chhièn chhiáng yung 'hién-sṳ yi-ko' on-néu lòi chhet-chhṳ ngì sîn-ke CSS.",
 'userjsyoucanpreview' => "'''Thì-sṳ:''' Chhai pó-chhùn chhièn chhiáng yung 'hién-sṳ yi-ko' on-néu lòi chhet-chhṳ ngì sîn-ke JS.",
 'usercsspreview' => "'''Chu-yi ngì chak-he chhai yi-liau ngì ke-ngìn CSS, hàn-mò tú-chhùn!'''",
-'userjspreview' => "'''Chu-yi ngì chak-he chhai chhet-chhṳ / yi-liau ngì ke-ngìn JavaScript, hàn-mò tú-chhùn!'''",
-'userinvalidcssjstitle' => "'''Kín-ko:''' Put chhùn-chhai mien-pán \"\$1\". chu-yi chhṳ-thin ke .css lâu .js hong yeu sṳ́-yung séu-siá phêu-thì, yì-yi, {{ns:user}}:Foo/vector.css put-thùng yî  {{ns:user}}:Foo/Vector.css.",
+'userjspreview' => "'''記緊汝單單係在測試/預覽汝嘅用戶JavaScript。'''
+'''還吂保存!'''",
+'userinvalidcssjstitle' => "'''警告:''' 毋存在外皮“$1”。
+注意自定嘅.css撈.js頁愛使用小寫標題,例如,{{ns:user}}:Foo/vector.css撈 {{ns:user}}:Foo/Vector.css毋同。",
 'updated' => '(已經更新)',
 'note' => "'''注意:'''",
 'previewnote' => "'''請記到邇單淨係預覽。'''
 汝嘅更改還吂保存!",
 'previewconflict' => '邇隻預覽展示矣上片文字編寫區肚嘅內容。其將在汝選擇保存後出現。',
-'session_fail_preview' => "'''好抱歉!由於部份數據遺失,亻厓兜無法處理汝嘅編寫。'''
-請再試一次
+'session_fail_preview' => "'''好抱歉!由於部份數據遺失,𠊎兜無辦法處理汝嘅編寫。'''
+請試多一擺
 係講還係失敗,請[[Special:UserLogout|登出]]後重新登入。",
 'session_fail_preview_html' => "'''Chṳ̂n tui-put-hí! Phu-fun chṳ̂-liau yí-kîn yì-sṳt, mò-fap chhú-lî ngì-ke phiên-siá.'''
 
@@ -687,7 +689,7 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 '''單淨'''在上片文字框肚嘅內容會在汝點擊「{{int:savearticle}}」後分保存。",
 'yourtext' => '汝嘅文字',
 'storedversion' => '已保存嘅修訂版本',
-'nonunicodebrowser' => "'''警告: 汝嘅瀏覽器毋兼容Unicode編碼。'''邇有一隻工作區將使汝做得安全編寫頁面: 非ASCII字符將以十六進製編碼模式出現在編輯框肚。",
+'nonunicodebrowser' => "'''警告: 汝嘅瀏覽器毋兼容Unicode編碼。'''邇有一隻工作區將使汝做得安全編寫頁面: 非ASCII字符將以十六進製編碼模式出現在編輯框肚。",
 'editingold' => "'''警告:汝在編輯中嘅係本頁嘅舊版本。'''
 係講汝保存其嘅話,在本版本之後嘅任何更改都會遺失。",
 'yourdiff' => '差別',
@@ -695,7 +697,7 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 'copyrightwarning2' => "請注意汝對{{SITENAME}}嘅所有貢獻
 都可能分其他貢獻人編寫、修改或刪除。
 係講汝毋希望您嘅文字分任意修改撈再散佈,請毋好提交。<br />
-汝同時也愛向亻厓兜保證汝所提交嘅內容係自家所作,或得自一隻毋受版權保護或相似自由嘅來源(參閱$1的細節)。
+汝同時也愛向𠊎兜保證汝所提交嘅內容係自家所作,或得自一隻毋受版權保護或相似自由嘅來源(參閱$1的細節)。
 '''毋好在未獲授權嘅情況下發表!'''",
 'longpageerror' => "'''Chho-ngu: Ngì só thì-kâu ke vùn-sṳ chhòng-thu yû $1KB, liá thai-yî $2KB ke chui-thai chhṳ̍t, ke-vùn-chông put-nèn pûn tú-chhùn.'''",
 'readonlywarning' => "'''Kín-ko: chṳ̂-liau-khu pûn-ngìn fûng-só yîn-vi chin-hàng vì-fu, só-yî muk-chhièn mò-fap pó-chhùn ngì-ke siù-chho. Ngì fe̍t-hí hî-mong chhai-siên chiông pún-thon vùn-sṳ fu̍k-chṳ pin pó-chhùn to vùn-sṳ vùn-khien, yèn-heu tén-yit-ha chai siù-chho.'''",
@@ -723,10 +725,12 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 'log-fulllog' => '查看完整日誌',
 'edit-hook-aborted' => '編寫分鈎取消。
 其並無分出解釋。',
-'edit-gone-missing' => 'Vù-nèn kiên-sîn vùn-tsông. Khó-nèn kông pûn-ngìn tshù-thet.',
+'edit-gone-missing' => '毋做得更新頁面。
+其可能正正分刪除。',
 'edit-conflict' => '編寫衝突。',
-'edit-no-change' => 'Piên-sip yí-kîn pûn fut-lio̍k, yîn-vi vùn-sṳ mò ngim-hò kói-pien.',
-'edit-already-exists' => 'Put-nèn kien-li̍p yit-ke sîn vùn-tsông. Têu yí-kîn tshùn-tshai.',
+'edit-no-change' => '汝嘅編寫已經略過,因為文字無任何改動。',
+'edit-already-exists' => '毋做得建立一隻新頁面。
+其已經存在。',
 'defaultmessagetext' => '默認消息文字',
 'invalid-content-data' => '無效嘅數據內容',
 
@@ -820,17 +824,17 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 'revdel-restore' => '更改可見性',
 'revdel-restore-deleted' => '已刪除嘅修訂版本',
 'revdel-restore-visible' => '見得到嘅修訂版本',
-'pagehist' => 'Vùn-tsông li̍t-sṳ́',
-'deletedhist' => 'Yí-kîn tshù-me̍t ke li̍t-sṳ́',
+'pagehist' => '頁面歷史',
+'deletedhist' => '已刪除嘅歷史',
 
 # Suppression log
-'suppressionlog' => 'Fi-tsṳ́  ngit-péu',
+'suppressionlog' => '監督日誌',
 
 # History merging
-'mergehistory' => 'Ha̍p-yit siû-tsáng ki-liu̍k',
-'mergehistory-from' => 'Lòi-ngièn vùn-tsông:',
-'mergehistory-into' => 'Muk-tit vùn-tsông:',
-'mergehistory-list' => 'Khó-yî ha̍p-yit ke piên-sip li̍t-sṳ́',
+'mergehistory' => '合併頁面歷史',
+'mergehistory-from' => '來源頁面:',
+'mergehistory-into' => '目的頁面:',
+'mergehistory-list' => '做得合併嘅編寫歷史',
 'mergehistory-merge' => '以下[[:$1]]嘅修訂可以合併到[[:$2]]。用邇選項按鈕欄去合併單淨有在指定時間以前所創建嘅修訂。愛留意嘅係使用導航連接就會重設邇一欄。',
 
 # Merge log
@@ -846,13 +850,13 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 # Search results
 'searchresults' => '搜尋結果',
 'searchresults-title' => '搜尋"$1"嘅結果',
-'searchresulttext' => 'Yû-kôan chhìm-cháu {{SITENAME}} ke kien-tô siòng-se chhìn-khóng, chhâm-kháu [[{{MediaWiki:Helppage}}|{{int:help}}]].',
+'searchresulttext' => '有關搜尋{{SITENAME}}嘅又較多詳情,參詳[[{{MediaWiki:Helppage}}|{{int:help}}]]。',
 'searchsubtitle' => 'Chhà-sûn $1 (só-yû yî "$1" khôi-thèu ke ya̍p • só-yû lièn-chiap to "$1" ke ya̍p)',
-'searchsubtitleinvalid' => 'Chhà-chhìm "$1"',
-'titlematches' => 'Vùn-chông thì-muk siông-fù',
-'notitlematches' => 'Mò-yû chhìm-cháu to phit-phi vùn-chông thì-muk',
-'textmatches' => 'Vùn-chông nui-yùng fù-ha̍p',
-'notextmatches' => 'Mò-yû vùn-chông nui-yùng phit-phi',
+'searchsubtitleinvalid' => "搜尋'''$1'''",
+'titlematches' => '頁面標題相符',
+'notitlematches' => '找毋到配得上嘅頁面題目',
+'textmatches' => '頁面內容配得上',
+'notextmatches' => '無頁面內容配上',
 'prevn' => '前頭$1隻',
 'nextn' => '後背$1隻',
 'prevn-title' => '前頭$1隻結果',
@@ -861,7 +865,7 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 'viewprevnext' => '查看($1 {{int:pipe-separator}} $2)($3)',
 'searchmenu-exists' => "'''在邇隻wiki上已經有一頁喊做“[[:$1]]”。'''",
 'searchmenu-new' => "'''在本wiki上建立邇隻頁面“[[:$1]]”!'''",
-'searchhelp-url' => 'Help:Pông-chhu',
+'searchhelp-url' => 'Help:目錄',
 'searchprofile-articles' => '內容頁面',
 'searchprofile-project' => '幫助撈計劃頁面',
 'searchprofile-images' => '多媒體',
@@ -877,9 +881,9 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 'search-redirect' => '(重定向 $1)',
 'search-section' => '(段落 $1)',
 'search-suggest' => '汝係毋係尋:$1',
-'search-interwiki-caption' => 'Chí-moi kie-va̍k',
-'search-interwiki-default' => '$1 kiet-kó:',
-'search-interwiki-more' => '(kien-tô)',
+'search-interwiki-caption' => '姊妹計劃',
+'search-interwiki-default' => '$1項結果:',
+'search-interwiki-more' => '(還較多)',
 'searchrelated' => '相關',
 'searchall' => '全部',
 'showingresults' => "Ha-mien hién-sṳ chhiùng thi-'''$2'''-thiàu khôi-sṳ́ ke '''$1'''-thiàu kiet-kó:",
@@ -887,29 +891,29 @@ Tshiáng chhai kien-li̍p/piên-sip liá-ke vùn-tsông tshièn siên kiám-ts
 'showingresultsheader' => "對'''$4'''嘅{{PLURAL:$5|第'''$1'''到第'''$3'''隻結果|第'''$1 - $2'''隻,共'''$3'''隻結果}}",
 'nonefound' => '<strong>Chu-yi:</strong> Sṳt-phai ke sêu-chhà vông-vông he chhut-yì chhṳ-thù sêu-chhà chû-yì "ke" fe̍t-chá "lâu" chṳ̂-lui ke sòng-kien-sṳ só yîn-hí.',
 'search-nonefound' => '在查詢肚無結果相符。',
-'powersearch' => 'Chin-kiê sêu-chhà',
-'powersearch-legend' => 'Chin-kiê sêu-chhà',
-'powersearch-ns' => 'Chhai yî-ha ke miàng-sṳ khûng-kiên chûng sêu-chhà:',
-'powersearch-redir' => 'Chhùng-sîn thin-hiong chhîn-tân',
-'powersearch-field' => 'Sêu-chhà',
-'powersearch-togglelabel' => 'Kiám-chhà:',
-'searchdisabled' => '{{SITENAME}} sin-nèn fông-mien ke ngièn-yîn, chhiòn-vùn chhìm-cháu yí-kîn pûn chhiam-sṳ̀ thìn-yung. Ngì khó-yî chhiam-sṳ̀ theu-ko Google chhà-chhìm. Chhiáng liù-yi sok-yîn khó-nèn voi ko-sṳ̀.',
+'powersearch' => '高級搜尋',
+'powersearch-legend' => '高級搜尋',
+'powersearch-ns' => '在下背嘅名字空間肚搜尋:',
+'powersearch-redir' => '重定向清單',
+'powersearch-field' => '搜尋',
+'powersearch-togglelabel' => '監查:',
+'searchdisabled' => '{{SITENAME}}由於性能方面嘅原因,全文搜已分暫時停用。汝做得暫時通過Google搜尋。請留意佢兜嘅索引可能會過時。',
 
 # Preferences page
-'preferences' => 'Chhâm-su sat-chṳ',
+'preferences' => '偏好設定',
 'mypreferences' => '偏好設定',
-'prefsnologin' => 'Hàn-mò tên-ngi̍p',
+'prefsnologin' => '還吂登入',
 'prefsnologintext' => 'Ngì pit-sî chhai-siên [[Special:UserLogin|tên-ngi̍p]] chhòi-nèn sat-chṳ ke-ngìn chhâm-su.',
-'changepassword' => 'Kiên-kói me̍t-me̍t',
+'changepassword' => '更改密碼',
 'prefs-skin' => '外皮',
-'skin-preview' => 'Yi-ko',
-'datedefault' => 'Yi-sat-chhṳ̍t',
-'prefs-datetime' => 'Ngit-khì khi̍p sṳ̀-kiên',
-'prefs-personal' => 'Yung-fu chṳ̂-liau',
+'skin-preview' => '預覽',
+'datedefault' => '預設值',
+'prefs-datetime' => '日期撈時間',
+'prefs-personal' => '用戶資料',
 'prefs-rc' => '最近更改',
-'prefs-watchlist' => 'Kam-sṳ lie̍t-péu',
+'prefs-watchlist' => '監視列表',
 'prefs-watchlist-days' => 'Kam-sṳ lie̍t-péu chûng hién-sṳ ki-liu̍k ke thiên-su:',
-'prefs-watchlist-edits' => 'Chhai chen-khiòng ke Kam-sṳ lie̍t-péu chûng hién-sṳ ke phiên-chho chhṳ-su:',
+'prefs-watchlist-edits' => '擴展監視列表肚顯示更改次數上限:',
 'prefs-misc' => 'Khì-thâ sat-chṳ',
 'saveprefs' => 'Pó-chhùn',
 'resetprefs' => 'Sat-thin',
index bff5c15..a83659f 100644 (file)
@@ -104,6 +104,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'חיפוש_MIME' ),
        'Mostcategories'            => array( 'הקטגוריות_הרבות_ביותר', 'הדפים_מרובי-הקטגוריות_ביותר' ),
        'Mostimages'                => array( 'הקבצים_המקושרים_ביותר', 'התמונות_המקושרות_ביותר' ),
+       'Mostinterwikis'            => array( 'קישורי_שפה_ביותר' ),
        'Mostlinked'                => array( 'הדפים_המקושרים_ביותר', 'המקושרים_ביותר' ),
        'Mostlinkedcategories'      => array( 'הקטגוריות_המקושרות_ביותר' ),
        'Mostlinkedtemplates'       => array( 'התבניות_המקושרות_ביותר' ),
@@ -198,6 +199,7 @@ $magicWords = array(
        'pagenamee'                 => array( '1', 'שם הדף מקודד', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'מרחב השם', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'מרחב השם מקודד', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'מספר_מרחב_השם', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'מרחב השיחה', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'מרחב השיחה מקודד', 'TALKSPACEE' ),
        'subjectspace'              => array( '1', 'מרחב הנושא', 'מרחב הערכים', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -310,6 +312,7 @@ $magicWords = array(
        'url_query'                 => array( '0', 'שאילתה', 'QUERY' ),
        'defaultsort_noerror'       => array( '0', 'ללא שגיאה', 'noerror' ),
        'defaultsort_noreplace'     => array( '0', 'ללא החלפה', 'noreplace' ),
+       'pagesincategory_pages'     => array( '0', 'דפים', 'pages' ),
 );
 
 $datePreferences = array(
@@ -4038,6 +4041,7 @@ $5
 'version-entrypoints-header-entrypoint' => 'נקודת כניסה',
 'version-entrypoints-header-url' => 'כתובת',
 
+# Special:Redirect
 'redirect' => 'הפניה לפי שם קובץ, מספר משתמש או מספר גרסה',
 'redirect-legend' => 'הפניה לקובץ או לדף',
 'redirect-summary' => 'דף מיוחד זה מפנה לקובץ (בהינתן שם הקובץ), לדף (בהינתן מספר גרסה), או לדף משתמש (בהינתן מספר משתמש).',
index 8257dad..a24436a 100644 (file)
@@ -262,6 +262,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'Pencarian_MIME', 'PencarianMIME' ),
        'Mostcategories'            => array( 'Kategori_terbanyak', 'KategoriTerbanyak' ),
        'Mostimages'                => array( 'Berkas_paling_digunakan', 'BerkasPalingDigunakan' ),
+       'Mostinterwikis'            => array( 'Interwiki_terbanyak', 'InterwikiTerbanyak' ),
        'Mostlinked'                => array( 'Halaman_paling_digunakan', 'HalamanPalingDigunakan' ),
        'Mostlinkedcategories'      => array( 'Kategori_paling_digunakan', 'KategoriPalingDigunakan' ),
        'Mostlinkedtemplates'       => array( 'Templat_paling_digunakan', 'TemplatPalingDigunakan' ),
@@ -762,7 +763,7 @@ Perhatikan bahwa beberapa halaman mungkin masih terus menunjukkan bahwa Anda mas
 'createacct-yourpasswordagain-ph' => 'Masukkan lagi kata sandi',
 'remembermypassword' => 'Ingat kata sandi saya di komputer ini (selama $1 {{PLURAL:$1|hari|hari}})',
 'userlogin-remembermypassword' => 'Biarkan saya tetap masuk',
-'userlogin-signwithsecure' => 'Masuk log dengan server aman',
+'userlogin-signwithsecure' => 'Gunakan server aman',
 'securelogin-stick-https' => 'Tetap terhubung ke HTTPS setelah masuk',
 'yourdomainname' => 'Domain Anda:',
 'password-change-forbidden' => 'Anda tidak dapat mengubah kata sandi pada wiki ini.',
@@ -783,6 +784,7 @@ Perhatikan bahwa beberapa halaman mungkin masih terus menunjukkan bahwa Anda mas
 'gotaccount' => "Sudah terdaftar sebagai pengguna? '''$1'''.",
 'gotaccountlink' => 'Masuk log',
 'userlogin-resetlink' => 'Lupa detail info masuk Anda?',
+'userlogin-resetpassword-link' => 'Buat ulang kata sandi',
 'helplogin-url' => 'Help:Masuk log',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantuan masuk log]]',
 'createacct-join' => 'Masukkan informasi Anda di bawah ini.',
@@ -2198,7 +2200,7 @@ Nama yang telah <del>dicoret</del> berarti telah dibetulkan.',
 'mostcategories' => 'Halaman dengan kategori terbanyak',
 'mostimages' => 'Berkas yang tersering digunakan',
 'mostinterwikis' => 'Halaman dengan interwiki terbanyak',
-'mostrevisions' => 'Laman jo parubahan tabanyak',
+'mostrevisions' => 'Halaman dengan perubahan terbanyak',
 'prefixindex' => 'Semua halaman dengan awalan',
 'prefixindex-namespace' => 'Semua halaman dengan awalan (ruang nama $1)',
 'shortpages' => 'Halaman pendek',
@@ -3290,7 +3292,7 @@ Jika dijalankan, sistem Anda akan berisiko terserang.",
 'minutes-abbrev' => '$1 mnt',
 'hours-abbrev' => '$1 j',
 'days-abbrev' => '$1 h',
-'seconds' => '{{PLURAL:$1|$1 detik|$1 detik}}',
+'seconds' => '{{PLURAL:$1|satu detik|$1 detik}}',
 'minutes' => '{{PLURAL:$1|$1 menit|$1 menit}}',
 'hours' => '{{PLURAL:$1|$1 jam|$1 jam}}',
 'days' => '{{PLURAL:$1|$1 hari|$1 hari}}',
@@ -4060,6 +4062,9 @@ Anda seharusnya telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING salinan Lisensi
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Artikel path]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Skrip path]',
 
+# Special:Redirect
+'redirect' => 'Pengalihan oleh berkas, pengguna atau ID revisi',
+'redirect-legend' => 'Pengalihan ke sebuah berkas atau halaman',
 'redirect-submit' => 'Lanjut',
 
 # Special:FileDuplicateSearch
index 54c5b0b..454c9f4 100644 (file)
@@ -713,7 +713,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'createacct-yourpasswordagain-ph' => 'Inserisci nuovamente la password',
 'remembermypassword' => 'Ricorda la password su questo browser (per un massimo di $1 {{PLURAL:$1|giorno|giorni}})',
 'userlogin-remembermypassword' => 'Mantienimi collegato',
-'userlogin-signwithsecure' => 'Accedi con il server sicuro',
+'userlogin-signwithsecure' => 'Usa una connessione sicura',
 'securelogin-stick-https' => 'Resta connesso attraverso HTTPS dopo il login',
 'yourdomainname' => 'Specificare il dominio',
 'password-change-forbidden' => 'Non è possibile modificare le password su questo wiki.',
@@ -734,6 +734,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'gotaccount' => 'Hai già un accesso? $1.',
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => 'Hai dimenticato i tuoi dati di accesso?',
+'userlogin-resetpassword-link' => 'Reimposta la tua password',
 'helplogin-url' => 'Help:Login',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aiuto con il login]]',
 'createacct-join' => 'Inserisci i tuoi dati qui sotto.',
@@ -3835,6 +3836,7 @@ Questo programma deve essere distribuito assieme ad [{{SERVER}}{{SCRIPTPATH}}/CO
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Percorso voci]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Percorso script]',
 
+# Special:Redirect
 'redirect' => 'Reindirizzamento da file, utente o ID versione',
 'redirect-legend' => 'Reindirizza a un file o una pagina',
 'redirect-summary' => 'Questa pagina speciale reindirizza a un file (specificando il nome del file), a una pagina (specificando un ID di versione) o a un utente (specificando un ID utente numerico).',
index e941097..96036c2 100644 (file)
@@ -142,6 +142,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'パスの取得' ),
        'Import'                    => array( 'データ取り込み', 'データー取り込み', 'インポート' ),
        'Invalidateemail'           => array( 'メール無効化', 'メール無効' ),
+       'JavaScriptTest'            => array( 'JavaScriptテスト', 'JavaScript試験' ),
        'BlockList'                 => array( 'ブロック一覧', 'ブロックの一覧' ),
        'LinkSearch'                => array( '外部リンク検索' ),
        'Listadmins'                => array( '管理者一覧' ),
@@ -158,6 +159,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'MIME検索', 'MIMEタイプ検索' ),
        'Mostcategories'            => array( 'カテゴリの多いページ', 'カテゴリの多い項目' ),
        'Mostimages'                => array( '被リンクの多いファイル', '使用箇所の多いファイル' ),
+       'Mostinterwikis'            => array( 'ウィキ間リンクの多いページ' ),
        'Mostlinked'                => array( '被リンクの多いページ' ),
        'Mostlinkedcategories'      => array( '被リンクの多いカテゴリ' ),
        'Mostlinkedtemplates'       => array( '使用箇所の多いテンプレート', '被リンクの多いテンプレート' ),
@@ -168,7 +170,8 @@ $specialPageAliases = array(
        'Mytalk'                    => array( 'トークページ', '会話ページ', 'マイトーク', 'マイ・トーク' ),
        'Myuploads'                 => array( '自分のアップロード記録' ),
        'Newimages'                 => array( '新着ファイル', '新しいファイルの一覧', '新着画像展示室' ),
-       'Newpages'                  => array( '新しいページ', '新規項目' ),
+       'Newpages'                  => array( '新しいページ' ),
+       'PagesWithProp'             => array( 'プロパティがあるページ' ),
        'PasswordReset'             => array( 'パスワード再設定', 'パスワードの再設定', 'パスワードのリセット', 'パスワードリセット' ),
        'PermanentLink'             => array( '固定リンク', 'パーマリンク' ),
        'Popularpages'              => array( '人気ページ' ),
@@ -180,6 +183,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'おまかせリダイレクト', 'おまかせ転送' ),
        'Recentchanges'             => array( '最近の更新', '最近更新したページ' ),
        'Recentchangeslinked'       => array( '関連ページの更新状況', 'リンク先の更新状況' ),
+       'Redirect'                  => array( '転送', 'リダイレクト' ),
        'Revisiondelete'            => array( '版指定削除', '特定版削除' ),
        'Search'                    => array( '検索' ),
        'Shortpages'                => array( '短いページ' ),
@@ -785,7 +789,7 @@ $2',
 'yourname' => '利用者名:',
 'userlogin-yourname' => '利用者名',
 'userlogin-yourname-ph' => '利用者名を入力',
-'createacct-helpusername-url' => '{{ns:Project}}:å\88©ç\94¨è\80\85å\90\8dã\81®æ\8c\87針',
+'createacct-helpusername-url' => '{{ns:Project}}:å\88©ç\94¨è\80\85å\90\8dã\81®æ\96¹針',
 'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(選び方を教えてください)]]',
 'yourpassword' => 'パスワード:',
 'userlogin-yourpassword' => 'パスワード',
@@ -4201,6 +4205,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath/ja 記事のパス]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath/ja スクリプトパス]',
 
+# Special:Redirect
 'redirect' => 'ファイル名、利用者ID、版IDでの転送',
 'redirect-legend' => 'ファイルまたはページヘの転送',
 'redirect-summary' => 'この特別ページは、ファイル (ファイル名を指定)、ページ (版 ID を指定)、利用者ページ (利用者 ID を整数で指定) に転送されます。',
index 8d43ade..004cc75 100644 (file)
@@ -673,9 +673,20 @@ $2',
 'welcomecreation-msg' => 'គណនីរបស់អ្នកត្រូវបានបង្កើតហើយ។
 កុំភ្លេចផ្លាស់ប្ដូរ[[Special:Preferences|ចំណង់ចំណូលចិត្ត{{SITENAME}}]]របស់អ្នក។',
 'yourname' => 'អត្តនាម៖',
+'userlogin-yourname' => 'អត្តនាម',
+'userlogin-yourname-ph' => 'បញ្ចូលអត្តនាមរបស់អ្នក',
+'createacct-helpusername-url' => '{{ns:Project}}:គោលការណ៍ស្ដីពីអត្តនាម',
+'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(សូមប្រាប់ពីរបៀបជ្រើសរើស)]]',
 'yourpassword' => 'ពាក្យសម្ងាត់៖',
+'userlogin-yourpassword' => 'ពាក្យ​សម្ងាត់',
+'userlogin-yourpassword-ph' => 'បញ្ចូលពាក្យសម្ងាត់របស់អ្នក',
+'createacct-yourpassword-ph' => 'បញ្ចូលពាក្យសម្ងាត់',
 'yourpasswordagain' => 'វាយពាក្យសម្ងាត់ម្តងទៀត៖',
+'createacct-yourpasswordagain' => 'អះអាង​ពាក្យ​សម្ងាត់',
+'createacct-yourpasswordagain-ph' => 'បញ្ចូលពាក្យសម្ងាត់ម្ដងទៀត',
 'remembermypassword' => 'ចងចាំកំណត់ឈ្មោះចូលរបស់ខ្ញុំក្នុងកុំព្យូទ័រនេះ (សំរាប់រយៈពេលយូរបំផុត $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}})',
+'userlogin-remembermypassword' => 'រក្សាស្ថានភាពកត់ឈ្មោះចូលរបស់ខ្ញុំ',
+'userlogin-signwithsecure' => 'ប្រើការតភ្ជាប់មានសុវត្ថិភាព',
 'securelogin-stick-https' => 'នៅភ្ជាប់ទៅ HTTPS ដដែលបន្ទាប់ពីចុះឈ្មោះចូលហើយក៏ដោយ',
 'yourdomainname' => 'ដូម៉ែនរបស់អ្នក៖',
 'password-change-forbidden' => 'អ្នកមិនអាចផ្លាស់ប្ដូរពាក្យសម្ងាត់ក្នុងវិគីនេះទេ។',
@@ -689,18 +700,40 @@ $2',
 'logout' => 'កត់ឈ្មោះចេញ',
 'userlogout' => 'កត់ឈ្មោះចេញ',
 'notloggedin' => 'មិនទាន់កត់ឈ្មោះចូល',
+'userlogin-noaccount' => 'តើលោកអ្នក​មិនទាន់មាន​គណនី​សម្រាប់​ប្រើ​ទេ​ឬ?',
+'userlogin-joinproject' => 'សូមចូលជាសមាជិក {{SITENAME}}',
 'nologin' => "​បើលោកអ្នក​មិនទាន់មាន​គណនី​សម្រាប់​ប្រើ​ទេ​ សូម'''$1''' ។",
 'nologinlink' => 'បង្កើតគណនី',
 'createaccount' => 'បង្កើតគណនី',
 'gotaccount' => "បើលោកអ្នកមានគណនីសម្រាប់ប្រើហើយ  សូម'''$1'''។",
 'gotaccountlink' => 'កត់ឈ្មោះចូល',
 'userlogin-resetlink' => 'តើអ្នកភ្លេចព័ត៌មានលម្អិតសម្រាប់កត់ឈ្មោះចូលហើយ?',
+'userlogin-resetpassword-link' => 'ស្ដារពាក្យសម្ងាត់របស់អ្នក',
+'helplogin-url' => 'Help:ការកត់ឈ្មោះចូល',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ជំនួយក្នុងការកត់ឈ្មោះចូល]]',
+'createacct-join' => 'បំពេញព័ត៌មានរបស់អ្នកខាងក្រោម។',
+'createacct-emailrequired' => 'អាសយដ្ឋានអ៊ីមែល',
+'createacct-emailoptional' => 'អាសយដ្ឋានអ៊ីមែល (ដាក់ក៏បានមិនដាក់ក៏បាន)',
+'createacct-email-ph' => 'បញ្ចូលអាសយដ្ឋានអ៊ីមែលរបស់អ្នក',
 'createaccountmail' => 'ប្រើប្រាស់ពាក្យសំងាត់ព្រៀងបណ្ដោះអាសនុ្ន រួចផ្ញើវាទៅកាន់អាសយដ្ឋានអ៊ីមែលខាងក្រោម',
+'createacct-realname' => 'ឈ្មោះពិត (ដាក់ក៏បានមិនដាក់ក៏បាន)',
 'createaccountreason' => 'មូលហេតុ៖',
+'createacct-reason' => 'មូលហេតុ',
+'createacct-reason-ph' => 'មូលហេតុដែលអ្នកចង់បង្កើតគណនីមួយទៀត',
+'createacct-captcha' => 'ត្រួតពិនិត្យសុវត្ថិភាព',
+'createacct-captcha-help-url' => '{{ns:Project}}:ការស្នើសុំគណនីមួយ',
+'createacct-imgcaptcha-help' => 'តើអ្នកមើលមិនឃើញរូបឬ? [[{{MediaWiki:createacct-captcha-help-url}}|សូមស្នើសុំគណនីមួយ]]',
+'createacct-imgcaptcha-ph' => 'បញ្ចូលឃ្លាដែលអ្នកឃើញខាងលើ',
+'createacct-submit' => 'បង្កើតគណនីរបស់អ្នក',
+'createacct-benefit-heading' => '{{SITENAME}} ត្រូវបង្កើតឡើងដោយបុគ្គលដូចអ្នកជាដើម។',
+'createacct-benefit-body1' => '{{PLURAL:$1|កំណែ|កំណែ}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|ទំព័រ|ទំព័រ}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|អ្នករួមចំណែក|អ្នករួមចំណែក}}ថ្មីៗ',
 'badretype' => 'ពាក្យសម្ងាត់ដែលអ្នកបានវាយបញ្ចូលនោះ គឺមិនស៊ីគ្នាទេ។',
 'userexists' => 'អត្តនាមដែលអ្នកបានវាយបញ្ចូលមានគេប្រើហើយ។
 សូមជ្រើសរើសអត្តនាមផ្សេងពីនេះ។',
 'loginerror' => 'កំហុសនៃការកត់ឈ្មោះចូល',
+'createacct-error' => 'បញ្ហាក្នុងការបង្កើតគណនី',
 'createaccounterror' => 'មិនអាចបង្កើតគណនីបានទេ៖ $1',
 'nocookiesnew' => 'គណនីប្រើប្រាស់របស់អ្នកត្រូវបានបង្កើតហើយ ក៏ប៉ុន្តែអ្នកមិនទាន់បានកត់ឈ្មោះចូលទេ។
 
@@ -811,9 +844,10 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ',
-'passwordreset-text' => 'á\9e\94á\9f\86á\9e\96á\9f\81á\9e\89á\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9f\82á\9e\94á\9e\94á\9e\91á\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\91á\9e\91á\9e½á\9e\9bá\9e\94á\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\89á\9f\82á\9e\9bá\9e\80á\9f\92á\9e\9aá\9e¾á\9e\93á\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80á\9e\96á\9e¸á\9e\96á\9f\90á\9e\8fá\9f\8cá\9e\98á\9e¶á\9e\93á\9e\9bá\9f\86á\9e¢á\9e·á\9e\8fá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\82á\9e\8eá\9e\93á\9e¸របស់អ្នក។',
+'passwordreset-text' => 'á\9e\94á\9f\86á\9e\96á\9f\81á\9e\89á\9e\9fá\9f\86á\9e\8eá\9e»á\9f\86á\9e\94á\9f\82á\9e\94á\9e\94á\9e\91á\9e\93á\9f\81á\9f\87á\9e\8aá\9e¾á\9e\98á\9f\92á\9e\94á\9e¸á\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bរបស់អ្នក។',
 'passwordreset-legend' => 'កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ',
 'passwordreset-disabled' => 'មុខងារប្ដូរទៅពាក្យសម្ងាត់ដើមត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
+'passwordreset-emaildisabled' => 'មុខងារអ៊ីមែលត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
 'passwordreset-pretext' => '{{PLURAL:$1||វាយបញ្ចូលផ្នែកមួយនៃទិន្នន័យខាងក្រោម}}',
 'passwordreset-username' => 'អត្តនាម៖',
 'passwordreset-domain' => 'ដូម៉ែន៖',
@@ -821,30 +855,29 @@ $2',
 'passwordreset-capture-help' => 'ប្រសិនបើអ្នកគូសធីកប្រអប់នេះ អ៊ីមែល (ដែលមានពាក្យសម្ងាត់បណ្ដោះអាសន្ន) មិនត្រូវបានបង្ហាញដូចគ្នានឹងអ៊ីមែលដែលនឹងត្រូវផ្ញើទៅទៅកាន់អ្នកប្រើប្រាស់ដែរ។',
 'passwordreset-email' => 'អាសយដ្ឋានអ៊ីមែល៖',
 'passwordreset-emailtitle' => 'ព័ត៌មានលំអិតពីគណនីនៅលើ {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'មាននរណាម្នាក់ (ប្រហែលជាខ្លួនអ្នកផ្ទាល់, មកពីអាស័យដ្ឋាន IP $1) បានស្នើសុំសារក្រើនរំលឹកពីព័ត៌មានពិស្ដារ
-អំពីគណនីរបស់អ្នកសំរាប់ {{SITENAME}} ($4)។ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះ
-មានជាប់ទាក់ទិននឹងអាស័យដ្ឋានអ៊ីមែលនេះ៖
+'passwordreset-emailtext-ip' => 'មាននរណាម្នាក់ (ប្រហែលជាខ្លួនអ្នកផ្ទាល់, មកពីអាស័យដ្ឋាន IP $1) បានស្នើសុំស្ដារពាក្យសម្ងាត់របស់អ្នកសម្រាប់ {{SITENAME}} ($4)។ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះ
+មានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖
 
 $2
 
 {{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។
-យកល្អអ្នកគួរតែកត់ឈ្មោះរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ 
-ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នកហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
\9e\99á\9e\80á\9e\9bá\9f\92á\9e¢á\9e¢á\9f\92á\9e\93á\9e\80á\9e\82á\9e½á\9e\9aá\9e\8fá\9f\82á\9e\80á\9e\8fá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\85á\9e¼á\9e\9bá\9e\9aá\9e½á\9e\85á\9e\87á\9f\92á\9e\9aá\9e¾á\9e\9fá\9e\9aá\9e¾á\9e\9fá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\98á\9e¸á\9e\98á\9e½á\9e\99á\9f\94 á\9e\94á\9f\92á\9e\9aá\9e\9fá\9e·á\9e\93á\9e\94á\9e¾á\9e\98á\9e¶á\9e\93á\9e\93á\9e\9aá\9e\8eá\9e¶á\9e\98á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\95á\9f\92á\9e\9fá\9f\81á\9e\84á\9e\92á\9f\92á\9e\9cá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\93á\9f\81á\9f\87 
+ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
 បំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។',
-'passwordreset-emailtext-user' => 'á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1 á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84 {{SITENAME}} á\9e\94á\9e¶á\9e\93á\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\9fá\9e¶á\9e\9aá\9e\80á\9f\92á\9e\9aá\9e¾á\9e\93á\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80á\9e¢á\9f\86á\9e\96á\9e¸á\9e\96á\9f\90á\9e\8fá\9f\8cá\9e\98á\9e¶á\9e\93á\9e\96á\9e·á\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\9aá\9e\94á\9e\9fá\9f\8bá\9e\82á\9e\8eá\9e\93á\9e¸របស់អ្នកនៅក្នុង {{SITENAME}} ($4)។
- {{PLURAL:$3|á\9e\82á\9e\8eá\9e\93á\9e¸|á\9e\82á\9e\8eá\9e\93á\9e¸}}á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bá\9e\8aá\9e¼á\9e\85á\9e\8fá\9e\91á\9f\85á\9e\93á\9f\81á\9f\87á\9e\98á\9e¶á\9e\93á\9e\87á\9e¶á\9e\94á\9f\8bá\9e\91á\9e¶á\9e\80á\9f\8bá\9e\91á\9e·á\9e\93á\9e\93á\9e¹á\9e\84á\9e¢á\9e¶á\9e\9fá\9f\90á\9e\99á\9e\8aá\9f\92á\9e\8bá\9e¶á\9e\93á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\93á\9f\81á\9f\87á\9f\96
+'passwordreset-emailtext-user' => 'á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b $1 á\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84 {{SITENAME}} á\9e\94á\9e¶á\9e\93á\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bរបស់អ្នកនៅក្នុង {{SITENAME}} ($4)។
+ {{PLURAL:$3|គណនី|គណនី}}អ្នកប្រើប្រាស់ដូចតទៅនេះមានជាប់ទាក់ទិននឹងអាសយដ្ឋានអ៊ីមែលនេះ៖
 
 $2
 
 {{PLURAL:$3|ពាក្យសម្ងាត់បណ្ដោះអាសន្ននេះ|ពាក្យសម្ងាត់បណ្ដោះអាសន្នទាំងនេះ}} និងហួសសុពលភាពក្នុងរយៈពេល {{PLURAL:$5|មួយថ្ងៃ|$5 ថ្ងៃ}}។
-យកល្អអ្នកគួរតែកត់ឈ្មោះរួចជ្រើសរើសពាក្យសម្ងាត់ថ្មីមួយ។ ប្រសិនបើមាននរណាម្នាក់ផ្សេងធ្វើការស្នើសុំនេះ 
-ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នកហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
\9e\99á\9e\80á\9e\9bá\9f\92á\9e¢á\9e¢á\9f\92á\9e\93á\9e\80á\9e\82á\9e½á\9e\9aá\9e\8fá\9f\82á\9e\80á\9e\8fá\9f\8bá\9e\88á\9f\92á\9e\98á\9f\84á\9f\87á\9e\85á\9e¼á\9e\9bá\9e\9aá\9e½á\9e\85á\9e\87á\9f\92á\9e\9aá\9e¾á\9e\9fá\9e\9aá\9e¾á\9e\9fá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\90á\9f\92á\9e\98á\9e¸á\9e\98á\9e½á\9e\99á\9f\94 á\9e\94á\9f\92á\9e\9aá\9e\9fá\9e·á\9e\93á\9e\94á\9e¾á\9e\98á\9e¶á\9e\93á\9e\93á\9e\9aá\9e\8eá\9e¶á\9e\98á\9f\92á\9e\93á\9e¶á\9e\80á\9f\8bá\9e\95á\9f\92á\9e\9fá\9f\81á\9e\84á\9e\92á\9f\92á\9e\9cá\9e¾á\9e\80á\9e¶á\9e\9aá\9e\9fá\9f\92á\9e\93á\9e¾á\9e\9fá\9e»á\9f\86á\9e\93á\9f\81á\9f\87 
+ឬប្រសិនបើអ្នកនឹកឃើញពាក្យសម្ងាត់ដើមរបស់អ្នក ហើយអ្នកមិនប្រាថ្នាផ្លាស់ប្ដូរវាទៀតទេនោះ អ្នកគ្រាន់តែ
 បំភ្លេចអំពីសារមួយនេះ ហើយបន្តប្រើប្រាស់ពាក្យសម្ងាត់ចាស់របស់អ្នកទៅបានហើយ។',
 'passwordreset-emailelement' => 'អត្តនាម៖ $1
 ពាក្យសម្ងាត់បណ្ដោះអាសន្ន៖ $2',
-'passwordreset-emailsent' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80មួយត្រូវបានផ្ញើទៅហើយ។',
-'passwordreset-emailsent-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80មួយដូចបង្ហាញខាងក្រោមត្រូវបានផ្ញើទៅហើយ។',
-'passwordreset-emailerror-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9aá\9f\86á\9e\9bá\9e¹á\9e\80á\9e\98á\9e½á\9e\99á\9e\8aá\9e¼á\9e\85á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e á\9e¾á\9e\99 á\9e\94á\9f\89á\9e»á\9e\93á\9f\92á\9e\8fá\9f\82á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\89á\9e¾á\9e\91á\9f\85á\9e\80á\9e¶á\9e\93á\9f\8bá\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8bមិនបានសំរេចទេ៖ $1',
+'passwordreset-emailsent' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bមួយត្រូវបានផ្ញើទៅហើយ។',
+'passwordreset-emailsent-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bមួយដូចបង្ហាញខាងក្រោមត្រូវបានផ្ញើទៅហើយ។',
+'passwordreset-emailerror-capture' => 'á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bá\9e\9fá\9f\92á\9e\8aá\9e¶á\9e\9aá\9e\96á\9e¶á\9e\80á\9f\92á\9e\99á\9e\9fá\9e\98á\9f\92á\9e\84á\9e¶á\9e\8fá\9f\8bá\9e\98á\9e½á\9e\99á\9e\8aá\9e¼á\9e\85á\9e\94á\9e\84á\9f\92á\9e á\9e¶á\9e\89á\9e\81á\9e¶á\9e\84á\9e\80á\9f\92á\9e\9aá\9f\84á\9e\98á\9e\8fá\9f\92á\9e\9aá\9e¼á\9e\9cá\9e\94á\9e¶á\9e\93á\9e\94á\9e\84á\9f\92á\9e\80á\9e¾á\9e\8fá\9e á\9e¾á\9e\99 á\9e\94á\9f\89á\9e»á\9e\93á\9f\92á\9e\8fá\9f\82á\9e\80á\9e¶á\9e\9aá\9e\95á\9f\92á\9e\89á\9e¾á\9e\91á\9f\85á\9e\80á\9e¶á\9e\93á\9f\8b {{GENDER:$2|á\9e¢á\9f\92á\9e\93á\9e\80á\9e\94á\9f\92á\9e\9aá\9e¾á\9e\94á\9f\92á\9e\9aá\9e¶á\9e\9fá\9f\8b}}មិនបានសំរេចទេ៖ $1',
 
 # Special:ChangeEmail
 'changeemail' => 'ផ្លាស់ប្ដូរអាសយដ្ឋានអ៊ីមែល',
@@ -1028,9 +1061,10 @@ $2
 '''មិនត្រូវ​ដាក់ស្នើ​ការងារមានជាប់កម្មសិទ្ឋិបញ្ញាដោយគ្មានការអនុញ្ញាតទេ!'''",
 'longpageerror' => "'''បញ្ហា៖ អត្ថបទ​ដែល​អ្នក​បានដាក់​ស្នើ​មានទំហំ $1 គីឡូបៃ ដែលធំជាង​ទំហំអតិបរមា $2 គីឡូបៃ។'''
 អត្ថបទនេះ​មិនអាច​រក្សាទុកបានទេ។",
-'readonlywarning' => "'''ប្រយ័ត្ន:មូលដ្ឋានទិន្នន័យត្រូវបានចាក់សោសម្រាប់ការរក្សាទុក ដូច្នេះអ្នកនឹងមិនអាចរក្សាទុករាល់កំណែប្រែរបស់អ្នកបានទេឥឡូវនេះ។ សូមអ្នកចម្លងអត្ថបទ រួចដាក់ទៅក្នុងឯកសារដែលជាអត្ថបទ ហើយបន្ទាប់មករក្សាវាទុកនៅពេលក្រោយ។'''
+'readonlywarning' => "'''ប្រយ័ត្ន:មូលដ្ឋានទិន្នន័យត្រូវបានចាក់សោសម្រាប់ការរក្សាទុក ដូច្នេះអ្នកនឹងមិនអាចរក្សាទុករាល់កំណែប្រែរបស់អ្នកបានទេឥឡូវនេះ។'''
+សូមអ្នកចម្លងអត្ថបទ រួចដាក់ទៅក្នុងឯកសារដែលជាអត្ថបទ ហើយបន្ទាប់មករក្សាវាទុកនៅពេលក្រោយ។
 
\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e\97á\9e·á\9e\94á\9e¶á\9e\9bá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\9cá\9e¶ á\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\93á\9e½វការពន្យល់ដូចតទៅ៖ $1",
\9e¢á\9f\92á\9e\93á\9e\80á\9e¢á\9e\97á\9e·á\9e\94á\9e¶á\9e\9bá\9e\8aá\9f\82á\9e\9bá\9e\94á\9e¶á\9e\93á\9e\85á\9e¶á\9e\80á\9f\8bá\9e\9fá\9f\84á\9e\9cá\9e¶ á\9e\94á\9e¶á\9e\93á\9e\95á\9f\92á\9e\8aá\9e\9bá\9f\8bá\9e\93á\9e¼វការពន្យល់ដូចតទៅ៖ $1",
 'protectedpagewarning' => "'''ប្រយ័ត្ន៖ ទំព័រនេះ​ត្រូវបានចាក់សោ។ ដូច្នេះ​មានតែ​អ្នកប្រើប្រាស់​ដែល​មាន​អភ័យឯកសិទ្ឋិ​ជាអ្នកអភិបាលទេទើបអាច​កែប្រែ​វាបាន។'''
 
 ខាងក្រោមនេះជាកំណត់ហេតុចូលចុងក្រោយ៖",
@@ -1078,6 +1112,8 @@ $2
 # Content models
 'content-model-wikitext' => 'អត្ថបទវិគី',
 'content-model-text' => 'អត្ថបទសុទ្ធ',
+'content-model-javascript' => 'JavaScript',
+'content-model-css' => 'CSS',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''ប្រយ័ត្ន៖''' ទំព័រនេះមានប្រើអនុគមន៍ញែកច្រើនពេកហើយ។
@@ -2173,6 +2209,15 @@ $1',
 'listusers-noresult' => 'រកមិនឃើញអ្នកប្រើប្រាស់នេះទេ។',
 'listusers-blocked' => '(ស្ថិតក្រោមការហាមឃាត់)',
 
+# Special:ActiveUsers
+'activeusers' => 'បញ្ជីរាយនាមអ្នកប្រើប្រាស់សកម្ម',
+'activeusers-intro' => 'នេះជាបញ្ជីរាយនាមអ្នកប្រើប្រាស់ដែលមានសកម្មភាពក្នុងរូបភាពណាមួយក្នុងរយៈពេល $1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}}ចុងក្រោយ។',
+'activeusers-count' => '{{PLURAL:$1|សកម្មភាព|សកម្មភាព}}ចំនួន$1 ក្នុងរយៈពេល{{PLURAL:$3|១ថ្ងៃ|$3 ថ្ងៃ}}ចុងក្រោយ',
+'activeusers-from' => 'បង្ហាញអត្តនាមផ្ដើមដោយ៖',
+'activeusers-hidebots' => 'លាក់រូបយន្ត',
+'activeusers-hidesysops' => 'លាក់អភិបាល',
+'activeusers-noresult' => 'អ្នកប្រើប្រាស់​រកមិនឃើញ​។​',
+
 # Special:ListGroupRights
 'listgrouprights' => 'សិទ្ធិនិងក្រុមអ្នកប្រើប្រាស់',
 'listgrouprights-summary' => 'ខាងក្រោមនេះជាបញ្ជីរាយឈ្មោះក្រុមអ្នកប្រើប្រាស់ដែលបានកំណត់ជាមួយនឹងសិទ្ធិរបស់គេនៅលើវិគីនេះ។ មាន[[{{MediaWiki:Listgrouprights-helppage}}|ព័ត៌មានបន្ថែម]] អំពីសិទ្ធិផ្ទាល់ខ្លួន។',
@@ -2237,7 +2282,7 @@ $1',
 'watchnologin' => 'មិនទាន់កត់ឈ្មោះចូលទេ',
 'watchnologintext' => 'អ្នកចាំបាច់ត្រូវតែ[[Special:UserLogin|កត់ឈ្មោះចូល]]ដើម្បីកែប្រែបញ្ជីតាមដានរបស់អ្នក។',
 'addwatch' => 'បន្ថែមទៅបញ្ជីតាមដាន',
-'addedwatchtext' => "ទំព័រ \"[[:\$1]]\" ត្រូវបានដាក់បញ្ចូលទៅក្នុង​[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។ រាល់ការផ្លាស់ប្ដូរនៃទំព័រនេះ រួមទាំងទំព័រពិភាក្សារបស់វាផងដែរ នឹងត្រូវបានដាក់បញ្ចូលក្នុងបញ្ជីនៅទីនោះ។  ទំព័រនេះនឹងបង្ហាញជា'''អក្សរដិត''' នៅក្នុង [[Special:RecentChanges|បញ្ជីបំលាស់ប្ដូរថ្មីៗ]] ងាយស្រួលក្នុងការស្វែងរក។ ប្រសិនបើលោកអ្នកចង់យកវាចេញពី [[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នក សូមចុច '''ឈប់តាមដាន''' នៅលើរបារចំហៀងផ្នែកខាងលើ។",
+'addedwatchtext' => 'ទំព័រ "[[:$1]]" ត្រូវបានដាក់បញ្ចូលទៅក្នុង​[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។ រាល់ការផ្លាស់ប្ដូរនៃទំព័រនេះ រួមទាំងទំព័រពិភាក្សារបស់វាផងដែរ នឹងត្រូវបានដាក់បញ្ចូលក្នុងបញ្ជីនៅទីនោះ។',
 'removewatch' => 'ដកចេញពីបញ្ជីតាមដាន',
 'removedwatchtext' => 'ទំព័រ "[[:$1]]" ត្រូវបានដកចេញពី[[Special:Watchlist|បញ្ជីតាមដាន]]របស់លោកអ្នកហើយ ។',
 'watch' => 'តាមដាន',
@@ -2460,9 +2505,7 @@ $UNWATCHURL
 'undeletedrevisions' => 'បានស្តារឡើងវិញនូវ{{PLURAL:$1|១កំណែ|$1កំណែ}}',
 'undeletedrevisions-files' => 'បានស្តារឡើងវិញនូវ{{PLURAL:$1|១កំណែ|$1កំណែ}}និង{{PLURAL:$2|១ឯកសារ|$2ឯកសារ}}',
 'undeletedfiles' => '{{PLURAL:$1|១ ឯកសារ|$1 ឯកសារ}} ត្រូវបានស្ដារឡើងវិញ',
-'cannotundelete' => 'ឈប់លុបមិនសម្រេច។
-
-ប្រហែលជាមាននរណាម្នាក់ផ្សេងទៀតបានឈប់លុបទំព័រនេះមុនអ្នក។',
+'cannotundelete' => 'ឈប់លុបមិនសម្រេច៖​$1',
 'undeletedpage' => "'''$1 ត្រូវបានស្តារឡើងវិញហើយ'''
 
 សូម​ចូល​ទៅ [[Special:Log/delete|កំណត់ហេតុ​នៃ​ការលុប]] ដើម្បី​ពិនិត្យ​មើល​កំណត់ត្រា​នៃ​ការលុប​និង​ការ​ស្ដារ​ឡើង​វិញ​។",
@@ -3044,9 +3087,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 នាទី|$1 នាទី}}',
 'hours' => '{{PLURAL:$1|$1 ម៉ោង|$1 ម៉ោង}}',
 'days' => '{{PLURAL:$1|$1 ថ្ងៃ|$1 ថ្ងៃ}}',
+'weeks' => '{{PLURAL: $1|$1 សប្តាហ៍|$1 សប្តាហ៍}}',
+'months' => '{{PLURAL:$1|$1 ខែ|$1 ខែ}}',
+'years' => '{{PLURAL:$1|$1 ឆ្នាំ|$1 ឆ្នាំ}}',
 'ago' => '$1 មុន',
 'just-now' => 'អំបាញ់មិញនេះ',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|ម៉ោង|ម៉ោង}}មុន',
+'minutes-ago' => '$1 {{PLURAL:$1|នាទី|នាទី}}មុន',
+'seconds-ago' => '$1 {{PLURAL:$1|វិនាទី|វិនាទី}}មុន',
+'monday-at' => 'ថ្ងៃច័ន្ទនៅ $1',
+'tuesday-at' => 'ថ្ងៃអង្គារនៅ $1',
+'wednesday-at' => 'ថ្ងៃពុធនៅ $1',
+'thursday-at' => 'ថ្ងៃព្រហស្បតិ៍នៅ $1',
+'friday-at' => 'ថ្ងៃសុក្រនៅ $1',
+'saturday-at' => 'ថ្ងៃសៅរ៍នៅ $1',
+'sunday-at' => 'ថ្ងៃអាទិត្យនៅ $1',
+'yesterday-at' => 'ម្សិលមិញនៅ $1',
+
 # Bad image list
 'bad_image_list' => 'ទម្រង់ ដូចតទៅ ៖
 
@@ -3073,7 +3132,7 @@ $1',
 * gpslongitude
 * gpsaltitude',
 
-# EXIF tags
+# Exif tags
 'exif-imagewidth' => 'ទទឹង',
 'exif-imagelength' => 'កម្ពស់',
 'exif-bitspersample' => '',
@@ -3182,7 +3241,7 @@ $1',
 'exif-originalimageheight' => 'កំពស់របស់រូបភាពមុនពេលកាត់តំរឹម',
 'exif-originalimagewidth' => 'ទទឹងរបស់រូបភាពមុនពេលកាត់តំរឹម',
 
-# EXIF attributes
+# Exif attributes
 'exif-compression-1' => 'លែងបានបង្ហាប់',
 
 'exif-copyrighted-true' => 'រក្សាសិទ្ឋ',
@@ -3530,15 +3589,6 @@ $5
 'version-software-version' => 'កំណែ',
 'version-entrypoints-header-url' => 'URL',
 
-# Special:FilePath
-'filepath' => 'ផ្លូវនៃឯកសារ',
-'filepath-page' => 'ឯកសារ៖',
-'filepath-submit' => 'ទៅ',
-'filepath-summary' => 'ទំព័រពិសេសនេះ បង្ហាញផ្លូវពេញលេញ នៃ មួយឯកសារ។
-រូបភាពត្រូវបានបង្ហាញ ជាភាពម៉ត់ខ្ពស់, ប្រភេទឯកសារ ដទៃទៀត ធ្វើការដោយផ្ទាល់ ជាមួយ សហកម្មវិធី ។
-
-បញ្ចូល ឈ្មោះឯកសារ ដោយគ្មានការភ្ជាប់ "{{ns:file}}:" នៅពីមុខវា ។',
-
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'ស្វែងរកឯកសារដូចគ្នាបេះបិទ',
 'fileduplicatesearch-legend' => 'ស្វែងរកឯកសារដូចគ្នាបេះបិទ',
@@ -3615,6 +3665,8 @@ $5
 'htmlform-submit' => 'ដាក់ស្នើ',
 'htmlform-reset' => 'ធ្វើដូចដើមវិញ',
 'htmlform-selectorother-other' => 'ផ្សេងទៀត',
+'htmlform-no' => 'ទេ',
+'htmlform-yes' => 'បាទ​ឬចាស',
 
 # New logging system
 'logentry-delete-delete' => '$1 បានលុបទំព័រ $3 ចោល',
index b0ef3f9..ac25a09 100644 (file)
@@ -80,7 +80,7 @@ $specialPageAliases = array(
        'ChangePassword'            => array( '비밀번호바꾸기', '비밀번호변경', '비밀단어바꾸기', '비밀단어변경' ),
        'ComparePages'              => array( '문서비교' ),
        'Confirmemail'              => array( '이메일인증' ),
-       'Contributions'             => array( '기여', '기여목록', '사용자기여' ),
+       'Contributions'             => array( '기여', '기여목록' ),
        'CreateAccount'             => array( '계정만들기', '가입' ),
        'Deadendpages'              => array( '막다른문서' ),
        'DeletedContributions'      => array( '삭제된기여' ),
@@ -94,14 +94,14 @@ $specialPageAliases = array(
        'Filepath'                  => array( '파일경로', '그림경로' ),
        'Import'                    => array( '가져오기' ),
        'Invalidateemail'           => array( '이메일인증취소', '이메일인증해제' ),
-       'JavaScriptTest'            => array( '자바스크립트시험' ),
-       'BlockList'                 => array( '차단된사용자', '차단목록' ),
+       'JavaScriptTest'            => array( '자바스크립트시험', '자바스크립트테스트' ),
+       'BlockList'                 => array( '차단된사용자', '차단목록', 'IP차단목록' ),
        'LinkSearch'                => array( '링크찾기', '링크검색' ),
        'Listadmins'                => array( '관리자', '관리자목록' ),
        'Listbots'                  => array( '봇', '봇목록' ),
        'Listfiles'                 => array( '파일', '그림', '파일목록', '그림목록' ),
        'Listgrouprights'           => array( '사용자권한', '권한목록' ),
-       'Listredirects'             => array( '넘겨주기', '넘겨주기목록' ),
+       'Listredirects'             => array( '넘겨주기목록' ),
        'Listusers'                 => array( '사용자', '사용자목록' ),
        'Lockdb'                    => array( 'DB잠금', 'DB잠그기' ),
        'Log'                       => array( '기록', '로그' ),
@@ -116,13 +116,14 @@ $specialPageAliases = array(
        'Mostlinkedcategories'      => array( '많이쓰는분류' ),
        'Mostlinkedtemplates'       => array( '많이쓰는틀' ),
        'Mostrevisions'             => array( '역사긴문서' ),
-       'Movepage'                  => array( '이동', '문서이동' ),
+       'Movepage'                  => array( 'ì\98®ê¸°ê¸°', '문ì\84\9cì\98®ê¸°ê¸°', 'ì\9d´ë\8f\99', '문ì\84\9cì\9d´ë\8f\99' ),
        'Mycontributions'           => array( '내기여', '내기여목록' ),
        'Mypage'                    => array( '내사용자문서' ),
        'Mytalk'                    => array( '내사용자토론' ),
        'Myuploads'                 => array( '내가올린파일' ),
        'Newimages'                 => array( '새파일', '새그림' ),
        'Newpages'                  => array( '새문서' ),
+       'PagesWithProp'             => array( '속성별문서' ),
        'PasswordReset'             => array( '비밀번호재설정', '비밀단어재설정', '비밀번호초기화', '비밀단어초기화' ),
        'PermanentLink'             => array( '고유링크', '영구링크' ),
        'Popularpages'              => array( '인기있는문서' ),
@@ -134,6 +135,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( '임의넘겨주기' ),
        'Recentchanges'             => array( '최근바뀜' ),
        'Recentchangeslinked'       => array( '링크최근바뀜' ),
+       'Redirect'                  => array( '넘겨주기' ),
        'Revisiondelete'            => array( '특정판삭제' ),
        'Search'                    => array( '찾기', '검색' ),
        'Shortpages'                => array( '짧은문서' ),
@@ -169,7 +171,7 @@ $specialPageAliases = array(
 $magicWords = array(
        'redirect'                  => array( '0', '#넘겨주기', '#REDIRECT' ),
        'notoc'                     => array( '0', '__목차숨김__', '__NOTOC__' ),
-       'nogallery'                 => array( '0', '__화랑숨김__', '__갤러리숨김__', '__NOGALLERY__' ),
+       'nogallery'                 => array( '0', '__갤러리숨김__', '__화랑숨김__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__목차보임__', '__목차표시__', '__FORCETOC__' ),
        'toc'                       => array( '0', '__목차__', '__TOC__' ),
        'noeditsection'             => array( '0', '__부분편집숨김__', '__문단편집숨김__', '__단락편집숨김__', '__NOEDITSECTION__' ),
@@ -182,7 +184,7 @@ $magicWords = array(
        'currentday2'               => array( '1', '현재일2', 'CURRENTDAY2' ),
        'currentdayname'            => array( '1', '현재요일', 'CURRENTDAYNAME' ),
        'currentyear'               => array( '1', '현재년', 'CURRENTYEAR' ),
-       'currenttime'               => array( '1', '현재시분', '현재시각', 'CURRENTTIME' ),
+       'currenttime'               => array( '1', '현재시각', '현재시분', 'CURRENTTIME' ),
        'currenthour'               => array( '1', '현재시', 'CURRENTHOUR' ),
        'localmonth'                => array( '1', '지역월', 'LOCALMONTH', 'LOCALMONTH2' ),
        'localmonth1'               => array( '1', '지역월1', 'LOCALMONTH1' ),
@@ -215,6 +217,8 @@ $magicWords = array(
        'fullpagenamee'             => array( '1', '전체문서이름E', 'FULLPAGENAMEE' ),
        'subpagename'               => array( '1', '하위문서이름', 'SUBPAGENAME' ),
        'subpagenamee'              => array( '1', '하위문서이름E', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', '최상위문서이름', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', '최상위문서이름E', 'ROOTPAGENAMEE' ),
        'basepagename'              => array( '1', '상위문서이름', 'BASEPAGENAME' ),
        'basepagenamee'             => array( '1', '상위문서이름E', 'BASEPAGENAMEE' ),
        'talkpagename'              => array( '1', '토론문서이름', 'TALKPAGENAME' ),
@@ -287,6 +291,8 @@ $magicWords = array(
        'uc'                        => array( '0', '대문자:', 'UC:' ),
        'raw'                       => array( '0', '원본:', 'RAW:' ),
        'displaytitle'              => array( '1', '제목보이기', '제목표시', 'DISPLAYTITLE' ),
+       'rawsuffix'                 => array( '1', '원', 'R' ),
+       'nocommafysuffix'           => array( '0', '구분자없음', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__새글쓰기__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', '__새글쓰기숨기기__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', '현재버전', 'CURRENTVERSION' ),
@@ -4029,6 +4035,7 @@ $5
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath 문서 경로]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath 스크립트 경로]',
 
+# Special:Redirect
 'redirect' => '파일, 사용자나 판 ID별 넘겨주기',
 'redirect-legend' => '파일이나 문서로 넘겨주기',
 'redirect-summary' => '이 특수 문서는 파일(파일 이름을 지정), 문서(판 ID를 지정)나 사용자 문서(사용자 ID를 정수로 지정)로 넘겨줍니다.',
index 04aea47..6a1e204 100644 (file)
@@ -44,21 +44,65 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Системаны_билдириулери' ),
        'Allpages'                  => array( 'Бютеу_бетле' ),
        'Blankpage'                 => array( 'Бош_бет' ),
-       'Block'                     => array( 'Блокла' ),
-       'Blockme'                   => array( 'Мени_блокла' ),
+       'Block'                     => array( 'Блок_эт' ),
+       'Blockme'                   => array( 'Мени_блок_эт' ),
        'Booksources'               => array( 'Китабланы_къайнакълары' ),
        'BrokenRedirects'           => array( 'Джыртылгъан_редиректле' ),
        'Categories'                => array( 'Категорияла' ),
-       'ChangeEmail'               => array( 'E-mail_ауушдур' ),
-       'ChangePassword'            => array( 'Пароль_ауушдур' ),
+       'ChangeEmail'               => array( 'E-mail’ни_ауушдур' ),
+       'ChangePassword'            => array( 'Паролну_ауушдур' ),
        'ComparePages'              => array( 'Бетлени_тенглешдириу' ),
-       'Confirmemail'              => array( 'E-mail_тюзлюгюн_бегит' ),
+       'Confirmemail'              => array( 'E-mail’ни_тюзлюгюн_бегит' ),
        'Contributions'             => array( 'Къошум' ),
-       'CreateAccount'             => array( 'ТеÑ\80геÑ\83_джазÑ\8bÑ\83нÑ\83_кÑ\8aÑ\83Ñ\80а', 'Ð\9aÑ\8aоÑ\88Ñ\83лÑ\83Ñ\83Ñ\87Ñ\83нÑ\83_кÑ\8aÑ\83Ñ\80а', 'Ð\97аÑ\80егиÑ\81Ñ\82Ñ\80иÑ\80оваÑ\82Ñ\8cÑ\81Ñ\8f' ),
+       'CreateAccount'             => array( 'ТеÑ\80геÑ\83_джазÑ\8bÑ\83нÑ\83_кÑ\8aÑ\83Ñ\80а', 'Ð\9aÑ\8aоÑ\88Ñ\83лÑ\83Ñ\83Ñ\87Ñ\83нÑ\83_кÑ\8aÑ\83Ñ\80а', 'РегиÑ\81Ñ\82Ñ\80аÑ\86иÑ\8f\8dÑ\82' ),
        'Deadendpages'              => array( 'Чыкъмазча_бетле' ),
        'DeletedContributions'      => array( 'Кетерилген_къошум' ),
        'Disambiguations'           => array( 'Кёб_магъаналы' ),
        'DoubleRedirects'           => array( 'Экили_редирект' ),
+       'EditWatchlist'             => array( 'Кёздеги_тизмени_тюрлендир' ),
+       'Emailuser'                 => array( 'Къошулуучугъа_джазма', 'Джазма_ий' ),
+       'Export'                    => array( 'Экспорт', 'Къотарыу' ),
+       'FileDuplicateSearch'       => array( 'Файлланы_дубликатларын_излеу' ),
+       'Filepath'                  => array( 'Файлгъа_джол' ),
+       'Import'                    => array( 'Импорт' ),
+       'BlockList'                 => array( 'Блок_этиулени_тизмеси', 'Блок_этиуле' ),
+       'LinkSearch'                => array( 'Джибериуле_излеу' ),
+       'Listadmins'                => array( 'Администраторланы_тизмеси' ),
+       'Listbots'                  => array( 'Ботланы_тизмеси' ),
+       'Listfiles'                 => array( 'Файлланы_тизмеси', 'Суратланы_тизмеси' ),
+       'Listgrouprights'           => array( 'Къошулуучу_къауумланы_хакълары', 'Къауумланы_хакъларыны_тизмеси' ),
+       'Listredirects'             => array( 'Редиректлени_тизмеси' ),
+       'Listusers'                 => array( 'Къошулуучуланы_тизмеси' ),
+       'Lockdb'                    => array( 'Билгиле_базаны_блок_эт' ),
+       'Log'                       => array( 'Журналла', 'Журнал' ),
+       'Lonelypages'               => array( 'Изоляция_этилген_бетле' ),
+       'Longpages'                 => array( 'Узун_бетле' ),
+       'MergeHistory'              => array( 'Тарихлени_бирикдириу' ),
+       'MIMEsearch'                => array( 'MIME’ге_кёре_излеу' ),
+       'Mostimages'                => array( 'Эм_кёб_хайырланнган_файлла' ),
+       'Movepage'                  => array( 'Бетни_атын_тюрлендириу', 'Атны_тюрлендириу', 'Атны_тюрлендир' ),
+       'Mycontributions'           => array( 'Мени_къошумум' ),
+       'Mypage'                    => array( 'Мени_бетим' ),
+       'Mytalk'                    => array( 'Мени_сюзюуюм' ),
+       'Myuploads'                 => array( 'Мени_джюклегенлерим' ),
+       'Newimages'                 => array( 'Джангы_файлла' ),
+       'Newpages'                  => array( 'Джангы_бетле' ),
+       'PasswordReset'             => array( 'Паролну_ийиу' ),
+       'PermanentLink'             => array( 'Дайым_джибериу' ),
+       'Popularpages'              => array( 'Популяр_бетле' ),
+       'Preferences'               => array( 'Джарашдырыула' ),
+       'Protectedpages'            => array( 'Джакъланнган_бетле' ),
+       'Protectedtitles'           => array( 'Джакъланнган_атла' ),
+       'Randompage'                => array( 'Эсде_болмагъан_бет', 'Эсде_болмагъан' ),
+       'Recentchanges'             => array( 'Ахыр_тюрлениуле' ),
+       'Recentchangeslinked'       => array( 'Байламлы_тюрлениуле' ),
+       'Revisiondelete'            => array( 'Кетерилген_тюрлениуле' ),
+       'Search'                    => array( 'Излеу' ),
+       'Shortpages'                => array( 'Къысха_бетле' ),
+       'Specialpages'              => array( 'Энчи_бетле' ),
+       'Statistics'                => array( 'Статистика' ),
+       'Tags'                      => array( 'Белгиле' ),
+       'Unblock'                   => array( 'Блокну_алыу' ),
 );
 
 $magicWords = array(
index 83f8b68..92711f7 100644 (file)
@@ -3717,6 +3717,8 @@ Dir misst eng [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie vun der GNU General Public
 'version-entrypoints-header-entrypoint' => 'Agangspunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Viruleedung duerch e Fichier, Benotzer oder Versiouns-ID',
 'redirect-legend' => 'Viruleedung op ee Fichier oder eng Säit',
 'redirect-submit' => 'Lass',
 'redirect-lookup' => 'Nosichen:',
index 2f373d6..a98597c 100644 (file)
@@ -65,6 +65,12 @@ $namespaceAliases = array(
 $namespaceGenderAliases = array();
 
 $specialPageAliases = array(
+       'Blankpage'                 => array( 'Пуста_лаштык' ),
+       'BrokenRedirects'           => array( 'Кӱрылтшӧ__вес_вере_колтымаш-влак' ),
+       'Categories'                => array( 'Категорий-влак' ),
+       'ComparePages'              => array( 'Лаштык-влакым_тергымаш' ),
+       'Emailuser'                 => array( 'Пайдаланышылан_серышым_колташ' ),
+       'Longpages'                 => array( 'Кужу_лаштык-влак' ),
        'Preferences'               => array( 'Келыштарымаш' ),
        'Recentchanges'             => array( 'Пытартыш_тӧрлатымаш-влак' ),
        'Search'                    => array( 'Кычалмаш' ),
@@ -81,6 +87,7 @@ $magicWords = array(
        'img_top'                   => array( '1', 'кӱшычын', 'сверху', 'top' ),
        'img_middle'                => array( '1', 'покшелне', 'посередине', 'middle' ),
        'img_bottom'                => array( '1', 'ӱлычын', 'снизу', 'bottom' ),
+       'sitename'                  => array( '1', 'САЙТЛӰМ', 'НАЗВАНИЕ_САЙТА', 'SITENAME' ),
 );
 
 $messages = array(
@@ -351,7 +358,7 @@ $messages = array(
 'yourname' => 'Пайдаланышын лӱмжӧ:',
 'yourpassword' => 'Шолыпмут:',
 'yourpasswordagain' => 'Шолыпмутым угыч пуртымаш:',
-'remembermypassword' => 'Тиде Ð±Ñ\80аÑ\83зеÑ\80Ñ\8bÑ\88Ñ\82е Ð¼Ñ\8bйÑ\8bн Ñ\88олÑ\8bпмÑ\83Ñ\82ым шарнаш (эн шуко $1 {{PLURAL:$1|кечылан|кечылан}})',
+'remembermypassword' => 'Тиде ÐºÐ¾Ð¼Ð¿Ñ\8cÑ\8eÑ\82еÑ\80Ñ\8bÑ\88Ñ\82е Ð¼Ñ\8bйым шарнаш (эн шуко $1 {{PLURAL:$1|кечылан|кечылан}})',
 'yourdomainname' => 'Тендан домен:',
 'login' => 'Шке денет палымым ыште',
 'nav-login-createaccount' => 'Пураш/Регистрацийым эрте',
@@ -889,6 +896,7 @@ $messages = array(
 
 'sp-contributions-newbies' => 'У пайдалнышын гына пашам ончыкташ',
 'sp-contributions-blocklog' => 'блокирований журнал',
+'sp-contributions-uploads' => 'пуртымаш-влак',
 'sp-contributions-logs' => 'Журнал-влак',
 'sp-contributions-talk' => 'каҥашымаш',
 'sp-contributions-search' => 'Пашам кычалаш',
index b5f5750..8a825f7 100644 (file)
@@ -23,6 +23,62 @@ $namespaceNames = array(
        NS_TEMPLATE         => 'Templat',
 );
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'PanggunoAktip', 'Pangguno_aktip' ),
+       'Allmessages'               => array( 'PasanSistim', 'Pasan_sistem' ),
+       'Allpages'                  => array( 'DaptaLaman', 'Dapta_laman' ),
+       'Ancientpages'              => array( 'LamanLamo', 'Laman_lamo' ),
+       'Badtitle'                  => array( 'JudulBuruak', 'Judul_indak_rancak' ),
+       'Blankpage'                 => array( 'LamanKosong', 'Laman_kosong' ),
+       'Block'                     => array( 'Blokir', 'IPkanaiBlok', 'PanggunoTablokir' ),
+       'Blockme'                   => array( 'BlokDen', 'BlokirAmbo' ),
+       'Booksources'               => array( 'SumberBuku', 'Sumber_buku' ),
+       'BrokenRedirects'           => array( 'PangaliahanRusak', 'Pangaliahan_rusak' ),
+       'Categories'                => array( 'Kategori' ),
+       'ChangeEmail'               => array( 'GantiSurel', 'Ganti_surel' ),
+       'ChangePassword'            => array( 'GantiSandi', 'TukaSandi', 'TukaKatoSandi' ),
+       'ComparePages'              => array( 'BandiangkanLaman', 'Bandiangkan_laman' ),
+       'Confirmemail'              => array( 'PastikanSurel', 'Pastikan_surel' ),
+       'Contributions'             => array( 'SuntiangPangguno', 'Suntiangan_pangguno' ),
+       'CreateAccount'             => array( 'BuekAkun', 'Buek_akun' ),
+       'Deadendpages'              => array( 'LamanBuntu', 'Laman_buntu' ),
+       'DeletedContributions'      => array( 'SuntiangDihapuih', 'Suntiangan_kanai_hapuih' ),
+       'Disambiguations'           => array( 'SamoArti', 'Samo_arti' ),
+       'EditWatchlist'             => array( 'SuntiangDaptaPantau', 'Suntiang_dapta_pantau' ),
+       'Emailuser'                 => array( 'SurelPangguno', 'Surel_pangguno' ),
+       'Export'                    => array( 'Ekspor' ),
+       'Fewestrevisions'           => array( 'ParubahanTasaketek', 'Parubahan_tasaketek' ),
+       'FileDuplicateSearch'       => array( 'CariBerkasDuplikat', 'Cari_berkas_duplikat' ),
+       'Filepath'                  => array( 'LokasiBerkas', 'Lokasi_berkas' ),
+       'Import'                    => array( 'Impor' ),
+       'Invalidateemail'           => array( 'BatalSurel', 'Batalkan_surel' ),
+       'JavaScriptTest'            => array( 'TesSkripJava', 'Tes_skrip_Java' ),
+       'BlockList'                 => array( 'DaptaBlokir', 'Dapta_pemblokiran', 'Dapta_IP_diblok' ),
+       'LinkSearch'                => array( 'CariTautan', 'Cari_tautan' ),
+       'Listadmins'                => array( 'DaptaPanguruih' ),
+       'Listfiles'                 => array( 'DaptaBerkas', 'DaptaGamba' ),
+       'Listgrouprights'           => array( 'DaptaHakKalompok', 'HakKalompokPangguno' ),
+       'Listredirects'             => array( 'DaptaPangaliahan', 'Dapta_pangaliahan' ),
+       'Listusers'                 => array( 'DaptaPangguno', 'Dapta_pangguno' ),
+       'Lockdb'                    => array( 'KunciBD', 'Kunci_basisdata' ),
+       'Log'                       => array( 'Catatan' ),
+       'Lonelypages'               => array( 'LamanYatim', 'Laman_indak_batuan' ),
+       'Longpages'                 => array( 'LamanPanjang', 'Laman_panjang' ),
+       'MergeHistory'              => array( 'SajarahPanggabuangan', 'Sajarah_panggabuangan' ),
+       'MIMEsearch'                => array( 'CariMIME', 'PancarianMIME' ),
+       'Mostcategories'            => array( 'KategoriTabanyak', 'Kategori_tabanyak' ),
+       'Mostimages'                => array( 'BerkasAcokDipakai', 'BerkasTabanyak', 'GambaTabanyak' ),
+       'Mostinterwikis'            => array( 'InterwikiAcokDipakai' ),
+       'Mostlinked'                => array( 'LamanTautanTabanyak', 'TautanTabanyak' ),
+       'Mostlinkedcategories'      => array( 'KategoriBatauikTabanyak', 'KategoriAcokTapakai' ),
+       'Mostlinkedtemplates'       => array( 'TemplatTautanTabanyak', 'TemplatAcokDipakai' ),
+       'Mostrevisions'             => array( 'ParubahanTabanyak' ),
+       'Movepage'                  => array( 'PindahLaman', 'Pindahkan_laman' ),
+       'Mycontributions'           => array( 'SuntianganAmbo', 'Suntiangan_ambo' ),
+       'Mypage'                    => array( 'LamanDenai', 'Laman_denai' ),
+       'Mytalk'                    => array( 'DiskusiAmbo' ),
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Garih bawahi tautan:',
@@ -272,8 +328,8 @@ $1',
 'policy-url' => 'Project:Kabijakan',
 'portal' => 'Portal komunitas',
 'portal-url' => 'Project:Portal komunitas',
-'privacy' => 'Kacipehan privasi',
-'privacypage' => 'Project:Kacipehan privasi',
+'privacy' => 'Kabijakan privasi',
+'privacypage' => 'Project:Kabijakan privasi',
 
 'badaccess' => 'Kasalahan hak akses',
 'badaccess-group0' => 'Sanak indak diizinkan untuak malakuan tindakan ko.',
@@ -446,7 +502,7 @@ Parhatian bahawa bara laman mungkin masih taruih manunjukkan bahawa Sanak masih
 'createacct-yourpasswordagain-ph' => 'Masuakan lai kato sandi',
 'remembermypassword' => 'Ingek log masuak denai di paramban ko (salamo $1 {{PLURAL:$1|hari}})',
 'userlogin-remembermypassword' => 'Biakan ambo tetap masuak',
-'userlogin-signwithsecure' => 'Masuak log jo server aman',
+'userlogin-signwithsecure' => 'Gunoan server aman',
 'securelogin-stick-https' => 'Tetap tahubuang ka HTTPS sasudah masuk log',
 'yourdomainname' => 'Domain Sanak:',
 'password-change-forbidden' => 'Sanak indak dapek maubah kato sandi di wiki ko.',
@@ -875,7 +931,7 @@ Alasan nan diagiah jo $3 adolah ''$2''",
 'currentrev-asof' => 'Revisi tabaru pado $1',
 'revisionasof' => 'Pabaikkan per $1',
 'revision-info' => 'Revisi sajak $1 dek $2',
-'previousrevision' => '← Pabaikkan sabalunnyo',
+'previousrevision' => '← Revisi sabalunnyo',
 'nextrevision' => 'Revisi selanjuiknyo →',
 'currentrevisionlink' => 'Revisi tabaru',
 'cur' => 'kini',
@@ -959,6 +1015,7 @@ Sanak dapek malieknyo; rinciannyo mungkin ado di [{{fullurl:{{#Special:Log}}/del
 # Merge log
 'mergelog' => 'Log panggabuangan',
 'revertmerge' => 'Batal gabuang',
+'mergelogpagetext' => 'Di bawah ko daftar panggabuangan riwayaik laman ka laman nan lain.',
 
 # Diffs
 'history-title' => 'Riwayaik revisi dari "$1"',
@@ -1546,7 +1603,7 @@ Judul laman nan <del>dicoret</del> bararti alah dipelokan.',
 'listusers' => 'Daftar pangguno',
 'listusers-editsonly' => 'Tunjuakan hanyo pangguno nan ado jariah',
 'listusers-creationsort' => 'Uruikan manuruik tanggal pandaftaran',
-'usereditcount' => '$1 {{PLURAL:$1|suntiangan|suntiangan}}',
+'usereditcount' => '$1 {{PLURAL:$1|suntiangan}}',
 'usercreated' => '{{GENDER:$3|Dibuek}} pado $1 pukua $2',
 'newpages' => 'Laman baru',
 'newpages-username' => 'Namo pangguno:',
@@ -1734,16 +1791,16 @@ Caliak [[Special:ProtectedPages|daftar laman talinduangi]] untuak daftar palindu
 Barikuik ko pangaturan nan balaku untuak laman '''$1''':",
 'protect-cascadeon' => 'Laman ko sedang dilindungi karano tamasuak dalam {{PLURAL:$1|laman|laman}} aktif perlindungan batingkek.
 Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlindungan batingkeknyo.',
-'protect-default' => 'Semua pangguno diizinkan',
-'protect-fallback' => 'Cumo untuak pangguno jo izin  "$1"',
-'protect-level-autoconfirmed' => 'Cumo untuak pangguno takonfirmasi otomatis',
-'protect-level-sysop' => 'Cumo untuak panguruih',
+'protect-default' => 'Kasado pangguno diizinan',
+'protect-fallback' => 'Untuak pangguno jo izin  "$1" sajo',
+'protect-level-autoconfirmed' => 'Untuak pangguno takonfirmasi otomatis sajo',
+'protect-level-sysop' => 'Untuak panguruih sajo',
 'protect-summary-cascade' => 'batingkek',
 'protect-expiring' => 'sampai $1 (UTC)',
 'protect-expiring-local' => 'sampai $1',
 'protect-expiry-indefinite' => 'sataruihnyo',
 'protect-cascade' => 'Linduangi laman nan takaik jo laman ko (palinduangan batingkek)',
-'protect-cantedit' => 'Sanak indak dapek maubah tingkek palinduangan laman ko, karano indak ado izin untuak itu.',
+'protect-cantedit' => 'Sanak indak dapek maubah tingkek palinduangan laman ko, dek indak ado izin untuak itu.',
 'protect-othertime' => 'Wakatu lain:',
 'protect-othertime-op' => 'wakatu lain',
 'protect-existing-expiry' => 'Alah sampai: $3, $2',
@@ -1764,7 +1821,7 @@ Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlind
 'protect-edit-reasonlist' => 'Suntiang alasan palinduangan',
 'protect-expiry-options' => '1 jam:1 hour,1 ari:1 day,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
 'restriction-type' => 'Palinduangan:',
-'restriction-level' => 'Tingkek larangan:',
+'restriction-level' => 'Tingkek:',
 'minimum-size' => 'Ukuran min',
 'maximum-size' => 'Ukuran max',
 'pagesize' => '(bita)',
@@ -1789,7 +1846,7 @@ Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlind
 'undeletebtn' => 'Baliakan',
 'undeletelink' => 'caliak/baliakan',
 'undeleteviewlink' => 'caliak',
-'undeletedrevisions' => '{{PLURAL:$1|$1 revisi}} dikambalian',
+'undeletedrevisions' => '{{PLURAL:$1|$1 revisi}} alah dikambalian',
 'undelete-cleanup-error' => 'Kasalahan sawaktu mangapuih arsip berkas "$1" nan indak digunoan.',
 
 # Namespace form on various pages
@@ -1810,15 +1867,15 @@ Awak dapek maubah tingkek perlindungannyo, walaupun indak pangaruah pado perlind
 'sp-contributions-newbies' => 'Tunjuakan jariah pangguno baru sajo',
 'sp-contributions-newbies-sub' => 'Untuak pangguno baru',
 'sp-contributions-newbies-title' => 'Jariah pangguno baru',
-'sp-contributions-blocklog' => 'log pamblokiran',
+'sp-contributions-blocklog' => 'log sakek',
 'sp-contributions-deleted' => 'jariah pangguno nan lah dihapuih',
 'sp-contributions-uploads' => 'muek',
 'sp-contributions-logs' => 'log',
 'sp-contributions-talk' => 'maota',
 'sp-contributions-userrights' => 'pangalolaan hak pangguno',
 'sp-contributions-blocked-notice' => 'Pangguno ko sadang kanai sakek. log pamblokiran tarakhia ditunjuakan disiko untuak referensi:',
-'sp-contributions-blocked-notice-anon' => 'Alamaik IP ko tangah diblokir.
-Entri log pamblokiran tabaru ado di bawah ko untuak referensi:',
+'sp-contributions-blocked-notice-anon' => 'Alamaik IP ko tangah kanai sakek.
+Entri log sakek tabaru ado di bawah ko untuak referensi:',
 'sp-contributions-search' => 'Cari jariah',
 'sp-contributions-username' => 'Alamaik IP atau namo pangguno:',
 'sp-contributions-toponly' => 'Hanyo manampilan suntiangan nan tarakhia',
@@ -1844,7 +1901,7 @@ Entri log pamblokiran tabaru ado di bawah ko untuak referensi:',
 'whatlinkshere-filters' => 'Panyariang',
 
 # Block/unblock
-'autoblockid' => 'Sakek otomatis #$1',
+'autoblockid' => 'Sakek otomatih #$1',
 'block' => 'Sakek pangguno',
 'unblock' => 'Lapeh sakek',
 'blockip' => 'Sakek pangguno',
@@ -1870,10 +1927,10 @@ Masuakan alasan sakek di bawah (contoh, mambuek karusakan atau vandal).',
 'ipb-hardblock' => 'Halang pangguno tadaftar untuak manyuntiang dari alamaik IP ko',
 'ipbcreateaccount' => 'Halang mambuek akun',
 'ipbemailban' => 'Halang pangguno mangirim surel',
-'ipbenableautoblock' => 'Otomatis sakek alamaik IP tarakhia nan digunoan pangguno ko, jo sado alamaik IP takaik nan mancubo manyuntiang.',
+'ipbenableautoblock' => 'Otomatih sakek alamaik IP tarakhia nan digunoan pangguno ko, jo sado alamaik IP takaik nan mancubo manyuntiang.',
 'ipbsubmit' => 'Sakek pangguno ko',
 'ipbother' => 'Salamo:',
-'ipboptions' => '2 jam:2 hours,1 hari:1 day,3 hari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
+'ipboptions' => '2 jam:2 hours,1 ari:1 day,3 ari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taun:1 year,salamonyo:infinite',
 'ipbotheroption' => 'lainnyo',
 'ipbotherreason' => 'Alasan lain/tambahan:',
 'ipbhidename' => 'Suruakan namo pangguno dari daftar jo suntiangan',
@@ -1916,9 +1973,9 @@ Caliak [[Special:BlockList|daftar sakek]] buek maninjaunyo.',
 'infiniteblock' => 'salamonyo',
 'expiringblock' => 'habih pado $1 di $2',
 'anononlyblock' => 'hanyo anon.',
-'noautoblockblock' => 'sakek otomatis dimatian',
+'noautoblockblock' => 'sakek otomatih dimatian',
 'createaccountblock' => 'mambuek akun dimatian',
-'emailblock' => 'surel diblokir',
+'emailblock' => 'surel disakek',
 'blocklist-nousertalk' => 'indak dapek manyuntiang laman maota surang',
 'ipblocklist-empty' => 'Daftar sakek ko kosong.',
 'ipblocklist-no-results' => 'Alamaik IP atau pangguno nan dimintak indak disakek.',
@@ -1927,20 +1984,20 @@ Caliak [[Special:BlockList|daftar sakek]] buek maninjaunyo.',
 'change-blocklink' => 'ubah sakek',
 'contribslink' => 'jariah',
 'emaillink' => 'kirim surel',
-'autoblocker' => 'Sakek otomatis dek alamaik IP lah digunoan jo "[[User:$1|$1]]".
+'autoblocker' => 'Sakek otomatih dek alamaik IP lah digunoan jo "[[User:$1|$1]]".
 Alasan disakek untuak $1 adolah "\'\'$2\'\'"',
 'blocklogpage' => 'Log sakek',
-'blocklogentry' => 'Manyakek [[$1]] dalam maso $2 $3',
+'blocklogentry' => 'manyakek [[$1]] dalam maso $2 $3',
 'blocklogtext' => 'Di bawah ko adolah log sakek jo palapehan sakek pado pangguno.
 Alamaik IP nan disakek sacaro otomatis indak tadapaik dalam daftar ko.
 Caliak [[Special:BlockList|daftar sakek]] untuak kasado pangguno nan kini kanai sakek.',
 'unblocklogentry' => 'lapeh sakek $1',
 'block-log-flags-anononly' => 'hanyo pangguno anonim',
 'block-log-flags-nocreate' => 'mambuek akun dimatian',
-'block-log-flags-noautoblock' => 'sakek otomatis dimatian',
-'block-log-flags-noemail' => 'surel diblokir',
+'block-log-flags-noautoblock' => 'sakek otomatih dimatian',
+'block-log-flags-noemail' => 'surel disakek',
 'block-log-flags-nousertalk' => 'indak dapek manyuntiang laman maota surang',
-'block-log-flags-angry-autoblock' => 'sistim sakek otomatis diaktifkan',
+'block-log-flags-angry-autoblock' => 'sistim sakek otomatih diaktipan',
 'block-log-flags-hiddenname' => 'namo pangguno tasuruak',
 'ipb_already_blocked' => '"$1" alah disakek',
 'ipb-needreblock' => '$1 alah tasakek. Apo nio diubah pangaturannyo?',
@@ -1990,7 +2047,7 @@ Dalam kasus tu, kok amuah Angku dapek mamindahkan ataupun manggabuangkan laman s
 'newtitle' => 'Ka judul baru:',
 'move-watch' => 'Pantau laman ko',
 'movepagebtn' => 'Pindahkan laman',
-'pagemovedsub' => 'Pamindahan berhasil',
+'pagemovedsub' => 'Pamindahan barasil',
 'movepage-moved' => '\'\'\'"$1" lah dipindahan ka "$2"\'\'\'',
 'movepage-moved-redirect' => 'Pangaliahan lah dibuek.',
 'movepage-moved-noredirect' => 'Pangaliahan indak dibuek.',
@@ -2003,6 +2060,7 @@ Silakan piliah namo lain.',
 'move-subpages' => 'Pindahkan sublaman (sampai $1)',
 'move-talk-subpages' => 'Pindahkan sublaman dari laman rundiang (sampai $1)',
 'movelogpage' => 'Log pamindahan',
+'movelogpagetext' => 'Di bawah ko daftar log pamindahan laman.',
 'movereason' => 'Alasan:',
 'revertmove' => 'baliakkan',
 'move-leave-redirect' => 'Buek pangaliahan ka judul baru',
@@ -2019,7 +2077,7 @@ Silakan piliah namo lain.',
 
 # Thumbnails
 'thumbnail-more' => 'Pagadang',
-'thumbnail_error' => 'Gagal mambuek miniatur: $1',
+'thumbnail_error' => 'Gagal mambuek miniatua: $1',
 
 # Special:Import
 'import' => 'Impor laman',
@@ -2038,6 +2096,7 @@ Silakan piliah namo lain.',
 'tooltip-pt-watchlist' => 'Daftar laman nan dipantau.',
 'tooltip-pt-mycontris' => 'Daftar jariah Sanak',
 'tooltip-pt-login' => 'Sanak disaranan untuak masuak log; walaupun indak wajib',
+'tooltip-pt-anonlogin' => 'Sanak disaranan untuak masuak log; walaupun indak wajib',
 'tooltip-pt-logout' => 'Kalua log',
 'tooltip-ca-talk' => 'Parudiangan tantang isi laman',
 'tooltip-ca-edit' => 'Angku dapek manyuntiang laman ko. Silakan gunoan tombol pratonton sabalun manyimpan',
@@ -2078,27 +2137,28 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'tooltip-ca-nstab-special' => 'Laman istimewa, indak dapek disuntiang',
 'tooltip-ca-nstab-project' => 'Caliak laman proyek',
 'tooltip-ca-nstab-image' => 'Caliak laman berkas',
+'tooltip-ca-nstab-mediawiki' => 'Caliak pasan sistem',
 'tooltip-ca-nstab-template' => 'Caliak templat',
 'tooltip-ca-nstab-help' => 'Caliak laman bantuan',
 'tooltip-ca-nstab-category' => 'Caliak laman kategori',
 'tooltip-minoredit' => 'Tandoi iko sabagai suntiangan ketek',
 'tooltip-save' => 'Simpan nan diubah',
-'tooltip-preview' => 'Caliak dulu nan diubah, gunokan ko sabalun manyimpan',
-'tooltip-diff' => 'Caliak parubahan nan alah awak buek tu',
-'tooltip-compareselectedversions' => 'Caliak pabedoan antaro duo revisi pilihan laman ko',
+'tooltip-preview' => 'Caliak lu nan diubah, gunoan ko sabalun manyimpan',
+'tooltip-diff' => 'Caliak parubahan nan lah dibuek',
+'tooltip-compareselectedversions' => 'Caliak pabedoan antaro duo revisi piliahan laman ko',
 'tooltip-watch' => 'Tambahkan laman ko ka daftar pantau',
 'tooltip-recreate' => 'Buek baliak laman walaupun sabananyo pernah dihapuih',
 'tooltip-upload' => 'Mulai mamuek',
 'tooltip-rollback' => '"Baliakkan" uruangkan suntiang laman ko pado kontribusi tarakhir dalam sakali klik',
 'tooltip-undo' => '"Batalan" uruangkan panyuntiangan iko jo mambukak bantuak suntiang dalam bantuak pratonton. Hal ko mamungkinkan manambahkan alasan pado kotak ringkasan.',
 'tooltip-preferences-save' => 'Simpan preferensi',
-'tooltip-summary' => 'Masuakan sabuah ringkasan pendek',
+'tooltip-summary' => 'Buek ringkasan pendek',
 
 # Stylesheets
 'print.css' => '/* CSS placed here will affect the print output */',
 
 # Metadata
-'notacceptable' => 'Layanan wiki indak manyadioan data dalam format yang dapek dibaco dek pelanggan awak.',
+'notacceptable' => 'Server wiki indak dapek manyadioan data dalam format nan dapek dibaco dek klien Sanak.',
 
 # Attribution
 'anonymous' => '{{PLURAL:$1|Pangguno}} anonim {{SITENAME}}',
@@ -2191,7 +2251,7 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'file-info-size-pages' => '$1 × $2 piksel, ukuran berkas: $3, tipe MIME: $4, $5 {{PLURAL:$5|laman}}',
 'file-nohires' => 'Indak tasadio resolusi nan labiah gadang.',
 'svg-long-desc' => 'Berkas SVG, $1 × $2 piksel, ukuran berkas: $3',
-'svg-long-desc-animated' => 'Berkas anmasi SVG, $1 × $2 piksel, ukuran berkas: $3',
+'svg-long-desc-animated' => 'Berkas animasi SVG, $1 × $2 piksel, ukuran berkas: $3',
 'svg-long-error' => 'Berkas SVG indak sah: $1',
 'show-big-image' => 'Resolusi panuah',
 'show-big-image-preview' => 'Ukuran pratonton ko: $1',
@@ -2219,16 +2279,29 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'minutes-abbrev' => '$1 min',
 'hours-abbrev' => '$1 j',
 'days-abbrev' => '$1 h',
-'seconds' => '{{PLURAL:$1|$1 detik|$1 detik}}',
-'minutes' => '{{PLURAL:$1|$1 minik|$1 minik}}',
-'hours' => '{{PLURAL:$1|$1 jam|$1 jam}}',
-'days' => '{{PLURAL:$1|$1 ari|$1 ari}}',
-'weeks' => '{{PLURAL:$1|$1 minggu|$1 minggu}}',
-'months' => '{{PLURAL:$1|$1 bulan|$1 bulan}}',
-'years' => '{{PLURAL:$1|$1 taun|$1 taun}}',
+'seconds' => '{{PLURAL:$1|$1 datiak}}',
+'minutes' => '{{PLURAL:$1|$1 minik}}',
+'hours' => '{{PLURAL:$1|$1 jam}}',
+'days' => '{{PLURAL:$1|$1 ari}}',
+'weeks' => '{{PLURAL:$1|$1 minggu}}',
+'months' => '{{PLURAL:$1|$1 bulan}}',
+'years' => '{{PLURAL:$1|$1 taun}}',
 'ago' => '$1 nan lalu',
 'just-now' => 'sabanta ko',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|jam}} nan lalu',
+'minutes-ago' => '$1 {{PLURAL:$1|minik}} nan lalu',
+'seconds-ago' => '$1 {{PLURAL:$1|datiak}} nan lalu',
+'monday-at' => 'Sinayan pukua $1',
+'tuesday-at' => 'Salasa pukua $1',
+'wednesday-at' => "Raba'a pukua $1",
+'thursday-at' => 'Kamih pukua $1',
+'friday-at' => 'Jumaik pukua $1',
+'saturday-at' => 'Satu pukua $1',
+'sunday-at' => 'Akaik pukua $1',
+'yesterday-at' => 'Kapatang pukua $1',
+
 # Bad image list
 'bad_image_list' => 'Formatnyo adolah sabagai barikuik:
 
@@ -2457,7 +2530,11 @@ Situs ko mangalami masalah teknis.',
 'htmlform-required' => 'Nilai ko diparaluan',
 
 # New logging system
+'logentry-delete-delete' => '$1 {{GENDER:$2|mangapuih}} laman $3',
 'logentry-delete-restore' => '$1 {{GENDER:$2|mangambalian}} laman $3',
+'logentry-move-move' => '$1 {{GENDER:$2|mamindahan}} laman $3 ka $4',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|mamindahan}} laman $3 ka $4 maimpok pangaliahan lamo',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|mamindahan}} laman $3 ka $4 maimpok pangaliahan lamo tanpa mambuek pangaliahan',
 'logentry-patrol-patrol' => '$1 {{GENDER:$2|manandoi}} revisi $4 dari laman $3 tapatroli',
 'logentry-patrol-patrol-auto' => '$1 otomatih {{GENDER:$2|manandoi}} revisi $4 dari laman $3 tapatroli',
 'logentry-newusers-newusers' => 'Akun pangguno $1 alah {{GENDER:$2|dibuek}}',
index 39a8e2c..f532788 100644 (file)
@@ -151,6 +151,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'МоиПодигања' ),
        'Newimages'                 => array( 'НовиСлики', 'НовиПодатотеки' ),
        'Newpages'                  => array( 'НовиСтраници' ),
+       'PagesWithProp'             => array( 'СтранициСоСвојство' ),
        'PasswordReset'             => array( 'ПроменаНаЛозинка' ),
        'PermanentLink'             => array( 'ПостојанаВрска' ),
        'Popularpages'              => array( 'ПопуларниСтраници' ),
@@ -162,6 +163,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'СлучајноПренасочување' ),
        'Recentchanges'             => array( 'СкорешниПромени' ),
        'Recentchangeslinked'       => array( 'ПоврзаниПромени' ),
+       'Redirect'                  => array( 'Пренасочување' ),
        'Revisiondelete'            => array( 'БришењеРевизија' ),
        'Search'                    => array( 'Барај' ),
        'Shortpages'                => array( 'КраткиСтраници' ),
@@ -179,7 +181,7 @@ $specialPageAliases = array(
        'Unusedimages'              => array( 'НеискористениСлики', 'НеискористениПодатотеки' ),
        'Unusedtemplates'           => array( 'НеискористениШаблони' ),
        'Unwatchedpages'            => array( 'НенабљудуваниСтраници' ),
-       'Upload'                    => array( 'Подигање', 'Подигања' ),
+       'Upload'                    => array( 'Подигање' ),
        'UploadStash'               => array( 'СкриениПодигања' ),
        'Userlogin'                 => array( 'Најавување' ),
        'Userlogout'                => array( 'Одјавување' ),
@@ -236,7 +238,7 @@ $magicWords = array(
        'talkspace'                 => array( '1', 'РАЗГОВОРПРОСТОР', 'TALKSPACE' ),
        'fullpagename'              => array( '1', 'ЦЕЛОСНОИМЕНАСТРАНИЦА', 'FULLPAGENAME' ),
        'subpagename'               => array( '1', 'ПОТСТРАНИЦА', 'SUBPAGENAME' ),
-       'basepagename'              => array( '1', 'Ð\98Ð\9cÐ\95Ð\9dÐ\90Ð\9eСÐ\9dÐ\9eÐ\92Ð\9dÐ\90СТРÐ\90Ð\9dÐ\98ЦÐ\90', 'BASEPAGENAME' ),
+       'basepagename'              => array( '1', 'ОСНОВНАСТРАНИЦА', 'BASEPAGENAME' ),
        'talkpagename'              => array( '1', 'СТРАНИЦАЗАРАЗГОВОР', 'TALKPAGENAME' ),
        'subjectpagename'           => array( '1', 'ИМЕНАСТАТИЈА', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
        'msg'                       => array( '0', 'ПОР:', 'MSG:' ),
@@ -303,6 +305,7 @@ $magicWords = array(
        'raw'                       => array( '0', 'СИРОВО:', 'RAW:' ),
        'displaytitle'              => array( '1', 'ПРИКАЖИНАСЛОВ', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'П', 'R' ),
+       'nocommafysuffix'           => array( '0', 'БЕЗПОДЕЛ', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__ВРСКАНОВПОДНАСЛОВ__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', '__БЕЗВРСКАНОВПОДНАСЛОВ__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'ТЕКОВНАВЕРЗИЈА', 'CURRENTVERSION' ),
@@ -4167,6 +4170,7 @@ $5
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath?uselang=mk Статија]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath?uselang=mk Скрипта]',
 
+# Special:Redirect
 'redirect' => 'Пренасочување по податотека, корисник или назнака на ревизија',
 'redirect-legend' => 'Пренасочување кон податотека или страница',
 'redirect-summary' => 'Оваа специјална страница пренасочува кон податотека (се задава името), страница (се задава назнаката на ревизијата) или корисничка странца (се задава бројчената назнака на корисникот).',
index 05001aa..dc24c23 100644 (file)
@@ -139,6 +139,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'ഞാൻഅപ്‌ലോഡ്‌ചെയ്തവ' ),
        'Newimages'                 => array( 'പുതിയ_പ്രമാണങ്ങൾ', 'പുതിയ_ചിത്രങ്ങൾ' ),
        'Newpages'                  => array( 'പുതിയ_താളുകൾ' ),
+       'PagesWithProp'             => array( 'താളുകളുടെഉള്ളടക്കപ്രത്യേകതകൾ' ),
        'PasswordReset'             => array( 'രഹസ്യവാക്ക്‌‌പുനക്രമീകരണം' ),
        'PermanentLink'             => array( 'സ്ഥിരംകണ്ണി' ),
        'Popularpages'              => array( 'ജനപ്രിയതാളുകൾ' ),
@@ -318,6 +319,7 @@ $magicWords = array(
        'pagesize'                  => array( '1', 'താൾവലിപ്പം', 'PAGESIZE' ),
        'index'                     => array( '1', '‌‌__സൂചിക__', '__INDEX__' ),
        'noindex'                   => array( '1', '__സൂചികവേണ്ട__', '__NOINDEX__' ),
+       'numberingroup'             => array( '1', 'ഗണത്തിലെയെണ്ണം', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '_സ്ഥിരസ്ഥിതതിരിച്ചുവിടൽ_', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'സംരക്ഷണതലം', 'PROTECTIONLEVEL' ),
        'formatdate'                => array( '0', 'ദിനരേഖീകരണരീതി', 'ദിവസരേഖീകരണരീതി', 'formatdate', 'dateformat' ),
@@ -762,7 +764,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'രഹസ്യവാക്ക് വീണ്ടും നൽകുക',
 'remembermypassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
 'userlogin-remembermypassword' => 'ഞാൻ പ്രവേശിച്ചതായി തന്നെ നിലനിർത്തുക',
-'userlogin-signwithsecure' => 'à´¸àµ\81à´°à´\95àµ\8dà´·à´¿à´¤ à´¸àµ\86ർവർ à´\89പയàµ\8bà´\97à´¿à´\9aàµ\8dà´\9aàµ\8d à´ªàµ\8dà´°à´µàµ\87à´¶ിക്കുക',
+'userlogin-signwithsecure' => 'à´¸àµ\81à´°à´\95àµ\8dà´·à´¿à´¤ à´\95ണൿഷൻ à´\89പയàµ\8bà´\97ിക്കുക',
 'securelogin-stick-https' => 'പ്രവേശനത്തിനു ശേഷവും എച്ച്.റ്റി.റ്റി.പി.എസ്. തന്നെ ഉപയോഗിക്കുക',
 'yourdomainname' => 'താങ്കളുടെ ഡൊമെയിൻ:',
 'password-change-forbidden' => 'ഈ വിക്കിയിൽ രഹസ്യവാക്കുകൾ മാറ്റാനാവില്ല.',
@@ -783,6 +785,7 @@ $2',
 'gotaccount' => "താങ്കൾക്ക് അംഗത്വമുണ്ടോ? '''$1'''.",
 'gotaccountlink' => 'പ്രവേശിക്കുക',
 'userlogin-resetlink' => 'താങ്കളുടെ ലോഗിൻ വിവരങ്ങൾ മറന്നു പോയോ?',
+'userlogin-resetpassword-link' => 'താങ്കളുടെ രഹസ്യവാക്ക് പുനഃസജ്ജീകരിക്കുക',
 'helplogin-url' => 'Help:പ്രവേശനം',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|പ്രവേശന സഹായം]]',
 'createacct-join' => 'താങ്കളെപ്പറ്റിയുള്ള വിവരങ്ങൾ താഴെ നൽകുക.',
@@ -3897,6 +3900,7 @@ $5
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath ലേഖന പഥം]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath സ്ക്രിപ്റ്റ് പഥം]',
 
+# Special:Redirect
 'redirect' => 'പ്രമാണത്താൽ, ഉപയോക്താവിനാൽ അഥവാ നാൾപ്പതിപ്പ് ഐ.ഡി. ചെയ്യുന്ന തിരിച്ചുവിടൽ',
 'redirect-legend' => 'ഒരു പ്രമാണത്തിലോട്ടോ താളിലോട്ടോ ഉള്ള തിരിച്ചുവിടൽ',
 'redirect-summary' => 'ഈ പ്രത്യേക താൾ ഒരു പ്രമാണത്തിലേയ്ക്കോ (പ്രമാണത്തിന്റെ പേര് തന്നിട്ടുണ്ട്), ഒരു താളിലേയ്ക്കോ (നാൾപ്പതിപ്പിന്റെ ഐഡി തന്നിട്ടുണ്ട്), അല്ലെങ്കിൽ ഒരു ഉപയോക്തൃതാളിലേയ്ക്കോ (ഉപയോക്താവിന്റെ സംഖ്യാ ഐ.ഡി. തന്നിട്ടുണ്ട്) തിരിച്ചുവിടുന്നു.',
index b6d5e75..c146312 100644 (file)
@@ -84,6 +84,7 @@ $magicWords = array(
        'pagenamee'                 => array( '1', 'NAMALAMANE', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'RUANGNAMA', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'RUANGNAMAE', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'NOMBORRUANGNAMA', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'RUANGBINCANG', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'RUANGBINCANGE', 'TALKSPACEE' ),
        'fullpagename'              => array( '1', 'NAMALAMANPENUH', 'FULLPAGENAME' ),
@@ -94,9 +95,11 @@ $magicWords = array(
        'img_left'                  => array( '1', 'kanan', 'left' ),
        'img_none'                  => array( '1', 'tiada', 'none' ),
        'img_center'                => array( '1', 'tengah', 'center', 'centre' ),
+       'img_border'                => array( '1', 'bingkai', 'border' ),
        'sitename'                  => array( '1', 'NAMATAPAK', 'SITENAME' ),
        'ns'                        => array( '0', 'RN:', 'NS:' ),
        'nse'                       => array( '0', 'RNE:', 'NSE:' ),
+       'gender'                    => array( '0', 'JANTINA:', 'GENDER:' ),
        'currentweek'               => array( '1', 'MINGGUSEMASA', 'CURRENTWEEK' ),
 );
 
@@ -111,13 +114,15 @@ $specialPageAliases = array(
        'Booksources'               => array( 'Sumber_buku' ),
        'BrokenRedirects'           => array( 'Lencongan_rosak', 'Pelencongan_rosak' ),
        'Categories'                => array( 'Kategori' ),
+       'ChangeEmail'               => array( 'Tukar_e-mel' ),
        'ChangePassword'            => array( 'Lupa_kata_laluan' ),
+       'ComparePages'              => array( 'Banding_laman' ),
        'Confirmemail'              => array( 'Sahkan_e-mel' ),
        'Contributions'             => array( 'Sumbangan' ),
        'CreateAccount'             => array( 'Buka_akaun' ),
        'Deadendpages'              => array( 'Laman_buntu' ),
        'DeletedContributions'      => array( 'Sumbangan_dihapuskan' ),
-       'Disambiguations'           => array( 'Penyahtaksaan' ),
+       'Disambiguations'           => array( 'Penyahtaksaan', 'Nyahkekaburan' ),
        'DoubleRedirects'           => array( 'Lencongan_berganda', 'Pelencongan_berganda' ),
        'Emailuser'                 => array( 'E-mel_pengguna' ),
        'Export'                    => array( 'Eksport' ),
@@ -148,6 +153,7 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'Sumbangan_saya' ),
        'Mypage'                    => array( 'Laman_saya' ),
        'Mytalk'                    => array( 'Perbincangan_saya' ),
+       'Myuploads'                 => array( 'Muat_naik_saya' ),
        'Newimages'                 => array( 'Imej_baru' ),
        'Newpages'                  => array( 'Laman_baru' ),
        'Popularpages'              => array( 'Laman_popular' ),
@@ -165,6 +171,7 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'Laman_khas' ),
        'Statistics'                => array( 'Statistik' ),
        'Tags'                      => array( 'Label' ),
+       'Unblock'                   => array( 'Nyahsekat' ),
        'Uncategorizedcategories'   => array( 'Kategori_tanpa_kategori' ),
        'Uncategorizedimages'       => array( 'Imej_tanpa_kategori' ),
        'Uncategorizedpages'        => array( 'Laman_tanpa_kategori' ),
index bd01e65..cc74533 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Hiong3-eng5
  * @author Ianbu
  * @author Kaihsu
  */
@@ -53,8 +54,6 @@ $messages = array(
 'tog-shownumberswatching' => 'Hián-sī tng leh khoàⁿ ê iōng-chiá sò͘-bo̍k',
 'tog-oldsig' => 'Chit-má ê chhiam-miâ:',
 'tog-fancysig' => 'Chhiam-miâ mài chò liân-kiat',
-'tog-externaleditor' => 'Iōng gōa-pō· pian-chi̍p-khì',
-'tog-externaldiff' => 'Iōng gōa-pō· diff',
 'tog-showjumplinks' => 'Hō͘ "thiàu khì" chit ê liân-chiap ē-sái',
 'tog-uselivepreview' => 'Ēng sui khoàⁿ-māi (ài ū JavaScript) (chhì-giām--ê)',
 'tog-forceeditsummary' => 'Pian-chi̍p khài-iàu bô thiⁿ ê sî-chūn, kā goá thê-chhéⁿ',
@@ -396,7 +395,9 @@ $2',
 Lí ē-sái mài kì-miâ kè-siok sú-iōng {{SITENAME}}, mā ē-sái iōng kāng-ê a̍h-sī pa̍t-ê sin-hūn têng teng-ji̍p.
 Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-goân teng-ji̍p tiong; che chi-iàu piàⁿ tiāu lí ê browser ê cache chiū ē chèng-siông.",
 'yourname' => 'Lí ê iōng-chiá miâ-chheng:',
+'userlogin-yourname' => 'Iōng-chiá miâ-chheng',
 'yourpassword' => 'Lí ê bi̍t-bé:',
+'userlogin-yourpassword' => 'Bi̍t-bé',
 'yourpasswordagain' => 'Têng phah bi̍t-bé:',
 'remembermypassword' => 'Kì tiâu góa ê bi̍t-bé (āu-chhiú teng-ji̍p iōng) (for a maximum of $1 {{PLURAL:$1|day|days}})',
 'login' => 'Teng-ji̍p',
@@ -603,9 +604,6 @@ Lí ê kái-piàn tī ē-kha ê bûn-jī-keh. Lí su-iàu chiōng lí chò ê k
 'powersearch' => 'Kiám-sek',
 'powersearch-legend' => 'Kiám-sek',
 
-# Quickbar
-'qbsettings' => 'Quickbar ê siat-tēng',
-
 # Preferences page
 'preferences' => 'Siat-tēng',
 'mypreferences' => 'Góa ê siat-tēng',
@@ -1176,9 +1174,6 @@ Chit tiuⁿ phoe ê khak-jīn-bé ē chū-tōng tī $4 kòe-kî.',
 # Special:Version
 'version' => 'Pán-pún',
 
-# Special:FilePath
-'filepath' => 'Tóng-àn ê soàⁿ-lō·',
-
 # Special:SpecialPages
 'specialpages' => 'Te̍k-sû-ia̍h',
 
index 64658ef..de38aba 100644 (file)
@@ -146,7 +146,7 @@ $magicWords = array(
        'img_middle'                => array( '1', 'midden', 'middle' ),
        'img_bottom'                => array( '1', 'benejen', 'beneden', 'bottom' ),
        'img_text_bottom'           => array( '1', 'tekste-benejen', 'tekst-beneden', 'text-bottom' ),
-       'img_link'                  => array( '1', 'verwiezing=$1', 'verwijzing=$1', 'link=$1' ),
+       'img_link'                  => array( '1', 'verwiezing=$1', 'verwijzing=$1', 'koppeling=$1', 'link=$1' ),
        'sitename'                  => array( '1', 'WEBSTEENAAM', 'SITENAAM', 'SITENAME' ),
        'ns'                        => array( '0', 'NR:', 'NS:' ),
        'localurl'                  => array( '0', 'LOKALEURL', 'LOCALURL:' ),
@@ -179,7 +179,7 @@ $magicWords = array(
        'raw'                       => array( '0', 'RAUW:', 'RUW:', 'RAW:' ),
        'displaytitle'              => array( '1', 'TEUNTITEL', 'TOONTITEL', 'TITELTONEN', 'WEERGEGEVENTITEL', 'DISPLAYTITLE' ),
        'newsectionlink'            => array( '1', '__NIEJESECTIEVERWIEZING__', '__NIEUWESECTIELINK__', '__NIEUWESECTIEKOPPELING__', '__NEWSECTIONLINK__' ),
-       'nonewsectionlink'          => array( '1', '__GIENNIEJKOPJENVERWIEZING__', '__GEENNIEUWKOPJEVERWIJZING__', '__GEENNIEUWESECTIELINK__', '__NONEWSECTIONLINK__' ),
+       'nonewsectionlink'          => array( '1', '__GIENNIEJKOPJENVERWIEZING__', '__GEENNIEUWKOPJEVERWIJZING__', '__GEENNIEUWESECTIELINK__', '__GEENNIEUWKOPJEKOPPELING__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'DISSEVERSIE', 'HUIDIGEVERSIE', 'CURRENTVERSION' ),
        'urlencode'                 => array( '0', 'URLKODEREN', 'URLCODEREN', 'CODEERURL', 'URLENCODE:' ),
        'anchorencode'              => array( '0', 'ANKERKODEREN', 'ANKERCODEREN', 'CODEERANKER', 'ANCHORENCODE' ),
index 068799d..e72cd19 100644 (file)
@@ -148,6 +148,8 @@ $magicWords = array(
        'fullpagenamee'             => array( '1', 'VOLLEDIGEPAGINANAAME', 'FULLPAGENAMEE' ),
        'subpagename'               => array( '1', 'DEELPAGINANAAM', 'SUBPAGENAME' ),
        'subpagenamee'              => array( '1', 'DEELPAGINANAAME', 'SUBPAGENAMEE' ),
+       'rootpagename'              => array( '1', 'ROOTPAGINANAAM', 'ROOTPAGENAME' ),
+       'rootpagenamee'             => array( '1', 'ROOTPAGINANAAME', 'ROOTPAGENAMEE' ),
        'basepagename'              => array( '1', 'BASISPAGINANAAM', 'BASEPAGENAME' ),
        'basepagenamee'             => array( '1', 'BASISPAGINANAAME', 'BASEPAGENAMEE' ),
        'talkpagename'              => array( '1', 'OVERLEGPAGINANAAM', 'TALKPAGENAME' ),
@@ -214,6 +216,7 @@ $magicWords = array(
        'raw'                       => array( '0', 'RAUW:', 'RUW:', 'RAW:' ),
        'displaytitle'              => array( '1', 'WEERGEGEVENTITEL', 'TOONTITEL', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'V', 'R' ),
+       'nocommafysuffix'           => array( '0', 'GEENSCHEIDINGSTEKEN', 'NOSEP' ),
        'newsectionlink'            => array( '1', '__NIEUWESECTIELINK__', '__NIEUWESECTIEKOPPELING__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', '__GEENNIEUWKOPJEKOPPELING__', '__GEENNIEUWESECTIELINK__', '__GEENNIEUWKOPJEVERWIJZING__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'HUIDIGEVERSIE', 'CURRENTVERSION' ),
@@ -272,7 +275,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'GebruikerAanmaken' ),
        'Deadendpages'              => array( 'VerwijslozePaginas', 'VerwijslozePagina’s', 'VerwijslozePagina\'s' ),
        'DeletedContributions'      => array( 'VerwijderdeBijdragen' ),
-       'Disambiguations'           => array( 'Doorverwijspagina\'s', 'Doorverwijspaginas' ),
+       'Disambiguations'           => array( 'Doorverwijzingen' ),
        'DoubleRedirects'           => array( 'DubbeleDoorverwijzingen' ),
        'EditWatchlist'             => array( 'VolglijstBewerken' ),
        'Emailuser'                 => array( 'GebruikerE-mailen', 'E-mailGebruiker' ),
@@ -310,6 +313,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'MijnUploads' ),
        'Newimages'                 => array( 'NieuweBestanden', 'NieuweAfbeeldingen' ),
        'Newpages'                  => array( 'NieuwePaginas', 'NieuwePagina’s', 'NieuwePagina\'s' ),
+       'PagesWithProp'             => array( 'PaginasMetEigenschap', 'Pagina\'sMetEigenschap' ),
        'PasswordReset'             => array( 'WachtwoordOpnieuwInstellen' ),
        'PermanentLink'             => array( 'PermanenteVerwijzing' ),
        'Popularpages'              => array( 'PopulairePaginas', 'PopulairePagina’s', 'PopulairePagina\'s' ),
@@ -321,6 +325,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( 'WillekeurigeDoorverwijzing' ),
        'Recentchanges'             => array( 'RecenteWijzigingen' ),
        'Recentchangeslinked'       => array( 'RecenteWijzigingenGelinkt', 'VerwanteWijzigingen' ),
+       'Redirect'                  => array( 'Doorverwijzen' ),
        'Revisiondelete'            => array( 'VersieVerwijderen', 'HerzieningVerwijderen', 'RevisieVerwijderen' ),
        'Search'                    => array( 'Zoeken' ),
        'Shortpages'                => array( 'KortePaginas', 'KortePagina’s', 'KortePagina\'s' ),
@@ -4055,6 +4060,7 @@ Samen met dit programma hoort u een [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Article path]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Script path]',
 
+# Special:Redirect
 'redirect' => 'Doorverwijzen op bestandsnaam, gebruikersnummer of versienummer',
 'redirect-legend' => 'Doorverwijzen naar een bestand of pagina',
 'redirect-summary' => 'Deze speciale pagina verwijst door naar een bestand (als een bestandsnaam wordt opgegeven), een pagina (als een versienummer wordt opgegeven) of een gebruikerspagina (als een gebruikersnummer wordt opgegeven).',
index a63c018..f71d3dc 100644 (file)
@@ -144,7 +144,7 @@ $magicWords = array(
        'img_framed'                => array( '1', 'ramme', 'ramma', 'framed', 'enframed', 'frame' ),
        'img_frameless'             => array( '1', 'rammelaus', 'frameless' ),
        'img_page'                  => array( '1', 'side=$1', 'side_$1', 'page=$1', 'page $1' ),
-       'img_link'                  => array( '1', 'lenkje=$1', 'lenkja=$1', 'link=$1' ),
+       'img_link'                  => array( '1', 'lenkje=$1', 'lenke=$1', 'link=$1' ),
        'sitename'                  => array( '1', 'NETTSTADNAMN', 'SITENAME' ),
        'ns'                        => array( '0', 'NR:', 'NS:' ),
        'localurl'                  => array( '0', 'LOKALLENKJE:', 'LOKALLENKE:', 'LOCALURL:' ),
@@ -180,6 +180,7 @@ $magicWords = array(
        'numberofadmins'            => array( '1', 'ADMINTAL', 'ADMINISTRATORTAL', 'NUMBEROFADMINS' ),
        'formatnum'                 => array( '0', 'FORMATTAL', 'FORMATNUM' ),
        'special'                   => array( '0', 'spesial', 'special' ),
+       'defaultsort'               => array( '1', 'STANDARDSORTERING', 'SORTERINGSNYKEL', 'SORTERINGSNØKKEL', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                  => array( '0', 'FILSTIG', 'FILEPATH:' ),
        'tag'                       => array( '0', 'merke', 'tag' ),
        'hiddencat'                 => array( '1', '__GØYMDKAT__', '__LØYNDKAT__', '__HIDDENCAT__' ),
@@ -214,15 +215,18 @@ $namespaceNames = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'Verksame_brukarar', 'Aktive_brukarar' ),
        'Allmessages'               => array( 'Alle_systemmeldingar' ),
        'Allpages'                  => array( 'Alle_sider' ),
        'Ancientpages'              => array( 'Gamle_sider' ),
+       'Badtitle'                  => array( 'Dårleg_tittel' ),
        'Blankpage'                 => array( 'Tom_side' ),
        'Block'                     => array( 'Blokker' ),
        'Blockme'                   => array( 'Blokker_meg' ),
        'Booksources'               => array( 'Bokkjelder' ),
        'BrokenRedirects'           => array( 'Blindvegsomdirigeringar' ),
        'Categories'                => array( 'Kategoriar' ),
+       'ChangeEmail'               => array( 'Endra_e-post', 'Endre_e-post' ),
        'ChangePassword'            => array( 'Nullstill_passord' ),
        'Confirmemail'              => array( 'Stadfest_e-postadresse' ),
        'Contributions'             => array( 'Bidrag' ),
@@ -231,6 +235,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'Sletta_brukarbidrag' ),
        'Disambiguations'           => array( 'Fleirtydingssider' ),
        'DoubleRedirects'           => array( 'Doble_omdirigeringar' ),
+       'EditWatchlist'             => array( 'Endra_overvakingsliste', 'Endre_overvakingsliste' ),
        'Emailuser'                 => array( 'E-post' ),
        'Export'                    => array( 'Eksport' ),
        'Fewestrevisions'           => array( 'Færrast_endringar' ),
@@ -241,7 +246,7 @@ $specialPageAliases = array(
        'BlockList'                 => array( 'Blokkeringsliste' ),
        'LinkSearch'                => array( 'Lenkjesøk' ),
        'Listadmins'                => array( 'Administratorliste', 'Administratorar' ),
-       'Listbots'                  => array( 'Bottliste', 'Bottar' ),
+       'Listbots'                  => array( 'Bottliste', 'Bottar', 'Robotliste', 'Robotar' ),
        'Listfiles'                 => array( 'Filliste' ),
        'Listgrouprights'           => array( 'Grupperettar' ),
        'Listredirects'             => array( 'Omdirigeringsliste' ),
@@ -254,7 +259,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'MIME-søk' ),
        'Mostcategories'            => array( 'Flest_kategoriar' ),
        'Mostimages'                => array( 'Mest_brukte_filer' ),
-       'Mostlinked'                => array( 'Mest_lenka_sider' ),
+       'Mostlinked'                => array( 'Mest_lenka_sider', 'Mest_lenkja_sider' ),
        'Mostlinkedcategories'      => array( 'Mest_brukte_kategoriar' ),
        'Mostlinkedtemplates'       => array( 'Mest_brukte_malar' ),
        'Mostrevisions'             => array( 'Flest_endringar' ),
@@ -265,7 +270,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Opplastingane_mine' ),
        'Newimages'                 => array( 'Nye_filer' ),
        'Newpages'                  => array( 'Nye_sider' ),
-       'PermanentLink'             => array( 'Permanent_lenkje' ),
+       'PermanentLink'             => array( 'Permanent_lenkje', 'Permanent_lenke' ),
        'Popularpages'              => array( 'Populære_sider' ),
        'Preferences'               => array( 'Innstillingar' ),
        'Prefixindex'               => array( 'Prefiksindeks' ),
@@ -273,12 +278,12 @@ $specialPageAliases = array(
        'Protectedtitles'           => array( 'Verna_sidenamn' ),
        'Randompage'                => array( 'Tilfeldig_side' ),
        'Randomredirect'            => array( 'Tilfeldig_omdirigering' ),
-       'Recentchanges'             => array( 'Siste_endringar' ),
+       'Recentchanges'             => array( 'Siste_endringar', 'Siste_endringane' ),
        'Recentchangeslinked'       => array( 'Relaterte_endringar' ),
        'Revisiondelete'            => array( 'Versjonssletting' ),
        'Search'                    => array( 'Søk' ),
-       'Shortpages'                => array( 'Korte_sider' ),
-       'Specialpages'              => array( 'Spesialsider' ),
+       'Shortpages'                => array( 'Korte_sider', 'Stutte_sider' ),
+       'Specialpages'              => array( 'Spesialsider', 'Særsider' ),
        'Statistics'                => array( 'Statistikk' ),
        'Tags'                      => array( 'Merke' ),
        'Uncategorizedcategories'   => array( 'Ukategoriserte_kategoriar' ),
index 2ab0d9e..7ebd02e 100644 (file)
@@ -617,7 +617,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'Пароль ногæй бафысс',
 'remembermypassword' => 'Бахъуыды мæ кæнæд ашы браузеры (максимум $1 {{PLURAL:$1|бонмæ|бонмæ}})',
 'userlogin-remembermypassword' => 'Системæйы мæ дар',
-'userlogin-signwithsecure' => 'Æдас серверæй бахизын',
+'userlogin-signwithsecure' => 'Æдас бастдзинадæй',
 'securelogin-stick-https' => 'Дарддæр дæр HTTPS-ы уылты, бахизыны фæстæ',
 'yourdomainname' => 'Дæ домен:',
 'password-change-forbidden' => 'Дæ бон нæу пароль фæивын ацы викийы.',
@@ -638,6 +638,7 @@ $2',
 'gotaccount' => 'Регистрацигонд дæ? $1.',
 'gotaccountlink' => 'Бахизын',
 'userlogin-resetlink' => 'Ферох дæ сты дæ бахизæнтæ?',
+'userlogin-resetpassword-link' => 'Дæ пароль ногæй сæвæр',
 'helplogin-url' => 'Help:Бахизын',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Бахизынæн æххуыс]]',
 'createacct-join' => 'Дæ информаци дæлдæр бафысс.',
@@ -950,6 +951,8 @@ $2
 '''Æрмæст''' уæллаг ивæны текст æрцæудзæн æвæрд \"{{int:savearticle}}\"-ыл куы ныххæцай.",
 'yourtext' => 'Дæ текст',
 'storedversion' => 'Æвæрд фæлтæр',
+'nonunicodebrowser' => "'''Сындæг: Дæ сгарæн Unicode-имæ нæ фидауы.'''
+ASCII нысæнттæм чи нæ хауы, уыдон ивыны бынаты сæ æхсæрдæсон кодты хуызы уыдзысты.",
 'yourdiff' => 'Хицæндзинæдтæ',
 'templatesused' => 'Ацы фарсы ис {{PLURAL:$1|хуызæг|хуызæджы}}:',
 'template-protected' => '(æхгæд)',
index e8ac70b..0d1574d 100644 (file)
@@ -765,9 +765,9 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'createacct-imgcaptcha-ph' => 'Wpisz tekst widoczny powyżej',
 'createacct-submit' => 'Utwórz konto',
 'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tworzą ludzie tacy jak ty.',
-'createacct-benefit-body1' => '{{PLURAL:{{NUMBEROFEDITS:R}}|edycja|edycje|edycji}}',
-'createacct-benefit-body2' => '{{PLURAL:{{NUMBEROFEDITS:R}}|strona|strony|stron}}',
-'createacct-benefit-body3' => '{{PLURAL:{{NUMBEROFEDITS:R}}|użytkownik|użytkowników}} w ostatnim czasie',
+'createacct-benefit-body1' => '{{PLURAL:$1|edycja|edycje|edycji}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|strona|strony|stron}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|użytkownik|użytkowników}} w ostatnim czasie',
 'badretype' => 'Wprowadzone hasła różnią się między sobą.',
 'userexists' => 'Wybrana przez Ciebie nazwa użytkownika jest już zajęta.
 Wybierz inną nazwę użytkownika.',
@@ -3973,6 +3973,7 @@ Powinieneś otrzymać [{{SERVER}}{{SCRIPTPATH}}/COPYING kopię licencji GNU Gene
 'version-entrypoints-header-entrypoint' => 'Punkt wejścia',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect-value' => 'Wartość:',
 'redirect-user' => 'ID użytkownika',
 'redirect-file' => 'Nazwa pliku',
index 75e9add..0e9e75f 100644 (file)
@@ -140,14 +140,14 @@ $messages = array(
 'jan' => 'gen',
 'feb' => 'fër',
 'mar' => 'mar',
-'apr' => 'Avr',
-'may' => 'Mag',
-'jun' => 'Giu',
-'jul' => 'Luj',
-'aug' => 'Aos',
-'sep' => 'Stè',
-'oct' => 'Otó',
-'nov' => 'Nov',
+'apr' => 'avr',
+'may' => 'maj',
+'jun' => 'giu',
+'jul' => 'luj',
+'aug' => 'ost',
+'sep' => 'stè',
+'oct' => 'otó',
+'nov' => 'nov',
 'dec' => 'Dzè',
 
 # Categories related messages
index a032d20..b0ba1e6 100644 (file)
@@ -3138,7 +3138,7 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 'pageinfo-header-edits' => 'Histórico de edições',
 'pageinfo-header-restrictions' => 'Proteção da página',
 'pageinfo-header-properties' => 'Propriedades da página',
-'pageinfo-display-title' => 'Exibir título',
+'pageinfo-display-title' => 'Título exibido',
 'pageinfo-length' => 'Tamanho da página (em bytes)',
 'pageinfo-article-id' => 'ID da página',
 'pageinfo-language' => 'Idioma do conteúdo da página',
index 5617e16..093cfb5 100644 (file)
@@ -3163,7 +3163,7 @@ Tal bloqueio foi provavelmente causado por uma ligação para um ''website'' ext
 'pageinfo-header-edits' => 'Histórico de edições',
 'pageinfo-header-restrictions' => 'Proteção da página',
 'pageinfo-header-properties' => 'Propriedades da página',
-'pageinfo-display-title' => 'Exibir título',
+'pageinfo-display-title' => 'Título exibido',
 'pageinfo-default-sort' => 'Chave de ordenação padrão',
 'pageinfo-length' => 'Tamanho da página (em bytes)',
 'pageinfo-article-id' => 'ID da página',
@@ -3926,6 +3926,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 'version-entrypoints-header-entrypoint' => 'Ponto de entrada',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Redirecionar por arquivo, usuário ou ID de revisão',
 'redirect-legend' => 'Redirecionar para um arquivo ou página',
 'redirect-summary' => 'Esta página especial redireciona a um arquivo (dado o nome do arquivo), a uma página (dado um ID de revisão) ou a uma página de usuário (dado o ID do usuário).',
index 38545a1..fb9fd2c 100644 (file)
@@ -1143,7 +1143,7 @@ It is also used on the top of the page for logged out users, where it appears ne
 'gotaccountlink' => 'Text of the link to the log in form. Before that link, the message {{msg-mw|Gotaccount}} appears.
 {{Identical|Log in}}',
 'userlogin-resetlink' => 'Used on the login page.',
-'userlogin-resetpassword-link' => 'Text of link to [[Special:ResetPassword]] on new vertical-layout create account form.
+'userlogin-resetpassword-link' => 'Text of link to [[Special:PasswordReset]] on new vertical-layout create account form.
 
 See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]
 
@@ -8617,6 +8617,7 @@ A short description of the article path entry point. Links to the mediawiki.org
 'version-entrypoints-scriptpath' => '{{Optional}}
 A short description of the script path entry point. Links to the mediawiki.org documentation page for $wgScriptPath.',
 
+# Special:Redirect
 'redirect' => "{{doc-special|Redirect}}
 This means \"Redirect by file'''name''', user '''ID''', or revision ID\".",
 'redirect-legend' => 'Legend of fieldset around input box in [[Special:Redirect]]',
index b463c92..5e91871 100644 (file)
@@ -3889,6 +3889,7 @@ MediaWiki este distribuit în speranța că va fi folositor, dar FĂRĂ VREO GAR
 'version-entrypoints-header-entrypoint' => 'Punct de intrare',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Redirecționare după fișier, utilizator sau ID-ul versiunii',
 'redirect-legend' => 'Redirecționare către un fișier sau o pagină',
 'redirect-summary' => 'Această pagină specială vă redirecționează către un fișier (dat fiind un nume de fișier), o pagină (dat fiind ID-ul unei versiuni) sau o pagină de utilizator (dat fiind un ID numeric al utilizatorului).',
index 9dc5b6f..9bb7023 100644 (file)
@@ -464,7 +464,7 @@ No te sce scurdanne de cangià le [[Special:Preferences|{{SITENAME}} preferenze
 'createacct-yourpasswordagain-ph' => "Mitte arrete 'a passuord",
 'remembermypassword' => "Arrencuerdete 'u nome mije sus a stu combiuter (pe 'nu massime de $1 {{PLURAL:$1|sciurne|sciurne}})",
 'userlogin-remembermypassword' => 'Arrecuèrdeme',
-'userlogin-signwithsecure' => "Reggistrate cu 'nu server secure",
+'userlogin-signwithsecure' => "Ause 'na connessione secure",
 'securelogin-stick-https' => "Statte collegate ô HTTPS apprisse 'a trasute",
 'yourdomainname' => "'U nome d'u dominie tue:",
 'password-change-forbidden' => 'Non ge puè cangià le passuord sus a sta uicchi.',
@@ -485,6 +485,7 @@ No te sce scurdanne de cangià le [[Special:Preferences|{{SITENAME}} preferenze
 'gotaccount' => "Tine già 'nu cunde? '''$1'''.",
 'gotaccountlink' => 'Tràse',
 'userlogin-resetlink' => "T'è scurdate le dettaglie pe trasè?",
+'userlogin-resetpassword-link' => "Azzere 'a passuord toje",
 'helplogin-url' => 'Help:Trasenne',
 'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Aijute cu 'a trasute]]",
 'createacct-join' => "Mitte le 'mbormaziune tune aqquà sotte.",
@@ -3909,6 +3910,7 @@ Avisse avè ricevute [{{SERVER}}{{SCRIPTPATH}}/COPYING 'na copie d'a GNU (Licenz
 'version-entrypoints-header-entrypoint' => "Punde d'ingresse",
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => "Redirette da 'u file, utende o ID d'a revisione",
 'redirect-legend' => "Redirette a 'nu file o 'na pàgene",
 'redirect-summary' => "Sta pàgena speciale redirezione a 'nu file (date 'u nome d'u file), 'na pàgene (fate 'n'ID de revisione), o 'na pàgene utende (date 'n'ID numeriche de l'utende).",
index 94c5d5b..8735b31 100644 (file)
@@ -118,16 +118,17 @@ $specialPageAliases = array(
        'Activeusers'               => array( 'Активные_участники' ),
        'Allmessages'               => array( 'Системные_сообщения' ),
        'Allpages'                  => array( 'Все_страницы' ),
+       'Badtitle'                  => array( 'Недопустимое_название' ),
        'Blankpage'                 => array( 'Пустая_страница' ),
        'Block'                     => array( 'Заблокировать' ),
        'Blockme'                   => array( 'Заблокируй_меня' ),
        'Booksources'               => array( 'Источники_книг' ),
        'BrokenRedirects'           => array( 'Разорванные_перенаправления' ),
        'Categories'                => array( 'Категории' ),
-       'ChangeEmail'               => array( 'Сменить_e-mail' ),
+       'ChangeEmail'               => array( 'Сменить_e-mail', 'Сменить_почту' ),
        'ChangePassword'            => array( 'Сменить_пароль' ),
        'ComparePages'              => array( 'Сравнение_страниц' ),
-       'Confirmemail'              => array( 'Подтвердить_e-mail' ),
+       'Confirmemail'              => array( 'Подтвердить_e-mail', 'Подтвердить_почту' ),
        'Contributions'             => array( 'Вклад' ),
        'CreateAccount'             => array( 'Создать_учётную_запись', 'Создать_пользователя', 'Зарегистрироваться' ),
        'Deadendpages'              => array( 'Тупиковые_страницы' ),
@@ -137,9 +138,12 @@ $specialPageAliases = array(
        'EditWatchlist'             => array( 'Править_список_наблюдения' ),
        'Emailuser'                 => array( 'Письмо_участнику', 'Отправить_письмо' ),
        'Export'                    => array( 'Экспорт', 'Выгрузка' ),
+       'Fewestrevisions'           => array( 'Редко_редактируемые' ),
        'FileDuplicateSearch'       => array( 'Поиск_дубликатов_файлов' ),
        'Filepath'                  => array( 'Путь_к_файлу' ),
        'Import'                    => array( 'Импорт' ),
+       'Invalidateemail'           => array( 'Отменить_подтверждение_адреса' ),
+       'JavaScriptTest'            => array( 'Тестирование_JavaScript' ),
        'BlockList'                 => array( 'Список_блокировок', 'Блокировки' ),
        'LinkSearch'                => array( 'Поиск_ссылок' ),
        'Listadmins'                => array( 'Список_администраторов' ),
@@ -154,7 +158,13 @@ $specialPageAliases = array(
        'Longpages'                 => array( 'Длинные_страницы' ),
        'MergeHistory'              => array( 'Объединение_историй' ),
        'MIMEsearch'                => array( 'Поиск_по_MIME' ),
+       'Mostcategories'            => array( 'Самые_категоризованные' ),
        'Mostimages'                => array( 'Самые_используемые_файлы' ),
+       'Mostinterwikis'            => array( 'Наибольшее_количество_интервики-ссылок' ),
+       'Mostlinked'                => array( 'Самые_используемые_страницы' ),
+       'Mostlinkedcategories'      => array( 'Самые_используемые_категории' ),
+       'Mostlinkedtemplates'       => array( 'Самые_используемые_шаблоны' ),
+       'Mostrevisions'             => array( 'Наибольшее_количество_версий' ),
        'Movepage'                  => array( 'Переименовать_страницу', 'Переименование', 'Переименовать' ),
        'Mycontributions'           => array( 'Мой_вклад' ),
        'Mypage'                    => array( 'Моя_страница' ),
@@ -166,9 +176,11 @@ $specialPageAliases = array(
        'PermanentLink'             => array( 'Постоянная_ссылка' ),
        'Popularpages'              => array( 'Популярные_страницы' ),
        'Preferences'               => array( 'Настройки' ),
+       'Prefixindex'               => array( 'Указатель_по_началу_названия' ),
        'Protectedpages'            => array( 'Защищённые_страницы' ),
        'Protectedtitles'           => array( 'Защищённые_названия' ),
        'Randompage'                => array( 'Случайная_страница', 'Случайная' ),
+       'Randomredirect'            => array( 'Случайное_перенаправление' ),
        'Recentchanges'             => array( 'Свежие_правки' ),
        'Recentchangeslinked'       => array( 'Связанные_правки' ),
        'Revisiondelete'            => array( 'Удаление_правки' ),
@@ -183,6 +195,7 @@ $specialPageAliases = array(
        'Uncategorizedpages'        => array( 'Некатегоризованные_страницы' ),
        'Uncategorizedtemplates'    => array( 'Некатегоризованные_шаблоны' ),
        'Undelete'                  => array( 'Восстановить', 'Восстановление' ),
+       'Unlockdb'                  => array( 'Разблокировка_БД' ),
        'Unusedcategories'          => array( 'Неиспользуемые_категории' ),
        'Unusedimages'              => array( 'Неиспользуемые_файлы' ),
        'Unusedtemplates'           => array( 'Неиспользуемые_шаблоны' ),
@@ -241,6 +254,7 @@ $magicWords = array(
        'pagenamee'                 => array( '1', 'НАЗВАНИЕ_СТРАНИЦЫ_2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'ПРОСТРАНСТВО_ИМЁН', 'NAMESPACE' ),
        'namespacee'                => array( '1', 'ПРОСТРАНСТВО_ИМЁН_2', 'NAMESPACEE' ),
+       'namespacenumber'           => array( '1', 'НОМЕР_ПРОСТРАНСТВА_ИМЁН', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ', 'TALKSPACE' ),
        'talkspacee'                => array( '1', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ_2', 'TALKSPACEE' ),
        'subjectspace'              => array( '1', 'ПРОСТРАНСТВО_СТАТЕЙ', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -288,6 +302,7 @@ $magicWords = array(
        'localurl'                  => array( '0', 'ЛОКАЛЬНЫЙ_АДРЕС:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'ЛОКАЛЬНЫЙ_АДРЕС_2:', 'LOCALURLE:' ),
        'articlepath'               => array( '0', 'ПУТЬ_К_СТАТЬЕ', 'ARTICLEPATH' ),
+       'pageid'                    => array( '0', 'ИДЕНТИФИКАТОР_СТРАНИЦЫ', 'PAGEID' ),
        'server'                    => array( '0', 'СЕРВЕР', 'SERVER' ),
        'servername'                => array( '0', 'НАЗВАНИЕ_СЕРВЕРА', 'SERVERNAME' ),
        'scriptpath'                => array( '0', 'ПУТЬ_К_СКРИПТУ', 'SCRIPTPATH' ),
@@ -349,6 +364,10 @@ $magicWords = array(
        'url_path'                  => array( '0', 'ПУТЬ', 'PATH' ),
        'url_wiki'                  => array( '0', 'ВИКИ', 'WIKI' ),
        'url_query'                 => array( '0', 'ЗАПРОС', 'QUERY' ),
+       'pagesincategory_all'       => array( '0', 'все', 'all' ),
+       'pagesincategory_pages'     => array( '0', 'страницы', 'pages' ),
+       'pagesincategory_subcats'   => array( '0', 'подкатегории', 'subcats' ),
+       'pagesincategory_files'     => array( '0', 'файлы', 'files' ),
 );
 
 
@@ -505,7 +524,7 @@ $messages = array(
 'feb' => 'фев',
 'mar' => 'мар',
 'apr' => 'апр',
-'may' => 'мая',
+'may' => 'май',
 'jun' => 'июн',
 'jul' => 'июл',
 'aug' => 'авг',
index 25f1bef..f701cd7 100644 (file)
@@ -366,7 +366,7 @@ $1',
 'policy-url' => 'Project:Правила',
 'portal' => 'Портал комуніты',
 'portal-url' => 'Project:Портал комуніты',
-'privacy' => 'Політіка сокочіня пріватных дан',
+'privacy' => 'Політіка сокочіня пріватных даных',
 'privacypage' => 'Project:Сокочіня пріватных дан',
 
 'badaccess' => 'Брак прав приступу',
@@ -529,9 +529,20 @@ $2',
 'welcomecreation-msg' => 'Ваше конто было вытворене.
 Не забудьте змінити свої [[Special:Preferences|наставлїня {{grammar:2sg|{{SITENAME}}}}]].',
 'yourname' => 'Імя хоснователя:',
+'userlogin-yourname' => 'Імя хоснователя',
+'userlogin-yourname-ph' => 'Уведьте ваше імя хоснователя',
+'createacct-helpusername-url' => '{{ns:Project}}:Імя хоснователя',
+'createacct-helpusername-link' => '[[{{MediaWiki:createacct-helpusername-url}}|(поможте мі зволити)]]',
 'yourpassword' => 'Гесло:',
+'userlogin-yourpassword' => 'Гесло',
+'userlogin-yourpassword-ph' => 'Уведьте ваше гесло',
+'createacct-yourpassword-ph' => 'Уведьте ваше гесло',
 'yourpasswordagain' => 'Повторяйте гесло:',
+'createacct-yourpasswordagain' => 'Потвердьте гесло',
+'createacct-yourpasswordagain-ph' => 'Уведьте гесло знову',
 'remembermypassword' => 'Запамнятати моє приголошіня на тім компютерї (максімално $1 {{PLURAL:$1|день|днів}})',
+'userlogin-remembermypassword' => 'Приголосити ня на довго',
+'userlogin-signwithsecure' => 'Хосновати забеспечене споїня',
 'securelogin-stick-https' => 'Останьте  припоєны через HTTPS по приголошіню',
 'yourdomainname' => 'Ваша домена:',
 'password-change-forbidden' => 'На тій вікі не можете мінити гесла.',
@@ -544,14 +555,28 @@ $2',
 'logout' => 'Одголосити',
 'userlogout' => 'Одголошіня',
 'notloggedin' => 'Не сьте приголошеный(а)',
+'userlogin-noaccount' => 'Не мате конто?',
+'userlogin-joinproject' => 'Придайте ся {{grammar:3sg|{{SITENAME}}}}',
 'nologin' => "До теперь не маєте конто? '''$1'''.",
 'nologinlink' => 'Створити конто',
 'createaccount' => 'Вытворити конто',
 'gotaccount' => "Уж сьте реґістрованы? '''$1'''.",
 'gotaccountlink' => 'Приголошіня',
 'userlogin-resetlink' => 'Забыли сьте вашы даны на приголошіня?',
+'userlogin-resetpassword-link' => 'Ресетовати ваше гесло',
+'helplogin-url' => 'Help:Приголошіня',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Поміч з приголошованём]]',
+'createacct-join' => 'Ниже уведьте вашы інформації',
+'createacct-emailrequired' => 'Адреса електронічной пошты',
+'createacct-emailoptional' => 'Адреса електронічной пошты (не обовязково)',
+'createacct-email-ph' => 'Уведьте вашу адресу електронічной пошты',
 'createaccountmail' => 'Схосновати дочасне гесло та загнати го на ниже написану адресу',
+'createacct-realname' => 'Правдиве імя (не обовязково)',
 'createaccountreason' => 'Причіна:',
+'createacct-reason' => 'Прічіна',
+'createacct-reason-ph' => 'Чом собі робите друге конто',
+'createacct-captcha' => 'Перевірка беспекы',
+'createacct-captcha-help-url' => '{{ns:Project}}:Жадость о конто',
 'badretype' => 'Вами написаны гесла не сугласять.',
 'userexists' => 'Уведжене імя хоснователя ся уж хоснує.
 Просиме, выберьте інше імя.',
@@ -1026,7 +1051,7 @@ $1",
 $1",
 'revdel-restore' => 'Змінити видимость',
 'revdel-restore-deleted' => 'вылучены ревізії',
-'revdel-restore-visible' => 'видительны ревізії',
+'revdel-restore-visible' => 'видимы ревізії',
 'pagehist' => 'Історія сторінкы',
 'deletedhist' => 'Вымазана історія',
 'revdelete-hide-current' => 'Хыба сховаваня положкы з $1 $2: їднать ся о сучасну ревізію.
@@ -2012,6 +2037,15 @@ $1',
 'listusers-noresult' => 'Ненайдженый жаден хоснователь.',
 'listusers-blocked' => '({{GENDER:$1|заблокованый|заблокована|заблокованый}})',
 
+# Special:ActiveUsers
+'activeusers' => 'Список актівных хоснователїв',
+'activeusers-intro' => 'Тото є список хоснователїв, котры были даяк актівны за {{plural:$1|остатнїй день|остатных $1 днїв}}.',
+'activeusers-count' => '$1 {{PLURAL:$1|едітованя|едітованя|едітовань}} бігом {{PLURAL:$3|остатнёго дня|остатнїх  $3 днїв}}',
+'activeusers-from' => 'Вказати хоснователїв, што ся зачінають на:',
+'activeusers-hidebots' => 'Сховати ботів',
+'activeusers-hidesysops' => 'Сховати адміністраторів',
+'activeusers-noresult' => 'Ненайдженый жаден хоснователь.',
+
 # Special:ListGroupRights
 'listgrouprights' => 'Права ґруп хоснователїв',
 'listgrouprights-summary' => 'Тото є список ґруп хоснователїв дефінованых на тій вікіi і&nbsp;їх приступовых прав.
@@ -2070,7 +2104,7 @@ $1',
 'usermessage-editor' => 'Сістемовый вістник',
 
 # Watchlist
-'watchlist' => 'СлÑ\97дованÑ\8b Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\8b',
+'watchlist' => 'СпиÑ\81ок Ñ\81лÑ\97дованÑ\8bÑ\85 Ñ\81Ñ\82оÑ\80Ñ\96нок',
 'mywatchlist' => 'Слїдованы сторінкы',
 'watchlistfor2' => 'Про $1 ($2)',
 'nowatchlist' => 'Ваш список слїдованых сторінок є порожнїй.',
@@ -2763,7 +2797,7 @@ $1',
 'tooltip-n-recentchanges' => 'Список послїднїх змін',
 'tooltip-n-randompage' => 'Іти на трафункову сторінку',
 'tooltip-n-help' => 'Посмотрити поміч',
-'tooltip-t-whatlinkshere' => 'СпиÑ\81ок Ð²Ñ\88Ñ\8bÑ\82кÑ\8bÑ\85 Ñ\81Ñ\82оÑ\80Ñ\96нок, Ñ\88Ñ\82о Ð¾Ð´ÐºÐ°Ð·Ñ\83Ñ\8eÑ\82Ñ\8c Ñ\81Ñ\8f на тоту сторінку',
+'tooltip-t-whatlinkshere' => 'СпиÑ\81ок Ð²Ñ\88Ñ\8bÑ\82кÑ\8bÑ\85 Ñ\81Ñ\82оÑ\80Ñ\96нок, Ñ\88Ñ\82о Ð·Ð°Ð³Ð°Ð½Ñ\8fÑ\8eÑ\82Ñ\8c на тоту сторінку',
 'tooltip-t-recentchangeslinked' => 'Послїднї зміны на сторінках, котры мають одказ на тїй сторінцї',
 'tooltip-feed-rss' => 'RSS канал про тоту сторінку',
 'tooltip-feed-atom' => 'Atom канал гевсёй сторінкы',
@@ -2946,7 +2980,7 @@ $1',
 
 
 Раховати ся будуть лем елементы (рядкы, што ся почінають з *).
-Першый одказ рядка має быти одказом на планый файл.
+Першый одказ рядка має быти одказом на файл, якому ся не дозволює зображованя на сторінках.
 Далшы одказы у тім самім рядку будуть уважены як выняткы, наприклад сторінкы, де зображіня може быти вложене.',
 
 # Metadata
@@ -2970,7 +3004,7 @@ $1',
 * gpslongitude
 * gpsaltitude',
 
-# EXIF tags
+# Exif tags
 'exif-imagewidth' => 'Шырька',
 'exif-imagelength' => 'Вышка',
 'exif-bitspersample' => 'Глубка фарбы',
@@ -3148,7 +3182,7 @@ $1',
 'exif-originalimageheight' => 'Вышка образчіка перед орїзанём',
 'exif-originalimagewidth' => 'Шырка образчіка перед орїзанём',
 
-# EXIF attributes
+# Exif attributes
 'exif-compression-1' => 'Нестиснутый',
 'exif-compression-2' => '1-дімензіоналне Гуффманове кодованя довжкы бігу CCITT Group 3',
 'exif-compression-3' => 'Кодованя факсів CCITT Group 3',
@@ -3555,12 +3589,6 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'version-entrypoints-header-entrypoint' => 'Вступный пункт',
 'version-entrypoints-header-url' => 'URL',
 
-# Special:FilePath
-'filepath' => 'Стежка ку файлу',
-'filepath-page' => 'Файл:',
-'filepath-submit' => 'Выконати',
-'filepath-summary' => 'Тота шпеціална сторінка вертать повну стежку к файлу. Образкы ся зобразять в повнім розлишіню, іншы тіпы файлів ся отворять в асоціованых проґрамах.',
-
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Гляданя дуплікатных файлів',
 'fileduplicatesearch-summary' => 'Гляданя дупліцітных файлів ся базує на їх геш функції.',
index 0c25f6c..71ae93f 100644 (file)
@@ -172,7 +172,7 @@ $specialPageAliases = array(
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#पुनर्निदेशन', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#पुनर्निदेशन', '#अनुप्रेषित', '#REDIRECT' ),
        'notoc'                     => array( '0', '__नैवअनुक्रमणी__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__नैवसंक्रमणका__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__अनुक्रमणीसचते__', '__FORCETOC__' ),
index d9b0d84..19f9c32 100644 (file)
@@ -51,12 +51,13 @@ $specialPageAliases = array(
        'Block'                     => array( 'Hehtte', 'Hehtte_geavaheaddji', 'Hehtte_IP' ),
        'Blockme'                   => array( 'Hehtte_mu' ),
        'Booksources'               => array( 'Girjegáldut' ),
-       'BrokenRedirects'           => array( 'Feaillalaš_stivremat', 'Feaillalaš_ođđasitstivremat' ),
+       'BrokenRedirects'           => array( 'Boatkanan_stivremat', 'Boatkanan_ođđasitstivremat' ),
        'Categories'                => array( 'Kategoriijat' ),
+       'ChangeEmail'               => array( 'Rievdat_E-poastta' ),
        'ComparePages'              => array( 'Veardit_siidduid' ),
        'Confirmemail'              => array( 'Sihkaraste_e-poastta' ),
        'Contributions'             => array( 'Rievdadusat' ),
-       'CreateAccount'             => array( 'Ráhkat_dovddaldaga' ),
+       'CreateAccount'             => array( 'Ráhkat_dovddaldaga', 'Ráhkat_konttu' ),
        'DeletedContributions'      => array( 'Sihkkojuvvon_rievdadusat' ),
        'Disambiguations'           => array( 'Liŋkkat_dárkonsiidduide' ),
        'DoubleRedirects'           => array( 'Guoktegeardásaš_ođđasitstivremat' ),
@@ -68,7 +69,7 @@ $specialPageAliases = array(
        'Listadmins'                => array( 'Administráhtorlistu', 'Listu_administráhtoriin' ),
        'Listbots'                  => array( 'Bohttalistu', 'Listu_bohtain' ),
        'Listfiles'                 => array( 'Fiilalogahallan' ),
-       'Listgrouprights'           => array( 'Listu_joavkkuid_vuoigavuođain' ),
+       'Listgrouprights'           => array( 'Listu_joavkkuid_vuoigatvuođain' ),
        'Listredirects'             => array( 'Stivrenlistu', 'Listu_stivremiin', 'Listu_ođđasitstivremiin' ),
        'Listusers'                 => array( 'Geavaheaddjelistu', 'Listu_geavaheddjiin' ),
        'Log'                       => array( 'Loggat', 'Logga' ),
@@ -94,10 +95,10 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'Erenoamáš_siiddut', 'Doaibmasiiddut' ),
        'Statistics'                => array( 'Statistihkat' ),
        'Unblock'                   => array( 'Sihko_hehttema' ),
-       'Uncategorizedcategories'   => array( 'Kategoriserekeahtes_kategoriijat' ),
-       'Uncategorizedimages'       => array( 'Kategoriserekeahtes_govat', 'Kategoriserekeahtes_fiillat' ),
-       'Uncategorizedpages'        => array( 'Kategoriserekeahtes_siiddut' ),
-       'Uncategorizedtemplates'    => array( 'Kategoriserekeahtes_mállet' ),
+       'Uncategorizedcategories'   => array( 'Klassifiserekeahtes_kategoriijat' ),
+       'Uncategorizedimages'       => array( 'Klassifiserekeahtes_fiillat', 'Klassifiserekeahtes_govat' ),
+       'Uncategorizedpages'        => array( 'Klassifiserekeahtes_siiddut' ),
+       'Uncategorizedtemplates'    => array( 'Klassifiserekeahtes_mállet' ),
        'Undelete'                  => array( 'Máhccat' ),
        'Unusedcategories'          => array( 'Geavatkeahtes_kategoriijat' ),
        'Unusedimages'              => array( 'Geavatkeahtes_govat', 'Geavatkeahtes_fiillat' ),
@@ -118,7 +119,22 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                  => array( '0', '#STIVREN', '#OĐĐASITSTIVREN', '#REDIRECT' ),
-       'numberofarticles'          => array( '1', 'ARTIHKKALIIDMEARRI', 'NUMBEROFARTICLES' ),
+       'notoc'                     => array( '0', '__IISISDOALLU__', '__IISIS__', '__NOTOC__' ),
+       'nogallery'                 => array( '0', '__IIGALLERIIJA__', '__NOGALLERY__' ),
+       'toc'                       => array( '0', '__SISDOALLU__', ' __SIS__', '__TOC__' ),
+       'noeditsection'             => array( '0', '__IIRIEVDADITOASI__', '__NOEDITSECTION__' ),
+       'numberofarticles'          => array( '1', 'ARTIHKKALIIDMEARRI', ' ARTIHKALMEARRI', 'NUMBEROFARTICLES' ),
+       'numberoffiles'             => array( '1', 'FIILLAIDMEARRI', 'FIILAMEARRI', ' GOVAIDMEARRI', ' GOVVAMEARRI', 'NUMBEROFFILES' ),
+       'numberofusers'             => array( '1', 'GEAVAHEDDJIIDMEARRI', ' GEAVAHEADDJIMEARRI', ' GEAVAHEADDJEMEARRI', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'       => array( '1', 'AKTIIVAGEAVAHEDDJIIDMEARRI', ' AKTIIVAGEAVAHEADDJIMEARRI', ' AKTIIVAGEAVAHEADDJEMEARRI', 'NUMBEROFACTIVEUSERS' ),
+       'numberofedits'             => array( '1', 'RIEVDADUSAIDMEARRI', ' RIEVDADUSMEARRI', 'NUMBEROFEDITS' ),
+       'subst'                     => array( '0', 'LIIBME:', 'SUBST:' ),
+       'img_thumbnail'             => array( '1', 'mini', 'thumbnail', 'thumb' ),
+       'img_manualthumb'           => array( '1', 'mini=$1', 'thumbnail=$1', 'thumb=$1' ),
+       'img_right'                 => array( '1', 'olgeš', 'right' ),
+       'img_left'                  => array( '1', 'gurut', 'left' ),
+       'img_center'                => array( '1', 'gasku', 'center', 'centre' ),
+       'img_link'                  => array( '1', 'liŋka=$1', 'link=$1' ),
 );
 
 $separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
index f4fe893..38c8d19 100644 (file)
@@ -3817,6 +3817,7 @@ Skupaj s programom bi morali bi prejeti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopijo
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Pot članka]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Pot skripta]',
 
+# Special:Redirect
 'redirect-legend' => 'Preusmeritev na datoteko ali stran',
 'redirect-submit' => 'Pojdi',
 'redirect-lookup' => 'Iskanje:',
index d2d5f6a..31d5b70 100644 (file)
@@ -746,7 +746,7 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'createacct-yourpasswordagain-ph' => 'Ange lösenordet igen',
 'remembermypassword' => 'Spara min inloggning på den här datorn (i max $1 {{PLURAL:$1|dygn|dygn}})',
 'userlogin-remembermypassword' => 'Håll mig inloggad',
-'userlogin-signwithsecure' => 'Logga in med säker server',
+'userlogin-signwithsecure' => 'Använd säker anslutning',
 'securelogin-stick-https' => 'Fortsätt vara ansluten till HTTPS efter inloggning',
 'yourdomainname' => 'Din domän',
 'password-change-forbidden' => 'Du kan inte ändra lösenord på denna wiki.',
@@ -767,6 +767,7 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'gotaccount' => "Har du redan ett användarkonto? '''$1'''.",
 'gotaccountlink' => 'Logga in',
 'userlogin-resetlink' => 'Har du glömt dina inloggningsuppgifter?',
+'userlogin-resetpassword-link' => 'Återställ ditt lösenord',
 'helplogin-url' => 'Help:Logging in',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjälp med inloggning]]',
 'createacct-join' => 'Ange din information nedan.',
@@ -784,9 +785,9 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'createacct-imgcaptcha-ph' => 'Fyll i texten du ser ovan',
 'createacct-submit' => 'Skapa ditt konto',
 'createacct-benefit-heading' => '{{SITENAME}} är skapad av människor som dig.',
-'createacct-benefit-body1' => 'redigeringar',
-'createacct-benefit-body2' => 'sidor',
-'createacct-benefit-body3' => 'nyliga bidragsgivare',
+'createacct-benefit-body1' => '{{PLURAL:$1|redigering|redigeringar}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|sida|sidor}}',
+'createacct-benefit-body3' => 'senaste {{PLURAL:$1|bidragsgivare}}',
 'badretype' => 'De lösenord du uppgett överensstämmer inte med varandra.',
 'userexists' => 'Det valda användarnamnet används redan.
 Var god välj ett annat namn.',
@@ -3919,6 +3920,7 @@ Du bör ha fått [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopia av GNU General Publi
 'version-entrypoints-header-entrypoint' => 'Startpunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Omdirigering efter filnamn, användar-ID eller versions-ID',
 'redirect-legend' => 'Omdirigera till en fil eller sida',
 'redirect-summary' => 'Den här specialsidan omdirigerar till en fil (efter filnamn), en sida (efter versions-id) eller en användarsida (efter användar-id).',
index 6105a11..f9f5b82 100644 (file)
@@ -3435,6 +3435,7 @@ $5
 'version-entrypoints-header-entrypoint' => 'ప్రవేశ బిందువు',
 'version-entrypoints-header-url' => 'చిరునామా',
 
+# Special:Redirect
 'redirect-submit' => 'వెళ్ళు',
 'redirect-value' => 'విలువ:',
 'redirect-user' => 'వాడుకరి ID',
index 36ee291..435be96 100644 (file)
@@ -21,6 +21,7 @@
  * @author Octahedron80
  * @author Passawuth
  * @author TMo3289
+ * @author Taweetham
  * @author Woraponboonkerd
  * @author לערי ריינהארט
  * @author จักรกฤช วงศ์สระหลวง (Jakkrit Vongsraluang) / PaePae
@@ -222,7 +223,7 @@ $messages = array(
 'tog-enotifwatchlistpages' => 'อีเมลหาเมื่อหน้าหรือไฟล์ในรายการเฝ้าดูมีการเปลี่ยนแปลง',
 'tog-enotifusertalkpages' => 'อีเมลหาเมื่อหน้าคุยกับผู้ใช้ของฉันมีการเปลี่ยนแปลง',
 'tog-enotifminoredits' => 'อีเมลหาเช่นกันสำหรับการแก้ไขหน้าและไฟล์เล็กน้อย',
-'tog-enotifrevealaddr' => 'à¹\80à¸\9cยà¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¹\83à¸\99อีà¹\80มลà¸\97ีà¹\88à¸\8aีà¹\89à¹\81à¸\88à¸\87',
+'tog-enotifrevealaddr' => 'à¹\80à¸\9bิà¸\94à¹\80à¸\9cยà¸\97ีà¹\88อยูà¹\88อีà¹\80มลà¹\8cà¸\82อà¸\87à¸\89ัà¸\99à¹\83à¸\99อีà¹\80มลà¹\8cà¹\81à¸\88à¹\89à¸\87à¹\80à¸\95ือà¸\99',
 'tog-shownumberswatching' => 'แสดงจำนวนผู้ใช้ที่เฝ้าดู',
 'tog-oldsig' => 'ลายเซ็นที่ใช้อยู่:',
 'tog-fancysig' => 'ใช้คำสั่งวิกิที่ปรากฏในลายเซ็นนี้ (โดยไม่มีลิงก์อัตโนมัติ)',
@@ -615,8 +616,8 @@ $1',
 'userlogin-yourpassword-ph' => 'กรอกรหัสผ่าน',
 'yourpasswordagain' => 'พิมพ์รหัสผ่านอีกครั้ง:',
 'remembermypassword' => 'จำการล็อกอินของฉันบนเบราเซอร์นี้ (นานสุด $1 วัน)',
-'userlogin-remembermypassword' => 'à¸\88ำà¸\89ัà¸\99',
-'userlogin-signwithsecure' => 'ลà¹\87อà¸\81อิà¸\99à¹\83à¸\99à¹\80à¸\8bิรà¹\8cà¸\9fà¹\80วอรà¹\8cปลอดภัย',
+'userlogin-remembermypassword' => 'à¹\83หà¹\89à¸\89ัà¸\99อยูà¹\88à¹\83à¸\99ระà¸\9aà¸\9a',
+'userlogin-signwithsecure' => 'à¹\83à¸\8aà¹\89à¸\81ารà¹\80à¸\8aืà¹\88อมà¸\95à¹\88อà¸\97ีà¹\88ปลอดภัย',
 'securelogin-stick-https' => 'ยังคงเชื่อมต่อกับ HTTPS หลังจากล็อกอิน',
 'yourdomainname' => 'โดเมนของคุณ:',
 'password-change-forbidden' => 'คุณไม่สามารถเปลี่ยนรหัสผ่านบนวิกินี้',
@@ -637,10 +638,12 @@ $1',
 'gotaccount' => "มีบัญชีแล้วใช่ไหม '''$1'''",
 'gotaccountlink' => 'ล็อกอิน',
 'userlogin-resetlink' => 'ลืมรายละเอียดล็อกอินของคุณหรือ',
+'userlogin-resetpassword-link' => 'รีเซ็ตรหัสผ่านของคุณ',
 'helplogin-url' => 'Help:การล็อกอิน',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|คำอธิบายเรื่องการล็อกอิน]]',
 'createaccountmail' => 'ใช้รหัสผ่านสุ่มชั่วคราวและส่งไปยังที่อยู่อีเมลที่ระบุด้านล่าง',
 'createaccountreason' => 'เหตุผล:',
+'createacct-submit' => 'สร้างบัญชีของคุณ',
 'badretype' => 'รหัสผ่านที่ใส่ไม่ตรงกัน',
 'userexists' => 'ชื่อผู้ใช้ที่กรอกมีผู้อื่นใช้ไปแล้ว กรุณาเลือกชื่ออื่น',
 'loginerror' => 'ล็อกอินผิดพลาด',
@@ -2400,7 +2403,7 @@ $1',
 'mycontris' => 'เรื่องที่เขียน',
 'contribsub2' => 'สำหรับ $1 ($2)',
 'nocontribs' => 'ไม่พบการเปลี่ยนแปลงตรงกับเงื่อนไขเหล่านี้',
-'uctop' => ' (บนสุด)',
+'uctop' => '(ล่าสุด)',
 'month' => 'จากเดือน (และก่อนหน้า):',
 'year' => 'จากปี (และก่อนหน้า):',
 
index 8dfc21b..1368166 100644 (file)
@@ -39,41 +39,46 @@ $namespaceNames = array(
 
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#ШИГЛЕДИР', '#REDIRECT' ),
-       'notoc'                     => array( '0', '__ДОПЧУЗУЧОК__', '__NOTOC__' ),
-       'toc'                       => array( '0', '__ДОПЧУЗУ__', '__TOC__' ),
-       'currentmonth'              => array( '1', 'АМГЫАЙ', 'АМГЫАЙ2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
-       'currentmonth1'             => array( '1', 'АМГЫАЙ1', 'CURRENTMONTH1' ),
-       'currentmonthname'          => array( '1', 'АМГЫАЙНЫҢАДЫ', 'CURRENTMONTHNAME' ),
-       'currentday'                => array( '1', 'АМГЫХҮН', 'CURRENTDAY' ),
-       'currentday2'               => array( '1', 'АМГЫХҮН2', 'CURRENTDAY2' ),
-       'currentdayname'            => array( '1', 'АМГЫХҮННҮҢАДЫ', 'CURRENTDAYNAME' ),
-       'currentyear'               => array( '1', 'АМГЫЧЫЛ', 'CURRENTYEAR' ),
-       'currenttime'               => array( '1', 'АМГЫҮЕ', 'CURRENTTIME' ),
-       'currenthour'               => array( '1', 'АМГЫШАК', 'CURRENTHOUR' ),
-       'numberofpages'             => array( '1', 'АРЫННАРНЫҢСАНЫ', 'NUMBEROFPAGES' ),
-       'numberofarticles'          => array( '1', 'ЧҮҮЛДЕРНИҢСАНЫ', 'NUMBEROFARTICLES' ),
-       'numberoffiles'             => array( '1', 'ФАЙЛДАРНЫҢСАНЫ', 'NUMBEROFFILES' ),
-       'numberofusers'             => array( '1', 'АЖЫГЛАКЧЫЛАРНЫҢСАНЫ', 'NUMBEROFUSERS' ),
-       'numberofedits'             => array( '1', 'ӨСКЕРЛИИШКИННЕРНИҢСАНЫ', 'NUMBEROFEDITS' ),
-       'pagename'                  => array( '1', 'АРЫННЫҢАДЫ', 'PAGENAME' ),
-       'namespace'                 => array( '1', 'АТТАРДЕЛГЕМИ', 'NAMESPACE' ),
-       'namespacee'                => array( '1', 'АТТАРДЕЛГЕМИ2', 'NAMESPACEE' ),
+       'redirect'                  => array( '0', '#көжүрүлге', '#ШИГЛЕДИР', '#перенаправление', '#перенапр', '#REDIRECT' ),
+       'notoc'                     => array( '0', '__ЭГЕ_ЧОК__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ),
+       'nogallery'                 => array( '0', '__ГАЛЕРЕЯ_ЧОК__', '__БЕЗ_ГАЛЕРЕИ__', '__NOGALLERY__' ),
+       'forcetoc'                  => array( '0', '__АЛБАН_ЭГЕ__', '__ОБЯЗАТЕЛЬНОЕ_ОГЛАВЛЕНИЕ__', '__ОБЯЗ_ОГЛ__', '__FORCETOC__' ),
+       'toc'                       => array( '0', '__ДОПЧУ__', '__ОГЛАВЛЕНИЕ__', '__ОГЛ__', '__TOC__' ),
+       'noeditsection'             => array( '0', '__ҮЛЕГ_ЭДИЛГЕЗИ_ЧОК__', '__БЕЗ_РЕДАКТИРОВАНИЯ_РАЗДЕЛА__', '__NOEDITSECTION__' ),
+       'currentmonth'              => array( '1', '__АМГЫ_АЙ', '__АМГЫ_АЙ_2__', 'ТЕКУЩИЙ_МЕСЯЦ', 'ТЕКУЩИЙ_МЕСЯЦ_2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+       'currentmonth1'             => array( '1', '__АМГЫ_АЙ_1__', 'ТЕКУЩИЙ_МЕСЯЦ_1', 'CURRENTMONTH1' ),
+       'currentmonthname'          => array( '1', 'АМГЫАЙНЫҢАДЫ', 'НАЗВАНИЕ_ТЕКУЩЕГО_МЕСЯЦА', 'CURRENTMONTHNAME' ),
+       'currentday'                => array( '1', 'АМГЫХҮН', 'ТЕКУЩИЙ_ДЕНЬ', 'CURRENTDAY' ),
+       'currentday2'               => array( '1', 'АМГЫХҮН2', 'ТЕКУЩИЙ_ДЕНЬ_2', 'CURRENTDAY2' ),
+       'currentdayname'            => array( '1', 'АМГЫХҮННҮҢАДЫ', 'НАЗВАНИЕ_ТЕКУЩЕГО_ДНЯ', 'CURRENTDAYNAME' ),
+       'currentyear'               => array( '1', 'АМГЫЧЫЛ', 'ТЕКУЩИЙ_ГОД', 'CURRENTYEAR' ),
+       'currenttime'               => array( '1', 'АМГЫҮЕ', 'ТЕКУЩЕЕ_ВРЕМЯ', 'CURRENTTIME' ),
+       'currenthour'               => array( '1', 'АМГЫШАК', 'ТЕКУЩИЙ_ЧАС', 'CURRENTHOUR' ),
+       'numberofpages'             => array( '1', 'АРЫННАРНЫҢСАНЫ', 'КОЛИЧЕСТВО_СТРАНИЦ', 'NUMBEROFPAGES' ),
+       'numberofarticles'          => array( '1', 'ЧҮҮЛДЕРНИҢСАНЫ', 'КОЛИЧЕСТВО_СТАТЕЙ', 'NUMBEROFARTICLES' ),
+       'numberoffiles'             => array( '1', 'ФАЙЛДАРНЫҢСАНЫ', 'КОЛИЧЕСТВО_ФАЙЛОВ', 'NUMBEROFFILES' ),
+       'numberofusers'             => array( '1', 'АЖЫГЛАКЧЫЛАРНЫҢСАНЫ', 'КОЛИЧЕСТВО_УЧАСТНИКОВ', 'NUMBEROFUSERS' ),
+       'numberofedits'             => array( '1', 'ӨСКЕРЛИИШКИННЕРНИҢСАНЫ', 'КОЛИЧЕСТВО_ПРАВОК', 'NUMBEROFEDITS' ),
+       'pagename'                  => array( '1', 'АРЫННЫҢАДЫ', 'НАЗВАНИЕ_СТРАНИЦЫ', 'PAGENAME' ),
+       'namespace'                 => array( '1', 'АТТАРДЕЛГЕМИ', 'ПРОСТРАНСТВО_ИМЁН', 'NAMESPACE' ),
+       'namespacee'                => array( '1', 'АТТАРДЕЛГЕМИ2', 'ПРОСТРАНСТВО_ИМЁН_2', 'NAMESPACEE' ),
        'namespacenumber'           => array( '1', 'АТТАРДЕЛГЕМИНИҢСАНЫ', 'NAMESPACENUMBER' ),
-       'talkspace'                 => array( '1', 'ЧУГААДЕЛГЕМИ', 'TALKSPACE' ),
-       'talkspacee'                => array( '1', 'ЧУГААДЕЛГЕМИ2', 'TALKSPACEE' ),
-       'img_right'                 => array( '1', 'оң', 'right' ),
-       'img_left'                  => array( '1', 'солагай', 'left' ),
-       'img_center'                => array( '1', 'төп', 'center', 'centre' ),
-       'sitename'                  => array( '1', 'САЙТТЫҢАДЫ', 'SITENAME' ),
-       'ns'                        => array( '0', 'АД:', 'NS:' ),
-       'nse'                       => array( '0', 'АД2:', 'NSE:' ),
-       'currentweek'               => array( '1', 'АМГЫЧЕДИХОНУК', 'CURRENTWEEK' ),
-       'currentdow'                => array( '1', 'АМГЫЧЕДИХОНУКТУҢХҮНҮ', 'CURRENTDOW' ),
-       'raw'                       => array( '0', 'ЧИГ:', 'RAW:' ),
-       'language'                  => array( '0', '#ДЫЛ:', '#LANGUAGE:' ),
-       'special'                   => array( '0', 'тускай', 'special' ),
-       'tag'                       => array( '0', 'демдек', 'tag' ),
+       'talkspace'                 => array( '1', 'ЧУГААДЕЛГЕМИ', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ', 'TALKSPACE' ),
+       'talkspacee'                => array( '1', 'ЧУГААДЕЛГЕМИ2', 'ПРОСТРАНСТВО_ОБСУЖДЕНИЙ_2', 'TALKSPACEE' ),
+       'img_right'                 => array( '1', 'оң', 'справа', 'right' ),
+       'img_left'                  => array( '1', 'солагай', 'слева', 'left' ),
+       'img_center'                => array( '1', 'төп', 'центр', 'center', 'centre' ),
+       'sitename'                  => array( '1', 'САЙТТЫҢАДЫ', 'НАЗВАНИЕ_САЙТА', 'SITENAME' ),
+       'ns'                        => array( '0', 'АД:', 'ПИ:', 'NS:' ),
+       'nse'                       => array( '0', 'АД2:', 'ПИК:', 'NSE:' ),
+       'currentweek'               => array( '1', 'АМГЫЧЕДИХОНУК', 'ТЕКУЩАЯ_НЕДЕЛЯ', 'CURRENTWEEK' ),
+       'currentdow'                => array( '1', 'АМГЫЧЕДИХОНУКТУҢХҮНҮ', 'ТЕКУЩИЙ_ДЕНЬ_НЕДЕЛИ', 'CURRENTDOW' ),
+       'raw'                       => array( '0', 'ЧИГ:', 'НЕОБРАБ:', 'RAW:' ),
+       'language'                  => array( '0', '#ДЫЛ:', '#ЯЗЫК:', '#LANGUAGE:' ),
+       'special'                   => array( '0', 'тускай', 'служебная', 'special' ),
+       'tag'                       => array( '0', 'демдек', 'метка', 'тег', 'тэг', 'tag' ),
+       'hiddencat'                 => array( '1', '__ЧАЖЫТ_АҢГЫЛАЛ__', '__СКРЫТАЯ_КАТЕГОРИЯ__', '__HIDDENCAT__' ),
+       'pagesincategory'           => array( '1', '__АҢГЫЛАЛ_АРЫННАРЫ__', 'СТРАНИЦ_В_КАТЕГОРИИ', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesincategory_all'       => array( '0', 'шупту', 'all' ),
        'pagesincategory_pages'     => array( '0', 'арыннар', 'pages' ),
        'pagesincategory_files'     => array( '0', 'файлдар', 'files' ),
index eefdd5f..575f499 100644 (file)
@@ -35,6 +35,12 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'تۈر مۇنازىرىسى',
 );
 
+$specialPageAliases = array(
+       'Allmessages'               => array( 'بارلىق_خەۋەرلەر' ),
+       'Allpages'                  => array( 'بارلىق_بەتلەر' ),
+       'Ancientpages'              => array( 'كونا_بەتلەر' ),
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'ئۇلانما ئاستى سىزىقى:',
index f28a396..9070c37 100644 (file)
@@ -309,7 +309,7 @@ $magicWords = array(
        'revisionmonth1'            => array( '1', 'МІСЯЦЬ_ВЕРСІЇ_1', 'МЕСЯЦ_ВЕРСИИ_1', 'REVISIONMONTH1' ),
        'revisionyear'              => array( '1', 'РІК_ВЕРСІЇ', 'ГОД_ВЕРСИИ', 'REVISIONYEAR' ),
        'revisiontimestamp'         => array( '1', 'МІТКА_ЧАСУ_ВЕРСІЇ', 'ОТМЕТКА_ВРЕМЕНИ_ВЕРСИИ', 'REVISIONTIMESTAMP' ),
-       'revisionuser'              => array( '1', 'Ð\92Ð\95РСÐ\86Я_Ð\9aÐ\9eРÐ\98СТУÐ\92Ð\90ЧÐ\90', 'Ð\92Ð\95РСÐ\98Я_УЧÐ\90СÐ\9dÐ\98Ð\9aÐ\90', 'Ð\92Ð\95РСÐ\98Я_УЧÐ\90СТÐ\9dÐ\98Ð\9aÐ\90', 'REVISIONUSER' ),
+       'revisionuser'              => array( '1', 'ВЕРСІЯ_КОРИСТУВАЧА', 'ВЕРСИЯ_УЧАСТНИКА', 'REVISIONUSER' ),
        'plural'                    => array( '0', 'МНОЖИНА:', 'МНОЖЕСТВЕННОЕ_ЧИСЛО:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'ПОВНА_АДРЕСА:', 'ПОЛНЫЙ_АДРЕС:', 'FULLURL:' ),
        'fullurle'                  => array( '0', 'ПОВНА_АДРЕСА_2:', 'ПОЛНЫЙ_АДРЕС_2:', 'FULLURLE:' ),
index b98bf29..a8d2ce4 100644 (file)
@@ -54,13 +54,13 @@ $specialPageAliases = array(
        'Ancientpages'              => array( 'قدیم_صفحات' ),
        'Badtitle'                  => array( 'خراب_عنوان' ),
        'Blankpage'                 => array( 'خالی_صفحہ' ),
-       'Block'                     => array( 'پابندی،_دستور_شبکی_پابندی،_پابندی_بر_صارف' ),
+       'Block'                     => array( 'پابندی', 'دستور_شبکی_پابندی', 'پابندی_بر_صارف' ),
        'Blockme'                   => array( 'میری_پابندی' ),
        'Booksources'               => array( 'کتابی_وسائل' ),
        'BrokenRedirects'           => array( 'شکستہ_رجوع_مکررات' ),
        'Categories'                => array( 'زمرہ_جات' ),
        'ChangeEmail'               => array( 'ڈاک_تبدیل' ),
-       'ChangePassword'            => array( 'کلمہ_شناخت_تبدیل،_تنظیم_کلمہ_شناخت' ),
+       'ChangePassword'            => array( 'کلمہ_شناخت_تبدیل', 'تنظیم_کلمہ_شناخت' ),
        'ComparePages'              => array( 'موازنہ_صفحات' ),
        'Confirmemail'              => array( 'تصدیق_ڈاک' ),
        'Contributions'             => array( 'شراکتیں' ),
@@ -78,15 +78,15 @@ $specialPageAliases = array(
        'Import'                    => array( 'درآمدگی' ),
        'Invalidateemail'           => array( 'ڈاک_تصدیق_منسوخ' ),
        'JavaScriptTest'            => array( 'تجربہ_جاوا_اسکرپٹ' ),
-       'BlockList'                 => array( 'فہرست_ممنوع،_فہرست_دستور_شبکی_ممنوع' ),
+       'BlockList'                 => array( 'فہرست_ممنوع', 'فہرست_دستور_شبکی_ممنوع' ),
        'LinkSearch'                => array( 'تلاش_روابط' ),
        'Listadmins'                => array( 'فہرست_منتظمین' ),
        'Listbots'                  => array( 'فہرست_روبہ_جات' ),
-       'Listfiles'                 => array( 'فہرست_املاف،_فہرست_تصاویر' ),
-       'Listgrouprights'           => array( 'فہرست_اختیارات_گروہ،_صارفی_گروہ_اختیارات' ),
+       'Listfiles'                 => array( 'فہرست_املاف', 'فہرست_تصاویر' ),
+       'Listgrouprights'           => array( 'فہرست_اختیارات_گروہ', 'صارفی_گروہ_اختیارات' ),
        'Listredirects'             => array( 'فہرست_رجوع_مکررات' ),
        'Listusers'                 => array( 'فہرست_صارفین،_صارف_فہرست' ),
-       'Log'                       => array( 'نوشتہ،_نوشتہ_جات' ),
+       'Log'                       => array( 'نوشتہ', 'نوشتہ_جات' ),
        'Lonelypages'               => array( 'یتیم_صفحات' ),
        'Longpages'                 => array( 'طویل_صفحات' ),
        'MergeHistory'              => array( 'ضم_تاریخچہ' ),
@@ -95,7 +95,7 @@ $specialPageAliases = array(
        'Mypage'                    => array( 'میرا_صفحہ' ),
        'Mytalk'                    => array( 'میری_گفتگو' ),
        'Myuploads'                 => array( 'میرے_زبراثقالات' ),
-       'Newimages'                 => array( 'جدید_املاف،_جدید_تصاویر' ),
+       'Newimages'                 => array( 'جدید_املاف', 'جدید_تصاویر' ),
        'Newpages'                  => array( 'جدید_صفحات' ),
        'PermanentLink'             => array( 'مستقل_ربط' ),
        'Popularpages'              => array( 'مقبول_صفحات' ),
@@ -103,7 +103,7 @@ $specialPageAliases = array(
        'Prefixindex'               => array( 'اشاریہ_سابقہ' ),
        'Protectedpages'            => array( 'محفوظ_صفحات' ),
        'Protectedtitles'           => array( 'محفوظ_عناوین' ),
-       'Randompage'                => array( 'تصادف،_تصادفی_مقالہ' ),
+       'Randompage'                => array( 'تصادف', 'تصادفی_مقالہ' ),
        'Randomredirect'            => array( 'تصادفی_رجوع_مکرر' ),
        'Recentchanges'             => array( 'حالیہ_تبدیلیاں' ),
        'Recentchangeslinked'       => array( 'متعلقہ_تبدیلیاں' ),
@@ -113,12 +113,12 @@ $specialPageAliases = array(
        'Specialpages'              => array( 'خصوصی_صفحات' ),
        'Statistics'                => array( 'شماریات' ),
        'Uncategorizedcategories'   => array( 'غیر_زمرہ_بند_زمرہ_جات' ),
-       'Uncategorizedimages'       => array( 'غیر_زمرہ_بند_املاف،_غیر_زمرہ_بند_تصاویر' ),
+       'Uncategorizedimages'       => array( 'غیر_زمرہ_بند_املاف', 'غیر_زمرہ_بند_تصاویر' ),
        'Uncategorizedpages'        => array( 'غیر_زمرہ_بند_صفحات' ),
        'Uncategorizedtemplates'    => array( 'غیر_زمرہ_بند_سانچے' ),
        'Undelete'                  => array( 'بحال' ),
        'Unusedcategories'          => array( 'غیر_مستعمل_زمرہ_جات' ),
-       'Unusedimages'              => array( 'غیر_مستعمل_املاف،_غیر_مستعمل_تصاویر' ),
+       'Unusedimages'              => array( 'غیر_مستعمل_املاف', 'غیر_مستعمل_تصاویر' ),
        'Unusedtemplates'           => array( 'غیر_مستعمل_سانچے' ),
        'Unwatchedpages'            => array( 'نادیدہ_صفحات' ),
        'Upload'                    => array( 'زبراثقال' ),
@@ -128,7 +128,7 @@ $specialPageAliases = array(
        'Version'                   => array( 'اخراجہ' ),
        'Wantedcategories'          => array( 'مطلوب_زمرہ_جات' ),
        'Wantedfiles'               => array( 'مطلوب_املاف' ),
-       'Wantedpages'               => array( 'مطلوب_صفحات،_شکستہ_روابط' ),
+       'Wantedpages'               => array( 'مطلوب_صفحات', 'شکستہ_روابط' ),
        'Wantedtemplates'           => array( 'مطلوب_سانچے' ),
        'Watchlist'                 => array( 'زیر_نظر_فہرست' ),
        'Whatlinkshere'             => array( 'یہاں_کس_کا_رابطہ' ),
@@ -140,9 +140,11 @@ $magicWords = array(
        'notoc'                     => array( '0', '_فہرست_نہیں_', '__NOTOC__' ),
        'toc'                       => array( '0', '__فہرست__', '__TOC__' ),
        'noeditsection'             => array( '0', '__ناتحریرقسم__', '__NOEDITSECTION__' ),
+       'pagename'                  => array( '1', 'نام_صفحہ', 'PAGENAME' ),
+       'namespace'                 => array( '1', 'نام_فضا', 'NAMESPACE' ),
        'msg'                       => array( '0', 'پیغام:', 'MSG:' ),
-       'subst'                     => array( '0', 'نقل:', 'SUBST:' ),
-       'safesubst'                 => array( '0', 'محفوظ_نقل:', 'SAFESUBST:' ),
+       'subst'                     => array( '0', 'جا:', 'نقل:', 'SUBST:' ),
+       'safesubst'                 => array( '0', 'محفوظ_جا:', 'محفوظ_نقل:', 'SAFESUBST:' ),
        'img_thumbnail'             => array( '1', 'تصغیر', 'thumbnail', 'thumb' ),
        'img_right'                 => array( '1', 'دائیں', 'right' ),
        'img_left'                  => array( '1', 'بائیں', 'left' ),
index a0a21fc..cf15c01 100644 (file)
@@ -53,7 +53,7 @@ $namespaceAliases = array(
 );
 
 $magicWords = array(
-       'redirect'                  => array( '0', '#YONALTIRISH', '#REDIRECT' ),
+       'redirect'                  => array( '0', '#YOʻNALTIRISH', '#YONALTIRISH', '#REDIRECT' ),
        'notoc'                     => array( '0', '__ICHIDAGILARYOQ__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__GALEREYAYOQ__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__ICHIDAGILARMAJBURIY__', '__FORCETOC__' ),
@@ -89,6 +89,10 @@ $magicWords = array(
        'numberofedits'             => array( '1', 'OZGARISHSONI', 'NUMBEROFEDITS' ),
        'numberofviews'             => array( '1', 'KORISHSONI', 'NUMBEROFVIEWS' ),
        'pagename'                  => array( '1', 'SAHIFANOMI', 'PAGENAME' ),
+       'namespace'                 => array( '1', 'NOMFAZO', 'NAMESPACE' ),
+       'gender'                    => array( '0', 'JINS', 'GENDER:' ),
+       'currentweek'               => array( '1', 'JORIYHAFTA', 'CURRENTWEEK' ),
+       'language'                  => array( '0', '#TIL:', '#LANGUAGE:' ),
        'numberofadmins'            => array( '1', 'ADMINISTRATORSONI', 'NUMBEROFADMINS' ),
        'special'                   => array( '0', 'maxsus', 'special' ),
        'tag'                       => array( '0', 'yorliq', 'tag' ),
index 400f7bb..76aabb7 100644 (file)
@@ -580,8 +580,8 @@ Nó desmentegarte de personałixare łe [[Special:Preferences|prefarense de {{SI
 'createacct-yourpasswordagain' => 'Conferma la password',
 'createacct-yourpasswordagain-ph' => 'Inserissi da novo la password',
 'remembermypassword' => 'Tiente in mente la password su sto conputer (par un massimo de $1 {{PLURAL:$1|zorno|zorni}})',
-'userlogin-remembermypassword' => 'Tiente in mente chi son',
-'userlogin-signwithsecure' => 'Entra con un server seguro',
+'userlogin-remembermypassword' => 'Tienme colegà',
+'userlogin-signwithsecure' => 'Entra con na conesion segura',
 'securelogin-stick-https' => 'Resta tacà par HTTPS dopo èssar entrà',
 'yourdomainname' => 'Spesifegare el dominio',
 'password-change-forbidden' => 'Nó xe posibiłe canbiar ła password so sta wiki.',
@@ -602,6 +602,7 @@ Nó desmentegarte de personałixare łe [[Special:Preferences|prefarense de {{SI
 'gotaccount' => "Sito zà iscrito? '''$1'''.",
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => "Desmentegà i to dati d'aceso?",
+'userlogin-resetpassword-link' => 'Reinposta la to password',
 'helplogin-url' => 'Help:Login',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuto col login]]',
 'createacct-join' => 'Meti le to informassion qua soto.',
@@ -619,9 +620,9 @@ Nó desmentegarte de personałixare łe [[Special:Preferences|prefarense de {{SI
 'createacct-imgcaptcha-ph' => 'Inserissi el testo che te vedi de sora',
 'createacct-submit' => 'Crea la to utensa',
 'createacct-benefit-heading' => '{{SITENAME}} xe fato da gente come ti.',
-'createacct-benefit-body1' => 'contributi',
-'createacct-benefit-body2' => 'pagine',
-'createacct-benefit-body3' => 'contributori recenti',
+'createacct-benefit-body1' => '$1 {{PLURAL:$1|contributo|contributi}}',
+'createacct-benefit-body2' => '$1 {{PLURAL:$1|pàxena|pàxene}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|contributor recente|contributori recenti}}',
 'badretype' => 'Le do password le xe difarenti.',
 'userexists' => 'El nome utente inserido vien xa doparà da cualchedun altro.
 Prova co un nome utente difarente.',
@@ -3660,6 +3661,7 @@ Insieme co sto programa te dovaressi 'ver ricevùo na copia de la Licensa Public
 'version-entrypoints-header-entrypoint' => 'Punti de aceso',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => 'Rimando par file, utente, o ID de revision.',
 'redirect-legend' => 'Rimandar a un file o na pagina',
 'redirect-summary' => "Sta pagina speciale la rimanda a un file (dato el nome del file), a na pagina (dato l'ID de la revision), o a na pagina utente (dato l'ID de l'utente).",
index 58017c0..adf0dc5 100644 (file)
@@ -57,7 +57,7 @@ $namespaceAliases = array(
 
 $specialPageAliases = array(
        'Activeusers'               => array( 'Người_dùng_tích_cực' ),
-       'Allmessages'               => array( 'Mọi_thông_báo' ),
+       'Allmessages'               => array( 'Mọi_thông_điệp', 'Mọi_thông_báo' ),
        'Allpages'                  => array( 'Mọi_bài' ),
        'Ancientpages'              => array( 'Trang_cũ' ),
        'Badtitle'                  => array( 'Tựa_đề_hỏng' ),
@@ -72,7 +72,7 @@ $specialPageAliases = array(
        'ComparePages'              => array( 'So_sánh_trang' ),
        'Confirmemail'              => array( 'Xác_nhận_thư' ),
        'Contributions'             => array( 'Đóng_góp' ),
-       'CreateAccount'             => array( 'Đăng_ký', 'Đăng_kí' ),
+       'CreateAccount'             => array( 'Mở_tài_khoản', 'Đăng_ký', 'Đăng_kí' ),
        'Deadendpages'              => array( 'Trang_đường_cùng' ),
        'DeletedContributions'      => array( 'Đóng_góp_bị_xóa', 'Đóng_góp_bị_xoá' ),
        'Disambiguations'           => array( 'Trang_định_hướng' ),
@@ -102,6 +102,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'Tìm_MIME' ),
        'Mostcategories'            => array( 'Thể_loại_lớn_nhất' ),
        'Mostimages'                => array( 'Tập_tin_liên_kết_nhiều_nhất' ),
+       'Mostinterwikis'            => array( 'Nhiều_liên_wiki_nhất', 'Nhiều_interwiki_nhất' ),
        'Mostlinked'                => array( 'Liên_kết_nhiều_nhất' ),
        'Mostlinkedcategories'      => array( 'Thể_loại_liên_kết_nhiều_nhất' ),
        'Mostlinkedtemplates'       => array( 'Bản_mẫu_liên_kết_nhiều_nhất', 'Tiêu_bản_liên_kết_nhiều_nhất' ),
@@ -113,18 +114,19 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Tập_tin_tôi' ),
        'Newimages'                 => array( 'Tập_tin_mới', 'Hình_mới' ),
        'Newpages'                  => array( 'Trang_mới' ),
+       'PagesWithProp'             => array( 'Trang_theo_thuộc_tính' ),
        'PasswordReset'             => array( 'Tái_tạo_mật_khẩu', 'Đặt_lại_mật_khẩu' ),
        'PermanentLink'             => array( 'Liên_kết_thường_trực' ),
        'Popularpages'              => array( 'Trang_phổ_biến' ),
        'Preferences'               => array( 'Tùy_chọn', 'Tuỳ_chọn' ),
        'Prefixindex'               => array( 'Tiền_tố' ),
-       'Protectedpages'            => array( 'Trang_khóa' ),
-       'Protectedtitles'           => array( 'Tựa_đề_bị_khóa' ),
+       'Protectedpages'            => array( 'Trang_khóa', 'Trang_khoá' ),
+       'Protectedtitles'           => array( 'Tựa_đề_bị_khóa', 'Tựa_đề_bị_khoá' ),
        'Randompage'                => array( 'Ngẫu_nhiên' ),
        'Randomredirect'            => array( 'Đổi_hướng_ngẫu_nhiên' ),
        'Recentchanges'             => array( 'Thay_đổi_gần_đây' ),
        'Recentchangeslinked'       => array( 'Thay_đổi_liên_quan' ),
-       'Revisiondelete'            => array( 'Xóa_phiên_bản' ),
+       'Revisiondelete'            => array( 'Xóa_phiên_bản', 'Xoá_phiên_bản' ),
        'Search'                    => array( 'Tìm_kiếm' ),
        'Shortpages'                => array( 'Trang_ngắn' ),
        'Specialpages'              => array( 'Trang_đặc_biệt' ),
@@ -145,7 +147,7 @@ $specialPageAliases = array(
        'UploadStash'               => array( 'Hàng_đợi_tải_lên' ),
        'Userlogin'                 => array( 'Đăng_nhập' ),
        'Userlogout'                => array( 'Đăng_xuất' ),
-       'Userrights'                => array( 'Quyền_thành_viên' ),
+       'Userrights'                => array( 'Quyền_thành_viên', 'Quyền_người_dùng' ),
        'Version'                   => array( 'Phiên_bản' ),
        'Wantedcategories'          => array( 'Thể_loại_cần_thiết' ),
        'Wantedfiles'               => array( 'Tập_tin_cần_thiết' ),
@@ -158,7 +160,7 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                  => array( '0', '#đổi', '#REDIRECT' ),
-       'notoc'                     => array( '0', '__KHÔNGMỤCMỤC__', '__NOTOC__' ),
+       'notoc'                     => array( '0', '__KHÔNGMỤCLỤC__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__KHÔNGALBUM__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__LUÔNMỤCLỤC__', '__FORCETOC__' ),
        'toc'                       => array( '0', '__MỤCLỤC__', '__TOC__' ),
@@ -192,6 +194,7 @@ $magicWords = array(
        'pagename'                  => array( '1', 'TÊNTRANG', 'PAGENAME' ),
        'pagenamee'                 => array( '1', 'TÊNTRANG2', 'PAGENAMEE' ),
        'namespace'                 => array( '1', 'KHÔNGGIANTÊN', 'NAMESPACE' ),
+       'namespacenumber'           => array( '1', 'SỐKHÔNGGIANTÊN', 'NAMESPACENUMBER' ),
        'talkspace'                 => array( '1', 'KGTTHẢOLUẬN', 'TALKSPACE' ),
        'subjectspace'              => array( '1', 'KGTNỘIDUNG', 'SUBJECTSPACE', 'ARTICLESPACE' ),
        'fullpagename'              => array( '1', 'TÊNTRANGĐỦ', 'FULLPAGENAME' ),
@@ -211,6 +214,13 @@ $magicWords = array(
        'img_framed'                => array( '1', 'khung', 'framed', 'enframed', 'frame' ),
        'img_page'                  => array( '1', 'trang=$1', 'trang $1', 'page=$1', 'page $1' ),
        'img_upright'               => array( '1', 'đứng', 'đứng=$1', 'đứng $1', 'upright', 'upright=$1', 'upright $1' ),
+       'img_baseline'              => array( '1', 'chân-chữ', 'baseline' ),
+       'img_sub'                   => array( '1', 'chỉ-số-dưới', 'sub' ),
+       'img_super'                 => array( '1', 'chỉ-số-trên', 'super', 'sup' ),
+       'img_top'                   => array( '1', 'trên', 'top' ),
+       'img_text_top'              => array( '1', 'trên-chữ', 'text-top' ),
+       'img_bottom'                => array( '1', 'dưới', 'bottom' ),
+       'img_text_bottom'           => array( '1', 'dưới-chữ', 'text-bottom' ),
        'img_link'                  => array( '1', 'liên_kết=$1', 'link=$1' ),
        'img_class'                 => array( '1', 'lớp=$1', 'class=$1' ),
        'int'                       => array( '0', 'NỘI:', 'INT:' ),
@@ -235,13 +245,23 @@ $magicWords = array(
        'revisionmonth'             => array( '1', 'THÁNGBẢN', 'REVISIONMONTH' ),
        'revisionmonth1'            => array( '1', 'THÁNGBẢN1', 'REVISIONMONTH1' ),
        'revisionyear'              => array( '1', 'NĂMBẢN', 'REVISIONYEAR' ),
+       'revisiontimestamp'         => array( '1', 'MỐCTHỜIGIANBẢN', 'DẤUTHỜIGIANBẢN', 'REVISIONTIMESTAMP' ),
+       'revisionuser'              => array( '1', 'NGƯỜIDÙNGBẢN', 'REVISIONUSER' ),
        'plural'                    => array( '0', 'SỐNHIỀU:', 'PLURAL:' ),
        'fullurl'                   => array( '0', 'URLĐỦ:', 'FULLURL:' ),
+       'canonicalurl'              => array( '0', 'URLCHUẨN:', 'CANONICALURL:' ),
+       'lcfirst'                   => array( '0', 'CHỮĐẦUHOA:', 'LCFIRST:' ),
+       'ucfirst'                   => array( '0', 'CHỮĐẦUTHƯỜNG:', 'UCFIRST:' ),
+       'lc'                        => array( '0', 'CHỮHOA:', 'LC:' ),
+       'uc'                        => array( '0', 'CHỮTHƯỜNG:', 'UC:' ),
        'displaytitle'              => array( '1', 'TÊNHIỂNTHỊ', 'DISPLAYTITLE' ),
        'newsectionlink'            => array( '1', '__LIÊNKẾTMỤCMỚI__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'          => array( '1', '__KHÔNGLIÊNKẾTMỤCMỚI__', '__NONEWSECTIONLINK__' ),
        'currentversion'            => array( '1', 'BẢNNÀY', 'CURRENTVERSION' ),
        'urlencode'                 => array( '0', 'MÃHÓAURL:', 'URLENCODE:' ),
+       'anchorencode'              => array( '0', 'MÃHÓANEO', 'ANCHORENCODE' ),
+       'currenttimestamp'          => array( '1', 'MỐCTHỜIGIANNÀY', 'DẤUTHỜIGIANNÀY', 'CURRENTTIMESTAMP' ),
+       'localtimestamp'            => array( '1', 'MỐCTHỜIGIANĐỊAPHƯƠNG', 'DẤUTHỜIGIANĐỊAPHƯƠNG', 'LOCALTIMESTAMP' ),
        'language'                  => array( '0', '#NGÔNNGỮ:', '#LANGUAGE:' ),
        'contentlanguage'           => array( '1', 'NGÔNNGỮNỘIDUNG', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
        'pagesinnamespace'          => array( '1', 'CỠKHÔNGGIANTÊN:', 'CỠKGT:', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
@@ -253,6 +273,8 @@ $magicWords = array(
        'hiddencat'                 => array( '1', '__THỂLOẠIẨN__', '__HIDDENCAT__' ),
        'pagesincategory'           => array( '1', 'CỠTHỂLOẠI', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                  => array( '1', 'CỠTRANG', 'PAGESIZE' ),
+       'index'                     => array( '1', '__CHỈMỤC__', '__INDEX__' ),
+       'noindex'                   => array( '1', '__KHÔNGCHỈMỤC__', '__NOINDEX__' ),
        'numberingroup'             => array( '1', 'CỠNHÓM', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'            => array( '1', '__ĐỔIHƯỚNGNHẤTĐỊNH__', '__STATICREDIRECT__' ),
        'protectionlevel'           => array( '1', 'MỨCKHÓA', 'MỨCKHOÁ', 'PROTECTIONLEVEL' ),
@@ -724,7 +746,7 @@ Hãy nhớ thay đổi [[Special:Preferences|tùy chọn cá nhân {{SITENAME}}]
 'createacct-yourpasswordagain-ph' => 'Nhập mật khẩu lần nữa',
 'remembermypassword' => 'Nhớ thông tin đăng nhập của tôi trên máy tính này (cho đến $1 ngày)',
 'userlogin-remembermypassword' => 'Giữ trạng thái đăng nhập',
-'userlogin-signwithsecure' => 'Đăng nhập bằng máy chủ an toàn',
+'userlogin-signwithsecure' => 'Sử dụng kết nối an toàn',
 'securelogin-stick-https' => 'Giữ kết nối với HTTPS sau khi đăng nhập',
 'yourdomainname' => 'Tên miền của bạn:',
 'password-change-forbidden' => 'Bạn không thể đổi mật khẩu trên wiki này.',
@@ -745,6 +767,7 @@ Hãy nhớ thay đổi [[Special:Preferences|tùy chọn cá nhân {{SITENAME}}]
 'gotaccount' => "Đã mở tài khoản rồi? '''$1'''.",
 'gotaccountlink' => 'Đăng nhập',
 'userlogin-resetlink' => 'Quên mất thông tin đăng nhập?',
+'userlogin-resetpassword-link' => 'Đặt lại mật khẩu của bạn',
 'helplogin-url' => 'Help:Đăng nhập',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Trợ giúp đăng nhập]]',
 'createacct-join' => 'Nhập thông tin của bạn bên dưới.',
@@ -3999,6 +4022,7 @@ hoặc [//www.gnu.org/licenses/old-licenses/gpl-2.0.html đọc nó trực tuy
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath?uselang=vi Đường dẫn bài]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath?uselang=vi Đường dẫn kịch bản]',
 
+# Special:Redirect
 'redirect' => 'Đổi hướng đến tập tin, người dùng, hoặc số phiên bản',
 'redirect-legend' => 'Đổi hướng đến tập tin hoặc trang',
 'redirect-summary' => 'Trang đặc biệt này đổi hướng đến một tập tin (theo tên tập tin được cho vào), trang (theo số phiên bản được cho vào), hoặc trang cá nhân (theo số thành viên).',
index 94ebb88..51b6b8b 100644 (file)
@@ -3841,6 +3841,7 @@ MediaWiki发表时预期有用,但对此'''无任何保证''',亦无隐含
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath 条目路径]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath 脚本路径]',
 
+# Special:Redirect
 'redirect' => '重定向',
 'redirect-legend' => '重定向至一个文件或页面',
 'redirect-summary' => '本特殊页面会重定向到一个文件(给予文件名),一个页面(给予修订版本ID),或一个用户页面(给予用户数字ID)。',
index f51b373..bd15a5b 100644 (file)
@@ -178,6 +178,7 @@ $specialPageAliases = array(
        'Randomredirect'            => array( '隨機重定向頁面' ),
        'Recentchanges'             => array( '最近更改' ),
        'Recentchangeslinked'       => array( '鏈出更改' ),
+       'Redirect'                  => array( '重定向' ),
        'Revisiondelete'            => array( '刪除或恢復版本' ),
        'Search'                    => array( '搜索' ),
        'Shortpages'                => array( '短頁面' ),
@@ -211,6 +212,7 @@ $specialPageAliases = array(
 );
 
 $magicWords = array(
+       'redirect'                  => array( '0', '#重定向', '#REDIRECT' ),
        'notoc'                     => array( '0', '__無目錄__', '__无目录__', '__NOTOC__' ),
        'nogallery'                 => array( '0', '__無圖庫__', '__无图库__', '__NOGALLERY__' ),
        'forcetoc'                  => array( '0', '__強制目錄__', '__强显目录__', '__FORCETOC__' ),
@@ -232,10 +234,10 @@ $magicWords = array(
        'img_page'                  => array( '1', '頁=$1', '$1頁', '页数=$1', '$1页', 'page=$1', 'page $1' ),
        'img_link'                  => array( '1', '連結=$1', '链接=$1', 'link=$1' ),
        'sitename'                  => array( '1', '網站名稱', '站点名称', 'SITENAME' ),
-       'ns'                        => array( '0', '名字空間', '名字空间:', 'NS:' ),
-       'nse'                       => array( '0', '名字空間E', '名字空间E:', 'NSE:' ),
-       'localurl'                  => array( '0', '本地URL', '本地URL:', 'LOCALURL:' ),
-       'localurle'                 => array( '0', '本地URLE', '本地URLE:', 'LOCALURLE:' ),
+       'ns'                        => array( '0', '名字空間:', '名字空间:', 'NS:' ),
+       'nse'                       => array( '0', '名字空間E:', '名字空间E:', 'NSE:' ),
+       'localurl'                  => array( '0', '本地URL:', 'LOCALURL:' ),
+       'localurle'                 => array( '0', '本地URLE:', 'LOCALURLE:' ),
        'pageid'                    => array( '0', '頁面ID', '页面ID', 'PAGEID' ),
        'server'                    => array( '0', '伺服器', '服务器', 'SERVER' ),
        'servername'                => array( '0', '伺服器名稱', '服务器名', 'SERVERNAME' ),
@@ -244,6 +246,7 @@ $magicWords = array(
        'nocontentconvert'          => array( '0', '__不轉換內容__', '__不转换内容__', '__NOCONTENTCONVERT__', '__NOCC__' ),
        'displaytitle'              => array( '1', '顯示標題', '显示标题', 'DISPLAYTITLE' ),
        'currentversion'            => array( '1', '當前版本', '当前版本', 'CURRENTVERSION' ),
+       'language'                  => array( '0', '#語言:', '#语言:', '#LANGUAGE:' ),
        'hiddencat'                 => array( '1', '__隱藏分類__', '__隐藏分类__', '__HIDDENCAT__' ),
        'staticredirect'            => array( '1', '__靜態重定向__', '__静态重定向__', '__STATICREDIRECT__' ),
 );
@@ -3815,6 +3818,7 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 'version-entrypoints-header-entrypoint' => '入口點',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
 'redirect' => '重定向檔案、用戶ID或頁面修訂ID',
 'redirect-legend' => '重定向到檔案或頁面',
 'redirect-summary' => '此特殊頁面重定向到檔案(指定的檔案名稱)、頁面 (指定的頁面修訂ID) 或用戶頁面(指定的用戶ID數值)。',
index 685c868..1c592a9 100644 (file)
@@ -158,6 +158,7 @@ class CopyFileBackend extends Maintenance {
                $ops = array();
                $fsFiles = array();
                $copiedRel = array(); // for output message
+               $wikiId = $src->getWikiId();
 
                // Download the batch of source files into backend cache...
                if ( $this->hasOption( 'missingonly' ) ) {
@@ -177,7 +178,7 @@ class CopyFileBackend extends Maintenance {
                        $srcPath = $src->getRootStoragePath() . "/$backendRel/$srcPathRel";
                        $dstPath = $dst->getRootStoragePath() . "/$backendRel/$srcPathRel";
                        if ( $this->hasOption( 'utf8only' ) && !mb_check_encoding( $srcPath, 'UTF-8' ) ) {
-                               $this->error( "Detected illegal (non-UTF8) path for $srcPath." );
+                               $this->error( "$wikiId: Detected illegal (non-UTF8) path for $srcPath." );
                                continue;
                        } elseif ( !$this->hasOption( 'missingonly' )
                                && $this->filesAreSame( $src, $dst, $srcPath, $dstPath ) )
@@ -189,18 +190,18 @@ class CopyFileBackend extends Maintenance {
                                ? $fsFiles[$srcPath]
                                : $src->getLocalReference( array( 'src' => $srcPath, 'latest' => 1 ) );
                        if ( !$fsFile ) {
-                               if ( $src->fileExists( array( 'src' => $srcPath ) ) === false ) {
-                                       $this->error( "File '$srcPath' was listed but must have been deleted." );
-                                       continue;
+                               $src->clearCache( array( $srcPath ) );
+                               if ( $src->fileExists( array( 'src' => $srcPath, 'latest' => 1 ) ) === false ) {
+                                       $this->error( "$wikiId: File '$srcPath' was listed but does not exist." );
                                } else {
-                                       $this->error( "Could not get local copy of $srcPath." );
+                                       $this->error( "$wikiId: Could not get local copy of $srcPath." );
                                }
                                continue;
                        } elseif ( !$fsFile->exists() ) {
                                // FSFileBackends just return the path for getLocalReference() and paths with
                                // illegal slashes may get normalized to a different path. This can cause the
                                // local reference to not exist...skip these broken files.
-                               $this->error( "Detected possible illegal path for $srcPath." );
+                               $this->error( "$wikiId: Detected possible illegal path for $srcPath." );
                                continue;
                        }
                        $fsFiles[] = $fsFile; // keep TempFSFile objects alive as needed
@@ -208,7 +209,7 @@ class CopyFileBackend extends Maintenance {
                        $status = $dst->prepare( array( 'dir' => dirname( $dstPath ), 'bypassReadOnly' => 1 ) );
                        if ( !$status->isOK() ) {
                                $this->error( print_r( $status->getErrorsArray(), true ) );
-                               $this->error( "Could not copy $srcPath to $dstPath.", 1 ); // die
+                               $this->error( "$wikiId: Could not copy $srcPath to $dstPath.", 1 ); // die
                        }
                        $ops[] = array( 'op' => 'store',
                                'src' => $fsFile->getPath(), 'dst' => $dstPath, 'overwrite' => 1 );
@@ -225,7 +226,7 @@ class CopyFileBackend extends Maintenance {
                $ellapsed_ms = floor( ( microtime( true ) - $t_start ) * 1000 );
                if ( !$status->isOK() ) {
                        $this->error( print_r( $status->getErrorsArray(), true ) );
-                       $this->error( "Could not copy file batch.", 1 ); // die
+                       $this->error( "$wikiId: Could not copy file batch.", 1 ); // die
                } elseif ( count( $copiedRel ) ) {
                        $this->output( "\nCopied these file(s) [{$ellapsed_ms}ms]:\n" .
                                implode( "\n", $copiedRel ) . "\n\n" );
index b3d8174..2c9e92b 100644 (file)
@@ -1973,7 +1973,7 @@ class specialChemicalsourcesTest extends pageTest {
  ** returns the help screen - so currently a lot of the tests aren't actually doing much
  ** because something wasn't right in the query.
  **
- ** @todo: Incomplete / unfinished; Runs too fast (suggests not much testing going on).
+ ** @todo Incomplete / unfinished; Runs too fast (suggests not much testing going on).
  */
 class api extends pageTest {
 
@@ -2543,7 +2543,7 @@ function runWikiTest( pageTest $test, &$testname, $can_overwrite = false ) {
                if ( !$valid ) print "\nW3C web validation failed - view details with: html2text " . DIRECTORY . "/" . $testname . ".validator_output.html";
        }
 
-       // Get tidy to check the page, unless we already know it produces non-XHTML output.
+       // Get tidy to check the page, unless we already know it produces non-(X)HTML output.
        if ( $test->tidyValidate() ) {
                $valid = tidyCheckFile( $testname . HTML_FILE ) && $valid;
        }
index b99cce0..050b86e 100644 (file)
@@ -4123,6 +4123,7 @@ Variants for Chinese language",
        'signatures'            => 'Signatures',
        'CoreParserFunctions'   => 'Core parser functions',
        'version'               => 'Special:Version',
+       'redirect'              => 'Special:Redirect',
        'fileduplicatesearch'   => 'Special:FileDuplicateSearch',
        'special-specialpages'  => 'Special:SpecialPages',
        'special-blank'         => 'Special:BlankPage',
index 61ebe62..555feaa 100644 (file)
@@ -185,7 +185,7 @@ class NamespaceConflictChecker extends Maintenance {
        }
 
        /**
-        * @todo: do this for reals
+        * @todo Do this for real
         * @param $key
         * @param $prefix
         * @param $fix
index 8b1fcdb..1b92f19 100644 (file)
@@ -105,11 +105,10 @@ class DumpRenderer extends Maintenance {
                $output = $content->getParserOutput( $title, null, $options );
 
                file_put_contents( $filename,
-                       "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" " .
-                       "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" .
-                       "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" .
+                       "<!DOCTYPE html>\n" .
+                       "<html lang=\"en\" dir=\"ltr\">\n" .
                        "<head>\n" .
-                       "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n" .
+                       "<meta charset=\"UTF-8\" />\n" .
                        "<title>" . htmlspecialchars( $display ) . "</title>\n" .
                        "</head>\n" .
                        "<body>\n" .
index 1ff6815..94b2537 100644 (file)
@@ -82,10 +82,6 @@ TEXT;
                        $collation = Collation::singleton();
                }
 
-               // Collation sanity check: in some cases the constructor will work,
-               // but this will raise an exception, breaking all category pages
-               $collation->getFirstLetterData();
-
                $options = array(
                        'LIMIT' => self::BATCH_SIZE,
                        'ORDER BY' => 'cl_to, cl_type, cl_from',
index 0d8b330..ddcefda 100644 (file)
@@ -61,7 +61,10 @@ return array(
         * See Vector for an example.
         */
        'skins.cologneblue' => array(
-               'styles' => array( 'cologneblue/screen.css' => array( 'media' => 'screen' ) ),
+               'styles' => array(
+                       'cologneblue/screen.css' => array( 'media' => 'screen' ),
+                       'cologneblue/print.css' => array( 'media' => 'print' ),
+               ),
                'remoteBasePath' => $GLOBALS['wgStylePath'],
                'localBasePath' => $GLOBALS['wgStyleDirectory'],
        ),
@@ -927,7 +930,7 @@ return array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.undelete.js',
        ),
        'mediawiki.special.upload' => array(
-               // @TODO: merge in remainder of mediawiki.legacy.upload
+               // @todo merge in remainder of mediawiki.legacy.upload
                'scripts' => 'resources/mediawiki.special/mediawiki.special.upload.js',
                'messages' => array(
                        'widthheight',
index f945fa9..5ba77a1 100644 (file)
@@ -71,7 +71,7 @@
 
                actionPaths = mw.config.get( 'wgActionPaths' );
 
-               // @todo: Does MediaWiki give action path or query param
+               // @todo Does MediaWiki give action path or query param
                // precedence ? If the former, move this to the bottom
                action = mw.util.getParamValue( 'action', url );
                if ( action !== null ) {
index ab57314..3c841e5 100644 (file)
@@ -59,6 +59,7 @@ table.mw-enhanced-rc td.mw-enhanced-rc-nested {
        background: url(images/arrow-expanded.png) no-repeat left bottom;
 }
 
-.mw-changeslist-line-watched .mw-title {
+.mw-changeslist-line-watched .mw-title,
+.mw-enhanced-watched .mw-enhanced-rc-time {
        font-weight: bold;
 }
index 3ada578..d766b64 100644 (file)
@@ -39,7 +39,7 @@ class SkinCologneBlue extends SkinTemplate {
         * @param $out OutputPage
         */
        function setupSkinUserCss( OutputPage $out ) {
-               $out->addModuleStyles( 'mediawiki.legacy.shared' );
+               parent::setupSkinUserCss( $out );
                $out->addModuleStyles( 'mediawiki.legacy.oldshared' );
                $out->addModuleStyles( 'skins.cologneblue' );
        }
@@ -316,7 +316,8 @@ class CologneBlueTemplate extends BaseTemplate {
                ob_start();
 ?>
        </div>
-       <div id="footer" role="contentinfo">
+       <div id="footer">
+               <div id="footer-navigation" role="navigation">
 <?php
                // Page-related links
                echo $this->bottomLinks();
@@ -328,8 +329,10 @@ class CologneBlueTemplate extends BaseTemplate {
                        $this->getSkin()->aboutLink(),
                        $this->searchForm( 'footer' )
                ) );
-               echo "\n<br />";
-
+?>
+               </div>
+               <div id="footer-info" role="contentinfo">
+<?php
                // Standard footer info
                $footlinks = $this->getFooterLinks();
                if ( $footlinks['info'] ) {
@@ -338,6 +341,7 @@ class CologneBlueTemplate extends BaseTemplate {
                        }
                }
 ?>
+               </div>
        </div>
 </div>
 <div id="mw-navigation">
diff --git a/skins/cologneblue/print.css b/skins/cologneblue/print.css
new file mode 100644 (file)
index 0000000..d4b0551
--- /dev/null
@@ -0,0 +1,6 @@
+#sitetitle,
+#sitesub,
+#titlelinks,
+#footer-navigation {
+       display: none;
+}
index e8c851f..1f44689 100644 (file)
@@ -521,7 +521,8 @@ div#footer {
        border-top: 1px solid #fabd23;
        border-bottom: 1px solid #fabd23;
        margin: .6em 0 1em 0;
-       padding: .4em 0 1.2em 0;
+       overflow: hidden;
+       padding: .4em 0 .3em 0;
        text-align: center;
        font-size: 90%;
 }
index 24dbc97..05e935b 100644 (file)
@@ -4333,6 +4333,27 @@ mótmælenda[[söfnuður|söfnuðir]]xxx
 </p>
 !! end
 
+!! test
+Parsoid link trail escaping
+!! options
+parsoid=html2wt,html2html
+!! input
+[[apple]]<nowiki/>s
+!! result
+<p><a rel="mw:WikiLink" href="Apple">apple</a>s</p>
+!! end
+
+!! test
+Parsoid link prefix escaping
+!! options
+language=is
+parsoid=html2wt,html2html
+!! input
+Aðrir mótmælenda<nowiki/>[[söfnuður]]
+!! result
+<p>Aðrir mótmælenda<a rel="mw:WikiLink" href="Söfnuður">söfnuður</a></p>
+!! end
+
 !! test
 Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
 !! input
@@ -4938,7 +4959,7 @@ List interrupted by empty line or heading
 <ul><li><ul><li> bar
 </li></ul>
 </li></ul>
-<h2><span class="mw-headline" id="A_heading">A heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A heading">edit</a>]</span></h2>
 <ul><li> Another list item
 </li></ul>
 
@@ -6018,8 +6039,8 @@ Bug 6563: Edit link generation for section shown by <includeonly>
 !! input
 {{includeonly section}}
 !! result
-<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-1" title="Template:Includeonly section">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Section_T-1">Section T-1</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-2" title="Template:Includeonly section">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-1" title="Template:Includeonly section">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection">[<a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-2" title="Template:Includeonly section">edit</a>]</span></h2>
 
 !! end
 
@@ -6045,7 +6066,7 @@ Bug 6563: Edit link generation for section suppressed by <includeonly>
 </includeonly>
 ==Section 1==
 !! result
-<h2><span class="mw-headline" id="Section_1">Section 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span></h2>
 
 !! end
 
@@ -8135,13 +8156,13 @@ More
 ===Smaller headline===
 Blah blah
 !! result
-<h2><span class="mw-headline" id="Headline_1">Headline 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
 <p>Some text
 </p>
-<h2><span class="mw-headline" id="Headline_2">Headline 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline 2">edit</a>]</span></h2>
 <p>More
 </p>
-<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Smaller headline">edit</a>]</span></h3>
+<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Smaller headline">edit</a>]</span></h3>
 <p>Blah blah
 </p>
 !! end
@@ -8180,14 +8201,14 @@ Some text
 </li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Headline_1">Headline 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Subheadline 1">edit</a>]</span></h3>
-<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Skipping a level">edit</a>]</span></h5>
-<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Skipping a level">edit</a>]</span></h6>
-<h2><span class="mw-headline" id="Headline_2">Headline 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Headline 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Subheadline 1">edit</a>]</span></h3>
+<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Skipping a level">edit</a>]</span></h5>
+<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Skipping a level">edit</a>]</span></h6>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Headline 2">edit</a>]</span></h2>
 <p>Some text
 </p>
-<h3><span class="mw-headline" id="Another_headline">Another headline</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Another headline">edit</a>]</span></h3>
+<h3><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Another headline">edit</a>]</span></h3>
 
 !! end
 
@@ -8235,16 +8256,16 @@ Handling of sections up to level 6 and beyond
 </li>
 </ul>
 </td></tr></table>
-<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Level 1 Heading">edit</a>]</span></h1>
-<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Level 2 Heading">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Level 3 Heading">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Level 4 Heading">edit</a>]</span></h4>
-<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Level 5 Heading">edit</a>]</span></h5>
-<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Level 6 Heading">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Edit section: = Level 7 Heading=">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Edit section: == Level 8 Heading==">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a>]</span></h6>
-<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a>]</span></h6>
+<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Level 1 Heading">edit</a>]</span></h1>
+<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Level 2 Heading">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Level 3 Heading">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Level 4 Heading">edit</a>]</span></h4>
+<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Level 5 Heading">edit</a>]</span></h5>
+<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Level 6 Heading">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Edit section: = Level 7 Heading=">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Edit section: == Level 8 Heading==">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a>]</span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a>]</span></h6>
 
 !! end
 
@@ -8277,12 +8298,12 @@ TOC regression (bug 9764)
 </li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
-<h3><span class="mw-headline" id="title_1.2">title 1.2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_2.1">title 2.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
 
 !! end
 
@@ -8313,12 +8334,12 @@ wgMaxTocLevel=3
 </li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
-<h3><span class="mw-headline" id="title_1.2">title 1.2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_2.1">title 2.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a>]</span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a>]</span></h3>
 
 !! end
 
@@ -8343,11 +8364,11 @@ wgMaxTocLevel=3
 <li class="toclevel-1 tocsection-5"><a href="#Section_2"><span class="tocnumber">2</span> <span class="toctext">Section 2</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Section_1">Section 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a>]</span></h3>
-<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a>]</span></h4>
-<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span></h4>
-<h2><span class="mw-headline" id="Section_2">Section 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a>]</span></h3>
+<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a>]</span></h4>
+<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a>]</span></h4>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a>]</span></h2>
 
 !! end
 
@@ -8358,8 +8379,8 @@ Resolving duplicate section names
 == Foo bar ==
 == Foo bar ==
 !! result
-<h2><span class="mw-headline" id="Foo_bar">Foo bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo bar">edit</a>]</span></h2>
 
 !! end
 
@@ -8369,8 +8390,8 @@ Resolving duplicate section names with differing case (bug 10721)
 == Foo bar ==
 == Foo Bar ==
 !! result
-<h2><span class="mw-headline" id="Foo_bar">Foo bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
 
 !! end
 
@@ -8389,10 +8410,10 @@ __NOTOC__
 {{sections}}
 ==Section 4==
 !! result
-<h2><span class="mw-headline" id="Section_0">Section 0</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 0">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="Section_1">Section 1</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-1" title="Template:Sections">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="Section_2">Section 2</span> <span class="mw-editsection">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-2" title="Template:Sections">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Section_4">Section 4</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 4">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 0">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-1" title="Template:Sections">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection">[<a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-2" title="Template:Sections">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 4">edit</a>]</span></h2>
 
 !! end
 
@@ -8403,8 +8424,8 @@ __NOEDITSECTION__
 ==Section 1==
 ==Section 2==
 !! result
-<h2><span class="mw-headline" id="Section_1">Section 1</span> </h2>
-<h2><span class="mw-headline" id="Section_2">Section 2</span> </h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span></h2>
+<h2><span class="mw-headline" id="Section_2">Section 2</span></h2>
 
 !! end
 
@@ -8413,7 +8434,7 @@ Link inside a section heading
 !! input
 ==Section with a [[Main Page|link]] in it==
 !! result
-<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section with a link in it">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section with a link in it">edit</a>]</span></h2>
 
 !! end
 
@@ -8435,9 +8456,9 @@ __TOC__
 <li class="toclevel-1 tocsection-3"><a href="#title_2"><span class="tocnumber">2</span> <span class="toctext">title 2</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="title_1">title 1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
-<h3><span class="mw-headline" id="title_1.1">title 1.1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
-<h2><span class="mw-headline" id="title_2">title 2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a>]</span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a>]</span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 2">edit</a>]</span></h2>
 
 !! end
 
@@ -8459,10 +8480,10 @@ The line above must have a trailing space!
 --> <!-- -->
 But just in case it doesn't...
 !! result
-<h1><span class="mw-headline" id=".3D">=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a>]</span></h1>
 <p>The line above must have a trailing space!
 </p>
-<h1><span class="mw-headline" id=".3D_2">=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a>]</span></h1>
 <p>But just in case it doesn't...
 </p>
 !! end
@@ -8498,19 +8519,19 @@ section 5
 <li class="toclevel-1 tocsection-5"><a href="#text_.22_text"><span class="tocnumber">5</span> <span class="toctext">text " text</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="text_.3E_text">text &gt; text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: text > text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.3E_text">text &gt; text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: text > text">edit</a>]</span></h2>
 <p>section 1
 </p>
-<h2><span class="mw-headline" id="text_.3C_text">text &lt; text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: text &lt; text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.3C_text">text &lt; text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: text &lt; text">edit</a>]</span></h2>
 <p>section 2
 </p>
-<h2><span class="mw-headline" id="text_.26_text">text &amp; text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: text &amp; text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.26_text">text &amp; text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: text &amp; text">edit</a>]</span></h2>
 <p>section 3
 </p>
-<h2><span class="mw-headline" id="text_.27_text">text ' text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: text ' text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: text ' text">edit</a>]</span></h2>
 <p>section 4
 </p>
-<h2><span class="mw-headline" id="text_.22_text">text " text</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a>]</span></h2>
 <p>section 5
 </p>
 !! end
@@ -8532,10 +8553,10 @@ Headers with excess '=' characters
 <li class="toclevel-1 tocsection-4"><a href="#.3Ditalic_heading"><span class="tocnumber">4</span> <span class="toctext">=<i>italic</i> heading</span></a></li>
 </ul>
 </td></tr></table>
-<h1><span class="mw-headline" id="foo.3D">foo=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo=">edit</a>]</span></h1>
-<h1><span class="mw-headline" id=".3Dfoo">=foo</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =foo">edit</a>]</span></h1>
-<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a>]</span></h1>
-<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo=">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =foo">edit</a>]</span></h1>
+<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a>]</span></h1>
+<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a>]</span></h1>
 
 !! end
 
@@ -8569,12 +8590,12 @@ __NOEDITSECTION__
 </li>
 </ul>
 </td></tr></table>
-<h1><span class="mw-headline" id="Header_1">Header 1</span> </h1>
-<h2><span class="mw-headline" id="Header_1.1">Header 1.1</span> </h2>
-<h2><span class="mw-headline" id="Header_1.2">Header 1.2</span> </h2>
-<h1><span class="mw-headline" id="Header_2">Header 2</span> </h1>
-<h2><span class="mw-headline" id="Header_2.1">Header 2.1</span> </h2>
-<h2><span class="mw-headline" id="Header_2.2">Header 2.2</span> </h2>
+<h1><span class="mw-headline" id="Header_1">Header 1</span></h1>
+<h2><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
+<h2><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
+<h1><span class="mw-headline" id="Header_2">Header 2</span></h1>
+<h2><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
+<h2><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
 
 !! end
 
@@ -9861,7 +9882,7 @@ Fuzz testing: Parser14
 == onmouseover= ==
 http://__TOC__
 !! result
-<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a>]</span></h2>
 http://<table id="toc" class="toc"><tr><td><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
@@ -9876,7 +9897,7 @@ Fuzz testing: Parser14-table
 ==a==
 {| STYLE=__TOC__
 !! result
-<h2><span class="mw-headline" id="a">a</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: a">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="a">a</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: a">edit</a>]</span></h2>
 <table style="&#95;_TOC&#95;_">
 <tr><td></td></tr>
 </table>
@@ -11673,7 +11694,7 @@ Inclusion of !userCanEdit() content
 !! input
 {{MediaWiki:Fake}}
 !! result
-<h2><span class="mw-headline" id="header">header</span> <span class="mw-editsection">[<a href="/index.php?title=MediaWiki:Fake&amp;action=edit&amp;section=T-1" title="MediaWiki:Fake">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="header">header</span><span class="mw-editsection">[<a href="/index.php?title=MediaWiki:Fake&amp;action=edit&amp;section=T-1" title="MediaWiki:Fake">edit</a>]</span></h2>
 
 !! end
 
@@ -11704,12 +11725,12 @@ Out-of-order TOC heading levels
 </li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="2">2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: 2">edit</a>]</span></h2>
-<h6><span class="mw-headline" id="6">6</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: 6">edit</a>]</span></h6>
-<h3><span class="mw-headline" id="3">3</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: 3">edit</a>]</span></h3>
-<h1><span class="mw-headline" id="1">1</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: 1">edit</a>]</span></h1>
-<h5><span class="mw-headline" id="5">5</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: 5">edit</a>]</span></h5>
-<h2><span class="mw-headline" id="2_2">2</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: 2">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="2">2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: 2">edit</a>]</span></h2>
+<h6><span class="mw-headline" id="6">6</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: 6">edit</a>]</span></h6>
+<h3><span class="mw-headline" id="3">3</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: 3">edit</a>]</span></h3>
+<h1><span class="mw-headline" id="1">1</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: 1">edit</a>]</span></h1>
+<h5><span class="mw-headline" id="5">5</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: 5">edit</a>]</span></h5>
+<h2><span class="mw-headline" id="2_2">2</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: 2">edit</a>]</span></h2>
 
 !! end
 
@@ -11816,7 +11837,7 @@ anchorencode encodes like the TOC generator: (bug 18431)
 {{anchorencode: _ +:.3A%3A&&amp;]] }}
 __NOEDITSECTION__
 !! result
-<h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&amp;&amp;]]</span> </h3>
+<h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&amp;&amp;]]</span></h3>
 <p>.2B:.3A.253A.26.26.5D.5D
 </p>
 !! end
@@ -12067,7 +12088,7 @@ language=sr variant=sr-ec
 !! input
 == -{Naslov}- ==
 !! result
-<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уредите одељак „Naslov“">уреди</a>]</span></h2>
+<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уредите одељак „Naslov“">уреди</a>]</span></h2>
 
 !! end
 
@@ -12408,7 +12429,7 @@ Morwen/13: Unclosed link followed by heading
 !! result
 <p>[[link
 </p>
-<h2><span class="mw-headline" id="heading">heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a>]</span></h2>
 
 !! end
 
@@ -12420,7 +12441,7 @@ HHP2.1: Heuristics for headings in preprocessor parenthetical structures
 !! result
 <p>{{foo|
 </p>
-<h1><span class="mw-headline" id="heading">heading</span> </h1>
+<h1><span class="mw-headline" id="heading">heading</span></h1>
 
 !! end
 
@@ -12432,7 +12453,7 @@ HHP2.2: Heuristics for headings in preprocessor parenthetical structures
 !! result
 <p>{{foo|
 </p>
-<h2><span class="mw-headline" id="heading">heading</span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a>]</span></h2>
 
 !! end
 
@@ -13252,7 +13273,7 @@ __TOC__
 <li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Lost episodes">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Lost episodes">edit</a>]</span></h2>
 
 !! end
 
@@ -13269,7 +13290,7 @@ __TOC__
 <li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: should be bold then normal text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: should be bold then normal text">edit</a>]</span></h2>
 
 !! end
 
@@ -13286,7 +13307,7 @@ __TOC__
 <li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Image">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Image">edit</a>]</span></h2>
 
 !! end
 
@@ -13303,7 +13324,7 @@ __TOC__
 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a>]</span></h2>
 
 !! end
 
@@ -13322,7 +13343,7 @@ QED
 <li class="toclevel-1 tocsection-1"><a href="#Proof:_2_.3C_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 &lt; 3</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a>]</span></h2>
 <p><small>Hanc marginis exiguitas non caperet.</small>
 QED
 </p>
@@ -13342,8 +13363,8 @@ __TOC__
 <li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo Bar">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_Bar"><i>Foo</i> <b>Bar</b></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo Bar">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a>]</span></h2>
 
 !! end
 
@@ -13361,8 +13382,8 @@ __TOC__
 <li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b"&gt;Evilbye</sup></span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Hello">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b"&gt;Evilbye</sup></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b&quot;>Evilbye">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Hello">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b"&gt;Evilbye</sup></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b&quot;>Evilbye">edit</a>]</span></h2>
 
 !! end
 
@@ -13389,11 +13410,11 @@ __TOC__
 <li class="toclevel-1 tocsection-5"><a href="#Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span class="tocnumber">5</span> <span class="toctext"><span dir="ltr">Attributes after dir on these span tags must be deleted from the TOC</span></span></a></li>
 </ul>
 </td></tr></table>
-<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: C++">edit</a>]</span></h2>
-<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: זבנג!">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
-<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: C++">edit</a>]</span></h2>
+<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: זבנג!">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a>]</span></h2>
 
 !! end
 
@@ -13410,7 +13431,7 @@ title=[[Main Page]]
 !! input
 {{int:Bug32057}}
 !! result
-<h2><span class="mw-headline" id="Headline_text">Headline text</span> <span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Headline text">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection">[<a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Headline text">edit</a>]</span></h2>
 
 !! end
 
@@ -13512,7 +13533,7 @@ nowiki inside link inside heading (bug 18295)
 !! input
 ==[[foo|x<nowiki>y</nowiki>z]]==
 !! result
-<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span> <span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: xyz">edit</a>]</span></h2>
+<h2><span class="mw-headline" id="xyz"><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">xyz</a></span><span class="mw-editsection">[<a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: xyz">edit</a>]</span></h2>
 
 !! end
 
index 440f866..25ba29e 100644 (file)
@@ -173,7 +173,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                $this->called['setUp'] = 1;
 
                /*
-               //@todo: global variables to restore for *every* test
+               // @todo global variables to restore for *every* test
                array(
                        'wgLang',
                        'wgContLang',
@@ -847,7 +847,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                }
 
                // give up
-               // @todo: Inside a test, we could skip the test as incomplete.
+               // @todo Inside a test, we could skip the test as incomplete.
                //        But frequently, this is used in fixture setup.
                throw new MWException( "No namespace defaults to wikitext!" );
        }
diff --git a/tests/phpunit/includes/HashRingTest.php b/tests/phpunit/includes/HashRingTest.php
new file mode 100644 (file)
index 0000000..2d47fdf
--- /dev/null
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * @group HashRing
+ */
+class HashRingTest extends MediaWikiTestCase {
+       function testHashRing() {
+               $ring = new HashRing( array( 's1' => 1, 's2' => 1, 's3' => 2, 's4' => 2, 's5' => 2, 's6' => 3 ) );
+
+               $locations = array();
+               for ( $i=0; $i<20; $i++ ) {
+                       $locations[ "hello$i"] = $ring->getLocation( "hello$i" );
+               }
+               $expectedLocations = array(
+                       "hello0" => "s5",
+                       "hello1" => "s6",
+                       "hello2" => "s2",
+                       "hello3" => "s5",
+                       "hello4" => "s6",
+                       "hello5" => "s4",
+                       "hello6" => "s5",
+                       "hello7" => "s4",
+                       "hello8" => "s5",
+                       "hello9" => "s5",
+                       "hello10" => "s3",
+                       "hello11" => "s6",
+                       "hello12" => "s1",
+                       "hello13" => "s3",
+                       "hello14" => "s3",
+                       "hello15" => "s5",
+                       "hello16" => "s4",
+                       "hello17" => "s6",
+                       "hello18" => "s6",
+                       "hello19" => "s3"
+               );
+
+               $this->assertEquals( $expectedLocations, $locations, 'Items placed at proper locations' );
+
+               $locations = array();
+               for ( $i=0; $i<5; $i++ ) {
+                       $locations[ "hello$i"] = $ring->getLocations( "hello$i", 2 );
+               }
+
+               $expectedLocations = array(
+                       "hello0" => array( "s5", "s6" ),
+                       "hello1" => array( "s6", "s4" ),
+                       "hello2" => array( "s2", "s1" ),
+                       "hello3" => array( "s5", "s6" ),
+                       "hello4" => array( "s6", "s4" ),
+               );
+               $this->assertEquals( $expectedLocations, $locations, 'Items placed at proper locations' );
+       }
+}
index 4e010d4..ecfe418 100644 (file)
@@ -37,7 +37,6 @@ class HtmlTest extends MediaWikiTestCase {
                        'wgLanguageCode' => $langCode,
                        'wgContLang' => $langObj,
                        'wgLang' => $langObj,
-                       'wgHtml5' => true,
                        'wgWellFormedXml' => false,
                ) );
        }
@@ -70,6 +69,31 @@ class HtmlTest extends MediaWikiTestCase {
                );
        }
 
+       public function dataXmlMimeType() {
+               return array(
+                       // ( $mimetype, $isXmlMimeType )
+                       # HTML is not an XML MimeType
+                       array( 'text/html', false ),
+                       # XML is an XML MimeType
+                       array( 'text/xml', true ),
+                       array( 'application/xml', true ),
+                       # XHTML is an XML MimeType
+                       array( 'application/xhtml+xml', true ),
+                       # Make sure other +xml MimeTypes are supported
+                       # SVG is another random MimeType even though we don't use it
+                       array( 'image/svg+xml', true ),
+                       # Complete random other MimeTypes are not XML
+                       array( 'text/plain', false ),
+               );
+       }
+
+       /**
+        * @dataProvider dataXmlMimeType
+        */
+       public function testXmlMimeType( $mimetype, $isXmlMimeType ) {
+               $this->assertEquals( $isXmlMimeType, Html::isXmlMimeType( $mimetype ) );
+       }
+
        public function testExpandAttributesSkipsNullAndFalse() {
 
                ### EMPTY ########
@@ -117,14 +141,6 @@ class HtmlTest extends MediaWikiTestCase {
                        Html::expandAttributes( array( 'selected' => true ) ),
                        'Boolean attributes have empty string value when value is true (wgWellFormedXml)'
                );
-
-               $this->setMwGlobals( 'wgHtml5', false );
-
-               $this->assertEquals(
-                       ' selected="selected"',
-                       Html::expandAttributes( array( 'selected' => true ) ),
-                       'Boolean attributes have their key as value when value is true (wgWellFormedXml, wgHTML5 = false)'
-               );
        }
 
        /**
index ae551c0..4e6d3ea 100644 (file)
@@ -147,7 +147,7 @@ class LinksUpdateTest extends MediaWikiTestCase {
                ) );
        }
 
-       #@todo: test recursive, too!
+       // @todo test recursive, too!
 
        protected function assertLinksUpdate( Title $title, ParserOutput $parserOutput, $table, $fields, $condition, array $expectedRows ) {
                $update = new LinksUpdate( $title, $parserOutput );
index 56967de..8e476b3 100644 (file)
@@ -225,7 +225,7 @@ class RecentChangeTest extends MediaWikiTestCase {
        }
 
        /**
-        * @todo: Emulate these edits somehow and extract
+        * @todo Emulate these edits somehow and extract
         * raw edit summary from RecentChange object
         * --
         */
index 3b8e5cf..00b1f29 100644 (file)
@@ -365,7 +365,7 @@ class RevisionStorageTest extends MediaWikiTestCase {
                $page = $this->createPage( 'RevisionStorageTest_testIsCurrent', 'Lorem Ipsum', CONTENT_MODEL_WIKITEXT );
                $rev1 = $page->getRevision();
 
-               # @todo: find out if this should be true
+               # @todo find out if this should be true
                # $this->assertTrue( $rev1->isCurrent() );
 
                $rev1x = Revision::newFromId( $rev1->getId() );
@@ -374,7 +374,7 @@ class RevisionStorageTest extends MediaWikiTestCase {
                $page->doEditContent( ContentHandler::makeContent( 'Bla bla', $page->getTitle(), CONTENT_MODEL_WIKITEXT ), 'second rev' );
                $rev2 = $page->getRevision();
 
-               # @todo: find out if this should be true
+               # @todo find out if this should be true
                # $this->assertTrue( $rev2->isCurrent() );
 
                $rev1x = Revision::newFromId( $rev1->getId() );
index 968aaba..f35a05f 100644 (file)
@@ -63,7 +63,7 @@ class RevisionTest_ContentHandlerUseDB extends RevisionStorageTest {
         */
        public function testGetContentFormat() {
                try {
-                       //@todo: change this to test failure on using a non-standard (but supported) format
+                       // @todo change this to test failure on using a non-standard (but supported) format
                        //       for a content model supported in the given location. As of 1.21, there are
                        //       no alternative formats for any of the standard content models that could be
                        //       used for this though.
index c84f10c..b745423 100644 (file)
@@ -71,8 +71,6 @@ class SanitizerTest extends MediaWikiTestCase {
         */
        function testRemovehtmltagsOnHtml5Tags( $tag, $escaped ) {
                $this->setMwGlobals( array(
-                       # Enable HTML5 mode
-                       'wgHtml5' => true,
                        'wgUseTidy' => false
                ) );
 
@@ -101,18 +99,43 @@ class SanitizerTest extends MediaWikiTestCase {
                );
        }
 
-       function testSelfClosingTag() {
-               $this->setMwGlobals( array(
-                       'wgUseTidy' => false
-               ) );
-
-               $this->assertEquals(
-                       '<div>Hello world</div>',
-                       Sanitizer::removeHTMLtags( '<div>Hello world</div />' ),
-                       'Self-closing closing div'
+       function dataRemoveHTMLtags() {
+               return array(
+                       // former testSelfClosingTag
+                       array(
+                               '<div>Hello world</div />',
+                               '<div>Hello world</div>',
+                               'Self-closing closing div'
+                       ),
+                       // Make sure special nested HTML5 semantics are not broken
+                       // http://www.whatwg.org/html/text-level-semantics.html#the-kbd-element
+                       array(
+                               '<kbd><kbd>Shift</kbd>+<kbd>F3</kbd></kbd>',
+                               '<kbd><kbd>Shift</kbd>+<kbd>F3</kbd></kbd>',
+                               'Nested <kbd>.'
+                       ),
+                       // http://www.whatwg.org/html/text-level-semantics.html#the-sub-and-sup-elements
+                       array(
+                               '<var>x<sub><var>i</var></sub></var>, <var>y<sub><var>i</var></sub></var>',
+                               '<var>x<sub><var>i</var></sub></var>, <var>y<sub><var>i</var></sub></var>',
+                               'Nested <var>.'
+                       ),
+                       // http://www.whatwg.org/html/text-level-semantics.html#the-dfn-element
+                       array(
+                               '<dfn><abbr title="Garage Door Opener">GDO</abbr></dfn>',
+                               '<dfn><abbr title="Garage Door Opener">GDO</abbr></dfn>',
+                               '<abbr> inside <dfn>',
+                       ),
                );
        }
 
+       /**
+        * @dataProvider dataRemoveHTMLtags
+        */
+       function testRemoveHTMLtags( $input, $output, $msg = null ) {
+               $GLOBALS['wgUseTidy'] = false;
+               $this->assertEquals( $output, Sanitizer::removeHTMLtags( $input ), $msg );
+       }
 
        /**
         * @dataProvider provideTagAttributesToDecode
index b8b0391..f0eb76f 100644 (file)
@@ -233,7 +233,7 @@ class TitlePermissionTest extends MediaWikiLangTestCase {
 
                if ( $this->isWikitextNS( NS_MAIN ) ) {
                        //NOTE: some content models don't allow moving
-                       //@todo: find a Wikitext namespace for testing
+                       // @todo find a Wikitext namespace for testing
 
                        $this->setTitle( NS_MAIN );
                        $this->setUser( 'anon' );
index f829509..bf8cd37 100644 (file)
@@ -569,7 +569,7 @@ class WikiPageTest extends MediaWikiLangTestCase {
        public static function provideGetParserOutput() {
                return array(
                        array( CONTENT_MODEL_WIKITEXT, "hello ''world''\n", "<p>hello <i>world</i></p>" ),
-                       // @todo: more...?
+                       // @todo more...?
                );
        }
 
@@ -609,7 +609,7 @@ class WikiPageTest extends MediaWikiLangTestCase {
                $opt = new ParserOptions();
                $po = $page->getParserOutput( $opt, $page->getLatest() + 1234 );
 
-               //@todo: would be neat to also test deleted revision
+               // @todo would be neat to also test deleted revision
 
                $this->assertFalse( $po, "getParserOutput() shall return false for non-existing revisions." );
        }
index d7227b4..08c031f 100644 (file)
@@ -7,7 +7,6 @@ class XmlSelectTest extends MediaWikiTestCase {
        protected function setUp() {
                parent::setUp();
                $this->setMwGlobals( array(
-                       'wgHtml5' => true,
                        'wgWellFormedXml' => true,
                ) );
                $this->select = new XmlSelect();
index f482328..2294804 100644 (file)
@@ -29,7 +29,6 @@ class XmlTest extends MediaWikiTestCase {
 
                $this->setMwGlobals( array(
                        'wgLang' => $langObj,
-                       'wgHtml5' => true,
                        'wgWellFormedXml' => true,
                ) );
        }
index 6632edd..5c1ff8f 100644 (file)
@@ -137,7 +137,7 @@ class JavaScriptContentTest extends TextContentTest {
        }
 
        /**
-        * @todo: test needs database!
+        * @todo Test needs database!
         */
        /*
        public function getRedirectChain() {
@@ -147,7 +147,7 @@ class JavaScriptContentTest extends TextContentTest {
        */
 
        /**
-        * @todo: test needs database!
+        * @todo Test needs database!
         */
        /*
        public function getUltimateRedirectTarget() {
index 28c006c..c7138b7 100644 (file)
@@ -162,7 +162,7 @@ class TextContentTest extends MediaWikiLangTestCase {
        }
 
        /**
-        * @todo: test needs database! Should be done by a test class in the Database group.
+        * @todo Test needs database! Should be done by a test class in the Database group.
         */
        /*
        public function getRedirectChain() {
@@ -172,7 +172,7 @@ class TextContentTest extends MediaWikiLangTestCase {
        */
 
        /**
-        * @todo: test needs database! Should be done by a test class in the Database group.
+        * @todo Test needs database! Should be done by a test class in the Database group.
         */
        /*
        public function getUltimateRedirectTarget() {
index c9eecf7..37b01fd 100644 (file)
@@ -240,7 +240,7 @@ just a test"
        }
 
        /**
-        * @todo: test needs database! Should be done by a test class in the Database group.
+        * @todo Test needs database! Should be done by a test class in the Database group.
         */
        /*
        public function getRedirectChain() {
@@ -250,7 +250,7 @@ just a test"
        */
 
        /**
-        * @todo: test needs database! Should be done by a test class in the Database group.
+        * @todo Test needs database! Should be done by a test class in the Database group.
         */
        /*
        public function getUltimateRedirectTarget() {
@@ -380,7 +380,7 @@ just a test"
                                CONTENT_MODEL_WIKITEXT, "hello [[world test 21344]]\n",
                                array( 'LinksDeletionUpdate' => array() )
                        ),
-                       // @todo: more...?
+                       // @todo more...?
                );
        }
 }
index b272d73..91ab33a 100644 (file)
@@ -233,7 +233,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
 
        /**
         * Runs upgrades of older databases and compares results with current schema
-        * @todo: currently only checks list of tables
+        * @todo Currently only checks list of tables
         */
        public function testUpgrades() {
                global $IP, $wgVersion, $wgProfileToDatabase;
index 57df08e..790f273 100644 (file)
@@ -144,7 +144,7 @@ class DatabaseTestHelper extends DatabaseBase {
                return -1;
        }
 
-       static function getSoftwareLink() {
+       function getSoftwareLink() {
                return 'test';
        }
 
index 529d8cb..013bbe2 100644 (file)
@@ -1460,7 +1460,7 @@ class FileBackendTest extends MediaWikiTestCase {
                }
        }
 
-       // @TODO: testSecure
+       // @todo testSecure
 
        public function testDoOperations() {
                $this->backend = $this->singleBackend;
index 787b431..6990153 100644 (file)
@@ -47,7 +47,9 @@ class JobQueueTest extends MediaWikiTestCase {
                                        $this->$q->setTestingPrefix( 'unittests-' . wfRandomString( 32 ) );
                                }
                        } catch ( MWException $e ) {
-                       }; // unsupported? (@TODO: what if it was another error?)
+                               // unsupported?
+                               // @todo What if it was another error?
+                       };
                }
        }
 
@@ -60,12 +62,7 @@ class JobQueueTest extends MediaWikiTestCase {
                        ) as $q
                ) {
                        if ( $this->$q ) {
-                               do {
-                                       $job = $this->$q->pop();
-                                       if ( $job ) {
-                                               $this->$q->ack( $job );
-                                       }
-                               } while ( $job );
+                               $this->$q->delete();
                        }
                        $this->$q = null;
                }
@@ -147,6 +144,15 @@ class JobQueueTest extends MediaWikiTestCase {
 
                $queue->flushCaches();
                $this->assertEquals( 0, $queue->getAcquiredCount(), "Active job count ($desc)" );
+
+               $this->assertTrue( $queue->batchPush( array( $this->newJob(), $this->newJob() ) ),
+                       "Push worked ($desc)" );
+               $this->assertFalse( $queue->isEmpty(), "Queue is not empty ($desc)" );
+
+               $queue->delete();
+               $queue->flushCaches();
+               $this->assertTrue( $queue->isEmpty(), "Queue is empty ($desc)" );
+               $this->assertEquals( 0, $queue->getSize(), "Queue is empty ($desc)" );
        }
 
        /**
index f41c71c..288fa82 100644 (file)
@@ -83,7 +83,6 @@ class NewParserTest extends MediaWikiTestCase {
                $tmpGlobals['wgRawHtml'] = false;
                $tmpGlobals['wgUseTidy'] = false;
                $tmpGlobals['wgAlwaysUseTidy'] = false;
-               $tmpGlobals['wgHtml5'] = true;
                $tmpGlobals['wgWellFormedXml'] = true;
                $tmpGlobals['wgAllowMicrodataAttributes'] = true;
                $tmpGlobals['wgExperimentalHtmlIds'] = false;
@@ -100,9 +99,6 @@ class NewParserTest extends MediaWikiTestCase {
                                'createtalk' => true,
                ) );
                $tmpGlobals['wgNamespaceProtection'] = array( NS_MEDIAWIKI => 'editinterface' );
-               $tmpGlobals['wgMemc'] = new EmptyBagOStuff;
-               $tmpGlobals['messageMemc'] = wfGetMessageCacheStorage();
-               $tmpGlobals['parserMemc'] = wfGetParserCacheStorage();
 
                $tmpGlobals['wgParser'] = new StubObject( 'wgParser', $GLOBALS['wgParserConf']['class'], array( $GLOBALS['wgParserConf'] ) );
 
@@ -142,6 +138,12 @@ class NewParserTest extends MediaWikiTestCase {
                RepoGroup::destroySingleton();
                FileBackendGroup::destroySingleton();
 
+               // Remove temporary pages from the link cache
+               LinkCache::singleton()->clear();
+
+               // Restore message cache (temporary pages and $wgUseDatabaseMessages)
+               MessageCache::destroyInstance();
+
                parent::tearDown();
        }
 
@@ -197,9 +199,6 @@ class NewParserTest extends MediaWikiTestCase {
                        __METHOD__
                );
 
-               # Clear the message cache
-               MessageCache::singleton()->clear();
-
                $user = User::newFromId( 0 );
                LinkCache::singleton()->clear(); # Avoids the odd failure at creating the nullRevision
 
@@ -376,6 +375,8 @@ class NewParserTest extends MediaWikiTestCase {
                }
 
                MagicWord::clearCache();
+
+               # The entries saved into RepoGroup cache with previous globals will be wrong.
                RepoGroup::destroySingleton();
                FileBackendGroup::destroySingleton();
 
@@ -385,9 +386,6 @@ class NewParserTest extends MediaWikiTestCase {
                # Publish the articles after we have the final language set
                $this->publishTestArticles();
 
-               # The entries saved into RepoGroup cache with previous globals will be wrong.
-               RepoGroup::destroySingleton();
-               FileBackendGroup::destroySingleton();
                MessageCache::destroyInstance();
 
                return $context;
@@ -454,9 +452,6 @@ class NewParserTest extends MediaWikiTestCase {
                foreach ( $this->savedGlobals as $var => $val ) {
                        $GLOBALS[$var] = $val;
                }
-
-               RepoGroup::destroySingleton();
-               LinkCache::singleton()->clear();
        }
 
        /**
@@ -554,7 +549,7 @@ class NewParserTest extends MediaWikiTestCase {
 
                if ( !$this->isWikitextNS( NS_MAIN ) ) {
                        // parser tests frequently assume that the main namespace contains wikitext.
-                       // @todo: When setting up pages, force the content model. Only skip if
+                       // @todo When setting up pages, force the content model. Only skip if
                        //        $wgtContentModelUseDB is false.
                        $this->markTestSkipped( "Main namespace does not support wikitext,"
                                . "skipping parser test: $desc" );
index 47c47f6..8957a2f 100644 (file)
@@ -45,7 +45,7 @@ class SearchEngineTest extends MediaWikiLangTestCase {
                }
 
                if ( !$this->isWikitextNS( NS_MAIN ) ) {
-                       //@todo: cover the case of non-wikitext content in the main namespace
+                       // @todo cover the case of non-wikitext content in the main namespace
                        return;
                }
 
diff --git a/tests/phpunit/includes/specials/SpecialPreferencesTest.php b/tests/phpunit/includes/specials/SpecialPreferencesTest.php
new file mode 100644 (file)
index 0000000..d4bba61
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Test class for SpecialPreferences class.
+ *
+ * Copyright © 2013, Antoine Musso
+ * Copyright © 2013, Wikimedia Foundation Inc.
+ *
+ */
+
+class SpecialPreferencesTest extends MediaWikiTestCase {
+
+       /**
+        * Make sure a nickname which is longer than $wgMaxSigChars
+        * is not throwing a fatal error.
+        *
+        * Test specifications by Alexandre "ialex" Emsenhuber.
+        */
+       function testBug41337() {
+
+               // Set a low limit
+               $this->setMwGlobals( 'wgMaxSigChars', 2 );
+
+               $user = $this->getMock( 'User' );
+               $user->expects( $this->any() )
+                       ->method('isAnon')
+                       ->will( $this->returnValue(false) );
+
+               # Yeah foreach requires an array, not NULL =(
+               $user->expects( $this->any() )
+                       ->method('getEffectiveGroups')
+                       ->will( $this->returnValue( array() ) );
+
+               # The mocked user has a long nickname
+               $user->expects( $this->any() )
+                       ->method('getOption')
+                       ->will( $this->returnValueMap( array(
+                               array( 'nickname', null, false, 'superlongnickname' ),
+                       )
+                       ) );
+
+               # Validate the mock (FIXME should probably be removed)
+               $this->assertFalse( $user->isAnon() );
+               $this->assertEquals( array(),
+                       $user->getEffectiveGroups() );
+               $this->assertEquals( 'superlongnickname',
+                       $user->getOption( 'nickname' ) );
+
+               # Forge a request to call the special page
+               $context = new RequestContext();
+               $context->setRequest( new FauxRequest() );
+               $context->setUser( $user );
+               $context->setTitle( Title::newFromText( 'Test' ) );
+
+               # Do the call, should not spurt a fatal error.
+               $special = new SpecialPreferences();
+               $special->setContext( $context );
+               $special->execute( array() );
+       }
+
+}
index 7fe48dd..653a114 100644 (file)
@@ -63,7 +63,7 @@ class TextPassDumperTest extends DumpTestCase {
                        // Page from non-default namespace
 
                        if ( $ns === NS_TALK ) {
-                               //@todo: work around this.
+                               // @todo work around this.
                                throw new MWException( "The default wikitext namespace is the talk namespace. "
                                        . " We can't currently deal with that." );
                        }
index 535e61e..99bd270 100644 (file)
@@ -34,7 +34,7 @@ class BackupDumperPageTest extends DumpTestCase {
                        $this->talk_namespace = NS_TALK;
 
                        if ( $this->namespace === $this->talk_namespace ) {
-                               //@todo: work around this.
+                               // @todo work around this.
                                throw new MWException( "The default wikitext namespace is the talk namespace. "
                                        . " We can't currently deal with that." );
                        }
index 1a380a5..7c8503b 100644 (file)
@@ -5,6 +5,8 @@
                wgMonthNames: ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
                wgMonthNamesShort: ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
                wgDefaultDateFormat: 'dmy',
+               wgSeparatorTransformTable: ['', ''],
+               wgDigitTransformTable: ['', ''],
                wgContentLanguage: 'en'
        };
 
index 04ba29c..4a0c9fb 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -122,7 +122,7 @@ function wfStreamThumb( array $params ) {
                $img = new UnregisteredLocalFile( null, $repo,
                        # Temp files are hashed based on the name without the timestamp.
                        # The thumbnails will be hashed based on the entire name however.
-                       # @TODO: fix this convention to actually be reasonable.
+                       # @todo fix this convention to actually be reasonable.
                        $repo->getZonePath( 'public' ) . '/' . $repo->getTempHashPath( $fileName ) . $fileName
                );
        } elseif ( $isOld ) {