Merge "revision id in export.xsd is not optional"
authorAaron Schulz <aschulz@wikimedia.org>
Thu, 7 Jun 2012 21:35:43 +0000 (21:35 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 7 Jun 2012 21:35:43 +0000 (21:35 +0000)
108 files changed:
RELEASE-NOTES-1.20
includes/DefaultSettings.php
includes/RevisionList.php
includes/Skin.php
includes/SkinTemplate.php
includes/api/ApiPageSet.php
includes/db/DatabaseError.php
includes/db/DatabaseMysql.php
includes/filerepo/backend/FileBackendStore.php
includes/filerepo/file/ForeignAPIFile.php
includes/parser/Parser.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/revisiondelete/RevisionDelete.php
includes/specials/SpecialMIMEsearch.php
languages/Language.php
languages/Names.php
languages/classes/LanguageAm.php
languages/classes/LanguageAr.php
languages/classes/LanguageAz.php
languages/classes/LanguageBe.php
languages/classes/LanguageBe_tarask.php
languages/classes/LanguageBg.php
languages/classes/LanguageBh.php
languages/classes/LanguageBs.php
languages/classes/LanguageCs.php
languages/classes/LanguageCu.php
languages/classes/LanguageCy.php
languages/classes/LanguageDsb.php
languages/classes/LanguageEo.php
languages/classes/LanguageEt.php
languages/classes/LanguageFi.php
languages/classes/LanguageFr.php
languages/classes/LanguageGa.php
languages/classes/LanguageGan.php
languages/classes/LanguageGd.php
languages/classes/LanguageGv.php
languages/classes/LanguageHe.php
languages/classes/LanguageHi.php
languages/classes/LanguageHr.php
languages/classes/LanguageHsb.php
languages/classes/LanguageHu.php
languages/classes/LanguageHy.php
languages/classes/LanguageIu.php
languages/classes/LanguageJa.php
languages/classes/LanguageKaa.php
languages/classes/LanguageKk.php
languages/classes/LanguageKk_cyrl.php
languages/classes/LanguageKm.php
languages/classes/LanguageKsh.php
languages/classes/LanguageKu.php
languages/classes/LanguageKu_ku.php
languages/classes/LanguageLa.php
languages/classes/LanguageLn.php
languages/classes/LanguageLt.php
languages/classes/LanguageLv.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArz.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEs.php
languages/messages/MessagesFa.php
languages/messages/MessagesHe.php
languages/messages/MessagesHsb.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKo.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLb.php
languages/messages/MessagesLi.php
languages/messages/MessagesLus.php
languages/messages/MessagesLzh.php
languages/messages/MessagesMl.php
languages/messages/MessagesMr.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNds.php
languages/messages/MessagesNl.php
languages/messages/MessagesOs.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesRu.php
languages/messages/MessagesSah.php
languages/messages/MessagesSe.php
languages/messages/MessagesSi.php
languages/messages/MessagesSq.php
languages/messages/MessagesTly.php
languages/messages/MessagesUk.php
languages/messages/MessagesVi.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
resources/jquery/jquery.qunit.css
resources/jquery/jquery.qunit.js
tests/parser/parserTests.txt

index 07d93ee..350b6b9 100644 (file)
@@ -53,6 +53,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 35685) api.php URL and other entry point URLs are now listed on
   Special:Version
 * Edit notices can now be translated.
+* (bug 35680) jQuery upgraded to 1.7.2.
+* jQuery UI upgraded to 1.8.19.
 * (bug 22887) Add warning and tracking category for preprocessor errors
 * (bug 31704) Allow selection of associated namespace on the watchlist
 * (bug 5445) Now remove autoblocks when a user is unblocked.
@@ -65,6 +67,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * New getCreator and getOldestRevision methods added to WikiPage class
 * (bug 4220) the XML dump format schema now have unique identity constraints
   for page and revision identifiers. Patch by Elvis Stansvik.
+* (bug 35705) QUnit upgraded from 1.2.0 to 1.7.0
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -98,9 +101,6 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Removed white border around thumbnails in galleries.
 * (bug 31236) "Next" and "Previous" buttons are shown incorrectly in
   an RTL environment.
-* (bug 35680) jQuery upgraded to 1.7.2.
-* jQuery UI upgraded to 1.8.19.
-* (bug 35705) QUnit upgraded from 1.2.0 to 1.5.0
 * (bug 35749) Updated maintenance/checkSyntax.php to use Git instead of
   Subversion when invoked with the --modified option.
 * (bug 35069) On history pages, the " . . " separator after the number of
index 8f61096..0a3d4ad 100644 (file)
@@ -3460,11 +3460,11 @@ $wgSysopEmailBans = true;
  *
  * CIDR notation is hard to understand, it's easy to mistakenly assume that a
  * /1 is a small range and a /31 is a large range. Setting this to half the
- * number of bits avoids such errors.
+ * number of bits avoids such errors for IPv4.
  */
 $wgBlockCIDRLimit = array(
        'IPv4' => 16, # Blocks larger than a /16 (64k addresses) will not be allowed
-       'IPv6' => 64, # 2^64 = ~1.8x10^19 addresses
+       'IPv6' => 32, # Blocks larger than a /32 (~7.9x10^28 addresses) will not be allowed
 );
 
 /**
index 44c7912..fc777b5 100644 (file)
@@ -350,12 +350,12 @@ class RevisionItem extends RevisionItemBase {
         */
        protected function getDiffLink() {
                if ( $this->isDeleted() && !$this->canViewContent() ) {
-                       return wfMsgHtml('diff');
+                       return $this->context->msg( 'diff' )->escaped();
                } else {
                        return
                                Linker::link(
                                        $this->list->title,
-                                       wfMsgHtml('diff'),
+                                       $this->context->msg( 'diff' )->escaped(),
                                        array(),
                                        array(
                                                'diff' => $this->revision->getId(),
@@ -371,7 +371,8 @@ class RevisionItem extends RevisionItemBase {
        }
 
        public function getHTML() {
-               $difflink = wfMessage( 'parentheses' )->rawParams( $this->getDiffLink() );
+               $difflink = $this->context->msg( 'parentheses' )
+                       ->rawParams( $this->getDiffLink() )->escaped();
                $revlink = $this->getRevisionLink();
                $userlink = Linker::revUserLink( $this->revision );
                $comment = Linker::revComment( $this->revision );
index 56355bb..8d47b83 100644 (file)
@@ -722,7 +722,7 @@ abstract class Skin extends ContextSource {
                                        $display .= $link;
                                        $linkObj = Title::newFromText( $growinglink );
 
-                                       if ( is_object( $linkObj ) && $linkObj->exists() ) {
+                                       if ( is_object( $linkObj ) && $linkObj->isKnown() ) {
                                                $getlink = Linker::linkKnown(
                                                        $linkObj,
                                                        htmlspecialchars( $display )
index 114a55c..b74f7c5 100644 (file)
@@ -644,6 +644,9 @@ class SkinTemplate extends Skin {
                                }
                        }
 
+                       if ( isset( $createaccount_url ) ) {
+                               $personal_urls['createaccount'] = $createaccount_url;
+                       }
 
                        if( $this->showIPinHeader() ) {
                                $href = &$this->userpageUrlDetails['href'];
@@ -665,9 +668,6 @@ class SkinTemplate extends Skin {
                        } else {
                                $personal_urls['login'] = $login_url;
                        }
-                       if ( isset($createaccount_url) ) {
-                               $personal_urls['createaccount'] = $createaccount_url;
-                       }
                }
 
                wfRunHooks( 'PersonalUrls', array( &$personal_urls, &$title ) );
index 598f9ad..b7db4f0 100644 (file)
@@ -367,7 +367,7 @@ class ApiPageSet extends ApiQueryBase {
         */
        public function processDbRow( $row ) {
                // Store Title object in various data structures
-               $title = Title::makeTitle( $row->page_namespace, $row->page_title );
+               $title = Title::newFromRow( $row );
 
                $pageId = intval( $row->page_id );
                $this->mAllPages[$row->page_namespace][$row->page_title] = $pageId;
index 6aed05c..53341c3 100644 (file)
@@ -210,7 +210,7 @@ class DBConnectionError extends DBError {
         * @return string
         */
        function searchForm() {
-               global $wgSitename, $wgServer, $wgRequest;
+               global $wgSitename, $wgCanonicalServer, $wgRequest;
 
                $usegoogle = htmlspecialchars( $this->msg( 'dberr-usegoogle', 'You can try searching via Google in the meantime.' ) );
                $outofdate = htmlspecialchars( $this->msg( 'dberr-outofdate', 'Note that their indexes of our content may be out of date.' ) );
@@ -218,7 +218,7 @@ class DBConnectionError extends DBError {
 
                $search = htmlspecialchars( $wgRequest->getVal( 'search' ) );
 
-               $server = htmlspecialchars( $wgServer );
+               $server = htmlspecialchars( $wgCanonicalServer );
                $sitename = htmlspecialchars( $wgSitename );
 
                $trygoogle = <<<EOT
index 8550635..1d03073 100644 (file)
@@ -113,14 +113,14 @@ class DatabaseMysql extends DatabaseBase {
                $phpError = $this->restoreErrorHandler();
                # Always log connection errors
                if ( !$this->mConn ) {
-                       $error = $this->lastError();
+                       $error = $phpError;
                        if ( !$error ) {
-                               $error = $phpError;
+                               $error = $this->lastError();
                        }
                        wfLogDBError( "Error connecting to {$this->mServer}: $error\n" );
                        wfDebug( "DB connection error\n" );
                        wfDebug( "Server: $server, User: $user, Password: " .
-                               substr( $password, 0, 3 ) . "..., error: " . mysql_error() . "\n" );
+                               substr( $password, 0, 3 ) . "..., error: " . $error . "\n" );
                }
 
                wfProfileOut("dbconnect-$server");
index f02724f..2080639 100644 (file)
@@ -1358,16 +1358,17 @@ abstract class FileBackendStore extends FileBackend {
         * @param $val mixed Information to cache
         */
        final protected function setContainerCache( $container, $val ) {
-               $this->memCache->set( $this->containerCacheKey( $container ), $val, 14*86400 );
+               $this->memCache->add( $this->containerCacheKey( $container ), $val, 14*86400 );
        }
 
        /**
-        * Delete the cached info for a container
+        * Delete the cached info for a container.
+        * The cache key is salted for a while to prevent race conditions.
         *
         * @param $container string Resolved container name
         */
        final protected function deleteContainerCache( $container ) {
-               if ( !$this->memCache->delete( $this->containerCacheKey( $container ) ) ) {
+               if ( !$this->memCache->set( $this->containerCacheKey( $container ), 'PURGED', 300 ) ) {
                        trigger_error( "Unable to delete stat cache for container $container." );
                }
        }
@@ -1445,16 +1446,17 @@ abstract class FileBackendStore extends FileBackend {
         * @param $val mixed Information to cache
         */
        final protected function setFileCache( $path, $val ) {
-               $this->memCache->set( $this->fileCacheKey( $path ), $val, 7*86400 );
+               $this->memCache->add( $this->fileCacheKey( $path ), $val, 7*86400 );
        }
 
        /**
-        * Delete the cached stat info for a file path
+        * Delete the cached stat info for a file path.
+        * The cache key is salted for a while to prevent race conditions.
         *
         * @param $path string Storage path
         */
        final protected function deleteFileCache( $path ) {
-               if ( !$this->memCache->delete( $this->fileCacheKey( $path ) ) ) {
+               if ( !$this->memCache->set( $this->fileCacheKey( $path ), 'PURGED', 300 ) ) {
                        trigger_error( "Unable to delete stat cache for file $path." );
                }
        }
index 1fcd35b..5648261 100644 (file)
@@ -196,7 +196,7 @@ class ForeignAPIFile extends File {
        /**
         * @return null|string
         */
-       public function getDescription() {
+       public function getDescription( $audience = self::FOR_PUBLIC, User $user = null ) {
                return isset( $this->mInfo['comment'] ) ? strval( $this->mInfo['comment'] ) : null;
        }
 
index 35f187f..f881455 100644 (file)
@@ -2859,7 +2859,8 @@ class Parser {
                                $value = $pageLang->formatNum( SiteStats::edits() );
                                break;
                        case 'numberofviews':
-                               $value = $pageLang->formatNum( SiteStats::views() );
+                               global $wgDisableCounters;
+                               $value = !$wgDisableCounters ? $pageLang->formatNum( SiteStats::views() ) : '';
                                break;
                        case 'currenttimestamp':
                                $value = wfTimestamp( TS_MW, $ts );
index aeeb291..4904735 100644 (file)
@@ -39,7 +39,7 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
        /**
         * @param $context ResourceLoaderContext
-        * @return string Javascript code
+        * @return string: Javascript code
         */
        public function getScript( ResourceLoaderContext $context ) {
                global $wgContLang;
@@ -62,13 +62,14 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
                $hash = md5( serialize( $forms ) );
 
                $result = $cache->get( $key );
-               if ( is_array( $result ) ) {
-                       if ( $result['hash'] === $hash ) {
-                               return $result['timestamp'];
-                       }
+               if ( is_array( $result ) && $result['hash'] === $hash ) {
+                       return $result['timestamp'];
                }
                $timestamp = wfTimestamp();
-               $cache->set( $key, array( 'hash' => $hash, 'timestamp' => $timestamp ) );
+               $cache->set( $key, array(
+                       'hash' => $hash,
+                       'timestamp' => $timestamp,
+               ) );
                return $timestamp;
        }
 
index c63fcf7..6ceadff 100644 (file)
@@ -216,12 +216,13 @@ class RevDel_RevisionItem extends RevDel_Item {
         * @return string
         */
        protected function getRevisionLink() {
-               $date = $this->list->getLanguage()->userTimeAndDate(
-                       $this->revision->getTimestamp(), $this->list->getUser() );
+               $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
+                       $this->revision->getTimestamp(), $this->list->getUser() ) );
+
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $date;
                }
-               return Linker::link(
+               return Linker::linkKnown(
                        $this->list->title,
                        $date,
                        array(),
@@ -242,7 +243,7 @@ class RevDel_RevisionItem extends RevDel_Item {
                        return $this->list->msg( 'diff' )->escaped();
                } else {
                        return
-                               Linker::link(
+                               Linker::linkKnown(
                                        $this->list->title,
                                        $this->list->msg( 'diff' )->escaped(),
                                        array(),
@@ -250,17 +251,14 @@ class RevDel_RevisionItem extends RevDel_Item {
                                                'diff' => $this->revision->getId(),
                                                'oldid' => 'prev',
                                                'unhide' => 1
-                                       ),
-                                       array(
-                                               'known',
-                                               'noclasses'
                                        )
                                );
                }
        }
 
        public function getHTML() {
-               $difflink = wfMessage( 'parentheses' )->rawParams( $this->getDiffLink() );
+               $difflink = $this->list->msg( 'parentheses' )
+                       ->rawParams( $this->getDiffLink() )->escaped();
                $revlink = $this->getRevisionLink();
                $userlink = Linker::revUserLink( $this->revision );
                $comment = Linker::revComment( $this->revision );
@@ -364,30 +362,39 @@ class RevDel_ArchiveItem extends RevDel_RevisionItem {
        }
 
        protected function getRevisionLink() {
-               $undelete = SpecialPage::getTitleFor( 'Undelete' );
-               $date = $this->list->getLanguage()->userTimeAndDate(
-                       $this->revision->getTimestamp(), $this->list->getUser() );
+               $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
+                       $this->revision->getTimestamp(), $this->list->getUser() ) );
+
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $date;
                }
-               return Linker::link( $undelete, $date, array(),
+
+               return Linker::link(
+                       SpecialPage::getTitleFor( 'Undelete' ),
+                       $date,
+                       array(),
                        array(
                                'target' => $this->list->title->getPrefixedText(),
                                'timestamp' => $this->revision->getTimestamp()
-                       ) );
+                       )
+               );
        }
 
        protected function getDiffLink() {
                if ( $this->isDeleted() && !$this->canViewContent() ) {
                        return $this->list->msg( 'diff' )->escaped();
                }
-               $undelete = SpecialPage::getTitleFor( 'Undelete' );
-               return Linker::link( $undelete, $this->list->msg( 'diff' )->escaped(), array(),
+
+               return Linker::link(
+                       SpecialPage::getTitleFor( 'Undelete' ),
+                       $this->list->msg( 'diff' )->escaped(),
+                       array(),
                        array(
                                'target' => $this->list->title->getPrefixedText(),
                                'diff' => 'prev',
                                'timestamp' => $this->revision->getTimestamp()
-                       ) );
+                       )
+               );
        }
 }
 
@@ -598,30 +605,31 @@ class RevDel_FileItem extends RevDel_Item {
         * @return string
         */
        protected function getLink() {
-               $date = $this->list->getLanguage()->userTimeAndDate(
-                       $this->file->getTimestamp(), $this->list->getUser() );
-               if ( $this->isDeleted() ) {
-                       # Hidden files...
-                       if ( !$this->canViewContent() ) {
-                               $link = $date;
-                       } else {
-                               $revdelete = SpecialPage::getTitleFor( 'Revisiondelete' );
-                               $link = Linker::link(
-                                       $revdelete,
-                                       $date, array(),
-                                       array(
-                                               'target' => $this->list->title->getPrefixedText(),
-                                               'file'   => $this->file->getArchiveName(),
-                                               'token'  => $this->list->getUser()->getEditToken(
-                                                       $this->file->getArchiveName() )
-                                       )
-                               );
-                       }
-                       return '<span class="history-deleted">' . $link . '</span>';
-               } else {
+               $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
+                       $this->file->getTimestamp(), $this->list->getUser() ) );
+
+               if ( !$this->isDeleted() ) {
                        # Regular files...
-                       return Xml::element( 'a', array( 'href' => $this->file->getUrl() ), $date );
+                       return Html::rawElement( 'a', array( 'href' => $this->file->getUrl() ), $date );
                }
+
+               # Hidden files...
+               if ( !$this->canViewContent() ) {
+                       $link = $date;
+               } else {
+                       $link = Linker::link(
+                               SpecialPage::getTitleFor( 'Revisiondelete' ),
+                               $date,
+                               array(),
+                               array(
+                                       'target' => $this->list->title->getPrefixedText(),
+                                       'file'   => $this->file->getArchiveName(),
+                                       'token'  => $this->list->getUser()->getEditToken(
+                                               $this->file->getArchiveName() )
+                               )
+                       );
+               }
+               return '<span class="history-deleted">' . $link . '</span>';
        }
        /**
         * Generate a user tool link cluster if the current user is allowed to view it
@@ -745,14 +753,15 @@ class RevDel_ArchivedFileItem extends RevDel_FileItem {
        }
 
        protected function getLink() {
-               $date = $this->list->getLanguage()->userTimeAndDate(
-                       $this->file->getTimestamp(), $this->list->getUser() );
-               $undelete = SpecialPage::getTitleFor( 'Undelete' );
-               $key = $this->file->getKey();
+               $date = htmlspecialchars( $this->list->getLanguage()->userTimeAndDate(
+                       $this->file->getTimestamp(), $this->list->getUser() ) );
+
                # Hidden files...
                if( !$this->canViewContent() ) {
                        $link = $date;
                } else {
+                       $undelete = SpecialPage::getTitleFor( 'Undelete' );
+                       $key = $this->file->getKey();
                        $link = Linker::link( $undelete, $date, array(),
                                array(
                                        'target' => $this->list->title->getPrefixedText(),
@@ -885,7 +894,7 @@ class RevDel_LogItem extends RevDel_Item {
                        array(),
                        array( 'page' => $title->getPrefixedText() )
                );
-               $loglink = wfMessage( 'parentheses' )->rawParams( $loglink );
+               $loglink = $this->list->msg( 'parentheses' )->rawParams( $loglink )->escaped();
                // User links and action text
                $action = $formatter->getActionText();
                // Comment
index b193a1c..46a35c4 100644 (file)
@@ -96,6 +96,7 @@ class MIMEsearchPage extends QueryPage {
                );
 
                $download = Linker::makeMediaLinkObj( $nt, $this->msg( 'download' )->escaped() );
+               $download = $this->msg( 'parentheses' )->rawParams( $download )->escaped();
                $lang = $this->getLanguage();
                $bytes = htmlspecialchars( $lang->formatSize( $result->img_size ) );
                $dimensions = $this->msg( 'widthheight' )->numParams( $result->img_width,
@@ -103,7 +104,7 @@ class MIMEsearchPage extends QueryPage {
                $user = Linker::link( Title::makeTitle( NS_USER, $result->img_user_text ), htmlspecialchars( $result->img_user_text ) );
                $time = htmlspecialchars( $lang->userTimeAndDate( $result->img_timestamp, $this->getUser() ) );
 
-               return "($download) $plink . . $dimensions . . $bytes . . $user . . $time";
+               return "$download $plink . . $dimensions . . $bytes . . $user . . $time";
        }
 
        /**
index 656f5d0..5bb7762 100644 (file)
@@ -1,6 +1,21 @@
 <?php
 /**
- * Internationalisation code
+ * Internationalisation code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
  * @ingroup Language
index 7a37826..06ef711 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Language names.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 /**
   * These determine things like interwikis, language selectors, and so on.
   * Safe to change without running scripts on the respective sites.
        'ug-latn' => 'Uyghurche', # Uyghur (Latin script)
        'uk' => 'українська', # Ukrainian
        'ur' => 'اردو',     # Urdu
-       'uz' => 'Oʻzbek',      # Uzbek
+       'uz' => 'Oʻzbekcha',   # Uzbek
        've' => 'Tshivenda',            # Venda
        'vec' => 'vèneto',     # Venetian
        'vep' => 'Vepsän kel’',      # Veps
index 29ae9c1..4c39c26 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Amharic (አማርኛ) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 /**
  * Amharic (አማርኛ)
  *
index 95e7639..cc6b85c 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Arabic (العربية)
+/**
+ * Arabic (العربية) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Niklas Laxström
+ * @ingroup Language
+ */
+
+/**
+ * Arabic (العربية)
+ *
+ * @ingroup Language
  */
 class LanguageAr extends Language {
 
index 947e656..0956dc4 100644 (file)
@@ -1,8 +1,31 @@
 <?php
-/** Azerbaijani (Azərbaycan)
-  *
-  * @ingroup Language
-  */
+/**
+ * Azerbaijani (Azərbaycan) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
+/**
+ * Azerbaijani (Azərbaycan)
+ *
+ * @ingroup Language
+ */
 class LanguageAz extends Language {
 
        /**
index 7d881ac..b5b5966 100644 (file)
@@ -1,17 +1,38 @@
 <?php
-/** Belarusian normative (Беларуская мова)
-  *
-  * This is still the version from Be-x-old, only duplicated for consistency of
-  * plural and grammar functions. If there are errors please send a patch.
-  *
-  * @ingroup Language
-  *
-  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
-  * @see http://be.wikipedia.org/wiki/Talk:LanguageBe.php
-  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
-  * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
-  */
+/**
+ * Belarusian normative (Беларуская мова) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
+ * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
+ * @ingroup Language
+ */
 
+/**
+ * Belarusian normative (Беларуская мова)
+ *
+ * This is still the version from Be-x-old, only duplicated for consistency of
+ * plural and grammar functions. If there are errors please send a patch.
+ *
+ * @ingroup Language
+ * @see http://be.wikipedia.org/wiki/Talk:LanguageBe.php
+ */
 class LanguageBe extends Language {
 
        /**
index 0e07a71..b781d7a 100644 (file)
@@ -1,14 +1,35 @@
 <?php
-/** Belarusian in Taraškievica orthography (Беларуская тарашкевіца)
-  *
-  * @ingroup Language
-  *
-  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
-  * @see http://be-x-old.wikipedia.org/wiki/Project_talk:LanguageBe_tarask.php
-  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
-  * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
-  */
+/**
+ * Belarusian in Taraškievica orthography (Беларуская тарашкевіца) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
+ * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
+ * @ingroup Language
+ */
 
+/**
+ * Belarusian in Taraškievica orthography (Беларуская тарашкевіца)
+ *
+ * @ingroup Language
+ * @see http://be-x-old.wikipedia.org/wiki/Project_talk:LanguageBe_tarask.php
+ */
 class LanguageBe_tarask extends Language {
        /**
         * Plural form transformations
index 9ccb9a8..d735c7a 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Bulgarian (Български) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Bulgarian (Български)
+/**
+ * Bulgarian (Български)
  *
  * @ingroup Language
  */
index 46e4418..0eaf2ff 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Bihari (भोजपुरी) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 /**
  * Bihari (भोजपुरी)
  *
index 7c13037..0929641 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Bosnian (bosanski) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Bosnian (bosanski)
+/**
+ * Bosnian (bosanski)
  *
  * @ingroup Language
  */
index f50a7e7..49c4756 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Czech (čeština [subst.], český [adj.], česky [adv.]) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Czech (čeština [subst.], český [adj.], česky [adv.])
+/**
+ * Czech (čeština [subst.], český [adj.], česky [adv.])
  *
  * @ingroup Language
  */
index af42d2c..bfa95cf 100644 (file)
@@ -1,6 +1,28 @@
 <?php
-
-/** Old Church Slavonic (Ѩзыкъ словѣньскъ)
+/**
+ * Old Church Slavonic (Ѩзыкъ словѣньскъ) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+/**
+ * Old Church Slavonic (Ѩзыкъ словѣньскъ)
  *
  * @ingroup Language
  */
index 1b0863a..9c28279 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Welsh (Cymraeg)
+/**
+ * Welsh (Cymraeg) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Niklas Laxström
+ * @ingroup Language
+ */
+
+/**
+ * Welsh (Cymraeg)
+ *
+ * @ingroup Language
  */
 class LanguageCy extends Language {
 
index 1fae25c..b8ed7fc 100644 (file)
@@ -1,6 +1,29 @@
 <?php
+/**
+ * Lower Sorbian (Dolnoserbski) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Niklas Laxström
+ * @ingroup Language
+ */
 
-/** Lower Sorbian (Dolnoserbski)
+/**
+ * Lower Sorbian (Dolnoserbski)
  *
  * @ingroup Language
  */
index af058a3..3c16248 100644 (file)
@@ -1,9 +1,31 @@
 <?php
+/**
+ * Esperanto (Esperanto) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Brion Vibber <brion@pobox.com>
+ * @ingroup Language
+ */
 
-/** Esperanto (Esperanto)
+/**
+ * Esperanto (Esperanto)
  *
  * @ingroup Language
- * @author Brion Vibber <brion@pobox.com>
  */
 class LanguageEo extends Language {
        /**
index b469dec..1a9f286 100644 (file)
@@ -1,9 +1,30 @@
 <?php
-
-/** Estonian (Eesti)
+/**
+ * Estonian (Eesti) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Language
+ */
+
+/**
+ * Estonian (Eesti)
  *
+ * @ingroup Language
  */
 class LanguageEt extends Language {
        /**
index 7156b65..1865cc5 100644 (file)
@@ -1,10 +1,31 @@
 <?php
-
-/** Finnish (Suomi)
+/**
+ * Finnish (Suomi) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Niklas Laxström
+ * @ingroup Language
+ */
+
+/**
+ * Finnish (Suomi)
+ *
+ * @ingroup Language
  */
 class LanguageFi extends Language {
 
index 3e7c970..edbe1fb 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * French (Français) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** French (Français)
+/**
+ * French (Français)
  *
  * @ingroup Language
  */
index 43050e1..cb9fa04 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Irish (Gaeilge) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Irish (Gaeilge)
+/**
+ * Irish (Gaeilge)
  *
  * @ingroup Language
  */
index 99b4c29..4fd41cf 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Gan Chinese specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
 require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
 require_once( dirname( __FILE__ ) . '/LanguageZh.php' );
index 737cdda..f042b02 100644 (file)
@@ -1,10 +1,32 @@
 <?php
-/** Scots Gaelic (Gàidhlig)
+/**
+ * Scots Gaelic (Gàidhlig) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Raimond Spekking
  * @author Niklas Laxström
+ * @ingroup Language
+ */
+
+/**
+ * Scots Gaelic (Gàidhlig)
+ *
+ * @ingroup Language
  */
 class LanguageGd extends Language {
 
index 4defffd..70b80ad 100644 (file)
@@ -1,10 +1,31 @@
 <?php
-
-/** Manx (Gaelg)
+/**
+ * Manx (Gaelg) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Niklas Laxström
+ * @ingroup Language
+ */
+
+/**
+ * Manx (Gaelg)
+ *
+ * @ingroup Language
  */
 class LanguageGv extends Language {
 
index 87483c6..22be1de 100644 (file)
@@ -1,11 +1,31 @@
 <?php
+/**
+ * Hebrew (עברית) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Rotem Liss
+ * @ingroup Language
+ */
 
 /**
  * Hebrew (עברית)
  *
  * @ingroup Language
- *
- * @author Rotem Liss
  */
 class LanguageHe extends Language {
 
index 53a0fc1..6a2302c 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Hindi (हिन्दी) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 /**
  * Hindi (हिन्दी)
  *
index e18c8d3..a0e9a87 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Croatian (hrvatski)
-  *
-  * @ingroup Language
-  */
+/**
+ * Croatian (hrvatski) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
+/**
+ * Croatian (hrvatski)
+ *
+ * @ingroup Language
+ */
 class LanguageHr extends Language {
 
        /**
index 1b67aa0..965ea6a 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Upper Sorbian (Hornjoserbsce)
+/**
+ * Upper Sorbian (Hornjoserbsce) specific code.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @ingroup Language
  */
 
+/**
+ * Upper Sorbian (Hornjoserbsce)
+ *
+ * @ingroup Language
+ */
 class LanguageHsb extends Language {
 
        /**
index dbb6f5b..1f4d45c 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Hungarian (magyar) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Hungarian localisation for MediaWiki
+/**
+ * Hungarian localisation for MediaWiki
  *
  * @ingroup Language
  */
index c14106c..9c15595 100644 (file)
@@ -1,9 +1,31 @@
 <?php
+/**
+ * Armenian (Հայերեն) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Ruben Vardanyan (Me@RubenVardanyan.com)
+ * @ingroup Language
+ */
 
-/** Armenian (Հայերեն)
+/**
+ * Armenian (Հայերեն)
  *
  * @ingroup Language
- * @author Ruben Vardanyan (Me@RubenVardanyan.com)
  */
 class LanguageHy extends Language {
 
index 72f6af1..090d626 100644 (file)
@@ -1,24 +1,39 @@
 <?php
 /**
-  * @addtogroup Language
-  */
-
-/*
-* Conversion script between Latin and Syllabics for Inuktitut.
-* - Syllabics -> lowercase Latin
-* - lowercase/uppercase Latin -> Syllabics
-*
-*
-* Based on:
-*   - http://commons.wikimedia.org/wiki/Image:Inuktitut.png
-*   - LanguageSr.php
-*
-* @ingroup Language
-*/
+ * Inuktitut specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
 
 /**
+ * Conversion script between Latin and Syllabics for Inuktitut.
+ * - Syllabics -> lowercase Latin
+ * - lowercase/uppercase Latin -> Syllabics
+ *
  *
+ * Based on:
+ *   - http://commons.wikimedia.org/wiki/Image:Inuktitut.png
+ *   - LanguageSr.php
+ *
+ * @ingroup Language
  */
 class IuConverter extends LanguageConverter {
 
index 510a397..9c6314c 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Japanese (日本語) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
 /**
  * Japanese (日本語)
index 22e8946..a397bc0 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Karakalpak (Qaraqalpaqsha) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Karakalpak (Qaraqalpaqsha)
+/**
+ * Karakalpak (Qaraqalpaqsha)
  *
  * @ingroup Language
  */
index c2a3d24..7eb0b6c 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Kazakh (Қазақша) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
 require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
 require_once( dirname( __FILE__ ) . '/LanguageKk_cyrl.php' );
@@ -11,8 +32,8 @@ define( 'KK_L_LC', 'aäbcçdeéfgğhıiïjklmnñoöpqrsştuüvwxyýz' ); # Kazak
 define( 'H_HAMZA', 'ٴ' ); # U+0674 ARABIC LETTER HIGH HAMZA
 // define( 'ZWNJ', '‌' ); # U+200C ZERO WIDTH NON-JOINER
 
-/** Kazakh (Қазақша)
- * converter routines
+/**
+ * Kazakh (Қазақша) converter routines
  *
  * @ingroup Language
  */
index 30f74e6..081a20f 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Kazakh (Қазақша)
+/**
+ * Kazakh (Қазақша) specific code.
  *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @ingroup Language
  */
 
+/**
+ * Kazakh (Қазақша)
+ *
+ * @ingroup Language
+ */
 class LanguageKk_cyrl extends Language {
 
        # Convert from the nominative form of a noun to some other case
index 105e6ed..71d67a7 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Khmer (ភាសាខ្មែរ)
+/**
+ * Kazakh (Қазақша) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Niklas Laxström
+ * @ingroup Language
+ */
+
+/**
+ * Khmer (ភាសាខ្មែរ)
+ *
+ * @ingroup Language
  */
 class LanguageKm extends Language {
 
index dc37656..074ad13 100644 (file)
@@ -1,10 +1,31 @@
 <?php
-
-/** Ripuarian (Ripoarėsh)
+/**
+ * Ripuarian (Ripoarėsh) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
  * @author Purodha Blissenbach
+ * @ingroup Language
+ */
+
+/**
+ * Ripuarian (Ripoarėsh)
+ *
+ * @ingroup Language
  */
 class LanguageKsh extends Language {
        static $familygender = array(
index 81bf6ee..18c8564 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Kurdish specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 require_once( dirname( __FILE__ ) . '/../LanguageConverter.php' );
 require_once( dirname( __FILE__ ) . '/LanguageKu_ku.php' );
 
index e433292..2381de5 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Kurdish specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Kurdish
+/**
+ * Kurdish
  *
  * @ingroup Language
  */
index 657ac6e..ba0f140 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Latin (lingua Latina) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Latin (lingua Latina)
+/**
+ * Latin (lingua Latina)
  *
  * @ingroup Language
  */
index b96cf61..d7329d5 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Lingala (Lingála) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
+
 /**
  * Lingala (Lingála)
  *
index af38b6a..ac4ebda 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Lithuanian (Lietuvių) specific code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Language
+ */
 
-/** Lithuanian (Lietuvių)
+/**
+ * Lithuanian (Lietuvių)
  *
  * @ingroup Language
  */
index 8a78303..e76f6f9 100644 (file)
@@ -1,13 +1,33 @@
 <?php
-
-/** Latvian (Latviešu)
+/**
+ * Latvian (Latviešu) specific code.
  *
- * @ingroup Language
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
- * @author Niklas Laxström
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Niklas Laxström
  * @copyright Copyright © 2006, Niklas Laxström
  * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ * @ingroup Language
+ */
+
+/**
+ * Latvian (Latviešu)
+ *
+ * @ingroup Language
  */
 class LanguageLv extends Language {
        /**
index f80f83d..1216e71 100644 (file)
@@ -370,6 +370,7 @@ $specialPageAliases = array(
        'Filepath'                  => array( 'مسار_ملف' ),
        'Import'                    => array( 'استيراد' ),
        'Invalidateemail'           => array( 'تعطيل_البريد_الإلكتروني' ),
+       'JavaScriptTest'            => array( 'اختبار_جافا_سكريبت' ),
        'BlockList'                 => array( 'قائمة_المنع', 'عرض_المنع', 'قائمة_منع_أيبي' ),
        'LinkSearch'                => array( 'بحث_الوصلات' ),
        'Listadmins'                => array( 'عرض_الإداريين' ),
@@ -2345,6 +2346,7 @@ $1',
 باستطاعتك جعل القائمة أكثر تحديداً، وذلك باختيار نوع السجل واسم المستخدم (حساس لحالة الحروف)، أو الصفحة المتأثرة (أيضاً حساس لحالة الحروف).',
 'logempty' => 'لا توجد مدخلات مطابقة في السجل.',
 'log-title-wildcard' => 'ابحث عن عناوين تبدأ بهذا النص',
+'showhideselectedlogentries' => 'إطهار/إخفاء سجلات الدخول المختارة',
 
 # Special:AllPages
 'allpages' => 'كل الصفحات',
index 7f1803b..18e745c 100644 (file)
@@ -43,8 +43,10 @@ $namespaceAliases = array(
 );
 
 $specialPageAliases = array(
+       'Activeusers'               => array( 'ܡܦܠܚܢ̈ܐ_ܙܪ̄ܝܙܐ' ),
        'Allmessages'               => array( 'ܟܠ_ܐܓܪ̈ܬܐ' ),
        'Allpages'                  => array( 'ܟܠ_ܦܐܬܬ̈ܐ' ),
+       'Badtitle'                  => array( 'ܟܘܢܝܐ_ܠܐ_ܛܒܐ' ),
        'Blankpage'                 => array( 'ܦܐܬܐ_ܣܦܝܩܬܐ' ),
        'Categories'                => array( 'ܣܕܪ̈ܐ' ),
        'Contributions'             => array( 'ܫܘܬܦܘܝܬ̈ܐ' ),
@@ -58,10 +60,11 @@ $specialPageAliases = array(
        'Mycontributions'           => array( 'ܫܘܬܦܘܝܬ̈ܝ' ),
        'Mypage'                    => array( 'ܦܐܬܐ_ܕܝܠܝ' ),
        'Mytalk'                    => array( 'ܡܡܠܠܐ_ܕܝܠܝ' ),
+       'Myuploads'                 => array( 'ܐܣܩܬ̈ܐ_ܕܝܠܝ' ),
        'Newimages'                 => array( 'ܠܦܦ̈ܐ_ܚܕ̈ܬܐ', 'ܨܘܪ̈ܬܐ_ܚܕ̈ܬܬܐ' ),
        'Newpages'                  => array( 'ܦܐܬܬ̈ܐ_ܚܕ̈ܬܬܐ' ),
        'PermanentLink'             => array( 'ܐܣܘܪܐ_ܦܝܘܫܐ' ),
-       'Preferences'               => array( 'Ü\93Ü\92Ü\9dܬ̈ܐ' ),
+       'Preferences'               => array( 'ܨÜ\92Ü\9dÜ¢Ü\9dÜ\98ܬ̈ܐ' ),
        'Protectedpages'            => array( 'ܦܐܬܬ̈ܐ_ܢܛܝܪ̈ܬܐ' ),
        'Protectedtitles'           => array( 'ܟܘܢܝ̈ܐ_ܢܛܝܪ̈ܐ' ),
        'Recentchanges'             => array( 'ܫܘܚܠܦ̈ܐ_ܚܕ̈ܬܐ' ),
@@ -69,6 +72,7 @@ $specialPageAliases = array(
        'Shortpages'                => array( 'ܦܐܬܬ̈ܐ_ܟܪ̈ܝܬܐ' ),
        'Specialpages'              => array( 'ܦܐܬܬ̈ܐ_ܕ̈ܝܠܢܝܬܐ' ),
        'Upload'                    => array( 'ܐܣܩ' ),
+       'Version'                   => array( 'ܨܚܚܐ' ),
        'Watchlist'                 => array( 'ܪ̈ܗܝܬܐ' ),
        'Whatlinkshere'             => array( 'ܡܐ_ܐܣܪ_ܠܗܪܟܐ' ),
 );
@@ -330,6 +334,7 @@ $1',
 'restorelink' => '{{PLURAL:$1|ܚܕ ܫܘܚܠܦܐ ܫܝܦܐ|$1 ܫܘܚܠܦ̈ܐ ܫܝܦ̈ܐ}}',
 'site-atom-feed' => '$1 ܛܥܝܡܘܬܐ ܕܐܛܘܡ',
 'page-atom-feed' => '"$1" ܛܥܝܡܘܬܐ ܕܐܛܘܡ',
+'feed-atom' => 'ܐܛܘܡ',
 'red-link-title' => '$1 (ܦܐܬܐ ܗܕܐ ܠܝܬ)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
@@ -932,7 +937,7 @@ $1',
 
 # Statistics
 'statistics-pages' => 'ܦܐܬܬ̈ܐ',
-'statistics-users-active' => 'ܡܦܠÜ\9aÜ¢Ì\88Ü\90 Ü\9fÜ«Ü\9dܪÌ\88ܐ',
+'statistics-users-active' => 'ܡܦܠÜ\9aÜ¢Ì\88Ü\90 Ü\99ܪÌ\84Ü\9dÜ\99ܐ',
 
 'disambiguations' => 'ܦܐܬܬ̈ܐ ܐܣܝܪ̈ܬܐ ܒܦܐܬܬ̈ܐ ܕܬܘܚܡܐ ܐܚܪܢܐ',
 'disambiguationspage' => 'Template:ܬܘܚܡܐ ܐܚܪܢܐ',
@@ -1047,7 +1052,7 @@ $1',
 'listusers-blocked' => '(ܚܪܝܡܐ)',
 
 # Special:ActiveUsers
-'activeusers' => 'Ü¡Ü\9fܬÜ\92Ü\98ܬÜ\90 Ü\95Ü\97Ü\95Ì\88Ü¡Ü\90 Ü\9fÜ«Ü\9dܪÌ\88ܐ',
+'activeusers' => 'Ü¡Ü\9fܬÜ\92Ü\98ܬÜ\90 Ü\95Ü\97Ü\95Ì\88Ü¡Ü\90 Ü\99ܪÌ\84Ü\9dÜ\99ܐ',
 'activeusers-count' => '$1 {{PLURAL:$1|ܫܘܚܠܦܐ ܚܕܬܐ|ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ}} ܒ {{PLURAL:$3|ܝܘܡܐ ܐܚܪܝܐ|$3 ܝܘܡܬ̈ܐ ܐܚܪ̈ܝܐ}}',
 'activeusers-from' => 'ܚܘܝ ܡܦܠܚܢ̈ܐ ܕܫܪܐ ܥܡ:',
 'activeusers-hidebots' => 'ܛܫܝ ܒܘܬ̈ܐ (bots)',
@@ -1153,13 +1158,13 @@ $1',
 'protect-level-autoconfirmed' => 'ܚܪܘܡ ܡܦܠܚܢ̈ܐ ܚܕ̈ܬܐ ܘܠܐ ܥܠܝܠ̈ܐ',
 'protect-level-sysop' => 'ܡܕܒܪ̈ܢܐ ܒܠܚܘܕ',
 'protect-expiring' => 'ܦܪܩ ܒ $1 (UTC)',
-'protect-expiry-indefinite' => 'Ü\95Ü Ü\90 Ü£Ü\9f',
+'protect-expiry-indefinite' => 'ܠܥܠܡ',
 'protect-othertime' => 'ܥܕܢܐ ܐܚܪܬܐ:',
 'protect-othertime-op' => 'ܥܕܢܐ ܐܚܪܬܐ',
 'protect-otherreason' => 'ܥܠܬܐ ܐܚܪܬܐ/ܢܩܝܦܬܐ:',
 'protect-otherreason-op' => 'ܥܠܬܐ ܐܚܪܬܐ',
 'protect-edit-reasonlist' => 'ܫܚܠܦ ܥܠܬܐ ܕܢܛܪܐ',
-'protect-expiry-options' => '1 Ü«Ü¥Ü¬Ü\90:1 hour,1 Ü\9dÜ\98Ü¡Ü\90:1 day,1 Ü«Ü\92Ü\98Ü¥Ü\90:1 week,2 Ü«Ü\92Ü\98Ü¥Ì\88Ü\90:2 weeks,1 Ü\9dܪÜ\9aÜ\90:1 month,3 Ü\9dܪÌ\88Ü\9aÜ\90:3 months,6 Ü\9dܪÌ\88Ü\9aÜ\90:6 months,1 Ü«Ü¢Ü¬Ü\90:1 year,Ü\95Ü Ü\90 Ü£Ü\9f:infinite',
+'protect-expiry-options' => '1 Ü«Ü¥Ü¬Ü\90:1 hour,1 Ü\9dÜ\98Ü¡Ü\90:1 day,1 Ü«Ü\92Ü\98Ü¥Ü\90:1 week,2 Ü«Ü\92Ü\98Ü¥Ì\88Ü\90:2 weeks,1 Ü\9dܪÜ\9aÜ\90:1 month,3 Ü\9dܪÌ\88Ü\9aÜ\90:3 months,6 Ü\9dܪÌ\88Ü\9aÜ\90:6 months,1 Ü«Ü¢Ü¬Ü\90:1 year,ܠܥܠܡ:infinite',
 'restriction-type' => 'ܦܣܣܐ:',
 'minimum-size' => 'ܡܬܚܐ ܬܚܬܝܐ  ܕܥܓܪܐ',
 'maximum-size' => 'ܡܬܚܐ ܥܠܝܐ ܕܥܓܪܐ',
@@ -1254,7 +1259,7 @@ $1',
 'ipbreasonotherlist' => 'ܥܠܬܐ ܐܚܪܬܐ',
 'ipbsubmit' => 'ܚܪܘܡ ܡܦܠܚܢܐ ܗܢܐ',
 'ipbother' => 'ܥܕܢܐ ܐܚܪܬܐ',
-'ipboptions' => '2 Ü«Ü¥Ü¬Ì\88Ü\90:2 hours,1 Ü\9dÜ\98Ü¡Ü\90:1 day,3 Ü\9dÜ\98ܡܬÌ\88Ü\90:3 days,1 Ü«Ü\92Ü\98Ü¥Ü\90:1 week,2 Ü«Ü\92Ü\98Ü¥Ì\88Ü\90:2 weeks,1 Ü\9dܪÜ\9aÜ\90:1 month,3 Ü\9dܪÌ\88Ü\9aÜ\90:3 months,6 Ü\9dܪÌ\88Ü\9aÜ\90:6 months,1 Ü«Ü¢Ü¬Ü\90:1 year,Ü\95Ü Ü\90 Ü£Ü\9f:infinite',
+'ipboptions' => '2 Ü«Ü¥Ü¬Ì\88Ü\90:2 hours,1 Ü\9dÜ\98Ü¡Ü\90:1 day,3 Ü\9dÜ\98ܡܬÌ\88Ü\90:3 days,1 Ü«Ü\92Ü\98Ü¥Ü\90:1 week,2 Ü«Ü\92Ü\98Ü¥Ì\88Ü\90:2 weeks,1 Ü\9dܪÜ\9aÜ\90:1 month,3 Ü\9dܪÌ\88Ü\9aÜ\90:3 months,6 Ü\9dܪÌ\88Ü\9aÜ\90:6 months,1 Ü«Ü¢Ü¬Ü\90:1 year,ܠܥܠܡ:infinite',
 'ipbotheroption' => 'ܐܚܪܢܐ',
 'ipbotherreason' => 'ܥܠܬܐ ܐܚܪܬܐ/ܢܩܝܦܬܐ:',
 'ipbhidename' => 'ܛܫܝ ܫܡܐ ܕܡܦܠܚܢܐ ܡܢ ܫܘܚܠܦ̈ܐ ܘܡܟܬܒܘܬ̈ܐ',
@@ -1271,7 +1276,7 @@ $1',
 'ipblocklist-legend' => 'ܐܫܟܚ ܡܦܠܚܢܐ ܡܚܪܡܐ',
 'ipblocklist-submit' => 'ܒܨܝ',
 'ipblocklist-localblock' => 'ܚܪܡܐ ܕܘܟܬܢܝܐ',
-'infiniteblock' => 'Ü\95Ü Ü\90 Ü£Ü\9f',
+'infiniteblock' => 'ܠܥܠܡ',
 'anononlyblock' => 'ܠܐ ܝܕ̈ܝܥܐ ܒܠܚܘܕ',
 'ipblocklist-empty' => 'ܣܓܠܐ ܕܚܪܡܐ ܣܦܝܩܐ.',
 'blocklink' => 'ܚܪܘܡ',
index 4c9e237..5c322b5 100644 (file)
@@ -166,7 +166,7 @@ $magicWords = array(
        'revisiontimestamp'       => array( '1', 'طابع_وقت_المراجعة', 'REVISIONTIMESTAMP' ),
        'revisionuser'            => array( '1', 'مستخدم_المراجعة', 'REVISIONUSER' ),
        'plural'                  => array( '0', 'جمع:', 'PLURAL:' ),
-       'fullurl'                 => array( '0', 'مسار_كامل:', 'عنوان_كامل:', 'FULLURL:' ),
+       'fullurl'                 => array( '0', 'مسار_كامل:', 'FULLURL:' ),
        'fullurle'                => array( '0', 'عنوان_كامل:', 'مسار_كامل:', 'FULLURLE:' ),
        'lcfirst'                 => array( '0', 'عنوان_كبير:', 'LCFIRST:' ),
        'ucfirst'                 => array( '0', 'عنوان_صغير:', 'UCFIRST:' ),
index f5e8955..c1857ed 100644 (file)
@@ -1188,7 +1188,7 @@ $1",
 'mergehistory-go' => "Паказаць вэрсіі, якія магчыма аб'яднаць",
 'mergehistory-submit' => "Аб'яднаць гісторыі рэдагаваньняў",
 'mergehistory-empty' => "Няма гісторыі рэдагаваньняў, якую магчыма аб'яднаць.",
-'mergehistory-success' => "$3 {{PLURAL:$3|вэрсія|вэрсіі|вэрсій}} з [[:$1]] пасьпяхова аб'яднаныя ў [[:$2]].",
+'mergehistory-success' => '$3 {{PLURAL:$3|вэрсія|вэрсіі|вэрсіяў}} з [[:$1]] пасьпяхова аб’яднаныя ў [[:$2]].',
 'mergehistory-fail' => "Не атрымалася аб'яднаць гісторыі старонак. Калі ласка, праверце парамэтры старонкі і часу.",
 'mergehistory-no-source' => 'Не існуе крынічнай старонкі $1.',
 'mergehistory-no-destination' => 'Не існуе мэтавай старонкі $1.',
@@ -1483,12 +1483,12 @@ $1",
 'right-writeapi' => 'выкарыстаньне API для запісаў',
 'right-delete' => 'выдаленьне старонак',
 'right-bigdelete' => 'Выдаленьне старонак зь вялікімі гісторыямі',
-'right-deleterevision' => 'выдаленьне і аднаўленьне асобных вэрсій старонак',
+'right-deleterevision' => 'выдаленьне і аднаўленьне асобных вэрсіяў старонак',
 'right-deletedhistory' => 'прагляд выдаленай гісторыі старонак без доступу да выдаленага тэксту',
 'right-deletedtext' => 'прагляд выдаленага тэксту і зьменаў паміж выдаленымі вэрсіямі старонак',
 'right-browsearchive' => 'пошук выдаленых старонак',
 'right-undelete' => 'аднаўленьне старонак',
-'right-suppressrevision' => 'прагляд і аднаўленьне вэрсій схаваных ад адміністратараў',
+'right-suppressrevision' => 'прагляд і аднаўленьне вэрсіяў схаваных ад адміністратараў',
 'right-suppressionlog' => 'прагляд прыватных журналаў',
 'right-block' => 'блякаваньне іншых удзельнікаў ад рэдагаваньняў',
 'right-blockemail' => 'блякаваньне іншых ўдзельнікаў ад дасылкі электроннай пошты',
@@ -2013,7 +2013,7 @@ $1',
 'ncategories' => '$1 {{PLURAL:$1|катэгорыя|катэгорыі|катэгорыяў}}',
 'nlinks' => '$1 {{PLURAL:$1|спасылка|спасылкі|спасылак}}',
 'nmembers' => '$1 {{PLURAL:$1|элемэнт|элемэнты|элемэнтаў}}',
-'nrevisions' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}}',
+'nrevisions' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}',
 'nviews' => '$1 {{PLURAL:$1|прагляд|прагляды|праглядаў}}',
 'nimagelinks' => 'Выкарыстоўваецца на $1 {{PLURAL:$1|старонцы|старонках|старонках}}',
 'ntransclusions' => 'выкарыстоўваецца на $1 {{PLURAL:$1|старонцы|старонках|старонках}}',
@@ -2321,9 +2321,9 @@ $UNWATCHURL
 ** Парушэньне аўтарскіх правоў
 ** Вандалізм',
 'delete-edit-reasonlist' => 'Рэдагаваць прычыны выдаленьня',
-'delete-toobig' => 'Гэтая старонка мае доўгую гісторыю рэдагаваньняў, болей за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсій}}.
+'delete-toobig' => 'Гэтая старонка мае доўгую гісторыю рэдагаваньняў, болей за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсіяў}}.
 Выдаленьне такіх старонак было забароненае, каб пазьбегнуць праблемаў у працы {{GRAMMAR:родны|{{SITENAME}}}}.',
-'delete-warning-toobig' => 'Гэтая старонка мае доўгую гісторыю рэдагаваньняў, больш за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсій}}.
+'delete-warning-toobig' => 'Гэтая старонка мае доўгую гісторыю рэдагаваньняў, больш за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсіяў}}.
 Яе выдаленьне можа выклікаць праблемы ў працы базы зьвестак {{GRAMMAR:родны|{{SITENAME}}}}; будзьце асьцярожны.',
 
 # Rollback
@@ -2424,7 +2424,7 @@ $UNWATCHURL
 'undelete-fieldset-title' => 'Аднавіць вэрсіі',
 'undeleteextrahelp' => "Для поўнага аднаўленьня гісторыі рэдагаваньня старонкі, пакіньце ўсе адзнакі нявызначнымі і націсьніце '''''{{int:undeletebtn}}'''''.
 Для частковага аднаўленьня, пазначце тыя вэрсіі старонкі, якія трэба аднавіць і націсьніце '''''{{int:undeletebtn}}'''''.",
-'undeleterevisions' => 'У архіве $1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}}',
+'undeleterevisions' => 'У архіве $1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}',
 'undeletehistory' => 'Калі Вы адновіце старонку, будуць адноўленыя ўсе яе вэрсіі разам з журналам падзеяў.
 Калі пасьля выдаленьня была створаная новая старонка з такой жа назвай, адноўленыя вэрсіі зьявяцца ў гісторыі перад новымі вэрсіямі.',
 'undeleterevdel' => 'Аднаўленьня не адбудзецца, калі ў яго выніку будзе выдаленая апошняя вэрсія старонкі ці файла.
@@ -2442,8 +2442,8 @@ $UNWATCHURL
 'undeletereset' => 'Скінуць',
 'undeleteinvert' => 'Адваротны выбар',
 'undeletecomment' => 'Прычына:',
-'undeletedrevisions' => '{{PLURAL:$1|адноўленая $1 вэрсія|адноўленыя $1 вэрсіі|адноўленыя $1 вэрсій}}',
-'undeletedrevisions-files' => 'адноўленыя $1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}} і $2 {{PLURAL:$2|файл|файлы|файлаў}}',
+'undeletedrevisions' => '{{PLURAL:$1|адноўленая $1 вэрсія|адноўленыя $1 вэрсіі|адноўленыя $1 вэрсіяў}}',
+'undeletedrevisions-files' => 'адноўленыя $1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}} і $2 {{PLURAL:$2|файл|файлы|файлаў}}',
 'undeletedfiles' => '{{PLURAL:$1|адноўлены $1 файл|адноўленыя $1 файлы|адноўленыя $1 файлаў}}',
 'cannotundelete' => 'Аднаўленьне не адбылося; нехта іншы мог пасьпець аднавіць старонку раней.',
 'undeletedpage' => "'''Старонка $1 была адноўленая'''
@@ -2830,7 +2830,7 @@ $1',
 'importtext' => 'Калі ласка, экспартуйце файл з крынічнай вікі з дапамогай [[Special:Export|прылады экспарту]].
 Захавайце яго на свой кампутар, а потым загрузіце сюды.',
 'importstart' => 'Імпартаваньне старонак…',
-'import-revision-count' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}}',
+'import-revision-count' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}',
 'importnopages' => 'Няма старонак для імпартаваньня.',
 'imported-log-entries' => '{{PLURAL:$1|Імпартаваны $1 запіс журнала|Імпартаваныя $1 запісы журнала|Імпартаваныя $1 запісаў журнала}}.',
 'importfailed' => 'Немагчыма імпартаваць: $1',
@@ -2865,9 +2865,9 @@ $1',
 'importlogpage' => 'Журнал імпартаваньняў',
 'importlogpagetext' => 'Імпартаваньне адміністратарамі старонак з гісторыяй зьменаў зь іншых вікі.',
 'import-logentry-upload' => 'імпартавана [[$1]] праз загрузку файла',
-'import-logentry-upload-detail' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}}',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}',
 'import-logentry-interwiki' => 'імпартавана зь іншай вікі $1',
-'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсій}} з $2',
+'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}} з $2',
 
 # JavaScriptTest
 'javascripttest' => 'Тэставаньне JavaScript',
index 2737319..2c994a4 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Bulgarian (Ð\91ългарски)
+/** Bulgarian (български)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -1271,6 +1271,7 @@ $1",
 'prefs-beta' => 'Функционалности на Бета',
 'prefs-datetime' => 'Дата и час',
 'prefs-labs' => 'Функционалности на Labs',
+'prefs-user-pages' => 'Потребителски страници',
 'prefs-personal' => 'Потребителски данни',
 'prefs-rc' => 'Последни промени',
 'prefs-watchlist' => 'Списък за наблюдение',
@@ -1703,6 +1704,7 @@ $1',
 'backend-fail-notexists' => 'Файлът $1 не съществува.',
 'backend-fail-delete' => 'Файлът $1 не може да бъде изтрит.',
 'backend-fail-alreadyexists' => 'Файлът $1 вече съществува.',
+'backend-fail-store' => 'Файлът $1 не може да бъде съхранен в $2.',
 'backend-fail-copy' => 'Файлът „$1“ не можа да бъде копиран в „$2“.',
 'backend-fail-move' => 'Файлът „$1“ не можа да бъде преместен в „$2“.',
 'backend-fail-opentemp' => 'Временният файл не може да бъде отворен.',
@@ -3490,6 +3492,7 @@ MediaWiki се разпространява с надеждата, че ще б
 'version-software' => 'Инсталиран софтуер',
 'version-software-product' => 'Продукт',
 'version-software-version' => 'Версия',
+'version-entrypoints-header-url' => 'Адрес',
 
 # Special:FilePath
 'filepath' => 'Път към файл',
index 27e6ddf..f40423a 100644 (file)
@@ -60,41 +60,87 @@ $specialPageAliases = array(
        'Ancientpages'              => array( 'Tungkaran_lawas' ),
        'Badtitle'                  => array( 'Judul_nang_buruk' ),
        'Blankpage'                 => array( 'Tungkaran_kusung' ),
+       'Block'                     => array( 'Blukir_pamakai' ),
+       'Blockme'                   => array( 'Blukir_ulun' ),
        'Booksources'               => array( 'Sumbar_buku' ),
+       'BrokenRedirects'           => array( 'Paugahan_rakai' ),
        'Categories'                => array( 'Daptar_tumbung' ),
        'ChangeEmail'               => array( 'Ganti_suril' ),
+       'ChangePassword'            => array( 'Ganti_katasunduk' ),
        'ComparePages'              => array( 'Bandingakan_tungkaran' ),
        'Confirmemail'              => array( 'Kunpirmasi_suril' ),
-       'Contributions'             => array( 'Kuntribusi_pamakai' ),
+       'Contributions'             => array( 'Sumbangan_pamakai' ),
        'CreateAccount'             => array( 'Ulah_akun' ),
        'Deadendpages'              => array( 'Tungkaran_buntu' ),
-       'DeletedContributions'      => array( 'Kuntribusi_nang_dihapus' ),
-       'EditWatchlist'             => array( 'Babak_daptan_pantauan' ),
-       'Fewestrevisions'           => array( 'Parubahan_tasadikit' ),
-       'Filepath'                  => array( 'Lukasi_barakas' ),
+       'DeletedContributions'      => array( 'Sumbangan_nang_dihapus' ),
+       'Disambiguations'           => array( 'Disambiguasi' ),
+       'EditWatchlist'             => array( 'Babak_daptar_pantauan' ),
+       'Fewestrevisions'           => array( 'Paubahan_tasadikit' ),
+       'FileDuplicateSearch'       => array( 'Panggagaian_barakas_kambar' ),
+       'Filepath'                  => array( 'Andakan_barakas' ),
+       'BlockList'                 => array( 'Daptar_pamblukiran' ),
+       'LinkSearch'                => array( 'Tautan_luar' ),
        'Listadmins'                => array( 'Daptar_pambakal' ),
        'Listbots'                  => array( 'Daptar_bot' ),
        'Listfiles'                 => array( 'Daptar_barakas' ),
-       'Listgrouprights'           => array( 'Daptar_hak_kalumpuk' ),
-       'Listredirects'             => array( 'Daptar_paalihan' ),
+       'Listgrouprights'           => array( 'Daptar_hak_galambang' ),
+       'Listredirects'             => array( 'Daptar_paugahan' ),
        'Listusers'                 => array( 'Daptar_pamakai' ),
        'Log'                       => array( 'Catatan' ),
+       'Lonelypages'               => array( 'Tungkaran_yatim' ),
        'Longpages'                 => array( 'Tungkaran_panjang' ),
-       'Mostcategories'            => array( 'Tumbung_tabanyak' ),
+       'MergeHistory'              => array( 'Sajarah_panggabungan' ),
+       'MIMEsearch'                => array( 'Panggagaian_MIME' ),
+       'Mostcategories'            => array( 'Tumbung_pambanyaknya' ),
+       'Mostimages'                => array( 'Barakas_paling_dipakai' ),
        'Mostlinked'                => array( 'Tungkaran_paling_dipakai' ),
        'Mostlinkedcategories'      => array( 'Tumbung_paling_dipakai' ),
        'Mostlinkedtemplates'       => array( 'Citakan_paling_dipakai' ),
-       'Mostrevisions'             => array( 'Paubahan_tabanyak' ),
+       'Mostrevisions'             => array( 'Paubahan_pambanyaknya' ),
        'Movepage'                  => array( 'Pindahakan_tungkaran' ),
-       'Mycontributions'           => array( 'Kuntribusi_ulun' ),
+       'Mycontributions'           => array( 'Sumbangan_ulun' ),
        'Mypage'                    => array( 'Tungkaran_ulun' ),
        'Mytalk'                    => array( 'Pamandiran_ulun' ),
+       'Myuploads'                 => array( 'Unggahan_ulun' ),
        'Newimages'                 => array( 'Barakas_hanyar' ),
        'Newpages'                  => array( 'Tungkaran_hanyar' ),
+       'PermanentLink'             => array( 'Tautan_tatap' ),
+       'Popularpages'              => array( 'Tungkaran_popular' ),
+       'Preferences'               => array( 'Kakatujuan' ),
        'Protectedpages'            => array( 'Tungkaran_nang_dilindungi' ),
        'Protectedtitles'           => array( 'Judul_nang_dilindungi' ),
        'Randompage'                => array( 'Tungkaran_babarang' ),
-       'Recentchanges'             => array( 'Paubahan_tahanyar' ),
+       'Randomredirect'            => array( 'Paugahan_babarang' ),
+       'Recentchanges'             => array( 'Paubahan_pahanyarnya' ),
+       'Recentchangeslinked'       => array( 'Paubahan_tarait' ),
+       'Revisiondelete'            => array( 'Hapus_ralatan' ),
+       'RevisionMove'              => array( 'Ralatan_pamindahan' ),
+       'Search'                    => array( 'Panggagaian' ),
+       'Shortpages'                => array( 'Tungkaran_handap' ),
+       'Specialpages'              => array( 'Tungkaran_istimiwa' ),
+       'Statistics'                => array( 'Statistik' ),
+       'Tags'                      => array( 'Tag' ),
+       'Unblock'                   => array( 'Pawalangan_pamblukiran' ),
+       'Uncategorizedcategories'   => array( 'Tumbung_kada_batumbung' ),
+       'Uncategorizedimages'       => array( 'Barakas_kada_batumbung' ),
+       'Uncategorizedpages'        => array( 'Tungkaran_kada_batumbung' ),
+       'Uncategorizedtemplates'    => array( 'Citakan_kada_batumbung' ),
+       'Undelete'                  => array( 'Pawalangan_pahapusan' ),
+       'Unusedcategories'          => array( 'Tumbung_puang' ),
+       'Unusedimages'              => array( 'Barakas_kada_tapakai' ),
+       'Unusedtemplates'           => array( 'Citakan_kada_tapakai' ),
+       'Unwatchedpages'            => array( 'Tungkaran_kada_di-itihi' ),
+       'Upload'                    => array( 'Paunggahan' ),
+       'Userlogin'                 => array( 'Babuat_log' ),
+       'Userlogout'                => array( 'Kaluar_log' ),
+       'Userrights'                => array( 'Hak_pamakai' ),
+       'Wantedcategories'          => array( 'Tumbung_nang_dikahandaki' ),
+       'Wantedfiles'               => array( 'Barakas_nang_dikahandaki' ),
+       'Wantedpages'               => array( 'Tungkaran_nang_dikahandaki' ),
+       'Wantedtemplates'           => array( 'Citakan_nang_dikahandaki' ),
+       'Watchlist'                 => array( 'Daptar_itihan' ),
+       'Whatlinkshere'             => array( 'Tautan_balik' ),
+       'Withoutinterwiki'          => array( 'Kada_pakai_interwiki' ),
 );
 
 $messages = array(
index 7a8ca35..d01fb2f 100644 (file)
@@ -2015,6 +2015,7 @@ Na zisoñjit ket e c'hall lec'hiennoù all kaout ul liamm eeun war-du ur restr b
 Gallout a rit strishaat ar mod diskwel en ur zibab ar marilh, an anv implijer (diwallit ouzh ar pennlizherennoù) pe ar bajenn a fell deoc'h (memes tra).",
 'logempty' => 'Goullo eo istor ar bajenn-mañ.',
 'log-title-wildcard' => 'Klask an titloù a grog gant an destenn-mañ',
+'showhideselectedlogentries' => 'Diskouez/kuzhat penngerioù ar marilh bet diuzet',
 
 # Special:AllPages
 'allpages' => 'An holl bajennoù',
index 88fa547..2698266 100644 (file)
@@ -61,6 +61,7 @@ $specialPageAliases = array(
        'Booksources'               => array( 'KnjizniIzvori' ),
        'BrokenRedirects'           => array( 'NedovršenaPreusmjerenja' ),
        'Categories'                => array( 'Kategorije' ),
+       'ChangeEmail'               => array( 'IzmjeniMail' ),
        'ChangePassword'            => array( 'PonistiLozinku' ),
        'ComparePages'              => array( 'UporedjivanjeStranica' ),
        'Confirmemail'              => array( 'PotvrdiEmail' ),
@@ -70,6 +71,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'ObrisaniDoprinosi' ),
        'Disambiguations'           => array( 'Čvor' ),
        'DoubleRedirects'           => array( 'DvostrukaPreusmjerenja' ),
+       'EditWatchlist'             => array( 'IzmjeniPraćeniSpisak' ),
        'Emailuser'                 => array( 'EmailKorisnika' ),
        'Export'                    => array( 'Izvoz' ),
        'Fewestrevisions'           => array( 'Najmanje_uređivane_stranice' ),
index 642f0e6..768f02c 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Catalan (Català)
+/** Catalan (català)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -215,8 +215,8 @@ $messages = array(
 'tog-previewontop' => "Mostra una previsualització abans del quadre d'edició",
 'tog-previewonfirst' => 'Mostra una previsualització en la primera modificació',
 'tog-nocache' => 'Inhabilita la memòria cau de les pàgines',
-'tog-enotifwatchlistpages' => "Notifica'm per correu electrònic dels canvis a les pàgines que vigili",
-'tog-enotifusertalkpages' => "Notifica'm per correu quan hi hagi modificacions a la pàgina de discussió del meu compte d'usuari",
+'tog-enotifwatchlistpages' => "Envia'm un correu electrònic quan es modifiqui una pàgina de la meva llista de seguiment",
+'tog-enotifusertalkpages' => "Envia'm un correu electrònic quan es modifiqui la meva pàgina de discussió",
 'tog-enotifminoredits' => "Notifica'm per correu també en casos d'edicions menors",
 'tog-enotifrevealaddr' => "Mostra la meua adreça electrònica en els missatges d'avís per correu",
 'tog-shownumberswatching' => "Mostra el nombre d'usuaris que hi vigilen",
@@ -234,7 +234,7 @@ $messages = array(
 'tog-watchlisthideanons' => "Amaga a la llista les edicions d'usuaris anònims",
 'tog-watchlisthidepatrolled' => 'Amaga edicions patrullades de la llista de seguiment',
 'tog-nolangconversion' => 'Inhabilita la conversió de variants',
-'tog-ccmeonemails' => "Envia'm còpies dels missatges que enviï als altres usuaris.",
+'tog-ccmeonemails' => "Envia'm còpia dels missatges que enviï als altres usuaris",
 'tog-diffonly' => 'Amaga el contingut de la pàgina davall de la taula de diferències',
 'tog-showhiddencats' => 'Mostra les categories ocultes',
 'tog-noconvertlink' => 'Inhabilita la conversió dels títols dels enllaços',
@@ -1284,7 +1284,7 @@ A continuació es mostra un valor generat de forma aleatòria que podeu fer serv
 'timezoneregion-europe' => 'Europa',
 'timezoneregion-indian' => 'Oceà Índic',
 'timezoneregion-pacific' => 'Oceà Pacífic',
-'allowemail' => "Habilita el correu electrònic des d'altres usuaris",
+'allowemail' => 'Permet que altres usuaris puguin enviar-me correus electrònics',
 'prefs-searchoptions' => 'Preferències de la cerca',
 'prefs-namespaces' => 'Espais de noms',
 'defaultns' => 'Cerca per defecte en els següents espais de noms:',
index ea08e4f..ffd3df4 100644 (file)
@@ -38,12 +38,56 @@ $namespaceNames = array(
 );
 
 $specialPageAliases = array(
-       'Activeusers'               => array( 'Karbereaktiv' ),
+       'Activeusers'               => array( 'KarbereAktivi', 'AktivKarberi' ),
        'Allmessages'               => array( 'MesaciPero' ),
-       'Categories'                => array( 'Kategoriy' ),
+       'Allpages'                  => array( 'PeleyPero' ),
+       'Ancientpages'              => array( 'PeleyVereni' ),
+       'Badtitle'                  => array( 'SernameyoXırab' ),
+       'Blankpage'                 => array( 'VengPela', 'PelaVeng' ),
+       'Block'                     => array( 'Bloke', 'BlokeIP', 'BlokeKarber' ),
+       'Blockme'                   => array( 'BlokeMe' ),
+       'Booksources'               => array( 'KıtabeÇıme' ),
+       'BrokenRedirects'           => array( 'HetenayışoXırab' ),
+       'Categories'                => array( 'Kategoriye' ),
+       'ChangeEmail'               => array( 'EpostaBıvurne' ),
+       'ChangePassword'            => array( 'ParolaBıvurne', 'ParolaResetke' ),
+       'ComparePages'              => array( 'PelaPêverke' ),
+       'Confirmemail'              => array( 'EpostayAraştke' ),
+       'Contributions'             => array( 'İştiraxi' ),
+       'CreateAccount'             => array( 'HesabVırazê' ),
+       'Deadendpages'              => array( 'PelaBêgıre' ),
+       'DeletedContributions'      => array( 'İştıraxêkeBesterneyayê' ),
+       'Disambiguations'           => array( 'ManeoBin' ),
+       'DoubleRedirects'           => array( 'DıletHeteneayış' ),
+       'EditWatchlist'             => array( 'ListeyaSeyriVurnayış' ),
+       'Emailuser'                 => array( 'EpostayaKarberi' ),
+       'Export'                    => array( 'Ateberde' ),
+       'Fewestrevisions'           => array( 'TewrtaynRevizyon' ),
+       'FileDuplicateSearch'       => array( 'KopyaydosyaCıgeyrayış', 'DıletdosyaCıgeyrayış' ),
+       'Filepath'                  => array( 'RayaDosya', 'HerunaDosya', 'CayêDosya' ),
+       'Import'                    => array( 'Azeredê', 'Atewrke' ),
+       'Invalidateemail'           => array( 'TesdiqêepostaBıterknê' ),
+       'BlockList'                 => array( 'ListeyêBLoki', 'IPBloki', 'Blokeyê_IP' ),
+       'LinkSearch'                => array( 'GreCıgeyrayış' ),
+       'Listadmins'                => array( 'ListeyêXizmetkaran' ),
+       'Listbots'                  => array( 'ListeyêBotan' ),
+       'Listfiles'                 => array( 'ListeyêDosyayan', 'DosyayaListeke', 'ListeyêResiman' ),
+       'Listgrouprights'           => array( 'ListeyêHeqêGruban', 'HeqêGrubdeKarberan' ),
+       'Listredirects'             => array( 'ListeyêHetanayışi' ),
+       'Listusers'                 => array( 'ListeyêKarberan', 'KarberaListeke' ),
+       'Log'                       => array( 'Qeyd', 'Qeydi' ),
        'Longpages'                 => array( 'PeleDergi' ),
+       'MIMEsearch'                => array( 'NIMECıgeyrayış' ),
+       'Movepage'                  => array( 'PelaAhuln' ),
        'Mycontributions'           => array( 'İştırakeMe' ),
+       'Mypage'                    => array( 'PelaMe' ),
+       'Mytalk'                    => array( 'PersiyeME' ),
+       'Myuploads'                 => array( 'BarkerdışeMe' ),
+       'Newpages'                  => array( 'PeleyeNewey' ),
+       'PasswordReset'             => array( 'ParolaReset' ),
+       'Prefixindex'               => array( 'SerVerole' ),
        'Recentchanges'             => array( 'VurnayışePeyeni' ),
+       'Search'                    => array( 'Cıgeyre' ),
        'Specialpages'              => array( 'PeleyXısusi' ),
        'Statistics'                => array( 'İstatistiki' ),
        'Tags'                      => array( 'Etiketi' ),
@@ -54,12 +98,132 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#HETENAYIŞ', '#REDIRECT' ),
-       'nogallery'               => array( '0', '#GALERİÇINO', '__NOGALLERY__' ),
+       'notoc'                   => array( '0', '__ESTENÇINO__', '__NOTOC__' ),
+       'nogallery'               => array( '0', '__GALERİÇINO__', '__NOGALLERY__' ),
+       'forcetoc'                => array( '0', '__ESTENZARURET__', '__FORCETOC__' ),
+       'toc'                     => array( '0', '__ESTEN__', '__TOC__' ),
+       'noeditsection'           => array( '0', '__TİMARKERDIŞÇINO__', '__NOEDITSECTION__' ),
+       'noheader'                => array( '0', '__SERNAMEÇINO__', '__NOHEADER__' ),
+       'currentmonth'            => array( '1', 'MEWCUDAŞMİ', 'MEWCUDAŞMİ2', 'CURRENTMONTH', 'CURRENTMONTH2' ),
+       'currentmonth1'           => array( '1', 'MEWCUDAŞMİ1', 'CURRENTMONTH1' ),
+       'currentmonthname'        => array( '1', 'NAMEYAŞMDAMEWCUD', 'CURRENTMONTHNAME' ),
+       'currentmonthnamegen'     => array( '1', 'MEWCUDAŞMACI', 'CURRENTMONTHNAMEGEN' ),
+       'currentmonthabbrev'      => array( '1', 'MEWCUDAŞMİKILMKERDIŞ', 'CURRENTMONTHABBREV' ),
+       'currentday'              => array( '1', 'MEWCUDROCE', 'CURRENTDAY' ),
+       'currentday2'             => array( '1', 'MEWCUDROCE2', 'CURRENTDAY2' ),
+       'currentdayname'          => array( '1', 'NAMEYÊMEWCUDROCE', 'CURRENTDAYNAME' ),
+       'currentyear'             => array( '1', 'MEWCUDSERRE', 'CURRENTYEAR' ),
+       'currenttime'             => array( '1', 'MEWCUDDEME', 'CURRENTTIME' ),
+       'currenthour'             => array( '1', 'MEWCUDSEHAT', 'CURRENTHOUR' ),
+       'localmonth'              => array( '1', 'WAREYAŞMİ', 'WAREYAŞMİ2', 'LOCALMONTH', 'LOCALMONTH2' ),
+       'localmonth1'             => array( '1', 'WAREYAŞMİ1', 'LOCALMONTH1' ),
+       'localmonthname'          => array( '1', 'NAMEYÊWAREYAŞMİ', 'LOCALMONTHNAME' ),
+       'localmonthnamegen'       => array( '1', 'NAMEYWAREDÊAŞMİDACI', 'LOCALMONTHNAMEGEN' ),
+       'localmonthabbrev'        => array( '1', 'WAREYAŞMİKILMKERDIŞ', 'LOCALMONTHABBREV' ),
+       'localday'                => array( '1', 'WAREYROCE', 'LOCALDAY' ),
+       'localday2'               => array( '1', 'WAREYROCE2', 'LOCALDAY2' ),
+       'localdayname'            => array( '1', 'NAMEYÊWAREYROCE', 'LOCALDAYNAME' ),
+       'localyear'               => array( '1', 'WAREYSERRE', 'LOCALYEAR' ),
+       'localtime'               => array( '1', 'WAREYDEME', 'LOCALTIME' ),
+       'localhour'               => array( '1', 'WAREYSEHAT', 'LOCALHOUR' ),
+       'numberofpages'           => array( '1', 'AMARİYAPELAN', 'NUMBEROFPAGES' ),
+       'numberofarticles'        => array( '1', 'AMARİYAWESİQAN', 'NUMBEROFARTICLES' ),
+       'numberoffiles'           => array( '1', 'AMARİYADOSYAYAN', 'NUMBEROFFILES' ),
+       'numberofusers'           => array( '1', 'AMARİYAKARBERAN', 'NUMBEROFUSERS' ),
+       'numberofactiveusers'     => array( '1', 'AMARİYAAKTİVKARBERAN', 'NUMBEROFACTIVEUSERS' ),
+       'numberofedits'           => array( '1', 'AMARİYAVURNAYIŞAN', 'NUMBEROFEDITS' ),
+       'numberofviews'           => array( '1', 'AMARİYAMOCNAYIŞAN', 'NUMBEROFVIEWS' ),
+       'pagename'                => array( '1', 'NAMEYPELA', 'PAGENAME' ),
+       'pagenamee'               => array( '1', 'NAMEYPELAA', 'PAGENAMEE' ),
+       'namespace'               => array( '1', 'CANAME', 'NAMESPACE' ),
+       'namespacee'              => array( '1', 'CANAMEE', 'NAMESPACEE' ),
+       'namespacenumber'         => array( '1', 'AMARİYACANAME', 'NAMESPACENUMBER' ),
+       'talkspace'               => array( '1', 'CAYÊWERÊNAYIŞİ', 'TALKSPACE' ),
+       'talkspacee'              => array( '1', 'CAYÊWERÊNAYIŞAN', 'TALKSPACEE' ),
+       'subjectspace'            => array( '1', 'CAYÊMESEL', 'CAYÊWESİQE', 'SUBJECTSPACE', 'ARTICLESPACE' ),
+       'subjectspacee'           => array( '1', 'CAYÊMESELAN', 'CAYÊWESİQAN', 'SUBJECTSPACEE', 'ARTICLESPACEE' ),
+       'fullpagename'            => array( '1', 'NAMEYPELAPÊRO', 'FULLPAGENAME' ),
+       'fullpagenamee'           => array( '1', 'NAMEYPELAPÊRON', 'FULLPAGENAMEE' ),
+       'subpagename'             => array( '1', 'NAMEYBINPELA', 'SUBPAGENAME' ),
+       'subpagenamee'            => array( '1', 'NAMEYBINPELAA', 'SUBPAGENAMEE' ),
+       'basepagename'            => array( '1', 'NAMEYSERPELA', 'BASEPAGENAME' ),
+       'basepagenamee'           => array( '1', 'NAMEYSERPELAA', 'BASEPAGENAMEE' ),
+       'talkpagename'            => array( '1', 'NAMEYPELAWERÊNAYIŞ', 'TALKPAGENAME' ),
+       'talkpagenamee'           => array( '1', 'NAMEYPELAWERÊNAYIŞAN', 'TALKPAGENAMEE' ),
+       'subjectpagename'         => array( '1', 'NAMEYPELAMESEL', 'NAMEYPELAWESİQE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
+       'subjectpagenamee'        => array( '1', 'NAMEYPELAMESELER', 'NAMEYPELAQESİQER', 'SUBJECTPAGENAMEE', 'ARTICLEPAGENAMEE' ),
        'msg'                     => array( '0', 'MSC', 'MSG:' ),
+       'subst'                   => array( '0', 'KOPYAKE', 'ATEBERDE', 'SUBST:' ),
+       'safesubst'               => array( '0', 'EMELEYATEBERDE', 'SAFESUBST:' ),
+       'msgnw'                   => array( '0', 'MSJNW:', 'MSGNW:' ),
+       'img_thumbnail'           => array( '1', 'resmowerdı', 'werdı', 'thumbnail', 'thumb' ),
+       'img_manualthumb'         => array( '1', 'resmowerdı=$1', 'erwdı=$1', 'thumbnail=$1', 'thumb=$1' ),
+       'img_right'               => array( '1', 'raşt', 'right' ),
+       'img_left'                => array( '1', 'çep', 'left' ),
+       'img_none'                => array( '1', 'çıno', 'none' ),
+       'img_width'               => array( '1', '$1pik', '$1piksel', '$1px' ),
+       'img_center'              => array( '1', 'werte', 'miyan', 'center', 'centre' ),
+       'img_framed'              => array( '1', 'çerçeweyın', 'çerçeweya', 'çerçewe', 'framed', 'enframed', 'frame' ),
+       'img_frameless'           => array( '1', 'beçerçewe', 'frameless' ),
+       'img_page'                => array( '1', 'pela=$1', 'pela_$1', 'page=$1', 'page $1' ),
+       'img_border'              => array( '1', 'sinor', 'border' ),
+       'img_top'                 => array( '1', 'gedug', 'top' ),
+       'img_middle'              => array( '1', 'merkez', 'middle' ),
+       'img_link'                => array( '1', 'gre=$1', 'link=$1' ),
+       'int'                     => array( '0', 'İNT:', 'INT:' ),
+       'scriptpath'              => array( '0', 'RAYASCRIPTİ', 'SCRIPTPATH' ),
+       'stylepath'               => array( '0', 'TERZÊTEWRİ', 'STYLEPATH' ),
+       'grammar'                 => array( '0', 'GRAMER:', 'GRAMMAR:' ),
+       'gender'                  => array( '0', 'CİNSİYET:', 'GENDER:' ),
+       'notitleconvert'          => array( '0', '__SERNAMEVURNAYIŞÇINO__', '__SVÇ__', '__NOTITLECONVERT__', '__NOTC__' ),
+       'nocontentconvert'        => array( '0', '__ZERREVURNAYIŞÇINO__', '__ZVÇ__', '__NOCONTENTCONVERT__', '__NOCC__' ),
+       'currentweek'             => array( '1', 'MEVCUDHEFTE', 'CURRENTWEEK' ),
+       'currentdow'              => array( '1', 'MEVCUDWAREYHEFTİ', 'CURRENTDOW' ),
+       'localweek'               => array( '1', 'WAREYHEFTİ', 'LOCALWEEK' ),
+       'localdow'                => array( '1', 'WAREYROCAHEFTİ', 'LOCALDOW' ),
+       'revisionid'              => array( '1', 'NIMREYREVİZYONİ', 'REVISIONID' ),
+       'revisionday'             => array( '1', 'ROCAREVİZYONİ', 'REVISIONDAY' ),
+       'revisionday2'            => array( '1', 'ROCAREVİZYON1', 'REVISIONDAY2' ),
+       'revisionmonth'           => array( '1', 'AŞMAREVİZYONİ', 'REVISIONMONTH' ),
+       'revisionmonth1'          => array( '1', 'AŞMAREVİZYONİ1', 'REVISIONMONTH1' ),
+       'revisionyear'            => array( '1', 'SERRAREVİZYONİ', 'REVISIONYEAR' ),
+       'revisiontimestamp'       => array( '1', 'MELUMATÊREVİZYONÊDEMİ', 'REVISIONTIMESTAMP' ),
+       'revisionuser'            => array( '1', 'REVİZYONKARBER', 'REVISIONUSER' ),
+       'plural'                  => array( '0', 'ZAFEN:', 'PLURAL:' ),
+       'fullurl'                 => array( '0', 'GREPÊRO:', 'FULLURL:' ),
+       'fullurle'                => array( '0', 'GREYOPÊRON:', 'FULLURLE:' ),
+       'canonicalurl'            => array( '0', 'GREYÊKANONİK:', 'CANONICALURL:' ),
+       'canonicalurle'           => array( '0', 'GREYOKANONİK:', 'CANONICALURLE:' ),
+       'lcfirst'                 => array( '0', 'KHİLK:', 'LCFIRST:' ),
+       'ucfirst'                 => array( '0', 'BHİLK:', 'UCFIRST:' ),
+       'lc'                      => array( '0', 'KH:', 'LC:' ),
+       'uc'                      => array( '0', 'BH:', 'UC:' ),
+       'raw'                     => array( '0', 'XAM:', 'RAW:' ),
+       'displaytitle'            => array( '1', 'SERNAMEİBIMOCNE', 'DISPLAYTITLE' ),
+       'newsectionlink'          => array( '1', '__GREYÊSERNAMEDÊNEWİ__', '__NEWSECTIONLINK__' ),
+       'nonewsectionlink'        => array( '1', '__GREYÊSERNAMEDÊNEWİÇINO__', '__NONEWSECTIONLINK__' ),
+       'currentversion'          => array( '1', 'MEWCUDVERSİYON', 'CURRENTVERSION' ),
+       'currenttimestamp'        => array( '1', 'MEWCUDWAREYSEHAT', 'CURRENTTIMESTAMP' ),
+       'localtimestamp'          => array( '1', 'MALUMATÊWAREYSEHAT', 'LOCALTIMESTAMP' ),
        'language'                => array( '0', '#ZIWAN', '#LANGUAGE:' ),
+       'contentlanguage'         => array( '1', 'ZIWANÊESTİN', 'ZIWESTEN', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
+       'pagesinnamespace'        => array( '1', 'PELEYÊKECADÊNAMİDEYÊ', 'PELECN', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
+       'numberofadmins'          => array( '1', 'AMARİYAXİZMETKARAN', 'NUMBEROFADMINS' ),
+       'formatnum'               => array( '0', 'BABETNAYIŞ', 'FORMATNUM' ),
        'special'                 => array( '0', 'xısusi', 'special' ),
        'speciale'                => array( '0', 'xısusiye', 'speciale' ),
+       'defaultsort'             => array( '1', 'RATNAYIŞOHESBNAYIŞ', 'QESAYARATNAYIŞOHESBNAYIŞ', 'KATEGORİYARATNAYIŞOHESBNAYIŞ', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
+       'filepath'                => array( '0', 'RAYADOSYA:', 'FILEPATH:' ),
        'tag'                     => array( '0', 'etiket', 'tag' ),
+       'hiddencat'               => array( '1', '__KATEGORİYANIMITİ__', '__HIDDENCAT__' ),
+       'pagesincategory'         => array( '1', 'PELEYÊKEKATEGORİDEYÊ', 'KATDÊPELEY', 'PAGESINCATEGORY', 'PAGESINCAT' ),
+       'pagesize'                => array( '1', 'EBATÊPELA', 'PAGESIZE' ),
+       'index'                   => array( '1', '__SERSIQ__', '__INDEX__' ),
+       'noindex'                 => array( '1', '__SERSIQÇINYO__', '__NOINDEX__' ),
+       'numberingroup'           => array( '1', 'GRUBDEAMARE', 'AMARİYAGRUBER', 'NUMBERINGROUP', 'NUMINGROUP' ),
+       'staticredirect'          => array( '1', '__STATİKHETENAYIŞ__', '__STATICREDIRECT__' ),
+       'protectionlevel'         => array( '1', 'SEWİYEYÊSTARE', 'PROTECTIONLEVEL' ),
+       'url_wiki'                => array( '0', 'WİKİ', 'WIKI' ),
 );
 
 $messages = array(
@@ -225,8 +389,8 @@ $messages = array(
 'vector-simplesearch-preference' => 'Tewsiyanê cıgeyrayışiê raverberdeyan ake (Tenya vector skin de)',
 'vector-view-create' => 'Vıraze',
 'vector-view-edit' => 'Bıvurne',
-'vector-view-history' => 'Tarixi bımocne',
-'vector-view-view' => 'Bıwane',
+'vector-view-history' => 'Ravêrda bımocne',
+'vector-view-view' => 'Bıwanê',
 'vector-view-viewsource' => 'Çımey bıvêne',
 'actions' => 'Karê kerdey',
 'namespaces' => 'Cayê namey',
@@ -260,7 +424,7 @@ $messages = array(
 'protectthispage' => 'Ena pele bıpawe',
 'unprotect' => 'Starkerdışi bıvurne',
 'unprotectthispage' => 'Starkerdışe ena peler bıvurne',
-'newpage' => 'Pela newiye',
+'newpage' => 'Pela newi',
 'talkpage' => 'Ena pele sero werêne',
 'talkpagelinktext' => 'Mesac',
 'specialpage' => 'Pela xısusi',
@@ -303,7 +467,7 @@ $1',
 'copyrightpage' => '{{ns:project}}:Heqa telifi',
 'currentevents' => 'Veng u vac',
 'currentevents-url' => 'Project:Veng u vac',
-'disclaimers' => 'Redê mesulêti',
+'disclaimers' => 'Redê mesuliyeti',
 'disclaimerpage' => 'Project:Reddê mesuliyetê bıngey',
 'edithelp' => 'Peştdarina vurnayışi',
 'edithelppage' => 'Help:Pele çıtewr vurniyena',
@@ -314,11 +478,11 @@ $1',
 'portal' => 'Portalê cemaeti',
 'portal-url' => 'Project:Portalê cemaeti',
 'privacy' => 'Madeyê dızdine',
-'privacypage' => 'Project:Madeyê dızdine',
+'privacypage' => 'Project:Xısusiyetê nımtışi',
 
 'badaccess' => 'Xeta mısadey',
 'badaccess-group0' => 'Heqa şıma çıniya, karo ke şıma waşt, bıkerê.',
-'badaccess-groups' => 'No fealiyetê şımawo waşte tenya karberanê {{PLURAL:$2|grubi|gruban ra yewi}} rê akerdeyo: $1.',
+'badaccess-groups' => 'No fealiyeto ke şıma waşt, tenya karberanê {{PLURAL:$2|grubi|gruban ra yewi}} rê akerdeyo: $1.',
 
 'versionrequired' => 'No $1 MediaWiki lazımo',
 'versionrequiredtext' => 'Seba gurenayışê na pele versiyonê MediaWiki $1 lazımo. 
@@ -339,7 +503,7 @@ $1',
 'editlink' => 'bıvurne',
 'viewsourcelink' => 'çımey bıvêne',
 'editsectionhint' => 'Qısımi bıvurne: $1',
-'toc' => 'Tedeestey',
+'toc' => 'Sernameyê meselan',
 'showtoc' => 'bımocne',
 'hidetoc' => 'bınımne',
 'collapsible-collapse' => 'Kılm ke',
@@ -1031,7 +1195,7 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 'powersearch' => 'Cıgeyrayışo hera',
 'powersearch-legend' => 'Cıgeyrayışo hera',
 'powersearch-ns' => 'Cayanê nameyan de cıgeyrayış:',
-'powersearch-redir' => 'Raçarnayeyan lista ke',
+'powersearch-redir' => 'Listeya hetenayışan',
 'powersearch-field' => 'Seba cı seyr ke',
 'powersearch-togglelabel' => 'Qontrol ke:',
 'powersearch-toggleall' => 'Pêro',
@@ -1217,7 +1381,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'grouppage-suppress' => '{{ns:project}}:Kontrol',
 
 # Rights
-'right-read' => 'Pele bıwane',
+'right-read' => 'Pelan bıwanê',
 'right-edit' => 'Pele bıvurne',
 'right-createpage' => 'Pele vıraze (pelê ke ê werênayışi niyê)',
 'right-createtalk' => 'Pela werênayışi vıraze',
@@ -1283,7 +1447,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'rightsnone' => '(çino)',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-read' => 'ena pele bıwane',
+'action-read' => 'ena pela wanayış',
 'action-edit' => 'ena pela bıvurnê',
 'action-createpage' => 'pelan bıvıraze',
 'action-createtalk' => 'pelanê werênayışi bıvıraze',
@@ -1332,7 +1496,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'rcnotefrom' => "Cêr de vurnayîşê esto ke '''$2''' ra raver  (heta '''$1''' mucnayiyo).",
 'rclistfrom' => '$1 ra vurnayışanê neweyan bımoc',
 'rcshowhideminor' => 'Vurnayışanê werdiya $1',
-'rcshowhidebots' => 'bota $1',
+'rcshowhidebots' => 'Bota $1',
 'rcshowhideliu' => 'karberanê qeydına $1',
 'rcshowhideanons' => 'karberanê anoniman $1',
 'rcshowhidepatr' => '$1 vurnayışê ke dewriya geyrayê',
@@ -1562,7 +1726,7 @@ keyepel nıka zaf meşğulo yew dema herayi de newe ra tesel bıkerê.',
 
 # File description page
 'file-anchor-link' => 'Dosya',
-'filehist' => 'Tarixê dosya',
+'filehist' => 'Ravêrdê dosya',
 'filehist-help' => 'Klik bık ser yew tarih u aye tarih dı versionê dosya bıvin.',
 'filehist-deleteall' => 'hemî biestere',
 'filehist-deleteone' => 'bıestere',
@@ -1635,7 +1799,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 'unwatchedpages' => 'Pelanê seyrnibiyeyî',
 
 # List redirects
-'listredirects' => 'Listeyê redireksiyonî',
+'listredirects' => 'Listeya Hetenayışan',
 
 # Unused templates
 'unusedtemplates' => 'Şablonê ke nê xebtênê',
@@ -1647,7 +1811,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 'randompage-nopages' => 'Ena {{PLURAL:$2|cayêname|cayênameyî}} de enê pelan çin o: $1.',
 
 # Random redirect
-'randomredirect' => 'Redereksiyonê randomî',
+'randomredirect' => 'Xoseri hetenayış',
 'randomredirect-nopages' => 'Ena cayênameyê "$1"î de redereksiyonî çin o.',
 
 # Statistics
@@ -1737,7 +1901,7 @@ gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
 'protectedtitles' => 'Sernameyê ke starênê',
 'protectedtitlestext' => 'sernameyê cêrıni pawıte yî',
 'protectedtitlesempty' => 'pê ney parametreyan sernuşteyê pawite çinê',
-'listusers' => 'Lista karberan',
+'listusers' => 'Listeyê Karberan',
 'listusers-editsonly' => 'Teyna karberan bimucne ke ey nuştê',
 'listusers-creationsort' => 'goreyê wextê vıraştışi rêz ker',
 'usereditcount' => '$1 {{PLURAL:$1|vurnayîş|vurnayîşî}}',
@@ -2081,7 +2245,7 @@ Tı eşkeno seviyeye kılit kerdışi bıvurno, feqat tı nıeşken "cascading p
 'restriction-level-all' => 'seviye ya ke raşt ame',
 
 # Undelete
-'undelete' => 'pelê hewn a şiyayeyani ra mocın',
+'undelete' => 'Peleyê ke besterneyayê enê bımocnê',
 'undeletepage' => 'bıewn revizyonê peli yê hewn a şiyayeyan u tepiya biyar',
 'undeletepagetitle' => "'''pelo [[:$1|$1]] cêrın, wayirê revizyonê hewn a şiyayeyan o'''.",
 'viewdeletedpage' => 'bıewn pelê hewn a şiyayeyani',
@@ -2111,7 +2275,7 @@ Revizyoni ya hewn a biyê ya arşiw ra veciyayê ya zi cıresayişê şımayi ş
 'undeletedpage' => "'''$1 pel tepiya anciya'''
 
 qey karê tepiya ardışi u qey karê hewn a kerdışê verıni bıewnê [[Special:Log/delete|qeydê hewn a kerdışi]].",
-'undelete-header' => 'qey vinayişê peli yê ke cıwa ver hewn a biyê: [[Special:Log/delete|qeydê hewn a kerdışi]].',
+'undelete-header' => 'Peleyê ke veror de besterneyayê êna bıvinê: [[Special:Log/delete|qeydê esterneya]].',
 'undelete-search-title' => 'Bıgeyre pelanê eserıtiyan',
 'undelete-search-box' => 'bıgêr pelê hewn a biyayeyani',
 'undelete-search-prefix' => 'pel ê ke pê ney destpêkenî, ramocın',
@@ -2418,7 +2582,7 @@ Wexta ke şıma no pel vurneni diqet bıkeri, loge bivini:",
 Ma rica keno yewna sername binuse.',
 
 # Export
-'export' => 'Pelan export bık',
+'export' => 'Pela ateber dı',
 'exporttext' => 'şıma yew pelê nişanebiyayeyi, nuşteyê taqımê pelani, pê pêşteyê XMLi eşkeni bıdi teberi.
 wiki yo ke wikimedya xebıtneno, pê [[Special:Import|pelê zerre dayişê]] no wikiyi beno.
 
@@ -2679,7 +2843,7 @@ Gurênayışê nae de, beno ke sistemê şıma zerar bıvêno.",
 'file-info-png-frames' => '$1 {{PLURAL:$1|çerçeve|çerçeveyi}}',
 
 # Special:NewFiles
-'newimages' => 'Galeyê dosyayanê newe',
+'newimages' => 'Galeriya dosyayan dê newan',
 'imagelisttext' => "Cêr de yew listeyê '''$1''' esto {{PLURAL:$1|dosya|dosyayi}} veçiniya $2.",
 'newimages-summary' => 'Ena pela xasi dosyayi ke peni de bar biyayeyi mocnane.',
 'newimages-legend' => 'Filtre',
@@ -3295,7 +3459,7 @@ enê programiya piya [{{SERVER}}{{SCRIPTPATH}}/COPYING jew kopyay lisans dê GNU
 Resımi be tam asayış mocniyayê, tipê dosyaê bini be programê cıyo elaqedar direkt dest keno pê.',
 
 # Special:FileDuplicateSearch
-'fileduplicatesearch' => 'kopyayê dosyayi bigêre',
+'fileduplicatesearch' => 'Dosyayanê zey pêyan cı geyrê',
 'fileduplicatesearch-summary' => 'Dosyanê çıftan bınê têmiyankewteyan de bıgeyre.',
 'fileduplicatesearch-legend' => 'kopyayê ena dosya bigêre',
 'fileduplicatesearch-filename' => 'Nameyê dosyayi',
@@ -3317,11 +3481,11 @@ Resımi be tam asayış mocniyayê, tipê dosyaê bini be programê cıyo elaqed
 'specialpages-group-changes' => 'Vurnayişê peni u logan',
 'specialpages-group-media' => 'Raporê medya u bar kerdîşî',
 'specialpages-group-users' => 'Karber u heqqî',
-'specialpages-group-highuse' => 'Pelî ke zaf klik benê',
+'specialpages-group-highuse' => 'Peleyê ke vêşi karênê',
 'specialpages-group-pages' => 'listeyanê pelan',
-'specialpages-group-pagetools' => 'hacetanê pelayan',
-'specialpages-group-wiki' => 'Data u hacetê wîkîyî',
-'specialpages-group-redirects' => 'Pela xasî reyna direk kenê',
+'specialpages-group-pagetools' => 'Hacetê pelan',
+'specialpages-group-wiki' => 'Malumatê wiki u haceti',
+'specialpages-group-redirects' => 'Pela xasîyê ke heteneyayê',
 'specialpages-group-spam' => 'hacetê spami',
 
 # Special:BlankPage
@@ -3339,7 +3503,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 #parçeyê ifadeya rêzbiyayeyani bıerzê serê ney satıri. no satır zey xo verde/raverde </pre>',
 
 # Special:Tags
-'tags' => 'Etiketê vurnayîş ê raştî',
+'tags' => 'Etiketê vurnayîşê raştî',
 'tag-filter' => '[[Special:Tags|Tag]] filitre:',
 'tag-filter-submit' => 'Filitre',
 'tags-title' => 'Etiketan',
@@ -3352,7 +3516,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 'tags-hitcount' => '$1 {{PLURAL:$1|vurnayış|vurnayışi}}',
 
 # Special:ComparePages
-'comparepages' => 'Peleyan miqeyese bike',
+'comparepages' => 'Pela miqeyese ke',
 'compare-selector' => 'Revizyonê pele miqayese bike',
 'compare-page1' => 'Pel 1',
 'compare-page2' => 'Pel 2',
index d0dc072..8eea213 100644 (file)
@@ -1961,6 +1961,7 @@ Pšosym glědaj na to, až druge websedła móžu k drugej dataji z direktnym UR
 'alllogstext' => 'To jo kombiněrowane zwobraznjenje wšyknych we {{GRAMMAR:lokatiw|{{SITENAME}}}} k dispoziciji stojecych protokolow. Móžoš naglěd pśez wubraśe protokolowego typa, wužywarskego mjenja (pód źiwanim wjelikopisanja) abo pótrjefjonego boka (teke pód źiwanim wjelikopisanja) wobgranicowaś.',
 'logempty' => 'Žedne se góźece zapise njeeksistěruju.',
 'log-title-wildcard' => 'Pytaś nadpismo, kótarež zachopijo z ...',
+'showhideselectedlogentries' => 'Wubrane protokolowe zapiski pokazaś/schowaś',
 
 # Special:AllPages
 'allpages' => 'Wšykne boki',
index 6672677..8830e71 100644 (file)
@@ -2201,6 +2201,7 @@ Por favor note que otros sitios web pueden vincular a un archivo con un URL dire
 Puedes filtrar la vista seleccionando un tipo de registro, el nombre del usuario o la página afectada. Se distinguen mayúsculas de minúsculas.',
 'logempty' => 'No hay elementos en el registro con esas condiciones.',
 'log-title-wildcard' => 'Buscar títulos que empiecen con este texto',
+'showhideselectedlogentries' => 'Mostrar u ocultar las entradas del registro seleccionado',
 
 # Special:AllPages
 'allpages' => 'Todas las páginas',
index 33ae9af..966c58e 100644 (file)
@@ -78,10 +78,10 @@ $specialPageAliases = array(
        'Booksources'               => array( 'منابع_کتاب' ),
        'BrokenRedirects'           => array( 'تغییرمسیرهای_خراب' ),
        'Categories'                => array( 'رده‌ها' ),
-       'ChangeEmail'               => array( 'تغییر_رایانامه', 'تغییر_پست_الکترونیکی' ),
+       'ChangeEmail'               => array( 'تغییر_رایانامه' ),
        'ChangePassword'            => array( 'از_نو_کردن_گذرواژه' ),
        'ComparePages'              => array( 'مقایسه_صفحات' ),
-       'Confirmemail'              => array( 'تایید_رایانامه', 'تایید_پست_الکترونیکی' ),
+       'Confirmemail'              => array( 'تایید_رایانامه' ),
        'Contributions'             => array( 'مشارکت‌ها' ),
        'CreateAccount'             => array( 'ایجاد_حساب_کاربری' ),
        'Deadendpages'              => array( 'صفحه‌های_بن‌بست' ),
@@ -95,7 +95,7 @@ $specialPageAliases = array(
        'FileDuplicateSearch'       => array( 'جستجوی_پرونده_تکراری' ),
        'Filepath'                  => array( 'مسیر_پرونده' ),
        'Import'                    => array( 'درون_ریزی_صفحه' ),
-       'Invalidateemail'           => array( 'باطل_کردن_رایانامه', 'باطل_کردن_پست_الکترونیکی' ),
+       'Invalidateemail'           => array( 'باطل_کردن_رایانامه' ),
        'BlockList'                 => array( 'فهرست_بستن_نشانی_آی‌پی' ),
        'LinkSearch'                => array( 'جستجوی_پیوند' ),
        'Listadmins'                => array( 'فهرست_مدیران' ),
@@ -264,7 +264,7 @@ $dateFormats = array(
 );
 
 $magicWords = array(
-       'redirect'                => array( '0', '#تغییر_مسیر', '#تغییرمسیر', '#تغییرمسیر', '#REDIRECT' ),
+       'redirect'                => array( '0', '#تغییر_مسیر', '#تغییرمسیر', '#REDIRECT' ),
        'notoc'                   => array( '0', '__بی‌فهرست__', '__NOTOC__' ),
        'nogallery'               => array( '0', '__بی‌نگارخانه__', '__NOGALLERY__' ),
        'forcetoc'                => array( '0', '__بافهرست__', '__FORCETOC__' ),
index 024c213..d37e186 100644 (file)
@@ -234,7 +234,7 @@ $specialPageAliases = array(
        'BrokenRedirects'           => array( 'הפניות_לא_תקינות', 'הפניות_שבורות' ),
        'Categories'                => array( 'קטגוריות', 'רשימת_קטגוריות' ),
        'ChangeEmail'               => array( 'שינוי_דואר_אלקטרוני', 'שינוי_דואל' ),
-       'ChangePassword'            => array( 'שינוי_סיסמה', 'איפוס_סיסמה' ),
+       'ChangePassword'            => array( 'שינוי_סיסמה' ),
        'ComparePages'              => array( 'השוואת_דפים' ),
        'Confirmemail'              => array( 'אימות_כתובת_דואר' ),
        'Contributions'             => array( 'תרומות', 'תרומות_המשתמש' ),
@@ -2221,6 +2221,7 @@ $1',
 ניתן לצמצם את התצוגה על ידי בחירת סוג היומן, שם המשתמש (תלוי רישיות) או הדף המושפע (גם כן תלוי רישיות).',
 'logempty' => 'אין פריטים תואמים ביומן.',
 'log-title-wildcard' => 'חיפוש כותרות המתחילות באותיות אלה',
+'showhideselectedlogentries' => 'הצגת/הסתרת פעולות היומן שנבחרו',
 
 # Special:AllPages
 'allpages' => 'כל הדפים',
index 44def86..b0e91bd 100644 (file)
@@ -1961,6 +1961,7 @@ Prošu wobkedźbuj, zo druhe websydła móža na dataju z direktnym URL wotkazow
 'alllogstext' => 'Kombinowane zwobraznjenje wšěch k dispozicij stejacych protokolow w {{GRAMMAR:lokatiw|{{SITENAME}}}}. Móžeš napohlad wobmjezować, wuběrajo typ protokola, wužiwarske mjeno (dźiwajo na wulkopisanje) abo potrjechu stronu (tež dźiwajo na wulkopisanje).',
 'logempty' => 'Žane wotpowědowace zapiski w protokolu.',
 'log-title-wildcard' => 'Titul započina so z …',
+'showhideselectedlogentries' => 'Wubrane protokolowe zapiski pokazać/schować',
 
 # Special:AllPages
 'allpages' => 'Wšě nastawki',
index 24e06a0..34ed3ba 100644 (file)
@@ -2038,6 +2038,7 @@ executar iste function.',
 Pro restringer le presentation, selige un typo de registro, le nomine de usator (sensibile al majusculas e minusculas), o le pagina in question (etiam sensibile al majusculas e minusculas).',
 'logempty' => 'Le registro contine nihil pro iste pagina.',
 'log-title-wildcard' => 'Cercar titulos que comencia con iste texto',
+'showhideselectedlogentries' => 'Monstrar/celar le entratas de registro seligite',
 
 # Special:AllPages
 'allpages' => 'Tote le paginas',
index 0df460f..ef9bf95 100644 (file)
@@ -2151,7 +2151,7 @@ Harap perhatikan bahwa situs web lain mungkin memiliki pranala ke suatu berkas d
 'log' => 'Log',
 'all-logs-page' => 'Semua log publik',
 'alllogstext' => 'Gabungan tampilan semua log yang tersedia di {{SITENAME}}.
-Anda dapat melakukan pembatasan tampilan dengan memilih jenis log, nama pengguna (sensitif kapital), atau judul halaman (juga sensitif kapital).',
+Anda dapat melakukan pembatasan tampilan dengan memilih jenis log, nama pengguna (sensitif kapitalisasi), atau judul halaman (juga sensitif kapitalisasi).',
 'logempty' => 'Tidak ditemukan entri log yang sesuai.',
 'log-title-wildcard' => 'Cari judul yang diawali dengan teks tersebut',
 
index 288eac9..a376cae 100644 (file)
@@ -425,6 +425,8 @@ Ti naited a rason ket ''$2''.",
 'filereadonlyerror' => 'Di nabaliwan ti papales "$1" gapu ket ti repositorio ti papeles "$2" ket basaen laeng a moda.
 
 Ti administrador a nagserra ket nagited iti daytoy a panagilawlawag "\'\'$3\'\'".',
+'invalidtitle-knownnamespace' => 'Imbalido a titulo nga adda ti nagan ti lugar "$2" ken testo "$3"',
+'invalidtitle-unknownnamespace' => 'Imbalido a titulo nga adda di-amammo a nagan ti lugar a numero $1 ken testo "$2"',
 
 # Virus scanner
 'virus-badscanner' => 'Madi di panaka-aramidna: Di am-ammo a birus a panagskan: "$1"',
@@ -830,6 +832,12 @@ Dagitoy a panagpalawag  ket naikkaten.",
 'parser-template-loop-warning' => 'Adda nasarakan a silo ti plantilia: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Ti kinauneg ti pinagdullit ti plantilia ket nagpatingga ti napalabes ($1)',
 'language-converter-depth-warning' => 'Ti kauneg ti panagaramid ti pagsasao ket napalabes ti agpatingga a ($1)',
+'node-count-exceeded-category' => 'Dagiti panid a simmurok ti bilang ti node',
+'node-count-exceeded-warning' => 'Ti panid ket nasurokanna ti bilang ti node',
+'expansion-depth-exceeded-category' => 'Dagiti panid a nasurokan ti kauneg ti panagpadakkel',
+'expansion-depth-exceeded-warning' => 'Ti panid ket nasurokanna ti kauneg ti panagpadakkel',
+'parser-unstrip-loop-warning' => 'Adda  nakita a di-naukisan a silo',
+'parser-unstrip-recursion-limit' => 'Ti di-naukisan a panagsumro manen a patingga ket nasurokan ($1)',
 
 # "Undo" feature
 'undo-success' => 'Ti panag-urnos ket san a maisubli.
@@ -1008,7 +1016,9 @@ Usaren ti radio a buton a tukol ti pinagtipon iti laeng pinagbaliw a naaramid id
 'mergelogpagetext' => 'Adda dita baba ti listaan dagiti kinaudian a pinagtipon ti maysa a panid ti pakasaritaan iti maysa a sabali.',
 
 # Diffs
-'history-title' => 'Pakasaritaan ti pannakabalbaliw ti "$1"',
+'history-title' => 'Panagbalbaliw a pakasaritaan iti "$1"',
+'difference-title' => 'Paggiddiatan a nagbaetan dagiti panagbalbaliw iti "$1"',
+'difference-title-multipage' => 'Paggiddiatan a nagbaetan dagiti panid  "$1" ken "$2"',
 'difference-multipage' => '(Paggiddiatan dagiti panid)',
 'lineno' => 'Linia $1:',
 'compareselectedversions' => 'Paggidiaten dagiti pinili a binaliwan',
@@ -1106,6 +1116,7 @@ Laglagipem laeng a dagiti listaan da a nagyan ti {{SITENAME}} saan a barbaro.',
 'prefs-beta' => 'Dagiti beta a langa',
 'prefs-datetime' => 'Petsa ken oras',
 'prefs-labs' => 'Dagiti subokan a langa',
+'prefs-user-pages' => 'Dagiti panid ti agar-aramat',
 'prefs-personal' => 'Bariweswes ti agar-aramat',
 'prefs-rc' => 'Kaudian a balbaliw',
 'prefs-watchlist' => 'Listaan ti bambantayan',
@@ -1574,13 +1585,14 @@ No ti parikut ket agsubli latta, kontaken ti [[Special:ListUsers/sysop|administr
 'backend-fail-writetemp' => 'Saan a masuratan ti temporario a papeles.',
 'backend-fail-closetemp' => 'Saan a marikpan ti temporario a papeles.',
 'backend-fail-read' => 'Saan a mabasa ti papeles $1.',
-'backend-fail-create' => 'Saan a maaramid ti papeles $1.',
-'backend-fail-maxsize' => 'Saan a naaramid ti papeles $1 gapu ket dakdakkel ngem {{PLURAL:$2|maysa a byte|$2 a dagiti bytes}}.',
+'backend-fail-create' => 'Saan a masuratan ti papeles $1.',
+'backend-fail-maxsize' => 'Saan a masuratan ti papeles $1 gapu ta dakdakkel ngem {{PLURAL:$2|maysa a byte|$2 a dagiti bytes}}.',
 'backend-fail-readonly' => 'Ti pagidulinan a kalikudan ti "$1" ket agdama a mabasa laeng. Ti rason a naited idi ket: "$2"',
 'backend-fail-synced' => 'Ti papeles "$1" ket bangking ti kasasaad na  iti kinauneg a pagidulinan ti kalikudan',
 'backend-fail-connect' => 'Saan a makaikapet idiay pagidulinan a kalikudan  "$1".',
 'backend-fail-internal' => 'Adda di amammo a biddut ti napasamak idiay pagidulinan a kalikudan "$1".',
 'backend-fail-contenttype' => 'Saan a maammoan ti kita ti linaon ti papeles nga idulin idiay "$1".',
+'backend-fail-usable' => 'Saan a masuratan ti papeles $1 gapu ta awan ti makaanay a pammalubos wenno awan dagiti direktorio/pangikabilan.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Saan a malukatan ti "$1"; saan a nakandaduan.',
@@ -1899,6 +1911,7 @@ Pangngaasi a laglagipen a dagiti sabali a pagsaadan ti apot ket makapanilpo ti p
 Mapabassit mo ti pinagpakita no piliam ti kita ti listaan, ti nagan ti gar-aramat (sensitibo ti kadakkel ti letra), wenno ti naapektaran a panid (ket sensitibo met ti kadakkel ti letra).',
 'logempty' => 'Awan ti agpada a bagay dita listaan.',
 'log-title-wildcard' => 'Agsapul kadagiti titulo nga agrugi iti daytoy a testo',
+'showhideselectedlogentries' => 'Ipakita/ilemmeng dagiti napili a naikabil ti listaan',
 
 # Special:AllPages
 'allpages' => 'Amin a panid',
@@ -1920,6 +1933,7 @@ Mapabassit mo ti pinagpakita no piliam ti kita ti listaan, ti nagan ti gar-arama
 
 # SpecialCachedPage
 'cachedspecial-viewing-cached-ttl' => 'Kitkitaenm ti naidulin a bersion iti daytoy a panid, nga addan ti kadaanan a $1.',
+'cachedspecial-viewing-cached-ts' => 'Kitkitaem ti maysa a naidulin a bersion iti daytoy a panid, a baka daytoy ket saan a kompleto nga agpayso.',
 'cachedspecial-refresh-now' => 'Kitaen ti kinaudian.',
 
 # Special:Categories
index b1687a7..b3ffd66 100644 (file)
@@ -126,7 +126,7 @@ $specialPageAliases = array(
        'DeletedContributions'      => array( 'ContributiCancellati' ),
        'Disambiguations'           => array( 'Disambigua' ),
        'DoubleRedirects'           => array( 'RedirectDoppi' ),
-       'EditWatchlist'             => array( 'ModifcaListaSeguiti' ),
+       'EditWatchlist'             => array( 'ModificaListaSeguiti' ),
        'Emailuser'                 => array( 'InviaEMail' ),
        'Export'                    => array( 'Esporta' ),
        'Fewestrevisions'           => array( 'PagineConMenoRevisioni' ),
index d51952d..8b2a8cd 100644 (file)
@@ -376,7 +376,7 @@ $messages = array(
 'tog-editsection' => '[編集]リンクから節を編集できるようにする',
 'tog-editsectiononrightclick' => '節見出しの右クリックで節を編集できるようにする(JavaScriptが必要)',
 'tog-showtoc' => '目次を表示(ページに見出しが4つ以上ある場合)',
-'tog-rememberpassword' => 'このブラウザにログイン情報を記憶(最大 $1 {{PLURAL:$1|日間}})',
+'tog-rememberpassword' => 'ã\81\93ã\81®ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81«ã\83­ã\82°ã\82¤ã\83³æ\83\85å ±ã\82\92è¨\98æ\86¶ï¼\88æ\9c\80大 $1 {{PLURAL:$1|æ\97¥é\96\93}}ï¼\89',
 'tog-watchcreations' => '自分が作成したページをウォッチリストに追加',
 'tog-watchdefault' => '自分が編集したページをウォッチリストに追加',
 'tog-watchmoves' => '自分が移動したページをウォッチリストに追加',
@@ -384,7 +384,7 @@ $messages = array(
 'tog-minordefault' => '細部の編集に既定でチェックを入れる',
 'tog-previewontop' => 'プレビューを編集ボックスの前に配置',
 'tog-previewonfirst' => '編集開始時にもプレビューを表示',
-'tog-nocache' => 'ブラウザによるページのキャッシュを無効にする',
+'tog-nocache' => 'ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81«ã\82\88ã\82\8bã\83\9aã\83¼ã\82¸ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92ç\84¡å\8a¹ã\81«ã\81\99ã\82\8b',
 'tog-enotifwatchlistpages' => 'ウォッチリストにあるページが更新されたらメールを受け取る',
 'tog-enotifusertalkpages' => '自分のトークページが更新されたらメールを受け取る',
 'tog-enotifminoredits' => '細部の編集でもメールを受け取る',
@@ -412,11 +412,11 @@ $messages = array(
 
 'underline-always' => '常に付ける',
 'underline-never' => '常に付けない',
-'underline-default' => 'ブラウザの設定を使用',
+'underline-default' => 'ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®è¨­å®\9aã\82\92使ç\94¨',
 
 # Font style option in Special:Preferences
 'editfont-style' => '編集エリアのフォントスタイル:',
-'editfont-default' => 'ブラウザの設定を使用',
+'editfont-default' => 'ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®è¨­å®\9aã\82\92使ç\94¨',
 'editfont-monospace' => '等幅フォント',
 'editfont-sansserif' => 'Sans Serif フォント',
 'editfont-serif' => 'Serif フォント',
@@ -741,8 +741,8 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'viewyourtext' => "このページへの'''あなたの編集'''のソースの閲覧やコピーができます:",
 'protectedinterface' => 'このページはソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。',
 'editinginterface' => "'''警告:'''ソフトウェアのインターフェイスの文章として使用しているページを編集しています。
-このページの変更は他の利用者のユーザー インターフェイスの外観に影響します。
-翻訳する場合、MediaWiki のローカライズ プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] の使用を検討してください。",
+このページの変更は他の利用者のユーザーインターフェイスの外観に影響します。
+翻訳する場合、MediaWiki のローカライズプロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] の使用を検討してください。",
 'sqlhidden' => '(SQLクエリ非表示)',
 'cascadeprotected' => 'このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}で読み込まれているため、編集できないように保護されています:
 $2',
@@ -765,7 +765,7 @@ $2',
 'logouttext' => "'''ログアウトしました。'''
 
 このまま匿名で{{SITENAME}}の使用を続行できます。同じまたは別の利用者として[[Special:UserLogin|もう一度ログイン]]することもできます。
-なお、ページによっては、ブラウザのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。",
\81ªã\81\8aã\80\81ã\83\9aã\83¼ã\82¸ã\81«ã\82\88ã\81£ã\81¦ã\81¯ã\80\81ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92ã\82¯ã\83ªã\82¢ã\81\99ã\82\8bã\81¾ã\81§ã\80\81ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8bã\81®ã\82\88ã\81\86ã\81«è¡¨ç¤ºã\81\95ã\82\8cç¶\9aã\81\91ã\82\8bå ´å\90\88ã\81\8cã\81\82ã\82\8bã\81\9fã\82\81ã\81\94注æ\84\8fã\81\8fã\81 ã\81\95ã\81\84ã\80\82",
 'welcomecreation' => '== ようこそ、$1 さん! ==
 アカウントが作成されました。
 [[Special:Preferences|{{SITENAME}}の個人設定]]の変更も忘れないようにしてください。',
@@ -866,7 +866,7 @@ $2',
 しばらく時間をおいてから再度お試しください。',
 'login-abort-generic' => 'ログインに失敗しました - 中止',
 'loginlanguagelabel' => '言語: $1',
-'suspicious-userlogout' => 'å£\8aã\82\8cã\81\9fã\83\96ã\83©ã\82¦ã\82¶ã\82\82ã\81\97ã\81\8fはキャッシュプロキシによって送信された可能性があるため、ログアウト要求は拒否されました。',
+'suspicious-userlogout' => 'å£\8aã\82\8cã\81\9fã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81¾ã\81\9fはキャッシュプロキシによって送信された可能性があるため、ログアウト要求は拒否されました。',
 
 # E-mail sending
 'php-mail-error-unknown' => 'PHPのmail()関数で不明なエラー',
@@ -1029,7 +1029,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこの件につ
 'newarticle' => '(新)',
 'newarticletext' => "まだ存在していないページへのリンクをたどりました。
 このページを新規に作成するには、下のボックスに内容を書き込んでください(詳しくは[[{{MediaWiki:Helppage}}|ヘルプページ]]を参照してください)。
-誤ってこのページにたどり着いた場合には、ブラウザの'''戻る'''ボタンで前のページに戻ってください。",
+誤ã\81£ã\81¦ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81\9fã\81©ã\82\8aç\9d\80ã\81\84ã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®'''æ\88»ã\82\8b'''ã\83\9cã\82¿ã\83³ã\81§å\89\8dã\81®ã\83\9aã\83¼ã\82¸ã\81«æ\88»ã\81£ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82",
 'anontalkpagetext' => "----''このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。
 匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。
 IP アドレスは複数の利用者で共有されている場合があります。
@@ -1044,7 +1044,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'userpage-userdoesnotexist-view' => '利用者アカウント「$1」は登録されていません。',
 'blocked-notice-logextract' => 'この利用者は現在ブロックされています。
 参考のために最新のブロック記録を以下に表示します。',
-'clearyourcache' => "'''注意:''' 保存後、変更を確認するにはブラウザのキャッシュを消去する必要がある場合があります。
+'clearyourcache' => "'''注æ\84\8f:''' ä¿\9då­\98å¾\8cã\80\81å¤\89æ\9b´ã\82\92確èª\8dã\81\99ã\82\8bã\81«ã\81¯ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92æ¶\88å\8e»ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82
 * '''Firefox / Safari:''' ''Shift'' を押しながら ''再読み込み'' をクリックする、もしくは ''Ctrl-F5'' か ''Ctrl-R'' を押してください (Macでは ''&#x2318;-R'' )
 * '''Google Chrome:''' ''Ctrl-Shift-R'' を押してください (Macでは ''&#x2318;-Shift-R'' )
 * '''Internet Explorer:''' ''Ctrl'' を押しながら ''最新の情報に更新'' をクリックする、もしくは ''Ctrl-F5'' を押してください
@@ -1295,7 +1295,7 @@ $1",
 'pagehist' => 'ページの履歴',
 'deletedhist' => '削除された履歴',
 'revdelete-hide-current' => '$1$2の項目の非表示に失敗しました:これは最新版であるため。
\9a ã\81\99ã\81\93ã\81¨はできません。',
\9d\9e表示ã\81«はできません。',
 'revdelete-show-no-access' => '$1$2の項目の表示に失敗しました:この項目は「制限付き」に設定されています。
 アクセス権限がありません。',
 'revdelete-modify-no-access' => '$1$2の項目の修正に失敗しました:この項目は「制限付き」に設定されています。
@@ -1340,7 +1340,7 @@ $1",
 'mergehistory-invalid-destination' => '統合先のページは有効な名前でなければなりません。',
 'mergehistory-autocomment' => '[[:$1]]を[[:$2]]に統合',
 'mergehistory-comment' => '[[:$1]]を[[:$2]]に統合:$3',
-'mergehistory-same-destination' => 'çµ±å\90\88å\85\83ã\81¨çµ±å\90\88å\85\88ã\81«å\90\8cã\81\98ã\83\9aã\83¼ã\82¸ã\82\92設å®\9aã\81\99ã\82\8bã\81\93ã\81¨はできません',
+'mergehistory-same-destination' => 'çµ±å\90\88å\85\83ã\81¨çµ±å\90\88å\85\88ã\81®ã\83\9aã\83¼ã\82¸ã\82\92å\90\8cã\81\98ã\81«はできません',
 'mergehistory-reason' => '理由:',
 
 # Merge log
@@ -1490,7 +1490,7 @@ $1",
 'timezoneuseoffset' => 'その他(時差を指定)',
 'timezoneoffset' => '時差¹:',
 'servertime' => 'サーバーの時刻:',
-'guesstimezone' => 'ブラウザの設定から入力',
+'guesstimezone' => 'ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®è¨­å®\9aã\81\8bã\82\89å\85¥å\8a\9b',
 'timezoneregion-africa' => 'アフリカ',
 'timezoneregion-america' => 'アメリカ',
 'timezoneregion-antarctica' => '南極',
@@ -1646,7 +1646,7 @@ HTMLタグを見直してください。',
 'right-unblockself' => '自分自身に対するブロックを解除',
 'right-protect' => '保護レベルを変更し、保護されたページを編集',
 'right-editprotected' => '保護ページ(カスケード保護を除く)を編集',
-'right-editinterface' => 'ユーザー インターフェイスを編集',
+'right-editinterface' => 'ユーザーインターフェイスを編集',
 'right-editusercssjs' => '他の利用者のCSSとJavaScriptファイルを編集',
 'right-editusercss' => '他の利用者のCSSファイルを編集',
 'right-edituserjs' => '他の利用者のJavaScriptファイルを編集',
@@ -1863,11 +1863,11 @@ HTMLタグを見直してください。',
 'uploaddisabledtext' => 'ファイルのアップロードは、無効になっています。',
 'php-uploaddisabledtext' => 'ファイルのアップロードがPHPで無効化されています。
 file_uploadsの設定を確認してください。',
-'uploadscripted' => 'ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\82¦ã\82§ã\83\96ã\83\96ã\83©ã\82¦ã\82¶ã\81\8c誤ã\81£ã\81¦è§£é\87\88ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86ã\81\8aã\81\9dã\82\8cã\81®あるHTMLまたはスクリプトコードを含んでいます。',
+'uploadscripted' => 'ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯ã\80\81ã\82¦ã\82§ã\83\96ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81\8c誤ã\81£ã\81¦è§£é\87\88ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86ã\81\8aã\81\9dã\82\8cã\81\8cあるHTMLまたはスクリプトコードを含んでいます。',
 'uploadvirus' => 'このファイルにはウイルスが含まれています!
 詳細:$1',
 'uploadjava' => 'このファイルは、Javaの.classファイルを含むZIPファイルです。
\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ã\81®å\88¶é\99\90ã\82\92å\9b\9eé\81¿ã\81\95ã\82\8cã\82\8bã\81\8aã\81\9dã\82\8cã\81\8cã\81\82ã\82\8bã\81\9fã\82\81ã\80\81Javaã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\99ã\82\8bã\81\93ã\81¨は許可されていません。',
\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ã\81®å\88¶é\99\90ã\82\92å\9b\9eé\81¿ã\81\95ã\82\8cã\82\8bã\81\8aã\81\9dã\82\8cã\81\8cã\81\82ã\82\8bã\81\9fã\82\81ã\80\81Javaã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89は許可されていません。',
 'upload-source' => 'アップロード元ファイル',
 'sourcefilename' => 'アップロード元のファイル名:',
 'sourceurl' => 'アップロード元のURL:',
@@ -1988,7 +1988,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization を参照してくだ
 'img-auth-isdir' => 'ディレクトリー「$1」にアクセスしようとしています。
 ファイルへのアクセスのみが許可されています。',
 'img-auth-streaming' => '「$1」を転送中。',
-'img-auth-public' => 'img_auth.phpの機能は非公開ウィキからファイルを出力することです。
+'img-auth-public' => 'img_auth.phpの機能は、非公開ウィキからのファイルの出力です。
 このウィキは公開ウィキとして構成されています。
 最適なセキュリティーのため、img_auth.phpは無効化されています。',
 'img-auth-noread' => '利用者は「$1」の読み取り権限を持っていません。',
@@ -2239,7 +2239,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'move' => '移動',
 'movethispage' => 'このページを移動',
 'unusedimagestext' => '以下のファイルは存在していますが、どのページにも埋め込まれていません。
-ただし、他のウェブサイトが直接URLでファイルにリンクすることがあることに注意してください。以下のファイル一覧には、そのような形で利用中のファイルが含まれていることがあります。',
+ただし、他のウェブサイトがURLでファイルに直接リンクする場合があることに注意してください。以下のファイル一覧には、そのような形で利用中のファイルが含まれている場合があります。',
 'unusedcategoriestext' => '以下のカテゴリはページが存在しますが、他のどのページおよびカテゴリでも使用されていません。',
 'notargettitle' => '対象が存在しません',
 'notargettext' => 'この機能の実行対象となるページまたは利用者が指定されていません。',
@@ -2443,23 +2443,23 @@ $NEWPAGE
 
 編集内容の要約:$PAGESUMMARY($PAGEMINOREDIT)
 
\8a\95稿è\80\85ã\81«é\80£çµ¡
\8a\95稿è\80\85ã\81®é\80£çµ¡å\85\88
 メール:$PAGEEDITOR_EMAIL
 ウィキ:$PAGEEDITOR_WIKI
 
 このページを訪れない限り、これ以上の変更に対する通知は送信されません。
-ウォッチリストからすべての通知を再設定することもできます。
+ウォッチリスト内のすべてのページについて、通知を再設定することもできます。
 
                          {{SITENAME}}通知システム
 
 --
-メール通知の設定は、次のページから変更してください。
+メール通知の設定は、以下のページで変更してください:
 {{canonicalurl:{{#special:Preferences}}}}
 
-ウォッチリストの設定は、次のページから変更してください。
+ウォッチリストの設定は、以下のページで変更してください:
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-このページは、次のページでウォッチリストから除去することができます。
+このページは、以下のページでウォッチリストから削除できます:
 $UNWATCHURL
 
 ご意見、お問い合わせ:
@@ -2789,8 +2789,8 @@ $1のブロックの理由は「$2」です。',
 参考のため、ブロックの記録を以下に示します:',
 'blocklog-showsuppresslog' => 'この利用者は以前にブロックされ、隠されたことがあります。
 参考のため、秘匿記録を以下に示します:',
-'blocklogentry' => '[[$1]] を$2ブロックしました。ブロックの詳細$3',
-'reblock-logentry' => '[[$1]]ブロック設定を$2に変更しました。ブロックの詳細$3',
+'blocklogentry' => ' が [[$1]] を$2ブロックしました。ブロックの詳細:$3',
+'reblock-logentry' => ' が [[$1]] のブロック設定を$2に変更しました。ブロックの詳細:$3',
 'blocklogtext' => 'このページは利用者のブロックと解除の記録です。
 自動的にブロックされたIPアドレスは表示されていません。
 現時点で有効なブロックは[[Special:BlockList|ブロックの一覧]]をご覧ください。',
@@ -2812,8 +2812,8 @@ $1のブロックの理由は「$2」です。',
 'unblock-hideuser' => '利用者名が隠されているため、この利用者のブロックを解除できません。',
 'ipb_cant_unblock' => 'エラー:ブロック ID $1 がありません。
 ブロックが既に解除されている可能性があります。',
-'ipb_blocked_as_range' => 'エラー:IPアドレス$1は直接ブロックされておらず、ブロック解除できませんでした。
-ただし、$2の範囲でブロックされており、こちらの設定を変更することでブロック解除できます。',
+'ipb_blocked_as_range' => 'エラー:IPアドレス$1は直接ブロックされておらず、ブロック解除できませんでした。
+ただし、$2の範囲でブロックされており、こちらのブロックは別途解除できます。',
 'ip_range_invalid' => '不正なIP範囲です。',
 'ip_range_toolarge' => '/$1よりサイズの広い範囲ブロックは許可されていません。',
 'blockme' => '自分をブロック',
@@ -2924,14 +2924,14 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'delete_and_move_reason' => '「[[$1]]」からの移動のために削除',
 'selfmove' => '移動元と移動先のページ名が同じです。
 自分自身へは移動できません。',
-'immobile-source-namespace' => '$1名前空間のページを移動させることはできません。',
-'immobile-target-namespace' => 'ã\80\8c$1ã\80\8då\90\8då\89\8d空é\96\93ã\81¸ã\81¯ã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82',
+'immobile-source-namespace' => '「$1」名前空間のページを移動させることはできません',
+'immobile-target-namespace' => 'ã\80\8c$1ã\80\8då\90\8då\89\8d空é\96\93ã\81«ã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93',
 'immobile-target-namespace-iw' => 'ウィキ間リンクは、ページの移動では不正な対象です。',
 'immobile-source-page' => 'このページは移動できません。',
-'immobile-target-page' => '対象ã\83\9aã\83¼ã\82¸å\90\8dã\81¸ã\81¯ç§»å\8b\95ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81\8cできません。',
-'imagenocrossnamespace' => 'ファイル名前空間以外に、ファイルを移動することはできません。',
-'nonfile-cannot-move-to-file' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81ªã\81\84ã\82\82ã\81®ã\82\92ã\80\81ã\83\95ã\82¡ã\82¤ã\83«å\90\8då\89\8d空é\96\93ã\81«ç§»å\8b\95ã\81\99ることはできません',
-'imagetypemismatch' => '新しいファイルの拡張子がファイルのタイプと一致していません',
+'immobile-target-page' => '対象ã\83\9aã\83¼ã\82¸å\90\8dã\81«ç§»å\8b\95ã\81\95ã\81\9bã\82\8bã\81\93ã\81¨ã\81¯できません。',
+'imagenocrossnamespace' => 'ファイルを、ファイル名前空間以外に移動させることはできません',
+'nonfile-cannot-move-to-file' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\81§ã\81¯ã\81ªã\81\84ã\82\82ã\81®ã\82\92ã\80\81ã\83\95ã\82¡ã\82¤ã\83«å\90\8då\89\8d空é\96\93ã\81«ç§»å\8b\95ã\81\95ã\81\9bることはできません',
+'imagetypemismatch' => '新しいファイルの拡張子がファイルのタイプと一致していません',
 'imageinvalidfilename' => '対象ファイル名が不正です',
 'fix-double-redirects' => 'このページへのリダイレクトがあればそのリダイレクトを修正',
 'move-leave-redirect' => '移動元にリダイレクトを作成する',
@@ -2952,7 +2952,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 ページを書き出すには、下の入力ボックスに一行に一つずつ書き出したいページの名前を記入してください。また、編集履歴とともにすべての過去版を含めて書き出すのか、最新版のみを書き出すのか選択してください。
 
 後者の場合ではリンクの形で使うこともできます。例えば、[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]はページ「[[{{MediaWiki:Mainpage}}]]」が対象になります。',
-'exportall' => 'すべてのページをエクスポート',
+'exportall' => 'すべてのページを書き出し',
 'exportcuronly' => '完全な履歴は含めず、最新版のみを含める',
 'exportnohistory' => "----
 '''注意:'''負荷上の理由により、このフォームによるページの完全な履歴の書き出しは無効化されています。",
@@ -2973,7 +2973,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'allmessagescurrent' => '現在のメッセージ文',
 'allmessagestext' => 'これは MediaWiki 名前空間で利用できるシステム メッセージの一覧です。
 MediaWiki 全般のローカライズ(地域化)に貢献したい場合は、[//www.mediawiki.org/wiki/Localisation/ja MediaWiki のローカライズ] や [//translatewiki.net?setlang=ja translatewiki.net] をご覧ください。',
-'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages'''ã\81\8cç\84¡å\8a¹ã\81ªã\81®ã\81§ã\80\81ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92使ã\81\86ã\81\93ã\81¨ã\81¯できません。",
+'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages'''ã\81\8cç\84¡å\8a¹ã\81®ã\81\9fã\82\81ã\80\81ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92使ç\94¨できません。",
 'allmessages-filter-legend' => '絞り込み',
 'allmessages-filter' => '変更状態により絞り込む:',
 'allmessages-filter-unmodified' => '変更なし',
@@ -3112,7 +3112,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-ca-nstab-main' => '本文を閲覧',
 'tooltip-ca-nstab-user' => '利用者ページを表示',
 'tooltip-ca-nstab-media' => 'メディアページを表示',
-'tooltip-ca-nstab-special' => 'ã\81\93ã\82\8cã\81¯ç\89¹å\88¥ã\83\9aã\83¼ã\82¸ã\81§ã\81\99ã\80\82ç·¨é\9b\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82',
+'tooltip-ca-nstab-special' => 'これは特別ページです。編集できません。',
 'tooltip-ca-nstab-project' => 'プロジェクトページを表示',
 'tooltip-ca-nstab-image' => 'ファイルページを表示',
 'tooltip-ca-nstab-mediawiki' => 'システムメッセージを表示',
@@ -4033,11 +4033,11 @@ MediaWikiは、有用であることを期待して配布されていますが
 'version-software' => 'インストール済みソフトウェア',
 'version-software-product' => '製品',
 'version-software-version' => 'バージョン',
-'version-entrypoints' => 'エントリー ポイントの URL',
-'version-entrypoints-header-entrypoint' => 'エントリー ポイント',
+'version-entrypoints' => 'エントリーポイントの URL',
+'version-entrypoints-header-entrypoint' => 'エントリーポイント',
 'version-entrypoints-header-url' => 'URL',
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath 記事のパス]',
-'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath スクリプト パス]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath スクリプトパス]',
 
 # Special:FilePath
 'filepath' => 'ファイルパス',
@@ -4174,7 +4174,8 @@ MediaWikiは、有用であることを期待して配布されていますが
 'newuserlog-byemail' => 'パスワードをメールで送信しました',
 
 # Feedback
-'feedback-bugornote' => '技術的な問題の詳細をご説明する準備ができているなら[$1 バグを報告]してください。それ以外の場合、下の簡易フォームを使用すれば、あなたのコメントが"[$3 $2]"にあなたの利用者名と使用中のブラウザ名と共に追加されます。',
+'feedback-bugornote' => '技術的な問題の詳細を説明なさる準備ができている場合は[$1 バグを報告]してください。
+そうではない場合は、下の簡易フォームを使用してください。あなたのコメントがあなたの利用者名とご使用中のブラウザー名と共に、ページ"[$3 $2]"に追加されます。',
 'feedback-subject' => '件名:',
 'feedback-message' => 'メッセージ:',
 'feedback-cancel' => 'キャンセル',
@@ -4186,7 +4187,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'feedback-thanks' => 'ありがとうございます。あなたのフィードバックは「[$2 $1]」のページに投稿されました。',
 'feedback-close' => '完了',
 'feedback-bugcheck' => 'Great! [$1 既出のバグ]に既に含まれていないか確認してください。',
-'feedback-bugnew' => 'チェック済み。バグを報告する。',
+'feedback-bugnew' => 'チェックしました。バグを報告します。',
 
 # API errors
 'api-error-badaccess-groups' => 'このウィキへのファイルのアップロードが許可されていません。',
@@ -4215,7 +4216,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'api-error-noimageinfo' => 'アップロードには成功しましたが、サーバーはファイルに関する情報を返しませんでした。',
 'api-error-nomodule' => '内部エラー:アップロードを処理するモジュールが設定されていません。',
 'api-error-ok-but-empty' => '内部エラー:サーバーからの応答がありません。',
-'api-error-overwrite' => '既存のファイルへ上書きすることは許可されていません。',
+'api-error-overwrite' => '既存のファイルへの上書きは許可されていません。',
 'api-error-stashfailed' => '内部エラー:サーバーは一時ファイルを格納できませんでした。',
 'api-error-timeout' => 'サーバーが決められた時間内に応答しませんでした。',
 'api-error-unclassified' => '不明なエラーが発生しました。',
index f4aed9f..3d1fa9d 100644 (file)
@@ -865,7 +865,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'grouppage-bureaucrat' => '{{ns:project}}:Burokrati',
 
 # Rights
-'right-read' => 'Pelu bıwane',
+'right-read' => 'Pelan bıwanê',
 'right-edit' => 'Pelu bıvurne',
 'right-move' => 'Pelu bere',
 'right-movefile' => 'Dosyu bere',
@@ -1211,6 +1211,7 @@ Tı şikina sewiya sevekiyaena na pele bıvurnê, hema yê nae sevekiyaena qedem
 'undeletereset' => 'Vaz be',
 'undeleteinvert' => 'Weçinıtey ters bıçarne',
 'undeletecomment' => 'Sebeb:',
+'undelete-header' => 'Peleyê ke veror de besterneyayê êna bıvinê: [[Special:Log/delete|qeydê esterneya]].',
 'undelete-search-submit' => 'Cıfeteliye',
 'undelete-show-file-submit' => 'Heya',
 
index 9b9e1a1..93ff9dd 100644 (file)
@@ -1231,6 +1231,7 @@ $3 келтірілген себебі: ''$2''",
 
 # Diffs
 'history-title' => '«$1» — өңдеу тарихы',
+'difference-title' => 'Нұсқалар арасындағы айырмашылық: "$1"',
 'difference-multipage' => '(Беттер арасындағы айырмашылық)',
 'lineno' => 'Жол нөмірі $1:',
 'compareselectedversions' => 'Таңдалған нұсқаларды салыстыру',
@@ -3186,5 +3187,7 @@ $5
 # New logging system
 'revdelete-restricted' => 'әкімшілерге тиымдар қолдады',
 'revdelete-unrestricted' => 'әкімшілерден тиымдарды аластады',
+'logentry-move-move-noredirect' => '$1 $3 бетін $4 бетіне жылжытты (айдатқыш қалдырылмады)',
+'logentry-move-move_redir-noredirect' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты (айдатқыш қалдырылмады)',
 
 );
index a013c86..cdf1abe 100644 (file)
@@ -74,7 +74,7 @@ $specialPageAliases = array(
        'BrokenRedirects'           => array( '끊긴넘겨주기' ),
        'Categories'                => array( '분류' ),
        'ChangeEmail'               => array( '이메일변경', '이메일바꾸기' ),
-       'ChangePassword'            => array( '비밀번호변경', '비밀번호바꾸기' ),
+       'ChangePassword'            => array( '비밀번호변경', '비밀번호바꾸기', '비밀단어변경', '비밀단어바꾸기' ),
        'ComparePages'              => array( '문서비교' ),
        'Confirmemail'              => array( '이메일인증' ),
        'Contributions'             => array( '기여', '기여목록', '사용자기여' ),
@@ -102,7 +102,7 @@ $specialPageAliases = array(
        'Listusers'                 => array( '사용자', '사용자목록' ),
        'Lockdb'                    => array( 'DB잠금', 'DB잠그기' ),
        'Log'                       => array( '기록', '로그' ),
-       'Lonelypages'               => array( '외톨이문서' ),
+       'Lonelypages'               => array( '외톨이문서', '홀로된문서' ),
        'Longpages'                 => array( '긴문서' ),
        'MergeHistory'              => array( '역사합치기' ),
        'MIMEsearch'                => array( 'MIME찾기', 'MIME검색' ),
@@ -119,7 +119,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( '내가올린파일' ),
        'Newimages'                 => array( '새파일', '새그림' ),
        'Newpages'                  => array( '새문서' ),
-       'PasswordReset'             => array( '암호변경' ),
+       'PasswordReset'             => array( '비밀번호초기화', '비밀단어초기화' ),
        'PermanentLink'             => array( '고유링크', '영구링크' ),
        'Popularpages'              => array( '인기있는문서' ),
        'Preferences'               => array( '환경설정' ),
@@ -144,11 +144,11 @@ $specialPageAliases = array(
        'Uncategorizedtemplates'    => array( '분류안된틀' ),
        'Undelete'                  => array( '삭제취소', '삭제된문서' ),
        'Unlockdb'                  => array( 'DB잠금취소', 'DB잠금해제' ),
-       'Unusedcategories'          => array( '안쓰는분류' ),
-       'Unusedimages'              => array( '안쓰는파일', '안쓰는그림' ),
-       'Unusedtemplates'           => array( '안쓰는틀' ),
+       'Unusedcategories'          => array( '안쓰는분류', '쓰이지않는분류' ),
+       'Unusedimages'              => array( '안쓰는파일', '안쓰는그림', '쓰이지않는파일', '쓰이지않는그림' ),
+       'Unusedtemplates'           => array( '안쓰는틀', '쓰이지않는틀' ),
        'Unwatchedpages'            => array( '주시안되는문서' ),
-       'Upload'                    => array( '파일올리기', '그림올리기' ),
+       'Upload'                    => array( '올리기', '파일올리기', '그림올리기' ),
        'UploadStash'               => array( '올린비공개파일' ),
        'Userlogin'                 => array( '로그인' ),
        'Userlogout'                => array( '로그아웃' ),
@@ -167,10 +167,10 @@ $magicWords = array(
        'redirect'                => array( '0', '#넘겨주기', '#REDIRECT' ),
        'notoc'                   => array( '0', '__목차숨김__', '__NOTOC__' ),
        'nogallery'               => array( '0', '__화랑숨김__', '__갤러리숨김__', '__NOGALLERY__' ),
-       'forcetoc'                => array( '0', '__목차보임__', '__FORCETOC__' ),
+       'forcetoc'                => array( '0', '__목차보임__', '__목차표시__', '__FORCETOC__' ),
        'toc'                     => array( '0', '__목차__', '__TOC__' ),
        'noeditsection'           => array( '0', '__단락편집숨김__', '__NOEDITSECTION__' ),
-       'noheader'                => array( '0', '__헤더숨김__', '__NOHEADER__' ),
+       'noheader'                => array( '0', '__머릿글숨김__', '__헤더숨김__', '__NOHEADER__' ),
        'currentmonth'            => array( '1', '현재월', 'CURRENTMONTH', 'CURRENTMONTH2' ),
        'currentmonth1'           => array( '1', '현재월1', 'CURRENTMONTH1' ),
        'currentmonthname'        => array( '1', '현재월이름', 'CURRENTMONTHNAME' ),
@@ -204,6 +204,7 @@ $magicWords = array(
        'pagenamee'               => array( '1', '문서이름E', 'PAGENAMEE' ),
        'namespace'               => array( '1', '이름공간', 'NAMESPACE' ),
        'namespacee'              => array( '1', '이름공간E', 'NAMESPACEE' ),
+       'namespacenumber'         => array( '1', '이름공간수', 'NAMESPACENUMBER' ),
        'talkspace'               => array( '1', '토론이름공간', 'TALKSPACE' ),
        'talkspacee'              => array( '1', '토론이름공간E', 'TALKSPACEE' ),
        'subjectspace'            => array( '1', '본문서이름공간', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -221,8 +222,9 @@ $magicWords = array(
        'msg'                     => array( '0', '메시지:', 'MSG:' ),
        'subst'                   => array( '0', '풀기:', 'SUBST:' ),
        'safesubst'               => array( '0', '안전풀기:', 'SAFESUBST:' ),
-       'img_thumbnail'           => array( '1', '섬네일', '썸네일', 'thumbnail', 'thumb' ),
-       'img_manualthumb'         => array( '1', '섬네일=$1', '썸네일=$1', 'thumbnail=$1', 'thumb=$1' ),
+       'msgnw'                   => array( '0', '위키잘못메시지:', 'MSGNW:' ),
+       'img_thumbnail'           => array( '1', '섬네일', '썸네일', '축소판', 'thumbnail', 'thumb' ),
+       'img_manualthumb'         => array( '1', '섬네일=$1', '썸네일=$1', '축소판=$1', 'thumbnail=$1', 'thumb=$1' ),
        'img_right'               => array( '1', '오른쪽', 'right' ),
        'img_left'                => array( '1', '왼쪽', 'left' ),
        'img_none'                => array( '1', '없음', 'none' ),
@@ -231,14 +233,19 @@ $magicWords = array(
        'img_framed'              => array( '1', '프레임', 'framed', 'enframed', 'frame' ),
        'img_frameless'           => array( '1', '프레임없음', 'frameless' ),
        'img_page'                => array( '1', '문서=$1', 'page=$1', 'page $1' ),
+       'img_upright'             => array( '1', '위오른쪽', '위오른쪽=$1', 'upright', 'upright=$1', 'upright $1' ),
        'img_border'              => array( '1', '테두리', 'border' ),
        'img_baseline'            => array( '1', '밑줄', 'baseline' ),
        'img_sub'                 => array( '1', '아래첨자', 'sub' ),
        'img_super'               => array( '1', '위첨자', 'super', 'sup' ),
        'img_top'                 => array( '1', '위', 'top' ),
+       'img_text_top'            => array( '1', '글자위', '텍스트위', 'text-top' ),
        'img_middle'              => array( '1', '중간', 'middle' ),
        'img_bottom'              => array( '1', '아래', 'bottom' ),
+       'img_text_bottom'         => array( '1', '글자아래', '텍스트아래', 'text-bottom' ),
        'img_link'                => array( '1', '링크=$1', 'link=$1' ),
+       'img_alt'                 => array( '1', '대체글=$1', 'alt=$1' ),
+       'int'                     => array( '0', '정수:', 'INT:' ),
        'sitename'                => array( '1', '사이트이름', 'SITENAME' ),
        'ns'                      => array( '0', '이름:', '이름공간:', 'NS:' ),
        'nse'                     => array( '0', '이름E:', '이름공간E:', 'NSE:' ),
@@ -251,6 +258,8 @@ $magicWords = array(
        'stylepath'               => array( '0', '스타일경로', 'STYLEPATH' ),
        'grammar'                 => array( '0', '문법:', 'GRAMMAR:' ),
        'gender'                  => array( '0', '성별:', 'GENDER:' ),
+       'notitleconvert'          => array( '0', '__제목변환없음__', '__제변없음__', '__제목변환안함__', '__제변안함__', '__NOTITLECONVERT__', '__NOTC__' ),
+       'nocontentconvert'        => array( '0', '__내용변환없음__', '__내변없음__', '__내용변환안함__', '__내변안함__', '__NOCONTENTCONVERT__', '__NOCC__' ),
        'currentweek'             => array( '1', '현재주', 'CURRENTWEEK' ),
        'currentdow'              => array( '1', '현재요일숫자', 'CURRENTDOW' ),
        'localweek'               => array( '1', '지역주', 'LOCALWEEK' ),
@@ -266,11 +275,14 @@ $magicWords = array(
        'plural'                  => array( '0', '복수:', '복수형:', 'PLURAL:' ),
        'fullurl'                 => array( '0', '전체주소:', 'FULLURL:' ),
        'fullurle'                => array( '0', '전체주소E:', 'FULLURLE:' ),
+       'canonicalurl'            => array( '0', '표준주소:', 'CANONICALURL:' ),
+       'canonicalurle'           => array( '0', '표준주소E:', 'CANONICALURLE:' ),
        'lcfirst'                 => array( '0', '첫소문자:', 'LCFIRST:' ),
        'ucfirst'                 => array( '0', '첫대문자:', 'UCFIRST:' ),
        'lc'                      => array( '0', '소문자:', 'LC:' ),
        'uc'                      => array( '0', '대문자:', 'UC:' ),
-       'displaytitle'            => array( '1', '제목표시', 'DISPLAYTITLE' ),
+       'raw'                     => array( '0', '원시:', 'RAW:' ),
+       'displaytitle'            => array( '1', '제목보이기', '제목표시', 'DISPLAYTITLE' ),
        'newsectionlink'          => array( '1', '__새글쓰기__', '__NEWSECTIONLINK__' ),
        'nonewsectionlink'        => array( '1', '__새글쓰기숨기기__', '__NONEWSECTIONLINK__' ),
        'currentversion'          => array( '1', '현재버전', 'CURRENTVERSION' ),
@@ -278,11 +290,16 @@ $magicWords = array(
        'anchorencode'            => array( '0', '책갈피인코딩', 'ANCHORENCODE' ),
        'currenttimestamp'        => array( '1', '현재타임스탬프', 'CURRENTTIMESTAMP' ),
        'localtimestamp'          => array( '1', '지역타임스탬프', 'LOCALTIMESTAMP' ),
+       'directionmark'           => array( '1', '명령검토', 'DIRECTIONMARK', 'DIRMARK' ),
        'language'                => array( '0', '#언어:', '#LANGUAGE:' ),
        'contentlanguage'         => array( '1', '기본언어', 'CONTENTLANGUAGE', 'CONTENTLANG' ),
        'pagesinnamespace'        => array( '1', '이름공간문서수', 'PAGESINNAMESPACE:', 'PAGESINNS:' ),
        'numberofadmins'          => array( '1', '관리자수', 'NUMBEROFADMINS' ),
+       'formatnum'               => array( '0', '수형식', 'FORMATNUM' ),
+       'padleft'                 => array( '0', '대체왼쪽', 'PADLEFT' ),
+       'padright'                => array( '0', '대체오른쪽', 'PADRIGHT' ),
        'special'                 => array( '0', '특수기능', 'special' ),
+       'speciale'                => array( '0', '특수기능E', '특수기능e', 'speciale' ),
        'defaultsort'             => array( '1', '기본정렬:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                => array( '0', '파일경로:', '그림경로:', 'FILEPATH:' ),
        'tag'                     => array( '0', '태그', 'tag' ),
@@ -290,11 +307,16 @@ $magicWords = array(
        'pagesincategory'         => array( '1', '분류문서수', 'PAGESINCATEGORY', 'PAGESINCAT' ),
        'pagesize'                => array( '1', '문서크기', 'PAGESIZE' ),
        'index'                   => array( '1', '__색인__', '__INDEX__' ),
-       'noindex'                 => array( '1', '__색인거부__', '__NOINDEX__' ),
+       'noindex'                 => array( '1', '__색인안함__', '__색인거부__', '__NOINDEX__' ),
        'numberingroup'           => array( '1', '권한별사용자수', '그룹별사용자수', 'NUMBERINGROUP', 'NUMINGROUP' ),
        'staticredirect'          => array( '1', '__넘겨주기고정__', '__STATICREDIRECT__' ),
        'protectionlevel'         => array( '1', '보호수준', 'PROTECTIONLEVEL' ),
        'formatdate'              => array( '0', '날짜형식', 'formatdate', 'dateformat' ),
+       'url_path'                => array( '0', '경로', 'PATH' ),
+       'url_wiki'                => array( '0', '위키', 'WIKI' ),
+       'url_query'               => array( '0', '쿼리', 'QUERY' ),
+       'defaultsort_noerror'     => array( '0', '오류없음', 'noerror' ),
+       'defaultsort_noreplace'   => array( '0', '바꾸기없음', 'noreplace' ),
 );
 
 $bookstoreList = array(
@@ -474,7 +496,7 @@ $messages = array(
 'vector-action-undelete' => '되살리기',
 'vector-action-unprotect' => '보호 설정 변경',
 'vector-simplesearch-preference' => '향상된 검색어 제안 사용하기 (벡터 스킨 전용)',
-'vector-view-create' => '생성',
+'vector-view-create' => '만들기',
 'vector-view-edit' => '편집',
 'vector-view-history' => '역사',
 'vector-view-view' => '읽기',
@@ -499,7 +521,7 @@ $messages = array(
 'print' => '인쇄',
 'view' => '보기',
 'edit' => '편집',
-'create' => '생성',
+'create' => '만들기',
 'editthispage' => '이 문서 편집하기',
 'create-this-page' => '이 문서 만들기',
 'delete' => '삭제',
@@ -1026,7 +1048,7 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 생성하는 것은 제한되어 있습니다. 이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들 수 있습니다]].',
 'nocreate-loggedin' => '새 문서를 만들 권한이 없습니다.',
 'sectioneditnotsupported-title' => '부분 편집 지원 안됨',
-'sectioneditnotsupported-text' => '이 문서에서는  편집을 지원하지 않습니다.',
+'sectioneditnotsupported-text' => '이 문서에서는 문단 편집을 지원하지 않습니다.',
 'permissionserrors' => '권한 오류',
 'permissionserrorstext' => '해당 명령을 수행할 권한이 없습니다. 다음의 {{PLURAL:$1|이유}}를 확인해보세요:',
 'permissionserrorstext-withaction' => '$2 권한이 없습니다. 다음의 {{PLURAL:$1|이유}}를 확인해주세요:',
@@ -1290,7 +1312,7 @@ $1",
 'search-result-category-size' => '문서 {{PLURAL:$1|1|$1}}개, 하위 분류 {{PLURAL:$2|1|$2}}개, 파일 {{PLURAL:$3|1|$3}}',
 'search-result-score' => '유사도: $1%',
 'search-redirect' => '($1에서 넘어옴)',
-'search-section' => '($1 )',
+'search-section' => '($1 문단)',
 'search-suggest' => '$1 문서를 찾고 계신가요?',
 'search-interwiki-caption' => '자매 프로젝트',
 'search-interwiki-default' => '$1 결과:',
@@ -1675,7 +1697,7 @@ $1",
 갤러리 형식으로 확인하고 싶으시다면 [[Special:NewFiles|새 파일 목록]]을 보세요.',
 'filename' => '파일 이름',
 'filedesc' => '파일의 설명',
-'fileuploadsummary' => 'ì\84¤ëª\85:',
+'fileuploadsummary' => 'ì\9a\94ì\95½:',
 'filereuploadsummary' => '파일 변경에 대한 요약:',
 'filestatus' => '저작권 상태:',
 'filesource' => '출처:',
@@ -2136,6 +2158,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 로그 종류, 계정 이름, 문서 이름을 선택해서 볼 수 있습니다. 검색시에는 대소문자를 구별합니다.',
 'logempty' => '일치하는 항목이 없습니다.',
 'log-title-wildcard' => '다음 글로 시작하는 제목 검색',
+'showhideselectedlogentries' => '선택한 기록 항목 보이기/숨기기',
 
 # Special:AllPages
 'allpages' => '모든 문서 목록',
@@ -2440,7 +2463,7 @@ $UNWATCHURL
 # Restrictions (nouns)
 'restriction-edit' => '편집',
 'restriction-move' => '이동',
-'restriction-create' => '생성',
+'restriction-create' => '만들기',
 'restriction-upload' => '올리기',
 
 # Restriction levels
@@ -2931,7 +2954,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'tooltip-pt-logout' => '로그아웃',
 'tooltip-ca-talk' => '문서의 내용에 대한 토론 문서',
 'tooltip-ca-edit' => '문서를 편집할 수 있습니다. 저장하기 전에 미리보기를 해 주세요.',
-'tooltip-ca-addsection' => ' 추가하기',
+'tooltip-ca-addsection' => '문단 추가하기',
 'tooltip-ca-viewsource' => '문서가 잠겨 있습니다. 문서의 소스만 볼 수 있습니다.',
 'tooltip-ca-history' => '문서의 과거 버전들',
 'tooltip-ca-protect' => '문서 보호하기',
index cdc96ae..48b85b2 100644 (file)
@@ -198,7 +198,7 @@ $specialPageAliases = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#ÖMLEIDE_OP', '#ÖMLEIDE', '#LEIDT_ÖM_OP', '#ÖMLEIDUNG', '#WEITERLEITUNG', '#REDIRECT' ),
-       'nogallery'               => array( '0', '__KEIN_JALLERIE__', '__KEINE_GALERIE__', '__NOGALLERY__' ),
+       'nogallery'               => array( '0', '__KEIN_JALLERIE__', '__KEINE_GALERIE__', '__KEINEGALERIE__', '__NOGALLERY__' ),
        'toc'                     => array( '0', '__ENHALLT__', '__INHALTSVERZEICHNIS__', '__TOC__' ),
        'img_right'               => array( '1', 'rähß', 'räts', 'rechts', 'right' ),
        'img_left'                => array( '1', 'lengks', 'lenks', 'links', 'left' ),
@@ -991,7 +991,7 @@ aanfange dun, alsu etwa: {{ns:user}}:Name/vector.css, un {{ns:user}}:Name/vector
 'updated' => '(Aanjepack)',
 'note' => "'''Opjepass:'''",
 'previewnote' => "'''Heh kütt nor de Vör-Aansich — Ding Änderunge sin noch nit jesechert!'''",
-'continue-editing' => 'Wiggerschrieve',
+'continue-editing' => 'Jangk tiräk nohm Plaz zom Schrieve',
 'previewconflict' => 'Heh die Vör-Aansich zeich dä Enhald vum bovvere Texfeld.
 Esu wööd dä Atikkel ussinn, wann De n jetz avspeichere däts.',
 'session_fail_preview' => "'''Schad: Ding Änderunge kunnte mer su nix met aanfange.
index 66ef2c1..7d7c455 100644 (file)
@@ -49,7 +49,7 @@ $specialPageAliases = array(
        'Randompage'                => array( 'Rûpela_tesadufî' ),
        'Randomredirect'            => array( 'Redirecta_tasadufî' ),
        'Recentchanges'             => array( 'Guherandinên_dawî' ),
-       'Search'                    => array( 'Lêbigere' ),
+       'Search'                    => array( 'Lê_bigere' ),
        'Statistics'                => array( 'Statîstîk' ),
        'Uncategorizedcategories'   => array( 'Kategoriyên_bê_kategorî' ),
        'Uncategorizedpages'        => array( 'Rûpelên_bê_kategorî' ),
@@ -59,27 +59,32 @@ $specialPageAliases = array(
 );
 
 $magicWords = array(
+       'redirect'                => array( '0', '#BERALÎKIRIN', '#REDIRECT' ),
        'notoc'                   => array( '0', '_NAVEROKTUNE_', '__NOTOC__' ),
        'nogallery'               => array( '0', '_GALERÎTUNE_', '__NOGALLERY__' ),
        'toc'                     => array( '0', '_NAVEROK_', '__TOC__' ),
        'noheader'                => array( '0', '_SERÎTUNE_', '__NOHEADER__' ),
+       'currentmonth1'           => array( '1', 'MEHANIHA1', 'CURRENTMONTH1' ),
        'currentday'              => array( '1', 'ROJA_NIHA', 'CURRENTDAY' ),
        'currentday2'             => array( '1', 'ROJA_NIHA2', 'CURRENTDAY2' ),
+       'currenttime'             => array( '1', 'DEMA_NIHA', 'CURRENTTIME' ),
        'numberofpages'           => array( '1', 'HEJMARA_RÛPELAN', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'HEJMARA_GOTARAN', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', 'HEJMARA_DOSYEYAN', 'NUMBEROFFILES' ),
        'numberofusers'           => array( '1', 'HEJMARA_BIKARHÊNERAN', 'NUMBEROFUSERS' ),
        'numberofactiveusers'     => array( '1', 'HEJMARA_BIKARHÊNERÊN_ÇALAK', 'NUMBEROFACTIVEUSERS' ),
-       'numberofedits'           => array( '1', 'HEJMARA_GUHERANDINAN', 'NUMBEROFEDITS' ),
+       'numberofedits'           => array( '1', 'HEJMARA_GUHERTINAN', 'NUMBEROFEDITS' ),
        'subpagename'             => array( '1', 'BINRÛPEL', 'SUBPAGENAME' ),
        'img_right'               => array( '1', 'rast', 'right' ),
        'img_left'                => array( '1', 'çep', 'left' ),
-       'img_link'                => array( '1', 'lînk=$', 'link=$1' ),
+       'img_link'                => array( '1', 'girêdan=$', 'link=$1' ),
+       'sitename'                => array( '1', 'NAVÊ_PROJEYÊ', 'SITENAME' ),
        'grammar'                 => array( '0', 'RÊZIMAN.', 'GRAMMAR:' ),
        'gender'                  => array( '0', 'ZAYEND.', 'GENDER:' ),
        'plural'                  => array( '0', 'PIRRJIMAR:', 'PLURAL:' ),
        'currentversion'          => array( '1', 'VERSIYONA_NIHA', 'CURRENTVERSION' ),
-       'numberofadmins'          => array( '1', 'HEJMARA_ADAMÎNISTRATORAN', 'NUMBEROFADMINS' ),
+       'language'                => array( '0', '#ZIMAN', '#LANGUAGE:' ),
+       'numberofadmins'          => array( '1', 'HEJMARA_RÊVEBERAN', 'NUMBEROFADMINS' ),
        'special'                 => array( '0', 'taybet', 'special' ),
 );
 
@@ -318,7 +323,7 @@ $messages = array(
 'policy-url' => 'Project:Rêgez',
 'portal' => 'Portala komê',
 'portal-url' => 'Project:Portala komê',
-'privacy' => 'Parastina daneyan',
+'privacy' => 'Siyaseta taybetîtiyê',
 'privacypage' => 'Project:Parastina daneyan',
 
 'badaccess' => 'Çewtiya destûrê',
@@ -567,7 +572,7 @@ Eger account\'a bikarhêneran şaşî hate çêkirin, guhdare vê peyamê meke.'
 'hr_tip' => 'Rastexêza berwarî (kêm bi kar bîne)',
 
 # Edit pages
-'summary' => 'Kurte û çavkanî (Te çi kir?):',
+'summary' => 'Kurte (Te çi kir?):',
 'subject' => 'Mijar/sernivîs:',
 'minoredit' => 'Ev guhertineke biçûk e',
 'watchthis' => 'Vê gotarê bişopîne',
@@ -811,7 +816,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'searchprofile-images-tooltip' => 'Li pelan bigere',
 'search-result-size' => '$1 ({{PLURAL:$2|peyvek|$2 peyv}})',
 'search-result-score' => 'Lêhatin: $1%',
-'search-redirect' => '(redirect $1)',
+'search-redirect' => '(beralîkirin $1)',
 'search-section' => '(beş $1)',
 'search-suggest' => 'Gelo mebesta te ev bû: $1',
 'search-interwiki-caption' => 'Projeyên hevçeng',
@@ -898,7 +903,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'uid' => 'Nasnameya bikarhêner:',
 'prefs-memberingroups' => 'Endamê/a {{PLURAL:$1|komê|koman}}:',
 'prefs-registration' => 'Dema xweqeydkirinê:',
-'yourrealname' => 'Navê te yê rastî*',
+'yourrealname' => 'Navê te yê rast:',
 'yourlanguage' => 'Ziman',
 'yourvariant' => 'Cuda:',
 'yournick' => 'Bernavkê nû (ji bo îmzeyê):',
@@ -958,13 +963,13 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'group-all' => '(hemû)',
 
 'group-user-member' => 'Bikarhêner',
-'group-bot-member' => 'Bot',
-'group-sysop-member' => 'rêveber',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|rêveber}}',
 'group-bureaucrat-member' => 'Burokrat',
 
 'grouppage-user' => '{{ns:project}}:Bikarhêner',
 'grouppage-bot' => '{{ns:project}}:Bot',
-'grouppage-sysop' => '{{ns:project}}:Admînistrator',
+'grouppage-sysop' => '{{ns:project}}:Rêveber',
 'grouppage-bureaucrat' => '{{ns:project}}:Burokrat',
 
 # Rights
@@ -1013,15 +1018,15 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'recentchanges-summary' => 'Guhertinên herî dawî yên wîkiyê li ser vê rûpelê bişopîne.',
 'recentchanges-label-minor' => 'Ev guhertineka biçûk e',
 'rcnote' => "Jêr {{PLURAL:$1|guherandinek|'''$1''' guherandinên dawî}} di {{PLURAL:$2|rojê|'''$2''' rojên dawî}} de ji $3 şûnde tên nîşan dan.",
-'rclistfrom' => 'an jî guherandinên ji $1 şûnda nîşan bide.',
-'rcshowhideminor' => 'guherandinên biçûk $1',
-'rcshowhidebots' => "bot'an $1",
-'rcshowhideliu' => 'bikarhênerên qeydkirî $1',
-'rcshowhideanons' => 'bikarhênerên neqeydkirî (IP) $1',
+'rclistfrom' => 'Guherandinên ji $1 şûnde nîşan bide',
+'rcshowhideminor' => 'Guherandinên biçûk $1',
+'rcshowhidebots' => "Bot'an $1",
+'rcshowhideliu' => 'Bikarhênerên qeydkirî $1',
+'rcshowhideanons' => 'Bikarhênerên neqeydkirî (IP) $1',
 'rcshowhidepatr' => '$1 guherandinên kontrolkirî',
-'rcshowhidemine' => 'guherandinên min $1',
+'rcshowhidemine' => 'Guherandinên min $1',
 'rclinks' => '$1 guherandinên di $2 rojên dawî de nîşan bide<br />$3',
-'diff' => 'ciyawazî',
+'diff' => 'cudahî',
 'hist' => 'dîrok',
 'hide' => 'veşêre',
 'show' => 'nîşan bide',
@@ -1449,7 +1454,7 @@ Naverroka berî betalkirinê ev bû:'$1'",
 'reverted' => 'Hate şondabirin berve verzyonekî berê',
 'deletecomment' => 'Sedem:',
 'deleteotherreason' => 'Sedemekî din:',
-'deletereasonotherlist' => 'Sedemekî din',
+'deletereasonotherlist' => 'Sedema din',
 'deletereason-dropdown' => '*Sedemên jêbirinê
 ** Daxwaziya xwedî
 ** Pirsgirêka lîsansê
@@ -1537,7 +1542,7 @@ Ji bo jêbirinan û çêkirinên nuh ra, xêra xwe di [[Special:Log/delete|reşa
 
 # Namespace form on various pages
 'namespace' => 'Valahiya nav:',
-'invert' => 'Hilbijardinê pêçewane bike',
+'invert' => 'Hemûyan bibîne',
 'namespace_association' => 'Navê têkilîdar',
 'blanknamespace' => '(Sereke)',
 
@@ -1656,7 +1661,7 @@ Sedemekê binivîse!',
 'contribslink' => 'beşdarî',
 'emaillink' => 'e-name bişîne',
 'autoblocker' => 'Otomatîk hat bestin jiberku IP-ya we û ya "[[User:$1|$1]]" yek in. Sedem: "\'\'\'$2\'\'\'"',
-'blocklogpage' => 'Astengkirina bikarhêner',
+'blocklogpage' => 'Astengkirina têketinê',
 'blocklogentry' => '"[[$1]]" ji bo dema $2 $3 hatîye asteng kirin',
 'blocklogtext' => "Ev reşahîyek ji astengkirinên û rakirina astengkirinên bikarhêneran ra ye. Adrêsên IP'yan, yê otomatîk hatine astengkirin, nehatine nivîsandin. [[Special:BlockList|Lîsteya IP'yên astengkirî]] bibîne ji bo dîtina astengkirinên IP'yan.",
 'unblocklogentry' => 'astenga "$1" betalkir',
@@ -1873,7 +1878,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'file-info' => 'mezinbûnê data: $1, MIME-typ: $2',
 'file-info-size' => '$1 × $2 pixel, mezinbûnê data: $3, MIME-typ: $4',
 'file-nohires' => 'Versyonekî jê mezintir tune.',
-'svg-long-desc' => "Data'ya SVG, mezinbûna rast: $1 × $2 pixel; mezinbûna data'yê: $3",
+'svg-long-desc' => 'Daneya SVG, mezinbûna rast: $1 × $2 pixel; mezinbûna daneyê: $3',
 'show-big-image' => 'Mezînbûn',
 
 # Special:NewFiles
@@ -1893,7 +1898,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'variantname-ku' => 'disable',
 
 # Metadata
-'metadata' => "Data'yên meta",
+'metadata' => 'Daneyên meta',
 'metadata-expand' => 'Detayên dirêj nîşan bide',
 'metadata-collapse' => 'Detayên dirêj veşêre',
 
index eee501c..da8b9d6 100644 (file)
@@ -157,7 +157,7 @@ $magicWords = array(
        'namespace'               => array( '1', 'Nummraum', 'NAMENSRAUM', 'NAMESPACE' ),
        'subjectspace'            => array( '1', 'Haaptnummraum', 'HAUPTNAMENSRAUM', 'SUBJECTSPACE', 'ARTICLESPACE' ),
        'subjectpagename'         => array( '1', 'Haaptsäit', 'HAUPTSEITE', 'SUBJECTPAGENAME', 'ARTICLEPAGENAME' ),
-       'img_thumbnail'           => array( '1', 'Miniatur', 'miniatur', 'thumbnail', 'thumb' ),
+       'img_thumbnail'           => array( '1', 'Miniatur', 'miniatur', 'mini', 'thumbnail', 'thumb' ),
        'img_right'               => array( '1', 'riets', 'rechts', 'right' ),
        'img_left'                => array( '1', 'lénks', 'links', 'left' ),
        'img_none'                => array( '1', 'ouni', 'ohne', 'none' ),
@@ -166,7 +166,7 @@ $magicWords = array(
        'img_frameless'           => array( '1', 'net_gerummt', 'rahmenlos', 'frameless' ),
        'img_page'                => array( '1', 'Säit=$1', 'Säit_$1', 'seite=$1', 'seite $1', 'page=$1', 'page $1' ),
        'img_border'              => array( '1', 'bord', 'rand', 'border' ),
-       'img_top'                 => array( '1', 'uewen', 'top' ),
+       'img_top'                 => array( '1', 'uewen', 'oben', 'top' ),
        'grammar'                 => array( '0', 'GRAMMAIRE', 'GRAMMATIK:', 'GRAMMAR:' ),
        'plural'                  => array( '0', 'PLURAL', 'PLURAL:' ),
        'formatnum'               => array( '0', 'ZUELEFORMAT', 'ZAHLENFORMAT', 'FORMATNUM' ),
index c01f498..f610349 100644 (file)
@@ -1972,6 +1972,7 @@ Controleer of se wellich n fout höbs gemaak bie de inveur.',
 'alllogstext' => "Dit is 't gecombineerd logbook ven {{SITENAME}}. De kins ouch 'n bepaald logbook keze, of filtere op gebroekersnaam of  pazjena, beide huidlettergeveulig.",
 'logempty' => "d'r Zeen gein regels in 't logbook die voldaon aan deze criteria.",
 'log-title-wildcard' => "Zeuk pagina's die met deze naam beginne",
+'showhideselectedlogentries' => 'Tuin of verstaek geselecteerdje logbookregels',
 
 # Special:AllPages
 'allpages' => "Alle pagina's",
index 803dc56..50514c8 100644 (file)
@@ -1339,8 +1339,10 @@ Hetah hian [[Special:UnusedCategories|pawl hman lohho]] pholan tel a ni lo.
 'emailccsubject' => '$1: $2 hnenah thawn bawk rawh',
 'emailsent' => 'E-lehkha thawn a ni.',
 'emailsenttext' => 'I e-lehkha thawn a ni.',
+'emailuserfooter' => 'Hë e-lehkha hi {{SITENAME}}-a "Hmangtu e-lehkha thawn rawh" tih hmanraw hmanga $1-in $2 a thawn a ni.',
 
 # User Messenger
+'usermessage-summary' => 'Kháwlthuthawn a hnutchhiah e.',
 'usermessage-editor' => 'Thuthawntu khawl',
 
 # Watchlist
index 03f2529..9d8c470 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Itsmine
+ * @author Justincheng12345
  * @author Omnipaedista
  * @author Shinjiman
  */
@@ -709,6 +710,7 @@ $2',
 '''纂文若合,惠再之。如復不成,簿[[Special:UserLogout|重登]]焉。'''",
 'token_suffix_mismatch' => "'''君修見拒,蓋因代理之故,亂事見兮。'''",
 'editing' => '纂$1',
+'creating' => '撰$1',
 'editingsection' => '纂節$1',
 'editingcomment' => '贊$1',
 'editconflict' => '纂沖$1',
index 37f5804..51ec839 100644 (file)
@@ -3840,7 +3840,7 @@ $5
 'revdelete-uname-unhid' => 'ഉപയോക്തൃനാമം മറച്ചത് ഒഴിവാക്കിയിരിക്കുന്നു',
 'revdelete-restricted' => 'കാര്യനിർവാഹകർക്ക് പ്രവർത്തന അതിരുകൾ ഏർപ്പെടുത്തിയിരിക്കുന്നു',
 'revdelete-unrestricted' => 'കാര്യനിർവാഹകർക്ക് ഏർപ്പെടുത്തിയ പ്രവർത്തന അതിരുകൾ നീക്കം ചെയ്തിരിക്കുന്നു',
-'logentry-move-move' => '$1 à´\8eà´¨àµ\8dà´¨ à´\89പയàµ\8bà´\95àµ\8dതാവàµ\8d $3 à´\8eà´¨àµ\8dà´¨ à´¤à´¾àµ¾ $4 à´\86ക്കി മാറ്റിയിരിക്കുന്നു',
+'logentry-move-move' => '$1 à´\8eà´¨àµ\8dà´¨ à´\89പയàµ\8bà´\95àµ\8dതാവàµ\8d $3 à´\8eà´¨àµ\8dà´¨ à´¤à´¾àµ¾ $4 à´\8eà´¨àµ\8dനാക്കി മാറ്റിയിരിക്കുന്നു',
 'logentry-move-move-noredirect' => '$3 എന്ന താൾ $4 എന്ന തലക്കെട്ടിലേയ്ക്ക് തിരിച്ചുവിടലില്ലാതെ $1 മാറ്റി',
 'logentry-move-move_redir' => '$1, $3 എന്ന താൾ $4 എന്ന താളിനുമുകളിലേയ്ക്ക് മാറ്റിയിരിക്കുന്നു',
 'logentry-move-move_redir-noredirect' => '$1, $3 എന്ന താൾ $4 എന്ന താളിനുമുകളിലേയ്ക്ക്, തിരിച്ചുവിടൽ ഇല്ലാതെ മാറ്റിയിരിക്കുന്നു',
index a108bf4..81c228d 100644 (file)
@@ -95,7 +95,7 @@ $specialPageAliases = array(
        'FileDuplicateSearch'       => array( 'दुहेरी_संचिका_शोध' ),
        'Filepath'                  => array( 'संचिकेचा_पत्ता_(पाथ)' ),
        'Import'                    => array( 'आयात' ),
-       'Invalidateemail'           => array( 'अग्राह्य_विपत्र', 'चूकदिनांकविपत्र' ),
+       'Invalidateemail'           => array( 'अग्राह्य_विपत्र' ),
        'BlockList'                 => array( 'प्रतिबंधन_सुची' ),
        'LinkSearch'                => array( 'दुवाशोध' ),
        'Listadmins'                => array( 'प्रबंधकांची_यादी' ),
@@ -127,7 +127,7 @@ $specialPageAliases = array(
        'Prefixindex'               => array( 'उपसर्गसुची' ),
        'Protectedpages'            => array( 'सुरक्षित_पाने' ),
        'Protectedtitles'           => array( 'सुरक्षित_शीर्षके' ),
-       'Randompage'                => array( 'कोणतेही', 'कोणतेही_पृष्ठ', 'अविशिष्ट', 'अविशिष्ट_पृष्ठ' ),
+       'Randompage'                => array( 'कोणतेही', 'कोणतेही_पृष्ठ' ),
        'Randomredirect'            => array( 'अविशिष्ट_पुर्ननिर्देशन' ),
        'Recentchanges'             => array( 'अलीकडील_बदल' ),
        'Recentchangeslinked'       => array( 'सांधलेलेअलिकडीलबदल' ),
@@ -156,7 +156,7 @@ $specialPageAliases = array(
        'Wantedfiles'               => array( 'संचिका_हवी' ),
        'Wantedpages'               => array( 'हवे_असलेले_लेख' ),
        'Wantedtemplates'           => array( 'साचा_हवा' ),
-       'Watchlist'                 => array( 'नित्य‌_पहाण्याची_सूची', 'पहार्‍याची_सूची' ),
+       'Watchlist'                 => array( 'नित्य‌_पहाण्याची_सूची' ),
        'Whatlinkshere'             => array( 'येथे_काय_जोडले_आहे' ),
        'Withoutinterwiki'          => array( 'आंतरविकि_शिवाय' ),
 );
index 4b6ac06..0f1552c 100644 (file)
@@ -74,7 +74,7 @@ $namespaceAliases = array(
 );
 
 $magicWords = array(
-       'redirect'                => array( '0', '#بور', '#تغییرمسیر', '#REDIRECT' ),
+       'redirect'                => array( '0', '#بور', '#تغییرمسیر', '#تغییر_مسیر', '#REDIRECT' ),
        'notoc'                   => array( '0', '__بی‌فهرست__', '__NOTOC__' ),
        'nogallery'               => array( '0', '__بی‌نگارخنه__', '__بی‌نگارخانه__', '__NOGALLERY__' ),
        'forcetoc'                => array( '0', '__بافهرست__', '__FORCETOC__' ),
@@ -909,7 +909,7 @@ $2، $1',
 'allmessages-filter-all' => 'همه',
 
 # Thumbnails
-'thumbnail-more' => 'گت بأوه',
+'thumbnail-more' => 'گت بوو',
 
 # Special:Import
 'import-interwiki-submit' => 'بیاردن',
index 2749501..675b8a9 100644 (file)
@@ -56,7 +56,7 @@ $namespaceAliases = array(
 
 $magicWords = array(
        'redirect'                => array( '0', '#wiederleiden', '#WEITERLEITUNG', '#REDIRECT' ),
-       'notoc'                   => array( '0', '__KEENINHOLTVERTEKEN__', '__KEIN_INHALTSVERZEICHNIS__', '__NOTOC__' ),
+       'notoc'                   => array( '0', '__KEENINHOLTVERTEKEN__', '__KEIN_INHALTSVERZEICHNIS__', '__KEININHALTSVERZEICHNIS__', '__NOTOC__' ),
        'forcetoc'                => array( '0', '__WIESINHOLTVERTEKEN__', '__INHALTSVERZEICHNIS_ERZWINGEN__', '__FORCETOC__' ),
        'toc'                     => array( '0', '__INHOLTVERTEKEN__', '__INHALTSVERZEICHNIS__', '__TOC__' ),
        'noeditsection'           => array( '0', '__KEENÄNNERNLINK__', '__ABSCHNITTE_NICHT_BEARBEITEN__', '__NOEDITSECTION__' ),
@@ -71,7 +71,7 @@ $magicWords = array(
        'pagename'                => array( '1', 'SIETNAAM', 'SEITENNAME', 'PAGENAME' ),
        'pagenamee'               => array( '1', 'SIETNAAME', 'SEITENNAME_URL', 'PAGENAMEE' ),
        'namespace'               => array( '1', 'NAAMRUUM', 'NAMENSRAUM', 'NAMESPACE' ),
-       'img_thumbnail'           => array( '1', 'duum', 'miniatur', 'thumbnail', 'thumb' ),
+       'img_thumbnail'           => array( '1', 'duum', 'miniatur', 'mini', 'thumbnail', 'thumb' ),
        'img_right'               => array( '1', 'rechts', 'right' ),
        'img_left'                => array( '1', 'links', 'left' ),
        'img_none'                => array( '1', 'keen', 'ohne', 'none' ),
@@ -80,7 +80,7 @@ $magicWords = array(
        'sitename'                => array( '1', 'STEEDNAAM', 'PROJEKTNAME', 'SITENAME' ),
        'ns'                      => array( '0', 'NR:', 'NS:' ),
        'localurl'                => array( '0', 'STEEDURL:', 'LOKALE_URL:', 'LOCALURL:' ),
-       'localurle'               => array( '0', 'STEEDURLE:', 'LOCALURLE:' ),
+       'localurle'               => array( '0', 'STEEDURLE:', 'LOKALE_URL_C:', 'LOCALURLE:' ),
        'grammar'                 => array( '0', 'GRAMMATIK:', 'GRAMMAR:' ),
 );
 
index 21846b9..683128b 100644 (file)
@@ -135,6 +135,7 @@ $magicWords = array(
        'pagenamee'               => array( '1', 'PAGINANAAME', 'PAGENAMEE' ),
        'namespace'               => array( '1', 'NAAMRUIMTE', 'NAMESPACE' ),
        'namespacee'              => array( '1', 'NAAMRUIMTEE', 'NAMESPACEE' ),
+       'namespacenumber'         => array( '1', 'NAAMRUIMTENUMMER', 'NAMESPACENUMBER' ),
        'talkspace'               => array( '1', 'OVERLEGRUIMTE', 'TALKSPACE' ),
        'talkspacee'              => array( '1', 'OVERLEGRUIMTEE', 'TALKSPACEE' ),
        'subjectspace'            => array( '1', 'ONDERWERPRUIMTE', 'ARTIKELRUIMTE', 'SUBJECTSPACE', 'ARTICLESPACE' ),
@@ -223,6 +224,7 @@ $magicWords = array(
        'padleft'                 => array( '0', 'LINKSOPVULLEN', 'PADLEFT' ),
        'padright'                => array( '0', 'RECHTSOPVULLEN', 'PADRIGHT' ),
        'special'                 => array( '0', 'speciaal', 'special' ),
+       'speciale'                => array( '0', 'speciaale', 'speciale' ),
        'defaultsort'             => array( '1', 'STANDAARDSORTERING:', 'DEFAULTSORT:', 'DEFAULTSORTKEY:', 'DEFAULTCATEGORYSORT:' ),
        'filepath'                => array( '0', 'BESTANDSPAD:', 'FILEPATH:' ),
        'tag'                     => array( '0', 'label', 'tag' ),
@@ -2258,6 +2260,7 @@ Controleer of u wellicht een fout hebt gemaakt bij de invoer.',
 U kunt ook kiezen voor specifieke logboeken en filteren op gebruiker (hoofdlettergevoelig) en paginanaam (hoofdlettergevoelig).',
 'logempty' => 'Er zijn geen regels in het logboek die voldoen aan deze criteria.',
 'log-title-wildcard' => "Pagina's zoeken die met deze tekens beginnen",
+'showhideselectedlogentries' => 'Geselecteerde logboekregels weergeven of verbergen',
 
 # Special:AllPages
 'allpages' => "Alle pagina's",
index 34e64e0..1105add 100644 (file)
@@ -49,6 +49,11 @@ $namespaceAliases = array(
        'Категорийы_тыххæй_дискусси'  => NS_CATEGORY_TALK,
 );
 
+$specialPageAliases = array(
+       'Recentchanges'             => array( 'Фæстаг_ивдтытæ' ),
+);
+
+
 $magicWords = array(
        'redirect'                => array( '0', '#РАРВЫСТ', '#перенаправление', '#перенапр', '#REDIRECT' ),
        'img_right'               => array( '1', 'рахиз', 'справа', 'right' ),
@@ -1404,6 +1409,9 @@ $3',
 'watchlisttools-edit' => 'Бакæсын æмæ ивын цæстдард рæгъ',
 'watchlisttools-raw' => 'Ивын цæстдард рæгъы бындуртекст',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ныхас]])',
+
 # Core parser functions
 'duplicate-defaultsort' => '\'\'\'Сындæг:\'\'\' Разæвæрд сортгæнæн амонæн "$2" раздæры разæвæрд амонæн "$1"-ы бæсты лæууы.',
 
index b91fcd1..a0cd772 100644 (file)
@@ -3956,7 +3956,7 @@ Grafiki są pokazywane w pełnej rozdzielczości. Inne typy plików są otwieran
 'revdelete-uname-unhid' => 'wycofano ukrycie nazwy użytkownika',
 'revdelete-restricted' => 'ograniczono widoczność dla administratorów',
 'revdelete-unrestricted' => 'wycofano ograniczenie widoczności dla administratorów',
-'logentry-move-move' => '$1 przenosi stronę $3 na $4',
+'logentry-move-move' => '$1 przenosi stronę $3 do $4',
 'logentry-move-move-noredirect' => '$1 przenosi stronę $3 na $4, bez pozostawienia przekierowania pod starym tytułem',
 'logentry-move-move_redir' => '$1 przenosi stronę $3 na $4 w miejsce przekierowania',
 'logentry-move-move_redir-noredirect' => '$1 przenosi stronę $3 na $4 w miejsce przekierowania i bez pozostawienia przekierowania pod starym tytułem',
index 4538c04..b2fce24 100644 (file)
@@ -2573,10 +2573,10 @@ Se costa ùltima possibilità a fussa lòn che a-j serv, a podrìa ëdcò dovré
 '''Nòta:''' la possibilità d'esporté la stòria completa dle pàgine a l'é staita gavà për dle question corelà a le prestassion dël sistema.",
 'exportlistauthors' => 'Anclude na lista completa dij contributor për minca pàgina',
 'export-submit' => 'Esporté',
-'export-addcattext' => "Gionta pàgine da 'nt la categorìa:",
-'export-addcat' => 'Gionta',
-'export-addnstext' => 'Gionta pàgine dal namespace',
-'export-addns' => 'Gionta',
+'export-addcattext' => "Gionté le pàgine da 'nt la categorìa:",
+'export-addcat' => 'Gionté',
+'export-addnstext' => 'Gionté dle pàgine da lë spassi nominal:',
+'export-addns' => 'Gionté',
 'export-download' => 'Ciamé dë salvelo coma archivi',
 'export-templates' => 'Ciapa andrinta jë stamp',
 'export-pagelinks' => 'Anseriss pàgine colegà a na përfondità ëd:',
index f0ff68d..8ea2992 100644 (file)
@@ -1358,6 +1358,7 @@ Note que os índices do sistema de busca externo poderão conter referências de
 'prefs-beta' => 'Características beta',
 'prefs-datetime' => 'Data e hora',
 'prefs-labs' => 'Características de laboratório',
+'prefs-user-pages' => 'Páginas de usuário',
 'prefs-personal' => 'Perfil de usuário',
 'prefs-rc' => 'Mudanças recentes',
 'prefs-watchlist' => 'Lista de páginas vigiadas',
@@ -2162,6 +2163,7 @@ Por favor note que outros websites podem apontar para um arquivo através de um
 Você pode diminuir a lista escolhendo um tipo de registro, um nome de usuário (sensível a maiúsculas e minúsculas), ou uma página afetada (também sensível a maiúsculas e minúsculas).',
 'logempty' => 'Nenhum item idêntico no registro.',
 'log-title-wildcard' => 'Procurar por títulos que sejam iniciados com o seguinte texto',
+'showhideselectedlogentries' => 'Exibir/ocultar os itens de registros selecionados',
 
 # Special:AllPages
 'allpages' => 'Todas as páginas',
index 6a6adcc..f0ca5e4 100644 (file)
@@ -2610,6 +2610,7 @@ Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
 'unwatching' => 'Text displayed when clicked on the unwatch tab: [[MediaWiki:Unwatch/{{SUBPAGENAME}}|{{int:unwatch}}]]. It means the wiki is removing that page from your watchlist.',
 'watcherrortext' => 'When a user clicked the watch/unwatch tab and the action did not succeed, this message is displayed. See also {{msg|addedwatchtext}}. and {{msg|addedwatchtext}}. This message is used raw and should not contain wikitext.',
 
+'enotif_reset' => "This should be translated as \"Mark all pages '''as''' visited\".",
 'enotif_newpagetext' => 'Part of text of a notification e-mail sent when a watched page has been created. See [[File:Screenshot_MediaWiki_e-mail_notifier.PNG|150px|right]]',
 'changed' => 'Possible value for $CHANGEDORCREATED in {{msg|enotif_subject}} and {{msg|enotif_body}}.',
 'created' => 'Possible value for $CHANGEDORCREATED in {{msg|enotif_subject}} and {{msg|enotif_body}}.',
index f69170c..57acb48 100644 (file)
@@ -126,9 +126,6 @@ $specialPageAliases = array(
        'Withoutinterwiki'          => array( 'Interwikinnaq', 'Wikipurannaq' ),
 );
 
-#!!# Translation <b>HORA_ACTUAL</b> is used more than once for <a href="#mw-sp-magic-currenttime">currenttime</a> and <a href="#mw-sp-magic-currenthour">currenthour</a>.
-#!!# Translation <b>HORAACTUAL</b> is used more than once for <a href="#mw-sp-magic-currenttime">currenttime</a> and <a href="#mw-sp-magic-currenthour">currenthour</a>.
-#!!# Translation <b>HORALOCAL</b> is used more than once for <a href="#mw-sp-magic-localtime">localtime</a> and <a href="#mw-sp-magic-localhour">localhour</a>.
 $magicWords = array(
        'redirect'                => array( '0', '#PUSAPUNA', '#REDIRECCIÓN', '#REDIRECCION', '#REDIRECT' ),
        'notoc'                   => array( '0', '__YUYARINANNAQ__', '__NOTDC__', '__NOTOC__' ),
@@ -146,7 +143,7 @@ $magicWords = array(
        'currentdayname'          => array( '1', 'KUNANPUNCHAWSUTI', 'NOMBREDÍAACTUAL', 'NOMBREDIAACTUAL', 'CURRENTDAYNAME' ),
        'currentyear'             => array( '1', 'KUNANWATA', 'AÑOACTUAL', 'AÑO_ACTUAL', 'CURRENTYEAR' ),
        'currenttime'             => array( '1', 'KUNANPACHA', 'HORAACTUAL', 'HORA_ACTUAL', 'HORA_MINUTOS_ACTUAL', 'HORAMINUTOSACTUAL', 'TIEMPOACTUAL', 'CURRENTTIME' ),
-       'currenthour'             => array( '1', 'KUNANURA', 'HORA_ACTUAL', 'HORAACTUAL', 'HORA_MINUTOS_ACTUAL', 'HORAMINUTOSACTUAL', 'CURRENTHOUR' ),
+       'currenthour'             => array( '1', 'KUNANURA', 'CURRENTHOUR' ),
        'localmonth'              => array( '1', 'KAYPIKILLA', 'MESLOCAL', 'MESLOCAL2', 'LOCALMONTH', 'LOCALMONTH2' ),
        'localmonthname'          => array( '1', 'KAYPIKILLASUTI', 'NOMBREMESLOCAL', 'MESLOCALCOMPLETO', 'LOCALMONTHNAME' ),
        'localmonthnamegen'       => array( '1', 'KAYPIKILLASUTIP', 'GENERADORNOMBREMESLOCAL', 'MESLOCALGENITIVO', 'LOCALMONTHNAMEGEN' ),
@@ -156,7 +153,7 @@ $magicWords = array(
        'localdayname'            => array( '1', 'KAYPIPUNCHAWSUTI', 'NOMBREDIALOCAL', 'NOMBREDÍALOCAL', 'LOCALDAYNAME' ),
        'localyear'               => array( '1', 'KAYPIWATA', 'AÑOLOCAL', 'LOCALYEAR' ),
        'localtime'               => array( '1', 'KAYPIPACHA', 'HORALOCAL', 'HORAMINUTOSLOCAL', 'TIEMPOLOCAL', 'LOCALTIME' ),
-       'localhour'               => array( '1', 'KAYPIURA', 'HORALOCAL', 'HORAMINUTOSLOCAL', 'LOCALHOUR' ),
+       'localhour'               => array( '1', 'KAYPIURA', 'LOCALHOUR' ),
        'numberofpages'           => array( '1', 'HAYKAPANQA', 'NÚMERODEPÁGINAS', 'NUMERODEPAGINAS', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'HAYKAQILLQA', 'NÚMERODEARTÍCULOS', 'NUMERODEARTICULOS', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', 'HAYKAWILLANIQI', 'NÚMERODEARCHIVOS', 'NUMERODEARCHIVOS', 'NUMBEROFFILES' ),
index 9a289f0..fb573a8 100644 (file)
@@ -116,10 +116,10 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Создать_учётную_запись', 'Создать_пользователя', 'Зарегистрироваться' ),
        'Deadendpages'              => array( 'Тупиковые_страницы' ),
        'DeletedContributions'      => array( 'Удалённый_вклад' ),
-       'Disambiguations'           => array( 'Неоднозначные_ссылки' ),
+       'Disambiguations'           => array( 'Неоднозначности' ),
        'DoubleRedirects'           => array( 'Двойные_перенаправления' ),
        'EditWatchlist'             => array( 'Править_список_наблюдения' ),
-       'Emailuser'                 => array( 'Письмо', 'Письмо_участнику', 'Отправить_письмо' ),
+       'Emailuser'                 => array( 'Письмо_участнику', 'Отправить_письмо' ),
        'Export'                    => array( 'Экспорт', 'Выгрузка' ),
        'FileDuplicateSearch'       => array( 'Поиск_дубликатов_файлов' ),
        'Filepath'                  => array( 'Путь_к_файлу' ),
@@ -129,14 +129,14 @@ $specialPageAliases = array(
        'Listadmins'                => array( 'Список_администраторов' ),
        'Listbots'                  => array( 'Список_ботов' ),
        'Listfiles'                 => array( 'Список_файлов', 'Список_изображений' ),
-       'Listgrouprights'           => array( 'СпиÑ\81ок_пÑ\80ав_гÑ\80Ñ\83пп', 'Ð\9fÑ\80ава_гÑ\80Ñ\83пп_Ñ\83Ñ\87аÑ\81Ñ\82ников' ),
+       'Listgrouprights'           => array( 'Ð\9fÑ\80ава_гÑ\80Ñ\83пп_Ñ\83Ñ\87аÑ\81Ñ\82ников', 'СпиÑ\81ок_пÑ\80ав_гÑ\80Ñ\83пп' ),
        'Listredirects'             => array( 'Список_перенаправлений' ),
        'Listusers'                 => array( 'Список_участников' ),
        'Lockdb'                    => array( 'Заблокировать_БД', 'Заблокировать_базу_данных' ),
        'Log'                       => array( 'Журналы', 'Журнал' ),
        'Lonelypages'               => array( 'Изолированные_страницы' ),
        'Longpages'                 => array( 'Длинные_страницы' ),
-       'MergeHistory'              => array( 'Ð\9eбÑ\8aединение_иÑ\81Ñ\82оÑ\80ии' ),
+       'MergeHistory'              => array( 'Ð\9eбÑ\8aединение_иÑ\81Ñ\82оÑ\80ий' ),
        'MIMEsearch'                => array( 'Поиск_по_MIME' ),
        'Mostimages'                => array( 'Самые_используемые_файлы' ),
        'Movepage'                  => array( 'Переименовать_страницу', 'Переименование', 'Переименовать' ),
@@ -152,9 +152,10 @@ $specialPageAliases = array(
        'Preferences'               => array( 'Настройки' ),
        'Protectedpages'            => array( 'Защищённые_страницы' ),
        'Protectedtitles'           => array( 'Защищённые_названия' ),
-       'Randompage'                => array( 'Случаная_страница', 'Случайная' ),
+       'Randompage'                => array( 'СлÑ\83Ñ\87айнаÑ\8f\81Ñ\82Ñ\80аниÑ\86а', 'СлÑ\83Ñ\87айнаÑ\8f' ),
        'Recentchanges'             => array( 'Свежие_правки' ),
        'Recentchangeslinked'       => array( 'Связанные_правки' ),
+       'Revisiondelete'            => array( 'Удаление_правки' ),
        'Search'                    => array( 'Поиск' ),
        'Shortpages'                => array( 'Короткие_страницы' ),
        'Specialpages'              => array( 'Спецстраницы' ),
@@ -165,13 +166,14 @@ $specialPageAliases = array(
        'Uncategorizedimages'       => array( 'Некатегоризованные_файлы' ),
        'Uncategorizedpages'        => array( 'Некатегоризованные_страницы' ),
        'Uncategorizedtemplates'    => array( 'Некатегоризованные_шаблоны' ),
+       'Undelete'                  => array( 'Восстановить', 'Восстановление' ),
        'Unusedcategories'          => array( 'Неиспользуемые_категории' ),
        'Unusedimages'              => array( 'Неиспользуемые_файлы' ),
        'Unusedtemplates'           => array( 'Неиспользуемые_шаблоны' ),
        'Upload'                    => array( 'Загрузка' ),
        'UploadStash'               => array( 'Скрытная_загрузка' ),
-       'Userlogin'                 => array( 'Вход', 'Авторизация' ),
-       'Userlogout'                => array( 'Ð\92Ñ\8bÑ\85од', 'Ð\97авеÑ\80Ñ\88ение_Ñ\81еанÑ\81а' ),
+       'Userlogin'                 => array( 'Вход' ),
+       'Userlogout'                => array( 'Ð\97авеÑ\80Ñ\88ение_Ñ\81еанÑ\81а', 'Ð\92Ñ\8bÑ\85од' ),
        'Userrights'                => array( 'Управление_правами' ),
        'Version'                   => array( 'Версия' ),
        'Wantedcategories'          => array( 'Требуемые_категории' ),
@@ -180,6 +182,7 @@ $specialPageAliases = array(
        'Wantedtemplates'           => array( 'Требуемые_шаблоны' ),
        'Watchlist'                 => array( 'Список_наблюдения' ),
        'Whatlinkshere'             => array( 'Ссылки_сюда' ),
+       'Withoutinterwiki'          => array( 'Без_интервики' ),
 );
 
 $magicWords = array(
index e8c88ce..7227677 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Sakha (Саха тыла)
+/** Sakha (саха тыла)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -9,6 +9,7 @@
  *
  * @author Andrijko Z.
  * @author Bert Jickty
+ * @author Gartem
  * @author HalanTul
  * @author Kaganer
  * @author Meno25
@@ -718,6 +719,7 @@ IP-аадырыһа эрэ көстөр.
 'note' => "'''Хос быһаарыы:'''",
 'previewnote' => "'''Бу барыллаан көрүү эрэ.'''
 Атын уларытыы бигэргэтиллэ илик!",
+'continue-editing' => 'Уларытыыны ситэр',
 'previewconflict' => 'Этот предварительный просмотр отражает текст в верхнем окне редактирования так, как он будет выглядеть, если вы решите записать его.',
 'session_fail_preview' => "'''Сиэрбэр сессия идентификаторын сүтэрэн кэбиһэн эн уларытыыгын кыайан киллэрбэтэ.
 Өссө холонон көр.
@@ -956,7 +958,7 @@ $1",
 # Suppression log
 'suppressionlog' => 'Кистээһин сурунаала',
 'suppressionlogtext' => 'Аллара даһабылларга көстүбэти таарыйар сотуулар уонна хааччахтааһыннар тиһиктэрэ бэриллэр.
-Билигин баар хааччахтары көрөргө [[Special:BlockList|IP хааччахтааһынын тиһигэр]] киир.',
+Билигин баар хааччахтары көрөргө [[Special:BlockList|хааччахтааһынын тиһигэр]] киир.',
 
 # History merging
 'mergehistory' => 'Силбэһии сирэйин хронологията',
@@ -1880,6 +1882,9 @@ $1',
 'allpagesbadtitle' => 'Сирэй маннык ааттанара сатаммат: аакка туттуллуо суохтаах бэлиэлэрдээх эбэтэр тыллар ыккардыларыгар туһаныллар ыйынньыктаах.',
 'allpages-bad-ns' => '{{SITENAME}} не содержит пространства имён «$1».',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Бутэhиги кор.',
+
 # Special:Categories
 'categories' => 'Категориялар',
 'categoriespagetext' => 'Бу {{PLURAL:$1|категория иһигэр|категориялар истэригэр}} сирэйдэр эбэтэр медиа-билэлэр бааллар.
index 0ee169f..660a017 100644 (file)
@@ -38,7 +38,52 @@ $namespaceNames = array(
 );
 
 $specialPageAliases = array(
+       'Allmessages'               => array( 'Buot_vuogádatdieđahusat' ),
+       'Allpages'                  => array( 'Buot_siiddut' ),
+       'Ancientpages'              => array( 'Boarrásamos_siiddut' ),
+       'Block'                     => array( 'Cagge_geavaheaddji' ),
+       'Booksources'               => array( 'Girjegáldut' ),
+       'Categories'                => array( 'Kategoriijat' ),
+       'Contributions'             => array( 'Geavaheaddji_rievdadusat' ),
+       'Disambiguations'           => array( 'Liŋkkat_dárkonsiidduide' ),
+       'DoubleRedirects'           => array( 'Guoktegeardásaš_ođđasitstivremat' ),
+       'Export'                    => array( 'Olggosfievrrit_siidduid' ),
+       'Listfiles'                 => array( 'Fiilalogahallan' ),
+       'Listredirects'             => array( 'Listu_ođđasitstivrejumiiguin' ),
+       'Listusers'                 => array( 'Listu_geavaheddjiin' ),
+       'Log'                       => array( 'Loggat' ),
+       'Lonelypages'               => array( 'Oarbbes_siiddut' ),
+       'Longpages'                 => array( 'Guhkes_siiddut' ),
+       'MIMEsearch'                => array( 'MIME-ohcan' ),
+       'Newimages'                 => array( 'Ođđa_govat' ),
+       'Newpages'                  => array( 'Ođđa_siiddut' ),
+       'Preferences'               => array( 'Válljemat' ),
+       'Protectedpages'            => array( 'Suodjáluvvon_siiddut' ),
+       'Randompage'                => array( 'Summal_siidu' ),
+       'Randomredirect'            => array( 'Summal_ođđasitstivren' ),
        'Recentchanges'             => array( 'Varas_rievdadusat' ),
+       'Search'                    => array( 'Oza' ),
+       'Shortpages'                => array( 'Oanehis_siiddut' ),
+       'Specialpages'              => array( 'Erenomáš_siiddut' ),
+       'Statistics'                => array( 'Statistihkat' ),
+       'Uncategorizedcategories'   => array( 'Klassifiserekeahtes_kategoriijat' ),
+       'Uncategorizedimages'       => array( 'Klassifiserekeahtes_govat' ),
+       'Uncategorizedpages'        => array( 'Klassifiserekeahtes_siiddut' ),
+       'Uncategorizedtemplates'    => array( 'Klassifiserekeahtes_mállevuođut' ),
+       'Unusedcategories'          => array( 'Geavatkeahtes_lágit' ),
+       'Unusedimages'              => array( 'Geavatkeahtes_govat' ),
+       'Unusedtemplates'           => array( 'Geavatkeahtes_mállevuođut' ),
+       'Unwatchedpages'            => array( 'Čuovvotkeahtes_siiddut' ),
+       'Upload'                    => array( 'Sádde_fiilla' ),
+       'Version'                   => array( 'Veršuvdna' ),
+       'Wantedcategories'          => array( 'Kategoriijasávaldagat' ),
+       'Wantedpages'               => array( 'Siidusávaldagat' ),
+       'Watchlist'                 => array( 'Čuovvunlistu' ),
+);
+
+$magicWords = array(
+       'redirect'                => array( '0', '#OĐĐASITSTIVREN', '#STIVREN', '#REDIRECT' ),
+       'numberofarticles'        => array( '1', 'ARTIHKKALIIDMEARRI', 'NUMBEROFARTICLES' ),
 );
 
 $linkTrail = '/^(:?[a-zàáâçčʒǯđðéèêëǧǥȟíìîïıǩŋñóòôõßšŧúùûýÿüžþæøåäö]+)(.*)$/sDu';
index a08f02a..be52dea 100644 (file)
@@ -442,8 +442,8 @@ $1",
 'mainpage' => 'මුල් පිටුව',
 'mainpage-description' => 'මුල් පිටුව',
 'policy-url' => 'Project:ප්‍රතිපත්තිය',
-'portal' => 'පà·\8aâ\80\8dරජà·\8f à¶´à·\92à·\80à·\92à·\83à·\94ම',
-'portal-url' => 'Project:පà·\8aâ\80\8dරජà·\8f à¶´à·\92à·\80à·\92à·\83à·\94ම',
+'portal' => 'පà·\8aâ\80\8dරජà·\8f à¶¯à·\8aà·\80à·\8fරය',
+'portal-url' => 'Project:පà·\8aâ\80\8dරජà·\8f à¶¯à·\8aà·\80à·\8fරය',
 'privacy' => 'පුද්ගලිකත්ව ප්‍රතිපත්තිය',
 'privacypage' => 'Project:පුද්ගලිකත්ව ප්‍රතිපත්තිය',
 
@@ -1288,7 +1288,7 @@ $1",
 'timezoneuseserverdefault' => 'විකියෙහි සාමාන්‍ය විදිහ භාවිත කරන්න ($1)',
 'timezoneuseoffset' => 'වෙනත් (හිලව්ව නියමාකාරයෙන් දක්වන්න)',
 'timezoneoffset' => 'Offset¹:',
-'servertime' => "ස'වරයේ වේලාව:",
+'servertime' => 'සේවාදායකයේ වේලාව:',
 'guesstimezone' => 'බ්‍රවුසරයෙන් පුරවන්න',
 'timezoneregion-africa' => 'අප්‍රිකාව',
 'timezoneregion-america' => 'අමෙරිකාව',
index 3ca1e95..97fb200 100644 (file)
@@ -152,7 +152,7 @@ $magicWords = array(
        'numberofpages'           => array( '1', 'NUMRIFAQEVE', 'NUMBEROFPAGES' ),
        'numberofarticles'        => array( '1', 'NUMRIIARTIKUJVE', 'NUMBEROFARTICLES' ),
        'numberoffiles'           => array( '1', 'NUMRIISKEDAVE', 'NUMBEROFFILES' ),
-       'numberofusers'           => array( '1', 'NUMRIIPËRDORUESVE', 'NUMRIPËRDORUESVE', 'NUMBEROFUSERS' ),
+       'numberofusers'           => array( '1', 'NUMRIIPËRDORUESVE', 'NUMBEROFUSERS' ),
        'numberofactiveusers'     => array( '1', 'NUMRIIPËRDORUESVEAKTIVË', 'NUMBEROFACTIVEUSERS' ),
        'numberofedits'           => array( '1', 'NUMRIREDAKTIMEVE', 'NUMBEROFEDITS' ),
        'numberofviews'           => array( '1', 'NUMRIISHIKIMEVE', 'NUMBEROFVIEWS' ),
index 04e3743..8b12c96 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Толышә зывон (Толышә зывон)
+/** толышә зывон (толышә зывон)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -484,7 +484,7 @@ $messages = array(
 'prefsnologintext' => 'Шымә бәбе <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ыштәни едәштән]</span> бо иштирокәкә пеғәндон дәгиш кардеј.',
 'changepassword' => 'Пароли дәгиш кардеј',
 'skin-preview' => 'Сыфтәнә нишо дој',
-'prefs-rc' => 'Ән нуә дәгишон',
+'prefs-rc' => 'Ән нујә дәгишон',
 'prefs-changeemail' => 'Е-номә дәгиш кардеј',
 'saveprefs' => 'Огәте',
 'searchresultshead' => 'Нәве',
index b568418..067f288 100644 (file)
  * @author Тест
  */
 
-/**
- * УВАГА! НЕ РЕДАГУЙТЕ ЦЕЙ ФАЙЛ!
- *
- * Якщо необхідно змінити переклад окремих частин інтерфейсу,
- * то це можна зробити редагуючи сторінки типу «MediaWiki:*».
- * Їх список можна знайти на сторінці «Special:Allmessages».
- */
-
 $separatorTransformTable = array(
        ',' => "\xc2\xa0", # nbsp
        '.' => ','
@@ -109,6 +101,94 @@ $bookstoreList = array(
        'Amazon.com' => 'http://www.amazon.com/exec/obidos/ISBN=$1'
 );
 
+$specialPageAliases = array(
+       'Activeusers'               => array( 'Активні_учасники' ),
+       'Allmessages'               => array( 'Системні_повідомлення' ),
+       'Allpages'                  => array( 'Усі_сторінки' ),
+       'Ancientpages'              => array( 'Давні_сторінки' ),
+       'Blankpage'                 => array( 'Порожня_сторінка' ),
+       'Block'                     => array( 'Заблокувати' ),
+       'Blockme'                   => array( 'Заблокуйте_мене' ),
+       'Booksources'               => array( 'Джерела_книг' ),
+       'BrokenRedirects'           => array( 'Розірвані_перенаправлення' ),
+       'Categories'                => array( 'Категорії' ),
+       'ChangeEmail'               => array( 'Змінити_e-mail' ),
+       'ChangePassword'            => array( 'Змінити_пароль' ),
+       'ComparePages'              => array( 'Порівняння_сторінок' ),
+       'Confirmemail'              => array( 'Підтвердити_e-mail' ),
+       'Contributions'             => array( 'Внесок' ),
+       'CreateAccount'             => array( 'Створити_обліковий_запис' ),
+       'Deadendpages'              => array( 'Сторінки_без_посилань' ),
+       'DeletedContributions'      => array( 'Вилучений_внесок' ),
+       'Disambiguations'           => array( 'Неоднозначні_посилання' ),
+       'DoubleRedirects'           => array( 'Подвійні_перенаправлення' ),
+       'EditWatchlist'             => array( 'Правити_список_спостереження' ),
+       'Emailuser'                 => array( 'Лист_користувачеві' ),
+       'Export'                    => array( 'Експорт' ),
+       'FileDuplicateSearch'       => array( 'Пошук_дублікатів_файлів' ),
+       'Import'                    => array( 'Імпорт' ),
+       'BlockList'                 => array( 'Список_блокувань', 'Блокування', 'Блокування_IP-адрес' ),
+       '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( 'Нові_сторінки' ),
+       'PermanentLink'             => array( 'Постійне_посилання' ),
+       'Popularpages'              => array( 'Популярні_сторінки' ),
+       'Preferences'               => array( 'Налаштування' ),
+       'Protectedpages'            => array( 'Захищені_сторінки' ),
+       'Protectedtitles'           => array( 'Захищені_назви_сторінок' ),
+       'Randompage'                => array( 'Випадкова_сторінка' ),
+       'Randomredirect'            => array( 'Випадкове_перенаправлення' ),
+       'Recentchanges'             => array( 'Нещодавні_редагування' ),
+       'Recentchangeslinked'       => array( 'Пов\'язані_редагування' ),
+       'Revisiondelete'            => array( 'Перевірити_видалення' ),
+       'Search'                    => array( 'Пошук' ),
+       'Shortpages'                => array( 'Короткі_сторінки' ),
+       'Specialpages'              => array( 'Спеціальні_сторінки' ),
+       'Statistics'                => array( 'Статистика' ),
+       'Tags'                      => array( 'Мітки' ),
+       'Unblock'                   => array( 'Розблокувати' ),
+       'Uncategorizedcategories'   => array( 'Некатегоризовані_категорії' ),
+       'Uncategorizedimages'       => array( 'Некатегоризовані_файли' ),
+       'Uncategorizedpages'        => array( 'Некатегоризовані_сторінки' ),
+       'Uncategorizedtemplates'    => array( 'Некатегоризовані_шаблони' ),
+       'Undelete'                  => array( 'Відновити' ),
+       'Unlockdb'                  => array( 'Розблокувати_базу_даних' ),
+       'Unusedcategories'          => array( 'Порожні_категорії' ),
+       'Unusedimages'              => array( 'Невикористовувані_файли' ),
+       'Unusedtemplates'           => array( 'Невикористовувані_шаблони' ),
+       'Unwatchedpages'            => array( 'Сторінки_за_якими_не_спостерігають' ),
+       'Upload'                    => array( 'Завантаження' ),
+       'UploadStash'               => array( 'Приховане_завантаження' ),
+       'Userlogin'                 => array( 'Вхід' ),
+       'Userlogout'                => array( 'Вихід' ),
+       'Userrights'                => array( 'Керування_правами_користувачів' ),
+       'Version'                   => array( 'Версія' ),
+       'Wantedcategories'          => array( 'Потрібні_категорії' ),
+       'Wantedfiles'               => array( 'Потрібні_файли' ),
+       'Wantedpages'               => array( 'Потрібні_сторінки' ),
+       'Wantedtemplates'           => array( 'Потрібні_шаблони' ),
+       'Watchlist'                 => array( 'Список_спостереження' ),
+       'Whatlinkshere'             => array( 'Посилання_сюди' ),
+);
+
 $magicWords = array(
        'redirect'                => array( '0', '#ПЕРЕНАПРАВЛЕННЯ', '#ПЕРЕНАПР', '#перенапр', '#перенаправление', '#REDIRECT' ),
        'notoc'                   => array( '0', '__БЕЗ_ЗМІСТУ__', '__БЕЗ_ОГЛАВЛЕНИЯ__', '__БЕЗ_ОГЛ__', '__NOTOC__' ),
@@ -942,8 +1022,8 @@ $2
 Пам'ятайте, що користувацькі .css та .js сторінки повинні мати назву, що складається лише з малих літер, наприклад «{{ns:user}}:Хтось/vector.css», а не «{{ns:user}}:Хтось/Vector.css».",
 'updated' => '(Оновлена)',
 'note' => "'''Зауваження:'''",
-'previewnote' => "'''Ð\9fам'Ñ\8fÑ\82айÑ\82е, Ñ\89о Ñ\86е лише попередній перегляд.'''
\92аÑ\88Ñ\96 Ð·Ð¼Ñ\96ни Ñ\89е Ð½Ðµ Ð±Ñ\83ли Ð·Ð±ÐµÑ\80еженÑ\96!",
+'previewnote' => "'''Це лише попередній перегляд.'''
\92аÑ\88Ñ\96 Ð·Ð¼Ñ\96ни Ñ\89е Ð½Ðµ Ð·Ð±ÐµÑ\80ежено!",
 'continue-editing' => 'Продовжити редагування',
 'previewconflict' => 'Цей попередній перегляд відображає текст з верхнього вікна редагування так, як він буде виглядіти, якщо ви вирішите зберегти його.',
 'session_fail_preview' => "'''Система не може зберегти ваші редагування, оскільки втрачені дані сеансу. Будь ласка, повторіть вашу спробу.
@@ -1220,7 +1300,7 @@ $1",
 # Diffs
 'history-title' => '$1: Історія змін',
 'difference-title' => '$1: Відмінності між версіями',
-'difference-title-multipage' => '$1 і $2: Відмінності між сторінками',
+'difference-title-multipage' => 'Різниця між сторінками «$1» та «$2»',
 'difference-multipage' => '(Різниця між сторінками)',
 'lineno' => 'Рядок $1:',
 'compareselectedversions' => 'Порівняти вибрані версії',
@@ -1622,7 +1702,7 @@ $1",
 'recentchangeslinked-title' => "Пов'язані редагування для «$1»",
 'recentchangeslinked-noresult' => "На пов'язаних сторінках не було змін протягом зазначеного періоду.",
 'recentchangeslinked-summary' => "Це список нещодавніх змін на сторінках, на які посилається зазначена сторінка (або на сторінках, що містяться в цій категорії).
-Сторінки з [[Special:Watchlist|вашого списку спостереження]] виділені '''жирним шрифтом'''.",
+Сторінки з [[Special:Watchlist|вашого списку спостереження]] виділено '''жирним шрифтом'''.",
 'recentchangeslinked-page' => 'Назва сторінки:',
 'recentchangeslinked-to' => "Показати зміни на сторінках, пов'язаних з даною",
 
@@ -2248,8 +2328,8 @@ $1',
 'watchnologin' => 'Ви не ввійшли до системи',
 'watchnologintext' => 'Ви повинні [[Special:UserLogin|ввійти до системи]], щоб мати можливість змінювати список спостереження.',
 'addwatch' => 'Додати до списку спостереження',
-'addedwatchtext' => "Сторінка «[[:$1]]» додана до вашого [[Special:Watchlist|списку спостереження]].
\9dаÑ\81Ñ\82Ñ\83пнÑ\96 Ñ\80едагÑ\83ваннÑ\8f Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\81Ñ\82аÑ\82Ñ\82Ñ\96 Ñ\96 Ð¿Ð¾Ð²'Ñ\8fзаноÑ\97 Ð· Ð½ÐµÑ\8e Ñ\81Ñ\82оÑ\80Ñ\96нки Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80еннÑ\8f Ð±Ñ\83дÑ\83Ñ\82Ñ\8c Ð²Ñ\96добÑ\80ажаÑ\82иÑ\81Ñ\8f Ð² Ñ\86Ñ\8cомÑ\83 Ñ\81пиÑ\81кÑ\83, Ð° Ñ\82акож Ð±Ñ\83дÑ\83Ñ\82Ñ\8c Ð²Ð¸Ð´Ñ\96ленÑ\96 '''жирним шрифтом''' на сторінці зі [[Special:RecentChanges|списком останніх редагувань]], щоб їх було легше помітити.",
+'addedwatchtext' => "Сторінку «[[:$1]]» додано до вашого [[Special:Watchlist|списку спостереження]].
\9fодалÑ\8cÑ\88Ñ\96 Ñ\80едагÑ\83ваннÑ\8f Ñ\86Ñ\96Ñ\94Ñ\97 Ñ\81Ñ\82оÑ\80Ñ\96нки (Ñ\82а Ð¿Ð¾Ð²'Ñ\8fзаноÑ\97 Ð· Ð½ÐµÑ\8e Ñ\81Ñ\82оÑ\80Ñ\96нки Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ\80еннÑ\8f) Ð²Ñ\96добÑ\80ажаÑ\82имÑ\83Ñ\82Ñ\8cÑ\81Ñ\8f Ð² Ñ\86Ñ\8cомÑ\83 Ñ\81пиÑ\81кÑ\83. Ð¢Ð°ÐºÐ¾Ð¶ Ñ\97Ñ\85 Ð±Ñ\83де Ð²Ð¸Ð´Ñ\96лено '''жирним шрифтом''' на сторінці зі [[Special:RecentChanges|списком останніх редагувань]], щоб їх було легше помітити.",
 'removewatch' => 'Видалити зі списку спостереження',
 'removedwatchtext' => 'Сторінка «[[:$1]]» вилучена з вашого [[Special:Watchlist|списку спостереження]].',
 'watch' => 'Спостерігати',
@@ -2276,7 +2356,7 @@ $1',
 'watcherrortext' => 'Сталася помилка при заміні налаштувань списку спостереження для " $1 ".',
 
 'enotif_mailer' => '{{SITENAME}} Служба сповіщення поштою',
-'enotif_reset' => 'Ð\9fомÑ\96Ñ\82ити всі сторінки як переглянуті',
+'enotif_reset' => 'Ð\9fознаÑ\87ити всі сторінки як переглянуті',
 'enotif_newpagetext' => 'Це нова сторінка.',
 'enotif_impersonal_salutation' => 'Користувач {{grammar:genitive|{{SITENAME}}}}',
 'changed' => 'змінена',
index 2e6346e..02a0185 100644 (file)
@@ -2137,6 +2137,7 @@ Xin lưu ý là các trang Web bên ngoài có thể liên kết đến một t
 Bạn có thể thu hẹp kết quả bằng cách chọn loại nhật trình, tên thành viên (phân biệt chữ hoa-chữ thường), hoặc các trang bị ảnh hưởng (cũng phân biệt chữ hoa-chữ thường).',
 'logempty' => 'Không có mục nào khớp với từ khóa.',
 'log-title-wildcard' => 'Tìm các tựa trang bắt đầu bằng các chữ này',
+'showhideselectedlogentries' => 'Hiện/ẩn các mục nhật trình đã chọn',
 
 # Special:AllPages
 'allpages' => 'Mọi trang',
index 369b8f8..73adb50 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Walloon (Walon)
+/** Walloon (walon)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -71,18 +71,18 @@ $linkTrail = '/^([a-zåâêîôûçéè]+)(.*)$/sDu';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Sorlignî les loyéns',
+'tog-underline' => 'Sorlignî les loyéns:',
 'tog-justify' => 'Djustifyî les hagnons',
 'tog-hideminor' => 'Èn nén mostrer les <i>dierins candjmints</i> mineurs',
-'tog-extendwatchlist' => "Ragrandi l' djivêye po mostrer tos les candjmints",
-'tog-usenewrc' => 'Ramidrés <i>dierins candjmints</i> (JavaScript)',
+'tog-extendwatchlist' => "Ragrandi l' djivêye po mostrer tos les candjmints, nén seulmint les dierins",
+'tog-usenewrc' => 'Eployî les ramidrés dierins candjmints (i fåt JavaScript)',
 'tog-numberheadings' => 'Limerotaedje otomatike des tites',
 'tog-showtoolbar' => "Mostrer l' bår d' usteyes e môde candjmint (JavaScript)",
 'tog-editondblclick' => 'Candjî les pådjes avou on dobe-clitch (JavaScript)',
 'tog-editsection' => "Eployî les loyéns «[candjî]» po candjî rén k' ene seccion",
 'tog-editsectiononrightclick' => 'Candjî les seccions avou on dobe-clitch sol tite (JavaScript)',
 'tog-showtoc' => "Mostrer l' tåvlea d' ådvins<br />(po ls årtikes avou pus di 3 seccions)",
-'tog-rememberpassword' => 'Rimimbrer li scret inte les sessions (for a maximum of $1 {{PLURAL:$1|day|days}})',
+'tog-rememberpassword' => "Rimimbrer m' sicret inte les sessions (nén dpus ki po $1 {{PLURAL:$1|djoû|djoûs}})",
 'tog-watchcreations' => "Mete les pådjes ki dj' askepeye dins l' djivêye des pådjes shuvowes",
 'tog-watchdefault' => "Shuve les årtikes ki dj' fwai ou ki dj' candje",
 'tog-watchmoves' => "Radjouter a m' djivêye des shuvous les pådjes ki dji displaece",
@@ -96,9 +96,9 @@ $messages = array(
 'tog-enotifminoredits' => "M' emiler eto po les ptits candjmints",
 'tog-enotifrevealaddr' => 'Mostrer mi adresse emile dins les emiles di notifiaedje',
 'tog-shownumberswatching' => "Mostrer l' nombe d' uzeus ki shuvèt l' pådje",
-'tog-fancysig' => 'Sinateure brute (sins loyén otomatike)',
-'tog-externaleditor' => "Eployî on dfoûtrin aspougneu d' tecse come prémetowe dujhance",
-'tog-externaldiff' => 'Eployî on dfoûtrin programe di diferinces come prémetowe dujhance',
+'tog-fancysig' => 'Sinateure avou do tecse wiki (sins loyén otomatike)',
+'tog-externaleditor' => "Eployî on dfoûtrin aspougneu d' tecse come prémetowe dujhance (po les spepieus uzeus seulmint, ca i vs fåt fé des apontiaedjes sol sopiutrece da vosse, [//www.mediawiki.org/wiki/Manual:External_editors loukîz chal po pus di racsegnes]).",
+'tog-externaldiff' => 'Eployî on dfoûtrin programe di diferinces come prémetowe dujhance (po les spepieus uzeus seulmint, ca i vs fåt fé des apontiaedjes sol sopiutrece da vosse, [//www.mediawiki.org/wiki/Manual:External_editors loukîz chal po pus di racsegnes]).',
 'tog-showjumplinks' => 'Mete en alaedje les loyéns di naiviaedje «potchî a» å dzeu del pådje (pol pea «Myskin» et ds ôtes)',
 'tog-uselivepreview' => "Eployî l' prévoeyaedje abeye (JavaScript) (Esperimintå)",
 'tog-forceeditsummary' => "M' advierti cwand dji lai vude on rascourti",
@@ -113,6 +113,10 @@ $messages = array(
 'underline-never' => 'Måy',
 'underline-default' => 'Valixhance do betchteu',
 
+# Font style option in Special:Preferences
+'editfont-style' => 'Stîle del fonte pol boesse di tecse',
+'editfont-default' => 'Valixhance do betchteu',
+
 # Dates
 'sunday' => 'dimegne',
 'monday' => 'londi',
@@ -171,9 +175,11 @@ $messages = array(
 'subcategories' => 'Dizo-categoreyes',
 'category-media-header' => 'Media el categoreye «$1»',
 'category-empty' => "''Cisse categoreye ci n' a pol moumint nol årtike ni media.''",
+'hidden-categories' => '{{PLURAL:$1|Categoreye catcheye|Categoreyes catcheyes}}',
+'hidden-category-category' => 'Categoreyes catcheyes',
 'category-subcat-count' => 'Dins cisse categoreye, gn a {{PLURAL:$2|li dzo-categoreye|$2 dizo-categoreyes, inte di zeles {{PLURAL:$1|li cene|les $1}}}} cial pa-dzo.',
 'category-subcat-count-limited' => "Dins cisse categoreye, gn a {{PLURAL:$1|l' dizo-categoreye|les dzo-categoreyes}} shuvantes.",
-'category-article-count' => 'Dins cisse categoreye cial, gn a {{PLURAL:$2|li pådje ki shût|$2 pådje, inte di zeles {{PLURAL:$1|li cene|les $1}} cial padzo}}.',
+'category-article-count' => 'Dins cisse categoreye cial, gn a {{PLURAL:$2|li pådje ki shût|$2 pådjes, inte di zeles {{PLURAL:$1|li cene|les $1}} cial padzo}}.',
 'category-article-count-limited' => "{{PLURAL:$1|Gn a l' pådje ki shût|Les $1 pådjes ki shuvnut si trovèt ddja}} dins cisse categoreye ci.",
 'category-file-count' => "{{PLURAL:$2|Dins cisse categoreye ci, gn a k' ene pådje.|{{PLURAL:$1|Gn a cisse pådje ci|Gn a les $1 pådjes ki shuvèt}} dins cisse categoreye ci, po $2 pådjes å totå.}}",
 'category-file-count-limited' => "{{PLURAL:$1|Gn a k' cisse pådje cial|Gn a les $1 pådjes ciddé padzo}} dins cisse categoreye ci.",
@@ -198,6 +204,23 @@ $messages = array(
 'qbmyoptions' => 'Mes pådjes',
 'qbspecialpages' => 'Pådjes sipeciåles',
 
+# Vector skin
+'vector-action-addsection' => 'Radjouter on sudjet',
+'vector-action-delete' => 'Disfacer',
+'vector-action-move' => 'Displaecî',
+'vector-action-protect' => 'Protedjî',
+'vector-action-undelete' => 'Rapexhî',
+'vector-action-unprotect' => "Candjî l' protedjaedje",
+'vector-simplesearch-preference' => 'Permete les amidreyès sudjestions di cweraedje (pea «Vector» seulmint)',
+'vector-view-create' => 'Ahiver',
+'vector-view-edit' => 'Candjî',
+'vector-view-history' => "Vey l' istwere",
+'vector-view-view' => 'Lére',
+'vector-view-viewsource' => 'Vey côde sourdant',
+'actions' => 'Accions',
+'namespaces' => 'Espåces di lomaedje',
+'variants' => 'Variantes',
+
 'errorpagetitle' => 'Aroke',
 'returnto' => 'Rivni al pådje «$1».',
 'tagline' => 'Èn årtike di {{SITENAME}}.',
@@ -220,23 +243,23 @@ $messages = array(
 'deletethispage' => "Disfacer l' pådje",
 'undelete_short' => 'Rapexhî {{PLURAL:$1|on candjmint|$1 candjmints}}',
 'protect' => 'Protedjî',
-'protect_change' => "candjî l' protedjaedje",
+'protect_change' => 'candjî',
 'protectthispage' => "Protedjî l' pådje",
-'unprotect' => 'Disprotedjî',
-'unprotectthispage' => "Disprotedjî l' pådje",
+'unprotect' => "Candjî l' protedjaedje",
+'unprotectthispage' => "Candjî l' protedjaedje del pådje",
 'newpage' => 'Novele pådje',
 'talkpage' => 'Copene sol pådje',
 'talkpagelinktext' => 'Copiner',
 'specialpage' => 'Pådje sipeciåle',
 'personaltools' => 'Usteyes da vosse',
-'postcomment' => 'Sicrire on comintaire',
+'postcomment' => 'Novele seccion',
 'articlepage' => "Vey l' årtike",
 'talk' => 'Copene',
 'views' => 'Vuwes',
 'toolbox' => 'Boesse ås usteyes',
 'userpage' => "Vey li pådje di l' uzeu",
 'projectpage' => 'Vey li pådje do pordjet',
-'imagepage' => "Vey li pådje di l' imådje",
+'imagepage' => 'Vey li pådje do fitchî',
 'viewtalkpage' => 'Vey li pådje di copene',
 'otherlanguages' => 'Ôtes lingaedjes',
 'redirectedfrom' => '(Redjiblé di $1)',
@@ -271,7 +294,7 @@ $1",
 'badaccess' => "Åk n' a nén stî avou les permissions",
 
 'versionrequired' => "I vs fåt l' modêye $1 di MediaWiki",
-'versionrequiredtext' => "I vs fåt l' modêye $1 di MediaWiki po-z eployî cisse pådje ci. Loukîz a [[Special:Version]]",
+'versionrequiredtext' => "I vs fåt l' modêye $1 di MediaWiki po-z eployî cisse pådje ci. Loukîz [[Special:Version|al pådje des modêyes]]",
 
 'ok' => "'l est bon",
 'retrievedfrom' => 'Prin del pådje «$1»',
@@ -281,26 +304,31 @@ $1",
 'youhavenewmessagesmulti' => 'Vos avoz des noveas messaedjes so $1',
 'editsection' => 'candjî',
 'editold' => 'candjî',
+'viewsourceold' => 'vey côde sourdant',
 'editlink' => 'candjî',
 'viewsourcelink' => 'Vey côde sourdant',
 'editsectionhint' => "Candjî l' seccion: $1",
 'toc' => 'Ådvins',
 'showtoc' => 'mostrer',
 'hidetoc' => 'catchî',
+'collapsible-collapse' => 'erôler',
+'collapsible-expand' => 'diswalper',
 'thisisdeleted' => 'Vey ou rapexhî $1?',
 'viewdeleted' => 'Vey $1?',
 'restorelink' => '{{PLURAL:$1|on candjmint disfacé|$1 candjmints disfacés}}',
 'feedlinks' => 'Sindicåcion:',
 'feed-invalid' => 'Sôre di sindicåcion nén valide.',
 'red-link-title' => '$1 (nén co ataké)',
+'sort-descending' => 'Discrexhant relijhaedje',
+'sort-ascending' => 'Acrexhant relijhaedje',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Årtike',
 'nstab-user' => "Pådje di l' uzeu",
 'nstab-media' => 'Media',
-'nstab-special' => 'Sipeciås',
+'nstab-special' => 'Pådje sipeciåle',
 'nstab-project' => 'Pådje',
-'nstab-image' => 'Imådje',
+'nstab-image' => 'Fitchî',
 'nstab-mediawiki' => 'Messaedje',
 'nstab-template' => 'Modele',
 'nstab-help' => 'Aidance',
@@ -308,7 +336,9 @@ $1",
 
 # Main script and global functions
 'nosuchaction' => 'Nole sifwaite accion',
-'nosuchactiontext' => "L' accion specifieye pal hårdêye n' est nén ricnoxhowe på wiki.",
+'nosuchactiontext' => "L' accion specifieye pal hårdêye n' est nén ricnoxhowe på wiki.
+Motoit ki vos avoz må scrît l' hårdêye ou shuvou on cron loyén.
+Ça pôreut eto esse on bug do programe eployî pa {{SITENAME}}.",
 'nosuchspecialpage' => 'Nole sifwaite pådje',
 'nospecialpagetext' => 'Vos avoz dmandé ene pådje sipeciåle nén valide, po ene djivêye des pådjes sipeciåles valides, loukîz a [[Special:SpecialPages]].',
 
@@ -320,14 +350,17 @@ $1",
 Li dierin cweraedje del båze di dnêyes di sayî esteut:
 <blockquote><tt>$1</tt></blockquote>
 a pårti del fonccion «<tt>$2</tt>».
-MySQL a rtourné l' aroke «<tt>$3: $4</tt>».",
+Li båze di dnêyes a rtourné l' aroke «<tt>$3: $4</tt>».",
 'dberrortextcl' => "Åk n' a nén stî avou l' sintacse do cweraedje del båze di dnêyes.
 Li dierin cweraedje del båze di dnêyes di sayî esteut:
 «$1»
 a pårti del fonccion «$2».
-MySQL a rtourné l' aroke «$3: $4».",
+Li båze di dnêyes a rtourné l' aroke «$3: $4».",
 'laggedslavemode' => "Asteme: I s' pout ki l' pådje n' åye nén co les dierins candjmints.",
+'readonly' => 'Li båze di dnêyes est aclawêye',
+'missingarticle-rev' => '(l° del modêye: $1)',
 'internalerror' => 'Divintrinne aroke',
+'internalerror_info' => 'Divintrinne aroke: $1',
 'filecopyerror' => "Dji n' a savou copyî l' fitchî «$1» viè «$2».",
 'filerenameerror' => "Dji n' a savou rlomer l' fitchî «$1» e «$2».",
 'filedeleteerror' => "Dji n' a savou disfacer l' fitchî «$1».",
@@ -335,30 +368,32 @@ MySQL a rtourné l' aroke «$3: $4».",
 'filenotfound' => "Dji n' a savou trover l' fitchî «$1».",
 'unexpected' => 'Valixhance nén ratindowe: «$1»=«$2».',
 'badarticleerror' => "Cisse accion la n' si pout nén fé so cisse pådje ci.",
-'cannotdelete' => "Dji n' sai disfacer l' pådje ou l' imådje dimandêye (ça s' pôreut k' ene ôte sakî l' a ddja disfacé).",
+'cannotdelete' => "Dji n' sai disfacer l' pådje ou l' fitchî «$1».
+Ça s' pôreut k' ene ôte sakî l' a ddja disfacé.",
+'cannotdelete-title' => "Dji n' sai disfacer l' pådje «$1»",
 'badtitle' => 'Måva tite',
 'badtitletext' => "Li tite del pådje dimandêye n' esteut nén valide, il estet vude, oudonbén c' esteut on cron loyén eterlingaedje ou eterwiki. Ça s' pout k' il åye onk ou sacwants caracteres ki n' polèt nén esse eployîs dins les tites.",
-'perfcached' => "Les dnêyes ki shuvèt c' est ene copeye e muchete, et ça s' pout ki ça n' soeye nén ttafwaitmint a djoû. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-'perfcachedts' => "Les dnêyes ki shuvèt c' est ene copeye e muchete, ey elle ont stî metowes a djoû pol dierin côp li $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+'perfcached' => "Les dnêyes ki shuvèt c' est ene copeye e muchete, et ça s' pout ki ça n' soeye nén ttafwaitmint a djoû. Li muchete a-st on macsimom {{PLURAL:$1|d' on rzultat|di $1 rizultats}}.",
+'perfcachedts' => "Les dnêyes ki shuvèt c' est ene copeye e muchete, ey elle ont stî metowes a djoû pol dierin côp li $1. Li muchete a-st on macsimom {{PLURAL:$4|d' on rzultat|di $4 rizultats}}.",
 'wrong_wfQuery_params' => 'Parametes incoreks po wfQuery()<br />
 Fonccion: $1<br />
 Cweraedje: $2',
 'viewsource' => 'Vey côde sourdant',
 'viewsourcetext' => 'Loukîz li contnou di l’ årtike, et s’ li rcopyî si vos vloz, por vos bouter dsu foû des fyis :',
 'protectedinterface' => "Cisse pådje ci dene on tecse d' eterface pol programe, eyet elle a stî protedjeye po s' waeranti siconte des abus.",
-'editinginterface' => "'''Warning:''' You are editing a page which is used to provide interface text for the software.
-Changes to this page will affect the appearance of the user interface for other users.
-For translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+'editinginterface' => "'''Asteme:''' Vos estoz ki candje ene pådje eployeye po fé l' tecse po l' eterface do programe.
+Les candjmints ki vso frîz vont candjî l' rivnance di l' eterface po ds ôtes uzeus.
+Po des ratournaedjes, loukîz purade a [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], li pordjet di locålijhaedje da MediaWiki.",
 
 # Login and logout pages
 'logouttext' => "'''Vos vs avoz dislodjî.'''
 
-Vos ploz continouwer a naivyî so {{SITENAME}} anonimmint, oudonbén vos relodjî dizo l' minme uzeu ou dizo èn uzeu diferin.
+Vos ploz continouwer a naivyî so {{SITENAME}} anonimmint, oudonbén [[Special:UserLogin|vos relodjî]], dizo l' minme uzeu ou dizo èn uzeu diferin.
 Notez ki des pådjes k' i gn a si pôrént continowuer a vey come si vos estîz elodjî, disk' a tant ki vos vudrîz l' muchete di vosse betchteu waibe.",
 'welcomecreation' => '== Bénvnowe, $1! ==
 
 Vosse conte a stî ahivé.
-Èn rovyîz nén di candjî les preferinces di {{SITENAME}} a vosse môde.',
+Èn rovyîz nén di candjî les [[Special:Preferences|preferinces di {{SITENAME}}]] a vosse môde.',
 'yourname' => "Vosse no d' elodjaedje",
 'yourpassword' => 'Vosse sicret',
 'yourpasswordagain' => 'Ritapez vosse sicret',
@@ -368,10 +403,11 @@ Vosse conte a stî ahivé.
 'nav-login-createaccount' => "Ahiver on conte, udon-bén s' elodjî",
 'loginprompt' => 'Vos dvoz permete les coûkes po vs elodjî so {{SITENAME}}.',
 'userlogin' => "S' elodjî",
+'userloginnocreate' => "S' elodjî",
 'logout' => 'Si dislodjî',
 'userlogout' => 'Si dislodjî',
 'notloggedin' => 'Nén elodjî',
-'nologin' => "Vos n' avoz nén d' conte so ç' wiki ci? '''$1'''.",
+'nologin' => "Vos n' avoz nén d' conte so ç' wiki ci? $1.",
 'nologinlink' => 'Ahivez on conte da vosse',
 'createaccount' => 'Ahiver on novea conte',
 'gotaccount' => "Vos avoz ddja on conte so ç' wiki ci? '''$1'''.",
@@ -379,7 +415,8 @@ Vosse conte a stî ahivé.
 'createaccountmail' => 'pa emile',
 'createaccountreason' => 'Råjhon:',
 'badretype' => 'Vos avoz dné deus screts diferins.',
-'userexists' => "Li no d' uzeu ki vs avoz tchoezi est ddja eployî. Tchoezixhoz è èn ôte s' i vs plait.",
+'userexists' => "Li no d' uzeu ki vs avoz tchoezi est ddja eployî.
+Tchoezixhoz è èn ôte s' i vs plait.",
 'loginerror' => "Aroke d' elodjaedje",
 'nocookiesnew' => "Li conte a stî ahivé, mins vos n' estoz nén elodjî. {{SITENAME}} eploye des coûkes po l' elodjaedje des uzeus. Vos avoz dismetou l' sopoirt des coûkes dins vosse betchteu waibe; rimetoz l' en alaedje et relodjîz vs avou vosse novea no d' elodjaedje eyet scret, s' i vs plait.",
 'nocookieslogin' => "{{SITENAME}} eploye des coûkes po l' elodjaedje des uzeus. Vos avoz dismetou l' sopoirt des coûkes dins vosse betchteu waibe; rimetoz l' en alaedje et relodjîz vs s' i vs plait.",
@@ -387,41 +424,74 @@ Vosse conte a stî ahivé.
 'loginsuccesstitle' => 'Vos estoz elodjî',
 'loginsuccess' => "'''L' elodjaedje a stî comifåt, asteure vos estoz elodjî dins {{SITENAME}} dizo l' no d' uzeu «$1».'''",
 'nosuchuser' => "I g na nou uzeu dizo l' no «$1».
-Verifyîz çou k' vos avoz tapé, oudonbén rimplixhoz les ôtes tchamps
-et clitchîz sol boton po-z ahiver on novea conte.",
+Notez k' les nos d' uzeu fjhèt l' diferince etur pitites et grandès letes.
+Verifyîz çou k' vos avoz tapé, oudonbén [[Special:UserLogin/signup|ahivez on novea conte]].",
 'nosuchusershort' => "I g na nou uzeu dizo l' no «$1». Verifyîz çou k' vos avoz tapé.",
 'nouserspecified' => "Vos dvoz dner on no d' elodjaedje.",
 'wrongpassword' => "Li scret ki vs avoz dné est måva. Rissayîz s' i vs plait.",
 'wrongpasswordempty' => "Vos avoz dné on vude sicret. Rissayîz s' i vs plait.",
-'passwordtooshort' => 'Li scret est pår trop court. I doet esse di pol moens {{PLURAL:$1|1 caractere|$1 caracteres}}.',
+'passwordtooshort' => 'Li scret doet esse di pol moens {{PLURAL:$1|1 caractere|$1 caracteres}}.',
 'mailmypassword' => "M' emiler on novea scret",
-'passwordremindertitle' => 'Rimimbraedje do scret po {{SITENAME}}',
-'passwordremindertext' => "Ene sakî (probåblumint vos-minme, avou l' adresse IP $1) a dmandé k' on vs emile on novea scret po {{SITENAME}} ($4).
-Li scret po l' uzeu «$2» est asteure «$3».
-Po pus di såvrité, vos vos dvrîz elodjî eyet rcandjî vosse sicret å pus abeye.
-
-Si ene ôte sakî a fwait l' dimande, ou si vos vs avoz rtrové l' vî scret eyet nel pus vleur candjî, vos ploz djusse ignorer ci messaedje ci eyet continouwer avou l' vî scret.",
+'passwordremindertitle' => 'Novea scret timporaire po {{SITENAME}}',
+'passwordremindertext' => "Ene sakî (probåblumint vos-minme, avou l' adresse IP $1) a dmandé 
+on novea scret po {{SITENAME}} ($4).
+On scret timporare po l' uzeu «$2» a stî fwait, c' est «$3».
+Si c' est vos k' a fwait l' dimande, vos vs divoz elodjî eyet tchoezi on novea scret.
+Li scret timporaire ni srè pus valide après {{PLURAL:$5|on djoû|$5 djoûs}}.
+
+Si c' est ene ôte sakî k' a fwait l' dimande, ou si vos vs avoz rtrové l' vî scret eyet 
+nel pus vleur candjî, vos ploz djusse ignorer ci messaedje ci eyet continouwer avou l' vî scret.",
 'noemail' => "I n' a pont d' adresse emile di cnoxhowe po l' uzeu «$1».",
+'noemailcreate' => 'Vos dvoz dner ene adresse emile valide.',
 'passwordsent' => "On novea scret a stî emilé a l' adresse emile
 racsegneye po l' uzeu «$1».
 Relodjîz vs avou ç' noû scret on côp ki vos l' åroz rçuvou s' i vs plait.",
 'eauthentsent' => "Èn emile d' acertinaedje a stî evoyî a l' adresse emile tchoezeye.
 Divant d' poleur evoyî èn ôte emile a ci conte la, vos dvroz shure les instruccions di l' emile ki vos alez rçure, po-z acertiner ki l' conte est bén da vosse.",
 'mailerror' => "Åk n' a nén stî tot-z evoyant l' emile: $1",
-'acct_creation_throttle_hit' => "Mande escuzes, mins vos avoz ddja ahivé {{PLURAL:$1|1 conte|$1 contes}}. Vos n' endè ploz nén fé des ôtes.",
-'emailauthenticated' => 'Voste adresse emile a stî acertinêye li $1.',
+'acct_creation_throttle_hit' => "Ene sakî a ddja ahivé {{PLURAL:$1|1 conte|$1 contes}} dins les dierinnes 24 eures a pårti dek minme adresse IP, çou k' est l' limite acceptêye po ene sifwaite termene.
+Ça fwait ki l' ahivaedje di contes a p·årti di ciste adresse IP la a stî dismetou pol moumint.",
+'emailauthenticated' => 'Voste adresse emile a stî acertinêye li $2 a $3.',
 'emailnotauthenticated' => "Voste adresse emile n' a nén co stî acertinêye. Nol emile ni serè-st evoyî po les fonccions shuvantes.",
 'noemailprefs' => 'Dinez ene adresse emile po ces fonccions si mete en alaedje.',
 'emailconfirmlink' => 'Acertinaedje di voste adresse emile',
-'invalidemailaddress' => "L' adresse emile ni pout nén esse acceptêye la k' i shonnreut k' ele soeye dins ene cogne nén valide. Tapez ene adresse emile sicrîte comifåt oudobén vudîz l' tchamp, s' i vs plait.",
+'invalidemailaddress' => "L' adresse emile ni pout nén esse acceptêye la k' i shonnreut k' ele soeye dins ene cogne nén valide.
+Tapez ene adresse emile sicrîte comifåt oudobén vudîz l' tchamp, s' i vs plait.",
 'accountcreated' => 'Conte ahivé',
 'accountcreatedtext' => "Li conte d' uzeu «$1» a stî ahivé.",
 'loginlanguagelabel' => 'Lingaedje: $1',
 
 # Change password dialog
-'oldpassword' => 'Vî scret',
-'newpassword' => 'Noû scret',
-'retypenew' => "Ritapez l' noû scret",
+'resetpass' => "Candjî l' sicret",
+'resetpass_announce' => "Vos vs avoz elodjî avou on scret timporaire ki vos a stî emilé.
+Por vos fini l' elodjaedje, vos dvoz defini on novea scret:",
+'resetpass_header' => "Candjî l' sicret do conte",
+'oldpassword' => 'Vî scret:',
+'newpassword' => 'Noû scret:',
+'retypenew' => "Ritapez l' noû scret:",
+'resetpass_submit' => "Defini on scret et s' elodjî",
+'resetpass_success' => "Vosse sicret a stî candjî comifåt!
+Asteure l' elodjaedje...",
+'resetpass_forbidden' => "Les screts n' polèt nén esse candjîs",
+'resetpass-no-info' => 'Vos dvoz esse elodjî po pleur aveur accès a cisse pådje ci.',
+'resetpass-submit-loggedin' => "Candjî l' sicret",
+'resetpass-submit-cancel' => 'Rinoncî',
+'resetpass-wrong-oldpass' => "Li scret timporaire ou do moumint n' est nén valide.
+Motoit ki vos l' avoz ddja candjî ou ridmandé on novea scret timporaire.",
+'resetpass-temp-password' => 'Sicret timporaire:',
+
+# Special:PasswordReset
+'passwordreset' => "Rifé l' sicret",
+'passwordreset-text' => 'Completez cisse formulrece ci po rçure èn emile ki dene les detays do conte da vosse.',
+'passwordreset-legend' => "Rifé l' sicret",
+'passwordreset-disabled' => "Li rfijhaedje di screts a stî dismetou so ç' wiki ci.",
+'passwordreset-pretext' => '{{PLURAL:$1||Dinez onk des elemints di dnêyes shuvants}}',
+'passwordreset-username' => "No d' elodjaedje:",
+'passwordreset-domain' => 'Dominne:',
+'passwordreset-capture' => "Vey li messaedje di l' emile?",
+'passwordreset-capture-help' => "Si vos clitchîz cisse boesse ci, l' emile (eyet li scret timporaire) vos srè håyné e minme tins k' il est emilé.",
+'passwordreset-email' => 'Adresse emile:',
+'passwordreset-emailtitle' => 'Detays do contre so {{SITENAME}}',
 
 # Edit page toolbar
 'bold_sample' => 'Cråssès letes',
@@ -431,7 +501,7 @@ Divant d' poleur evoyî èn ôte emile a ci conte la, vos dvroz shure les instru
 'link_sample' => 'Tecse pol loyén',
 'link_tip' => 'Divintrin loyén',
 'extlink_sample' => 'http://www.example.com tecse pol hårdêye',
-'extlink_tip' => 'Difoûtrinne hårdêye (en rovyîz nén di mete «http://» pa dvant)',
+'extlink_tip' => 'Difoûtrinne hårdêye (èn rovyîz nén di mete «http://» pa dvant)',
 'headline_sample' => 'Tecse di tite',
 'headline_tip' => 'Tite di 2inme livea',
 'nowiki_sample' => "Tapez l' tecse nén wiki chal",
@@ -453,49 +523,77 @@ Divant d' poleur evoyî èn ôte emile a ci conte la, vos dvroz shure les instru
 'showpreview' => 'Vey divant',
 'showlivepreview' => 'Vey divant',
 'showdiff' => 'Vey les candjmints',
-'anoneditwarning' => "'''Asteme:''' Vos n' estoz nén elodjî. Voste adresse IP serè rashiowe dins l' istwere di cisse pådje ci.",
+'anoneditwarning' => "'''Asteme:''' Vos n' estoz nén elodjî.
+Voste adresse IP serè rashiowe dins l' istwere di cisse pådje ci.",
 'missingsummary' => "'''Asteme:''' Vos n' avoz nén dné on tecse di rascourti po vosse candjmint. Si vos rclitchîz sol boton «Schaper», li candjmint da vosse serè schapé sins nou tecse di rascourti po l' istwere del pådje.",
 'missingcommenttext' => "Tapez on comintaire chal pa dzo s' i vs plait.",
 'blockedtitle' => "L' uzeu est bloké",
-'blockedtext' => "Vosse no d' uzeu ou voste adresse IP a stî blokêye pa $1.
-Li råjhon dnêye est:<br />''$2''<p>Vos ploz contacter $1 oudonbén onk des
-[[{{MediaWiki:Grouppage-sysop}}|manaedjeus]] po discuter do blocaedje.
+'blockedtext' => "'''Vosse no d' uzeu ou voste adresse IP a stî blokêye.'''
+
+Li blocaedje a stî fwait pa $1.
+Li råjhon dnêye est ''$2''.
 
-Notez ki vos n' poloz nén eployî l' fonccion «emiler a l' uzeu» a moens ki vos åyîz ene adresse emile valide dins vos [[Special:Preferences|preferinces]].
+* Comince do blocaedje: $8
+* Fén do blocaedje: $6
+* Blocaedje di: $7
 
-Voste adresse IP est $3. S' i vs plait racsegnoz ciste adresse IP la dins les dmandes ki vos frîz.",
+Vos ploz contacter $1 oudonbén onk des
+[[{{MediaWiki:Grouppage-sysop}}|manaedjeus]] po discuter do blocaedje.
+Notez ki vos n' poloz nén eployî l' fonccion «emiler a l' uzeu» a moens ki vos åyîz ene adresse emile valide dins vos [[Special:Preferences|preferinces]] et ki cisse possibilité n' a nén stî blokêye.
+Voste adresse IP est $3 eyet l' ID di blocaedje est $5.
+S' i vs plait racsegnoz totes les racsegnes chal å dzeur dins les dmandes ki vos frîz.",
 'whitelistedittext' => 'I vs fåt $1 po pleur candjî les årtikes.',
 'confirmedittext' => "I vs fåt acertiner vost emile po pleur candjî les årtikes. Dinez èn emile eyet l' acertiner dins vos [[Special:Preferences|preferinces d' uzeu]].",
 'loginreqtitle' => 'I vs fåt esse elodjî',
 'loginreqlink' => 'elodjî',
 'loginreqpagetext' => 'Vos vs divoz $1 po vey des ôtès pådjes.',
 'accmailtitle' => 'Li scret a stî evoyî.',
-'accmailtext' => 'Li scret po «$1» a stî evoyî a $2.',
+'accmailtext' => "On scret costrût a l' astcheyance po [[User talk:$1|$1]] a stî evoyî a $2.
+
+Li scret po ci novea conte ci pout esse candjî sol pådje di ''[[Special:ChangePassword|candjmint di scret]]'' après l' elodjaedje.",
 'newarticle' => '(Novea)',
 'newarticletext' => "Vos avoz clitchî so on loyén viè ene pådje ki n' egzistêye nén co.
 Mins '''vos''' l' poloz askepyî! Po çoula, vos n' avoz k' a cmincî a taper vosse tecse dins l' boesse di tecse chal pa dzo (alez vey li [[{{MediaWiki:Helppage}}|pådje d' aidance]] po pus d' infôrmåcion).
 Si vos n' voloz nén scrire cisse pådje chal, clitchîz simplumint sol boton '''En erî''' di vosse betchteu waibe po rivni al pådje di dvant.",
-'anontalkpagetext' => "---- ''Çouchal, c' est li pådje di copene po èn uzeu anonime ki n' a nén (co) fwait on conte por lu s' elodjî, ou ki n' l' eploye nén. Ça fwait k' on doet eployî si adresse IP limerike po l' idintifyî. Come ene sifwaite adresse IP pout esse eployeye pa pus d' èn uzeu, i s' pout ki vos voeyoz chal des rmåkes et des messaedjes ki n' sont nén por vos. Loukîz s' i vs plait po [[Special:UserLogin|fé on novea conte ou s' elodjî]] po n' pus aveur d' ecramiaedje avou des ôtes uzeus anonimes.''",
-'noarticletext' => "I gn a pol moumint nou tecse e cisse pådje chal, vos ploz [[Special:Search/{{PAGENAME}}|cweri après l' tite di cisse pådje ci]] dins des ôtès pådjes, oudonbén [{{fullurl:{{FULLPAGENAME}}|action=edit}} ahiver l' pådje].",
-'clearyourcache' => "'''Note:''' après aveur schapé l' pådje, vos l' divoz rafrister, po pleur vey les candjmints dins vosse betchteu waibe: '''Mozilla / Firefox / Safari:''' tchôkîz so ''Shift'' to clitchant so ''Rafrister'', ou co fjhoz ''Ctrl-Shift-R'' (''Cmd-Shift-R'' so on Mac); '''IE:''' tchôkîz so ''Ctrl'' tot clitchant so ''Rafrister'', ou co fjhoz ''Ctrl-F5''; '''Konqueror:''' simplumint clitchîz so ''Rafrister'' ou l' tape ''F5''; les uzeus d' '''Opera''' dvront motoit netyî pår leu muchete, dins ''Usteyes→Preferinces''.",
-'usercssyoucanpreview' => "'''Racsegne:''' eployîz l' boton «Vey divant» po sayî vosse novea CSS divant del schaper.",
-'userjsyoucanpreview' => "'''Racsegne:''' eployîz l' boton «Vey divant» po sayî vosse novea JS divant del schaper.",
-'usercsspreview' => "'''Èn rovyîz nén ki c' est djusse on prévoeyaedje di vosse stîle CSS d' uzeu, i n' a nén co stî schapé!'''",
+'anontalkpagetext' => "---- ''Çouchal, c' est li pådje di copene po èn uzeu anonime ki n' a nén (co) fwait on conte por lu s' elodjî, ou ki n' l' eploye nén.
+Ça fwait k' on doet eployî si adresse IP limerike po l' idintifyî.
+Come ene sifwaite adresse IP pout esse eployeye pa pus d' èn uzeu, i s' pout ki vos voeyoz chal des rmarkes et des messaedjes ki n' sont nén por vos.
+Loukîz s' i vs plait po [[Special:UserLogin/signup|fé on novea conte]] ou [[Special:UserLogin|s' elodjî]] po n' pus aveur d' ecramiaedje avou des ôtes uzeus anonimes.''",
+'noarticletext' => 'I gn a pol moumint nou tecse e cisse pådje chal.
+Vos ploz [[Special:Search/{{PAGENAME}}|cweri après l\' tite di cisse pådje ci]] dins des ôtès pådjes,
+oudonbén <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cweri dins les djournås],
+ou co [{{fullurl:{{FULLPAGENAME}}|action=edit}} ahiver l\' pådje]</span>.',
+'noarticletext-nopermission' => 'I gn a pol moumint nou tecse e cisse pådje chal.
+Vos ploz [[Special:Search/{{PAGENAME}}|cweri après l\' tite di cisse pådje ci]] dins des ôtès pådjes,
+oudonbén <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cweri dins les djournås]</span>.',
+'clearyourcache' => "'''Note:''' après aveur schapé l' pådje, vos l' divoz rafrister, po pleur vey les candjmints dins vosse betchteu waibe.
+* '''Firefox / Safari:''' tchôkîz so ''Shift'' tot clitchant so ''Rafrister'', ou co fjhoz ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' so on Mac)
+* '''Google Chrome:''' tchôkîz so ''Ctrl-Shift-R'' (''⌘-Shift-R'' on a Mac)
+* '''Internet Explorer:''' tchôkîz so ''Ctrl'' tot clitchant so ''Rafrister'', ou co fjhoz ''Ctrl-F5''
+* '''Konqueror:''' clitchîz so ''Rafrister'' ou tchôkîz so ''F5''
+* '''Opera:''' vudîz l' muchete dins ''Usteyes → Preferinces''.",
+'usercssyoucanpreview' => "'''Racsegne:''' eployîz l' boton «{{int:showpreview}}» po sayî vosse novea CSS divant del schaper.",
+'userjsyoucanpreview' => "'''Racsegne:''' eployîz l' boton «{{int:showpreview}}» po sayî vosse novea JavaScript divant del schaper.",
+'usercsspreview' => "Èn rovyîz nén ki c' est djusse on prévoeyaedje di vosse stîle CSS d' uzeu.'''
+'''I n' a nén co stî schapé!'''",
 'userjspreview' => "'''Èn rovyîz nén ki c' est djusse on prévoeyaedje/saye di vosse JavaScript d' uzeu, i n' a nén co stî schapé!'''",
 'userinvalidcssjstitle' => "'''Asteme:''' I n' a pont d' pea lomêye «$1». Tuzez ki les pådjes .css eyet .js des uzeus eployèt des tite e ptitès letes, metans {{ns:user}}:Toto/vector.css et nén {{ns:user}}:Toto/Vector.css.",
 'updated' => '(Ramidré)',
-'previewnote' => "'''Èn rovyîz nén ki c' est djusse on prévoeyaedje, li pådje n' est nén co schapêye!'''",
+'previewnote' => "'''Èn rovyîz nén ki c' est djusse on prévoeyaedje.'''
+'''Les candmints n' ont nén co stî schapés!'''",
+'continue-editing' => 'Continouwer a candjî',
 'previewconflict' => 'Ci prévoeyaedje ci mostere kimint kel tecse del boesse di tecse do dzeu sereut håyné si vos decidez di clitchî so «schaper».',
 'session_fail_preview' => "'''Mande escuzes! Mins dji n' a nén polou traitî vosse candjmint paski les dnêyes del session ont stî pierdowes.
 Rissayîz s' i vs plait. Si çoula n' va todi nén, sayîz di vs dislodjî eyet di vs relodjî.'''",
 'session_fail_preview_html' => "'''Mande escuzes! Mins dji n' a nén polou traitî vosse candjmint paski les dnêyes del session ont stî pierdowes.'''
 
-''Come ci wiki chal a-st en alaedje li HTML brut, li prévoeyaedje est catchî, come proteccion siconte des atakes JavaScript.''
+''Come {{SITENAME}} a-st en alaedje li HTML brut, li prévoeyaedje est catchî, come proteccion siconte des atakes JavaScript.''
 
-'''Si c' est ene saye oniesse di candjî l' pådje, rissayîz s' i vs plait. Si çoula n' va todi nén, sayîz di vs dislodjî eyet di vs relodjî.'''",
+'''Si c' est ene saye oniesse di candjî l' pådje, rissayîz s' i vs plait.'''
+Si çoula n' va todi nén, sayîz di vs [[Special:UserLogout|dislodjî]] eyet di vs relodjî.",
 'editing' => 'Candjant $1',
 'editingsection' => 'Candjant $1 (seccion)',
-'editingcomment' => 'Candjant $1 (comintaire)',
+'editingcomment' => 'Candjant $1 (novele seccion)',
 'editconflict' => 'Ecramiaedje inte deus candjmints: $1',
 'explainconflict' => "Ene sakî a candjî l' pådje do tins ki vos estîz a scrire.
 Li boesse di tecse do dzeur mostere li tecse del pådje come il est
@@ -518,18 +616,28 @@ Vos nos acertinez eto ki vos avoz scrît l' tecse vos-minme, oudonbén l' avoz c
 Si vos n' voloz nén scrire des årtikes ki polèt esse candjîs pa des ôtes, adon nels evoyîz nén chal.<br />
 Vos nos acertinez eto ki vos avoz scrît l' tecse vos-minme, oudonbén l' avoz copyî d' on sourdant libe (voeyoz $1 po pus di racsegnes).
 '''N' EVOYÎZ NÉN DES TECSES DIZO ABONDROETS SINS PERMISSION!'''",
-'longpageerror' => "'''AROKE: Li tecse ki vos avoz evoyî fwait di pus d' $1 kilo-octets, çou k' est pus ki l' macsimom di $2 kilo-octets. C' est nén possible del schaper sol sierveu.'''",
+'longpageerror' => "'''AROKE: Li tecse ki vos avoz evoyî fwait di pus d' $1 kilo-octet{{PLURAL:$1||s}}, çou k' est pus ki l' macsimom di $2 kilo-octet{{PLURAL:$2||s}}.'''
+C' est nén possible del schaper sol sierveu.",
 'readonlywarning' => "'''ASTEME: On-z overe sol båze di dnêyes pol moumint, ey elle a stî metowe e mode seulmint-lére.
-Do côp, vos n' såroz schaper vos candjmints asteure; motoit vos dvrîz copyî et aclaper l' tecse dins on fitchî da vosse pol poleur rimete pus tård.'''",
-'protectedpagewarning' => "'''ASTEME: Cisse pådje chal a stî protedjeye siconte des candjmints, seulmint les uzeus avou èn accès di manaedjeu el polèt candjî.'''",
-'semiprotectedpagewarning' => "'''Note:''' cisse pådje ci a stî protedjeye po k' seulmint les uzeus edjîstrés el polexhe candjî.",
-'templatesused' => 'Modeles eployîs e cisse pådje ci:',
+Do côp, vos n' såroz schaper vos candjmints asteure.'''
+Motoit vos dvrîz copyî et aclaper l' tecse dins on fitchî da vosse pol poleur rimete pus tård.
+
+Li manaedjeu k' a-st eclawé l' båze di dnêyes a dné cist esplicaedje ci: $1",
+'protectedpagewarning' => "'''ASTEME: Cisse pådje chal a stî protedjeye, seulmint les uzeus avou èn accès di manaedjeu el polèt candjî.'''
+Li dierinne intrêye ezès djournås est håynêye chal pa dzo po referince:",
+'semiprotectedpagewarning' => "'''Note:''' cisse pådje ci a stî protedjeye po k' seulmint les uzeus edjîstrés el polexhe candjî.
+Li dierinne intrêye do djournå est håynêye chal pa dzo po referince:",
+'templatesused' => '{{PLURAL:$1|Modele eployî|Modeles eployîs}} e cisse pådje ci:',
+'templatesusedpreview' => "{{PLURAL:$1|Modele eployî|Modeles eployîs}} e ç' prévoeyaedje ci:",
+'templatesusedsection' => '{{PLURAL:$1|Modele eployî|Modeles eployîs}} e cisse seccion ci:',
 'template-protected' => '(protedjî)',
 'template-semiprotected' => '(dimey-protedjî)',
 'nocreatetitle' => 'Ahivaedje di pådjes limité',
-'nocreatetext' => "Cisse waibe ci a limité l' possibilité d' ahiver des novelès pådjes. Vos ploz rivni en erî eyet candjî ene pådje k' egzistêye dedja, oudonbén, [[Special:UserLogin|vos elodjî ou ahiver on conte d' uzeu]].",
+'nocreatetext' => "{{SITENAME}} a limité l' possibilité d' ahiver des novelès pådjes.
+Vos ploz rivni en erî eyet candjî ene pådje k' egzistêye dedja, oudonbén, [[Special:UserLogin|vos elodjî ou ahiver on conte d' uzeu]].",
 'nocreate-loggedin' => "Vos n' avoz nén l' droet d' ahiver des novelès pådjes.",
-'recreate-moveddeleted-warn' => "'''Asteme : vous estoz ki rahive ene pådje k' a stî dsfacêye davance.'''
+'permissionserrorstext-withaction' => "Vos n' avoz nén l' droet d' $2, cåze {{PLURAL:$1|del råjhon shuvante|des råjhons shuvantes}}:",
+'recreate-moveddeleted-warn' => "'''Asteme : vous estoz ki rahive ene pådje k' a stî disfacêye davance.'''
 
 Tuzez bén s' el fåt vormint rahiver, tot tapant èn ouy so l' istwere del pådje :",
 'edit-gone-missing' => "Li pàdje n' a sepou esse rapontieye.
@@ -545,30 +653,35 @@ Motoit k' elle a stî tapêye evoye.",
 'viewpagelogs' => 'Vey les djournås po cisse pådje ci',
 'nohistory' => "I n' a pont d' istwere des modêyes po cisse pådje chal.",
 'currentrev' => "Modêye d' asteure",
+'currentrev-asof' => 'Dierinne modêye å $1',
 'revisionasof' => 'Modêye do $1',
+'revision-info' => 'Modêye do $1 pa $2',
 'previousrevision' => '←Modêye di dvant',
 'nextrevision' => 'Modêye shuvante→',
 'currentrevisionlink' => "Modêye d' asteure",
 'cur' => 'ast.',
 'next' => 'shuv.',
-'last' => 'dif.',
+'last' => 'div.',
 'page_first' => 'prumî',
 'page_last' => 'dierin',
 'histlegend' => "Tchoezi les modêyes a comparer: clitchîz so les botons radio des deus modêyes
 ki vos vloz comparer et s' tchôkîz sol tape «enter» ou clitchîz sol
 boton do dzo.<br />
-Ledjinde: (ast.) = diferince avou l' modêye d' asteure,
-(dif.) = diferince avou l' modêye di dvant, M = pitit candjmint d' rén do tot.",
+Ledjinde: '''({{int:cur}})''' = diferince avou l' modêye d' asteure, '''({{int:last}})''' = diferince avou l' modêye di dvant, '''{{int:minoreditletter}}''' = pitit candjmint d' rén do tot.",
+'history-fieldset-title' => "Naivyî l' istwere des candjmints",
+'history-show-deleted' => 'Disfacés seulmint',
 'histfirst' => 'li pus vî',
 'histlast' => 'li dierin',
 'historysize' => '({{PLURAL:$1|1 octet|$1 octets}})',
 'historyempty' => '(vude)',
 
 # Revision feed
+'history-feed-title' => 'Istwere des modêyes',
+'history-feed-description' => 'Istwere des candjmints di cisse pådje ci sol wiki',
 'history-feed-item-nocomment' => '$1 li $2',
 
 # Revision deletion
-'rev-deleted-comment' => '(comintaire oisté)',
+'rev-deleted-comment' => '(rascourti di candjmint oisté)',
 'rev-deleted-user' => "(no d' elodjaedje oisté)",
 'rev-deleted-text-permission' => 'Cisse modêye ci del pådje a stî oistêye foû des årtchives publikes.
 I gn a motoit des racsegnes sol [{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} djournå des disfaçaedjes].',
@@ -587,12 +700,16 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'revdelete-hide-user' => "Catchî l' no d' uzeu/adresse IP do candjeu",
 'revdelete-hide-restricted' => 'Apliker ces restrictions ossu åzès manaedjeus',
 'revdelete-log' => 'Råjhon:',
-'revdelete-submit' => 'Apliker al modêye tchoezeye',
+'revdelete-submit' => 'Apliker {{PLURAL:$1|al modêye tchoezeye|åzès modêyes tchoezeyes}}',
 
 # History merging
+'mergehistory-success' => '$3 modêye{{PLURAL:$3||s}} di [[:$1]] {{PLURAL:$3|a stî metowe|ont stî metowes}} avou [[:$2]].',
+'mergehistory-fail' => "Nén possibe di mete eshonne les istweres. Verifyîz l' pådje et les parametes di date.",
+'mergehistory-no-source' => "Li pådje sourdant $1 n' egzistêye nén.",
 'mergehistory-reason' => 'Råjhon:',
 
 # Diffs
+'history-title' => 'Istwere des candjmints po «$1»',
 'lineno' => 'Roye $1:',
 'compareselectedversions' => 'Comparer les modêyes tchoezeyes',
 'editundo' => 'disfé',
@@ -607,15 +724,21 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'notitlematches' => 'Nol årtike avou on tite ki corespond',
 'textmatches' => 'Årtikes avou do tecse ki corespond',
 'notextmatches' => 'Nol årtike avou do tecse ki corespond',
-'prevn' => '$1 di dvant',
-'nextn' => '{{PLURAL:$1|$1}} shuvants',
+'prevn' => '{{PLURAL:$1|di dvant|$1 di dvant}}',
+'nextn' => '{{PLURAL:$1|shuvant|$1 shuvants}}',
+'prevn-title' => '$1 {{PLURAL:$1|rizultat|rizultats}} di dvant',
+'nextn-title' => '{{PLURAL:$1|rizultat shuvant|$1 rizultats shuvants}}',
 'viewprevnext' => 'Vey ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Gn a ddja ene pådje lomêye « [[:$1]] » so ç' wiki ci'''",
 'searchhelp-url' => 'Help:Aidance',
+'searchprofile-everything' => 'Tot',
+'search-result-size' => '$1 ($2 mot{{PLURAL:$2||s}})',
 'search-redirect' => '(ridjiblé di $1)',
-'search-interwiki-caption' => 'So les ôtes pordjets Wiki',
+'search-section' => '(seccion $1)',
+'search-interwiki-caption' => 'So les ôtes pordjets frés',
 'search-interwiki-default' => 'Gn a des sfwaitès sacwès so $1 :',
 'search-interwiki-more' => '(dipus)',
+'searchall' => 'totafwait',
 'showingresults' => "Chal pa dzo {{PLURAL:$1|'''1''' rizultat|'''$1''' rizultats}} a pårti do limero '''$2'''.",
 'showingresultsnum' => "Chal pa dzo {{PLURAL:$3|'''1''' rizultat|'''$3''' rizultats}} a pårti do limero '''$2'''.",
 'nonefound' => "'''Note''': des cweraedjes ki n' dinèt nou rzultat c' est sovint li cweraedje di ptits mots trop corants (come «les», «des») ki n' sont nén indecsés, oudonbén des cweraedjes di pus d' on mot (seulmint les pådjes avou tos les mots dmandés sront håynêyes dins l' rizultat do cweraedje).",
@@ -650,9 +773,11 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'prefs-watchlist-days' => "Nombe di djoûs a mostrer dins l' djivêye:",
 'prefs-watchlist-edits' => "Nombe di candjmints a mostrer dins l' djivêye:",
 'prefs-misc' => 'Totes sôres',
+'prefs-rendering' => 'Rivnance',
 'saveprefs' => 'Schaper les preferinces',
 'resetprefs' => 'Rimete les prémetowès valixhances',
-'prefs-editing' => 'Grandeu del boesse di tecse',
+'restoreprefs' => 'Rimete totes les prémetowès valixhances',
+'prefs-editing' => 'Boesse di tecse',
 'rows' => 'Royes',
 'columns' => 'Colones',
 'searchresultshead' => 'Håynaedje des rzultats di cweraedje',
@@ -660,78 +785,196 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'recentchangesdays' => 'Nombe di djoûs po les dierins candjmints:',
 'recentchangescount' => 'Nombe di tites dins les dierins candjmints',
 'savedprefs' => 'Vos preferinces ont stî schapêyes.',
-'timezonelegend' => "Coisse d' eureye",
-'localtime' => "Håyner l' eure locåle",
-'timezoneoffset' => "Diferince d' eures¹",
-'servertime' => "L' eure sol sierveu",
+'timezonelegend' => "Coisse d' eureye:",
+'localtime' => "L' eure locåle",
+'timezoneuseserverdefault' => "Epoyî l' prémetowe valixhance ($1)",
+'timezoneuseoffset' => "Ôte (dinez l' diferince d' eures)",
+'timezoneoffset' => "Diferince d' eures¹:",
+'servertime' => "L' eure sol sierveu:",
 'guesstimezone' => "Prinde d' après l' betchteu",
+'timezoneregion-africa' => 'Afrike',
+'timezoneregion-america' => 'Amerike',
+'timezoneregion-antarctica' => 'Antartike',
+'timezoneregion-arctic' => 'Arctike',
+'timezoneregion-asia' => 'Azeye',
+'timezoneregion-atlantic' => 'Oceyan Atlantike',
+'timezoneregion-australia' => 'Ostraleye',
+'timezoneregion-europe' => 'Urope',
+'timezoneregion-indian' => 'Oceyan Indyin',
+'timezoneregion-pacific' => 'Oceyan Pacifike',
 'allowemail' => "Permete di rçure des emiles d' ôtes uzeus",
-'defaultns' => 'Prémetous spåces di nos pol cweraedje:',
+'prefs-searchoptions' => 'Tchuzes di cweraedje',
+'prefs-namespaces' => 'Espåces di lomaedje',
+'defaultns' => 'Oudonbén dins les spåces di nos shuvants:',
 'default' => 'prémetou',
 'prefs-files' => 'Fitchîs',
-'youremail' => 'Vost emile*',
+'prefs-custom-css' => 'CSS a vosse môde',
+'prefs-custom-js' => 'JavaScript a vosse môde',
+'prefs-common-css-js' => 'CSS/JavaScript pårtaedjî po totes les peas:',
+'prefs-reset-intro' => "Vos ploz eployî ç' boton chal po rmete totes vos preferinces åzès prémetowès valixhances del waibe.
+Çoul n' pôrè nén esse disfwait.",
+'prefs-emailconfirm-label' => "Acertinaedje di l' emile:",
+'prefs-textboxsize' => 'Grandeu del boesse di tecse',
+'youremail' => 'Vost emile:',
 'username' => "No d' elodjaedje:",
 'uid' => "Limero d' l' uzeu:",
-'yourrealname' => 'Li vraiy no da vosse*',
+'prefs-memberingroups' => 'Mimbe {{PLURAL:$1|do groupe|des groupes}}:',
+'prefs-registration' => "Date d' edjîstraedje:",
+'yourrealname' => 'Li vraiy no da vosse:',
 'yourlanguage' => "Lingaedje po l' eterface",
-'yourvariant' => 'Variante do lingaedje',
-'yournick' => 'Vosse no metou (po les sinateures)',
-'badsig' => 'Sinateure brute nén valide; verifyîz les etiketes HTML.',
+'yourvariant' => 'Variante di lingaedje pol contnou:',
+'prefs-help-variant' => "Li variante ou ortografeye ki vos avoz ptchî po håyner li contnou des pådjes so ç' wiki ci.",
+'yournick' => 'Novele sinateure:',
+'prefs-help-signature' => "Les comintaires so les pådjes di copene divrént esse sinés avou «<nowiki>~~~~</nowiki>» (dj' ô bén, 4 wachletes), çou ki srè candjî otomaticmint a vosse sinateure eyet li date et l' eure.",
+'badsig' => 'Sinateure brute nén valide.
+Verifyîz les etiketes HTML.',
+'badsiglength' => "Vosse sinateure est pår trop longowe.
+Racourtixhoz l' a moens di $1 {{PLURAL:$1|caractere|caracteres}}.",
+'yourgender' => 'Seke:',
+'gender-unknown' => 'Nén dné',
+'gender-male' => 'Omrin',
+'gender-female' => 'Femrin',
+'prefs-help-gender' => "Seke (opcionel): eployî po-z acoirder l' djinre di sacwants messaedjes di l' eterface.
+Ciste infôrmacion serè publike po tertos.",
 'email' => 'Emile',
-'prefs-help-realname' => '* Li vraiy no da vosse (opcionel): si vos tchoezixhoz del diner i serè-st eployî po les contribouwaedjes da vosse.',
-'prefs-help-email' => "* Emile (opcionel): Permete di rçure des emiles ki ds ôtes uzeus vos polèt evoyî a pårti del pådje d' uzeu da vosse, sins ki voste adresse emile ni soeye håynêye.",
+'prefs-help-realname' => 'Li vraiy no da vosse (opcionel): si vos tchoezixhoz del diner i serè-st eployî po les contribouwaedjes da vosse.',
+'prefs-help-email' => "Emile (opcionel): permete di rçure des emiles ki ds ôtes uzeus vos polèt evoyî a pårti del pådje d' uzeu da vosse, sins ki voste adresse emile ni soeye håynêye.",
+'prefs-help-email-others' => "Vos ploz eto tchoezi k' les ôtes vos emilexhe a pårti d' on loyén sol pådje di copene da vosse. Voste adresse emile n' est nén veyowe cwand des ôtes uzeus vos scrijhèt.",
+'prefs-help-email-required' => 'I fåt dner ene adresse emile.',
+'prefs-info' => "Infôrmåcion d' båze",
+'prefs-i18n' => 'Eternåcionålijhaedje',
 'prefs-signature' => 'Sinateure',
 'prefs-dateformat' => 'Cogne del date',
+'prefs-timeoffset' => "Diferince d' eures",
+'prefs-advancedediting' => 'Sipepieuzès tchuzes',
+'prefs-advancedrc' => 'Sipepieuzès tchuzes',
+'prefs-advancedrendering' => 'Sipepieuzès tchuzes',
+'prefs-advancedsearchoptions' => 'Sipepieuzès tchuzes',
+'prefs-advancedwatchlist' => 'Sipepieuzès tchuzes',
+'prefs-displayrc' => 'Tchuzes di håynaedje',
+'prefs-displaysearchoptions' => 'Tchuzes di håynaedje',
+'prefs-displaywatchlist' => 'Tchuzes di håynaedje',
+'prefs-diffs' => 'Diferinces',
+
+# User preference: e-mail validation using jQuery
+'email-address-validity-valid' => "L' adresse emile a l' air d' esse valide",
+'email-address-validity-invalid' => 'Dinez ene adresse emile valide',
 
 # User rights
 'userrights' => 'Manaedjî les liveas des uzeus',
-'userrights-lookup-user' => "Manaedjî les groupes d' èn uzeu",
+'userrights-lookup-user' => "Manaedjî les groupes d' uzeus",
 'userrights-user-editname' => "Tapez on no d' uzeu:",
-'editusergroup' => "Candjî les groupes di l' uzeu",
-'editinguser' => "Candjant '''[[User:$1|$1]]''' $2",
-'userrights-editusergroup' => "Candjî groupes d' uzeus",
-'saveusergroups' => "Schaper des groupes d' uzeus",
-'userrights-groupsmember' => 'Mimbes di:',
+'editusergroup' => "Candjî les groupes d' uzeus",
+'editinguser' => "Candjant les droets d' l' {{GENDER:$1|uzeu|uzeuse}} '''[[User:$1|$1]]''' $2",
+'userrights-editusergroup' => "Candjî les groupes d' uzeus",
+'saveusergroups' => "Schaper les groupes d' uzeus",
+'userrights-groupsmember' => 'Mimbe di:',
+'userrights-groupsmember-auto' => 'Mimbe implicite di:',
+'userrights-groups-help' => "Vos ploz candjî les groupes ki {{GENDER:\$1|cist uzeu|ciste uzeuse}} apårtént:
+* Ene boesse clitcheye c' est k' {{GENDER:\$|il|elle}} est mimbe do groupe.
+* Ene boesse disclitcheye c' est k' {{GENDER:\$|i|ele}} n' end est nén mimbe.
+* Ene sitoele (*) mostere k' on n' pout nén rsaetchî l' groupe on côp k' il a stî radjouté, ou årvierdimint.",
 'userrights-reason' => 'Råjhon:',
+'userrights-no-interwiki' => "Vos n' avoz nén les permissions po candjî les droets des uzeus so ds ôtes wikis.",
+'userrights-nologin' => 'Vos vs divoz [[Special:UserLogin|elodjî]] avou on conte manaedjeu por vos pleur candjî les droets des uzeus.',
+'userrights-notallowed' => "Li conte da vosse n' pout nén radjouter ou rsaetchî des droets des uzeus.",
+'userrights-changeable-col' => 'Groupes ki vos ploz candjî',
+'userrights-unchangeable-col' => "Groupes ki vos n' poloz nén candjî",
 
 # Groups
 'group' => 'Groupe:',
+'group-user' => 'Uzeus',
+'group-autoconfirmed' => 'Uzeus edjîstrés',
 'group-bot' => 'Robots',
 'group-sysop' => 'Manaedjeus',
 'group-bureaucrat' => 'Mwaisse-manaedjeus',
+'group-suppress' => 'Supervizeus',
 'group-all' => '(tertos)',
 
-'group-bot-member' => 'robot',
-'group-sysop-member' => 'manaedjeu',
-'group-bureaucrat-member' => 'mwaisse-manaedjeu',
+'group-user-member' => '{{GENDER:$1|uzeu|uzeuse}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|uzeu edjîstré|uzeuse edjîstrêye}}',
+'group-bot-member' => '{{GENDER:$1|robot|robote}}',
+'group-sysop-member' => '{{GENDER:$1|manaedjeu|manaedjresse}}',
+'group-bureaucrat-member' => '{{GENDER:$1|mwaisse-manaedjeu|mwaisse-manaedjresse}}',
+'group-suppress-member' => '{{GENDER:$1|supervizeu|supervizeuse}}',
 
+'grouppage-user' => '{{ns:project}}:Uzeus',
+'grouppage-autoconfirmed' => '{{ns:project}}:Uzeus edjîstrés',
 'grouppage-bot' => '{{ns:project}}:Robots',
 'grouppage-sysop' => '{{ns:project}}:Manaedjeus',
 'grouppage-bureaucrat' => '{{ns:project}}:Mwaisse-manaedjeus',
+'grouppage-suppress' => '{{ns:project}}:Supervizeus',
 
 # Rights
 'right-read' => 'Lére les pådjes',
+'right-edit' => 'Candjî les pådjes',
+'right-createpage' => "Ahiver des pådjes (ki n' sont nén des pådjes di copene)",
+'right-createtalk' => 'Ahiver des pådjes di copinaedje',
+'right-createaccount' => "Ahiver des noveas contes d' uzeu",
+'right-minoredit' => 'Marker les candjmints come mineurs',
+'right-move' => 'Displaecî des pådjes',
+'right-move-subpages' => 'Displaecî des pådjes avou leus dzo-pådjes',
+'right-move-rootuserpages' => 'Displaecî les pådjes raecene des uzeus',
+'right-movefile' => 'Displaecî des fitchîs',
+'right-upload' => 'Eberweter des fitchîs',
+'right-reupload' => "Sipotchî des fitchîs k' egzitèt ddja",
+'right-reupload-own' => 'Sipotchî les itchîs eberwetés pa vos-minme',
+'right-reupload-shared' => "Sipotchî locålmint des fitchî ki s' trovèt sol depot pårtaedjî",
+'right-upload_by_url' => "Eberweter des fitchîs a pårti d' hårdêyes",
+'right-purge' => "Vudî l' muchete des pådjes sins acertinaedje",
+'right-autoconfirmed' => 'Candjî les pådjes dimey-protedjeyes',
+'right-bot' => 'Esse traitî come on programe otomatike',
+'right-nominornewtalk' => "Èn nén dire k' i gn a des noveas messaedjes cwand les candjmints del pådje di copene d' èn uzeu sont mineurs",
+'right-writeapi' => "Eployî l' API di scrijhaedje sol wiki",
+'right-delete' => 'Disfacer des pådjes',
+'right-bigdelete' => 'Disfacer des pådjes avou ene longowe istwere',
+'right-deleterevision' => "Disfacer et rapexhî des modêyes d' ene pådje",
+'right-suppressrevision' => 'Verifyî et rapexhî les modêyes catcheyes åzès manaedjeus',
+'right-suppressionlog' => 'Vey les djournås privés',
+'right-block' => "Espaitchî d' ôtes uzeus di scrire",
+'right-blockemail' => "Espaitchî èn uzeu d' evoyî des emiles",
+'right-hideuser' => "Bloker on no d' uzeu, tot catchant s' no ås ôtes",
+'right-ipblock-exempt' => "Passer houte des blocaedjes pa adresse IP, pa fortchete d' adresses ou des blocaedjes otomatikes",
+'right-proxyunbannable' => 'Passer houte des blocaedjes otomatikes des procsis',
+'right-unblockself' => 'Si disbloker lu-minme',
+'right-protect' => "Candjî les liveas d' protedjaedje eyet candjî les pådjes protedjeyes",
 
 # User rights log
 'rightslog' => 'Djournå des droets des uzeus',
 'rightslogtext' => "Çouchal, c' est on djournå des candjmints des droets des uzeus.",
-'rightslogentry' => "l' uzeu «$1» a stî candjî do groupe «$2» viè «$3»",
+'rightslogentry' => "a candjî l' uzeu «$1» do groupe «$2» viè «$3»",
+'rightslogentry-autopromote' => 'a stî otomaticmint candjî di «$2» a «$3»',
 'rightsnone' => '(nouk)',
 
 # Associated actions - in the sentence "You do not have permission to X"
+'action-read' => 'lére cisse pådje ci',
+'action-edit' => "candjî l' pådje",
 'action-createpage' => 'ahiver des pådjes',
 'action-createtalk' => 'ahiver des pådjes di copinaedje',
 'action-createaccount' => "ahiver ci conte d' uzeu ci",
-'action-delete' => 'Disfacer cisse pådje ci',
+'action-minoredit' => "marker ç' candjmint la come mineur",
+'action-move' => 'displaecî cisse pådje ci',
+'action-move-subpages' => "displaecî l' pådje et ses dzo-pådjes",
+'action-move-rootuserpages' => "displaecî l' pådje raecene d' èn uzeu",
+'action-movefile' => "displaecî ç' fitchî ci",
+'action-upload' => "eberweter ç' fitchî ci",
+'action-reupload' => 'sipotchî ci fitchî ci',
+'action-reupload-shared' => "sipotchî l' pårtaedjî fitchî avou ci-chal",
+'action-upload_by_url' => "eberweter l' fitchî a pårti d' ene hårdêye",
+'action-writeapi' => "eployî l' API di scrijhaedje",
+'action-delete' => 'disfacer cisse pådje ci',
+'action-deleterevision' => 'disfacer cisse modêye ci',
 'action-browsearchive' => 'Loukî après les disfacêyès pådjes',
-'action-block' => 'Espaitchî cist(e) uzeu(se) ci di scrire',
+'action-suppressionlog' => 'vey ci djournå privé ci',
+'action-block' => 'espaitchî cist(e) uzeu(se) ci di scrire',
+'action-protect' => "candjî les liveas d' protedjaedje del pådje",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|candjmint|candjmints}}',
 'recentchanges' => 'Dierins candjmints',
-'recentchangestext' => "Shuvoz chal les dierins candjmints k' i gn a yeu dsu {{SITENAME}}.",
+'recentchanges-summary' => "Shuvoz chal les dierins candjmints k' i gn a yeu dsu {{SITENAME}}.",
 'rcnote' => 'Chal pa dzo les <strong>$1</strong> dierins candjmints des dierins <strong>$2</strong> djoûs, å $3.',
-'rcnotefrom' => "Chal pa dzo les candjmints dispoy li <b>$2</b> (disk' a <b>$1</b> di mostrés).",
+'rcnotefrom' => "Chal pa dzo les candjmints dispoy li '''$2''' (disk' a '''$1''' di mostrés).",
 'rclistfrom' => "Mostrer les candjmints k' i gn a yeu a pårti do $1",
 'rcshowhideminor' => '$1 candjmints mineurs',
 'rcshowhidebots' => '$1 robots',
@@ -743,7 +986,8 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'diff' => 'dif.',
 'hist' => 'ist.',
 'hide' => 'Muchyî',
-'show' => 'håyner',
+'show' => 'Håyner',
+'minoreditletter' => 'm',
 'number_of_watching_users_pageview' => '[shuvou pa $1 {{PLURAL:$1|uzeu|uzeus}}]',
 'rc_categories' => 'Limiter åzès categoreyes (separer avou des «|»)',
 'rc_categories_any' => 'Totes',
@@ -804,7 +1048,7 @@ ou co po les sons
 
 'upload-file-error' => 'Divintrinne aroke',
 
-'license' => "Licince di l' imådje",
+'license' => 'Licince:',
 'nolicense' => 'Nole licince tchoezeye',
 'upload_source_file' => ' (on fitchî sol copiutrece da vosse)',
 
@@ -829,8 +1073,8 @@ ou co po les sons
 'filehist-dimensions' => 'Grandeur',
 'filehist-filesize' => 'Grandeur do fitchî',
 'filehist-comment' => 'Comintaire',
-'imagelinks' => 'Loyéns viè ciste imådje cial',
-'linkstoimage' => '{{PLURAL:$1|Li pådje shuvante|Les pådjes shuvantes}} eployèt ciste imådje chal:',
+'imagelinks' => 'Eployaedjes do fitchî',
+'linkstoimage' => '{{PLURAL:$1|Li pådje shuvante eploye|Les $1 pådjes shuvantes eployèt}} ciste imådje chal:',
 'nolinkstoimage' => "I n' a nole pådje k' eploye ciste imådje chal.",
 'sharedupload' => "Ci fitchî ci est so on ridant pårtaedjî ey i s' pout k' i soeye eployî pa ds ôtes pordjets.",
 'sharedupload-desc-there' => 'Ci fitchî ci provént di $1; si pout i esse reployî dins des ôtes pordjets "Wiki". Loukîz [$2 si pådje di discrijhaedje] po-z esse mî racsegnî.',
@@ -892,11 +1136,13 @@ ou co po les sons
 'nmembers' => '$1 {{PLURAL:$1|mimbe|mimbes}}',
 'nrevisions' => '$1 {{PLURAL:$1|modêye|modêyes}}',
 'nviews' => 'léjhowe $1 {{PLURAL:$1|côp|côps}}',
+'nimagelinks' => 'Eployî so $1 pådje{{PLURAL:$1||s}}',
+'ntransclusions' => 'eployî so $1 pådje{{PLURAL:$1||s}}',
 'specialpage-empty' => 'Cisse pådje cial est vude.',
 'lonelypages' => 'Pådjes ôrfulinnes',
 'uncategorizedpages' => 'Pådjes sins nole categoreye',
 'uncategorizedcategories' => 'Categoreyes nén categorijheyes',
-'uncategorizedimages' => 'Imådjes nén categorijheyes',
+'uncategorizedimages' => 'Fitchîs nén categorijhîs',
 'uncategorizedtemplates' => 'Modele nén categorijhî',
 'unusedcategories' => 'Categoreyes nén eployeyes',
 'unusedimages' => 'Imådjes nén eployeyes',
@@ -915,25 +1161,29 @@ ou co po les sons
 'deadendpages' => 'Pådjes sins nou loyén wiki',
 'protectedpages' => 'Pådjes protedjeyes',
 'listusers' => 'Djivêye des uzeus',
+'usercreated' => '{{GENDER:$3|Edjîstré|Edjîstrêye}} li $1 a $2',
 'newpages' => 'Novelès pådjes',
+'newpages-username' => "No d' elodjaedje:",
 'ancientpages' => 'Viyès pådjes',
 'move' => 'Displaecî',
 'movethispage' => 'Displaecî cisse pådje',
 'unusedimagestext' => "Notez tot l' minme ki d' ôtès waibes polèt aveur des loyéns viè ces imådjes la gråcès a ene direke hårdêye. Do côp, ces imådjes aparexhèt chal, mågré k' ele soeyexhe eployeyes.",
 'unusedcategoriestext' => "Les pådjes di categoreye shuvantes egzistént, mins i n' a nol årtike ni categoreye å dvins.",
-'pager-newer-n' => '{{PLURAL:$1|pus novea 1|pus noveas $1}}',
-'pager-older-n' => '{{PLURAL:$1|pus vî 1|pus vîs $1}}',
+'pager-newer-n' => '{{PLURAL:$1|$1 pus novea|$1 pus noveas}}',
+'pager-older-n' => '{{PLURAL:$1|$1 pus vî|$1 pus vîs}}',
 
 # Book sources
 'booksources' => 'Sourdants po les lives',
 
 # Special:Log
-'specialloguserlabel' => 'Uzeu:',
-'speciallogtitlelabel' => 'Tite:',
+'specialloguserlabel' => 'Fwait pa:',
+'speciallogtitlelabel' => 'Såme (tite ou uzeu):',
 'log' => 'Djournås',
-'alllogstext' => "Håynaedje etercroejhlé des djournås d' eberwetaedje, disfaçaedje, protedjaedje, blocaedje eyet manaedjeus.
-Vos ploz limiter l' håynaedje tot tchoezixhant ene sôre di djournå, on no d' uzeu, ou l' tite d' ene pådje.",
+'all-logs-page' => 'Tos les djournås publiks',
+'alllogstext' => "Håynaedje etercroejhlé di tos les djournås disponibes so {{SITENAME}}.<br />
+Vos ploz defini l' håynaedje tot tchoezixhant ene sôre di djournå, on no d' uzeu, ou l' tite d' ene pådje (po ces deus dierins l' sitinme fwait l' diferince inte les grandes et les ptitès letes).",
 'logempty' => "Rén n' corespond dins l' djournå.",
+'log-title-wildcard' => "Cweri emey les tites ki cmincèt avou ç' tecse la",
 
 # Special:AllPages
 'allpages' => 'Totes les pådjes',
@@ -951,9 +1201,10 @@ Vos ploz limiter l' håynaedje tot tchoezixhant ene sôre di djournå, on no d'
 
 # Special:Categories
 'categories' => 'Categoreyes',
-'categoriespagetext' => 'I gn a les categoreyes shuvantes sol wiki.
-[[Special:UnusedCategories|Unused categories]] are not shown here.
-Also see [[Special:WantedCategories|wanted categories]].',
+'categoriespagetext' => '{{PLURAL:$1|Li categoreye shuvante est eployeye|Les categoreyes shuvantes sont-st eployeyes}} pa des pådjes ou des fitchîs.
+[[Special:UnusedCategories|Les categoreyes nén eployeyes]] èn sont nén håynêyes chal.
+Loukîz eto [[Special:WantedCategories|les categoreyes dimandêyes]].',
+'categoriesfrom' => 'Håyner les categoreyes a pårti di:',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Djournå des noveas uzeus',
@@ -1011,7 +1262,7 @@ Si vos vloz bodjî l' pådje foû di vosse djivêye des shuvous, clitchîz so «
 'watchlistcontains' => 'I gn a {{PLURAL:$1|$1 pådje|$1 pådjes}} e vosse djivêye des pådjes a shuve.',
 'iteminvalidname' => "Åk n' a nén stî avou «$1», li no n' est nén valide...",
 'wlnote' => 'Chal pa dzo les $1 dierins candjmints des <b>$2</b> dierinnès eures.',
-'wlshowlast' => 'Mostrer les dierin(nè)s $1 eures, $2 djoûs $3',
+'wlshowlast' => 'Mostrer les dierin(nè)s $1 eures, $2 djoûs ou $3',
 
 'enotif_mailer' => 'Notifiaedje pa emile di {{SITENAME}}',
 'enotif_reset' => 'Mårker totes les pådjes come vizitêyes',
@@ -1088,7 +1339,7 @@ Li dierin candjmint a stî fwait pa [[User:$3|$3]] ([[User talk:$3|Copene]]).",
 'protect-default' => '(prémetou)',
 'protect-level-autoconfirmed' => 'Bloker les uzeus nén eredjîstrés',
 'protect-level-sysop' => 'Seulmint les manaedjeus',
-'protect-expiry-options' => '2 eures:2 hours,1 djoû:1 day,1 samwinne:1 week,2 samwinnes:2 weeks,1 moes:1 month,3 moes:3 months,6 moes:6 months,1 anêye:1 year,po todi:infinite',
+'protect-expiry-options' => '1 eure:1 hour,1 djoû:1 day,1 samwinne:1 week,2 samwinnes:2 weeks,1 moes:1 month,3 moes:3 months,6 moes:6 months,1 anêye:1 year,po todi:infinite',
 'pagesize' => '(octets)',
 
 # Restrictions (nouns)
@@ -1138,7 +1389,9 @@ Loukîz l' [[Special:Log/delete|djournå des disfaçaedjes]] po ene djivêye des
 'contribsub2' => "Po l' uzeu $1 ($2)",
 'nocontribs' => "Nou candjmint di trové ki corespondreut a ç' critere la.",
 'month' => "dispu l' moes (et pus timpe)",
+'year' => "Dispu l' anêye (et pus timpe):",
 
+'sp-contributions-newbies' => 'Mostrer seulmint les contribouwaedjes des noveas contes',
 'sp-contributions-talk' => 'Copiner',
 'sp-contributions-userrights' => 'Manaedjî les liveas des uzeus',
 'sp-contributions-submit' => 'Cweri',
@@ -1149,9 +1402,11 @@ Loukîz l' [[Special:Log/delete|djournå des disfaçaedjes]] po ene djivêye des
 'linkshere' => 'Les pådjes ki shuvèt ont des loyéns viè cisse ci:',
 'nolinkshere' => 'Nole pådje avou des loyéns viè cisse ci.',
 'isredirect' => 'pådje di redjiblaedje',
+'whatlinkshere-prev' => '{{PLURAL:$1|di dvant|$1 di dvant}}',
+'whatlinkshere-next' => '{{PLURAL:$1|shuvant|$1 shuvants}}',
 'whatlinkshere-links' => '← loyaedjes',
-'whatlinkshere-hideredirs' => '$1 ridjiblaedjes',
-'whatlinkshere-hidelinks' => '$1 loyaedjes',
+'whatlinkshere-hideredirs' => '$1 les rdjiblaedjes',
+'whatlinkshere-hidelinks' => '$1 les loyaedjes',
 'whatlinkshere-hideimages' => "$1 fitchîs k' eploynut cist imådje ci",
 'whatlinkshere-filters' => 'Passettes',
 
@@ -1236,7 +1491,7 @@ Tchoezixhoz è èn ôte s' i vs plait.",
 'talkexists' => "'''Li pådje leye minme a stî displaeceye comifåt, mins nén li pådje di copene, ca i gn aveut ddja ene pådje di copene k' egzistéve al novele plaece. I vs fårè copyî l' tecse del pådje di copene al mwin.'''",
 'movedto' => 'displaecî viè',
 'movetalk' => 'Displaecî li pådje di copene avou, si ça astchait.',
-'movelogpage' => 'Djournå des displaçaedjes',
+'movelogpage' => 'Djournå des displaeçaedjes',
 'movelogpagetext' => "Chal pa dzo c' est ene djivêye des pådjes k' on stî displaceyes.",
 'movereason' => 'Råjhon:',
 'revertmove' => 'disfé',
@@ -1295,6 +1550,14 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'importnotext' => "Vude ou pont d' tecse",
 'importsuccess' => 'Li ristitchaedje a stî comifåt!',
 
+# Import log
+'importlogpage' => 'Djournå des ristitchaedjes',
+'importlogpagetext' => "Ristitchaedjes (import) administratifs di pådjes avou leus istorikes di candjmints, a pårti d' ôtes wikis.",
+'import-logentry-upload' => 'a ristitchî [[$1]] avou èn eberwetaedje di fitchî',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|modêye|modêyes}}',
+'import-logentry-interwiki' => "a ristitchî $1 foû d' èn ôte wiki",
+'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|modêye|modêyes}} foû di $2',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => "Pådje d' uzeu da minne",
 'tooltip-pt-anonuserpage' => "Li pådje d' uzeu po l' adresse IP ki vos eployîz pol moumint",
@@ -1308,8 +1571,9 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'tooltip-pt-logout' => 'Vos dislodjî',
 'tooltip-ca-talk' => 'Copene åd fwait do contnou del pådje',
 'tooltip-ca-edit' => "Vos ploz candjî cisse pådje ci. S' i vs plait, eployîz l' boton «Vey divant» po vs acertiner k' tot est comifåt dvant d' schaper vos candjmints.",
-'tooltip-ca-addsection' => 'Radjouter on comintaire a cisse copene ci.',
-'tooltip-ca-viewsource' => "Cisse pådje ci est protedjeye. Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
+'tooltip-ca-addsection' => 'Radjouter ene novele seccion',
+'tooltip-ca-viewsource' => "Cisse pådje ci est protedjeye.
+Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 'tooltip-ca-history' => 'Viyès modêyes del pådje.',
 'tooltip-ca-protect' => 'Protedjî cisse pådje ci',
 'tooltip-ca-delete' => 'Disfacer ci pådje ci',
@@ -1318,8 +1582,10 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'tooltip-ca-watch' => 'Radjouter cisse pådje ci al djivêye di vos årtikes shuvous',
 'tooltip-ca-unwatch' => 'Bodjî cisse pådje ci di vosse djivêye des årtikes shuvous',
 'tooltip-search' => 'Cweri so ci wiki chal',
+'tooltip-search-fulltext' => "Cweri les pådjes avou ç' tecse ci",
 'tooltip-p-logo' => 'Mwaisse pådje',
 'tooltip-n-mainpage' => 'Vizitez li Mwaisse pådje',
+'tooltip-n-mainpage-description' => 'Vizitez li Mwaisse pådje',
 'tooltip-n-portal' => "Åd fwait do pordjet, çou k' vos ploz fé, wice trover des sacwès",
 'tooltip-n-currentevents' => "Des infôrmåcions so des evenmints d' actouwålité",
 'tooltip-n-recentchanges' => "Li djivêye des dierins candjmints k' i gn a-st avou sol wiki.",
@@ -1333,10 +1599,11 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'tooltip-t-emailuser' => 'Evoyî èn emile a cist uzeu ci',
 'tooltip-t-upload' => 'Eberweter sol sierveu des imådjes ou fitchîs media',
 'tooltip-t-specialpages' => 'Djivêye di totes les pådjes sipeciåles',
+'tooltip-t-print' => 'Modêye sicrirece-amiståve del pådje',
 'tooltip-ca-nstab-main' => 'Vey li pådje di contnou',
 'tooltip-ca-nstab-user' => "Vey li pådje di l' uzeu",
 'tooltip-ca-nstab-media' => 'Vey li pådje di media',
-'tooltip-ca-nstab-special' => "Çouchal, c' est ene pådje sipeciåle, vos n' poloz nén candjî l' pådje leyminme.",
+'tooltip-ca-nstab-special' => "Çouchal, c' est ene pådje sipeciåle, vos n' poloz nén candjî l' pådje leye-minme.",
 'tooltip-ca-nstab-project' => 'Vey li pådje di pordjet',
 'tooltip-ca-nstab-image' => "Vey li pådje d' imådje",
 'tooltip-ca-nstab-mediawiki' => 'Vey li messaedje ratournåve do sistinme',
@@ -1368,19 +1635,40 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'creditspage' => 'Pådje di credits',
 'nocredits' => "I n' a pont d' infôrmåcion di credits po cisse pådje ci.",
 
+# Info page
+'pageinfo-header-views' => 'Vuwes',
+'pageinfo-subjectpage' => 'Pådje',
+'pageinfo-talkpage' => 'Pådje di copene',
+'pageinfo-watchers' => 'Nombe di shuveus',
+'pageinfo-edits' => 'Nombe di candjmints',
+'pageinfo-authors' => "Nombe d' oteurs diferins",
+'pageinfo-views' => 'Nombe di lijhaedjes',
+
+# Patrolling
+'markaspatrolleddiff' => 'Marké come patrouyî',
+'markaspatrolledtext' => 'Marker cisse pådje ci come dedja patrouyeye',
+
+# Patrol log
+'patrol-log-page' => 'Djournå des patrouyaedjes',
+'patrol-log-header' => "Çouchal c' est on djournå des modêyes k' ont stî patrouyeyes.",
+
 # Image deletion
 'deletedrevision' => 'Viye modêye $1 disfacêye',
+'filedelete-missing' => "Li fitchî «$1» n' pout nén esse disfacé, la k' i n' egzistêye nén.",
+'filedelete-old-unregistered' => "Li modêye do fitchî dnêye «$1» ni s' trove nén el båze di dnêyes.",
+'filedelete-current-unregistered' => "Li fitchî dné «$1» ni s' trove nén el båze di dnêyes.",
 
 # Browsing diffs
 'previousdiff' => '← Diferinces des candjmints di dvant',
 'nextdiff' => 'Diferinces des candjmints shuvants →',
 
 # Media information
-'mediawarning' => "'''Asteme''': Ci fitchî chal pôreut esse evirussé, si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
-'imagemaxsize' => "Limite pol håynaedje ezès pådjes d' imådje:",
+'mediawarning' => "'''Asteme''': Ci fitchî chal pôreut esse evirussé.
+Si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
+'imagemaxsize' => "Limite pol grandeu des imådjes:<br />''(ezès pådjes d'i discrijhaedje di fitchîs)''",
 'thumbsize' => 'Grandeu po les imådjetes (thumb):',
 'file-info-size' => '$1 × $2 picsels, groxheur do fitchî: $3, del sôre "MIME": $4',
-'show-big-image' => 'Pus grande imådje',
+'show-big-image' => "Imådje a si grandeur d' oridjinne",
 
 # Special:NewFiles
 'newimages' => 'Galreye des nouvès imådjes',
@@ -1391,6 +1679,13 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'bydate' => 'pazès dates',
 'sp-newimages-showfrom' => 'Mostrer les nouvès imådjes a pårti do $2, $1',
 
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '$1 segonde{{PLURAL:$1||s}}',
+'minutes' => '$1 munute{{PLURAL:$1||s}}',
+'hours' => '$1 eures{{PLURAL:$1||s}}',
+'days' => '$1 djoû{{PLURAL:$1||s}}',
+'ago' => 'i gn a $1',
+
 # Metadata
 'metadata' => 'Meta-dnêyes',
 'metadata-help' => "Ci fitchî chal a des infôrmåcions di rawete, motoit bén radjoutêyes pa l' aparey foto limerike ou l' sicanrece eployeye po fé l' imådje. Si l' imådje a stî candjeye dispoy adon, i s' pout ki sacwants detays ni corespondexhe pus totafwait.",
@@ -1454,6 +1749,8 @@ est raptiti. Les ôtes seront catchîs.
 'exif-gpsareainformation' => 'No del redjon GPS',
 'exif-gpsdatestamp' => 'Date do GPS',
 'exif-gpsdifferential' => 'Coridjaedje diferenciel do GPS',
+'exif-iimcategory' => 'Categoreye',
+'exif-iimsupplementalcategory' => 'Categoreyes di rawete',
 
 'exif-orientation-1' => 'Normå',
 'exif-orientation-3' => 'Tourné di 180°',
@@ -1521,7 +1818,7 @@ est raptiti. Les ôtes seront catchîs.
 
 # External editor support
 'edit-externally' => "Candjî ç' fitchî ci avou on dfoûtrin programe",
-'edit-externally-help' => "Loukîz les [//www.mediawiki.org/wiki/Manual:External_editors instruccions d' apontiaedje] po pus di racsegnes.",
+'edit-externally-help' => "(Loukîz les [//www.mediawiki.org/wiki/Manual:External_editors instruccions d' apontiaedje] po pus di racsegnes)",
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'totafwait',
@@ -1538,7 +1835,10 @@ tcherdjîz l' hårdêye dins l' betchteu waibe da vosse, eyet
 acertinez ki l' adresse emile est djusse tot dnant l' côde.",
 'confirmemail_send' => "Emiler on côde d' acertinaedje",
 'confirmemail_sent' => "L' emile d' acertinaedje a stî evoyî.",
-'confirmemail_sendfailed' => "Dji n' a savou evoyî l' emile d' acertinaedje. Verifyîz ki l' adresse est bén djusse.",
+'confirmemail_sendfailed' => "{{SITENAME}} n' a nén savou vs evoyî l' emile d' acertinaedje.
+Verifyîz ki l' adresse est bén djusse.
+
+Li programe d' emilaedje a rtourné: $1",
 'confirmemail_invalid' => "Côde d' acertinaedje nén valide. Motoit k' il esteut trop vî.",
 'confirmemail_needlogin' => 'I vs fåt $1 po pleur acertiner voste adresse emile.',
 'confirmemail_success' => 'Voste adresse emile a stî acertinêye. Vos vs poloz asteure elodjî eyet profiter do wiki.',
@@ -1554,15 +1854,18 @@ alez drovî avou vosse betchteu waibe li hårdêye ki shût:
 
 $3
 
-Si c' est *nén* vos k' a-st ahivé l' conte, adon èn shuvoz
-nén l' hårdêye. Ci côde d' acertinaedje ci va-st espirer
-po l' $4.",
+Si c' est *nén* vos k' a-st ahivé l' conte, adon shuvoz
+l' hårdêye shuvante po fé rnoncî l' acertinaedje d' emile:
+
+$5
+
+Ci côde d' acertinaedje ci va-st espirer po l' $4.",
 
 # Scary transclusion
 'scarytranscludetoolong' => '[Li hårdêye est pår trop longue]',
 
 # Delete conflict
-'deletedwhileediting' => 'Asteme: Cisse pådje ci a stî disfacêye sol tins ki vos scrijhîz!',
+'deletedwhileediting' => "'''Asteme''': Cisse pådje ci a stî disfacêye sol tins ki vos scrijhîz!",
 'confirmrecreate' => "L' uzeu [[User:$1|$1]] ([[User talk:$1|copene]]) a disfacé cisse pådje ci après ki vos avoz cmincî a scrire, li råjhon k' il a dné c' est:
 : ''$2''.
 Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
@@ -1577,6 +1880,8 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'imgmultipagenext' => 'pådje shuvante →',
 
 # Table pager
+'ascending_abbrev' => 'crexh.',
+'descending_abbrev' => 'discr.',
 'table_pager_next' => 'Pådje shuvante',
 'table_pager_prev' => 'Pådje di dvant',
 'table_pager_first' => 'Prumire pådje',
@@ -1585,7 +1890,7 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 # Auto-summaries
 'autosumm-replace' => 'Li contnou a stî replaecé pa « $1 »',
 'autoredircomment' => 'Redjiblaedje viè [[$1]]',
-'autosumm-new' => 'Novele pådje: $1',
+'autosumm-new' => 'Pådje ahivêye avou «$1»',
 
 # Size units
 'size-bytes' => '$1 o',
@@ -1593,11 +1898,23 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'size-megabytes' => '$1 Mo',
 'size-gigabytes' => '$1 Go',
 
+# Live preview
+'livepreview-loading' => 'Tcherdjant...',
+
 # Watchlist editor
 'watchlistedit-raw-titles' => 'Tites:',
 
 # Special:Version
 'version' => 'Modêye des programes',
+'version-skins' => 'Peas',
+'version-other' => 'Ôtes',
+'version-software-version' => 'Modêye',
+
+# Special:FilePath
+'filepath-page' => 'Fitchî:',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch-submit' => 'Cweri',
 
 # Special:SpecialPages
 'specialpages' => 'Pådjes sipeciåles',
@@ -1609,6 +1926,19 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'specialpages-group-highuse' => 'Eployaedje timpesse des pådjes',
 'specialpages-group-redirects' => 'Ridjiblaedjes di pådjes sipeciåles',
 
+# Special:Tags
+'tags-edit' => 'candjî',
+'tags-hitcount' => '$1 candjmint{{PLURAL:$1||s}}',
+
+# Special:ComparePages
+'comparepages' => 'Comparer des pådjes',
+'compare-selector' => 'Comparer des modêyes di pådjes',
+'compare-page1' => 'Pådje 1',
+'compare-page2' => 'Pådje 2',
+'compare-rev1' => 'Modêye 1',
+'compare-rev2' => 'Modêye 2',
+'compare-submit' => 'Comparer',
+
 # Feedback
 'feedback-subject' => 'Sudjet',
 'feedback-message' => 'Messaedje',
@@ -1647,7 +1977,20 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'api-error-unclassified' => 'Aroke nén cnoxhowe',
 'api-error-unknown-code' => 'Aroke nén cnoxhowe : « $1 »',
 'api-error-unknown-error' => "Aroke divintrinne : gn a ene sacwè ki n' a nén stî tins d' l' eberwetaedje",
+'api-error-unknown-warning' => 'Adviertixhmint nén cnoxhou: «$1».',
+'api-error-unknownerror' => 'Aroke nén cnoxhowe: «$1».',
 'api-error-uploaddisabled' => "L' eberwetaedje ni va nén so ç' wiki cial",
 'api-error-verification-error' => "Ci fitchî la est cron, oudon-bén si cawete n' est nén boune",
 
+# Durations
+'duration-seconds' => '$1 segonde{{PLURAL:$1||s}}',
+'duration-minutes' => '$1 munute{{PLURAL:$1||s}}',
+'duration-hours' => '$1 eure{{PLURAL:$1||s}}',
+'duration-days' => '$1 djoû{{PLURAL:$1||s}}',
+'duration-weeks' => '$1 samwinne{{PLURAL:$1||s}}',
+'duration-years' => '$1 anêye{{PLURAL:$1||s}}',
+'duration-decades' => "$1 dijhinne{{PLURAL:$1||s}} d' anêyes",
+'duration-centuries' => '$1 sieke{{PLURAL:$1||s}}',
+'duration-millennia' => '$1 meynaire{{PLURAL:$1||s}}',
+
 );
index acd1dcb..b9c9353 100644 (file)
@@ -944,7 +944,7 @@ An paglaladawan han iya [$2 fayl han paglaladawan nga pakli] didto in ginpapakit
 'statistics-articles' => 'Unod nga mga pakli',
 'statistics-pages' => 'Mga pakli',
 'statistics-pages-desc' => 'Ngatanan nga mga pakli ha sulod hini nga wiki, lakip an hiruhimangraw nga mga pakli, mga redirect, ngan iba pa',
-'statistics-files' => 'Ginkarga nga mga file',
+'statistics-files' => 'Ginkarga nga mga paypay',
 'statistics-edits' => 'Mga pagliwat hit pakli tikang gintukod hini nga {{SITENAME}}',
 'statistics-edits-average' => 'Average nga mga pagliwat kada pakli',
 'statistics-views-total' => 'Ngatanan nga mga panginano',
@@ -1288,7 +1288,7 @@ Makikit-an nimo an ginkuhaaan',
 'tooltip-feed-atom' => 'Atom nga pangarga para hini nga pakli',
 'tooltip-t-contributions' => 'Kitaa an talaan hin mga amot hini nga nágámit',
 'tooltip-t-emailuser' => 'Padad-i hin e-mail ini nga nágámit',
-'tooltip-t-upload' => 'Pagkarga hin mga fayl',
+'tooltip-t-upload' => 'Pagkarga hin mga paypay',
 'tooltip-t-specialpages' => 'Talaan hin mga pinaurog nga pakli',
 'tooltip-t-print' => 'Maipapatik nga bersyon hini nga pakli',
 'tooltip-t-permalink' => 'Sumpay nga unob ha hini nga pagliwat han pakli',
index b948bae..5b1af33 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * QUnit v1.5.0 - A JavaScript Unit Testing Framework
+ * QUnit v1.7.0 - A JavaScript Unit Testing Framework
  *
  * http://docs.jquery.com/QUnit
  *
@@ -56,6 +56,7 @@
 
 #qunit-header label {
        display: inline-block;
+       padding-left: 0.5em;
 }
 
 #qunit-banner {
index 66dd721..7805abc 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * QUnit v1.5.0 - A JavaScript Unit Testing Framework
+ * QUnit v1.7.0 - A JavaScript Unit Testing Framework
  *
  * http://docs.jquery.com/QUnit
  *
@@ -8,75 +8,88 @@
  * or GPL (GPL-LICENSE.txt) licenses.
  */
 
-(function(window) {
+(function( window ) {
 
-var defined = {
+var QUnit,
+       config,
+       testId = 0,
+       fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
+       toString = Object.prototype.toString,
+       hasOwn = Object.prototype.hasOwnProperty,
+       defined = {
        setTimeout: typeof window.setTimeout !== "undefined",
        sessionStorage: (function() {
                var x = "qunit-test-string";
                try {
-                       sessionStorage.setItem(x, x);
-                       sessionStorage.removeItem(x);
+                       sessionStorage.setItem( x, x );
+                       sessionStorage.removeItem( x );
                        return true;
-               } catch(e) {
+               } catch( e ) {
                        return false;
                }
        }())
 };
 
-var    testId = 0,
-       toString = Object.prototype.toString,
-       hasOwn = Object.prototype.hasOwnProperty;
-
-var Test = function(name, testName, expected, async, callback) {
-       this.name = name;
-       this.testName = testName;
-       this.expected = expected;
-       this.async = async;
-       this.callback = callback;
+function Test( settings ) {
+       extend( this, settings );
        this.assertions = [];
-};
+       this.testNumber = ++Test.count;
+}
+
+Test.count = 0;
+
 Test.prototype = {
        init: function() {
-               var tests = id("qunit-tests");
-               if (tests) {
-                       var b = document.createElement("strong");
-                               b.innerHTML = "Running " + this.name;
-                       var li = document.createElement("li");
-                               li.appendChild( b );
-                               li.className = "running";
-                               li.id = this.id = "test-output" + testId++;
+               var a, b, li,
+        tests = id( "qunit-tests" );
+
+               if ( tests ) {
+                       b = document.createElement( "strong" );
+                       b.innerHTML = this.name;
+
+                       // `a` initialized at top of scope
+                       a = document.createElement( "a" );
+                       a.innerHTML = "Rerun";
+                       a.href = QUnit.url({ testNumber: this.testNumber });
+
+                       li = document.createElement( "li" );
+                       li.appendChild( b );
+                       li.appendChild( a );
+                       li.className = "running";
+                       li.id = this.id = "qunit-test-output" + testId++;
+
                        tests.appendChild( li );
                }
        },
        setup: function() {
-               if (this.module != config.previousModule) {
+               if ( this.module !== config.previousModule ) {
                        if ( config.previousModule ) {
-                               runLoggingCallbacks('moduleDone', QUnit, {
+                               runLoggingCallbacks( "moduleDone", QUnit, {
                                        name: config.previousModule,
                                        failed: config.moduleStats.bad,
                                        passed: config.moduleStats.all - config.moduleStats.bad,
                                        total: config.moduleStats.all
-                               } );
+                               });
                        }
                        config.previousModule = this.module;
                        config.moduleStats = { all: 0, bad: 0 };
-                       runLoggingCallbacks( 'moduleStart', QUnit, {
+                       runLoggingCallbacks( "moduleStart", QUnit, {
                                name: this.module
-                       } );
-               } else if (config.autorun) {
-                       runLoggingCallbacks( 'moduleStart', QUnit, {
+                       });
+               } else if ( config.autorun ) {
+                       runLoggingCallbacks( "moduleStart", QUnit, {
                                name: this.module
-                       } );
+                       });
                }
 
                config.current = this;
+
                this.testEnvironment = extend({
                        setup: function() {},
                        teardown: function() {}
-               }, this.moduleTestEnvironment);
+               }, this.moduleTestEnvironment );
 
-               runLoggingCallbacks( 'testStart', QUnit, {
+               runLoggingCallbacks( "testStart", QUnit, {
                        name: this.testName,
                        module: this.module
                });
@@ -89,19 +102,19 @@ Test.prototype = {
                        saveGlobal();
                }
                if ( config.notrycatch ) {
-                       this.testEnvironment.setup.call(this.testEnvironment);
+                       this.testEnvironment.setup.call( this.testEnvironment );
                        return;
                }
                try {
-                       this.testEnvironment.setup.call(this.testEnvironment);
-               } catch(e) {
+                       this.testEnvironment.setup.call( this.testEnvironment );
+               } catch( e ) {
                        QUnit.pushFailure( "Setup failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
                }
        },
        run: function() {
                config.current = this;
 
-               var running = id("qunit-testresult");
+               var running = id( "qunit-testresult" );
 
                if ( running ) {
                        running.innerHTML = "Running: <br/>" + this.name;
@@ -112,13 +125,14 @@ Test.prototype = {
                }
 
                if ( config.notrycatch ) {
-                       this.callback.call(this.testEnvironment);
+                       this.callback.call( this.testEnvironment, QUnit.assert );
                        return;
                }
+
                try {
-                       this.callback.call(this.testEnvironment);
-               } catch(e) {
-                       QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + ": " + e.message, extractStacktrace( e, 1 ) );
+                       this.callback.call( this.testEnvironment, QUnit.assert );
+               } catch( e ) {
+                       QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + e.message, extractStacktrace( e, 0 ) );
                        // else next test will carry the responsibility
                        saveGlobal();
 
@@ -131,12 +145,12 @@ Test.prototype = {
        teardown: function() {
                config.current = this;
                if ( config.notrycatch ) {
-                       this.testEnvironment.teardown.call(this.testEnvironment);
+                       this.testEnvironment.teardown.call( this.testEnvironment );
                        return;
                } else {
                        try {
-                               this.testEnvironment.teardown.call(this.testEnvironment);
-                       } catch(e) {
+                               this.testEnvironment.teardown.call( this.testEnvironment );
+                       } catch( e ) {
                                QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
                        }
                }
@@ -144,28 +158,32 @@ Test.prototype = {
        },
        finish: function() {
                config.current = this;
-               if ( this.expected != null && this.expected != this.assertions.length ) {
-                       QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run" );
+               if ( config.requireExpects && this.expected == null ) {
+                       QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
+               } else if ( this.expected != null && this.expected != this.assertions.length ) {
+                       QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
                } else if ( this.expected == null && !this.assertions.length ) {
-                       QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions." );
+                       QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
                }
 
-               var good = 0, bad = 0,
-                       li, i,
-                       tests = id("qunit-tests");
+               var assertion, a, b, i, li, ol,
+                       test = this,
+                       good = 0,
+                       bad = 0,
+                       tests = id( "qunit-tests" );
 
                config.stats.all += this.assertions.length;
                config.moduleStats.all += this.assertions.length;
 
                if ( tests ) {
-                       var ol = document.createElement("ol");
+                       ol = document.createElement( "ol" );
 
                        for ( i = 0; i < this.assertions.length; i++ ) {
-                               var assertion = this.assertions[i];
+                               assertion = this.assertions[i];
 
-                               li = document.createElement("li");
+                               li = document.createElement( "li" );
                                li.className = assertion.result ? "pass" : "fail";
-                               li.innerHTML = assertion.message || (assertion.result ? "okay" : "failed");
+                               li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
                                ol.appendChild( li );
 
                                if ( assertion.result ) {
@@ -179,45 +197,44 @@ Test.prototype = {
 
                        // store result when possible
                        if ( QUnit.config.reorder && defined.sessionStorage ) {
-                               if (bad) {
-                                       sessionStorage.setItem("qunit-test-" + this.module + "-" + this.testName, bad);
+                               if ( bad ) {
+                                       sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
                                } else {
-                                       sessionStorage.removeItem("qunit-test-" + this.module + "-" + this.testName);
+                                       sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
                                }
                        }
 
-                       if (bad === 0) {
+                       if ( bad === 0 ) {
                                ol.style.display = "none";
                        }
 
-                       var b = document.createElement("strong");
+                       // `b` initialized at top of scope
+                       b = document.createElement( "strong" );
                        b.innerHTML = this.name + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
 
-                       var a = document.createElement("a");
-                       a.innerHTML = "Rerun";
-                       a.href = QUnit.url({ filter: getText([b]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") });
-
                        addEvent(b, "click", function() {
                                var next = b.nextSibling.nextSibling,
                                        display = next.style.display;
                                next.style.display = display === "none" ? "block" : "none";
                        });
 
-                       addEvent(b, "dblclick", function(e) {
+                       addEvent(b, "dblclick", function( e ) {
                                var target = e && e.target ? e.target : window.event.srcElement;
                                if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
                                        target = target.parentNode;
                                }
                                if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-                                       window.location = QUnit.url({ filter: getText([target]).replace(/\([^)]+\)$/, "").replace(/(^\s*|\s*$)/g, "") });
+                                       window.location = QUnit.url({ testNumber: test.testNumber });
                                }
                        });
 
-                       li = id(this.id);
+                       // `li` initialized at top of scope
+                       li = id( this.id );
                        li.className = bad ? "fail" : "pass";
                        li.removeChild( li.firstChild );
+                       a = li.firstChild;
                        li.appendChild( b );
-                       li.appendChild( a );
+                       li.appendChild ( a );
                        li.appendChild( ol );
 
                } else {
@@ -230,19 +247,21 @@ Test.prototype = {
                        }
                }
 
-               QUnit.reset();
-
-               runLoggingCallbacks( 'testDone', QUnit, {
+               runLoggingCallbacks( "testDone", QUnit, {
                        name: this.testName,
                        module: this.module,
                        failed: bad,
                        passed: this.assertions.length - bad,
                        total: this.assertions.length
-               } );
+               });
+
+               QUnit.reset();
        },
 
        queue: function() {
-               var test = this;
+               var bad,
+                       test = this;
+
                synchronize(function() {
                        test.init();
                });
@@ -261,36 +280,42 @@ Test.prototype = {
                                test.finish();
                        });
                }
+
+               // `bad` initialized at top of scope
                // defer when previous test run passed, if storage is available
-               var bad = QUnit.config.reorder && defined.sessionStorage && +sessionStorage.getItem("qunit-test-" + this.module + "-" + this.testName);
-               if (bad) {
+               bad = QUnit.config.reorder && defined.sessionStorage &&
+                                               +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
+
+               if ( bad ) {
                        run();
                } else {
-                       synchronize(run, true);
+                       synchronize( run, true );
                }
        }
-
 };
 
-var QUnit = {
+// Root QUnit object.
+// `QUnit` initialized at top of scope
+QUnit = {
 
        // call on start of module test to prepend name to all tests
-       module: function(name, testEnvironment) {
+       module: function( name, testEnvironment ) {
                config.currentModule = name;
                config.currentModuleTestEnviroment = testEnvironment;
        },
 
-       asyncTest: function(testName, expected, callback) {
+       asyncTest: function( testName, expected, callback ) {
                if ( arguments.length === 2 ) {
                        callback = expected;
                        expected = null;
                }
 
-               QUnit.test(testName, expected, callback, true);
+               QUnit.test( testName, expected, callback, true );
        },
 
-       test: function(testName, expected, callback, async) {
-               var name = '<span class="test-name">' + escapeInnerText(testName) + '</span>';
+       test: function( testName, expected, callback, async ) {
+               var test,
+                       name = "<span class='test-name'>" + escapeInnerText( testName ) + "</span>";
 
                if ( arguments.length === 2 ) {
                        callback = expected;
@@ -298,173 +323,207 @@ var QUnit = {
                }
 
                if ( config.currentModule ) {
-                       name = '<span class="module-name">' + config.currentModule + "</span>: " + name;
-               }
+                       name = "<span class='module-name'>" + config.currentModule + "</span>: " + name;
+               }
+
+               test = new Test({
+                       name: name,
+                       testName: testName,
+                       expected: expected,
+                       async: async,
+                       callback: callback,
+                       module: config.currentModule,
+                       moduleTestEnvironment: config.currentModuleTestEnviroment,
+                       stack: sourceFromStacktrace( 2 )
+               });
 
-               if ( !validTest(config.currentModule + ": " + testName) ) {
+               if ( !validTest( test ) ) {
                        return;
                }
 
-               var test = new Test(name, testName, expected, async, callback);
-               test.module = config.currentModule;
-               test.moduleTestEnvironment = config.currentModuleTestEnviroment;
                test.queue();
        },
 
        // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
-       expect: function(asserts) {
+       expect: function( asserts ) {
                config.current.expected = asserts;
        },
 
-       // Asserts true.
-       // @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-       ok: function(result, msg) {
-               if (!config.current) {
-                       throw new Error("ok() assertion outside test context, was " + sourceFromStacktrace(2));
+       start: function( count ) {
+               config.semaphore -= count || 1;
+               // don't start until equal number of stop-calls
+               if ( config.semaphore > 0 ) {
+                       return;
+               }
+               // ignore if start is called more often then stop
+               if ( config.semaphore < 0 ) {
+                       config.semaphore = 0;
+               }
+               // A slight delay, to avoid any current callbacks
+               if ( defined.setTimeout ) {
+                       window.setTimeout(function() {
+                               if ( config.semaphore > 0 ) {
+                                       return;
+                               }
+                               if ( config.timeout ) {
+                                       clearTimeout( config.timeout );
+                               }
+
+                               config.blocking = false;
+                               process( true );
+                       }, 13);
+               } else {
+                       config.blocking = false;
+                       process( true );
+               }
+       },
+
+       stop: function( count ) {
+               config.semaphore += count || 1;
+               config.blocking = true;
+
+               if ( config.testTimeout && defined.setTimeout ) {
+                       clearTimeout( config.timeout );
+                       config.timeout = window.setTimeout(function() {
+                               QUnit.ok( false, "Test timed out" );
+                               config.semaphore = 1;
+                               QUnit.start();
+                       }, config.testTimeout );
+               }
+       }
+};
+
+// Asssert helpers
+// All of these must call either QUnit.push() or manually do:
+// - runLoggingCallbacks( "log", .. );
+// - config.current.assertions.push({ .. });
+QUnit.assert = {
+       /**
+        * Asserts rough true-ish result.
+        * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+        */
+       ok: function( result, msg ) {
+               if ( !config.current ) {
+                       throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
                }
                result = !!result;
-               var details = {
-                       result: result,
-                       message: msg
-               };
-               msg = escapeInnerText(msg || (result ? "okay" : "failed"));
+
+               var source,
+                       details = {
+                               result: result,
+                               message: msg
+                       };
+
+               msg = escapeInnerText( msg || (result ? "okay" : "failed" ) );
+               msg = "<span class='test-message'>" + msg + "</span>";
+
                if ( !result ) {
-                       var source = sourceFromStacktrace(2);
-                       if (source) {
+                       source = sourceFromStacktrace( 2 );
+                       if ( source ) {
                                details.source = source;
-                               msg += '<table><tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr></table>';
+                               msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr></table>";
                        }
                }
-               runLoggingCallbacks( 'log', QUnit, details );
+               runLoggingCallbacks( "log", QUnit, details );
                config.current.assertions.push({
                        result: result,
                        message: msg
                });
        },
 
-       // Checks that the first two arguments are equal, with an optional message. Prints out both actual and expected values.
-       // @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );
-       equal: function(actual, expected, message) {
-               QUnit.push(expected == actual, actual, expected, message);
+       /**
+        * Assert that the first two arguments are equal, with an optional message.
+        * Prints out both actual and expected values.
+        * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
+        */
+       equal: function( actual, expected, message ) {
+               QUnit.push( expected == actual, actual, expected, message );
        },
 
-       notEqual: function(actual, expected, message) {
-               QUnit.push(expected != actual, actual, expected, message);
+       notEqual: function( actual, expected, message ) {
+               QUnit.push( expected != actual, actual, expected, message );
        },
 
-       deepEqual: function(actual, expected, message) {
-               QUnit.push(QUnit.equiv(actual, expected), actual, expected, message);
+       deepEqual: function( actual, expected, message ) {
+               QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
        },
 
-       notDeepEqual: function(actual, expected, message) {
-               QUnit.push(!QUnit.equiv(actual, expected), actual, expected, message);
+       notDeepEqual: function( actual, expected, message ) {
+               QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
        },
 
-       strictEqual: function(actual, expected, message) {
-               QUnit.push(expected === actual, actual, expected, message);
+       strictEqual: function( actual, expected, message ) {
+               QUnit.push( expected === actual, actual, expected, message );
        },
 
-       notStrictEqual: function(actual, expected, message) {
-               QUnit.push(expected !== actual, actual, expected, message);
+       notStrictEqual: function( actual, expected, message ) {
+               QUnit.push( expected !== actual, actual, expected, message );
        },
 
-       raises: function(block, expected, message) {
-               var actual, ok = false;
+       raises: function( block, expected, message ) {
+               var actual,
+                       ok = false;
 
-               if (typeof expected === 'string') {
+               if ( typeof expected === "string" ) {
                        message = expected;
                        expected = null;
                }
 
                try {
-                       block.call(config.current.testEnvironment);
+                       block.call( config.current.testEnvironment );
                } catch (e) {
                        actual = e;
                }
 
-               if (actual) {
+               if ( actual ) {
                        // we don't want to validate thrown error
-                       if (!expected) {
+                       if ( !expected ) {
                                ok = true;
                        // expected is a regexp
-                       } else if (QUnit.objectType(expected) === "regexp") {
-                               ok = expected.test(actual);
+                       } else if ( QUnit.objectType( expected ) === "regexp" ) {
+                               ok = expected.test( actual );
                        // expected is a constructor
-                       } else if (actual instanceof expected) {
+                       } else if ( actual instanceof expected ) {
                                ok = true;
                        // expected is a validation function which returns true is validation passed
-                       } else if (expected.call({}, actual) === true) {
+                       } else if ( expected.call( {}, actual ) === true ) {
                                ok = true;
                        }
                }
 
-               QUnit.ok(ok, message);
-       },
-
-       start: function(count) {
-               config.semaphore -= count || 1;
-               if (config.semaphore > 0) {
-                       // don't start until equal number of stop-calls
-                       return;
-               }
-               if (config.semaphore < 0) {
-                       // ignore if start is called more often then stop
-                       config.semaphore = 0;
-               }
-               // A slight delay, to avoid any current callbacks
-               if ( defined.setTimeout ) {
-                       window.setTimeout(function() {
-                               if (config.semaphore > 0) {
-                                       return;
-                               }
-                               if ( config.timeout ) {
-                                       clearTimeout(config.timeout);
-                               }
-
-                               config.blocking = false;
-                               process(true);
-                       }, 13);
-               } else {
-                       config.blocking = false;
-                       process(true);
-               }
-       },
+               QUnit.push( ok, actual, null, message );
+       }
+};
 
-       stop: function(count) {
-               config.semaphore += count || 1;
-               config.blocking = true;
+// @deprecated: Kept assertion helpers in root for backwards compatibility
+extend( QUnit, QUnit.assert );
 
-               if ( config.testTimeout && defined.setTimeout ) {
-                       clearTimeout(config.timeout);
-                       config.timeout = window.setTimeout(function() {
-                               QUnit.ok( false, "Test timed out" );
-                               config.semaphore = 1;
-                               QUnit.start();
-                       }, config.testTimeout);
-               }
-       }
+/**
+ * @deprecated: Kept for backwards compatibility
+ * next step: remove entirely
+ */
+QUnit.equals = function() {
+       QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
+};
+QUnit.same = function() {
+       QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
 };
 
-//We want access to the constructor's prototype
+// We want access to the constructor's prototype
 (function() {
-       function F(){}
+       function F() {}
        F.prototype = QUnit;
        QUnit = new F();
-       //Make F QUnit's constructor so that we can add to the prototype later
+       // Make F QUnit's constructor so that we can add to the prototype later
        QUnit.constructor = F;
 }());
 
-// deprecated; still export them to window to provide clear error messages
-// next step: remove entirely
-QUnit.equals = function() {
-       QUnit.push(false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead");
-};
-QUnit.same = function() {
-       QUnit.push(false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead");
-};
-
-// Maintain internal state
-var config = {
+/**
+ * Config object: Maintain internal state
+ * Later exposed as QUnit.config
+ * `config` initialized at top of scope
+ */
+config = {
        // The queue of tests to run
        queue: [],
 
@@ -482,9 +541,12 @@ var config = {
        // by default, modify document.title when suite is done
        altertitle: true,
 
-       urlConfig: ['noglobals', 'notrycatch'],
+       // when enabled, all tests must call expect()
+       requireExpects: false,
+
+       urlConfig: [ "noglobals", "notrycatch" ],
 
-       //logging callback queues
+       // logging callback queues
        begin: [],
        done: [],
        log: [],
@@ -494,16 +556,17 @@ var config = {
        moduleDone: []
 };
 
-// Load paramaters
+// Initialize more QUnit.config and QUnit.urlParams
 (function() {
-       var location = window.location || { search: "", protocol: "file:" },
+       var i,
+               location = window.location || { search: "", protocol: "file:" },
                params = location.search.slice( 1 ).split( "&" ),
                length = params.length,
                urlParams = {},
                current;
 
        if ( params[ 0 ] ) {
-               for ( var i = 0; i < length; i++ ) {
+               for ( i = 0; i < length; i++ ) {
                        current = params[ i ].split( "=" );
                        current[ 0 ] = decodeURIComponent( current[ 0 ] );
                        // allow just a key to turn on a flag, e.g., test.html?noglobals
@@ -514,25 +577,29 @@ var config = {
 
        QUnit.urlParams = urlParams;
        config.filter = urlParams.filter;
+       config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
 
        // Figure out if we're running the tests from a server or not
-       QUnit.isLocal = location.protocol === 'file:';
+       QUnit.isLocal = location.protocol === "file:";
 }());
 
-// Expose the API as global variables, unless an 'exports'
-// object exists, in that case we assume we're in CommonJS - export everything at the end
-if ( typeof exports === "undefined" || typeof require === "undefined" ) {
-       extend(window, QUnit);
+// Export global variables, unless an 'exports' object exists,
+// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
+if ( typeof exports === "undefined" ) {
+       extend( window, QUnit );
+
+       // Expose QUnit object
        window.QUnit = QUnit;
 }
 
-// define these after exposing globals to keep them in these QUnit namespace only
-extend(QUnit, {
+// Extend QUnit object,
+// these after set here because they should not be exposed as global functions
+extend( QUnit, {
        config: config,
 
        // Initialize the configuration options
        init: function() {
-               extend(config, {
+               extend( config, {
                        stats: { all: 0, bad: 0 },
                        moduleStats: { all: 0, bad: 0 },
                        started: +new Date(),
@@ -545,19 +612,21 @@ extend(QUnit, {
                        semaphore: 0
                });
 
-               var qunit = id( "qunit" );
+               var tests, banner, result,
+                       qunit = id( "qunit" );
+
                if ( qunit ) {
                        qunit.innerHTML =
-                               '<h1 id="qunit-header">' + escapeInnerText( document.title ) + '</h1>' +
-                               '<h2 id="qunit-banner"></h2>' +
-                               '<div id="qunit-testrunner-toolbar"></div>' +
-                               '<h2 id="qunit-userAgent"></h2>' +
-                               '<ol id="qunit-tests"></ol>';
+                               "<h1 id='qunit-header'>" + escapeInnerText( document.title ) + "</h1>" +
+                               "<h2 id='qunit-banner'></h2>" +
+                               "<div id='qunit-testrunner-toolbar'></div>" +
+                               "<h2 id='qunit-userAgent'></h2>" +
+                               "<ol id='qunit-tests'></ol>";
                }
 
-               var tests = id( "qunit-tests" ),
-                       banner = id( "qunit-banner" ),
-                       result = id( "qunit-testresult" );
+               tests = id( "qunit-tests" );
+               banner = id( "qunit-banner" );
+               result = id( "qunit-testresult" );
 
                if ( tests ) {
                        tests.innerHTML = "";
@@ -576,19 +645,21 @@ extend(QUnit, {
                        result.id = "qunit-testresult";
                        result.className = "result";
                        tests.parentNode.insertBefore( result, tests );
-                       result.innerHTML = 'Running...<br/>&nbsp;';
+                       result.innerHTML = "Running...<br/>&nbsp;";
                }
        },
 
        // Resets the test setup. Useful for tests that modify the DOM.
        // If jQuery is available, uses jQuery's html(), otherwise just innerHTML.
        reset: function() {
+               var fixture;
+
                if ( window.jQuery ) {
                        jQuery( "#qunit-fixture" ).html( config.fixture );
                } else {
-                       var main = id( 'qunit-fixture' );
-                       if ( main ) {
-                               main.innerHTML = config.fixture;
+                       fixture = id( "qunit-fixture" );
+                       if ( fixture ) {
+                               fixture.innerHTML = config.fixture;
                        }
                }
        },
@@ -597,13 +668,13 @@ extend(QUnit, {
        // @example triggerEvent( document.body, "click" );
        triggerEvent: function( elem, type, event ) {
                if ( document.createEvent ) {
-                       event = document.createEvent("MouseEvents");
+                       event = document.createEvent( "MouseEvents" );
                        event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
                                0, 0, 0, 0, 0, false, false, false, false, 0, null);
-                       elem.dispatchEvent( event );
 
+                       elem.dispatchEvent( event );
                } else if ( elem.fireEvent ) {
-                       elem.fireEvent("on"+type);
+                       elem.fireEvent( "on" + type );
                }
        },
 
@@ -613,68 +684,74 @@ extend(QUnit, {
        },
 
        objectType: function( obj ) {
-               if (typeof obj === "undefined") {
+               if ( typeof obj === "undefined" ) {
                                return "undefined";
-
                // consider: typeof null === object
                }
-               if (obj === null) {
+               if ( obj === null ) {
                                return "null";
                }
 
-               var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || '';
+               var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || "";
 
-               switch (type) {
-                       case 'Number':
-                               if (isNaN(obj)) {
+               switch ( type ) {
+                       case "Number":
+                               if ( isNaN(obj) ) {
                                        return "nan";
                                }
                                return "number";
-                       case 'String':
-                       case 'Boolean':
-                       case 'Array':
-                       case 'Date':
-                       case 'RegExp':
-                       case 'Function':
-                                       return type.toLowerCase();
+                       case "String":
+                       case "Boolean":
+                       case "Array":
+                       case "Date":
+                       case "RegExp":
+                       case "Function":
+                               return type.toLowerCase();
                }
-               if (typeof obj === "object") {
-                               return "object";
+               if ( typeof obj === "object" ) {
+                       return "object";
                }
                return undefined;
        },
 
-       push: function(result, actual, expected, message) {
-               if (!config.current) {
-                       throw new Error("assertion outside test context, was " + sourceFromStacktrace());
+       push: function( result, actual, expected, message ) {
+               if ( !config.current ) {
+                       throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
                }
-               var details = {
-                       result: result,
-                       message: message,
-                       actual: actual,
-                       expected: expected
-               };
 
-               message = escapeInnerText(message) || (result ? "okay" : "failed");
-               message = '<span class="test-message">' + message + "</span>";
-               var output = message;
-               if (!result) {
-                       expected = escapeInnerText(QUnit.jsDump.parse(expected));
-                       actual = escapeInnerText(QUnit.jsDump.parse(actual));
-                       output += '<table><tr class="test-expected"><th>Expected: </th><td><pre>' + expected + '</pre></td></tr>';
-                       if (actual != expected) {
-                               output += '<tr class="test-actual"><th>Result: </th><td><pre>' + actual + '</pre></td></tr>';
-                               output += '<tr class="test-diff"><th>Diff: </th><td><pre>' + QUnit.diff(expected, actual) +'</pre></td></tr>';
+               var output, source,
+                       details = {
+                               result: result,
+                               message: message,
+                               actual: actual,
+                               expected: expected
+                       };
+
+               message = escapeInnerText( message ) || ( result ? "okay" : "failed" );
+               message = "<span class='test-message'>" + message + "</span>";
+               output = message;
+
+               if ( !result ) {
+                       expected = escapeInnerText( QUnit.jsDump.parse(expected) );
+                       actual = escapeInnerText( QUnit.jsDump.parse(actual) );
+                       output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
+
+                       if ( actual != expected ) {
+                               output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
+                               output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
                        }
-                       var source = sourceFromStacktrace();
-                       if (source) {
+
+                       source = sourceFromStacktrace();
+
+                       if ( source ) {
                                details.source = source;
-                               output += '<tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr>';
+                               output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr>";
                        }
+
                        output += "</table>";
                }
 
-               runLoggingCallbacks( 'log', QUnit, details );
+               runLoggingCallbacks( "log", QUnit, details );
 
                config.current.assertions.push({
                        result: !!result,
@@ -682,17 +759,24 @@ extend(QUnit, {
                });
        },
 
-       pushFailure: function(message, source) {
-               var details = {
-                       result: false,
-                       message: message
-               };
-               var output = escapeInnerText(message);
-               if (source) {
+       pushFailure: function( message, source ) {
+               var output,
+                       details = {
+                               result: false,
+                               message: message
+                       };
+
+               message = escapeInnerText(message ) || "error";
+               message = "<span class='test-message'>" + message + "</span>";
+               output = message;
+
+               if ( source ) {
                        details.source = source;
-                       output += '<table><tr class="test-source"><th>Source: </th><td><pre>' + escapeInnerText(source) + '</pre></td></tr></table>';
+                       output += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr></table>";
                }
-               runLoggingCallbacks( 'log', QUnit, details );
+
+               runLoggingCallbacks( "log", QUnit, details );
+
                config.current.assertions.push({
                        result: false,
                        message: output
@@ -701,8 +785,9 @@ extend(QUnit, {
 
        url: function( params ) {
                params = extend( extend( {}, QUnit.urlParams ), params );
-               var querystring = "?",
-                       key;
+               var key,
+                       querystring = "?";
+
                for ( key in params ) {
                        if ( !hasOwn.call( params, key ) ) {
                                continue;
@@ -716,27 +801,39 @@ extend(QUnit, {
        extend: extend,
        id: id,
        addEvent: addEvent
+       // load, equiv, jsDump, diff: Attached later
 });
 
-//QUnit.constructor is set to the empty F() above so that we can add to it's prototype later
-//Doing this allows us to tell if the following methods have been overwritten on the actual
-//QUnit object, which is a deprecated way of using the callbacks.
-extend(QUnit.constructor.prototype, {
+/**
+ * @deprecated: Created for backwards compatibility with test runner that set the hook function
+ * into QUnit.{hook}, instead of invoking it and passing the hook function.
+ * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
+ * Doing this allows us to tell if the following methods have been overwritten on the actual
+ * QUnit object.
+ */
+extend( QUnit.constructor.prototype, {
+
        // Logging callbacks; all receive a single argument with the listed properties
        // run test/logs.html for any related changes
-       begin: registerLoggingCallback('begin'),
+       begin: registerLoggingCallback( "begin" ),
+
        // done: { failed, passed, total, runtime }
-       done: registerLoggingCallback('done'),
+       done: registerLoggingCallback( "done" ),
+
        // log: { result, actual, expected, message }
-       log: registerLoggingCallback('log'),
+       log: registerLoggingCallback( "log" ),
+
        // testStart: { name }
-       testStart: registerLoggingCallback('testStart'),
+       testStart: registerLoggingCallback( "testStart" ),
+
        // testDone: { name, failed, passed, total }
-       testDone: registerLoggingCallback('testDone'),
+       testDone: registerLoggingCallback( "testDone" ),
+
        // moduleStart: { name }
-       moduleStart: registerLoggingCallback('moduleStart'),
+       moduleStart: registerLoggingCallback( "moduleStart" ),
+
        // moduleDone: { name, failed, passed, total }
-       moduleDone: registerLoggingCallback('moduleDone')
+       moduleDone: registerLoggingCallback( "moduleDone" )
 });
 
 if ( typeof document === "undefined" || document.readyState === "complete" ) {
@@ -744,29 +841,36 @@ if ( typeof document === "undefined" || document.readyState === "complete" ) {
 }
 
 QUnit.load = function() {
-       runLoggingCallbacks( 'begin', QUnit, {} );
+       runLoggingCallbacks( "begin", QUnit, {} );
 
        // Initialize the config, saving the execution queue
-       var oldconfig = extend({}, config);
+       var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
+               urlConfigHtml = "",
+               oldconfig = extend( {}, config );
+
        QUnit.init();
        extend(config, oldconfig);
 
        config.blocking = false;
 
-       var urlConfigHtml = '', len = config.urlConfig.length;
-       for ( var i = 0, val; i < len; i++ ) {
+       len = config.urlConfig.length;
+
+       for ( i = 0; i < len; i++ ) {
                val = config.urlConfig[i];
                config[val] = QUnit.urlParams[val];
-               urlConfigHtml += '<label><input name="' + val + '" type="checkbox"' + ( config[val] ? ' checked="checked"' : '' ) + '>' + val + '</label>';
+               urlConfigHtml += "<label><input name='" + val + "' type='checkbox'" + ( config[val] ? " checked='checked'" : "" ) + ">" + val + "</label>";
        }
 
-       var userAgent = id("qunit-userAgent");
+       // `userAgent` initialized at top of scope
+       userAgent = id( "qunit-userAgent" );
        if ( userAgent ) {
                userAgent.innerHTML = navigator.userAgent;
        }
-       var banner = id("qunit-header");
+
+       // `banner` initialized at top of scope
+       banner = id( "qunit-header" );
        if ( banner ) {
-               banner.innerHTML = '<a href="' + QUnit.url({ filter: undefined }) + '"> ' + banner.innerHTML + '</a> ' + urlConfigHtml;
+               banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined }) + "'>" + banner.innerHTML + "</a> " + urlConfigHtml;
                addEvent( banner, "change", function( event ) {
                        var params = {};
                        params[ event.target.name ] = event.target.checked ? true : undefined;
@@ -774,53 +878,62 @@ QUnit.load = function() {
                });
        }
 
-       var toolbar = id("qunit-testrunner-toolbar");
+       // `toolbar` initialized at top of scope
+       toolbar = id( "qunit-testrunner-toolbar" );
        if ( toolbar ) {
-               var filter = document.createElement("input");
+               // `filter` initialized at top of scope
+               filter = document.createElement( "input" );
                filter.type = "checkbox";
                filter.id = "qunit-filter-pass";
+
                addEvent( filter, "click", function() {
-                       var ol = document.getElementById("qunit-tests");
+                       var tmp,
+                               ol = document.getElementById( "qunit-tests" );
+
                        if ( filter.checked ) {
                                ol.className = ol.className + " hidepass";
                        } else {
-                               var tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-                               ol.className = tmp.replace(/ hidepass /, " ");
+                               tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
+                               ol.className = tmp.replace( / hidepass /, " " );
                        }
                        if ( defined.sessionStorage ) {
                                if (filter.checked) {
-                                       sessionStorage.setItem("qunit-filter-passed-tests", "true");
+                                       sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
                                } else {
-                                       sessionStorage.removeItem("qunit-filter-passed-tests");
+                                       sessionStorage.removeItem( "qunit-filter-passed-tests" );
                                }
                        }
                });
-               if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem("qunit-filter-passed-tests") ) {
+
+               if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
                        filter.checked = true;
-                       var ol = document.getElementById("qunit-tests");
+                       // `ol` initialized at top of scope
+                       ol = document.getElementById( "qunit-tests" );
                        ol.className = ol.className + " hidepass";
                }
                toolbar.appendChild( filter );
 
-               var label = document.createElement("label");
-               label.setAttribute("for", "qunit-filter-pass");
+               // `label` initialized at top of scope
+               label = document.createElement( "label" );
+               label.setAttribute( "for", "qunit-filter-pass" );
                label.innerHTML = "Hide passed tests";
                toolbar.appendChild( label );
        }
 
-       var main = id('qunit-fixture');
+       // `main` initialized at top of scope
+       main = id( "qunit-fixture" );
        if ( main ) {
                config.fixture = main.innerHTML;
        }
 
-       if (config.autostart) {
+       if ( config.autostart ) {
                QUnit.start();
        }
 };
 
-addEvent(window, "load", QUnit.load);
+addEvent( window, "load", QUnit.load );
 
-// addEvent(window, "error") gives us a useless event object
+// addEvent(window, "error" ) gives us a useless event object
 window.onerror = function( message, file, line ) {
        if ( QUnit.config.current ) {
                QUnit.pushFailure( message, file + ":" + line );
@@ -836,33 +949,34 @@ function done() {
 
        // Log the last module results
        if ( config.currentModule ) {
-               runLoggingCallbacks( 'moduleDone', QUnit, {
+               runLoggingCallbacks( "moduleDone", QUnit, {
                        name: config.currentModule,
                        failed: config.moduleStats.bad,
                        passed: config.moduleStats.all - config.moduleStats.bad,
                        total: config.moduleStats.all
-               } );
+               });
        }
 
-       var banner = id("qunit-banner"),
-               tests = id("qunit-tests"),
+       var i, key,
+               banner = id( "qunit-banner" ),
+               tests = id( "qunit-tests" ),
                runtime = +new Date() - config.started,
                passed = config.stats.all - config.stats.bad,
                html = [
-                       'Tests completed in ',
+                       "Tests completed in ",
                        runtime,
-                       ' milliseconds.<br/>',
-                       '<span class="passed">',
+                       " milliseconds.<br/>",
+                       "<span class='passed'>",
                        passed,
-                       '</span> tests of <span class="total">',
+                       "</span> tests of <span class='total'>",
                        config.stats.all,
-                       '</span> passed, <span class="failed">',
+                       "</span> passed, <span class='failed'>",
                        config.stats.bad,
-                       '</span> failed.'
-               ].join('');
+                       "</span> failed."
+               ].join( "" );
 
        if ( banner ) {
-               banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");
+               banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
        }
 
        if ( tests ) {
@@ -873,70 +987,88 @@ function done() {
                // show ✖ for good, ✔ for bad suite result in title
                // use escape sequences in case file gets loaded with non-utf-8-charset
                document.title = [
-                       (config.stats.bad ? "\u2716" : "\u2714"),
-                       document.title.replace(/^[\u2714\u2716] /i, "")
-               ].join(" ");
+                       ( config.stats.bad ? "\u2716" : "\u2714" ),
+                       document.title.replace( /^[\u2714\u2716] /i, "" )
+               ].join( " " );
        }
 
        // clear own sessionStorage items if all tests passed
        if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-               var key;
-               for ( var i = 0; i < sessionStorage.length; i++ ) {
+               // `key` & `i` initialized at top of scope
+               for ( i = 0; i < sessionStorage.length; i++ ) {
                        key = sessionStorage.key( i++ );
-                       if ( key.indexOf("qunit-test-") === 0 ) {
+                       if ( key.indexOf( "qunit-test-" ) === 0 ) {
                                sessionStorage.removeItem( key );
                        }
                }
        }
 
-       runLoggingCallbacks( 'done', QUnit, {
+       runLoggingCallbacks( "done", QUnit, {
                failed: config.stats.bad,
                passed: passed,
                total: config.stats.all,
                runtime: runtime
-       } );
+       });
 }
 
-function validTest( name ) {
-       var filter = config.filter,
-               run = false;
+function validTest( test ) {
+       var include,
+               filter = config.filter && config.filter.toLowerCase(),
+               fullName = (test.module + ": " + test.testName).toLowerCase();
+
+       if ( config.testNumber ) {
+               return test.testNumber === config.testNumber;
+       }
 
        if ( !filter ) {
                return true;
        }
 
-       var not = filter.charAt( 0 ) === "!";
-       if ( not ) {
+       include = filter.charAt( 0 ) !== "!";
+       if ( !include ) {
                filter = filter.slice( 1 );
        }
 
-       if ( name.indexOf( filter ) !== -1 ) {
-               return !not;
-       }
-
-       if ( not ) {
-               run = true;
+       // If the filter matches, we need to honour include
+       if ( fullName.indexOf( filter ) !== -1 ) {
+               return include;
        }
 
-       return run;
+       // Otherwise, do the opposite
+       return !include;
 }
 
 // so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
 // Later Safari and IE10 are supposed to support error.stack as well
 // See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
 function extractStacktrace( e, offset ) {
-       offset = offset || 3;
-       if (e.stacktrace) {
+       offset = offset === undefined ? 3 : offset;
+
+       var stack, include, i, regex;
+
+       if ( e.stacktrace ) {
                // Opera
-               return e.stacktrace.split("\n")[offset + 3];
-       } else if (e.stack) {
+               return e.stacktrace.split( "\n" )[ offset + 3 ];
+       } else if ( e.stack ) {
                // Firefox, Chrome
-               var stack = e.stack.split("\n");
-               if (/^error$/i.test(stack[0])) {
+               stack = e.stack.split( "\n" );
+               if (/^error$/i.test( stack[0] ) ) {
                        stack.shift();
                }
-               return stack[offset];
-       } else if (e.sourceURL) {
+               if ( fileName ) {
+                       include = [];
+                       for ( i = offset; i < stack.length; i++ ) {
+                               if ( stack[ i ].indexOf( fileName ) != -1 ) {
+                                       break;
+                               }
+                               include.push( stack[ i ] );
+                       }
+                       if ( include.length ) {
+                               return include.join( "\n" );
+                       }
+               }
+               return stack[ offset ];
+       } else if ( e.sourceURL ) {
                // Safari, PhantomJS
                // hopefully one day Safari provides actual stacktraces
                // exclude useless self-reference for generated Error objects
@@ -947,7 +1079,7 @@ function extractStacktrace( e, offset ) {
                return e.sourceURL + ":" + e.line;
        }
 }
-function sourceFromStacktrace(offset) {
+function sourceFromStacktrace( offset ) {
        try {
                throw new Error();
        } catch ( e ) {
@@ -955,13 +1087,13 @@ function sourceFromStacktrace(offset) {
        }
 }
 
-function escapeInnerText(s) {
-       if (!s) {
+function escapeInnerText( s ) {
+       if ( !s ) {
                return "";
        }
        s = s + "";
-       return s.replace(/[\&<>]/g, function(s) {
-               switch(s) {
+       return s.replace( /[\&<>]/g, function( s ) {
+               switch( s ) {
                        case "&": return "&amp;";
                        case "<": return "&lt;";
                        case ">": return "&gt;";
@@ -974,7 +1106,7 @@ function synchronize( callback, last ) {
        config.queue.push( callback );
 
        if ( config.autorun && !config.blocking ) {
-               process(last);
+               process( last );
        }
 }
 
@@ -1004,7 +1136,8 @@ function saveGlobal() {
 
        if ( config.noglobals ) {
                for ( var key in window ) {
-                       if ( !hasOwn.call( window, key ) ) {
+                       // in Opera sometimes DOM element ids show up here, ignore them
+                       if ( !hasOwn.call( window, key ) || /^qunit-test-output/.test( key ) ) {
                                continue;
                        }
                        config.pollution.push( key );
@@ -1013,15 +1146,18 @@ function saveGlobal() {
 }
 
 function checkPollution( name ) {
-       var old = config.pollution;
+       var newGlobals,
+               deletedGlobals,
+               old = config.pollution;
+
        saveGlobal();
 
-       var newGlobals = diff( config.pollution, old );
+       newGlobals = diff( config.pollution, old );
        if ( newGlobals.length > 0 ) {
                QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
        }
 
-       var deletedGlobals = diff( old, config.pollution );
+       deletedGlobals = diff( old, config.pollution );
        if ( deletedGlobals.length > 0 ) {
                QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
        }
@@ -1029,11 +1165,13 @@ function checkPollution( name ) {
 
 // returns a new Array with the elements that are in a but not in b
 function diff( a, b ) {
-       var result = a.slice();
-       for ( var i = 0; i < result.length; i++ ) {
-               for ( var j = 0; j < b.length; j++ ) {
+       var i, j,
+               result = a.slice();
+
+       for ( i = 0; i < result.length; i++ ) {
+               for ( j = 0; j < b.length; j++ ) {
                        if ( result[i] === b[j] ) {
-                               result.splice(i, 1);
+                               result.splice( i, 1 );
                                i--;
                                break;
                        }
@@ -1042,21 +1180,21 @@ function diff( a, b ) {
        return result;
 }
 
-function extend(a, b) {
+function extend( a, b ) {
        for ( var prop in b ) {
-               if ( b[prop] === undefined ) {
-                       delete a[prop];
+               if ( b[ prop ] === undefined ) {
+                       delete a[ prop ];
 
                // Avoid "Member not found" error in IE8 caused by setting window.constructor
                } else if ( prop !== "constructor" || a !== window ) {
-                       a[prop] = b[prop];
+                       a[ prop ] = b[ prop ];
                }
        }
 
        return a;
 }
 
-function addEvent(elem, type, fn) {
+function addEvent( elem, type, fn ) {
        if ( elem.addEventListener ) {
                elem.addEventListener( type, fn, false );
        } else if ( elem.attachEvent ) {
@@ -1066,27 +1204,27 @@ function addEvent(elem, type, fn) {
        }
 }
 
-function id(name) {
-       return !!(typeof document !== "undefined" && document && document.getElementById) &&
+function id( name ) {
+       return !!( typeof document !== "undefined" && document && document.getElementById ) &&
                document.getElementById( name );
 }
 
-function registerLoggingCallback(key){
-       return function(callback){
+function registerLoggingCallback( key ) {
+       return function( callback ) {
                config[key].push( callback );
        };
 }
 
 // Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks(key, scope, args) {
+function runLoggingCallbacks( key, scope, args ) {
        //debugger;
-       var callbacks;
-       if ( QUnit.hasOwnProperty(key) ) {
-               QUnit[key].call(scope, args);
+       var i, callbacks;
+       if ( QUnit.hasOwnProperty( key ) ) {
+               QUnit[ key ].call(scope, args );
        } else {
-               callbacks = config[key];
-               for( var i = 0; i < callbacks.length; i++ ) {
-                       callbacks[i].call( scope, args );
+               callbacks = config[ key ];
+               for ( i = 0; i < callbacks.length; i++ ) {
+                       callbacks[ i ].call( scope, args );
                }
        }
 }
@@ -1095,183 +1233,184 @@ function runLoggingCallbacks(key, scope, args) {
 // Author: Philippe Rathé <prathe@gmail.com>
 QUnit.equiv = (function() {
 
-       var innerEquiv; // the real equiv function
-       var callers = []; // stack to decide between skip/abort functions
-       var parents = []; // stack to avoiding loops from circular referencing
-
        // Call the o related callback with the given arguments.
-       function bindCallbacks(o, callbacks, args) {
-               var prop = QUnit.objectType(o);
-               if (prop) {
-                       if (QUnit.objectType(callbacks[prop]) === "function") {
-                               return callbacks[prop].apply(callbacks, args);
+       function bindCallbacks( o, callbacks, args ) {
+               var prop = QUnit.objectType( o );
+               if ( prop ) {
+                       if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
+                               return callbacks[ prop ].apply( callbacks, args );
                        } else {
-                               return callbacks[prop]; // or undefined
+                               return callbacks[ prop ]; // or undefined
                        }
                }
        }
 
-       var getProto = Object.getPrototypeOf || function (obj) {
-               return obj.__proto__;
-       };
-
-       var callbacks = (function () {
-
-               // for string, boolean, number and null
-               function useStrictEquality(b, a) {
-                       if (b instanceof a.constructor || a instanceof b.constructor) {
-                               // to catch short annotaion VS 'new' annotation of a
-                               // declaration
-                               // e.g. var i = 1;
-                               // var j = new Number(1);
-                               return a == b;
-                       } else {
-                               return a === b;
-                       }
-               }
-
-               return {
-                       "string" : useStrictEquality,
-                       "boolean" : useStrictEquality,
-                       "number" : useStrictEquality,
-                       "null" : useStrictEquality,
-                       "undefined" : useStrictEquality,
-
-                       "nan" : function(b) {
-                               return isNaN(b);
-                       },
-
-                       "date" : function(b, a) {
-                               return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf();
-                       },
-
-                       "regexp" : function(b, a) {
-                               return QUnit.objectType(b) === "regexp" &&
-                                       // the regex itself
-                                       a.source === b.source &&
-                                       // and its modifers
-                                       a.global === b.global &&
-                                       // (gmi) ...
-                                       a.ignoreCase === b.ignoreCase &&
-                                       a.multiline === b.multiline;
-                       },
-
-                       // - skip when the property is a method of an instance (OOP)
-                       // - abort otherwise,
-                       // initial === would have catch identical references anyway
-                       "function" : function() {
-                               var caller = callers[callers.length - 1];
-                               return caller !== Object && typeof caller !== "undefined";
-                       },
-
-                       "array" : function(b, a) {
-                               var i, j, loop;
-                               var len;
-
-                               // b could be an object literal here
-                               if (QUnit.objectType(b) !== "array") {
-                                       return false;
-                               }
+       // the real equiv function
+       var innerEquiv,
+               // stack to decide between skip/abort functions
+               callers = [],
+               // stack to avoiding loops from circular referencing
+               parents = [],
 
-                               len = a.length;
-                               if (len !== b.length) { // safe and faster
-                                       return false;
+               getProto = Object.getPrototypeOf || function ( obj ) {
+                       return obj.__proto__;
+               },
+               callbacks = (function () {
+
+                       // for string, boolean, number and null
+                       function useStrictEquality( b, a ) {
+                               if ( b instanceof a.constructor || a instanceof b.constructor ) {
+                                       // to catch short annotaion VS 'new' annotation of a
+                                       // declaration
+                                       // e.g. var i = 1;
+                                       // var j = new Number(1);
+                                       return a == b;
+                               } else {
+                                       return a === b;
                                }
+                       }
 
-                               // track reference to avoid circular references
-                               parents.push(a);
-                               for (i = 0; i < len; i++) {
-                                       loop = false;
-                                       for (j = 0; j < parents.length; j++) {
-                                               if (parents[j] === a[i]) {
-                                                       loop = true;// dont rewalk array
-                                               }
-                                       }
-                                       if (!loop && !innerEquiv(a[i], b[i])) {
-                                               parents.pop();
+                       return {
+                               "string": useStrictEquality,
+                               "boolean": useStrictEquality,
+                               "number": useStrictEquality,
+                               "null": useStrictEquality,
+                               "undefined": useStrictEquality,
+
+                               "nan": function( b ) {
+                                       return isNaN( b );
+                               },
+
+                               "date": function( b, a ) {
+                                       return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
+                               },
+
+                               "regexp": function( b, a ) {
+                                       return QUnit.objectType( b ) === "regexp" &&
+                                               // the regex itself
+                                               a.source === b.source &&
+                                               // and its modifers
+                                               a.global === b.global &&
+                                               // (gmi) ...
+                                               a.ignoreCase === b.ignoreCase &&
+                                               a.multiline === b.multiline;
+                               },
+
+                               // - skip when the property is a method of an instance (OOP)
+                               // - abort otherwise,
+                               // initial === would have catch identical references anyway
+                               "function": function() {
+                                       var caller = callers[callers.length - 1];
+                                       return caller !== Object && typeof caller !== "undefined";
+                               },
+
+                               "array": function( b, a ) {
+                                       var i, j, len, loop;
+
+                                       // b could be an object literal here
+                                       if ( QUnit.objectType( b ) !== "array" ) {
                                                return false;
                                        }
-                               }
-                               parents.pop();
-                               return true;
-                       },
 
-                       "object" : function(b, a) {
-                               var i, j, loop;
-                               var eq = true; // unless we can proove it
-                               var aProperties = [], bProperties = []; // collection of
-                                                                                                               // strings
-
-                               // comparing constructors is more strict than using
-                               // instanceof
-                               if (a.constructor !== b.constructor) {
-                                       // Allow objects with no prototype to be equivalent to
-                                       // objects with Object as their constructor.
-                                       if (!((getProto(a) === null && getProto(b) === Object.prototype) ||
-                                               (getProto(b) === null && getProto(a) === Object.prototype)))
-                                       {
+                                       len = a.length;
+                                       if ( len !== b.length ) {
+                                               // safe and faster
                                                return false;
                                        }
-                               }
 
-                               // stack constructor before traversing properties
-                               callers.push(a.constructor);
-                               // track reference to avoid circular references
-                               parents.push(a);
-
-                               for (i in a) { // be strict: don't ensures hasOwnProperty
-                                                               // and go deep
-                                       loop = false;
-                                       for (j = 0; j < parents.length; j++) {
-                                               if (parents[j] === a[i]) {
-                                                       // don't go down the same path twice
-                                                       loop = true;
+                                       // track reference to avoid circular references
+                                       parents.push( a );
+                                       for ( i = 0; i < len; i++ ) {
+                                               loop = false;
+                                               for ( j = 0; j < parents.length; j++ ) {
+                                                       if ( parents[j] === a[i] ) {
+                                                               loop = true;// dont rewalk array
+                                                       }
+                                               }
+                                               if ( !loop && !innerEquiv(a[i], b[i]) ) {
+                                                       parents.pop();
+                                                       return false;
+                                               }
+                                       }
+                                       parents.pop();
+                                       return true;
+                               },
+
+                               "object": function( b, a ) {
+                                       var i, j, loop,
+                                               // Default to true
+                                               eq = true,
+                                               aProperties = [],
+                                               bProperties = [];
+
+                                       // comparing constructors is more strict than using
+                                       // instanceof
+                                       if ( a.constructor !== b.constructor ) {
+                                               // Allow objects with no prototype to be equivalent to
+                                               // objects with Object as their constructor.
+                                               if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
+                                                       ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
+                                                               return false;
                                                }
                                        }
-                                       aProperties.push(i); // collect a's properties
 
-                                       if (!loop && !innerEquiv(a[i], b[i])) {
-                                               eq = false;
-                                               break;
+                                       // stack constructor before traversing properties
+                                       callers.push( a.constructor );
+                                       // track reference to avoid circular references
+                                       parents.push( a );
+
+                                       for ( i in a ) { // be strict: don't ensures hasOwnProperty
+                                                                       // and go deep
+                                               loop = false;
+                                               for ( j = 0; j < parents.length; j++ ) {
+                                                       if ( parents[j] === a[i] ) {
+                                                               // don't go down the same path twice
+                                                               loop = true;
+                                                       }
+                                               }
+                                               aProperties.push(i); // collect a's properties
+
+                                               if (!loop && !innerEquiv( a[i], b[i] ) ) {
+                                                       eq = false;
+                                                       break;
+                                               }
                                        }
-                               }
 
-                               callers.pop(); // unstack, we are done
-                               parents.pop();
+                                       callers.pop(); // unstack, we are done
+                                       parents.pop();
 
-                               for (i in b) {
-                                       bProperties.push(i); // collect b's properties
-                               }
+                                       for ( i in b ) {
+                                               bProperties.push( i ); // collect b's properties
+                                       }
 
-                               // Ensures identical properties name
-                               return eq && innerEquiv(aProperties.sort(), bProperties.sort());
-                       }
-               };
-       }());
+                                       // Ensures identical properties name
+                                       return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
+                               }
+                       };
+               }());
 
        innerEquiv = function() { // can take multiple arguments
-               var args = Array.prototype.slice.apply(arguments);
-               if (args.length < 2) {
+               var args = [].slice.apply( arguments );
+               if ( args.length < 2 ) {
                        return true; // end transition
                }
 
-               return (function(a, b) {
-                       if (a === b) {
+               return (function( a, b ) {
+                       if ( a === b ) {
                                return true; // catch the most you can
-                       } else if (a === null || b === null || typeof a === "undefined" ||
+                       } else if ( a === null || b === null || typeof a === "undefined" ||
                                        typeof b === "undefined" ||
-                                       QUnit.objectType(a) !== QUnit.objectType(b)) {
+                                       QUnit.objectType(a) !== QUnit.objectType(b) ) {
                                return false; // don't lose time with error prone cases
                        } else {
                                return bindCallbacks(a, callbacks, [ b, a ]);
                        }
 
                        // apply transition with (1..n) arguments
-               }(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length - 1)));
+               }( args[0], args[1] ) && arguments.callee.apply( this, args.splice(1, args.length - 1 )) );
        };
 
        return innerEquiv;
-
 }());
 
 /**
@@ -1286,17 +1425,17 @@ QUnit.equiv = (function() {
  */
 QUnit.jsDump = (function() {
        function quote( str ) {
-               return '"' + str.toString().replace(/"/g, '\\"') + '"';
+               return '"' + str.toString().replace( /"/g, '\\"' ) + '"';
        }
        function literal( o ) {
-               return o + '';
+               return o + "";
        }
        function join( pre, arr, post ) {
                var s = jsDump.separator(),
                        base = jsDump.indent(),
                        inner = jsDump.indent(1);
                if ( arr.join ) {
-                       arr = arr.join( ',' + s + inner );
+                       arr = arr.join( "," + s + inner );
                }
                if ( !arr ) {
                        return pre + post;
@@ -1310,182 +1449,191 @@ QUnit.jsDump = (function() {
                        ret[i] = this.parse( arr[i] , undefined , stack);
                }
                this.down();
-               return join( '[', ret, ']' );
+               return join( "[", ret, "]" );
        }
 
-       var reName = /^function (\w+)/;
+       var reName = /^function (\w+)/,
+               jsDump = {
+                       parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance
+                               stack = stack || [ ];
+                               var inStack, res,
+                                       parser = this.parsers[ type || this.typeOf(obj) ];
 
-       var jsDump = {
-               parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance
-                       stack = stack || [ ];
-                       var parser = this.parsers[ type || this.typeOf(obj) ];
-                       type = typeof parser;
-                       var inStack = inArray(obj, stack);
-                       if (inStack != -1) {
-                               return 'recursion('+(inStack - stack.length)+')';
-                       }
-                       //else
-                       if (type == 'function')  {
-                                       stack.push(obj);
-                                       var res = parser.call( this, obj, stack );
+                               type = typeof parser;
+                               inStack = inArray( obj, stack );
+
+                               if ( inStack != -1 ) {
+                                       return "recursion(" + (inStack - stack.length) + ")";
+                               }
+                               //else
+                               if ( type == "function" )  {
+                                       stack.push( obj );
+                                       res = parser.call( this, obj, stack );
                                        stack.pop();
                                        return res;
-                       }
-                       // else
-                       return (type == 'string') ? parser : this.parsers.error;
-               },
-               typeOf: function( obj ) {
-                       var type;
-                       if ( obj === null ) {
-                               type = "null";
-                       } else if (typeof obj === "undefined") {
-                               type = "undefined";
-                       } else if (QUnit.is("RegExp", obj)) {
-                               type = "regexp";
-                       } else if (QUnit.is("Date", obj)) {
-                               type = "date";
-                       } else if (QUnit.is("Function", obj)) {
-                               type = "function";
-                       } else if (typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined") {
-                               type = "window";
-                       } else if (obj.nodeType === 9) {
-                               type = "document";
-                       } else if (obj.nodeType) {
-                               type = "node";
-                       } else if (
-                               // native arrays
-                               toString.call( obj ) === "[object Array]" ||
-                               // NodeList objects
-                               ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
-                       ) {
-                               type = "array";
-                       } else {
-                               type = typeof obj;
-                       }
-                       return type;
-               },
-               separator: function() {
-                       return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
-               },
-               indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
-                       if ( !this.multiline ) {
-                               return '';
-                       }
-                       var chr = this.indentChar;
-                       if ( this.HTML ) {
-                               chr = chr.replace(/\t/g,'   ').replace(/ /g,'&nbsp;');
-                       }
-                       return new Array( this._depth_ + (extra||0) ).join(chr);
-               },
-               up: function( a ) {
-                       this._depth_ += a || 1;
-               },
-               down: function( a ) {
-                       this._depth_ -= a || 1;
-               },
-               setParser: function( name, parser ) {
-                       this.parsers[name] = parser;
-               },
-               // The next 3 are exposed so you can use them
-               quote: quote,
-               literal: literal,
-               join: join,
-               //
-               _depth_: 1,
-               // This is the list of parsers, to modify them, use jsDump.setParser
-               parsers: {
-                       window: '[Window]',
-                       document: '[Document]',
-                       error: '[ERROR]', //when no parser is found, shouldn't happen
-                       unknown: '[Unknown]',
-                       'null': 'null',
-                       'undefined': 'undefined',
-                       'function': function( fn ) {
-                               var ret = 'function',
-                                       name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
-                               if ( name ) {
-                                       ret += ' ' + name;
                                }
-                               ret += '(';
-
-                               ret = [ ret, QUnit.jsDump.parse( fn, 'functionArgs' ), '){'].join('');
-                               return join( ret, QUnit.jsDump.parse(fn,'functionCode'), '}' );
+                               // else
+                               return ( type == "string" ) ? parser : this.parsers.error;
                        },
-                       array: array,
-                       nodelist: array,
-                       'arguments': array,
-                       object: function( map, stack ) {
-                               var ret = [ ], keys, key, val, i;
-                               QUnit.jsDump.up();
-                               if (Object.keys) {
-                                       keys = Object.keys( map );
+                       typeOf: function( obj ) {
+                               var type;
+                               if ( obj === null ) {
+                                       type = "null";
+                               } else if ( typeof obj === "undefined" ) {
+                                       type = "undefined";
+                               } else if ( QUnit.is( "regexp", obj) ) {
+                                       type = "regexp";
+                               } else if ( QUnit.is( "date", obj) ) {
+                                       type = "date";
+                               } else if ( QUnit.is( "function", obj) ) {
+                                       type = "function";
+                               } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
+                                       type = "window";
+                               } else if ( obj.nodeType === 9 ) {
+                                       type = "document";
+                               } else if ( obj.nodeType ) {
+                                       type = "node";
+                               } else if (
+                                       // native arrays
+                                       toString.call( obj ) === "[object Array]" ||
+                                       // NodeList objects
+                                       ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
+                               ) {
+                                       type = "array";
                                } else {
-                                       keys = [];
-                                       for (key in map) { keys.push( key ); }
+                                       type = typeof obj;
+                               }
+                               return type;
+                       },
+                       separator: function() {
+                               return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
+                       },
+                       indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
+                               if ( !this.multiline ) {
+                                       return "";
                                }
-                               keys.sort();
-                               for (i = 0; i < keys.length; i++) {
-                                       key = keys[ i ];
-                                       val = map[ key ];
-                                       ret.push( QUnit.jsDump.parse( key, 'key' ) + ': ' + QUnit.jsDump.parse( val, undefined, stack ) );
+                               var chr = this.indentChar;
+                               if ( this.HTML ) {
+                                       chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
                                }
-                               QUnit.jsDump.down();
-                               return join( '{', ret, '}' );
+                               return new Array( this._depth_ + (extra||0) ).join(chr);
                        },
-                       node: function( node ) {
-                               var open = QUnit.jsDump.HTML ? '&lt;' : '<',
-                                       close = QUnit.jsDump.HTML ? '&gt;' : '>';
-
-                               var tag = node.nodeName.toLowerCase(),
-                                       ret = open + tag;
+                       up: function( a ) {
+                               this._depth_ += a || 1;
+                       },
+                       down: function( a ) {
+                               this._depth_ -= a || 1;
+                       },
+                       setParser: function( name, parser ) {
+                               this.parsers[name] = parser;
+                       },
+                       // The next 3 are exposed so you can use them
+                       quote: quote,
+                       literal: literal,
+                       join: join,
+                       //
+                       _depth_: 1,
+                       // This is the list of parsers, to modify them, use jsDump.setParser
+                       parsers: {
+                               window: "[Window]",
+                               document: "[Document]",
+                               error: "[ERROR]", //when no parser is found, shouldn"t happen
+                               unknown: "[Unknown]",
+                               "null": "null",
+                               "undefined": "undefined",
+                               "function": function( fn ) {
+                                       var ret = "function",
+                                               name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];//functions never have name in IE
+
+                                       if ( name ) {
+                                               ret += " " + name;
+                                       }
+                                       ret += "( ";
+
+                                       ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
+                                       return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
+                               },
+                               array: array,
+                               nodelist: array,
+                               "arguments": array,
+                               object: function( map, stack ) {
+                                       var ret = [ ], keys, key, val, i;
+                                       QUnit.jsDump.up();
+                                       if ( Object.keys ) {
+                                               keys = Object.keys( map );
+                                       } else {
+                                               keys = [];
+                                               for ( key in map ) {
+                                                       keys.push( key );
+                                               }
+                                       }
+                                       keys.sort();
+                                       for ( i = 0; i < keys.length; i++ ) {
+                                               key = keys[ i ];
+                                               val = map[ key ];
+                                               ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
+                                       }
+                                       QUnit.jsDump.down();
+                                       return join( "{", ret, "}" );
+                               },
+                               node: function( node ) {
+                                       var a, val,
+                                               open = QUnit.jsDump.HTML ? "&lt;" : "<",
+                                               close = QUnit.jsDump.HTML ? "&gt;" : ">",
+                                               tag = node.nodeName.toLowerCase(),
+                                               ret = open + tag;
+
+                                       for ( a in QUnit.jsDump.DOMAttrs ) {
+                                               val = node[ QUnit.jsDump.DOMAttrs[a] ];
+                                               if ( val ) {
+                                                       ret += " " + a + "=" + QUnit.jsDump.parse( val, "attribute" );
+                                               }
+                                       }
+                                       return ret + close + open + "/" + tag + close;
+                               },
+                               functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function
+                                       var args,
+                                               l = fn.length;
+
+                                       if ( !l ) {
+                                               return "";
+                                       }
 
-                               for ( var a in QUnit.jsDump.DOMAttrs ) {
-                                       var val = node[QUnit.jsDump.DOMAttrs[a]];
-                                       if ( val ) {
-                                               ret += ' ' + a + '=' + QUnit.jsDump.parse( val, 'attribute' );
+                                       args = new Array(l);
+                                       while ( l-- ) {
+                                               args[l] = String.fromCharCode(97+l);//97 is 'a'
                                        }
-                               }
-                               return ret + close + open + '/' + tag + close;
+                                       return " " + args.join( ", " ) + " ";
+                               },
+                               key: quote, //object calls it internally, the key part of an item in a map
+                               functionCode: "[code]", //function calls it internally, it's the content of the function
+                               attribute: quote, //node calls it internally, it's an html attribute value
+                               string: quote,
+                               date: quote,
+                               regexp: literal, //regex
+                               number: literal,
+                               "boolean": literal
                        },
-                       functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function
-                               var l = fn.length;
-                               if ( !l ) {
-                                       return '';
-                               }
-
-                               var args = new Array(l);
-                               while ( l-- ) {
-                                       args[l] = String.fromCharCode(97+l);//97 is 'a'
-                               }
-                               return ' ' + args.join(', ') + ' ';
+                       DOMAttrs: {
+                               //attributes to dump from nodes, name=>realName
+                               id: "id",
+                               name: "name",
+                               "class": "className"
                        },
-                       key: quote, //object calls it internally, the key part of an item in a map
-                       functionCode: '[code]', //function calls it internally, it's the content of the function
-                       attribute: quote, //node calls it internally, it's an html attribute value
-                       string: quote,
-                       date: quote,
-                       regexp: literal, //regex
-                       number: literal,
-                       'boolean': literal
-               },
-               DOMAttrs:{//attributes to dump from nodes, name=>realName
-                       id:'id',
-                       name:'name',
-                       'class':'className'
-               },
-               HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
-               indentChar:'  ',//indentation unit
-               multiline:true //if true, items in a collection, are separated by a \n, else just a space.
-       };
+                       HTML: false,//if true, entities are escaped ( <, >, \t, space and \n )
+                       indentChar: "  ",//indentation unit
+                       multiline: true //if true, items in a collection, are separated by a \n, else just a space.
+               };
 
        return jsDump;
 }());
 
 // from Sizzle.js
 function getText( elems ) {
-       var ret = "", elem;
+       var i, elem,
+               ret = "";
 
-       for ( var i = 0; elems[i]; i++ ) {
+       for ( i = 0; elems[i]; i++ ) {
                elem = elems[i];
 
                // Get the text from text nodes and CDATA nodes
@@ -1501,7 +1649,7 @@ function getText( elems ) {
        return ret;
 }
 
-//from jquery.js
+// from jquery.js
 function inArray( elem, array ) {
        if ( array.indexOf ) {
                return array.indexOf( elem );
@@ -1528,73 +1676,75 @@ function inArray( elem, array ) {
  *
  * Usage: QUnit.diff(expected, actual)
  *
- * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
+ * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
  */
 QUnit.diff = (function() {
-       function diff(o, n) {
-               var ns = {};
-               var os = {};
-               var i;
-
-               for (i = 0; i < n.length; i++) {
-                       if (ns[n[i]] == null) {
-                               ns[n[i]] = {
+       function diff( o, n ) {
+               var i,
+                       ns = {},
+                       os = {};
+
+               for ( i = 0; i < n.length; i++ ) {
+                       if ( ns[ n[i] ] == null ) {
+                               ns[ n[i] ] = {
                                        rows: [],
                                        o: null
                                };
                        }
-                       ns[n[i]].rows.push(i);
+                       ns[ n[i] ].rows.push( i );
                }
 
-               for (i = 0; i < o.length; i++) {
-                       if (os[o[i]] == null) {
-                               os[o[i]] = {
+               for ( i = 0; i < o.length; i++ ) {
+                       if ( os[ o[i] ] == null ) {
+                               os[ o[i] ] = {
                                        rows: [],
                                        n: null
                                };
                        }
-                       os[o[i]].rows.push(i);
+                       os[ o[i] ].rows.push( i );
                }
 
-               for (i in ns) {
+               for ( i in ns ) {
                        if ( !hasOwn.call( ns, i ) ) {
                                continue;
                        }
-                       if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) {
-                               n[ns[i].rows[0]] = {
-                                       text: n[ns[i].rows[0]],
+                       if ( ns[i].rows.length == 1 && typeof os[i] != "undefined" && os[i].rows.length == 1 ) {
+                               n[ ns[i].rows[0] ] = {
+                                       text: n[ ns[i].rows[0] ],
                                        row: os[i].rows[0]
                                };
-                               o[os[i].rows[0]] = {
-                                       text: o[os[i].rows[0]],
+                               o[ os[i].rows[0] ] = {
+                                       text: o[ os[i].rows[0] ],
                                        row: ns[i].rows[0]
                                };
                        }
                }
 
-               for (i = 0; i < n.length - 1; i++) {
-                       if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null &&
-                       n[i + 1] == o[n[i].row + 1]) {
-                               n[i + 1] = {
-                                       text: n[i + 1],
+               for ( i = 0; i < n.length - 1; i++ ) {
+                       if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
+                                               n[ i + 1 ] == o[ n[i].row + 1 ] ) {
+
+                               n[ i + 1 ] = {
+                                       text: n[ i + 1 ],
                                        row: n[i].row + 1
                                };
-                               o[n[i].row + 1] = {
-                                       text: o[n[i].row + 1],
+                               o[ n[i].row + 1 ] = {
+                                       text: o[ n[i].row + 1 ],
                                        row: i + 1
                                };
                        }
                }
 
-               for (i = n.length - 1; i > 0; i--) {
-                       if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null &&
-                       n[i - 1] == o[n[i].row - 1]) {
-                               n[i - 1] = {
-                                       text: n[i - 1],
+               for ( i = n.length - 1; i > 0; i-- ) {
+                       if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
+                                               n[ i - 1 ] == o[ n[i].row - 1 ]) {
+
+                               n[ i - 1 ] = {
+                                       text: n[ i - 1 ],
                                        row: n[i].row - 1
                                };
-                               o[n[i].row - 1] = {
-                                       text: o[n[i].row - 1],
+                               o[ n[i].row - 1 ] = {
+                                       text: o[ n[i].row - 1 ],
                                        row: i - 1
                                };
                        }
@@ -1606,50 +1756,52 @@ QUnit.diff = (function() {
                };
        }
 
-       return function(o, n) {
-               o = o.replace(/\s+$/, '');
-               n = n.replace(/\s+$/, '');
-               var out = diff(o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/));
+       return function( o, n ) {
+               o = o.replace( /\s+$/, "" );
+               n = n.replace( /\s+$/, "" );
 
-               var str = "";
-               var i;
+               var i, pre,
+                       str = "",
+                       out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
+                       oSpace = o.match(/\s+/g),
+                       nSpace = n.match(/\s+/g);
 
-               var oSpace = o.match(/\s+/g);
-               if (oSpace == null) {
-                       oSpace = [" "];
+               if ( oSpace == null ) {
+                       oSpace = [ " " ];
                }
                else {
-                       oSpace.push(" ");
+                       oSpace.push( " " );
                }
-               var nSpace = n.match(/\s+/g);
-               if (nSpace == null) {
-                       nSpace = [" "];
+
+               if ( nSpace == null ) {
+                       nSpace = [ " " ];
                }
                else {
-                       nSpace.push(" ");
+                       nSpace.push( " " );
                }
 
-               if (out.n.length === 0) {
-                       for (i = 0; i < out.o.length; i++) {
-                               str += '<del>' + out.o[i] + oSpace[i] + "</del>";
+               if ( out.n.length === 0 ) {
+                       for ( i = 0; i < out.o.length; i++ ) {
+                               str += "<del>" + out.o[i] + oSpace[i] + "</del>";
                        }
                }
                else {
-                       if (out.n[0].text == null) {
-                               for (n = 0; n < out.o.length && out.o[n].text == null; n++) {
-                                       str += '<del>' + out.o[n] + oSpace[n] + "</del>";
+                       if ( out.n[0].text == null ) {
+                               for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
+                                       str += "<del>" + out.o[n] + oSpace[n] + "</del>";
                                }
                        }
 
-                       for (i = 0; i < out.n.length; i++) {
+                       for ( i = 0; i < out.n.length; i++ ) {
                                if (out.n[i].text == null) {
-                                       str += '<ins>' + out.n[i] + nSpace[i] + "</ins>";
+                                       str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
                                }
                                else {
-                                       var pre = "";
+                                       // `pre` initialized at top of scope
+                                       pre = "";
 
-                                       for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) {
-                                               pre += '<del>' + out.o[n] + oSpace[n] + "</del>";
+                                       for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
+                                               pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
                                        }
                                        str += " " + out.n[i].text + nSpace[i] + pre;
                                }
@@ -1661,7 +1813,7 @@ QUnit.diff = (function() {
 }());
 
 // for CommonJS enviroments, export everything
-if ( typeof exports !== "undefined" || typeof require !== "undefined" ) {
+if ( typeof exports !== "undefined" ) {
        extend(exports, QUnit);
 }
 
index f37529f..7633118 100644 (file)
@@ -2159,6 +2159,85 @@ Mixed list
 
 !! end
 
+!! test
+Nested lists 1
+!! input
+*foo
+**bar
+!! result
+<ul><li>foo
+<ul><li>bar
+</li></ul>
+</li></ul>
+
+!! end
+
+!! test
+Nested lists 2
+!! input
+**foo
+*bar
+!! result
+<ul><li><ul><li>foo
+</li></ul>
+</li><li>bar
+</li></ul>
+
+!! end
+
+!! test
+Nested lists 3 (first element empty)
+!! input
+*
+**bar
+!! result
+<ul><li>
+<ul><li>bar
+</li></ul>
+</li></ul>
+
+!! end
+
+!! test
+Nested lists 4 (first element empty)
+!! input
+**
+*bar
+!! result
+<ul><li><ul><li>
+</li></ul>
+</li><li>bar
+</li></ul>
+
+!! end
+
+!! test
+Nested lists 5 (both elements empty)
+!! input
+**
+*
+!! result
+<ul><li><ul><li>
+</li></ul>
+</li><li>
+</li></ul>
+
+!! end
+
+!! test
+Nested lists 6 (both elements empty)
+!! input
+*
+**
+!! result
+<ul><li>
+<ul><li>
+</li></ul>
+</li></ul>
+
+!! end
+
+
 !! test
 List items are not parsed correctly following a <pre> block (bug 785)
 !! input