Merge "(bug 33222) Add parentid to revision in export xml"
authorAaron Schulz <aschulz@wikimedia.org>
Sat, 16 Jun 2012 04:25:52 +0000 (04:25 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 16 Jun 2012 04:25:52 +0000 (04:25 +0000)
296 files changed:
RELEASE-NOTES-1.20
docs/distributors.txt
docs/hooks.txt
includes/Article.php
includes/AutoLoader.php
includes/DefaultSettings.php
includes/EditPage.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/ImagePage.php
includes/Linker.php
includes/Pager.php
includes/Preferences.php
includes/Setup.php
includes/SiteConfiguration.php
includes/SiteStats.php
includes/SkinTemplate.php
includes/Title.php
includes/WikiPage.php
includes/actions/HistoryAction.php
includes/api/ApiBase.php
includes/api/ApiBlock.php
includes/api/ApiComparePages.php
includes/api/ApiDelete.php
includes/api/ApiEditPage.php
includes/api/ApiEmailUser.php
includes/api/ApiExpandTemplates.php
includes/api/ApiFileRevert.php
includes/api/ApiImport.php
includes/api/ApiLogin.php
includes/api/ApiLogout.php
includes/api/ApiMove.php
includes/api/ApiOptions.php
includes/api/ApiParamInfo.php
includes/api/ApiPatrol.php
includes/api/ApiProtect.php
includes/api/ApiPurge.php
includes/api/ApiQueryAllCategories.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryAllLinks.php
includes/api/ApiQueryAllMessages.php
includes/api/ApiQueryAllPages.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategories.php
includes/api/ApiQueryCategoryInfo.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryDuplicateFiles.php
includes/api/ApiQueryExtLinksUsage.php
includes/api/ApiQueryExternalLinks.php
includes/api/ApiQueryFilearchive.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryIWLinks.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryImages.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryLangBacklinks.php
includes/api/ApiQueryLangLinks.php
includes/api/ApiQueryLinks.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryQueryPage.php
includes/api/ApiQueryRandom.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQuerySearch.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryTags.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiQueryWatchlistRaw.php
includes/api/ApiRollback.php
includes/api/ApiTokens.php
includes/api/ApiUnblock.php
includes/api/ApiUndelete.php
includes/api/ApiUpload.php
includes/api/ApiWatch.php
includes/db/Database.php
includes/db/DatabasePostgres.php
includes/db/IORMTable.php
includes/db/ORMIterator.php [new file with mode: 0644]
includes/db/ORMResult.php
includes/diff/DifferenceEngine.php
includes/filerepo/backend/FileBackendStore.php
includes/filerepo/backend/SwiftFileBackend.php
includes/filerepo/backend/TempFSFile.php
includes/installer/CliInstaller.php
includes/installer/LocalSettingsGenerator.php
includes/installer/WebInstaller.php
includes/interwiki/Interwiki.php
includes/logging/LogEventsList.php
includes/objectcache/DBABagOStuff.php
includes/objectcache/MemcachedPeclBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPopularpages.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
languages/Language.php
languages/classes/LanguageSe.php
languages/classes/LanguageSgs.php
languages/classes/LanguageSh.php
languages/classes/LanguageShi.php
languages/classes/LanguageSk.php
languages/classes/LanguageSl.php
languages/classes/LanguageSma.php
languages/classes/LanguageSr.php
languages/classes/LanguageSr_ec.php
languages/classes/LanguageSr_el.php
languages/classes/LanguageTg.php
languages/classes/LanguageTi.php
languages/classes/LanguageTl.php
languages/classes/LanguageTr.php
languages/classes/LanguageTyv.php
languages/classes/LanguageUk.php
languages/classes/LanguageWa.php
languages/classes/LanguageYue.php
languages/classes/LanguageZh.php
languages/classes/LanguageZh_hans.php
languages/messages/MessagesAn.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArn.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesBa.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBn.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCs.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEn.php
languages/messages/MessagesEs.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesGl.php
languages/messages/MessagesGn.php
languages/messages/MessagesGu.php
languages/messages/MessagesHe.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKa.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLad.php
languages/messages/MessagesLb.php
languages/messages/MessagesLus.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesNah.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesNo.php
languages/messages/MessagesOr.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesQug.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSah.php
languages/messages/MessagesSat.php
languages/messages/MessagesSe.php
languages/messages/MessagesSl.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTr.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUk.php
languages/messages/MessagesVec.php
languages/messages/MessagesVi.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/cleanupSpam.php
maintenance/formatInstallDoc.php
maintenance/importSiteScripts.php
maintenance/install.php
maintenance/language/generateCollationData.php
maintenance/language/messages.inc
maintenance/locking/LockServerDaemon.php
maintenance/proxy_check.php
maintenance/purgeParserCache.php
maintenance/purgeStaleMemcachedText.php
maintenance/refreshLinks.php
maintenance/storage/checkStorage.php
maintenance/term/MWTerm.php
mw-config/index.php
mw-config/overrides.php [new file with mode: 0644]
resources/Resources.php
resources/jquery.effects/jquery.effects.blind.js
resources/jquery.effects/jquery.effects.bounce.js
resources/jquery.effects/jquery.effects.clip.js
resources/jquery.effects/jquery.effects.core.js
resources/jquery.effects/jquery.effects.drop.js
resources/jquery.effects/jquery.effects.explode.js
resources/jquery.effects/jquery.effects.fade.js
resources/jquery.effects/jquery.effects.fold.js
resources/jquery.effects/jquery.effects.highlight.js
resources/jquery.effects/jquery.effects.pulsate.js
resources/jquery.effects/jquery.effects.scale.js
resources/jquery.effects/jquery.effects.shake.js
resources/jquery.effects/jquery.effects.slide.js
resources/jquery.effects/jquery.effects.transfer.js
resources/jquery.ui/i18n/jquery.ui.datepicker-ar.js
resources/jquery.ui/i18n/jquery.ui.datepicker-eu.js
resources/jquery.ui/i18n/jquery.ui.datepicker-ka.js [new file with mode: 0644]
resources/jquery.ui/jquery.ui.accordion.js
resources/jquery.ui/jquery.ui.autocomplete.js
resources/jquery.ui/jquery.ui.button.js
resources/jquery.ui/jquery.ui.core.js
resources/jquery.ui/jquery.ui.datepicker.js
resources/jquery.ui/jquery.ui.dialog.js
resources/jquery.ui/jquery.ui.draggable.js
resources/jquery.ui/jquery.ui.droppable.js
resources/jquery.ui/jquery.ui.mouse.js
resources/jquery.ui/jquery.ui.position.js
resources/jquery.ui/jquery.ui.progressbar.js
resources/jquery.ui/jquery.ui.resizable.js
resources/jquery.ui/jquery.ui.selectable.js
resources/jquery.ui/jquery.ui.slider.js
resources/jquery.ui/jquery.ui.sortable.js
resources/jquery.ui/jquery.ui.tabs.js
resources/jquery.ui/jquery.ui.widget.js
resources/jquery.ui/themes/default/jquery.ui.accordion.css
resources/jquery.ui/themes/default/jquery.ui.autocomplete.css
resources/jquery.ui/themes/default/jquery.ui.button.css
resources/jquery.ui/themes/default/jquery.ui.core.css
resources/jquery.ui/themes/default/jquery.ui.datepicker.css
resources/jquery.ui/themes/default/jquery.ui.dialog.css
resources/jquery.ui/themes/default/jquery.ui.progressbar.css
resources/jquery.ui/themes/default/jquery.ui.resizable.css
resources/jquery.ui/themes/default/jquery.ui.selectable.css
resources/jquery.ui/themes/default/jquery.ui.slider.css
resources/jquery.ui/themes/default/jquery.ui.tabs.css
resources/jquery.ui/themes/default/jquery.ui.theme.css
resources/jquery/jquery.qunit.completenessTest.js
resources/mediawiki.language/languages/bs.js
resources/mediawiki.language/languages/dsb.js
resources/mediawiki.language/languages/fi.js [new file with mode: 0644]
resources/mediawiki.language/languages/ga.js
resources/mediawiki.language/languages/he.js
resources/mediawiki.language/languages/hsb.js
resources/mediawiki.language/languages/hu.js [new file with mode: 0644]
resources/mediawiki.language/languages/hy.js
resources/mediawiki.language/languages/la.js [new file with mode: 0644]
resources/mediawiki.language/languages/os.js [new file with mode: 0644]
resources/mediawiki.language/languages/ru.js
resources/mediawiki.language/languages/sl.js
resources/mediawiki.language/languages/uk.js
resources/mediawiki.language/mediawiki.language.init.js
resources/mediawiki.special/mediawiki.special.search.js
resources/mediawiki/mediawiki.Uri.js
resources/mediawiki/mediawiki.util.js
tests/phpunit/includes/db/ORMRowTest.php
tests/phpunit/maintenance/backupPrefetchTest.php
tests/phpunit/maintenance/backupTextPassTest.php
tests/phpunit/maintenance/fetchTextTest.php
tests/phpunit/maintenance/getSlaveServerTest.php

index 350b6b9..7b53839 100644 (file)
@@ -68,6 +68,9 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (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
+* cleanupSpam.php now can delete spam pages if --delete was specified instead of blanking
+  them.
+* Added new hook ChangePasswordForm to allow adding of additional fields in Special:ChangePassword
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -115,6 +118,9 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 25946) The message on the top of Special:RecentChanges is now displayed
   in user language instead of content language
 * (bug 35264) Wrong type used for <ns> in export.xsd
+* (bug 24985) Use $wgTmpDirectory as the default temp directory so that people
+  who don't have access to /tmp can specify an alternative.
+* (bug 27283) SqlBagOStuff breaks PostgreSQL transactions
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -132,6 +138,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 33224) add variants of content language to meta=siteinfo
 * (bug 36761) "Mark pages as visited" now submits previously established filter options
 * (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached
+* The paraminfo module now also contains result properties for most modules
 
 === Languages updated in 1.20 ===
 
index d298229..4a65431 100644 (file)
@@ -87,9 +87,9 @@ which the user can edit by hand thereafter.  It's just a plain old PHP file,
 and can contain any PHP statements.  It usually sets global variables that are
 used for configuration, and includes files used by any extensions.
 
-Distributors cannot easily add extra statements to the autogenerated
-LocalSettings.php at the present time -- although hacking mw-config/index.php
-would work.  It would be nice if this situation could be improved.
+Distributors can easily add extra statements to the autogenerated
+LocalSettings.php by changing mw-config/overrides.php (see that file for details
+and examples).
 
 There's a new maintenance/install.php script which could be used for performing
 an install through the command line.
index 8d4bdea..147e524 100644 (file)
@@ -331,6 +331,11 @@ descriptions.
 &$module: ApiBase Module object
 &$desc: Array of parameter descriptions
 
+'APIGetResultProperties': use this hook to mofify the properties
+in a module's result.
+&$module: ApiBase Module object
+&$properties: Array of properties
+
 'APIQueryAfterExecute': after calling the execute() method of an
 action=query submodule. Use this to extend core API modules.
 &$module: Module object
@@ -672,6 +677,10 @@ $output: OutputPage object in use
 'CategoryPageView': before viewing a categorypage in CategoryPage::view
 $catpage: CategoryPage instance
 
+'ChangePasswordForm': For extensions that need to add a field to the ChangePassword form
+via the Preferences form
+&$extraFields: An array of arrays that hold fields like would be passed to the pretty function.
+
 'ChangesListInsertArticleLink': Override or augment link to article in RC list.
 &$changesList: ChangesList instance.
 &$articlelink: HTML of link to article (already filled-in).
@@ -921,6 +930,14 @@ $fileVersions: array of undeleted versions. Empty if all versions were restored
 $user: user who performed the undeletion
 $reason: reason
 
+'FormatAutocomments': When an autocomment is formatted by the Linker
+ &$comment: Reference to the accumulated comment. Initially null, when set the default code will be skipped.
+ $pre: Initial part of the parsed comment before the call to the hook.
+ $auto: The extracted part of the parsed comment before the call to the hook.
+ $post: The final part of the parsed comment before the call to the hook.
+ $title: An optional title object used to links to sections. Can be null.
+ $local: Boolean indicating whether section links should refer to local page.
+
 'GetAutoPromoteGroups': When determining which autopromote groups a user
 is entitled to be in.
 &$user: user to promote.
index fdf0820..eb931d2 100644 (file)
@@ -496,7 +496,7 @@ class Article extends Page {
                if ( $outputPage->isPrintable() ) {
                        $parserOptions->setIsPrintable( true );
                        $parserOptions->setEditSection( false );
-               } elseif ( !$this->isCurrent() || !$this->getTitle()->quickUserCan( 'edit' ) ) {
+               } elseif ( !$this->isCurrent() || !$this->getTitle()->quickUserCan( 'edit', $user ) ) {
                        $parserOptions->setEditSection( false );
                }
 
@@ -956,7 +956,7 @@ class Article extends Page {
                $user = $this->getContext()->getUser();
                $rcid = $request->getVal( 'rcid' );
 
-               if ( !$rcid || !$this->getTitle()->quickUserCan( 'patrol' ) ) {
+               if ( !$rcid || !$this->getTitle()->quickUserCan( 'patrol', $user ) ) {
                        return;
                }
 
@@ -1137,9 +1137,11 @@ class Article extends Page {
 
                $current = ( $oldid == $this->mPage->getLatest() );
                $language = $this->getContext()->getLanguage();
-               $td = $language->timeanddate( $timestamp, true );
-               $tddate = $language->date( $timestamp, true );
-               $tdtime = $language->time( $timestamp, true );
+               $user = $this->getContext()->getUser();
+
+               $td = $language->userTimeAndDate( $timestamp, $user );
+               $tddate = $language->userDate( $timestamp, $user );
+               $tdtime = $language->userTime( $timestamp, $user );
 
                # Show user links if allowed to see them. If hidden, then show them only if requested...
                $userlinks = Linker::revUserTools( $revision, !$unhide );
@@ -1224,7 +1226,7 @@ class Article extends Page {
                                array( 'known', 'noclasses' )
                        );
 
-               $cdel = Linker::getRevDeleteLink( $this->getContext()->getUser(), $revision, $this->getTitle() );
+               $cdel = Linker::getRevDeleteLink( $user, $revision, $this->getTitle() );
                if ( $cdel !== '' ) {
                        $cdel .= ' ';
                }
@@ -1406,7 +1408,7 @@ class Article extends Page {
                        }
                }
 
-               return $this->confirmDelete( $reason );
+               $this->confirmDelete( $reason );
        }
 
        /**
index 78ed450..09eea7d 100644 (file)
@@ -470,6 +470,7 @@ $wgAutoloadLocalClasses = array(
        'MySQLMasterPos' => 'includes/db/DatabaseMysql.php',
        'ORAField' => 'includes/db/DatabaseOracle.php',
        'ORAResult' => 'includes/db/DatabaseOracle.php',
+       'ORMIterator' => 'includes/db/ORMIterator',
        'ORMResult' => 'includes/db/ORMResult.php',
        'ORMRow' => 'includes/db/ORMRow.php',
        'ORMTable' => 'includes/db/ORMTable.php',
@@ -992,6 +993,9 @@ $wgAutoloadLocalClasses = array(
        'AnsiTermColorer'  => 'maintenance/term/MWTerm.php',
        'DummyTermColorer' => 'maintenance/term/MWTerm.php',
 
+       # mw-config
+       'InstallerOverrides' => 'mw-config/overrides.php',
+
        # tests
        'DbTestPreviewer' => 'tests/testHelpers.inc',
        'DbTestRecorder' => 'tests/testHelpers.inc',
index 0a3d4ad..c2606ce 100644 (file)
@@ -240,7 +240,16 @@ $wgAppleTouchIcon = false;
  * The local filesystem path to a temporary directory. This is not required to
  * be web accessible.
  *
- * Will default to "{$wgUploadDirectory}/tmp" in Setup.php
+ * When this setting is set to false, its value will be set through a call
+ * to wfTempDir(). See that methods implementation for the actul detection
+ * logic.
+ *
+ * Developers should use the global function wfTempDir() instead of this
+ * variable.
+ *
+ * @see wfTempDir()
+ * @note Default modified to false in v1.20
+ *
  */
 $wgTmpDirectory = false;
 
@@ -3459,12 +3468,19 @@ $wgSysopEmailBans = true;
  * Limits on the possible sizes of range blocks.
  *
  * 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 for IPv4.
+ * /1 is a small range and a /31 is a large range. For IPv4, setting a limit of
+ * half the number of bits avoids such errors, and allows entire ISPs to be
+ * blocked using a small number of range blocks.
+ *
+ * For IPv6, RFC 3177 recommends that a /48 be allocated to every residential
+ * customer, so range blocks larger than /64 (half the number of bits) will
+ * plainly be required. RFC 4692 implies that a very large ISP may be
+ * allocated a /19 if a generous HD-Ratio of 0.8 is used, so we will use that
+ * as our limit. As of 2012, blocking the whole world would require a /4 range.
  */
 $wgBlockCIDRLimit = array(
        'IPv4' => 16, # Blocks larger than a /16 (64k addresses) will not be allowed
-       'IPv6' => 32, # Blocks larger than a /32 (~7.9x10^28 addresses) will not be allowed
+       'IPv6' => 19,
 );
 
 /**
index 9e337fd..6e6f825 100644 (file)
@@ -1063,7 +1063,6 @@ class EditPage {
                                        '</div>';
                                return true;
                }
-               return false;
        }
 
        /**
index 4cfd946..ba9bf74 100644 (file)
@@ -2610,11 +2610,10 @@ function swap( &$x, &$y ) {
 }
 
 /**
- * Tries to get the system directory for temporary files. The TMPDIR, TMP, and
- * TEMP environment variables are then checked in sequence, and if none are set
- * try sys_get_temp_dir() for PHP >= 5.2.1. All else fails, return /tmp for Unix
- * or C:\Windows\Temp for Windows and hope for the best.
- * It is common to call it with tempnam().
+ * Tries to get the system directory for temporary files. First
+ * $wgTmpDirectory is checked, and then the TMPDIR, TMP, and TEMP
+ * environment variables are then checked in sequence, and if none are
+ * set try sys_get_temp_dir().
  *
  * NOTE: When possible, use instead the tmpfile() function to create
  * temporary files to avoid race conditions on file creation, etc.
@@ -2622,8 +2621,15 @@ function swap( &$x, &$y ) {
  * @return String
  */
 function wfTempDir() {
-       foreach( array( 'TMPDIR', 'TMP', 'TEMP' ) as $var ) {
-               $tmp = getenv( $var );
+       global $wgTmpDirectory;
+
+       if ( $wgTmpDirectory !== false ) {
+               return $wgTmpDirectory;
+       }
+
+       $tmpDir = array_map( "getenv", array( 'TMPDIR', 'TMP', 'TEMP' ) );
+
+       foreach( $tmpDir as $tmp ) {
                if( $tmp && file_exists( $tmp ) && is_dir( $tmp ) && is_writable( $tmp ) ) {
                        return $tmp;
                }
index 4f69638..36008fb 100644 (file)
@@ -727,7 +727,7 @@ class HTMLForm extends ContextSource {
         * @param $msg String message key
         */
        public function setSubmitTextMsg( $msg ) {
-               return $this->setSubmitText( $this->msg( $msg )->text() );
+               $this->setSubmitText( $this->msg( $msg )->text() );
        }
 
        /**
@@ -775,7 +775,7 @@ class HTMLForm extends ContextSource {
         * @param $msg String message key
         */
        public function setWrapperLegendMsg( $msg ) {
-               return $this->setWrapperLegend( $this->msg( $msg )->escaped() );
+               $this->setWrapperLegend( $this->msg( $msg )->escaped() );
        }
 
        /**
index b1a5057..8f683e9 100644 (file)
@@ -1114,8 +1114,11 @@ class ImageHistoryList extends ContextSource {
                        $row .= '<span class="history-deleted">' . wfMsgHtml( 'rev-deleted-user' ) . '</span>';
                } else {
                        if ( $local ) {
-                               $row .= Linker::userLink( $userId, $userText ) . ' <span style="white-space: nowrap;">' .
-                               Linker::userToolLinks( $userId, $userText ) . '</span>';
+                               $row .= Linker::userLink( $userId, $userText );
+                               $row .= $this->getContext()->msg( 'word-separator' )->plain();
+                               $row .= '<span style="white-space: nowrap;">';
+                               $row .= Linker::userToolLinks( $userId, $userText );
+                               $row .= '</span>';
                        } else {
                                $row .= htmlspecialchars( $userText );
                        }
index 722df3a..9fcac65 100644 (file)
@@ -1041,7 +1041,10 @@ class Linker {
                wfRunHooks( 'UserToolLinksEdit', array( $userId, $userText, &$items ) );
 
                if ( $items ) {
-                       return ' <span class="mw-usertoollinks">' . wfMessage( 'parentheses' )->rawParams( $wgLang->pipeList( $items ) )->escaped() . '</span>';
+                       return wfMessage( 'word-separator' )->plain()
+                               . '<span class="mw-usertoollinks">'
+                               . wfMessage( 'parentheses' )->rawParams( $wgLang->pipeList( $items ) )->escaped()
+                               . '</span>';
                } else {
                        return '';
                }
@@ -1125,8 +1128,9 @@ class Linker {
                } elseif ( $rev->userCan( Revision::DELETED_USER ) ) {
                        $userId = $rev->getUser( Revision::FOR_THIS_USER );
                        $userText = $rev->getUserText( Revision::FOR_THIS_USER );
-                       $link = self::userLink( $userId, $userText ) .
-                               ' ' . self::userToolLinks( $userId, $userText );
+                       $link = self::userLink( $userId, $userText )
+                               . wfMessage( 'word-separator' )->plain()
+                               . self::userToolLinks( $userId, $userText );
                } else {
                        $link = wfMsgHtml( 'rev-deleted-user' );
                }
@@ -1212,41 +1216,45 @@ class Linker {
                $pre = $match[1];
                $auto = $match[2];
                $post = $match[3];
-               $link = '';
-               if ( $title ) {
-                       $section = $auto;
-
-                       # Remove links that a user may have manually put in the autosummary
-                       # This could be improved by copying as much of Parser::stripSectionName as desired.
-                       $section = str_replace( '[[:', '', $section );
-                       $section = str_replace( '[[', '', $section );
-                       $section = str_replace( ']]', '', $section );
-
-                       $section = Sanitizer::normalizeSectionNameWhitespace( $section ); # bug 22784
-                       if ( $local ) {
-                               $sectionTitle = Title::newFromText( '#' . $section );
-                       } else {
-                               $sectionTitle = Title::makeTitleSafe( $title->getNamespace(),
-                                       $title->getDBkey(), $section );
+               $comment = null;
+               wfRunHooks( 'FormatAutocomments', array( &$comment, $pre, $auto, $post, $title, $local ) );
+               if ( $comment === null ) {
+                       $link = '';
+                       if ( $title ) {
+                               $section = $auto;
+
+                               # Remove links that a user may have manually put in the autosummary
+                               # This could be improved by copying as much of Parser::stripSectionName as desired.
+                               $section = str_replace( '[[:', '', $section );
+                               $section = str_replace( '[[', '', $section );
+                               $section = str_replace( ']]', '', $section );
+
+                               $section = Sanitizer::normalizeSectionNameWhitespace( $section ); # bug 22784
+                               if ( $local ) {
+                                       $sectionTitle = Title::newFromText( '#' . $section );
+                               } else {
+                                       $sectionTitle = Title::makeTitleSafe( $title->getNamespace(),
+                                               $title->getDBkey(), $section );
+                               }
+                               if ( $sectionTitle ) {
+                                       $link = self::link( $sectionTitle,
+                                               $wgLang->getArrow(), array(), array(),
+                                               'noclasses' );
+                               } else {
+                                       $link = '';
+                               }
                        }
-                       if ( $sectionTitle ) {
-                               $link = self::link( $sectionTitle,
-                                       $wgLang->getArrow(), array(), array(),
-                                       'noclasses' );
-                       } else {
-                               $link = '';
+                       if ( $pre ) {
+                               # written summary $presep autocomment (summary /* section */)
+                               $pre .= wfMsgExt( 'autocomment-prefix', array( 'escapenoentities', 'content' ) );
                        }
+                       if ( $post ) {
+                               # autocomment $postsep written summary (/* section */ summary)
+                               $auto .= wfMsgExt( 'colon-separator', array( 'escapenoentities', 'content' ) );
+                       }
+                       $auto = '<span class="autocomment">' . $auto . '</span>';
+                       $comment = $pre . $link . $wgLang->getDirMark() . '<span dir="auto">' . $auto . $post . '</span>';
                }
-               if ( $pre ) {
-                       # written summary $presep autocomment (summary /* section */)
-                       $pre .= wfMsgExt( 'autocomment-prefix', array( 'escapenoentities', 'content' ) );
-               }
-               if ( $post ) {
-                       # autocomment $postsep written summary (/* section */ summary)
-                       $auto .= wfMsgExt( 'colon-separator', array( 'escapenoentities', 'content' ) );
-               }
-               $auto = '<span class="autocomment">' . $auto . '</span>';
-               $comment = $pre . $link . $wgLang->getDirMark() . '<span dir="auto">' . $auto . $post . '</span>';
                return $comment;
        }
 
index 438a99a..bcd6d14 100644 (file)
@@ -682,35 +682,24 @@ abstract class AlphabeticPager extends IndexPager {
                        return $this->mNavigationBar;
                }
 
-               $lang = $this->getLanguage();
-
-               $opts = array( 'parsemag', 'escapenoentities' );
                $linkTexts = array(
-                       'prev' => wfMsgExt(
-                               'prevn',
-                               $opts,
-                               $lang->formatNum( $this->mLimit )
-                       ),
-                       'next' => wfMsgExt(
-                               'nextn',
-                               $opts,
-                               $lang->formatNum($this->mLimit )
-                       ),
-                       'first' => wfMsgExt( 'page_first', $opts ),
-                       'last' => wfMsgExt( 'page_last', $opts )
+                       'prev' => $this->msg( 'prevn' )->numParams( $this->mLimit )->escaped(),
+                       'next' => $this->msg( 'nextn' )->numParams( $this->mLimit )->escaped(),
+                       'first' => $this->msg( 'page_first' )->escaped(),
+                       'last' => $this->msg( 'page_last' )->escaped()
                );
 
+               $lang = $this->getLanguage();
+
                $pagingLinks = $this->getPagingLinks( $linkTexts );
                $limitLinks = $this->getLimitLinks();
                $limits = $lang->pipeList( $limitLinks );
 
-               $this->mNavigationBar = wfMessage( 'parentheses' )->rawParams(
-                       $lang->pipeList(
-                               array( $pagingLinks['first'],
-                                       $pagingLinks['last'] )
-                       ) )->escaped() . " " .
-                       wfMsgHtml( 'viewprevnext', $pagingLinks['prev'],
-                               $pagingLinks['next'], $limits );
+               $this->mNavigationBar = $this->msg( 'parentheses' )->rawParams(
+                       $lang->pipeList( array( $pagingLinks['first'],
+                       $pagingLinks['last'] ) ) )->escaped() . " " .
+                       $this->msg( 'viewprevnext' )->rawParams( $pagingLinks['prev'],
+                               $pagingLinks['next'], $limits )->escaped();
 
                if( !is_array( $this->getIndexField() ) ) {
                        # Early return to avoid undue nesting
@@ -724,21 +713,21 @@ abstract class AlphabeticPager extends IndexPager {
                        if( $first ) {
                                $first = false;
                        } else {
-                               $extra .= wfMsgExt( 'pipe-separator' , 'escapenoentities' );
+                               $extra .= $this->msg( 'pipe-separator' )->escaped();
                        }
 
                        if( $order == $this->mOrderType ) {
-                               $extra .= wfMsgHTML( $msgs[$order] );
+                               $extra .= $this->msg( $msgs[$order] )->escaped();
                        } else {
                                $extra .= $this->makeLink(
-                                       wfMsgHTML( $msgs[$order] ),
+                                       $this->msg( $msgs[$order] )->escaped(),
                                        array( 'order' => $order )
                                );
                        }
                }
 
                if( $extra !== '' ) {
-                       $extra = ' ' . wfMessage( 'parentheses' )->rawParams( $extra )->escaped();
+                       $extra = ' ' . $this->msg( 'parentheses' )->rawParams( $extra )->escaped();
                        $this->mNavigationBar .= $extra;
                }
 
@@ -776,35 +765,23 @@ abstract class ReverseChronologicalPager extends IndexPager {
                        return $this->mNavigationBar;
                }
 
-               $nicenumber = $this->getLanguage()->formatNum( $this->mLimit );
                $linkTexts = array(
-                       'prev' => wfMsgExt(
-                               'pager-newer-n',
-                               array( 'parsemag', 'escape' ),
-                               $nicenumber
-                       ),
-                       'next' => wfMsgExt(
-                               'pager-older-n',
-                               array( 'parsemag', 'escape' ),
-                               $nicenumber
-                       ),
-                       'first' => wfMsgHtml( 'histlast' ),
-                       'last' => wfMsgHtml( 'histfirst' )
+                       'prev' => $this->msg( 'pager-newer-n' )->numParams( $this->mLimit )->escaped(),
+                       'next' => $this->msg( 'pager-older-n' )->numParams( $this->mLimit )->escaped(),
+                       'first' => $this->msg( 'histlast' )->escaped(),
+                       'last' => $this->msg( 'histfirst' )->escaped()
                );
 
                $pagingLinks = $this->getPagingLinks( $linkTexts );
                $limitLinks = $this->getLimitLinks();
                $limits = $this->getLanguage()->pipeList( $limitLinks );
-               $firstLastLinks = wfMessage( 'parentheses' )->rawParams( "{$pagingLinks['first']}" .
-                       wfMsgExt( 'pipe-separator' , 'escapenoentities' ) .
+               $firstLastLinks = $this->msg( 'parentheses' )->rawParams( "{$pagingLinks['first']}" .
+                       $this->msg( 'pipe-separator' )->escaped() .
                        "{$pagingLinks['last']}" )->escaped();
 
                $this->mNavigationBar = $firstLastLinks . ' ' .
-                       wfMsgHTML(
-                               'viewprevnext',
-                               $pagingLinks['prev'], $pagingLinks['next'],
-                               $limits
-                       );
+                       $this->msg( 'viewprevnext' )->rawParams(
+                               $pagingLinks['prev'], $pagingLinks['next'], $limits )->escaped();
 
                return $this->mNavigationBar;
        }
@@ -917,13 +894,13 @@ abstract class TablePager extends IndexPager {
                                                $image = 'Arr_d.png';
                                                $query['asc'] = '1';
                                                $query['desc'] = '';
-                                               $alt = htmlspecialchars( wfMsg( 'descending_abbrev' ) );
+                                               $alt = $this->msg( 'descending_abbrev' )->escaped();
                                        } else {
                                                # Ascending
                                                $image = 'Arr_u.png';
                                                $query['asc'] = '';
                                                $query['desc'] = '1';
-                                               $alt = htmlspecialchars( wfMsg( 'ascending_abbrev' ) );
+                                               $alt = $this->msg( 'ascending_abbrev' )->escaped();
                                        }
                                        $image = htmlspecialchars( "$wgStylePath/common/images/$image" );
                                        $link = $this->makeLink(
@@ -955,7 +932,7 @@ abstract class TablePager extends IndexPager {
         */
        function getEmptyBody() {
                $colspan = count( $this->getFieldNames() );
-               $msgEmpty = wfMsgHtml( 'table_pager_empty' );
+               $msgEmpty = $this->msg( 'table_pager_empty' )->escaped();
                return "<tr><td colspan=\"$colspan\">$msgEmpty</td></tr>\n";
        }
 
@@ -1101,7 +1078,7 @@ abstract class TablePager extends IndexPager {
                $linkTexts = array();
                $disabledTexts = array();
                foreach ( $labels as $type => $label ) {
-                       $msgLabel = wfMsgHtml( $label );
+                       $msgLabel = $this->msg( $label )->escaped();
                        $linkTexts[$type] = "<img src=\"$path/{$images[$type]}\" alt=\"$msgLabel\"/><br />$msgLabel";
                        $disabledTexts[$type] = "<img src=\"$path/{$disabledImages[$type]}\" alt=\"$msgLabel\"/><br />$msgLabel";
                }
@@ -1193,9 +1170,10 @@ abstract class TablePager extends IndexPager {
         */
        function getLimitDropdown() {
                # Make the select with some explanatory text
-               $msgSubmit = wfMsgHtml( 'table_pager_limit_submit' );
+               $msgSubmit = $this->msg( 'table_pager_limit_submit' )->escaped();
 
-               return wfMsgHtml( 'table_pager_limit', $this->getLimitSelect() ) .
+               return $this->msg( 'table_pager_limit' )
+                       ->rawParams( $this->getLimitSelect() )->escaped() .
                        "\n<input type=\"submit\" value=\"$msgSubmit\"/>\n" .
                        $this->getHiddenFields( array( 'limit' ) );
        }
index 3eee191..bf63d65 100644 (file)
@@ -371,7 +371,10 @@ class Preferences {
 
                        $emailAddress = $user->getEmail() ? htmlspecialchars( $user->getEmail() ) : '';
                        if ( $wgAuth->allowPropChange( 'emailaddress' ) ) {
-                               $emailAddress .= $emailAddress == '' ? $link : ( ' ' . $context->msg( 'parentheses' )->rawParams( $link )->plain() );
+                               $emailAddress .= $emailAddress == '' ? $link : (
+                                       $context->msg( 'word-separator' )->plain()
+                                       . $context->msg( 'parentheses' )->rawParams( $link )->plain()
+                               );
                        }
 
 
index 335d37b..18a880e 100644 (file)
@@ -77,9 +77,6 @@ if ( $wgLogo === false ) $wgLogo = "$wgStylePath/common/images/wiki.png";
 
 if ( $wgUploadPath === false ) $wgUploadPath = "$wgScriptPath/images";
 if ( $wgUploadDirectory === false ) $wgUploadDirectory = "$IP/images";
-
-if ( $wgTmpDirectory === false ) $wgTmpDirectory = "{$wgUploadDirectory}/tmp";
-
 if ( $wgReadOnlyFile === false ) $wgReadOnlyFile = "{$wgUploadDirectory}/lock_yBgMBwiR";
 if ( $wgFileCacheDirectory === false ) $wgFileCacheDirectory = "{$wgUploadDirectory}/cache";
 if ( $wgDeletedDirectory === false ) $wgDeletedDirectory = "{$wgUploadDirectory}/deleted";
@@ -400,7 +397,12 @@ if ( !defined( 'MW_COMPILED' ) ) {
        wfProfileOut( $fname . '-includes' );
 }
 
-# Now that GlobalFunctions is loaded, set the default for $wgCanonicalServer
+# Now that GlobalFunctions is loaded, set defaults that depend
+# on it.
+if ( $wgTmpDirectory === false ) {
+       $wgTmpDirectory = wfTempDir();
+}
+
 if ( $wgCanonicalServer === false ) {
        $wgCanonicalServer = wfExpandUrl( $wgServer, PROTO_HTTP );
 }
index ff5548e..6410695 100644 (file)
  */
 
 /**
- * This is a class used to hold configuration settings, particularly for multi-wiki sites.
+ * This is a class for holding configuration settings, particularly for
+ * multi-wiki sites.
+ *
+ * A basic synopsis:
+ *
+ * Consider a wikifarm having three sites: two production sites, one in English
+ * and one in German, and one testing site. You can assign them easy-to-remember
+ * identifiers - ISO 639 codes 'en' and 'de' for language wikis, and 'beta' for
+ * the testing wiki.
+ *
+ * You would thus initialize the site configuration by specifying the wiki
+ * identifiers:
+ *
+ * @code
+ * $conf = new SiteConfiguration;
+ * $conf->wikis = array( 'de', 'en', 'beta' );
+ * @endcode
+ *
+ * When configuring the MediaWiki global settings (the $wg variables),
+ * the identifiers will be available to specify settings on a per wiki basis.
+ *
+ * @code
+ * $conf->settings = array(
+ *     'wgSomeSetting' => array(
+ *
+ *             # production:
+ *             'de'     => false,
+ *             'en'     => false,
+ *
+ *             # test:
+ *             'beta    => true,
+ *     ),
+ * );
+ * @endcode
+ *
+ * With three wikis, that is easy to manage. But what about a farm with
+ * hundreds of wikis? Site configuration provides a special keyword named
+ * 'default' which is the value used when a wiki is not found. Hence
+ * the above code could be written:
+ *
+ * @code
+ * $conf->settings = array(
+ *     'wgSomeSetting' => array(
+ *
+ *             'default' => false,
+ *
+ *             # Enable feature on test
+ *             'beta'    => true,
+ *     ),
+ * );
+ * @endcode
+ *
+ *
+ * Since settings can contain arrays, site configuration provides a way
+ * to merge an array with the default. This is very useful to avoid
+ * repeating settings again and again while still maintaining specific changes
+ * on a per wiki basis.
+ *
+ * @code
+ * $conf->settings = array(
+ *     'wgMergeSetting' = array(
+ *             # Value that will be shared among all wikis:
+ *             'default' => array(  NS_USER => true ),
+ *
+ *             # Leading '+' means merging the array of value with the defaults
+ *             '+beta' => array( NS_HELP => true ),
+ *     ),
+ * );
+ *
+ * # Get configuration for the German site:
+ * $conf->get( 'wgMergeSetting', 'de' );
+ * // --> array( NS_USER => true );
+ *
+ * # Get configuration for the testing site:
+ * $conf->get( 'wgMergeSetting', 'beta' );
+ * // --> array( NS_USER => true, NS_HELP => true );
+ * @endcode
+ *
+ * Finally, to load all configuration settings, extract them in global context:
+ *
+ * @code
+ * # Name / identifier of the wiki as set in $conf->wikis
+ * $wikiID = 'beta';
+ * $globals = $conf->getAll( $wikiID );
+ * extract( $globals );
+ * @endcode
+ *
+ * TODO: give examples for,
+ * suffixes:
+ * $conf->suffixes = array( 'wiki' );
+ * localVHosts
+ * callbacks!
  */
 class SiteConfiguration {
 
index 10aed9c..7f3f655 100644 (file)
@@ -391,7 +391,7 @@ class SiteStatsUpdate implements DeferrableUpdate {
        /**
         * @param $type string
         * @param $sign string ('+' or '-')
-        * @return void
+        * @return string
         */
        private function getTypeCacheKey( $type, $sign ) {
                return wfMemcKey( 'sitestatsupdate', 'pendingdelta', $type, $sign );
@@ -443,7 +443,7 @@ class SiteStatsUpdate implements DeferrableUpdate {
 
        /**
         * Reduce pending delta counters after updates have been applied
-        * @param Array Result of getPendingDeltas(), used for DB update
+        * @param Array $pd Result of getPendingDeltas(), used for DB update
         * @return void
         */
        protected function removePendingDeltas( array $pd ) {
index b74f7c5..aee2e83 100644 (file)
@@ -294,7 +294,11 @@ class SkinTemplate extends Skin {
                $tpl->set( 'specialpageattributes', '' ); # obsolete
 
                if ( $userlang !== $wgContLang->getHtmlCode() || $userdir !== $wgContLang->getDir() ) {
-                       $attrs = " lang='$userlang' dir='$userdir'";
+                       $escUserlang = htmlspecialchars( $userlang );
+                       $escUserdir = htmlspecialchars( $userdir );
+                       // Attributes must be in double quotes because htmlspecialchars() doesn't
+                       // escape single quotes
+                       $attrs = " lang=\"$escUserlang\" dir=\"$escUserdir\"";
                        $tpl->set( 'userlangattributes', $attrs );
                }
 
index 481f480..046fadb 100644 (file)
@@ -936,7 +936,7 @@ class Title {
         */
        public function isConversionTable() {
                return $this->getNamespace() == NS_MEDIAWIKI &&
-                       strpos( $this->getText(), 'Conversiontable' ) !== false;
+                       strpos( $this->getText(), 'Conversiontable/' ) === 0;
        }
 
        /**
index b5f4c1d..40e0ec3 100644 (file)
@@ -243,11 +243,20 @@ class WikiPage extends Page {
 
        /**
         * Clear the object
+        * @return void
         */
        public function clear() {
                $this->mDataLoaded = false;
                $this->mDataLoadedFrom = self::DATA_NOT_LOADED;
 
+               $this->clearCacheFields();
+       }
+
+       /**
+        * Clear the object cache fields
+        * @return void
+        */
+       protected function clearCacheFields() {
                $this->mCounter = null;
                $this->mRedirectTarget = null; # Title object if set
                $this->mLastRevision = null; # Latest revision
@@ -396,10 +405,18 @@ class WikiPage extends Page {
                        $this->mTouched     = wfTimestamp( TS_MW, $data->page_touched );
                        $this->mIsRedirect  = intval( $data->page_is_redirect );
                        $this->mLatest      = intval( $data->page_latest );
+                       // Bug 37225: $latest may no longer match the cached latest Revision object.
+                       // Double-check the ID of any cached latest Revision object for consistency.
+                       if ( $this->mLastRevision && $this->mLastRevision->getId() != $this->mLatest ) {
+                               $this->mLastRevision = null;
+                               $this->mTimestamp = '';
+                       }
                } else {
                        $lc->addBadLinkObj( $this->mTitle );
 
                        $this->mTitle->loadFromRow( false );
+
+                       $this->clearCacheFields();
                }
 
                $this->mDataLoaded = true;
@@ -611,7 +628,7 @@ class WikiPage extends Page {
                if ( !$this->mTimestamp ) {
                        $this->loadLastEdit();
                }
-               
+
                return wfTimestamp( TS_MW, $this->mTimestamp );
        }
 
@@ -2280,7 +2297,7 @@ class WikiPage extends Page {
         * roll back to, e.g. user is the sole contributor. This function
         * performs permissions checks on $user, then calls commitRollback()
         * to do the dirty work
-        * 
+        *
         * @todo: seperate the business/permission stuff out from backend code
         *
         * @param $fromP String: Name of the user whose edits to rollback.
@@ -2950,7 +2967,7 @@ class WikiPage extends Page {
        public function quickEdit( $text, $comment = '', $minor = 0 ) {
                wfDeprecated( __METHOD__, '1.18' );
                global $wgUser;
-               return $this->doQuickEdit( $text, $wgUser, $comment, $minor );
+               $this->doQuickEdit( $text, $wgUser, $comment, $minor );
        }
 
        /**
index 94bf50c..50d210f 100644 (file)
@@ -204,6 +204,11 @@ class HistoryAction extends FormlessAction {
         * @return ResultWrapper
         */
        function fetchRevisions( $limit, $offset, $direction ) {
+               // Fail if article doesn't exist.
+               if( !$this->getTitle()->exists() ) {
+                       return new FakeResultWrapper( array() );
+               }
+
                $dbr = wfGetDB( DB_SLAVE );
 
                if ( $direction == HistoryPage::DIR_PREV ) {
index f0386a1..6a9be24 100644 (file)
@@ -56,6 +56,11 @@ abstract class ApiBase extends ContextSource {
        /// @since 1.17
        const PARAM_RANGE_ENFORCE = 9; // Boolean, if MIN/MAX are set, enforce (die) these? Only applies if TYPE='integer' Use with extreme caution
 
+       const PROP_ROOT = 'ROOT'; // Name of property group that is on the root element of the result, i.e. not part of a list
+       const PROP_LIST = 'LIST'; // Boolean, is the result multiple items? Defaults to true for query modules, to false for other modules
+       const PROP_TYPE = 0; // Type of the property, uses same format as PARAM_TYPE
+       const PROP_NULLABLE = 1; // Boolean, can the property be not included in the result? Defaults to false
+
        const LIMIT_BIG1 = 500; // Fast query, std user limit
        const LIMIT_BIG2 = 5000; // Fast query, bot/sysop limit
        const LIMIT_SML1 = 50; // Slow query, std user limit
@@ -572,6 +577,51 @@ abstract class ApiBase extends ContextSource {
                return $desc;
        }
 
+       /**
+        * Returns possible properties in the result, grouped by the value of the prop parameter
+        * that shows them.
+        *
+        * Properties that are shown always are in a group with empty string as a key.
+        * Properties that can be shown by several values of prop are included multiple times.
+        * If some properties are part of a list and some are on the root object (see ApiQueryQueryPage),
+        * those on the root object are under the key PROP_ROOT.
+        * The array can also contain a boolean under the key PROP_LIST,
+        * indicating whether the result is a list.
+        *
+        * Don't call this functon directly: use getFinalResultProperties() to
+        * allow hooks to modify descriptions as needed.
+        *
+        * @return array|bool False on no properties
+        */
+       protected function getResultProperties() {
+               return false;
+       }
+
+       /**
+        * Get final possible result properties, after hooks have had a chance to tweak it as
+        * needed.
+        *
+        * @return array
+        */
+       public function getFinalResultProperties() {
+               $properties = $this->getResultProperties();
+               wfRunHooks( 'APIGetResultProperties', array( $this, &$properties ) );
+               return $properties;
+       }
+
+       /**
+        * Add token properties to the array used by getResultProperties,
+        * based on a token functions mapping.
+        */
+       protected static function addTokenProperties( &$props, $tokenFunctions ) {
+               foreach ( array_keys( $tokenFunctions ) as $token ) {
+                       $props[''][$token . 'token'] = array(
+                               ApiBase::PROP_TYPE => 'string',
+                               ApiBase::PROP_NULLABLE => true
+                       );
+               }
+       }
+
        /**
         * Get final module description, after hooks have had a chance to tweak it as
         * needed.
index e229ef0..6cd31ae 100644 (file)
@@ -186,6 +186,44 @@ class ApiBlock extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'blocktoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'user' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'userID' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'expiry' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'id' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'reason' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'anononly' => 'boolean',
+                               'nocreate' => 'boolean',
+                               'autoblock' => 'boolean',
+                               'noemail' => 'boolean',
+                               'hidename' => 'boolean',
+                               'allowusertalk' => 'boolean',
+                               'watchuser' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Block a user';
        }
index 87f0967..ed72b29 100644 (file)
@@ -124,6 +124,25 @@ class ApiComparePages extends ApiBase {
                        'torev' => 'Second revision to compare',
                );
        }
+
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'fromtitle' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'fromrevid' => 'integer',
+                               'totitle' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'torevid' => 'integer',
+                               '*' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Get the difference between 2 pages',
index cefdaac..1927490 100644 (file)
@@ -221,6 +221,15 @@ class ApiDelete extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'title' => 'string',
+                               'reason' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Delete a page';
        }
index 0b7ac41..9a16007 100644 (file)
@@ -494,6 +494,41 @@ class ApiEditPage extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'new' => 'boolean',
+                               'result' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'Success',
+                                               'Failure'
+                                       ),
+                               ),
+                               'pageid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'title' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'nochange' => 'boolean',
+                               'oldrevid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'newrevid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'newtimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function needsToken() {
                return true;
        }
index 0032bd8..4b6ba00 100644 (file)
@@ -113,6 +113,23 @@ class ApiEmailUser extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'result' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'Success',
+                                               'Failure'
+                                       ),
+                               ),
+                               'message' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Email a user.';
        }
index d570534..2ed118f 100644 (file)
@@ -103,6 +103,14 @@ class ApiExpandTemplates extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               '*' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Expands all templates in wikitext';
        }
index 5ea2571..7cac0eb 100644 (file)
@@ -132,15 +132,29 @@ class ApiFileRevert extends ApiBase {
        }
 
        public function getParamDescription() {
-               $params = array(
+               return array(
                        'filename' => 'Target filename without the File: prefix',
                        'token' => 'Edit token. You can get one of these through prop=info',
                        'comment' => 'Upload comment',
                        'archivename' => 'Archive name of the revision to revert to',
                );
+       }
 
-               return $params;
-
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'result' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'Success',
+                                               'Failure'
+                                       )
+                               ),
+                               'errors' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
        }
 
        public function getDescription() {
index 5093b6b..6663d97 100644 (file)
@@ -126,6 +126,17 @@ class ApiImport extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       ApiBase::PROP_LIST => true,
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string',
+                               'revisions' => 'integer'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Import a page from another wiki, or an XML file.' ,
@@ -187,11 +198,11 @@ class ApiImportReporter extends ImportReporter {
                // Add a result entry
                $r = array();
 
-               if ( $title === null ) {\r
+               if ( $title === null ) {
                        # Invalid or non-importable title
                        $r['title'] = $pageInfo['title'];
-                       $r['invalid'] = '';\r
-               } else {\r
+                       $r['invalid'] = '';
+               } else {
                        ApiQueryBase::addTitleInfo( $r, $title );
                        $r['revisions'] = intval( $successCount );
                }
index aa570cb..0bdaa1b 100644 (file)
@@ -181,6 +181,66 @@ class ApiLogin extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'result' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'Success',
+                                               'NeedToken',
+                                               'WrongToken',
+                                               'NoName',
+                                               'Illegal',
+                                               'WrongPluginPass',
+                                               'NotExists',
+                                               'WrongPass',
+                                               'EmptyPass',
+                                               'CreateBlocked',
+                                               'Throttled',
+                                               'Blocked',
+                                               'Aborted'
+                                       )
+                               ),
+                               'lguserid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'lgusername' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'lgtoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'cookieprefix' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'sessionid' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'token' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'details' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'wait' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'reason' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Log in and get the authentication tokens. ',
index 81a054a..cab2430 100644 (file)
@@ -54,6 +54,10 @@ class ApiLogout extends ApiBase {
                return array();
        }
 
+       public function getResultProperties() {
+               return array();
+       }
+
        public function getParamDescription() {
                return array();
        }
index f0a25e4..c89f59b 100644 (file)
@@ -224,6 +224,33 @@ class ApiMove extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'from' => 'string',
+                               'to' => 'string',
+                               'reason' => 'string',
+                               'redirectcreated' => 'boolean',
+                               'talkfrom' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'talkto' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'talkmove-error-code' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'talkmove-error-info' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Move a page';
        }
index 7bcfe1e..2b3d5e3 100644 (file)
@@ -107,6 +107,18 @@ class ApiOptions extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               '*' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'success'
+                                       )
+                               )
+                       )
+               );
+       }
+
        public function getParamDescription() {
                return array(
                        'token' => 'An options token previously obtained through the action=tokens',
index f226347..dffce5b 100644 (file)
@@ -251,6 +251,62 @@ class ApiParamInfo extends ApiBase {
                }
                $result->setIndexedTagName( $retval['parameters'], 'param' );
 
+               $props = $obj->getFinalResultProperties();
+               $listResult = null;
+               if ( $props !== false ) {
+                       $retval['props'] = array();
+
+                       foreach ( $props as $prop => $properties ) {
+                               $propResult = array();
+                               if ( $prop == ApiBase::PROP_LIST ) {
+                                       $listResult = $properties;
+                                       continue;
+                               }
+                               if ( $prop != ApiBase::PROP_ROOT ) {
+                                       $propResult['name'] = $prop;
+                               }
+                               $propResult['properties'] = array();
+
+                               foreach ( $properties as $name => $p ) {
+                                       $propertyResult = array();
+
+                                       $propertyResult['name'] = $name;
+
+                                       if ( !is_array( $p ) ) {
+                                               $p = array( ApiBase::PROP_TYPE => $p );
+                                       }
+
+                                       $propertyResult['type'] = $p[ApiBase::PROP_TYPE];
+
+                                       if ( is_array( $propertyResult['type'] ) ) {
+                                               $propertyResult['type'] = array_values( $propertyResult['type'] );
+                                               $result->setIndexedTagName( $propertyResult['type'], 't' );
+                                       }
+
+                                       $nullable = null;
+                                       if ( isset( $p[ApiBase::PROP_NULLABLE] ) ) {
+                                               $nullable = $p[ApiBase::PROP_NULLABLE];
+                                       }
+
+                                       if ( $nullable === true ) {
+                                               $propertyResult['nullable'] = '';
+                                       }
+
+                                       $propResult['properties'][] = $propertyResult;
+                               }
+
+                               $result->setIndexedTagName( $propResult['properties'], 'property' );
+                               $retval['props'][] = $propResult;
+                       }
+
+                       // default is true for query modules, false for other modules, overriden by ApiBase::PROP_LIST
+                       if ( $listResult === true || ( $listResult !== false && $obj instanceof ApiQueryBase ) ) {
+                               $retval['listresult'] = '';
+                       }
+
+                       $result->setIndexedTagName( $retval['props'], 'prop' );
+               }
+
                // Errors
                $retval['errors'] = $this->parseErrors( $obj->getPossibleErrors() );
                $result->setIndexedTagName( $retval['errors'], 'error' );
index 1332f26..45d19d0 100644 (file)
@@ -80,6 +80,16 @@ class ApiPatrol extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'rcid' => 'integer',
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Patrol a page or revision';
        }
index 286f191..0fcaf42 100644 (file)
@@ -184,6 +184,16 @@ class ApiProtect extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'title' => 'string',
+                               'reason' => 'string',
+                               'cascade' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Change the protection level of a page';
        }
index 8e9c198..e27068d 100644 (file)
@@ -135,6 +135,34 @@ class ApiPurge extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       ApiBase::PROP_LIST => true,
+                       '' => array(
+                               'ns' => array(
+                                       ApiBase::PROP_TYPE => 'namespace',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'title' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'pageid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'revid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'invalid' => 'boolean',
+                               'missing' => 'boolean',
+                               'purged' => 'boolean',
+                               'linkupdate' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array( 'Purge the cache for the given titles.',
                        'Requires a POST request if the user is not logged in.'
index 233ea75..60b57bf 100644 (file)
@@ -192,6 +192,23 @@ class ApiQueryAllCategories extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               '*' => 'string'
+                       ),
+                       'size' => array(
+                               'size' => 'integer',
+                               'pages' => 'integer',
+                               'files' => 'integer',
+                               'subcats' => 'integer'
+                       ),
+                       'hidden' => array(
+                               'hidden' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate all categories';
        }
index 87e7024..ce5aac2 100644 (file)
@@ -230,6 +230,19 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
 
        private $propertyFilter = array( 'archivename' );
 
+       public function getResultProperties() {
+               return array_merge(
+                       array(
+                               '' => array(
+                                       'name' => 'string',
+                                       'ns' => 'namespace',
+                                       'title' => 'string'
+                               )
+                       ),
+                       ApiQueryImageInfo::getResultPropertiesFiltered( $this->propertyFilter )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate all images sequentially';
        }
index f04d5b2..6b8fe57 100644 (file)
@@ -205,6 +205,18 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       'ids' => array(
+                               'fromid' => 'integer'
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate all links that point to a given namespace';
        }
index dedd3e5..ac000bf 100644 (file)
@@ -256,6 +256,27 @@ class ApiQueryAllMessages extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'name' => 'string',
+                               'customised' => 'boolean',
+                               'missing' => 'boolean',
+                               '*' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'default' => array(
+                               'defaultmissing' => 'boolean',
+                               'default' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Return messages from this site';
        }
index 7e89a95..cfc22ff 100644 (file)
@@ -296,6 +296,16 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'pageid' => 'integer',
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate all pages sequentially in a given namespace';
        }
index e110e67..dda8c72 100644 (file)
@@ -377,6 +377,48 @@ class ApiQueryAllUsers extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'userid' => 'integer',
+                               'name' => 'string',
+                               'recenteditcount' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'blockinfo' => array(
+                               'blockid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedby' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedbyid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedreason' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedexpiry' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'hidden' => 'boolean'
+                       ),
+                       'editcount' => array(
+                               'editcount' => 'integer'
+                       ),
+                       'registration' => array(
+                               'registration' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate all registered users';
        }
index 5505692..fcb9c4b 100644 (file)
@@ -481,6 +481,17 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                ) );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'pageid' => 'integer',
+                               'ns' => 'namespace',
+                               'title' => 'string',
+                               'redirect' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                switch ( $this->getModuleName() ) {
                        case 'backlinks':
index 8c287d6..49cd590 100644 (file)
@@ -324,6 +324,60 @@ class ApiQueryBlocks extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       'id' => array(
+                               'id' => 'integer'
+                       ),
+                       'user' => array(
+                               'user' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'userid' => array(
+                               'userid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'by' => array(
+                               'by' => 'string'
+                       ),
+                       'byid' => array(
+                               'byid' => 'integer'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'expiry' => array(
+                               'expiry' => 'timestamp'
+                       ),
+                       'reason' => array(
+                               'reason' => 'string'
+                       ),
+                       'range' => array(
+                               'rangestart' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'rangeend' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'flags' => array(
+                               'automatic' => 'boolean',
+                               'anononly' => 'boolean',
+                               'nocreate' => 'boolean',
+                               'autoblock' => 'boolean',
+                               'noemail' => 'boolean',
+                               'hidden' => 'boolean',
+                               'allowusertalk' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'List all blocked users and IP addresses';
        }
index cbda6ab..283eb13 100644 (file)
@@ -240,6 +240,25 @@ class ApiQueryCategories extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'sortkey' => array(
+                               'sortkey' => 'string',
+                               'sortkeyprefix' => 'string'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'hidden' => array(
+                               'hidden' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'List all categories the page(s) belong to';
        }
index c5070e8..e5eca85 100644 (file)
@@ -106,6 +106,34 @@ class ApiQueryCategoryInfo extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       ApiBase::PROP_LIST => false,
+                       '' => array(
+                               'size' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'pages' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'files' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'subcats' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'hidden' => array(
+                                       ApiBase::PROP_TYPE => 'boolean',
+                                       ApiBase::PROP_NULLABLE => false
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Returns information about the given categories';
        }
index 35b5645..9f66f22 100644 (file)
@@ -364,6 +364,36 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                return $desc;
        }
 
+       public function getResultProperties() {
+               return array(
+                       'ids' => array(
+                               'pageid' => 'integer'
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'sortkey' => array(
+                               'sortkey' => 'string'
+                       ),
+                       'sortkeyprefix' => array(
+                               'sortkeyprefix' => 'string'
+                       ),
+                       'type' => array(
+                               'type' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'page',
+                                               'subcat',
+                                               'file'
+                                       )
+                               )
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'List all pages in a given category';
        }
index 6912ddc..06f649d 100644 (file)
@@ -366,6 +366,18 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'token' => array(
+                               'token' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                $p = $this->getModulePrefix();
                return array(
index 6fb3ea3..856d0fd 100644 (file)
@@ -165,6 +165,16 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'name' => 'string',
+                               'user' => 'string',
+                               'timestamp' => 'timestamp'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'List all files that are duplicates of the given file(s)';
        }
index 93c71e2..221ffac 100644 (file)
@@ -232,6 +232,21 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                return $desc;
        }
 
+       public function getResultProperties() {
+               return array(
+                       'ids' => array(
+                               'pageid' => 'integer'
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'url' => array(
+                               'url' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate pages that contain a given URL';
        }
index a9fbc83..999ddc8 100644 (file)
@@ -133,6 +133,14 @@ class ApiQueryExternalLinks extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               '*' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Returns all external urls (not interwikies) from the given page(s)';
        }
index 4d99055..07d5b41 100644 (file)
@@ -274,6 +274,67 @@ class ApiQueryFilearchive extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'name' => 'string',
+                               'ns' => 'namespace',
+                               'title' => 'string',
+                               'filehidden' => 'boolean',
+                               'commenthidden' => 'boolean',
+                               'userhidden' => 'boolean',
+                               'suppressed' => 'boolean'
+                       ),
+                       'sha1' => array(
+                               'sha1' => 'string'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'user' => array(
+                               'userid' => 'integer',
+                               'user' => 'string'
+                       ),
+                       'size' => array(
+                               'size' => 'integer',
+                               'pagecount' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'height' => 'integer',
+                               'width' => 'integer'
+                       ),
+                       'dimensions' => array(
+                               'size' => 'integer',
+                               'pagecount' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'height' => 'integer',
+                               'width' => 'integer'
+                       ),
+                       'description' => array(
+                               'description' => 'string'
+                       ),
+                       'parseddescription' => array(
+                               'description' => 'string',
+                               'parseddescription' => 'string'
+                       ),
+                       'metadata' => array(
+                               'metadata' => 'string'
+                       ),
+                       'bitdepth' => array(
+                               'bitdepth' => 'integer'
+                       ),
+                       'mime' => array(
+                               'mime' => 'string'
+                       ),
+                       'mediatype' => array(
+                               'mediatype' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Enumerate all deleted files sequentially';
        }
index 2ffe479..d2837e9 100644 (file)
@@ -195,6 +195,23 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'pageid' => 'integer',
+                               'ns' => 'namespace',
+                               'title' => 'string',
+                               'redirect' => 'boolean'
+                       ),
+                       'iwprefix' => array(
+                               'iwprefix' => 'string'
+                       ),
+                       'iwtitle' => array(
+                               'iwtitle' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array( 'Find all pages that link to the given interwiki link.',
                        'Can be used to find all links with a prefix, or',
index f39835a..7e69513 100644 (file)
@@ -167,6 +167,19 @@ class ApiQueryIWLinks extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'prefix' => 'string',
+                               'url' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               '*' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Returns all interwiki links from the given page(s)';
        }
index 135979a..969293b 100644 (file)
@@ -547,6 +547,114 @@ class ApiQueryImageInfo extends ApiQueryBase {
                );
        }
 
+       public static function getResultPropertiesFiltered( $filter = array() ) {
+               $props = array(
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'user' => array(
+                               'userhidden' => 'boolean',
+                               'user' => 'string',
+                               'anon' => 'boolean'
+                       ),
+                       'userid' => array(
+                               'userhidden' => 'boolean',
+                               'userid' => 'integer',
+                               'anon' => 'boolean'
+                       ),
+                       'size' => array(
+                               'size' => 'integer',
+                               'width' => 'integer',
+                               'height' => 'integer',
+                               'pagecount' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'comment' => array(
+                               'commenthidden' => 'boolean',
+                               'comment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'parsedcomment' => array(
+                               'commenthidden' => 'boolean',
+                               'parsedcomment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'url' => array(
+                               'filehidden' => 'boolean',
+                               'thumburl' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'thumbwidth' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'thumbheight' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'thumberror' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'url' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'descriptionurl' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'sha1' => array(
+                               'filehidden' => 'boolean',
+                               'sha1' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'mime' => array(
+                               'filehidden' => 'boolean',
+                               'mime' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'mediatype' => array(
+                               'filehidden' => 'boolean',
+                               'mediatype' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'archivename' => array(
+                               'filehidden' => 'boolean',
+                               'archivename' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'bitdepth' => array(
+                               'filehidden' => 'boolean',
+                               'bitdepth' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+               );
+               return array_diff_key( $props, array_flip( $filter ) );
+       }
+
+       public function getResultProperties() {
+               return self::getResultPropertiesFiltered();
+       }
+
        public function getDescription() {
                return 'Returns image information and upload history';
        }
index 6f488cd..147ab67 100644 (file)
@@ -174,6 +174,15 @@ class ApiQueryImages extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Returns all images contained on the given page(s)';
        }
index e5db4d8..a6c0ed5 100644 (file)
@@ -337,7 +337,10 @@ class ApiQueryInfo extends ApiQueryBase {
         */
        private function extractPageInfo( $pageid, $title ) {
                $pageInfo = array();
-               if ( $title->exists() ) {
+               $titleExists = $pageid > 0; //$title->exists() needs pageid, which is not set for all title objects
+               $ns = $title->getNamespace();
+               $dbkey = $title->getDBkey();
+               if ( $titleExists ) {
                        global $wgDisableCounters;
 
                        $pageInfo['touched'] = wfTimestamp( TS_ISO_8601, $this->pageTouched[$pageid] );
@@ -370,23 +373,23 @@ class ApiQueryInfo extends ApiQueryBase {
 
                if ( $this->fld_protection ) {
                        $pageInfo['protection'] = array();
-                       if ( isset( $this->protections[$title->getNamespace()][$title->getDBkey()] ) ) {
+                       if ( isset( $this->protections[$ns][$dbkey] ) ) {
                                $pageInfo['protection'] =
-                                       $this->protections[$title->getNamespace()][$title->getDBkey()];
+                                       $this->protections[$ns][$dbkey];
                        }
                        $this->getResult()->setIndexedTagName( $pageInfo['protection'], 'pr' );
                }
 
-               if ( $this->fld_watched && isset( $this->watched[$title->getNamespace()][$title->getDBkey()] ) ) {
+               if ( $this->fld_watched && isset( $this->watched[$ns][$dbkey] ) ) {
                        $pageInfo['watched'] = '';
                }
 
-               if ( $this->fld_talkid && isset( $this->talkids[$title->getNamespace()][$title->getDBkey()] ) ) {
-                       $pageInfo['talkid'] = $this->talkids[$title->getNamespace()][$title->getDBkey()];
+               if ( $this->fld_talkid && isset( $this->talkids[$ns][$dbkey] ) )        {
+                       $pageInfo['talkid'] = $this->talkids[$ns][$dbkey];
                }
 
-               if ( $this->fld_subjectid && isset( $this->subjectids[$title->getNamespace()][$title->getDBkey()] ) ) {
-                       $pageInfo['subjectid'] = $this->subjectids[$title->getNamespace()][$title->getDBkey()];
+               if ( $this->fld_subjectid && isset( $this->subjectids[$ns][$dbkey] ) ) {
+                       $pageInfo['subjectid'] = $this->subjectids[$ns][$dbkey];
                }
 
                if ( $this->fld_url ) {
@@ -398,7 +401,7 @@ class ApiQueryInfo extends ApiQueryBase {
                }
 
                if ( $this->fld_preload ) {
-                       if ( $title->exists() ) {
+                       if ( $titleExists ) {
                                $pageInfo['preload'] = '';
                        } else {
                                $text = null;
@@ -409,8 +412,8 @@ class ApiQueryInfo extends ApiQueryBase {
                }
 
                if ( $this->fld_displaytitle ) {
-                       if ( isset( $this->displaytitles[$title->getArticleID()] ) ) {
-                               $pageInfo['displaytitle'] = $this->displaytitles[$title->getArticleID()];
+                       if ( isset( $this->displaytitles[$pageid] ) ) {
+                               $pageInfo['displaytitle'] = $this->displaytitles[$pageid];
                        } else {
                                $pageInfo['displaytitle'] = $title->getPrefixedText();
                        }
@@ -721,6 +724,59 @@ class ApiQueryInfo extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               $props = array(
+                       ApiBase::PROP_LIST => false,
+                       '' => array(
+                               'touched' => 'timestamp',
+                               'lastrevid' => 'integer',
+                               'counter' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'length' => 'integer',
+                               'redirect' => 'boolean',
+                               'new' => 'boolean',
+                               'starttimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'watched' => array(
+                               'watched' => 'boolean'
+                       ),
+                       'talkid' => array(
+                               'talkid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'subjectid' => array(
+                               'subjectid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'url' => array(
+                               'fullurl' => 'string',
+                               'editurl' => 'string'
+                       ),
+                       'readable' => array(
+                               'readable' => 'boolean'
+                       ),
+                       'preload' => array(
+                               'preload' => 'string'
+                       ),
+                       'displaytitle' => array(
+                               'displaytitle' => 'string'
+                       )
+               );
+
+               self::addTokenProperties( $props, $this->getTokenFunctions() );
+
+               return $props;
+       }
+
        public function getDescription() {
                return 'Get basic page information such as namespace, title, last touched date, ...';
        }
index efc2e81..f423719 100644 (file)
@@ -195,6 +195,23 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'pageid' => 'integer',
+                               'ns' => 'namespace',
+                               'title' => 'string',
+                               'redirect' => 'boolean'
+                       ),
+                       'lllang' => array(
+                               'lllang' => 'string'
+                       ),
+                       'lltitle' => array(
+                               'lltitle' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array( 'Find all pages that link to the given language link.',
                        'Can be used to find all links with a language code, or',
index b6f9a99..7cab739 100644 (file)
@@ -159,6 +159,19 @@ class ApiQueryLangLinks extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'lang' => 'string',
+                               'url' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               '*' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Returns all interlanguage links from the given page(s)';
        }
index 4dea419..5cf9068 100644 (file)
@@ -227,6 +227,15 @@ class ApiQueryLinks extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return "Returns all {$this->description}s from the given page(s)";
        }
index e017c4b..bb4b429 100644 (file)
@@ -447,6 +447,62 @@ class ApiQueryLogEvents extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               global $wgLogTypes;
+               return array(
+                       'ids' => array(
+                               'logid' => 'integer',
+                               'pageid' => 'integer'
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'type' => array(
+                               'type' => array(
+                                       ApiBase::PROP_TYPE => $wgLogTypes
+                               ),
+                               'action' => 'string'
+                       ),
+                       'details' => array(
+                               'actionhidden' => 'boolean'
+                       ),
+                       'user' => array(
+                               'userhidden' => 'boolean',
+                               'user' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'anon' => 'boolean'
+                       ),
+                       'userid' => array(
+                               'userhidden' => 'boolean',
+                               'userid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'anon' => 'boolean'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'comment' => array(
+                               'commenthidden' => 'boolean',
+                               'comment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'parsedcomment' => array(
+                               'commenthidden' => 'boolean',
+                               'parsedcomment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Get events from logs';
        }
index 44cc1d3..360183c 100644 (file)
@@ -214,6 +214,40 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               global $wgRestrictionLevels;
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'user' => array(
+                               'user' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'userid' => 'integer'
+                       ),
+                       'comment' => array(
+                               'comment' => 'string'
+                       ),
+                       'parsedcomment' => array(
+                               'parsedcomment' => 'string'
+                       ),
+                       'expiry' => array(
+                               'expiry' => 'timestamp'
+                       ),
+                       'level' => array(
+                               'level' => array(
+                                       ApiBase::PROP_TYPE => array_diff( $wgRestrictionLevels, array( '' ) )
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'List all titles protected from creation';
        }
index 8efe65d..2c7ba12 100644 (file)
@@ -173,6 +173,38 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       ApiBase::PROP_ROOT => array(
+                               'name' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'disabled' => array(
+                                       ApiBase::PROP_TYPE => 'boolean',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'cached' => array(
+                                       ApiBase::PROP_TYPE => 'boolean',
+                                       ApiBase::PROP_NULLABLE => false
+                               ),
+                               'cachedtimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       '' => array(
+                               'value' => 'string',
+                               'timestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Get a list provided by a QueryPage-based special page';
        }
index 2e9e2dd..ddf5841 100644 (file)
@@ -161,6 +161,16 @@ class ApiQueryRandom extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'id' => 'integer',
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Get a set of random pages',
index 931af08..62c6678 100644 (file)
@@ -629,6 +629,97 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               global $wgLogTypes;
+               $props = array(
+                       '' => array(
+                               'type' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'edit',
+                                               'new',
+                                               'move',
+                                               'log',
+                                               'move over redirect'
+                                       )
+                               )
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string',
+                               'new_ns' => array(
+                                       ApiBase::PROP_TYPE => 'namespace',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'new_title' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'ids' => array(
+                               'rcid' => 'integer',
+                               'pageid' => 'integer',
+                               'revid' => 'integer',
+                               'old_revid' => 'integer'
+                       ),
+                       'user' => array(
+                               'user' => 'string',
+                               'anon' => 'boolean'
+                       ),
+                       'userid' => array(
+                               'userid' => 'integer',
+                               'anon' => 'boolean'
+                       ),
+                       'flags' => array(
+                               'bot' => 'boolean',
+                               'new' => 'boolean',
+                               'minor' => 'boolean'
+                       ),
+                       'sizes' => array(
+                               'oldlen' => 'integer',
+                               'newlen' => 'integer'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'comment' => array(
+                               'comment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'parsedcomment' => array(
+                               'parsedcomment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'redirect' => array(
+                               'redirect' => 'boolean'
+                       ),
+                       'patrolled' => array(
+                               'patrolled' => 'boolean'
+                       ),
+                       'loginfo' => array(
+                               'logid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'logtype' => array(
+                                       ApiBase::PROP_TYPE => $wgLogTypes,
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'logaction' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+
+               self::addTokenProperties( $props, $this->getTokenFunctions() );
+
+               return $props;
+       }
+
        public function getDescription() {
                return 'Enumerate recent changes';
        }
index 44cb46e..1a5ad17 100644 (file)
@@ -648,6 +648,66 @@ class ApiQueryRevisions extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               $props = array(
+                       '' => array(),
+                       'ids' => array(
+                               'revid' => 'integer',
+                               'parentid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'flags' => array(
+                               'minor' => 'boolean'
+                       ),
+                       'user' => array(
+                               'userhidden' => 'boolean',
+                               'user' => 'string',
+                               'anon' => 'boolean'
+                       ),
+                       'userid' => array(
+                               'userhidden' => 'boolean',
+                               'userid' => 'integer',
+                               'anon' => 'boolean'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'size' => array(
+                               'size' => 'integer'
+                       ),
+                       'sha1' => array(
+                               'sha1' => 'string'
+                       ),
+                       'comment' => array(
+                               'commenthidden' => 'boolean',
+                               'comment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'parsedcomment' => array(
+                               'commenthidden' => 'boolean',
+                               'parsedcomment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'content' => array(
+                               '*' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'texthidden' => 'boolean'
+                       )
+               );
+
+               self::addTokenProperties( $props, $this->getTokenFunctions() );
+
+               return $props;
+       }
+
        public function getDescription() {
                return array(
                        'Get revision information',
index 40aac05..ed6c3cb 100644 (file)
@@ -280,6 +280,63 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'snippet' => array(
+                               'snippet' => 'string'
+                       ),
+                       'size' => array(
+                               'size' => 'integer'
+                       ),
+                       'wordcount' => array(
+                               'wordcount' => 'integer'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'score' => array(
+                               'score' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'titlesnippet' => array(
+                               'titlesnippet' => 'string'
+                       ),
+                       'redirecttitle' => array(
+                               'redirecttitle' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'redirectsnippet' => array(
+                               'redirectsnippet' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'sectiontitle' => array(
+                               'sectiontitle' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'sectionsnippet' => array(
+                               'sectionsnippet' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'hasrelated' => array(
+                               'hasrelated' => 'boolean'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Perform a full text search';
        }
index 4501ec5..02484ae 100644 (file)
@@ -123,6 +123,10 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
                );
        }
 
+       public function getResultProperties() {
+               return ApiQueryImageInfo::getResultPropertiesFiltered( $this->propertyFilter );
+       }
+
        public function getDescription() {
                return 'Returns image information for stashed images';
        }
index 12cea1d..edd1553 100644 (file)
@@ -169,6 +169,23 @@ class ApiQueryTags extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'name' => 'string'
+                       ),
+                       'displayname' => array(
+                               'displayname' => 'string'
+                       ),
+                       'description' => array(
+                               'description' => 'string'
+                       ),
+                       'hitcount' => array(
+                               'hitcount' => 'integer'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'List change tags';
        }
index 097d3e1..ab5acf5 100644 (file)
@@ -448,6 +448,55 @@ class ApiQueryContributions extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'userid' => 'integer',
+                               'user' => 'string',
+                               'userhidden' => 'boolean'
+                       ),
+                       'ids' => array(
+                               'pageid' => 'integer',
+                               'revid' => 'integer'
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'flags' => array(
+                               'new' => 'boolean',
+                               'minor' => 'boolean',
+                               'top' => 'boolean'
+                       ),
+                       'comment' => array(
+                               'commenthidden' => 'boolean',
+                               'comment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'parsedcomment' => array(
+                               'commenthidden' => 'boolean',
+                               'parsedcomment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'patrolled' => array(
+                               'patrolled' => 'boolean'
+                       ),
+                       'size' => array(
+                               'size' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Get all edits by a user';
        }
index e3bc775..e4617d9 100644 (file)
@@ -234,6 +234,63 @@ class ApiQueryUserInfo extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       ApiBase::PROP_LIST => false,
+                       '' => array(
+                               'id' => 'integer',
+                               'name' => 'string',
+                               'anon' => 'boolean'
+                       ),
+                       'blockinfo' => array(
+                               'blockid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedby' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedbyid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedreason' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'hasmsg' => array(
+                               'messages' => 'boolean'
+                       ),
+                       'preferencestoken' => array(
+                               'preferencestoken' => 'string'
+                       ),
+                       'editcount' => array(
+                               'editcount' => 'integer'
+                       ),
+                       'realname' => array(
+                               'realname' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'email' => array(
+                               'email' => 'string',
+                               'emailauthenticated' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'registrationdate' => array(
+                               'registrationdate' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Get information about the current user';
        }
index 83872a5..02fcf01 100644 (file)
@@ -315,6 +315,73 @@ class ApiQueryUsers extends ApiQueryBase {
                );
        }
 
+       public function getResultProperties() {
+               $props = array(
+                       '' => array(
+                               'userid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'name' => 'string',
+                               'invalid' => 'boolean',
+                               'hidden' => 'boolean',
+                               'interwiki' => 'boolean',
+                               'missing' => 'boolean'
+                       ),
+                       'editcount' => array(
+                               'editcount' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'registration' => array(
+                               'registration' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'blockinfo' => array(
+                               'blockid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedby' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedbyid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedreason' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blockedexpiry' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'emailable' => array(
+                               'emailable' => 'boolean'
+                       ),
+                       'gender' => array(
+                               'gender' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'male',
+                                               'female',
+                                               'unknown'
+                                       ),
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+
+               self::addTokenProperties( $props, $this->getTokenFunctions() );
+
+               return $props;
+       }
+
        public function getDescription() {
                return 'Get information about a list of users';
        }
index 77f6ce9..a93f94f 100644 (file)
@@ -418,6 +418,76 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               global $wgLogTypes;
+               return array(
+                       'ids' => array(
+                               'pageid' => 'integer',
+                               'revid' => 'integer',
+                               'old_revid' => 'integer'
+                       ),
+                       'title' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'user' => array(
+                               'user' => 'string',
+                               'anon' => 'boolean'
+                       ),
+                       'userid' => array(
+                               'userid' => 'integer',
+                               'anon' => 'boolean'
+                       ),
+                       'flags' => array(
+                               'new' => 'boolean',
+                               'minor' => 'boolean',
+                               'bot' => 'boolean'
+                       ),
+                       'patrol' => array(
+                               'patrolled' => 'boolean'
+                       ),
+                       'timestamp' => array(
+                               'timestamp' => 'timestamp'
+                       ),
+                       'sizes' => array(
+                               'oldlen' => 'integer',
+                               'newlen' => 'integer'
+                       ),
+                       'notificationtimestamp' => array(
+                               'notificationtimestamp' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'comment' => array(
+                               'comment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'parsedcomment' => array(
+                               'parsedcomment' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       ),
+                       'loginfo' => array(
+                               'logid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'logtype' => array(
+                                       ApiBase::PROP_TYPE => $wgLogTypes,
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'logaction' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return "Get all recent changes to pages in the logged in user's watchlist";
        }
index 5e96dd5..1b1eee0 100644 (file)
@@ -192,6 +192,21 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'ns' => 'namespace',
+                               'title' => 'string'
+                       ),
+                       'changed' => array(
+                               'changed' => array(
+                                       ApiBase::PROP_TYPE => 'timestamp',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return "Get all pages on the logged in user's watchlist";
        }
index 436c392..4de49ea 100644 (file)
@@ -116,6 +116,19 @@ class ApiRollback extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'title' => 'string',
+                               'pageid' => 'integer',
+                               'summary' => 'string',
+                               'revid' => 'integer',
+                               'old_revid' => 'integer',
+                               'last_revid' => 'integer'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Undo the last edit to the page. If the last user who edited the page made multiple edits in a row,',
index c56d646..2c9b482 100644 (file)
@@ -84,6 +84,57 @@ class ApiTokens extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'patroltoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'edittoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'deletetoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'protecttoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'movetoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'blocktoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'unblocktoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'emailtoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'importtoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'watchtoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'optionstoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getParamDescription() {
                return array(
                        'type' => 'Type of token(s) to request'
index 49353b6..40a6d44 100644 (file)
@@ -119,6 +119,33 @@ class ApiUnblock extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'unblocktoken' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'id' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'user' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'userid' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'reason' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Unblock a user';
        }
index 856e2ac..c89f49a 100644 (file)
@@ -122,6 +122,17 @@ class ApiUndelete extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'title' => 'string',
+                               'revisions' => 'integer',
+                               'filerevisions' => 'integer',
+                               'reason' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Restore certain revisions of a deleted page. A list of deleted revisions (including timestamps) can be',
index e58a1ca..db1ee16 100644 (file)
@@ -623,6 +623,41 @@ class ApiUpload extends ApiBase {
 
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'result' => array(
+                                       ApiBase::PROP_TYPE => array(
+                                               'Success',
+                                               'Warning',
+                                               'Continue',
+                                               'Queued'
+                                       ),
+                               ),
+                               'filekey' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'sessionkey' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'offset' => array(
+                                       ApiBase::PROP_TYPE => 'integer',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'statuskey' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               ),
+                               'filename' => array(
+                                       ApiBase::PROP_TYPE => 'string',
+                                       ApiBase::PROP_NULLABLE => true
+                               )
+                       )
+               );
+       }
+
        public function getDescription() {
                return array(
                        'Upload a file, or get the status of pending uploads. Several methods are available:',
index fa382b3..c923c6d 100644 (file)
@@ -100,6 +100,17 @@ class ApiWatch extends ApiBase {
                );
        }
 
+       public function getResultProperties() {
+               return array(
+                       '' => array(
+                               'title' => 'string',
+                               'unwatched' => 'boolean',
+                               'watched' => 'boolean',
+                               'message' => 'string'
+                       )
+               );
+       }
+
        public function getDescription() {
                return 'Add or remove a page from/to the current user\'s watchlist';
        }
index b972f3b..0a1f988 100644 (file)
@@ -530,7 +530,11 @@ abstract class DatabaseBase implements DatabaseType {
         *   - DBO_PERSISTENT: use persistant database connection
         */
        function setFlag( $flag ) {
+               global $wgDebugDBTransactions;
                $this->mFlags |= $flag;
+               if ( ( $flag & DBO_TRX) & $wgDebugDBTransactions ) {
+                       wfDebug("Implicit transactions are now  disabled.\n");
+               }
        }
 
        /**
@@ -539,7 +543,11 @@ abstract class DatabaseBase implements DatabaseType {
         * @param $flag: same as setFlag()'s $flag param
         */
        function clearFlag( $flag ) {
+               global $wgDebugDBTransactions;
                $this->mFlags &= ~$flag;
+               if ( ( $flag & DBO_TRX ) && $wgDebugDBTransactions ) {
+                       wfDebug("Implicit transactions are now disabled.\n");
+               }
        }
 
        /**
@@ -604,15 +612,21 @@ abstract class DatabaseBase implements DatabaseType {
        function __construct( $server = false, $user = false, $password = false, $dbName = false,
                $flags = 0, $tablePrefix = 'get from global'
        ) {
-               global $wgDBprefix, $wgCommandLineMode;
+               global $wgDBprefix, $wgCommandLineMode, $wgDebugDBTransactions;
 
                $this->mFlags = $flags;
 
                if ( $this->mFlags & DBO_DEFAULT ) {
                        if ( $wgCommandLineMode ) {
                                $this->mFlags &= ~DBO_TRX;
+                               if ( $wgDebugDBTransactions ) {
+                                       wfDebug("Implicit transaction open disabled.\n");
+                               }
                        } else {
                                $this->mFlags |= DBO_TRX;
+                               if ( $wgDebugDBTransactions ) {
+                                       wfDebug("Implicit transaction open enabled.\n");
+                               }
                        }
                }
 
@@ -868,8 +882,13 @@ abstract class DatabaseBase implements DatabaseType {
                        # that would delay transaction initializations to once connection
                        # is really used by application
                        $sqlstart = substr( $sql, 0, 10 ); // very much worth it, benchmark certified(tm)
-                       if ( strpos( $sqlstart, "SHOW " ) !== 0 && strpos( $sqlstart, "SET " ) !== 0 )
+                       if ( strpos( $sqlstart, "SHOW " ) !== 0 && strpos( $sqlstart, "SET " ) !== 0 ) {
+                               global $wgDebugDBTransactions;
+                               if ( $wgDebugDBTransactions ) {
+                                       wfDebug("Implicit transaction start.\n");
+                               }
                                $this->begin( __METHOD__ . " ($fname)" );
+                       }
                }
 
                if ( $this->debug() ) {
@@ -2885,7 +2904,7 @@ abstract class DatabaseBase implements DatabaseType {
        }
 
        /**
-        * Begin a transaction, committing any previously open transaction
+        * Begin a transaction
         *
         * @param $fname string
         */
@@ -3506,4 +3525,11 @@ abstract class DatabaseBase implements DatabaseType {
        public function setBigSelects( $value = true ) {
                // no-op
        }
+
+       /**
+        * @since 1.19
+        */
+       public function __toString() {
+               return (string)$this->mConn;
+       }
 }
index d058769..f0838bb 100644 (file)
@@ -137,14 +137,14 @@ class PostgresTransactionState {
 
        static $WATCHED = array(
                array(
-                       "desc" => "Connection state changed from %s -> %s\n",
+                       "desc" => "%s: Connection state changed from %s -> %s\n",
                        "states" => array(
                                PGSQL_CONNECTION_OK       => "OK",
                                PGSQL_CONNECTION_BAD      => "BAD"
                        )
                ),
                array(
-                       "desc" => "Transaction state changed from %s -> %s\n",
+                       "desc" => "%s: Transaction state changed from %s -> %s\n",
                        "states" => array(
                                PGSQL_TRANSACTION_IDLE    => "IDLE",
                                PGSQL_TRANSACTION_ACTIVE  => "ACTIVE",
@@ -198,12 +198,86 @@ class PostgresTransactionState {
 
        protected function log_changed( $old, $new, $watched ) {
                wfDebug(sprintf($watched["desc"],
+                       $this->mConn,
                        $this->describe_changed( $old, $watched["states"] ),
                        $this->describe_changed( $new, $watched["states"] ))
                );
        }
 }
 
+/**
+ * Manage savepoints within a transaction
+ * @ingroup Database
+ * @since 1.19
+ */
+class SavepointPostgres {
+       /**
+        * Establish a savepoint within a transaction
+        */
+       protected $dbw;
+       protected $id;
+       protected $didbegin;
+
+       public function __construct ($dbw, $id) {
+               $this->dbw = $dbw;
+               $this->id = $id;
+               $this->didbegin = false;
+               /* If we are not in a transaction, we need to be for savepoint trickery */
+               if ( !$dbw->trxLevel() ) {
+                               $dbw->begin( "FOR SAVEPOINT" );
+                               $this->didbegin = true;
+               }
+       }
+
+       public function __destruct() {
+               if ( $this->didbegin ) {
+                       $this->dbw->rollback();
+               }
+       }
+
+       public function commit() {
+               if ( $this->didbegin ) {
+                       $this->dbw->commit();
+               }
+       }
+
+       protected function query( $keyword, $msg_ok, $msg_failed ) {
+               global $wgDebugDBTransactions;
+               if ( $this->dbw->doQuery( $keyword . " " . $this->id ) !== false ) {
+                       if ( $wgDebugDBTransactions ) {
+                               wfDebug( sprintf ($msg_ok, $this->id ) );
+                       }
+               } else {
+                       wfDebug( sprintf ($msg_failed, $this->id ) );
+               }
+       }
+
+       public function savepoint() {
+               $this->query("SAVEPOINT",
+                       "Transaction state: savepoint \"%s\" established.\n",
+                       "Transaction state: establishment of savepoint \"%s\" FAILED.\n"
+               );
+       }
+
+       public function release() {
+               $this->query("RELEASE",
+                       "Transaction state: savepoint \"%s\" released.\n",
+                       "Transaction state: release of savepoint \"%s\" FAILED.\n"
+               );
+       }
+
+       public function rollback() {
+               $this->query("ROLLBACK TO",
+                       "Transaction state: savepoint \"%s\" rolled back.\n",
+                       "Transaction state: rollback of savepoint \"%s\" FAILED.\n"
+               );
+       }
+
+       public function __toString() {
+               return (string)$this->id;
+       }
+}
+
 /**
  * @ingroup Database
  */
@@ -345,7 +419,7 @@ class DatabasePostgres extends DatabaseBase {
                return pg_close( $this->mConn );
        }
 
-       protected function doQuery( $sql ) {
+       public function doQuery( $sql ) {
                if ( function_exists( 'mb_convert_encoding' ) ) {
                        $sql = mb_convert_encoding( $sql, 'UTF-8' );
                }
@@ -667,15 +741,9 @@ __INDEXATTR__;
                }
 
                // If IGNORE is set, we use savepoints to emulate mysql's behavior
-               $ignore = in_array( 'IGNORE', $options ) ? 'mw' : '';
-
-               // If we are not in a transaction, we need to be for savepoint trickery
-               $didbegin = 0;
-               if ( $ignore ) {
-                       if ( !$this->mTrxLevel ) {
-                               $this->begin( __METHOD__ );
-                               $didbegin = 1;
-                       }
+               $savepoint = null;
+               if ( in_array( 'IGNORE', $options ) ) {
+                       $savepoint = new SavepointPostgres( $this, 'mw' );
                        $olde = error_reporting( 0 );
                        // For future use, we may want to track the number of actual inserts
                        // Right now, insert (all writes) simply return true/false
@@ -685,7 +753,7 @@ __INDEXATTR__;
                $sql = "INSERT INTO $table (" . implode( ',', $keys ) . ') VALUES ';
 
                if ( $multi ) {
-                       if ( $this->numeric_version >= 8.2 && !$ignore ) {
+                       if ( $this->numeric_version >= 8.2 && !$savepoint ) {
                                $first = true;
                                foreach ( $args as $row ) {
                                        if ( $first ) {
@@ -695,7 +763,7 @@ __INDEXATTR__;
                                        }
                                        $sql .= '(' . $this->makeList( $row ) . ')';
                                }
-                               $res = (bool)$this->query( $sql, $fname, $ignore );
+                               $res = (bool)$this->query( $sql, $fname, $savepoint );
                        } else {
                                $res = true;
                                $origsql = $sql;
@@ -703,18 +771,18 @@ __INDEXATTR__;
                                        $tempsql = $origsql;
                                        $tempsql .= '(' . $this->makeList( $row ) . ')';
 
-                                       if ( $ignore ) {
-                                               $this->doQuery( "SAVEPOINT $ignore" );
+                                       if ( $savepoint ) {
+                                               $savepoint->savepoint();
                                        }
 
-                                       $tempres = (bool)$this->query( $tempsql, $fname, $ignore );
+                                       $tempres = (bool)$this->query( $tempsql, $fname, $savepoint );
 
-                                       if ( $ignore ) {
+                                       if ( $savepoint ) {
                                                $bar = pg_last_error();
                                                if ( $bar != false ) {
-                                                       $this->doQuery( $this->mConn, "ROLLBACK TO $ignore" );
+                                                       $savepoint->rollback();
                                                } else {
-                                                       $this->doQuery( $this->mConn, "RELEASE $ignore" );
+                                                       $savepoint->release();
                                                        $numrowsinserted++;
                                                }
                                        }
@@ -728,27 +796,25 @@ __INDEXATTR__;
                        }
                } else {
                        // Not multi, just a lone insert
-                       if ( $ignore ) {
-                               $this->doQuery( "SAVEPOINT $ignore" );
+                       if ( $savepoint ) {
+                               $savepoint->savepoint();
                        }
 
                        $sql .= '(' . $this->makeList( $args ) . ')';
-                       $res = (bool)$this->query( $sql, $fname, $ignore );
-                       if ( $ignore ) {
+                       $res = (bool)$this->query( $sql, $fname, $savepoint );
+                       if ( $savepoint ) {
                                $bar = pg_last_error();
                                if ( $bar != false ) {
-                                       $this->doQuery( "ROLLBACK TO $ignore" );
+                                       $savepoint->rollback();
                                } else {
-                                       $this->doQuery( "RELEASE $ignore" );
+                                       $savepoint->release();
                                        $numrowsinserted++;
                                }
                        }
                }
-               if ( $ignore ) {
+               if ( $savepoint ) {
                        $olde = error_reporting( $olde );
-                       if ( $didbegin ) {
-                               $this->commit( __METHOD__ );
-                       }
+                       $savepoint->commit();
 
                        // Set the affected row count for the whole operation
                        $this->mAffectedRows = $numrowsinserted;
@@ -774,9 +840,6 @@ __INDEXATTR__;
        {
                $destTable = $this->tableName( $destTable );
 
-               // If IGNORE is set, we use savepoints to emulate mysql's behavior
-               $ignore = in_array( 'IGNORE', $insertOptions ) ? 'mw' : '';
-
                if( is_array( $insertOptions ) ) {
                        $insertOptions = implode( ' ', $insertOptions ); // FIXME: This is unused
                }
@@ -790,16 +853,13 @@ __INDEXATTR__;
                        $srcTable = $this->tableName( $srcTable );
                }
 
-               // If we are not in a transaction, we need to be for savepoint trickery
-               $didbegin = 0;
-               if ( $ignore ) {
-                       if( !$this->mTrxLevel ) {
-                               $this->begin( __METHOD__ );
-                               $didbegin = 1;
-                       }
+               // If IGNORE is set, we use savepoints to emulate mysql's behavior
+               $savepoint = null;
+               if ( in_array( 'IGNORE', $options ) ) {
+                       $savepoint = new SavepointPostgres( $this, 'mw' );
                        $olde = error_reporting( 0 );
                        $numrowsinserted = 0;
-                       $this->doQuery( "SAVEPOINT $ignore" );
+                       $savepoint->savepoint();
                }
 
                $sql = "INSERT INTO $destTable (" . implode( ',', array_keys( $varMap ) ) . ')' .
@@ -812,19 +872,17 @@ __INDEXATTR__;
 
                $sql .= " $tailOpts";
 
-               $res = (bool)$this->query( $sql, $fname, $ignore );
-               if( $ignore ) {
+               $res = (bool)$this->query( $sql, $fname, $savepoint );
+               if( $savepoint ) {
                        $bar = pg_last_error();
                        if( $bar != false ) {
-                               $this->doQuery( "ROLLBACK TO $ignore" );
+                               $savepoint->rollback();
                        } else {
-                               $this->doQuery( "RELEASE $ignore" );
+                               $savepoint->release();
                                $numrowsinserted++;
                        }
                        $olde = error_reporting( $olde );
-                       if( $didbegin ) {
-                               $this->commit( __METHOD__ );
-                       }
+                       $savepoint->commit();
 
                        // Set the affected row count for the whole operation
                        $this->mAffectedRows = $numrowsinserted;
@@ -1056,7 +1114,7 @@ __INDEXATTR__;
         * This will be also called by the installer after the schema is created
         *
         * @since 1.19
-        * @param desired_schema string
+        * @param $desired_schema string
         */
        function determineCoreSchema( $desired_schema ) {
                $this->begin( __METHOD__ );
index 853e8cd..8fa7220 100644 (file)
@@ -62,6 +62,9 @@ interface IORMTable {
         * * array
         * * blob
         *
+        * TODO: get rid of the id field. Every row instance needs to have
+        * one so this is just causing hassle at various locations by requiring an extra check for field name.
+        *
         * @since 1.20
         *
         * @return array
@@ -103,7 +106,7 @@ interface IORMTable {
         * @return ORMResult
         */
        public function select( $fields = null, array $conditions = array(),
-                                                       array $options = array(), $functionName  = null );
+                                                       array $options = array(), $functionName = null );
 
        /**
         * Selects the the specified fields of the records matching the provided
@@ -119,7 +122,7 @@ interface IORMTable {
         * @return array of self
         */
        public function selectObjects( $fields = null, array $conditions = array(),
-                                                                  array $options = array(), $functionName  = null );
+                                                                  array $options = array(), $functionName = null );
 
        /**
         * Do the actual select.
@@ -134,7 +137,7 @@ interface IORMTable {
         * @return ResultWrapper
         */
        public function rawSelect( $fields = null, array $conditions = array(),
-                                                          array $options = array(), $functionName  = null );
+                                                          array $options = array(), $functionName = null );
 
        /**
         * Selects the the specified fields of the records matching the provided
@@ -159,7 +162,7 @@ interface IORMTable {
         * @return array of array
         */
        public function selectFields( $fields = null, array $conditions = array(),
-                                                                 array $options = array(), $collapse = true, $functionName  = null );
+                                                                 array $options = array(), $collapse = true, $functionName = null );
 
        /**
         * Selects the the specified fields of the first matching record.
@@ -441,4 +444,4 @@ interface IORMTable {
         */
        public function canHaveField( $name );
 
-}
\ No newline at end of file
+}
diff --git a/includes/db/ORMIterator.php b/includes/db/ORMIterator.php
new file mode 100644 (file)
index 0000000..f0a6363
--- /dev/null
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * Interface for Iterators containing IORMRows.
+ *
+ * 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
+ *
+ * @since 1.20
+ *
+ * @file
+ * @ingroup ORM
+ *
+ * @licence GNU GPL v2 or later
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+interface ORMIterator extends Iterator {
+
+       /**
+        * @see Iterator::current()
+        * @return IORMRow
+        */
+       public function current();
+
+}
\ No newline at end of file
index 1e6b83d..1342b02 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 /**
- * Result of a ORMTable::select, which returns IORMRow objects.
+ * ORMIterator that takes a ResultWrapper object returned from
+ * a select operation returning IORMRow objects (ie IORMTable::select).
  *
  * 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
@@ -26,7 +27,7 @@
  * @author Jeroen De Dauw < jeroendedauw@gmail.com >
  */
 
-class ORMResult implements Iterator {
+class ORMResult implements ORMIterator {
 
        /**
         * @var ResultWrapper
@@ -36,7 +37,7 @@ class ORMResult implements Iterator {
        /**
         * @var integer
         */
-       protected  $key;
+       protected $key;
 
        /**
         * @var IORMRow
index 5772958..e624ec2 100644 (file)
@@ -720,9 +720,9 @@ class DifferenceEngine extends ContextSource {
                }
                if ( $wgExternalDiffEngine != 'wikidiff3' && $wgExternalDiffEngine !== false ) {
                        # Diff via the shell
-                       global $wgTmpDirectory;
-                       $tempName1 = tempnam( $wgTmpDirectory, 'diff_' );
-                       $tempName2 = tempnam( $wgTmpDirectory, 'diff_' );
+                       $tmpDir = wfTempDir();
+                       $tempName1 = tempnam( $tmpDir, 'diff_' );
+                       $tempName2 = tempnam( $tmpDir, 'diff_' );
 
                        $tempFile1 = fopen( $tempName1, "w" );
                        if ( !$tempFile1 ) {
index 2080639..f2860f3 100644 (file)
@@ -532,14 +532,12 @@ abstract class FileBackendStore extends FileBackend {
         * @return bool
         */
        final public function getFileStat( array $params ) {
-               wfProfileIn( __METHOD__ );
-               wfProfileIn( __METHOD__ . '-' . $this->name );
                $path = self::normalizeStoragePath( $params['src'] );
                if ( $path === null ) {
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
                        return false; // invalid storage path
                }
+               wfProfileIn( __METHOD__ );
+               wfProfileIn( __METHOD__ . '-' . $this->name );
                $latest = !empty( $params['latest'] ); // use latest data?
                if ( !isset( $this->cache[$path]['stat'] ) ) {
                        $this->primeFileCache( array( $path ) ); // check persistent cache
@@ -564,6 +562,11 @@ abstract class FileBackendStore extends FileBackend {
                        $this->trimCache(); // limit memory
                        $this->cache[$path]['stat'] = $stat;
                        $this->setFileCache( $path, $stat ); // update persistent cache
+                       if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata
+                               $this->trimCache(); // limit memory
+                               $this->cache[$path]['sha1'] =
+                                       array( 'hash' => $stat['sha1'], 'latest' => $latest );
+                       }
                } else {
                        wfDebug( __METHOD__ . ": File $path does not exist.\n" );
                }
@@ -603,14 +606,22 @@ abstract class FileBackendStore extends FileBackend {
         * @return bool|string
         */
        final public function getFileSha1Base36( array $params ) {
+               $path = self::normalizeStoragePath( $params['src'] );
+               if ( $path === null ) {
+                       return false; // invalid storage path
+               }
                wfProfileIn( __METHOD__ );
                wfProfileIn( __METHOD__ . '-' . $this->name );
-               $path = $params['src'];
+               $latest = !empty( $params['latest'] ); // use latest data?
                if ( isset( $this->cache[$path]['sha1'] ) ) {
-                       $this->pingCache( $path ); // LRU
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
-                       return $this->cache[$path]['sha1'];
+                       // If we want the latest data, check that this cached
+                       // value was in fact fetched with the latest available data.
+                       if ( !$latest || $this->cache[$path]['sha1']['latest'] ) {
+                               $this->pingCache( $path ); // LRU
+                               wfProfileOut( __METHOD__ . '-' . $this->name );
+                               wfProfileOut( __METHOD__ );
+                               return $this->cache[$path]['sha1']['hash'];
+                       }
                }
                wfProfileIn( __METHOD__ . '-miss' );
                wfProfileIn( __METHOD__ . '-miss-' . $this->name );
@@ -619,7 +630,7 @@ abstract class FileBackendStore extends FileBackend {
                wfProfileOut( __METHOD__ . '-miss' );
                if ( $hash ) { // don't cache negatives
                        $this->trimCache(); // limit memory
-                       $this->cache[$path]['sha1'] = $hash;
+                       $this->cache[$path]['sha1'] = array( 'hash' => $hash, 'latest' => $latest );
                }
                wfProfileOut( __METHOD__ . '-' . $this->name );
                wfProfileOut( __METHOD__ );
@@ -628,7 +639,7 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackendStore::getFileSha1Base36()
-        * @return bool
+        * @return bool|string
         */
        protected function doGetFileSha1Base36( array $params ) {
                $fsFile = $this->getLocalReference( $params );
@@ -658,19 +669,28 @@ abstract class FileBackendStore extends FileBackend {
         * @return TempFSFile|null
         */
        public function getLocalReference( array $params ) {
+               $path = self::normalizeStoragePath( $params['src'] );
+               if ( $path === null ) {
+                       return null; // invalid storage path
+               }
                wfProfileIn( __METHOD__ );
                wfProfileIn( __METHOD__ . '-' . $this->name );
-               $path = $params['src'];
+               $latest = !empty( $params['latest'] ); // use latest data?
                if ( isset( $this->expensiveCache[$path]['localRef'] ) ) {
-                       $this->pingExpensiveCache( $path );
-                       wfProfileOut( __METHOD__ . '-' . $this->name );
-                       wfProfileOut( __METHOD__ );
-                       return $this->expensiveCache[$path]['localRef'];
+                       // If we want the latest data, check that this cached
+                       // value was in fact fetched with the latest available data.
+                       if ( !$latest || $this->expensiveCache[$path]['localRef']['latest'] ) {
+                               $this->pingExpensiveCache( $path );
+                               wfProfileOut( __METHOD__ . '-' . $this->name );
+                               wfProfileOut( __METHOD__ );
+                               return $this->expensiveCache[$path]['localRef']['object'];
+                       }
                }
                $tmpFile = $this->getLocalCopy( $params );
                if ( $tmpFile ) { // don't cache negatives
                        $this->trimExpensiveCache(); // limit memory
-                       $this->expensiveCache[$path]['localRef'] = $tmpFile;
+                       $this->expensiveCache[$path]['localRef'] =
+                               array( 'object' => $tmpFile, 'latest' => $latest );
                }
                wfProfileOut( __METHOD__ . '-' . $this->name );
                wfProfileOut( __METHOD__ );
@@ -1494,8 +1514,14 @@ abstract class FileBackendStore extends FileBackend {
                $values = $this->memCache->getMulti( array_keys( $pathNames ) );
                foreach ( $values as $cacheKey => $val ) {
                        if ( is_array( $val ) ) {
+                               $path = $pathNames[$cacheKey];
                                $this->trimCache(); // limit memory
-                               $this->cache[$pathNames[$cacheKey]]['stat'] = $val;
+                               $this->cache[$path]['stat'] = $val;
+                               if ( isset( $val['sha1'] ) ) { // some backends store SHA-1 as metadata
+                                       $this->trimCache(); // limit memory
+                                       $this->cache[$path]['sha1'] =
+                                               array( 'hash' => $val['sha1'], 'latest' => $val['latest'] );
+                               }
                        }
                }
 
index e27744f..2b10917 100644 (file)
@@ -639,7 +639,7 @@ class SwiftFileBackend extends FileBackendStore {
                        $stat = array(
                                // Convert dates like "Tue, 03 Jan 2012 22:01:04 GMT" to TS_MW
                                'mtime' => wfTimestamp( TS_MW, $srcObj->last_modified ),
-                               'size'  => $srcObj->content_length,
+                               'size'  => (int)$srcObj->content_length,
                                'sha1'  => $srcObj->metadata['Sha1base36']
                        );
                } catch ( NoSuchContainerException $e ) {
index ae22a1c..ddc640a 100644 (file)
@@ -23,7 +23,7 @@
 
 /**
  * This class is used to hold the location and do limited manipulation
- * of files stored temporarily (usually this will be $wgTmpDirectory)
+ * of files stored temporarily (this will be whatever wfTempDir() returns)
  *
  * @ingroup FileBackend
  */
index 0c3876c..752e214 100644 (file)
@@ -132,7 +132,7 @@ class CliInstaller extends Installer {
         * @param $path String Full path to write LocalSettings.php to
         */
        public function writeConfigurationFile( $path ) {
-               $ls = new LocalSettingsGenerator( $this );
+               $ls = InstallerOverrides::getLocalSettingsGenerator( $this );
                $ls->writeFile( "$path/LocalSettings.php" );
        }
 
index 9ed486c..bbc6b64 100644 (file)
  */
 class LocalSettingsGenerator {
 
-       private $extensions = array();
-       private $values = array();
-       private $groupPermissions = array();
-       private $dbSettings = '';
-       private $safeMode = false;
+       protected $extensions = array();
+       protected $values = array();
+       protected $groupPermissions = array();
+       protected $dbSettings = '';
+       protected $safeMode = false;
 
        /**
         * @var Installer
         */
-       private $installer;
+       protected $installer;
 
        /**
         * Constructor.
@@ -166,7 +166,7 @@ class LocalSettingsGenerator {
        /**
         * @return String
         */
-       private function buildMemcachedServerList() {
+       protected function buildMemcachedServerList() {
                $servers = $this->values['_MemCachedServers'];
 
                if( !$servers ) {
@@ -187,7 +187,7 @@ class LocalSettingsGenerator {
        /**
         * @return String
         */
-       private function getDefaultText() {
+       protected function getDefaultText() {
                if( !$this->values['wgImageMagickConvertCommand'] ) {
                        $this->values['wgImageMagickConvertCommand'] = '/usr/bin/convert';
                        $magic = '#';
index 5bbe642..4f31195 100644 (file)
@@ -161,7 +161,7 @@ class WebInstaller extends Installer {
                                'Content-Disposition: attachment; filename="LocalSettings.php"'
                        );
 
-                       $ls = new LocalSettingsGenerator( $this );
+                       $ls = InstallerOverrides::getLocalSettingsGenerator( $this );
                        $rightsProfile = $this->rightsProfiles[$this->getVar( '_RightsProfile' )];
                        foreach( $rightsProfile as $group => $rightsArr ) {
                                $ls->setGroupRights( $group, $rightsArr );
index 076e23f..eacf9a8 100644 (file)
@@ -58,7 +58,7 @@ class Interwiki {
         * Fetch an Interwiki object
         *
         * @param $prefix String: interwiki prefix to use
-        * @return Interwiki Object, or null if not valid
+        * @return Interwiki|null|bool
         */
        static public function fetch( $prefix ) {
                global $wgContLang;
index ee1ac45..04df226 100644 (file)
@@ -106,16 +106,14 @@ class LogEventsList {
                $month = '', $filter = null, $tagFilter='' ) {
                global $wgScript, $wgMiserMode;
 
-               $action = $wgScript;
                $title = SpecialPage::getTitleFor( 'Log' );
-               $special = $title->getPrefixedDBkey();
 
                // For B/C, we take strings, but make sure they are converted...
                $types = ($types === '') ? array() : (array)$types;
 
                $tagSelector = ChangeTags::buildTagFilterSelector( $tagFilter );
 
-               $html = Html::hidden( 'title', $special );
+               $html = Html::hidden( 'title', $title->getPrefixedDBkey() );
 
                // Basic selectors
                $html .= $this->getTypeMenu( $types ) . "\n";
@@ -148,7 +146,7 @@ class LogEventsList {
                $html = Xml::fieldset( wfMsg( 'log' ), $html );
 
                // Form wrapping
-               $html = Xml::tags( 'form', array( 'action' => $action, 'method' => 'get' ), $html );
+               $html = Xml::tags( 'form', array( 'action' => $wgScript, 'method' => 'get' ), $html );
 
                $this->out->addHTML( $html );
        }
@@ -173,12 +171,11 @@ class LogEventsList {
                        $hideVal = 1 - intval($val);
                        $query[$queryKey] = $hideVal;
 
-                       $link = Linker::link(
+                       $link = Linker::linkKnown(
                                $this->getDisplayTitle(),
                                $messages[$hideVal],
                                array(),
-                               $query,
-                               array( 'known', 'noclasses' )
+                               $query
                        );
 
                        $links[$type] = wfMsgHtml( "log-show-hide-{$type}", $link );
@@ -384,7 +381,7 @@ class LogEventsList {
                if( self::typeAction( $row, 'move', 'move', 'move' ) && !empty( $paramArray[0] ) ) {
                        $destTitle = Title::newFromText( $paramArray[0] );
                        if( $destTitle ) {
-                               $revert = Linker::link(
+                               $revert = Linker::linkKnown(
                                        SpecialPage::getTitleFor( 'Movepage' ),
                                        $this->message['revertmove'],
                                        array(),
@@ -393,8 +390,7 @@ class LogEventsList {
                                                'wpNewTitle' => $title->getPrefixedDBkey(),
                                                'wpReason'   => wfMsgForContent( 'revertmove' ),
                                                'wpMovetalk' => 0
-                                       ),
-                                       array( 'known', 'noclasses' )
+                                       )
                                );
                                $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                        }
@@ -405,30 +401,23 @@ class LogEventsList {
                        } else {
                                $viewdeleted = $this->message['undeletelink'];
                        }
-                       $revert = Linker::link(
+                       $revert = Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Undelete' ),
                                $viewdeleted,
                                array(),
-                               array( 'target' => $title->getPrefixedDBkey() ),
-                               array( 'known', 'noclasses' )
+                               array( 'target' => $title->getPrefixedDBkey() )
                         );
                        $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // Show unblock/change block link
                } elseif( self::typeAction( $row, array( 'block', 'suppress' ), array( 'block', 'reblock' ), 'block' ) ) {
-                       $revert = Linker::link(
+                       $revert = Linker::linkKnown(
                                        SpecialPage::getTitleFor( 'Unblock', $row->log_title ),
-                                       $this->message['unblocklink'],
-                                       array(),
-                                       array(),
-                                       'known'
+                                       $this->message['unblocklink']
                                ) .
                                $this->message['pipe-separator'] .
-                               Linker::link(
+                               Linker::linkKnown(
                                        SpecialPage::getTitleFor( 'Block', $row->log_title ),
-                                       $this->message['change-blocklink'],
-                                       array(),
-                                       array(),
-                                       'known'
+                                       $this->message['change-blocklink']
                                );
                                $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // Show change protection link
@@ -452,7 +441,7 @@ class LogEventsList {
                        $revert = ' ' . wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // Show unmerge link
                } elseif( self::typeAction( $row, 'merge', 'merge', 'mergehistory' ) ) {
-                       $revert = Linker::link(
+                       $revert = Linker::linkKnown(
                                SpecialPage::getTitleFor( 'MergeHistory' ),
                                $this->message['revertmerge'],
                                array(),
@@ -460,8 +449,7 @@ class LogEventsList {
                                        'target' => $paramArray[0],
                                        'dest' => $title->getPrefixedDBkey(),
                                        'mergepoint' => $paramArray[1]
-                               ),
-                               array( 'known', 'noclasses' )
+                               )
                        );
                        $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                // If an edit was hidden from a page give a review link to the history
@@ -475,7 +463,7 @@ class LogEventsList {
                                // $paramArray[1] is a CSV of the IDs
                                $query = $paramArray[0];
                                // Link to each hidden object ID, $paramArray[1] is the url param
-                               $revert = Linker::link(
+                               $revert = Linker::linkKnown(
                                        $revdel,
                                        $this->message['revdel-restore'],
                                        array(),
@@ -483,8 +471,7 @@ class LogEventsList {
                                                'target' => $title->getPrefixedText(),
                                                'type' => 'logging',
                                                'ids' => $query
-                                       ),
-                                       array( 'known', 'noclasses' )
+                                       )
                                );
                                $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
                        }
index d03771e..63ad4de 100644 (file)
@@ -28,7 +28,7 @@
  * for systems that don't have it.
  *
  * On construction you can pass array( 'dir' => '/some/path' ); as a parameter
- * to override the default DBA files directory (wgTmpDirectory).
+ * to override the default DBA files directory (wfTempDir()).
  *
  * @ingroup Cache
  */
@@ -39,8 +39,7 @@ class DBABagOStuff extends BagOStuff {
                global $wgDBAhandler;
 
                if ( !isset( $params['dir'] ) ) {
-                       global $wgTmpDirectory;
-                       $params['dir'] = $wgTmpDirectory;
+                       $params['dir'] = wfTempDir();
                }
 
                $this->mFile = $params['dir']."/mw-cache-" . wfWikiID();
index 3c26487..65d736a 100644 (file)
  * @file
  * @ingroup Cache
  */
+
 /**
  * A wrapper class for the PECL memcached client
- * 
+ *
  * @ingroup Cache
  */
 class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
@@ -37,7 +37,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         *   - compress_threshold:  The minimum size an object must be before it is compressed
         *   - timeout:             The read timeout in microseconds
         *   - connect_timeout:     The connect timeout in seconds
-        *   - serializer:          May be either "php" or "igbinary". Igbinary produces more compact 
+        *   - serializer:          May be either "php" or "igbinary". Igbinary produces more compact
         *                          values, but serialization is much slower unless the php.ini option
         *                          igbinary.compact_strings is off.
         */
@@ -45,7 +45,14 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                $params = $this->applyDefaultParams( $params );
 
                if ( $params['persistent'] ) {
-                       $this->client = new Memcached( __CLASS__ );
+                       // The pool ID must be unique to the server/option combination.
+                       // The Memcached object is essentially shared for each pool ID.
+                       // We can only resuse a pool ID if we keep the config consistent.
+                       $this->client = new Memcached( md5( serialize( $params ) ) );
+                       if ( count( $this->client->getServerList() ) ) {
+                               wfDebug( __METHOD__ . ": persistent Memcached object already loaded.\n" );
+                               return; // already initialized; don't add duplicate servers
+                       }
                } else {
                        $this->client = new Memcached;
                }
@@ -54,8 +61,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                        $params['serializer'] = 'php';
                }
 
-               // The compression threshold is an undocumented php.ini option for some 
-               // reason. There's probably not much harm in setting it globally, for 
+               // The compression threshold is an undocumented php.ini option for some
+               // reason. There's probably not much harm in setting it globally, for
                // compatibility with the settings for the PHP client.
                ini_set( 'memcached.compression_threshold', $params['compress_threshold'] );
 
@@ -65,10 +72,10 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                $this->client->setOption( Memcached::OPT_RECV_TIMEOUT, $params['timeout'] );
                $this->client->setOption( Memcached::OPT_POLL_TIMEOUT, $params['timeout'] / 1000 );
 
-               // Set libketama mode since it's recommended by the documentation and 
+               // Set libketama mode since it's recommended by the documentation and
                // is as good as any. There's no way to configure libmemcached to use
                // hashes identical to the ones currently in use by the PHP client, and
-               // even implementing one of the libmemcached hashes in pure PHP for 
+               // even implementing one of the libmemcached hashes in pure PHP for
                // forwards compatibility would require MWMemcached::get_sock() to be
                // rewritten.
                $this->client->setOption( Memcached::OPT_LIBKETAMA_COMPATIBLE, true );
@@ -80,7 +87,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                                break;
                        case 'igbinary':
                                if ( !Memcached::HAVE_IGBINARY ) {
-                                       throw new MWException( __CLASS__.': the igbinary extension is not available ' . 
+                                       throw new MWException( __CLASS__.': the igbinary extension is not available ' .
                                                'but igbinary serialization was requested.' );
                                }
                                $this->client->setOption( Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY );
@@ -88,10 +95,11 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                        default:
                                throw new MWException( __CLASS__.': invalid value for serializer parameter' );
                }
+               $servers = array();
                foreach ( $params['servers'] as $host ) {
-                       list( $ip, $port ) = IP::splitHostAndPort( $host );
-                       $this->client->addServer( $ip, $port );
+                       $servers[] = IP::splitHostAndPort( $host ); // (ip, port)
                }
+               $this->client->addServers( $servers );
        }
 
        /**
@@ -174,12 +182,12 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        }
 
        /**
-        * Check the return value from a client method call and take any necessary 
-        * action. Returns the value that the wrapper function should return. At 
+        * Check the return value from a client method call and take any necessary
+        * action. Returns the value that the wrapper function should return. At
         * present, the return value is always the same as the return value from
-        * the client, but some day we might find a case where it should be 
+        * the client, but some day we might find a case where it should be
         * different.
-        * 
+        *
         * @param $key The key used by the caller, or false if there wasn't one.
         * @param $result The return value
         */
@@ -220,8 +228,8 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                return $this->checkResult( false, $result );
        }
 
-       /* NOTE: there is no cas() method here because it is currently not supported 
-        * by the BagOStuff interface and other BagOStuff subclasses, such as 
+       /* NOTE: there is no cas() method here because it is currently not supported
+        * by the BagOStuff interface and other BagOStuff subclasses, such as
         * SqlBagOStuff.
         */
 }
index e504887..209975b 100644 (file)
@@ -87,25 +87,34 @@ class SqlBagOStuff extends BagOStuff {
         * @return DatabaseBase
         */
        protected function getDB() {
+               global $wgDebugDBTransactions;
                if ( !isset( $this->db ) ) {
                        # If server connection info was given, use that
                        if ( $this->serverInfo ) {
+                               if ( $wgDebugDBTransactions ) {
+                                       wfDebug( sprintf( "Using provided serverInfo for SqlBagOStuff\n" ) );
+                               }
                                $this->lb = new LoadBalancer( array(
                                        'servers' => array( $this->serverInfo ) ) );
                                $this->db = $this->lb->getConnection( DB_MASTER );
                                $this->db->clearFlag( DBO_TRX );
                        } else {
-                               # We must keep a separate connection to MySQL in order to avoid deadlocks
-                               # However, SQLite has an opposite behaviour.
-                               # @todo Investigate behaviour for other databases
-                               if ( wfGetDB( DB_MASTER )->getType() == 'sqlite' ) {
-                                       $this->db = wfGetDB( DB_MASTER );
-                               } else {
+                               /*
+                                * We must keep a separate connection to MySQL in order to avoid deadlocks
+                                * However, SQLite has an opposite behaviour. And PostgreSQL needs to know
+                                * if we are in transaction or no
+                                */
+                               if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
                                        $this->lb = wfGetLBFactory()->newMainLB();
                                        $this->db = $this->lb->getConnection( DB_MASTER );
                                        $this->db->clearFlag( DBO_TRX );
+                               } else {
+                                       $this->db = wfGetDB( DB_MASTER );
                                }
                        }
+                       if ( $wgDebugDBTransactions ) {
+                               wfDebug( sprintf( "Connection %s will be used for SqlBagOStuff\n", $this->db ) );
+                       }
                }
 
                return $this->db;
index 9e88494..b3d7e75 100644 (file)
@@ -713,12 +713,23 @@ class ResourceLoader {
                                // Styles
                                $styles = array();
                                if ( $context->shouldIncludeStyles() ) {
-                                       // If we are in debug mode, we'll want to return an array of URLs
+                                       // If we are in debug mode without &only= set, we'll want to return an array of URLs
                                        // See comment near shouldIncludeScripts() for more details
                                        if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) {
                                                $styles = $module->getStyleURLsForDebug( $context );
                                        } else {
                                                $styles = $module->getStyles( $context );
+                                               // Minify CSS before embedding in mw.loader.implement call
+                                               // (unless in debug mode)
+                                               if ( !$context->getDebug() ) {
+                                                       foreach ( $styles as $media => $style ) {
+                                                               if ( is_string( $style ) ) {
+                                                                       $styles[$media] = $this->filter( 'minify-css', $style );
+                                                               }
+                                                       }
+                                               }
+                                               // Combine styles for all media types
+                                               $styles = array( '' => self::makeCombinedStyles( $styles ) );
                                        }
                                }
 
@@ -737,23 +748,18 @@ class ResourceLoader {
                                                }
                                                break;
                                        case 'styles':
-                                               $out .= self::makeCombinedStyles( $styles );
+                                               $out .= $styles['']; // Code above has set $styles['']
                                                break;
                                        case 'messages':
                                                $out .= self::makeMessageSetScript( new XmlJsCode( $messagesBlob ) );
                                                break;
                                        default:
-                                               // Minify CSS before embedding in mw.loader.implement call
-                                               // (unless in debug mode)
-                                               if ( !$context->getDebug() ) {
-                                                       foreach ( $styles as $media => $style ) {
-                                                               if ( is_string( $style ) ) {
-                                                                       $styles[$media] = $this->filter( 'minify-css', $style );
-                                                               }
-                                                       }
-                                               }
-                                               $out .= self::makeLoaderImplementScript( $name, $scripts, $styles,
-                                                       new XmlJsCode( $messagesBlob ) );
+                                               $out .= self::makeLoaderImplementScript(
+                                                       $name,
+                                                       $scripts,
+                                                       $styles,
+                                                       new XmlJsCode( $messagesBlob )
+                                               );
                                                break;
                                }
                        } catch ( Exception $e ) {
index 4904735..b823f1d 100644 (file)
@@ -46,7 +46,9 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
                return Xml::encodeJsCall( 'mw.language.setData', array(
                        $wgContLang->getCode(),
-                       array( 'grammarForms' => $this->getSiteLangGrammarForms() )
+                       array(
+                               'grammarForms' => $this->getSiteLangGrammarForms()
+                       )
                ) );
        }
 
index f6482ef..2b88325 100644 (file)
@@ -136,6 +136,15 @@ class SpecialChangePassword extends UnlistedSpecialPage {
                        $oldpassMsg = 'oldpassword';
                        $submitMsg = 'resetpass-submit-loggedin';
                }
+               $extraFields = array();
+               wfRunHooks( 'ChangePasswordForm', array( &$extraFields ) );
+               $prettyFields = array(
+                                       array( 'wpName', 'username', 'text', $this->mUserName ),
+                                       array( 'wpPassword', $oldpassMsg, 'password', $this->mOldpass ),
+                                       array( 'wpNewPassword', 'newpassword', 'password', null ),
+                                       array( 'wpRetype', 'retypenew', 'password', null ),
+                               );
+               $prettyFields = array_merge( $prettyFields, $extraFields );
                $this->getOutput()->addHTML(
                        Xml::fieldset( $this->msg( 'resetpass_header' )->text() ) .
                        Xml::openElement( 'form',
@@ -149,12 +158,7 @@ class SpecialChangePassword extends UnlistedSpecialPage {
                        Html::hidden( 'returnto', $this->getRequest()->getVal( 'returnto' ) ) . "\n" .
                        $this->msg( 'resetpass_text' )->parseAsBlock() . "\n" .
                        Xml::openElement( 'table', array( 'id' => 'mw-resetpass-table' ) ) . "\n" .
-                       $this->pretty( array(
-                               array( 'wpName', 'username', 'text', $this->mUserName ),
-                               array( 'wpPassword', $oldpassMsg, 'password', $this->mOldpass ),
-                               array( 'wpNewPassword', 'newpassword', 'password', null ),
-                               array( 'wpRetype', 'retypenew', 'password', null ),
-                       ) ) . "\n" .
+                       $this->pretty( $prettyFields ) . "\n" .
                        $rememberMe .
                        "<tr>\n" .
                                "<td></td>\n" .
index 284b85a..ddab164 100644 (file)
@@ -197,7 +197,7 @@ class ImageListPager extends TablePager {
                                $thumb = $file->transform( array( 'width' => 180, 'height' => 360 ) );
                                return $thumb->toHtml( array( 'desc-link' => true ) );
                        case 'img_timestamp':
-                               return htmlspecialchars( $this->getLanguage()->timeanddate( $value, true ) );
+                               return htmlspecialchars( $this->getLanguage()->userTimeAndDate( $value, $this->getUser() ) );
                        case 'img_name':
                                static $imgfile = null;
                                if ( $imgfile === null ) $imgfile = $this->msg( 'imgfile' )->text();
index 7fbe910..b5fb0dd 100644 (file)
@@ -252,9 +252,11 @@ class SpecialMergeHistory extends SpecialPage {
                $ts = wfTimestamp( TS_MW, $row->rev_timestamp );
                $checkBox = Xml::radio( 'mergepoint', $ts, false );
 
+               $user = $this->getUser();
+
                $pageLink = Linker::linkKnown(
                        $rev->getTitle(),
-                       htmlspecialchars( $this->getLanguage()->timeanddate( $ts ) ),
+                       htmlspecialchars( $this->getLanguage()->userTimeAndDate( $ts, $user ) ),
                        array(),
                        array( 'oldid' => $rev->getId() )
                );
@@ -263,7 +265,7 @@ class SpecialMergeHistory extends SpecialPage {
                }
 
                # Last link
-               if( !$rev->userCan( Revision::DELETED_TEXT, $this->getUser() ) ) {
+               if( !$rev->userCan( Revision::DELETED_TEXT, $user ) ) {
                        $last = $this->message['last'];
                } elseif( isset( $this->prevId[$row->rev_id] ) ) {
                        $last = Linker::linkKnown(
@@ -285,10 +287,8 @@ class SpecialMergeHistory extends SpecialPage {
                }
                $comment = Linker::revComment( $rev );
 
-               $revisionRow = $this->msg( 'mergehistory-revisionrow' )->rawParams( $checkBox, $last, $pageLink, $userLink, $stxt, $comment)->escaped();
-               $revisionRow .= "<li>" . $line . "</li>";
-
-               return $revisionRow;
+               return Html::rawElement( 'li', array(),
+                       $this->msg( 'mergehistory-revisionrow' )->rawParams( $checkBox, $last, $pageLink, $userLink, $stxt, $comment )->escaped() );
        }
 
        function merge() {
index 4c32c30..1798e8f 100644 (file)
@@ -345,7 +345,7 @@ class SpecialNewpages extends IncludableSpecialPage {
                        $this->msg( 'parentheses' )->rawParams( $histLink )->escaped() );
 
                $length = Html::element( 'span', array( 'class' => 'mw-newpages-length' ),
-                               '[' . $this->msg( 'nbytes' )->numParams( $result->length )->text() . ']'
+                       $this->msg( 'brackets' )->params( $this->msg( 'nbytes' )->numParams( $result->length )->text() )
                );
 
                $ulink = Linker::revUserTools( $rev );
index 803f03e..9f84804 100644 (file)
@@ -56,7 +56,13 @@ class PopularPagesPage extends QueryPage {
         */
        function formatResult( $skin, $result ) {
                global $wgContLang;
-               $title = Title::makeTitle( $result->namespace, $result->title );
+
+               $title = Title::makeTitleSafe( $result->namespace, $result->title );
+               if( !$title ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
+
                $link = Linker::linkKnown(
                        $title,
                        htmlspecialchars( $wgContLang->convert( $title->getPrefixedText() ) )
index 730969d..c37bb1d 100644 (file)
@@ -196,7 +196,8 @@ class SpecialPrefixindex extends SpecialAllpages {
                                                $link = ($s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
                                                        Linker::linkKnown(
                                                                $t,
-                                                               htmlspecialchars( $t->getText() )
+                                                               htmlspecialchars( $t->getText() ),
+                                                               $s->page_is_redirect ? array( 'class' => 'mw-redirect' ) : array()
                                                        ) .
                                                        ($s->page_is_redirect ? '</div>' : '' );
                                        } else {
index d089c73..83c7235 100644 (file)
@@ -420,7 +420,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                        $out .= Xml::closeElement( 'form' ) . "\n";
                        // Show link to edit the dropdown reasons
                        if( $this->getUser()->isAllowed( 'editinterface' ) ) {
-                               $title = Title::makeTitle( NS_MEDIAWIKI, 'revdelete-reason-dropdown' );
+                               $title = Title::makeTitle( NS_MEDIAWIKI, 'Revdelete-reason-dropdown' );
                                $link = Linker::link(
                                        $title,
                                        $this->msg( 'revdelete-edit-reasonlist' )->escaped(),
index 079130f..3344436 100644 (file)
@@ -899,27 +899,7 @@ class SpecialSearch extends SpecialPage {
                        ) .
                        Xml::element( 'legend', null, $this->msg('powersearch-legend' )->text() ) .
                        Xml::tags( 'h4', null, $this->msg( 'powersearch-ns' )->parse() ) .
-                       Xml::tags(
-                               'div',
-                               array( 'id' => 'mw-search-togglebox' ),
-                               Xml::label( $this->msg( 'powersearch-togglelabel' )->text(), 'mw-search-togglelabel' ) .
-                                       Xml::element(
-                                               'input',
-                                               array(
-                                                       'type'=>'button',
-                                                       'id' => 'mw-search-toggleall',
-                                                       'value' => $this->msg( 'powersearch-toggleall' )->text()
-                                               )
-                                       ) .
-                                       Xml::element(
-                                               'input',
-                                               array(
-                                                       'type'=>'button',
-                                                       'id' => 'mw-search-togglenone',
-                                                       'value' => $this->msg( 'powersearch-togglenone' )->text()
-                                               )
-                                       )
-                       ) .
+                       Html::element( 'div', array( 'id' => 'mw-search-togglebox' ) ) .
                        Xml::element( 'div', array( 'class' => 'divider' ), '', false ) .
                        implode( Xml::element( 'div', array( 'class' => 'divider' ), '', false ), $showSections ) .
                        $hidden .
index 5bb7762..b531f2a 100644 (file)
@@ -256,6 +256,7 @@ class Language {
         *
         * @param $code string
         *
+        * @throws MWException
         * @since 1.18
         * @return bool
         */
@@ -3687,6 +3688,9 @@ class Language {
        /**
         * Get the RFC 3066 code for this language object
         *
+        * NOTE: The return value of this function is NOT HTML-safe and must be escaped with
+        * htmlspecialchars() or similar
+        *
         * @return string
         */
        public function getCode() {
@@ -3696,6 +3700,10 @@ class Language {
        /**
         * Get the code in Bcp47 format which we can use
         * inside of html lang="" tags.
+        *
+        * NOTE: The return value of this function is NOT HTML-safe and must be escaped with
+        * htmlspecialchars() or similar.
+        *
         * @since 1.19
         * @return string
         */
@@ -4108,7 +4116,7 @@ class Language {
         * @param $title Title object to link
         * @param $offset Integer offset parameter
         * @param $limit Integer limit parameter
-        * @param $query String optional URL query parameter string
+        * @param $query array|String optional URL query parameter string
         * @param $atend Bool optional param for specified if this is the last page
         * @return String
         */
index a66957f..25b61c3 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Northern Sami (Sámegiella) 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
+ */
+
 /**
  * Northern Sami (Sámegiella)
  *
index d47863d..0c74e45 100644 (file)
@@ -1,9 +1,31 @@
 <?php
-/** Samogitian (Žemaitėška)
+/**
+ * Samogitian (Žemaitėška) 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
+ */
+
+/**
+ * Samogitian (Žemaitėška)
+ *
+ * @ingroup Language
  */
 class LanguageSgs extends Language {
 
index 139ad0b..1fcddfc 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Serbo-Croatian (Srpskohrvatski / Српскохрватски) 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
+ */
+
 /**
  * Serbo-Croatian (Srpskohrvatski / Српскохрватски)
  *
index 08a06d6..ab34440 100644 (file)
@@ -1,24 +1,39 @@
 <?php
 /**
-  * @addtogroup Language
-  */
-
-/*
-* Conversion script between Latin and Tifinagh for Tachelhit.
-* - Tifinagh -> lowercase Latin
-* - lowercase/uppercase Latin -> Tifinagh
-*
-*
-* Based on:
-*   - http://en.wikipedia.org/wiki/Shilha_language
-*   - LanguageSr.php
-*
-* @ingroup Language
-*/
+ * Shilha 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 Tifinagh for Tachelhit.
+ * - Tifinagh -> lowercase Latin
+ * - lowercase/uppercase Latin -> Tifinagh
+ *
  *
+ * Based on:
+ *   - http://en.wikipedia.org/wiki/Shilha_language
+ *   - LanguageSr.php
+ *
+ * @ingroup Language
  */
 class ShiConverter extends LanguageConverter {
 
index eac25f4..b1da70e 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Slovak (Slovenčina) 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
+ */
+
 /**
  * Slovak (Slovenčina)
  *
index 3e2ca90..c075e51 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Slovenian (Slovenščina) 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
+ */
 
-/** Slovenian (Slovenščina)
+/**
+ * Slovenian (Slovenščina)
  *
  * @ingroup Language
  */
index 72ca98a..1961871 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Southern Sami (Åarjelsaemien) 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
+ */
+
 /**
  * Southern Sami (Åarjelsaemien)
  *
index 1b04cb7..26d6853 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Serbian (Српски / Srpski) 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__ ) . '/LanguageSr_ec.php' );
index 572a5f3..352e293 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Serbian (cyrillic script) 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
+ */
 
 /**
  * Serbian (cyrillic script)
index 3a1f6a6..0e36d6c 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Serbian (latin script) 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
+ */
 
 /**
  * Serbian (latin script)
index f73e2ba..90d5761 100644 (file)
@@ -1,9 +1,31 @@
 <?php
+/**
+ * Tajik (Тоҷикӣ) 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' );
 
 /**
  * Converts Tajiki to latin orthography
+ *
  * @ingroup Language
  */
 class TgConverter extends LanguageConverter {
index 46a776b..27331cc 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Tigrinya (ትግርኛ) 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
+ */
+
 /**
  * Tigrinya (ትግርኛ)
  *
index f976bed..15bce76 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Tagalog (Tagalog) 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
+ */
+
 /**
  * Tagalog (Tagalog)
  *
index b6acea4..6a01566 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Turkish (Türkçe) 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
+ */
+
 
 /**
  * Turkish (Türkçe)
index 8bca11b..6d147c8 100644 (file)
@@ -1,6 +1,29 @@
 <?php
+/**
+ * Tyvan (Тыва дыл) 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
+ */
 
-/** Tyvan localization (Тыва дыл)
+/**
+ * Tyvan localization (Тыва дыл)
+ *
  * From friends at tyvawiki.org
  *
  * @ingroup Language
index 14e5d27..ce9ed33 100644 (file)
@@ -1,6 +1,28 @@
 <?php
+/**
+ * Ukrainian (українська мова) 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
+ */
 
-/** Ukrainian (українська мова)
+/**
+ * Ukrainian (українська мова)
  *
  * @ingroup Language
  */
index 4a18663..8a4aca6 100644 (file)
@@ -1,13 +1,34 @@
 <?php
 /**
- * Walloon (Walon)
+ * Walloon (Walon) 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
  */
 
-# NOTE: cweri après "NOTE:" po des racsegnes so des ratournaedjes
-# k' i gn a.
-
+/**
+ * Walloon (Walon)
+ *
+ * NOTE: cweri après "NOTE:" po des racsegnes so des ratournaedjes
+ * k' i gn a.
+ *
+ * @ingroup Language
+ */
 class LanguageWa extends Language {
        /**
         * Use singular form for zero
index 5492529..aef5215 100644 (file)
@@ -1,4 +1,26 @@
 <?php
+/**
+ * Cantonese (粵語) 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
+ */
+
 /**
  * Cantonese (粵語)
  *
index d69929d..96eea7c 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * 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_hans.php' );
index 671a16e..d95c42e 100644 (file)
@@ -1,4 +1,25 @@
 <?php
+/**
+ * Simplified 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
+ */
 
 /**
  * Simplified Chinese
index 0aeeae0..0818bdc 100644 (file)
@@ -43,6 +43,9 @@ $namespaceAliases = array(
        'Espezial' => NS_SPECIAL,
 );
 
+// Remove Spanish gender aliases (bug 37090)
+$namespaceGenderAliases = array();
+
 $magicWords = array(
        'redirect'                => array( '0', '#ENDRECERA', '#REENDRECERA', '#REDIRECCIÓN', '#REDIRECCION', '#REDIRECT' ),
        'namespace'               => array( '1', 'ESPACIODENOMBRES', 'ESPACIODENOMBRE', 'NAMESPACE' ),
@@ -2075,7 +2078,7 @@ Contacto con l\'editor:
 correu-e: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Si no visita a pachina, no recibirá mas notificacions de futuros cambios cambios. 
+Si no visita a pachina, no recibirá mas notificacions de futuros cambios cambios.
 Tamién puet cambiar o modo de notificación d\'as pachinas que cosira en a suya lista de seguimiento.
 Atentament,
 O servicio de notificacions d\'o prochecto {{SITENAME}}
@@ -2145,7 +2148,7 @@ Torne t'a pachina anterior, recargue a pachina y torne a prebar alavez.",
 
 # Protect
 'protectlogpage' => 'Rechistro de proteccions de pachinas',
-'protectlogtext' => "Contino s'amuestra una lista de cambios en a protección d'as pachinas. 
+'protectlogtext' => "Contino s'amuestra una lista de cambios en a protección d'as pachinas.
 Se veiga a [[Special:ProtectedPages|lista de pachinas protechitas]] ta conoixer a lista de proteccions de pachinas actualment operacional.",
 'protectedarticle' => "s'ha protechito [[$1]]",
 'modifiedarticleprotection' => 's\'ha cambiato o livel de protección de "[[$1]]"',
@@ -3478,7 +3481,7 @@ Tamién puede fer servir o [[Special:EditWatchlist|editor estándar]].",
 'version-license' => 'Licencia',
 'version-poweredby-credits' => "Iste wiki funciona gracias a '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'atros',
-'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior. 
+'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior.
 
 MediaWiki se distribuye con l'asperanza d'estar d'utilidat, pero SIN GARRA GUARANCIA; nian a guarancia implicita de COMERCIALIZACIÓN u ADEQUACIÓN TA UNA FINALIDAT DETERMINADA. En trobará más detalles en a Licencia Publica General GNU.
 
index 1216e71..86f78d2 100644 (file)
@@ -1257,6 +1257,7 @@ $2
 'expansion-depth-exceeded-category' => 'الصفحات التي حدث فيها تجاوز عمق التوسيع',
 'expansion-depth-exceeded-warning' => 'الصفحة تجاوزت عمق التوسيع',
 'parser-unstrip-loop-warning' => 'حلقة معراة تم الكشف عنها',
+'parser-unstrip-recursion-limit' => 'تعدى حد العودية Unstrip  ($1)',
 
 # "Undo" feature
 'undo-success' => 'يمكن استرجاع التعديل.
index 18e745c..7c05478 100644 (file)
@@ -389,7 +389,7 @@ $1',
 'remembermypassword' => 'ܕܟܘܪ ܥܠܠܬܝ ܥܠ ܡܦܐܬܢܐ ܗܢܐ (ܠܡܬܚܐ ܥܠܝܐ ܕ $1 {{PLURAL:$1|ܝܘܡܐ|ܝܘܡܬ̈ܐ}})',
 'login' => 'ܥܘܠ',
 'nav-login-createaccount' => 'ܥܘܠ / ܒܪܝ ܚܘܫܒܢܐ',
-'loginprompt' => 'Ü\90ܠܨÜ\90 Ü Ü¡Ü¦Ü\90ܬܢÜ\90 Ü\95Ü\9dÜ Ü\9f Ü\95ܣܡÜ\9f Ü Ü©Ü\98Ü©Ü\9dÜ\99 (cookies) Ü Ü¥Ü Ü Ü¬Ü\90 Ü  {{SITENAME}}.',
+'loginprompt' => 'Ü\90ܠܨÜ\90 Ü Ü¡Ü¦Ü\90ܬܢÜ\90 Ü\95Ü\9dÜ Ü\9f Ü\95ܣܡÜ\9f Ü Ü©Ü\98Ü©Ü\9dÜ\99 (cookies) Ü Ü¥Ü Ü Ü¬Ü\90 Ü\92 {{SITENAME}}.',
 'userlogin' => 'ܥܘܠ / ܒܪܝ ܚܘܫܒܢܐ',
 'userloginnocreate' => 'ܥܘܠ',
 'logout' => 'ܦܠܘܛ',
@@ -451,7 +451,7 @@ $1',
 
 # Edit pages
 'summary' => 'ܦܣܝܩܬ̈ܐ ܕܫܘܚܠܦܐ:',
-'subject' => 'Ü¡Ü Ü\98Ü\90Ü\90¦ÜªÜ«Ü\93Ü¢ܐ ܪܫܝܐ:',
+'subject' => 'Ü¡Ü Ü\98Ü\90Ü\90¡Ü\98ܢܥܐ ܪܫܝܐ:',
 'minoredit' => 'ܗܢܐ ܗܘ ܫܘܚܠܦܐ ܙܥܘܪܐ',
 'watchthis' => 'ܪܗܝ ܦܐܬܐ ܗܕܐ',
 'savearticle' => 'ܠܒܘܟ ܕܦܐ',
@@ -640,7 +640,7 @@ $1',
 
 # Preferences page
 'preferences' => 'ܨܒܝܢܝܘܬ̈ܐ',
-'mypreferences' => 'ܨÜ\92Ü\9dÜ¢Ü\9dÜ\98ܬÌ\88Ü\90 Ü\95Ü\9dÜ Ü\9d',
+'mypreferences' => 'ܨܒܝܢܝܘܬ̈ܝ',
 'prefs-edits' => 'ܡܢܝܢܐ ܕܫܘܚܠܦ̈ܐ:',
 'prefsnologin' => 'ܠܝܬܝܟ ܥܠܝܠܐ',
 'changepassword' => 'ܫܚܠܦ ܡܠܬܐ ܕܥܠܠܐ',
@@ -666,7 +666,7 @@ $1',
 'resultsperpage' => 'ܡܢܝܢܐ ܕܦܠܛ̈ܐ ܒܕܦܐ:',
 'recentchangesdays' => 'ܝܘܡܬ̈ܐ ܠܚܙܝܐ ܒܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ:',
 'recentchangescount' => 'ܡܢܝܢܐ ܕܫܘܚܠܦ̈ܐ ܠܚܙܝܐ ܪܫܐܝܬ:',
-'savedprefs' => 'ܨÜ\92Ü\9dÜ¢Ü\9dÜ\98ܬÌ\88Ü\90 Ü\95Ü\9dÜ Ü\9f Ü\90ܬܠÜ\92Ü\9fÜ\98.',
+'savedprefs' => 'ܨܒܝܢܝܘܬ̈ܟ ܐܬܠܒܟܘ.',
 'timezonelegend' => 'ܙܘܢܐ ܙܒܢܝܐ:',
 'localtime' => 'ܥܕܢܐ ܕܘܟܬܝܐ:',
 'timezoneregion-africa' => 'ܐܦܪܝܩܐ',
@@ -865,6 +865,7 @@ $1',
 'http-read-error' => 'HTTP ܦܘܕܐ ܒܩܪܝܬܐ.',
 'http-curl-error' => 'ܦܘܕܐ ܒܫܟܚܐ ܕURL: $1',
 
+'license-header' => 'ܦܣܣܐ',
 'license-nopreview' => '(ܠܝܬ ܚܝܪܐ ܩܕܡܝܐ)',
 'upload_source_file' => ' (ܠܦܦܐ ܥܠ ܚܫܘܒܬܐ ܕܝܠܟ)',
 
@@ -936,6 +937,7 @@ $1',
 'randomredirect-nopages' => 'ܠܝܬ ܨܘܝܒ̈ܐ ܒܚܩܠܐ ܕ"$1".',
 
 # Statistics
+'statistics' => 'ܡܢܝܢܘܬ',
 'statistics-pages' => 'ܦܐܬܬ̈ܐ',
 'statistics-users-active' => 'ܡܦܠܚܢ̈ܐ ܙܪ̄ܝܙܐ',
 
@@ -1076,7 +1078,7 @@ $1',
 'listgrouprights-removegroup-self-all' => 'ܠܚܝ ܟܠ ܟܢܘܫܬ̈ܐ ܡܢ ܚܘܫܒܢܗ ܕܝܠܢܝܐ',
 
 # E-mail user
-'mailnologin' => 'Ü Ü\9dܬ Ü¦ÜªÜ«Ü\93Ü¢ܐ',
+'mailnologin' => 'Ü Ü\9dܬ Ü¡Ü\98ܢܥÜ\90 Ü Ü«Ü\98Ü\95ܪܐ',
 'emailuser' => 'ܫܕܪ ܐܓܪܬܐ ܠܗܢܐ ܡܦܠܚܢܐ',
 'emailpage' => 'ܫܕܪ ܐܓܪܬܐ ܒܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ ܠܡܦܠܚܢܐ',
 'defemailsubject' => 'ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ  ܡܢ ܡܦܠܚܢܐ "$1"',
@@ -1124,8 +1126,8 @@ $1',
 # Delete
 'deletepage' => 'ܫܘܦ ܦܐܬܐ',
 'confirm' => 'ܚܬܬ',
-'excontent' => "ܚܒܝܫܬ̈ܐ ܗܘܬ: '$1'",
-'excontentauthor' => "ܚܒܝܫܬ̈ܐ ܗܘܬ: '$1' (ܘܫܘܬܦܢܐ ܝܚܝܕܝܐ ܗܘܐ '[[Special:Contributions/$2|$2]]')",
+'excontent' => "ܚܒܝܫܬ̈ܐ ܗܘ̈ܝ: '$1'",
+'excontentauthor' => "ܚܒܝܫܬ̈ܐ ܗܘ̈ܝ: '$1' (ܘܫܘܬܦܢܐ ܝܚܝܕܝܐ ܗܘܐ '[[Special:Contributions/$2|$2]]')",
 'exblank' => 'ܦܐܬܐ ܣܦܝܩܬܐ ܗܘܐ',
 'delete-confirm' => 'ܫܘܦ "$1"',
 'delete-legend' => 'ܫܘܦ',
@@ -1141,6 +1143,7 @@ $1',
 # Rollback
 'rollbacklink' => 'ܐܦܢܝ',
 'editcomment' => "ܦܣܝܩܬ̈ܐ ܕܫܘܚܠܦܐ ܗܘܐ: \"''\$1''\".",
+'revertpage' => 'ܐܗܦܟ ܫܘܚܠܦ̈ܐ ܒܝܕ [[Special:Contributions/$2|$2]] ([[User talk:$2|ܡܡܠܐ]]) ܠܬܢܝܬܐ ܐܚܪܝܬܐ ܒܝܕ [[User:$1|$1]]',
 
 # Edit tokens
 'sessionfailure-title' => 'ܡܘܬܒܐ ܠܐ ܢܨܚܬ',
@@ -1157,7 +1160,7 @@ $1',
 'protect-fallback' => 'ܒܥܝ "$1" ܦܣܣܐ',
 'protect-level-autoconfirmed' => 'ܚܪܘܡ ܡܦܠܚܢ̈ܐ ܚܕ̈ܬܐ ܘܠܐ ܥܠܝܠ̈ܐ',
 'protect-level-sysop' => 'ܡܕܒܪ̈ܢܐ ܒܠܚܘܕ',
-'protect-expiring' => 'ܦܪܩ ܒ $1 (UTC)',
+'protect-expiring' => 'ܬܦܪÜ\98ܩ ܒ $1 (UTC)',
 'protect-expiry-indefinite' => 'ܠܥܠܡ',
 'protect-othertime' => 'ܥܕܢܐ ܐܚܪܬܐ:',
 'protect-othertime-op' => 'ܥܕܢܐ ܐܚܪܬܐ',
@@ -1229,6 +1232,7 @@ $1',
 'sp-contributions-userrights' => 'ܕܘܒܪܐ ܕܙܕ̈ܩܐ ܕܡܦܠܚܢܐ',
 'sp-contributions-search' => 'ܒܨܝ ܫܘܬܦܘܝܬ̈ܐ',
 'sp-contributions-username' => 'ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:',
+'sp-contributions-toponly' => 'ܚܘܝ ܫܘܚܠܦ̈ܐ ܕܗܢܘܢ ܬܢܝܬ̈ܐ ܐܚܪ̈ܝܬܐ ܒܠܚܘܕ',
 'sp-contributions-submit' => 'ܒܨܝ',
 
 # What links here
@@ -1354,6 +1358,17 @@ Do you want to change the settings?',
 'import-logentry-upload-detail' => '$1 {{PLURAL:$1|ܬܢܝܬܐ |ܬܢܝܬ̈ܐ}}',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|ܬܢܝܬܐ |ܬܢܝܬ̈ܐ}} ܡܢ $2',
 
+# Tooltip help for the actions
+'tooltip-pt-preferences' => 'Your preferences',
+'tooltip-pt-login' => 'ܛܒ ܐܢܬ ܕܣܓܠ ܥܠܠܐ، ܐܠܐ ܗܢܐ ܠܘ ܐܠܨܝܐ',
+'tooltip-pt-logout' => 'ܦܠܛܐ',
+'tooltip-ca-talk' => 'ܡܡܠܠܐ ܥܠ ܚܒܝܫܬܐ ܕܦܐܬܐ',
+'tooltip-ca-protect' => 'ܢܛܘܪ ܗܕܐ ܦܐܬܐ',
+'tooltip-ca-delete' => 'ܫܘܦ ܦܐܬܐ ܗܕܐ',
+'tooltip-n-randompage' => 'ܦܬܘܟ ܡܓܠܬܐ ܚܘܝܚܬܐ',
+'tooltip-t-emailuser' => 'ܫܕܪ ܐܓܪܬܐ ܠܗܢܐ ܡܦܠܚܢܐ',
+'tooltip-save' => 'ܠܒܘܟ ܫܘܚܠܦܟ',
+
 # Attribution
 'anonymous' => '{{PLURAL:$1|ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ|ܡܦܠܚܢ̈ܐ ܠܐ ܝܕ̈ܝܥܐ}} ܕ {{SITENAME}}',
 'siteuser' => '{{SITENAME}} ܡܦܠܚܢܐ $1',
@@ -1563,6 +1578,7 @@ $1',
 'logentry-newusers-newusers' => '$1 ܒܪܐ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ',
 'logentry-newusers-create' => '$1 ܒܪܐ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ',
 'logentry-newusers-create2' => '$1 ܒܪܐ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ $3',
+'logentry-newusers-autocreate' => 'ܚܘܫܒܢܐ $1 ܐܬܒܪܝ ܝܬܐܝܬ',
 'newuserlog-byemail' => 'ܡܠܬܐ ܕܥܠܠܐ ܐܫܬܕܪܬ ܒܝܕ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
 
 # Feedback
index 8e90cd9..dd00e1c 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Araucanian (Mapudungun)
+/** Araucanian (mapudungun)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 81e7261..c8f87e1 100644 (file)
@@ -1176,7 +1176,7 @@ $1",
 'prefs-beta' => 'বিটা বৈশিষ্টসমূহ',
 'prefs-datetime' => 'তাৰিখ আৰু সময়',
 'prefs-labs' => 'পৰীক্ষাগাৰ বৈশিষ্টসমূহ',
-'prefs-user-pages' => 'সদস্য পৃষ্ঠা',
+'prefs-user-pages' => 'সদস্য পৃষ্ঠাসমূহ',
 'prefs-personal' => 'সদস্যৰ বিৱৰণ',
 'prefs-rc' => 'শেহতীয়া সাল-সলনি',
 'prefs-watchlist' => 'লক্ষ্য তালিকা',
@@ -1650,7 +1650,7 @@ URL টোৰ বৈধতা বিচাৰ কৰি পুনৰ চেষ
 'backend-fail-internal' => 'ষ্ট\'ৰেজ বেক্‌এণ্ড "$1"ত এক অজ্ঞাত ত্ৰুটী ঘটিছে।',
 'backend-fail-contenttype' => '"$1"ত সাঁচি থ\'বলৈ ফাইলটোৰ সমল প্ৰকাৰ স্থিৰ কৰিব পৰা নগ\'ল।',
 'backend-fail-batchsize' => "$1টা ফাইল {{PLURAL:$1|কাৰ্যৰ|কাৰ্যৰ}} ষ্ট'ৰেজ বেকএ'ণ্ড দিয়া হৈছে; সীমা হৈছে $2টা {{PLURAL:$2|কাৰ্য|কাৰ্য}}।",
-'backend-fail-usable' => "à¦\85পৰà§\8dযাপà§\8dত à¦\85নà§\81মতি à¦¬à¦¾ à¦¹à§\87ৰà§\8bৱা à¦¨à¦¿à§°à§\8dদà§\87শিà¦\95া/à¦\95নà§\8dâ\80\8cà¦\9fà§\87à¦\87নাৰৰ বাবে $1 ফাইলটো লিখিব পৰা নগ'ল।",
+'backend-fail-usable' => "à¦\85পৰà§\8dযাপà§\8dত à¦\85নà§\81মতি à¦¬à¦¾ à¦¹à§\87ৰà§\8bৱা à¦¨à¦¿à§°à§\8dদà§\87শিà¦\95া/সমলৰ বাবে $1 ফাইলটো লিখিব পৰা নগ'ল।",
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'ষ্ট\'ৰেজ বেকএ\'ণ্ড "$1"ৰ বাবে জাৰ্ণাল তথ্যকোষৰ লগত সংযোগ স্থাপন নহ\'ল।',
@@ -1975,6 +1975,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 আপুনি ল’গৰ প্ৰকাৰ, সদস্যৰ নাম বা পৃষ্ঠাখনৰ নাম নিৰ্বাচন কৰি প্ৰদৰ্শনটোৰ আকাৰ সৰু কৰিব পাৰে ।',
 'logempty' => 'কোনো মিল থকা আইটেম লগত নাই ।',
 'log-title-wildcard' => 'এই পাঠেৰে আৰম্ভ হোৱা শিৰোনামাসমূহ অনুসন্ধান কৰক',
+'showhideselectedlogentries' => "নিৰ্বাচিত ল'গ ভুক্তি দেখুৱাওক/লুকুৱাওক",
 
 # Special:AllPages
 'allpages' => 'সকলোবোৰ পৃষ্ঠা',
@@ -2866,6 +2867,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'spambot_username' => 'মিডিয়াৱিকি স্পাম পৰিষ্কাৰ কাৰ্য্য',
 'spam_reverting' => '$1 -লে সংযোগ নথকা সৰ্বশেষ পুনৰীক্ষনলে উভতি যোৱা',
 'spam_blanking' => 'সকলো পুনৰীক্ষনৰ $1 -লে সংযোগ আছিল, ৰিক্ত কৰা হৈছে',
+'spam_deleting' => 'সকলো পুনৰীক্ষণৰ $1লৈ সংযোগ আছিল, বিলোপ কৰা হৈছে',
 
 # Info page
 'pageinfo-title' => '"$1" ৰ তথ্য',
index 7bc1e4b..1cf1a95 100644 (file)
@@ -11,6 +11,7 @@
  * @author Kaganer
  * @author Mikel
  * @author Remember the dot
+ * @author Savh
  * @author Xuacu
  * @author לערי ריינהארט
  */
@@ -1748,7 +1749,7 @@ Hai disponible una [[Special:WhatLinksHere/$2|llista completa]].",
 'sharedupload-desc-there' => 'Esti ficheru ye de $1 y puen usalu otros proyeutos.
 Llee la [páxina de descripción del ficheru $2] pa más información.',
 'sharedupload-desc-here' => "Esti ficheru ye de $1 y puen usalu otros proyeutos.
-La descripción de la [páxina de descripción del ficheru $2] s'amuesa darréu.",
+La descripción de la [$2 páxina de descripción del ficheru] s'amuesa darréu.",
 'sharedupload-desc-edit' => "Esti ficheru ye de $1 y se pue usar n'otros proyeutos.
 Seique quieras camudar la descripción de la so [páxina de descripción de ficheru $2] allí.",
 'sharedupload-desc-create' => "Esti ficheru ye de $1 y se pue usar n'otros proyeutos.
index 0e235c3..bc72730 100644 (file)
@@ -125,30 +125,30 @@ $messages = array(
 'monday' => 'Дүшәмбе',
 'tuesday' => 'Шишәмбе',
 'wednesday' => 'Шаршамбы',
-'thursday' => 'Ð\9aеÑ\81еаÒ\99на',
+'thursday' => 'Кесаҙна',
 'friday' => 'Йома',
 'saturday' => 'Шәмбе',
-'sun' => 'Йәкшәмбе',
-'mon' => 'Дүшәмбе',
-'tue' => 'Шишәмбе',
-'wed' => 'Шаршамбы',
-'thu' => 'Кесеаҙна',
-'fri' => 'Ð\99ома',
-'sat' => 'Шәмбе',
-'january' => 'ғинуар',
-'february' => 'февраль',
-'march' => 'март',
-'april' => 'апрель',
-'may_long' => 'май',
-'june' => 'июнь',
-'july' => 'июль',
-'august' => 'август',
-'september' => 'сентябрь',
-'october' => 'октябрь',
-'november' => 'ноябрь',
-'december' => 'декабрь',
-'january-gen' => 'ғинуар',
-'february-gen' => 'февраль',
+'sun' => 'Йш',
+'mon' => 'Дш',
+'tue' => 'Шш',
+'wed' => 'Шр',
+'thu' => 'Кс',
+'fri' => 'Ð\99м',
+'sat' => 'Шб',
+'january' => 'ғинуар (һыуығай)',
+'february' => 'февраль (шаҡай)',
+'march' => 'март (буранай)',
+'april' => 'апрель (алағарай)',
+'may_long' => 'май (һабанай)',
+'june' => 'июнь (һөтай)',
+'july' => 'июль (майай)',
+'august' => 'август (урағай)',
+'september' => 'сентябрь (һарысай)',
+'october' => 'октябрь (ҡарасай)',
+'november' => 'ноябрь (ҡырпағай)',
+'december' => 'декабрь (аҡъюлай)',
+'january-gen' => 'ғинуар (һыуығай)',
+'february-gen' => 'февраль (шаҡай)',
 'march-gen' => 'март',
 'april-gen' => 'апрель',
 'may-gen' => 'май',
@@ -157,8 +157,8 @@ $messages = array(
 'august-gen' => 'август',
 'september-gen' => 'сентябрь',
 'october-gen' => 'октябрь',
-'november-gen' => 'ноябрь',
-'december-gen' => 'декабрь',
+'november-gen' => 'ноябрь (ҡырпағай)',
+'december-gen' => 'декабрь (аҡъюлай)',
 'jan' => 'ғин',
 'feb' => 'фев',
 'mar' => 'мар',
@@ -274,7 +274,7 @@ $messages = array(
 'mediawikipage' => 'Хәбәрҙәр битен ҡарарға',
 'templatepage' => 'Ҡалып битен ҡарарға',
 'viewhelppage' => 'Ярҙам битен ҡарарға',
-'categorypage' => 'Ð\9aаÑ\82егоÑ\80иÑ\8f битен ҡарарға',
+'categorypage' => 'ТөÑ\80көм битен ҡарарға',
 'viewtalkpage' => 'Фекер алышыу битен ҡарарға',
 'otherlanguages' => 'Башҡа телдәрҙә',
 'redirectedfrom' => '($1 битенән йүнәлтелде)',
@@ -450,9 +450,9 @@ $2',
 'ns-specialprotected' => '«{{ns:special}}» исем арауығындағы биттәрҙе үҙгәртеп булмай.',
 'titleprotected' => "Был исем менән бит яһау [[User:$1|$1]] тарафынан тыйылған.
 Белдерелгән сәбәп: ''$2''.",
-'filereadonlyerror' => "«$1» файлын үҙгәртеп булмай, сөнки «$2» һаҡлағысы «уҡыу өсөн генә» тәртибенде.
+'filereadonlyerror' => "«$1» файлын үҙгәртеп булмай, сөнки «$2» һаҡлағысы «уҡыу өсөн генә» тәртибендә.
 
£Ñ\81Ñ\82ановивÑ\88ий Ñ\8dÑ\82оÑ\82 Ñ\80ежим Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80 Ð¾Ñ\81Ñ\82авил Ñ\81ледÑ\83Ñ\8eÑ\89ее Ñ\80азÑ\8aÑ\8fÑ\81нение: «''$3''».",
\91Ñ\8bл Ñ\81иклÓ\99Ò¯Ò\99е Ð¸Ð½Ð´ÐµÑ\80гÓ\99н Ñ\85аким Ð±Ð¸Ñ\80гÓ\99н Ð°Ò£Ð»Ð°Ñ\82ма:«''$3''».",
 
 # Virus scanner
 'virus-badscanner' => "Көйләү хатаһы: Билдәһеҙ вирустар сканеры: ''$1''",
@@ -1097,6 +1097,7 @@ $1",
 'prefs-beta' => 'Бета версияһы мөмкинлектәре',
 'prefs-datetime' => 'Көн һәм ваҡыт',
 'prefs-labs' => 'Һынау өсөн мөмкинлектәр',
+'prefs-user-pages' => 'Ҡатнашыусы бите',
 'prefs-personal' => 'Шәхси мәғлүмәттәр',
 'prefs-rc' => 'Һуңғы үҙгәртеүҙәр',
 'prefs-watchlist' => 'Күҙәтеү исемлеге',
@@ -3667,9 +3668,9 @@ MediaWiki файҙалы булыр, тигән өмөттә, ләкин БЕР
 
 # Durations
 'duration-seconds' => '$1 {{PLURAL:$1|секунд|секунд}}',
-'duration-minutes' => 'минут',
-'duration-hours' => 'сәғәт',
-'duration-days' => 'көн',
+'duration-minutes' => '$1 {{PLURAL:$1|минут|минут}}',
+'duration-hours' => '$1 {{PLURAL:$1|сәғәт|сәғәт}}',
+'duration-days' => '$1 {{PLURAL:$1|көн|көн}}',
 'duration-weeks' => '$1 {{PLURAL:$1|аҙна|аҙналар|аҙна}}',
 'duration-years' => '$1 {{PLURAL:$1|йыл|йылдар}}',
 'duration-decades' => '$1 {{PLURAL:$1|ун көнлөк|ун көнлөктәр}}',
index bf0d2ec..abc9f75 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Belarusian (Ð\91еларуская)
+/** Belarusian (беларуская)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -14,6 +14,7 @@
  * @author Maksim L.
  * @author Mienski
  * @author Prima klasy4na
+ * @author Renessaince
  * @author Riwnodennyk
  * @author Urhixidur
  * @author Wizardist
@@ -365,7 +366,7 @@ $1',
 'collapsible-expand' => 'Паказаць',
 'thisisdeleted' => 'Паказаць ці аднавіць $1?',
 'viewdeleted' => 'Ці паказаць $1?',
-'restorelink' => '{{PLURAL:$1|адна сцёртая праўка|$1 сцёртых правак}}',
+'restorelink' => '$1 {{PLURAL:$1|сцёртая праўка|сцёртых правак}}',
 'feedlinks' => 'Струмень:',
 'feed-invalid' => 'Недапушчальны тып струмяня навін.',
 'feed-unavailable' => 'Няма струмянёў навін',
@@ -714,10 +715,10 @@ $2
 'newarticle' => '(Новы)',
 'newarticletext' => 'Вы перайшлі да старонкі, якой яшчэ няма, і таму трапілі сюды. Каб пачаць новую старонку, пішыце яе тэкст у ніжэйпаказаным акне рэдагавання (падрабязнасці бач у [[{{MediaWiki:Helppage}}|даведцы]]). Калі вы тут выпадкова, проста націсніце "назад" у браўзеры.',
 'anontalkpagetext' => "----''Гэта старонка размовы з ананімным удзельнікам, які або не мае свайго рахунку, або ім не карыстаўся. Таму дзеля яго ці яе ідэнтыфікацыі мы мусім выкарыстаць лічбавы Адрас IP. Такі адрас IP могуць дзяліць між сабою некалькі асоб. Калі вы ананімны ўдзельнік, і лічыце, што атрымліваеце няслушныя заўвагі,[[Special:UserLogin/signup|стварыце рахунак]] або [[Special:UserLogin|акажыцеся]], каб вас больш не блыталі з іншымі ананімнымі ўдзельнікамі.''",
-'noarticletext' => 'СÑ\82аÑ\80онка Ð½Ðµ Ñ\9eÑ\82Ñ\80Ñ\8bмлÑ\96вае Ñ\82Ñ\8dкÑ\81Ñ\82Ñ\83. Ð\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е [[Special:Search/{{PAGENAME}}|паÑ\88Ñ\83каÑ\86Ñ\8c Ð³Ñ\8dÑ\82акай Ð½Ð°Ð·Ð²Ñ\8b]] ў іншых старонках ці <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах],
+'noarticletext' => 'СÑ\82аÑ\80онка Ð½Ðµ Ñ\9eÑ\82Ñ\80Ñ\8bмлÑ\96вае Ñ\82Ñ\8dкÑ\81Ñ\82Ñ\83. Ð\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е [[Special:Search/{{PAGENAME}}|паÑ\88Ñ\83каÑ\86Ñ\8c Ð³Ñ\8dÑ\82кÑ\83Ñ\8e Ð½Ð°Ð·Ð²Ñ\83]] ў іншых старонках ці <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах],
 або [{{fullurl:{{FULLPAGENAME}}|action=edit}} папрацаваць з гэтай старонкай]</span>.',
 'noarticletext-nopermission' => 'Старонка не ўтрымлівае тэксту.
\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е [[Special:Search/{{PAGENAME}}|паÑ\88Ñ\83каÑ\86Ñ\8c Ð³Ñ\8dÑ\82акай Ð½Ð°Ð·Ð²Ñ\8b]] ў іншых старонках,
\92Ñ\8b Ð¼Ð¾Ð¶Ð°Ñ\86е [[Special:Search/{{PAGENAME}}|паÑ\88Ñ\83каÑ\86Ñ\8c Ð³Ñ\8dÑ\82кÑ\83Ñ\8e Ð½Ð°Ð·Ð²Ñ\83]] ў іншых старонках,
 ці <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ў журналах]</span>.',
 'userpage-userdoesnotexist' => 'Рахунак удзельніка "<nowiki>$1</nowiki>" не зарэгістраваны. Праверце, ці вы жадаеце стварыць або паправіць гэтую старонку.',
 'userpage-userdoesnotexist-view' => 'Уліковы запіс удзельніка " $1 "не зарэгістраваны.',
index c1857ed..fc00a41 100644 (file)
@@ -1030,6 +1030,8 @@ $2
 'node-count-exceeded-warning' => 'Старонка перавысіла дазволеную колькасьць вузлоў',
 'expansion-depth-exceeded-category' => 'Старонкі зь перавышанай глыбінёй уключэньня',
 'expansion-depth-exceeded-warning' => 'Старонка перавысіла дазволеную глыбіню ўключэньняў',
+'parser-unstrip-loop-warning' => 'Вызначаная незачыненая пятля',
+'parser-unstrip-recursion-limit' => 'Перавышанае абмежаваньне глыбіні рэкурсіі ($1)',
 
 # "Undo" feature
 'undo-success' => 'Рэдагаваньне можа быць адмененае. Калі ласка, параўнайце адрозьненьні паміж вэрсіямі, каб упэўніцца, што гэта адпаведныя зьмены, а потым запішыце зьмены для сканчэньня рэдагаваньня.',
@@ -1488,7 +1490,7 @@ $1",
 'right-deletedtext' => 'прагляд выдаленага тэксту і зьменаў паміж выдаленымі вэрсіямі старонак',
 'right-browsearchive' => 'пошук выдаленых старонак',
 'right-undelete' => 'аднаўленьне старонак',
-'right-suppressrevision' => 'прагляд і аднаўленьне вэрсіяў схаваных ад адміністратараў',
+'right-suppressrevision' => 'прагляд і аднаўленьне вэрсіяў, схаваных ад адміністратараў',
 'right-suppressionlog' => 'прагляд прыватных журналаў',
 'right-block' => 'блякаваньне іншых удзельнікаў ад рэдагаваньняў',
 'right-blockemail' => 'блякаваньне іншых ўдзельнікаў ад дасылкі электроннай пошты',
@@ -2974,6 +2976,7 @@ $1',
 'spambot_username' => 'Чыстка спаму MediaWiki',
 'spam_reverting' => 'Адкат да апошняй вэрсіі без спасылак на $1',
 'spam_blanking' => 'Усе вэрсіі ўтрымліваюць спасылкі на $1, чыстка',
+'spam_deleting' => 'Усе вэрсіі ўтрымлівалі спасылкі на $1, выдаляем',
 
 # Info page
 'pageinfo-title' => 'Інфармацыя пра «$1»',
index edf9eb9..9bccafe 100644 (file)
@@ -984,8 +984,8 @@ $1",
 
 # Diffs
 'history-title' => '"$1" এর সংশোধনের ইতিহাস',
-'difference-title' => '‘$1’-এর বিভিন্ন সংস্করণের মধ্যে পার্থক্য',
-'difference-title-multipage' => '‘$1’ ও ‘$2’-এর মধ্যে পার্থক্য',
+'difference-title' => '"$1"-এর বিভিন্ন সংস্করণের মধ্যে পার্থক্য',
+'difference-title-multipage' => '"$1" ও "$2"-পাতার মধ্যে পার্থক্য',
 'difference-multipage' => 'পাতাগুলোর মধ্যে পার্থক্য',
 'lineno' => '$1 নং লাইন:',
 'compareselectedversions' => 'নির্বাচিত সংস্করণগুলো তুলনা করো',
index d01fb2f..3e4f3ee 100644 (file)
@@ -601,7 +601,7 @@ Na zisoñjit ket resisaat ho [[Special:Preferences|penndibaboù evit {{SITENAME}
 'createaccount' => 'Krouiñ ur gont nevez',
 'gotaccount' => "Ur gont zo ganeoc'h dija ? '''$1'''.",
 'gotaccountlink' => 'Kevreañ',
-'userlogin-resetlink' => "Ha disoñjet hoc'h eus ho titouroù kevreañ ?",
+'userlogin-resetlink' => "Ha disoñjet eo bet ho titouroù kevreañ ganeoc'h ?",
 'createaccountmail' => 'dre bostel',
 'createaccountreason' => 'Abeg :',
 'badretype' => 'Ne glot ket ar gerioù-tremen an eil gant egile.',
index 2698266..68c3e0e 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Bosnian (Bosanski)
+/** Bosnian (bosanski)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -524,7 +524,7 @@ $1',
 'disclaimerpage' => 'Project:Uslovi korištenja, pravne napomene i odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju stranice',
 'edithelppage' => 'Help:Uređivanje',
-'helppage' => 'Help:Sadržaj',
+'helppage' => 'Pomoć:Sadržaj',
 'mainpage' => 'Početna strana',
 'mainpage-description' => 'Početna strana',
 'policy-url' => 'Project:Pravila',
@@ -979,6 +979,7 @@ Izmjena je odbačena da bi se spriječilo uništavanje teksta stranice.
 To se događa ponekad kad korisite problematični anonimni proxy koji je baziran na web-u.'''",
 'edit_form_incomplete' => "'''Neki dijelovi uređivačkog obrasca nisu došli do servera; dvaput provjerite da su vaše izmjene nepromjenjene i pokušajte ponovno.'''",
 'editing' => 'Uređujete $1',
+'creating' => 'Pravljenje stranice $1',
 'editingsection' => 'Uređujete $1 (dio)',
 'editingcomment' => 'Uređujete $1 (nova sekcija)',
 'editconflict' => 'Sukobljenje izmjene: $1',
@@ -1048,6 +1049,7 @@ Izgleda da je obrisana.',
 'edit-no-change' => 'Vaša izmjena je ignorirana, jer nije bilo promjena teksta stranice.',
 'edit-already-exists' => 'Stranica nije mogla biti kreirana.
 Izgleda da već postoji.',
+'defaultmessagetext' => 'Uobičajeni tekst poruke',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Upozorenje: Ova stranica sadrži previše poziva opterećujućih parserskih funkcija.
@@ -1063,6 +1065,12 @@ Ovakvi argumenti se trebaju izbjegavati.',
 'parser-template-loop-warning' => 'Otkrivena kružna greška u šablonu: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Dubina uključivanja šablona prekoračena ($1)',
 'language-converter-depth-warning' => 'Prekoračena granica dubine jezičkog pretvarača ($1)',
+'node-count-exceeded-category' => 'Stranice sa prekoračenim brojem čvorova',
+'node-count-exceeded-warning' => 'Stranice koje imaju prevelik broj čvorova',
+'expansion-depth-exceeded-category' => 'Stranice koje su prekoračile dubinu proširenja',
+'expansion-depth-exceeded-warning' => 'Stranice koje su prekoračile dubinu proširenja',
+'parser-unstrip-loop-warning' => 'Pronađena petlja',
+'parser-unstrip-recursion-limit' => 'Prekoračeno ograničenje rekurzije ($1)',
 
 # "Undo" feature
 'undo-success' => 'Izmjena se može vratiti.
@@ -1240,7 +1248,9 @@ Korištenje navigacionih linkova će resetovati ovaj stupac.',
 'mergelogpagetext' => 'Ispod je spisak nedavnih spajanja historija stranica.',
 
 # Diffs
-'history-title' => 'Historija izmjena stranice "$1"',
+'history-title' => 'Historija revizija "$1"',
+'difference-title' => 'Razlike između revizija od "$1"',
+'difference-title-multipage' => 'Razlika između stranica "$1" i "$2"',
 'difference-multipage' => '(Razlika između stranica)',
 'lineno' => 'Linija $1:',
 'compareselectedversions' => 'Uporedite označene verzije',
@@ -1336,6 +1346,7 @@ Pokušajte u Vaš upit uključiti prefiks ''all:'' da bi ste pretražili sav sad
 'prefs-beta' => 'Beta mogućnosti',
 'prefs-datetime' => 'Datum i vrijeme',
 'prefs-labs' => 'Eksperimentalne mogućnosti',
+'prefs-user-pages' => 'Korisničke stranice',
 'prefs-personal' => 'Korisnički podaci',
 'prefs-rc' => 'Podešavanja nedavnih izmjena',
 'prefs-watchlist' => 'Moji praćeni članci',
@@ -1407,6 +1418,7 @@ Ovo se ne može vratiti unazad.',
 'yourrealname' => 'Vaše pravo ime:',
 'yourlanguage' => 'Jezik:',
 'yourvariant' => 'Varijanta jezika:',
+'prefs-help-variant' => 'Vaša preferirana varijanta ili pravopis za prikaz sadržaja stranica na ovoj wiki.',
 'yournick' => 'Nadimak (za potpise):',
 'prefs-help-signature' => 'Komentari na stranicama za razgovor trebaju biti potpisani sa "<nowiki>~~~~</nowiki>" koje će biti pretvoreno u vaš potpis i vrijeme.',
 'badsig' => 'Loš sirovi potpis.
@@ -1461,7 +1473,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'userrights-no-interwiki' => 'Nemate dopuštenja da uređujete korisnička prava na drugim wikijima.',
 'userrights-nodatabase' => 'Baza podataka $1 ne postoji ili nije lokalna baza.',
 'userrights-nologin' => 'Morate se [[Special:UserLogin|prijaviti]] sa administratorskim računom da bi ste mogli postavljati korisnička prava.',
-'userrights-notallowed' => 'Vaš korisnički račun nema privilegije da dodaje prava korisnika.',
+'userrights-notallowed' => 'Vaš račun nema privilegije da dodaje ili oduzima prava korisnika.',
 'userrights-changeable-col' => 'Grupe koje možete mijenjati',
 'userrights-unchangeable-col' => 'Grupe koje ne možete mijenjati',
 
@@ -1548,7 +1560,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'right-siteadmin' => 'Zaključavanje i otključavanje baze podataka',
 'right-override-export-depth' => 'Izvoz stranica uključujući povezane stranice do dubine od 5 linkova',
 'right-sendemail' => 'Slanje e-maila drugim korisnicima',
-'right-passwordreset' => 'Poništavanje šifre korisnika ([[Special:PasswordReset|posebna stranica]])',
+'right-passwordreset' => 'Pogledaj e-mailove za obnavljanje šifre',
 
 # User rights log
 'rightslog' => 'Zapisnik korisničkih prava',
@@ -1582,6 +1594,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'action-suppressionlog' => 'vidite ovaj privatni zapis',
 'action-block' => 'blokirate uređivanje ovog korisnika',
 'action-protect' => 'promijeniti nivo zaštite za ovu stranicu',
+'action-rollback' => 'brzo vraćanje izmjena zadnjeg korisnika koji je uređivao određenu stranicu',
 'action-import' => 'uvozite ovu stranicu iz druge wiki',
 'action-importupload' => 'uvezete ovu stranicu putem postavljanja datoteke',
 'action-patrol' => 'označite izmjene drugih kao patrolirane',
@@ -1623,6 +1636,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|korisnik|korisnika}} koji pregledaju]',
 'rc_categories' => 'Ograniči na kategorije (razdvojene sa "|")',
 'rc_categories_any' => 'Sve',
+'rc-change-size-new' => '$1 {{PLURAL:$1|bajt|bajta|bajtova}} poslije izmjene',
 'newsectionsummary' => '/* $1 */ nova sekcija',
 'rc-enhanced-expand' => 'Pokaži detalje (neophodna JavaScript)',
 'rc-enhanced-hide' => 'Sakrij detalje',
@@ -1785,11 +1799,18 @@ Ako se problem ne riješi, kontaktirajte [[Special:ListUsers/sysop|administrator
 'upload-too-many-redirects' => 'URL sadrži previše preusmjerenja',
 'upload-unknown-size' => 'Nepoznata veličina',
 'upload-http-error' => 'Desila se HTTP greška: $1',
+'upload-copy-upload-invalid-domain' => 'Kopije postavljenih datoteka nisu dostupne sa ove domene.',
 
 # File backend
+'backend-fail-stream' => 'Ne mogu emitirati datoteku $1.',
 'backend-fail-backup' => 'Ne može sigurnosno kopirati datoteku $1.',
 'backend-fail-notexists' => 'Datoteka $1 ne postoji.',
+'backend-fail-hashes' => 'Nisam našao datoteku disperzije radi usporedbe.',
+'backend-fail-notsame' => 'Već postoji različita datoteka $1.',
+'backend-fail-invalidpath' => '$1 nije valjana putanja za skladištenje.',
+'backend-fail-delete' => 'Ne može se izbrisati datoteka $1.',
 'backend-fail-alreadyexists' => 'Datoteka $1 već postoji.',
+'backend-fail-store' => 'Ne može se spremiti datoteka $1 na $2.',
 'backend-fail-read' => 'Ne mogu čitati datoteku $1.',
 'backend-fail-create' => 'Ne mogu napraviti datoteku $1.',
 
@@ -1859,9 +1880,8 @@ Možda možete pokušati kada bude manje opterećenje.',
 'upload_source_file' => ' (datoteka na Vašem računaru)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Ova specijalna stranica prikazuje sve postavljene datoteke.
-Uobičajeno je da posljednja postavljena datoteka bude prikazana na vrhu spiska.
-Klikom na zaglavlje kolone možete promjeniti način sortiranja.',
+'listfiles-summary' => 'Ova posebna stranica prikazuje sve postavljene datoteke.
+Kada je filtrirana od strane korisnika, prikazane su samo datoteke ako je korisnik postavio posljednju verziju te datoteke.',
 'listfiles_search_for' => 'Traži medije po imenu:',
 'imgfile' => 'datoteka',
 'listfiles' => 'Spisak slika',
@@ -1988,7 +2008,7 @@ Prije brisanja provjerite da li druge stranice vode na te šablone.',
 'statistics-users-active-desc' => 'Korisnici koju su izvršili akciju u toku {{PLURAL:$1|zadnjeg dana|zadnja $1 dana|zadnjih $1 dana}}',
 'statistics-mostpopular' => 'Najviše pregledane stranice',
 
-'disambiguations' => 'Stranice za čvor članke',
+'disambiguations' => 'Stranice koje vode na čvor članke',
 'disambiguationspage' => '{{ns:template}}:Čvor',
 'disambiguations-text' => "Slijedeće stranice su povezane sa '''čvor stranicom'''.
 Po pravilu, one se trebaju povezati sa konkretnim člankom.<br />
@@ -2089,7 +2109,7 @@ na kome bi se izvela ova funkcija.',
 'booksources-invalid-isbn' => 'Navedeni ISBN broj nije validan; molimo da provjerite da li je došlo do greške pri kopiranju iz prvobitnog izvora.',
 
 # Special:Log
-'specialloguserlabel' => 'Korisnik:',
+'specialloguserlabel' => 'Izvršilac:',
 'speciallogtitlelabel' => 'Cilj (naslov ili korisnik):',
 'log' => 'Protokoli',
 'all-logs-page' => 'Svi javni registri',
@@ -2132,12 +2152,13 @@ Vidi također [[Special:WantedCategories|zatražene kategorije]].',
 'sp-deletedcontributions-contribs' => 'doprinosi',
 
 # Special:LinkSearch
-'linksearch' => 'Vanjski linkovi',
+'linksearch' => 'Pretraga vanjskih linkova',
 'linksearch-pat' => 'Šema traženja:',
 'linksearch-ns' => 'Imenski prostor:',
 'linksearch-ok' => 'Traži',
-'linksearch-text' => 'Općeniti izrazi poput "*.wikipedia.org" se mogu koristiti.<br />
-Podržani protokoli: <tt>$1</tt>',
+'linksearch-text' => 'Mogu se koristiti općeniti izrazi poput "*.wikipedia.org"
+Potrebna je najmanje osnovna domena, naprimjer "*.org."<br />
+Podržani protokoli: <tt>$1</tt> (ne dodavajte bilo koji od ovih u vašu pretragu).',
 'linksearch-line' => '$1 je povezan od $2',
 'linksearch-error' => 'Džokeri se mogu pojavljivati samo na početku naziva servera.',
 
index 768f02c..ee2dbb1 100644 (file)
@@ -1325,7 +1325,7 @@ Ha de tenir com a molt {{PLURAL:$1|un caràcter|$1 caràcters}}.',
 'prefs-i18n' => 'Internacionalització',
 'prefs-signature' => 'Signatura',
 'prefs-dateformat' => 'Format de la data',
-'prefs-timeoffset' => "Duració de l'acció",
+'prefs-timeoffset' => 'Decalatge horari',
 'prefs-advancedediting' => 'Opcions avançades',
 'prefs-advancedrc' => 'Opcions avançades',
 'prefs-advancedrendering' => 'Opcions avançades',
@@ -2006,6 +2006,7 @@ Tingueu en compte que altres llocs web poden enllaçar un fitxer amb un URL dire
 Podeu reduir l'extensió seleccionant el tipus de registre, el nom d'usuari realitzador (distingeix entre majúscules i minúscules), o la pàgina objectiu (també en distingeix).",
 'logempty' => 'No hi ha cap coincidència en el registre.',
 'log-title-wildcard' => 'Cerca els títols que comencin amb aquest text',
+'showhideselectedlogentries' => 'Mostra/amaga les entrades de registre seleccionades',
 
 # Special:AllPages
 'allpages' => 'Totes les pàgines',
index c959931..cf78ce7 100644 (file)
@@ -3190,6 +3190,8 @@ $5
 'revdelete-restricted' => 'ئەو سنووری بەرگریانەی خستراوەتە سەر بەڕێوبەران',
 'revdelete-unrestricted' => 'ئەو سنووری بەرگریانەی لابردراوە لە سەر بەڕێوبەران',
 'logentry-move-move' => '$1 پەڕەی $3ی گواستەوە بۆ $4',
+'logentry-move-move-noredirect' => '$1 پەڕەی $3 گواستەوە بۆ $4 بێ بەجێھشتنی ڕەوانەکردنەوەیەک',
+'logentry-move-move_redir-noredirect' => '$1 پەڕەی $3 گواستەوە بۆ $4 لە جێگەی ڕەوانەکەرێک بە بێ بەجێھشتنی ڕەوانەکردنەوەیەک',
 'logentry-newusers-newusers' => '$1 ھەژمارێکی بەکارھێنەریی دروستکرد',
 'logentry-newusers-create' => '$1 ھەژمارێکی بەکارھێنەریی دروستکرد',
 'logentry-newusers-create2' => '$1 ھەژمارێکی بەکارھێنەریی دروستکرد $3',
index 9ef5a51..8b972f7 100644 (file)
@@ -2183,6 +2183,7 @@ Uvědomte si, že jiné webové stránky mohou na soubor odkazovat pomocí pří
 Zobrazení můžete zúžit výběrem typu záznamu, uživatelského jména (záleží na velikosti písmen) nebo dotčené stránky (také záleží na velikosti písmen).',
 'logempty' => 'Protokol neobsahuje žádný odpovídající záznam.',
 'log-title-wildcard' => 'Hledat názvy začínající na tento text',
+'showhideselectedlogentries' => 'Ukázat/skrýt vybrané záznamy',
 
 # Special:AllPages
 'allpages' => 'Všechny stránky',
@@ -3068,7 +3069,8 @@ Uložte jej na svůj disk a nahrajte ho sem.',
 'spamprotectionmatch' => 'Následující text spustil náš filtr proti spamu: $1',
 'spambot_username' => 'Systémový čistič spamu',
 'spam_reverting' => 'Revert na poslední verzi neobsahující odkazy na $1',
-'spam_blanking' => 'Všechny revize obsahovaly odkazy na $1, vyprázdněno',
+'spam_blanking' => 'Všechny verze obsahovaly odkazy na $1, vyprázdněno',
+'spam_deleting' => 'Všechny verze obsahovaly odkazy na $1, smazáno',
 
 # Info page
 'pageinfo-title' => 'Informace o "$1"',
index a1e1900..f0f7a76 100644 (file)
@@ -1171,8 +1171,8 @@ Vær opmæksom på at bevare kontinuiteten i sidehistorikken.
 'search-result-size' => '$1 ({{PLURAL:$2|et ord|$2 ord}})',
 'search-result-category-size' => '{{PLURAL:$1|1 medlem|$1 medlemmer}} ({{PLURAL:$2|1 underkategori|$2 underkategorier}}, {{PLURAL:$3|1 fil|$3 filer}})',
 'search-result-score' => 'Relevans: $1%',
-'search-redirect' => '(omdiriger $1)',
-'search-section' => '(sektion $1)',
+'search-redirect' => '(omdirigering $1)',
+'search-section' => '(afsnit $1)',
 'search-suggest' => 'Mente du: $1',
 'search-interwiki-caption' => 'Søsterprojekter',
 'search-interwiki-default' => '{{PLURAL:$1|et resultat|$1 resultater}}:',
@@ -1994,6 +1994,7 @@ Læg mærke til at andre hjemmesider kan henvise til filen med en direkte URL, o
 Du kan afgrænse visningen ved at vælge en logtype, brugernavn eller påvirket side. Der skelnes mellem små og store bogstaver for både bruger- og sidenavne.',
 'logempty' => 'Intet passende fundet.',
 'log-title-wildcard' => 'Søg i titler som begynder med teksten',
+'showhideselectedlogentries' => 'Vis/skjul de markerede loghændelser',
 
 # Special:AllPages
 'allpages' => 'Alle sider',
@@ -2777,7 +2778,7 @@ Du kan se på kildeteksten.',
 'tooltip-ca-move' => 'Flyt denne side',
 'tooltip-ca-watch' => 'Sæt denne side på din overvågningsliste',
 'tooltip-ca-unwatch' => 'Fjern denne side fra din overvågningsliste',
-'tooltip-search' => 'Søg på denne wiki',
+'tooltip-search' => 'Søg på {{SITENAME}}',
 'tooltip-search-go' => 'Vis en side med præcis dette navn, hvis den findes',
 'tooltip-search-fulltext' => 'Søg efter sider der indeholder denne tekst',
 'tooltip-p-logo' => 'Forsiden',
index a9248d8..5060f68 100644 (file)
@@ -1445,7 +1445,7 @@ Stelle sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.',
 'prefs-watchlist' => 'Beobachtungsliste',
 'prefs-watchlist-days' => 'Maximale Anzahl der einbezogenen Tage:',
 'prefs-watchlist-days-max' => 'Maximal {{PLURAL:$1|ein Tag|$1 Tage}}',
-'prefs-watchlist-edits' => 'Maximale Anzahl der einbezogenen Einträge:',
+'prefs-watchlist-edits' => 'Maximale Anzahl der angezeigten Einträge:',
 'prefs-watchlist-edits-max' => 'Maximal 1.000 Einträge',
 'prefs-watchlist-token' => 'Beobachtungslisten-Token:',
 'prefs-misc' => 'Verschiedenes',
@@ -1465,7 +1465,7 @@ Stelle sicher, dass die Versionsgeschichte einer Seite historisch korrekt ist.',
 'resultsperpage' => 'Treffer pro Seite:',
 'stub-threshold' => 'Linkformatierung <a href="#" class="stub">kleiner Seiten</a> (in Byte):',
 'stub-threshold-disabled' => 'Deaktiviert',
-'recentchangesdays' => 'Anzahl der Tage, die die Liste der „Letzten Änderungen“ standardmäßig umfassen soll:',
+'recentchangesdays' => 'Anzahl der standardmäßig einbezogenen Tage:',
 'recentchangesdays-max' => 'Maximal $1 {{PLURAL:$1|Tag|Tage}}',
 'recentchangescount' => 'Anzahl der standardmäßig angezeigten Bearbeitungen:',
 'prefs-help-recentchangescount' => 'Dies umfasst die Liste der letzten Änderungen, die Versionsgeschichte und die Logbücher.',
@@ -2040,8 +2040,8 @@ Eine [[Special:WhatLinksHere/$2|vollständige Liste]] ist verfügbar.',
 Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungsseite] bearbeiten.',
 'sharedupload-desc-create' => 'Diese Datei stammt aus $1 und kann von anderen Projekten verwendet werden.
 Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungsseite] bearbeiten.',
-'filepage-nofile' => 'Es existiert keine Datei mit diesem Namen.',
-'filepage-nofile-link' => 'Es existiert keine Datei mit diesem Namen, aber du kannst [$1 diese Datei hochladen].',
+'filepage-nofile' => 'Es ist keine Datei dieses namens vorhanden.',
+'filepage-nofile-link' => 'Es ist keine Datei dieses namens vorhanden. Du kannst jedoch [$1 diese Datei hochladen].',
 'uploadnewversion-linktext' => 'Eine neue Version dieser Datei hochladen',
 'shared-repo-from' => 'aus $1',
 'shared-repo' => 'einem gemeinsam genutzten Medienarchiv',
@@ -2971,7 +2971,7 @@ Diese auf dem lokalen Rechner speichern und danach hier hochladen.',
 'importuploaderrortemp' => 'Das Hochladen der Importdatei ist fehlgeschlagen. Ein temporäres Verzeichnis fehlt.',
 'import-parse-failure' => 'Fehler beim XML-Import:',
 'import-noarticle' => 'Es wurde keine zu importierende Seite angegeben!',
-'import-nonewrevisions' => 'Es sind keine neuen Versionen zum Import vorhanden, alle Versionen wurden bereits früher importiert.',
+'import-nonewrevisions' => 'Alle Versionen wurden bereits zu einem früheren Zeitpunkt importiert.',
 'xml-error-string' => '$1 Zeile $2, Spalte $3, (Byte $4): $5',
 'import-upload' => 'XML-Daten importieren',
 'import-token-mismatch' => 'Verlust der Sessiondaten. Bitte versuche es erneut.',
@@ -3127,7 +3127,8 @@ Das liegt wahrscheinlich an einem Link auf eine externe Seite.',
 'spamprotectionmatch' => "'''Der folgende Text wurde vom Spamfilter gefunden: ''$1'''''",
 'spambot_username' => 'MediaWiki-Spam-Säuberung',
 'spam_reverting' => 'Letzte Version ohne Links zu $1 wiederhergestellt.',
-'spam_blanking' => 'Alle Versionen enthielten Links zu $1, bereinigt.',
+'spam_blanking' => 'Alle Versionen mit einem Link zu $1 wurden bereinigt.',
+'spam_deleting' => 'Alle Versionen mit einem Link zu $1 wurden gelöscht.',
 
 # Info page
 'pageinfo-title' => 'Informationen zu „$1“',
index ffd3df4..125d5f7 100644 (file)
@@ -43,7 +43,7 @@ $specialPageAliases = array(
        'Allpages'                  => array( 'PeleyPero' ),
        'Ancientpages'              => array( 'PeleyVereni' ),
        'Badtitle'                  => array( 'SernameyoXırab' ),
-       'Blankpage'                 => array( 'VengPela', 'PelaVeng' ),
+       'Blankpage'                 => array( 'PelaVeng', 'VengPela' ),
        'Block'                     => array( 'Bloke', 'BlokeIP', 'BlokeKarber' ),
        'Blockme'                   => array( 'BlokeMe' ),
        'Booksources'               => array( 'KıtabeÇıme' ),
@@ -75,25 +75,67 @@ $specialPageAliases = array(
        'Listgrouprights'           => array( 'ListeyêHeqêGruban', 'HeqêGrubdeKarberan' ),
        'Listredirects'             => array( 'ListeyêHetanayışi' ),
        'Listusers'                 => array( 'ListeyêKarberan', 'KarberaListeke' ),
+       'Lockdb'                    => array( 'DBKilitke' ),
        'Log'                       => array( 'Qeyd', 'Qeydi' ),
-       'Longpages'                 => array( 'PeleDergi' ),
+       'Lonelypages'               => array( 'PeleyêBêkesi' ),
+       'Longpages'                 => array( 'PeleyeDergi' ),
+       'MergeHistory'              => array( 'RavêrdaPêtewrke' ),
        'MIMEsearch'                => array( 'NIMECıgeyrayış' ),
+       'Mostcategories'            => array( 'TewrvêşiKategoriyıni' ),
+       'Mostimages'                => array( 'DosyeyêkeCırêvêşiGreDeyayo' ),
+       'Mostlinked'                => array( 'PeleyêkeCırêvêşiGreDeyayo' ),
+       'Mostlinkedcategories'      => array( 'KategoriyêkeCırêvêşiGreDeyayo' ),
+       'Mostlinkedtemplates'       => array( 'ŞablonêkeCırêvêşiGreDeyayo' ),
+       'Mostrevisions'             => array( 'TewrvêşiRevizyon' ),
        'Movepage'                  => array( 'PelaAhuln' ),
        'Mycontributions'           => array( 'İştırakeMe' ),
        'Mypage'                    => array( 'PelaMe' ),
        'Mytalk'                    => array( 'PersiyeME' ),
        'Myuploads'                 => array( 'BarkerdışeMe' ),
+       'Newimages'                 => array( 'DosyeyêNewey', 'ResimêNewey' ),
        'Newpages'                  => array( 'PeleyeNewey' ),
        'PasswordReset'             => array( 'ParolaReset' ),
+       'PermanentLink'             => array( 'DaimiGre' ),
+       'Popularpages'              => array( 'PeleyêPopuleri' ),
+       'Preferences'               => array( 'Tercihi' ),
        'Prefixindex'               => array( 'SerVerole' ),
-       'Recentchanges'             => array( 'VurnayışePeyeni' ),
+       'Protectedpages'            => array( 'PeleyêkeStaryayê' ),
+       'Protectedtitles'           => array( 'SernameyêkeStaryayê' ),
+       'Randompage'                => array( 'Raştamê', 'PelayakeRaştamê' ),
+       'Randomredirect'            => array( 'HetenayışoRaştmae' ),
+       'Recentchanges'             => array( 'VurnayışêPeyêni' ),
+       'Recentchangeslinked'       => array( 'GreyêVurnayışêPeyêni' ),
+       'Revisiondelete'            => array( 'RevizyoniBesterne' ),
+       'RevisionMove'              => array( 'RevizyoniAhulne' ),
        'Search'                    => array( 'Cıgeyre' ),
+       'Shortpages'                => array( 'PeleyêKılmi' ),
        'Specialpages'              => array( 'PeleyXısusi' ),
        'Statistics'                => array( 'İstatistiki' ),
        'Tags'                      => array( 'Etiketi' ),
+       'Unblock'                   => array( 'Bloqihewad' ),
+       'Uncategorizedcategories'   => array( 'KategoriyêkeKategorinêbiyê' ),
+       'Uncategorizedimages'       => array( 'DosyeyêkeKategorinêbiyê' ),
+       'Uncategorizedpages'        => array( 'PeleyêkeKategorinêbiyê' ),
+       'Uncategorizedtemplates'    => array( 'ŞablonêkeKategorinêbiyê' ),
+       'Undelete'                  => array( 'Peyserbiya' ),
+       'Unlockdb'                  => array( 'DBKlitiake' ),
+       'Unusedcategories'          => array( 'KategoriyêkeNêkaryayê' ),
+       'Unusedimages'              => array( 'DosyeyêkeNêkaryayê' ),
+       'Unusedtemplates'           => array( 'ŞablonêkeNêkaryayê' ),
+       'Unwatchedpages'            => array( 'PeleyêkeNêweyneyênê' ),
        'Upload'                    => array( 'Barke' ),
+       'UploadStash'               => array( 'BarkerdışêNımtey' ),
+       'Userlogin'                 => array( 'KarberDekewtış' ),
+       'Userlogout'                => array( 'KarberVıcyayış' ),
+       'Userrights'                => array( 'HeqêKarberan', 'SysopKerdış', 'BotKerdış' ),
        'Version'                   => array( 'Versiyon' ),
+       'Wantedcategories'          => array( 'KategoriyêkeWazênê' ),
+       'Wantedfiles'               => array( 'DosyeyêkeWazênê' ),
+       'Wantedpages'               => array( 'PeleyêkeWazênê' ),
+       'Wantedtemplates'           => array( 'ŞablonyêkeWazênê' ),
        'Watchlist'                 => array( 'Listeyseyri' ),
+       'Whatlinkshere'             => array( 'PelarêGre' ),
+       'Withoutinterwiki'          => array( 'Bêİnterwiki' ),
 );
 
 $magicWords = array(
@@ -268,9 +310,11 @@ $messages = array(
 'tog-watchlisthideliu' => 'Lista seyrkerdışi ra vurnayışanê karberanê cıkewteyan bınımne',
 'tog-watchlisthideanons' => 'Lista seyrkerdışi ra vurnayışanê karberanê anoniman bınımne',
 'tog-watchlisthidepatrolled' => 'Lista seyrkerdışi ra vurnayışanê qontrol kerdeyan bınımne',
+'tog-nolangconversion' => 'Varyant çerx kerdışa bıqefılne',
 'tog-ccmeonemails' => 'E-posteyanê ke ez karberanê binan rê rışenan, mı rê kopya inan bırışe',
 'tog-diffonly' => 'Qıyasê versiyonan de tek ferqan bımocne, pela butıne nê',
 'tog-showhiddencats' => 'Kategoriyanê dızdine bımocne',
+'tog-noconvertlink' => 'Greyê sernami çerx kerdışi bıqefılne',
 'tog-norollbackdiff' => 'Peyserardışi ra dıme ferqi caverde',
 
 'underline-always' => 'Tım',
@@ -337,7 +381,7 @@ $messages = array(
 'dec' => 'Kan',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Kategoriye|Kategoriy}}',
+'pagecategories' => '{{PLURAL:$1|Kategori|Kategoriy}}',
 'category_header' => 'Pelê ke kategoriya "$1" derê',
 'subcategories' => 'Kategoriyê bınêni',
 'category-media-header' => 'Medyawa ke kategoriya "$1" dera',
@@ -354,13 +398,14 @@ $messages = array(
 'index-category' => 'Pelê endeksıni',
 'noindex-category' => 'Pelê ke endeksıni niyê',
 'broken-file-category' => 'Peleye ke linkê Dosyayandê xelata muhtewa kenê',
+'categoryviewer-pagedlinks' => '($1) ($2)',
 
 'linkprefix' => "'''MediaWiki niya ro.'''",
 
 'about' => 'Heqa',
-'article' => 'Pela tedeesteyan',
+'article' => 'Wesiqe',
 'newwindow' => '(zerrey pençereyê dê newey de beno a)',
-'cancel' => 'Texelnayış',
+'cancel' => 'Bıterkne',
 'moredotdotdot' => 'Vêşêri...',
 'mypage' => 'Pela mı',
 'mytalk' => 'Persiyê mı',
@@ -380,19 +425,19 @@ $messages = array(
 'faqpage' => 'Project: PZP',
 
 # Vector skin
-'vector-action-addsection' => 'Qal berze cı',
+'vector-action-addsection' => 'Mesel Vırazê',
 'vector-action-delete' => 'Besterne',
 'vector-action-move' => 'Ahûln',
 'vector-action-protect' => 'Bıpawe',
 'vector-action-undelete' => 'Esterıtışi peyser bıgê',
 'vector-action-unprotect' => 'Starkerdışi bıvurne',
-'vector-simplesearch-preference' => 'Tewsiyanê cıgeyrayışiê raverberdeyan ake (Tenya vector skin de)',
+'vector-simplesearch-preference' => 'Tewsiyanê cıgeyrayışê raverberdan ake (Tenya vector skin de)',
 'vector-view-create' => 'Vıraze',
 'vector-view-edit' => 'Bıvurne',
 'vector-view-history' => 'Ravêrda bımocne',
 'vector-view-view' => 'Bıwanê',
 'vector-view-viewsource' => 'Çımey bıvêne',
-'actions' => 'Karê kerdey',
+'actions' => 'Kerdeni',
 'namespaces' => 'Cayê namey',
 'variants' => 'Varyanti',
 
@@ -404,10 +449,10 @@ $messages = array(
 'searchbutton' => 'Cı geyre',
 'go' => 'Şo',
 'searcharticle' => 'Şo',
-'history' => 'Tarixê pele',
-'history_short' => 'Tarix',
+'history' => 'Ravêrdena pela',
+'history_short' => 'Ravêrden',
 'updatedmarker' => 'cıkewtena mına peyêne ra dıme biyo rocane',
-'printableversion' => 'Asayışê çapkerdışi',
+'printableversion' => 'Asayışo çapkerden',
 'permalink' => 'Gıreyo daimi',
 'print' => 'Çap ke',
 'view' => 'Bıvêne',
@@ -469,9 +514,9 @@ $1',
 'currentevents-url' => 'Project:Veng u vac',
 'disclaimers' => 'Redê mesuliyeti',
 'disclaimerpage' => 'Project:Reddê mesuliyetê bıngey',
-'edithelp' => 'Peştdarina vurnayışi',
-'edithelppage' => 'Help:Pele çıtewr vurniyena',
-'helppage' => 'Help:Tedeestey',
+'edithelp' => 'Seni vurneyêno?',
+'edithelppage' => 'Help:Pela seni vurniyêna',
+'helppage' => 'Help:Estêni',
 'mainpage' => 'Pela Seri',
 'mainpage-description' => 'Pela Seri',
 'policy-url' => 'Project:Terzê hereketi',
@@ -491,6 +536,7 @@ $1',
 'ok' => 'Temam',
 'pagetitle' => '"$1" adres ra gerya.',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
+'backlinksubtitle' => '← $1',
 'retrievedfrom' => '"$1" ra ard',
 'youhavenewmessages' => 'To rê estê $1 ($2).',
 'newmessageslink' => 'mesacê newey',
@@ -519,6 +565,7 @@ $1',
 'page-rss-feed' => '"$1" Cıresnayışê RSSi',
 'page-atom-feed' => '"$1" Cıresnayışê atomi',
 'feed-atom' => 'Atom',
+'feed-rss' => 'RSS',
 'red-link-title' => '$1 (pele çıniya)',
 'sort-descending' => 'Ratnayışê qemeyayışi',
 'sort-ascending' => 'Ratnayışê Zeydnayışi',
@@ -598,11 +645,12 @@ Fonksiyon: $1<br />
 Perse: $2',
 'viewsource' => 'Çımey bıvêne',
 'viewsource-title' => "Cı geyrayışê $1'i bıvin",
-'actionthrottled' => 'Fealiyet xeneqna',
+'actionthrottled' => 'Kerden peysnaya',
 'actionthrottledtext' => 'Riyê tedbirê anti-spami ra,  wextê do kılmek de şıma nê fealiyeti nêşkenê zaf zêde bıkerê, şıma ki no hedi viyarna ra.
 Çend deqey ra tepeya reyna bıcerrebnên.',
 'protectedpagetext' => 'No pel qey nêvuriyayiş hao (nao) pawyeno.',
 'viewsourcetext' => 'To şikinay çımey na pele bıvêne u kopya kerê:',
+'viewyourtext' => "Na pela '''Vurnayışê ke kerdê''' re şıma şenê kopya kerê:",
 'protectedinterface' => 'No pel qey software nuştey hezır keno u ın semed ra şuxulyayişê no pel qedexe biyo.',
 'editinginterface' => "'''Teme:''' Şıma hao jû pela ke seba nuşteyê meqalanê cayanê bırnayeyan dana, vurnenê.
 Vurnayışê na pele karberanê binan rê serpela karberi kena ke bımocno.
@@ -611,9 +659,16 @@ Seba çarnayışi, yardımê [//translatewiki.net/wiki/Main_Page?setlang=kiu tra
 'cascadeprotected' => 'No pel de vurnayiş qedexe biyo, çunke şıma tuşa "kademeyın" aqtif kerdo u no {{PLURAL:$1|pelo|pelo}} pawıteyo de xebıtyeno:
 $2',
 'namespaceprotected' => "No '''$1''' ca de icazetê şıma çino şıma pel rêz keri.",
+'customcssprotected' => 'Na pela vurnayışi re mısadey şıma çınyo, çıkı na pela xısusi sazanê karbera muhtewa kena.',
+'customjsprotected' => 'Na pela Java Scripti vurnayışi re mısadey şıma çınyo, çıkı na pela xısusi sazanê karbera muhtewa kena.',
 'ns-specialprotected' => 'Peley xısusi nênê vurnayış.',
 'titleprotected' => 'Eno [[User:$1|$1]] zerreyê ena peli nişeno vuriye.
 Sebeb: "\'\'$2\'\'".',
+'filereadonlyerror' => 'Dosyay vurnayışê "$1" nê abê no lakin depoy dosya da "$2" mod dê  salt wendi deyo.
+
+Xızmetkarê  kılitkerdışi wa bewni ro enay wa çımra ravyarno: "$3".',
+'invalidtitle-knownnamespace' => 'Canemey "$2" u metnê "$3" xırabo',
+'invalidtitle-unknownnamespace' => 'Sernameye nêşınasiya yana amraiya canameyo  $1 u metno "$2" xırab',
 
 # Virus scanner
 'virus-badscanner' => "Eyaro şaş: no virus-cıgerayox nêzanyeno: ''$1''",
@@ -633,10 +688,11 @@ Hesabê şıma biyo a.
 'yourpassword' => 'Parola',
 'yourpasswordagain' => 'Parola reyna bınusne:',
 'remembermypassword' => 'Parola mı nê cıgeyraoği de biya xo viri (heta $1 {{PLURAL:$1|roc|roci}}).',
+'securelogin-stick-https' => "Dekewtış kerdışi dıma HTTPS'i dı grêdaye bıman",
 'yourdomainname' => 'Nameyê şıma yo meydani',
 'externaldberror' => 'Ya database de xeta esta ya zi heqê şıma çino şıma no hesab bıvurni.',
 'login' => 'Cı kewe',
-'nav-login-createaccount' => 'Cı kewe / hesab vıraze',
+'nav-login-createaccount' => 'Dekew de / hesab vıraze',
 'loginprompt' => "Cıkewtena {{SITENAME}}i rê gani ''cookies'' akerdey bê.",
 'userlogin' => 'Cı kewe / hesab vıraze',
 'userloginnocreate' => 'Cı kewe',
@@ -663,6 +719,9 @@ Ravêri inan akerê, dıma be name u parola şımawa newiye cı kewê.',
 'nocookieslogin' => 'Semedê akerdışê hesabi çerezê {{SITENAME}}i gurêniyenê.
 Şıma çerezi qapan kerdi.
 Ravêri inan akerê u reyna bıcerrebnê.',
+'nocookiesfornew' => 'Hesabê karberi nêvıraziya, MA nêzana sebebê cı kotirawo.
+Akerdış dê çerezarê xo emel bê uena pela fına barkerê.',
+'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'noname' => 'Yew nameyo maqbul bınuse.',
 'loginsuccesstitle' => 'Hesab abıya',
 'loginsuccess' => "'''{{SITENAME}} dı name dê \"\$1\" şıma hesab akerdo.'''",
@@ -674,8 +733,9 @@ Nuştışê xo qonrol kerên, ya zi [[Special:UserLogin/signup|yew hesabo newe a
 'login-userblocked' => 'No karber/na karbere blokekerdeyo/blokekerdiya. Cıkewtışi rê musade çıniyo.',
 'wrongpassword' => 'Parola ğeleta. Rêna / fına bıcerrebne .',
 'wrongpasswordempty' => 'Parola tola, venga. tekrar bınuse.',
-'passwordtooshort' => 'Parolayê to gani bi {{PLURAL:$1|1 karakter|$1 karakteran}}.',
+'passwordtooshort' => 'Derganiya parola wa tewr tayn {{PLURAL:$1|1 karakter|$1 karakteran}} dı bo.',
 'password-name-match' => 'Parola u nameyê şıma gani zeypê (seypê) nêbo.',
+'password-login-forbidden' => 'No namey karberi u parola karkerdışê cı  kerdo xırab.',
 'mailmypassword' => 'E-mail sera parola newiye bırışe',
 'passwordremindertitle' => 'Qey na keyepel {{SITENAME}} yew parolayo emanet',
 'passwordremindertext' => 'Yew ten (muhtemelen, şıma na aderesê IP ra $1 ) {{SITENAME}} ($4) newe yew parola waşt. "$2" no name ri emanet yew parola vıraziya "$3". Eke na şıma waşta, hesabê xo akere u newe yew parola bıvıraze. Muddetê parolayê şıma yo emanet {{PLURAL:$5|1 roc|$5 roci}}.
@@ -698,6 +758,8 @@ Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
 'noemailprefs' => 'Hesab biyo a.',
 'emailconfirmlink' => 'E-postayê xo tesdiq kere',
 'invalidemailaddress' => 'No format de nuştışê e-postayi qebul nêbeno. Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
+'cannotchangeemail' => 'E-postay hesabi ena wiki sera nêvurneyêno.',
+'emaildisabled' => 'Na site ra e-posta nêrışêno.',
 'accountcreated' => 'Hesab vıraciya',
 'accountcreatedtext' => 'Qey no $1 karker newe yew hesab vıraziya.',
 'createaccount-title' => 'Qey {{SITENAME}} newe yew heab vıraştış',
@@ -706,9 +768,14 @@ Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
 'usernamehasherror' => 'Namey karberi de karakteri gani têmiyan ra mebê',
 'login-throttled' => 'Demekê cıwa ver de şıma zah teşebbusê hesab akerdış kerd.
 Bıne vındere u newe ra dest pê bıkere.',
+'login-abort-generic' => 'Dekewtışê şıma xırabo-terkneyayo',
 'loginlanguagelabel' => 'Zıwan: $1',
 'suspicious-userlogout' => 'Waştişê tu ya veciyayişi kebul nibiya cunki ihtimal o ke waştiş yew browser ya zi proksiyê heripiyaye ra ameya.',
 
+# E-mail sending
+'php-mail-error-unknown' => "PHP's mail() fonksiyoni de xırabin vıcyê.",
+'user-mail-no-addy' => 'Bê E-posta kerd ju e-posta bırşo cırê.',
+
 # Change password dialog
 'resetpass' => 'Parola bıvurne',
 'resetpass_announce' => 'Şıma pê yew parolayê muweqqet hesab kerd a, qey qedyayişe dekewtış newe yew parola bınuse:',
@@ -729,11 +796,14 @@ Bıne vındere u newe ra dest pê bıkere.',
 
 # Special:PasswordReset
 'passwordreset' => 'Parola ancia bınuse',
+'passwordreset-text' => 'Nê formi melumatê hesab dê şıma birê şıma viri deye pırkerê.',
 'passwordreset-legend' => 'Parola ancia bınuse',
+'passwordreset-disabled' => 'Parola reset kerdış ena viki sera qefılneyayo.',
 'passwordreset-pretext' => '{{PLURAL:$1||Enê cerenan ra jeweri defiye de}}',
 'passwordreset-username' => 'Namey karberi:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'neticey e-postay bımocne?',
+'passwordreset-capture-help' => 'Şıma na dorek morkerê se, e-posta (idareten eposta ya) şıma rê yana karbera rê rışêno.',
 'passwordreset-email' => 'Adresa e-postey:',
 'passwordreset-emailtitle' => 'Hesab timarê {{SITENAME}}',
 'passwordreset-emailtext-ip' => 'Jeweri, {{SITENAME}} ra (ma heta şımayê, $1 IP adresi ra) ($4) teferuatê hesabdê şıma  va wa biyaro xo viri. Karbero ke cêrdeyo {{PLURAL:$3|hesaba|eno hesaba}} ena e-posta adresiya aleqey cı esto:
@@ -750,10 +820,15 @@ $2
 Ena parolaya deqewe de u xorê ju parolaya newi bıweçine. Parolaya şıma emaya şıma viri se  yana  ena e-posta şıma nê weştase u şıma qayıl niye parolaya xo bıvurnese, ena mesacer peygoş bıkerê.',
 'passwordreset-emailelement' => 'Namey karberi: $1
 Parola vêrdiye: $2',
+'passwordreset-emailsent' => 'E-postay xo vira kerdışi rışiyê.',
+'passwordreset-emailsent-capture' => 'Zey cêri e-postay xo vira kerdışi rışiyê.',
+'passwordreset-emailerror-capture' => 'ey cêri e-postay xo vira kerdışi vıraziyê lakin merdum dê $1 rê nêrışiyê.',
 
 # Special:ChangeEmail
 'changeemail' => 'E-posta adresa xo bıvurnê',
 'changeemail-header' => 'E-posya adresta hesabdê xo bıvurnê',
+'changeemail-text' => 'Şıma qayılê ke e-postay xo bıvurnê se enê formi pırkerê. Qandê tesdiq kerdışi zi parolay xo şıma de bınusnê',
+'changeemail-no-info' => 'Resayışê ena pela rê Dekewtış icab keno.',
 'changeemail-oldemail' => 'E-postay şımaya newki:',
 'changeemail-newemail' => 'E-postay şımayê newe:',
 'changeemail-none' => '(Çıno)',
@@ -775,6 +850,7 @@ Parola vêrdiye: $2',
 'nowiki_tip' => 'Formatê wiki iptal bık',
 'image_sample' => 'resım bıerze cı',
 'image_tip' => 'Dosyaya embedi',
+'media_sample' => 'misal.jpg',
 'media_tip' => 'Gırey dosya',
 'sig_tip' => 'İmzay tı u tarix',
 'hr_tip' => 'Çızgiy Horizantoli (use sparingly)',
@@ -863,12 +939,17 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'userjsyoucanpreview' => "'''Yardim:''' Ser \"{{int:showpreview}}\" sima eskeni CSSe newe test bikeri.",
 'usercsspreview' => "'''şıma tena verqaydê dosyayê CSS vineni.''' '''Dosyayê Karberi CSS hema qayd nebiyo!'''",
 'userjspreview' => "'''şıma tena test keni ya ziverqayn seyr keni - karberê JavaScript'i hema qayd nebiyo.'''",
+'sitecsspreview' => "'''Şımayê enewke tenya verqaytê dosya da CSS vınenê.''' 
+'''Hewna qayd nêbı!'''",
+'sitejspreview' => "'''Şımayê enewke tenya verqaytê kodê dosya da JavaScriptê karberi vınenê.''' 
+'''hewna qayd nebı!'''",
 'userinvalidcssjstitle' => "'''Teme:''' Mewzuyê \"\$1\" çıniyo.
 Dosyanê be namey .css u .js'i de herfa werdiye bıgurêne, mesela herında {{ns:user}}:Foo/Vector.css'i de {{ns:user}}:Foo/vector.css bınuse.",
 'updated' => '(Newenyaya)',
 'note' => "'''Not:'''",
 'previewnote' => "Teme! ena teyna verqeyda.'''
 Vurnayışê tu hama qeyd nıbiyo!",
+'continue-editing' => 'Vurnayışi rê dewam ke',
 'previewconflict' => 'No seyrkerdışê verqaydi serê qutiyê nuşte tezim kerdış de yo, eke şıma qayile vurnayişê maddeyi seyino bıvini, no mocneno şıma.',
 'session_fail_preview' => 'Ma ef kere. Vindibiyayişê tayê datay ra a kerdışê hesabê şıma de ma vurnayişê şıma qayd nêkerd. Newe ra tesel (cereb) bıkere. Eke no qayde zi nêbo, [[Special:UserLogout|hesabê xo bıqefelne]] u newera a kere.',
 'session_fail_preview_html' => "'''Ma meluli! Sebayê vindbiyayişê datasistemi ma vurnayişê şıma nêeşkeni qaydker.'''
@@ -879,6 +960,7 @@ Vurnayışê tu hama qeyd nıbiyo!",
 'token_suffix_mismatch' => "'''Vurnayişê şıma tepeya ameyo çunke qutiyê imla xerıbya.
 Vurnayişê şıma qey nêxerepyayişê peli tepeya geyra a.
 Eke şıma servisê proksi yo anonim şuxulneni sebebê ey noyo.'''",
+'edit_form_incomplete' => "'''Qandê form dê vurnayışa tay wastera ma nêreşti; Vurnayışê ke şıma kerdê nêalızyayê, çım ra ravyarnê u fına bıcerbnê.'''",
 'editing' => 'Pela "$1"\'i bıvurnê',
 'creating' => "Pela $1'i vıraze",
 'editingsection' => '$1 vurneno (qısım)',
@@ -916,6 +998,8 @@ Loge peniye cor de este:",
 'template-protected' => '(kılit biyo)',
 'template-semiprotected' => '(nimey ena pele kılit biya)',
 'hiddencategories' => 'Ena pela bınê {{PLURAL:$1|1 hidden category|$1 categoriyan nımne}}:',
+'edittools' => '<!-- Text here will be shown below edit and upload forms. -->',
+'edittools-upload' => '-',
 'nocreatetitle' => 'Vıraştışê pele mehcuro',
 'nocreatetext' => '{{SITENAME}}, Pelê neweyi vıraştış re destur çino.
 şıma eşkeni tepiya şêri u eke şıma qayd biyaye yê [[Special:UserLogin|şıma eşkeni hesab akeri]], eke niye [[Special:UserLogin|şıma eşkeni qayd bıbiy]].',
@@ -954,6 +1038,12 @@ Taye şabloni zerre pel de nêmociyayeni.',
 'parser-template-loop-warning' => 'Gıreyê şabloni ca biyo: [[$1]]',
 'parser-template-recursion-depth-warning' => 'limitê şablonê newekerdışi biyo de ($1)',
 'language-converter-depth-warning' => 'xoritiya çarnekarê zıwanan viyarnê ra ($1)',
+'node-count-exceeded-category' => 'Pela ra hetê kotya amardışê cı ravêrya',
+'node-count-exceeded-warning' => 'Amariya pela ravêrya.',
+'expansion-depth-exceeded-category' => 'Pela dı hetê canaya zoriya herayin ravêrya',
+'expansion-depth-exceeded-warning' => 'Ravêriya pela xori herayêna',
+'parser-unstrip-loop-warning' => 'Unstrip lete vineya',
+'parser-unstrip-recursion-limit' => 'Sinorê limit dê qayış dê ($1) ravêrya',
 
 # "Undo" feature
 'undo-success' => 'No vurnayiş tepeye geryeno. pêverronayişêyê cêrıni kontrol bıkeri.',
@@ -1121,6 +1211,7 @@ no vurnayişo ke şıma keni kontrol bıkere yew pelo kehen nêbo.',
 'mergehistory-comment' => '[[:$1]] u [[:$2]] yew biyê: $3',
 'mergehistory-same-destination' => 'Pela çime u destinasyonî gani eyni nibiy.',
 'mergehistory-reason' => 'Sebeb:',
+'mergehistory-revisionrow' => '$1 ($2) $3 . . $4 $5 $6',
 
 # Merge log
 'mergelog' => 'Logê yew kerdişî',
@@ -1130,6 +1221,8 @@ no vurnayişo ke şıma keni kontrol bıkere yew pelo kehen nêbo.',
 
 # Diffs
 'history-title' => 'Rewizyonê $1:',
+'difference-title' => 'Ferkê revizyonan de "$1"',
+'difference-title-multipage' => 'Ferkê pelan dê "$1" u "$2"',
 'difference-multipage' => '(Ferqê pelan)',
 'lineno' => 'Rêza $1i:',
 'compareselectedversions' => 'Verziyonan kontrol bıke',
@@ -1293,10 +1386,13 @@ Na game tepeya nêerziyena.',
 'username' => 'Namey karberi:',
 'uid' => 'Namey karberi:',
 'prefs-memberingroups' => 'Ezayê {{PLURAL:$1|grub|grubi}}:',
+'prefs-memberingroups-type' => '$1',
 'prefs-registration' => 'Wextê qeydbiyayışi',
+'prefs-registration-date-time' => '$1',
 'yourrealname' => 'Nameyo raştay',
 'yourlanguage' => 'Zıwan:',
 'yourvariant' => 'Varyante miyandê zuwani:',
+'prefs-help-variant' => 'Zerrey ena viki mocnayışi rê varyant yana ortografi re şıre tercihan dê xo.',
 'yournick' => 'imza:',
 'prefs-help-signature' => 'mesajê ke pelê werenayişi de gani pê ney "<nowiki>~~~~</nowiki>" imza bıbi.',
 'badsig' => 'Îmzayê tu raşt niyo.
@@ -1355,6 +1451,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'userrights-notallowed' => 'Hesabdê şımadı heqanê xo hewadayış u xorê heq dekerdış çıno.',
 'userrights-changeable-col' => 'Grubê ke şıma şenê bıvurnê',
 'userrights-unchangeable-col' => 'Grubê ke şıma nêşenê bıvurnê',
+'userrights-irreversible-marker' => '$1*',
 
 # Groups
 'group' => 'Grup:',
@@ -1411,7 +1508,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'right-browsearchive' => 'Bıgeyre pelanê eserıtiyan',
 'right-undelete' => 'Jû pela esterıtiye peyser bia',
 'right-suppressrevision' => 'İdarekeran ra dızdeni/miyanki, newede vurnayışan de qayt ke u newede vıraze',
-'right-suppressionlog' => 'Loganê xasan bıvêne',
+'right-suppressionlog' => 'Rocekanê xasan bıvêne',
 'right-block' => 'Karberanê binan karê vurnayışi ra bloke bıke',
 'right-blockemail' => 'Yew karberê erşawıtışê/rıştena e-maili ra bloke bıke',
 'right-hideuser' => 'Yew namey karberi  şari ra dızdeni/miyanki bloke bıke',
@@ -1439,11 +1536,13 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'right-siteadmin' => 'Database kilit bike u a bike',
 'right-override-export-depth' => 'Peleyanê ke tede linkanê 5 ra zafyer estê ay export bike',
 'right-sendemail' => 'Karberanê binî ra e-mail bişirav',
+'right-passwordreset' => 'E-postayanê parola reset kerdışa vineno',
 
 # User rights log
 'rightslog' => 'Qeydê heqanê karberi',
 'rightslogtext' => 'Ena listeyê loganê ke heqqa karbaranî mucneno.',
 'rightslogentry' => 'eza biyayişê grupî $1 ra $2 rê $3î bivurne',
+'rightslogentry-autopromote' => '$2 otomatikmen gırdkerdışi ra kerd $3.',
 'rightsnone' => '(çino)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1471,6 +1570,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'action-suppressionlog' => 'ena logê xasî bivîne',
 'action-block' => 'enê karberi vurnayışi ra bıreyne',
 'action-protect' => 'seviyeyê pawitişî se ena pele bivurne',
+'action-rollback' => 'Lez/herbi vurnayışanê karberê peyêni tekrar bıke, oyo ke yew be yew pelê sero gureyao',
 'action-import' => 'ena pele yewna wîkî ra import bike',
 'action-importupload' => 'ena pele yew dosyayê bar kerdişî ra import bike',
 'action-patrol' => 'vurnayîşê karberanê binî nişan bike patrol biye',
@@ -1509,9 +1609,11 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'minoreditletter' => 'werdı',
 'newpageletter' => 'N',
 'boteditletter' => 'b',
+'unpatrolledletter' => '!',
 'number_of_watching_users_pageview' => '[$1 ho seyr keno {{PLURAL:$1|karber|karberî}}]',
 'rc_categories' => 'Kategoriyanî rê limît bike (pê "|" ciya bike)',
 'rc_categories_any' => 'Her yew',
+'rc-change-size' => '$1',
 'rc-change-size-new' => 'Vurnayışa dıma $1 {{PLURAL:$1|bayt|bayt}}',
 'newsectionsummary' => '/* $1 */ qısımo newe',
 'rc-enhanced-expand' => 'detayan bımoc (requires JavaScript)',
@@ -1556,16 +1658,17 @@ wexta şima qayîl e yew peli re dosya bierzî, formanê cêrinan ra yewi bişux
 'uploadlogpage' => 'Cıkewtışê bar-kerdışi',
 'uploadlogpagetext' => 'cêr de [[Special:NewFiles|listeyê dosyayan]] estî.',
 'filename' => 'Namey Dosya',
-'filedesc' => 'qisse',
-'fileuploadsummary' => 'qisse:',
+'filedesc' => 'Xulasa',
+'fileuploadsummary' => 'Xulasa:',
 'filereuploadsummary' => 'Vurnayîşê dosyayî:',
-'filestatus' => 'statuyê copyrightî',
+'filestatus' => 'Weziyetê heqê telifiye:',
 'filesource' => 'Çımey:',
 'uploadedfiles' => 'Dosyayê ke bar biye',
 'ignorewarning' => 'Îkazi kebul meke u dosya reyna bar bike',
 'ignorewarnings' => 'Îkazi kebul meke',
 'minlength1' => 'Nameyanê dosyayî de gani bî ezamî yew herf est biyê.',
 'illegalfilename' => '"$1" no nameyê dosya de tayê karakteri nêşuxulyenî. newe ra tesel bıkerê',
+'filename-toolong' => 'Nameyê dosyayan 240 bayt ra derg do nêbo.',
 'badfilename' => "Nameyanê dosyayî ''$1'' rê vurneyî biye.",
 'filetype-mime-mismatch' => 'Derg kerdıştê Dosyada ".$1" u ($2) MIME tipiya cıya pêro nina.',
 'filetype-badmime' => 'Dosyaye ke tipê MIME "$1"î de bar nibeno.',
@@ -1573,12 +1676,12 @@ wexta şima qayîl e yew peli re dosya bierzî, formanê cêrinan ra yewi bişux
 'filetype-unwanted-type' => "'''\".\$1\"''' na tewırê dosyayi nêwazyena. pêşniyaz biyaye {{PLURAL:\$3|tewırê dosyayi|tewırê dosyayi}} \$2.",
 'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|Ena babeta dosya qebul ne vinena|Ena babeta dosya qebul ne vinena|Ena babeta dosya qebul ne vinena}}. Eke cırê izin deyayo $2. {{PLURAL:$3|Babatan dosyayan|babeta dosyayan}}',
 'filetype-missing' => 'Ena dosya de extention (ze ".jpg") çini yo.',
-'empty-file' => 'Dosya ke ti şawit veng biy.',
-'file-too-large' => 'Dosya ke ti şawit zaf gird biy.',
+'empty-file' => 'Dosyaya ke şıma rışta venga.',
+'file-too-large' => 'Dosyaye ke şıma rışta zaf gırda.',
 'filename-tooshort' => 'Namayê dosyayi zaf kilm a.',
 'filetype-banned' => 'Tipê ena dosya qedexe biya.',
 'verification-error' => 'Ena dosya taramayê dosyayi temam nikena.',
-'hookaborted' => 'Vurnayişê tu ke ti deneme kerd pê yew extensiyon ra iptal biya.',
+'hookaborted' => 'Vurnayişê tu ke to cerbna pê yew çengal ra terkneya.',
 'illegal-filename' => 'Ena nameyê dosyayi kebul nibena.',
 'overwrite' => 'Ser yew dosyayê ke hama esta, ser ey qeyd nibena.',
 'unknown-error' => 'Yew xeteyê nizanyeni biya.',
@@ -1588,6 +1691,7 @@ wexta şima qayîl e yew peli re dosya bierzî, formanê cêrinan ra yewi bişux
 gırdîyê na dosyayi $2.',
 'largefileserver' => 'Ena dosya zaf girde ke server kebul nikeno.',
 'emptyfile' => 'dosya ya ke şıma bar kerda veng asena, nameyê dosyayi şaş nusyaya belka.',
+'windows-nonascii-filename' => 'Na wiki namen de dosyayan de xısusi karaxtera karkerdışa peşti nêdana.',
 'fileexists' => "no name de yew dosya ca ra esta.
 Eke şıma emin niyê bıvurni bıewne na dosya'''<tt>[[:$1]]</tt>'''
 [[$1|thumb]]",
@@ -1621,6 +1725,8 @@ Semedê ancia barkerdışi dewamkerdış ra ver tarixê esterışê dosya gani q
 'php-uploaddisabledtext' => 'barkerdışê dosyayê PHP nıka çino. kerem kere eyarê file_uploads korol bıkerê.',
 'uploadscripted' => 'Ena dosya de yew HTML ya zi kodê scriptî este ke belki browserê webî fam nikeno.',
 'uploadvirus' => 'Ena dosya de yew virus estê: Qe detayan: $1',
+'uploadjava' => 'Dosya, zerre de cıdı jew Java .class dosyaya ZIP esta.
+Dosyayn de Java barkerdışi rê icazet nêdeyê, çıkı emeleya merduman nêbena.',
 'upload-source' => 'Dosyayê henî',
 'sourcefilename' => 'Nameyê dosyaye çimeyî',
 'sourceurl' => "URL'yê Çımi",
@@ -1632,11 +1738,26 @@ Semedê ancia barkerdışi dewamkerdış ra ver tarixê esterışê dosya gani q
 'filewasdeleted' => 'no name de yew dosya yew wexto nızdi de bar biya u dıma zi serkaran hewn a kerdo. wexya ke şıma dosya bar keni bıewnê no pel $1.',
 'filename-bad-prefix' => "name yo ke şıma bar keni zey nameyê kamerayê dijital î, pê ney '''\"\$1\"''' destpêkeno .
 kerem kere yewna nameyo eşkera bıvicinê.",
+'filename-prefix-blacklist' => ' #<!-- leave this line exactly as it is --> <pre>
+# Syntax is as follows:
+#   * Everything from a "#" character to the end of the line is a comment
+#   * Every non-blank line is a prefix for typical file names assigned automatically by digital cameras
+CIMG # Casio
+DSC_ # Nikon
+DSCF # Fuji
+DSCN # Nikon
+DUW # some mobile phones
+IMG # generic
+JD # Jenoptik
+MGP # Pentax
+PICT # misc.
+ #</pre> <!-- leave this line exactly as it is -->',
 'upload-success-subj' => 'bar biyo',
 'upload-success-msg' => '[$2] barkerdışê şıma qebul bı. Barkerdışê şımayo itado: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'Problem bar bike',
 'upload-failure-msg' => '[$1] delal: $2 ra barkerdıştê şıman ra jew xelat vıcyayo.',
 'upload-warning-subj' => 'İqazê barkerdışi',
+'upload-warning-msg' => 'Barkerdış dê [$2] de xırabey vıcyê. Xırabi timar kerdışi re  peyser şırê  [[Special:Upload/stash/$1|heruna barkerdışi]].',
 
 'upload-proto-error' => 'Porotokol raşt ni yo.',
 'upload-proto-error-text' => 'Bar kerdişê durî gani  URLî estbiye ke pe <code>http://</code> ya zi <code>ftp://</code> başli beno.',
@@ -1650,22 +1771,65 @@ Eke problem dewam kerd [[Special:ListUsers/sysop|serkari]] de irtibat kewe.',
 'upload-too-many-redirects' => 'Eno URL de zaf redireksiyonî esto.',
 'upload-unknown-size' => 'Ebat nizanyeno',
 'upload-http-error' => 'Yew ğeletê HTTPî biyo: $1',
+'upload-copy-upload-invalid-domain' => 'Na domain ra kopyayê barkerdışanê nêbenê.',
 
 # File backend
 'backend-fail-stream' => '$1 nê vırazeyê',
 'backend-fail-backup' => '$1 nê wendeyê',
 'backend-fail-notexists' => '$1 name dı dosya çına.',
+'backend-fail-hashes' => 'Şınasiya dosyaya gırotışê cı nêgêriya.',
+'backend-fail-notsame' => 'Zey $1 ju dosya xora  esta.',
+'backend-fail-invalidpath' => '$1 rayê da depo kerdışa raştay niya.',
 'backend-fail-delete' => '$1 nê besterneyê',
 'backend-fail-alreadyexists' => "Dosyay $1'ya nêwanêna",
 'backend-fail-store' => '$1 ra $2 berdışo nê wanêno',
 'backend-fail-copy' => '$1 ra $2 kopya kerdışena dosyayo nêbeno',
 'backend-fail-move' => '$1 ra $2 berdışo nê wanêno',
 'backend-fail-opentemp' => 'Teferruatê dosyayo nêwanêno',
+'backend-fail-writetemp' => 'Dosyaya idari nênusneyê.',
+'backend-fail-closetemp' => 'Dosyaya idari nêracneyê',
 'backend-fail-read' => 'Na "$1" dosya nê wanêna',
 'backend-fail-create' => 'Dosyay $1 nê vırazıyê',
+'backend-fail-maxsize' => 'Dosyay $1 aya nênusneyêna feqet gırdeya cı {{PLURAL:$2|bayta|$2 bayto}}',
+'backend-fail-readonly' => 'Depo kerdışê "$1" enewke salt wanêno.Sebebê cı zi:"\'\'$2\'\'"',
+'backend-fail-synced' => 'Dosyay " $1 " miyan de depo kerdışeyda cıdı pê nêtepıştey esta',
+'backend-fail-connect' => 'Depo kerdışê "$1" peyni de nêgrêdeya.',
+'backend-fail-internal' => 'Depo kerdışê "$1" peyni de ju xırabin vıcyê.',
+'backend-fail-contenttype' => 'Qandê depo kerdışi zerrey babeta dosya da "$1" nêvineya.',
+'backend-fail-batchsize' => 'Depo kerdışê  dosya da $1 {{PLURAL:$1|operasyon de|operasyonê}} cı groto; sinorê  {{PLURAL:$2|operasyoni|operasyona}} $2.',
+'backend-fail-usable' => 'Dosyay $1 nênusneyê çıkı ratnayışê cı racnayeyo yana kewmiyo.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'Depo kerdış de "$1" qande malumatê gurweynayışi cıya irtibat nêkewiya.',
+'filejournal-fail-dbquery' => 'Depo kerdış de "$1" qande malumatê gurweynayışi cıyo nêbeno.',
+
+# Lock manager
+'lockmanager-notlocked' => 'Dosyay "$1" kılit nêbiya; kesi kılit nêkerda.',
+'lockmanager-fail-closelock' => 'Dosyay kıliti nêracneyê "$1".',
+'lockmanager-fail-deletelock' => 'Dosyay kıliti nêbesterneyê "$1".',
+'lockmanager-fail-acquirelock' => 'Kılitê cı nêgêriya "$1".',
+'lockmanager-fail-openlock' => 'Dosyay kıliti nêracneyê qandê "$1".',
+'lockmanager-fail-releaselock' => 'Dosyay kıliti nêvıradeyê "$1".',
+'lockmanager-fail-db-bucket' => 'Kılite malumat da sitıl de $1 irtibat kewtışi re bes nêkeno.',
+'lockmanager-fail-db-release' => 'Malumatê kıliti nêvıradeyê $1.',
+'lockmanager-fail-svr-release' => 'Wasterê kıliti nêvıradeyê $1.',
+
+# ZipDirectoryReader
+'zip-file-open-error' => 'Dosya ZIP kontrol kerdışi re akerdin de jew xırabin amê.',
+'zip-wrong-format' => "Dosyaya ke nışan biya dosyay ZIP'i niya.",
+'zip-bad' => 'Dosya xırabiya yana zewbi sebeb ra ZIP dosyaya nêwanêna.
+Kontrolê emeleyey oyo veş nêbeno.',
+'zip-unsupported' => 'Dosya MediaWiki ra ZIP dosyaya nêwanêna yana derganiya ZIP de cı aya pıro nina. Kontrolê emeleyey oyo veş nêbeno.',
 
 # Special:UploadStash
 'uploadstash' => 'Nımıtışê barkerdışi',
+'uploadstash-summary' => "Na pela barkerdış (yana hewna barbenayış dı) hema hewna wiki'dedosyeyê ke nêpêseryayê enarê rasayış gre danop. Enê dosyay o ke a dosya keno bar tek o şena a dosya bıvino.",
+'uploadstash-clear' => 'Dosyeyê ke idareten bıvıryê ena besternê',
+'uploadstash-nofiles' => 'Dosyeyê ke idareten bıvıryê çınyê.',
+'uploadstash-badtoken' => 'Karkerdışê cı nêbı, muhtemelen desture şımayê timarkerdışi zeman do şıma ravêrdo. Fına bıcerbnê.',
+'uploadstash-errclear' => 'Besternayışê dosyayan nêbı',
+'uploadstash-refresh' => 'Listanê dosyayan aneweke',
+'invalid-chunk-offset' => 'Ofseto nêravyarde',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Cıkewtış red biyo',
@@ -1684,6 +1848,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization Selahiyetê resımi b
 no wiki bı umumi eyar biyo.
 qey pawıtışi, img_auth.php battal verdiyayo.",
 'img-auth-noread' => 'Heqqa karberanî çino ke "$1" biwendi',
+'img-auth-bad-query-string' => "URL'dı ratnayışo nêravêrde esto.",
 
 # HTTP errors
 'http-invalid-url' => 'URL raşt niya: $1',
@@ -1753,11 +1918,17 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 'sharedupload' => 'Ena dosya $1 ra u belki projeyê binan dı hewitiyeno.',
 'sharedupload-desc-there' => 'depoyê $1 u projeyê bini na dosyayi xebıtneni. qey teferruati bıewnê [$2 teferruati dosyayi].',
 'sharedupload-desc-here' => 'depoyê $1 u projeyê bini na dosyayi xebıtneni. qey teferruati bıewnê [$2 teferruati dosyayi].',
+'sharedupload-desc-edit' => 'Na dosya $1 proceyan dê binandı ke şeno bıgurweyno.
+Şıma qayılê ke malumatê cı bıvurnê se şıre [pela da $2 ].',
+'sharedupload-desc-create' => 'Na dosya $1 proceyan dê binandı ke şeno bıgurweyno.
+Şıma qayılê ke malumatê cı bıvurnê se şıre [pela da $2 ].',
 'filepage-nofile' => 'Ena name de dosya çin o.',
 'filepage-nofile-link' => 'Ena name de dosya çin o. Feqet ti eşkeno [$1 bar bike].',
 'uploadnewversion-linktext' => 'Versiyonê newiyerê ena dosya bar ke',
 'shared-repo-from' => '$1 ra',
 'shared-repo' => 'yew embarê repositoryî',
+'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
+'filepage.css' => '/* CSS placed here is included on the file description page, also included on foreign client wikis */',
 
 # File reversion
 'filerevert' => '$1 reyna biyere',
@@ -1828,6 +1999,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 'statistics-edits' => 'Amarê vurnayîşî ke wextê {{SITENAME}} ronayîşî ra',
 'statistics-edits-average' => 'Ser her pele de amarê vurnayîşîyê averageyî',
 'statistics-views-total' => 'Yekunî bivîne',
+'statistics-views-total-desc' => 'Peleyê ke çınyê yana xısusiyê e nina zerre nêkerdê',
 'statistics-views-peredit' => 'Ser her vurnayîşî de vînayîşî',
 'statistics-users' => 'Qeyd biye [[Special:ListUsers|karberî]]',
 'statistics-users-active' => 'Karberê aktifi',
@@ -1881,6 +2053,8 @@ gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
 'wantedpages' => 'Peleye ke waştênê',
 'wantedpages-badtitle' => 'sernuşte meqbul niyo: $1',
 'wantedfiles' => 'Dosyeye ke waştênê',
+'wantedfiletext-cat' => 'Dosyaya cêrên karvıstedeya lakin çınya. Mewcud dosyayan de xeriba miyan de liste bena. Xırabiya wınisin dana <del>ateber</del>. Zewbi zi, şırê pela da dosyeyê ke çınyaya [[:$1]].',
+'wantedfiletext-nocat' => 'Dosyeyê cêrêni estê lekin karnêvıstê. Dosyeyê xeribi liste benê. bo babeta dano <del>ateber</del>',
 'wantedtemplates' => 'Şablonê ke waştênê',
 'mostlinked' => 'Pelî ke tewr zafî lînk bîy.',
 'mostlinkedcategories' => 'Kategorî ke tewr zafî lînk bîy.',
@@ -1889,6 +2063,7 @@ gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
 'mostimages' => 'Dosyayan ke tewr zaf link estê.',
 'mostrevisions' => 'Pelan ke tewr zaf revizyonî biyê.',
 'prefixindex' => 'Veroleya peley pêro',
+'prefixindex-namespace' => 'Peleyê Veroleyıni ($1 cay nami)',
 'shortpages' => 'Peleyê kılmeki',
 'longpages' => 'Peleyê dergeki',
 'deadendpages' => 'pelê ke pelê binan re gırey nêeşto',
@@ -1921,10 +2096,12 @@ Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gı
 'pager-newer-n' => '{{PLURAL:$1|newiyer 1|newiyer $1}}',
 'pager-older-n' => '{{PLURAL:$1|Kıhanyer 1|Kıhanyer $1}}',
 'suppress' => 'Kontrol',
+'querypage-disabled' => 'Na pelaya xısusi,sebeb de performansi ra qefılneyê.',
 
 # Book sources
 'booksources' => 'Çımey kitaban',
 'booksources-search-legend' => 'Ser çımey kitaban bıgeyr',
+'booksources-isbn' => 'ISBN:',
 'booksources-go' => 'Şo',
 'booksources-text' => 'listeya cêrıni, keyepelê kitap rotoxan o.',
 'booksources-invalid-isbn' => 'ISBN raşt nêasena bıewnê çımeyê orjinali, raşt kopya biya nê nêbiyaya?',
@@ -1938,6 +2115,7 @@ Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gı
 tipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyna hessasiyê herfa pil u qıciyi) bıweçine u esayiş qıc kerê.',
 'logempty' => 'qaydi de weina yew malumat çino',
 'log-title-wildcard' => 'sername yê ke pê ney nuşteyi destkenêpê bıgêr.',
+'showhideselectedlogentries' => 'Qeydê weçinayışê bımocne/bınımne dekerê',
 
 # Special:AllPages
 'allpages' => 'Peli pêro',
@@ -1957,6 +2135,11 @@ tipa rocaneyi, nameyê karberi (herfa pil u qıci re hessas a), ya zi peli (reyn
 'allpages-bad-ns' => '{{SITENAME}} keyepel de wina "$1" yew nameyê cayi çino.',
 'allpages-hide-redirects' => 'Raçarnaya bınımne',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Şıma rê verhafıza versiyonê na pela aseno, hetana $1 cı kehani.',
+'cachedspecial-viewing-cached-ts' => 'Na pela raşt niya, şımayê enewke versiyonê verhafızada na pela vinenê.',
+'cachedspecial-refresh-now' => 'Peyêni bıvin.',
+
 # Special:Categories
 'categories' => 'Kategoriy',
 'categoriespagetext' => '{{PLURAL:$1|kategoriyê|kategoriyê}} cêrıni de pel u media esto.
@@ -2010,6 +2193,8 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 'listgrouprights-rights' => 'Heqqî',
 'listgrouprights-helppage' => 'Help:Heqqanê gruban',
 'listgrouprights-members' => '(lista ezayan)',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
 'listgrouprights-addgroup' => 'şıma eşkenî hesabê xo re {{PLURAL:$2|grub|gruban}} têare kerî: $1',
 'listgrouprights-removegroup' => 'şıma eşkenî hesabê xo ra {{PLURAL:$2|grub|gruban}} bıvecî: $1',
 'listgrouprights-addgroup-all' => 'şıma hesabê xo re heme gruban eşkeni têare bıkeri',
@@ -2034,7 +2219,8 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 'noemailtext' => 'no/na karber yew e-postayo meqbul nêdawa/o',
 'nowikiemailtitle' => 'E-postayan re destur çino',
 'nowikiemailtext' => 'no/na karber/e, karberanê binani ra gırewtışê e-postayi tercih nêkerd.',
-'emailtarget' => 'Namey Qarqeri defiyê de.',
+'emailnotarget' => 'Qandê Gêreninamey karberiyo wuna çınyo yana xırabo.',
+'emailtarget' => 'Namey Karberi defiyê de.',
 'emailusername' => 'Nameyê karberi:',
 'emailusernamesubmit' => 'Stare dı',
 'email-legend' => 'karberê {{SITENAME}} binan re e-posta bıerşaw',
@@ -2052,6 +2238,7 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 # User Messenger
 'usermessage-summary' => 'Mesajê sistemi caverd.',
 'usermessage-editor' => 'Mesaj berdoxe sistemi',
+'usermessage-template' => 'MediaWiki:UserMessage',
 
 # Watchlist
 'watchlist' => 'lista mına seyr-kerdışi',
@@ -2087,6 +2274,7 @@ Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni. Hem zi çı dem
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Seyr ke...',
 'unwatching' => 'Seyr meke...',
+'watcherrortext' => 'Sazanê listeda seyri vurnayış de pox ta "$1" xırabey vıcyê .',
 
 'enotif_mailer' => 'postaya xeberdayişi {{SITENAME}}',
 'enotif_reset' => 'Pela pêro ziyaret kerde deye mor ke',
@@ -2189,7 +2377,10 @@ Qey malumato ziyede [[Special:ProtectedPages|Peleyê ke star biye]] bewni rê ê
 'unprotectedarticle' => 'Starkerdışê "[[$1]]" hewadeya',
 'movedarticleprotection' => 'eyarê pawıtışi no "[[$2]]" peli ra kırışiya no "[[$1]]" peli',
 'protect-title' => 'qey "$1" yew seviyaya pawıtışi bıvıcinê',
+'protect-title-notallowed' => 'Star kerdış sewiyeyê "$1" bıvinê',
 'prot_1movedto2' => 'nameyê [[$1]] peli yo newe: [[$2]]',
+'protect-badnamespace-title' => 'Heruna naman itad starêna',
+'protect-badnamespace-text' => 'Na herunda namide peley nêstarênê.',
 'protect-legend' => 'pawıtışi tesdiq bıker',
 'protectcomment' => 'Sebeb:',
 'protectexpiry' => 'Qediyeno:',
@@ -2286,17 +2477,21 @@ qey karê tepiya ardışi u qey karê hewn a kerdışê verıni bıewnê [[Speci
 'undelete-cleanup-error' => 'Eka dosyayê arşîvî "$1"î ke ho wedariyeno feqet yew ğelet biya.',
 'undelete-missing-filearchive' => 'arşiwê IDyê yi dosyayi $1 tepiya niyeno çunke database de niyo.
 belka cıwa ver hewn a biyo..',
+'undelete-error' => 'Besternayışê peyd bıgi pela de xırabin vıcyê',
 'undelete-error-short' => 'Eka dosyayê biyereno feqet yew ğelet biya: $1',
 'undelete-error-long' => 'hewn a kerdışê na dosyayi wexta tepiya geriyenê xeta vıraziya:
 
 $1',
 'undelete-show-file-confirm' => '"<nowiki>$1</nowiki>" şıma emin î dosyaya revizyonê no $2 $3 tarixi bıvini?',
 'undelete-show-file-submit' => 'E',
+'undelete-revisionrow' => '$1 $2 $3 $4 . . $5 $6 $7',
 
 # Namespace form on various pages
 'namespace' => 'Cayê namey:',
 'invert' => 'Bê weçineni ê bina peyser biya',
+'tooltip-invert' => 'nameyo ke nışan biyo (u nameyo elekeyın zi nışanyyayo se) vurnayışan  zerrekan nımtışi re ena dore tesdiqi nışan kerê',
 'namespace_association' => 'Pineyê cadê naman',
+'tooltip-namespace_association' => 'Herunda canemiya elekeyın nışan kerdışi sero qıse kerdışi yana zerre dekerdışi rê ena dora tesdiqi nışan kerê',
 'blanknamespace' => '(Ser)',
 
 # Contributions
@@ -2344,7 +2539,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'whatlinkshere-hidetrans' => 'Açarnayışê $1',
 'whatlinkshere-hidelinks' => '$1 greyan',
 'whatlinkshere-hideimages' => 'gireyê resimî $1',
-'whatlinkshere-filters' => 'Filtreyan',
+'whatlinkshere-filters' => 'Parzumi',
 
 # Block/unblock
 'autoblockid' => 'Otomatik vındarnayış #$1',
@@ -2366,6 +2561,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 ** Tehditwari hereket/Taciz
 ** yew ra ziyed hesaban xırab şuxulnayiş
 ** nameyê karberi yo ke meqbul niyo',
+'ipb-hardblock' => 'KArberê ke ena IP ra dekewte de wa vurnayış nêkerê',
 'ipbcreateaccount' => 'Hesab viraştişi blok bik',
 'ipbemailban' => 'Ena karber rê destur medî  ke ay e-mail neşiravî',
 'ipbenableautoblock' => 'verniyê IPadresa peyin ê no karberi u wexta ke vurnayişi kerd ê IPadresani otomotik bıger.',
@@ -2376,12 +2572,15 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'ipbotherreason' => 'Sebebê bini:',
 'ipbhidename' => 'Nameyê karberî listeyan u vurnayîşan ra binumne',
 'ipbwatchuser' => 'Pela miniqaşe u pela ena karberî seyr bike',
+'ipb-disableusertalk' => 'No karber wexto ke bloqedeyo wa pela da xodı vurnayış kerdışi rê izin medı',
 'ipb-change-block' => 'Pê ena ayaran, karberî reyna bloke bike',
 'ipb-confirm' => 'Bloke kerdışi tesdik ke',
 'badipaddress' => 'Adresê IPî raşt niyo',
 'blockipsuccesssub' => 'Blok biyo',
 'blockipsuccesstext' => 'Verniya [[Special:Contributions/$1|$1]] gêriyaya.
 <br />Qey çım ra viyarnayişê verni-grewtışi bewni [[Special:BlockList|Ê yê ke verniyê IP adresê cı gêriyaya]].',
+'ipb-blockingself' => 'Şımayê kenê ke xo bloke kerê! Şıma qayılye xo bloke kerê?',
+'ipb-confirmhideuser' => 'Wexto ke "karberi bınımnê" nışandeyo se şıma ye kenê karberi bloke kerê. No, Namey karberi lista pêron dı u dekewtışê rocekan dı aktiv bo.Şıma qayıli ney bıkerê?',
 'ipb-edit-dropdown' => 'Sebebê blokî bivurne',
 'ipb-unblock-addr' => '$1 a bik',
 'ipb-unblock' => 'Yew adresê IPî ya zi nameyê karberî blok bike',
@@ -2448,6 +2647,7 @@ Seba lista karberanê ke heta nıka kılit biyê [[Special:BlockList|lista kıli
 'ipb_already_blocked' => '"$1" zaten blok biya',
 'ipb-needreblock' => '$1 xora engel biyo. Tı wazenay eyaran bıvurnê?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Kılitkerdışo bin|Kılitkerdışê bini}}',
+'unblock-hideuser' => 'NAmeyê karberi nımneyayo qandê coy şıma nêşenê bloqey cı wedarnê.',
 'ipb_cant_unblock' => 'xeta: IDyê ver-grewtışi $1 nêesa/asa.
 belka ver-grewtış wedariyayo.',
 'ipb_blocked_as_range' => 'xeta: $1 verniyê IPadresi direk nêgeriyayo u ver-gırewtışi nêwedariyeno .
@@ -2459,6 +2659,7 @@ labele parçeya benateyê na $2 adresibi u ey ra ver-geryayo u şıma eşkeni no
 'proxyblocker-disabled' => 'Eno fonksiyon nêxebetiyeno.',
 'proxyblockreason' => 'IPadresa şıma yew proxyo akerdeyo u ey ra verniyê ey geriya.',
 'proxyblocksuccess' => 'Kar bi temam.',
+'sorbs' => 'DNSBL',
 'sorbsreason' => 'IP adresa şıma, hetê no {{SITENAME}} keyepeli ra  DNSBL de proxy hesibyayo u liste biyo.',
 'sorbs_create_account_reason' => 'IP adresa şıma, hetê no translatewiki.net keyepeli ra DNSBL de proxy hesibyayo u liste biyo.
 
@@ -2568,6 +2769,7 @@ Yewna name bınus.',
 'immobile-source-page' => 'nameyê no peli nêvuriyeno',
 'immobile-target-page' => 'sernameyê no hedefi re nêkırışiyeno',
 'imagenocrossnamespace' => 'Dosya, ca yo ke qey nameyê dosyayan nêbıbo nêkırışiyeno',
+'nonfile-cannot-move-to-file' => 'Ekê dosya niyê, cade namande dosyaya nêahulneyênê',
 'imagetypemismatch' => 'tipa dosyaya neweyi re pênêgıneno/nêgıneno pê',
 'imageinvalidfilename' => 'nameyê dosyayi ya hedefi meqbul niyo.',
 'fix-double-redirects' => 'rayberdış ê ke sernameyê orjinali re işaret keni rocane bıker.',
@@ -2588,9 +2790,11 @@ wiki yo ke wikimedya xebıtneno, pê [[Special:Import|pelê zerre dayişê]] no
 
 şıma eşkeni yew gırey bıerzi,
 ma vaci: qey pelê "[[{{MediaWiki:Mainpage}}]]i " [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].',
+'exportall' => 'Pela Pêron ateberdı',
 'exportcuronly' => 'têna revizyonê peyin bıger',
 'exportnohistory' => "----
 '''Not:''' pê no form teberdayişê verê (tarix) pelan battal biyo",
+'exportlistauthors' => 'zerre de qandê her pela listey iştiraxkara esto',
 'export-submit' => 'Teber de',
 'export-addcattext' => 'kategoriya cerıni ra maddeyan têare ker',
 'export-addcat' => 'têare ker',
@@ -2623,6 +2827,8 @@ eke şıma qayili paşt bıdi mahalli kerdışê wikimedyayi, kerem kerê pelê
 'thumbnail_error' => 'Thumbnail niviraziya: $1',
 'djvu_page_error' => 'pelê DjVuyi bêşumulo',
 'djvu_no_xml' => 'Qe DjVu nieşkenî XML fetch bikî',
+'thumbnail-temp-create' => 'İdare dosyay resimiya nêvırazêna',
+'thumbnail-dest-create' => 'Resimo werdiyo keyd nêbeno',
 'thumbnail_invalid_params' => 'Parametreya thumbnailî raşt niyşê',
 'thumbnail_dest_directory' => 'Nieşkenî direktorê destinasyonî virazî',
 'thumbnail_image-type' => 'Tipê resimî kebul nibeno',
@@ -2669,6 +2875,11 @@ dosyaya emaneti vindbiyo',
 'import-upload' => 'Dosyayê XML bar bike',
 'import-token-mismatch' => "vindibiyayişê ma'lumatê hesabi. kerem kerê newe ra tesel/cereb bıkerê.",
 'import-invalid-interwiki' => 'Eya wîkî ra nieşkenî împort bike.',
+'import-error-edit' => 'Pela " $1 " qandê vurnayışi aya nêgêrêna çıkı cı rê icazet nêdeyayo.',
+'import-error-create' => 'Pela " $1 " qandê vıraştışi aya nêabêna çıkı cı rê icazet nêdeyayo.',
+'import-error-interwiki' => 'Pela " $1 " qandê name dayışi aya nêgêrêna çıkı namey cı (interwiki) sero cırê ca abıryayo.',
+'import-error-special' => 'Pela " $1 " qandê vıraştışi aya nêgêrêna çıkı namay cı nameyo do xısusiyo u na pela rê no name nêgêrêno.',
+'import-error-invalid' => 'Pela "$1" nêdebyê de çıkı namey cı çınyo.',
 
 # Import log
 'importlogpage' => 'Logê împortî',
@@ -2680,6 +2891,14 @@ dosyaya emaneti vindbiyo',
 
 # JavaScriptTest
 'javascripttest' => 'Cerbnayışê JavaScripti',
+'javascripttest-disabled' => 'Na kerdin, na wiki sero aktiv nêbiya.',
+'javascripttest-title' => 'Testê $1 gurweyênê',
+'javascripttest-pagetext-noframework' => 'Na pela testanê JavaScripta gurweynayışi re abıryaya.',
+'javascripttest-pagetext-unknownframework' => 'Çerçeweyê "$1" cerbnayışi xırabo.',
+'javascripttest-pagetext-frameworks' => 'Şıma ra reca xorê cêr ra test weçinê:$1',
+'javascripttest-pagetext-skins' => 'Testa akarfinayışi rê verqayt:',
+'javascripttest-qunit-intro' => 'Mediawiki.org dı [dokumanê $1] bıvinê.',
+'javascripttest-qunit-heading' => 'MediaWiki JavaScript QUnit test suite',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Pelaya karberi',
@@ -2692,7 +2911,7 @@ dosyaya emaneti vindbiyo',
 'tooltip-pt-login' => 'Seba cıkewtışi şıma rê dewato; labelê, no zeruri niyo',
 'tooltip-pt-anonlogin' => 'Seba cıkewtışi şıma rê dewato; labelê, no zeruri niyo',
 'tooltip-pt-logout' => 'Bıvciyê',
-'tooltip-ca-talk' => 'Pela tedeesteyan sero werênayış',
+'tooltip-ca-talk' => 'Zerrey pela sero werênayış',
 'tooltip-ca-edit' => 'Tı şenay na pele bıvurnê.
 Kerem ke, qeydkerdış ra ver gocega verqayti bıxebetne.',
 'tooltip-ca-addsection' => 'Yew qısımo newe ake',
@@ -2728,12 +2947,12 @@ Kerem ke, qeydkerdış ra ver gocega verqayti bıxebetne.',
 'tooltip-t-specialpages' => 'Lista pelanê xasanê pêroinan',
 'tooltip-t-print' => 'Nımuney çapkerdışiê ena pele',
 'tooltip-t-permalink' => 'Gırêyo daimi be ena versiyonê pele',
-'tooltip-ca-nstab-main' => 'Pela tedeesteyan bıvêne',
+'tooltip-ca-nstab-main' => 'Pela zerreki bımocne',
 'tooltip-ca-nstab-user' => 'Pela karberi bıvin',
 'tooltip-ca-nstab-media' => 'Pele Mediya bivinên',
 'tooltip-ca-nstab-special' => 'Na yew pelê da xususiya, şıma nêşenê nae bıvurnê',
 'tooltip-ca-nstab-project' => 'pelayê kılit-kerdeyi bıvin',
-'tooltip-ca-nstab-image' => 'Pela tedeesteyan bıvêne',
+'tooltip-ca-nstab-image' => 'Pelay dosya bımocne',
 'tooltip-ca-nstab-mediawiki' => 'Mesacê sistemi bivinên',
 'tooltip-ca-nstab-template' => 'Şabloni bıvêne',
 'tooltip-ca-nstab-help' => 'Peleyê yardimi bivinên',
@@ -2775,7 +2994,8 @@ Tı eşkeno yew sebeb bınus.',
 'spamprotectionmatch' => 'nuşte yo ke rıcnayoxê spami herikneno: $1',
 'spambot_username' => 'wikimedya spam-pakkerdışi',
 'spam_reverting' => 'agêriyeno revizyon o ke tawayê $1 ıney piya çiniyo',
-'spam_blanking' => 'revizyonê hemeyi de ıney $1 re gıreyi estî, deverdiyeno',
+'spam_blanking' => 'Revizyonê gredê $1 vineyay, wa weng kero',
+'spam_deleting' => 'Revizyonê gredê $1 vineyay, wa besterneyê',
 
 # Info page
 'pageinfo-title' => 'Heq tê "$1"\'i',
@@ -2790,6 +3010,17 @@ Tı eşkeno yew sebeb bınus.',
 'pageinfo-views' => 'Amarina mocnayışan',
 'pageinfo-viewsperedit' => 'Vurnayışi sero vurnayışa bımocnêyış',
 
+# Skin names
+'skinname-standard' => 'Klasik',
+'skinname-nostalgia' => 'Nostalciya',
+'skinname-cologneblue' => 'Cologne Blue',
+'skinname-monobook' => 'MonoBook',
+'skinname-myskin' => 'MySkin',
+'skinname-chick' => 'Şıq',
+'skinname-simple' => 'Rehat',
+'skinname-modern' => 'Modern',
+'skinname-vector' => 'Vektor',
+
 # Patrolling
 'markaspatrolleddiff' => 'Nişan bike ke devriye biyo',
 'markaspatrolledtext' => 'Ena pele nişan bike ke devriye biyo',
@@ -2826,6 +3057,7 @@ $1',
 Gurênayışê nae de, beno ke sistemê şıma zerar bıvêno.",
 'imagemaxsize' => "Limitê ebat ê resimi:<br />''(qe pela deskripsiyonê dosyayan)''",
 'thumbsize' => 'Ebadê Thumbnaili',
+'widthheight' => '$1 - $2',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|pele|peli}}',
 'file-info' => 'ebatê dosyayi: $1, MIME tip: $2',
 'file-info-size' => '$1 × $2 pixelan, ebatê dosya: $3, MIME type: $4',
@@ -2855,6 +3087,11 @@ Gurênayışê nae de, beno ke sistemê şıma zerar bıvêno.",
 'sp-newimages-showfrom' => 'Dosyayê newi ke $2, $1 ra dest pe keni bimocne',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'video-dims' => '$1, $2 × $3',
+'seconds-abbrev' => '$1s',
+'minutes-abbrev' => '$1m',
+'hours-abbrev' => '$1h',
+'days-abbrev' => '$1d',
 'seconds' => 'verdê {{PLURAL:$1|$1 saniya|$1 saniya}}',
 'minutes' => 'verdê {{PLURAL:$1|$1 daka|$1 daka}}',
 'hours' => 'Verdê {{PLURAL:$1|$1 seata|$1 seata}}',
@@ -2868,6 +3105,61 @@ Tenya çiyo ke beno lista (rezê ke be * dest kenê cı) çıman ver de vêniyen
 Yew rêze de gırêyo sıfteyın gani gırêyo de dosya xırabıne bo.
 Na rêze de her gırêyo bin zey istisna vêniyeno, yanê pelê ke dosya beno ke sero rêzbiyaye asena.',
 
+/*
+Short names for language variants used for language conversion links.
+To disable showing a particular link, set it to 'disable', e.g.
+'variantname-zh-sg' => 'disable',
+Variants for Chinese language
+*/
+'variantname-zh-hans' => 'hans',
+'variantname-zh-hant' => 'hant',
+'variantname-zh-cn' => 'cn',
+'variantname-zh-tw' => 'tw',
+'variantname-zh-hk' => 'hk',
+'variantname-zh-mo' => 'mo',
+'variantname-zh-sg' => 'sg',
+'variantname-zh-my' => 'my',
+'variantname-zh' => 'zh',
+
+# Variants for Gan language
+'variantname-gan-hans' => 'hans',
+'variantname-gan-hant' => 'hant',
+'variantname-gan' => 'gan',
+
+# Variants for Serbian language
+'variantname-sr-ec' => 'sr-ec',
+'variantname-sr-el' => 'sr-el',
+'variantname-sr' => 'sr',
+
+# Variants for Kazakh language
+'variantname-kk-kz' => 'kk-kz',
+'variantname-kk-tr' => 'kk-tr',
+'variantname-kk-cn' => 'kk-cn',
+'variantname-kk-cyrl' => 'kk-cyrl',
+'variantname-kk-latn' => 'kk-latn',
+'variantname-kk-arab' => 'kk-arab',
+'variantname-kk' => 'kk',
+
+# Variants for Kurdish language
+'variantname-ku-arab' => 'ku-Arab',
+'variantname-ku-latn' => 'ku-Latn',
+'variantname-ku' => 'ku',
+
+# Variants for Tajiki language
+'variantname-tg-cyrl' => 'tg-Cyrl',
+'variantname-tg-latn' => 'tg-Latn',
+'variantname-tg' => 'tg',
+
+# Variants for Inuktitut language
+'variantname-ike-cans' => 'ike-Cans',
+'variantname-ike-latn' => 'ike-Latn',
+'variantname-iu' => 'iu',
+
+# Variants for Tachelhit language
+'variantname-shi-tfng' => 'shi-Tfng',
+'variantname-shi-latn' => 'shi-Latn',
+'variantname-shi' => 'shi',
+
 # Metadata
 'metadata' => 'Melumato serên',
 'metadata-help' => 'Ena dosya dı zafyer informasyoni esto. Belki ena dosya yew kamareyo dijital ya zi skaner ra vıraziyo.
@@ -2889,6 +3181,8 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 * gpslatitude
 * gpslongitude
 * gpsaltitude',
+'metadata-langitem' => "'''$2:''' $1",
+'metadata-langitem-default' => '$1',
 
 # EXIF tags
 'exif-imagewidth' => 'Herayey',
@@ -2936,6 +3230,7 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-exposuretime' => 'Zemanê orta de vinderdişi',
 'exif-exposuretime-format' => '$1 san ($2)',
 'exif-fnumber' => 'F Amar',
+'exif-fnumber-format' => 'f/$1',
 'exif-exposureprogram' => 'Programê Orta de Vinderdişi',
 'exif-spectralsensitivity' => 'Hesasiyetê spektrali',
 'exif-isospeedratings' => 'ISO değerê piti',
@@ -2949,6 +3244,7 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-lightsource' => 'Çimeyê roşni',
 'exif-flash' => 'Flaş',
 'exif-focallength' => 'Deganiyê fokus ê lensi',
+'exif-focallength-format' => '$1 mm',
 'exif-subjectarea' => 'Wareyê ey',
 'exif-flashenergy' => 'Kuvetê flaşi',
 'exif-focalplanexresolution' => 'Focal plane X resolution',
@@ -3003,8 +3299,15 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-gpsareainformation' => 'Nameyê wareyê GPSi',
 'exif-gpsdatestamp' => 'Tarixê GPSi',
 'exif-gpsdifferential' => 'GPS differential correction',
+'exif-coordinate-format' => '$1° $2′ $3″ $4',
 'exif-jpegfilecomment' => "Vatışê dosyada JPEG'i",
 'exif-keywords' => 'Qesa kelimey',
+'exif-worldregioncreated' => 'Resim dınya dı qanci mıntıqara gêriyayo',
+'exif-countrycreated' => 'Resim qanci dewlet ra gêriyayo',
+'exif-countrycodecreated' => 'Cayo ke resim ancıyayo kodê dewlet da cı',
+'exif-provinceorstatecreated' => 'Cayê resim antışi dewlet yana wılayet',
+'exif-citycreated' => 'Suka ke resim gêriyayao',
+'exif-sublocationcreated' => 'Bın lokasyonê resimê suker da cı grot',
 'exif-worldregiondest' => 'Wareyo ke mocneyêno',
 'exif-countrydest' => 'Dewleta ke mocneyêna',
 'exif-countrycodedest' => 'Kodê dewleto ke mocneyoêno',
@@ -3016,25 +3319,39 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-headline' => 'Sername',
 'exif-credit' => 'Kredi/Destegdaren',
 'exif-source' => 'Çıme',
+'exif-editstatus' => 'Resmi vurnayışê weziyeti',
 'exif-urgency' => 'Aciliyet',
 'exif-fixtureidentifier' => 'Namey fiksturi',
 'exif-locationdest' => 'Tarifê cay',
+'exif-locationdestcode' => 'Lokasyon kodi vaciya',
+'exif-objectcycle' => 'Qandê medyay deme u roce cı',
 'exif-contact' => 'Zanışiya irtibati',
 'exif-writer' => 'Nuştekar',
 'exif-languagecode' => 'Zıwan',
 'exif-iimversion' => 'Verqaydê IIM',
 'exif-iimcategory' => 'Kategori',
+'exif-iimsupplementalcategory' => 'Oleyê Kategoriyan',
 'exif-datetimeexpires' => 'No peyra mekarênê',
 'exif-datetimereleased' => 'Bıroşe',
 'exif-originaltransmissionref' => 'Oricinal pusula da kodê açarnayışi',
 'exif-identifier' => 'Şınasnayer',
 'exif-lens' => 'Lensê karkerdışi',
+'exif-serialnumber' => 'Seri nımreyê kamera',
 'exif-cameraownername' => 'Wayırê kamera',
 'exif-label' => 'Etiket',
+'exif-datetimemetadata' => 'Malumatê metamalumati peyd timarya',
+'exif-nickname' => 'Bêresmi namey cı',
 'exif-rating' => 'Rey dayış (5i sera)',
+'exif-rightscertificate' => 'Sertifikayê idariya heqan',
 'exif-copyrighted' => 'Weziyetê telifi',
 'exif-copyrightowner' => 'Wayırê Telifi',
 'exif-usageterms' => 'Şertê karkerdışi',
+'exif-webstatement' => 'Heqê telifiya miyandene',
+'exif-originaldocumentid' => 'Xasiya ID ya dokuman de orcinali',
+'exif-licenseurl' => 'Qandê Lisans de heqê telifiye URL',
+'exif-morepermissionsurl' => 'Alternatif malumatê lisansi',
+'exif-attributionurl' => 'No nuşte çı wext karyayo, şıma ra reca gre dekerê de',
+'exif-preferredattributionname' => 'No nuşte çı wext karyayo, Şıma ra reca morkerê',
 'exif-pngfilecomment' => "Vatışê dosyada PNG'i",
 'exif-disclaimer' => 'Reddê mesuliyeti',
 'exif-contentwarning' => 'İkazê zerreki',
@@ -3045,14 +3362,40 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-event' => 'Weqaya ke nameycıyo ravreno',
 'exif-organisationinimage' => 'Organizasyono ke ravêreno',
 'exif-personinimage' => 'Merdumo ke nameycıyo ravêreno',
+'exif-originalimageheight' => 'Veror de resim nêkırpnayışi dergeya cı',
+'exif-originalimagewidth' => 'Veror de resim nêkırpnayışi herayeya cı',
+
+# Make & model, can be wikified in order to link to the camera and model name
+'exif-contact-value' => '$1
+
+$2
+<div class="adr">
+$3
+
+$4, $5, $6 $7
+</div>
+$8',
+'exif-subjectnewscode-value' => '$2 ($1)',
 
 # EXIF attributes
-'exif-compression-1' => 'têhet nêanciyayo',
-'exif-compression-6' => 'wext o ke nêzaniyeno',
+'exif-compression-1' => 'Nêdegusneyayo',
+'exif-compression-2' => 'CCITT Group 3 1-Dimensiyonel dergeya cı timarkerdışê cı bıwanê',
+'exif-compression-3' => 'CCITT Group 3 fax kodkerdış',
+'exif-compression-4' => 'CCITT Group 4 fax kodkerdış',
+'exif-compression-5' => 'LZW',
+'exif-compression-6' => 'JPEG (verên)',
+'exif-compression-7' => 'JPEG',
+'exif-compression-8' => 'Deflate (Adobe)',
+'exif-compression-32773' => 'PackBits (Macintosh RLE)',
+'exif-compression-32946' => 'Deflate (PKZIP)',
+'exif-compression-34712' => 'JPEG2000',
 
 'exif-copyrighted-true' => 'Heqê telifiye',
 'exif-copyrighted-false' => 'Malê umumiye',
 
+'exif-photometricinterpretation-2' => 'RGB',
+'exif-photometricinterpretation-6' => 'YCbCr',
+
 'exif-unknowndate' => 'Tarix nizanyano',
 
 'exif-orientation-1' => 'Normal',
@@ -3067,9 +3410,19 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-planarconfiguration-1' => 'chunky format',
 'exif-planarconfiguration-2' => 'planar format',
 
+'exif-xyresolution-i' => '$1 dpi',
+'exif-xyresolution-c' => '$1 dpc',
+
+'exif-colorspace-1' => 'sRGB',
 'exif-colorspace-65535' => 'Kalibrasyon nêvıraziyayo',
 
 'exif-componentsconfiguration-0' => 'çini yo',
+'exif-componentsconfiguration-1' => 'Y',
+'exif-componentsconfiguration-2' => 'Cb',
+'exif-componentsconfiguration-3' => 'Cr',
+'exif-componentsconfiguration-4' => 'R',
+'exif-componentsconfiguration-5' => 'G',
+'exif-componentsconfiguration-6' => 'B',
 
 'exif-exposureprogram-0' => 'nêdiya daşınasnayişi',
 'exif-exposureprogram-1' => 'Pê/bı dest',
@@ -3107,6 +3460,10 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-lightsource-17' => 'Roşna standarde A',
 'exif-lightsource-18' => 'Roşna standarde B',
 'exif-lightsource-19' => 'Roşna standarde C',
+'exif-lightsource-20' => 'D55',
+'exif-lightsource-21' => 'D65',
+'exif-lightsource-22' => 'D75',
+'exif-lightsource-23' => 'D50',
 'exif-lightsource-24' => 'ISO volframê studyoyi',
 'exif-lightsource-255' => 'Çimeyê roşni yê bini',
 
@@ -3220,6 +3577,7 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-ycbcrpositioning-2' => 'Wayırê-site',
 
 'exif-dc-contributor' => 'İştırakdari',
+'exif-dc-coverage' => 'Heruna yana wextin grotışa medya',
 'exif-dc-date' => 'Tarix(i)',
 'exif-dc-publisher' => 'Wılakar',
 'exif-dc-relation' => 'Medyay cı',
@@ -3231,6 +3589,8 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 
 'exif-isospeedratings-overflow' => '65535 ra gırdo',
 
+'exif-maxaperturevalue-value' => '$1 APEX (f/$2)',
+
 'exif-iimcategory-ace' => 'Zagon, kultur u keyfiye',
 'exif-iimcategory-clj' => 'Arey u huquq',
 'exif-iimcategory-dis' => 'Weqey u Qezey',
@@ -3338,8 +3698,11 @@ kodê tesdiqi heta ıney tarixi $4 meqbul o.',
 'deletedwhileediting' => "'''Teme''': Ena pele  verniyê ti de eseteriyaya!",
 'confirmrecreate' => "Karberê [[User:$1|$1]]î ([[User talk:$1|mesac]]), verniyê vurnayîşê ti ra ena pele wedarno, sebeb: ''$2''
 Ma rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
+'confirmrecreate-noreason' => 'karbero [[User:$1|$1]] ([[User talk:$1|mesac]]) , dest pêkerdışiena pela sero vurnayışiya tepya ena pela besternê. Şıma qayıli ke ena pela fına vırazê se ena pela tesdiq kerê.',
 'recreate' => 'Reyna viraz',
 
+'unit-pixel' => 'px',
+
 # action=purge
 'confirm_purge_button' => 'Temam',
 'confirm-purge-top' => 'Cacheyê eno pel biestere?',
@@ -3351,6 +3714,18 @@ Ma rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
 'confirm-unwatch-button' => 'TEMAM',
 'confirm-unwatch-top' => 'Ena pele lista xoya seyirkerdışi ra bıvece?',
 
+# Separators for various lists, etc.
+'semicolon-separator' => '&#32;',
+'comma-separator' => ',&#32;',
+'colon-separator' => ':&#32;',
+'autocomment-prefix' => '-&#32;',
+'pipe-separator' => '&#32;|&#32;',
+'word-separator' => '&#32;',
+'ellipsis' => '...',
+'percent' => '$1%',
+'parentheses' => '($1)',
+'brackets' => '[$1]',
+
 # Multipage image navigation
 'imgmultipageprev' => '← peleyê verin',
 'imgmultipagenext' => 'pela badê cû →',
@@ -3375,6 +3750,28 @@ Ma rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
 'autoredircomment' => 'Pele [[$1]] rê redirek biyo',
 'autosumm-new' => "Pela vıraziyê, '$1' bıvinê",
 
+# Size units
+'size-bytes' => '$1 B',
+'size-kilobytes' => '$1 KB',
+'size-megabytes' => '$1 MB',
+'size-gigabytes' => '$1 GB',
+'size-terabytes' => '$1 TB',
+'size-petabytes' => '$1 PB',
+'size-exabytes' => '$1 EB',
+'size-zetabytes' => '$1 ZB',
+'size-yottabytes' => '$1 YB',
+
+# Bitrate units
+'bitrate-bits' => '$1bps',
+'bitrate-kilobits' => '$1kbps',
+'bitrate-megabits' => '$1Mbps',
+'bitrate-gigabits' => '$1Gbps',
+'bitrate-terabits' => '$1Tbps',
+'bitrate-petabits' => '$1Pbps',
+'bitrate-exabits' => '$1Ebps',
+'bitrate-zetabits' => '$1Zbps',
+'bitrate-yottabits' => '$1Ybps',
+
 # Live preview
 'livepreview-loading' => 'Ho bar keni...',
 'livepreview-ready' => 'Ho bar keni... Hezir o!',
@@ -3412,8 +3809,67 @@ Ti hem zi eşkeno [[Special:EditWatchlist|use the standard editor]].',
 'watchlisttools-edit' => 'listey seyrkerdışi bevin u edit bık',
 'watchlisttools-raw' => 'Listeyê seyr-kerdışi bıvin',
 
+# Iranian month names
+'iranian-calendar-m1' => 'Farvardin',
+'iranian-calendar-m2' => 'Ordibeheşt',
+'iranian-calendar-m3' => 'Xordad',
+'iranian-calendar-m4' => 'Tir',
+'iranian-calendar-m5' => 'Morded',
+'iranian-calendar-m6' => 'Şahrivar',
+'iranian-calendar-m7' => 'Mehr',
+'iranian-calendar-m8' => 'Aban',
+'iranian-calendar-m9' => 'Azar',
+'iranian-calendar-m10' => 'Dey',
+'iranian-calendar-m11' => 'Behman',
+'iranian-calendar-m12' => 'Esfend',
+
+# Hijri month names
+'hijri-calendar-m1' => 'Muharram',
+'hijri-calendar-m2' => 'Sefer',
+'hijri-calendar-m3' => 'Rebiel ewwel',
+'hijri-calendar-m4' => 'Rebiel sani',
+'hijri-calendar-m5' => 'Cemaziel ewwel',
+'hijri-calendar-m6' => 'Cemaziel tani',
+'hijri-calendar-m7' => 'Receb',
+'hijri-calendar-m8' => 'Şehban',
+'hijri-calendar-m9' => 'Remezan',
+'hijri-calendar-m10' => 'Şewwal',
+'hijri-calendar-m11' => 'Zil Qade',
+'hijri-calendar-m12' => 'Zil Hicce',
+
+# Hebrew month names
+'hebrew-calendar-m1' => 'Tişrei',
+'hebrew-calendar-m2' => 'Çeşvan',
+'hebrew-calendar-m3' => 'Kislev',
+'hebrew-calendar-m4' => 'Tevet',
+'hebrew-calendar-m5' => 'Şevat',
+'hebrew-calendar-m6' => 'Adar',
+'hebrew-calendar-m6a' => 'Adar I',
+'hebrew-calendar-m6b' => 'Adar II',
+'hebrew-calendar-m7' => 'Nisan',
+'hebrew-calendar-m8' => 'Iyar',
+'hebrew-calendar-m9' => 'Sivan',
+'hebrew-calendar-m10' => 'Tamuz',
+'hebrew-calendar-m11' => 'Av',
+'hebrew-calendar-m12' => 'Elul',
+'hebrew-calendar-m1-gen' => 'Tişrei',
+'hebrew-calendar-m2-gen' => 'Çeşvan',
+'hebrew-calendar-m3-gen' => 'Kislev',
+'hebrew-calendar-m4-gen' => 'Tevet',
+'hebrew-calendar-m5-gen' => 'Şevat',
+'hebrew-calendar-m6-gen' => 'Adar',
+'hebrew-calendar-m6a-gen' => 'Adar I',
+'hebrew-calendar-m6b-gen' => 'Adar II',
+'hebrew-calendar-m7-gen' => 'Nisan',
+'hebrew-calendar-m8-gen' => 'Iyar',
+'hebrew-calendar-m9-gen' => 'Sivan',
+'hebrew-calendar-m10-gen' => 'Tamuz',
+'hebrew-calendar-m11-gen' => 'Av',
+'hebrew-calendar-m12-gen' => 'Elul',
+
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|mesac]])',
+'timezone-utc' => 'ŞWC',
 
 # Core parser functions
 'unknown_extension_tag' => 'Etiketê ekstensiyon ê "$1"î nizanyeno',
@@ -3427,6 +3883,7 @@ Ti hem zi eşkeno [[Special:EditWatchlist|use the standard editor]].',
 'version-variables' => 'Vurnayeyî',
 'version-antispam' => 'Spam vındarnayış',
 'version-skins' => 'Cıldi',
+'version-api' => 'API',
 'version-other' => 'Bin',
 'version-mediahandlers' => 'Kulbê medyayî',
 'version-hooks' => 'Çengelî',
@@ -3436,6 +3893,7 @@ Ti hem zi eşkeno [[Special:EditWatchlist|use the standard editor]].',
 'version-hook-name' => 'Nameyê çengelî',
 'version-hook-subscribedby' => 'Eza biyayoğ',
 'version-version' => '(Versiyon $1)',
+'version-svn-revision' => '(r$2)',
 'version-license' => 'Lisans',
 'version-poweredby-credits' => "Ena wiki, dezginda '''[//www.mediawiki.org/ MediaWiki]''' ya piya vıraziyaya, heqê telifi © 2001-$1 $2.",
 'version-poweredby-others' => 'Zewmi',
@@ -3450,6 +3908,8 @@ enê programiya piya [{{SERVER}}{{SCRIPTPATH}}/COPYING jew kopyay lisans dê GNU
 'version-entrypoints' => "heruna dekewtış de GRE'i",
 'version-entrypoints-header-entrypoint' => 'Heruna dekewtışi',
 'version-entrypoints-header-url' => 'GRE',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Article path]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Script path]',
 
 # Special:FilePath
 'filepath' => 'Heruna dosyayer',
@@ -3523,6 +3983,9 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 'compare-rev1' => 'Revizyonê 1i',
 'compare-rev2' => 'Revizyonê 2i',
 'compare-submit' => 'Miqayese',
+'compare-invalid-title' => 'Sernameyo ke şımayê vanê ravêrde niyo.',
+'compare-title-not-exists' => 'Sernameyo ke şımayê vanê mewcud niyo.',
+'compare-revision-not-exists' => 'Revizyono ke şımaye vanê mewcud niyo.',
 
 # Database error messages
 'dberr-header' => 'Ena Wiki de yew ğelet esta',
@@ -3546,20 +4009,36 @@ Ena sita dı newke xırabiya teknik esta.',
 'htmlform-reset' => 'Vurnayişî reyna biyar',
 'htmlform-selectorother-other' => 'Bin',
 
+# SQLite database support
+'sqlite-has-fts' => '$1 tam-metn destegê cı geyrayışiya piya',
+'sqlite-no-fts' => '$1 tam-metn bê destegê cı geyrayışi',
+
 # New logging system
 'logentry-delete-delete' => "Karber $1' pelay $3' besternê",
 'logentry-delete-restore' => "Karber $1' pelay $3' peyser grot",
+'logentry-delete-event' => '$1 asaneyaışê {{PLURAL:$5|weqey roceke|$5 weqey rocekan}} kerdi het de $3: $4 vurna',
+'logentry-delete-revision' => '$1 $3: pela da $4 dı  {{PLURAL:$5|jew revizyon|$5 revizyon}} asayışê cı vurna',
+'logentry-delete-event-legacy' => '$1 Asayışê vurnayışê $3 dekerde de',
+'logentry-delete-revision-legacy' => '$1 revizyonê pela da $3 asayışê cı vurna',
 'logentry-suppress-delete' => '$1  $3 rê pıloxneyê',
-'revdelete-content-hid' => 'nusno nımte',
-'revdelete-summary-hid' => 'Vurnayışi nımtey niyê',
-'revdelete-uname-hid' => 'Namey karberi nımteyo',
-'revdelete-content-unhid' => 'Zerrek mocneya',
+'logentry-suppress-event' => '$1 asayışê  {{PLURAL:$5|weqey rocaka|$5 weqey rocekan}}  $3: $4 miyanıki vurna',
+'logentry-suppress-revision' => '$1 $3: pela da $4 dı  {{PLURAL:$5|jew revizyon|$5 revizyon}} asayışê cı xısusiye vurna',
+'logentry-suppress-event-legacy' => '$1 Asayışê vurnayışê ciyo xısusiyeta cı $3 dekerde de',
+'logentry-suppress-revision-legacy' => '$1 revizyonê pela da $3 asayışê cıyo xısuiye vurna',
+'revdelete-content-hid' => 'zerreko nımte',
+'revdelete-summary-hid' => 'xulusaya vurnayışa nımneyê',
+'revdelete-uname-hid' => 'namey karberi nımteyo',
+'revdelete-content-unhid' => 'errek mocneya',
 'revdelete-summary-unhid' => 'Xulusaya vurnayışa mucneyê',
-'revdelete-uname-unhid' => 'Namey karberi ne nımteyo',
+'revdelete-uname-unhid' => 'namey karberi ne nımteyo',
 'revdelete-restricted' => 'verger (vergırewtış) ê ke qey xızmkaran biye',
 'revdelete-unrestricted' => 'verger (ver gırewtış) ê ke qey xızmkaran diyê wera (wedariyê)',
 'logentry-move-move' => "Karber $1' pelay $3' berd $4",
 'logentry-move-move-noredirect' => "$1'i pelay $3 raçarnayış neker dı u berd $4",
+'logentry-move-move_redir' => '$1 pela $3 pela da $4 sera hetenayış ra ahulnê',
+'logentry-move-move_redir-noredirect' => '$1 hetenayışê qeydê pela da  $3 ahulnê $4 sero hetenayış vıraşt',
+'logentry-patrol-patrol' => '$1 revizyonê pela da $4 $3 ke kontrol',
+'logentry-patrol-patrol-auto' => '$1 Otomatik revizyonê pela da $4  $3 ke kontrol',
 'logentry-newusers-newusers' => '$1 deye namey karberi vıraziya',
 'logentry-newusers-create' => '$1 deye namey karberi vıraziya',
 'logentry-newusers-create2' => "$1'i $3 rê hesab vıraşt",
@@ -3567,6 +4046,7 @@ Ena sita dı newke xırabiya teknik esta.',
 'newuserlog-byemail' => 'pê e-mail ra paralo şiravt',
 
 # Feedback
+'feedback-bugornote' => 'Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1  jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da "[ $3  $2 ]", namey karber dê xoya piya u wasteriya karfiye.',
 'feedback-subject' => 'Muhtewa:',
 'feedback-message' => 'Mesac:',
 'feedback-cancel' => 'Bıterkne',
@@ -3575,19 +4055,48 @@ Ena sita dı newke xırabiya teknik esta.',
 'feedback-error1' => 'Xeta: API ra neticey ne vıcyay',
 'feedback-error2' => 'Xeta: Timar kerdış nebı',
 'feedback-error3' => 'Xeta: API ra cewab çıno',
+'feedback-thanks' => 'Teşekkur kemê! Vatışê şıma pela da "[$2 $1]" esta.',
 'feedback-close' => 'Biya star',
+'feedback-bugcheck' => 'Harika! Sadece [xırabina ke $1 ] çınyayışê cı kontrol keno.',
 'feedback-bugnew' => 'Mı qontrol ke. Xetaya newi xeber ke',
 
 # API errors
+'api-error-badaccess-groups' => 'Ena wiki de dosya barkerdışi rê mısade nêdeyêno.',
+'api-error-badtoken' => 'Xirabiya zerrek:Xırab resim.',
+'api-error-copyuploaddisabled' => 'URL barkerdış ena waster dı qefılyayo.',
 'api-error-duplicate' => 'Ena {{PLURAL:$1|ze ke [zey $2]|biya [zey dosya da $2]}} zeq wesiqa biya wendeyê.',
 'api-error-duplicate-archive' => 'Ena {{PLURAL:$1|vurneyaya [$2 zey na dosya]| [zerrey cı zey $2 dosya]}} aseno,feqet {{PLURAL:$1|ena dosya|tewr veri}} besterneyaya.',
 'api-error-duplicate-archive-popup-title' => 'Ena {{PLURAL:$1|Dosya besterneyaya|dosya}} xora  besterneyaya.',
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|dosyaya|dosyaya}} dılet',
+'api-error-empty-file' => 'Dosyaya ke şıma rışta venga.',
+'api-error-emptypage' => 'Newi, pelaya veng vıraştışi rê mısade nêdeyêno.',
+'api-error-fetchfileerror' => 'Xırabiya zerrek:Dosya grotış dı tay çi raşt nêşı.',
+'api-error-file-too-large' => 'Dosyaye ke şıma rışta zaf gırda.',
+'api-error-filename-tooshort' => 'Namayê dosyayi zaf kilm a.',
 'api-error-filetype-banned' => 'Tipê ena dosya qedexe biya.',
+'api-error-filetype-missing' => 'Derganiya dosya kemiya',
+'api-error-hookaborted' => 'Vurnayişê tu ke to cerbna pê yew çengal ra terkneya.',
+'api-error-http' => 'Xırabiya zerreki:Wasteriya irtabet bırya.',
 'api-error-illegal-filename' => 'Ena nameyê dosyayi kebul nibena.',
+'api-error-internal-error' => 'Xırabiye zerrek:Na wikide barkerdış de şıma dı çıyê raşt nêşı.',
+'api-error-invalid-file-key' => 'Xırabiye zerrek:İdari  depokerdışê dosya nêvineya.',
+'api-error-missingparam' => 'Xırabiye zerrek:Parametre waştış dı xırabin',
+'api-error-missingresult' => 'Xırabiya zerrek:Kopya kerdışê cı nêbı.',
+'api-error-mustbeloggedin' => 'Dosya barkerdışi re cıkewtış icab keno.',
+'api-error-mustbeposted' => 'Zırabiya zerrek:HTTP POST waştış icab keno',
+'api-error-noimageinfo' => 'Barkerdışê dosya temamya lakin wasterira marê malumat nêdeyayo.',
+'api-error-nomodule' => 'Xırabiya zerrek:Sazkerdışê modul dê barkerdışi nêvıraziyayo.',
+'api-error-ok-but-empty' => 'Xırabiya zerrek:Wastero cıwan nêdano.',
+'api-error-overwrite' => 'Ser yew dosyayê ke hama esta, ser ey qeyd nibena.',
+'api-error-stashfailed' => 'Xırabiya zerrek:Wasteri idari dosyey kerdi vıni.',
+'api-error-timeout' => 'Cıwab dayışê wasteri peyra mend.',
+'api-error-unclassified' => 'Yew xeteyê nizanyeni biya.',
 'api-error-unknown-code' => "$1'dı jew xeta vıciye",
+'api-error-unknown-error' => 'Zerre xırabin:Dasoya barkerdış de tay çi raşt nêşı.',
 'api-error-unknown-warning' => "$1'dı ikazo xırab:",
 'api-error-unknownerror' => "$1'dı jew xeta vıciye",
+'api-error-uploaddisabled' => 'BArkerdış ena wikide qefılneyayo',
+'api-error-verification-error' => 'Dosya xırabiya yana derganiya cı xıraba.',
 
 # Durations
 'duration-seconds' => '$1 {{PLURAL:$1|saniya|saniyey}}',
index 8eea213..c510f72 100644 (file)
@@ -2817,6 +2817,7 @@ W zespominanju dajo se pśicyna pódaś.',
 'spambot_username' => 'MediaWikijowe spamowe rěšenje',
 'spam_reverting' => 'Nawrośijo se slědna wersija, kótaraž njejo wopśimjeła wótkaz na $1.',
 'spam_blanking' => 'Wšykne wersije su wopśimowali wótkaze na $1, do rěcha spórane.',
+'spam_deleting' => 'Wšykne wersije z wótkazami do $1 so lašuju',
 
 # Info page
 'pageinfo-title' => 'Informacije za bok "$1"',
index 1fdb65a..b7275f8 100644 (file)
@@ -3692,6 +3692,7 @@ This is probably caused by a link to a blacklisted external site.',
 'spambot_username'    => 'MediaWiki spam cleanup',
 'spam_reverting'      => 'Reverting to last revision not containing links to $1',
 'spam_blanking'       => 'All revisions contained links to $1, blanking',
+'spam_deleting'       => 'All revisions contained links to $1, deleting',
 
 # Info page
 'pageinfo-title'            => 'Information for "$1"',
index 8830e71..c5e3988 100644 (file)
@@ -3105,6 +3105,7 @@ Esto podría estar causado por un enlace a un sitio externo incluido en la lista
 'spambot_username' => 'Limpieza de spam de MediaWiki',
 'spam_reverting' => 'Revirtiendo a la última versión que no contenga enlaces a $1',
 'spam_blanking' => 'Todas las revisiones contienen enlaces a $1, blanqueando',
+'spam_deleting' => 'Todas las revisiones que contienen enlaces a $1, en proceso de eliminación',
 
 # Info page
 'pageinfo-title' => 'Información para «$1»',
index 966c58e..0d92e6e 100644 (file)
@@ -2101,7 +2101,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'linkstoimage-more' => 'بیش از $1 صفحه به این پرونده پیوند {{PLURAL:$1|دارد|دارند}}.
 فهرست زیر تنها {{PLURAL:$1|اولین پیوند|اولین $1 پیوند}} به این صفحه را نشان می‌دهد.
 [[Special:WhatLinksHere/$2|فهرست کامل]] نیز موجود است.',
-'nolinkstoimage' => 'هیچ صفحه‌ای به این تصویر پیوند ندارد.',
+'nolinkstoimage' => 'این پرونده در هیچ صفحه‌ای به کار نرفته‌است.',
 'morelinkstoimage' => '[[Special:WhatLinksHere/$1|پیوندهای دیگر]] به این پرونده را ببینید.',
 'linkstoimage-redirect' => '$1 (تغییرمسیر پرونده) $2',
 'duplicatesoffile' => '{{PLURAL:$1|پروندهٔ|پرونده‌های}} زیر نسخهٔ تکراری این پرونده {{PLURAL:$1|است|هستند}} ([[Special:FileDuplicateSearch/$2|اطلاعات بیشتر]]):',
index 326fb17..17f26f0 100644 (file)
@@ -1298,7 +1298,7 @@ Kokeile lisätä haun alkuun ''all:'', niin haku kohdistuu kaikkeen sisältöön
 'powersearch-field' => 'Etsi',
 'powersearch-togglelabel' => 'Muuta valinta',
 'powersearch-toggleall' => 'Valitse kaikki',
-'powersearch-togglenone' => 'Poista kaikki',
+'powersearch-togglenone' => 'Valitse ei mitään',
 'search-external' => 'Ulkoinen haku',
 'searchdisabled' => 'Tekstihaku on poistettu toistaiseksi käytöstä suuren kuorman vuoksi. Voit käyttää alla olevaa Googlen hakukenttää sivujen etsimiseen, kunnes haku tulee taas käyttöön. <small>Huomaa, että ulkopuoliset kopiot {{GRAMMAR:genitive|{{SITENAME}}}} sisällöstä eivät välttämättä ole ajan tasalla.</small>',
 
index 03eab96..6aefb8e 100644 (file)
@@ -500,7 +500,7 @@ $messages = array(
 'cancel' => 'Annuler',
 'moredotdotdot' => 'Plus...',
 'mypage' => 'Ma page',
-'mytalk' => 'Ma page de discussion',
+'mytalk' => 'Page de discussion',
 'anontalk' => 'Discussion avec cette adresse IP',
 'navigation' => 'Navigation',
 'and' => '&#32;et',
@@ -3114,6 +3114,7 @@ Permet de rétablir la version précédente et d’ajouter un motif dans la boî
 'spambot_username' => 'Nettoyage de pourriels par MediaWiki',
 'spam_reverting' => 'Rétablissement de la dernière version ne contenant pas de lien vers $1',
 'spam_blanking' => 'Toutes les versions contenant des liens vers $1 sont blanchies',
+'spam_deleting' => 'Toutes les versions contenaient des liens vers $1, suppression',
 
 # Info page
 'pageinfo-title' => 'Informations pour « $1 »',
index 04cdc33..9225c36 100644 (file)
@@ -2848,7 +2848,7 @@ Gárdeo no seu disco duro e cárgueo aquí.',
 'importunknownsource' => 'Fonte de importación descoñecida',
 'importcantopen' => 'Non se pode abrir o ficheiro importado',
 'importbadinterwiki' => 'Ligazón interwiki incorrecta',
-'importnotext' => 'Texto baleiro ou inexistente',
+'importnotext' => 'Baleiro ou sen texto',
 'importsuccess' => 'A importación rematou!',
 'importhistoryconflict' => 'Existe un conflito no historial de revisións (por ter importado esta páxina antes)',
 'importnosources' => 'Non se defininiu ningunha fonte de importación transwiki e os envíos directos dos historiais están desactivados.',
@@ -2858,8 +2858,8 @@ Gárdeo no seu disco duro e cárgueo aquí.',
 'importuploaderrortemp' => 'Fallou o envío do ficheiro de importación. Falta un cartafol temporal.',
 'import-parse-failure' => 'Fallo de análise da importación de XML',
 'import-noarticle' => 'Ningunha páxina para importar!',
-'import-nonewrevisions' => 'Todas as revisións son previamente importadas.',
-'xml-error-string' => '$1 na liña $2, col $3 (byte $4): $5',
+'import-nonewrevisions' => 'Todas as revisións foron importadas previamente.',
+'xml-error-string' => '$1 na liña $2, columna $3 (byte $4): $5',
 'import-upload' => 'Cargar datos XML',
 'import-token-mismatch' => 'Perdéronse os datos da sesión. Por favor, inténteo de novo.',
 'import-invalid-interwiki' => 'Non se pode importar desde o wiki escificado.',
@@ -3014,8 +3014,9 @@ Pode ver o código fonte.',
 Isto, probabelmente, se debe a unha ligazón cara a un sitio externo que está na lista negra.',
 'spamprotectionmatch' => 'O seguinte texto foi o que activou o noso filtro de spam: $1',
 'spambot_username' => 'Limpeza de spam de MediaWiki',
-'spam_reverting' => 'Revertida á última edición sen ligazóns a $1',
+'spam_reverting' => 'Revertida á última edición sen ligazóns a "$1"',
 'spam_blanking' => 'Limpáronse todas as revisións con ligazóns a "$1"',
+'spam_deleting' => 'Borráronse todas as revisións con ligazóns a "$1"',
 
 # Info page
 'pageinfo-title' => 'Información sobre "$1"',
index 7a564ab..5733ff5 100644 (file)
@@ -31,6 +31,9 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Ñemohenda_myangekõi',
 );
 
+// Remove Spanish gender aliases (bug 37090)
+$namespaceGenderAliases = array();
+
 $messages = array(
 # User preference toggles
 'tog-underline'       => 'Haiguy joajuha',
index f89ccfa..f6d58d5 100644 (file)
@@ -1662,7 +1662,7 @@ $1',
 'upload-too-many-redirects' => 'URLમાં ઘણાં ઉપ નિર્દેશનો છે.',
 'upload-unknown-size' => 'અજ્ઞાત કદ',
 'upload-http-error' => ' HTTP ત્રુટિ : $1',
-'upload-copy-upload-invalid-domain' => 'આ વેબસાઇટ પર થી ફાયલ નહી ચડાવાય',
+'upload-copy-upload-invalid-domain' => 'આ વેબસાઇટ પરથી ફાઈલ નહીં ચડાવાય.',
 
 # File backend
 'backend-fail-stream' => 'ફાઈલ $1 ને લાવી ન શકાઈ.',
@@ -1680,7 +1680,7 @@ $1',
 'backend-fail-writetemp' => 'હંગામી ફાઇલમાં લખી ન શકાયું.',
 'backend-fail-closetemp' => 'હંગામી ફાઇલ બંધ ન કરી શકાઇ',
 'backend-fail-read' => 'ફાઈલ $1 ને વાંચી ન શકાઈ.',
-'backend-fail-create' => 'ફાàª\88લ $1 àª¨à«\87 àª¬àª¨àª¾àªµà«\80 àª¶àª\95ાàª\88.',
+'backend-fail-create' => 'ફાàª\88લ $1 àª²àª\96à«\80 àª¶àª\95ાàª\88 àª¨àª¹à«\80àª\82.',
 'backend-fail-readonly' => 'સંગ્રહ પાર્શ્વભૂમિ  "$1" એ હાલમાં માત્ર વાંચન સક્ષમ છે. તેનું કારણ આપવામાં આવ્યું હતું: "$2"',
 'backend-fail-synced' => 'ફાઈલ "$1"  અંતરિક સ્ટોરેજ બેકઍંડ માં એક અસંગત સ્થિતિમાં છે',
 'backend-fail-connect' => 'સંગ્રહ પૃષ્ઠભૂમિ "$1" સાથે સંપર્ક સ્થાપી ના શકાયો.',
@@ -1897,7 +1897,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 તેના કરતા તેને યોગ્ય તે વિષ્ય સાથે જોડાયેલા હોવા જોઇએ.<br />
 આ પાનાને સંદિગ્ધ  વાક્યો વાળા પાના ત્યારે કહી શકાય જ્યારે તે [[MediaWiki:Disambiguationspage]] નામના ઢાંચા સાથે જોડાયેલા હોય.",
 
-'doubleredirects' => 'બનણà«\81àª\82 àª¦àª¿àª¶àª¾àª¨àª¿àª°à«\8dદà«\87શિત',
+'doubleredirects' => 'બમણà«\81àª\82 àª¦àª¿àª¶àª¾àª¨àª¿àª°à«\8dદà«\87શન',
 'doubleredirectstext' => 'આ પાનું દિશા નિર્દેશિત પાના પર થયેલા દિશા નિર્દેશિત પાનાની યાદિ બતાવે છે.
 દરેક લિટીમાં પાના પ્રથમ અને દ્વીતીય દિશા નિર્દેશન ક્ડી બતાવે છે, તે સિવાય દ્વીતીય દિશા નિર્દેશનનું લક્ષ્ય પણ બતાવે છે કે મોટે ભાગે મૂળ પાનું હોઇ શકે છેૢ જેના પર પ્રથમ દિશા નિર્દેશન લક્ષિત છે. <del>Crossed out</del> લિટીઓ  નો ઉત્તર મેળવાયો છે.',
 'double-redirect-fixed-move' => '[[$1]] હટાવી દેવાયું છે.
@@ -2002,6 +2002,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 તમે લોગનો પ્રકાર,સભ્ય નામ અથવા અસરગ્રસ્ત પાના આદિ પસંદ કરી તમારી યાદિ ટૂંકાવી શકો.',
 'logempty' => 'લોગમાં આને મળતી કોઇ વસ્તુ નથી',
 'log-title-wildcard' => 'આ શબ્દો દ્વારા શરૂ થનાર શીર્ષકો શોધો',
+'showhideselectedlogentries' => 'પસંદગીની લોગ નોંધણીઓ બતાવો/છૂપાવો',
 
 # Special:AllPages
 'allpages' => 'બધા પાના',
@@ -2020,6 +2021,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'allpagesbadtitle' => 'આપનું ઈચ્છિત શીર્ષક અમાન્ય છે, ખાલી છે, અથવાતો અયોગ્ય રીતે આંતર-ભાષિય કે આંતર-વિકિ સાથે જોડાયેલું શીર્ષક છે.
 શક્ય છે કે તેમાં એક કે વધુ એવા અક્ષર કે ચિહ્નો છે કે જે પાનાનાં શીર્ષક માટે અવૈધ છે.',
 'allpages-bad-ns' => '{{SITENAME}} ને નામસ્થળ  "$1" નથી.',
+'allpages-hide-redirects' => 'અન્યત્ર વાળેલાં પાનાંઓ છૂપાવો',
+
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'આધૂનિક બતાવો.',
 
 # Special:Categories
 'categories' => 'શ્રેણીઓ',
@@ -2047,17 +2052,17 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'linksearch-error' => 'યજમાન નામની શરૂઆતમાં જ વાઈલ્ડકાર્ડ પ્રકટ થશે',
 
 # Special:ListUsers
-'listusersfrom' => 'àª\85હà«\80àª\82થà«\80 àª¸àª­à«\8dયà«\8b àª¬àª¤àª¾àªµà«\8b',
+'listusersfrom' => 'àª\86નાથà«\80 àª¶àª°à«\82 àª¥àª¤àª¾ àª¸àª­à«\8dયà«\8b àª¦àª°à«\8dશાવà«\8b:',
 'listusers-submit' => 'બતાવો',
 'listusers-noresult' => 'કોઇ સભ્ય ન મળ્યો',
 'listusers-blocked' => '(પ્રતિબંધિત)',
 
 # Special:ActiveUsers
-'activeusers' => 'સàª\95à«\8dરà«\80યા àª¸àª­à«\8dય àª\9bà«\81પાવà«\8b',
-'activeusers-intro' => 'àª\9bà«\87લà«\8dલા  $1 {{PLURAL:$1|દિવસ|દિવસà«\8b}}માàª\82 àª\9cà«\87 àª¸àª­à«\8dયà«\8bàª\8f àª\95à«\8bàª\87àª\95 àª¯à«\8bàª\97દાન àª\95રà«\8dયà«\81àª\82 àª¹à«\8bય àª¤à«\87મનà«\80 àª¯àª¾àª¦àª¿.',
+'activeusers' => 'સàª\95à«\8dરિય àª¸àª­à«\8dયà«\8bનà«\80 àª¯àª¾àª¦à«\80',
+'activeusers-intro' => 'àª\9bà«\87લà«\8dલા  $1 {{PLURAL:$1|દિવસ|દિવસà«\8b}}માàª\82 àª\9cà«\87 àª¸àª­à«\8dયà«\8bàª\8f àª\95àª\82àª\88àª\95 àª¯à«\8bàª\97દાન àª\95રà«\8dયà«\81àª\82 àª¹à«\8bય àª¤à«\87મનà«\80 àª¯àª¾àª¦à«\80.',
 'activeusers-count' => '$1 {{PLURAL:$1|ફેરફાર|ફેરફારો}} છેલ્લા {{PLURAL:$3|દિવસ |$3 દિવસો }}માં',
 'activeusers-from' => 'આનાથી શરૂ થતા સભ્યો દર્શાવો:',
-'activeusers-hidebots' => 'બà«\8bàª\9fનà«\87 àª¸àª\82તાડો',
+'activeusers-hidebots' => 'બà«\8bàª\9fનà«\87 àª\9bà«\81પાવો',
 'activeusers-hidesysops' => 'પ્રબંધકો છુપાવો',
 'activeusers-noresult' => 'કોઇ સક્રીય સભ્ય ન મળ્યો',
 
@@ -2140,7 +2145,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'notvisiblerev' => 'અન્ય સભ્ય દ્વારા થયેલું સંપાદન ભૂંસી નખાયું છે.',
 'watchnochange' => 'તમારા દ્વારા નિરીક્ષિત પાના આપેલ સમય ગાળામાં ફેરફારીત થયા',
 'watchlist-details' => 'ચર્ચાનાં પાનાં ન ગણતા {{PLURAL:$1|$1 પાનું|$1 પાનાં}} ધ્યાનસૂચીમાં છે.',
-'wlheader-enotif' => '*ઈ-મેલા સૂચના પદ્ધતિ સક્રીય કરાઈ',
+'wlheader-enotif' => '*ઈ-મેલ સૂચના પદ્ધતિ સક્રીય કરાઈ.',
 'wlheader-showupdated' => "*તમારી મુલાકાત લીધા પછી બદલાયેલા પાના  '''ઘાટા''' અક્ષરો વડે દર્શાવ્યાં છે",
 'watchmethod-recent' => 'હાલમાં ફેરફાર થયેલ પાનાની ચકાસણી જારી',
 'watchmethod-list' => 'હાલમાં થયેલ ફેરફાર માટે નીરીક્ષીત પાના તપાસાય છે',
index d37e186..722984f 100644 (file)
@@ -3131,6 +3131,7 @@ $1',
 'spambot_username' => 'מנקה הספאם של מדיה ויקי',
 'spam_reverting' => 'שחזור לגרסה אחרונה שלא כוללת קישורים ל־$1',
 'spam_blanking' => 'כל הגרסאות כוללות קישורים ל־$1, מרוקן את הדף',
+'spam_deleting' => 'כל הגרסאות כוללות קישורים ל־$1, מוחק את הדף',
 
 # Info page
 'pageinfo-title' => 'מידע על "$1"',
index b0e91bd..a0ec89e 100644 (file)
@@ -2811,7 +2811,8 @@ W poslednim padźe móžeš tež wotkaz wužiwać, na př. „[[{{#Special:Expor
 'spamprotectionmatch' => 'Sćěhowacy tekst je naš spamowy filter wotpokazał: $1',
 'spambot_username' => 'MediaWiki čisćenje wot spama',
 'spam_reverting' => 'wróćo na poslednju wersiju, kotraž wotkazy na $1 njewobsahuje',
-'spam_blanking' => 'Wšě wersije wobsahowachu wotkazy na $1, wučisćene.',
+'spam_blanking' => 'Wšě wersije z wotkazami do $1 so porjedźeja',
+'spam_deleting' => 'Wšě wersije z wotkazami do $1 so zhašeja',
 
 # Info page
 'pageinfo-title' => 'Informacije za stronu "$1"',
index 7606aca..c507c68 100644 (file)
@@ -1472,7 +1472,7 @@ A műveletet nem lehet visszavonni.',
 # Groups
 'group' => 'Csoport:',
 'group-user' => 'szerkesztők',
-'group-autoconfirmed' => 'automatikusan megerősített felhasználók',
+'group-autoconfirmed' => 'automatikusan megerősített szerkesztők',
 'group-bot' => 'botok',
 'group-sysop' => 'adminisztrátorok',
 'group-bureaucrat' => 'bürokraták',
@@ -1487,7 +1487,7 @@ A műveletet nem lehet visszavonni.',
 'group-suppress-member' => '{{GENDER:$1|adatvédelmi biztos}}',
 
 'grouppage-user' => '{{ns:project}}:Felhasználók',
-'grouppage-autoconfirmed' => '{{ns:project}}:Automatikusan megerősített felhasználók',
+'grouppage-autoconfirmed' => '{{ns:project}}:Munkatársak#Automatikusan megerősített szerkesztők',
 'grouppage-bot' => '{{ns:project}}:Botok',
 'grouppage-sysop' => '{{ns:project}}:Adminisztrátorok',
 'grouppage-bureaucrat' => '{{ns:project}}:Bürokraták',
index 34ed3ba..e1a7633 100644 (file)
@@ -2965,7 +2965,8 @@ Le causa es probabilemente un ligamine verso un sito externe que es presente in
 'spamprotectionmatch' => 'Le sequente texto es lo que activava nostre filtro antispam: $1',
 'spambot_username' => 'Nettamento de spam in MediaWiki',
 'spam_reverting' => 'Revertite al ultime version que non contine ligamines a $1',
-'spam_blanking' => 'Tote le versiones contineva ligamines a $1. Le pagina ha essite vacuate.',
+'spam_blanking' => 'Tote le versiones contineva ligamines a $1. Le pagina es vacuate.',
+'spam_deleting' => 'Tote le versiones contineva ligamines a $1. Le pagina es delite.',
 
 # Info page
 'pageinfo-title' => 'Informationes pro "$1"',
index ef9bf95..7394dda 100644 (file)
@@ -2154,6 +2154,7 @@ Harap perhatikan bahwa situs web lain mungkin memiliki pranala ke suatu berkas d
 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',
+'showhideselectedlogentries' => 'Tampilkan/sembunyikan entri log terpilih',
 
 # Special:AllPages
 'allpages' => 'Semua halaman',
@@ -3033,6 +3034,7 @@ Ini mungkin disebabkan oleh pranala ke situs luar yang termasuk dalam daftar hit
 'spambot_username' => 'Pembersihan span MediaWiki',
 'spam_reverting' => 'Mengembalikan ke versi terakhir yang tak memiliki pranala ke $1',
 'spam_blanking' => 'Semua revisi yang memiliki pranala ke $1, pengosongan',
+'spam_deleting' => 'Semua revisi yang memiliki pranala ke $1, penghapusan',
 
 # Info page
 'pageinfo-title' => 'Informasi untuk "$1"',
index 5add4fb..165fd07 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Icelandic (Ã\8dslenska)
+/** Icelandic (íslenska)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -2375,7 +2375,7 @@ $1',
 # Namespace form on various pages
 'namespace' => 'Nafnrými:',
 'invert' => 'allt nema valið',
-'tooltip-invert' => 'Hakaðu við þennan kassa til að fela breytingar á síðum innan við ákveðið nafnrými',
+'tooltip-invert' => 'Hakaðu við þennan kassa til að fela breytingar á síðum innan ákveðins nafnrýmis',
 'namespace_association' => 'Tengd nafnrými',
 'tooltip-namespace_association' => 'Hakaðu við þennan kassa til að hafa með spjallsíður eða tengd nafnrými.',
 'blanknamespace' => '(Aðalnafnrýmið)',
@@ -3653,7 +3653,7 @@ Ef ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemd
 'api-error-filename-tooshort' => 'Skráarnafnið er of stutt',
 'api-error-filetype-banned' => 'Þessi gerð skráar er bönnuð.',
 'api-error-filetype-missing' => 'Skráin hefur enga skráarendingu.',
-'api-error-hookaborted' => 'Hætt var við breytinguna sem þú reyndir að gera af viðbótar haka.',
+'api-error-hookaborted' => 'Hætt var við breytinguna sem þú reyndir að gera með viðbót.',
 'api-error-http' => 'Innri villa: Get ekki tengst vefþjón.',
 'api-error-illegal-filename' => 'Þetta skráarnafn er ekki leyft.',
 'api-error-internal-error' => 'Innri villa: Mistókst að vinna úr upphali þínu.',
index b3ffd66..b6a7c2c 100644 (file)
@@ -2387,7 +2387,7 @@ Le impostazioni correnti per la pagina sono '''$1''':",
 'undeletepagetitle' => "'''Quanto segue è composto da revisioni cancellate di [[:$1|$1]]'''.",
 'viewdeletedpage' => 'Visualizza le pagine cancellate',
 'undeletepagetext' => "{{PLURAL:$1|La pagina indicata di seguito è stata cancellata, ma è ancora in archivio e pertanto può essere recuperata|Le pagine indicate di seguito sono state cancellate, ma sono ancora in archivio e pertanto possono essere recuperate}}. L'archivio può essere svuotato periodicamente.",
-'undelete-fieldset-title' => 'Recupera revisioni',
+'undelete-fieldset-title' => 'Ripristina versioni',
 'undeleteextrahelp' => "Per recuperare l'intera cronologia della pagina, lasciare tutte le caselle deselezionate e fare clic su '''''{{int:undeletebtn}}'''''.
 Per effettuare un ripristino selettivo, selezionare le caselle corrispondenti alle revisioni da ripristinare e fare clic su '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '{{PLURAL:$1|Una revisione|$1 revisioni}} in archivio',
@@ -2951,6 +2951,7 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 'spambot_username' => 'MediaWiki - sistema di rimozione spam',
 'spam_reverting' => "Ripristinata l'ultima versione priva di collegamenti a $1",
 'spam_blanking' => 'Pagina svuotata, tutte le versioni contenevano collegamenti a $1',
+'spam_deleting' => 'Pagina cancellata, tutte le versioni contenevano collegamenti a $1',
 
 # Info page
 'pageinfo-title' => 'Informazioni per "$1"',
@@ -3656,7 +3657,7 @@ Si noti che è anche possibile [[Special:EditWatchlist|modificare la lista con l
 
 MediaWiki è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di NEGOZIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. Si veda la GNU General Public License per maggiori dettagli.
 
-Questo programma deve essere distribuito assieme ad [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia della GNU General Public License]; in caso contrario, se ne può ottenere una scrivendo alla Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA oppure [//www.softwarelibero.it/gnudoc/gpl.it.txt leggerla in rete].',
+Questo programma deve essere distribuito assieme ad [{{SERVER}}{{SCRIPTPATH}}/COPYING una copia della GNU General Public License]; in caso contrario, se ne può ottenere una scrivendo alla Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA oppure [http://www.softwarelibero.it/gnudoc/gpl.it.txt leggerla in rete].',
 'version-software' => 'Software installato',
 'version-software-product' => 'Prodotto',
 'version-software-version' => 'Versione',
index 8b2a8cd..9da7ef5 100644 (file)
@@ -478,10 +478,10 @@ $messages = array(
 'category_header' => 'カテゴリ「$1」にあるページ',
 'subcategories' => '下位カテゴリ',
 'category-media-header' => 'カテゴリ「$1」にあるメディア',
-'category-empty' => "''ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\81«ã\81¯ç\8f¾å\9c¨ã\80\81ã\83\9aã\83¼ã\82¸ã\81¨ã\83¡ã\83\87ã\82£ã\82¢ã\81\8cã\81²ã\81¨ã\81¤もありません。''",
+'category-empty' => "''ã\81\93ã\81®ã\82«ã\83\86ã\82´ã\83ªã\81«ã\81¯ç\8f¾å\9c¨ã\80\81ã\83\9aã\83¼ã\82¸ã\82\84ã\83¡ã\83\87ã\82£ã\82¢ã\81\8cä½\95もありません。''",
 'hidden-categories' => '{{PLURAL:$1|隠しカテゴリ}}',
 'hidden-category-category' => '隠しカテゴリ',
-'category-subcat-count' => '{{PLURAL:$2|このカテゴリには以下の下位カテゴリのみが含まれています。|このカテゴリには $2 下位カテゴリが含まれており、そのうち以下の{{PLURAL:$1|下位カテゴリ|&#32;$1 下位カテゴリ}}を表示しています。}}',
+'category-subcat-count' => '{{PLURAL:$2|このカテゴリには以下の下位カテゴリのみが含まれています。|このカテゴリには $2 下位カテゴリが含まれており、そのうち以下の {{PLURAL:$1|$1 下位カテゴリ}}を表示しています。}}',
 'category-subcat-count-limited' => 'このカテゴリには以下の{{PLURAL:$1|下位カテゴリ|&#32;$1 下位カテゴリ}}が含まれています。',
 'category-article-count' => '{{PLURAL:$2|このカテゴリには以下のページのみが含まれています。|このカテゴリには $2 ページが含まれており、そのうち以下の {{PLURAL:$1|$1 ページ}}を表示しています。}}',
 'category-article-count-limited' => '現在のカテゴリには以下の{{PLURAL:$1|ページ|&#32;$1 ページ}}が含まれています。',
@@ -553,7 +553,7 @@ $messages = array(
 'delete' => '削除',
 'deletethispage' => 'このページを削除',
 'undelete_short' => '{{PLURAL:$1|$1 版}}を復帰',
-'viewdeleted_short' => '削除された$1件の編集を閲覧',
+'viewdeleted_short' => '{{PLURAL:$1|削除された $1 件の編集}}を閲覧',
 'protect' => '保護',
 'protect_change' => '設定変更',
 'protectthispage' => 'このページを保護',
@@ -586,7 +586,7 @@ $messages = array(
 'jumpto' => '移動:',
 'jumptonavigation' => '案内',
 'jumptosearch' => '検索',
-'view-pool-error' => '申し訳ありません、現在サーバーに過大な負荷がかかっています。
+'view-pool-error' => 'ç\94³ã\81\97訳ã\81\82ã\82\8aã\81¾ã\81\9bã\82\93ã\81\8cã\80\81ç\8f¾å\9c¨ã\82µã\83¼ã\83\90ã\83¼ã\81«é\81\8e大ã\81ªè² è\8d·ã\81\8cã\81\8bã\81\8bã\81£ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82
 このページを閲覧しようとする利用者が多すぎます。
 しばらく時間を置いてから、もう一度このページにアクセスしてみてください。
 
@@ -642,10 +642,10 @@ $1',
 'collapsible-expand' => '展開する',
 'thisisdeleted' => '$1を閲覧または復帰しますか?',
 'viewdeleted' => '$1を閲覧しますか?',
-'restorelink' => '削除された$1編集',
+'restorelink' => '{{PLURAL:$1|削除された $1 編集}}',
 'feedlinks' => 'フィード:',
-'feed-invalid' => 'フィード形式の指定が間違っています。',
-'feed-unavailable' => 'ã\83\95ã\82£ã\83¼ã\83\89ã\81®é\85\8dä¿¡ã\81«å¯¾å¿\9cã\81\97ã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\80\82',
+'feed-invalid' => 'フィード形式の指定が正しくありません。',
+'feed-unavailable' => 'ã\83\95ã\82£ã\83¼ã\83\89ã\81®é\85\8dä¿¡ã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81¾ã\81\9bã\82\93',
 'site-rss-feed' => '$1のRSSフィード',
 'site-atom-feed' => '$1のAtomフィード',
 'page-rss-feed' => '「$1」のRSSフィード',
@@ -679,17 +679,17 @@ URL を間違って入力したか、正しくないリンクをたどった可
 # General errors
 'error' => 'エラー',
 'databaseerror' => 'データベース エラー',
-'dberrortext' => 'データベースクエリの構文エラーが発生しました。
+'dberrortext' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82¯ã\82¨ã\83ªã\83¼ã\81®æ§\8bæ\96\87ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81¾ã\81\97ã\81\9fã\80\82
 ソフトウェアにバグがある可能性があります。
\9c\80å¾\8cã\81«å®\9fè¡\8cã\82\92試ã\81¿ã\81\9fã\82¯ã\82¨ã\83ªã\81¯æ¬¡ã\81®é\80\9aã\82\8aã\81§ã\81\99
-関数「<tt>$2</tt>」内
-<blockquote><tt>$1</tt></blockquote>
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cè¿\94ã\81\97ã\81\9fã\82¨ã\83©ã\83¼ã\80\8c<tt>$3ï¼\9a$4</tt>ã\80\8d',
-'dberrortextcl' => 'データベース クエリの構文エラーが発生しました。
\9c\80å¾\8cã\81«å®\9fè¡\8cã\82\92試ã\81¿ã\81\9fã\82¯ã\82¨ã\83ªã\81¯ä»¥ä¸\8bã\81®é\80\9aã\82\8aã\81§ã\81\99
-関数「$2」内から
-"$1"
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cè¿\94ã\81\97ã\81\9fã\82¨ã\83©ã\83¼ã\80\8c$3ï¼\9a$4ã\80\8d',
\9c\80å¾\8cã\81«å®\9fè¡\8cã\82\92試ã\81¿ã\81\9fã\82¯ã\82¨ã\83ªã\83¼
+<blockquote><tt>$1</tt></blockquote>
+(関数「<tt>$2</tt>」内)
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¯ã\82¨ã\83©ã\83¼ã\80\8c<tt>$3ï¼\9a$4</tt>ã\80\8dã\82\92è¿\94ã\81\97ã\81¾ã\81\97ã\81\9fã\80\82',
+'dberrortextcl' => 'データベースクエリーの構文エラーが発生しました。
\9c\80å¾\8cã\81«å®\9fè¡\8cã\82\92試ã\81¿ã\81\9fã\82¯ã\82¨ã\83ªã\83¼
+「$1」
+(関数「$2」内)。
\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¯ã\82¨ã\83©ã\83¼ã\80\8c$3ï¼\9a$4ã\80\8dã\82\92è¿\94ã\81\97ã\81¾ã\81\97ã\81\9f',
 'laggedslavemode' => "'''警告:'''ページに最新の編集が反映されていない可能性があります。",
 'readonly' => 'データベースがロックされています',
 'enterlockreason' => 'ロックの理由とロック解除の予定を入力してください',
@@ -698,7 +698,7 @@ URL を間違って入力したか、正しくないリンクをたどった可
 データベースをロックした管理者による説明は以下の通りです:$1',
 'missing-article' => '求められたページ「$1」$2 の本文がデータベース内で見つかりませんでした。
 
-通常、削除されたページの版への古い差分表示や固定リンクをたどった時に、このようなことが起こります。
+通常、削除されたページの版への古い差分表示や固定リンクをたどった際に、このようなことが起きます。
 
 それ以外の操作でこのメッセージが表示された場合、ソフトウェアのバグである可能性があります。
 [[Special:ListUsers/sysop|管理者]]までそのURLを添えてお知らせください。',
@@ -714,9 +714,9 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'filedeleteerror' => 'ファイル「$1」を削除できませんでした。',
 'directorycreateerror' => 'ディレクトリー「$1」を作成できませんでした。',
 'filenotfound' => 'ファイル「$1」が見つかりませんでした。',
-'fileexistserror' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cã\81§ã\81\8dã\81¾ã\81\9bã\82\93ï¼\9aã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå­\98å\9c¨ã\81\97ã\81¾ã\81\99',
+'fileexistserror' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81¸ã\81®æ\9b¸ã\81\8dè¾¼ã\81¿ã\81«å¤±æ\95\97ï¼\9aã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå­\98å\9c¨ã\81\97ã\81¾ã\81\99ã\80\82',
 'unexpected' => '予期しない値「$1」=「$2」です。',
-'formerror' => 'エラー:フォームを送信できませんでした',
+'formerror' => 'エラー:フォームを送信できませんでした',
 'badarticleerror' => 'このページでは要求された操作を行えません。',
 'cannotdelete' => 'ページまたはファイル「$1」を削除できませんでした。
 他の人が既に削除した可能性があります。',
@@ -728,9 +728,9 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'perfcachedts' => '以下のデータはキャッシュされており、最終更新日時は $1 です。最大 $4 {{PLURAL:$4|件の結果}}がキャッシュされます。',
 'querypage-no-updates' => 'ページの更新は無効になっています。
 以下のデータの更新は現在行われていません。',
-'wrong_wfQuery_params' => 'wfQuery()に誤ったパラメーターが渡されました。<br />
+'wrong_wfQuery_params' => 'wfQuery()に正しくないパラメーターが渡されました<br />
 関数:$1<br />
-クエリ:$2',
+クエリ:$2',
 'viewsource' => 'ソースを表示',
 'viewsource-title' => '$1のソースを表示',
 'actionthrottled' => '操作が速度規制されました',
@@ -743,7 +743,7 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'editinginterface' => "'''警告:'''ソフトウェアのインターフェイスの文章として使用しているページを編集しています。
 このページの変更は他の利用者のユーザーインターフェイスの外観に影響します。
 翻訳する場合、MediaWiki のローカライズプロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] の使用を検討してください。",
-'sqlhidden' => '(SQLクエリ非表示)',
+'sqlhidden' => '(SQLクエリ非表示)',
 'cascadeprotected' => 'このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}で読み込まれているため、編集できないように保護されています:
 $2',
 'namespaceprotected' => "'''$1'''名前空間にあるページを編集する権限がありません。",
@@ -778,7 +778,7 @@ $2',
 'externaldberror' => '外部の認証データベースでエラーが発生したか、または外部アカウント情報の更新が許可されていません。',
 'login' => 'ログイン',
 'nav-login-createaccount' => 'ログインまたはアカウント作成',
-'loginprompt' => '{{SITENAME}}にログインするにはクッキーを有効にする必要があります。',
+'loginprompt' => '{{SITENAME}}にログインするにはCookieを有効にする必要があります。',
 'userlogin' => 'ログインまたはアカウント作成',
 'userloginnocreate' => 'ログイン',
 'logout' => 'ログアウト',
@@ -789,7 +789,7 @@ $2',
 'createaccount' => 'アカウント作成',
 'gotaccount' => '既にアカウントを持っている場合、$1。',
 'gotaccountlink' => 'ログインしてください',
-'userlogin-resetlink' => 'ログイン情報をå¿\98ã\82\8cã\81\9f',
+'userlogin-resetlink' => 'ログイン情報をã\81\8aå¿\98ã\82\8cã\81§ã\81\99ã\81\8bï¼\9f',
 'createaccountmail' => 'メールで送信',
 'createaccountreason' => '理由:',
 'badretype' => '入力したパスワードが一致しません。',
@@ -797,15 +797,15 @@ $2',
 他の名前を選んでください。',
 'loginerror' => 'ログインのエラー',
 'createaccounterror' => 'アカウントを作成できませんでした: $1',
-'nocookiesnew' => 'å\88©ç\94¨è\80\85ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81\8cä½\9cæ\88\90ã\81\95ã\82\8cましたが、ログインしていません。
-{{SITENAME}}ではログインにクッキーを使用します。
-クッキーが無効になっているようです。
-クッキーを有効にしてから、新しい利用者名とパスワードでログインしてください。',
-'nocookieslogin' => '{{SITENAME}}ではログインにクッキーを使用します。
-クッキーが無効になっているようです。
-クッキーを有効にして、もう一度試してください。',
+'nocookiesnew' => 'å\88©ç\94¨è\80\85ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\97ましたが、ログインしていません。
+{{SITENAME}}ではログインにCookieを使用します。
+Cookieを無効にしているようです。
+Cookieを有効にしてから、新しい利用者名とパスワードでログインしてください。',
+'nocookieslogin' => '{{SITENAME}}ではログインにCookieを使用します。
+Cookieを無効にしているようです。
+Cookieを有効にしてから、もう一度試してください。',
 'nocookiesfornew' => '発信元を確認できなかったため、アカウントは作成されませんでした。
-クッキーが有効になっていることを確認して、このページを再読込してもう一度試してください。',
+Cookieを有効にしていることを確認して、このページを再読込してもう一度試してください。',
 'noname' => '利用者名を正しく指定していません。',
 'loginsuccesstitle' => 'ログイン成功',
 'loginsuccess' => "'''{{SITENAME}}に「$1」としてログインしました。'''",
@@ -821,7 +821,7 @@ $2',
 'wrongpasswordempty' => 'パスワードを空欄にはできません。
 もう一度やり直してください。',
 'passwordtooshort' => 'パスワードは {{PLURAL:$1|$1 文字}}以上にしてください。',
-'password-name-match' => 'パスワードは利用者名と同じであってはいけません。',
+'password-name-match' => 'パスワードは利用者名とは異なる必要があります。',
 'password-login-forbidden' => 'この利用者名とパスワードの使用は禁止されています。',
 'mailmypassword' => '新しいパスワードをメールで送信',
 'passwordremindertitle' => '{{SITENAME}}の仮パスワード通知',
@@ -836,7 +836,7 @@ $2',
 'noemailcreate' => '有効なメールアドレスを入力する必要があります',
 'passwordsent' => '新しいパスワードを「$1」に登録されたメールアドレスに送信しました。
 メールを受け取ったら、再度ログインしてください。',
-'blocked-mailpassword' => '使用しているIPアドレスからの編集はブロックされており、不正利用防止のため、パスワードの再発行機能は使用できません。',
+'blocked-mailpassword' => 'ご使用中のIPアドレスからの編集はブロックされており、不正利用防止のため、パスワードの再発行機能は使用できません。',
 'eauthentsent' => '指定されたメールアドレスにアドレス確認のためのメールを送信しました。
 その他のメールがこのアカウント宛に送信される前に、メールの指示に従って、このアカウントが本当にあなたのものか確認してください。',
 'throttled-mailpassword' => '新しいパスワードは過去 {{PLURAL:$1|$1 時間}}に送信済みです。
@@ -844,7 +844,7 @@ $2',
 'mailerror' => 'メールの送信中にエラーが発生しました:$1',
 'acct_creation_throttle_hit' => 'あなたと同じ IP アドレスでこのウィキに訪れた人が、最近 24 時間で {{PLURAL:$1|$1 アカウント}}を作成しており、これはこの期間で作成が許可されている最大数です。
 そのため、現在この IP アドレスではアカウントをこれ以上作成できません。',
-'emailauthenticated' => 'メールアドレスは$2 $3に認証されています。',
+'emailauthenticated' => 'メールアドレスは$2 $3に認証済みです。',
 'emailnotauthenticated' => 'メールアドレスが認証されていません。
 認証されるまで、以下のいかなる機能でもメールは送信されません。',
 'noemailprefs' => 'これらの機能を有効にするためには個人設定でメールアドレスを登録する必要があります。',
@@ -869,7 +869,7 @@ $2',
 'suspicious-userlogout' => '壊れたブラウザーまたはキャッシュプロキシによって送信された可能性があるため、ログアウト要求は拒否されました。',
 
 # E-mail sending
-'php-mail-error-unknown' => 'PHPのmail()関数で不明なエラー',
+'php-mail-error-unknown' => 'PHPのmail()関数での不明なエラーです。',
 'user-mail-no-addy' => 'メールアドレスなしでメールを送信しようとしました。',
 
 # Change password dialog
@@ -897,11 +897,11 @@ $2',
 'passwordreset-text' => 'このフォームに入力すると、アカウント詳細のリマインダーをメールでお送りします。',
 'passwordreset-legend' => 'パスワードの再設定',
 'passwordreset-disabled' => 'パスワードの再設定は、このウィキでは無効になっています。',
-'passwordreset-pretext' => '{{PLURAL:$1||以ä¸\8bã\81®ã\83\87ã\83¼ã\82¿ã\81®ã\81\86ã\81¡ã\81® 1 つを入力してください}}',
+'passwordreset-pretext' => '{{PLURAL:$1||ä¸\8bè¨\98ã\81®ã\83\87ã\83¼ã\82¿ã\81®ã\81\84ã\81\9aã\82\8cã\81\8b 1 つを入力してください}}',
 'passwordreset-username' => '利用者名:',
 'passwordreset-domain' => 'ドメイン:',
 'passwordreset-capture' => '送信されるメールの内容を表示しますか?',
-'passwordreset-capture-help' => 'ã\81\93ã\81®ã\83\9cã\83\83ã\82¯ã\82¹ã\81«ã\83\81ã\82§ã\83\83ã\82¯ã\82\92å\85¥ã\82\8cã\82\8bã\81¨ã\80\81å\88©ç\94¨è\80\85ã\81«é\80\81ä¿¡ã\81\95ã\82\8cã\82\8bã\83¡ã\83¼ã\83«ã\81®å\86\85容ï¼\88ä¸\80æ\99\82ç\9a\84ã\81ªパスワードを含む)をあなたも閲覧できます。',
+'passwordreset-capture-help' => 'ã\81\93ã\81®ã\83\9cã\83\83ã\82¯ã\82¹ã\81«ã\83\81ã\82§ã\83\83ã\82¯ã\82\92å\85¥ã\82\8cã\82\8bã\81¨ã\80\81å\88©ç\94¨è\80\85ã\81«é\80\81ä¿¡ã\81\95ã\82\8cã\82\8bã\83¡ã\83¼ã\83«ã\81®å\86\85容ï¼\88ä»®パスワードを含む)をあなたも閲覧できます。',
 'passwordreset-email' => 'メールアドレス:',
 'passwordreset-emailtitle' => '{{SITENAME}}上のアカウントの詳細',
 'passwordreset-emailtext-ip' => 'どなたか(おそらくあなた、IP アドレス $1)が {{SITENAME}} ($4) での
@@ -910,27 +910,27 @@ $2',
 
 $2
 
-{{PLURAL:$3|この|これらの}}一時的なパスワードは {{PLURAL:$5|$5 日間}}で有効期限が切れます。
-あなたはすぐにログインして新しいパスワードを変更する必要があります。
-これが他の誰かによる申請である場合、あるいはあなたが自の元のパスワードを
+{{PLURAL:$3|この仮パスワード|これらの仮パスワード}}は {{PLURAL:$5|$5 日間}}で有効期限が切れます。
+あなたはすぐにログインして新しいパスワードを設定する必要があります。
+これが他の誰かによる申請である場合、あるいはあなたが自の元のパスワードを
 覚えていてそれを変更したくない場合には、このメッセージを無視して以前のパスワードを
 使用し続けることができます。',
 'passwordreset-emailtext-user' => '{{SITENAME}} の利用者 $1 があなたの {{SITENAME}} ($4)
 におけるアカウントの詳細情報を送信するよう申請しました。
¸\8bè¨\98ã\81®å\88©ç\94¨è\80\85{{PLURAL:$3|ã\82¢ã\82«ã\82¦ã\83³ã\83\88}}がこのメールアドレスと紐付けられています。
»¥ä¸\8bã\81®å\88©ç\94¨è\80\85{{PLURAL:$3|ã\82¢ã\82«ã\82¦ã\83³ã\83\88\82¢ã\82«ã\82¦ã\83³ã\83\88群}}がこのメールアドレスと紐付けられています。
 
 $2
 
-{{PLURAL:$3|ã\81\93ã\81®ä¸\80æ\99\82ç\9a\84ã\81ªã\83\91ã\82¹ã\83¯ã\83¼ã\83\89\81\93ã\82\8cã\82\89ã\81®ä¸\80æ\99\82ç\9a\84ã\81ªパスワード}}は{{PLURAL:$5|$5日}}で有効期限が切れます。
\81\82ã\81ªã\81\9fã\81¯ã\80\81ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81¦æ\96°ã\81\97ã\81\84ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ã\81\99ã\81\90ã\81«é\81¸ã\81必要があります。
-この申請が他の誰かによるものの場合、あるいはあなたが自の元のパスワードを
+{{PLURAL:$3|ã\81\93ã\81®ä»®ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89\81\93ã\82\8cã\82\89ã\81®ä»®パスワード}}は{{PLURAL:$5|$5日}}で有効期限が切れます。
\81\82ã\81ªã\81\9fã\81¯ã\80\81ã\81\99ã\81\90ã\81«ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81¦æ\96°ã\81\97ã\81\84ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92設å®\9aã\81\99ã\82\8b必要があります。
+この申請が他の誰かによるものの場合、あるいはあなたが自の元のパスワードを
 覚えていて、変更したくない場合は、このメッセージを無視して
 以前のパスワードを使い続けることができます。',
 'passwordreset-emailelement' => '利用者名:$1
 仮パスワード:$2',
-'passwordreset-emailsent' => '確èª\8dã\81®ã\83¡ã\83¼ã\83«ã\81\8cé\80\81ä¿¡ã\81\95ã\82\8cました。',
-'passwordreset-emailsent-capture' => '確認のメールが送信されました。以下に表示します。',
-'passwordreset-emailerror-capture' => '生成された確認メールを以下に表示していますが、利用者への送信には失敗しました: $1',
+'passwordreset-emailsent' => '確èª\8dã\83¡ã\83¼ã\83«ã\82\92ã\81\8aé\80\81ã\82\8aã\81\97ました。',
+'passwordreset-emailsent-capture' => '下記の内容の、確認メールをお送りしました。',
+'passwordreset-emailerror-capture' => '下記の内容の確認メールを生成しましたが、利用者への送信に失敗しました:$1',
 
 # Special:ChangeEmail
 'changeemail' => 'メールアドレスの変更',
@@ -960,7 +960,7 @@ $2
 'image_tip' => 'ファイルの埋め込み',
 'media_sample' => 'サンプル.ogg',
 'media_tip' => 'ファイルへのリンク',
-'sig_tip' => '時刻印きの署名',
+'sig_tip' => '時刻印きの署名',
 'hr_tip' => '水平線を挿入(利用は控えめに)',
 
 # Edit pages
@@ -974,12 +974,12 @@ $2
 'showlivepreview' => 'ライブプレビュー',
 'showdiff' => '差分を表示',
 'anoneditwarning' => "'''警告:'''ログインしていません。
\81\93ã\81®ã\81¾ã\81¾æ\8a\95稿ã\82\92è¡\8cã\81£ã\81\9få ´å\90\88ã\80\81使用中のIPアドレスがこのページの編集履歴に記録されます。",
-'anonpreviewwarning' => "''ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\80\82æ\8a\95稿ã\82\92ä¿\9då­\98ã\81\99ã\82\8bã\81¨ã\80\81ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®å±¥æ­´ã\81«ä½¿ç\94¨ä¸­ã\81®IPã\82¢ã\83\89ã\83¬ã\82¹ã\81\8c記録されます。''",
\81\93ã\81®ã\81¾ã\81¾æ\8a\95稿ã\81\97ã\81\9få ´å\90\88ã\80\81ã\81\94使用中のIPアドレスがこのページの編集履歴に記録されます。",
+'anonpreviewwarning' => "''ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\80\82æ\8a\95稿ã\82\92ä¿\9då­\98ã\81\99ã\82\8bã\81¨ã\80\81ã\81\94使ç\94¨ä¸­ã\81®IPã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®å±¥æ­´ã\81«記録されます。''",
 'missingsummary' => "'''注意:'''要約欄が空欄です。
 「{{int:savearticle}}」をもう一度クリックすると、編集は要約なしで保存されます。",
 'missingcommenttext' => '以下にコメントを入力してください。',
-'missingcommentheader' => "'''注意::'' このコメントに対する題名/見出しが空欄です。
+'missingcommentheader' => "'''注意:'''このコメントに対する題名/見出しが空欄です。
 「{{int:savearticle}}」ボタンをもう一度押すと、空のまま編集が保存されます。",
 'summary-preview' => '要約のプレビュー:',
 'subject-preview' => '題名/見出しのプレビュー:',
@@ -995,9 +995,9 @@ $2
 
 このブロックについて、$1もしくは他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]に問い合わせることができます。
 ただし、[[Special:Preferences|個人設定]]で有効なメールアドレスが登録されていない場合、またはメール送信機能の使用がブロックされている場合、「この利用者にメールを送信」の機能は使えません。
\8f¾å\9c¨ã\81®IPã\82¢ã\83\89ã\83¬ã\82¹ã\81¯$3ã\80\81ã\81\93ã\81®ã\83\96ã\83­ã\83\83ã\82¯IDã\81¯&#x23;$5です。
-問い合わせを行う際には、上記の情報を必ず書いてください。",
-'autoblockedtext' => "用中のIPアドレスは、$1によって投稿をブロックされた利用者によって使用されたために自動的にブロックされています。
\8f¾å\9c¨ã\81\94使ç\94¨ä¸­ã\81®IPã\82¢ã\83\89ã\83¬ã\82¹ã\81¯$3ã\80\81ã\81\93ã\81®ã\83\96ã\83­ã\83\83ã\82¯IDã\81¯#$5です。
+お問い合わせの際には、上記の情報を必ず書いてください。",
+'autoblockedtext' => "ご使用中のIPアドレスは、$1によって投稿をブロックされた利用者によって使用されたために自動的にブロックされています。
 理由は次の通りです。
 
 :''$2''
@@ -1010,8 +1010,8 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこの件につ
 
 ただし、[[Special:Preferences|個人設定]]に正しいメールアドレスが登録されていない場合、またはメール送信がブロックされている場合、メール送信機能が使えないことに注意してください。
 
-現在利用中のIPアドレスは$3 、このブロックIDは&#x23;$5です。
-問い合わせを行う際には、この情報を必ず書いてください。",
+現在ご使用中のIPアドレスは$3 、このブロックIDは#$5です。
+お問い合わせの際には、この情報を必ず書いてください。",
 'blockednoreason' => '理由が設定されていません',
 'whitelistedittext' => 'このページを編集するには$1する必要があります。',
 'confirmedittext' => 'ページの編集を始める前にメールアドレスの確認をする必要があります。
@@ -1043,7 +1043,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 このページの作成/編集が適切かどうか確認してください。',
 'userpage-userdoesnotexist-view' => '利用者アカウント「$1」は登録されていません。',
 'blocked-notice-logextract' => 'この利用者は現在ブロックされています。
-参考のために最新のブロック記録を以下に表示します',
+参考のために最新のブロック記録を以下に表示します',
 'clearyourcache' => "'''注意:''' 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
 * '''Firefox / Safari:''' ''Shift'' を押しながら ''再読み込み'' をクリックする、もしくは ''Ctrl-F5'' か ''Ctrl-R'' を押してください (Macでは ''&#x2318;-R'' )
 * '''Google Chrome:''' ''Ctrl-Shift-R'' を押してください (Macでは ''&#x2318;-Shift-R'' )
@@ -1054,7 +1054,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'userjsyoucanpreview' => "'''ヒント:''' 「{{int:showpreview}}」ボタンを使うと、保存前に新しいスクリプトを試験できます。",
 'usercsspreview' => "'''利用者CSSをプレビューしています。'''
 '''まだ保存されていません!'''",
-'userjspreview' => "'''利用者JavaScriptを試験プレビューしています。'''
+'userjspreview' => "'''利用者JavaScriptを試験/プレビューしています。'''
 '''まだ保存されていません!'''",
 'sitecsspreview' => "'''ここでは、CSSをプレビューしているだけに過ぎません。'''
 '''まだ保存されていません!'''",
@@ -1077,7 +1077,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 
 '''この編集が問題ない場合はもう一度保存してください。'''
 それでもうまくいかない場合は一度[[Special:UserLogout|ログアウト]]して、ログインし直してみてください。",
-'token_suffix_mismatch' => "'''使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。'''
+'token_suffix_mismatch' => "'''使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。'''
 ページ本文の破損を防ぐため、編集は反映されません。
 問題のある匿名プロキシ サービスを使用していると、これが発生する場合があります。",
 'edit_form_incomplete' => "'''一部の編集フォームの値がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。'''",
@@ -1093,7 +1093,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 上側のテキスト領域の内容'''だけ'''が、「{{int:savearticle}}」をクリックした時に実際に保存されます。",
 'yourtext' => '編集中の文章',
 'storedversion' => '保存された版',
-'nonunicodebrowser' => "'''è­¦å\91\8aï¼\9aã\81\82ã\81ªã\81\9fのブラウザーはUnicodeに未対応です。'''
+'nonunicodebrowser' => "'''è­¦å\91\8aï¼\9aã\81\94使ç\94¨ä¸­のブラウザーはUnicodeに未対応です。'''
 安全にページを編集する回避策を表示しています:編集ボックス内の非ASCII文字を16進数コードで表現しています。",
 'editingold' => "'''警告:このページの古い版を編集しています。'''
 保存すると、この版以降に追加されていた変更がすべて失われます。",
@@ -1108,23 +1108,23 @@ IP アドレスは複数の利用者で共有されている場合がありま
 '''著作権保護されている作品を、許諾なしに投稿してはいけません!'''",
 'longpageerror' => "'''エラー:投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。'''
 この編集は保存できません。",
-'readonlywarning' => "'''è­¦å\91\8aï¼\9aã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cã\83¡ã\83³ã\83\86ã\83\8aã\83³ã\82¹ã\81®ã\81\9fã\82\81ã\81«ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\9fã\82\81、現在は編集を保存できません。'''
-必要であれば文章をカットアンドペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
+'readonlywarning' => "'''è­¦å\91\8aï¼\9aã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81\8cã\83¡ã\83³ã\83\86ã\83\8aã\83³ã\82¹ã\81®ã\81\9fã\82\81ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\8aã\82\8a、現在は編集を保存できません。'''
+必要であれば文章をカット&amp;ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
 
 データベースをロックした管理者による説明は以下の通りです:$1",
 'protectedpagewarning' => "'''警告:このページは保護されているため、管理者権限を持つ利用者のみが編集できます。'''
-参考として以下に一番最後の記録を表示します:",
+参考として以下に最後の記録を表示します:",
 'semiprotectedpagewarning' => "'''注意:'''このページは保護されているため、登録利用者のみが編集できます。
-参考として以下に一番最後の記録を表示します:",
-'cascadeprotectedwarning' => "'''è­¦å\91\8aï¼\9a'''ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ã\82«ã\82¹ã\82±ã\83¼ã\83\89ä¿\9dè­·ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b以ä¸\8bã\81®{{PLURAL:$1|ã\83\9aã\83¼ã\82¸|ã\83\9aã\83¼ã\82¸ç¾¤}}ã\81\8bã\82\89読ã\81¿è¾¼ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\81\9fã\82\81ã\80\81管ç\90\86è\80\85権é\99\90ã\82\92æ\8c\81ã\81¤å\88©ç\94¨è\80\85ã\81\97ã\81\8bç·¨é\9b\86ã\81§ã\81\8dã\81ªã\81\84ã\82\88ã\81\86ã\81«ä¿\9dè­·ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ã\80\82",
+参考として以下に最後の記録を表示します:",
+'cascadeprotectedwarning' => "'''è­¦å\91\8aï¼\9a'''ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ã\82«ã\82¹ã\82±ã\83¼ã\83\89ä¿\9dè­·ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8b以ä¸\8bã\81®{{PLURAL:$1|ã\83\9aã\83¼ã\82¸|ã\83\9aã\83¼ã\82¸ç¾¤}}ã\81\8bã\82\89読ã\81¿è¾¼ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\81\9fã\82\81ã\80\81管ç\90\86è\80\85権é\99\90ã\82\92æ\8c\81ã\81¤å\88©ç\94¨è\80\85ã\81®ã\81¿ã\81\8cç·¨é\9b\86ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ä¿\9dè­·ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\99ï¼\9a",
 'titleprotectedwarning' => "'''警告:このページは保護されているため、作成には[[Special:ListGroupRights|特定の権限]]が必要です。'''
-参考として以下に一番最後の記録を表示します:",
+参考として以下に最後の記録を表示します:",
 'templatesused' => 'このページで使用されている{{PLURAL:$1|テンプレート}}:',
 'templatesusedpreview' => 'このプレビューで使用されている{{PLURAL:$1|テンプレート}}:',
 'templatesusedsection' => 'この節で使用されている{{PLURAL:$1|テンプレート}}:',
 'template-protected' => '(保護)',
 'template-semiprotected' => '(半保護)',
-'hiddencategories' => 'このページは$1個の隠しカテゴリに属しています:',
+'hiddencategories' => 'このページは {{PLURAL:$1|$1 個の隠しカテゴリ}}に属しています:',
 'edittools' => '<!-- ここに書いたテキストは編集及びアップロードのフォームの下に表示されます。 -->',
 'nocreatetitle' => 'ページの作成が制限されています',
 'nocreatetext' => '{{SITENAME}}ではページの新規作成を制限しています。
@@ -1155,13 +1155,13 @@ IP アドレスは複数の利用者で共有されている場合がありま
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''警告:'''このページでの高負荷なパーサー関数の呼び出し回数が多過ぎます。
 
-{{PLURAL:$2|å\91¼ã\81³å\87ºã\81\97ã\81¯ $2 å\9b\9e}}以ä¸\8bにしてください({{PLURAL:$1|現在は $1 回}})。",
+{{PLURAL:$2|å\91¼ã\81³å\87ºã\81\97ã\82\92 $2 å\9b\9e}}æ\9cªæº\80にしてください({{PLURAL:$1|現在は $1 回}})。",
 'expensive-parserfunction-category' => '高負荷な構文解析関数の呼び出しが多過ぎるページ',
 'post-expand-template-inclusion-warning' => "'''警告:'''テンプレートの読み込みサイズが大き過ぎます。
 いくつかのテンプレートは読み込まれません。",
 'post-expand-template-inclusion-category' => 'テンプレート読み込みサイズが制限値を越えているページ',
-'post-expand-template-argument-warning' => "'''è­¦å\91\8aï¼\9a'''ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81å±\95é\96\8bå¾\8cã\81®ã\82µã\82¤ã\82ºã\81\8c大ã\81\8dã\81\99ã\81\8eã\82\8bå¼\95æ\95°ã\82\92渡ã\81\97ã\81\9fã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\81\8c\81¤ä»¥ä¸\8aå\90«ã\81¾ã\82\8cã\81¦います。
\81\93ã\82\8cã\82\89ã\81®å¼\95æ\95°ã\81¯ç\9c\81ç\95¥ã\81\95ã\82\8cました。",
+'post-expand-template-argument-warning' => "'''è­¦å\91\8aï¼\9a'''ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ã\80\81å±\95é\96\8bå¾\8cã\81®ã\82µã\82¤ã\82ºã\81\8c大ã\81\8dã\81\99ã\81\8eã\82\8bå¼\95æ\95°ã\82\92渡ã\81\97ã\81\9fã\83\86ã\83³ã\83\97ã\83¬ã\83¼ã\83\88ã\82\92å°\91ã\81ªã\81\8fã\81¨ã\82\82\81¤å\90«ã\82\93ã\81§います。
\81\93ã\82\8cã\82\89ã\81®å¼\95æ\95°ã\82\92ç\9c\81ç\95¥ã\81\97ました。",
 'post-expand-template-argument-category' => '省略されたテンプレート引数を含むページ',
 'parser-template-loop-warning' => 'テンプレートのループが検出されました:[[$1]]',
 'parser-template-recursion-depth-warning' => 'テンプレートの再帰の深さ($1)が上限を超えました',
@@ -1175,7 +1175,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 
 # "Undo" feature
 'undo-success' => 'この編集を取り消せます。
-ä¸\8bè¨\98ã\81®å·®å\88\86ã\82\92確èª\8dã\81\97ã\80\81æ\9c¬å½\93ã\81«å\8f\96ã\82\8aæ¶\88ã\81\99ã\81¹ã\81\8dã\81 ã\81¨ç¢ºèª\8dã\81\97ã\81¦ã\81\8bã\82\89ã\80\81変更を保存して取り消しを完了してください。',
+ä¸\8bè¨\98ã\81®å·®å\88\86ã\82\92確èª\8dã\81\97ã\81¦ã\80\81æ\9c¬å½\93ã\81«å\8f\96ã\82\8aæ¶\88ã\81\97ã\81¦ã\81\84ã\81\84ã\81\8bæ¤\9c証ã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82ã\82\88ã\82\8dã\81\97ã\81\91ã\82\8cã\81°変更を保存して取り消しを完了してください。',
 'undo-failure' => '中間の版での編集と競合したため、取り消せませんでした。',
 'undo-norev' => '取り消そうとした編集が存在しないか削除済みのため取り消せませんでした。',
 'undo-summary' => '[[Special:Contributions/$2|$2]]([[User talk:$2|トーク]])による第$1版を取り消し',
@@ -1184,7 +1184,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'cantcreateaccounttitle' => 'アカウントを作成できません',
 'cantcreateaccount-text' => "このIPアドレス('''$1''')からのアカウント作成は[[User:$3|$3]]によってブロックされています。
 
-$3が示した理由は ''$2'' です。",
+$3が示した理由:''$2''",
 
 # History pages
 'viewpagelogs' => 'このページに関する記録を閲覧',
@@ -1207,7 +1207,7 @@ $3が示した理由は ''$2'' です。",
 'history-show-deleted' => '削除済みのみ',
 'histfirst' => '最古',
 'histlast' => '最新',
-'historysize' => '$1バイト',
+'historysize' => '({{PLURAL:$1|$1バイト}})',
 'historyempty' => '(空)',
 
 # Revision feed
@@ -1253,7 +1253,7 @@ $3が示した理由は ''$2'' です。",
 'revisiondelete' => '版の削除と復帰',
 'revdelete-nooldid-title' => '不正な対象版',
 'revdelete-nooldid-text' => 'この操作の対象となる版を指定していないか、指定した版が存在していないか、あるいは最新版を非表示しようとしています。',
-'revdelete-nologtype-title' => 'è¨\98é\8c²ã\81®ç¨®é¡\9eã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cていません',
+'revdelete-nologtype-title' => 'è¨\98é\8c²ã\81®ç¨®é¡\9eã\82\92æ\8c\87å®\9aã\81\97ていません',
 'revdelete-nologtype-text' => 'この操作を実行する記録の種類を指定していません。',
 'revdelete-nologid-title' => '不正な記録項目',
 'revdelete-nologid-text' => 'この操作の対象となる記録の項目を指定していないか、あるいは指定した項目が存在しません。',
@@ -1296,13 +1296,14 @@ $1",
 'deletedhist' => '削除された履歴',
 'revdelete-hide-current' => '$1$2の項目の非表示に失敗しました:これは最新版であるため。
 非表示にはできません。',
-'revdelete-show-no-access' => '$1$2ã\81®é \85ç\9b®ã\81®è¡¨ç¤ºã\81«å¤±æ\95\97ã\81\97ã\81¾ã\81\97ã\81\9fï¼\9aã\81\93ã\81®é \85ç\9b®ã\81¯ã\80\8cå\88¶é\99\90ä»\98ã\81\8dã\80\8dã\81«è¨­å®\9aã\81\95ã\82\8cています。
+'revdelete-show-no-access' => '$1$2ã\81®é \85ç\9b®ã\81®è¡¨ç¤ºã\81«å¤±æ\95\97ã\81\97ã\81¾ã\81\97ã\81\9fï¼\9aã\81\93ã\81®é \85ç\9b®ã\81«ã\81¯ã\80\8cå\88¶é\99\90ä»\98ã\81\8dã\80\8dã\81®å\8d°ã\81\8cä»\98ã\81\84ています。
 アクセス権限がありません。',
-'revdelete-modify-no-access' => '$1$2ã\81®é \85ç\9b®ã\81®ä¿®æ­£ã\81«å¤±æ\95\97ã\81\97ã\81¾ã\81\97ã\81\9fï¼\9aã\81\93ã\81®é \85ç\9b®ã\81¯ã\80\8cå\88¶é\99\90ä»\98ã\81\8dã\80\8dã\81«è¨­å®\9aã\81\95ã\82\8cています。
+'revdelete-modify-no-access' => '$1$2ã\81®é \85ç\9b®ã\81®ä¿®æ­£ã\81«å¤±æ\95\97ã\81\97ã\81¾ã\81\97ã\81\9fï¼\9aã\81\93ã\81®é \85ç\9b®ã\81«ã\81¯ã\80\8cå\88¶é\99\90ä»\98ã\81\8dã\80\8dã\81®å\8d°ã\81\8cä»\98ã\81\84ています。
 アクセス権限がありません。',
 'revdelete-modify-missing' => 'ID$1の項目の変更に失敗しました:データベースに見当たりません!',
 'revdelete-no-change' => "'''警告:''' $1$2の項目には要求された閲覧レベルが既に設定されています。",
-'revdelete-concurrent-change' => '$1$2の項目の変更に失敗しました:あなたが変更しようとしている間に、他の利用者が変更したようです。',
+'revdelete-concurrent-change' => '$1$2の項目の変更に失敗しました:あなたが変更しようとしている間に、他の誰かが変更したようです。
+記録を確認してください。',
 'revdelete-only-restricted' => '$1$2の項目の版指定削除に失敗しました:他の閲覧レベルの選択肢のうちどれかをさらに選択しなければ、管理者から項目を秘匿できません。',
 'revdelete-reason-dropdown' => '*よくある削除理由
 ** 著作権侵害
@@ -1327,8 +1328,8 @@ $1",
 'mergehistory-into' => '統合先のページ:',
 'mergehistory-list' => '統合できる編集履歴',
 'mergehistory-merge' => '以下の [[:$1]] の履歴を [[:$2]] に統合できます。
\89¹å®\9aã\81®æ\99\82é\96\93以前に作成された版のみを統合するには、ラジオボタンで版を選択してください。
-案内リンクを使用すると、選択が初期化されるので注意してください。',
\89¹å®\9aã\81®æ\97¥æ\99\82以前に作成された版のみを統合するには、ラジオボタンで版を選択してください。
+案内リンクを使用すると選択が初期化されるためご注意ください。',
 'mergehistory-go' => '統合できる版を表示',
 'mergehistory-submit' => '版を統合',
 'mergehistory-empty' => '統合できる版がありません。',
@@ -1358,8 +1359,8 @@ $1",
 'compareselectedversions' => '選択した版同士を比較',
 'showhideselectedversions' => '選択した版を表示もしくは非表示',
 'editundo' => '取り消し',
-'diff-multi' => '($2人の利用者による、間の$1版が非表示)',
-'diff-multi-manyusers' => '($2人以上の利用者による、間の$1版が非表示)',
+'diff-multi' => '({{PLURAL:$2|$2人の利用者}}による、{{PLURAL:$1|間の$1版}}が非表示)',
+'diff-multi-manyusers' => '({{PLURAL:$2|$2人を超える利用者}}による、{{PLURAL:$1|間の$1版}}が非表示)',
 
 # Search results
 'searchresults' => '検索結果',
@@ -1374,13 +1375,13 @@ $1",
 'notextmatches' => 'どのページ本文とも一致しませんでした',
 'prevn' => '前の$1件',
 'nextn' => '次の$1件',
-'prevn-title' => '前の$1結果',
-'nextn-title' => '次の$1結果',
-'shown-title' => 'ページあたり$1件の結果を表示',
+'prevn-title' => '前の{{PLURAL:$1|$1結果}}',
+'nextn-title' => '次の{{PLURAL:$1|$1結果}}',
+'shown-title' => 'ページあたり{{PLURAL:$1|$1件の結果}}を表示',
 'viewprevnext' => '($1{{int:pipe-separator}}$2)($3)を表示',
 'searchmenu-legend' => '検索オプション',
 'searchmenu-exists' => "'''このウィキには「[[:$1]]」という名前のページがあります'''",
-'searchmenu-new' => "'''このウィキでページ「[[:$1|$1]]」を新規作成する'''",
+'searchmenu-new' => "'''このウィキでページ「[[:$1]]」を新規作成する'''",
 'searchhelp-url' => 'Help:目次',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|この文字列から始まる名前のページを見る]]',
 'searchprofile-articles' => '本文ページ',
@@ -1393,8 +1394,8 @@ $1",
 'searchprofile-images-tooltip' => 'ファイルを検索',
 'searchprofile-everything-tooltip' => '全本文ページ(トークページ含む)を検索',
 'searchprofile-advanced-tooltip' => '特定の名前空間内を検索',
-'search-result-size' => '$1($2単語)',
-'search-result-category-size' => '$1件($2下位カテゴリ、$3ファイル)',
+'search-result-size' => '$1({{PLURAL:$2|$2単語}})',
+'search-result-category-size' => '{{PLURAL:$1|$1件}}({{PLURAL:$2|$2下位カテゴリ}}、{{PLURAL:$3|$3ファイル}})',
 'search-result-score' => '関連度:$1%',
 'search-redirect' => '($1からのリダイレクト)',
 'search-section' => '($1の節)',
@@ -1405,14 +1406,14 @@ $1",
 'search-mwsuggest-enabled' => '検索候補を表示',
 'search-mwsuggest-disabled' => '検索候補を表示しない',
 'search-relatedarticle' => '関連',
-'mwsuggest-disable' => 'AJAXによる検索候補の提示を無効にする',
+'mwsuggest-disable' => 'Ajaxによる検索候補の提示を無効にする',
 'searcheverything-enable' => 'すべての名前空間を検索',
 'searchrelated' => '関連',
 'searchall' => 'すべて',
-'showingresults' => "'''$2'''件目からの{{PLURAL:$1|'''$1'''件の結果}}を表示しています。",
-'showingresultsnum' => "'''$2'''件目からの{{PLURAL:$3|'''$3'''件の結果}}を表示しています。",
+'showingresults' => "'''$2'''件目以降の{{PLURAL:$1|'''$1'''件の結果}}を表示しています。",
+'showingresultsnum' => "'''$2'''件目以降の{{PLURAL:$3|'''$3'''件の結果}}を表示しています。",
 'showingresultsheader' => "「'''$4'''」に対する{{PLURAL:$5|'''$3'''件中の'''$1'''件の結果|'''$3'''件中の'''$1'''件目から'''$2'''件目の結果}}",
-'nonefound' => "'''注æ\84\8f'''ï¼\9aæ\97¢å®\9aã\81§ã\81¯ä¸\80é\83¨ã\81®å\90\8då\89\8d空é\96\93ã\81\97ã\81\8bæ¤\9cç´¢ã\81\95ã\82\8cã\81¾ã\81\9bã\82\93
+'nonefound' => "'''注æ\84\8f'''ï¼\9aæ\97¢å®\9aã\81§ã\81¯ä¸\80é\83¨ã\81®å\90\8då\89\8d空é\96\93ã\81®ã\81¿ã\82\92æ¤\9cç´¢ã\81\97ã\81¾ã\81\99
 ''all:''を前に付けると、すべて(トークページやテンプレートなどを含む)を対象にできます。検索する名前空間を前に付けることもできます。",
 'search-nonefound' => '問い合わせに合致する検索結果はありませんでした。',
 'powersearch' => '高度な検索',
@@ -1486,7 +1487,7 @@ $1",
 'savedprefs' => '個人設定を保存しました。',
 'timezonelegend' => 'タイムゾーン:',
 'localtime' => 'ローカルの時刻:',
-'timezoneuseserverdefault' => '既定を使用 ($1)',
+'timezoneuseserverdefault' => 'ウィキの既定を使用 ($1)',
 'timezoneuseoffset' => 'その他(時差を指定)',
 'timezoneoffset' => '時差¹:',
 'servertime' => 'サーバーの時刻:',
@@ -1522,12 +1523,13 @@ $1",
 'yourrealname' => '本名:',
 'yourlanguage' => '使用言語:',
 'yourvariant' => 'コンテンツ言語変種:',
-'prefs-help-variant' => 'ã\81\82ã\81ªã\81\9fã\81\8cã\81\93ã\81®ã\82¦ã\82£ã\82­ã\81®ã\82³ã\83³ã\83\86ã\83³ã\83\84ã\81«è¡¨ç¤ºã\81«ä½¿ã\81\84ã\81\9fã\81\84è¨\80èª\9eå¤\89種ã\81¾ã\81\9fã\81¯æ­£æ\9b¸æ³\95',
+'prefs-help-variant' => 'ã\81\93ã\81®ã\82¦ã\82£ã\82­ã\81®ã\82³ã\83³ã\83\86ã\83³ã\83\84ã\81«è¡¨ç¤ºã\81«ä½¿ç\94¨ã\81\97ã\81\9fã\81\84è¨\80èª\9eå¤\89種ã\81¾ã\81\9fã\81¯æ­£æ\9b¸æ³\95ã\80\82',
 'yournick' => '新しい署名:',
 'prefs-help-signature' => 'トークページ上での発言には「<nowiki>~~~~</nowiki>」と付けて署名すべきです。これは自分の署名に時刻印を付けたものに変換されます。',
 'badsig' => '署名用のソースが正しくありません。
 HTMLタグを見直してください。',
-'badsiglength' => '署名が長すぎます。$1文字以下でなければなりません。',
+'badsiglength' => '署名が長すぎます。
+$1 {{PLURAL:$1|文字}}以下である必要があります。',
 'yourgender' => '性別:',
 'gender-unknown' => '未指定',
 'gender-male' => '男',
@@ -1620,7 +1622,7 @@ HTMLタグを見直してください。',
 'right-suppressredirect' => 'ページの移動の際に元のページ名からのリダイレクトを作成しない',
 'right-upload' => 'ファイルをアップロード',
 'right-reupload' => '既存のファイルに上書き',
-'right-reupload-own' => '自分がアップロードした既存のファイルに上書き',
+'right-reupload-own' => '自分自身がアップロードした既存のファイルに上書き',
 'right-reupload-shared' => '共有メディアリポジトリ上のファイルのローカルでの上書き',
 'right-upload_by_url' => 'URLからファイルをアップロード',
 'right-purge' => '確認を省略してサイトのキャッシュを破棄',
@@ -1703,7 +1705,7 @@ HTMLタグを見直してください。',
 'action-import' => 'このページを他のウィキから取り込む',
 'action-importupload' => 'ファイルアップロードでこのページに取り込む',
 'action-patrol' => '他の利用者の編集を巡回済みにする',
-'action-autopatrol' => '自の編集を巡回済みにする',
+'action-autopatrol' => '自の編集を巡回済みにする',
 'action-unwatchedpages' => 'ウォッチされていないページ一覧を表示',
 'action-mergehistory' => 'このページの履歴を統合',
 'action-userrights' => '全利用者権限の変更',
@@ -1712,10 +1714,10 @@ HTMLタグを見直してください。',
 'action-sendemail' => 'メールを送信',
 
 # Recent changes
-'nchanges' => '$1回の変更',
+'nchanges' => '$1{{PLURAL:$1|回の変更}}',
 'recentchanges' => '最近の更新',
 'recentchanges-legend' => '最近の更新のオプション',
-'recentchanges-summary' => 'このページで最近の更新を確認できます。',
+'recentchanges-summary' => 'このページでは、このウィキでの最近の更新を確認できます。',
 'recentchanges-feed-description' => 'このフィードでこのウィキの最近の更新を追跡できます。',
 'recentchanges-label-newpage' => 'この編集で新しいページが作成されました',
 'recentchanges-label-minor' => 'これは細部の編集です',
@@ -1739,10 +1741,10 @@ HTMLタグを見直してください。',
 'newpageletter' => '新',
 'boteditletter' => 'ボ',
 'unpatrolledletter' => '!',
-'number_of_watching_users_pageview' => '[$1 人の利用者がウォッチしています]',
+'number_of_watching_users_pageview' => '[{{PLURAL:$1|$1 人の利用者}}がウォッチしています]',
 'rc_categories' => 'カテゴリを限定(「|」で区切る)',
 'rc_categories_any' => 'すべて',
-'rc-change-size-new' => '変更後は$1バイト',
+'rc-change-size-new' => '変更後は $1 {{PLURAL:$1|バイト}}',
 'newsectionsummary' => '/* $1 */ 新しい節',
 'rc-enhanced-expand' => '詳細を表示(JavaScript が必要)',
 'rc-enhanced-hide' => '詳細を非表示',
@@ -1793,9 +1795,9 @@ HTMLタグを見直してください。',
 'filestatus' => '著作権情報:',
 'filesource' => '出典:',
 'uploadedfiles' => 'アップロードされたファイル',
-'ignorewarning' => 'è­¦å\91\8aã\82\92ç\84¡è¦\96ã\81\97ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä¿\9då­\98ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86',
+'ignorewarning' => 'è­¦å\91\8aã\82\92ç\84¡è¦\96ã\81\97ã\81¦ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä¿\9då­\98',
 'ignorewarnings' => '警告を無視',
-'minlength1' => 'ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81¯1æ\96\87å­\97以ä¸\8aã\81§ã\81\82ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾す。',
+'minlength1' => 'ã\83\95ã\82¡ã\82¤ã\83«å\90\8dã\81«ã\81¯å°\91ã\81ªã\81\8fã\81¨ã\82\82\96\87å­\97å¿\85è¦\81ã\81§す。',
 'illegalfilename' => 'ファイル名「$1」にページ名として許可されていない文字が含まれています。
 ファイル名を変更してからもう一度アップロードしてください。',
 'filename-toolong' => '240バイトを超えるファイル名は禁止されています。',
@@ -1818,15 +1820,15 @@ HTMLタグを見直してください。',
 'overwrite' => '既存のファイルへの上書きは許可されていません。',
 'unknown-error' => '不明なエラーが発生しました。',
 'tmp-create-error' => '一時ファイルを作成できませんでした。',
-'tmp-write-error' => '一時ファイルへの書き込みエラー',
-'large-file' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82µã\82¤ã\82ºã\81¯$1ã\83\90ã\82¤ã\83\88ã\82\88ã\82\8a大ã\81\8dã\81\8fã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\81\8cæ\8e¨å¥¨ã\81\95ã\82\8cã\81¦ã\81\84ます。
-このファイルは$2バイトです。',
+'tmp-write-error' => '一時ファイルへの書き込みエラーです。',
+'large-file' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\82µã\82¤ã\82ºã\82\92 $1 ã\83\90ã\82¤ã\83\88以ä¸\8bã\81«ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\8e¨å¥¨ã\81\97ます。
+このファイルは $2 バイトです。',
 'largefileserver' => 'このファイルは、サーバー設定で許されている最大サイズより大きいです。',
 'emptyfile' => 'アップロードしたファイルは内容が空のようです。
 ファイル名の指定が間違っている可能性があります。
 本当にこのファイルをアップロードしたいのか、確認してください。',
 'windows-nonascii-filename' => 'このwikiではファイル名に特殊文字を使用できません。',
-'fileexists' => "ã\81\93ã\81®å\90\8då\89\8dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯æ\97¢ã\81«å­\98å\9c¨ã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82ç½®ã\81\8dæ\8f\9bã\81\88ã\82\8bã\81¹ã\81\8dã\81\8bã\81©ã\81\86ã\81\8b確信ã\81\8cã\82\82てない場合は、'''<tt>[[:$1]]</tt>'''を確認してください。
+'fileexists' => "ã\81\93ã\81®å\90\8då\89\8dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¯æ\97¢ã\81«å­\98å\9c¨ã\81\97ã\81¾ã\81\99ã\80\82ç½®ã\81\8dæ\8f\9bã\81\88ã\81¦ã\81\84ã\81\84ã\81\8bã\81©ã\81\86ã\81\8b確信ã\81\8cæ\8c\81てない場合は、'''<tt>[[:$1]]</tt>'''を確認してください。
 [[$1|thumb]]",
 'filepageexists' => "このファイルのための説明ページは既に'''<tt>[[:$1]]</tt>'''に作成されていますが、現在、ファイルが存在していません。
 入力した概要は説明ページに反映されません。
@@ -1855,7 +1857,7 @@ HTMLタグを見直してください。',
 'uploadwarning' => 'アップロード警告',
 'uploadwarning-text' => '下記のファイル解説を修正して再試行してください。',
 'savefile' => 'ファイルを保存',
-'uploadedimage' => '「[[$1]]」をアップロードしました',
+'uploadedimage' => '「[[$1]]」をアップロードしました',
 'overwroteimage' => '「[[$1]]」の新しい版をアップロードしました',
 'uploaddisabled' => 'アップロード機能は無効になっています。',
 'copyuploaddisabled' => 'URLからのアップロードは無効になっています。',
@@ -1881,9 +1883,9 @@ file_uploadsの設定を確認してください。',
 'filename-bad-prefix' => "アップロードしようとしているファイルの名前が'''「$1」'''から始まっていますが、これはデジタルカメラによって自動的に付与されるような具体性を欠いた名前です。
 ファイルの内容をより具体的に説明する名前を使用してください。",
 'filename-prefix-blacklist' => ' #<!-- この行はそのままにしておいてください --> <pre>
-# 構文は以下:
+# 構文は以下の通り:
 #   * "#" 記号から行末まではすべてがコメント
-#   * ç©ºã\81§ã\81ªã\81\84ã\81\99ã\81¹ã\81¦ã\81®è¡\8cã\81¯デジタルカメラによって自動的に付けられる典型的なファイル名の接頭辞
+#   * ç©ºã\81§ã\81¯ã\81ªã\81\84è¡\8cã\81¯ã\81\99ã\81¹ã\81¦デジタルカメラによって自動的に付けられる典型的なファイル名の接頭辞
 CIMG # カシオ
 DSC_ # ニコン
 DSCF # 富士フイルム
@@ -1934,11 +1936,11 @@ $1',
 'backend-fail-closetemp' => '一時ファイルを閉じることができませんでした。',
 'backend-fail-read' => 'ファイル $1 を読み込めませんでした。',
 'backend-fail-create' => 'ファイル $1 に書き込めませんでした。',
-'backend-fail-maxsize' => '{{PLURAL:$2|$2 バイト}}よりも大きいため、ファイル「$1」に書き込めませんでした。',
-'backend-fail-readonly' => 'ストレージバックエンド「$1」は現在読み取り専用です。理由:「$2」',
-'backend-fail-synced' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81¯ã\80\81ã\82¹ã\83\88ã\83¬ã\83¼ã\82¸ã\83\90ã\83\83ã\82¯ã\82¨ã\83³ã\83\89å\86\85é\83¨ã\81«ã\81\8aã\81\84ã\81¦ä¸\8dä¸\80è\87´ã\81®ç\8a¶æ\85\8bã\81«ã\81\82ã\82\8aã\81¾ã\81\99ã\80\82',
-'backend-fail-connect' => 'ã\82¹ã\83\88ã\83¬ã\83¼ã\82¸ã\83\90ã\83\83ã\82¯ã\82¨ã\83³ã\83\89ã\81«æ\8e¥ç¶\9aã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9fã\80\82ã\80\8c$1ã\80\8d',
-'backend-fail-internal' => 'ストレージバックエンド「$1」で原因不明のエラーが発生しました。',
+'backend-fail-maxsize' => 'サイズが {{PLURAL:$2|$2 バイト}}を超えているため、ファイル $1 に書き込めませんでした。',
+'backend-fail-readonly' => "ストレージバックエンド「$1」は現在読み取り専用です。理由:「''$2''」",
+'backend-fail-synced' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81¯ã\80\81ã\82¹ã\83\88ã\83¬ã\83¼ã\82¸ã\83\90ã\83\83ã\82¯ã\82¨ã\83³ã\83\89å\86\85é\83¨ã\81§ä¸\8dä¸\80è\87´ã\81®ç\8a¶æ\85\8bã\81«ã\81\82ã\82\8aã\81¾ã\81\99',
+'backend-fail-connect' => 'ã\82¹ã\83\88ã\83¬ã\83¼ã\82¸ã\83\90ã\83\83ã\82¯ã\82¨ã\83³ã\83\89ã\80\8c$1ã\80\8dã\81«æ\8e¥ç¶\9aã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9fã\80\82',
+'backend-fail-internal' => 'ストレージバックエンド「$1」内で不明なエラーが発生しました。',
 'backend-fail-contenttype' => '「$1」に保存するコンテンツの種類が判断できませんでした。',
 'backend-fail-batchsize' => 'ストレージバックエンドは $1 件のファイル{{PLURAL:$1|操作}}のバッチを与えられました; 上限は $2 件の{{PLURAL:$2|操作}}です。',
 
@@ -1947,7 +1949,7 @@ $1',
 'filejournal-fail-dbquery' => 'ストレージバックエンド「$1」のジャーナルデータベースを更新できません。',
 
 # Lock manager
-'lockmanager-notlocked' => 'ã\80\8c$1ã\80\8dã\82\92ã\82¢ã\83³ã\83­ã\83\83ã\82¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9fã\80\82ã\83­ã\83\83ã\82¯ã\81¯ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\80\82',
+'lockmanager-notlocked' => 'ã\80\8c$1ã\80\8dã\82\92ã\83­ã\83\83ã\82¯è§£é\99¤ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9fã\80\82ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\80\82',
 'lockmanager-fail-closelock' => '「$1」用のロックファイルを閉じることができませんでした。',
 'lockmanager-fail-deletelock' => '「$1」用のロックファイルを削除できませんでした。',
 'lockmanager-fail-acquirelock' => '「$1」用のロックを取得できませんでした。',
@@ -1980,8 +1982,8 @@ $1',
 'img-auth-nopathinfo' => 'PATH_INFO が見つかりません。
 サーバーが、この情報を渡すように構成されていません。
 CGI ベースであるため、img_auth に対応できない可能性もあります。
-https://www.mediawiki.org/wiki/Manual:Image_Authorization を参照してください。',
-'img-auth-notindir' => '要求されたパスは、設定済みのアップロード用ディレクトリーの中にありません。',
+https://www.mediawiki.org/wiki/Manual:Image_Authorization をご覧ください。',
+'img-auth-notindir' => '要求されたパスは、設定済みのアップロード用ディレクトリーにありません。',
 'img-auth-badtitle' => '「$1」からは有効なページ名を構築できません。',
 'img-auth-nologinnWL' => 'ログインしておらず、さらに「$1」はホワイトリストに入っていません。',
 'img-auth-nofile' => 'ファイル「$1」は存在しません。',
@@ -1990,9 +1992,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization を参照してくだ
 'img-auth-streaming' => '「$1」を転送中。',
 'img-auth-public' => 'img_auth.phpの機能は、非公開ウィキからのファイルの出力です。
 このウィキは公開ウィキとして構成されています。
\9c\80é\81©ã\81ªã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ã\83¼ã\81®ã\81\9fã\82\81ã\80\81img_auth.phpã\81¯ç\84¡å\8a¹å\8c\96ã\81\95ã\82\8cています。',
\9c\80é\81©ã\81ªã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ã\81®ã\81\9fã\82\81ã\80\81img_auth.phpã\82\92ç\84¡å\8a¹ã\81«ã\81\97ています。',
 'img-auth-noread' => '利用者は「$1」の読み取り権限を持っていません。',
-'img-auth-bad-query-string' => 'URLの中に無効なクエリ文字列があります。',
+'img-auth-bad-query-string' => 'URLの中に無効なクエリ文字列があります。',
 
 # HTTP errors
 'http-invalid-url' => '無効なURL:$1',
@@ -2059,7 +2061,7 @@ URLが正しいものであり、ウェブサイトが稼働していること
 'nolinkstoimage' => 'このファイルへリンクしているページはありません。',
 'morelinkstoimage' => 'このファイルへの[[Special:WhatLinksHere/$1|リンク元を更に]]を表示する。',
 'linkstoimage-redirect' => '$1 (リダイレクト) $2',
-'duplicatesoffile' => '以下の$1ファイルが、このファイルと内容が同一です([[Special:FileDuplicateSearch/$2|詳細]]):',
+'duplicatesoffile' => '以下の $1 {{PLURAL:$1|ファイル}}が、このファイルと重複しています([[Special:FileDuplicateSearch/$2|詳細]]):',
 'sharedupload' => 'このファイルは$1のものであり、他のプロジェクトで使用されている可能性があります。',
 'sharedupload-desc-there' => 'このファイルは$1のものであり、他のプロジェクトで使用されている可能性があります。
 詳細は[$2 ファイル解説ページ]を参照してください。',
@@ -2084,7 +2086,7 @@ $1での[$2 ファイル解説ページ]にある説明を編集したほうが
 'filerevert-comment' => '理由:',
 'filerevert-defaultcomment' => '$1$2の版へ差し戻し',
 'filerevert-submit' => '差し戻す',
-'filerevert-success' => "'''[[Media:$1|$1]]'''は[$4  $2$3の版]に差し戻されました。",
+'filerevert-success' => "'''[[Media:$1|$1]]'''は[$4 $2$3の版]に差し戻されました。",
 'filerevert-badversion' => 'このファイルに指定された時刻印を持つ過去の版はありません。',
 
 # File deletion
@@ -2143,9 +2145,9 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'statistics-header-hooks' => 'その他の統計',
 'statistics-articles' => '記事数',
 'statistics-pages' => '総ページ数',
-'statistics-pages-desc' => 'ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\82\84ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\81ªã\81©ã\82\92å\90«ã\82\93ã\81 ã\81\93ã\81®ã\82¦ã\82£ã\82­å\86\85ã\81®すべてのページです。',
+'statistics-pages-desc' => 'ã\82¦ã\82£ã\82­å\86\85ã\81®ã\80\81ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\80\81ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\81ªã\81©ã\82\92å\90«ã\82\80すべてのページです。',
 'statistics-files' => 'アップロードされたファイル数',
-'statistics-edits' => '{{SITENAME}}ã\81\8cé\96\8b設ã\81\95ã\82\8cã\81¦ã\81\8bã\82\89の編集回数の総計',
+'statistics-edits' => '{{SITENAME}}ã\81®é\96\8b設以é\99\8dの編集回数の総計',
 'statistics-edits-average' => '1ページあたりの編集回数',
 'statistics-views-total' => '総閲覧回数',
 'statistics-views-total-desc' => '存在しないページと特別ページに対する閲覧は含まれていません',
@@ -2203,7 +2205,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'popularpages' => '人気のページ',
 'wantedcategories' => 'カテゴリページが存在しないカテゴリ',
 'wantedpages' => 'ページが存在しないリンク',
-'wantedpages-badtitle' => '結果に不正なページ名が含まれています:$1',
+'wantedpages-badtitle' => '結果に正しくないページ名が含まれています:$1',
 'wantedfiles' => 'ファイル情報ページが存在しないファイル',
 'wantedfiletext-cat' => '以下のファイルは使用されていますが存在しません。外部リポジトリ由来のファイルは、存在していてもここに列挙される場合があります。その場合は<del>取り消し線</del>が付きます。さらに、存在しないファイルを埋め込んでいるページは[[:$1]]に列挙されます。',
 'wantedfiletext-nocat' => '以下のファイルは使用されていますが存在しません。外部リポジトリ由来のファイルは、存在していてもここに列挙される場合があります。その場合は<del>取り消し線</del>が付きます。',
@@ -2230,7 +2232,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'protectedtitlesempty' => 'これらの引数で現在保護されているページはありません。',
 'listusers' => '利用者の一覧',
 'listusers-editsonly' => '投稿記録のある利用者のみを表示',
-'listusers-creationsort' => '作成日順に整列',
+'listusers-creationsort' => '作成日順に並べ替え',
 'usereditcount' => '$1{{PLURAL:$1|回の編集}}',
 'usercreated' => '$1 $2 に{{GENDER:$3|作成}}',
 'newpages' => '新しいページ',
@@ -2245,8 +2247,8 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'notargettext' => 'この機能の実行対象となるページまたは利用者が指定されていません。',
 'nopagetitle' => 'そのようなページはありません',
 'nopagetext' => '指定したページは存在しません。',
-'pager-newer-n' => '以後の$1件',
-'pager-older-n' => '以前の$1件',
+'pager-newer-n' => '{{PLURAL:$1|以後の$1件}}',
+'pager-older-n' => '{{PLURAL:$1|以前の$1件}}',
 'suppress' => '秘匿する',
 'querypage-disabled' => 'パフォーマンスに悪影響を与えるおそれがあるため、この特別ページは無効になっています。',
 
@@ -2297,8 +2299,8 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 [[Special:UnusedCategories|未使用のカテゴリ]]はここには表示していません。
 [[Special:WantedCategories|望まれるカテゴリ]]も参照してください。',
 'categoriesfrom' => '最初に表示するカテゴリ:',
-'special-categories-sort-count' => '項目数順',
-'special-categories-sort-abc' => 'アルファベット順',
+'special-categories-sort-count' => '項目数順に並べ替え',
+'special-categories-sort-abc' => '辞書順に並べ替え',
 
 # Special:DeletedContributions
 'deletedcontributions' => '利用者の削除された投稿',
@@ -2311,7 +2313,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'linksearch-ns' => '名前空間:',
 'linksearch-ok' => '検索',
 'linksearch-text' => '"*.wikipedia.org" のようにワイルドカードを使用できます。
-少なくとも"*.org" のようなトップレベルドメインが必要です。<br />
+少なくとも "*.org" のようなトップレベルドメインが必要です。<br />
 対応プロトコル: <tt>$1</tt> (これらを検索に含めないでください)。',
 'linksearch-line' => '$1 が $2 からリンクされています',
 'linksearch-error' => 'ワイルドカードはホスト名の先頭でのみ使用できます。',
@@ -2398,7 +2400,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'watchnologin' => 'ログインしていません',
 'watchnologintext' => 'ウォッチリストを変更するためには、[[Special:UserLogin|ログイン]]している必要があります。',
 'addwatch' => 'ウォッチリストに追加',
-'addedwatchtext' => "ページ 「[[:$1]]」を[[Special:Watchlist|ウォッチリスト]]に追加しました。
+'addedwatchtext' => "ページ「[[:$1]]」を[[Special:Watchlist|ウォッチリスト]]に追加しました。
 このページと付属のトークページに変更があった際には、ウォッチリストに表示されます。また、ウォッチリストに登録されているページは[[Special:RecentChanges|最近の更新の一覧]]に'''太字'''で表示され、見つけやすくなります。",
 'removewatch' => 'ウォッチリストから除去',
 'removedwatchtext' => 'ページ「[[:$1]]」を[[Special:Watchlist|ウォッチリスト]]から除去しました。',
@@ -2409,13 +2411,13 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'notanarticle' => '記事ではありません',
 'notvisiblerev' => '別の利用者による最終版は削除されました',
 'watchnochange' => 'ウォッチリストに登録しているページで、指定期間内に編集されたものはありません。',
-'watchlist-details' => 'ウォッチリストには$1ページが登録されています(トークページは数えません)。',
+'watchlist-details' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています(トークページを除く)。',
 'wlheader-enotif' => '* メール通知が有効になっています',
 'wlheader-showupdated' => "* 最後に訪問したあとに変更されたページは、'''太字'''で表示されます",
 'watchmethod-recent' => '最近の更新内のウォッチされているページを確認中',
 'watchmethod-list' => 'ウォッチされているページ内の最近の更新を確認中',
-'watchlistcontains' => 'ウォッチリストには、$1ページが登録されています。',
-'iteminvalidname' => 'é \85ç\9b®ã\80\8c$1ã\80\8dã\81¯å\95\8fé¡\8cã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\81å\90\8då\89\8dã\81\8cä¸\8dæ­£ã\81§ã\81\99。',
+'watchlistcontains' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています。',
+'iteminvalidname' => 'é \85ç\9b®ã\80\8c$1ã\80\8dã\81«ã\81¯å\95\8fé¡\8cã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\81å\90\8då\89\8dã\81\8cæ­£ã\81\97ã\81\8fã\81\82ã\82\8aã\81¾ã\81\9bã\82\93。',
 'wlnote' => "$3 $4 までの{{PLURAL:$2|'''$2'''時間}}になされた{{PLURAL:$1|'''$1'''件の変更}}は以下の通りです。",
 'wlshowlast' => '次の期間で表示:$1時間、$2日間、$3',
 'watchlist-options' => 'ウォッチリストのオプション',
@@ -2492,10 +2494,10 @@ $UNWATCHURL
 ** 投稿者依頼
 ** 著作権侵害
 ** 荒らし',
-'delete-edit-reasonlist' => '削除理由を編集する',
-'delete-toobig' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81$1ç\89\88ã\82\88ã\82\8aå¤\9aã\81\84編集履歴があります。
+'delete-edit-reasonlist' => '削除理由を編集',
+'delete-toobig' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81$1ç\89\88ã\82\92è¶\85ã\81\88ã\82\8b編集履歴があります。
 このようなページの削除は、{{SITENAME}}の偶発的な問題を避けるため、制限されています。',
-'delete-warning-toobig' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81 $1ç\89\88ã\82\88ã\82\8aå¤\9aã\81\84編集履歴があります。
+'delete-warning-toobig' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81«ã\81¯ã\80\81 $1ç\89\88ã\82\92è¶\85ã\81\88ã\82\8b編集履歴があります。
 削除すると、{{SITENAME}}のデータベース処理に大きな負荷がかかります。
 十分に注意してください。',
 
@@ -2538,7 +2540,7 @@ $2による直前の版へ変更されました。',
 'protect-legend' => '保護の確認',
 'protectcomment' => '理由:',
 'protectexpiry' => '有効期限:',
-'protect_expiry_invalid' => '有効期間が不正です。',
+'protect_expiry_invalid' => '有効期間が正しくありません。',
 'protect_expiry_old' => '有効期限が過去の時刻です。',
 'protect-unchain-permissions' => '追加保護オプションをロック解除',
 'protect-text' => "ページ「'''$1'''」に対する保護レベルの表示と操作ができます。",
@@ -2570,7 +2572,7 @@ $2による直前の版へ変更されました。',
 ** 度重なるスパム投稿
 ** 非生産的な編集合戦
 ** 高負荷ページ',
-'protect-edit-reasonlist' => '保護理由を編集する',
+'protect-edit-reasonlist' => '保護理由を編集',
 'protect-expiry-options' => '1時間:1 hour,1日:1 day,1週間:1 week,2週間:2 weeks,1か月:1 month,3か月:3 months,6か月:6 months,1年:1 year,無期限:infinite',
 'restriction-type' => '許可:',
 'restriction-level' => '制限レベル:',
@@ -2592,14 +2594,14 @@ $2による直前の版へ変更されました。',
 # Undelete
 'undelete' => '削除されたページを表示',
 'undeletepage' => '削除されたページの表示と復元',
-'undeletepagetitle' => "'''以下は、[[:$1]]の削除された版です'''。",
+'undeletepagetitle' => "'''以下は、[[:$1|$1]]の削除された版です'''。",
 'viewdeletedpage' => '削除されたページを表示',
-'undeletepagetext' => '以下の{{PLURAL:$1|削除されたページ|削除されたページ群}}は、保存版に残っているため復元できます。
+'undeletepagetext' => '以下の{{PLURAL:$1|削除されたページ|&#32;$1 件の削除されたページ}}は、保存版に残っているため復元できます。
 保存版は定期的に消去される可能性があります。',
 'undelete-fieldset-title' => '削除された版の復元',
 'undeleteextrahelp' => "すべての版を復元する場合は、どのボックスにもチェックを入れていない状態で'''''{{int:undeletebtn}}'''''をクリックしてください。
 特定の版を復帰する場合は、復帰する版のボックスにチェックを入れた状態で'''''{{int:undeletebtn}}'''''をクリックしてください。",
-'undeleterevisions' => '$1版が保存されています',
+'undeleterevisions' => '保存版に$1{{PLURAL:$1|版}}あります',
 'undeletehistory' => 'ページの復帰を行うと、すべての版が履歴に復帰します。
 削除されたあとに同じ名前で新しくページが作成されていた場合、復帰した版はそれに先行する履歴として現れます。',
 'undeleterevdel' => '復帰した結果、版指定削除されているページまたはファイルの版が最新となる場合、復帰は実行されません。
@@ -2617,11 +2619,11 @@ $2による直前の版へ変更されました。',
 'undeletereset' => 'リセット',
 'undeleteinvert' => '選択を反転',
 'undeletecomment' => '理由:',
-'undeletedrevisions' => '$1版を復元しました',
-'undeletedrevisions-files' => '$1版と$2ファイルを復元しました',
-'undeletedfiles' => '$1ファイルを復帰しました',
+'undeletedrevisions' => '{{PLURAL:$1|$1版}}を復元しました',
+'undeletedrevisions-files' => '{{PLURAL:$1|$1版}}と{{PLURAL:$2|$2ファイル}}を復元しました',
+'undeletedfiles' => '{{PLURAL:$1|$1ファイル}}を復帰しました',
 'cannotundelete' => '復帰に失敗しました。
-誰かが、既にこのページを復帰した可能性があります。',
+他の誰かがこのページを既に復帰した可能性があります。',
 'undeletedpage' => "'''$1を復元しました。'''
 
 最近の削除と復帰の記録については[[Special:Log/delete|削除記録]]を参照してください。",
@@ -2634,7 +2636,7 @@ $2による直前の版へ変更されました。',
 'undelete-filename-mismatch' => 'ファイルの時刻印$1の版を復帰できません:ファイル名が一致しません。',
 'undelete-bad-store-key' => 'ファイルの時刻印$1の版を復帰できません:削除前にファイルが失われています。',
 'undelete-cleanup-error' => '未使用の保存版のファイル「$1」の削除中にエラーが発生しました。',
-'undelete-missing-filearchive' => 'データベースに存在しないため、ID$1を持つファイルの保存版を復元できません。
+'undelete-missing-filearchive' => 'データベースに存在しないため、ID $1を持つファイルの保存版を復元できません。
 既に復帰されている可能性があります。',
 'undelete-error' => 'ページの復帰エラー',
 'undelete-error-short' => 'ファイルの復帰エラー:$1',
@@ -2647,7 +2649,7 @@ $1',
 # Namespace form on various pages
 'namespace' => '名前空間:',
 'invert' => '選択したものを除く',
-'tooltip-invert' => 'é\81¸æ\8a\9eã\81\97ã\81\9få\90\8då\89\8d空é\96\93ï¼\88ã\83\81ã\82§ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9få\90\8då\89\8d空é\96\93ã\82\82ï¼\89ã\81®ã\83\9aã\83¼ã\82¸ã\81®å¤\89æ\9b´ã\82\92é\9d\9e表示ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81ã\81\93ã\81®ã\83\9cã\83\83ã\82¯ã\82¹ã\81«ã\83\81ã\82§ã\83\83ã\82¯ã\82\92å\85¥ã\82\8cã\81¾ã\81\99ã\80\82',
+'tooltip-invert' => 'é\81¸æ\8a\9eã\81\97ã\81\9få\90\8då\89\8d空é\96\93ï¼\88ã\83\81ã\82§ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81¯ã\80\81é\96¢é\80£ä»\98ã\81\91ã\82\89ã\82\8cã\81\9få\90\8då\89\8d空é\96\93ã\82\82ï¼\89ã\81®ã\83\9aã\83¼ã\82¸ã\81®å¤\89æ\9b´ã\82\92é\9d\9e表示ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81ã\81\93ã\81®ã\83\9cã\83\83ã\82¯ã\82¹ã\81«ã\83\81ã\82§ã\83\83ã\82¯ã\82\92å\85¥ã\82\8cã\82\8b',
 'namespace_association' => '対応付けられた名前空間',
 'tooltip-namespace_association' => '選択した名前空間に関連付けられているトークページまたは対象の名前空間も含めるには、このボックスにチェックを入れる',
 'blanknamespace' => '(標準)',
@@ -2739,11 +2741,11 @@ $1',
 'blockipsuccesssub' => 'ブロックしました',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]をブロックしました。<br />
 [[Special:BlockList|ブロックの一覧]]を参照してください。',
-'ipb-blockingself' => '自分自身をブロックしようとしています本当に実行しますか?',
+'ipb-blockingself' => '自分自身をブロックしようとしています本当に実行しますか?',
 'ipb-confirmhideuser' => '秘匿が有効になっている利用者をブロックしようとしています。実行すると、すべてのリストやログでこの利用者名が表示されません。本当に実行しますか?',
-'ipb-edit-dropdown' => 'ブロック理由を編集する',
+'ipb-edit-dropdown' => 'ブロック理由を編集',
 'ipb-unblock-addr' => '$1のブロックを解除',
-'ipb-unblock' => '利用者またはIPアドレスのブロックを解除する',
+'ipb-unblock' => '利用者またはIPアドレスのブロックを解除',
 'ipb-blocklist' => '現在有効なブロックを表示',
 'ipb-blocklist-contribs' => '$1の投稿の一覧',
 'unblockip' => 'ブロックを解除',
@@ -2763,7 +2765,7 @@ $1',
 'blocklist-target' => '対象',
 'blocklist-expiry' => '期限',
 'blocklist-by' => 'ブロックした管理者',
-'blocklist-params' => 'ブロックのパラメータ',
+'blocklist-params' => 'ブロックのパラメータ',
 'blocklist-reason' => '理由',
 'ipblocklist-submit' => '検索',
 'ipblocklist-localblock' => 'ローカルでのブロック',
@@ -2778,12 +2780,12 @@ $1',
 'ipblocklist-empty' => 'ブロック一覧は空です。',
 'ipblocklist-no-results' => '指定されたIPアドレスまたは利用者名はブロックされていません。',
 'blocklink' => 'ブロック',
-'unblocklink' => 'ブロック解除',
+'unblocklink' => 'ブロック解除',
 'change-blocklink' => '設定を変更',
 'contribslink' => '投稿記録',
 'emaillink' => 'メールを送信',
-'autoblocker' => '使用中のIPアドレスが「[[User:$1|$1]]」に使用されたため、自動ブロックされています。
-$1のブロックの理由は「$2」です。',
+'autoblocker' => "ご使用中のIPアドレスが「[[User:$1|$1]]」に使用されたため、自動ブロックされています。
+$1のブロックの理由は「''$2''」です。",
 'blocklogpage' => 'ブロック記録',
 'blocklog-showlog' => 'この利用者は以前にブロックされたことがあります。
 参考のため、ブロックの記録を以下に示します:',
@@ -2810,8 +2812,7 @@ $1のブロックの理由は「$2」です。',
 'ipb-needreblock' => '$1 は既にブロックされています。設定を変更しますか?',
 'ipb-otherblocks-header' => 'その他の{{PLURAL:$1|ブロック}}',
 'unblock-hideuser' => '利用者名が隠されているため、この利用者のブロックを解除できません。',
-'ipb_cant_unblock' => 'エラー:ブロック ID $1 がありません。
-ブロックが既に解除されている可能性があります。',
+'ipb_cant_unblock' => 'エラー:ブロック ID $1 はありません。ブロックが既に解除されている可能性があります。',
 'ipb_blocked_as_range' => 'エラー:IPアドレス$1は直接ブロックされておらず、ブロック解除できませんでした。
 ただし、$2の範囲でブロックされており、こちらのブロックは別途解除できます。',
 'ip_range_invalid' => '不正なIP範囲です。',
@@ -2819,16 +2820,16 @@ $1のブロックの理由は「$2」です。',
 'blockme' => '自分をブロック',
 'proxyblocker' => 'プロキシブロック係',
 'proxyblocker-disabled' => 'この機能は無効になっています。',
-'proxyblockreason' => '使用中のIPアドレスは公開プロキシであるため投稿ブロックされています。
-使ç\94¨ä¸­ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\82µã\83¼ã\83\93ã\82¹ã\83\97ã\83­ã\83\90ã\82¤ã\83\80ã\83¼ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯æ\89\80å±\9eçµ\84ç¹\94ã\81®æ\8a\80è¡\93æ\8b\85å½\93è\80\85ã\81«é\80£çµ¡ã\82\92å\8f\96ã\82\8aã\80\81ã\81\93ã\82\8cã\81\8cæ·±å\88»ã\81ªã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ã\83¼問題であることを伝えてください。',
+'proxyblockreason' => '使用中のIPアドレスは公開プロキシであるため投稿ブロックされています。
+使ç\94¨ä¸­ã\81®ã\82¤ã\83³ã\82¿ã\83¼ã\83\8dã\83\83ã\83\88ã\82µã\83¼ã\83\93ã\82¹ã\83\97ã\83­ã\83\90ã\82¤ã\83\80ã\83¼ã\80\81ã\81¾ã\81\9fã\81¯æ\89\80å±\9eçµ\84ç¹\94ã\81®æ\8a\80è¡\93æ\8b\85å½\93è\80\85ã\81«é\80£çµ¡ã\81\97ã\81¦ã\80\81ã\81\93ã\82\8cã\81\8cæ·±å\88»ã\81ªã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£問題であることを伝えてください。',
 'proxyblocksuccess' => '完了。',
-'sorbsreason' => '使用中のIPアドレスが、{{SITENAME}}の使用しているDNSBLに公開プロキシとして記載されています。',
-'sorbs_create_account_reason' => '使用中のIPアドレスが、{{SITENAME}}の使用しているDNSBLに公開プロキシとして記載されています。
-アカウントは作成できません',
+'sorbsreason' => '使用中のIPアドレスが、{{SITENAME}}の使用しているDNSBLに公開プロキシとして記載されています。',
+'sorbs_create_account_reason' => '使用中のIPアドレスが、{{SITENAME}}の使用しているDNSBLに公開プロキシとして記載されています。
+アカウント作成はできません',
 'cant-block-while-blocked' => 'ブロックされている間は、他の利用者をブロックできません。',
 'cant-see-hidden-user' => '投稿ブロックしようとした利用者は、既にブロックされ隠されています。
 hideuser権限を持っていないため、この利用者のブロックを閲覧または編集できません。',
-'ipbblocked' => '自分をブロックしているため、他の利用者のブロックやブロック解除はできません',
+'ipbblocked' => '自分自身をブロックしているため、他の利用者のブロックやブロック解除はできません',
 'ipbnounblockself' => '自分自身のブロックは解除できません',
 
 # Developer tools
@@ -2838,7 +2839,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 本当にデータベースをロックしていいかどうか確認し、メンテナンスが終了したらロックを解除してください。',
 'unlockdbtext' => 'データベースのロックを解除すると、すべての利用者がページの編集や、個人設定の変更、ウォッチリストの編集、その他データベースでの変更を要求する作業ができるようになります。
 本当にデータベースのロックを解除していいかどうか確認してください。',
-'lockconfirm' => 'æ\9c¬å½\93ã\81«ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92ã\83­ã\83\83ã\82¯ã\81\99ã\82\8b。',
+'lockconfirm' => 'æ\9c¬å½\93ã\81«ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92ã\83­ã\83\83ã\82¯ã\81\97ã\81¾ã\81\99。',
 'unlockconfirm' => '本当にデータベースのロックを解除します。',
 'lockbtn' => 'データベースをロック',
 'unlockbtn' => 'データベースのロックを解除',
@@ -2859,7 +2860,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'movepagetext' => "下のフォームを利用すると、ページ名が変更され、その履歴も変更先へ移動します。
 古いページは変更先へのリダイレクトページとなります。
 変更前のページへのリダイレクトは自動的に修正できます。
-自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重リダイレクト]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。リンクを正しく維持するのはあなたの責任です。
+自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重リダイレクト]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。リンクを正しく維持するのは移動した人の責任です。
 
 移動先が既に存在する場合は、そのページが空またはリダイレクトで、かつ過去の版を持たない場合を除いて移動'''できません'''。つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
 
@@ -2876,13 +2877,13 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 '''警告!'''
 多く閲覧されたりリンクされているページを移動すると、予期せぬ大きな変化が起こるかもしれません。
 ページの移動に伴う影響をよく考えてから移動してください。",
-'movepagetalktext' => '関連付けられたトークページは、自動的に一緒に移動されます。ただしこれは、以下の場合を除きます
-* 空でないトークページが新しい名前で存在する場合
+'movepagetalktext' => '関連付けられたトークページは、自動的に一緒に移動されます。ただしこれは、以下の場合を除きます
+* ç©ºã\81§ã\81¯ã\81ªã\81\84ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\81\8cæ\96°ã\81\97ã\81\84å\90\8då\89\8dã\81§å­\98å\9c¨ã\81\99ã\82\8bå ´å\90\88
 * 下のボックスのチェックを消した場合
 
 これらの場合、必要に応じて、トークページを移動または統合する必要があります。',
 'movearticle' => '移動するページ:',
-'moveuserpage-warning' => "'''è­¦å\91\8aï¼\9a'''å\88©ç\94¨è\80\85ã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82移å\8b\95ã\82\92è¡\8cã\81£ã\81\9få ´å\90\88ã\80\81ã\83\9aã\83¼ã\82¸ã\81 ã\81\91が移動され、利用者名は''変更されない''点に注意してください。",
+'moveuserpage-warning' => "'''è­¦å\91\8aï¼\9a'''å\88©ç\94¨è\80\85ã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82移å\8b\95ã\81\97ã\81\9få ´å\90\88ã\80\81ã\83\9aã\83¼ã\82¸ã\81®ã\81¿が移動され、利用者名は''変更されない''点に注意してください。",
 'movenologin' => 'ログインしていません',
 'movenologintext' => 'ページを移動するためには、登録利用者でありかつ、[[Special:UserLogin|ログイン]]している必要があります。',
 'movenotallowed' => 'ページを移動する権限がありません。',
@@ -2898,7 +2899,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'movepage-moved-noredirect' => 'リダイレクトは作成されませんでした。',
 'articleexists' => '指定された移動先には既にページが存在するか、名前が不適切です。
 別の名前を選択してください。',
-'cantmove-titleprotected' => '新しいページ名が作成保護されているため、この場所にページを移動できません',
+'cantmove-titleprotected' => '新しいページ名が作成保護されているため、この場所にページを移動できません',
 'talkexists' => "'''ページ自身は無事に移動されましたが、トークページは移動先のページが存在したため移動できませんでした。
 手動で統合してください。'''",
 'movedto' => '移動先:',
@@ -2923,10 +2924,10 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'delete_and_move_confirm' => 'はい、ページを削除します',
 'delete_and_move_reason' => '「[[$1]]」からの移動のために削除',
 'selfmove' => '移動元と移動先のページ名が同じです。
\87ªå\88\86è\87ªèº«ã\81¸は移動できません。',
-'immobile-source-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¯できません',
-'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¯できません',
-'immobile-target-namespace-iw' => 'ウィキ間リンクは、ページの移動では不正な対象です。',
\87ªå\88\86è\87ªèº«ã\81«は移動できません。',
+'immobile-source-namespace' => 'ã\80\8c$1ã\80\8då\90\8då\89\8d空é\96\93ã\81®ã\83\9aã\83¼ã\82¸ã\81¯ç§»å\8b\95できません',
+'immobile-target-namespace' => 'ã\80\8c$1ã\80\8då\90\8då\89\8d空é\96\93ã\81«ã\81¯ã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95できません',
+'immobile-target-namespace-iw' => 'ウィキ間リンクは、ページの移動先には指定できません。',
 'immobile-source-page' => 'このページは移動できません。',
 'immobile-target-page' => '対象ページ名に移動させることはできません。',
 'imagenocrossnamespace' => 'ファイルを、ファイル名前空間以外に移動させることはできません',
@@ -2936,9 +2937,9 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'fix-double-redirects' => 'このページへのリダイレクトがあればそのリダイレクトを修正',
 'move-leave-redirect' => '移動元にリダイレクトを作成する',
 'protectedpagemovewarning' => "'''警告:'''このページは保護されているため、管理者権限を持つ利用者のみが移動できます。
-参考として以下に一番最後の記録を表示します:",
+参考として以下に最後の記録を表示します:",
 'semiprotectedpagemovewarning' => "'''注意:'''このページは保護されているため、登録利用者のみが移動できます。
-参考として以下に一番最後の記録を表示します:",
+参考として以下に最後の記録を表示します:",
 'move-over-sharedrepo' => '== ファイルが存在します ==
 [[:$1]]は共有リポジトリ上に存在します。ファイルをこの名前に移動すると共有ファイルを上書きします。',
 'file-exists-sharedrepo' => '選ばれたファイル名は既に共有リポジトリ上で使用されています。
@@ -3013,18 +3014,18 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'importtext' => '元のウィキで[[Special:Export|書き出し機能]]を使用してファイルに書き出してください。
 それをコンピューターに保存した後、こちらへアップロードしてください。',
 'importstart' => 'ページを取り込み中...',
-'import-revision-count' => '$1',
+'import-revision-count' => '$1{{PLURAL:$1|版}}',
 'importnopages' => '取り込むページがありません。',
 'imported-log-entries' => '$1 件の{{PLURAL:$1|記録項目}}を取り込みました。',
 'importfailed' => '取り込みに失敗しました:<nowiki>$1</nowiki>',
 'importunknownsource' => '取り込み元のタイプが不明です',
 'importcantopen' => '取り込みファイルが開けませんでした',
 'importbadinterwiki' => 'ウィキ間リンクが正しくありません',
-'importnotext' => '空かもしくは本文がありません',
+'importnotext' => '内容が空、または本文がありません',
 'importsuccess' => '取り込みが完了しました!',
 'importhistoryconflict' => '取り込み時にいくつかの版が競合しました(以前に同じページが取り込まれているかもしれません)',
 'importnosources' => 'ウィキ間移動の取り込み元が定義されていないため、履歴の直接アップロードは無効になっています。',
-'importnofile' => 'ファイルがアップロードされませんでした',
+'importnofile' => '取り込みファイルはアップロードされませんでした。',
 'importuploaderrorsize' => '取り込みファイルのアップロードに失敗しました。
 ファイルが、アップロードできるサイズを超えています。',
 'importuploaderrorpartial' => '取り込みファイルのアップロードに失敗しました。
@@ -3041,17 +3042,17 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'import-invalid-interwiki' => '指定されたウィキから取り込めませんでした。',
 'import-error-edit' => 'あなたにそのページを編集する許可がないため、ページ「$1」は取り込まれませんでした。',
 'import-error-create' => 'あなたにそのページを作成する許可がないため、ページ「$1」は取り込まれませんでした。',
-'import-error-interwiki' => 'å\90\8då\89\8dã\81\8cå¤\96é\83¨ã\83ªã\83³ã\82¯ (interwiki) ã\81«äº\88ç´\84ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\9fã\82\81ã\83\9aã\83¼ã\82¸ã\80\8c$1ã\80\8dã\82\92ã\82¤ã\83³ã\83\9dã\83¼ã\83\88ã\81\97ませんでした。',
-'import-error-special' => 'ページ「$1」は、ページが許可されない特別名前空間に属しているためインポートしません。',
-'import-error-invalid' => '名前が正しくないため、ページ「$1」をインポートしませんでした。',
+'import-error-interwiki' => 'å\90\8då\89\8dã\81\8cå¤\96é\83¨ã\83ªã\83³ã\82¯ (interwiki) ã\81«äº\88ç´\84ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\81\9fã\82\81ã\80\81ã\83\9aã\83¼ã\82¸ã\80\8c$1ã\80\8dã\82\92å\8f\96ã\82\8aè¾¼ã\81¿ませんでした。',
+'import-error-special' => 'ページ「$1」は、ページが許可されない特別名前空間に属しているため取り込みません。',
+'import-error-invalid' => '名前が正しくないため、ページ「$1」を取り込みませんでした。',
 
 # Import log
 'importlogpage' => '取り込み記録',
 'importlogpagetext' => '管理された他のウィキから編集履歴を伴ったページ取り込みです。',
 'import-logentry-upload' => 'ファイルのアップロードにより[[$1]]を取り込みました',
-'import-logentry-upload-detail' => '$1',
+'import-logentry-upload-detail' => '$1{{PLURAL:$1|版}}',
 'import-logentry-interwiki' => '$1をウィキ間移動しました',
-'import-logentry-interwiki-detail' => '$2の$1',
+'import-logentry-interwiki-detail' => '$2の$1{{PLURAL:$1|版}}',
 
 # JavaScriptTest
 'javascripttest' => 'JavaScript をテスト中',
@@ -3070,34 +3071,34 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-pt-mytalk' => '自分のトークページ',
 'tooltip-pt-anontalk' => 'このIPアドレスからなされた編集についての議論',
 'tooltip-pt-preferences' => '個人設定',
-'tooltip-pt-watchlist' => '変更を監視しているページの一覧',
+'tooltip-pt-watchlist' => '変更をウォッチしているページの一覧',
 'tooltip-pt-mycontris' => '自分の投稿の一覧',
-'tooltip-pt-login' => 'ã\83­ã\82°ã\82¤ã\83³ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cæ\8e¨å¥¨ã\81\95ã\82\8cます。ただし、必須ではありません。',
-'tooltip-pt-anonlogin' => 'ã\83­ã\82°ã\82¤ã\83³ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cæ\8e¨å¥¨ã\81\95ã\82\8cます。ただし、必須ではありません。',
+'tooltip-pt-login' => 'ã\83­ã\82°ã\82¤ã\83³ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\8e¨å¥¨ã\81\97ます。ただし、必須ではありません。',
+'tooltip-pt-anonlogin' => 'ã\83­ã\82°ã\82¤ã\83³ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ\8e¨å¥¨ã\81\97ます。ただし、必須ではありません。',
 'tooltip-pt-logout' => 'ログアウト',
 'tooltip-ca-talk' => '本文ページについての議論',
-'tooltip-ca-edit' => 'このページを編集できます。保存する前にプレビューボタンを使用してください。',
-'tooltip-ca-addsection' => '新しい節を開始',
+'tooltip-ca-edit' => 'このページを編集できます。保存前にプレビューボタンを使用してください。',
+'tooltip-ca-addsection' => '新しい節を開始する',
 'tooltip-ca-viewsource' => 'このページは保護されています。
 ページのソースを閲覧できます。',
 'tooltip-ca-history' => 'このページの過去の版',
-'tooltip-ca-protect' => 'このページを保護',
-'tooltip-ca-unprotect' => 'このページの保護設定を変更',
-'tooltip-ca-delete' => 'このページを削除',
-'tooltip-ca-undelete' => '削除される前になされた編集を復元',
-'tooltip-ca-move' => 'このページを移動',
-'tooltip-ca-watch' => 'このページをウォッチリストに追加',
-'tooltip-ca-unwatch' => 'このページをウォッチリストから除去',
-'tooltip-search' => '{{SITENAME}}内を検索',
-'tooltip-search-go' => 'å\8e³å¯\86ã\81«ä¸\80è\87´ã\81\99ã\82\8bå\90\8då\89\8dã\81®ã\83\9aã\83¼ã\82¸ã\81\8cå­\98å\9c¨ã\81\99ã\82\8cã\81°ã\80\81ã\81\9dã\81®ã\83\9aã\83¼ã\82¸ã\81¸ç§»å\8b\95ã\81\97ã\81¾ã\81\99',
-'tooltip-search-fulltext' => 'å\85¥å\8a\9bã\81\95ã\82\8cã\81\9fæ\96\87å­\97å\88\97ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\82\92æ¤\9cç´¢ã\81\97ã\81¾ã\81\99',
-'tooltip-p-logo' => 'メインページに移動',
-'tooltip-n-mainpage' => 'メインページに移動',
+'tooltip-ca-protect' => 'このページを保護する',
+'tooltip-ca-unprotect' => 'このページの保護設定を変更する',
+'tooltip-ca-delete' => 'このページを削除する',
+'tooltip-ca-undelete' => '削除される前になされた編集を復元する',
+'tooltip-ca-move' => 'このページを移動する',
+'tooltip-ca-watch' => 'このページをウォッチリストに追加する',
+'tooltip-ca-unwatch' => 'このページをウォッチリストから除去する',
+'tooltip-search' => '{{SITENAME}}内を検索する',
+'tooltip-search-go' => 'å\8e³å¯\86ã\81«ä¸\80è\87´ã\81\99ã\82\8bå\90\8då\89\8dã\81®ã\83\9aã\83¼ã\82¸ã\81\8cå­\98å\9c¨ã\81\99ã\82\8cã\81°ã\80\81ã\81\9dã\81®ã\83\9aã\83¼ã\82¸ã\81¸ç§»å\8b\95ã\81\99ã\82\8b',
+'tooltip-search-fulltext' => 'å\85¥å\8a\9bã\81\97ã\81\9fæ\96\87å­\97å\88\97ã\81\8cå\90«ã\81¾ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\82\92æ¤\9cç´¢ã\81\99ã\82\8b',
+'tooltip-p-logo' => 'メインページに移動する',
+'tooltip-n-mainpage' => 'メインページに移動する',
 'tooltip-n-mainpage-description' => 'メインページに移動する',
 'tooltip-n-portal' => 'このプロジェクトについて、できること、情報を入手する場所',
 'tooltip-n-currentevents' => '最近の出来事の背景を知る',
 'tooltip-n-recentchanges' => 'このウィキにおける最近の更新の一覧',
-'tooltip-n-randompage' => '無作為に選れたページを読み込む',
+'tooltip-n-randompage' => '無作為に選択されたページを読み込む',
 'tooltip-n-help' => '情報を得る場所',
 'tooltip-t-whatlinkshere' => 'ここにリンクしている全ウィキページの一覧',
 'tooltip-t-recentchangeslinked' => 'このページからリンクしているページの最近の更新',
@@ -3120,18 +3121,18 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-ca-nstab-help' => 'ヘルプページを表示',
 'tooltip-ca-nstab-category' => 'カテゴリページを閲覧',
 'tooltip-minoredit' => 'この編集に細部の変更の印を付ける',
-'tooltip-save' => '変更を保存',
+'tooltip-save' => '変更を保存する',
 'tooltip-preview' => '変更をプレビューで確認できます。保存前に使用してください!',
-'tooltip-diff' => '文章中で変更した箇所を表示',
-'tooltip-compareselectedversions' => 'é\81¸æ\8a\9eã\81\95ã\82\8cã\81\9fäº\8cã\81¤ã\81®ç\89\88ã\81®å·®å\88\86ã\82\92表示ã\81\97ã\81¾ã\81\99ã\80\82',
+'tooltip-diff' => '文章中で変更した箇所を表示する',
+'tooltip-compareselectedversions' => 'é\81¸æ\8a\9eã\81\97ã\81\9f\81¤ã\81®ç\89\88ã\81®å·®å\88\86ã\82\92表示ã\81\99ã\82\8b',
 'tooltip-watch' => 'このページをウォッチリストに追加する',
-'tooltip-watchlistedit-normal-submit' => 'ã\82¿ã\82¤ã\83\88ã\83«ã\82\92å\89\8aé\99¤',
-'tooltip-watchlistedit-raw-submit' => 'ウォッチリストを更新',
+'tooltip-watchlistedit-normal-submit' => 'ã\83\9aã\83¼ã\82¸ã\82\92é\99¤å\8e»ã\81\99ã\82\8b',
+'tooltip-watchlistedit-raw-submit' => 'ウォッチリストを更新する',
 'tooltip-recreate' => '削除されていても、ページを再作成する',
-'tooltip-upload' => 'アップロードを開始',
+'tooltip-upload' => 'アップロードを開始する',
 'tooltip-rollback' => '「巻き戻し」は、このページの最後の編集者によるこのページへの編集を1クリックで差し戻します',
 'tooltip-undo' => '「取り消し」はこの編集を差し戻し、編集画面をプレビューを付けて開きます。要約欄に取り消しの理由を追加できます。',
-'tooltip-preferences-save' => '設定を保存',
+'tooltip-preferences-save' => '設定を保存する',
 'tooltip-summary' => '短い要約を入力してください',
 
 # Stylesheets
@@ -3203,8 +3204,8 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'pageinfo-watchers' => 'ウォッチリストに入れている利用者数',
 'pageinfo-edits' => '編集回数',
 'pageinfo-authors' => '投稿者数',
-'pageinfo-views' => '閲覧数',
-'pageinfo-viewsperedit' => '閲覧回数に対する編集回数',
+'pageinfo-views' => '閲覧数',
+'pageinfo-viewsperedit' => '1編集あたりの閲覧回数',
 
 # Skin names
 'skinname-standard' => 'クラシック',
@@ -3221,11 +3222,11 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'markaspatrolleddiff' => '巡回済みにする',
 'markaspatrolledtext' => 'このページを巡回済みにする',
 'markedaspatrolled' => '巡回済みにしました',
-'markedaspatrolledtext' => '選択された[[:$1|$1]]の版を巡回済みにしました。',
+'markedaspatrolledtext' => '[[:$1]]の、選択した版を巡回済みにしました。',
 'rcpatroldisabled' => '最近の更新の巡回は無効です',
 'rcpatroldisabledtext' => '最近の更新の巡回機能は現在無効になっています。',
-'markedaspatrollederror' => '巡回済みにできません',
-'markedaspatrollederrortext' => 'å·¡å\9b\9eæ¸\88ã\81¿ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81ç\89\88ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82',
+'markedaspatrollederror' => '巡回済みにできません',
+'markedaspatrollederrortext' => '巡回済みにするには、版を指定する必要があります。',
 'markedaspatrollederror-noautopatrol' => '自分の編集を巡回済みにする権限がありません。',
 
 # Patrol log
@@ -3272,7 +3273,7 @@ $1',
 
 # Special:NewFiles
 'newimages' => '新しいファイルのギャラリー',
-'imagelisttext' => "以下は、'''$1'''ファイルの$2で並び替えられた一覧です。",
+'imagelisttext' => "以下は、'''$1'''{{PLURAL:$1|ファイル}}の$2で並べ替えた一覧です。",
 'newimages-summary' => 'この特別ページでは、最近アップロードされたファイルを表示します。',
 'newimages-legend' => '絞り込み',
 'newimages-label' => 'ファイル名(またはその一部):',
@@ -3285,8 +3286,8 @@ $1',
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'video-dims' => '$1、 $2 × $3',
 'seconds' => '{{PLURAL:$1|$1 秒}}',
-'minutes' => '{{PLURAL:$1|$1分}}',
-'hours' => '{{PLURAL:$1|$1時間}}',
+'minutes' => '{{PLURAL:$1|$1 分}}',
+'hours' => '{{PLURAL:$1|$1 時間}}',
 'days' => '{{PLURAL:$1|$1 日}}',
 'ago' => '$1前',
 
@@ -3295,7 +3296,7 @@ $1',
 
 箇条書き項目(*で始まる行)のみが考慮されます。
 各行最初のリンクは、好ましくないファイルへのリンクとしてください。
\90\8cã\81\98è¡\8cã\81§ã\81\9dã\82\8c以é\99\8dã\81«ã\81\82ã\82\8bã\83ªã\83³ã\82¯ã\81¯ä¾\8bå¤\96ã\80\81ã\81¤ã\81¾ã\82\8aã\82¤ã\83³ã\83©ã\82¤ã\83³æ\8c¿å\85¥ã\81\95ã\82\8cã\81¦ã\82\82ã\82\88ã\81\84ã\83\9aã\83¼ã\82¸ã\81¨ã\81¿なされます。',
\90\8cã\81\98è¡\8cã\81§ã\81\9dã\82\8c以é\99\8dã\81«ã\81\82ã\82\8bã\83ªã\83³ã\82¯ã\81¯ä¾\8bå¤\96ã\80\81ã\81¤ã\81¾ã\82\8aã\82¤ã\83³ã\83©ã\82¤ã\83³æ\8c¿å\85¥ã\81\95ã\82\8cã\81¦ã\82\82ã\81\84ã\81\84ã\83\9aã\83¼ã\82¸ã\81¨è¦\8bなされます。',
 
 /*
 Short names for language variants used for language conversion links.
@@ -3303,20 +3304,20 @@ To disable showing a particular link, set it to 'disable', e.g.
 'variantname-zh-sg' => 'disable',
 Variants for Chinese language
 */
-'variantname-zh-hans' => '簡体',
-'variantname-zh-hant' => '繁体',
+'variantname-zh-hans' => '中国語(簡体)',
+'variantname-zh-hant' => '中国語(繁体)',
 'variantname-zh-cn' => '中国簡体',
 'variantname-zh-tw' => '台湾正体',
 'variantname-zh-hk' => '香港正体',
-'variantname-zh-mo' => 'マカオ',
+'variantname-zh-mo' => 'マカオ繁体',
 'variantname-zh-sg' => 'シンガポール簡体',
-'variantname-zh-my' => 'マレーシア',
-'variantname-zh' => '中',
+'variantname-zh-my' => 'マレーシア簡体',
+'variantname-zh' => '中国語',
 
 # Variants for Gan language
-'variantname-gan-hans' => 'hans',
-'variantname-gan-hant' => 'hant',
-'variantname-gan' => 'ã\82¬ã\82¬ã\82¦ã\82º語',
+'variantname-gan-hans' => 'カン語(簡体)',
+'variantname-gan-hant' => 'カン語(繁体)',
+'variantname-gan' => 'ã\82«ã\83³語',
 
 # Variants for Serbian language
 'variantname-sr-ec' => 'セルビア語 (キリル文字)',
@@ -3353,7 +3354,7 @@ Variants for Chinese language
 このファイルが元の状態から変更されている場合、いくつかの項目は、修正されたファイルを完全に反映していないかもしれません。',
 'metadata-expand' => '拡張項目を表示',
 'metadata-collapse' => '拡張項目を非表示',
-'metadata-fields' => 'ã\81\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81«ã\81\82ã\82\8bEXIFメタデータフィールドは、メタデータ表を折り畳んだ状態のときに画像ページに読み込まれます。
+'metadata-fields' => 'ã\81\93ã\81®ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81§å\88\97æ\8c\99ã\81\97ã\81¦ã\81\84ã\82\8bç\94»å\83\8fメタデータフィールドは、メタデータ表を折り畳んだ状態のときに画像ページに読み込まれます。
 他のものは既定では非表示です。
 * make
 * model
@@ -3380,10 +3381,10 @@ Variants for Chinese language
 'exif-planarconfiguration' => '画像データの並び',
 'exif-ycbcrsubsampling' => 'YCCの画素構成 (Cの間引き率)',
 'exif-ycbcrpositioning' => 'YCCの画素構成 (YとCの位置)',
-'exif-xresolution' => '画像の幅の解像度',
-'exif-yresolution' => '画像の高さの解像度',
+'exif-xresolution' => '水平方向の解像度',
+'exif-yresolution' => '垂直方向の解像度',
 'exif-stripoffsets' => '画像データのロケーション',
-'exif-rowsperstrip' => '1ストリップごとの行数',
+'exif-rowsperstrip' => '1ストリップごとの行数',
 'exif-stripbytecounts' => 'ストリップの総バイト数',
 'exif-jpeginterchangeformat' => 'JPEGのSOIへのオフセット',
 'exif-jpeginterchangeformatlength' => 'JPEGデータのバイト数',
@@ -3393,8 +3394,8 @@ Variants for Chinese language
 'exif-referenceblackwhite' => '参照黒色点値と参照白色点値',
 'exif-datetime' => 'ファイル変更日時',
 'exif-imagedescription' => '画像の説明',
-'exif-make' => '画像入力機器のメーカ名',
-'exif-model' => '画像入力機器のモデル名',
+'exif-make' => '撮影機器のメーカー名',
+'exif-model' => '撮影機器のモデル名',
 'exif-software' => '使用ソフトウェア名',
 'exif-artist' => '作者名',
 'exif-copyright' => '撮影著作権者/編集著作権者',
@@ -3417,14 +3418,14 @@ Variants for Chinese language
 'exif-fnumber' => 'F値',
 'exif-exposureprogram' => '露出プログラム',
 'exif-spectralsensitivity' => 'スペクトル感度',
-'exif-isospeedratings' => 'ISOスピードレート',
+'exif-isospeedratings' => 'ISO 感度',
 'exif-shutterspeedvalue' => 'シャッタースピード',
 'exif-aperturevalue' => '絞り値',
 'exif-brightnessvalue' => '輝度値',
 'exif-exposurebiasvalue' => '露出補正値',
 'exif-maxaperturevalue' => 'レンズ最小F値',
 'exif-subjectdistance' => '被写体距離',
-'exif-meteringmode' => '測光方式',
+'exif-meteringmode' => '測光モード',
 'exif-lightsource' => '光源',
 'exif-flash' => 'フラッシュ',
 'exif-focallength' => 'レンズ焦点距離',
@@ -3442,7 +3443,7 @@ Variants for Chinese language
 'exif-exposuremode' => '露出モード',
 'exif-whitebalance' => 'ホワイトバランス',
 'exif-digitalzoomratio' => 'デジタルズーム倍率',
-'exif-focallengthin35mmfilm' => '35mm換算レンズ焦点距離',
+'exif-focallengthin35mmfilm' => '35mmフィルム換算焦点距離',
 'exif-scenecapturetype' => '撮影シーンタイプ',
 'exif-gaincontrol' => 'ゲイン制御',
 'exif-contrast' => '撮影コントラスト',
@@ -3458,24 +3459,24 @@ Variants for Chinese language
 'exif-gpslongitude' => '経度',
 'exif-gpsaltituderef' => '高度の基準',
 'exif-gpsaltitude' => '高度',
-'exif-gpstimestamp' => 'GPSæ\99\82é\96\93\8e\9få­\90æ\99\82è¨\88ã\81®æ\99\82é\96\93)',
+'exif-gpstimestamp' => 'GPSæ\97¥æ\99\82ï¼\88å\8e\9få­\90æ\99\82è¨\88ï¼\89',
 'exif-gpssatellites' => '測位に用いた衛星信号',
 'exif-gpsstatus' => 'GPS受信機の状態',
 'exif-gpsmeasuremode' => 'GPSの測位方法',
 'exif-gpsdop' => '測位の信頼性',
 'exif-gpsspeedref' => '速度の単位',
-'exif-gpsspeed' => '速度',
+'exif-gpsspeed' => 'GPS 受信機の速度',
 'exif-gpstrackref' => '進行方向の単位',
 'exif-gpstrack' => '進行方向',
 'exif-gpsimgdirectionref' => '撮影方向の基準',
-'exif-gpsimgdirection' => '撮影した画像の方向',
+'exif-gpsimgdirection' => '画像の方向',
 'exif-gpsmapdatum' => '測位に用いた地図データ',
-'exif-gpsdestlatituderef' => '目的地の北緯または南緯',
+'exif-gpsdestlatituderef' => '目的地の北緯/南緯',
 'exif-gpsdestlatitude' => '目的地の緯度',
-'exif-gpsdestlongituderef' => '目的地の東経または西経',
+'exif-gpsdestlongituderef' => '目的地の東経/西経',
 'exif-gpsdestlongitude' => '目的地の経度',
 'exif-gpsdestbearingref' => '目的地の方角の単位',
-'exif-gpsdestbearing' => '目的の方角',
+'exif-gpsdestbearing' => '目的の方角',
 'exif-gpsdestdistanceref' => '目的地までの距離の単位',
 'exif-gpsdestdistance' => '目的地までの距離',
 'exif-gpsprocessingmethod' => '測位方式の名称',
@@ -3484,18 +3485,18 @@ Variants for Chinese language
 'exif-gpsdifferential' => 'GPS補正測位',
 'exif-jpegfilecomment' => 'JPEGファイルのコメント',
 'exif-keywords' => 'キーワード',
-'exif-worldregioncreated' => 'この写真が撮られた大陸や地域',
-'exif-countrycreated' => 'この写真が撮られた国',
-'exif-countrycodecreated' => 'この写真が撮られた国の国名コード',
-'exif-provinceorstatecreated' => 'この写真が撮られた州や県',
-'exif-citycreated' => 'この写真が撮られた市町村',
-'exif-sublocationcreated' => 'この写真が撮られた町名や通りの名前',
-'exif-worldregiondest' => '写っている大陸地域',
+'exif-worldregioncreated' => '写真が撮影された大陸/地域',
+'exif-countrycreated' => '写真が撮影された国',
+'exif-countrycodecreated' => '写真が撮影された国のコード',
+'exif-provinceorstatecreated' => '写真が撮影された州/県',
+'exif-citycreated' => '写真が撮影された都市',
+'exif-sublocationcreated' => '写真が撮影された町や通りの名前',
+'exif-worldregiondest' => '写っている大陸/地域',
 'exif-countrydest' => '写っている国',
-'exif-countrycodedest' => '写っている国の国名コード',
-'exif-provinceorstatedest' => '写っている州県',
-'exif-citydest' => '写っている市町村',
-'exif-sublocationdest' => '写っている町や通りの名前',
+'exif-countrycodedest' => '写っている国のコード',
+'exif-provinceorstatedest' => '写っている州/県',
+'exif-citydest' => '写っている都市',
+'exif-sublocationdest' => '写っている町や通りの名前',
 'exif-objectname' => '短いタイトル',
 'exif-specialinstructions' => '取扱いに関する特記事項',
 'exif-headline' => '見出し',
@@ -3511,8 +3512,8 @@ Variants for Chinese language
 'exif-writer' => '記入者',
 'exif-languagecode' => '言語',
 'exif-iimversion' => 'IIMバージョン',
-'exif-iimcategory' => 'カテゴリ',
-'exif-iimsupplementalcategory' => '補足カテゴリ',
+'exif-iimcategory' => 'カテゴリ',
+'exif-iimsupplementalcategory' => '補足カテゴリ',
 'exif-datetimeexpires' => '使用期限',
 'exif-datetimereleased' => '初公開日',
 'exif-originaltransmissionref' => '原転送位置コード',
@@ -3529,7 +3530,7 @@ Variants for Chinese language
 'exif-copyrightowner' => '著作権者',
 'exif-usageterms' => '使用条件',
 'exif-webstatement' => 'オンライン上の著作権文',
-'exif-originaldocumentid' => '元文書の一意な識別子',
+'exif-originaldocumentid' => '元文書の一意なID',
 'exif-licenseurl' => '著作権ライセンスのURL',
 'exif-morepermissionsurl' => '代替ライセンス情報',
 'exif-attributionurl' => 'この作品を再利用する際に、次のURLにリンクしてください',
@@ -3563,10 +3564,10 @@ Variants for Chinese language
 'exif-orientation-2' => '左右反転',
 'exif-orientation-3' => '180°回転',
 'exif-orientation-4' => '上下反転',
-'exif-orientation-5' => '反時計回りに90°回転 上下反転',
-'exif-orientation-6' => '90° 回転 CCW',
-'exif-orientation-7' => '時計回りに90°回転 上下反転',
-'exif-orientation-8' => '90° 回転 CW',
+'exif-orientation-5' => '反時計回りに90°回転上下反転',
+'exif-orientation-6' => '反時計回りに90°回転',
+'exif-orientation-7' => '時計回りに90°回転上下反転',
+'exif-orientation-8' => '時計回りに90°回転',
 
 'exif-planarconfiguration-1' => '点順次フォーマット',
 'exif-planarconfiguration-2' => '面順次フォーマット',
@@ -3776,12 +3777,12 @@ Variants for Chinese language
 以下のボタンを押すとメールアドレスに確認メールが送られます。
 メールには確認用コードを含むリンクが書かれています。
 そのリンクをブラウザーで読み込んで、メールアドレスの正当性を確認してください。',
-'confirmemail_pending' => '確認メールは既に送信されています
\81\93ã\81®ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\81°ã\81\8bã\82\8aã\81§ã\81\82ã\82\8cã\81°ã\80\81ã\83¡ã\83¼ã\83«ã\81\8cå±\8aã\81\8fã\81¾ã\81§æ\95°å\88\86ã\81»ã\81©å¾\85ã\81\9fã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\81\8bã\82\82ã\81\97ã\82\8cã\81¾ã\81\9bã\82\93。',
-'confirmemail_send' => '確認用コードを送信',
+'confirmemail_pending' => '確認用コードをメールで既にお送りしました
\82¢ã\82«ã\82¦ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\81°ã\81\8bã\82\8aã\81®å ´å\90\88ã\81¯ã\80\81ã\83¡ã\83¼ã\83«ã\81\8cå±\8aã\81\8fã\81¾ã\81§ã\81\97ã\81°ã\82\89ã\81\8fã\81\8aå¾\85ã\81¡ã\81\8fã\81 ã\81\95ã\81\84ã\80\82å±\8aã\81\8bã\81ªã\81\84å ´å\90\88ã\81¯æ\96°ã\81\97ã\81\84ã\82³ã\83¼ã\83\89ã\82\92å\86\8d度ç\94³è«\8bã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84。',
+'confirmemail_send' => '確認用コードをメールで送信',
 'confirmemail_sent' => '確認メールを送信しました。',
-'confirmemail_oncreate' => 'ã\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\81®æ­£å½\93æ\80§ã\82\92確èª\8dã\81\99ã\82\8bã\81\9fã\82\81ã\81®ã\82³ã\83¼ã\83\89ã\82\92å\90«ã\82\93ã\81 ã\83¡ã\83¼ã\83«ã\82\92é\80\81ä¿¡しました。
-この確認を行わなくてもログインはできますが、確認するまでメール通知の機能は無効化されます。',
+'confirmemail_oncreate' => 'ã\81\82ã\81ªã\81\9fã\81®ã\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ç¢ºèª\8dç\94¨ã\82³ã\83¼ã\83\89ã\82\92ã\83¡ã\83¼ã\83«ã\81§ã\81\8aé\80\81ã\82\8aしました。
+この確認をしなくてもログインはできますが、確認するまでウィキ内のメール関連の機能は無効化されます。',
 'confirmemail_sendfailed' => '{{SITENAME}}は確認メールを送信できませんでした。
 メールアドレスに不正な文字が含まれていないかどうか確認してください。
 
@@ -3830,7 +3831,7 @@ $5
 
 $3
 
-もしあなたのアカウントでない場合は、
\82\82ã\81\97ã\81\82ã\81ªã\81\9fã\81®ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81§ã\81¯ã\81ªã\81\84å ´å\90\88ã\81¯ã\80\81
 次のリンクをブラウザーで開いて、メールアドレスの確認をキャンセルしてください:
 
 $5
@@ -3848,8 +3849,8 @@ $5
 'deletedwhileediting' => "'''警告:'''このページが、編集開始後に削除されました!",
 'confirmrecreate' => "[[User:$1|$1]]([[User talk:$1|トーク]])が、このページの編集開始後に、このページを、次の理由で削除しました。
 : ''$2''
-本当にこのままこのページを再作成していか確認してください。",
-'confirmrecreate-noreason' => 'ã\81\82ã\81ªã\81\9fã\81®ç·¨é\9b\86ã\82\92é\96\8bå§\8bã\81\97ã\81\9få¾\8cã\80\81ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92[[User:$1|$1]] ([[User talk:$1|ã\83\88ã\83¼ã\82¯]])ã\81\8cå\89\8aé\99¤ã\81\97ã\81¾ã\81\97ã\81\9fã\80\82æ\9c¬å½\93ã\81«ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\82\92å\86\8dä½\9cæ\88\90ã\81\97ã\81¦ã\81\84ã\81\84ã\81®ã\81\8bã\81\94確èª\8dã\81\8fã\81 ã\81\95ã\81\84ã\80\82',
+本当にこのままこのページを再作成していか確認してください。",
+'confirmrecreate-noreason' => 'あなたの編集を開始した後、このページを[[User:$1|$1]] ([[User talk:$1|トーク]])が削除しました。本当にこのページを再作成していいかご確認ください。',
 'recreate' => '再作成する',
 
 # action=purge
@@ -3900,6 +3901,11 @@ $5
 'size-kilobytes' => '$1キロバイト',
 'size-megabytes' => '$1メガバイト',
 'size-gigabytes' => '$1ギガバイト',
+'size-terabytes' => '$1 TB',
+'size-petabytes' => '$1 PB',
+'size-exabytes' => '$1 EB',
+'size-zetabytes' => '$1 ZB',
+'size-yottabytes' => '$1 YB',
 
 # Live preview
 'livepreview-loading' => '読み込み中...',
@@ -3910,19 +3916,19 @@ $5
 通常のプレビューを試してください。',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => 'この一覧には、$1より前の変更が表示されていない可能性があります。',
-'lag-warn-high' => 'データベースサーバー遅延のため、この一覧には、$1より前の変更が表示されていない可能性があります。',
+'lag-warn-normal' => 'この一覧には、$1 {{PLURAL:$1|秒}}より前の変更が表示されていない可能性があります。',
+'lag-warn-high' => 'データベースサーバー遅延のため、この一覧には、$1 {{PLURAL:$1|秒}}より前の変更が表示されていない可能性があります。',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'ウォッチリストには、$1件のページ名が含まれています(トークページは除く)。',
-'watchlistedit-noitems' => 'ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«ã\81¯ã\83\9aã\83¼ã\82¸å\90\8dã\81\8c\81¤ã\82\82ã\81\82ã\82\8aません。',
+'watchlistedit-numitems' => 'ウォッチリストには {{PLURAL:$1|$1 件のページ}}が登録されています(トークページを除く)。',
+'watchlistedit-noitems' => 'ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81«ã\81¯ã\81©ã\81®ã\83\9aã\83¼ã\82¸ã\82\82ç\99»é\8c²ã\81\95ã\82\8cã\81¦ã\81\84ません。',
 'watchlistedit-normal-title' => 'ウォッチリストの編集',
 'watchlistedit-normal-legend' => 'ウォッチリストからページ名を除去',
 'watchlistedit-normal-explain' => 'ウォッチリストに入っているページ名を以下に表示しています。
 ページ名を除去するには、隣のボックスにチェックを入れて「{{int:watchlistedit-normal-submit}}」をクリックしてください。
 また、[[Special:EditWatchlist/raw|ウォッチリストをそのまま編集]]も使用できます。',
 'watchlistedit-normal-submit' => 'ページを除去',
-'watchlistedit-normal-done' => 'ウォッチリストから $1 {{PLURAL:$1|件}}を削除しました:',
+'watchlistedit-normal-done' => 'ウォッチリストから {{PLURAL:$1|$1 件のページ}}を削除しました:',
 'watchlistedit-raw-title' => 'ウォッチリストをそのまま編集',
 'watchlistedit-raw-legend' => 'ウォッチリストをそのまま編集',
 'watchlistedit-raw-explain' => 'ウォッチリストに含まれるページ名を以下に表示しています。この一覧で追加または除去ができます。
@@ -3932,8 +3938,8 @@ $5
 'watchlistedit-raw-titles' => 'ページ名:',
 'watchlistedit-raw-submit' => 'ウォッチリストを更新',
 'watchlistedit-raw-done' => 'ウォッチリストを更新しました。',
-'watchlistedit-raw-added' => '$1のページ名が追加されました:',
-'watchlistedit-raw-removed' => '$1件のページ名が除去されました:',
+'watchlistedit-raw-added' => '{{PLURAL:$1|$1 件のページ}}を追加しました:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|$1 件のページ}}を除去しました:',
 
 # Watchlist editing tools
 'watchlisttools-view' => '関連する変更を閲覧',
@@ -4003,7 +4009,7 @@ $5
 
 # Core parser functions
 'unknown_extension_tag' => '不明な拡張機能タグ「$1」です',
-'duplicate-defaultsort' => "'''警告:'''既定の並ã\81³æ\9b¿ã\81\88ã\82­ã\83¼ã\80\8c$2ã\80\8dã\81\8cã\80\81ã\81\9dã\81®å\89\8dã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bæ\97¢å®\9aã\81®ä¸¦ã\81³æ\9b¿ã\81\88ã\82­ã\83¼ã\80\8c$1ã\80\8dã\82\92ä¸\8aæ\9b¸ã\81\8dã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82",
+'duplicate-defaultsort' => "'''警告:'''既定のã\82½ã\83¼ã\83\88ã\82­ã\83¼ã\80\8c$2ã\80\8dã\81\8cã\80\81ã\81\9dã\81®å\89\8dã\81«æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bæ\97¢å®\9aã\81®ã\82½ã\83¼ã\83\88ã\82­ã\83¼ã\80\8c$1ã\80\8dã\82\92ä¸\8aæ\9b¸ã\81\8dã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82",
 
 # Special:Version
 'version' => 'バージョン情報',
@@ -4025,19 +4031,19 @@ $5
 'version-license' => 'ライセンス',
 'version-poweredby-credits' => "このウィキは、'''[//www.mediawiki.org/ MediaWiki]'''(copyright © 2001-$1 $2)で動作しています。",
 'version-poweredby-others' => 'その他',
-'version-license-info' => 'MediaWikiはフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行するGNU一般公衆利用許諾書 (GNU General Public License)(バージョン2、またはそれ以降のライセンス)の規約にもとづき、このライブラリの再配布や改変ができます。
+'version-license-info' => 'MediaWikiはフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行するGNU一般公衆利用許諾書 (GNU General Public License)(バージョン2、またはそれ以降のライセンス)の規約に基づき、このライブラリを再配布および改変できます。
 
 MediaWikiは、有用であることを期待して配布されていますが、商用あるいは特定の目的に適するかどうかも含めて、暗黙的にも、一切保証されません。詳しくは、GNU一般公衆利用許諾書をご覧ください。
 
-あなたはこのプログラムと共に、[{{SERVER}}{{SCRIPTPATH}}/COPYING GNU一般公衆利用許諾契約書の複製]を受け取ったはずです。もし受け取っていなければ、フリーソフトウェア財団(the Free Software Foundation, Inc., 59Temple Place, Suite 330, Boston, MA 02111-1307 USA)まで請求するか、[//www.gnu.org/licenses/old-licenses/gpl-2.0.html オンラインで閲覧]してください。',
+あなたはこのプログラムと共に、[{{SERVER}}{{SCRIPTPATH}}/COPYING GNU一般公衆利用許諾契約書の複製]を受け取ったはずです。もし受け取っていなければ、フリーソフトウェア財団(the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA)まで請求するか、[//www.gnu.org/licenses/old-licenses/gpl-2.0.html オンラインで閲覧]してください。',
 'version-software' => 'インストール済みソフトウェア',
 'version-software-product' => '製品',
 'version-software-version' => 'バージョン',
 '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-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath/ja 記事のパス]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath/ja スクリプトパス]',
 
 # Special:FilePath
 'filepath' => 'ファイルパス',
@@ -4054,15 +4060,14 @@ MediaWikiは、有用であることを期待して配布されていますが
 'fileduplicatesearch-submit' => '検索',
 'fileduplicatesearch-info' => '$1×$2 ピクセル<br />ファイルサイズ:$3<br />MIMEタイプ:$4',
 'fileduplicatesearch-result-1' => 'ファイル「$1」と重複するファイルはありません。',
-'fileduplicatesearch-result-n' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81¯$2件ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81¨é\87\8dè¤\87ã\81\97ã\81¦ã\81\84ます。',
+'fileduplicatesearch-result-n' => 'ã\83\95ã\82¡ã\82¤ã\83«ã\80\8c$1ã\80\8dã\81«ã\81¯ {{PLURAL:$2|$2 ä»¶ã\81®é\87\8dè¤\87ã\83\95ã\82¡ã\82¤ã\83«}}ã\81\8cã\81\82ã\82\8aます。',
 'fileduplicatesearch-noresults' => '「$1」という名前のファイルはありません。',
 
 # Special:SpecialPages
 'specialpages' => '特別ページ',
 'specialpages-note' => '----
 * 通常の特別ページ
-* <span class="mw-specialpagerestricted">制限されている特別ページ</span>
-* <span class="mw-specialpagecached">(廃止されたかもしれない)キャッシュされた特別ページ</span>',
+* <span class="mw-specialpagerestricted">制限されている特別ページ</span>',
 'specialpages-group-maintenance' => 'メンテナンス報告',
 'specialpages-group-other' => 'その他の特別ページ',
 'specialpages-group-login' => 'ログイン/利用者登録',
@@ -4082,10 +4087,10 @@ MediaWikiは、有用であることを期待して配布されていますが
 
 # External image whitelist
 'external_image_whitelist' => '  #この行はそのままにしておいてください<pre>
-#この下に正規表現(//の間にる記述)を置いてください
+#この下に正規表現(//の間にる記述)を置いてください
 #外部の(ホットリンクされている)画像の URL と一致するか検査されます
 #一致する場合は画像として、一致しない場合は画像へのリンクとして表示されます
-#行の頭に # をけるとコメントとして扱われます
+#行の頭に # をけるとコメントとして扱われます
 #大文字と小文字は区別されません
 
 #正規表現はすべてこの行の上に置いてください。この行を変更しないでください</pre>',
@@ -4095,7 +4100,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'tag-filter' => '[[Special:Tags|タグ]]絞り込み:',
 'tag-filter-submit' => '絞り込み',
 'tags-title' => 'タグ',
-'tags-intro' => 'このページは、ソフトウェアが編集に対してけるタグとその意味の一覧です。',
+'tags-intro' => 'このページは、ソフトウェアが編集に対してけるタグとその意味の一覧です。',
 'tags-tag' => 'タグ名',
 'tags-display-header' => '変更一覧に表示されるもの',
 'tags-description-header' => '詳細な意味の説明',
@@ -4126,12 +4131,12 @@ MediaWikiは、有用であることを期待して配布されていますが
 'dberr-cachederror' => 'これは要求されたページをキャッシュした複製であり、古くなっている可能性があります。',
 
 # HTML forms
-'htmlform-invalid-input' => '入力になんらかの問題があります',
-'htmlform-select-badoption' => 'æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81\8cæ\9c\89å\8a¹ã\81ªã\82\82ã\81®ではありません。',
-'htmlform-int-invalid' => 'æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81\8c整数ではありません。',
-'htmlform-float-invalid' => 'æ\8c\87å®\9aã\81\95ã\82\8cた値は数値ではありません。',
-'htmlform-int-toolow' => 'æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81\8c$1の最小値未満です',
-'htmlform-int-toohigh' => 'æ\8c\87å®\9aã\81\95ã\82\8cã\81\9få\80¤ã\81\8c$1の最大値を超えています',
+'htmlform-invalid-input' => '入力にらかの問題があります',
+'htmlform-select-badoption' => 'æ\8c\87å®\9aã\81\97ã\81\9få\80¤ã\81¯æ\9c\89å\8a¹ã\81ªé\81¸æ\8a\9eè\82¢ではありません。',
+'htmlform-int-invalid' => 'æ\8c\87å®\9aã\81\97ã\81\9få\80¤ã\81¯整数ではありません。',
+'htmlform-float-invalid' => 'æ\8c\87å®\9aã\81\97た値は数値ではありません。',
+'htmlform-int-toolow' => 'æ\8c\87å®\9aã\81\97ã\81\9få\80¤ã\81¯$1の最小値未満です',
+'htmlform-int-toohigh' => 'æ\8c\87å®\9aã\81\97ã\81\9få\80¤ã\81¯$1の最大値を超えています',
 'htmlform-required' => 'この値は必要です',
 'htmlform-submit' => '送信',
 'htmlform-reset' => '変更を取り消す',
@@ -4171,7 +4176,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'logentry-newusers-create' => '$1 が利用者アカウントを作成しました',
 'logentry-newusers-create2' => '$1 が利用者アカウント「$3」を作成しました',
 'logentry-newusers-autocreate' => 'アカウント「$1」が自動的に作成されました',
-'newuserlog-byemail' => 'パスワードをメールで送信しました',
+'newuserlog-byemail' => 'パスワードをメールでお送りしました',
 
 # Feedback
 'feedback-bugornote' => '技術的な問題の詳細を説明なさる準備ができている場合は[$1 バグを報告]してください。
@@ -4180,11 +4185,11 @@ MediaWikiは、有用であることを期待して配布されていますが
 'feedback-message' => 'メッセージ:',
 'feedback-cancel' => 'キャンセル',
 'feedback-submit' => 'フィードバックを送信',
-'feedback-adding' => 'ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\82\92追å\8a ã\81\99ã\82\8b...',
+'feedback-adding' => 'ã\83\9aã\83¼ã\82¸ã\81¸ã\81®ã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\81®è¿½å\8a ...',
 'feedback-error1' => 'エラー:APIから認識されない結果が返ってきました',
 'feedback-error2' => 'エラー:編集に失敗しました',
 'feedback-error3' => 'エラー:APIからの応答がありません',
-'feedback-thanks' => 'ã\81\82ã\82\8aã\81\8cã\81¨ã\81\86ã\81\94ã\81\96ã\81\84ã\81¾ã\81\99ã\80\82ã\81\82ã\81ªã\81\9fã\81®ã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\81¯ã\80\8c[$2 $1]ã\80\8dã\81®ã\83\9aã\83¼ã\82¸ã\81«æ\8a\95稿ã\81\95ã\82\8cました。',
+'feedback-thanks' => 'ã\81\82ã\82\8aã\81\8cã\81¨ã\81\86ã\81\94ã\81\96ã\81\84ã\81¾ã\81\99ã\80\82ã\83\95ã\82£ã\83¼ã\83\89ã\83\90ã\83\83ã\82¯ã\82\92ã\80\8c[$2 $1]ã\80\8dã\81®ã\83\9aã\83¼ã\82¸ã\81«æ\8a\95稿ã\81\97ました。',
 'feedback-close' => '完了',
 'feedback-bugcheck' => 'Great! [$1 既出のバグ]に既に含まれていないか確認してください。',
 'feedback-bugnew' => 'チェックしました。バグを報告します。',
@@ -4194,9 +4199,9 @@ MediaWikiは、有用であることを期待して配布されていますが
 'api-error-badtoken' => '内部エラー:トークンが不正です。',
 'api-error-copyuploaddisabled' => 'URLによるアップロードはこのサーバーでは無効になっています。',
 'api-error-duplicate' => '当ウェブサイト上には、既に同じ内容の{{PLURAL:$1|[$2 他のファイル]が|[$2 他のファイルがいくつか]}}存在しています。',
-'api-error-duplicate-archive' => '同じ内容で既に削除済みの{{PLURAL:$1|[$2 他のファイル]が|[$2 他のファイルがいくつか]}}サイト上にあります。',
+'api-error-duplicate-archive' => 'サイト上に同じ内容の{{PLURAL:$1|[$2 別のファイル]が|[$2 他のファイルがいくつか]}}既にありましたが、{{PLURAL:$1|それは|それらは}}削除されました。',
 'api-error-duplicate-archive-popup-title' => '重複した{{PLURAL:$1|ファイル|ファイル群}}は削除済みです。',
-'api-error-duplicate-popup-title' => '重複した{{PLURAL:$1|ファイル|ファイル群}}',
+'api-error-duplicate-popup-title' => '重複した{{PLURAL:$1|ファイル|ファイル群}}です。',
 'api-error-empty-file' => '送信されたファイルは空でした。',
 'api-error-emptypage' => '内容がないページの新規作成は許可されていません。',
 'api-error-fetchfileerror' => '内部エラー:ファイルの取得中に問題が発生しました。',
@@ -4209,10 +4214,10 @@ MediaWikiは、有用であることを期待して配布されていますが
 'api-error-illegal-filename' => 'ファイル名が許可されていません。',
 'api-error-internal-error' => '内部エラー:ウィキ上でアップロードを処理する際に問題が発生しました。',
 'api-error-invalid-file-key' => '内部エラー:一時格納場所にファイルが見つかりませんでした。',
-'api-error-missingparam' => '内部エラー:リクエストのパラメータが足りません。',
+'api-error-missingparam' => 'å\86\85é\83¨ã\82¨ã\83©ã\83¼ï¼\9aã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\81\8c足ã\82\8aã\81¾ã\81\9bã\82\93ã\80\82',
 'api-error-missingresult' => '内部エラー:複製に成功したか判断できませんでした。',
 'api-error-mustbeloggedin' => 'ファイルをアップロードするにはログインする必要があります。',
-'api-error-mustbeposted' => 'このソフトウェアにバグがありました。適切なHTTPメソッドを使用していません。',
+'api-error-mustbeposted' => '内部エラー:リクエストはHTTP POSTである必要があります。',
 'api-error-noimageinfo' => 'アップロードには成功しましたが、サーバーはファイルに関する情報を返しませんでした。',
 'api-error-nomodule' => '内部エラー:アップロードを処理するモジュールが設定されていません。',
 'api-error-ok-but-empty' => '内部エラー:サーバーからの応答がありません。',
index 6f99dc9..c8a0c2c 100644 (file)
@@ -1890,7 +1890,7 @@ $1',
 'statistics-articles' => 'სტატიების',
 'statistics-pages' => 'გვერდები',
 'statistics-pages-desc' => 'ვიკის ყველა გვერდი, განხილვის, გადამისამართების და სხვ. ჩათვლით.',
-'statistics-files' => 'á\83\90á\83\95á\83¢á\83\95á\83\98á\83 á\83\97á\83£á\83\9aá\83\98 á\83¤á\83\90á\83\98á\83\9aá\83\94á\83\91á\83\98',
+'statistics-files' => 'ატვირთული ფაილები',
 'statistics-edits' => 'გვერდის შესწორებები {{SITENAME}}-ის შექმნიდან',
 'statistics-edits-average' => 'რედაქტირების საერთო რაოდენობა გვერდზე',
 'statistics-views-total' => 'სულ ხილვა',
@@ -2014,6 +2014,7 @@ $1',
 შეგიძლიათ გაცხრილოთ იგი ჩანაწერის ტიპის, მომხმარებლის სახელის, ან დაკავშირებული გვერდის შერჩევით.',
 'logempty' => 'შედეგები არ არის სიაში.',
 'log-title-wildcard' => 'სათაურების ძებნა, რომლებიც იწყება ამ ტექსტით',
+'showhideselectedlogentries' => 'არჩეული ჟურნალის ჩანაწერის ჩვენება/დამალვა',
 
 # Special:AllPages
 'allpages' => 'ყველა გვერდი',
index 3d1fa9d..17f4000 100644 (file)
@@ -949,6 +949,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'filestatus' => 'Halê heqa telifi:',
 'filesource' => 'Çıme:',
 'uploadedfiles' => 'Dosyê barkerdey',
+'empty-file' => 'Dosya ke ti şawit veng biy.',
 'savefile' => 'Dosya qeyd ke',
 'uploadedimage' => '"[[$1]]" bar bi',
 'upload-source' => 'Dosya çımey',
index cdf1abe..4b4290d 100644 (file)
@@ -694,7 +694,7 @@ $1',
 'cannotdelete-title' => '"$1" 문서를 삭제할 수 없습니다.',
 'badtitle' => '잘못된 제목',
 'badtitletext' => '문서 제목이 잘못되었거나 비어있습니다.',
-'perfcached' => '다음 자료는 캐시된 것이므로 현재 상황을 반영하지 않을 수 있습니다. 캐시에 최대 {{PLURAL:$1|$1개의 결과}}가 있습니다.',
+'perfcached' => '다음 자료는 캐시된 것이므로 현재 상황을 반영하지 않을 수 있습니다. 캐시에 최대 {{PLURAL:$1|결과 $1개}}가 있습니다.',
 'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 갱신되었습니다.  캐시에 최대 {{PLURAL:$4|$4개의 결과}}가 있습니다.',
 'querypage-no-updates' => '이 문서의 갱신이 현재 비활성화되어 있습니다. 자료가 잠시 갱신되지 않을 것입니다.',
 'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />함수: $1<br />쿼리: $2',
@@ -1117,7 +1117,7 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'page_first' => '처음',
 'page_last' => '마지막',
 'histlegend' => "비교하려는 판을 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />
-설명: '''({{int:cur}})''' = 최신판과 비교,
+설명: '''({{int:cur}})''' = 최신 판과 비교,
 '''({{int:last}})''' = 이전 판과 비교, '''{{int:minoreditletter}}'''= 사소한 편집",
 'history-fieldset-title' => '문서의 변경 내력 찾기',
 'history-show-deleted' => '삭제된 것만',
@@ -1270,7 +1270,7 @@ $1",
 'difference-title-multipage' => '문서 "$1"과 "$2" 간의 차이',
 'difference-multipage' => '(문서간의 차이)',
 'lineno' => '$1번째 줄:',
-'compareselectedversions' => '선택된 판들을 비교하기',
+'compareselectedversions' => '선택한 판을 비교하기',
 'showhideselectedversions' => '선택한 판을 보이기/숨기기',
 'editundo' => '편집 취소',
 'diff-multi' => '({{PLURAL:$2|한 사용자의|사용자 $2명의}} 중간의 편집 $1개 숨겨짐)',
@@ -3370,7 +3370,7 @@ Variants for Chinese language
 'exif-disclaimer' => '면책 조항',
 'exif-contentwarning' => '콘텐츠 경고',
 'exif-giffilecomment' => 'GIF 파일 주석',
-'exif-intellectualgenre' => '컨텐츠 정보',
+'exif-intellectualgenre' => 'ì½\98텐츠 정보',
 'exif-subjectnewscode' => '주제 코드',
 'exif-scenecode' => 'IPTC 장면 코드',
 'exif-event' => '묘사된 사건',
index 8cf641f..1fd6c5c 100644 (file)
@@ -2116,6 +2116,7 @@ $1',
 # Namespace form on various pages
 'namespace' => 'Атла алам:',
 'invert' => 'Сайланнганны айландыр',
+'namespace_association' => 'Байламлы ат алам',
 'blanknamespace' => '(Баш)',
 
 # Contributions
@@ -3424,6 +3425,7 @@ MediaWiki хайырлы боллукъду деген умут бла джай
 'revdelete-unrestricted' => 'администратолра ючюн этилген чеклениуле къоратылгъандыла',
 'logentry-move-move' => '$1, $3 бетни атын $4 деб тюрлендирди',
 'logentry-patrol-patrol-auto' => '$1, $3 бетни $4 версиясын автомат халда тинтиб чыкъды',
+'logentry-newusers-create' => '$1 тергеу джазыу (аккаунт) къурады',
 'newuserlog-byemail' => 'пароль электрон почта бла джиберилгенди',
 
 # Feedback
index 48b85b2..0f2bd3f 100644 (file)
@@ -614,7 +614,7 @@ $2',
 'customjsprotected' => 'Do darfs di JavaSkep-Sigg heh nit ändere. Se jehööt enem andere Metmacher un es e Stöck funn dämm sing eije Enstellunge.',
 'ns-specialprotected' => '{{int:nstab-special}}e künne mer nit ändere.',
 'titleprotected' => "Dä Tittel för en Sigg eß verbodde, fum [[User:$1]], un dr Jrond wohr: ''„$2“''",
-'filereadonlyerror' => 'Mer künne di Dattei „$1“ nit ändere, weil dat  repository „$2“ bloß för ze Lässe doh es.
+'filereadonlyerror' => 'Mer künne di Dattei „$1“ nit ändere, weil dä Dateijebeshtand „$2“ bloß för ze Lässe doh es.
 
 Dä Wiki_Köbes dovun hät beim Deeschmaache als Jrond aanjejovve: „$3“',
 'invalidtitle-knownnamespace' => '„$3“ es ene onjöltijje Tittel för em Appachtemang „$2“',
@@ -1058,7 +1058,7 @@ Heh kütt der neuste Enndrach em Logbooch doh drövver:",
 'templatesusedsection' => '{{PLURAL:$1|De Schablon|Schablone|-nix-}} en däm Avschnedd heh:',
 'template-protected' => '(jeschöz)',
 'template-semiprotected' => '(halfjeschöz - tabu för neu Metmaacher un ohne Enlogge)',
-'hiddencategories' => 'Die Sigg heh is en {{PLURAL:$1|de verstoche Saachjrupp: |$1 verstoche Saachjruppe: |keij verstoche Saachjruppe dren.}}',
+'hiddencategories' => 'Die Sigg heh is en {{PLURAL:$1|dä verstoche Saachjrupp: |dä $1 verstoche Saachjruppe: |keij verstoche Saachjruppe dren.}}',
 'edittools' => '<!-- Dä Tex hee zeich et Wiki unger däm Texfeld zom „Ändere/Bearbeide“ un beim Texfeld vum „Huhlade“. -->',
 'nocreatetitle' => 'Neu Sigge Aanläje eß nit einfach esu müjjelesch.',
 'nocreatetext' => 'Sigge neu aanläje es nor müjjelich, wann de [[Special:UserLogin|enjelogg]] bes. Der ohne kanns De ävver Sigge ändere, die ald do sin.',
@@ -1093,9 +1093,9 @@ Ene Jrond weße mer nit.',
 'parser-template-loop-warning' => 'Schablon roofe sesch em Kringel op: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Schablone refe sesch zo öff sellver op ($1)',
 'language-converter-depth-warning' => 'Zoh vill Verschachtelunge (övver $1) beim Täx-Ömwandelle vun ein Shprooch en andere.',
-'node-count-exceeded-category' => 'Sigge, woh dä  övverschredde es',
-'node-count-exceeded-warning' => 'Heh di Sigg hät dä  övverschredde',
-'expansion-depth-exceeded-category' => 'Sigge, woh de  övverschredde es',
+'node-count-exceeded-category' => 'Sigge, woh dä  node-count övverschredde es',
+'node-count-exceeded-warning' => 'Heh di Sigg hät dä  node-count övverschredde',
+'expansion-depth-exceeded-category' => 'Sigge, woh de  expansion depth övverschredde es',
 'expansion-depth-exceeded-warning' => 'Heh di Sigg hät  the expansion depth övverschredde',
 'parser-unstrip-loop-warning' => 'Ene Befähl em Täx betrick sesch op sesch sellef.',
 'parser-unstrip-recursion-limit' => 'Ene Befähl em Täx es mieh wi {{PLURAL:$1|eijmohl|$1 Mohl|jaa nit}} met  sesch sellef verschachtelt.',
@@ -1866,6 +1866,7 @@ Wann et nit flupp, verzäll et enem [[Special:ListUsers/sysop|Wiki-Köbes]].',
 'backend-fail-notexists' => 'En Dattei $1 jidd et nit.',
 'backend-fail-hashes' => 'Mer kunnte kein Pröfsomme vun dä Datteje träcke zom verjliesche.',
 'backend-fail-notsame' => 'En Dattei mem Name $1 jidd et ald, di es ävver ongerscheidlesch.',
+'backend-fail-invalidpath' => '„$1“ es keine jölteje Pahd för et Speischere.',
 'backend-fail-delete' => 'Mer kunnte di Dattei $1 nit fottschmiiße.',
 'backend-fail-alreadyexists' => 'En Dattei $1 jidd et ald.',
 'backend-fail-store' => 'Mer kunnte di Dattei $1 nit onger $2 affschpeischere.',
@@ -2235,6 +2236,7 @@ oder de Sigge ehr Name, un esu, einzel zoteet aanluure.
 Bei de Name moß mer op Jruß- un Kleinschreff aachjävve.",
 'logempty' => '<i>Mer han kein zopass Endräch en däm Logboch.</i>',
 'log-title-wildcard' => 'Sök noh Titelle, di aanfange met …',
+'showhideselectedlogentries' => 'Ußjesöhk Endrääsch verschteische udder zeije',
 
 # Special:AllPages
 'allpages' => 'All Sigge',
@@ -2333,11 +2335,12 @@ Adress en Dinge [[Special:Preferences|ming Enstellunge]] stonn han, öm en E-Mai
 schecke.',
 'emailuser' => 'E-mail aan dä Metmaacher',
 'emailpage' => 'E-mail aan ene Metmaacher',
-'emailpagetext' => 'Wann dä Metmaacher en E-mail Adress aanjejovve hätt en singe Enstellunge,
-un die deit et och, dann kanns De met däm Fomular hee unge en einzelne E-Mail aan dä Metmaacher schecke.
-Ding E-mail Adress, die De en [[Special:Preferences|Ding eije Enstellunge]] aanjejovve häs,
-die weed als em Avsender sing Adress en die E-Mail enjedrage.
-Domet kann, wä die E-Mail kritt, drop antwoote, un die Antwood jeiht tirek aan Dech.
+'emailpagetext' => 'Wann heh dä Metmaacher en Adräß för sing <i lang="en">e-mail</i> aanjejovve hätt en singe Enstellunge,
+un die deit et och, dann kanns De met däm Fomular hee unge en einzel <i lang="en">e-mail</i> aan dä Metmaacher schecke.
+
+Ding <i lang="en">e-mail</i>-Adräß, di De en [[Special:Preferences|Ding eije Enstellunge]] aanjejovve häs,
+di weed als em Afsender sing Adräß en Ding <i lang="en">e-mail</i> enjedrage.
+Domet kann, wä di <i lang="en">e-mail</i> kritt, drop antwoote, un di Antwood jeiht tirek aan Desch.
 Alles klor?',
 'usermailererror' => 'Dat E-Mail-Objek jov ene Fähler us:',
 'defemailsubject' => 'e-mail fum $1 {{GRAMMAR:fun|{{SITENAME}}}}.',
@@ -2419,14 +2422,14 @@ dann klick op „Nimieh drop oppasse“ wann De die Sigg om Schirm häs.",
 'enotif_anon_editor' => 'Dä namelose Metmaacher $1',
 'enotif_body' => 'Leeven $WATCHINGUSERNAME,
 
-{{GRAMMAR:em|{{SITENAME}}}} wood die Sigg „$PAGETITLE“ am $PAGEEDITDATE vun „$PAGEEDITOR“ $CHANGEDORCREATED, unger $PAGETITLE_URL fings Do de neuste Version.
+{{GRAMMAR:em|{{SITENAME}}}} wood die Sigg „$PAGETITLE“ am $PAGEEDITDATE {{GENDER:$PAGEEDITOR|vum|vum|vum_Metmaacher|vun dä|vum}} „$PAGEEDITOR“ $CHANGEDORCREATED, unger $PAGETITLE_URL fings Do de neuste Version.
 
 $NEWPAGE
 
 {{int:summary}} „$PAGESUMMARY“ $PAGEMINOREDIT
 
 Do kanns dä Metmaacher „$PAGEEDITOR“ aanspreche:
-* E-mail: $PAGEEDITOR_EMAIL
+* Övver e-mail: $PAGEEDITOR_EMAIL
 * Em Wiki: $PAGEEDITOR_WIKI
 
 Do kriss vun jetz aan kein e-mail mieh, bes dat Do Der di Sigg aanjeluurt häs,
@@ -2439,10 +2442,10 @@ Ene schöne Jroß {{GRAMMAR:vun|{{SITENAME}}}}.
 Öm de Enshtällonge för Nohreeschet aan Desch ze ändere, jangk op:
 {{canonicalurl:{{#special:Preferences}}}}
 
-Do kanns hee Ding Oppassliss ändere:
+Do kanns hee Ding Oppassl ändere:
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-Öm di Sigg vun Dinger Oppassliss ze schmieße:
+Öm di Sigg vun Dinger Oppassl ze schmieße:
 $UNWATCHURL
 
 Do kanns hee noh Hölp luure:
index 7d7c455..ba7113e 100644 (file)
@@ -153,8 +153,8 @@ $messages = array(
 'sun' => 'Ykş',
 'mon' => 'Duş',
 'tue' => 'Sêş',
-'wed' => 'Çarş',
-'thu' => 'Pşem',
+'wed' => 'Çrş',
+'thu' => 'Pşm',
 'fri' => 'În',
 'sat' => 'Şem',
 'january' => 'rêbendan',
@@ -164,23 +164,23 @@ $messages = array(
 'may_long' => 'gulan',
 'june' => 'pûşper',
 'july' => 'tîrmeh',
-'august' => 'tebax',
+'august' => 'gelawêj',
 'september' => 'rezber',
 'october' => 'kewçêr',
 'november' => 'sermawez',
-'december' => 'Berfanbar',
+'december' => 'berfanbar',
 'january-gen' => 'Rêbendan',
 'february-gen' => 'Reşemî',
 'march-gen' => 'Adar',
 'april-gen' => 'Avrêl',
 'may-gen' => 'Gulan',
-'june-gen' => 'Pûşper',
+'june-gen' => 'pûşper',
 'july-gen' => 'Tîrmeh',
 'august-gen' => 'Gelawêj',
-'september-gen' => 'Rezber',
+'september-gen' => 'rezber',
 'october-gen' => 'Kewçêr',
 'november-gen' => 'Sermawez',
-'december-gen' => 'Berfanbar',
+'december-gen' => 'berfanbar',
 'jan' => 'rêb',
 'feb' => 'reş',
 'mar' => 'adr',
@@ -214,7 +214,7 @@ $messages = array(
 'about' => 'Der barê',
 'article' => 'Gotar',
 'newwindow' => '(di rûpeleke din de wê were nîşandan)',
-'cancel' => 'Betalkirin',
+'cancel' => 'Betal bike',
 'moredotdotdot' => 'Bêhtir...',
 'mypage' => 'Rûpela min',
 'mytalk' => 'Gotûbêja min',
@@ -250,7 +250,7 @@ $messages = array(
 'variants' => 'Variyant',
 
 'errorpagetitle' => 'Çewtî',
-'returnto' => 'Bizîvire $1.',
+'returnto' => 'Vegere $1.',
 'tagline' => 'Ji {{SITENAME}}',
 'help' => 'Alîkarî',
 'search' => 'Lêgerîn',
@@ -274,8 +274,8 @@ $messages = array(
 'protect' => 'Biparêze',
 'protect_change' => 'guherandin',
 'protectthispage' => 'Vê rûpelê biparêze',
-'unprotect' => 'Parastinê rake',
-'unprotectthispage' => 'Parastina vê rûpelê rake',
+'unprotect' => 'Parastinê biguherîne',
+'unprotectthispage' => 'Parastina vê rûpelê biguherîne',
 'newpage' => 'Rûpela nû',
 'talkpage' => 'Vê rûpelê gotûbêj bike',
 'talkpagelinktext' => 'gotûbêj',
@@ -286,7 +286,7 @@ $messages = array(
 'talk' => 'Gotûbêj',
 'views' => 'Dîtin',
 'toolbox' => 'Qutiya amûran',
-'userpage' => 'Li rûpela vê/vî bikarhênerê/î binêre',
+'userpage' => 'Li rûpela bikarhêner binêre',
 'projectpage' => 'Li rûpela projeyê binêre',
 'imagepage' => 'Rûpela dosyeyan bibîne',
 'mediawikipage' => 'Rûpela peyamê bibîne',
@@ -302,7 +302,7 @@ $messages = array(
 'protectedpage' => 'Rûpela parastî',
 'jumpto' => 'Here cem:',
 'jumptonavigation' => 'navîgasyon',
-'jumptosearch' => 'lêbigere',
+'jumptosearch' => 'lêgerîn',
 'view-pool-error' => 'Bibore, server niha zêde barkirî ne. Gelek bikarhêner niha hewl didin ku vê rûpelê bibînin. Ji kerema xwe kêlîkekê bisekine, berî ku tu dîsa hewl bidî rûpelê bibînî.',
 'pool-errorunknown' => 'Çewtiyeke nenas',
 
@@ -333,11 +333,11 @@ $messages = array(
 'versionrequired' => 'Versiyona $1 a MediaWiki pêwîst e',
 'versionrequiredtext' => 'Versiyona $1 a MediaWiki ji bo bikaranîna vê rûpelê pêwîst e. Li [[Special:Versiyon|rûpela versiyonê]] binêre.',
 
-'ok' => 'Temam',
+'ok' => 'Baş e',
 'retrievedfrom' => 'Ji "$1" hatiye standin.',
 'youhavenewmessages' => '$1 yên te hene ($2).',
 'newmessageslink' => 'Peyamên nû',
-'newmessagesdifflink' => 'ciyawazî ji guhertoya berê',
+'newmessagesdifflink' => 'cudayî ji guhertoya berê',
 'youhavenewmessagesmulti' => 'Peyamên nû li $1 ji te re hene.',
 'editsection' => 'biguherîne',
 'editold' => 'biguherîne',
@@ -364,7 +364,7 @@ $messages = array(
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Rûpel',
-'nstab-user' => 'Bikarhêner',
+'nstab-user' => 'Rûpela bikarhêner',
 'nstab-media' => 'Medya',
 'nstab-special' => 'Rûpela taybet',
 'nstab-project' => 'Rûpela projeyê',
@@ -402,7 +402,7 @@ Sedema girtinê ev e: $1',
 'internalerror' => 'Çewtiyeke navxweyî',
 'internalerror_info' => 'Çewtiya navxweyî: $1',
 'fileappenderror' => '"$1" li "$2" nehate zêdekirin.',
-'filecopyerror' => 'Daneya „$1“ ji bo „$2“ naye kopîkirin.',
+'filecopyerror' => 'Daneya "$1" ji bo "$2" naye kopîkirin.',
 'filerenameerror' => 'Navê pelê "$1" nebû "$2".',
 'filedeleteerror' => '"$1" jê nehate birîn.',
 'directorycreateerror' => 'Rêbera "$1" nehate çêkirin.',
@@ -411,7 +411,7 @@ Sedema girtinê ev e: $1',
 'unexpected' => 'Tiştekî nedihate hêvîkirin: "$1"="$2".',
 'formerror' => 'Çewtî: Ew nivîs pêk nehat.',
 'badarticleerror' => 'Ev çalakî di vê rûpelê de nabe.',
-'cannotdelete' => 'Ev rûpel nikare were jêbirin. Dibe ku kesekî din ev rûpel jêbiribe.',
+'cannotdelete' => 'Ev rûpel an wêne nikare were jêbirin. Dibe ku kesekî din ev rûpel jêbiribe.',
 'badtitle' => 'Sernivîsa nebaş',
 'badtitletext' => 'Sernavê rûpelê yê xwestî ne derbasdar, vala an jî ne xwediyê girêdaneke rast e.
 Dibe ku di sernavê de karakterên nayên bikaranîn hatibin nivîsandin.',
@@ -429,10 +429,8 @@ Pirs: $2',
 'protectedinterface' => "Di vê rûpelê da nivîsandin ji bo interface'î zimanan yê vê software'ê ye. Ew tê parstin ji bo vandalîzm li vê derê çênebe.",
 'editinginterface' => "'''Hişyarî:''' Tu rûpeleke ku di Wîkîpediya de ji bo sîstemê girîng e diguherînî. Guherandinên di vê rûpelê de wê ji aliyê hemû bikarhêneran ve werin dîtin. Ji bo wergerê ji kerema xwe di [//translatewiki.net/wiki/Main_Page?setlang=ku translatewiki.net] de bixebite, projeya MediaWiki.",
 'sqlhidden' => '(Jêpirskirina SQL hatiye veşartin)',
-'cascadeprotected' => '<strong>Ev rûpel hatiye parastin ji ber guherandinê, ji ber ku ev rûpela di {{PLURAL:$1|vê rûpelê|van rûpelan da}} tê bikaranîn:
-$2
-
-</strong>',
+'cascadeprotected' => 'Ev rûpel hatiye parastin ji ber guherandinê, ji ber ku ev rûpela di {{PLURAL:$1|vê rûpelê|van rûpelan da}} tê bikaranîn:
+$2',
 'namespaceprotected' => "Destûra te ji bo guhertina vê rûpelê '''$1''' di valahiya nav de nîne.",
 'ns-specialprotected' => 'Rûpelên taybet {{ns:special}} nikarin werin guherandin.',
 'titleprotected' => "Rûpelek bi vî navî nikare were çêkirin. Ev astengkirin ji [[User:$1|$1]] bi sedema ''$2'' hate çêkirin.",
@@ -441,7 +439,7 @@ $2
 'virus-unknownscanner' => 'Antîvîrusa nenas:',
 
 # Login and logout pages
-'logouttext' => "'''Tu niha derketî (logged out).'''
+'logouttext' => "'''Tu niha derketî.'''
 
 Tu dikarî {{SITENAME}} niha weke bikarhênerekî nediyarkirî bikarbînî, yan jî tu dikarî dîsa bi vî navê xwe yan navekî din wek bikarhêner [[Special:UserLogin|dîsa têkevî]].
 Bila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd kiriyî werin nîşandan, heta ku tu nîşanên çavlêgerandina (browser) xwe jênebî.",
@@ -456,16 +454,16 @@ Hesabê te hate afirandin. Tu dikarî niha [[Special:Preferences|tercîhên xwe
 'externaldberror' => 'Çewtiyeke bingeha daneyan heye, an jî destûra te ya rojanekirina hesabê xweyê navxweyî nîne.',
 'login' => 'Têkeve',
 'nav-login-createaccount' => 'Têkeve / hesabekî nû çêke',
-'loginprompt' => "<b>Eger tu xwe nû qeyd bikî, nav û şîfreya xwe hilbijêre.</b> Ji bo xwe qeyd kirinê di {{SITENAME}} de divê ku ''cookies'' gengaz be.",
-'userlogin' => 'Têkeve an hesabeke nû çêke',
+'loginprompt' => "<b>Eger tu xwe nû tomar bikî, nav û şîfreya xwe hilbijêre.</b> Ji bo tomarkirina te ya di {{SITENAME}} de divê ku ''cookies'' gengaz bin.",
+'userlogin' => 'Têkeve an hesabekî nû çêke',
 'userloginnocreate' => 'Têkeve',
 'logout' => 'Derkeve',
 'userlogout' => 'Derkeve',
-'notloggedin' => 'Xwe qeyd nekir (not logged in)',
+'notloggedin' => 'Xwe tomar nekir',
 'nologin' => 'Hesabê te nîne? $1.',
 'nologinlink' => 'Bibe endam',
 'createaccount' => 'Hesabê nû çêke',
-'gotaccount' => "Hesabê te heye? '''$1'''.",
+'gotaccount' => 'Hesabê te heye? $1.',
 'gotaccountlink' => 'Têkeve',
 'userlogin-resetlink' => 'Te agahiyên hesabê xwe ji bîr kirin?',
 'createaccountmail' => 'bi e-name',
@@ -476,9 +474,9 @@ Hesabê te hate afirandin. Tu dikarî niha [[Special:Preferences|tercîhên xwe
 'nocookiesnew' => "Hesabê bikarhêner hatibû çêkirin, lê te xwe qeyd nekiriye. {{SITENAME}} ji bo qeydkirina bikarhêneran cookie'yan bikartîne. Te bikaranîna cookie'yan girtiye. Xêra xwe cookie'yan qebûl bike, piştre bi navê bikarhêner û şîfreya xwe têkeve.",
 'nocookieslogin' => 'Ji bo qeydkirina bikarhêneran {{SITENAME}} "cookies" bikartîne. Te fonksîyona "cookies" girtîye. Xêra xwe kerema xwe "cookies" gengaz bike û careke din biceribîne.',
 'noname' => 'Navê ku te nivîsand derbas nabe.',
-'loginsuccesstitle' => 'Têketin serkeftî!',
-'loginsuccess' => 'Tu niha di {{SITENAME}} de qeydkirî yî wek "$1".',
-'nosuchuser' => 'Bikarhênera/ê bi navê "$1" tune. Navê rast binivîse an bi vê formê <b>hesabeke nû çêke</b>. (Ji bo hevalên nû "Têkeve" çênabe!)',
+'loginsuccesstitle' => 'Têketin serkevtî bû!',
+'loginsuccess' => 'Tu niha di {{SITENAME}} de tomarkirî yî wek "$1".',
+'nosuchuser' => 'Bikarhênerê bi navê "$1" tune. Navê rast binivîse an bi vê formê <b>hesabekî nû çêke</b>. (Ji bo hevalên nû "Têkeve" çênabe!)',
 'nosuchusershort' => 'Li vê derê ne bikarhênerek bi navî "$1" heye. Li nivîsandinê xwe seke.',
 'nouserspecified' => 'Divê tu navekî ji bo bikarhêneriyê hilbijêrî.',
 'login-userblocked' => 'Rê li ber vî/vê bikarhênerî/ê hatiye girtin. Destûr bo têketinê nîne.',
@@ -488,18 +486,18 @@ Hesabê te hate afirandin. Tu dikarî niha [[Special:Preferences|tercîhên xwe
 'password-name-match' => 'Divê şîfreya te ji navê te yê bikaranînê cuda be.',
 'password-login-forbidden' => 'Bikaranîna vî navî û vê şîfreyê hatiye qedexekirin.',
 'mailmypassword' => 'Şîfreyeke nû bi e-mail ji min re bişîne',
-'passwordremindertitle' => 'Şîfreyakekî nuh ji hesabekî {{SITENAME}} ra',
-'passwordremindertext' => 'Kesek (têbê tu, bi IP\'ya $1) xwast ku şîfreyekî nuh ji {{SITENAME}} ($4) ji te ra were şandin. Şîfreya nuh ji bikarhêner "$2" niha "$3" e. Tu dikarî niha têkevê û şîfreya xwe biguherînê.
+'passwordremindertitle' => 'Şîfreyeke nû ya ji hesabekî {{SITENAME}} re',
+'passwordremindertext' => 'Kesek (têbê tu, bi IP\'ya $1) xwast ku şîfreyeke nû ji {{SITENAME}} ($4) ji te ra were şandin. Şîfreya nû ya bikarhêner "$2" niha "$3" e. Tu dikarî niha têkevê û şîfreya xwe biguherînê.
 
 Eger kesekî din vê xastinê ji te ra xast ya şîfreya kevin dîsa hate bîrê te, tu dikarê guh nedê vê peyamê û tu dikarê bi şîfreya xwe yê kevin hên karbikê.',
 'noemail' => 'Navnîşana bikarhênerê/î "$1" nehat tomar kirine.',
 'noemailcreate' => 'Divê tu e-nameyeke derbasdar binivîsî',
 'passwordsent' => 'Ji navnîşana e-mail ku ji bo "$1" hat tomarkirin şîfreyekê nû hat şandin. Vê bistîne û dîsa têkeve.',
-'blocked-mailpassword' => "IP'ya te yê ji te niha tê bikaranin ji bo guherandinê ra hatîye astengkirin. Ji bo tiştên şaş çênebin, xastinê te ji bo şifreyeka nuh jî hatîye qedexekirin.",
+'blocked-mailpassword' => "IP'ya ku tu niha bi kar tînî ji guherandinê re hatiye astengkirin. Ji bo tiştên şaş çênebin, xwestina te ya ji bo şîfreyeke nû jî hatiye qedexekirin.",
 'eauthentsent' => 'E-nameyeka naskirinê ji adresa nivîsî ra hate şandin. Berî e-name ji bikarhênerên din bi vê rêkê dikaribim bi te gên, ew adresa û rastbûna xwe gireke werin naskirin. Xêra xwe e-nameyê naskirinê bixûne!',
-'throttled-mailpassword' => 'Berî {{PLURAL:$1|saetekê|$1 saetan}} şîfreyekî nuh hate xastin. Ji bo şaşbûn bi vê fonksyonê çênebin, bes her {{PLURAL:$1|saetekê|$1 saetan}} şîfreyekî nuh dikare were xastin.',
+'throttled-mailpassword' => 'Berî {{PLURAL:$1|saetekê|$1 saetan}} şîfreyeke nû hate xwestin. Ji bo şaşbûn bi vê fonksiyonê çênebin, bes her {{PLURAL:$1|saetekê|$1 saetan}} şîfreyeke nû dikare were xwestin.',
 'mailerror' => 'Şaşbûnek li cem şandina e-nameyekê: $1',
-'acct_creation_throttle_hit' => 'Biborîne! Te hesab $1 vekirine. Tu êdî nikarî hesabên din vekî.',
+'acct_creation_throttle_hit' => 'Bibexşe! Te hesabê bikarhêneriyê $1 vekiriye. Tu êdî nikarî hesabên din vekî.',
 'emailauthenticated' => 'Adresa e-nameya te hate naskirin: $1.',
 'emailnotauthenticated' => 'Adresa e-nameyan yê te hên nehatîye naskirin. Fonksyonên e-nameyan piştî naskirina te dikarin ji te werin kirin.',
 'noemailprefs' => "'''Te hên adresa e-nameyan nenivîsandîye''', fonksyonên e-nameyan hên ji te ra ne tên qebûlkirin.",
@@ -520,7 +518,8 @@ Eger account\'a bikarhêneran şaşî hate çêkirin, guhdare vê peyamê meke.'
 
 # Change password dialog
 'resetpass' => 'Şîfreyê biguherîne',
-'resetpass_announce' => 'Te xwe bi şîfreyekê qeydkir, yê bi e-nameyekê ji te ra hate şandin. Ji bo xelaskirinê qeydkirinê, tu niha gireke şîfreyeka nuh binivisînê.',
+'resetpass_announce' => 'Te xwe bi şîfreyekê tomar kiriye ku bi riya e-nameyekê ji te re hatiye şandin.
+Ji bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:',
 'resetpass_text' => '<!-- Nivîsê li vir binivisîne -->',
 'resetpass_header' => 'Şîfreya hesabê xwe biguherîne',
 'oldpassword' => 'Şîfreya kevn',
@@ -655,25 +654,26 @@ Astengkirina dawî bi referansa li jêr hatiye piştrastkirin:',
 'editingcomment' => '$1 (şîrove) tê guherandin.',
 'editconflict' => 'Têkçûna guherandinan: $1',
 'explainconflict' => "Ji dema te dest bi guherandinê kir heta niha kesekê/î din ev rûpel guherand.
-Jor guhartoya heyî tê dîtîn.
-Guherandinên te jêr tên nîşan dan.
-Divê tû wan bikî yek.
-Heke niha tomar bikî, '''bi tene''' nivîsara qutiya jor wê bê tomarkirin.",
+Li jor guhertoya heyî tê dîtîn.
+Guherandinên te li jêr tên nîşandan.
+Divê tu wan bikî yek.
+Heke niha tomar bikî, '''bi tenê''' nivîsara qutiya jor wê bê tomarkirin.",
 'yourtext' => 'Nivîsara te',
 'storedversion' => 'Versiyona qeydkirî',
 'editingold' => "'''Hişyarî: Tu li ser guhertoyeke kevn a vê rûpelê dixebitî.
 Heke tu qeyd bikî, hemû guhertinên piştî vê revîzyonê winda dibin.
 '''",
-'yourdiff' => 'Ciyawazî',
-'copyrightwarning' => "Hişyarî: Hemû tevkariyên {{SITENAME}} di bin $2 de tên belav kirin (ji bo hûragahiyan li $1 binêre). Eger tu nexwazî ku nivîsên te bê dilrehmî bên guherandin û li gora keyfa herkesî bên belavkirin, li vir neweşîne.<br />
-Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane ''(public domain)'' girt.
-'''BERHEMÊN MAFÊN WAN PARASTΠ(©) BÊ DESTÛR NEWEŞÎNE!'''",
+'yourdiff' => 'Cudahî',
+'copyrightwarning' => "Hemû tevkariyên {{SITENAME}} di bin $2 de tên belav kirin (ji bo hûragahiyan li $1 binêre).
+Eger tu nexwazî ku nivîsên te bê dilrehmî bên guherandin û li gora keyfa herkesî bên belavkirin, li vir neweşîne.<br />
+Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane (''public domain'') girt.
+'''Berhemên mafên wan parastî bê destûr neweşîne!'''",
 'protectedpagewarning' => "'''Hişyarî:  Ev rûpel tê parastin. Bi tenê bikarhênerên ku xwediyên mafên \"koordînatoriyê\" ne, dikarin vê rûpelê biguherînin.'''",
 'semiprotectedpagewarning' => "'''Hişyarî:''' Ev rûpel tê parastin, lewma bes bikarhênerên tomarkirî dikarin vê biguherînin.
 Guhertina herî dawî bi referansa li jêr hatiye piştrastkirin:",
-'templatesused' => 'Şablon di van rûpelan da tê bikaranîn',
-'templatesusedpreview' => 'Şablon yê di vê pêşdîtinê da tên bikaranîn:',
-'templatesusedsection' => 'Şablon yê di vê perçê da tên bikaranîn:',
+'templatesused' => 'Şablon di van rûpelan de tê bikaranîn',
+'templatesusedpreview' => 'Şablonên ku di vê pêşdîtinê de tên bikaranîn:',
+'templatesusedsection' => 'Şablonên ku di vê parçeyê de tên bikaranîn:',
 'template-protected' => '(tê parastin)',
 'template-semiprotected' => '(nîv-parastî)',
 'hiddencategories' => 'Ev rûpel endamê{{PLURAL:$1|1 hidden category|$1 hidden categories}} ye:',
@@ -695,8 +695,8 @@ Sedema jêbirina rûpelê bi referansa li jêr hatiye piştrastkirin.',
 Ew berê heye.',
 
 # "Undo" feature
-'undo-success' => 'Ev guherandina kane were şondakirin. Xêra xwe ferqê piştî tomarkirinê bibîne û seke, ku tu ew versîyona dixwazê û tomarbike. Eger te şaşbûnekî kir, xêra xwe derkeve.',
-'undo-failure' => 'Ev guherandina nikane were şondakirin ji ber ku guherandinên piştî wê.',
+'undo-success' => 'Ev guherandin dikare were şûndekirin. Ji kerema xwe ferqa piştî tomarkirinê bibîne, bê ka tu dixwazî vê guhertoyê tomar bikî an na. Ger te şaşîtiyek kir, ji kerema xwe derkeve.',
+'undo-failure' => 'Ev guhertin ji ber guherandinên piştî wê re nikare were şûndekirin.',
 'undo-summary' => 'Guhertoya $1 ya [[Special:Contributions/$2|$2]] ([[User talk:$2|gotûbêj]]) şûnde kir',
 
 # Account creation failure
@@ -713,13 +713,13 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'revisionasof' => 'Guhertoya $1',
 'revision-info' => 'Guhertoya $1 ya ji aliyê $2 ve',
 'previousrevision' => '←Guhertoya kevintir',
-'nextrevision' => 'Guhertoya nûtir→',
+'nextrevision' => 'Guhertoya nûtir →',
 'currentrevisionlink' => 'Guhertoya niha nîşan bide',
 'cur' => 'cudahî',
 'next' => 'pêş',
 'last' => 'berê',
-'page_first' => 'yekemîn',
-'page_last' => 'paşîn',
+'page_first' => 'ya pêşîn',
+'page_last' => 'ya paşîn',
 'histlegend' => 'Rênîşan: (cudahî) = cudahiya nav vê û versiyona niha,
 (berê) = cudahiya nav vê û ya berî vê, B = guhertina biçûk',
 'history-fieldset-title' => 'Li dîrokê bigere',
@@ -778,7 +778,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'revertmerge' => 'Veqetîne',
 
 # Diffs
-'history-title' => 'Dîroka versyonên "$1"',
+'history-title' => 'Dîroka guhertoyên "$1"',
 'difference-title' => 'Cudahiya di navbera guhertoyên "$1" de',
 'difference-multipage' => '(Cudahî di navbera rûpelan de)',
 'lineno' => 'Rêz $1:',
@@ -790,17 +790,18 @@ Sedema qedexekirina $3 ev e: ''$2''",
 # Search results
 'searchresults' => 'Encamên lêgerînê',
 'searchresults-title' => 'Encamên lêgerrînê bo "$1"',
-'searchresulttext' => 'Ji bo zêdetir agahî der barê lêgerînê di {{SITENAME}} de, binêre [[{{MediaWiki:Helppage}}|Searching {{SITENAME}}]].',
+'searchresulttext' => 'Ji bo zêdetir agahî der barê lêgerînê di {{SITENAME}} de, binêre [[{{MediaWiki:Helppage}}|{{int:help}}]].',
 'searchsubtitle' => 'Te daxwaza "[[:$1]]" kir. ([[Special:Prefixindex/$1|hemî rûpelên bi "$1" dest pê dikin]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|hemî rûpelên ku bi "$1" ve hatine girêdan]])',
 'searchsubtitleinvalid' => "Tu li '''$1''' geriyayî",
 'titlematches' => 'Dîtinên di sernivîsên gotaran de',
 'notitlematches' => 'Di nav sernivîsan de nehat dîtin.',
 'textmatches' => 'Dîtinên di nivîsara rûpelan de',
-'notextmatches' => 'Di nivîsarê de nehat dîtin.',
+'notextmatches' => 'Di nav sernivîsan de nehat dîtin.',
 'prevn' => '{{PLURAL:$1|$1}} paş',
 'nextn' => '{{PLURAL:$1|$1}} pêş',
 'prevn-title' => '{{PLURAL:$1|result|Encamên}} pêştir $1',
 'nextn-title' => '$1 {{PLURAL:$1|encama|encamên}} pêştir',
+'shown-title' => 'Li her rûpelê $1 {{PLURAL:$1|encam|encaman}} nîşan bide',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Vebijartinên lêgerrînê',
 'searchmenu-exists' => "'''Rûpeleke bi navê \"[[:\$1]]\" li ser vê wîkiyê heye.'''",
@@ -850,7 +851,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'preferences' => 'Tercîhên min',
 'mypreferences' => 'Tercihên min',
 'prefs-edits' => 'Hejmarê guherandinan:',
-'prefsnologin' => 'Xwe qeyd nekir',
+'prefsnologin' => 'Xwe tomar nekir',
 'prefsnologintext' => 'Tu gireke xwe <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} qeydbikê]</span> ji bo guherandina tercihên bikarhêneran.',
 'changepassword' => 'Şîfreyê biguherîne',
 'prefs-skin' => 'Pêste',
@@ -869,7 +870,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'prefs-setemail' => 'Navnîşana E-nameyê binivîse',
 'prefs-email' => 'Vebijarkên E-nameyê',
 'prefs-rendering' => 'Rû',
-'saveprefs' => 'Tercîhan qeyd bike',
+'saveprefs' => 'Tercîhan tomar bike',
 'resetprefs' => 'Guhertinên netomarkirî şûnde vegerîne',
 'prefs-editing' => 'Guherandin',
 'rows' => 'Rêz',
@@ -908,7 +909,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'yourvariant' => 'Cuda:',
 'yournick' => 'Bernavkê nû (ji bo îmzeyê):',
 'badsig' => 'Îmzeya ne derbasdar! Li HTML binêre ka sedema şaşbûnê çiye.',
-'badsiglength' => 'Navî te zêde dirêj e; ew gireke di bin {{PLURAL:$1|nîÅ\9fanekê|nîÅ\9fanan}} da be.',
+'badsiglength' => 'Navê te zêde dirêj e; pêwîst e di bin {{PLURAL:$1|nîÅ\9fanekê|nîÅ\9fanan}} de be.',
 'yourgender' => 'Zayend:',
 'gender-male' => 'Nêr',
 'gender-female' => 'Mê',
@@ -939,7 +940,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'userrights-user-editname' => 'Navekî bikarhêneriyê binivîse:',
 'editusergroup' => 'Komên bikarhêneran biguherîne',
 'editinguser' => "Mafên bikarhêner '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]]) tên guhertin",
-'userrights-editusergroup' => 'Grûpên bikarhêneran biguherîne',
+'userrights-editusergroup' => 'Komên bikarhêneran biguherîne',
 'saveusergroups' => 'Komên bikarhêneran tomar bike',
 'userrights-groupsmember' => 'Endamê/a:',
 'userrights-groups-help' => 'Tu dikarî komên bikarhêneran ên vê/vî bikarhênerê/î biguherînî:
@@ -951,8 +952,8 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'userrights-nodatabase' => 'Danegeh $1 nîne an ne ya vir e.',
 'userrights-nologin' => 'Ji bo guherandina mafên bikarhêneran, divê tu bi hesabê rêveber [[Special:UserLogin|têkevî]].',
 'userrights-notallowed' => "Account'a te mafê xwe tune ye ji bo guherandina mafên bikarhêneran.",
-'userrights-changeable-col' => 'Komên tu dikarî biguherînî',
-'userrights-unchangeable-col' => 'Komên tu nikarî biguherînî',
+'userrights-changeable-col' => 'Komên ku tu dikarî biguherînî',
+'userrights-unchangeable-col' => 'Komên ku tu nikarî biguherînî',
 
 # Groups
 'group' => 'Kom',
@@ -988,13 +989,13 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'right-sendemail' => 'Ji bikarhênerên di re e-name bişîne',
 
 # User rights log
-'rightslog' => 'Reşahîya mafên bikarhêneran',
-'rightslogtext' => 'Ev reşahîyek ji bo guherandinên mafên bikarhêneran e.',
+'rightslog' => 'guhertina mafê bikarhêneriyê',
+'rightslogtext' => 'Ev guhertineke ji bo mafên bikarhêneriyê ye.',
 'rightslogentry' => 'grûpa bikarhêneran ji bo $1 ji $2 guherande $3',
 'rightsnone' => '(tune)',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-read' => 'Vê rûpelê bixwîne',
+'action-read' => 'vê rûpelê bixwîne',
 'action-edit' => 'vê rûpelê biguherîne',
 'action-createpage' => 'rûpelan çêke',
 'action-createtalk' => 'rûpelên gotûbêjan çêke',
@@ -1002,9 +1003,9 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'action-minoredit' => 'vê weke guhertineke biçûk nîşan bide',
 'action-move' => 'vê rûpelê bigerîne',
 'action-move-subpages' => 'vê rûpelê û binrûpelên wê bigerîne',
-'action-movefile' => "vê data'yê bigerîne",
-'action-upload' => "vê data'yê barbike",
-'action-delete' => 'vê rûpelê jêbibe',
+'action-movefile' => 'vê daneyê bigerîne',
+'action-upload' => 'vê daneyê bar bike',
+'action-delete' => 'vê rûpelê jê bibe',
 'action-deleterevision' => 'Vê revîzyonê je bibe',
 'action-deletedhistory' => 'dîroka vê rûpelê jêbirî bibîne',
 'action-browsearchive' => 'li rûpelên jêbirî bigere',
@@ -1035,12 +1036,12 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'boteditletter' => 'b',
 'number_of_watching_users_pageview' => '[{{PLURAL:$1|bikarhênerek|$1 bikarhêner}} vê rûpelê {{PLURAL:$1|dişopîne|dişopînin}}.]',
 'rc_categories_any' => 'Hîç',
-'newsectionsummary' => '/* $1 */ beşeka nuh',
+'newsectionsummary' => '/* $1 */ beşeke nû',
 'rc-enhanced-expand' => 'Kitûmatan nîşan bide (JavaScript pêdivî ye)',
 'rc-enhanced-hide' => 'Kitûmatan veşêre',
 
 # Recent changes linked
-'recentchangeslinked' => 'Guherandinên peywend',
+'recentchangeslinked' => 'Guherandinên têkilîdar',
 'recentchangeslinked-feed' => 'Guherandinên peywend',
 'recentchangeslinked-toolbox' => 'Guherandinên peywend',
 'recentchangeslinked-summary' => "Ev rûpela taybetî guherandinên dawî ji rûpelên lînkkirî nîşandide. Ew rûpel yê di lîsteya te ya şopandinê da ne bi nivîsa '''estûr''' tên nîşandan.",
@@ -1048,9 +1049,9 @@ Sedema qedexekirina $3 ev e: ''$2''",
 
 # Upload
 'upload' => 'Wêneyekî barbike',
-'uploadbtn' => 'Wêneyê (ya tiÅ\9ftekî din ya mêdya) barbike',
+'uploadbtn' => 'Wêneyî (yan tiÅ\9ftekî din Ãª medyayê) bar bike',
 'reuploaddesc' => 'Barkirinê biskîne û dîsa here rûpela barkirinê.',
-'uploadnologin' => 'Xwe qeyd nekir',
+'uploadnologin' => 'Xwe tomar nekir',
 'uploadnologintext' => 'Ji bo barkirina wêneyan divê ku tu [[Special:UserLogin|têkevî]].',
 'uploaderror' => 'Çewtiya barkirinê',
 'upload-recreate-warning' => "'''Agahdarî: Peleke bi vî navî hatiye jêbirin an jî raguhestin.'''",
@@ -1072,10 +1073,11 @@ anjî ji bo file'ên dengî '''<nowiki>[[</nowiki>{{ns:media}}:File.ogg<nowiki>]
 'filestatus' => 'Rewşa telîfê:',
 'filesource' => 'Çavkanî:',
 'uploadedfiles' => 'Pelên barkirî',
-'ignorewarning' => 'Hişyarê qebûl neke û dosyayê qeyd bike.',
+'ignorewarning' => 'Guh nede hişyariyê û pelê qeyd bike',
 'ignorewarnings' => 'Guh nede hişyariyan',
 'minlength1' => "Navên data'yan bi kêmani gireke tîpek be.",
-'illegalfilename' => 'Navî datayê "$1" ne tê qebûlkirin ji ber ku tişt tê da hatine nivîsandin yê qedexe ne. Xêra xwe navî datayê biguherîne û carekî din barbike.',
+'illegalfilename' => 'Navê daneya "$1" nayê qebûlkirin ji ber ku tê de tiştên qedexekirî hatine nivîsandin.
+Ji kerema xwe re navê daneyê biguherîne û carekî din bar bike!',
 'badfilename' => 'Navê vî wêneyî hat guherandin û bû "$1".',
 'filetype-badmime' => 'Data bi formata MIME yê "$1" nameşin werin barkirin.',
 'filetype-unwanted-type' => '\'\'\'".$1"\'\'\' formatekî nexastî ye.
@@ -1098,10 +1100,10 @@ Xêra xwe navekî din bibîne.",
 'file-thumbnail-no' => "Navî vê datayê bi '''<tt>$1</tt>''' destpêdike. Ev dibêje ku ev wêneyekî çûçik e ''(thumbnail)''. Xêra xwe seke, ku belkî versyonekî mezin yê vê wêneyê li cem te heye û wê wêneyê mezintir di bin navî orîjînal da barbike.",
 'fileexists-forbidden' => 'Medyayek bi vê navî heye; xêra xwe şonda here û vê medyayê bi navekî din barbike.
 [[File:$1|thumb|center|$1]]',
-'uploadwarning' => 'Hişyara barkirinê',
+'uploadwarning' => 'Hişyariya barkirinê',
 'savefile' => 'Dosyayê tomar bike',
-'uploadedimage' => '"$1" barkirî',
-'overwroteimage' => 'versyonekî nuh ji "[[$1]]" hate barkirin',
+'uploadedimage' => '"[[$1]]" hate barkirin',
+'overwroteimage' => 'versiyonekî nû ya "[[$1]]" hate barkirin',
 'uploaddisabled' => 'Barkirin hatîye qedexekirin',
 'uploaddisabledtext' => "Barkirinê data'yan  hatiye qedexekirin.",
 'uploadvirus' => "Di vê data'yê da vîrûsek heye! Înformasyon: $1",
@@ -1128,21 +1130,21 @@ Xêra xwe navekî din bibîne.",
 'license-nopreview' => 'Pêşdîtin ne gengaz e.',
 
 # Special:ListFiles
-'listfiles_search_for' => 'Li navî wêneyê bigere:',
+'listfiles_search_for' => 'Li navê wêneyî bigere:',
 'imgfile' => 'dosye',
-'listfiles' => 'Listeya wêneyan',
+'listfiles' => 'Lîsteya wêneyan',
 'listfiles_date' => 'Dem',
 'listfiles_name' => 'Nav',
 'listfiles_user' => 'Bikarhêner',
 'listfiles_size' => 'Mezinbûn',
 'listfiles_description' => 'Danasîn',
-'listfiles_count' => 'Versiyon',
+'listfiles_count' => 'Guherto',
 
 # File description page
 'file-anchor-link' => 'Wêne',
-'filehist' => 'Dîroka datayê',
+'filehist' => 'Dîroka daneyê',
 'filehist-help' => 'Ji bo dîtina guhertoya wê demê bişkoka dîrokê bitikîne.',
-'filehist-deleteall' => 'giştika jêbibe',
+'filehist-deleteall' => 'hemûyan jê bibe',
 'filehist-deleteone' => 'jê bibe',
 'filehist-revert' => 'şûnde vegerîne',
 'filehist-current' => 'niha',
@@ -1159,7 +1161,7 @@ Xêra xwe navekî din bibîne.",
 'linkstoimage-redirect' => '$1 (beralîkirina pelê) $2',
 'sharedupload-desc-here' => 'Ev pel ji $1 û dibe ku ji aliyê projeyên din ve jî hatibe bikaranîn.
 Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
-'uploadnewversion-linktext' => 'Versyonekî nû yê vê datayê barbike',
+'uploadnewversion-linktext' => 'Versiyoneke nû ya vê daneyê barbike',
 'shared-repo-from' => 'ji $1',
 
 # File reversion
@@ -1229,7 +1231,7 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 
 'brokenredirects' => 'Beralîkirinên xerabûyî',
 'brokenredirects-edit' => 'biguherîne',
-'brokenredirects-delete' => 'jêbibe',
+'brokenredirects-delete' => 'jê bibe',
 
 'withoutinterwiki' => 'Rûpelên bê girêdanên ziman',
 'withoutinterwiki-legend' => 'Pêşbendik',
@@ -1247,13 +1249,13 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 'uncategorizedcategories' => 'Kategoriyên bê kategorî',
 'uncategorizedimages' => 'Wêneyên bê kategorî',
 'uncategorizedtemplates' => 'Şablonên bê kategorî',
-'unusedcategories' => 'Kategoriyên ku nayên bi kar anîn',
-'unusedimages' => 'Wêneyên ku nayên bi kar anîn',
+'unusedcategories' => 'Kategoriyên ku nayên bikaranîn',
+'unusedimages' => 'Wêneyên ku nayên bikaranîn',
 'popularpages' => 'Rûpelên populer',
-'wantedcategories' => 'Kategoriyên tên xwestin',
+'wantedcategories' => 'Kategoriyên ku tên xwestin',
 'wantedpages' => 'Rûpelên ku tên xwestin',
 'wantedfiles' => 'Wêneyên ku tên xwestin',
-'wantedtemplates' => 'Şablonên tên xwestin',
+'wantedtemplates' => 'Şablonên ku tên xwestin',
 'mostlinked' => 'Rûpelên bi bêhtirîn girêdan',
 'mostlinkedcategories' => 'Kategoriyên bi bêhtirîn girêdan',
 'mostcategories' => 'Rûpelên bi pir kategorî',
@@ -1273,13 +1275,13 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 'movethispage' => 'Vê rûpelê bigerîne',
 'notargettitle' => 'Hedef tune',
 'pager-newer-n' => '{{PLURAL:$1|nûtir 1|nûtir $1}}',
-'pager-older-n' => '{{PLURAL:$1|kevintirin 1|kevintirin $1}}',
+'pager-older-n' => '{{PLURAL:$1|kevintir 1|kevintir $1}}',
 
 # Book sources
 'booksources' => 'Çavkaniyên pirtûkan',
 'booksources-search-legend' => 'Li pirtûkan bigere',
 'booksources-go' => 'Here',
-'booksources-text' => 'Li vir listek ji lînkên rûpelên, yê pirtûkên nuh ya kevin difiroşin, heye. Hên jî li vir tu dikarî înformasyonan li ser wan pirtûkan tê derxê.',
+'booksources-text' => 'Li vir listek ji lînkên rûpelên, yê pirtûkên nû ya kevin difiroşin, heye. Hên jî li vir tu dikarî înformasyonan li ser wan pirtûkan tê derxê.',
 
 # Special:Log
 'specialloguserlabel' => 'Bikarhêner:',
@@ -1317,14 +1319,14 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 'special-categories-sort-abc' => 'li gorî alfabeyê rêzkirî ye',
 
 # Special:DeletedContributions
-'deletedcontributions' => 'Guherandinên bikarhênerekî yê jêbirî',
-'deletedcontributions-title' => 'Guherandinên bikarhênerekî yê jêbirî',
+'deletedcontributions' => 'Beşdariyên bikarhênerekî yê jêbirî',
+'deletedcontributions-title' => 'Guherandinên bikarhêner yê jêbirî',
 'sp-deletedcontributions-contribs' => 'tevkarî',
 
 # Special:LinkSearch
 'linksearch' => 'Girêdanên derveyî',
 'linksearch-ns' => 'Valahiya nav:',
-'linksearch-ok' => 'Lêbigere',
+'linksearch-ok' => 'Lêgerîn',
 
 # Special:ListUsers
 'listusers-submit' => 'Nîşan bide',
@@ -1344,6 +1346,7 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 'listgrouprights' => 'Mafên koma bikarhêner',
 'listgrouprights-group' => 'Kom',
 'listgrouprights-rights' => 'Maf',
+'listgrouprights-helppage' => 'Help:Mafên koman',
 'listgrouprights-members' => '(lîsteya endaman)',
 'listgrouprights-addgroup-all' => 'Hemû koman tevlî bike',
 'listgrouprights-removegroup-all' => 'Hemû koman jê bibe',
@@ -1351,7 +1354,7 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 # E-mail user
 'mailnologin' => 'Navnîşanê neşîne',
 'mailnologintext' => 'Te gireke xwe [[Special:UserLogin|qeydbikê]] û adrêsa e-nameyan di [[Special:Preferences|tercihên xwe]] da nivîsandibe ji bo şandina e-nameyan ji bikarhênerên din ra.',
-'emailuser' => 'Ji vê/î bikarhênerê/î re e-name bişîne',
+'emailuser' => 'Ji bikarhêner re e-name bişîne',
 'emailpage' => 'E-name bikarhêner',
 'defemailsubject' => '{{SITENAME}} e-name',
 'noemailtitle' => 'Navnîşana e-name tune',
@@ -1373,17 +1376,16 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 'watchlist' => 'Lîsteya min a şopandinê',
 'mywatchlist' => 'Lîsteya min a şopandinê',
 'nowatchlist' => 'Tiştek di lîsteya te ya şopandinê de tune ye.',
-'watchlistanontext' => 'Ji bo sekirinê ya xeyrandinê lîsteya te ya şopandinê tu gireke xwe $1.',
-'watchnologin' => 'Te xwe qeyd nekiriye.',
-'watchnologintext' => 'Ji bo xeyrandinê lîsteya te ya şopandinê tu gireke xwe [[Special:UserLogin|qedy kiribe]].',
+'watchlistanontext' => 'Ji  kerema xwe ji bo dîtin an jî sererastkirina lîsteya te ya şopandinê xwe $1.',
+'watchnologin' => 'Te xwe tomar nekiriye',
+'watchnologintext' => 'Ji bo dîtin an jî sererastkirina lîsteya te ya şopandinê divê tu xwe [[Special:Userlogin|tomar bikî]].',
 'addwatch' => 'Tevlî lîsteya şopandinê bike',
-'addedwatchtext' => "Rûpela \"<nowiki>\$1</nowiki>\" çû ser [[Special:Watchlist|lîsteya te ya şopandinê]].
-Li dahatû de her guhartoyek li wê rûpelê û rûpela gotûbêjê wê were kirin li vir dêt nîşan dan,
-
-Li rûpela [[Special:RecentChanges|Guherandinên dawî]] jî ji bo hasan dîtina wê, ew rûpel bi '''Nivîsa estûr''' dê nîşan dayîn.
-
+'addedwatchtext' => "Rûpela \"[[:\$1]]\" çû ser [[{{ns:special}}:Watchlist|lîsteya te ya şopandinê]].
+Li dahatû de her guhertoyek li wê rûpelê û rûpela guftûgo ya wê were kirin li vir tê nîşandan.
+Li rûpela [[{{ns:special}}:Recentchanges|Guherandinên dawî]] jî ji bo hêsan dîtina wê, ew rûpel bi '''Nivîsa stûr''' tê nîşandan.
 
-<p>Her dem tu bixwazî ew rûpel li nav lîsteya te ya şopandinê derbikî, li ser wê rûpelê, klîk bike \"êdî neşopîne\".</p>",
+Gava tu bixwazî wê rûpelê ji nav lîsteya xwe ya şopandinê derbixî, li ser wê rûpelê, \"êdî neşopîne\" bitikîne.",
 'removewatch' => 'Ji lîsteya şopandinê derxe',
 'removedwatchtext' => 'Rûpela "[[:$1]]" ji lîsteya te ya şopandinê hate jêbirin.',
 'watch' => 'Bişopîne',
@@ -1394,15 +1396,15 @@ Li rûpela [[Special:RecentChanges|Guherandinên dawî]] jî ji bo hasan dîtina
 'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.',
 'watchlist-details' => '* {{PLURAL:$1|Rûpelek tê|$1 rûpel tên}} şopandin, rûpelên gotûbêjê nayên jimartin.',
 'wlheader-enotif' => '* Agahdariya E-nameyê pêk tê.',
-'wlheader-showupdated' => "* Ew rûpel yê hatin xeyrandin jilkî te li wan sekir di '''nivîsa estûr''' tên pêşandin.",
+'wlheader-showupdated' => "* Ev rûpela hatî guhertin dema te lê meyzand bi '''nivîsa stûr''' tê xuyakirin.",
 'watchlistcontains' => 'Di lîsteya şopandina te de {{PLURAL:$1|rûpelek heye|$1 rûpel hene}}.',
 'wlnote' => "Niha {{PLURAL:$1|xeyrandinê|'''$1''' xeyrandinên}} dawî yê {{PLURAL:$2|seetê|'''$2''' seetên}} dawî {{PLURAL:$1|tê|tên}} dîtin.",
-'wlshowlast' => 'Guhertinên berî $1 saetan, $2 rojan, ya $3 (di sih rojên dawî de)',
+'wlshowlast' => 'Guhertinên berî $1 saetan, $2 rojan, ya $3 nîşan bide',
 'watchlist-options' => 'Vebijarkên lîsteya şopandinê',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Bişopîne...',
-'unwatching' => 'Neşopîne...',
+'unwatching' => 'Neşopîne',
 
 'enotif_reset' => 'Hemû rûpelan wek lêsekirî nîşanbide',
 'enotif_newpagetext' => 'Ev rûpeleke nû ye.',
@@ -1436,24 +1438,23 @@ Paşagahîdan û alîkaraya din:
 # Delete
 'deletepage' => 'Rûpelê jê bibe',
 'confirm' => 'Pesend bike',
-'excontent' => "Naveroka berê: '$1'",
-'excontentauthor' => "Naverroka vê rûpelê ev bû: '$1' (û tenya bikarhêner '$2' bû)",
-'exbeforeblank' => "Nawerok berî betal kirinê ew bû: '$1'
-Naverroka berî betalkirinê ev bû:'$1'",
+'excontent' => 'Naveroka berê: "$1"',
+'excontentauthor' => "Naveroka vê rûpelê ev bû: '$1' (û tenya bikarhêner '$2' bû)",
+'exbeforeblank' => 'Naverok berî betalkirinê ev bû: "$1"',
 'exblank' => 'rûpel vala bû',
 'delete-confirm' => 'Jêbirina "$1"',
-'delete-legend' => 'Jêbirin',
+'delete-legend' => 'Jê bibe',
 'historywarning' => "'''Hişyarî''': Dîrokeke vê rûpela tu dixwazî jê bibî heye:",
 'confirmdeletetext' => 'Tu kê niha rûpelekê bi tev dîroka wê jêbibê. Xêra xwe zanibe tu kê niha çi bikê û zanibe, çi di wîkîyê da yê bibe. Hên jî seke, ku ev jêbirina bi [[{{MediaWiki:Policy-url}}|mafên wîkîyê]] ra dimeşin ya na.',
 'actioncomplete' => 'Çalakî pêk hat',
 'actionfailed' => 'Çalakî têkçû',
 'deletedtext' => '"$1" hat jêbirin. Ji bo qeyda rûpelên ku di dema nêzîk de hatin jêbirin binêre $2.',
-'dellogpage' => 'Jêbirina rûpelê',
+'dellogpage' => 'jêbirina rûpelê',
 'dellogpagetext' => 'Li jêr lîsteyek ji jêbirinên dawî heye.',
 'deletionlog' => 'jêbirina rûpelê',
 'reverted' => 'Hate şondabirin berve verzyonekî berê',
 'deletecomment' => 'Sedem:',
-'deleteotherreason' => 'Sedemekî din:',
+'deleteotherreason' => 'Sedema din:',
 'deletereasonotherlist' => 'Sedema din',
 'deletereason-dropdown' => '*Sedemên jêbirinê
 ** Daxwaziya xwedî
@@ -1464,13 +1465,14 @@ Naverroka berî betalkirinê ev bû:'$1'",
 'delete-warning-toobig' => "Dîroka vê rûpelê pir mezin e, zêdetirî $1 guherandin. Jêbirina van rûpelan dikarin şaşbûnan di database'ê {{SITENAME}} da çêkin; zandibe tu çi dikê!",
 
 # Rollback
-'rollback_short' => 'Bizivirîne pêş',
-'rollbacklink' => 'bizivirîne pêş',
-'cantrollback' => "Guharto naye vegerandin; bikarhêrê dawî, '''tenya''' nivîskarê wê rûpelê ye.",
+'rollback_short' => 'bizîvirîne pêş',
+'rollbacklink' => 'bizîvirîne pêş',
+'cantrollback' => 'Guherto naye vegerandin;
+bikarhênerê dawî, tenya nivîskarê vê rûpelê ye.',
 'alreadyrolled' => 'Guherandina dawiya [[$1]]
-bi [[User:$2|$2]] ([[User talk:$2|gotûbêj]]) venizivre; keseke din wê rûpelê zivrandiye an guherandiye.
+bi [[User:$2|$2]] ([[User talk:$2|gotûbêj]]) venizivre; kesekî din ew rûpel zîvirandiye an guherandiye.
 
-Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
+Guhertoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'editcomment' => "Kurtenivîsê guherandinê ev bû: \"''\$1''\".",
 'revertpage' => 'Guherandina $2 hat betal kirin, vegerand guhartoya dawî ya $1',
 'rollback-success' => 'Guherandina $1 şondakir; dîsa guharte verzyona $2.',
@@ -1490,7 +1492,7 @@ Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'protect-default' => 'Destûrê bide hemû bikarhêneran',
 'protect-level-autoconfirmed' => 'Bikarhênerên neqeydkirî astengbike',
 'protect-level-sysop' => 'Tenê rêveber (admîn)',
-'protect-expiring' => 'heta rojê $1 (UTC)',
+'protect-expiring' => 'heta roja $1 (UTC)',
 'protect-expiring-local' => 'di $1 de dema wê xilas dibe',
 'protect-othertime' => 'Demeke din:',
 'protect-othertime-op' => 'dema din',
@@ -1513,13 +1515,14 @@ Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'restriction-level-autoconfirmed' => 'nîv-parastî',
 
 # Undelete
-'undelete' => 'Li rûpelên jêbirî seke',
+'undelete' => 'Li rûpelên jêbirî binêre',
 'undeletepage' => 'Rûpelên jêbirî bibîne û dîsa çêke',
-'viewdeletedpage' => 'Rûpelên vemirandî seke',
+'viewdeletedpage' => 'Li rûpelên jêbirî binêre',
 'undeletepagetext' => 'Rûpelên jêr hatine jêbirin, lê ew hên di arşîvê da ne û dikarin dîsa werin çêkirin. Ev arşîva piştî demekê tê pakkirin.',
 'undeleteextrahelp' => "Ji bo dîsaçêkirina vê rûpelê, li checkbox'an nexe û li '''''Dîsa çêke''''' klîk bike. Eger tu naxazî ku hemû verzyon dîsa werin çêkirin, li checkbox'ên wan verzyonan xe, yê tu dixazî dîsa çêkê û paşê li '''''Dîsa çêke'''' klîk bike. Eger tu li '''''Biskine''''' xê, hemû checkbox û cihê sedemê yê werin valakirin.",
 'undeleterevisions' => '$1 {{PLURAL:$1|rêvîzyonek çû|rêvîzyon çûn}} arşîv',
-'undeletehistory' => 'Eger tu vê rûpelê dîsa çêkê, hemû rêvîzyon ê dîsa di dîrokê da werin çêkirin. Eger rûpeleka nuh ji dema jêbirinê da hatîye çêkirin, ew rêvîzyon ê werin pêşî diroka nuh.',
+'undeletehistory' => 'Ger tu vê rûpelê dîsa çêkî, hemû guherto wê dîsa di dîrokê de werin çêkirin.
+Ger rûpeleke nû di dema jêbirinê de hatibe çêkirin, ew guherto wê were pêşiya diroka nû.',
 'undelete-revision' => 'Rêvîzyonên jêbirî yê $1 (di $2) ji $3:',
 'undelete-nodiff' => 'Guhertoyên berê nehatin dîtin.',
 'undeletebtn' => 'Dîsa çêke!',
@@ -1528,16 +1531,16 @@ Guhartoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'undeletereset' => 'Nû bike',
 'undeleteinvert' => 'Hilbijartinê şûnde vegerîne',
 'undeletecomment' => 'Sedem:',
-'undeletedrevisions' => '{{PLURAL:$1|Verzyonek dîsa hate|$1 verzyon dîsa hatin}} çêkirin',
-'undeletedrevisions-files' => '{{PLURAL:$1|Verzyonek|$1 verzyon}} û {{PLURAL:$2|medyayek hate|$2 medya hatin}} çêkirin',
+'undeletedrevisions' => '{{PLURAL:$1|Versiyonek dîsa hate|$1 versiyon dîsa hatin}} çêkirin',
+'undeletedrevisions-files' => '{{PLURAL:$1|Versiyonek|$1 versiyon}} û {{PLURAL:$2|medyayek hate|$2 medya hatin}} çêkirin',
 'undeletedfiles' => '{{PLURAL:$1|Medyayek hate|$1 medya hatin}} çêkirin',
 'undeletedpage' => "'''$1 dîsa hate çêkirin'''
 
-Ji bo jêbirinan û çêkirinên nuh ra, xêra xwe di [[Special:Log/delete|reşahîya jêbirinê]] da seke.",
-'undelete-header' => '[[Special:Log/delete|Reşahîya jêbirinê]] bibîne ji bo rûpelên jêbirî.',
-'undelete-search-box' => 'Rûpelên jêbirî lêbigere',
-'undelete-search-prefix' => 'Rûpela pêşe min ke ê bi vê destpêdîkin:',
-'undelete-search-submit' => 'Lêbigere',
+Ji bo jêbirinan û çêkirinên nû, ji kerema xwe li [[{{ns:special}}:Log/delete|Jêbirina têketinê]] binêre.",
+'undelete-header' => 'Ji bo rûpelên dawî hatine jêbirin, li [[Special:Log/delete|Jêbirina têketinê]] binêre.',
+'undelete-search-box' => 'Li rûpelên jêbirî bigere',
+'undelete-search-prefix' => 'Rûpela nîşandanê bi vê destpêdike:',
+'undelete-search-submit' => 'Lêgerîn',
 'undelete-show-file-submit' => 'Erê',
 
 # Namespace form on various pages
@@ -1552,8 +1555,8 @@ Ji bo jêbirinan û çêkirinên nuh ra, xêra xwe di [[Special:Log/delete|reşa
 'mycontris' => 'Beşdariyên min',
 'contribsub2' => 'Ji bo $1 ($2)',
 'uctop' => '(ser)',
-'month' => 'Ji mehê (û zûtir):',
-'year' => 'Ji salê (û zûtir):',
+'month' => 'Ji meha (û zûtir):',
+'year' => 'Ji sala (û zûtir):',
 
 'sp-contributions-newbies' => 'Tenê beşdariyên bikarhênerên nû nîşan bide',
 'sp-contributions-newbies-sub' => 'Ji bikarhênerên nû re',
@@ -1565,19 +1568,19 @@ Ji bo jêbirinan û çêkirinên nuh ra, xêra xwe di [[Special:Log/delete|reşa
 'sp-contributions-talk' => 'gotûbêj',
 'sp-contributions-userrights' => 'Îdarekirina mafên bikarhêneran',
 'sp-contributions-search' => 'Li beşdariyan bigere',
-'sp-contributions-username' => 'Adresê IP ya navî bikarhêner:',
-'sp-contributions-submit' => 'Lêbigere',
+'sp-contributions-username' => "Adresa IP'yê yan navê bikarhêner:",
+'sp-contributions-submit' => 'Lêgerîn',
 
 # What links here
 'whatlinkshere' => 'Girêdanên li ser vê rûpelê',
 'whatlinkshere-title' => 'Rûpelan, yê berve $1 tên',
 'whatlinkshere-page' => 'Rûpel:',
-'linkshere' => "Ev rûpel tên ser vê rûpelê '''„[[:$1]]“''':",
-'nolinkshere' => "Ne ji rûpelekê lînk tên ser '''„[[:$1]]“'''.",
+'linkshere' => "Ev rûpel tên ser vê rûpelê '''[[:$1]]''':",
+'nolinkshere' => "Ne ji rûpelekê lînk tên ser '''[[:$1]]'''.",
 'nolinkshere-ns' => "Ne lînkek berve '''[[:$1]]''' di vê namespace'a da tê.",
 'isredirect' => 'rûpelê beralî bike',
 'istemplate' => 'tê bikaranîn',
-'isimage' => 'lînka wêneyê',
+'isimage' => 'girêdana wêneyî',
 'whatlinkshere-prev' => '{{PLURAL:$1|yê|$1 yên}} berê',
 'whatlinkshere-next' => '{{PLURAL:$1|yê|$1 yên}} din',
 'whatlinkshere-links' => '← girêdan',
@@ -1599,7 +1602,7 @@ Sedemekê binivîse!',
 'ipadressorusername' => "adresê IP'yekê ya navekî bikarhênerekî",
 'ipbexpiry' => 'Dem:',
 'ipbreason' => 'Sedem',
-'ipbreasonotherlist' => 'Sedemekî din',
+'ipbreasonotherlist' => 'Sedemeke din',
 'ipbreason-dropdown' => '*Sedemên astengkirinê
 ** vandalîzm
 ** agahiya şaş kire gotarekê
@@ -1611,17 +1614,17 @@ Sedemekê binivîse!',
 ** navekî ku nayê pejirandin',
 'ipbcreateaccount' => 'Çêkirina hesaban qedexe bike',
 'ipbemailban' => 'Ji bo şandina e-nameyan qedexe bike.',
-'ipbenableautoblock' => "Otomatîk IP'yên niha û yên nuh yê vê bikarhênerê astengbike.",
+'ipbenableautoblock' => "Otomatîk IP'yên niha û yên nû yê vê bikarhênerê astengbike.",
 'ipbsubmit' => 'Vê bikarhêner asteng bike',
 'ipbother' => 'Demekî din:',
-'ipboptions' => '1 seet:1 hour,2 seet:2 hours,6 seet:6 hours,1 roj:1 day,3 roj:3 days,1 hefte:1 week,2 hefte:2 weeks,1 mihe:1 month,3 mihe:3 months,1 sal:1 year,ji her demê ra:infinite',
+'ipboptions' => '2 saet:2 hours,1 roj:1 day,3 roj:3 days,1 hefte:1 week,2 hefte:2 weeks,1 meh:1 month,3 meh:3 months,6 meh:6 months,1 sal:1 year,ji her demê re:infinite',
 'ipbotheroption' => 'yên din',
-'ipbotherreason' => 'Sedemekî din',
-'ipbhidename' => 'Navê bikarhêner / adresê IP ji "pirtûkê" astengkirinê, lîsteya astengkirinên nuh û lîsteya bikarhêneran veşêre',
+'ipbotherreason' => 'Sedemeke din',
+'ipbhidename' => 'Navê bikarhêner / adresê IP ji "pirtûkê" astengkirinê, lîsteya astengkirinên nû û lîsteya bikarhêneran veşêre',
 'ipbwatchuser' => 'Rûpelên bikarhêner û gotûbêjê bişopîne',
 'ipb-confirm' => 'Astengkirinê piştrast bike',
 'badipaddress' => 'Bikarhêner bi vî navî tune',
-'blockipsuccesssub' => 'Astengkirin serkeftî bû',
+'blockipsuccesssub' => 'Astengkirin pêkhat',
 'blockipsuccesstext' => '"$1" hat asteng kirin.
 <br />Bibîne [[Special:BlockList|Lîsteya IP\'yan hatî asteng kirin]] ji bo lîsteya blokan.',
 'ipb-edit-dropdown' => 'Sedemên astengkirinê',
@@ -1631,19 +1634,19 @@ Sedemekê binivîse!',
 'ipb-blocklist-contribs' => 'Beşdariyên ji bo $1',
 'unblockip' => "IP'yekê dîsa veke",
 'unblockiptext' => "Nivîsara jêr bikarwîne ji bo qebûlkirina nivîsandinê bikarhênerekî ya IP'yeka berê astengkirî.",
-'ipusubmit' => 'Astengkirina vê adrêsê rake',
+'ipusubmit' => 'Vê astengkirinê rake',
 'unblocked' => '[[User:$1|$1]] niha vê astengkirinê ye',
 'unblocked-id' => '$1 dîsa vê astengkirinê ye',
 'blocklist' => 'Bikarhênerên astengkirî',
 'ipblocklist' => "Listek ji adresên IP'yan û bikarhêneran yê hatine astengkirin",
-'ipblocklist-legend' => 'Bikarhênerekî astengkirî bibîne',
+'ipblocklist-legend' => 'Bikarhênerên astengkirî bibîne',
 'blocklist-userblocks' => 'Astengkirina hesaban veşêre',
 'blocklist-tempblocks' => 'Astengkirinên demkî veşêre',
 'blocklist-rangeblocks' => 'Astengkirinên cur bi cur veşêre',
 'blocklist-by' => 'Astengkirina rêveber',
 'blocklist-params' => 'Parametreyan asteng bike',
 'blocklist-reason' => 'Sedem',
-'ipblocklist-submit' => 'Lêbigere',
+'ipblocklist-submit' => 'Lêgerîn',
 'ipblocklist-localblock' => 'Astengkirina herêmî',
 'ipblocklist-otherblocks' => '{{PLURAL:$1|Astengkirin|Astengkirinên}} din',
 'infiniteblock' => 'ji her demê ra',
@@ -1660,9 +1663,9 @@ Sedemekê binivîse!',
 'change-blocklink' => 'Astengkirinê biguherîne',
 '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\'\'\'"',
+'autoblocker' => 'Otomatîk hate astengkirin ji ber ku IP\'ya wê û ya "[[User:$1|$1]]" yek in. Sedem: "\'\'$2\'\'"',
 'blocklogpage' => 'Astengkirina têketinê',
-'blocklogentry' => '"[[$1]]" ji bo dema $2 $3 hatîye asteng kirin',
+'blocklogentry' => '"[[$1]]" ji bo dema $2, $3 asteng kir',
 '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',
 'block-log-flags-anononly' => 'bes bikarhênerên neqeydkirî',
@@ -1671,7 +1674,7 @@ Sedemekê binivîse!',
 'block-log-flags-noemail' => 'Şandina e-nameyan hatîye qedexekirin',
 'block-log-flags-nousertalk' => 'nikare gotûbêja xwe biguherîne',
 'block-log-flags-hiddenname' => 'navê bikarhêneriyê yê veşartî',
-'ipb_expiry_invalid' => 'Dem ne serrast e.',
+'ipb_expiry_invalid' => 'Dem ne serast e.',
 'ipb_already_blocked' => '"$1" berê hatîye astengkirin',
 'ipb-needreblock' => '$1 berê hatiye astengkirin. Tu dixwazî eyaran biguherînî?',
 'ipb_cant_unblock' => "Şaşbûn: ID'ya astengkirinê $1 nehate dîtin. Astengkirinê xwe niha belkî hatîye rakirin.",
@@ -1692,16 +1695,16 @@ Sedemekê binivîse!',
 # Move page
 'move-page' => '$1 bigerîne',
 'move-page-legend' => 'Vê rûpelê bigerîne',
-'movepagetalktext' => "Rûpela '''guftûgoyê''' vê rûpelê wê were, eger hebe, gerandin. Lê ev tişta nameşe, eger
+'movepagetalktext' => "Rûpela '''gotûbêjê''' vê rûpelê wê were, eger hebe, gerandin. Lê ev tişta nameşe, eger
 
-*berê guftûgoyek bi wê navê hebe ya
+*berê gotûbêjek bi wî navî hebe ya
 *tu tiştekî jêr hilbijêrê.
 
 Eger ev mişkla çêbû, tu gireke vê rûpelê bi xwe bigerînê.
 
-Xêra xwe navî nuh û sedemê navgerandinê binivisîne.",
+Xêra xwe navê nû û sedemê navgerandinê binivisîne.",
 'movearticle' => 'Rûpelê bigerîne',
-'movenologin' => 'Xwe qeyd nekir',
+'movenologin' => 'Xwe tomar nekir',
 'movenologintext' => 'Tu dive bikarhênereke qeydkirî bî û [[Special:UserLogin|werî nav sîstemê]]
 da bikarî navê wê rûpelê biguherînî.',
 'movenotallowed' => 'Mafên te bo guherandina navên gotaran tune ye.',
@@ -1722,7 +1725,7 @@ da bikarî navê wê rûpelê biguherînî.',
 'movepage-page-exists' => 'Rûpela $1 berê heye û ew nikane otomatîk were jêbirin.',
 'movepage-page-moved' => 'Rûpela $1 çû cihê $2.',
 'movepage-page-unmoved' => 'Rûpela $1 nikanî çûba ciha $2.',
-'movelogpage' => 'Nav guherandin',
+'movelogpage' => 'guhertina nav',
 'movelogpagetext' => 'Li jêr lîsteyek ji rûpelan ku navê wan hatiye guherandin heye.',
 'movereason' => 'Sedem',
 'revertmove' => 'şûnde vegerîne',
@@ -1741,13 +1744,14 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'export-download' => 'Weka dosyeyê qeyd bike',
 
 # Namespace 8 related
-'allmessages' => 'Hemû mesajên sîstemê',
+'allmessages' => 'Hemû peyamên sîstemê',
 'allmessagesname' => 'Nav',
 'allmessagescurrent' => 'Nivîsa niha',
-'allmessagestext' => 'Ev lîsteya hemû mesajên di namespace a MediaWiki: de ye.',
+'allmessagestext' => 'Lîsteya hemû peyamên MediaWikiyê.',
+'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' nikare were bikaranîn ji ber ku '''\$wgUseDatabaseMessages''' hatiye jêbirin.",
 'allmessages-filter-legend' => 'Parzûn',
 'allmessages-filter-unmodified' => 'Neguhertî',
-'allmessages-filter-all' => 'hemû',
+'allmessages-filter-all' => 'Hemû',
 'allmessages-filter-modified' => 'Guhertî',
 'allmessages-language' => 'Ziman',
 'allmessages-filter-submit' => 'Gotar',
@@ -1779,12 +1783,13 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'tooltip-pt-preferences' => 'Tercîhên min',
 'tooltip-pt-watchlist' => 'The list of pages you',
 'tooltip-pt-mycontris' => 'Lîsteya beşdariyên min',
-'tooltip-pt-logout' => 'Derkeve (Log out)',
+'tooltip-pt-logout' => 'Derkeve',
 'tooltip-ca-talk' => 'Gotûbêj li ser rûpela naverokê',
 'tooltip-ca-edit' => 'Vê rûpelê biguherîne! Berê qeydkirinê bişkoka "Pêşdîtin',
 'tooltip-ca-addsection' => 'Beşekê zêde bike.',
-'tooltip-ca-viewsource' => 'Ev rûpela tê parastin. Tu dikarê bes li çavkanîyê sekê.',
-'tooltip-ca-history' => 'Versyonên berê yên vê rûpelê.',
+'tooltip-ca-viewsource' => 'Ev rûpel tê parastin.
+Tu dikarî tenê li çavkaniyê binêrî.',
+'tooltip-ca-history' => 'Guhertoyên berê yên vê rûpelê',
 'tooltip-ca-protect' => 'Vê rûpelê biparêze',
 'tooltip-ca-unprotect' => 'Parastina vê rûpelê rake',
 'tooltip-ca-delete' => 'Vê rûpelê jê bibe',
@@ -1794,14 +1799,14 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'tooltip-search' => 'Li {{SITENAME}} bigere',
 'tooltip-search-go' => 'Here rûpeleke tev bi vî navî, heke hebe',
 'tooltip-search-fulltext' => 'Di nav rûpelan de li vê nivîsê bigerre',
-'tooltip-p-logo' => 'Biçe Destpêkê',
+'tooltip-p-logo' => 'Here Destpêkê',
 'tooltip-n-mainpage' => 'Biçe Destpêkê',
-'tooltip-n-mainpage-description' => 'Biçe Destpêkê',
+'tooltip-n-mainpage-description' => 'Here Destpêkê',
 'tooltip-n-portal' => 'Agahdarî li ser {{SITENAME}}, tu dikarî çi bikî, tu dikarî çi li ku bîbînî',
 'tooltip-n-recentchanges' => "Lîsteya guherandinên dawî di vê Wîkî'yê da.",
-'tooltip-n-randompage' => 'Rûpelekî helkeft biwêşîne',
+'tooltip-n-randompage' => 'Rûpeleka ketober bar bike',
 'tooltip-n-help' => 'Bersivên ji bo pirsên te.',
-'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku ji vê re grêdidin.',
+'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku pê ve girêdayî ne.',
 'tooltip-t-recentchangeslinked' => 'Recent changes in pages linking to this page',
 'tooltip-feed-rss' => "RSS feed'ên ji bo rûpelê",
 'tooltip-feed-atom' => "Atom feed'ên ji bo vê rûpelê",
@@ -1811,18 +1816,18 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'tooltip-t-specialpages' => 'Lîsteya hemû rûpelên taybetî',
 'tooltip-t-print' => 'Versiyona çapkirinê ya vê rûpelê',
 'tooltip-ca-nstab-main' => 'Li rûpela naverokê binêre',
-'tooltip-ca-nstab-user' => 'Rûpela bikarhênerê/î temaşe bike',
+'tooltip-ca-nstab-user' => 'Rûpela bikarhêner bibîne',
 'tooltip-ca-nstab-special' => 'This is a special page, you can',
 'tooltip-ca-nstab-project' => 'Li rûpelê projektê seke',
 'tooltip-ca-nstab-image' => 'Rûpela dosyeyê bibîne',
-'tooltip-ca-nstab-template' => 'Şablonê nîşanbide',
+'tooltip-ca-nstab-template' => 'Şablonê nîşan bide',
 'tooltip-ca-nstab-help' => 'Rûpela alîkariyê bibîne',
 'tooltip-ca-nstab-category' => 'Li rûpelê kategorîyê seke',
 'tooltip-minoredit' => 'Vê guherandinê weka biçûk îşaret bike',
 'tooltip-save' => 'Guherandinên xwe tomarbike',
 'tooltip-preview' => 'Guherandinên xwe bibîne, berî ku tu wî qeyd bikî!',
 'tooltip-diff' => 'Guherandinên ku te di nivîsê de kirîyî nîşan bide',
-'tooltip-compareselectedversions' => 'Cudatiyên guhartoyên hilbijartî yên vê rûpelê bibîne.',
+'tooltip-compareselectedversions' => 'Cudatiyên guhertoyên hilbijartî yên vê rûpelê bibîne.',
 'tooltip-watch' => 'Vê rûpelê têke nav lîsteya te ya şopandinê',
 'tooltip-upload' => 'Barkirinê destpêke',
 
@@ -1834,13 +1839,14 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 
 # Attribution
 'anonymous' => 'Bikarhênera/ê nediyarkirî ya/yê {{SITENAME}}',
-'siteuser' => 'Bikarhênera/ê $1 a/ê {{SITENAME}}',
+'siteuser' => 'Bikarhênera $1 ê {{SITENAME}}',
 'others' => 'ên din',
 'siteusers' => 'Bikarhênerên $1 yên {{SITENAME}}',
 
 # Spam protection
 'spamprotectiontitle' => 'Parastina spam',
-'spamprotectiontext' => 'Ew rûpela yê tu dixast tomarbikê hate astengkirin ji ber ku parastina spam. Ew çêbû ji ber ku lînkekî derva di vê rûpelê da ye.',
+'spamprotectiontext' => 'Rûpela ku tu dixwazî tomar bikî ji ber parastina spamê hate astengkirin.
+Ji ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.',
 'spamprotectionmatch' => 'Ev nivîsa parastinê spam vêxist: $1',
 
 # Info page
@@ -1854,8 +1860,8 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'pageinfo-views' => 'Hejmara dîtinê',
 
 # Patrolling
-'markaspatrolleddiff' => 'Wek serrastkirî nîşanbide',
-'markaspatrolledtext' => 'Vê rûpelê wek serrastkirî nîşanbide',
+'markaspatrolleddiff' => 'Wek serrastkirî nîşan bide',
+'markaspatrolledtext' => 'Vê rûpelê wek serrastkirî nîşan bide',
 'markedaspatrolled' => 'Wek serrastkirî tê nîşandan',
 'markedaspatrolledtext' => 'Guherandina rûpelê wek serrastkirî tê nîşandan.',
 
@@ -1864,18 +1870,18 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 
 # Image deletion
 'deletedrevision' => 'Guhertoya berê $1 hate jêbirin.',
-'filedelete-missing' => 'Data\'yê "$1" nikane were jêbirin, ji ber ku ew tune.',
-'filedelete-current-unregistered' => 'Datayê "$1" di sistêmê da tune.',
+'filedelete-missing' => 'Dane "$1" nikare were jêbirin, ji ber ku ew tune ye.',
+'filedelete-current-unregistered' => 'Daneya "$1" li sîstemê tune ye.',
 
 # Browsing diffs
-'previousdiff' => '← Ciyawaziya pêştir',
-'nextdiff' => 'Ciyawaziya paştir →',
+'previousdiff' => '← Cudahiya pêştir',
+'nextdiff' => 'Cudahiya paştir →',
 
 # Media information
 'thumbsize' => 'Mezinahiya wêne:',
 'widthheight' => '$1 x $2',
 'widthheightpage' => '$1 × $2, $3 rûpel',
-'file-info' => 'mezinbûnê data: $1, MIME-typ: $2',
+'file-info' => 'mezinbûna daneyê: $1, MIME type: $2',
 'file-info-size' => '$1 × $2 pixel, mezinbûnê data: $3, MIME-typ: $4',
 'file-nohires' => 'Versyonekî jê mezintir tune.',
 'svg-long-desc' => 'Daneya SVG, mezinbûna rast: $1 × $2 pixel; mezinbûna daneyê: $3',
@@ -1888,13 +1894,13 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'newimages-legend' => 'Parzûn',
 'showhidebots' => '($1 bot)',
 'noimages' => 'Ne tiştek tê dîtin.',
-'ilsubmit' => 'Lêbigere',
+'ilsubmit' => 'Lêgerîn',
 'bydate' => 'li gor dîrokê',
-'sp-newimages-showfrom' => "Data'yên nuh ji dema $1, saet $2 da bibîne",
+'sp-newimages-showfrom' => 'Daneyên nû ji dema $1, saet $2 ve bibîne',
 
 # Variants for Kurdish language
-'variantname-ku-arab' => 'tîpên erebî',
-'variantname-ku-latn' => 'tîpên latînî',
+'variantname-ku-arab' => 'Tîpên erebî',
+'variantname-ku-latn' => 'Tîpên latînî',
 'variantname-ku' => 'disable',
 
 # Metadata
@@ -1906,7 +1912,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'exif-imagewidth' => 'Panbûn',
 'exif-imagelength' => 'Dirêjbûn',
 'exif-jpeginterchangeformatlength' => "Byte'ên daneya JPEG",
-'exif-imagedescription' => 'Navî wêneyê',
+'exif-imagedescription' => 'Navê wêne',
 'exif-model' => 'Modela kamerayê',
 'exif-artist' => 'Nûser',
 'exif-pixelydimension' => 'Firehiya wêne',
@@ -1923,6 +1929,7 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 'exif-languagecode' => 'Ziman',
 'exif-iimcategory' => 'Kategorî',
 'exif-label' => 'Etîket',
+'exif-disclaimer' => 'Ferexetname',
 
 'exif-unknowndate' => 'Dîroka nayê zanîn',
 
@@ -1982,14 +1989,14 @@ Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'hemû',
 'namespacesall' => 'Hemû',
-'monthsall' => 'giştik',
+'monthsall' => 'hemû',
 'limitall' => 'hemû',
 
 # E-mail address confirmation
 'confirmemail' => 'Adrêsa e-nameyan nasbike',
-'confirmemail_noemail' => 'Te e-mail-adressê xwe di [[Special:Preferences|tercihên xwe da]] nenivîsandîye.',
+'confirmemail_noemail' => 'Te e-mail-adressê xwe di [[Special:Preferences|tercihên xwe da]] nenivîsandiye.',
 'confirmemail_success' => 'E-Mail adrêsa te hate naskirin. Tu niha dikarî xwe qeydbikê û kêfkê.',
-'confirmemail_loggedin' => 'Adrêsa te yê E-Mail hate qebûlkirin.',
+'confirmemail_loggedin' => 'Navnîşana te ya E-Nameyê hate qebûlkirin.',
 'confirmemail_body' => 'Kesek, dibê tu, bi IP adressê $1, xwe li {{SITENAME}} bi vê navnîşana e-name tomar kir ("$2") .
 
 Eger ev rast qeydkirinê te ye û di dixwazî bikaranîna e-nama ji te ra çêbibe li {{SITENAME}}, li vê lînkê bitikîne:
@@ -2003,7 +2010,7 @@ Lê eger ev *ne* tu bû, li lînkê netikîne. Ev e-nameya di rojê $4 da netê
 'scarytranscludetoolong' => '[URL zêde dirêj e; bibore]',
 
 # Delete conflict
-'deletedwhileediting' => 'Hîşyar: Piştî te guherandinê xwe dest pê kir ev rûpela hate jêbirin!',
+'deletedwhileediting' => "'''Hişyarî:''' Piştî te dest bi guherandinê kir ev rûpel hate jêbirin!",
 'confirmrecreate' => "Piştî te dest bi guherandinê kir, bikarhêner [[User:$1|$1]] ([[User talk:$1|gotûbêj]]) ev rûpel jê bir. Sedema jêbirinê ev bû:
 : ''$2''
 Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
@@ -2020,24 +2027,24 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'imgmultigoto' => 'Here rûpela $1',
 
 # Table pager
-'table_pager_next' => 'Rûpelê din',
-'table_pager_prev' => 'Rûpelê berî',
-'table_pager_first' => 'Rûpelê yekemîn',
-'table_pager_last' => 'Rûpelê dawî',
+'table_pager_next' => 'Rûpela pêş',
+'table_pager_prev' => 'Rûpela berî',
+'table_pager_first' => 'Rûpela pêşîn',
+'table_pager_last' => 'Rûpela dawî',
 'table_pager_limit_submit' => 'Biçe',
 
 # Auto-summaries
 'autosumm-blank' => 'Rûpel hate vala kirin',
 'autosumm-replace' => "'$1' ket şûna rûpelê.",
 'autoredircomment' => 'ji bo [[$1]] hate beralîkirin',
-'autosumm-new' => 'Rûpela nû: $1',
+'autosumm-new' => 'Rûpela nû: "$1"',
 
 # Live preview
 'livepreview-loading' => 'Tê…',
 'livepreview-ready' => 'Bar dibe… Amade ye!',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => 'Xeyrandin yê piştî $1 sanîyan hatine çêkirin belkî netên wêşendan.',
+'lag-warn-normal' => 'Sererastkirinên piştî $1 çirkeyan hatine çêkirin belkî neyên weşandin.',
 'lag-warn-high' => 'Ji bo westinê sistêmê ew xeyrandin, yê piştî $1 sanîyan hatine çêkirin netên wêşendan.',
 
 # Watchlist editor
@@ -2046,7 +2053,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'watchlistedit-normal-title' => 'Lîsteya xwe ya şopandinê biguherîne',
 'watchlistedit-normal-legend' => 'Gotaran ji lîsteya min ya şopandinê rake',
 'watchlistedit-normal-submit' => 'Gotaran jê bibe',
-'watchlistedit-normal-done' => '{{PLURAL:$1|1 gotar hate|$1 gotaran hatin}} jêbirin ji lîsteya te yê şopandinê:',
+'watchlistedit-normal-done' => '{{PLURAL:$1|1 gotar hate|$1 gotar hatin}} jêbirin ji lîsteya te yê şopandinê:',
 'watchlistedit-raw-titles' => 'Sernav:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 gotar hate|$1 gotar hatin}} jêbirin:',
 
@@ -2063,7 +2070,8 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'version-version' => ' (Verzîyon $1)',
 'version-license' => 'Destûr',
 'version-software-product' => 'Berhem',
-'version-software-version' => 'Versiyon',
+'version-software-version' => 'Guherto',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath-page' => 'Wêne:',
@@ -2071,7 +2079,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch-filename' => 'Navê dosyeyê:',
-'fileduplicatesearch-submit' => 'Lêbigere',
+'fileduplicatesearch-submit' => 'Lê bigere',
 
 # Special:SpecialPages
 'specialpages' => 'Rûpelên taybet',
@@ -2080,7 +2088,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 * <strong class="mw-specialpagerestricted">Rûpelên taybetî ji bikarhêneran bi mafên zêdetir ra</strong>',
 'specialpages-group-other' => 'Rûpelên taybetî yên din',
 'specialpages-group-login' => 'Têkeve',
-'specialpages-group-changes' => 'Guherandinên dawî û reşahîyan',
+'specialpages-group-changes' => 'Guherandinên dawî û têketin',
 'specialpages-group-media' => 'Nameyên medyayan û barkirinan',
 'specialpages-group-users' => 'Bikarhêner û maf',
 'specialpages-group-pages' => 'Lîstên rûpelan',
index a734e89..fc9b562 100644 (file)
@@ -68,6 +68,9 @@ $namespaceAliases = array(
        'Diskussión_de_Kateggoría' => NS_CATEGORY_TALK,
 );
 
+// Remove Spanish gender aliases (bug 37090)
+$namespaceGenderAliases = array();
+
 $specialPageAliases = array(
        'Activeusers'               => array( 'UsadoresAktivos' ),
        'Allmessages'               => array( 'TodosLosMessajes' ),
index da8b9d6..dc6af2f 100644 (file)
@@ -810,7 +810,9 @@ Et ka sinn datt e geännert oder geläscht gouf iwwerdeems wou Dir d'Säit gekuc
 D'Passwuert fir dësen neie Benotzerkont kann op der ''[[Special:ChangePassword|Passwuert ännere]]'' Säit beim Alogge geännert ginn.",
 'newarticle' => '(Nei)',
 'newarticletext' => "Dir hutt op e Link vun enger Säit geklickt, déi et nach net gëtt. Fir déi Säit unzeleeën, gitt w.e.g. Ären Text an déi Këscht hei drënner an (kuckt d'[[{{MediaWiki:Helppage}}|Hëllef Säit]] fir méi Informatiounen). Wann Dir duerch een Iertum heihi komm sidd, da klickt einfach op de Knäppchen '''Zréck''' vun Ärem Browser.",
-'anontalkpagetext' => "---- ''Dëst ass d'Diskussiounssäit fir en anonyme Benotzer deen nach kee Kont opgemaach huet oder en net benotzt. Dowéinst musse mir d'IP Adress benotzen, fir de Benotzer z'identifizéieren. Sou eng IP Adress ka vun e puer Benotzer gedeelt ginn. Wann Dir en anonyme Benotzer sidd an Dir irrelevant Kommentäre krut, [[Special:UserLogin/signup|maacht w.e.g. e Kont op]] oder [[Special:UserLogin|loggt Iech an]], fir weider Verwiesselunge mat anonyme Benotzer ze verhënneren.''",
+'anontalkpagetext' => "---- ''Dëst ass d'Diskussiounssäit fir en anonyme Benotzer deen nach kee Kont opgemaach huet oder en net benotzt. Dowéinst musse mir d'IP Adress benotzen, fir de Benotzer z'identifizéieren.
+Sou eng IP Adress ka vun e puer Benotzer gedeelt ginn.
+Wann Dir en anonyme Benotzer sidd an Dir irrelevant Kommentäre krut, [[Special:UserLogin/signup|maacht w.e.g. e Kont op]] oder [[Special:UserLogin|loggt Iech an]], fir weider Verwiesselunge mat aneren anonyme Benotzer ze verhënneren.''",
 'noarticletext' => 'Dës Säit huet momentan keen Text.
 Dir kënnt op anere Säiten no [[Special:Search/{{PAGENAME}}|dësem Säitentitel sichen]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} an den entspriechende Logbicher nokucken] oder [{{fullurl:{{FULLPAGENAME}}|action=edit}} esou eng Säit uleeën]</span>.',
index 50514c8..78f567e 100644 (file)
@@ -327,6 +327,12 @@ Vohbik phekte chu hetah hian a en theih [[Special:SpecialPages|{{int:specialpage
 # General errors
 'error' => 'Dik lo',
 'databaseerror' => 'Database dik loh',
+'dberrortext' => 'Zémpui zawhna tih dik loh a awm palh.
+Kháwlthlûakah hrik a awm tihna a ni mai thei.
+Zémpui zawhna hnuhnüng ber chu:
+<blockquote><tt>$1<tt></blockquote>,
+"<<tt>$2</tt>" tih hnathawh chhúng aṭang.
+Zémpuiin dikhlelhna "<tt>$3: $4</tt>" a rawn khawhkïr.',
 'laggedslavemode' => "'''Vaukhanna:''' He phêk hian tun hnaia siam thar a pho lang lo mai thei.",
 'readonly' => 'Database kalh a ni',
 'enterlockreason' => 'I kalhna chhan leh i hawn leh hun tura i rin sawi rawh',
@@ -428,6 +434,7 @@ I thilziah enfiah rawh, a nih loh pawhin [[Special:UserLogin/signup|siangchan th
 'nosuchusershort' => 'Hmangtu hming "$1" a awm lo.
 I thilziah enfiah rawh.',
 'nouserspecified' => 'Hmangtuhming i ziah a ngai.',
+'login-userblocked' => 'Hë hmangtu hi danbeh a ni. Luh phalsak a ni lo.',
 'wrongpassword' => 'Thurûk dik lo.
 Khawngaihin tum nawn leh rawh.',
 'wrongpasswordempty' => 'Thurûk i ziak lo.
@@ -453,6 +460,10 @@ E-chenhmun dik tak ziaklût rawh, a nih loh leh thai reh vek rawh.',
 'accountcreated' => 'Siangchan siamfel a ni ta.',
 'accountcreatedtext' => '$1 tana hmangtu siangchan siamfel a ni ta.',
 'createaccount-title' => '{{SITENAME}} tana siangchan siam',
+'createaccount-text' => 'Tüemawin {{SITENAME}}-ah ($4) i e-chènhmun hmangin "$2" tih hming púin, thurûka "$3" tih hmangin siangchan a lo siam a.
+Thurûk tidanglam tùrin i luh vat a ngái.
+
+Hë siangchan hi siam sual palh a nih chuan hë thuthawn hi i ngaihthah dáwn nia.',
 'usernamehasherror' => 'Hmangtuhmingin bawhtah lem a hmang thiang lo',
 'login-throttled' => 'Tunhnai maiah luh i tum ngun lutuk.
 I tum leh hmain nghâk lawk ang che.',
@@ -559,7 +570,7 @@ I siangchan thurûk hi [[Special:ChangePassword|thurûk tihdanglamna]]-ah i inzi
 Tihsual palh thilthua heta lo lût i nih chuan i rangpuifanna-a '''letna''' fei zawnah hmet rawh.",
 'noarticletext' => 'He phêkah hian thu a la awm hrih lo.
 Phêk dangah [[Special:Search/{{PAGENAME}}| he phêk hming hi i zawng]] thei ang, a nih loh pawhin a laichin 
-<span class="plainlinks">[{{fullurl:{{#Special:Log}} | page={{FULLPAGENAMEE}}}} log dang i zawng thei ang]; a nih loh chuan [{{fullurl:{{FULLPAGENAME}}|action=edit}} he phêk hi i siamţha thei ang] </span>.',
+<span class="plainlinks">[{{fullurl:{{#Special:Log}} | page={{FULLPAGENAMEE}}}} chanchin-ziak dang i zawng thei ang]; a nih loh chuan [{{fullurl:{{FULLPAGENAME}}|action=edit}} he phêk hi i siamţha thei ang] </span>.',
 'noarticletext-nopermission' => 'He phêkah hian thu a la awm hrih lo.
 He phêk hming hi hmun dangah i [[Special:Search/{{PAGENAME}}|zawng]] thei ang, a nih loh pawhin <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}-a a laichin chanchin dang] i zawng thei bawk ang. </span>',
 'userpage-userdoesnotexist' => 'Hmangtu siangchan "$1" hi hriat a ni lo.
@@ -572,6 +583,7 @@ I rawn atan a danbeh chhinchhiahna kan han tarlang a ni e:',
 'note' => "'''Hriat tùr:'''",
 'previewnote' => "'''Heihi endikna chauh a ni tih hrereng ang che.'''
 I tihdanglamna dahţhat a la ni lo!",
+'continue-editing' => 'Siamṭhat chhunzawmna',
 'session_fail_preview_html' => "'''A pawi hlë mai! Ṭhutchhúng chanchin vawnna hloh avangin i siamṭhatna dahṭhat theih a ni lo.'''
 
 ''{{SITENAME}}-in HTML hel a tihzalen avangin hë enlâwkna hi JavaScript beihna laka invèn fimkhur nan thup bo a ni.''
@@ -579,6 +591,7 @@ I tihdanglamna dahţhat a la ni lo!",
 '''Hei hi siamṭhat tumna dànzui pangngai a nih chuan khawngaihin dahṭhat tum nawn leh rawh.'''
 I la dahṭhat theih loh cheu chuan [[Special:UserLogout|chhuah phawt ]] a, luh nawn leh hmang tein han bei vêl chhin lä.",
 'editing' => '$1 i siam(ţha) mék',
+'creating' => '$1 i siam mék',
 'editingsection' => '$1 (hlawm) i siam(ţha) mék',
 'editingcomment' => '$1 (hlawm thar) i siam(ţha) mék',
 'editconflict' => 'Siamţhat inchuh: $1',
@@ -587,8 +600,8 @@ I la dahṭhat theih loh cheu chuan [[Special:UserLogout|chhuah phawt ]] a, luh
 'yourdiff' => 'Danglamnate',
 'protectedpagewarning' => "'''Vaukhanna: Hë phêk hi roreltute chauhvin an siamṭhat theihna tùrin vènhim a ni.'''
 I rawn atan ziaka chanchin dah hnuhnüng ber kan rawn chhawp chhuak e:",
-'semiprotectedpagewarning' => "'''Hriat tùr:''' He phêk hi hmangtu inziaklûtte chauhvin an tihdanglam theihna tùra vènhim a ni.
-I rawn tùrin siamm-danglamna chanchin ziaka kan dahţhat thar ber a hnuaiah khuan kan chhawp e:",
+'semiprotectedpagewarning' => "'''Hriat tùr:''' He phêk hi hmangtu inziaklûtte chauhvin an tihdanglam theih tùra vènhim a ni.
+I ràwn tùrin siam danglamna chanchin ziaka kan dahţhat thạr ber a hnuaiah khuan kan rawn chhawpchhûak e:",
 'templatesused' => 'He phêka {{PLURAL:$1|siamsa hman|siamsa hmante}}',
 'templatesusedpreview' => 'He endiknaa {{PLURAL:$1|Siamsa hman|Siamsa hmante}}:',
 'templatesusedsection' => 'Hemi hlawma  {{PLURAL:$1|Siamsa hman|Siamsa hmante}}',
@@ -607,8 +620,11 @@ He phêk buaipui chhunzawm hi a remchang nge chang lo tih inbihchiang rawh.
 Remchangah he phek paihna leh sawnna chhinchhiahna-ziak rawn chhawp chhuah a ni e:",
 'moveddeleted-notice' => 'He phek hi paih tawh a ni.
 I rawn atan he phek paihna leh sawnna chanchin chhinchhiahna a hnuaiah khuan chhawp chhuah a ni.',
-'log-fulllog' => 'Chanchin chhinchhiah kimchang enna',
+'log-fulllog' => 'Chanchin chhinchhiah kimchang hetah hian a en theih e.',
+'edit-gone-missing' => 'Phêk bithuam theih a ni lo.
+Nuaibo a ni tawh a nih hmèl.',
 'edit-conflict' => 'Siamţhat inchuh buaina.',
+'edit-no-change' => 'Tihdanglam i neih leh tâk loh avangin i siamṭhatna ngaihthah a ni.',
 'edit-already-exists' => 'Phêk thar siam theih a ni lo.
 A awm tawh sa.',
 'defaultmessagetext' => 'Thuthawn tùr ziahsa',
@@ -623,6 +639,7 @@ Heng kawngte hi hmaih mai tur.",
 
 # History pages
 'viewpagelogs' => 'He phêk chanchin hi en rawh',
+'nohistory' => 'Hë phêk siamṭhatna chanchin ziak a awm lo tlat.',
 'currentrev' => 'Ennawnna hnuhnung ber',
 'currentrev-asof' => 'Ni $1-a ennawnna hnuhnung ber',
 'revisionasof' => '$1 -a ennawnna zawng',
@@ -641,6 +658,8 @@ Lamtawi hmante: '''({{int:cur}})'''= ennawnna thar ber nena danglamna, '''({{int
 'history-show-deleted' => 'Nuaibo tawh zawng chauh',
 'histfirst' => 'Hmasa ber',
 'histlast' => 'Hnuhnung ber',
+'historysize' => '({{PLURAL:$1|bait 1 |bait $1}})',
+'historyempty' => '(ruak)',
 
 # Revision feed
 'history-feed-title' => 'Ennawnna chanchin',
@@ -657,6 +676,13 @@ Lamtawi hmante: '''({{int:cur}})'''= ennawnna thar ber nena danglamna, '''({{int
 'revdel-restore-deleted' => 'ennawnna nuaibo tawhte',
 'revdel-restore-visible' => 'ennawn hmuh theih chin',
 'pagehist' => 'Phêk chanchin',
+'deletedhist' => 'Chanchin nuaibo',
+'revdelete-reasonotherlist' => 'Chhan dang',
+'revdelete-edit-reasonlist' => 'Nuaibona chhante siamṭhatna',
+'revdelete-offender' => 'Ennawntu:',
+
+# Suppression log
+'suppressionlog' => 'Nuaibo chhinchhiahna',
 
 # Merge log
 'revertmerge' => 'Ţhenhranna',
@@ -677,6 +703,7 @@ Lamtawi hmante: '''({{int:cur}})'''= ennawnna thar ber nena danglamna, '''({{int
 'nextn-title' => 'Zawnchhuah dawt leh $1 {{PLURAL:$1||}}',
 'shown-title' => 'Phek khatah zawnchhuah $1 {{PLURAL:$1||}} zel tilang rawh',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) en rawh',
+'searchmenu-legend' => 'Zawn duhthlanna',
 'searchmenu-exists' => "'''He wiki-ah hian \"[[:\$1]]\" tia koh phêk a awm.'''",
 'searchmenu-new' => "'''[[:$1]] phek hi he wiki-ah hian siam rawh le!'''",
 'searchhelp-url' => 'Help:A chhunga thu awmte',
@@ -968,6 +995,10 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'minoreditletter' => 't',
 'newpageletter' => 'T',
 'boteditletter' => 'k',
+'number_of_watching_users_pageview' => '[$1 hmangtu {{PLURAL:$1||te}} vil mék]',
+'rc_categories' => 'Pawla bithliahna ("|" hmangin kárdan rawh)',
+'rc_categories_any' => 'Väi',
+'rc-change-size-new' => 'Tihdanglam hnuah {{PLURAL:$1|bait|bait}} $1',
 'newsectionsummary' => '/* $1 */ hläwm thar',
 'rc-enhanced-expand' => 'Tilang kim rawh (JavaScript a ngai)',
 'rc-enhanced-hide' => 'Thup ţhenna',
@@ -1025,6 +1056,10 @@ A aia hmuhnawm deuh zâwka i thlìr duh chuan [[Special:NewFiles|taksa hlankai t
 A hming thlâk la bei ţha leh rawh.',
 'filename-toolong' => 'Taksahming 240 bytes aiin a sei tùr a ni lo.',
 'badfilename' => 'Taksahming "$1"-ah thlâk a ni.',
+'filetype-mime-mismatch' => 'Taksa hming zauhna ".$1"-in a taksa MIME chî kan hmuh ($2) a mil lo tlat.',
+'filetype-badmime' => '"$1" ang MIME chî taksa hlànkài phal a ni lo.',
+'filetype-unwanted-type' => "'''\".\$1\"''' hi taksa phal loh chî a ni.
+Taksa phalzáwng{{PLURAL:\$3||te}} chu: \$2.",
 'filetype-missing' => 'Taksain tawpna a nei lo (entirna ".jpg").',
 'empty-file' => 'I taksa thehluh kha a ruak.',
 'file-too-large' => 'A lian leh lutuk.',
@@ -1043,6 +1078,8 @@ he taksa hi $2 lái a ni.',
 'windows-nonascii-filename' => 'Hë wiki hian taksahminga chhinchhiahna bîk tel a pawm thei lo.',
 'savefile' => 'Taksa dahṭhatna',
 'uploadedimage' => 'hlankai: "[[$1]]"',
+'uploadvirus' => 'I taksa hlànkài tumin hrik a päi!
+Chanchin kimchang: $1',
 'upload-source' => 'Hnar taksa',
 'sourcefilename' => 'Hnar taksahming:',
 'sourceurl' => 'Hnar URL:',
@@ -1111,6 +1148,7 @@ Zawmtu zawng zawng [[Special:WhatLinksHere/$2|tlarchhuahna hetah hian a awm]] e.
 'nolinkstoimage' => 'He taksa zawmtu/hmanna phêk pakhat mah a awm lo.',
 'morelinkstoimage' => 'Hemi taksa zawmpui dang [[Special:WhatLinksHere/$1|enna}}.',
 'linkstoimage-redirect' => '$1 (taksa hruailuhna) $2',
+'duplicatesoffile' => 'A hnuaia taksa{{PLURAL:$1||te}} khu hë taksa nihpui{{PLURAL:$1||te}} a{{PLURAL:$1||n}} ni ([[Special:FileDuplicateSearch/$2|chanchin kimchang]]):',
 'sharedupload' => 'Hë taksa hi $1-a mi a ni a, hna-hmachhawp dangin a hmang vè mai thei.',
 'sharedupload-desc-there' => 'Hë taksa hi $1-a mi a ni a, hna-hmachhawp dangin a hmang ve mai thei.
 Hriattirna dang chu [$2 taksa sawifiahna phêk]-ah hian i en thei ang.',
@@ -1630,7 +1668,9 @@ Khawngaihin i dahţhat/tlangzarh hmain endikna hmehkhep khu hmang ang che (hei h
 A hnar i en thei ang.',
 'tooltip-ca-history' => 'Tunhmaa he phêk ennawnnate',
 'tooltip-ca-protect' => 'He phek hi venghim rawh',
+'tooltip-ca-unprotect' => ' Vènhimphung tihdanglamna',
 'tooltip-ca-delete' => 'He phek hi paih rawh',
+'tooltip-ca-undelete' => 'Hë phêk nuaibo a nih hmaa siamṭhatnate kàitho leh rawh',
 'tooltip-ca-move' => 'He phek hi sawn rawh',
 'tooltip-ca-watch' => 'I ralvèn zingah telh rawh',
 'tooltip-ca-unwatch' => 'He phêk hi i ralvèn aţang paih rawh',
index 32964e4..e8fa070 100644 (file)
@@ -3143,7 +3143,8 @@ $1',
 'spamprotectionmatch' => 'Следниот текст е она што го предизвика нашиот филтер за спам: $1',
 'spambot_username' => 'МедијаВики чистач на спам',
 'spam_reverting' => 'Враќам на последната верзија што не содржи врска до $1',
-'spam_blanking' => 'Сите верзии содржеа врски до $1, бришам',
+'spam_blanking' => 'Сите ревизии содржеа врски до $1. Чистам',
+'spam_deleting' => 'Сите ревизии содржеа врски до $1. Бришам',
 
 # Info page
 'pageinfo-title' => 'Информации за „$1“',
index 51ec839..19d3729 100644 (file)
@@ -346,7 +346,7 @@ $messages = array(
 'tog-watchdefault' => 'ഞാൻ തിരുത്തുന്ന താളുകൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
 'tog-watchmoves' => 'ഞാൻ തലക്കെട്ടു മാറ്റുന്ന താളുകൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
 'tog-watchdeletion' => 'ഞാൻ നീക്കം ചെയ്യുന്ന താളുകൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
-'tog-minordefault' => 'à´\8eà´²àµ\8dലാ à´¤à´¿à´°àµ\81à´¤àµ\8dതലàµ\81à´\95à´³àµ\81à´\82 à´\9aàµ\86à´±àµ\81തിരàµ\81à´¤àµ\8dതലàµ\81à´\95ളായി à´¸àµ\8dവയà´\82 അടയാളപ്പെടുത്തുക',
+'tog-minordefault' => 'à´\8eà´²àµ\8dലാ à´¤à´¿à´°àµ\81à´¤àµ\8dതലàµ\81à´\95à´³àµ\81à´\82 à´¸àµ\8dവതàµ\87 à´\9aàµ\86à´±àµ\81തിരàµ\81à´¤àµ\8dതലàµ\81à´\95ളായി അടയാളപ്പെടുത്തുക',
 'tog-previewontop' => 'തിരുത്തൽ പെട്ടിക്കു മുകളിൽ പ്രിവ്യൂ കാണിക്കുക',
 'tog-previewonfirst' => 'ആദ്യത്തെ തിരുത്തലിന്റെ പ്രിവ്യൂ കാണിക്കുക',
 'tog-nocache' => 'ബ്രൗസറിൽ താളുകൾ തദ്ദേശീയമായി സംഭരിച്ചുവയ്ക്കുന്നത് നിർജ്ജീവമാക്കുക',
@@ -378,7 +378,7 @@ $messages = array(
 'underline-default' => 'ബ്രൗസറിലേതു പോലെ',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'തിരുത്തൽ മേഖലയിലെ ഫോണ്ടിന്റെ ശൈലി',
+'editfont-style' => 'തിരുത്തൽ മേഖലയിലെ ഫോണ്ടിന്റെ ശൈലി:',
 'editfont-default' => 'ബ്രൗസറിലേതു പോലെ',
 'editfont-monospace' => 'മോണോസ്പേസ്ഡ് ഫോണ്ട്',
 'editfont-sansserif' => 'സാൻസ്-സെറിഫ് ഫോണ്ട്',
@@ -451,8 +451,8 @@ $messages = array(
 'category-file-count' => '{{PLURAL:$2|ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന ഒരു പ്രമാണം മാത്രമാണുള്ളത്.|ഈ വർഗ്ഗത്തിൽ മൊത്തം $2 പ്രമാണങ്ങളുള്ളതിൽ {{PLURAL:$1|ഒരെണ്ണം|$1 എണ്ണം}} താഴെ നൽകിയിരിക്കുന്നു.}}',
 'category-file-count-limited' => 'ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഒരു പ്രമാണം|$1 പ്രമാണങ്ങൾ}} ഉണ്ട്.',
 'listingcontinuesabbrev' => 'തുടർച്ച.',
-'index-category' => 'വർà´\97àµ\8dà´\97àµ\80കരിക്കപ്പെട്ട താളുകൾ',
-'noindex-category' => 'വർà´\97àµ\8dà´\97àµ\80കരിക്കപ്പെടാത്ത താളുകൾ',
+'index-category' => 'à´¸àµ\82à´\9aà´¿à´\95ാവതàµ\8dകരിക്കപ്പെട്ട താളുകൾ',
+'noindex-category' => 'à´¸àµ\82à´\9aà´¿à´\95ാവതàµ\8dകരിക്കപ്പെടാത്ത താളുകൾ',
 'broken-file-category' => 'പ്രമാണത്തിലേക്കുള്ള പ്രവർത്തനരഹിതമായ കണ്ണി ഉൾക്കൊള്ളുന്ന താളുകൾ',
 
 'about' => 'വിവരണം',
@@ -492,7 +492,7 @@ $messages = array(
 'vector-view-viewsource' => 'മൂലരൂപം കാണുക',
 'actions' => 'നടപടികൾ',
 'namespaces' => 'നാമമേഖല',
-'variants' => 'à´\9aà´°ങ്ങൾ',
+'variants' => 'à´°àµ\82പഭàµ\87à´¦ങ്ങൾ',
 
 'errorpagetitle' => 'പിഴവ്',
 'returnto' => '$1 എന്ന താളിലേക്ക് തിരിച്ചുപോവുക.',
@@ -534,7 +534,7 @@ $messages = array(
 'toolbox' => 'പണിസഞ്ചി',
 'userpage' => 'ഉപയോക്താവിന്റെ താൾ കാണുക',
 'projectpage' => 'പദ്ധതി താൾ കാണുക',
-'imagepage' => 'à´®àµ\80à´¡à´¿à´¯ താൾ കാണുക',
+'imagepage' => 'à´ªàµ\8dരമാണ താൾ കാണുക',
 'mediawikipage' => 'സന്ദേശങ്ങളുടെ താൾ കാണുക',
 'templatepage' => 'ഫലകം താൾ കാണുക',
 'viewhelppage' => 'സഹായം താൾ കാണുക',
@@ -590,7 +590,7 @@ $1',
 'youhavenewmessages' => 'താങ്കൾക്ക് $1 ഉണ്ട് ($2).',
 'newmessageslink' => 'പുതിയ സന്ദേശങ്ങൾ',
 'newmessagesdifflink' => 'അവസാന മാറ്റം',
-'youhavenewmessagesmulti' => 'താങ്കൾക്ക് $1-ൽ പുതിയ സന്ദേശങ്ങൾ ഉണ്ട്',
+'youhavenewmessagesmulti' => 'താങ്കൾക്ക് $1 താളിൽ പുതിയ സന്ദേശങ്ങൾ ഉണ്ട്',
 'editsection' => 'തിരുത്തുക',
 'editold' => 'തിരുത്തുക',
 'viewsourceold' => 'മൂലരൂപം കാണുക',
@@ -608,9 +608,9 @@ $1',
 'feedlinks' => 'ഫീഡ്:',
 'feed-invalid' => 'അസാധുവായ സബ്‌സ്ക്രിപ്ഷൻ ഫീഡ് തരം.',
 'feed-unavailable' => 'സിൻഡിക്കേഷൻ ഫീഡുകൾ ലഭ്യമല്ല',
-'site-rss-feed' => '$1 à´¨àµ\8dà´±àµ\86 à´\86ർ.à´\8eà´¸àµ\8d.à´\8eà´¸àµ\8d à´«àµ\80à´¡àµ\8d',
-'site-atom-feed' => '$1 à´¨àµ\8dà´±àµ\86 à´\86à´±àµ\8dà´±à´\82 à´«àµ\80à´¡àµ\8d',
-'page-rss-feed' => '"$1" ന്റെ ആർ.എസ്.എസ്. ഫീഡ്',
+'site-rss-feed' => '$1 ആർ.എസ്.എസ് ഫീഡ്',
+'site-atom-feed' => '$1 ആറ്റം ഫീഡ്',
+'page-rss-feed' => '"$1"  ആർ.എസ്.എസ്. ഫീഡ്',
 'page-atom-feed' => '"$1" ആറ്റം ഫീഡ്',
 'feed-atom' => 'ആറ്റം',
 'feed-rss' => 'ആർ.എസ്.എസ്.',
@@ -668,8 +668,8 @@ $1',
 'missingarticle-rev' => '(മാറ്റം#: $1)',
 'missingarticle-diff' => '(വ്യത്യാസം: $1, $2)',
 'readonly_lag' => 'വിവരശേഖരം സ്വയം ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു അതേസമയം കീഴ്-വിവരശേഖര സെർവറുകൾ മാസ്റ്റർ വരെ പിടിച്ചിരിക്കുന്നു',
-'internalerror' => 'ആന്തരികപ്രശ്നം',
-'internalerror_info' => 'ആന്തരികപ്രശ്നം: $1',
+'internalerror' => 'ആന്തരിക പിഴവ്',
+'internalerror_info' => 'ആന്തരിക പിഴവ്: $1',
 'fileappenderrorread' => 'കൂട്ടിച്ചേർക്കുന്ന സമയം "$1" വായിച്ചെടുക്കാൻ കഴിഞ്ഞില്ല.',
 'fileappenderror' => '"$1" എന്നത് "$2"-ലേക്ക് കൂട്ടിച്ചേർക്കുവാൻ സാധിച്ചില്ല.',
 'filecopyerror' => '"$1" എന്ന പ്രമാണം "$2" എന്നതിലേയ്ക്ക് പകർത്താൻ സാധിച്ചില്ല.',
@@ -734,7 +734,7 @@ $2',
 'yourpassword' => 'രഹസ്യവാക്ക്:',
 'yourpasswordagain' => 'രഹസ്യവാക്ക് ഒരിക്കൽക്കൂടി:',
 'remembermypassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
-'securelogin-stick-https' => 'à´ªàµ\8dà´°à´µàµ\87ശിà´\9aàµ\8dà´\9aതിനàµ\81 à´\8eà´\9aàµ\8dà´\9aàµ\8d.à´±àµ\8dറി.à´±àµ\8dറി.പി.à´\8eà´¸àµ\8d. ഉപയോഗിക്കുക',
+'securelogin-stick-https' => 'à´ªàµ\8dà´°à´µàµ\87ശനതàµ\8dതിനàµ\81 à´¶àµ\87à´·à´µàµ\81à´\82 à´\8eà´\9aàµ\8dà´\9aàµ\8d.à´±àµ\8dറി.à´±àµ\8dറി.പി.à´\8eà´¸àµ\8d. à´¤à´¨àµ\8dà´¨àµ\86 ഉപയോഗിക്കുക',
 'yourdomainname' => 'താങ്കളുടെ ഡൊമെയിൻ:',
 'externaldberror' => 'ഒന്നുകിൽ ഡേറ്റാബേസ് സാധൂകരണത്തിൽ പ്രശ്നം ഉണ്ടായിരുന്നു അല്ലെങ്കിൽ നവീകരിക്കുവാൻ താങ്കളുടെ ബാഹ്യ അംഗത്വം താങ്കളെ അനുവദിക്കുന്നില്ല.',
 'login' => 'പ്രവേശിക്കുക',
@@ -2119,13 +2119,14 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'booksources-invalid-isbn' => 'തന്നിരിക്കുന്ന ഐ.എസ്.ബി.എൻ. സാധുവാണെന്നു തോന്നുന്നില്ല; യഥാർത്ഥ സ്രോതസ്സിൽ നിന്നും പകർത്തിയപ്പോൾ തെറ്റുപറ്റിയോ എന്നു പരിശോധിക്കുക',
 
 # Special:Log
-'specialloguserlabel' => 'à´\86വിഷàµ\8dà´\95ർതàµ\8dതാവàµ\8d:',
+'specialloguserlabel' => 'à´¨à´\9fà´ªàµ\8dപിലാà´\95àµ\8dà´\95ിയയാൾ:',
 'speciallogtitlelabel' => 'ലക്ഷ്യം (തലക്കെട്ട് അല്ലെങ്കിൽ ഉപയോക്താവ്) :',
 'log' => 'പ്രവർത്തനരേഖകൾ',
 'all-logs-page' => 'എല്ലാ പൊതുരേഖകളും',
 'alllogstext' => '{{SITENAME}} സംരംഭത്തിൽ ലഭ്യമായ വിവിധ പ്രവർത്തന രേഖകൾ ഈ താളിൽ ഒരുമിച്ച് കാണാം. താങ്കൾക്ക് രേഖകളുടെ സ്വഭാവം, ഉപയോക്തൃനാമം (കേസ് സെൻസിറ്റീവ്), ബന്ധപ്പെട്ട താൾ (കേസ് സെൻസിറ്റീവ്) മുതലായവ തിരഞ്ഞെടുത്ത് അന്വേഷണം കൂടുതൽ ക്ഌപ്തപ്പെടുത്താവുന്നതാണ്.',
 'logempty' => 'പ്രവർത്തനരേഖയിൽ ബന്ധമുള്ളവ ഇല്ല.',
 'log-title-wildcard' => 'ഈ വാക്കിൽ തുടങ്ങുന്ന തിരച്ചിൽ ഫലങ്ങൾ',
+'showhideselectedlogentries' => 'തിരഞ്ഞെടുത്ത രേഖാ വിവരങ്ങൾ പ്രദർശിപ്പിക്കുക/മറയ്ക്കുക',
 
 # Special:AllPages
 'allpages' => 'എല്ലാ താളുകളും',
@@ -2136,7 +2137,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'allpagesto' => 'ഇതിൽ അവസാനിക്കുന്ന താളുകൾ കാട്ടുക:',
 'allarticles' => 'എല്ലാ താളുകളും',
 'allinnamespace' => 'എല്ലാ താളുകളും ($1 നാമമേഖല)',
-'allnotinnamespace' => 'à´\8eà´²àµ\8dലാ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\82 ($1 à´¨à´¾à´®à´®àµ\87à´\96ലയിലലàµ\8dലാതàµ\8dതതàµ\8d)',
+'allnotinnamespace' => 'à´\8eà´²àµ\8dലാ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\82 ($1 à´¨à´¾à´®à´®àµ\87à´\96ലയിലലàµ\8dലാതàµ\8dതവ)',
 'allpagesprev' => 'മുമ്പത്തെ',
 'allpagesnext' => 'അടുത്തത്',
 'allpagessubmit' => 'പോകൂ',
@@ -2180,7 +2181,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'listusersfrom' => 'ഇങ്ങനെ തുടങ്ങുന്ന ഉപയോക്താക്കളെ പ്രദർശിപ്പിക്കുക:',
 'listusers-submit' => 'പ്രദർശിപ്പിക്കുക',
 'listusers-noresult' => 'ഈ സംഘത്തിൽ ഉൾപ്പെടുന്ന ഉപയോക്താക്കൾ ആരും ഇല്ല.',
-'listusers-blocked' => '(à´¤à´\9fയപàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¤àµ\8d)',
+'listusers-blocked' => '(à´¤à´\9fയപàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fàµ\81)',
 
 # Special:ActiveUsers
 'activeusers' => 'സജീവ ഉപയോക്താക്കളുടെ പട്ടിക',
@@ -2201,7 +2202,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 വ്യക്തിപരമായ അവകാശങ്ങളെ കുറിച്ച് [[{{MediaWiki:Listgrouprights-helppage}}|കൂടുതൽ വിവരങ്ങൾ]] ഉണ്ടാകാനിടയുണ്ട്.',
 'listgrouprights-key' => '* <span class="listgrouprights-granted">അവകാശം നൽകിയിരിക്കുന്നു</span>
 * <span class="listgrouprights-revoked">അവകാശം നീക്കിയിരിക്കുന്നു</span>',
-'listgrouprights-group' => 'വിഭാà´\97ം',
+'listgrouprights-group' => 'à´¸à´\82à´\98ം',
 'listgrouprights-rights' => 'അവകാശങ്ങൾ',
 'listgrouprights-helppage' => 'Help:സംഘാവകാശങ്ങൾ',
 'listgrouprights-members' => '(അംഗങ്ങളുടെ പട്ടിക)',
@@ -2413,7 +2414,7 @@ $UNWATCHURL
 'protect-othertime' => 'മറ്റ് കാലാവധി:',
 'protect-othertime-op' => 'മറ്റു കാലയളവ്',
 'protect-existing-expiry' => 'നിലവിലെ കാലാവധി: $3, $2',
-'protect-otherreason' => 'മറàµ\8dà´±àµ\81à´³àµ\8dà´³/à´ªàµ\81റമàµ\87à´¯àµ\81à´³àµ\8dà´³ കാരണം:',
+'protect-otherreason' => 'മറàµ\8dà´±àµ\8d/à´\95àµ\82à´\9fàµ\81തൽ കാരണം:',
 'protect-otherreason-op' => 'മറ്റ് കാരണം',
 'protect-dropdown' => '*സംരക്ഷിക്കാനുള്ള കാരണങ്ങൾ
 ** അമിതമായ നശീകരണപ്രവർത്തനങ്ങൾ
@@ -2628,7 +2629,7 @@ $1',
 'change-blocklink' => 'തടയലിൽ മാറ്റം വരുത്തുക',
 'contribslink' => 'സംഭാവനകൾ',
 'emaillink' => 'ഇമെയിൽ അയയ്ക്കുക',
-'autoblocker' => 'താങ്കളുടെ ഐ.പി. വിലാസം "[[User:$1|$1]]" എന്ന ഉപയോക്താവ് ഈ അടുത്ത് ഉപയോഗിക്കുകയും പ്രസ്തുത ഉപയോക്താവിനെ വിക്കിയിൽ നിന്നു തടയുകയും ചെയ്തിട്ടുള്ളതാണ്‌. അതിനാൽ താങ്കളും യാന്ത്രികമായി തടയപ്പെട്ടിരിക്കുന്നു. $1ന്റെ തടയലിനു സൂചിപ്പിക്കപ്പെട്ട കാരണം "$2" ആണ്‌.',
+'autoblocker' => 'താങ്കളുടെ ഐ.പി. വിലാസം "[[User:$1|$1]]" എന്ന ഉപയോക്താവ് ഈ അടുത്ത് ഉപയോഗിക്കുകയും പ്രസ്തുത ഉപയോക്താവിനെ വിക്കിയിൽ നിന്നു തടയുകയും ചെയ്തിട്ടുള്ളതാണ്‌. അതിനാൽ താങ്കളും യാന്ത്രികമായി തടയപ്പെട്ടിരിക്കുന്നു. $1 എന്ന ഉപയോക്താവിന്റെ തടയലിനു സൂചിപ്പിക്കപ്പെട്ട കാരണം "$2" എന്നാണ്‌.',
 'blocklogpage' => 'തടയൽ രേഖ',
 'blocklog-showlog' => 'ഈ ഉപയോക്താവ് മുമ്പേ തടയപ്പെട്ടതാണ്.
 തടയൽ രേഖ അവലംബമായി താഴെ കൊടുത്തിരിക്കുന്നു:',
@@ -3676,7 +3677,7 @@ $5
 
 # Watchlist editing tools
 'watchlisttools-view' => 'ബന്ധപ്പെട്ട മാറ്റങ്ങൾ കാട്ടുക',
-'watchlisttools-edit' => 'à´¶àµ\8dà´°à´¦àµ\8dധിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95 à´\95à´¾à´\9fàµ\8dà´\9fുക, തിരുത്തുക',
+'watchlisttools-edit' => 'à´¶àµ\8dà´°à´¦àµ\8dധിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95 à´\95ാണുക, തിരുത്തുക',
 'watchlisttools-raw' => 'താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയുടെ മൂലരൂപം തിരുത്തുക',
 
 # Signatures
@@ -3842,7 +3843,7 @@ $5
 'revdelete-unrestricted' => 'കാര്യനിർവാഹകർക്ക് ഏർപ്പെടുത്തിയ പ്രവർത്തന അതിരുകൾ നീക്കം ചെയ്തിരിക്കുന്നു',
 'logentry-move-move' => '$1 എന്ന ഉപയോക്താവ് $3 എന്ന താൾ $4 എന്നാക്കി മാറ്റിയിരിക്കുന്നു',
 'logentry-move-move-noredirect' => '$3 എന്ന താൾ $4 എന്ന തലക്കെട്ടിലേയ്ക്ക് തിരിച്ചുവിടലില്ലാതെ $1 മാറ്റി',
-'logentry-move-move_redir' => '$1, $3 എന്ന താൾ $4 എന്ന താളിനുമുകളിലേയ്ക്ക് മാറ്റിയിരിക്കുന്നു',
+'logentry-move-move_redir' => '$1, $3 എന്ന താൾ $4 എന്ന താളിനു മുകളിലേയ്ക്ക് മാറ്റിയിരിക്കുന്നു',
 'logentry-move-move_redir-noredirect' => '$1, $3 എന്ന താൾ $4 എന്ന താളിനുമുകളിലേയ്ക്ക്, തിരിച്ചുവിടൽ ഇല്ലാതെ മാറ്റിയിരിക്കുന്നു',
 'logentry-patrol-patrol' => '$3 എന്ന താളിന്റെ $4 എന്ന നാൾപ്പതിപ്പ് റോന്തുചുറ്റിയതായി $1 അടയാളപ്പെടുത്തിയിരിക്കുന്നു',
 'logentry-patrol-patrol-auto' => '$3 എന്ന താളിന്റെ $4 എന്ന നാൾപ്പതിപ്പ് റോന്തുചുറ്റിയതായി $1 സ്വതേ അടയാളപ്പെടുത്തിയിരിക്കുന്നു',
index cb482c9..cce899d 100644 (file)
@@ -2026,6 +2026,7 @@ serta mungkin mempunyai maklumat lanjut mengenai buku yang anda cari:',
 'alllogstext' => 'Yang berikut ialah gabungan bagi semua log yang ada bagi {{SITENAME}}. Anda boleh menapis senarai ini dengan memilih jenis log, nama pengguna (peka huruf besar), atau nama laman yang terjejas (juga peka huruf besar).',
 'logempty' => 'Tiada item yang sepadan dalam log.',
 'log-title-wildcard' => 'Cari semua tajuk yang bermula dengan teks ini',
+'showhideselectedlogentries' => 'Tunjukkan/sorokkan entri-entri log yang terpilih',
 
 # Special:AllPages
 'allpages' => 'Semua laman',
@@ -2916,6 +2917,7 @@ Simpan dalam komputer anda dan muat naiknya di sini.',
 'spambot_username' => 'Pembersihan spam MediaWiki',
 'spam_reverting' => 'Membalikkan kepada versi terakhir yang tidak mengandungi pautan ke $1',
 'spam_blanking' => 'Mengosongkan semua semakan yang mengandungi pautan ke $1',
+'spam_deleting' => 'Menghapuskan semua semakan yang mengandungi pautan ke $1',
 
 # Info page
 'pageinfo-title' => 'Maklumat untuk "$1"',
index 911cd5f..8c479ca 100644 (file)
@@ -1202,6 +1202,7 @@ Nota li l-użu tal-links tan-navigazzjoni jagħmel reset tal-kolonna.",
 
 # Diffs
 'history-title' => 'Kronoloġija tal-modifiki ta\' "$1"',
+'difference-title' => 'Differenza bejn ir-reviżjonijiet ta\' "$1"',
 'difference-multipage' => '(Differenzi bejn il-paġni)',
 'lineno' => 'Linja $1:',
 'compareselectedversions' => 'Qabbel il-verżjonijiet magħżula',
@@ -2393,7 +2394,7 @@ $1',
 'namespace' => 'Spazju tal-isem:',
 'invert' => 'Inverti l-għażla',
 'tooltip-invert' => 'Agħżel din il-kaxxa biex taħbi l-modifiki lejn paġni li jinsabu fl-ispazji tal-isem magħżula (u l-ispazju tal-isem assoċjat jekk hu magħżul)',
-'namespace_association' => 'Spazju tal-isem assoċjata',
+'namespace_association' => 'Spazju tal-isem assoċjat',
 'tooltip-namespace_association' => "Agħżel din il-kaxxa sabiex tinkludi l-paġna ta' diskussjoni jew l-oġġett tal-ispazju tal-isem assoċjat mal-ispazju tal-isem magħżul",
 'blanknamespace' => '(Prinċipali)',
 
@@ -3702,6 +3703,7 @@ Stampi huwa mogħrija b'risoluzzjoni sħiħa, tipi tal-fajl oħrajn jibdew bil-p
 'sqlite-no-fts' => "$1 mingħajr il-possibilità ta' tfittxija kompluta fit-test",
 
 # New logging system
+'logentry-delete-delete' => '$1 ħassar il-paġna $3',
 'revdelete-restricted' => "limiti applikati 'l amministraturi",
 'revdelete-unrestricted' => "neħħi l-limiti 'l amministraturi",
 'logentry-move-move' => '$1 mexxa l-paġna $3 għal $4',
index 51a8e22..c8a4181 100644 (file)
@@ -36,6 +36,9 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Neneuhcāyōtl_tēixnāmiquiliztli',
 );
 
+// Remove Spanish gender aliases (bug 37090)
+$namespaceGenderAliases = array();
+
 $namespaceAliases = array(
        'Media'         => NS_MEDIA,
        'Especial'      => NS_SPECIAL,
@@ -1038,7 +1041,7 @@ In āxcān tlachiyaliztli onca īpan $PAGETITLE_URL
 $NEWPAGE
 
 In tlapatlaliztli īxtlamatiliztli cah: $PAGESUMMARY $PAGEMINOREDIT
+
 Xicnotzāz in tlapatlani:
 Correo electrónico: {{canonicalurl:Special:Emailuser|target=$PAGEEDITOR}}
 Huiqui: {{canonicalurl:User:$PAGEEDITOR}}
index 683128b..b590943 100644 (file)
@@ -3186,6 +3186,7 @@ Meestal wordt dit door een externe verwijzing op een zwarte lijst veroorzaakt.',
 'spambot_username' => 'MediaWiki opschoning spam',
 'spam_reverting' => 'Bezig met terugdraaien naar de laatste versie die geen verwijzing heeft naar $1',
 'spam_blanking' => 'Alle wijzigingen met een verwijzing naar $1 worden verwijderd',
+'spam_deleting' => 'Alle versies bevatten verwijzingen naar $1. Bezig met verwijderen...',
 
 # Info page
 'pageinfo-title' => 'Informatie over "$1"',
index c960521..eba4c62 100644 (file)
@@ -640,7 +640,7 @@ Ho kan allereie vere sletta av andre.',
 'cannotdelete-title' => 'Kan ikkje sletta sida «$1»',
 'badtitle' => 'Feil i tittelen',
 'badtitletext' => 'Den ønskte tittelen var ulovleg, tom eller feillenkja frå ein annan wiki. Kanskje inneheld han eitt eller fleire teikn som ikkje kan brukast i sidetitlar.',
-'perfcached' => 'Det følgjande er frå mellomlageret åt tenaren og er ikkje nødvendigvis oppdatert. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
+'perfcached' => 'Dei følgjande dataa er frå mellomlageret åt tenaren og er ikkje utan vidare oppdatert. Høgst {{PLURAL:$1|eitt resultat er tilgjengeleg|$1 resultat er tilgjengelege}} i mellomlageret.',
 'perfcachedts' => 'Desse dataa er mellomlagra, og vart sist oppdaterte $1. Høgst {{PLURAL:$4|eitt resultat er tilgjengeleg|$4 resultat er tilgjengelege}} i mellomlageret.',
 'querypage-no-updates' => 'Oppdatering av denne sida er slått av, og data her vil ikkje verte fornya.',
 'wrong_wfQuery_params' => 'Feil parameter gjevne til wfQuery()<br />Funksjon: $1<br />Førespurnad: $2',
@@ -650,6 +650,7 @@ Ho kan allereie vere sletta av andre.',
 'actionthrottledtext' => 'For å hindre spamming kan du ikkje utføre denne handlinga for mange gonger på kort tid. Ver venleg og prøv igjen litt seinare.',
 'protectedpagetext' => 'Denne sida er verna for å hindre endring.',
 'viewsourcetext' => 'Du kan sjå og kopiere kjeldekoden til denne sida:',
+'viewyourtext' => "Du kan sjå og kopiera kjelda til '''endringane dine''' på sida:",
 'protectedinterface' => 'Denne sida inneheld tekst som er brukt av brukargrensesnittet for programvara, og er difor låst for å hindre hærverk.',
 'editinginterface' => "'''Åtvaring:''' Du endrar på ei side som inneheld tekst som er brukt av brukargrensesnittet for programvara. Endringar på denne sida påverkar utsjånaden til sida for dei andre brukarane. Dersom du ynskjer å setje om, ver venleg og vurder å bruke [//translatewiki.net/wiki/Main_Page?setlang=nn translatewiki.net], prosjektet for omsetjing av MediaWiki.",
 'sqlhidden' => '(SQL-førespurnaden er gøymd)',
@@ -661,6 +662,8 @@ $2',
 'ns-specialprotected' => 'Sider i {{ns:special}}-namnerommet kan ikkje endrast.',
 'titleprotected' => "Denne sidetittelen er verna mot oppretting av [[User:$1|$1]].
 Grunnen som er gjeven er: ''$2''.",
+'invalidtitle-knownnamespace' => 'Ugyldig tittel med namnerommet «$2» og teksten «$3»',
+'invalidtitle-unknownnamespace' => 'Ugyldig tittel med ukjend namneromstal $1 og teksten «$2»',
 
 # Virus scanner
 'virus-badscanner' => "Dårleg konfigurasjon: ukjend virusskanner: ''$1''",
@@ -743,6 +746,7 @@ Grunna dette vil ikkje vitjande som nyttar denne IP-adressa kunna oppretta nye k
 'emailconfirmlink' => 'Stadfest e-post-adressa di',
 'invalidemailaddress' => 'E-postadressa kan ikkje nyttast sidan formatet truleg er feil. Skriv ei fungerande adresse eller tøm feltet.',
 'cannotchangeemail' => 'Epost-adresser knytta til brukarkonti kan ikkje endrast på denne wikien.',
+'emaildisabled' => 'Denne nettstaden kan ikkje senda e-postar.',
 'accountcreated' => 'Brukarkonto oppretta',
 'accountcreatedtext' => 'Brukarkontoen til $1 er oppretta.',
 'createaccount-title' => 'Oppretting av brukarkonto på {{SITENAME}}',
@@ -904,7 +908,12 @@ eller <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}
 'userpage-userdoesnotexist-view' => 'Brukarkontoen «$1» er ikkje oppretta.',
 'blocked-notice-logextract' => 'Denne brukaren er for tida blokkert.
 Det siste elementet i blokkeringsloggen er oppgjeve nedanfor:',
-'clearyourcache' => "Merk: Etter lagring vil det kanskje vera naudsynt at nettlesaren slettar mellomlageret sitt for at endringane skal tre i kraft.''' '''Firefox og Safari:''' Hald ''Shift'' nede medan du trykkjer anten ''Ctrl-F5'' eller ''Ctrl-R'' (''Command-R'' på Mac). '''Konqueror:''' Trykk ''Oppdater'' eller på ''F5''. '''Opera:''' Tøm mellomlageret i ''Verktøy → Innstillingar''. '''Internet Explorer:''' Hald nede ''Ctrl'' medan du trykkjer ''Oppdater'', eler trykk ''Ctrl-F5.''",
+'clearyourcache' => "'''Merk:''' Etter lagring vil det kanskje vera naudsynt at nettlesaren slettar mellomlageret sitt for at endringane skal tre i kraft.
+* '''Firefox og Safari:''' Haldt nede ''Shift'' medan du klikkar på ''Oppdater'', eller trykk anten ''Ctrl-F5'' eller ''Ctrl-R'' (''⌘-R'' på Mac)
+* '''Google Chrome:''' Trykk ''Ctrl-Shift-R'' (''⌘-Shift-R'' på Mac)
+* '''Internet Explorer:''' Haldt nede ''Ctrl'' medan du klikkar ''Oppdater'', eller trykk ''Ctrl-F5.''
+* '''Konqueror:''' Klikk ''Oppdater'' eller trykk ''F5''. 
+* '''Opera:''' Tøm mellomlageret i ''Verktøy → Innstillingar''.",
 'usercssyoucanpreview' => "'''Tips:''' Bruk «{{int:showpreview}}»-knappen for å teste den nye CSS- eller JavaScript-koden din før du lagrar.",
 'userjsyoucanpreview' => "''Tips:''' Bruk «{{int:showpreview}}»-knappen for å teste den nye CSS- eller JavaScript-koden din før du lagrar.",
 'usercsspreview' => "'''Hugs at dette berre er ei førehandsvising av din eigen CSS og at han ikkje er lagra enno!'''",
@@ -953,8 +962,7 @@ Teksten må du ha skrive sjølv, eller kopiert frå ein ressurs som er kompatibe
 Teksten må du ha skrive sjølv eller ha kopiert frå ein ressurs som er kompatibel med vilkåra eller ikkje verna av opphavsrett (sjå $1 for detaljar).
 
 '''LEGG ALDRI INN MATERIALE SOM ANDRE HAR OPPHAVSRETT TIL UTAN LØYVE FRÅ DEI!'''",
-'longpageerror' => "'''Feil: Teksten du har prøvd å lagre er $1 kilobyte
-lang, altså lenger enn $2 kilobyte som er maksimum. Han kan difor ikkje lagrast.'''",
+'longpageerror' => "'''Feil: Teksten du sende inn er {{PLURAL:$1|éin kilobyte|$1 kilobyte}} stor, noko som er større enn øvstegrensa på {{PLURAL:$2|éin kilobyte|$2 kilobyte}}.''' Han kan difor ikkje lagrast.",
 'readonlywarning' => "'''ÅTVARING: Databasen er skriveverna på grunn av vedlikehald, så du kan ikkje lagre endringane dine akkurat no. Det kan vera lurt å  kopiere teksten din til ei tekstfil, så du kan lagre han her seinare.'''
 
 Systemadministratoren som låste databasen gav følgjande årsak: $1",
@@ -1070,16 +1078,16 @@ Som administrator kan du sjå han. Det finst kanskje meir informasjon i [{{fullu
 'rev-deleted-no-diff' => "Du kan ikkje vise denne skilnaden fordi ein av versjonane er vorten '''sletta'''.
 Det finst kanskje detaljar i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} sletteloggen].",
 'rev-suppressed-no-diff' => "Du kan ikkje sjå denne skilnaden av di ein av versjonane er vorten '''sletta'''.",
-'rev-deleted-unhide-diff' => "Éin av versjonane i denne skilnaden er vorten '''sletta'''.
-Det finst kanskje detaljar i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} sletteloggen].
-Som administrator kan du framleis [$1 sjå skilnaden] om du ynskjer å halda fram.",
-'rev-suppressed-unhide-diff' => "Ei av sideversjonane i denne lista over versjonar har vorte '''skjult'''.
-Det kan vera detaljar i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} skjulingsloggen].
-Som administrator kan du framleis [$1 sjå versjonen] om du ynskjer det.",
-'rev-deleted-diff-view' => "Ei av endringane i dette oversynet er '''sletta'''.
-Som administrator kan du sjå oversynet; detaljar finn du i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].",
-'rev-suppressed-diff-view' => "Ei av endringane i dette oversynet er '''løynd'''.
-Som administrator kan du sjå dette oversynet; detaljar finn du i [{{fullurl:{{#Special:Log}}/suppcess|page={{FULLPAGENAMEE}}}} historikkfjerningsloggen].",
+'rev-deleted-unhide-diff' => "Ein av versjonane i denne skilnaden er vorten '''sletta'''.
+Det finst detaljar i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} sletteloggen].
+Du kan framleis [$1 sjå skilnaden] om du ynskjer å halda fram.",
+'rev-suppressed-unhide-diff' => "Ein av sideversjonane i denne lista over versjonar er vorten '''løynd'''.
+Det finst detaljar i [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} løyneloggen].
+Du kan framleis [$1 sjå skilnaden] om du ynskjer å halda fram.",
+'rev-deleted-diff-view' => "Ein av versjonane i skilnaden er vorten '''sletta'''.
+Du kan sjå skilnaden; detaljar finst i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].",
+'rev-suppressed-diff-view' => "Ei av endringane i skilnaden er vorten '''løynd'''.
+Du kan sjå skilnaden; detaljar finst i [{{fullurl:{{#Special:Log}}/suppcess|page={{FULLPAGENAMEE}}}} løyneloggen].",
 'rev-delundel' => 'vis/gøym',
 'rev-showdeleted' => 'syn',
 'revisiondelete' => 'Slett/attopprett versjonar',
@@ -1265,6 +1273,7 @@ Ver merksam på at registra deira kan vera utdaterte.',
 'qbsettings-fixedright' => 'Høgre',
 'qbsettings-floatingleft' => 'Flytande venstre',
 'qbsettings-floatingright' => 'Flytande høgre',
+'qbsettings-directionality' => 'Fast, avhengig av kva retning språket ditt vert lese',
 
 # Preferences page
 'preferences' => 'Innstillingar',
@@ -1279,6 +1288,7 @@ Ver merksam på at registra deira kan vera utdaterte.',
 'prefs-beta' => 'Betafunksjonar',
 'prefs-datetime' => 'Dato og klokkeslett',
 'prefs-labs' => 'Testfunksjonar',
+'prefs-user-pages' => 'Brukarsider',
 'prefs-personal' => 'Brukaropplysningar',
 'prefs-rc' => 'Siste endringar',
 'prefs-watchlist' => 'Overvakingsliste',
@@ -1615,8 +1625,9 @@ For å bruke ei fil på ei side, bruk ei lenkje på eit liknande format:
 'ignorewarnings' => 'Oversjå åtvaringar',
 'minlength1' => 'Filnamn må ha minst eitt teikn.',
 'illegalfilename' => 'Filnamnet «$1» inneheld teikn som ikkje er tillatne i sidetitlar. Skift namn på fila og prøv på nytt.',
+'filename-toolong' => 'Filnamn kan ikkje vera lengre enn 240 byte.',
 'badfilename' => 'Namnet på fila har vorte endra til «$1».',
-'filetype-mime-mismatch' => 'Filendinga samsvarar ikkje med ein MIME-type.',
+'filetype-mime-mismatch' => 'Filendinga «.$1» samsvarar ikkje med MIME-typen som er funnen i fila ($2).',
 'filetype-badmime' => 'Filer av MIME-typen «$1» kan ikkje lastast opp.',
 'filetype-bad-ie-mime' => 'Kan ikkje lasta opp fila då Internet Explorer ville merka ho som "$1", ein ikkje-tillate og potensielt farleg filtype.',
 'filetype-unwanted-type' => "«'''.$1'''» er ein uynskt filtype.
@@ -1715,7 +1726,9 @@ $1',
 'upload-http-error' => 'Ein HTTP-feil oppstod: $1',
 
 # File backend
+'backend-fail-invalidpath' => '$1 er ikkje ein gyldig lagringsstig.',
 'backend-fail-delete' => 'Kunne ikkje sletta fila «$1».',
+'backend-fail-alreadyexists' => 'Fila $1 finst frå før.',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Tilgjenge avslått',
@@ -2287,9 +2300,8 @@ Her er dei noverande innstillingane for sida '''$1''':",
 'viewdeletedpage' => 'Sjå sletta sider',
 'undeletepagetext' => '{{PLURAL:$1|Den følgjande sida er sletta, men ho|Dei følgjande $1 sidene er sletta, men dei}} finst enno i arkivet og kan attopprettast. Arkivet blir periodevis sletta.',
 'undelete-fieldset-title' => 'Attenderull endringar',
-'undeleteextrahelp' => "For å attenderulle heile sida, la alle boksane vere som dei er, og klikk '''''Rull attende'''''.
-For å berre attenderulle delar, kryss av boksane til endringane, og klikk '''''Rull attende'''''.
-Å klikke '''''Nullstill''''' vil føre til at alle tekstfelt og boksar vert blanke.",
+'undeleteextrahelp' => "For å attoppretta heile historikken til sida, lat alle boksane vera vera tomme og trykk '''''{{int:undeletebtn}}'''''.
+For å berre attopretta delar av historikken, haka av boksane til dei relevante endringane og trykk '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '{{PLURAL:$1|Éin versjon arkivert|$1 versjonar arkiverte}}',
 'undeletehistory' => 'Om du gjenopprettar sida vil alle endringar i historikken også bli gjenoppretta. Dersom ei ny side med same namn er oppretta etter slettinga, vil dei gjenoppretta endringane dukke opp før denne i endringshistorikken.',
 'undeleterevdel' => 'Gjenoppretting kan ikkje utførast om det resulterer i at den øvste endringa delvis vert sletta. I slike tilfelle må du fjerne merkinga av den siste sletta endringa.',
@@ -2322,6 +2334,7 @@ Sjå [[Special:Log/delete|sletteloggen]] for eit oversyn over sider som nyleg er
 'undelete-bad-store-key' => 'Kan ikkje gjenopprette filutgåva med tidstrykk $1: fil mangla før sletting',
 'undelete-cleanup-error' => 'Feil ved sletting av den ubrukte arkivfila «$1».',
 'undelete-missing-filearchive' => 'Kunne ikkje attopprette filarkivet med nummer $1 fordi det ikkje ligg i databasen. Det kan allereie ver attoppretta.',
+'undelete-error' => 'Feil under attoppretting av sida.',
 'undelete-error-short' => 'Veil ved sletting av fila: $1',
 'undelete-error-long' => 'Feil ved attoppretting av fila:
 
index c15c795..ca3f1b8 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Norwegian (bokmål)‬ (‪Norsk (bokmål)‬)
+/** Norwegian (bokmål)‬ (‪norsk (bokmål)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Jeblad
  */
 
 $fallback = 'nb';
@@ -2007,7 +2008,7 @@ Dette er de nåværende innstillingene for siden '''$1''':",
 Du kan endre sidens beskyttelsesnivå, men det vil ikke påvirke dypbeskyttelsen.',
 'protect-default' => 'Tillat alle brukere',
 'protect-fallback' => 'Må ha «$1»-tillatelse',
-'protect-level-autoconfirmed' => 'Blokker nye og uregistrerte brukere',
+'protect-level-autoconfirmed' => 'Eastte anonyma ja ođđa geavaheddjiid',
 'protect-level-sysop' => 'Kun administratorer',
 'protect-summary-cascade' => 'dypbeskyttelse',
 'protect-expiring' => 'utløper $1 (UTC)',
index 0d90735..ef68575 100644 (file)
@@ -2117,6 +2117,9 @@ A page is treated as disambiguation page if it uses a template which is linked f
 ଏଥିରେ ଥିବା ଗୋଟିଏ ବା ଦୁଇଟି ଅକ୍ଷର ଶିରୋନାମା ଭାବରେ ବ୍ୟବହାର କରାଯାଇ ପାରିବ ନାହିଁ ।',
 'allpages-bad-ns' => '{{SITENAME}}ରେ "$1" ନେମସ୍ପେସଟିଏ ନାହିଁ ।',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'ନୂତନତମ ଦେଖନ୍ତୁ ।',
+
 # Special:Categories
 'categories' => 'ଶ୍ରେଣୀସମୂହ',
 'categoriespagetext' => 'ତଳଲିଖିତ {{PLURAL:$1|ଶ୍ରେଣୀ|ଶ୍ରେଣୀସମୂହ}}ରେ ପୃଷ୍ଠା ବା ମେଡ଼ିଆ ରହିଅଛି ।
@@ -2879,6 +2882,9 @@ MediaWiki ବ୍ୟବହାର କରି [[Special:Import|ପୃଷ୍ଠା 
 'import-logentry-interwiki' => '$1 କୁ ଟ୍ରାନ୍ସଉଇକି କରାଗଲା',
 'import-logentry-interwiki-detail' => '$2 ଭିତରୁ $1 ଗୋଟି {{PLURAL:$1|ସଂସ୍କରଣ|ସଂସ୍କରଣ}}',
 
+# JavaScriptTest
+'javascripttest-disabled' => 'ଏହି ଉଇକିରେ ଏହି ବ୍ୟବସ୍ଥାଟିକୁ ସଚଳ କରାଯାଇନାହି ।',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'ଆପଣଙ୍କ ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠା',
 'tooltip-pt-anonuserpage' => 'ଆପଣ ଯେଉଁ IP ଠିକଣାର ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠାଟି ବଦଳାଇବା ପାଇଁ ଚେଷ୍ଟା କରୁଛନ୍ତି',
@@ -3670,6 +3676,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 'version-software' => 'ଇନଷ୍ଟଲ ହୋଇଥିବା ସଫ୍ଟୱାର',
 'version-software-product' => 'ଉତ୍ପାଦ',
 'version-software-version' => 'ସଂସ୍କରଣ',
+'version-entrypoints-header-url' => 'ଇଉଆରଏଲ',
 
 # Special:FilePath
 'filepath' => 'ଫାଇଲ ପଥ',
@@ -3829,6 +3836,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 'api-error-duplicate-archive-popup-title' => 'ଆଗରୁ ଲିଭାଯାଇଥିବା ନକଲି {{PLURAL:$1|ଗୋଟି ଫାଇଲ|ଗୋଟି ଫାଇଲ}}',
 'api-error-duplicate-popup-title' => 'ନକଲି {{PLURAL:$1|ଗୋଟି ଫାଇଲ|ଗୋଟି ଫାଇଲ}}',
 'api-error-empty-file' => 'ଆପଣ ପଠାଇଥିବା ଫାଇଲଟି ଖାଲି ଅଟେ ।',
+'api-error-emptypage' => 'ନୂଆ, ଖାଲି ପୃଷ୍ଠ ତିଆରି କରିବାର ଅନୁମତି ନାହି ।',
 'api-error-fetchfileerror' => 'ଭିତର ଅସୁବିଧା: ଏହି ଫାଇଲଟି ପାଖରେ ପହଞ୍ଚିବା ବେଳେ କିଛି ଅସୁବିଧା ହେଲା ।',
 'api-error-file-too-large' => 'ଆପଣ ପଠାଇଥିବା ଫାଇଲଟି ବିରାଟ ଅଟେ ।',
 'api-error-filename-tooshort' => 'ଫାଇଲ ନାମଟି ଖୁବ ଛୋଟ ।',
index b2fce24..7ef1686 100644 (file)
@@ -520,7 +520,7 @@ Da qualsëssìa ëd coste funsion a sarà mandà gnun messagi fin che chiel (chi
 'invalidemailaddress' => "Costa adrëssa ëd pòsta eletrònica-sì as peul nen pijesse përchè a l'ha na forma nen bon-a.
 Për piasì che a buta n'adrëssa scrita giusta ò che a lassa ël camp veujd.",
 'cannotchangeemail' => "J'adrësse ëd pòsta eletrònica dij cont a peulo pa esse modificà ansima a costa wiki.",
-'emaildisabled' => 'Ës sit a peul pa mandé ëd mëssagi ëd pòsta eletrònica.',
+'emaildisabled' => 'Ës sit a peul pa mandé dij mëssagi ëd pòsta eletrònica.',
 'accountcreated' => 'Cont creà',
 'accountcreatedtext' => "Ël cont Utent për $1 a l'é stàit creà.",
 'createaccount-title' => 'Creassion ëd cont për {{SITENAME}}',
@@ -2579,27 +2579,27 @@ Se costa ùltima possibilità a fussa lòn che a-j serv, a podrìa ëdcò dovré
 '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:',
+'export-pagelinks' => 'Anclude le pàgine colegà a na përfondità ëd:',
 
 # Namespace 8 related
-'allmessages' => 'Messagi ëd sistema',
+'allmessages' => 'Mëssagi ëd sistema',
 'allmessagesname' => 'Nòm',
 'allmessagesdefault' => "Test che a-i sarìa se a-i fusso pa 'd modìfiche",
 'allmessagescurrent' => 'Test corent',
-'allmessagestext' => "Costa-sì a l'é na lista ëd messagi disponìbij ëd sistema ant lë spassi nominal MediaWiki.
-Për piasì vìsita [//www.mediawiki.org/wiki/Localisation MediaWiki Localisassion] e [//translatewiki.net translatewiki.net] se it veule contribuì a la localisassion general ëd MediaWiki.",
+'allmessagestext' => "Costa-sì a l'é na lista dij mëssagi ëd sistema disponìbij ant lë spassi nominal MediaWiki.
+Për piasì, ch'a vìsita la [//www.mediawiki.org/wiki/Localisation Localisassion ëd MediaWiki] e [//translatewiki.net translatewiki.net] se a veul contribuì a la localisassion general ëd MediaWiki.",
 'allmessagesnotsupportedDB' => "Sta pàgina-sì a peul pa esse dovrà përchè '''\$wgUseDatabaseMessages''' a l'é stàit disabilità.",
 'allmessages-filter-legend' => 'Filtr',
-'allmessages-filter' => 'Filtra për stat ëd përsonalisassion:',
+'allmessages-filter' => 'Filtré për stat ëd përsonalisassion:',
 'allmessages-filter-unmodified' => 'Pa modificà',
 'allmessages-filter-all' => 'Tùit',
 'allmessages-filter-modified' => 'Modificà',
-'allmessages-prefix' => 'Filtra për prefiss:',
+'allmessages-prefix' => 'Filtré për prefiss:',
 'allmessages-language' => 'Lenga:',
-'allmessages-filter-submit' => '',
+'allmessages-filter-submit' => 'Apliché',
 
 # Thumbnails
-'thumbnail-more' => 'Slarga',
+'thumbnail-more' => 'Slarg',
 'filemissing' => 'Archivi che a manca',
 'thumbnail_error' => 'Eror antramentr che as fasìa la figurin-a: $1',
 'djvu_page_error' => 'Pàgina DjVu fòra dij lìmit',
@@ -2609,15 +2609,15 @@ Për piasì vìsita [//www.mediawiki.org/wiki/Localisation MediaWiki Localisassi
 'thumbnail_invalid_params' => 'Paràmetro dla figurin-a pa giust',
 'thumbnail_dest_directory' => 'As peul pa fesse ël dossié ëd destinassion',
 'thumbnail_image-type' => 'Sòrt ëd figura nen gestì',
-'thumbnail_gd-library' => 'Configurassion pa finìa dla librerìa GD: Fonsion $1 mancanta',
-'thumbnail_image-missing' => 'Ël file a smija esse mancant: $1',
+'thumbnail_gd-library' => 'Configurassion incompleta dla biblioteca GD: Fonsion $1 mancanta',
+'thumbnail_image-missing' => "L'archivi a smija ch'a manca: $1",
 
 # Special:Import
 'import' => 'Amportassion ëd pàgine',
 'importinterwiki' => 'Amportassion da wiki diferente',
 'import-interwiki-text' => "Che a selession-a na wiki e ël tìtol dla pàgina da amporté.
-Date dle revision e stranòm dj'editor a resteran piajit sù 'cò lor.
-Tute le amportassion antra wiki diferente a resto marcà ant ël [[Special:Log/import|Registr dj'amportassion]].",
+Date dle revision e stranòm dj'editor a resteran piàjit sù 'cò lor.
+Tute j'amportassion antra wiki diferente a resto marcà ant ël [[Special:Log/import|Registr dj'amportassion]].",
 'import-interwiki-source' => 'Sorziss wiki/pàgina:',
 'import-interwiki-history' => 'Còpia tute le version stòriche dë sta pàgina-sì',
 'import-interwiki-templates' => 'Ansëriss tùit jë stamp',
index 8ea2992..3236db2 100644 (file)
@@ -21,6 +21,7 @@
  * @author Danielsouzat
  * @author Diego Queiroz
  * @author Eduardo.mps
+ * @author Emufarmers
  * @author Everton137
  * @author Francisco Leandro
  * @author GKnedo
@@ -795,7 +796,7 @@ Como resultado, visitantes que usam este endereço IP não podem criar mais nenh
 'accountcreated' => 'Conta criada',
 'accountcreatedtext' => 'A conta de usuário para $1 foi criada.',
 'createaccount-title' => 'Criação de conta em {{SITENAME}}',
-'createaccount-text' => 'Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha #$3". Você deve se autenticar e alterar sua senha.
+'createaccount-text' => 'Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha "$3". Você deve se autenticar e alterar sua senha.
 
 Você pode ignorar esta mensagem caso a conta tenha sido criada por engano.',
 'usernamehasherror' => 'Nome de usuário não pode conter o símbolo de cardinal (#).',
index f0ca5e4..a742f3d 100644 (file)
@@ -322,7 +322,7 @@ See http://test.wikipedia.org/wiki/Category:Test_ko?uselang={{SUBPAGENAME}}, for
 Possible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.
 
 {{Identical|Content page}}",
-'newwindow' => 'Below the edit form, next to "[[MediaWiki:Edithelp/{{SUBPAGENAME}}|Editing help]]".',
+'newwindow' => 'Below the edit form, next to "{{msg-mw|Edithelp}}".',
 'cancel' => 'Message shown below the edit form, and if you click on it, you stop with editing the page and go back to the normal page view.
 
 {{Identical|Cancel}}',
@@ -414,7 +414,7 @@ Also used as title of [[Special:Search]] page in [[Special:SpecialPages]].
 'edit' => 'The text of the tab going to the edit form. When the page is protected, you will see "[[MediaWiki:Viewsource/{{SUBPAGENAME}}|{{int:viewsource}}]]". Should be in the infinitive mood.
 
 {{Identical|Edit}}',
-'create' => 'The text on the tab for to the edit form on unexisting pages.
+'create' => 'The text on the tab of the edit form on unexisting pages starts editing them.
 
 {{Identical|Create}}',
 'editthispage' => 'This is the "edit" link as used in the skins Classic/Standard, Cologne Blue and Nostalgia. See {{msg|create-this-page}} for when the page does not exist.',
@@ -1980,7 +1980,9 @@ Extensions making use of it:
 'backend-fail-batchsize' => 'Error message when the limit of operations to be done at once in the file backend was reached.
 Parameters:
 * $1 is the number of operations attempted at once in this case.
-* $2 is the maximum number of operations that can be attempted at once.',
+* $2 is the maximum number of operations that can be attempted at once.
+
+A "[[:wikipedia:Front and back ends|backend]]" is a system or component that ordinary users don\'t interact with directly and don\'t need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are "system" or "service", or (depending on context and language) even leave it untranslated.',
 'backend-fail-usable' => 'Parameters:
 * $1 is the file name, including the path, formatted for the storage backend used',
 
@@ -2482,7 +2484,7 @@ You can apparently use 'URL' instead of 'hostname'.",
 'activeusers-noresult' => 'identical with {{msg-mw|listusers-noresult}}',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Part of the "Newuserlog" extension. It is both the title of [[Special:Log/newusers]] and the link you can see in the recent changes.',
+'newuserlogpage' => 'Part of the "Newuserlog" extension. It is both the title of [[Special:Log/newusers]] and the link you can see in [[Special:RecentChanges]].',
 'newuserlogpagetext' => 'Part of the "Newuserlog" extension. It is the description you can see on [[Special:Log/newusers]].',
 
 # Special:ListGroupRights
@@ -2594,7 +2596,7 @@ This is a button text used in [[Special:Emailuser]] when called without a (valid
 Possible alternatives to the word 'content' are 'subject matter' or 'wiki subject' or 'wiki purpose'.
 
 {{Identical|Content page}}",
-'watchlist-details' => 'Message on Special page: My watchlist. This is paired with the message [[Mediawiki:Nowatchlist]] which appears instead of Watchlist-details when $1 is 0.',
+'watchlist-details' => 'Message on [[Special:Watchlist]]. This is paired with the message {{msg-mw|Nowatchlist}} which appears instead of Watchlist-details when $1 is 0.',
 'wlheader-showupdated' => 'This message shows up near top of users watchlist page.',
 'wlnote' => 'Used on [[Special:Watchlist]] when the maximum number of days is specified.
 Similar to {{msg-mw|rcnote}} which is used on [[Special:RecentChanges]].
@@ -2744,8 +2746,8 @@ This message was something like "unlock move protection" in the past.',
 {{Identical|Infinite}}",
 'restriction-type' => 'Used on [[Special:ProtectedPages]]. The text next to a drop-down box. See [[mw:Manual:Administrators|MediaWiki Manual]] for more information on protection.',
 'restriction-level' => 'Used on [[Special:ProtectedPages]] and [[Special:ProtectedTitles]]. The text next to a drop-down box. See the [//www.mediawiki.org/wiki/Project:Protected_titles help page on Mediawiki] and on [http://meta.wikimedia.org/wiki/Protect Meta] for more information.',
-'minimum-size' => 'Used in [[Special:Protectedpages]] as a pair of radio buttons, with [[MediaWiki:Maximum-size]]. There is an input box to specify the minimum bites of the projected pages listed.',
-'maximum-size' => 'Used in [[Special:Protectedpages]] as a pair of radio buttons, with [[MediaWiki:Minimum-size]]. There is an input box to specify the maximum bites of the projected pages listed.',
+'minimum-size' => 'Used in [[Special:Protectedpages]] as a pair of radio buttons, with {{msg-mw|Maximum-size}}. There is an input box to specify the minimum bites of the projected pages listed.',
+'maximum-size' => 'Used in [[Special:Protectedpages]] as a pair of radio buttons, with {{msg-mw|Minimum-size}}. There is an input box to specify the maximum bites of the projected pages listed.',
 'pagesize' => 'Used on [[Special:ProtectedPages]]. See the help page on [http://meta.wikimedia.org/wiki/Protect Meta] for more information on protection.',
 
 # Restrictions (nouns)
@@ -3195,7 +3197,7 @@ See also:
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Tooltip shown when hovering the mouse over the link to your own User page in the upper-side personal toolbox.',
 'tooltip-pt-mytalk' => 'Tooltip shown when hovering over the "my talk" link in your personal toolbox (upper right side).',
-'tooltip-pt-preferences' => 'Tooltip shown when hovering over the "my preferences" ([[MediaWiki:Mypreferences]]) link in your personal toolbox (upper right side).
+'tooltip-pt-preferences' => 'Tooltip shown when hovering over the {{msg-mw|Mypreferences}} link in your personal toolbox (upper right side).
 
 {{Identical|My preferences}}',
 'tooltip-pt-watchlist' => 'Tooltip shown when hovering over the "my watchlist" link in your personal toolbox (upper right side).',
@@ -3223,8 +3225,8 @@ Possible alternatives to the word 'content' are 'subject matter' or 'wiki subjec
 'tooltip-ca-watch' => '{{Identical|Add this page to your watchlist}}',
 'tooltip-ca-unwatch' => 'Tooltip shown when hovering over the {{msg|unwatch}} tab.',
 'tooltip-search' => 'The tooltip when hovering over the search menu.',
-'tooltip-search-go' => 'This is the text of the tooltip displayed when hovering the mouse over the “[[MediaWiki:Go|Go]]” button next to the search box.',
-'tooltip-search-fulltext' => 'This is the text of the tooltip displayed when hovering the mouse over the “[[MediaWiki:Search|Search]]” button under the search box.',
+'tooltip-search-go' => 'This is the text of the tooltip displayed when hovering the mouse over the “{{msg-mw|Go}}” button next to the search box.',
+'tooltip-search-fulltext' => 'This is the text of the tooltip displayed when hovering the mouse over the “{{msg-mw|Search}}” button under the search box.',
 'tooltip-p-logo' => 'Tool tip shown when hovering the mouse over the logo that links to [[Main Page]].
 {{Identical|Visit the main page}}',
 'tooltip-n-mainpage' => 'Tool tip shown when hovering the mouse over the link to [[{{MediaWiki:Mainpage}}]].
@@ -3252,7 +3254,7 @@ No GENDER-Support for performance reason.',
 'tooltip-ca-nstab-template' => 'Tooltip shown when hovering over the {{msg|nstab-template}} tab.',
 'tooltip-ca-nstab-help' => 'Tootip shown when hovering over the {{msg|nstab-help}} tab in the Help namespace.',
 'tooltip-ca-nstab-category' => 'Tooltip shown when hovering over the {{msg|nstab-category}} tab.',
-'tooltip-minoredit' => 'Tooltip shown when hovering over the "[[MediaWiki:Minoredit/{{SUBPAGENAME}}|{{int:minoredit}}]]" link below the edit form.',
+'tooltip-minoredit' => 'Tooltip shown when hovering over the "{{msg-mw|Minoredit}}" link below the edit form.',
 'tooltip-save' => "This is the text that appears when you hover the mouse over the 'Save page' button on the edit page",
 'tooltip-preview' => 'Tooltip shown when hovering over the "Show preview" button.
 
@@ -4290,14 +4292,14 @@ Bitrate (of a file, typically) in yottabits (1 yottabits = 1000×1000×1000×100
 'livepreview-loading' => '{{Identical|Loading}}',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'Message on Special page: Edit watchlist. This is paired with the message [[Mediawiki:Watchlistedit-noitems]] which appears instead of Watchlistedit-numitems when $1 is 0.',
-'watchlistedit-noitems' => "Message on [[Special:Watchlist/edit]], which only appears when a user's watchlist is empty.",
+'watchlistedit-numitems' => 'Message on [[Special:EditWatchlist]]. This is paired with the message {{Msg-mw|Watchlistedit-noitems}} which appears instead of Watchlistedit-numitems when $1 is 0.',
+'watchlistedit-noitems' => "Message on [[Special:EditWatchlist]], which only appears when a user's watchlist is empty.",
 'watchlistedit-normal-title' => 'Title of [[Special:Watchlist/edit|special page]].',
 'watchlistedit-normal-legend' => 'Heading of dialogue box on [[Special:Watchlist/edit]]',
 'watchlistedit-normal-explain' => 'An introduction/explanation about the [[Special:Watchlist/edit|normal edit watchlist function]].
 Hint: the text "Remove Titles" is in {{msg-mw|watchlistedit-normal-submit}}',
 'watchlistedit-normal-submit' => 'Text of submit button on [[Special:Watchlist/edit]].',
-'watchlistedit-normal-done' => 'Message on Special page: Edit watchlist after pages are removed from the watchlist.',
+'watchlistedit-normal-done' => 'Message on [[Special:EditWatchlist]] after pages are removed from the watchlist.',
 'watchlistedit-raw-title' => 'Title of [[Special:Watchlist/raw|Special page]].
 
 {{Identical|Edit raw watchlist}}',
@@ -4308,8 +4310,8 @@ Hint: the text "Remove Titles" is in {{msg-mw|watchlistedit-normal-submit}}',
 'watchlistedit-raw-titles' => 'Text above edit box containing items being watched on [[Special:Watchlist/raw]].',
 'watchlistedit-raw-submit' => 'Text of submit button on [[Special:Watchlist/raw]].',
 'watchlistedit-raw-done' => 'A message which appears after the raw watchlist has been updated using [[Special:Watchlist/raw]].',
-'watchlistedit-raw-added' => 'Message on special page: Edit raw watchlist. The message appears after at least 1 message is added to the raw watchlist.',
-'watchlistedit-raw-removed' => 'Message on special page: Edit raw watchlist. The message appears after at least 1 message is deleted from the raw watchlist.',
+'watchlistedit-raw-added' => 'Message on [[Special:EditWatchlist/raw]]. The message appears after at least 1 message is added to the raw watchlist.',
+'watchlistedit-raw-removed' => 'Message on [[Special:EditWatchlist/raw]]. The message appears after at least 1 message is deleted from the raw watchlist.',
 
 # Watchlist editing tools
 'watchlisttools-view' => '[[Special:Watchlist]]: Navigation link under the title. See also {{msg|watchlisttools-edit}} and {{msg|watchlisttools-raw}}.',
@@ -4554,7 +4556,7 @@ It appears that the word 'valid' describes 'tags', not 'change'. It also appears
 'tags-hitcount-header' => 'Caption of a column in [[Special:Tags]]. For more information on tags see [//www.mediawiki.org/wiki/Manual:Tags Mediawiki].',
 'tags-edit' => '{{Identical|Edit}}
 Used on [[Special:Tags]]. Verb. Used as display text on a link to create/edit a description.',
-'tags-hitcount' => 'Shown in the “Tagged changes” column in [[Special:Tags]]. For more information on tags see [//www.mediawiki.org/wiki/Manual:Tags Mediawiki].
+'tags-hitcount' => 'Shown in the "{{msg-mw|Tags-hitcount-header}}" column in [[Special:Tags]]. For more information on tags see [//www.mediawiki.org/wiki/Manual:Tags Mediawiki].
 
 * <code>$1</code> is the number of changes marked with the tag',
 
index 57acb48..4fef2a4 100644 (file)
@@ -37,6 +37,9 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Katiguriya_rimanakuy',
 );
 
+// Remove Spanish gender aliases (bug 37090)
+$namespaceGenderAliases = array();
+
 $specialPageAliases = array(
        'Allmessages'               => array( 'TukuyWillaykuna' ),
        'Allpages'                  => array( 'TukuyPanqakuna' ),
@@ -2233,7 +2236,7 @@ Kay p\'anqata mana musuqmanta watukamuptiykiqa, manam huk hukchasqakunamanta wil
 
 --
 E-chaski willaykuy allinkachinakunata hukchanaykipaqqa kay p\'anqatam qhaway:
-{{canonicalurl:{{#special:Preferences}}}} 
+{{canonicalurl:{{#special:Preferences}}}}
 
 Watiqana sutisuyuykipaq allinkachinakunata hukchanaykipaqqa kay p\'anqatam qhaway:
 {{canonicalurl:{{#special:EditWatchlist}}}}
index 313cde1..db2a52b 100644 (file)
@@ -33,6 +33,9 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Samiyachiy_rimanakuy',
 );
 
+// Remove Spanish gender aliases (bug 37090)
+$namespaceGenderAliases = array();
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Tinkikunana uraypi aspishpa rikuchina',
@@ -238,7 +241,7 @@ $messages = array(
 'jumpto' => 'Chayman rina',
 'jumptonavigation' => 'Wampuna',
 'jumptosearch' => 'Maskana',
-'view-pool-error' => 'Atatay, kunan ratupi pankayuk antawakuna yapa trabajuta charinmi. 
+'view-pool-error' => 'Atatay, kunan ratupi pankayuk antawakuna yapa trabajuta charinmi.
 Yapa runakuna kay pankata rikukunmi.
 Ama shinachu kapay, ashakuta shuyapay, kipalla kutin pankata rikunkapak shamupay.
 
@@ -324,7 +327,7 @@ $1',
 'databaseerror' => 'Yachayyuk ukupi pantay',
 'laggedslavemode' => "'''Rikupay''': Kay pankapi, shina kakpi, mushuk killkaykuna illankacha.",
 'missing-article' => "Hatun kamupi shuk killkayta mana tarin, shinapash chay killkayta tiyanami kan. Paypa chay shutima kan : «$1» $2.
-Icha shuk ñawpak pachamanta ''diff'' ñamana tiyanchu, icha kay tinkika shuk pichashka pankapa shutimi kan. 
+Icha shuk ñawpak pachamanta ''diff'' ñamana tiyanchu, icha kay tinkika shuk pichashka pankapa shutimi kan.
 Mana shina kakpi, shuk [[Special:ListUsers/sysop|kamachyik]]man willapay, payta URL killkata willapay.",
 'missingarticle-rev' => '(Killkay#: $1)',
 'internalerror' => 'Antawa ukupi pantay tiyarka',
@@ -417,7 +420,7 @@ Pakpak shutita [[Special:Search/{{PAGENAME}}|shuk pankakunapi maskanata]], <span
 
 Tapuripay, kaypi killkanata allimi, mana allimi kanchu.
 Uraypi apakunakunapa pichanakunapa kamuta rikuchiwanchik:",
-'moveddeleted-notice' => 'Kaypankaka pichashkami kan. 
+'moveddeleted-notice' => 'Kaypankaka pichashkami kan.
 Uraypi apakuykunpa, pichaykunapa kamuta rikuchinchik:',
 
 # Parser/template warnings
@@ -502,7 +505,7 @@ Kay (kaykunachu) kachashkakunaka cunkashkami kashka.",
 'searchrelated' => 'tinkishka',
 'searchall' => 'tukuy',
 'showingresultsheader' => "{{PLURAL:$5|Maskashka panka: '''$1''', '''$3'''-manta|Maskashka pankakuna: '''$1 - $2''', '''$3'''-manta}}, '''$4''' maskashpaka",
-'nonefound' => "'''Musyay''': kikinka mana shina rimakpika, mana tukuy shuti-suyupi maskapanki. 
+'nonefound' => "'''Musyay''': kikinka mana shina rimakpika, mana tukuy shuti-suyupi maskapanki.
 Icha ''all:'' rimaywan (icha shuk shutisuyupa rimaywan) kikinpa killkata kallarikpika taripankimi.",
 'search-nonefound' => 'Kikinka maskashka rimaykunaka mana tiyanchu.',
 'powersearch' => 'Ashtawan alli maskana',
@@ -893,7 +896,7 @@ Shuk aspipi, shukniki tinkika ima tinkita wichkashkami kanka nin, kay aspipi shu
 'external_image_whitelist' => "  #Kay aspita kay shinallami sakipay<pre>
 #Uraypi ''regex'' samikunata churapay (// chawpipilla)
 #Kay samikunaka hawa rikchakunapa URLwan taripachishkami kanka.
-#Alli taripashkakunaka rikcha shinami rikushishkami kanka, shukkunaka tinki shinallami riksichinka, 
+#Alli taripashkakunaka rikcha shinami rikushishkami kanka, shukkunaka tinki shinallami riksichinka,
 #«#» llikawan kallarik aspikunaka willaykunallami kanka
 #Uchilla, hatun llikakunatapash churanata ushapanki, kaypi shinallami kan
 
index 7fdd9c1..dde312e 100644 (file)
@@ -3041,7 +3041,8 @@ Permite adăugarea unui motiv în descrierea modificărilor',
 'spamprotectionmatch' => 'Următorul text a fost oferit de filtrul de spam: $1',
 'spambot_username' => 'Curățarea de spam a MediaWiki',
 'spam_reverting' => 'Revenire la ultima versiune care nu conține legături către $1',
-'spam_blanking' => 'Toate reviziile conținând legături către $1, au eșuat',
+'spam_blanking' => 'Toate versiunile conținând legături către $1 au fost golite',
+'spam_deleting' => 'Toate versiunile conținând legături către $1 au fost șterse',
 
 # Info page
 'pageinfo-title' => 'Informații pentru „$1”',
index 160b594..47048cc 100644 (file)
@@ -1934,6 +1934,8 @@ Pò condenè une  cchiù carattere ca non ge ponne essere ausate jndr'à le tite
 'allpages-hide-redirects' => 'Scunne le redirezionaminde',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => "Tu ste vide 'na versione jndr'à cache de sta pàgene, 'a quale pò essere aggiornate a $1 fà.",
+'cachedspecial-viewing-cached-ts' => "Tu ste vide 'na versione jndr'à cache de sta pàgene, 'a quale pò essere ca non g'è attuale.",
 'cachedspecial-refresh-now' => "Vide l'urteme.",
 
 # Special:Categories
index fb573a8..909cfe9 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author AVRS
+ * @author Agilight
  * @author Ahonc
  * @author Aleksandrit
  * @author Alessandro
@@ -15,6 +16,7 @@
  * @author Alexander Sigachov (alexander.sigachov@gmail.com)
  * @author Alexandr Efremov
  * @author Amikeco
+ * @author Amire80
  * @author Askarmuk
  * @author Assele
  * @author Bouron
@@ -1457,6 +1459,7 @@ $1",
 'prefs-beta' => 'Бета-возможности',
 'prefs-datetime' => 'Дата и время',
 'prefs-labs' => 'Экспериментальные возможности',
+'prefs-user-pages' => 'Страницы участника',
 'prefs-personal' => 'Личные данные',
 'prefs-rc' => 'Свежие правки',
 'prefs-watchlist' => 'Список наблюдения',
@@ -2254,6 +2257,7 @@ $1',
 Вы можете отфильтровать результаты по типу журнала, имени участника (учитывается регистр) или затронутой странице (также учитывается регистр).',
 'logempty' => 'Подходящие записи в журнале отсутствуют.',
 'log-title-wildcard' => 'Найти заголовки, начинающиеся с данных символов',
+'showhideselectedlogentries' => 'Показать/скрыть выбранные записи журнала',
 
 # Special:AllPages
 'allpages' => 'Все страницы',
@@ -3162,6 +3166,7 @@ The wiki server can't provide data in a format your client can read.",
 'spambot_username' => 'Чистка спама',
 'spam_reverting' => 'Откат к последней версии, не содержащей ссылки на $1',
 'spam_blanking' => 'Все версии содержат ссылки на $1, очистка',
+'spam_deleting' => 'Все версии содержали ссылки на $1, производится удаление',
 
 # Info page
 'pageinfo-title' => 'Сведения по «$1»',
index 21e3b28..64e8807 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Engelseziekte
  * @author Gazeb
  * @author Gleb Borisov
  * @author Kaganer
@@ -622,7 +623,7 @@ $2
 'showpreview' => 'Указати нагляд',
 'showlivepreview' => 'Швыдкый нагляд',
 'showdiff' => 'Указати зміны',
-'anoneditwarning' => "'''Увага''': Не сте приголошены. Ваша IP-адреса буде записана до історії змін той сторінкы.",
+'anoneditwarning' => "'''Увага''': Ð\9dе Ñ\81Ñ\8cÑ\82е Ð¿Ñ\80иголоÑ\88енÑ\8b. Ð\92аÑ\88а IP-адÑ\80еÑ\81а Ð±Ñ\83де Ð·Ð°Ð¿Ð¸Ñ\81ана Ð´Ð¾ Ñ\96Ñ\81Ñ\82оÑ\80Ñ\96Ñ\97 Ð·Ð¼Ñ\96н Ñ\82ой Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\8b.",
 'anonpreviewwarning' => "''Не сьте приголошеный(а). Уложінём буде ваша IP адреса записана в історії  той сторінкы.''",
 'missingsummary' => "'''Припомянутя:''' Не задали сьте згорнутя едітації. Кідь іщі раз кликтете на Уложыти зміны, буде вапа едітація записана без згорнутя.",
 'missingcommenttext' => 'Задайте коментарь',
@@ -719,6 +720,7 @@ $2
 Тото ся може даколи стати, кідь хоснуєте хыбный вебовый анонімізер.'''",
 'edit_form_incomplete' => "'''Часть едітачного формуларя іщі не пришла не сервер; перевірьте комплетность вашых змін і спробуйте іщі раз.'''",
 'editing' => 'Едітованя $1',
+'creating' => 'Створїня $1',
 'editingsection' => 'Едітованя $1 (роздїл)',
 'editingcomment' => 'Едітованя $1 (нова секція)',
 'editconflict' => 'Конфлікт едітованя: $1',
@@ -968,7 +970,7 @@ $1",
 'mergelogpagetext' => 'Ниже є список найновшых злучінь історії єдной сторінкы з другов.',
 
 # Diffs
-'history-title' => 'Історія змін сторінкы «$1»',
+'history-title' => '$1: Історія змін',
 'difference-multipage' => '(Роздїлы міджі сторінками)',
 'lineno' => 'Рядок $1:',
 'compareselectedversions' => 'Порівнати выбраны верзії',
@@ -1014,7 +1016,7 @@ $1",
 'search-result-score' => 'Одповідность: $1 %',
 'search-redirect' => '(напрямити $1)',
 'search-section' => '(секція $1)',
-'search-suggest' => 'Може сте мали на мыслї: $1',
+'search-suggest' => 'Ð\9cоже Ñ\81Ñ\8cÑ\82е Ð¼Ð°Ð»Ð¸ Ð½Ð° Ð¼Ñ\8bÑ\81лÑ\97: $1',
 'search-interwiki-caption' => 'Сестерьскы проєкты',
 'search-interwiki-default' => '$1 резултаты:',
 'search-interwiki-more' => '(веце)',
@@ -1288,7 +1290,7 @@ $1",
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'прочітати тоту сторінку',
 'action-edit' => 'едітованя той сторінкы',
-'action-createpage' => 'Ñ\81Ñ\82воÑ\80Ñ\96ня сторінок',
+'action-createpage' => 'Ñ\81Ñ\82воÑ\80Ñ\97ня сторінок',
 'action-createtalk' => 'Вытворїня сторінок діскузії',
 'action-createaccount' => 'Вытворїня того конта хоснователя',
 'action-minoredit' => 'означіти тото едітованя як мале',
@@ -1303,7 +1305,7 @@ $1",
 'action-writeapi' => 'хосновати API про писаня',
 'action-delete' => 'Вымазати тоту сторінку',
 'action-deleterevision' => 'вымазати тоту ревізію сторінкы',
-'action-deletedhistory' => 'зобразити  історію змазаных ревізій той сторінкы',
+'action-deletedhistory' => 'зобразити історію змазаных ревізій той сторінкы',
 'action-browsearchive' => 'глядати змазаны сторінкы',
 'action-undelete' => 'обновити тоту сторінку',
 'action-suppressrevision' => 'сконтролёвати і обновити тоту сховану ревізію',
@@ -1362,7 +1364,7 @@ $1",
 'recentchangeslinked-feed' => 'Повязаны зміны',
 'recentchangeslinked-toolbox' => 'Повязаны зміны',
 'recentchangeslinked-title' => 'Зміны звязаны з «$1»',
-'recentchangeslinked-noresult' => 'Ð\92 Ð·Ð°Ð·Ð°Ð·Ð½Ð°Ñ\87енÑ\96м Ñ\87аÑ\81Ñ\97 Ð½Ðµ Ð±Ñ\8bли Ð¶Ð°Ð´Ð½Ñ\8b Ð·Ð¼Ñ\96нÑ\8b Ð½Ð° Ð¾Ð´ÐºÐ°Ð·Ð¾Ð²Ð°Ð½Ñ\8bÑ\85 Ñ\81Ñ\82оÑ\80Ñ\96нкаÑ\85.',
+'recentchangeslinked-noresult' => 'В зазначенім часї не были жадны зміны на одказованых сторінках.',
 'recentchangeslinked-summary' => "Тото є список недавных змін на сторінках на котры одказує задана сторінка (або котры належать до той катеґорії).
 Сторінкы з [[Special:Watchlist|вашого списку слїдованых]] суть вызначены '''тучно'''.",
 'recentchangeslinked-page' => 'Назва сторінкы:',
@@ -1463,9 +1465,9 @@ $1",
 'uploadvirus' => 'Файл обсягує вірус! Детайлы: $1',
 'uploadjava' => 'Тот файл є ZIP архів, котрый обсягує .class-файл Java.
 Начітаня Java-файлів не є доволене, бо они можуть запричінити обход забезпечіня сістемы.',
-'upload-source' => 'Ð\97дÑ\80ойовый файл',
-'sourcefilename' => 'Ð\9dазва Ð·Ð´Ñ\80ойового файлу:',
-'sourceurl' => 'Ð\97дÑ\80ойова URL-адреса:',
+'upload-source' => 'Ð\96Ñ\80Ñ\96дловый файл',
+'sourcefilename' => 'Ð\9dазва Ð¶Ñ\80Ñ\96длового файлу:',
+'sourceurl' => 'Ð\96Ñ\80Ñ\96длова URL-адреса:',
 'destfilename' => 'Назва цілёвого файлу:',
 'upload-maxfilesize' => 'Максімалный розмір файлу: $1',
 'upload-description' => 'Попис файлу',
index 7227677..cfc70f2 100644 (file)
@@ -423,6 +423,10 @@ $2',
 'ns-specialprotected' => '{{ns:special}} ааттаах сирэйдэр уларытыллыбаттар.',
 'titleprotected' => "Бу бас тыл оҥоһулларын [[User:$1|$1]] боппут.
 Төрүөтэ - ''$2''",
+'filereadonlyerror' => "«$1» билэни уларытар сатаммата, тоҕо диэтэххэ «$2» «ааҕарга эрэ» диэн эрэсиимҥэ турар эбит.
+
+Бу эрэсиими туруорбут дьаһабыл маннык быһаарыыны хаалларбыт: «''$3''».",
+'invalidtitle-knownnamespace' => '«$2» аат далыгар маннык тиэкистээх «$3» сатаммат аат',
 
 # Virus scanner
 'virus-badscanner' => "Сатаммата. Вирус сканера биллибэтэ: ''$1''",
@@ -957,8 +961,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'Кистээһин сурунаала',
-'suppressionlogtext' => 'Аллара даһабылларга көстүбэти таарыйар сотуулар уонна хааччахтааһыннар тиһиктэрэ бэриллэр.
-Билигин баар хааччахтары көрөргө [[Special:BlockList|хааччахтааһынын тиһигэр]] киир.',
+'suppressionlogtext' => 'Аллара дьаһабылларга көстүбэти таарыйар сотуулар уонна хааччахтааһыннар тиһиктэрэ бэриллэр.
+Билигин баар хааччахтары көрөргө [[Special:BlockList|хааччахтааһын тиһигэр]] киир.',
 
 # History merging
 'mergehistory' => 'Силбэһии сирэйин хронологията',
@@ -990,7 +994,7 @@ $1",
 'mergelogpagetext' => 'Манна сирэйдэр устуоруйаларын бүтэһик силлэһиилэрин тиһигэ бэриллэр.',
 
 # Diffs
-'history-title' => 'Көннөрүү историята "$1"',
+'history-title' => 'Көннөрүү сурунаала "$1"',
 'difference-multipage' => '(Сирэйдэр ыккардыларынааҕы уратылар)',
 'lineno' => '$1 строка:',
 'compareselectedversions' => 'Талыллыбыт торумнары тэҥнээ',
@@ -1883,7 +1887,7 @@ $1',
 'allpages-bad-ns' => '{{SITENAME}} не содержит пространства имён «$1».',
 
 # SpecialCachedPage
-'cachedspecial-refresh-now' => 'Бутэhиги кор.',
+'cachedspecial-refresh-now' => 'Бүтэһик барылы көр.',
 
 # Special:Categories
 'categories' => 'Категориялар',
@@ -1957,7 +1961,7 @@ $1',
 "Кимтэн" графааҕа эн [[Special:Preferences|туруорууларгар]] баар аадырыһыҥ киириэҕэ,
 онон туппут киһи хардарар кыахтаныа.',
 'usermailererror' => 'Сурук кыайан барбата:',
-'defemailsubject' => '{{SITENAME}} —  бу киһиттэн $1 сурук кэлбит',
+'defemailsubject' => '{{SITENAME}} — $1 диэн киһиттэн сурук кэлбит',
 'usermaildisabled' => 'Кыттааччы эл почтата арахса сылдьар',
 'usermaildisabledtext' => 'Эн атын кыттааччыларга эл. почтанан сурук ыытар кыаҕыҥ суох эбит',
 'noemailtitle' => 'E-mail суох',
index 827374c..6289a79 100644 (file)
@@ -12,6 +12,7 @@
  * @author Ghonokuashabaskey
  * @author Joseph Mardy
  * @author Nipon087
+ * @author Reedy
  * @author Salvator
  * @author Samar88
  * @author Srabony90
@@ -334,7 +335,7 @@ Noa do noṅkanaḱ menkana je {{SITENAME}} sayeṭre beoharen sofṭower re mit
 'dberrortext' => 'Database query syntexre vul hoeakana.
 Sofṭoyerre jahan bag karonte noa do hoe daṛeyaḱa.
 Joto khon mucạt́ database query do tahẽkana noṅka:
-<blockquote><tt>$1<//tt><blockquote>
+<blockquote><tt>$1</tt><blockquote>
 "<tt>$2</tt>" bhitrire tahẽna.
 Database okaṭaḱ vule em akada:"<tt>$3: $4</tt>".',
 'dberrortextcl' => 'Ḍaṭabes query sintxexṭre vul hoeakana.
index 660a017..7a8cfb4 100644 (file)
@@ -38,9 +38,10 @@ $namespaceNames = array(
 );
 
 $specialPageAliases = array(
-       'Allmessages'               => array( 'Buot_vuogádatdieđahusat' ),
+       'Activeusers'               => array( 'Aktiivvalaš_geavaheaddjit' ),
+       'Allmessages'               => array( 'Buot_systemasánit' ),
        'Allpages'                  => array( 'Buot_siiddut' ),
-       'Ancientpages'              => array( 'Boarrásamos_siiddut' ),
+       'Ancientpages'              => array( 'Dološ_siiddut' ),
        'Block'                     => array( 'Cagge_geavaheaddji' ),
        'Booksources'               => array( 'Girjegáldut' ),
        'Categories'                => array( 'Kategoriijat' ),
@@ -49,22 +50,22 @@ $specialPageAliases = array(
        'DoubleRedirects'           => array( 'Guoktegeardásaš_ođđasitstivremat' ),
        'Export'                    => array( 'Olggosfievrrit_siidduid' ),
        'Listfiles'                 => array( 'Fiilalogahallan' ),
-       'Listredirects'             => array( 'Listu_ođđasitstivrejumiiguin' ),
+       'Listredirects'             => array( 'Listu_ođđasitstivremiin' ),
        'Listusers'                 => array( 'Listu_geavaheddjiin' ),
-       'Log'                       => array( 'Loggat' ),
+       'Log'                       => array( 'Loggat', 'Logga' ),
        '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' ),
+       'Protectedpages'            => array( 'Suodjaluvvon_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' ),
+       'Specialpages'              => array( 'Erenoamáš_siiddut' ),
        'Statistics'                => array( 'Statistihkat' ),
        'Uncategorizedcategories'   => array( 'Klassifiserekeahtes_kategoriijat' ),
        'Uncategorizedimages'       => array( 'Klassifiserekeahtes_govat' ),
@@ -182,7 +183,7 @@ $messages = array(
 'category_header' => 'Siiddut, mat gullet luohkkái $1',
 'subcategories' => 'Vuolleluohkát',
 'category-media-header' => 'Fiillat luohkás ”$1”',
-'category-empty' => "''Dán luohkás eai leat siiddut eaige fiillat.''",
+'category-empty' => "''Dán kategoriijas eai leat siiddut eaige fiillat.''",
 'listingcontinuesabbrev' => 'joatk.',
 
 'about' => 'Dieđut',
@@ -224,7 +225,7 @@ $messages = array(
 'searchbutton' => 'Oza',
 'go' => 'Mana',
 'searcharticle' => 'Mana',
-'history' => 'Historjá',
+'history' => 'Siiddu historjá',
 'history_short' => 'Historjá',
 'updatedmarker' => 'beaiváduvvon du ovddit fitnama maŋŋá',
 'printableversion' => 'Prentenveršuvdna',
@@ -332,8 +333,8 @@ $messages = array(
 'filedeleteerror' => 'Fiilla <b>$1</b> sihkkun ii lihkosmuvvan.',
 'directorycreateerror' => 'Logahallama ”$1” ráhkadeapmi ii lihkosmuvvan.',
 'filenotfound' => 'Fiila <b>$1</b> ii dihtton.',
-'fileexistserror' => 'Fiilii ”$1” čállin ii lihkosmuvvan: fiila lea anus',
-'formerror' => 'Skovi dieđut eai dohkke',
+'fileexistserror' => 'Fiilii ”$1” čállin ii lihkosmuvvan: fiila lea anus.',
+'formerror' => 'Skovi dieđut eai dohkke.',
 'badarticleerror' => 'Doaimma ii leat vejolaš dahkat dán siiddus.',
 'cannotdelete' => 'Siiddu dahje fiilla sihkkon ii lihkosmuvvan. Muhtun eará lea sáhttán sihkkut dan.',
 'badtitle' => 'Fuones bajilčála',
@@ -367,7 +368,7 @@ Du geavaheaddjidovddaldat lea dál anus.
 'notloggedin' => 'It leat čálligoahttan sisa',
 'nologin' => "Jus dus ii vel leat geavaheaddjidovddaldat, sáhtát '''$1''' dakkára.",
 'nologinlink' => 'ráhkadit',
-'createaccount' => 'Ráhkat ođđa geavaheaddjidovddaldaga',
+'createaccount' => 'Ráhkat dovddaldaga',
 'gotaccount' => "Jus dus lea jo geavaheaddjidovddaldat, sáhtát '''$1'''.",
 'gotaccountlink' => 'Logge sisa',
 'createaccountmail' => 'e-poasttain',
@@ -504,6 +505,7 @@ Don fertet dahkat du rievdadusaid dálá tekstii.
 'last' => 'ovddit',
 'page_first' => 'vuosttas siidu',
 'page_last' => 'maŋimus siidu',
+'history-fieldset-title' => 'Bláđe historjjá',
 'histfirst' => 'Vuosttas',
 'histlast' => 'Maŋimus',
 'historysize' => '($1 stávvala)',
@@ -540,15 +542,21 @@ Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
 'revdelete-submit' => 'Daga',
 'pagehist' => 'Siiddu rievdanhistorjá',
 'deletedhist' => 'Šluhtejuvvon veršuvnnaid historjá',
+'revdelete-reason-dropdown' => '*Sivat
+** Ii-almmolaš persovnnalaš dieđut
+** Vejolaš gudnenrihkkun
+** Vuovnnalaš geavaheaddjidovddaldat
+** Vuovnnalaš sisdoallu',
 
 # Diffs
+'history-title' => 'Siiddu «$1» historjá',
 'lineno' => 'Gurgadas $1:',
 'compareselectedversions' => 'Veardde válljejuvvon veršuvnnaid',
 'editundo' => 'šluhtte',
 'diff-multi' => '(Veršuvnnaid gaskas {{PLURAL:$1|okta rievdadus|$1 eará rievdadusa}}.)',
 
 # Search results
-'searchresults' => 'Ohcama bohtosat',
+'searchresults' => 'Ohcanbohtosat',
 'searchresults-title' => 'Ohcanbohtosat: "$1"',
 'searchsubtitle' => 'Ohcan tearpmain [[:$1]]',
 'searchsubtitleinvalid' => 'Ohcan tearpmain $1',
@@ -566,6 +574,11 @@ $1 {{int:pipe-separator}} $2',
 'showingresults' => "{{PLURAL:$1|'''Okta''' boađus|'''$1''' bohtosa}} bohtosa'''$2''' rájes.",
 'showingresultsnum' => "Vuolábealde {{PLURAL:$3|lea '''okta''' ohcanboađus|leat '''$3''' ohcanbohtosa}} '''$2.''' bohtosa rájes.",
 'powersearch' => 'Oza',
+'powersearch-ns' => 'Oza nammagomuvuođain:',
+'powersearch-redir' => 'Listu ođđasitstivremiin',
+'powersearch-togglelabel' => 'Rievdat válljema:',
+'powersearch-toggleall' => 'Buot',
+'powersearch-togglenone' => 'Ii mihkkege',
 
 # Quickbar
 'qbsettings-none' => 'Ii maidige',
@@ -634,19 +647,19 @@ $1 {{int:pipe-separator}} $2',
 'userrights-reason' => 'Sivva',
 
 # Groups
-'group' => 'Joavku',
+'group' => 'Joavku:',
 'group-user' => 'geavaheaddjit',
-'group-bot' => 'Robohtat',
-'group-sysop' => 'bájasdoallit',
-'group-bureaucrat' => 'byrokráhtat',
+'group-bot' => 'Bohtat',
+'group-sysop' => 'Administráhtorat',
+'group-bureaucrat' => 'Byrokráhtat',
 'group-all' => '(buot)',
 
-'group-bot-member' => 'robohtta',
-'group-sysop-member' => 'bájasdoalli',
-'group-bureaucrat-member' => 'byrokráhta',
+'group-bot-member' => 'bohtta',
+'group-sysop-member' => 'administráhtorat',
+'group-bureaucrat-member' => 'byrokráhtta',
 
 'grouppage-bot' => '{{ns:project}}:Bohtat',
-'grouppage-sysop' => '{{ns:project}}:Bájasdoallit',
+'grouppage-sysop' => '{{ns:project}}:Administráhtorat',
 'grouppage-bureaucrat' => '{{ns:project}}:Byrokráhtat',
 
 # User rights log
@@ -658,7 +671,7 @@ $1 {{int:pipe-separator}} $2',
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|rievdadus|rievdadusa}}',
 'recentchanges' => 'Varas rievdadusat',
-'recentchanges-summary' => 'Dán siiddus sáhtat čuovvut varas rievdadusaid {{GRAMMAR:illative|{{SITENAME}}}}.',
+'recentchanges-summary' => 'Dán siiddus sáhtát čuovvut varas rievdadusaid {{SITENAME}}s.',
 'recentchanges-feed-description' => 'Dán siiddus sáhtat čuovvut varas {{GRAMMAR:illative|{{SITENAME}}}} rievdadusaid.',
 'rcnote' => 'Vuollin {{PLURAL:$1|lea okta rievdadus|leat $1 varas rievdadusa}} {{PLURAL:$2|ovtta beaivvi|$2 maŋimus jándora}} áigge gitta $3 rádjái.',
 'rcnotefrom' => "Vuolábealde leat rievdadusat '''$2''' rájes. Eanemusta '''$1''' mearkkastaga čájehuvvo.",
@@ -671,7 +684,7 @@ $1 {{int:pipe-separator}} $2',
 'rcshowhidemine' => '$1 iežas rievdádusat',
 'rclinks' => 'Čájet $1 varas rievdadusa maŋimus $2 beaivve siste.<br />$3',
 'diff' => 'erohus',
-'hist' => 'historjá',
+'hist' => 'hist',
 'hide' => 'čiega',
 'show' => 'čájet',
 'minoreditletter' => 'u',
@@ -695,9 +708,9 @@ $1 {{int:pipe-separator}} $2',
 'uploaderror' => 'Vurkenfeaila',
 'uploadlog' => 'Fiilalogga',
 'uploadlogpage' => 'Fiilalogga',
-'filename' => 'Fiilla namma:',
+'filename' => 'Fiilla namma',
 'filedesc' => 'Čoahkkáigeassu',
-'fileuploadsummary' => 'Čoahkkáigeassu',
+'fileuploadsummary' => 'Čoahkkáigeassu:',
 'filesource' => 'Gáldu:',
 'uploadedfiles' => 'Lasihuvvon fiillat',
 'ignorewarning' => 'Vurke fuolatkeahttá varuhusas',
@@ -809,6 +822,15 @@ $1 {{int:pipe-separator}} $2',
 # Statistics
 'statistics' => 'Statistihkat',
 'statistics-header-users' => 'Geavaheaddjistatistihkat',
+'statistics-articles' => 'Sisdoallosiiddut',
+'statistics-pages' => 'Siiddut',
+'statistics-pages-desc' => 'Buot siiddut dán wikis (ságastallansiiddut, prošeaktasiiddut, ođđasitstivremat, jed.)',
+'statistics-files' => 'Fiillat',
+'statistics-edits' => 'Rievdadusat maŋŋel dan go {{SITENAME}} vuođđuduvvui',
+'statistics-edits-average' => 'Gaskamearálaš rievdadusaid mearri/siidu',
+'statistics-users' => 'Registrerejuvvon [[Special:ListUsers|geavaheaddjit]]',
+'statistics-users-active' => 'Aktiivvalaš geavaheaddjit',
+'statistics-users-active-desc' => 'Geavaheaddjit, geat leat bargan juoidá maŋimus {{PLURAL:$1|beaivvi|$1 beaivvi}} áigge.',
 'statistics-mostpopular' => 'Eanemusta gehčojuvvon siiddut',
 
 'disambiguations' => 'Liŋkkat dárkonsiidduide',
@@ -858,6 +880,7 @@ $1 {{int:pipe-separator}} $2',
 'protectedpages-indef' => 'Beare siiddut, maid suodjaleapmi lea bissovaš',
 'protectedpages-cascade' => 'Beare siiddut, maid suodjaleapmi lea viiddiduvvon',
 'protectedpagestext' => 'Čuovvovaš siiddut leat suodjáluvvon sirdimiin ja rievdadusain',
+'protectedtitles' => 'Suodjaluvvon siidonamat',
 'listusers' => 'Geavaheaddjilistu',
 'newpages' => 'Ođđa siiddut',
 'newpages-username' => 'Geavaheaddjidovddaldat:',
@@ -915,6 +938,9 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'activeusers-hidebots' => 'Čiega bohtaid',
 'activeusers-hidesysops' => 'Čiega administráhtoriid',
 
+# Special:ListGroupRights
+'listgrouprights-members' => '(listu miellahtuin)',
+
 # E-mail user
 'mailnologin' => 'Sáddejeaddji čujuhus váilo',
 'mailnologintext' => 'Don fertet leat [[Special:UserLogin|čálligoahtán sisa]] ja du [[Special:Preferences|ásahusain]] ferte leat gelbbolaš ja <strong>sihkarastojuvvon</strong> e-poastačujuhus, ovdalgo sáhtat sáddet e-poasta eará geavaheddjiide.',
@@ -991,6 +1017,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'deletionlog' => 'sihkkunlogga',
 'reverted' => 'Máhcahuvvon ovddit veršuvdnii',
 'deletecomment' => 'Sivva',
+'deleteotherreason' => 'Eará sivva:',
 
 # Rollback
 'rollback' => 'máhcat ovddit veršuvdnii',
@@ -1015,14 +1042,18 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'protectexpiry' => 'Boarásnuvvá',
 'protect_expiry_invalid' => 'Boarášnuvvánáigi ii dohket.',
 'protect_expiry_old' => 'Boarásnuvvánáigi lea vássán.',
-'protect-default' => '(eai rádjehusat)',
+'protect-default' => 'Suova buot geavaheddjiid',
 'protect-level-autoconfirmed' => 'Cakkastala ođđa ja anonyma geavaheddjiid',
-'protect-level-sysop' => 'Dušše bájasdoallit',
+'protect-level-sysop' => 'Suova beare administráhtoriid',
 'protect-summary-cascade' => 'viiddiduvvon',
 'protect-expiring' => 'boarásnuvvá $1',
 'protect-cascade' => 'Viididt suodjálusa guoskat buot siidduit, mat gullet dán siidui',
 'protect-othertime' => 'Eará áigi:',
 'protect-othertime-op' => 'eará áigi',
+'protect-dropdown' => '** Dávjjes vandalisma
+** Dávjjes spammen
+** Rievdadansoahti
+** Dehálaš siidu',
 'protect-expiry-options' => '2 diimma:2 hours,1 beaivi:1 day,3 beaivve:3 days,1 vahkku:1 week,2 vahkku:2 weeks,1 mánotbádji:1 month,3 mánotbaji:3 months,6 mánotbaji:6 months,1 jahki:1 year,bissovaš:infinite',
 'restriction-type' => 'Rádjehus',
 'restriction-level' => 'Suodjálus',
@@ -1125,6 +1156,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'infiniteblock' => 'bissovaččat',
 'expiringblock' => 'boarásnuvvá $1 $2',
 'contribslink' => 'rievdadusat',
+'blocklogentry' => 'esttii geavaheaddji dahje IP-čujuhusa [[$1]], eastima bistin lea $2 $3',
 'proxyblocksuccess' => 'Gárvvis.',
 
 # Developer tools
@@ -1186,7 +1218,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'tooltip-pt-mycontris' => 'Listu iežas rievdadusain',
 'tooltip-pt-login' => 'Čálligoađe sisa dahje ráhkat geavaheaddjidovddaldaga',
 'tooltip-pt-anonlogin' => 'Čálligoađe sisa dahje ráhkat geavaheaddjidovddaldaga',
-'tooltip-pt-logout' => 'Čálligoađe olggos',
+'tooltip-pt-logout' => 'Logge olggos',
 'tooltip-ca-talk' => 'Ságastala sisdoalus',
 'tooltip-ca-edit' => 'Rievdat dán siiddu',
 'tooltip-ca-addsection' => 'Lasit kommeantta dán siidui',
@@ -1198,7 +1230,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'tooltip-ca-move' => 'Sirdde dán siiddu',
 'tooltip-ca-watch' => 'Lasit dán siiddu iežat čuovvunlistui',
 'tooltip-ca-unwatch' => 'Sirdde dán siiddu eret du čuovvunlisttus',
-'tooltip-search' => 'Oza {{GRAMMAR:elative|{{SITENAME}}}}',
+'tooltip-search' => 'Oza {{SITENAME}}s',
 'tooltip-p-logo' => 'Váldosiidu',
 'tooltip-n-mainpage' => 'Mana váldosiidui',
 'tooltip-n-portal' => 'Ságastallan prošeavttas',
index 0d9cf50..0d61ed7 100644 (file)
@@ -2956,6 +2956,7 @@ Omogoča vnos pojasnila v povzetku urejanja.',
 'spambot_username' => 'Čiščenje navlake MediaWiki',
 'spam_reverting' => 'Vračanje na zadnjo redakcijo brez povezav na $1',
 'spam_blanking' => 'Vse redakcije so vsebovale povezave na $1, izpraznjujem',
+'spam_deleting' => 'Vse redakcije so vsebovale povezave na $1, brišem',
 
 # Info page
 'pageinfo-title' => 'Informacije o »$1«',
index 19c3b0a..b705e0f 100644 (file)
 
 $fallback = 'pl';
 
+$namespaceNames = array(
+       NS_SPECIAL        => 'Szpecyjalna',
+       NS_TALK           => 'Dyskusyjo',
+       NS_USER           => 'Używacz',
+       NS_USER_TALK      => 'Dyskusyjo_używacza',
+       NS_PROJECT_TALK   => 'Dyskusyjo_$1',
+       NS_FILE           => 'Plik',
+       NS_FILE_TALK      => 'Dyskusyjo_plika',
+       NS_MEDIAWIKI      => 'MediaWiki',
+       NS_MEDIAWIKI_TALK => 'Dyskusyjo_MediaWiki',
+       NS_TEMPLATE       => 'Muster',
+       NS_TEMPLATE_TALK  => 'Dyskusyjo_mustra',
+       NS_HELP           => 'Půmoc',
+       NS_HELP_TALK      => 'Dyskusyjo_půmocy',
+       NS_CATEGORY       => 'Kategoryjo',
+       NS_CATEGORY_TALK  => 'Dyskusyjo_kategoryji',
+);
+
+$namespaceAliases = array(
+       // Aliases for Polish namespaces (bug 34988).
+       'Specjalna'            => NS_SPECIAL,
+       'Dyskusja'             => NS_TALK,
+       'Użytkownik'           => NS_USER,
+       'Dyskusja_użytkownika' => NS_USER_TALK,
+       'Dyskusja_$1'          => NS_PROJECT_TALK,
+       'Dyskusja_pliku'       => NS_FILE_TALK,
+       'Dyskusja_MediaWiki'   => NS_MEDIAWIKI_TALK,
+       'Szablon'              => NS_TEMPLATE,
+       'Dyskusja_szablonu'    => NS_TEMPLATE_TALK,
+       'Pomoc'                => NS_HELP,
+       'Dyskusja_pomocy'      => NS_HELP_TALK,
+       'Kategoria'            => NS_CATEGORY,
+       'Dyskusja_kategorii'   => NS_CATEGORY_TALK,
+);
+
+// Remove Polish gender aliases
+$namespaceGenderAliases = array();
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Podsztrychńyńcy linkůw:',
@@ -648,7 +686,7 @@ abo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}
 'userinvalidcssjstitle' => "'''Pozůr:''' Ńy mo skůrki uo mjańe \"\$1\". Pamjyntej, aže zajty užytkowńika zawjyrajůnce CSS i JavaScript powinny začynać śe mouům buchštabům, np. {{ns:user}}:Foo/vector.css.",
 'updated' => '(Pomjyńano)',
 'note' => "'''Pozůr:'''",
-'previewnote' => "'''To je ino podglůnd - artikel ješče ńy je naškryflany!'''",
+'previewnote' => "'''To je ino podglůnd - artikel jeszcze ńy je spamjyntany!'''",
 'previewconflict' => 'Wersyjo podglůndano uodnośi śe do tekstu s pola edycyje na wjyrchu. Tak bydźe wyglůndać zajta jeli zdecyduješ śe jům naškryflać.',
 'session_fail_preview' => "'''Přeprašomy! Serwer ńy može přetwořyć tygo sprowjyńo skuli utraty danych ze sesyji. Sprůbuj ješče roz. Kejby to ńy pomoguo - wylůguj śe i zalogůj uod nowa.'''",
 'session_fail_preview_html' => "'''Přeprašomy! Serwer ńy može přetwořyć tygo sprowjyńo skuli utraty danych ze sesyji.'''
@@ -924,7 +962,7 @@ $1',
 'search-nonefound' => 'Ńy mo wynikůw, kere uodpadajům kryterjům zapytańo.',
 'powersearch' => 'Sznupańy zaawansowane',
 'powersearch-legend' => 'Šnupańy zaawansowane',
-'powersearch-ns' => 'Šnupej we přestřyńach mjan:',
+'powersearch-ns' => 'Sznupej we przestrzyńach mjan:',
 'powersearch-redir' => 'Pokož překerowańa',
 'powersearch-field' => 'Šnupej',
 'powersearch-togglelabel' => 'Zaznocz:',
index e8d3d01..5c6f837 100644 (file)
@@ -1633,7 +1633,7 @@ $1',
 'file-anchor-link' => 'கோப்பு',
 'filehist' => 'கோப்பு வரலாறு',
 'filehist-help' => 'குறித்த நேரத்தில் இருந்த படிமத்தைப் பார்க்க அந்நேரத்தின் மீது சொடுக்கவும்.',
-'filehist-deleteall' => 'சகலதையும் நீக்கு',
+'filehist-deleteall' => 'à®\9aà®\95லதà¯\8dதà¯\88யà¯\81à®®à¯\8d à®¨à¯\80à®\95à¯\8dà®\95à¯\81',
 'filehist-deleteone' => 'நீக்குக',
 'filehist-revert' => 'முன்நிலையாக்கு',
 'filehist-current' => 'தற்போதைய',
index 85e840b..8435208 100644 (file)
@@ -159,7 +159,7 @@ $messages = array(
 'tog-enotifwatchlistpages' => 'Padalhan ako ng e-liham kapag nabago ang isa sa mga pahinang binabantayan ko',
 'tog-enotifusertalkpages' => 'Padalhan ako ng e-liham kapag binago ang aking pahina ng usapan',
 'tog-enotifminoredits' => 'Padalhan din ako ng e-liham para sa mga maliliit na pagbabago ng mga pahina',
-'tog-enotifrevealaddr' => 'Ipakita ang adres ng e-liham ko sa loob ng mga e-liham ng pagpapahayag',
+'tog-enotifrevealaddr' => 'Ipakita ang aking direksiyong e-liham sa loob ng mga e-liham ng pagpapahayag',
 'tog-shownumberswatching' => 'Ipakita ang bilang ng mga nagbabantay na tagagamit',
 'tog-oldsig' => 'Umiiral na lagda:',
 'tog-fancysig' => 'Ituring ang lagda bilang teksto ng wiki (walang automatikong pagkawing)',
@@ -390,9 +390,9 @@ $1',
 'badaccess-group0' => 'Hindi ka pinahintulutang isagawa ang hiniling mong kilos.',
 'badaccess-groups' => 'Ang kilos na hiniling mo ay nakatakda lamang para sa mga tagagamit sa {{PLURAL:$2|pangkat na|isa sa mga pangkat na}}: $1.',
 
-'versionrequired' => 'Kinakailangan ang bersyong $1 ng MediaWiki',
+'versionrequired' => 'Kinakailangan ang bersiyong $1 ng MediaWiki',
 'versionrequiredtext' => 'Kinakailangan ang bersyong $1 ng MediaWiki upang magamit ang pahinang ito.
-Tingnan ang [[Special:Version|pahina ng bersyon]].',
+Tingnan ang [[Special:Version|pahina ng bersiyon]].',
 
 'ok' => 'Sige',
 'retrievedfrom' => 'Ikinuha mula sa "$1"',
@@ -413,7 +413,7 @@ Tingnan ang [[Special:Version|pahina ng bersyon]].',
 'collapsible-expand' => 'Ibuka',
 'thisisdeleted' => 'Tingnan o ibalik ang $1?',
 'viewdeleted' => 'Tingnan ang $1?',
-'restorelink' => '{{PLURAL:$1|isang binurang pagbabagp|$1 binurang pagbabago}}',
+'restorelink' => '{{PLURAL:$1|isang binurang pagbabago|$1 binurang pagbabago}}',
 'feedlinks' => 'Subo/Karga:',
 'feed-invalid' => 'Hindi tanggap na uri ng serbisyo ng pagpaparating.',
 'feed-unavailable' => 'Walang serbisyo mula sa sindikasyong pangpaglalathala',
@@ -495,8 +495,8 @@ Maaaring ibinura na ito ng iba.',
 'badtitle' => 'Hindi kanais-nais na pamagat',
 'badtitletext' => 'Ang hiniling na pamagat ng pahina ay hindi katanggap-tanggap, wala, o isang may-maling kawing na pamagat na pangugnayang-wika (interwika) o pangugnayang wiki (interwiki).
 Maaaring naglalaman ito ng isa o higit pang mga panitik (karakter) na hindi maaaring gamitin para sa mga pamagat.',
-'perfcached' => 'Ang sumusunod na datos ay nakaligpit at maaaring wala na sa panahon. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'Ang sumusunod na datos ay nakaligpit, at dating isinapanahon noong $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'Ang sumusunod na mga dato ay nakaligpit at maaaring hindi na napapanahon. Isang pinakamataas na {{PLURAL:$1|isang resulta|$1 mga resulta ang}} ang makukuha mula sa taguan.',
+'perfcachedts' => 'Ang sumusunod na mga dato ay nakaligpit, at dating isinapanahon noong $1. Isang pinakamataas na {{PLURAL:$4|isang resulta ang|$4 mga resulta ang}} makukuha mula sa taguan.',
 'querypage-no-updates' => 'Kasulukuyang hindi gumagana ang mga pagbabago para sa pahinang ito.
 Ang mga dato dito ay hindi pa masasariwa sa kasalukuyan.',
 'wrong_wfQuery_params' => 'Maling mga parametro sa wfQuery()<br />
@@ -509,6 +509,7 @@ Tanong: $2',
 Pakisubok na lang ulit pagkaraan ng kaunting mga minuto.",
 'protectedpagetext' => 'Kinandado ang pahinang ito upang mahadlangang ang pagbago.',
 'viewsourcetext' => 'Maaari mong tingnan at kopyahin ang pinagmulan ng pahinang ito:',
+'viewyourtext' => "Matitingnan at makukopya mo ang pinagmulan ng '''mga pagbabago''' papunta sa pahinang ito:",
 'protectedinterface' => "Nagbibigay ang pahinang ito ng tekstong panghangganan (''interface'') para sa sopwer, at ikinandado para maiwasan ang pangaabuso.",
 'editinginterface' => "'''Babala:''' Binabago mo ang isang pahinang ginagamit sa pagbibigay ng tekstong panghangganan para sa sopwer.
 Makakaapekto ang mga pagbago sa pahinang ito sa anyo ng hangganang (''interface'') pangtagagamit na para sa ibang mga tagagamit.
@@ -517,9 +518,16 @@ Para sa mga salinwika, paki isang-alang-alang o konsiderahin ang paggamit ng [//
 'cascadeprotected' => 'Nakasanggalang ang pahinang ito mula sa mga pagbabago, dahil kabilang ito sa sumusunod na {{PLURAL:$1|pahinang|mga pahinang}} nakasanggalang sa pamamagitan ng binuhay na opsyong "nahuhulog" (kumakaskada):
 $2',
 'namespaceprotected' => "Wala kang pahintulot na magbago ng mga pahinang nasa ngalan-espasyong '''$1'''.",
+'customcssprotected' => 'Wala kang pahintulot na baguhin ang pahina ng CSS na ito, dahil naglalaman ito ng mga katakdaang pansarili ng ibang tagagamit.',
+'customjsprotected' => 'Wala kang pahintulot na baguhin ang pahina ng JavaScript na ito, dahil naglalaman ito ng mga katakdaang pansarili ng ibang tagagamit.',
 'ns-specialprotected' => 'Hindi pwedeng baguhin ang mga natatanging pahina.',
 'titleprotected' => "Nakasanggalang ang pamagat na ito mula sa paglikha ni [[User:$1|$1]].
 Ang ibinigay na dahilan ay ''$2''.",
+'filereadonlyerror' => 'Hindi nabago ang talaksang "$1" dahil ang repositoryong talaksan na "$2" ay nasa kalakarang mababasa lang.
+
+Ang tagapangasiwang nagkandado nito ay nag-alok ng ganitong paliwanag: "$3".',
+'invalidtitle-knownnamespace' => 'Hindi katanggap-tanggap na pamagat na may puwang na pampangalang "$2" at tekstong "$3"',
+'invalidtitle-unknownnamespace' => 'Hindi katanggap-tanggap na pamagat na mayroong hindi nalalamang bilang na pampuwang ng pangalan na $1 at tekstong "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Masamang kompigurasyon: hindi kilalang tagahagilap (iskaner) ng birus: ''$1''",
@@ -619,6 +627,7 @@ Walang e-liham na ipapadala para sa anumang sumusunod na tampok na kasangkapang-
 'invalidemailaddress' => 'Hindi matatanggap ang direksiyong e-liham na ito dahil tila mayroon itong maling anyo.
 Pakipasok ang isang may mahusay na anyong adres o paki-iwang walang laman na lang ang lagayan.',
 'cannotchangeemail' => 'Hindi maaaring baguhin ang mga direksiyong e-liham sa wiking ito.',
+'emaildisabled' => 'Ang sityong ito ay hindi makapagpapadala ng mga e-liham.',
 'accountcreated' => 'Nilikha na ang kuwenta',
 'accountcreatedtext' => 'Nilikha na ang kuwentang tagagamit para kay $1.',
 'createaccount-title' => 'Paglikha ng kuwenta para sa {{SITENAME}}',
@@ -635,6 +644,7 @@ Maghintay po muna bago subukan uli.',
 
 # E-mail sending
 'php-mail-error-unknown' => 'Hindi malamang kamalian sa tungkulin ng liham ng PHP ()',
+'user-mail-no-addy' => 'Sinubukang magpadala ng e-liham na walang tirahan na para sa e-liham.',
 
 # Change password dialog
 'resetpass' => 'Palitan ang hudyat',
@@ -660,15 +670,18 @@ Maaaring matagumpay mo nang nabago ang iyong hudyat o nakahiling na ng isang bag
 'passwordreset-text' => 'Punuin ang pormularyong ito upang makatanggap ng isang pampaalalang e-liham ng iyong mga detalye ng akawnt.',
 'passwordreset-legend' => 'Itakdang muli ang hudyat',
 'passwordreset-disabled' => 'Hindi pinagagana sa wiking ito ang muling mga pagtatakda ng hudyat.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Ipasok ang isa sa mga piraso ng dato sa ibaba}}',
+'passwordreset-pretext' => '{{PLURAL:$1| | Ipasok ang isa sa mga piraso ng datos sa ibaba}}',
 'passwordreset-username' => 'Pangalan ng tagagamit:',
-'passwordreset-email' => 'Tirahan ng e-liham:',
-'passwordreset-emailtitle' => 'Mga detalye ng akawnt sa {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Isang tao (marahil ay ikaw, mula sa tirahan ng IP na $1) ang humiling ng isang paalala sa iyong mga detalye ng akawnt para sa {{SITENAME}} ($4). Ang sumusunod na pangtagagamit na {{PLURAL:$3|akawnt ay|mga akawnt ay}} may kaugnayan sa tirahang ito ng e-liham:
+'passwordreset-domain' => 'Nasasakupan:',
+'passwordreset-capture' => 'Tingnan ang lumabas na e-liham?',
+'passwordreset-capture-help' => 'Kapag tsetsekan mo ang kahong ito, ang e-liham (may pansamantalang hudyat) ay ipapakita sa iyo at ipapadala rin sa tagagamit.',
+'passwordreset-email' => 'Direksiyong e-liham:',
+'passwordreset-emailtitle' => 'Mga detalye ng kuwenta sa {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'Isang tao (marahil ay ikaw, mula sa direksiyong IP na $1) ang humiling ng isang paalala sa iyong mga detalye ng kuwenta para sa {{SITENAME}} ($4). Ang sumusunod na {{PLURAL:$3|kuwenta ng tagagamit ay|mga kuwenta ng tagagamit ay}} may kaugnayan sa direksiyong e-liham na ito:
 
 $2
 
-{{PLURAL:$3|Ang pansamantalang hudyat na ito|Ang pansamantalang mga hudyat na ito}} ay mawawalan ng bisa sa loob ng {{PLURAL:$5|isang araw|$5 mga araw}}.
+{{PLURAL:$3|Ang pansamantalang hudyat na ito|Ang mga pansamantalang hudyat na ito}} ay mawawalan ng bisa sa loob ng {{PLURAL:$5|isang araw|$5 mga araw}}.
 Dapat kang lumagda at pumili ng isang bagong hudyat ngayon. Kung ibang tao ang gumawa ng kahilingang ito, o kung naalala mo na ang orihinal mong hudyat, at hindi mo na nais palitan ito, maaari mong huwag nang pansinin ang mensaheng ito at magpatuloy sa paggamit ng luma mong hudyat.',
 'passwordreset-emailtext-user' => 'Ang tagagamit na si $1 sa {{SITENAME}} ay humiling ng isang paalala ng iyong mga akawnt ng detalye para sa {{SITENAME}}
 ($4). Ang sumusunod na pangtagagamit na {{PLURAL:$3|akawnt ay|mga akawnt ay}} may kaugnayan sa tirahang ito ng e-liham:
@@ -680,13 +693,18 @@ Dapat kang lumagda at pumili ng isang hudyat ngayon. Kung ibang tao ang gumawa n
 'passwordreset-emailelement' => 'Pangalan ng tagagamit: $1
 Pansamantalang hudyat: $2',
 'passwordreset-emailsent' => 'Naipadala na ang isang e-liham na pampaalala.',
+'passwordreset-emailsent-capture' => 'Naipadala na ang isang e-liham na paalala, na ipinapakita sa ibaba.',
+'passwordreset-emailerror-capture' => 'Nalikha na ang isang e-liham na paalala, na ipinapakita sa ibaba, subalit nabigo ang pagpapadala sa tagagamit: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Baguhin ang direksiyong e-liham',
 'changeemail-header' => 'Baguhin ang direksiyong e-liham ng kuwenta',
+'changeemail-text' => 'Kumpletuhin ang pormularyong ito upang mabago ang tirahan na para sa e-liham mo. Kakailanganin mong ipasok ang iyong hudyat upang tiyakin ang pagbabagong ito.',
+'changeemail-no-info' => 'Kailangan mong lumagda upang tuwirang mapuntahan ang pahinang ito.',
 'changeemail-oldemail' => 'Kasalukuyang direksiyong e-liham:',
 'changeemail-newemail' => 'Bagong direksiyong e-liham:',
 'changeemail-none' => '(wala)',
+'changeemail-submit' => 'Baguhin ang e-liham',
 'changeemail-cancel' => 'Kanselahin',
 
 # Edit page toolbar
@@ -720,8 +738,8 @@ Pansamantalang hudyat: $2',
 'showlivepreview' => 'Buhay na paunang tingin',
 'showdiff' => 'Ipakita ang mga pagbabago',
 'anoneditwarning' => "'''Babala:''' Hindi ka nakalagda.
-Matatala ang adres ng IP mo sa kasaysayan ng pagbabago ng pahinang ito.",
-'anonpreviewwarning' => "''Hindi ka nakalagda.  Itatala sa inyong pagtatala ang inyong adres ng IP sa kasaysayan ng pagbabago ng pahinang ito.''",
+Matatala ang iyong direksiyong IP sa kasaysayan ng pagbabago ng pahinang ito.",
+'anonpreviewwarning' => "''Hindi ka nakalagda.  Itatala sa inyong pagtatala ang inyong direksiyong IP sa kasaysayan ng pagbabago ng pahinang ito.''",
 'missingsummary' => "'''Paalala:''' Hindi ka nagbigay ng buod ng pagbabago.
 Kapag pinindot mo uli ang Sagip, masasagip ang pagbabago mo na wala nito.",
 'missingcommenttext' => 'Magbigay ng isang kumento/puna sa ibaba.',
@@ -730,17 +748,18 @@ Kapag pinindot mo uli ang \"{{int:savearticle}}\", masasagip ang pagbabago mo na
 'summary-preview' => 'Paunang tingin sa buod:',
 'subject-preview' => 'Paunang tingin sa paksa/paulo:',
 'blockedtitle' => 'Hinarang ang tagagamit',
-'blockedtext' => "'''Hinarang/hinadlangan ang iyong pangalan ng tagagamit o adres ng IP.'''
+'blockedtext' => "'''Hinarang/hinadlangan ang iyong pangalan ng tagagamit o direksiyong IP.'''
 
-Ginawa ang pagharang/paghadlang ni $1. Ito ang ibinigay na dahilan: ''$2''.
+Ginawa ni $1 ang pagharang/paghadlang.
+Ito ang ibinigay na dahilan: ''$2''.
 
 * Simula ng pagharang/paghadlang: $8
 * Katapusan ng pagharang/paghadlang: $6
 * Ang hinarang/hinadlangan ay si: $7
 
-Maaari kang makipag-ugnayan kay $1 o sa iba pang [[{{MediaWiki:Grouppage-sysop}}|tagapangasiwa]] upang pagusapan ang pagharang/paghadlang na ito.
-Hindi mo magagamit ang kasangkapang-katangiang 'magpadala ng e-liham sa tagagamit' hangga't hindi tinutukoy ang isang tanggap na adres ng e-liham sa iyong [[Special:Preferences|mga kagustuhan]] at hindi ka pa hinaharangan/hinahadlangan sa paggamit nito.
-Ang pangkasalukuyang adres ng IP mo ay $3, at ang ID ay #$5.
+Maaari kang makipag-ugnayan kay $1 o sa ibang [[{{MediaWiki:Grouppage-sysop}}|tagapangasiwa]] upang pagusapan ang pagharang/paghadlang na ito.
+Hindi mo magagamit ang kasangkapang-katangiang 'magpadala ng e-liham sa tagagamit' hangga't hindi tinutukoy ang isang tanggap na direksiyong e-liham sa iyong [[Special:Preferences|mga kagustuhan]] at hindi ka pa hinaharangan/hinahadlangan sa paggamit nito.
+Ang kasalukuyan mong direksiyong IP ay $3, at ang ID ng pagharang/paghadlang ay #$5.
 Pakisama ang lahat ng mga detalye sa anumang mga pagtatanong na ginagawa/gagawin mo.",
 'autoblockedtext' => 'Kusang hinadlangan/hinarang ang adres ng IP mo dahil ginamit ito ng ibang tagagamit, na hinadlangan/hinarang ni $1.
 Ang ibinigay na dahilan ay:
@@ -791,12 +810,12 @@ Pakisuri kung ibig mong likhain/baguhin ang pahinang ito.',
 'userpage-userdoesnotexist-view' => 'Hindi nakatala ang kuwenta ng tagagamit na "$1".',
 'blocked-notice-logextract' => 'Kasalukuyang hinarang ang tagagamit na ito.
 Ang pinakahuling entrada sa talaan  ng pagharang ay ibinigay sa baba para sa inyong pagsasangguni:',
-'clearyourcache' => "'''Tandaan: Pagkatapos magtala, baka kailangan mong linisin ang baunan ng iyong pambasa-basa upang makita ang mga pagbabago.'''
-'''Firefox / Safari:''' Panatilihing nakapindot ang ''Shift'' habang kiniklik ang ''Reload'', o pindutin ang ''Ctrl-F5'' o ''Ctrl-R'' (''Command-R'' sa isang Mac)
-'''Google Chrome:''' Pindutin ang ''Ctrl-Shift-R'' (''Command-Shift-R'' sa isang Mac)
-'''Internet Explorer:''' Panatilihing nakapindot ang ''Ctrl'' habang kiniklik ang ''Refresh'', o pindutin ang ''Ctrl-F5''.
-'''Konqueror:''' I-klik ang ''Reload'' o pindutin ang ''F5''
-'''Opera:''' Linisin ang baunan sa ''Tools → Preferences''",
+'clearyourcache' => "'''Paunawa: Pagkatapos magsagip, baka kailangan mong laktawan ang taguan ng pantingin-tingin mo upang makita ang mga pagbabago.
+'''Firefox / Safari:''' Panatilihin ang pagpindot sa ''Shift'' habang nilalagitik ang ''Reload'', o pindutin ang ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' sa Mac)
+'''Google Chrome:''' Pindutin ang ''Ctrl-Shift-R'' (''⌘-Shift-R'' sa Mac)
+'''Internet Explorer:''' Panatilihin ang pagpindot sa ''Ctrl'' habang nilalagitik ang ''Refresh'', o pindutin ang ''Ctrl-F5''
+'''Konqueror:''' Lagitikin ang ''Reload'' o pindutin ang ''F5''
+'''Opera:''' Linisin ang taguan sa ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Balato:''' Gamitin ang pindutang \"{{int:showpreview}}\" upang masubok ang bago mong CSS bago sagipin.",
 'userjsyoucanpreview' => "'''Balato:''' Gamitin ang pindutang \"{{int:showpreview}}\" upang masubok ang bago mong JavaScript bago sagipin.",
 'usercsspreview' => "'''Tandaan mong paunang tingin pa lamang ito ng iyong CSS na pantagagamit.'''
@@ -811,8 +830,9 @@ Ang pinakahuling entrada sa talaan  ng pagharang ay ibinigay sa baba para sa iny
 Tandaang gumagamit ang pinasadyang mga pahinang .css at .js ng mga pamagat na may maliliit na mga titik, halimbawa na ang {{ns:user}}:Foo/vector.css na taliwas sa {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Naisapanahon na)',
 'note' => "'''Paunawa:'''",
-'previewnote' => "'''Isang lamang itong paunang tingin;
-hindi pa nasasagip ang mga pagbabago!'''",
+'previewnote' => "'''Tandaan na isa lamang itong paunang tingin.'''
+Hindi pa nasasagip ang mga binago mo!",
+'continue-editing' => 'Ipagpatuloy ang pamamatnugot',
 'previewconflict' => 'Ipinamamalas ng paunang tinging ito ang teksto sa loob ng pangitaas na pook-patnugutan ng teksto ayon sa lilitaw na anyo nito kapag pinili mo ang pagsagip.',
 'session_fail_preview' => "'''Paumanhin! Hindi namin maproseso ang iyong pagbabago hinggil sa pagkawala ng sesyon ng datos.
 Paki ulit muli. Kung hindi ito gumana, subukang umalis sa pagkalagda at bumalik muli.'''",
@@ -827,6 +847,7 @@ Tinanggihan ang pagbabago upang maiwasan ang korapsyon ng teksto ng artikulo.
 Kadalasang nangyayari ito kapag gumagamit ka ng masurot na serbisyo ng hindi-nakikilalang apoderadong (''anonymous proxy'') nasa web.",
 'edit_form_incomplete' => "'''Ilan sa mga bahagi ng pormularyong pampatnugot ay hindi nakarating sa tagapaghain; suriing muli na ang iyong mga pagbabago ay buo at subukang muli.'''",
 'editing' => 'Binabago ang $1',
+'creating' => 'Nililikha ang $1',
 'editingsection' => 'Binabago ang $1 (bahagi)',
 'editingcomment' => 'Binabago ang $1 (bagong seksyon)',
 'editconflict' => 'Alitan sa pagbabago: $1',
@@ -850,8 +871,8 @@ Nangangako ka rin sa amin na ikaw mismo ang sumulat nito, sumipi/kumopya nito mu
 Kung ayaw mong mabago nang labis-labis ang mga isinulat mo, mas mabuting huwag mo na lamang ipasa iyan dito.<br />
 Nangangako ka rin sa amin na ikaw ang mismong sumulat nito, o sinipi/kinopya mo ito mula sa isang pinagmulang nasa dominyo na ng publiko o katulad (tingnan ang $1 para sa mga detalye).
 '''HUWAG MAGTALA NG AKDANG NAKAKARAPATANG-ARI (NAKAKOPIRAYT) NA HINDI MUNA HUMIHINGI NG PAHINTULOT!'''",
-'longpageerror' => "'''KAMALIAN: May habang $1 ''kilobyte'' ang ipinasa mong teksto, na mas mahaba kaysa $2 ''kilobyte'' na siyang pinakamataas na nakatakdang halaga.
-Hindi ito masasagip.'''",
+'longpageerror' => "'''Kamalian: May haba na {{PLURAL:$1|isang kilobyte|$1 mga kilobyte}} ang ipinasa mong teksto, na mas mahaba kaysa sa pinakamataas na nakatakdang halaga na {{PLURAL:$2|isang kilobyte|$2 mga kilobyte}}.''' 
+Hindi ito masasagip.",
 'readonlywarning' => "'''BABALA: Ikinandado ang kalipunan ng dato para sa gawaing pampagpapanatili, kaya't hindi mo pa masasagip ang mga pagbabagong ginawa mo ngayon.
 Maaaring ibigin mong gupitin at idikit ang teksto patungo sa isang talaksang pangteksto at sagipin ito mamaya.'''
 
@@ -894,6 +915,7 @@ Tila binura na ito.',
 'edit-no-change' => 'Binalewala ang pagbabago mo, dahil walang pagbabagong ginawa sa teksto.',
 'edit-already-exists' => 'Hindi makalikha ng isang bagong pahina.
 Umiiral na ito.',
+'defaultmessagetext' => 'Nakatakdang teksto ng mensahe',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Babala: Naglalaman ang pahinang ito ng napakaraming mamahaling mga tawag na pantungkulin.
@@ -908,6 +930,12 @@ Hindi isasama ang ilang mga suleras.',
 'parser-template-loop-warning' => 'Nadiskubreng silo ng suleras: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Lumabis na sa nakatakdang lalim ng rekursyon (pormula) ng suleras ($1)',
 'language-converter-depth-warning' => 'Lumampas sa ($1) ang hangganan ng lalim ng pampalit ng wika',
+'node-count-exceeded-category' => 'Mga pahina kung saan nalampasan ang bilang ng buko',
+'node-count-exceeded-warning' => 'Lumampas ang pahina sa bilang ng buko',
+'expansion-depth-exceeded-category' => 'Mga pahina kung saan lampas ang lalim ng paglawak',
+'expansion-depth-exceeded-warning' => 'Lumampas ang pahina sa lalim ng paglawak',
+'parser-unstrip-loop-warning' => 'Napansin ang silo ng hindi pagtalop',
+'parser-unstrip-recursion-limit' => 'Nalampasan ang hangganan ng rekursiyon ng hindi pagtalop ($1)',
 
 # "Undo" feature
 'undo-success' => 'Matatanggal ang pagbabago.
@@ -962,28 +990,28 @@ Subukang [[Special:Search|hanapin sa wiki]] para sa mga kaugnay na mga bagong pa
 'rev-deleted-user-contribs' => '[itinanggal ang bansag o adres ng IP - itinago ang pagbabago mula sa mga ambag]',
 'rev-deleted-text-permission' => "Itong pagbabago ng pahina ay '''ibinura'''.
 Maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tala ng pagbubura].",
-'rev-deleted-text-unhide' => "Itong pagbabago ng pahina ay '''ibinura'''.
-Maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tala ng pagbubura].
-Bilang isang tagapangasiwa, maaari mo pang [$1 tingnan ang pagbabagong ito] kung nais mong tumuloy.",
-'rev-suppressed-text-unhide' => "Itong pagbabago ng pahina ay '''isinugpo'''.
-Maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tala ng pagsusugpo].
-Bilang isang tagapangasiwa, maaari mo pang [$1 tingnan ang pagbabagong ito] kung nais mong tumuloy.",
-'rev-deleted-text-view' => "Itong pagbabago ng pahina ay '''ibinura'''.
-Bilang isang tagapangasiwa, maaari mo itong makita; maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} tala ng pagbubura].",
-'rev-suppressed-text-view' => "Itong pagbabago ng pahina ay '''isinugpo'''.
-Bilang isang tagapangasiwa, maaari mo itong makita; maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tala ng pagsusugpo].",
+'rev-deleted-text-unhide' => "'''Binura''' ang pahinang ito ng pagbabago.
+Maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan ng pagbura].
+Maaari mo pa ring [$1 tingnan ang pagbabagong ito] kung nais mong magpatuloy.",
+'rev-suppressed-text-unhide' => "Ang pagbabagong ito ng pahina ay '''pinigilan'''.
+Maaaring matagpuan ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan ng pagsupil].
+Maaari mo pa ring [$1 tingnan ang rebisyong ito] kung nais mong magpatuloy.",
+'rev-deleted-text-view' => "Ang pagbabagong ito sa pahina ay '''binura'''.
+Maaarin mo itong makita; matatagpuan ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan ng pagbura].",
+'rev-suppressed-text-view' => "Ang pagbabagong ito sa pahina ay '''pinigilan'''.
+Maaari mo itong makita; matatagpuan ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan ng pagsupil].",
 'rev-deleted-no-diff' => "Hindi mo maaaring makita ang pagkakaibang ito dahil '''binura na''' ang isa sa mga pagbabago.  Matatagpuan ang mga detalye mula sa loob ng [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan ng pagbura].",
 'rev-suppressed-no-diff' => "Hindi mo maaaring tingnan ang pagkakaibang ito dahil '''ibinura''' ang isa sa mga pagbabago.",
-'rev-deleted-unhide-diff' => "'''Binura''' ang isa sa mga pagbabago ng pagkakaibang ito.
-Maaaring matagpuan ang mga detalye sa loob ng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan ng pagbura].
-Bilang isang tagapangasiwa, maaari mo pa ring [$1 tingnan ang pagkakaibang ito] kung nais mong magpatuloy.",
-'rev-suppressed-unhide-diff' => "Isa sa mga pagbabago ng pagkakaibang ito ay '''isinugpo'''.
-Maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tala ng pagsusugpo].
-Bilang isang tagapangasiwa, maaari mo pang [$1 tingnan ang pagbabagong ito] kung nais mong tumuloy.",
-'rev-deleted-diff-view' => "Isa sa mga pagbabago ng pagkakaibang ito ay '''binura'''.
-Bilang isang tagapangasiwa, maaari mo itong makita; maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} tala ng pagbubura].",
-'rev-suppressed-diff-view' => "Isa sa mga pagbabago ng pagkakaibang ito ay '''isinugpo'''.
-Bilang isang tagapangasiwa, maaari mo itong makita; maaaring hanapin ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} tala ng pagsusugpo].",
+'rev-deleted-unhide-diff' => "'''Nabura''' ang isa sa mga pagbabago para sa kaibahang ito.
+Matatagpuan ang mga detalye sa loob ng [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan ng pagbura].
+Maaari mo pa ring [$1 makita ang pagkakaibang ito] kung nais mong magpatuloy.",
+'rev-suppressed-unhide-diff' => "Ang isa sa mga pagbabago para sa kaibahang ito ay '''pinigilan'''.
+Matatagpuan ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan ng pagsupil].
+Maaari mo pa ring [$1 tingnan ang pagbabagong ito] kung nais mong magpatuloy.",
+'rev-deleted-diff-view' => "'''Nabura''' ang isa sa mga pagbabago para sa kaibahang ito.
+Makikita mo pa rin pagkakaibang ito; matatagpuan ang mga detalye sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan ng pagbura].",
+'rev-suppressed-diff-view' => "'''Pinigalan''' ang isa sa mga pagbabago para sa kaibahang ito.
+Makikita mo ang pagkakaibang ito; matatagpuan ang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan ng pagsupil].",
 'rev-delundel' => 'ipakita/itago',
 'rev-showdeleted' => 'ipakita',
 'revisiondelete' => 'Burahin/ibalik ang mga pagbabago',
@@ -1051,8 +1079,8 @@ Pakitingnan ang mga talaan.',
 
 # Suppression log
 'suppressionlog' => 'Tala ng pagpipigil',
-'suppressionlogtext' => "Nasa ibaba ang isang tala ng mga pagbura at mga pagharang/paghadlang na kinakasangkutan ng nilalamang nakatago sa mga ''sysop''.
-Tingnan ang [[Special:IPBlockList|talaan ng hinarang na/hinadlangang IP]] para sa isang talaan ng mga pangkasalukuyan at gumaganang mga pinagbawalan at mga pagharang/paghadlang.",
+'suppressionlogtext' => 'Nasa ibaba ang isang talaan ng mga pagbura at mga pagharang na kinakasangkutan ng nilalamang nakatago sa mga tagapangasiwa.
+Tingnan ang [[Special:BlockList||talaan ng pagharang]] para sa isang talaan ng mga pangkasalukuyang gumaganang mga pinagbawalan at mga pagharang.',
 
 # History merging
 'mergehistory' => 'Pagsanibin mga pahina ng kasaysayan',
@@ -1084,7 +1112,9 @@ Tiyakin na ang pagbabago ay makapagpapanatili ng pagkakatuluy-tuloy ng pahinang
 'mergelogpagetext' => 'Nasa ibaba ang isang talaan ng mga pinakakamakailan lamang na mga pagsasanib ng isang kasaysayan ng pahina patungo sa isa pa.',
 
 # Diffs
-'history-title' => 'Kasaysayan ng pagbabago ng "$1"',
+'history-title' => 'Kasaysayan sa pagbago ng "$1"',
+'difference-title' => 'Pagkakaiba sa pagitan ng mga pagbago ng "$1"',
+'difference-title-multipage' => 'Kaibahan sa pagitan ng mga pahinang "$1" at "$2"',
 'difference-multipage' => '(Pagkakaiba sa pagitan ng mga pahina)',
 'lineno' => 'Linya $1:',
 'compareselectedversions' => 'Paghambingin ang mga napiling bersyon',
@@ -1165,10 +1195,11 @@ Subuking lagyan ng unlapi/paunang ''all:'' upang hanapin ang lahat ng mga nialal
 'qbsettings-fixedright' => 'Inayos ang kanan',
 'qbsettings-floatingleft' => 'Kaliwa lumulutang',
 'qbsettings-floatingright' => 'Kanan lumulutang',
+'qbsettings-directionality' => 'Naayos na, ayon sa kapupuntahan ng panitik ng wika mo',
 
 # Preferences page
 'preferences' => 'Mga kagustuhan',
-'mypreferences' => 'Aking mga kagustuhan',
+'mypreferences' => 'Mga nais ko',
 'prefs-edits' => 'Bilang ng mga pagbabago:',
 'prefsnologin' => 'Hindi nakalagda/nakatala',
 'prefsnologintext' => 'Kailangan mong <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} lumagda/tumala]</span> para makapagtakda ng mga kagustuhang ng tagagamit.',
@@ -1179,17 +1210,19 @@ Subuking lagyan ng unlapi/paunang ''all:'' upang hanapin ang lahat ng mga nialal
 'prefs-beta' => 'Mga kaangkapang-katangiang pang-beta',
 'prefs-datetime' => 'Petsa at oras',
 'prefs-labs' => 'Mga kasangkapang-katangiang pang-Labs',
+'prefs-user-pages' => 'Mga pahina ng tagagamit',
 'prefs-personal' => 'Sanligang pangkatangian ng tagagamit',
 'prefs-rc' => 'Kamakailan lamang na mga pagbabago',
 'prefs-watchlist' => 'Talaan ng mga binabantayan',
 'prefs-watchlist-days' => 'Mga araw na ipapakita sa talaan ng mga binabantayan:',
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist-days-max' => 'Pinakamataas ang $1 {{PLURAL:$1|araw|mga araw}}',
 'prefs-watchlist-edits' => 'Pinakamaraming bilang ng mga pagbabagong ipapakita sa pinalawak na talaan ng mga binabantayan:',
 'prefs-watchlist-edits-max' => 'Pinakamataas na bilang: 1000',
 'prefs-watchlist-token' => 'Balap ng talaan ng mga binabantayan:',
 'prefs-misc' => 'Bala-balaki',
 'prefs-resetpass' => 'Baguhin ang hudyat',
-'prefs-setemail' => 'Itakda ang bagong tirahan ng e-liham $1',
+'prefs-changeemail' => 'Baguhin ang direksiyong e-liham',
+'prefs-setemail' => 'Magtakda ng direksiyong e-liham',
 'prefs-email' => 'Mga pagpipilian para sa e-liham',
 'prefs-rendering' => 'Hitsura',
 'saveprefs' => 'Sagipin',
@@ -1211,7 +1244,7 @@ Subuking lagyan ng unlapi/paunang ''all:'' upang hanapin ang lahat ng mga nialal
 'savedprefs' => 'Nasagip na ang mga kagustuhan mo.',
 'timezonelegend' => 'Sona ng oras:',
 'localtime' => 'Lokal na oras:',
-'timezoneuseserverdefault' => 'Gamitin ang itinakda ng serbidor',
+'timezoneuseserverdefault' => 'Gamitin ang katakdaan ng wiki ($1)',
 'timezoneuseoffset' => "Iba pa (tukuyin ang pambawi o ''offset'')",
 'timezoneoffset' => "Pambawi/pambalanse (''offset'')¹:",
 'servertime' => 'Oras sa serbidor',
@@ -1246,7 +1279,8 @@ Hindi ito maibabalik sa dating gawi.',
 'prefs-registration' => 'Oras ng pagtatala:',
 'yourrealname' => 'Tunay na pangalan:',
 'yourlanguage' => 'Wika:',
-'yourvariant' => 'Naiiba pa:',
+'yourvariant' => 'Iba pang anyo ng wika ng nilalaman:',
+'prefs-help-variant' => 'Ang nais mong kaibahan o ortograpiya sa pagpapakita ng mga pahina ng nilalaman ng wiking ito.',
 'yournick' => 'Panglagda:',
 'prefs-help-signature' => 'Ang mga puna sa mga pahina ng usapan ay dapat na lagdaan ng "<nowiki>~~~~</nowiki>" na magiging lagda mo at marka ng oras.',
 'badsig' => 'Hindi tamang hilaw na lagda.
@@ -1263,7 +1297,7 @@ Dapat na mas mababa kaysa $1 {{PLURAL:$1|panitik|mga panitik}}.',
 Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para iyong mga ginawa.",
 'prefs-help-email' => 'Hindi talaga kailangang may tirahan ng e-liham, subalit kailangan para sa muling pagtatakda ng hudyat, kung makalimutan mo ang hudyat mo.',
 'prefs-help-email-others' => 'Mapipili mo rin na makipag-ugnayan sa iyo ang iba sa pamamagitan ng iyong pahina ng tagagamit o usapan na hindi kailangang ilantad ang katauhan mo.',
-'prefs-help-email-required' => 'Kailangan ang adres ng e-liham.',
+'prefs-help-email-required' => 'Kailangan ang direksiyong e-liham.',
 'prefs-info' => 'Payak na kabatiran',
 'prefs-i18n' => 'Internasyonalisasyon',
 'prefs-signature' => 'Lagda',
@@ -1280,15 +1314,15 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'prefs-diffs' => 'Mga pagkakaiba',
 
 # User preference: e-mail validation using jQuery
-'email-address-validity-valid' => 'Mukhang katanggap-tanggap ang tirahan ng e-liham',
-'email-address-validity-invalid' => 'Magpasok ng isang tanggap na tirahan ng e-liham',
+'email-address-validity-valid' => 'Mukhang katanggap-tanggap ang direkisyong e-liham',
+'email-address-validity-invalid' => 'Magpasok ng isang tanggap na direksiyong e-liham',
 
 # User rights
 'userrights' => 'Pamamahala ng mga karapatan ng tagagamit',
 'userrights-lookup-user' => 'Pamahalaan ang mga pangkat ng tagagamit',
 'userrights-user-editname' => 'Magpasok ng isang pangalan ng tagagamit:',
 'editusergroup' => 'Baguhin ang mga pangkat ng tagagamit',
-'editinguser' => "Binabago ang mga karapatang pangtagagamit ng tagagamit na si '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "Binabago ang mga karapatang pangtagagamit ng tagagamit na si '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Baguhin ang mga pangkat ng tagagamit',
 'saveusergroups' => 'Sagipin ang mga pangkat ng tagagamit',
 'userrights-groupsmember' => 'Kasapi ng:',
@@ -1301,7 +1335,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'userrights-no-interwiki' => 'Wala kang pahintulot na baguhin ang mga karapatan ng tagagamit sa ibang mga wiki.',
 'userrights-nodatabase' => 'Hindi umiiral o hindi lokal ang kalipunan ng datos na $1',
 'userrights-nologin' => 'Kailangang [[Special:UserLogin|nakalagda ka]] bilang tagapangasiwa upang maitalaga ang mga karapatan ng tagagamit.',
-'userrights-notallowed' => 'Walang pahintulot ang iyong akawnt na magtalaga ng mga karapatan ng tagagamit.',
+'userrights-notallowed' => 'Walang pahintulot ang akawnt mo na magdagdag o magtanggal ng mga karapatan ng tagagamit.',
 'userrights-changeable-col' => 'Mga pangkat na maaari mong baguhin',
 'userrights-unchangeable-col' => 'Mga pangkat na hindi mo mababago',
 
@@ -1311,16 +1345,16 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'group-autoconfirmed' => 'Mga tagagamit na nakompirma sa kusang paraan (autokompirmasyon)',
 'group-bot' => "Mga ''bot''",
 'group-sysop' => 'Mga tagapangasiwa',
-'group-bureaucrat' => 'Mga burokrato',
+'group-bureaucrat' => 'Mga burokrata',
 'group-suppress' => 'Mga tagapagingat-tago',
 'group-all' => '(lahat)',
 
-'group-user-member' => 'Tagagamit',
-'group-autoconfirmed-member' => 'Kusang nakumpirmang tagagamit',
-'group-bot-member' => 'Bot',
-'group-sysop-member' => 'tagapangasiwa',
-'group-bureaucrat-member' => 'Burokrato',
-'group-suppress-member' => 'Tagapagingat-tago',
+'group-user-member' => '{{GENDER:$1|tagagamit}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|tagagamit na kusang natiyak}}',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|tagapangasiwa}}',
+'group-bureaucrat-member' => '{{GENDER:$1|burokrata}}',
+'group-suppress-member' => '{{GENDER:$1|tagapangalingat}}',
 
 'grouppage-user' => '{{ns:project}}:Mga tagagamit',
 'grouppage-autoconfirmed' => '{{ns:project}}:Kusang nakumpirmang mga tagagamit',
@@ -1388,12 +1422,13 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'right-siteadmin' => 'Ikandado at alisin ang pagkakakandado ng kalipunan ng dato',
 'right-override-export-depth' => 'Iluwas ang mga pahina na kabilang ang mga pahinang nakakawing magpahanggang sa isang lalim na 5',
 'right-sendemail' => 'Magpadala ng e-liham sa ibang mga tagagamit',
-'right-passwordreset' => 'Muling itinakdang hudyat para sa isang tagagamit ([[Special:PasswordReset|natatanging pahina]])',
+'right-passwordreset' => 'Tingnan ang mga e-liham ng muling pagtatakda ng hudyat',
 
 # User rights log
 'rightslog' => 'Tala ng mga karapatan ng tagagamit',
 'rightslogtext' => 'Isa itong tala ng mga pagbabago sa mga karapatan ng tagagamit.',
 'rightslogentry' => 'binago ang kasapiang pampangkat para kay $1 mula sa $2 patungong $3',
+'rightslogentry-autopromote' => 'ay kusang naitaas ang ranggo mula $2 upang maging $3',
 'rightsnone' => '(wala)',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1421,6 +1456,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'action-suppressionlog' => 'tingnan itong pribadong tala',
 'action-block' => 'harangin sa paggawa ng pagbabago ang tagagamit na ito',
 'action-protect' => 'baguhin ang mga antas ng pagsasanggalang para sa pahinang ito',
+'action-rollback' => 'mabilisang igulong na pabalik ang mga pagbabago ng huling tagagamit na namatnugot ng isang partikular na pahina',
 'action-import' => 'angkatin itong pahina mula sa ibang wiki',
 'action-importupload' => 'angkatin ang pahinang ito mula sa isang ikinargang talaksan',
 'action-patrol' => 'tatakan bilang napatrolya na ang mga pagbabagong ginawa ng iba',
@@ -1430,6 +1466,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'action-userrights' => 'baguhin ang lahat ng karapatan ng tagagamit',
 'action-userrights-interwiki' => 'baguhin ang mga karapatan ng tagagamit na nasa ibang mga wiki',
 'action-siteadmin' => 'ikandado o tanggalin ang pagkakakandado ng kalipunan ng dato',
+'action-sendemail' => 'magpadala ng mga e-liham',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
@@ -1461,9 +1498,11 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'number_of_watching_users_pageview' => '[$1 binabantayang {{PLURAL:$1|tagagamit|mga tagagamit}}]',
 'rc_categories' => 'Itakda lang sa mga kaurian (ihiwalay sa pamamagitan ng "|")',
 'rc_categories_any' => 'Kahit ano',
+'rc-change-size-new' => '$1 {{PLURAL:$1|byte|mga byte}} pagkaraan ng pagbabago',
 'newsectionsummary' => '/* $1 */ bagong seksyon',
 'rc-enhanced-expand' => 'Ipakita ang mga detalye (kailangan ng JavaScript)',
 'rc-enhanced-hide' => 'Itago ang mga detalye',
+'rc-old-title' => 'dating nalikha bilang "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Kaugnay na mga pagbabago',
@@ -1513,6 +1552,7 @@ Para maisama ang isang talaksan sa loob ng isang pahina, gumamit ng isang kawing
 'ignorewarnings' => 'Balewalain ang anumang mga babala',
 'minlength1' => 'Dapat may kahit na isang titik lang ang mga pangalan ng talaksan.',
 'illegalfilename' => 'Ang pangalan ng talaksan (filename) na "$1" ay mayroon mga karakter na hindi pinapahintulot bilang pamagat ng isang pahina. Paki palitan ang pangalan at subukang ikarga muli.',
+'filename-toolong' => 'Ang mga pangalan ng talaksan ay hindi maaaring maging mas mahaba kaysa sa 240 mga byte.',
 'badfilename' => 'Pinalitan ang pangalan ng talaksan na naging "$1".',
 'filetype-mime-mismatch' => 'Hindi tumutugma ang dugtong ng talaksan na ".$1" sa napansing uri ng MIME ng talaksan ($2).',
 'filetype-badmime' => 'Hindi pinapahintulutang maikarga ang uring "$1" ng mga talaksang MIME.',
@@ -1538,6 +1578,7 @@ Ang mga pinapayagang {{PLURAL:$3|uri ng talaksan ay ang|mga uri ng talaksan ay a
 ang talaksang ito ay $2.',
 'largefileserver' => 'Mas malaki ang talaksan kaysa nakatakdang papahintulutan ng serbidor.',
 'emptyfile' => 'Mukhang walang laman ang talaksan (file) na ikinarga mo. Maaaring dahil ito sa maling pagkapasok ng pangalan ng talaksan.  Paki tingin kung gusto mo talagang ikarga ang talaksan na ito.',
+'windows-nonascii-filename' => 'Ang wiking ito ay hindi nagsusuporta ng mga pangalan ng talaksan na mayroong natatanging mga panitik.',
 'fileexists' => "Mayroon ng talaksan na ganitong pangalan, paki tingin ang '''<tt>[[:$1]]</tt>''' kung tiyak ka na babaguhin ito.
 [[$1|thumb]]",
 'filepageexists' => "Ang pahina ng paglalarawan para sa talaksan na ito ay nalikha na sa '''<tt>[[:$1]]</tt>''', ngunit walang talaksang umiiral na may ganitong pangalan.
@@ -1545,8 +1586,8 @@ Hindi lilitaw ang buod na ipapasok mo sa pahina ng paglalarawan.
 Para lumitaw ang buod mo doon, kailangan mong kinakamay na baguhin ito.
 [[$1|thumb]]",
 'fileexists-extension' => "Mayroon talaksan na ganitong pangalan: [[$2|thumb]]
-* Pangalan ng ikakargang talaksan: '''<tt>[[:$1]]</tt>'''
-* Pangalan ng mayroon nang talaksan: '''<tt>[[:$2]]</tt>'''
+* Pangalan ng ikinakargang talaksan: '''<tt>[[:$1]]</tt>'''
+* Pangalan ng umiiral na talaksan: '''<tt>[[:$2]]</tt>'''
 Pumili ng ibang pangalan.",
 'fileexists-thumbnail-yes' => "Mukhang pinaliit ''(thumbnail)'' na larawan ang talaksan. [[$1|thumb]]
 Paki tingin ang talaksan '''<tt>[[:$1]]</tt>'''.
@@ -1603,6 +1644,48 @@ Kapag nagpatuloy ang suliranin, makipagugnayan sa isang [[Special:ListUsers/syso
 'upload-too-many-redirects' => 'Naglalaman ng napakaraming panlipat ng pupuntahan ang URL',
 'upload-unknown-size' => 'Hindi nalalamang laki',
 'upload-http-error' => 'Naganap ang isang kamaliang pang-HTTP: $1',
+'upload-copy-upload-invalid-domain' => 'Hindi makakakuha ng mga pagkakarga ng kopya mula sa nasasakupang ito.',
+
+# File backend
+'backend-fail-stream' => 'Hindi mapadaloy ang talaksang $1.',
+'backend-fail-backup' => 'Hindi na makatigan ng kopya ang talaksang $1.',
+'backend-fail-notexists' => 'Hindi umiiral ang talaksang $1.',
+'backend-fail-hashes' => 'Hindi makuha ang mga tadtad ng talaksan para sa paghahambing.',
+'backend-fail-notsame' => 'Isang hindi kamukhang talaksan ang umiiral na sa $1.',
+'backend-fail-invalidpath' => 'Ang $1 ay hindi isang katanggap-tanggap na landas ng imbakan.',
+'backend-fail-delete' => 'Hindi mabura ang talaksang $1.',
+'backend-fail-alreadyexists' => 'Umiiral na ang pahinang $1.',
+'backend-fail-store' => 'Hindi maimbak ang talaksang $1 sa $2.',
+'backend-fail-copy' => 'Hindi makopya ang talaksang $1 sa $2.',
+'backend-fail-move' => 'Hindi mailipat ang talaksang $1 sa $2.',
+'backend-fail-opentemp' => 'Hindi mabuksan ang pansamantalang talaksan.',
+'backend-fail-writetemp' => 'Hindi maisulat sa pansamantalang talaksan.',
+'backend-fail-closetemp' => 'Hindi maisara ang pansamantalang talaksan.',
+'backend-fail-read' => 'Hindi mabasa ang talaksang $1.',
+'backend-fail-create' => 'Hindi maisulat ang talaksang $1.',
+'backend-fail-maxsize' => 'Hindi maisulat ang talaksang $1 dahil mas malaki ito kaysa sa {{PLURAL:$2|isang byte|$2 mga byte}}.',
+'backend-fail-readonly' => 'Ang hulihang likuran ng pag-iimbak na "$1" ay kasalukuyang mababasa lamang. Ang dahilang ibinigay ay: "\'\'$2\'\'"',
+'backend-fail-synced' => 'Ang talaksang "$1" ay nasa isang katayuang pabagu-bago sa loob ng mga panloob na hulihang likuran ng pag-iimbak',
+'backend-fail-connect' => 'Hindi makakunekta sa hulihang panlikod ng imbakan na "$1".',
+'backend-fail-internal' => 'Naganap ang isang hindi mapag-alamang kamalian sa huling likuran ng imbakan na "$1".',
+'backend-fail-contenttype' => 'Hindi matukoy ang uri ng nilalaman ng talaksang maiimbak sa "$1".',
+'backend-fail-batchsize' => 'Ang hulihang panlikuran ay nabigyan ng isang pulutong na $1 talaksan ng {{PLURAL:$1|operasyon|mga operasyon}}; ang hangganan ay $2 {{PLURAL:$2|operasyon|mga operasyon}}.',
+'backend-fail-usable' => 'Hindi maisulat ang talaksang $1 dahil sa hindi sapat na mga kapahintulutan o nawawalang mga direktoryo/mga lalagyan.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'Hindi makakunekta sa kalipunang pandato ng talaarawan para sa hulihang panlikuran ng imbakang "$1".',
+'filejournal-fail-dbquery' => 'Hindi maisapanahon ang kalipunan ng dato ng talaarawan para sa hulihang panlikod ng imbakang "$1".',
+
+# Lock manager
+'lockmanager-notlocked' => 'Hindi mabuksan ang "$1"; hindi ito nakakandado.',
+'lockmanager-fail-closelock' => 'Hindi maisara ang talaksan ng kandado para sa "$1".',
+'lockmanager-fail-deletelock' => 'Hindi mabura ang talaksan ng kandado para sa "$1".',
+'lockmanager-fail-acquirelock' => 'Hindi makamtan ang kandado para sa "$1".',
+'lockmanager-fail-openlock' => 'Hindi mabuksan ang talaksan ng kandado para sa "$1".',
+'lockmanager-fail-releaselock' => 'Hindi mapakawalan ang kandado para sa "$1".',
+'lockmanager-fail-db-bucket' => 'Hindi sapat na makaugnay sa mga kalipunang pandato ng kandado sa timba na $1.',
+'lockmanager-fail-db-release' => 'Hindi mapakawalan ang mga kandado sa kalipunan ng dato na $1.',
+'lockmanager-fail-svr-release' => 'Hindi mapakawalan ang mga kandado sa tagapaghain na $1.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'Nakaranas ng isang kamalian habang binubuksan ang talaksan para sa mga pagsusuri ng ZIP.',
@@ -1620,12 +1703,13 @@ Hindi ito maaaring suriin ng tama para sa kaligtasan.',
 'uploadstash-badtoken' => 'Hindi matagumpay ang pagsasagawa ng mga galaw, maaaring dahil wala nang bisa ang iyong mga katibayan ng kapangyarihang mamatnugot.  Subukang muli.',
 'uploadstash-errclear' => 'Nabigo ang paghawi ng mga talaksan.',
 'uploadstash-refresh' => 'Sariwain ang talaan ng mga talaksan',
+'invalid-chunk-offset' => 'Hindi katanggap-tanggap na pagbawi ng tipak',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Hindi pinayagan ang pagpunta',
-'img-auth-nopathinfo' => 'Nawawalang PATH_INFO.
-Ang tagapaghain mo ay hindi nakatakdang na maipasa ang kabatirang ito.
-Maaaring pang-CGI ito at hindi makatangkilik ng img_auth.
+'img-auth-nopathinfo' => 'Nawawala ang PATH_INFO.
+Ang tagapaghain mo ay hindi nakatakda na magpasa ng ganitong kabatiran.
+Maaaring pang-CGI ito at hindi sumusuporta ng img_auth.
 Tingnan ang https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'img-auth-notindir' => 'Ang hiniling na daan ay wala sa loob ng isinaayos na direktoryo ng pagkarga.',
 'img-auth-badtitle' => 'Hindi nagawang makabuo ng tanggap na pamagat mula sa "$1".',
@@ -1659,17 +1743,16 @@ Pakisuring muli kung tama ang URL at kung buhay ang sityo/sayt.',
 Pakisuri kung buhay ang sayt, maghintay ng kaunti at subukin uli.
 Maaaring ibigin mong subukin uli sa isang hindi gaanong abalang panahon.',
 
-'license' => 'Paglilisensya:',
-'license-header' => 'Paglilisensya',
+'license' => 'Paglilisensiya:',
+'license-header' => 'Paglilisensiya',
 'nolicense' => 'Walang napili',
 'license-nopreview' => '(Walang makuhang paunang tingin)',
 'upload_source_url' => ' (isang tanggap at napupuntahan ng publikong URL)',
 'upload_source_file' => ' (isang talaksan sa iyong kompyuter)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Ipinapakita nitong natatanging pahinang ang lahat ng naikargang mga talaksan.
-Bilang naitakda ipinapakita sa itaas ng talaan ang huling ikinargang mga talaksan.
-Mababago ang pagkakapangkat-pangkat sa pamamagitan ng pagpindot sa isang paulo ng pahabang kahanayan.',
+'listfiles-summary' => 'Ipinapakita ng natatanging pahinang ito ang lahat ng naikargang mga talaksan.
+Kapag sinala ng tagagamit, tanging mga talaksan lang kung saan nagkarga ang tagagamit na iyan ng pinaka kamakailang bersiyon ng talaksan ang ipinapakita.',
 'listfiles_search_for' => 'Hanapin ang pangalan ng midya:',
 'imgfile' => 'talaksan',
 'listfiles' => 'Talaan ng talaksan',
@@ -1679,7 +1762,7 @@ Mababago ang pagkakapangkat-pangkat sa pamamagitan ng pagpindot sa isang paulo n
 'listfiles_user' => 'Tagagamit',
 'listfiles_size' => 'Sukat',
 'listfiles_description' => 'Paglalarawan',
-'listfiles_count' => 'Mga bersyon',
+'listfiles_count' => 'Mga bersiyon',
 
 # File description page
 'file-anchor-link' => 'Talaksan',
@@ -1698,19 +1781,24 @@ Mababago ang pagkakapangkat-pangkat sa pamamagitan ng pagpindot sa isang paulo n
 'filehist-filesize' => 'Sukat ng talaksan',
 'filehist-comment' => 'Puna/Kumento',
 'filehist-missing' => 'Nawawala ang talaksan',
-'imagelinks' => 'Mga kawing ng talaksan',
+'imagelinks' => 'Paggamit ng talaksan',
 'linkstoimage' => 'Nakakawing ang sumusunod na {{PLURAL:$1|pahina|$1 mga pahina}} sa talaksang ito.',
 'linkstoimage-more' => 'Mahigit sa $1 {{PLURAL:$1|pahina|mga pahina}} ang nakakawing sa talaksang ito.
 Ipinapakita sa sumusunod na talaan ang {{PLURAL:$1|unang pahina lamang|unang $1 mga pahina lamang}} na nakakawing sa talaksang ito.
 Mayroong makukuhang [[Special:WhatLinksHere/$2|buong talaan]].',
 'nolinkstoimage' => 'Walang pahinang nakakawing sa talaksang ito.',
 'morelinkstoimage' => 'Tingnan ang [[Special:WhatLinksHere/$1|mas marami pang mga kawing]] para sa pahinang ito.',
+'linkstoimage-redirect' => '$1 (pagpapapunta ng talaksan sa ibang lugar) $2',
 'duplicatesoffile' => 'Ang sumusunod na {{PLURAL:$1|file is a duplicate|$1 mga talaksan ay mga kapareho}} ng talaksang ito ([[Special:FileDuplicateSearch/$2|mas marami pang mga detalye]]):',
 'sharedupload' => 'Ang talaksang ito ay nagmula sa $1 at maaaring gamitin ng iba pang mga proyekto.',
 'sharedupload-desc-there' => 'Ang talaksang ito ay nagmula sa $1 at maaaring gamitin sa ibang mga proyekto.
 Pakitingnan ang [$2 pahina ng paglalarawan ng talaksan] para sa iba pang kabatiran.',
 'sharedupload-desc-here' => 'Ang talaksang ito ay nagmula sa $1 at maaaring gamitin sa ibang mga proyekto.
 Ang paglalarawang nasa ibabaw ng [$2 pahina ng paglalarawan ng talaksan] nito doon ay ipinapakita sa ibaba.',
+'sharedupload-desc-edit' => 'Ang talaksang ito ay mula sa $1 at maaaring gamitin ng iba pang mga proyekto.
+Marahil ay nais mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawan ng talaksan] nito.',
+'sharedupload-desc-create' => 'Ang talaksang ito ay mula sa $1 at maaaring gamitin ng iba pang mga proyekto.
+Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawan ng talaksan] nito.',
 'filepage-nofile' => 'Walang talaksang umiiral sa pangalang ito.',
 'filepage-nofile-link' => 'Walang talaksang umiiral sa pangalang ito, ngunit maaari mong [$1 kargahin ito].',
 'uploadnewversion-linktext' => 'Magkarga ng isang bagong bersyon ng talaksang ito',
@@ -1745,6 +1833,7 @@ Ang paglalarawang nasa ibabaw ng [$2 pahina ng paglalarawan ng talaksan] nito do
 ** Nagkadalawang talaksan',
 'filedelete-edit-reasonlist' => 'Baguhin ang mga dahilan ng pagbura',
 'filedelete-maintenance' => 'Pansamantalang hindi pinagana ang pagbura at pagpapnumbalik ng mga talaksan habang nagpapanatili ng kaayusan.',
+'filedelete-maintenance-title' => 'Hindi mabura ang talaksan',
 
 # MIME search
 'mimesearch' => 'Maghanap ng MIME',
@@ -1792,7 +1881,7 @@ Ang paglalarawang nasa ibabaw ng [$2 pahina ng paglalarawan ng talaksan] nito do
 'statistics-users-active-desc' => 'Mga tagagamit na nagsagawa ng isang galaw/gawain sa huling {{PLURAL:$1|araw|$1 mga araw}}',
 'statistics-mostpopular' => 'Mga pinakarinarayong pahina',
 
-'disambiguations' => 'Mga pahina ng paglilinaw',
+'disambiguations' => 'Mga pahinang nakakawing sa mga pahina ng paglilinaw',
 'disambiguationspage' => 'Template:disambig',
 'disambiguations-text' => "Ang sumusunod ay mga pahinang may ugnay (link) sa isang '''pahinang naglilinaw'''.
 Dapat silang umugnay sa tamang paksa<br />
@@ -1840,6 +1929,8 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 'wantedpages' => 'Kinakailangang mga pahina',
 'wantedpages-badtitle' => 'Hindi tanggap na pamagat sa loob ng pangkat ng kinalabasan: $1',
 'wantedfiles' => 'Ninanais na mga talaksan',
+'wantedfiletext-cat' => 'Ang sumusunod na mga talaksan ay ginagamit ngunit hindi naman umiiral. Ang mga talaksang nagmumula sa mga repositoryong dayuhan ay maaariing nakalista kahit na umiiral. Ang anumang ganyang mga kamalian sa pagiging positibo ay <del>aalisin</del>. Bilang karagdagan, ang mga pahinang may nakabaon na mga talaksang hindi umiiral ay nakatala sa [[:$1]]',
+'wantedfiletext-nocat' => 'Ginagamit ang sumusunod na mga talaksan ngunit hindi naman umiiral. Ang mga talaksan mula sa mga repositoryong dayuhan ay maaaring nakalista kahit na umiiral. Ang ganyang mga kamalian sa pagiging positibo ay <del>aalisin</del>.',
 'wantedtemplates' => 'Ninanais na mga suleras',
 'mostlinked' => 'Pinakamaraming ugnay sa mga pahina',
 'mostlinkedcategories' => 'Pinakamaraming ugnay sa mga kategorya',
@@ -1848,9 +1939,10 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 'mostimages' => 'Pinakamaraming ugnay sa mga larawan',
 'mostrevisions' => 'Mga artikulong may pinakamaraming pagbabago',
 'prefixindex' => 'Lahat ng mga pahinang may unlapi',
+'prefixindex-namespace' => 'Lahat ng mga pahinang may unlapi ($1 puwang ng pangalan)',
 'shortpages' => 'Mga maiikling pahina',
 'longpages' => 'Mga mahahabang pahina',
-'deadendpages' => 'Mga pahinang walang panloob na ugnay (internal link)',
+'deadendpages' => 'Mga pahinang walang kawing panloob (internal link)',
 'deadendpagestext' => "Ang mga sumusunod na mga pahina'y hindi umuugnay sa ibang mga pahina sa wiking ito.",
 'protectedpages' => 'Mga nakaprotektang pahina',
 'protectedpages-indef' => 'Mga walang katiyakang proteksyon lamang',
@@ -1864,7 +1956,7 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 'listusers-editsonly' => 'Ipakita lamang ang mga tagagamit na gumawa/nakagawa na ng mga pagbabago',
 'listusers-creationsort' => 'Pagsama-samahin ayon sa petsa ng pagkakalikha',
 'usereditcount' => '$1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
-'usercreated' => 'Nalikha noong $1 sa ika-$2',
+'usercreated' => '{{GENDER:$3|Nalikha}} noong $1 sa ika-$2',
 'newpages' => 'Mga bagong pahina',
 'newpages-username' => 'Bansag:',
 'ancientpages' => 'Mga pinakalumang pahina',
@@ -1891,14 +1983,15 @@ na iba pang impormasyon tungkol sa mga aklat na hinahanap mo:',
 'booksources-invalid-isbn' => 'Tila mukhang hindi yata katanggap-tanggap ang ibinigay na ISBN; pakisuri kung may mga kamalian ang pagkakasip/pagkakakopya mula sa orihinal na pinagmulan.',
 
 # Special:Log
-'specialloguserlabel' => 'Tagagamit:',
-'speciallogtitlelabel' => 'Pamagat:',
+'specialloguserlabel' => 'Tagaganap:',
+'speciallogtitlelabel' => 'Pinupukol (pamagat o tagagamit):',
 'log' => 'Mga talaan',
 'all-logs-page' => 'Lahat ng mga pampublikong tala',
 'alllogstext' => 'Pinagsama-samang mga pagpapakita ng makukuhang mga talaan ng {{SITENAME}}.
 Maaari mong pakitirin/pakiputin ang ipinapakita sa pamamagitan ng pagpili ng uri ng mga talaan, ang pangalan ng tagagamit (maselan ang pagmamakiniliya ng panitik), o ang naaapektuhang pahina (maselan din ang pagmamakinilya ng panitik).',
 'logempty' => 'Walang katumbas na bagay sa talaan.',
 'log-title-wildcard' => 'Hanapin ang mga pamagat na nagsisimula sa tekstong ito',
+'showhideselectedlogentries' => 'Ipakita/itago ang napiling mga lahok sa talaan',
 
 # Special:AllPages
 'allpages' => 'Lahat ng pahina',
@@ -1916,6 +2009,12 @@ Maaari mong pakitirin/pakiputin ang ipinapakita sa pamamagitan ng pagpili ng uri
 'allpagesprefix' => 'Ipakita ang mga pahinang may unlaping:',
 'allpagesbadtitle' => 'Ang binagay na pamagat ng pahina ay hindi tinatanggap o may unlapi na tumuturo sa ibang wika o wiki.  Maaaring naglalaman ito ng isa o higit pa na mga karakter na hindi ginagamit bilang pamagat.',
 'allpages-bad-ns' => 'Wala sa {{SITENAME}} ang espasyo ng pangalang "$1".',
+'allpages-hide-redirects' => 'Itago ang mga pagpapapunta sa iba',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Tinatanaw mo ang isang bersyong nakatago ng pahinang ito, na maaaring $1 na ang katagalan.',
+'cachedspecial-viewing-cached-ts' => 'Tinatanaw mo ang isang bersyong nakatago ng pahinang ito, na maaaring hindi buo ang katalagahan.',
+'cachedspecial-refresh-now' => 'Tingnan ang pinakahuli.',
 
 # Special:Categories
 'categories' => 'Mga kategorya',
@@ -1932,12 +2031,13 @@ Tingnan din ang [[Special:WantedCategories|ninanais na mga kategorya]].',
 'sp-deletedcontributions-contribs' => 'mga ambag',
 
 # Special:LinkSearch
-'linksearch' => 'Panlabas na mga kawing',
+'linksearch' => 'Paghanap sa mga kawing na panlabas',
 'linksearch-pat' => 'Huwaran ng hanap',
 'linksearch-ns' => 'Pangalang espasyo',
 'linksearch-ok' => 'Hanapin',
-'linksearch-text' => 'Maaaring gamitin ang mga "barahang panghalili/pamalit" (mga \'\'wildcard\'\') katulad ng "*.wikipedia.org".<br />
-Sinusuportahang mga protokolo: <tt>$1</tt>',
+'linksearch-text' => 'Maaaring gamitin ang mga "barahang pamalit" na katulad ng "*.wikipedia.org".
+Kailangan ng kahit na isang nasasakupang mataas ang kaantasan, halimbawa na ang "*.org".<br />
+Sinusuportahang mga protokolo: <tt>$1</tt> (huwag idagdag ang anuman sa mga ito sa paghahanap mo).',
 'linksearch-line' => '$1 nakakawing/nakaugnay mula sa $2',
 'linksearch-error' => "Lilitaw lamang ang mga \"barahang-pamalit\" (''wildcard'') sa simula ng pangunahin/punong-abalang pangalan.",
 
@@ -1984,9 +2084,9 @@ Maaaring may mga [[{{MediaWiki:Listgrouprights-helppage}}|karagdagang kabatiran]
 'emailuser' => 'Padalhan ng e-liham ang tagagamit',
 'emailpage' => 'Magpadala ng e-liham sa tagagamit',
 'emailpagetext' => 'Magagamit mo ang pormularyo sa ibaba para makapagpadala ng mensahe sa pamamagitan ng isang e-liham para sa tagagamit na ito.
-Ang ipinasok mong adres ng e-liham sa [[Special:Preferences|iyong mga kagustuhan ng tagagamit]] ay lilitaw bilang adres na "Mula kay" ng e-liham, para tuwirang makatugon sa iyo ang nakatanggap.',
+Ang ipinasok mong direksiyong e-liham sa [[Special:Preferences|iyong mga kagustuhan ng tagagamit]] ay lilitaw bilang adres na "Mula kay" ng e-liham, para tuwirang makatugon sa iyo ang nakatanggap.',
 'usermailererror' => 'Pagkakamaling sanhi ng pagkakabalik ng liham mula sa puntirya:',
-'defemailsubject' => 'E-liham ng {{SITENAME}}',
+'defemailsubject' => 'E-liham ng {{SITENAME}} mula sa tagagamit na si "$1"',
 'usermaildisabled' => 'Hindi pinagana ang e-liham ng tagagamit',
 'usermaildisabledtext' => 'Hindi maaaring magpadala ng e-liham sa ibang mga tagagamit sa wiki na ito.',
 'noemailtitle' => 'Walang adres ng e-liham',
@@ -2019,10 +2119,12 @@ Ang ipinasok mong adres ng e-liham sa [[Special:Preferences|iyong mga kagustuhan
 'watchlistfor2' => 'Para sa $1 $2',
 'nowatchlist' => 'Wala kang pahinang binabantayan.',
 'watchlistanontext' => 'Paki $1 upang makita o mabago ang mga aytem sa iyong binabantayan.',
-'watchnologin' => 'Di ka naka-lagda',
+'watchnologin' => 'Hindi nakalagda',
 'watchnologintext' => 'Dapat kang [[Special:UserLogin|nakalagda]] upang mabago ang talaan mo ng mga binabantayan.',
+'addwatch' => 'Idagdag sa bantayan',
 'addedwatchtext' => "Dinagdag na ang pahinang \"[[:\$1]]\" sa iyong [[Special:Watchlist|Babantayan]].
 Makikita doon ang lahat ng mga susunod na pagbabago sa pahinang ito pati na ang usapang pahina, at ang pahina ay makikitang sa '''malalaking titik''' ('''''bold''''') sa [[Special:RecentChanges|tala ng mga huling binago]] para madaling makita.",
+'removewatch' => 'Alisin mula sa bantayan',
 'removedwatchtext' => 'Ang pahinang "[[:$1]]" ay tinanggal na mula sa [[Special:Watchlist|iyong talaan ng binabantayan]].',
 'watch' => 'Bantayan ito',
 'watchthispage' => 'Bantayan ang pahinang ito',
@@ -2038,13 +2140,14 @@ Makikita doon ang lahat ng mga susunod na pagbabago sa pahinang ito pati na ang
 'watchmethod-list' => 'sinusuri ang binabantayang mga pahina para sa mga kamakailan lamang na mga pagbabago',
 'watchlistcontains' => 'Naglalaman ng $1 {{PLURAL:$1|pahina|mga pahina}} ang iyong talaan ng mga binabantayan.',
 'iteminvalidname' => "May suliranin ang bagay na '$1', hindi tanggap na pangalan...",
-'wlnote' => "Nasa ibaba ang {{PLURAL:$1|pinakahuling pagbabago|pinakahuling '''$1''' mga pagbabago}} sa loob ng huling {{PLURAL:$2|oras|'''$2''' mga oras}}.",
+'wlnote' => "Nasa ibaba ang {{PLURAL:$1|pinakahuling pagbabago|pinakahuling '''$1''' mga pagbabago}} sa loob ng huling {{PLURAL:$2|oras|'''$2''' mga oras}}, magmula noong $3 sa ganap na ika-$4.",
 'wlshowlast' => 'Ipakita ang huling $1 mga oras $2 mga araw $3',
 'watchlist-options' => 'Mga pagpipilian para sa talaan ng mga binabantayan',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Isinasama sa mga binabantayan...',
 'unwatching' => 'Tinatanggal mula sa mga binabantayan...',
+'watcherrortext' => 'Naganap ang isang kamalian habang binabago ang mga katakdaan ng bantayan mo para sa "$1".',
 
 'enotif_mailer' => 'Tagapagpadala ng mga Pahayag ng {{SITENAME}}',
 'enotif_reset' => 'Tatakan ang lahat ng pahina bilang nadalaw na',
@@ -2056,29 +2159,35 @@ Makikita doon ang lahat ng mga susunod na pagbabago sa pahinang ito pati na ang
 'enotif_lastvisited' => 'Tingnan ang $1 para sa lahat ng mga pagbabago magmula noong huling pagdalaw mo.',
 'enotif_lastdiff' => 'Tingnan ang $1 para makita ang pagbabagong ito.',
 'enotif_anon_editor' => 'hindi nakikilalang tagagamit $1',
-'enotif_body' => 'Mahal na $WATCHINGUSERNAME,
+'enotif_body' => 'Mahal naming $WATCHINGUSERNAME,
 
 
-Ang pahinang $PAGETITLE ng {{SITENAME}} ay $CHANGEDORCREATED noong $PAGEEDITDATE ni $PAGEEDITOR, tingnan ang $PAGETITLE_URL para sa pangkasalukuyang rebisyon.
+Ang pahinang $PAGETITLE ng {{SITENAME}} ay $CHANGEDORCREATED ni $PAGEEDITOR noong $PAGEEDITDATE, tingnan ang $PAGETITLE_URL para sa pangkasalukuyang rebisyon.
 
 $NEWPAGE
 
-Buod mula sa patnugot: $PAGESUMMARY $PAGEMINOREDIT
+Buod ng patnugot: $PAGESUMMARY $PAGEMINOREDIT
 
 Makipagugnayan sa patnugot:
 liham: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
 Wala nang iba pang mga pagpapahayag sa pagkakataon ng pagkakaroon ng karagdagang mga pagbabago maliban na lamang kung dadalawin mo ang pahinang ito.
-Maaari mo ring muling itakda ang mga watawat na pangpag-uulat para sa lahat ng mga pahinang binabantayan mo sa loob ng iyong talaan ng mga binabantayan.
+Maaari mo ring itakda muli ang mga watawat na pangpagpapabatid para sa lahat ng mga pahinang binabantayan mo sa loob ng iyong talaan ng mga binabantayan.
 
-             Ang iyong palakaibigang sistemang pangpag-uulat ng {{SITENAME}}
+Ang iyong maginhawang sistema ng pagpapabatid ng {{SITENAME}}
 
 --
-Para baguhin ang mga pagtatakda ng iyong talaan ng mga binabantayan, puntahan ang
+Upang mabago ang mga katakdaan sa iyong talaan ng mga binabantayan, dalawin ang
+{{canonicalurl:{{#special:Preferences}}}}
+
+Upang baguhin ang mga katakdaan ng bantayan mo, dumalaw sa
+{{canonicalurl:{{#special:EditWatchlist}}}}
+
+Upang burahin ang pahina mula sa pahina mo ng mga binabantayan, dumalaw sa
 $UNWATCHURL
 
-Balik-tugon at karagdagang tulong:
+Tugon at karagdagang tulong:
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 
 # Delete
@@ -2137,14 +2246,17 @@ Pakipindot ang pindutang \"ibalik\" (''back'') at ikarga uli ang pinanggalingan
 
 # Protect
 'protectlogpage' => 'Talaan ng pagsasanggalang',
-'protectlogtext' => 'Nasa ibaba ang isang talaan ng mga pagkandado at pagtanggal na mga pagkandado ng pahina.
-Tingnan ang [[Special:ProtectedPages|talaan ng nakasanggalang na mga pahina]] para sa talaan ng mga pangkasalukuyang gumaganang mga pagsasanggalang ng pahina.',
+'protectlogtext' => 'Nasa ibaba ang isang talaan ng mga pagbabago sa mga pruteksiyon ng pahina.
+Tingnan ang [[Special:ProtectedPages|talaan ng pinuprutektahang mga pahina]] para sa talaan ng kasalukuyang gumaganang mga pagprutekta ng pahina.',
 'protectedarticle' => 'ipinagsanggalang ang "[[$1]]"',
 'modifiedarticleprotection' => 'binago ang antas ng panananggalang para sa "[[$1]]"',
-'unprotectedarticle' => 'tinanggal sa panananggalang ang "[[$1]]"',
+'unprotectedarticle' => 'tinanggal ang pruteksiyon mula sa "[[$1]]"',
 'movedarticleprotection' => 'inilipat ang pagtatakdang pampanananggalang mula sa "[[$2]]" patungong "[[$1]]"',
 'protect-title' => 'Palitan ang antas ng panananggalang para sa "$1"',
+'protect-title-notallowed' => 'Tingnan ang antas ng proteksiyon ng "$1"',
 'prot_1movedto2' => 'Inilipat ang [[$1]] patungo sa [[$2]]',
+'protect-badnamespace-title' => 'Hindi mapupruteksiyunang puwang ng pangalan',
+'protect-badnamespace-text' => 'Hindi mapupruteksiyunan ang mga pahinang nasa puwang na pampangalang ito.',
 'protect-legend' => 'Pagtibayin/tiyakin ang panananggalang',
 'protectcomment' => 'Dahilan:',
 'protectexpiry' => 'Magtatapos sa:',
@@ -2166,6 +2278,7 @@ Maaari mong baguhin ang antas ng panananggalang ng pahina, ngunit hindi ito maka
 'protect-level-sysop' => "Mga tagapangasiwa (''sysop'') lamang",
 'protect-summary-cascade' => 'baita-baitang',
 'protect-expiring' => 'mawawalan ng bisa sa $1 (UTC)',
+'protect-expiring-local' => 'magtatapos sa $1',
 'protect-expiry-indefinite' => 'walang katiyakan',
 'protect-cascade' => 'Ipagsanggalang ang mga pahinang kasama/kabilang sa pahinang ito (baita-baitang na panananggalang)',
 'protect-cantedit' => 'Hindi mo mababago ang mga antas ng panananggalang ng pahinang ito, dahil wala kang pahintulot para baguhin ito.',
@@ -2206,8 +2319,8 @@ Maaari mong baguhin ang antas ng panananggalang ng pahina, ngunit hindi ito maka
 'undeletepagetext' => 'Ang sumusunod na {{PLURAL:$1|pahina ay nabura na subalit |$1 mga pahina ay nabura na subalit}} nananatili pa rin sa sinupan/arkibo at maaaring bang ibalik mula sa pagkakabura.
 Maaaring palagiang linisin o tanggalan ng laman ang sinupan/arkibo.',
 'undelete-fieldset-title' => 'Ibalik ang mga pagbabago',
-'undeleteextrahelp' => "Para maibalik ang kabuoan ng kasaysayan ng pahina, iwanang walang laman ang mga kahong lagayan ng mga tsek at pindutin ang '''''Ibalik'''''. Para maisagawa ang pagbabalik na may pagpili, lagyan ng tsek ang mga kahong may kaugnayan sa pagpapabalik ng mga pagbabago at pindutin ang '''''Ibalik'''''.
-Malilinis ang pook ng kumento/puna at iba pang mga kahong lagayan ng mga tsek kapag pinindot ang '''''Magtakda uli'''''.",
+'undeleteextrahelp' => "Upang maibalik ang buong kasaysayan ng pahina, iwanang walang mga tsek ang lahat ng mga kahon at lagitikin ang '''''{{int:undeletebtn}}'''''.
+Upang makapagsagawa ng pagpapanumbalik na may pinipili, tsekan ang mga kahon na tumutugma sa mga pagbabagong ibabalik, at pindutin ang '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => 'Sininop/nilagay sa sinupan o arkibo ang $1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
 'undeletehistory' => 'Kapag ibinalik mo ang pahina, ibabalik ang lahat ng mga pagbabago sa kasaysayan.
 Kapag nalikha ang isang bagong pahinang may katulad na pangalan mula noong pagbura, lilitaw ang naibalik na mga pagbabago sa sinaunang kasaysayan.',
@@ -2231,6 +2344,7 @@ Sa ganitong mga pagkakataon, dapat mong tanggalin ang tsek o huwag itago ang pin
 
 Tingnan ang [[Special:Log/delete|talaan ng pagbubura]] para sa isang talaan ng mga kamakailan lamang na mga pagbubura at mga pagbabalik mula sa pagkakabura.",
 'undelete-header' => 'Tingnan ang [[Special:Log/delete|talaan ng pagbubura]] para sa kamakailan lamang na  binura/naburang mga pahina.',
+'undelete-search-title' => 'Hanapin ang binurang mga pahina',
 'undelete-search-box' => 'Hanapin ang binura/naburang mga pahina',
 'undelete-search-prefix' => 'Ipakita ang mga pahinang nagsisimula sa:',
 'undelete-search-submit' => 'Maghanap',
@@ -2239,6 +2353,7 @@ Tingnan ang [[Special:Log/delete|talaan ng pagbubura]] para sa isang talaan ng m
 'undelete-bad-store-key' => 'Hindi maibalik mula sa pagkakabura ang pagbabagong pangtalaksang may tatak ng oras na $1: nawawala na ang talaksan bago pa maganap ang pagbura.',
 'undelete-cleanup-error' => 'Mali ang pagbura sa hindi ginagamit na talaksan ng sinupan/arkibong "$1".',
 'undelete-missing-filearchive' => 'Hindi naibalik mula sa pagkakabura ang sinupan/arkibo ng talaksang may ID na $1 dahil wala ito sa kalipunan ng dato.  Maaaring naibalik na ito dati mula sa pagkakabura.',
+'undelete-error' => 'Kamalian sa hindi pagbura ng pahina',
 'undelete-error-short' => 'May mali sa pagkakabalik mula sa pagkakabura ng talaksang: $1',
 'undelete-error-long' => 'Nakaranas ng mga kamalian habang ibinabalik mula sa pagkakabura ang talaksang:
 
@@ -2249,13 +2364,15 @@ $1',
 # Namespace form on various pages
 'namespace' => 'Espasyo ng pangalan:',
 'invert' => 'Baligtarin and pinili',
+'tooltip-invert' => 'Tsekan ang kahong ito upang ikubli ang mga pagbabago sa mga pahina sa loob ng napiling mga puwang ng pangalan (at ang kaugnay na puwang ng pangalan kung may tsek)',
 'namespace_association' => 'Kaugnay na mga puwang na pampangalan',
+'tooltip-namespace_association' => 'Tsekan ang kahong ito upang maisama ang puwang na pampangalan ng usapan o paksa na may kaugnayan sa napiling puwang na pampangalan',
 'blanknamespace' => '(Pangunahin)',
 
 # Contributions
 'contributions' => 'Mga ambag ng tagagamit',
 'contributions-title' => 'Mga ambag ng tagagamit na si $1',
-'mycontris' => 'Aking mga ginawa',
+'mycontris' => 'Mga ambag ko',
 'contribsub2' => 'Para kay $1 ($2)',
 'nocontribs' => 'Walang pagbabagong nakita sa binigay na kondisyon.',
 'uctop' => ' (itaas)',
@@ -2289,7 +2406,7 @@ Ang pinakahuling entrada sa talaan  ng pagharang ay ibinigay sa ibaba para sa pa
 'nolinkshere-ns' => "Walang pahinang nakakawing sa '''[[:$1]]''' mula sa loob ng napiling espasyo ng pangalan.",
 'isredirect' => 'pahinang panturo/panuto',
 'istemplate' => 'pagsasali',
-'isimage' => 'kawing ng/sa larawan',
+'isimage' => 'kawing sa talaksan',
 'whatlinkshere-prev' => '{{PLURAL:$1|nakaraang|nakaraang $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|susunod|susunod na $1}}',
 'whatlinkshere-links' => '← mga kawing',
@@ -2338,7 +2455,7 @@ Punan ang espesipikong dahilan sa ibaba (halimbawa, magbanggit ng partikular na
 'badipaddress' => 'Hindi tanggap na adres ng IP',
 'blockipsuccesssub' => 'Matagumpay ang pagharang/paghadlang',
 'blockipsuccesstext' => 'Hinadlangan ang  [[Special:Contributions/$1|$1]].<br />
-Tingnan ang [[Special:BlockList|talaan ng mga hinadlangang IP]] upang makita ang mga paghadlang.',
+Tingnan ang [[Special:BlockList|talaan ng mga hinadlangan]] upang suriin ang mga paghadlang.',
 'ipb-blockingself' => 'Hahadlangan mo na ang sarili mo!  Nakatitiyak ka bang nais mong gawin iyan?',
 'ipb-confirmhideuser' => 'Hahadlangan mo na ang isang tagagamit na pinagagana ang "ikubli ang tagagamit".  Susupilin nito ang pangalan ng tagagamit sa lahat ng mga pagpapasok sa mga tala at mga talaan.  Nakatitiyak ka bang nais mong gawin iyan?',
 'ipb-edit-dropdown' => 'Baguhin ang mga dahilan sa pagharang',
@@ -2358,6 +2475,7 @@ Tingnan ang [[Special:BlockList|talaan ng mga hinadlangang IP]] upang makita ang
 'blocklist-userblocks' => 'Itago ang mga paghahadlang ng akawnt',
 'blocklist-tempblocks' => 'Pansamantalang ikubli ang mga pagharang',
 'blocklist-addressblocks' => 'Itago ang isahang mga paghadlang sa IP',
+'blocklist-rangeblocks' => 'Itago ang mga tipak ng nasasaklawan',
 'blocklist-timestamp' => 'Tatak ng oras',
 'blocklist-target' => 'Puntirya',
 'blocklist-expiry' => 'Magtatapos sa',
@@ -2380,6 +2498,7 @@ Tingnan ang [[Special:BlockList|talaan ng mga hinadlangang IP]] upang makita ang
 'unblocklink' => 'tanggalin ang pagharang/paghadlang',
 'change-blocklink' => 'baguhin ang pagharang/paghadlang',
 'contribslink' => 'ambag',
+'emaillink' => 'ipadala ang e-liham',
 'autoblocker' => 'Kusang hinarang dahil ang iyong adres ng IP ay kamakailan lamang na ginamit ni "[[User:$1|$1]]".
 Ang dahilang ibinigay para sa pagharang kay $1 ay: "$2"',
 'blocklogpage' => 'Tala ng pagharang',
@@ -2389,9 +2508,9 @@ Ibinigay sa ibaba ang talaan ng pagharang upang mapagsanggunian:',
 Ang tala ng pagpigil ay ibinigay sa ibaba upang mapagsanggunian:',
 'blocklogentry' => 'hinarang/hinadlangan si [[$1]] na may oras/panahon ng pagtatapos na $2 $3',
 'reblock-logentry' => 'binago ang itinakdang pagharang/paghadlang kay [[$1]] na may oras/panahon ng pagtatapos na $2 $3',
-'blocklogtext' => 'Tala ito ng paghaharang at pagpapawawalang bisa ng pagharang/paghadlang.
-Hindi nakatala rito ang mga awtomatiko/kusang hinarang/hinadlangang mga adres ng IP.
-Tingnan ang [[Special:BlockList|talaan ng mga hinarang na/hinadlangang IP]] para sa talaan ng pangkasalukuyang gumagana pang mga pinagbabawalan at mga pagharang/paghadlang.',
+'blocklogtext' => 'Isa itong talaan ng mga gawain ng pagharang at hindi pagharang sa tagagamit.
+Hindi nakalista ang mga tirahan ng IP ng kusang hinadlangan.
+Tingnan ang [[Special:BlockList|talaan ng pagharang]] para sa lista ng kasalukuyang may bisa na mga pagbabawal at mga paghadlang.',
 'unblocklogentry' => 'tinanggal ang pagharang/paghadlang kay $1',
 'block-log-flags-anononly' => 'mga di-kilalang tagagamit lamang',
 'block-log-flags-nocreate' => 'Nakapatay ang paglikha ng akawnt',
@@ -2445,6 +2564,7 @@ Huwag kalimutang [[Special:UnlockDB|tanggalin ang kandado]] pagkaraan mong maisa
 'lockfilenotwritable' => "Hindi masusulatan ang talaksang pangkandado ng kalipunan ng dato.
 Para ikandado o tanggalin ang kandado ng kalipunan ng dato, kailangan nitong maging nasusulatan/masusulatan ng serbidor ng ''web''.",
 'databasenotlocked' => 'Hindi nakakandado ang kalipunan ng datos.',
+'lockedbyandtime' => '(ni {{GENDER:$1|$1}} noong $2 sa ganap na ika- $3)',
 
 # Move page
 'move-page' => 'Ilipat ang $1',
@@ -2517,7 +2637,7 @@ Pumili muli ng ibang pangalan.',
 
 Mayroon na ang pupuntahang artikulo na "[[$1]]". Nais mo bang burahin ito para magbigay daan para sa paglipat?',
 'delete_and_move_confirm' => 'Oo, burahin ang pahina',
-'delete_and_move_reason' => 'Binura upang makalipat',
+'delete_and_move_reason' => 'Binura upang makapagbigay ng daan para sa paglipat mula sa "[[$1]]"',
 'selfmove' => 'Magkatulad ang pinagmulan at pupuntahan ng mga titulo; hindi mailipat ang isang pahina sa kanyang sarili.',
 'immobile-source-namespace' => 'Hindi mailipat ang mga pahinang nasa espasyo ng pangalang "$1"',
 'immobile-target-namespace' => 'Hindi mailipat ang mga pahina patungo sa espasyo ng pangalang "$1"',
@@ -2546,9 +2666,11 @@ Pumili lang po ng ibang pangalan.',
 Para ilabas ang mga pahina, ipasok ang mga pamagat sa tekstong kahon sa ibaba, isang pamagat bawat guhit, at piliin kung gusto mo rin ang kasalukuyang bersyon o mga lumang bersyon, kasama ang mga pahina ng kasaysayan, o iyon lamang kasalukuyang bersyon kasama ang mga kaalaman tungkol sa huling binago.
 
 Sa huling kaso, maaari mong gumamit ng ungay, hal. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] para sa pahinang "[[{{MediaWiki:Mainpage}}]]".',
+'exportall' => 'Iluwas ang lahat ng mga pahina',
 'exportcuronly' => 'Isama lamang ang kasalukuyang rebisyon, hindi ang buong kasaysayan',
 'exportnohistory' => "----
 '''Tandaan:''' Nakapatay ang paglalabas ng buong kasaysayan ng pahina ng mga pahina sa pamamagitan ng ''form'' na ito dahil maaaring bumagal ang sayt.",
+'exportlistauthors' => 'Magsama ng isang buong listahan ng mga tagapab-ambag para sa bawat isang pahina',
 'export-submit' => 'Magluwas',
 'export-addcattext' => 'Magdagdag ng mga pahina mula sa kategorya:',
 'export-addcat' => 'Magdagdag',
@@ -2581,6 +2703,8 @@ Pakidalaw ang [//www.mediawiki.org/wiki/Localisation Lokalisasyong MediaWiki] at
 'thumbnail_error' => "May kamalian sa paglikha ng kagyat (''thumbnail''): $1",
 'djvu_page_error' => 'Wala sa nasasakupan ang pahinang DjVu',
 'djvu_no_xml' => 'Hindi makuha ang XML para sa talaksang DjVu',
+'thumbnail-temp-create' => 'Hindi nakalikha ng pansamantalang talaksan ng kagyat',
+'thumbnail-dest-create' => 'Hindi nasagip ang kagyat sa kapupuntahan',
 'thumbnail_invalid_params' => "Hindi tanggap ang mga parametro para sa kagyat (''thumbnail'')",
 'thumbnail_dest_directory' => 'Hindi malikha ang papuntahang direktoryo',
 'thumbnail_image-type' => 'Hindi tinatangkili ang uri ng larawan',
@@ -2625,6 +2749,11 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'import-upload' => 'Magkarga ng datos na XML',
 'import-token-mismatch' => 'Nawala ang dato ng pagpupulong.  Pakisubok muli.',
 'import-invalid-interwiki' => 'Hindi maangkat mula sa tinukoy na wiki.',
+'import-error-edit' => 'Hindi naangkat ang pahinang "$1" dahil  wala kang pahintulot na baguhin ito.',
+'import-error-create' => 'Hindi naangkat ang "$1" dahil wala kang pahintulot na likhain ito.',
+'import-error-interwiki' => 'Hindi naangkat ang pahinang "$1" dahil ang pangalan nito ay nakalaan para sa pagkakawing na panlabas (interwiki).',
+'import-error-special' => 'Hindi naangkat ang pahinang "$1" dahil pag-aari ito ng isang natatanging puwang na pampangalan na hindi nagpapahintulot ng mga pahina.',
+'import-error-invalid' => 'Hindi naangkat ang pahinang "$1" dahil hindi katanggap-tanggap ang pangalan nito.',
 
 # Import log
 'importlogpage' => 'Talaan ng pagaangkat',
@@ -2634,12 +2763,23 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'import-logentry-interwiki' => 'Na-i-transwiki na ang $1',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|pagbabago|mga pagbabago}} mula sa $2',
 
+# JavaScriptTest
+'javascripttest' => 'Pagsubok sa JavaScript',
+'javascripttest-disabled' => 'Hindi gumagana ang tungkuling ito sa wiking ito.',
+'javascripttest-title' => 'Pinatatakbo ang mga pagsubok ng $1',
+'javascripttest-pagetext-noframework' => 'Nakalaan ang pahinang ito para sa pagpapatakbo ng mga pagsubok ng JavaScript.',
+'javascripttest-pagetext-unknownframework' => 'Hindi napag-aalamang balangkas ng pagsubok na "$1".',
+'javascripttest-pagetext-frameworks' => 'Mangyaring pumili ng isa sa sumusunod na mga  balangkas na pangsubok: $1',
+'javascripttest-pagetext-skins' => 'Pumili ng isang pabalat na patatakbuhan ng mga pagsubok:',
+'javascripttest-qunit-intro' => 'Tingnan ang [$1 dokumentasyon ng pagsubok] sa mediawiki.org.',
+'javascripttest-qunit-heading' => 'Pook na subukan ng QUnit ng JavaScript ng MediaWiki',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Ang iyong pahina ng tagagamit',
 'tooltip-pt-anonuserpage' => 'Ang pahina ng tagagamit para sa IP na iyong binabago bilang',
 'tooltip-pt-mytalk' => 'Ang iyong pahina ng usapan',
 'tooltip-pt-anontalk' => 'Usapang tungkol sa mga pagbabagong ginawa sa ip address na ito',
-'tooltip-pt-preferences' => 'Aking mga kagustuhan',
+'tooltip-pt-preferences' => 'Mga nais ko',
 'tooltip-pt-watchlist' => 'Ang talaan ng mga pagbabago sa mga pahinang binabantayan mo',
 'tooltip-pt-mycontris' => 'Talaan ng mga ambag mo',
 'tooltip-pt-login' => 'Hinihimok kang lumagda, bagaman hindi ito kinakailangan.',
@@ -2651,7 +2791,7 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'tooltip-ca-viewsource' => 'Nakaprotekta ang pahinang ito. Makikita mo lamang ang pinagmulan (source) nito.',
 'tooltip-ca-history' => 'Nakaraang bersyon ng pahinang ito.',
 'tooltip-ca-protect' => 'Iprotekta ang pahinang ito',
-'tooltip-ca-unprotect' => 'Huwag prutektahan ang pahinang ito',
+'tooltip-ca-unprotect' => 'Baguhin ang pruteksiyon ng pahinang ito',
 'tooltip-ca-delete' => 'Burahin ang pahinang ito',
 'tooltip-ca-undelete' => 'Ibalik ang mga pagbabagong ginawa sa pahinang ito bago ito binura',
 'tooltip-ca-move' => 'Ilipat ang pahinang ito',
@@ -2694,6 +2834,8 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'tooltip-diff' => 'Ipakita ang mga pagbabagong ginawa mo sa teksto.',
 'tooltip-compareselectedversions' => 'Tingnan ang pagkakaiba sa pagitan ng dalawang napiling bersyon ng pahinang ito.',
 'tooltip-watch' => 'Idagdag ang pahinang ito sa iyong tala ng mga binabantayan',
+'tooltip-watchlistedit-normal-submit' => 'Tanggalin ang mga pamagat',
+'tooltip-watchlistedit-raw-submit' => 'Isapanahon ang bantayan',
 'tooltip-recreate' => 'Muling likhain ang pahina kahit na nabura na ito',
 'tooltip-upload' => 'Simulan ang pagkarga',
 'tooltip-rollback' => 'Ibinabalik ng "Pagulungin pabalik sa dati" ang (mga) pagbabago sa pahinang ito patungo sa huling bersyon ng huling tagapagambag sa pamamagitan ng isang pindot lamang.',
@@ -2748,6 +2890,20 @@ Maaaring dahil ito sa isang kawing sa isang nakatalang hinarang dahil di-kinaisn
 'spambot_username' => "Paglilinis ng ''spam'' ng MediaWiki",
 'spam_reverting' => "Ibinabalik sa huling bersyon na 'di-naglalaman ng mga kawing sa $1",
 'spam_blanking' => 'Lahat ng mga pagbabago ay naglalaman ng mga kawing sa $1, pagpapatlang',
+'spam_deleting' => 'Lahat ng mga pagbabago ay naglalaman ng mga kawing sa $1, binubura',
+
+# Info page
+'pageinfo-title' => 'Kabatiran para sa "$1"',
+'pageinfo-header-edits' => 'Mga pagpatnugot',
+'pageinfo-header-watchlist' => 'Bantayan ko',
+'pageinfo-header-views' => 'Mga pagtanaw',
+'pageinfo-subjectpage' => 'Pahina',
+'pageinfo-talkpage' => 'Pahina ng usapan',
+'pageinfo-watchers' => 'Bilang ng mga nagbabantay',
+'pageinfo-edits' => 'Bilang ng mga pamamatnugot',
+'pageinfo-authors' => 'Bilang ng magkakabukod na mga may-akda',
+'pageinfo-views' => 'Bilang ng mga pagtanaw',
+'pageinfo-viewsperedit' => 'Pagtanaw sa bawat pagbago',
 
 # Skin names
 'skinname-standard' => 'Klasiko',
@@ -2803,7 +2959,7 @@ Maaaring manganib ang iyong sistema kapag ipinagana mo ito.",
 'svg-long-desc' => 'Talaksang SVG, nasa mga bilang na $1 × $2 mga piksel, sukat ng talaksan: $3',
 'show-big-image' => 'Buong resolusyon (kalinawan)',
 'show-big-image-preview' => 'Sukat ng paunang-tingin na ito: $1.',
-'show-big-image-other' => 'Iba pang mga resolusyon: $1.',
+'show-big-image-other' => 'Iba pang {{PLURAL:$2|resolusyon|mga resolusyon}}: $1.',
 'show-big-image-size' => '$1 x $2 mga piksel',
 'file-info-gif-looped' => 'nasilo na',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|banhay|mga banhay}}',
@@ -2825,6 +2981,11 @@ Maaaring manganib ang iyong sistema kapag ipinagana mo ito.",
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'hours-abbrev' => '$1o',
+'seconds' => '{{PLURAL:$1|$1 segundo|$1 mga segundo}}',
+'minutes' => '{{PLURAL:$1|$1 minuto|$1 mga minuto}}',
+'hours' => '{{PLURAL:$1|$1 horas|$1 mga oras}}',
+'days' => '{{PLURAL:$1|$1 araw|$1 mga araw}}',
+'ago' => '$1 na ang nakalipas',
 
 # Bad image list
 'bad_image_list' => 'Ang anyo ay ang mga sumusunod:
@@ -3035,6 +3196,9 @@ Likas na nakatakdang itago ang iba pa.
 
 # EXIF attributes
 'exif-compression-1' => 'Walang kompresyon',
+'exif-compression-2' => 'CCITT Pangkat 3 1-kodigo sa haba ng pagtakbo ng Pangdimensiyong Huffman na May Bahagyang Pagbabago',
+'exif-compression-3' => 'Kodigo ng Pangkat 3 ng CCITT',
+'exif-compression-4' => 'Kodigo ng Pangkat 4 ng CCITT',
 
 'exif-copyrighted-true' => 'Nakakarapatang-ari',
 'exif-copyrighted-false' => 'Nasasakupan ng madla',
@@ -3046,9 +3210,9 @@ Likas na nakatakdang itago ang iba pa.
 'exif-orientation-3' => 'Pinaikot ng 180°',
 'exif-orientation-4' => 'Pinihit ng patayo',
 'exif-orientation-5' => 'Pinaikot ng 90° CCW at pinihit ng patayo',
-'exif-orientation-6' => 'Pinaikot ng 90° CW',
+'exif-orientation-6' => 'Pinaikot ng 90° na salungat sa galaw ng kamay ng orasan',
 'exif-orientation-7' => 'Pinaikot ng 90° CW at pinihit ng patayo',
-'exif-orientation-8' => 'Pinaikot ng 90° CCW',
+'exif-orientation-8' => 'Pinaikot ng 90° na nakaayon sa galaw ng kamay ng orasan',
 
 'exif-planarconfiguration-1' => 'pagkaayos sa malalaking bahagi (chunky)',
 'exif-planarconfiguration-2' => 'planar na pagkaayos',
@@ -3338,6 +3502,12 @@ Pakitiyak kung ibig mo talagang likhain muli ang pahinang ito.",
 'confirm-purge-top' => 'Linisin/hawiin ang taguan ng pahinang ito?',
 'confirm-purge-bottom' => 'Nililinis ng pagdadalisay ng isang pahina ang taguan at mapipilitang palitawin ang pinakapangkasalukuyang bersyon.',
 
+# action=watch/unwatch
+'confirm-watch-button' => 'Sige',
+'confirm-watch-top' => 'Idaragdag ba ang pahinang ito sa bantayan mo?',
+'confirm-unwatch-button' => 'Sige',
+'confirm-unwatch-top' => 'Aalisin ba ang pahinang ito mula sa bantayan mo?',
+
 # Multipage image navigation
 'imgmultipageprev' => '← nakaraang pahina',
 'imgmultipagenext' => 'susunod na pahina →',
@@ -3444,6 +3614,9 @@ Maaari mo ring [[Special:EditWatchlist|gamitin ang pangkaraniwang pampatnugot]].
 'hebrew-calendar-m11' => 'Av',
 'hebrew-calendar-m12' => 'Elul',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|makipag-usap]])',
+
 # Core parser functions
 'unknown_extension_tag' => 'Hindi nalalamang tatak ng karugtong na "$1"',
 'duplicate-defaultsort' => 'Babala: Madadaig ng susi ng pagtatakdang "$2" ang mas naunang susi ng pagtatakdang "$1".',
@@ -3474,14 +3647,16 @@ Dapat na nakatanggap ka ng [{{SERVER}}{{SCRIPTPATH}}/COPYING isang sipi ng Pangk
 'version-software' => 'Inistalang software',
 'version-software-product' => 'Produkto',
 'version-software-version' => 'Bersyon',
+'version-entrypoints' => 'Mga URL na butas-pasukan',
+'version-entrypoints-header-entrypoint' => 'Butas na pasukan',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Lokasyon ng talaksan (file path)',
 'filepath-page' => 'Talaksan:',
 'filepath-submit' => 'Gawin',
-'filepath-summary' => 'Ibinabalik ng natatanging pahinang ito ang buong daanan ng isang talaksan.  Ipinapakita ang mga larawan na may buong resolusyon (kalinawan), tuwirang sinimulan ang ibang uri ng mga talaksan sa pamamagitan ng kaugnay nilang mga programa.
-
-Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
+'filepath-summary' => 'Ibinabalik ng natatanging pahinang ito ang buong landas para sa isang talaksan.  
+Ipinapakita ang mga larawan sa buong kalinawan, tuwirang sinisimulan ang ibang uri ng mga talaksan sa pamamagitan ng kaugnay nilang mga programa.',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Maghanap ng kaparehong mga talaksan',
@@ -3497,9 +3672,8 @@ Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
 # Special:SpecialPages
 'specialpages' => 'Mga natatanging pahina',
 'specialpages-note' => '----
-* Pangkaraniwang natatanging mga pahina.
-* <strong class="mw-specialpagerestricted">Pinaghihigpitang natatanging mga pahina.</strong>
-* <span class="mw-specialpagecached">Nakakubli lamang na natatanging mga pahina.</span>',
+* Normal na natatanging mga pahina.
+* <span class="mw-specialpagerestricted">Pinaghihigpitang natatanging mga pahina.</span>',
 'specialpages-group-maintenance' => 'Mga pagpapanatiling ulat',
 'specialpages-group-other' => 'Iba pang natatanging mga pahina',
 'specialpages-group-login' => 'Lumagda/tumala',
@@ -3547,6 +3721,9 @@ Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
 'compare-rev1' => 'Rebisyon 1',
 'compare-rev2' => 'Rebisyon 2',
 'compare-submit' => 'Paghambingin',
+'compare-invalid-title' => 'Hindi katanggap-tanggap ang tinukoy mong pamagat.',
+'compare-title-not-exists' => 'Hindi umiiral ang tinukoy mong pamagat.',
+'compare-revision-not-exists' => 'Hindi umiiral ang tinukoy mong rebisyon.',
 
 # Database error messages
 'dberr-header' => 'May isang suliranin ang wiking ito',
@@ -3574,11 +3751,40 @@ Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
 'sqlite-no-fts' => '$1 na walang suporta ng paghahanap ng buong teksto',
 
 # New logging system
+'logentry-delete-delete' => 'Binura ni $1 ang pahinang $3',
+'logentry-delete-restore' => 'Ibinalik ni $1 ang pahinang $3',
+'logentry-delete-event' => 'Binago ni $1 ang antas ng pagkanatatanaw ng {{PLURAL:$5|isang pangyayari sa talaan|$5 mga pangyayari sa talaan}} sa $3: $4',
+'logentry-delete-revision' => 'Binago ni $1 ang antas ng pagtanaw sa {{PLURAL:$5|isang rebisyon|$5 mga rebisyon}} sa pahinang $3: $4',
+'logentry-delete-event-legacy' => 'Binago ni $1 ang antas ng pagtanaw sa mga pangyayari sa talaan sa $3',
+'logentry-delete-revision-legacy' => 'Binago ni $1 ang antas ng pagtanaw sa mga rebisyong nasa pahinang $3',
+'logentry-suppress-delete' => 'Sinupil ni $1 ang pahinang $3',
+'logentry-suppress-event' => 'Palihim na binago ni $1 ang antas ng pagtanaw sa {{PLURAL:$5|isang pangyayari sa talaan|$5 mga pangyayari sa talaan}} sa $3: $4',
+'logentry-suppress-revision' => 'Palihim na binago ni  $1 ang antas ng pagkanakikita ng {{PLURAL:$5|isang rebisyon|$5 mga rebisyon}} sa pahinang $3: $4',
+'logentry-suppress-event-legacy' => 'Palihim na binago ni $1 ang antas ng pagtanaw sa mga kaganapan sa talaan sa $3',
+'logentry-suppress-revision-legacy' => 'Palihim na binago ni $1 ang antas ng pagtanaw ng mga rebisyon sa pahinang $3',
+'revdelete-content-hid' => 'nakatago ang nilalaman',
+'revdelete-summary-hid' => 'nakatago ang buod ng pagbago',
+'revdelete-uname-hid' => 'nakatago ang pangalan ng tagagamit',
+'revdelete-content-unhid' => 'hindi na nakatago ang nilalaman',
+'revdelete-summary-unhid' => 'pinalitaw ang buod ng pagpatnugot',
+'revdelete-uname-unhid' => 'pinalitaw ang pangalan ng tagagamit',
 'revdelete-restricted' => 'nilapat na mga paghihigpit sa mga tagapangasiwa',
 'revdelete-unrestricted' => 'tinanggal ang mga pagbabawal para sa mga tagapangasiwa',
+'logentry-move-move' => 'Inilipat ni $1 ang pahinang $3 papunta sa $4',
+'logentry-move-move-noredirect' => 'Inilipat ni $1 ang pahinang $3 papunta sa $4 na hindi nag-iiwan ng ibang kapupuntahan',
+'logentry-move-move_redir' => 'Inilipat ni $1 ang pahinang $3 papunta sa $4 na nasa ibayo ng ibang kapupuntahan',
+'logentry-move-move_redir-noredirect' => 'Inilipat ni $1 ang pahinang $3 papunta sa $4 sa ibabaw ng isang pagpapunta sa iba na hindi nag-iiwan ng isang pagpapapunta sa iba',
+'logentry-patrol-patrol' => 'Minarkahan ni $1 ang rebisyong $4 ng pahinang $3 bilang napatrolya na',
+'logentry-patrol-patrol-auto' => 'Kusang minarkahan ni $1 ang rebisyong $4 ng pahinang $3 bilang napatrolya na',
+'logentry-newusers-newusers' => 'Lumikha si $1 ng isang akawnt ng tagagamit',
+'logentry-newusers-create' => 'Lumikha si $1 ng isang akawnt ng tagagamit',
+'logentry-newusers-create2' => 'Lumikha si $1 ng isang akawnt ng tagagamit na $3',
+'logentry-newusers-autocreate' => 'Kusang nalikha ang akawnt na $1',
 'newuserlog-byemail' => 'Ipinadala ang hudyat sa pamamagitan ng e-liham',
 
 # Feedback
+'feedback-bugornote' => 'Kung handa ka nang detalyadong maglarawan ng isang suliraning teknikal mangyaring [$1 iulat ang sira].
+O kaya, maaari mong gamitin ang maginhawang pormularyo sa ibaba. Ang iyong pagpuna ay idaragdag sa pahinang "[$3 $2]", kasama ang iyong pangalan na pangtagagamit at kung anong pantingin-tingin ang ginagamit mo.',
 'feedback-subject' => 'Paksa:',
 'feedback-message' => 'Mensahe:',
 'feedback-cancel' => 'Huwag ituloy',
@@ -3587,6 +3793,10 @@ Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
 'feedback-error1' => 'Kamalian: Hindi nakikilalang kinalabasan mula sa API',
 'feedback-error2' => 'Kamalian: Nabigo ang pagpatnugot',
 'feedback-error3' => 'Kamalian: Walang tugon mula sa API',
+'feedback-thanks' => 'Salamat! Ang katugunan mo ay naipaskil na sa pahinang "[$2 $1]".',
+'feedback-close' => 'Nagawa na',
+'feedback-bugcheck' => 'Mahusay! Suriin lang na hindi pa ito isa sa [$1 nalalamang mga depekto].',
+'feedback-bugnew' => 'Sinuri ko na. Mag-ulat ng panibagong sira',
 
 # API errors
 'api-error-badaccess-groups' => 'Hindi ka pinapayagang makapagkarga ng mga talaksan papunta sa wiking ito.',
@@ -3597,6 +3807,7 @@ Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
 'api-error-duplicate-archive-popup-title' => 'Nabura nang kakambal na {{PLURAL:$1|talaksan|mga talaksan}}',
 'api-error-duplicate-popup-title' => 'Kagayang {{PLURAL:$1|talaksan|mga talaksan}}',
 'api-error-empty-file' => 'Walang laman ang ipinasa mong talaksan.',
+'api-error-emptypage' => 'Lumilikha ng bago, hindi pinapayagan ang mga pahinang walang laman.',
 'api-error-fetchfileerror' => 'Panloob na kamalian: may naganap na pagkakamali habang kinukuha ang talaksan.',
 'api-error-file-too-large' => 'Napakalaki ng talaksang ipinasa mo.',
 'api-error-filename-tooshort' => 'Napakaiksi ng pangalan ng talaksan.',
@@ -3621,7 +3832,19 @@ Ipasok ang pangalan ng talaksan na hindi kasama ang unlaping "{{ns:image}}:".',
 'api-error-unknown-code' => 'Hindi malamang kamalian: "$1"',
 'api-error-unknown-error' => 'Panloob na kamalian: may nangyaring kamalian habang sinusubok mong ikarga ang talaksan mo.',
 'api-error-unknown-warning' => 'Hindi nalalamang babala: $1',
+'api-error-unknownerror' => 'Hindi malamang kamalian: "$1".',
 'api-error-uploaddisabled' => 'Hindi pinapagana ang pagkakargang paitaas sa wiking ito.',
 'api-error-verification-error' => 'Maaaring sira ang talaksang ito, o may maling karugtong.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|segundo|mga segundo}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuto|mga minuto}}',
+'duration-hours' => '$1 {{PLURAL:$1|oras|mga oras}}',
+'duration-days' => '$1 {{PLURAL:$1|araw|mga araw}}',
+'duration-weeks' => '$1 {{PLURAL:$1|linggo|mga linggo}}',
+'duration-years' => '$1 {{PLURAL:$1|taon|mga taon}}',
+'duration-decades' => '$1 {{PLURAL:$1|dekada|mga dekada}}',
+'duration-centuries' => '$1 {{PLURAL:$1|daantaon|mga daantaon}}',
+'duration-millennia' => '$1 {{PLURAL:$1|milenyo|mga milenyo}}',
+
 );
index 8b12c96..df6482c 100644 (file)
@@ -486,7 +486,7 @@ $messages = array(
 'skin-preview' => 'Сыфтәнә нишо дој',
 'prefs-rc' => 'Ән нујә дәгишон',
 'prefs-changeemail' => 'Е-номә дәгиш кардеј',
-'saveprefs' => 'Огәте',
+'saveprefs' => 'Огәтеј',
 'searchresultshead' => 'Нәве',
 'timezoneregion-america' => 'Америка',
 'timezoneregion-europe' => 'Авропа',
index bd1e1ec..c7ba9d4 100644 (file)
@@ -15,6 +15,7 @@
  * @author Dbl2010
  * @author Don Alessandro
  * @author Emperyan
+ * @author Erdemaslancan
  * @author Erkan Yilmaz
  * @author Fryed-peach
  * @author Goktr001
@@ -1825,6 +1826,7 @@ Güvenlik denetimi uygun bir şekilde gerçekleştirilemiyor.',
 'uploadstash-badtoken' => 'İşlemin gerçekleştirilmesi başarısız oldu, muhtemelen düzenleme yetkileriniz zaman aşımına uğradı. Yeniden deneyin.',
 'uploadstash-errclear' => 'Dosyaların silinmesi başarısız oldu.',
 'uploadstash-refresh' => 'Dosya listelerini yenile',
+'invalid-chunk-offset' => 'Geçersiz öbek ofset',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'Erişim engellendi',
@@ -2866,8 +2868,8 @@ Geçici dosya kayıp.',
 'tooltip-pt-preferences' => 'Tercihleriniz (ayarlarınız)',
 'tooltip-pt-watchlist' => 'Değişiklikler için izlemeye aldığınız sayfaların listesi',
 'tooltip-pt-mycontris' => 'Katkılarınızın listesi',
-'tooltip-pt-login' => 'Mecbur değilsiniz fakat oturum açmanız tavsiye olunur',
-'tooltip-pt-anonlogin' => 'Oturum açmanız tavsiye olunur ama mecbur değilsiniz.',
+'tooltip-pt-login' => 'Oturum açmanızı tavsiye ederiz; ancak zorunda değilsiniz',
+'tooltip-pt-anonlogin' => 'Oturum açmanızı tavsiye ederiz; ancak zorunda değilsiniz',
 'tooltip-pt-logout' => 'Sistemden çık',
 'tooltip-ca-talk' => 'İçerik ile ilgili tartışma',
 'tooltip-ca-edit' => 'Bu sayfayı değiştirebilirsiniz. Lütfen kaydetmeden önce önizleme düğmesini kullanın.',
index 47bdcd1..3015bec 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Tatar (Cyrillic script) (Татарча)
+/** Tatar (Cyrillic script) (татарча)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -1108,6 +1108,7 @@ $1",
 'compareselectedversions' => 'Сайланган юрамаларны чагыштыру',
 'showhideselectedversions' => 'Сайланган юрамаларны күрсәтү/яшерү',
 'editundo' => 'үткәрмәү',
+'diff-multi' => '({{PLURAL:$2|бер кулланучының|$2 кулланучының}} {{PLURAL:$1|арадагы $1 версиясе күрсәтелмәгән}})',
 
 # Search results
 'searchresults' => 'Эзләү нәтиҗәләре',
@@ -1119,6 +1120,8 @@ $1",
 'notextmatches' => 'Тиңдәш текстлы битләр юк',
 'prevn' => 'алдагы {{PLURAL:$1|$1}}',
 'nextn' => 'чираттагы {{PLURAL:$1|$1}}',
+'prevn-title' => 'Алдагы $1  {{PLURAL:$1|язма}}',
+'nextn-title' => 'Киләсе $1  {{PLURAL:$1|язма}}',
 'shown-title' => 'Сәхифәдә $1 {{PLURAL:$1|язма|язма}} күрсәтелсен',
 'viewprevnext' => 'Күрсәтелүе: ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Эзләү көйләнмәләре',
@@ -1137,6 +1140,7 @@ $1",
 'searchprofile-everything-tooltip' => 'Барлык битләрдә дә эзләү',
 'searchprofile-advanced-tooltip' => 'Бирелгән исемнәр мәйданында эзләү',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 сүз}})',
+'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 бүлеге)',
@@ -1632,6 +1636,7 @@ PICT # төрле
 'protectedpages' => 'Якланган битләр',
 'protectedtitles' => 'Тыелган исемнәр',
 'listusers' => 'Кулланучылар исемлеге',
+'usercreated' => '$3 $1 көнне $2 вакытта {{GENDER:$3|теркәлде}}',
 'newpages' => 'Яңа битләр',
 'newpages-username' => 'Кулланучы:',
 'ancientpages' => 'Иң иске битләр',
@@ -1739,6 +1744,7 @@ PICT # төрле
 # Watchlist
 'watchlist' => 'Күзәтү исемлегем',
 'mywatchlist' => 'Күзәтү исемлегем',
+'watchlistfor2' => '$1 $2 өчен',
 'nowatchlist' => 'Күзәтү исемлегегездә битләр юк.',
 'watchnologin' => 'Кермәдегез',
 'watchnologintext' => 'Күзәтү исемлегегезне үзгәртү өчен сез [[Special:UserLogin|керергә]] тиешсез.',
@@ -1923,6 +1929,7 @@ $1',
 'sp-contributions-talk' => 'бәхәс',
 'sp-contributions-search' => 'Кертемне эзләү',
 'sp-contributions-username' => 'Кулланучының IP адресы яки исеме:',
+'sp-contributions-toponly' => 'Соңгы версия булган үзгәртүләрне генә күрсәтергә',
 'sp-contributions-submit' => 'Эзләү',
 
 # What links here
@@ -2426,6 +2433,9 @@ $1',
 'hijri-calendar-m7' => 'Раҗәб',
 'hijri-calendar-m9' => 'Рамазан',
 
+# Core parser functions
+'duplicate-defaultsort' => 'Игътибар. Уйланма куелган "$2" бүлгәләү ачкычы элеккеге уйланма куелган "$1" бүлгәләү ачкычын үзгәртә.',
+
 # Special:Version
 'version' => 'Юрама',
 'version-extensions' => 'Куелган киңәйтүләр',
@@ -2469,6 +2479,16 @@ $1',
 'blankpage' => 'Буш бит',
 'intentionallyblankpage' => 'Бу бит махсус буш калдырылган',
 
+# External image whitelist
+'external_image_whitelist' => '#Бу юлны ничек бар, шулаө калдырыгыз<pre>
+#Монда даими фразаларның фрагментларын куегыз (// арасында торган өлешен)
+#алар тышкы сурәтләрнең URL белән бәйләнерләр.
+#Туры килгәннәре сурәт буларак, туры килмәгәннәре сурәткә сылтама буларак күрсәтеләчәкләр.
+# # билгесе белән башланучы юллар шәрехнамә дип саналалар.
+#Юллар регистрга игътибар бирмиләр.
+
+#Даими фразаларның фрагментларын бу кыр өстендә куегыз. Бу кырны ничек бар, шулай калдырыгыз.</pre>',
+
 # Special:Tags
 'tags' => 'Гамәлдә булучы үзгәртүләр билгеләре',
 'tag-filter' => '[[Special:Tags|Tag]] фильтры:',
index 49910be..c523d24 100644 (file)
@@ -176,6 +176,7 @@ $messages = array(
 'vector-action-delete' => 'Ырадыры',
 'vector-action-move' => 'Шимчээри',
 'vector-action-protect' => 'Камгалаары',
+'vector-action-undelete' => 'Эгидер',
 'vector-action-unprotect' => 'Камгалалды өскертири',
 'vector-view-create' => 'Чогаадыры',
 'vector-view-edit' => 'Өскертири',
@@ -501,8 +502,8 @@ The password for this new account can be changed on the ''[[Special:ChangePasswo
 'searchresults-title' => '«$1» диле',
 'prevn' => 'эрткен {{PLURAL:$1|$1}}',
 'nextn' => 'дараазында {{PLURAL:$1|$1}}',
-'prevn-title' => 'Эрткен $1 {{PLURAL:$1|түңнел|түңнел}}',
-'nextn-title' => 'Дараазында $1 {{PLURAL:$1|түңнел|түңнел}}',
+'prevn-title' => 'Эрткен $1 {{PLURAL:$1|бижик|бижик}}',
+'nextn-title' => 'Дараазында $1 {{PLURAL:$1|бижик|бижик}}',
 'shown-title' => 'Арынга $1 {{PLURAL:$1|түңнелди|түңнелди}} көргүзери',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) көөрү',
 'searchmenu-new' => "'''Бо вики-проектиге «[[:$1]]» арынны чогаадыры'''",
index 067f288..7d00a21 100644 (file)
@@ -106,6 +106,7 @@ $specialPageAliases = array(
        'Allmessages'               => array( 'Системні_повідомлення' ),
        'Allpages'                  => array( 'Усі_сторінки' ),
        'Ancientpages'              => array( 'Давні_сторінки' ),
+       'Badtitle'                  => array( 'Помилковий_заголовок' ),
        'Blankpage'                 => array( 'Порожня_сторінка' ),
        'Block'                     => array( 'Заблокувати' ),
        'Blockme'                   => array( 'Заблокуйте_мене' ),
@@ -125,8 +126,11 @@ $specialPageAliases = array(
        'EditWatchlist'             => array( 'Правити_список_спостереження' ),
        'Emailuser'                 => array( 'Лист_користувачеві' ),
        'Export'                    => array( 'Експорт' ),
+       'Fewestrevisions'           => array( 'Найменші_перевірки' ),
        'FileDuplicateSearch'       => array( 'Пошук_дублікатів_файлів' ),
+       'Filepath'                  => array( 'Шлях_до_файлу' ),
        'Import'                    => array( 'Імпорт' ),
+       'Invalidateemail'           => array( 'Нечинна_e-mail' ),
        'BlockList'                 => array( 'Список_блокувань', 'Блокування', 'Блокування_IP-адрес' ),
        'LinkSearch'                => array( 'Пошук_посилань' ),
        'Listadmins'                => array( 'Список_адміністраторів' ),
@@ -141,7 +145,11 @@ $specialPageAliases = array(
        'Longpages'                 => array( 'Найдовші_сторінки' ),
        'MergeHistory'              => array( 'Об\'єднання_історії' ),
        'MIMEsearch'                => array( 'Пошук_по_MIME' ),
+       'Mostcategories'            => array( 'Найкатегоризовуваніші' ),
        'Mostimages'                => array( 'Найбільш_використовувані_файли' ),
+       'Mostlinkedcategories'      => array( 'Найуживаніші_категорії' ),
+       'Mostlinkedtemplates'       => array( 'Найуживаніші_шаблони' ),
+       'Mostrevisions'             => array( 'Найбільш_редаговані' ),
        'Movepage'                  => array( 'Перейменувати' ),
        'Mycontributions'           => array( 'Мій_внесок' ),
        'Mypage'                    => array( 'Моя_сторінка' ),
@@ -149,6 +157,7 @@ $specialPageAliases = array(
        'Myuploads'                 => array( 'Мої_завантаження' ),
        'Newimages'                 => array( 'Нові_файли' ),
        'Newpages'                  => array( 'Нові_сторінки' ),
+       'PasswordReset'             => array( 'Скинути_пароль' ),
        'PermanentLink'             => array( 'Постійне_посилання' ),
        'Popularpages'              => array( 'Популярні_сторінки' ),
        'Preferences'               => array( 'Налаштування' ),
@@ -156,7 +165,7 @@ $specialPageAliases = array(
        'Protectedtitles'           => array( 'Захищені_назви_сторінок' ),
        'Randompage'                => array( 'Випадкова_сторінка' ),
        'Randomredirect'            => array( 'Випадкове_перенаправлення' ),
-       'Recentchanges'             => array( 'Ð\9dеÑ\89одавні_редагування' ),
+       'Recentchanges'             => array( 'Ð\9dові_редагування' ),
        'Recentchangeslinked'       => array( 'Пов\'язані_редагування' ),
        'Revisiondelete'            => array( 'Перевірити_видалення' ),
        'Search'                    => array( 'Пошук' ),
@@ -174,7 +183,7 @@ $specialPageAliases = array(
        'Unusedcategories'          => array( 'Порожні_категорії' ),
        'Unusedimages'              => array( 'Невикористовувані_файли' ),
        'Unusedtemplates'           => array( 'Невикористовувані_шаблони' ),
-       'Unwatchedpages'            => array( 'СÑ\82оÑ\80Ñ\96нки_за_Ñ\8fкими_не_Ñ\81поÑ\81Ñ\82еÑ\80Ñ\96гаÑ\8eÑ\82Ñ\8c' ),
+       'Unwatchedpages'            => array( 'Ð\9dеÑ\81поÑ\81Ñ\82еÑ\80ежÑ\83ванÑ\96' ),
        'Upload'                    => array( 'Завантаження' ),
        'UploadStash'               => array( 'Приховане_завантаження' ),
        'Userlogin'                 => array( 'Вхід' ),
@@ -187,6 +196,7 @@ $specialPageAliases = array(
        'Wantedtemplates'           => array( 'Потрібні_шаблони' ),
        'Watchlist'                 => array( 'Список_спостереження' ),
        'Whatlinkshere'             => array( 'Посилання_сюди' ),
+       'Withoutinterwiki'          => array( 'Без_інтервікі' ),
 );
 
 $magicWords = array(
@@ -343,10 +353,10 @@ $messages = array(
 'tog-hideminor' => 'Ховати незначні редагування у списку останніх змін',
 'tog-hidepatrolled' => 'Приховувати патрульовані редагування у списку нових редагувань',
 'tog-newpageshidepatrolled' => 'Приховувати патрульовані сторінки у списку нових сторінок',
-'tog-extendwatchlist' => 'РозÑ\88иÑ\80ений Ñ\81пиÑ\81ок Ñ\81поÑ\81Ñ\82еÑ\80еженнÑ\8f, Ñ\89о Ð²ÐºÐ»Ñ\8eÑ\87аÑ\94 Ð²сі зміни, а не лише останню',
+'tog-extendwatchlist' => 'РозÑ\88иÑ\80ений Ñ\81пиÑ\81ок Ñ\81поÑ\81Ñ\82еÑ\80еженнÑ\8f, Ñ\89о Ð¼Ñ\96Ñ\81Ñ\82иÑ\82Ñ\8c Ñ\83сі зміни, а не лише останню',
 'tog-usenewrc' => 'Використовувати покращений список останніх змін (JavaScript)',
 'tog-numberheadings' => 'Автоматично нумерувати заголовки',
-'tog-showtoolbar' => 'Показувати панель інструментів при редагуванні (JavaScript)',
+'tog-showtoolbar' => 'Показувати панель інструментів (JavaScript)',
 'tog-editondblclick' => 'Редагувати сторінки при подвійному клацанні мишкою (JavaScript)',
 'tog-editsection' => 'Показувати посилання [ред.] для кожного розділу',
 'tog-editsectiononrightclick' => 'Редагувати розділи при клацанні правою кнопкою мишки на заголовку (JavaScript)',
@@ -358,7 +368,7 @@ $messages = array(
 'tog-watchdeletion' => 'Додавати вилучені мною сторінки до мого списку спостереження',
 'tog-minordefault' => 'Спочатку позначати всі зміни незначними',
 'tog-previewontop' => 'Показувати попередній перегляд перед вікном редагування, а не після',
-'tog-previewonfirst' => 'Ð\9fоказÑ\83ваÑ\82и Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\96й Ð¿ÐµÑ\80еглÑ\8fд Ð¿Ñ\80и Ð¿ÐµÑ\80Ñ\88омÑ\83 Ñ\80едагÑ\83ваннÑ\96',
+'tog-previewonfirst' => 'Ð\9fоказÑ\83ваÑ\82и Ð¿Ð¾Ð¿ÐµÑ\80еднÑ\96й Ð¿ÐµÑ\80еглÑ\8fд Ð¿Ñ\96д Ñ\87аÑ\81 Ð¿ÐµÑ\80Ñ\88ого Ñ\80едагÑ\83ваннÑ\8f',
 'tog-nocache' => 'Відключити кешування сторінок браузером',
 'tog-enotifwatchlistpages' => 'Повідомляти електронною поштою, коли сторінка з мого списку спостереження змінилася',
 'tog-enotifusertalkpages' => 'Повідомляти електронною поштою про зміну моєї сторінки обговорення',
@@ -379,7 +389,7 @@ $messages = array(
 'tog-watchlisthideanons' => 'Ховати редагування анонімів у списку спостереження',
 'tog-watchlisthidepatrolled' => 'Приховувати патрульовані редагування у списку спостререження',
 'tog-nolangconversion' => 'Відключити перетворення систем письма',
-'tog-ccmeonemails' => 'Ð\92Ñ\96дпÑ\80авлÑ\8fти мені копії листів, які я надсилаю іншим користувачам',
+'tog-ccmeonemails' => 'Ð\9dадÑ\81илати мені копії листів, які я надсилаю іншим користувачам',
 'tog-diffonly' => 'Не показувати вміст сторінки під різницею версій',
 'tog-showhiddencats' => 'Показувати приховані категорії',
 'tog-noconvertlink' => 'Вимкнути конвертацію назви посилання',
@@ -456,11 +466,11 @@ $messages = array(
 'category-empty' => "''Ця категорія зараз порожня.''",
 'hidden-categories' => '{{PLURAL:$1|Прихована категорія|Приховані категорії}}',
 'hidden-category-category' => 'Приховані категорії',
-'category-subcat-count' => '{{PLURAL:$1|Показана $1 підкатегорія|Показані $1 підкатегорії|Показані $1 підкатегорій}} із $2.',
+'category-subcat-count' => 'Показано $1 {{PLURAL:$1|підкатегорію з|підкатегорії з|підкатегорій із}} $2.',
 'category-subcat-count-limited' => 'У цій категорії {{PLURAL:$1|$1 підкатегорія|$1 підкатегорії|$1 підкатегорій}}.',
-'category-article-count' => '{{PLURAL:$1|Показана $1 сторінка|Показані $1 сторінки|Показані $1 сторінок}} цієї категорії з $2.',
+'category-article-count' => 'Показано $1 {{PLURAL:$1|сторінку|сторінки|сторінок}} цієї категорії (із $2).',
 'category-article-count-limited' => 'У цій категорії {{PLURAL:$1|$1 сторінка|$1 сторінки|$1 сторінок}}.',
-'category-file-count' => '{{PLURAL:$2|Ця категорія містить $2 файл.|{{PLURAL:$1|Показаний $1 файл|Показані $1 файли|Показані $1 файлів}} цієї категорії з $2.}}',
+'category-file-count' => 'Показано $1 {{PLURAL:$1|файл|файли|файлів}} цієї категорії (із $2).}}',
 'category-file-count-limited' => 'У цій категорії {{PLURAL:$1|$1 файл|$1 файли|$1 файлів}}.',
 'listingcontinuesabbrev' => '(прод.)',
 'index-category' => 'Індексовані сторінки',
@@ -728,8 +738,9 @@ $1',
 'ns-specialprotected' => 'Спеціальні сторінки не можна редагувати.',
 'titleprotected' => "Створення сторінки з такою назвою було заборонене користувачем [[User:$1|$1]].
 Зазначена наступна причина: ''$2''.",
-'filereadonlyerror' => 'Не вдалося змінити файл «$1» тому, що файловий архів «$2» знаходиться в режимі «лише для читання».
-Вказана причина — «$3».',
+'filereadonlyerror' => "Неможливо змінити файл «$1» тому, що файловий архів «$2» перебуває в режимі «лише для читання».
+Адміністратор, що заблокував його, залишив таке пояснення: «''$3''».",
+'invalidtitle-knownnamespace' => 'Неприйнятна назва у просторі імен «$2» і текстом «$3»',
 
 # Virus scanner
 'virus-badscanner' => "Помилка налаштування: невідомий сканер вірусів: ''$1''",
@@ -1048,7 +1059,8 @@ $2
 Якщо ви натиснете «{{int:savearticle}}», то буде збережено '''тільки''' текст у верхньому вікні редагування.",
 'yourtext' => 'Ваш текст',
 'storedversion' => 'Збережена версія',
-'nonunicodebrowser' => "'''ПОПЕРЕДЖЕННЯ: Ваш [[браузер]] не підтримує кодування [[Юнікод]]. При редагуванні статей всі не-ASCII символи будуть замінені на свої шіснадцяткові коди.'''",
+'nonunicodebrowser' => "'''ПОПЕРЕДЖЕННЯ: Ваш [[браузер]] не підтримує [[Юнікод]].''' 
+Щоб подолати це обмеження та дозволити Вам безпечно редагувати сторінки, усі не-ASCII символи буде показано їх шістнадцятковими кодами.",
 'editingold' => "'''ПОПЕРЕДЖЕННЯ: Ви редагуєте застарілу версію даної статті.
 Якщо ви збережете її, будь-які редагування, зроблені між версіями, будуть втрачені.'''",
 'yourdiff' => 'Відмінності',
@@ -1121,6 +1133,7 @@ $2
 'parser-template-loop-warning' => 'Виявлена петля у шаблонах: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Перевищене обмеження глибини рекурсії шаблону ($1)',
 'language-converter-depth-warning' => 'Перевищене обмеження глибини мовного конвертора ($1)',
+'parser-unstrip-loop-warning' => 'Виявлено незакритий тег <pre>',
 
 # "Undo" feature
 'undo-success' => 'Редагування може бути скасовано.
@@ -1395,6 +1408,7 @@ $1",
 'prefs-beta' => 'Бета-функції',
 'prefs-datetime' => 'Дата й час',
 'prefs-labs' => 'Експериментальні функції',
+'prefs-user-pages' => 'Сторінки користувача',
 'prefs-personal' => 'Особисті дані',
 'prefs-rc' => 'Сторінка останніх редагувань',
 'prefs-watchlist' => 'Список спостереження',
@@ -1420,10 +1434,10 @@ $1",
 'resultsperpage' => 'Кількість результатів на сторінку:',
 'stub-threshold' => 'Поріг для визначення оформлення <a href="#" class="stub">посилань на стаби</a> (у байтах):',
 'stub-threshold-disabled' => 'Вимкнений',
-'recentchangesdays' => 'Ð\9dа скільки днів показувати нові редагування:',
+'recentchangesdays' => 'Ð\97а скільки днів показувати нові редагування:',
 'recentchangesdays-max' => '(максимум $1 {{PLURAL:$1|день|дні|днів}})',
 'recentchangescount' => 'Кількість редагувань для показу за умовчанням:',
-'prefs-help-recentchangescount' => 'Це Ñ\82оÑ\80кається нових редагувань, історій сторінок і журналів.',
+'prefs-help-recentchangescount' => 'Це Ñ\81Ñ\82оÑ\81Ñ\83ється нових редагувань, історій сторінок і журналів.',
 'prefs-help-watchlist-token' => 'Заповнення цього поля секретним ключем буде створювати RSS-трансляцію для вашого списку спостереження.
 Кожен, хто знає ключ в цьому полі, зможе читати ваш список спостереження, тому оберіть секретне значення.
 Ви можете використати це випадково згенероване значення: $1',
@@ -1479,7 +1493,8 @@ $1",
 'gender-unknown' => 'не зазначена',
 'gender-male' => 'чоловіча',
 'gender-female' => 'жіноча',
-'prefs-help-gender' => "Необов'язкове поле: використовується в деяких повідомленнях двигуна, які залежать від статі користувача. Значення параметра загальнодоступне.",
+'prefs-help-gender' => "Необов'язково. Застосовується рушієм у тих звертаннях до користувача, які залежать від статі.
+Ця інформація загальнодоступна.",
 'email' => 'Електронна пошта',
 'prefs-help-realname' => "Справжнє ім'я необов'язково вказувати.
 Якщо ви його зазначите, то воно буде використовуватися, щоб показати, хто редагував сторінку.",
@@ -1661,7 +1676,7 @@ $1",
 'nchanges' => '$1 {{PLURAL:$1|зміна|зміни|змін}}',
 'recentchanges' => 'Нові редагування',
 'recentchanges-legend' => 'Налаштування нових редагувань',
-'recentchanges-summary' => 'Ð\9dа Ñ\86Ñ\96й Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\96 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ\96 Ð¾Ñ\81Ñ\82аннÑ\96 Ð·Ð¼Ñ\96ни на сторінках {{grammar:genitive|{{SITENAME}}}}.',
+'recentchanges-summary' => 'Ð\92Ñ\96дÑ\81Ñ\82еженнÑ\8f Ð¾Ñ\81Ñ\82аннÑ\96Ñ\85 Ð·Ð¼Ñ\96н на сторінках {{grammar:genitive|{{SITENAME}}}}.',
 'recentchanges-feed-description' => 'Відстежувати останні зміни у вікі в цьому потоці.',
 'recentchanges-label-newpage' => 'Цим редагуванням створена нова сторінка',
 'recentchanges-label-minor' => 'Це незначна зміна',
@@ -1768,7 +1783,7 @@ $1",
 'filename-tooshort' => 'Назва файлу занадто коротка.',
 'filetype-banned' => 'Цей тип файлів заборонений.',
 'verification-error' => 'Файлу не вдалося пройти процедуру перевірки.',
-'hookaborted' => 'Ð\97апÑ\80опонованÑ\83 Ð²Ð°Ð¼Ð¸ Ð·Ð¼Ñ\96нÑ\83 Ð¿ÐµÑ\80еÑ\80вав Ð¾Ð±Ñ\80обник Ñ\80озÑ\88иÑ\80еннÑ\8f.',
+'hookaborted' => 'Ð\97мÑ\96нÑ\83, Ñ\89о Ð\92и Ð½Ð°Ð¼Ð°Ð³Ð°Ð»Ð¸Ñ\81Ñ\8f Ð·Ñ\80обиÑ\82и, Ð²Ñ\96дкинÑ\83Ñ\82о Ð¾Ð±Ñ\80обником.',
 'illegal-filename' => 'Недозволена назва файлу.',
 'overwrite' => 'Заміну існуючого файлу не дозволено.',
 'unknown-error' => 'Трапилась невідома помилка.',
@@ -2218,6 +2233,10 @@ $1',
 'allpages-bad-ns' => '{{SITENAME}} не має простору назв «$1».',
 'allpages-hide-redirects' => 'Сховати перенаправлення',
 
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ts' => 'Ви переглядаєте кешовану версію сторінки, яка могла втратити актуальність',
+'cachedspecial-refresh-now' => 'Показати останні',
+
 # Special:Categories
 'categories' => 'Категорії',
 'categoriespagetext' => '{{PLURAL:$1|Наступна категорія|Наступні категорії}} містять сторінки або медіа-файли.
@@ -2706,9 +2725,9 @@ $1',
 'blocklog-showsuppresslog' => 'Цього користувача вже заблоковано і приховано. Далі наведено журнал приховань:',
 'blocklogentry' => 'заблокував [[$1]] на термін $2 $3',
 'reblock-logentry' => 'переблокував [[$1]] на термін $2 $3',
-'blocklogtext' => 'Ð\96Ñ\83Ñ\80нал Ð±Ð»Ð¾ÐºÑ\83ваннÑ\8f Ð¹ розблокування користувачів.
-IP-адреси, що блокуються автоматично тут не вказуються. Див.
-[[Special:BlockList|список поточних заборон і блокувань]].',
+'blocklogtext' => 'Ð\96Ñ\83Ñ\80нал Ð´Ñ\96й Ñ\89одо Ð±Ð»Ð¾ÐºÑ\83ваннÑ\8f Ñ\82а розблокування користувачів.
+Автоматично заблоковані IP-адреси тут не вказуються. 
+Див. [[Special:BlockList|перелік чинних обмежень]] .',
 'unblocklogentry' => 'розблокував $1',
 'block-log-flags-anononly' => 'тільки анонімні користувачі',
 'block-log-flags-nocreate' => 'заборонена реєстрація облікових записів',
@@ -3111,6 +3130,7 @@ The wiki server can't provide data in a format your client can read.",
 'spambot_username' => 'Очистка спаму',
 'spam_reverting' => 'Відкинути до останньої версії, що не містить посилання на $1',
 'spam_blanking' => 'Всі версії містять посилання на $1, очистка',
+'spam_deleting' => 'Все версії містили посилання на $1, видаляються',
 
 # Info page
 'pageinfo-title' => 'Інформація про " $1 "',
@@ -3868,8 +3888,8 @@ $5
 'livepreview-error' => "Не вдалося встановити з'єднання: $1 «$2». Спробуйте скористатися звичайним попереднім переглядом.",
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => 'Зміни, зроблені $1 {{PLURAL:$1|секунду|секунди|секунд}} тому, можуть бути не показані в цьому списку.',
-'lag-warn-high' => 'ЧеÑ\80ез Ð²ÐµÐ»Ð¸ÐºÐµ Ð²Ñ\96дÑ\81Ñ\82аваннÑ\8f Ñ\83 Ñ\81инÑ\85Ñ\80онÑ\96заÑ\86Ñ\96Ñ\97 Ñ\81еÑ\80веÑ\80Ñ\96в Ð±Ð°Ð· Ð´Ð°Ð½Ð¸Ñ\85 Ð·Ð¼Ñ\96ни, Ð·Ñ\80обленÑ\96 Ð¼ÐµÐ½Ñ\88 Ð½Ñ\96ж $1 {{PLURAL:$1|Ñ\81екÑ\83ндÑ\83\81екÑ\83нди|Ñ\81екÑ\83нд}} Ñ\82омÑ\83, Ð¼Ð¾Ð¶Ñ\83Ñ\82Ñ\8c Ð±Ñ\83Ñ\82и Ð½Ðµ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ\96 Ð² Ñ\86Ñ\8cомÑ\83 Ñ\81пиÑ\81кÑ\83.',
+'lag-warn-normal' => 'Зміни, зроблені менш ніж $1 {{PLURAL:$1|секунду|секунди|секунд}} тому, можуть не відображатися в цьому переліку.',
+'lag-warn-high' => 'Ð\97мÑ\96ни, Ð·Ñ\80обленÑ\96 Ð¼ÐµÐ½Ñ\88 Ð½Ñ\96ж $1 {{PLURAL:$1|Ñ\81екÑ\83ндÑ\83\81екÑ\83нди|Ñ\81екÑ\83нд}} Ñ\82омÑ\83, Ð¼Ð¾Ð¶Ñ\83Ñ\82Ñ\8c Ð½Ðµ Ð²Ñ\96добÑ\80ажаÑ\82иÑ\81Ñ\8f Ð² Ñ\86Ñ\8cомÑ\83 Ð¿ÐµÑ\80елÑ\96кÑ\83 Ð²Ð½Ð°Ñ\81лÑ\96док Ð·Ð½Ð°Ñ\87ноÑ\97 Ð·Ð°Ñ\82Ñ\80имки Ñ\81еÑ\80веÑ\80а Ð\91Ð\94.',
 
 # Watchlist editor
 'watchlistedit-numitems' => 'Ваш список спостереження містить {{PLURAL:$1|$1 запис|$1 записи|$1 записів}}, не включаючи сторінок обговорення.',
@@ -3992,6 +4012,7 @@ MediaWiki поширюється в надії, що вона буде кори
 'version-software' => 'Установлене програмне забезпечення',
 'version-software-product' => 'Продукт',
 'version-software-version' => 'Версія',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Шлях до файлу',
@@ -4157,7 +4178,7 @@ MediaWiki поширюється в надії, що вона буде кори
 'api-error-filename-tooshort' => 'Назва файлу занадто коротка.',
 'api-error-filetype-banned' => 'Цей тип файлів заборонений.',
 'api-error-filetype-missing' => 'У цього файла відсутнє розширення.',
-'api-error-hookaborted' => 'Зміни, які ви намагалися зробити перервав обробник розширення.',
+'api-error-hookaborted' => 'Зміну, що Ви намагалися зробити, відкинуто обробником.',
 'api-error-http' => 'Внутрішня помилка: Не вдається підключитися до сервера.',
 'api-error-illegal-filename' => "Неприпустиме ім'я файлу.",
 'api-error-internal-error' => 'Внутрішня помилка: Щось пішло не так під час обробки вашого завантаження на вікі.',
index 6d0f94a..73c51f3 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Vèneto (Vèneto)
+/** vèneto (vèneto)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -3347,28 +3347,28 @@ Le imagini le vien mostrà a la risoluzion pi granda che se pol, par i altri tip
 'sqlite-no-fts' => '$1 sensa la possibilità de riserca completa nel testo',
 
 # New logging system
-'logentry-delete-delete' => '$1 ga scanselà la pajina $3',
+'logentry-delete-delete' => '$1 ga scansełà ła pajina $3',
 'logentry-delete-restore' => '$1 ga ripristinà "$3"',
-'logentry-delete-event' => '$1 ga canbià la vixibilità de {{PLURAL:$5|n\'asion del registro|$5 asion del registro}} de "$3": $4',
-'logentry-delete-revision' => '$1 ga canbià la vixibilità de {{PLURAL:$5|na revixion|$5 revixion}} de la pajina"$3": $4',
-'logentry-delete-event-legacy' => '$1 ga canbià la vixibilità de calche asion del registro de "$3"',
-'logentry-delete-revision-legacy' => '$1 ga canbià la vixibilità par le revixion de la pajina $3',
+'logentry-delete-event' => '$1 ga canbià ła vixibiłità de {{PLURAL:$5|n\'asion del registro|$5 asion del registro}} de "$3": $4',
+'logentry-delete-revision' => '$1 ga canbià ła vixibiłità de {{PLURAL:$5|na revixion|$5 revixion}} de ła pajina"$3": $4',
+'logentry-delete-event-legacy' => '$1 ga canbià ła vixibiłità de calche asion del registro de "$3"',
+'logentry-delete-revision-legacy' => '$1 ga canbià ła vixibiłità par łe revixion de ła pajina $3',
 'logentry-suppress-delete' => '$1 ga sconto la pajina "$3"',
 'logentry-suppress-event' => '$1 ga canbià de scondón la vixibilità de {{PLURAL:$5|n\'asion del registro|$5 asion del registro}} de "$3": $4',
 'logentry-suppress-revision' => '$1 ga canbià de scondón la vixibilità de {{PLURAL:$5|na revixion|$5 revixion}} de "$3": $4',
 'logentry-suppress-event-legacy' => '$1 ga canbià de scondón la vixibilità de calche asion del registro de "$3"',
 'logentry-suppress-revision-legacy' => '$1 ga canbià de scondón la vixibilità de calche revixion de $3',
 'revdelete-content-hid' => 'contegnùo sconto',
-'revdelete-summary-hid' => 'ogeto de la modifega sconto',
+'revdelete-summary-hid' => 'ogeto de ła modifega sconto',
 'revdelete-uname-hid' => 'nome utente sconto',
 'revdelete-content-unhid' => 'contegnùo ripristinà',
 'revdelete-summary-unhid' => 'ogeto ripristinà',
 'revdelete-uname-unhid' => 'nome utente ripristinà',
 'revdelete-restricted' => 'aplicà restrizioni ai aministradori',
 'revdelete-unrestricted' => 'gà cavà le limitazion par i aministradori',
-'logentry-move-move' => '$1 ga spostà la pajina $3 a $4',
-'logentry-move-move-noredirect' => '$1 ga spostà la pajina $3 a $4 sensa metare un rimando',
-'logentry-move-move_redir' => '$1 ga spostà la pajina $3 a $4 metendo un rimando',
+'logentry-move-move' => '$1 ga spostà ła pajina $3 a $4',
+'logentry-move-move-noredirect' => '$1 ga spostà ła pajina $3 a $4 sensa metare un rimando',
+'logentry-move-move_redir' => '$1 ga spostà ła pajina $3 a $4 lasiando un rimando',
 'logentry-move-move_redir-noredirect' => '$1 ga spostà la pajina $3 a $4 al posto de un rimando sensa metare un rimando',
 'logentry-patrol-patrol' => '$1 ga segnà la revixion $4 de la pajina $3 come verifegà',
 'logentry-patrol-patrol-auto' => '$1 ga segnà automategamente la revixion $4 de la pajina $3 come verifegà',
index 02a0185..f067bcb 100644 (file)
@@ -782,7 +782,7 @@ Xin hãy đợi chốc lát rồi thử lại.',
 
 # Change password dialog
 'resetpass' => 'Đổi mật khẩu',
-'resetpass_announce' => 'Bạn Ä\91ã Ä\91Ä\83ng nhập bằng mật khẩu tạm gá»\9fi qua e-mail. Để hoàn tất việc đăng nhập, bạn phải tạo lại mật khẩu mới tại đây:',
+'resetpass_announce' => 'Bạn Ä\91ã Ä\91Ä\83ng nhập bằng mật khẩu tạm gá»­i qua thÆ° Ä\91iá»\87n tá»­. Để hoàn tất việc đăng nhập, bạn phải tạo lại mật khẩu mới tại đây:',
 'resetpass_text' => '<!-- Nhập văn bản vào đây -->',
 'resetpass_header' => 'Đổi mật khẩu cho tài khoản',
 'oldpassword' => 'Mật khẩu cũ:',
@@ -1429,7 +1429,7 @@ Thông tin này là công khai.',
 Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao của bạn.',
 'prefs-help-email' => 'Địa chỉ thư điện tử là tùy chọn, nhưng nó giúp chúng tôi gửi cho bạn mật khẩu mới qua thư điện tử nếu bạn quên mật khẩu của mình.',
 'prefs-help-email-others' => 'Bạn cũng có thể lựa chọn cho phép người khác liên lạc với bạn thông qua trang cá nhân hoặc trang thảo luận cá nhân mà không cần để lộ danh tính.',
-'prefs-help-email-required' => 'Bắt buộc phải có địa chỉ e-mail.',
+'prefs-help-email-required' => 'Bắt buộc phải có địa chỉ thư điện tử.',
 'prefs-info' => 'Thông tin cơ bản',
 'prefs-i18n' => 'Quốc tế hóa',
 'prefs-signature' => 'Chữ ký',
@@ -1528,7 +1528,7 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'right-suppressrevision' => 'Xem lại và phục hồi phiên bản mà Sysop không thấy',
 'right-suppressionlog' => 'Xem nhật trình riêng tư',
 'right-block' => 'Cấm thành viên khác sửa đổi',
-'right-blockemail' => 'Cấm thành viên gửi thư',
+'right-blockemail' => 'Cấm người dùng gửi thư điện tử',
 'right-hideuser' => 'Cấm thành viên, rồi ẩn nó đi',
 'right-ipblock-exempt' => 'Bỏ qua cấm IP, tự động cấm và cấm dải IP',
 'right-proxyunbannable' => 'Bỏ qua cấm proxy tự động',
@@ -2587,7 +2587,7 @@ $1',
 ** Con rối của thành viên bị cấm',
 'ipb-hardblock' => 'Ngăn không cho thành viên đã đăng nhập sửa đổi từ địa chỉ IP này',
 'ipbcreateaccount' => 'Cấm mở tài khoản',
-'ipbemailban' => 'Không cho gửi email',
+'ipbemailban' => 'Không cho gửi thư điện tử',
 'ipbenableautoblock' => 'Tự động cấm các địa chỉ IP mà thành viên này sử dụng',
 'ipbsubmit' => 'Cấm',
 'ipbother' => 'Thời hạn khác:',
index 73adb50..b81365a 100644 (file)
@@ -55,6 +55,19 @@ $namespaceNames = array(
        NS_CATEGORY_TALK    => 'Categoreye_copene',
 );
 
+$specialPageAliases = array(
+       'Allpages'                  => array( 'Totes_les_pådjes' ),
+       'Block'                     => array( 'Bloker', 'Blocaedje' ),
+       'Categories'                => array( 'Categoreyes' ),
+       'Preferences'               => array( 'Preferinces' ),
+       'Prefixindex'               => array( 'Indecse_pa_betchete' ),
+       'Search'                    => array( 'Cweri' ),
+       'Specialpages'              => array( 'Pådjes_sipeciåles' ),
+       'Statistics'                => array( 'Sitatistikes' ),
+       'Version'                   => array( 'Modêye' ),
+       'Watchlist'                 => array( 'Pådjes_shuvowes' ),
+);
+
 # definixha del cogne po les limeros
 # (number format definition)
 # en: 12,345.67 -> wa: 12 345,67
@@ -63,17 +76,13 @@ $separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
 # $linkTrail = '/^([a-zåâêîôûçéèA-ZÅÂÊÎÔÛÇÉÈ]+)(.*)$/sDu';
 $linkTrail = '/^([a-zåâêîôûçéè]+)(.*)$/sDu';
 
-#
-# NOTE:
-# sysop = manaedjeu
-# bureaucrat = mwaisse-manaedjeu
-#
-
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Sorlignî les loyéns:',
 'tog-justify' => 'Djustifyî les hagnons',
-'tog-hideminor' => 'Èn nén mostrer les <i>dierins candjmints</i> mineurs',
+'tog-hideminor' => 'Èn nén mostrer les dierins candjmints mineurs',
+'tog-hidepatrolled' => 'Èn nén mostrer les candjmints ddja patrouyîs',
+'tog-newpageshidepatrolled' => 'Èn nén mostrer el djivêye des novelès pådjes les cenes dedja patrouyeyes',
 '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',
@@ -96,6 +105,7 @@ $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-oldsig' => 'Siné pol moumint:',
 '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]).',
@@ -104,8 +114,11 @@ $messages = array(
 'tog-forceeditsummary' => "M' advierti cwand dji lai vude on rascourti",
 'tog-watchlisthideown' => 'Èn nén mostrer les candjmints da minne',
 'tog-watchlisthidebots' => 'Èn nén mostrer les candjmints des robots',
-'tog-watchlisthideminor' => "Catchî les candjmints mineurs dins l' djivêye des shuvous",
-'tog-ccmeonemails' => "m' evoyî ene copeye des emiles ki dj' evoye ås ôtes",
+'tog-watchlisthideminor' => 'Èn nén mostrer les candjmints mineurs',
+'tog-watchlisthideliu' => 'Èn nén mostrer les candjmints fwait pa des uzeus edjîstrés',
+'tog-watchlisthideanons' => 'Èn nén mostrer les candjmints fwait pa des uzeus anonimes',
+'tog-watchlisthidepatrolled' => 'Èn nén mostrer les candjmints ddja patrouyîs',
+'tog-ccmeonemails' => "M' evoyî ene copeye des emiles ki dj' evoye ås ôtes",
 'tog-diffonly' => "Èn nén håyner l' contnou del pådje pa dzo l' pådje des diferinces",
 'tog-showhiddencats' => 'Mostrer les categoreyes mucheyes',
 
@@ -183,6 +196,7 @@ $messages = array(
 '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.",
+'listingcontinuesabbrev' => '(shûte)',
 
 'about' => 'Åd fwait',
 'article' => 'Årtike',
@@ -242,6 +256,7 @@ $messages = array(
 'delete' => 'Disfacer',
 'deletethispage' => "Disfacer l' pådje",
 'undelete_short' => 'Rapexhî {{PLURAL:$1|on candjmint|$1 candjmints}}',
+'viewdeleted_short' => 'Vey {{PLURAL:$1|on candjmint disfacé|$1 candjmints disfacés}}',
 'protect' => 'Protedjî',
 'protect_change' => 'candjî',
 'protectthispage' => "Protedjî l' pådje",
@@ -264,7 +279,7 @@ $messages = array(
 'otherlanguages' => 'Ôtes lingaedjes',
 'redirectedfrom' => '(Redjiblé di $1)',
 'redirectpagesub' => 'Pådje di redjiblaedje',
-'lastmodifiedat' => 'Cisse pådje a stî candjeye pol dierin côp li $2, $1.',
+'lastmodifiedat' => 'Cisse pådje a stî candjeye pol dierin côp li $2 a $1.',
 'viewcount' => 'Cisse pådje la a stî léjhowe {{PLURAL:$1|on côp|$1 côps}}.',
 'protectedpage' => 'Pådje protedjeye',
 'jumpto' => 'Potchî a:',
@@ -275,6 +290,7 @@ Gn a trop d' uzeus ki saynut di vey cisse pådje ci.
 Soeyoz vayant di ratinde ene miete divant di rsayî di vey cisse pådje ci.
 
 $1",
+'pool-errorunknown' => 'Aroke nén cnoxhowe',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'Åd fwait di {{SITENAME}}',
@@ -379,11 +395,14 @@ Li båze di dnêyes a rtourné l' aroke «$3: $4».",
 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 :',
+'viewsource-title' => 'Côde sourdant di «$1»',
+'viewsourcetext' => "Loukîz li contnou d' 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' => "'''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.",
+'cascadeprotected' => "Cisse pådje ci a stî protedjeye siconte des candjmints, pask' ele est eploye ådvins {{PLURAL:$1|del pådje shuvante k' est protedjeye|des pådjes shuvantes ki sont protedjeyes}} avou l' tchuze «e cascåde» en alaedje:
+$2",
 
 # Login and logout pages
 'logouttext' => "'''Vos vs avoz dislodjî.'''
@@ -394,7 +413,7 @@ Notez ki des pådjes k' i gn a si pôrént continowuer a vey come si vos estîz
 
 Vosse conte a stî ahivé.
 Èn rovyîz nén di candjî les [[Special:Preferences|preferinces di {{SITENAME}}]] a vosse môde.',
-'yourname' => "Vosse no d' elodjaedje",
+'yourname' => "Vosse no d' elodjaedje:",
 'yourpassword' => 'Vosse sicret',
 'yourpasswordagain' => 'Ritapez vosse sicret',
 'remembermypassword' => "Rimimbrer m' sicret inte les sessions (nén dpus ki po $1 {{PLURAL:$1|djoû|djoûs}})",
@@ -446,6 +465,7 @@ nel pus vleur candjî, vos ploz djusse ignorer ci messaedje ci eyet continouwer
 '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.",
+'blocked-mailpassword' => "Voste adresse IP est blokêye pol sicrijhaedje, et do côp vos n' poloz nén eployî l' fonccion d' rapexhaedje do scret po-z eviter les abus.",
 '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",
@@ -493,6 +513,17 @@ Motoit ki vos l' avoz ddja candjî ou ridmandé on novea scret timporaire.",
 'passwordreset-email' => 'Adresse emile:',
 'passwordreset-emailtitle' => 'Detays do contre so {{SITENAME}}',
 
+# Special:ChangeEmail
+'changeemail' => "Candjî l' emile",
+'changeemail-header' => "Candjî l' adresse emile do conte",
+'changeemail-text' => "Rimplixhoz l' formulrece po candjî voste adresse emile. Vos dvroz dner vosse sicret po-z acertiner l' candjmint.",
+'changeemail-no-info' => 'Vos dvoz esse elodjî po pleur aveur accès a cisse pådje ci.',
+'changeemail-oldemail' => 'Adresse emile pol moumint:',
+'changeemail-newemail' => 'Novele adresse emile:',
+'changeemail-none' => '(nole)',
+'changeemail-submit' => "Candjî l' emile",
+'changeemail-cancel' => 'Rinoncî',
+
 # Edit page toolbar
 'bold_sample' => 'Cråssès letes',
 'bold_tip' => 'Tecse e cråssès letes',
@@ -525,6 +556,7 @@ Motoit ki vos l' avoz ddja candjî ou ridmandé on novea scret timporaire.",
 '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.",
+'anonpreviewwarning' => "''Vos n' estoz nén elodjî. Si vos schapez c' est voste adresse IP ki serè wårdêye dins l' istwere des candjmints.''",
 '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é",
@@ -542,6 +574,23 @@ Vos ploz contacter $1 oudonbén onk des
 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.",
+'autoblockedtext' => "Voste adresse IP a stî ablokêye otomaticmint, pask' elle a stî eployeye pa èn ôte uzeu, lu-minme dedja rbouté pa $1.
+Li råjhon k' on-z a dné, c' est:
+
+:''$2''.
+
+* Comince do blocaedje: $8
+* Fén do blocaedje: $6
+* Blocaedje di: $7
+
+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.",
+'blockednoreason' => 'sins dire pocwè',
 '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î',
@@ -566,6 +615,8 @@ 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>.',
+'blocked-notice-logextract' => '{{GENDER:$1|Cist uzeu est bloké|Ciste uzeuse est blokêye}} pol moumint.
+Li dierinne intrêye e djournå des blocaedjes est dnêye chal pa dzo po infôrmåcion:',
 '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)
@@ -579,10 +630,11 @@ oudonbén <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENA
 '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é)',
+'note' => "'''Note :'''",
 '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».',
+'previewconflict' => 'Ci prévoeyaedje ci mostere kimint kel tecse del boesse di tecse do dzeu sereut håyné si vos decidez del 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.'''
@@ -592,6 +644,7 @@ Rissayîz s' i vs plait. Si çoula n' va todi nén, sayîz di vs dislodjî eyet
 '''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',
+'creating' => 'Ahivant $1',
 'editingsection' => 'Candjant $1 (seccion)',
 'editingcomment' => 'Candjant $1 (novele seccion)',
 'editconflict' => 'Ecramiaedje inte deus candjmints: $1',
@@ -627,6 +680,7 @@ Li manaedjeu k' a-st eclawé l' båze di dnêyes a dné cist esplicaedje ci: $1"
 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:",
+'cascadeprotectedwarning' => "'''ASTEME:''' cisse pådje ci a stî protedjeye ça fwait ki seulmint les uzeus avou l' livea d' manaedjeu el polnut candjî, paski l' pådje est eployeye å dvins {{PLURAL:$1|del pådje shuvante, k' est protedjeye|des pådjes shuvantes, ki sont protedjeyes}} avou l' tchuze «e cascåde» en alaedje:",
 '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:',
@@ -683,24 +737,27 @@ Ledjinde: '''({{int:cur}})''' = diferince avou l' modêye d' asteure, '''({{int:
 # Revision deletion
 '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].',
-'rev-deleted-text-view' => "Cisse modêye ci del pådje a stî oistêye foû des årtchives publikes.
-Come manaedjeu so ç' wiki ci, vos avoz l' droet del vey; i gn a motoit des detays sol [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} djournå des disfaçaedjes].",
+'rev-deleted-text-permission' => "Cisse modêye ci del pådje a stî '''disfacêye'''.
+Vos ploz vey les ca et les ma sol [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} djournå des disfaçaedjes].",
+'rev-deleted-text-view' => "Cisse modêye ci del pådje a stî '''disfacêye'''.
+Vos l' poloz co vey; i gn a des detays sol [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} djournå des disfaçaedjes].",
 'rev-delundel' => 'mostrer/catchî',
 'revisiondelete' => 'Disfacer/rapexhî des modêyes',
-'revdelete-selected' => "'''Tchoezeye modêye di [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$2|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås po '''$1:''''''",
-'revdelete-text' => "'''Les disfacêyès modêyes vont continouwer d' aparexhe dins l' pådje di l' istwere, mins leu contnou n' serè nén veyåve do publik.'''
+'revdelete-selected' => "'''{{PLURAL:$2|Tchoezeye modêye|Tchoezeyès modêyes}} di [[:$1]]:'''",
+'logdelete-selected' => "'''{{PLURAL:$1|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås:'''",
+'revdelete-text' => "'''Les disfacés avenmints et modêyes vont continouwer d' aparexhe dins l' pådje di l' istwere, mins leu contnou n' serè nén veyåve do publik.'''
 
-Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l' rapexhî åd triviè di cisse minme eterface ci, a moens k' ene restriccion di pus ni soeye metowe en alaedje pås mwaisses-manaedjeus del waibe.",
-'revdelete-legend' => 'Defini des restriccions sol modêye',
+Les ôtes manaedjeus so {{SITENAME}} pôront todi vey li contnou catchî eyet l' rapexhî åd triviè di cisse minme eterface ci, a moens k' ene restriccion di pus ni soeye metowe en alaedje pås mwaisses-manaedjeus del waibe.",
+'revdelete-legend' => 'Defini des restriccions sol voeyaedje',
 'revdelete-hide-text' => "Catchî l' tecse del modêye",
 'revdelete-hide-comment' => "Catchî l' comintaire di candjmint",
 'revdelete-hide-user' => "Catchî l' no d' uzeu/adresse IP do candjeu",
-'revdelete-hide-restricted' => 'Apliker ces restrictions ossu åzès manaedjeus',
+'revdelete-hide-restricted' => "Oister foû les dnêyes ossu bén po les manaedjeus k' po les ôtes",
+'revdelete-radio-set' => 'Oyi',
+'revdelete-radio-unset' => 'Neni',
 'revdelete-log' => 'Råjhon:',
 'revdelete-submit' => 'Apliker {{PLURAL:$1|al modêye tchoezeye|åzès modêyes tchoezeyes}}',
+'deletedhist' => 'Istwere disfacêye',
 
 # History merging
 'mergehistory-success' => '$3 modêye{{PLURAL:$3||s}} di [[:$1]] {{PLURAL:$3|a stî metowe|ont stî metowes}} avou [[:$2]].',
@@ -718,7 +775,7 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'searchresults' => 'Rizultats do cweraedje',
 'searchresults-title' => 'Rizultats des rcwerances po « $1 »',
 'searchresulttext' => 'Po pus di racsegnes sol manire di fé des cweraedjes so {{SITENAME}}, loukîz [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => 'Pol cweraedje «[[$1]]»',
+'searchsubtitle' => "Vos avoz cwerou après «'''[[:$1]]'''» ([[Special:Prefixindex/$1|totes les pådjes ki cmincèt avou «$1»]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|totes les pådjes ki loynut viè «$1»]])",
 'searchsubtitleinvalid' => 'Pol cweraedje «$1»',
 'titlematches' => 'Årtikes avou on tite ki corespond',
 'notitlematches' => 'Nol årtike avou on tite ki corespond',
@@ -728,24 +785,47 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'nextn' => '{{PLURAL:$1|shuvant|$1 shuvants}}',
 'prevn-title' => '$1 {{PLURAL:$1|rizultat|rizultats}} di dvant',
 'nextn-title' => '{{PLURAL:$1|rizultat shuvant|$1 rizultats shuvants}}',
+'shown-title' => 'Mostrer $1 rizultat{{PLURAL:$1||s}} par pådje',
 'viewprevnext' => 'Vey ($1 {{int:pipe-separator}} $2) ($3).',
+'searchmenu-legend' => 'Tchuzes di cweraedje',
 'searchmenu-exists' => "'''Gn a ddja ene pådje lomêye « [[:$1]] » so ç' wiki ci'''",
+'searchmenu-new' => "'''Ahiver l' pådje \"[[:\$1]]\" so ç' wiki ci!'''",
 'searchhelp-url' => 'Help:Aidance',
-'searchprofile-everything' => 'Tot',
+'searchprofile-articles' => 'Pådjes di contnou',
+'searchprofile-project' => "Pådjes d' aidance et do pordjet",
+'searchprofile-images' => 'Multimedia',
+'searchprofile-everything' => 'Tote li waibe',
+'searchprofile-advanced' => 'Sipepieus',
+'searchprofile-articles-tooltip' => 'Cweri dins $1',
+'searchprofile-project-tooltip' => 'Cweri dins $1',
+'searchprofile-images-tooltip' => 'Cweri après des fitchîs multimedia',
+'searchprofile-everything-tooltip' => "Cweri tot avå l' waibe (dins tos les espåces di lomaedje eyet leu pådjes di copene)",
+'searchprofile-advanced-tooltip' => 'Tchoezixhoz les espåces di lomaedje ki vos vloz rwaitî pol cweraedje',
 'search-result-size' => '$1 ($2 mot{{PLURAL:$2||s}})',
-'search-redirect' => '(ridjiblé di $1)',
+'search-result-category-size' => '$1 mimbe{{PLURAL:$1||s}} ($2 dizo-categoreye{{PLURAL:$2||s}}, $3 fitchî{{PLURAL:$3||s}})',
+'search-result-score' => 'Pertinance: $1%',
+'search-redirect' => '(redjiblé di $1)',
 'search-section' => '(seccion $1)',
+'search-suggest' => 'Sayîz motoit çoula: $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).",
+'showingresultsheader' => "{{PLURAL:$5|Rizultat '''$1'''|Rizultats '''$1 - $2'''}} foû di '''$3'' po '''$4'''",
+'nonefound' => "'''Note''': li prémetowe dujhance c' est d' cweri seulmint e sacwants espåces di lomaedje.
+Vos ploz sayî di mete «all:» pa dvant l' tecse a cweri po cweri dins tot l' contnou do wiki (dj' ô bén, ezès pådjes di copene, les modeles, evnd.), oudobén vos ploz mete li no d' l' espåce di lomaedje come betchete.",
 'search-nonefound' => "N' a rén di çou ki vs cweroz après",
 'powersearch' => 'Cweri',
 'powersearch-legend' => 'Pus spepieus rcweraedjes',
+'powersearch-ns' => 'Cweri ezès espåces di lomaedje:',
 'powersearch-redir' => 'Håyner les rdjiblaedjes',
+'powersearch-field' => 'Cweri',
+'powersearch-togglelabel' => 'Tchoezi:',
+'powersearch-toggleall' => 'Totafwait',
+'powersearch-togglenone' => 'Disclitchî tot',
+'search-external' => 'Difoûtrin cweraedje',
 'searchdisabled' => "Mande escuzes! Li cweraedje å dvins des årtikes a stî dismetou pol moumint, cåze ki l' sierveu est fortcherdjî. Tot ratindant, vos ploz eployî Google po fé les rcweraedjes so {{SITENAME}}, mins çoula pout esse ene miete vî.",
 
 # Quickbar
@@ -755,24 +835,31 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'qbsettings-fixedright' => 'Aclawêye a droete',
 'qbsettings-floatingleft' => 'Flotante a hintche',
 'qbsettings-floatingright' => 'Flotante a droete',
+'qbsettings-directionality' => "Aclawêye, sorlon l' sinse di scrijhaedje di vosse lingaedje",
 
 # Preferences page
 'preferences' => 'Preferinces',
 'mypreferences' => 'Mes preferinces',
 'prefs-edits' => 'Nombe di candjmints:',
 'prefsnologin' => "Vos n' estoz nén elodjî",
-'prefsnologintext' => 'I vs fåt esse [[Special:UserLogin|elodjî]] po pleur candjî vos preferinces.',
+'prefsnologintext' => 'I vs fåt esse <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} elodjî]</span> po pleur candjî vos preferinces.',
 'changepassword' => "Candjî l' sicret",
 'prefs-skin' => 'Pea',
 'skin-preview' => 'vey divant',
 'datedefault' => 'Nole preferince',
 'prefs-datetime' => 'Cogne del date',
+'prefs-user-pages' => 'Pådjes des uzeus',
 'prefs-personal' => 'Dinêyes da vosse',
 'prefs-rc' => 'Håynaedje des dierins candjmints',
 'prefs-watchlist' => 'Djivêye des shuvous',
 'prefs-watchlist-days' => "Nombe di djoûs a mostrer dins l' djivêye:",
+'prefs-watchlist-days-max' => 'Macsimom $1 djoû{{PLURAL:$1||s}}',
 'prefs-watchlist-edits' => "Nombe di candjmints a mostrer dins l' djivêye:",
 'prefs-misc' => 'Totes sôres',
+'prefs-resetpass' => "Candjî l' sicret",
+'prefs-changeemail' => "Candjî l' emile",
+'prefs-setemail' => 'Diner ene adresse emile',
+'prefs-email' => "Tchuzes d' emilaedje",
 'prefs-rendering' => 'Rivnance',
 'saveprefs' => 'Schaper les preferinces',
 'resetprefs' => 'Rimete les prémetowès valixhances',
@@ -783,7 +870,8 @@ Les ôtes manaedjeus so ç' wiki ci pôront todi vey li contnou catchî eyet l'
 'searchresultshead' => 'Håynaedje des rzultats di cweraedje',
 'resultsperpage' => 'Nombe di responses a håyner so ene pådje',
 'recentchangesdays' => 'Nombe di djoûs po les dierins candjmints:',
-'recentchangescount' => 'Nombe di tites dins les dierins candjmints',
+'recentchangesdays-max' => 'Macsimom $1 djoû{{PLURAL:$1||s}}',
+'recentchangescount' => 'Prémetou nombe di candjmintstites a håyner:',
 'savedprefs' => 'Vos preferinces ont stî schapêyes.',
 'timezonelegend' => "Coisse d' eureye:",
 'localtime' => "L' eure locåle",
@@ -876,6 +964,7 @@ Ciste infôrmacion serè publike po tertos.",
 * 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-nodatabase' => "Li båze di dnêyes «$1» n' egzistêye nén ou n' est nén locåle.",
 '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î',
@@ -916,6 +1005,7 @@ Ciste infôrmacion serè publike po tertos.",
 '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-suppressredirect' => 'Èn nén fé di pådje di redjiblaedje dispoy li vî no cwand on displaece ene pådje',
 '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',
@@ -929,6 +1019,10 @@ Ciste infôrmacion serè publike po tertos.",
 '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-deletedhistory' => "Vey les disfacêyès intrêyes di l' istwere, sins leu tecse",
+'right-deletedtext' => 'Vey les tecses disfacés eyet les candjmints etur disfacêyès modêyes',
+'right-browsearchive' => 'Loukî après les disfacêyès pådjes',
+'right-undelete' => "Rapexhî ene pådje k' a stî disfacêye",
 '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",
@@ -964,7 +1058,10 @@ Ciste infôrmacion serè publike po tertos.",
 '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-deletedhistory' => "vey les disfacêyès intrêyes di l' istwere",
+'action-browsearchive' => 'loukî après les disfacêyès pådjes',
+'action-undelete' => "rapexhî l' pådje",
+'action-suppressrevision' => "verifyî et rapexhî l' modêye catcheye",
 '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",
@@ -973,7 +1070,7 @@ Ciste infôrmacion serè publike po tertos.",
 'nchanges' => '$1 {{PLURAL:$1|candjmint|candjmints}}',
 'recentchanges' => 'Dierins candjmints',
 '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.',
+'rcnote' => "Chal pa dzo {{PLURAL:$1|li dierin candjmint|les '''$1''' dierins candjmints}} {{PLURAL:$2|do dierin djoû|des '''$2''' dierins djoûs}}, disk' å $4 a $5.",
 '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',
@@ -985,12 +1082,13 @@ Ciste infôrmacion serè publike po tertos.",
 'rclinks' => 'Mostrer les $1 dierins candjmints des dierins $2 djoûs.<br />$3',
 'diff' => 'dif.',
 'hist' => 'ist.',
-'hide' => 'Muchyî',
-'show' => 'Håyner',
+'hide' => 'catch.',
+'show' => 'håy.',
 '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',
+'rc-change-size-new' => "$1 {{PLURAL:$1|octet|octets}} après l' candjmint",
 'newsectionsummary' => '/* $1 */ novele seccion',
 
 # Recent changes linked
@@ -1006,18 +1104,18 @@ Ciste infôrmacion serè publike po tertos.",
 'uploadnologintext' => 'I vs fåt esse [[Special:UserLogin|elodjî]] por vos pleur eberweter des fitchîs.',
 'upload_directory_read_only' => "Li sierveu waibe èn pout nén scrire sol ridant d' eberwetaedje ($1).",
 'uploaderror' => "Aroke d' eberwetaedje",
-'uploadtext' => "Eployîz les boesses d' intrêye chal pa dzo po-z eberweter des noveas fitchîs d' imådjes po vos årtikes. Sol plupårt des betchteus, vos voeroz on boton «Foyter...» (ou «Browse...») ki vs permetrè di foyter dins les ridants del deure plake da vosse po tchoezi l' fitchî, çou ki rimplirè otomaticmint li tchamp do no do fitchî k' est a costé.
-
-Po håyner ou cweri des imådjes k' ont ddja stî rçuvowes, alez sol [[Special:FileList|djivêye des imådjes dedja eberwetêyes]]. Les eberwetaedjes et disfaçaedjes sont metous èn on [[Special:Log/upload|djournå des eberwetaedjes]].
-
-Po håyner l' imådje dins èn årtike, eployîz on loyén del foûme
-* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.jpg]]</nowiki>'''
-* '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.png|thumb|tecse a mete padzo]]</nowiki>'''
-ou co po les sons
-* '''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fitchî.ogg]]</nowiki>'''",
+'uploadtext' => "Eployîz les boesses d' intrêye chal pa dzo po-z eberweter des noveas fitchîs.
+Po håyner ou cweri des fitchîs k' ont ddja stî rçuvous, alez sol [[Special:FileList|djivêye des fitchîs ddja eberweté]].
+Les (r)eberwetaedjes sont eto metos sol [[Special:Log/uplozf|djournå des eberwetaedjes]], les disfaçaedjes sol [[Special:Log/upload|ci des disfaçaedjes]].
+
+Po mete on fitchî dins ene pådje, eployîz on loyén del fôme:
+* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.jpg]]</nowiki></tt>''' po-z eployî l' modêye e grandeu oridjinnåle do fitchî
+* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.png|200px|thumb|left|tecse di rawete]]</nowiki></tt>''' po håyner so ene lårdjeur di 200 picsels dins ene boesse (''thumb'') sol hintche (''left''; metoz ''right'' pol mete sol droete) avou «tecse di rawete» come discrijhaedje
+* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fitchî.ogg]]</nowiki></tt>''' po fé on loyén viè l' fitchî, sins l' håyner",
 'uploadlog' => 'djournå des eberwetaedjes',
 'uploadlogpage' => 'Djournå des eberwetaedjes',
-'uploadlogpagetext' => 'Chal pa dzo li djivêye des dierins eberwetaedjes.',
+'uploadlogpagetext' => 'Chal pa dzo li djivêye des dierins eberwetaedjes.
+Loukîz al [[Special:NewFiles|galreye des noveas fitchîs]] po ene vuwe pus vizuwele.',
 'filename' => 'No do fitchî',
 'filedesc' => 'Discrijhaedje',
 'fileuploadsummary' => 'Discrijhaedje:',
@@ -1032,13 +1130,17 @@ ou co po les sons
 'emptyfile' => "I shonnreut kel fitchî k' vos eberwetez soeye vude. Çoula pout esse cåze d' ene aroke di tapaedje dins l' no do fitchî. Acertinez si vos vloz evoyî po do bon ç' fitchî ci, s' i vs plait.",
 'fileexists' => "On fitchî avou ç' no la egzistêye dedja, loukîz s' i vs plait a '''<tt>[[:$1]]</tt>''' po vs acertiner ki vos vloz bén replaecî l' fitchî avou l' ci ki vos eberwetez asteure, oubén si vos l' voloz eberweter dizo èn ôte no.
 [[$1|thumb]]",
-'fileexists-forbidden' => "I gn a ddja on fitchî avou ç' no la; rivnoz s' i vs plait en erî et s' reberwetez l' fitchî dizo èn ôte no. [[File:$1|thumb|center|$1]]",
-'fileexists-shared-forbidden' => "I gn a ddja on fitchî avou ç' no la e ridant des fitchîs pårtaedjîs; rivnoz s' i vs plait en erî et s' reberwetez l' fitchî dizo èn ôte no. [[File:$1|thumb|center|$1]]",
+'fileexists-forbidden' => "I gn a ddja on fitchî avou ç' no la, et n' pout nén esse sipotchî.
+Si vos l' voloz tot l' minme eberweter, rivnoz en erî et s' reberwetez l' fitchî dizo èn ôte no.
+[[File:$1|thumb|center|$1]]",
+'fileexists-shared-forbidden' => "I gn a ddja on fitchî avou ç' no la e ridant des fitchîs pårtaedjîs.
+Rivnoz s' i vs plait en erî et s' reberwetez l' fitchî dizo èn ôte no si vos vloz.
+[[File:$1|thumb|center|$1]]",
 'uploadwarning' => "Adviertixhmint so l' eberwetaedje",
 'savefile' => "Schaper l' fitchî",
 'uploadedimage' => 'eberwetaedje di «[[$1]]»',
 'uploaddisabled' => 'Eberwetaedje di fitchîs dismetou',
-'uploaddisabledtext' => "Mande escuzes, mins l' eberwetaedje di fitchîs a stî dismetou pol moumint.",
+'uploaddisabledtext' => "L' eberwetaedje di fitchîs a stî dismetou.",
 'uploadscripted' => 'Ci fitchî ci a-st å dvins do côde HTML ou on scripe ki pôreut esse må comprin pa on betchteu waibe.',
 'uploadvirus' => 'Li fitchî a-st on virusse! Detays: $1',
 'sourcefilename' => "No d' fitchî so vosse copiutrece:",
@@ -1056,39 +1158,55 @@ ou co po les sons
 'listfiles_search_for' => "Cweri l' no d' imådje:",
 'imgfile' => 'fitchî',
 'listfiles' => 'Djivêye des imådjes',
+'listfiles_thumb' => 'Imådjete',
+'listfiles_date' => 'Date',
 'listfiles_name' => 'No',
 'listfiles_user' => 'Uzeu',
 'listfiles_size' => 'Grandeu',
 'listfiles_description' => 'Discrijhaedje',
+'listfiles_count' => 'Modêyes',
 
 # File description page
 'file-anchor-link' => 'Imådje',
 'filehist' => 'Istwere do fitchî',
 'filehist-help' => "Clitchîz so ene date ey ene eure po vey kimint ki l' fitchî esteut adon.",
 'filehist-deleteall' => 'disfacer ttafwait',
-'filehist-deleteone' => 'disfacer çouci',
+'filehist-deleteone' => 'disfacer',
+'filehist-revert' => 'disfé',
 'filehist-current' => 'asteure',
 'filehist-datetime' => 'Date/Eure',
+'filehist-thumb' => 'Imådjete',
+'filehist-thumbtext' => 'Imådjete pol modêye do $1',
+'filehist-nothumb' => 'Nole imådjete',
 'filehist-user' => 'Uzeu',
 'filehist-dimensions' => 'Grandeur',
 'filehist-filesize' => 'Grandeur do fitchî',
 'filehist-comment' => 'Comintaire',
+'filehist-missing' => 'Fitchî mancant',
 '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î.',
-'sharedupload-desc-here' => 'Ci fitchî ci provént di $1; si pout i esse eployî divins des ôtes pordjets Wiki. Li discrijhaedje di [$2 si pådje di discrijhaedje] låvå est håynêye cial ådzo.',
+'sharedupload' => "Ci fitchî ci vént d' $1 ey i s' pout k' i soeye eployî pa ds ôtes pordjets.",
+'sharedupload-desc-there' => "Ci fitchî ci provént d' $1; si pout i esse reployî dins des ôtes pordjets. Loukîz [$2 si pådje di discrijhaedje] po-z esse mî racsegnî.",
+'sharedupload-desc-here' => "Ci fitchî ci provént d' $1; si pout i esse eployî divins des ôtes pordjets Wiki. Li discrijhaedje di [$2 si pådje di discrijhaedje] låvå est håynêye cial ådzo.",
 'uploadnewversion-linktext' => 'Eberweter ene nouve modêye di ci fitchî ci',
+'shared-repo-from' => "vént d' $1",
+'shared-repo' => 'on depot pårtaedjî',
 
 # File reversion
+'filerevert' => 'Rimete come divant $1',
 'filerevert-comment' => 'Råjhon:',
+'filerevert-submit' => 'Disfé',
 
 # File deletion
 'filedelete' => 'Disfacer $1',
 'filedelete-legend' => 'Disfacer fitchî',
 'filedelete-comment' => 'Råjhon:',
 'filedelete-submit' => 'Disfacer',
+'filedelete-otherreason' => 'Ene råjhon diferinne ou di pus:',
+'filedelete-reason-dropdown' => '*Råjhons po disfacer (å pus sovint)
+** Nén respet des abondroets
+** Fitchî e dobe',
 
 # MIME search
 'mimesearch' => 'Cweraedje MIME',
@@ -1103,7 +1221,8 @@ ou co po les sons
 
 # Unused templates
 'unusedtemplates' => 'Modeles nén eployîs',
-'unusedtemplatestext' => "Cisse pådje ci mostere totes les pådjes di modele (espåce di lomaedje «{{ns:template}}») ki n' sont nén eployîs dins ene ôte pådje. Rimimbrez vs di verifyî s' i n' a nén des ôtes loyéns divant delzès disfacer.",
+'unusedtemplatestext' => "Cisse pådje ci mostere totes les pådjes di modele (espåce di lomaedje «{{ns:template}}») ki n' sont nén eployîs dins ene ôte pådje.
+Rimimbrez vs di verifyî s' i n' a nén des ôtes loyéns divant delzès disfacer.",
 'unusedtemplateswlh' => 'ôtes loyéns',
 
 # Random page
@@ -1115,20 +1234,32 @@ ou co po les sons
 # Statistics
 'statistics' => 'Sitatistikes',
 'statistics-header-users' => 'Sitatistikes des uzeus',
+'statistics-articles' => 'Pådjes di contnou',
 'statistics-pages-desc' => 'Totes les pådjes do "Wiki", minme les copinaedjes, les rdjiblaedjes, evnd.',
 'statistics-mostpopular' => 'Pådjes les pus veyowes',
 
-'disambiguations' => "Pådjes d' omonimeye",
+'disambiguations' => "Pådjes avou des loyéns viè des pådjes d' omonimeye",
 'disambiguationspage' => 'Template:Omonimeye',
+'disambiguations-text' => "Ces pådjes ci loynut eviè ene '''pådje d' omonimeye'''.
+Ele divrént purade raloyî direk å mwaisse sudjet.<br />
+Ene pådje est waiteye come pådje d' omonimeye s' ele eploye on modele k' est loyî a [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Dobes redjiblaedjes',
-'doubleredirectstext' => "Tchaeke roye a-st on loyén viè l' prumî eyet l' deujhinme redjiblaedje, avou on mostraedje del prumire roye do tecse do deujhinme redjiblaedje, çou ki å pus sovint dene li «vraiy» årtike såme, ki l' prumî redjiblaedje divreut evoyî viè lu.",
+'doubleredirectstext' => "Cisse pådje ci mostere les dobes redjiblaedjes (pådjes ki redjiblèt viè ene ôte pådje di redjiblaedje).
+Tchaeke roye a-st on loyén viè l' prumî eyet l' deujhinme redjiblaedje, avou on mostraedje del såme do deujhinme redjiblaedje, çou ki å pus sovint dene li «vraiy» årtike såme, ki l' prumî redjiblaedje divreut evoyî viè lu.
+Lis intrêyes <del>bårêyes</del> otn ddja stî coridjeyes.",
 
 'brokenredirects' => 'Pierdous redjiblaedjes',
-'brokenredirectstext' => "Les redjiblaedjes shuvants evoyèt so ene pådje ki n' egzistêye nén.",
+'brokenredirectstext' => "Les redjiblaedjes shuvants evoyèt so ene pådje ki n' egzistêye nén:",
 'brokenredirects-edit' => 'candjî',
 'brokenredirects-delete' => 'disfacer',
 
+'withoutinterwiki' => 'Pådjes sins loyéns eterwiki',
+'withoutinterwiki-summary' => "Les pådjes shuvantes n' ont nén des loyéns viè ds ôtes lingaedjes.",
+'withoutinterwiki-legend' => 'Betchete',
+
+'fewestrevisions' => "Årtikes k' on n' î a waire bodjî",
+
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|octet|octets}}',
 'ncategories' => '$1 {{PLURAL:$1|categoreye|categoreyes}}',
@@ -1149,6 +1280,8 @@ ou co po les sons
 'popularpages' => 'Pådjes les pus léjhowes',
 'wantedcategories' => 'Categoreyes les pus rcwerowes',
 'wantedpages' => 'Pådjes les pus rcwerowes',
+'wantedfiles' => 'Fitchîs les pus rcwerous',
+'wantedtemplates' => 'Modeles ricwerous',
 'mostlinked' => 'Pådjes les pus loyeyes',
 'mostlinkedcategories' => 'Categoreyes les pus loyeyes',
 'mostlinkedtemplates' => 'Modeles les pus eployîs',
@@ -1159,15 +1292,25 @@ ou co po les sons
 'shortpages' => 'Coûtès pådjes',
 'longpages' => 'Longowès pådjes',
 'deadendpages' => 'Pådjes sins nou loyén wiki',
+'deadendpagestext' => "Les pådjes shuvantes n' ont nou loyén viè ds ôtès pådjes di {{SITENAME}}.",
 'protectedpages' => 'Pådjes protedjeyes',
+'protectedpages-indef' => "Seulmint les protedjaedje disk' a todi",
+'protectedpages-cascade' => 'Seulmint les protedjaedjes e cascåde',
+'protectedpagestext' => "Les pådjes shuvantes sont protedjeyes siconte li displaeçaedje ou l' candjmint do tecse",
+'protectedpagesempty' => 'I gn a pol moumint nole pådje sifwaitmint protedjeye.',
+'protectedtitles' => 'Tites protedjîs',
+'protectedtitlestext' => "Les tites shuvants sont protedjîs, ça fwait k' on n' pout nén ahiver ene pådje lomêye inla.",
+'protectedtitlesempty' => 'I gn a pol moumint nou tite sifwaitmint protedjî.',
 'listusers' => 'Djivêye des uzeus',
+'usereditcount' => '$1 candjmint{{PLURAL:$1||s}}',
 '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.",
+'unusedimagestext' => "Les fitchîs shuvants egzistèt mins n' sont håynés dins nole pādje.
+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|$1 pus novea|$1 pus noveas}}',
 'pager-older-n' => '{{PLURAL:$1|$1 pus vî|$1 pus vîs}}',
@@ -1190,6 +1333,7 @@ Vos ploz defini l' håynaedje tot tchoezixhant ene sôre di djournå, on no d' u
 'alphaindexline' => 'di $1 a $2',
 'nextpage' => 'Pådje shuvante ($1)',
 'allpagesfrom' => 'Håyner les pådjes a pårti di:',
+'allpagesto' => "Håyner les pådjes disk' a:",
 'allarticles' => 'Tos les årtikes',
 'allinnamespace' => 'Totes les pådjes (espåce di lomaedje $1)',
 'allnotinnamespace' => "Totes les pådjes (foû d' l' espåce di lomaedje $1)",
@@ -1205,6 +1349,30 @@ Vos ploz defini l' håynaedje tot tchoezixhant ene sôre di djournå, on no d' u
 [[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-categories-sort-count' => 'relére pa nombe di cayets',
+'special-categories-sort-abc' => 'relére alfabeticmint',
+
+# Special:DeletedContributions
+'deletedcontributions' => 'Contribouwaedjes disfacés',
+'deletedcontributions-title' => 'Contribouwaedjes disfacés',
+'sp-deletedcontributions-contribs' => 'contribouwaedjes',
+
+# Special:LinkSearch
+'linksearch' => 'Cweri des dfoûtrinnès hårdêyes',
+'linksearch-pat' => 'Patron pol cweraedje:',
+'linksearch-ns' => 'Espåce di lomaedje:',
+'linksearch-ok' => 'Cweri',
+'linksearch-text' => 'Des caracteres «djokers» polèt esse eployîs, metans «*.wikipedia.org».
+Mins i fåt pol moens on dominne di prumî livea, metans «*.org»<br />
+Protocoles ricnoxhous: <tt>$1</tt> (nelzès metoz nén dins vosse tchinne di cweraedje).',
+'linksearch-line' => "$1 est loyî a pårti d' $2",
+'linksearch-error' => "Les caracteres djokers èn polèt esse eployîs k' a l' atake d' on no d' dominne ou d' lodjoe.",
+
+# Special:ListUsers
+'listusersfrom' => 'Håyner les uzeus a pårti di:',
+'listusers-submit' => 'Vey',
+'listusers-noresult' => 'Nol uzeu di trové.',
+'listusers-blocked' => '({{GENDER:$1|bloké|blokêye}})',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Djournå des noveas uzeus',
@@ -1215,22 +1383,21 @@ Loukîz eto [[Special:WantedCategories|les categoreyes dimandêyes]].',
 'mailnologintext' => "Po-z evoyî èn emile a èn ôte uzeu i vs fåt esse [[Special:UserLogin|elodjî]] eyet aveur ene adresse emile d' evoyeu ki soeye valide dins vos [[Special:Preferences|preferinces]].",
 'emailuser' => "Emiler a l' uzeu",
 'emailpage' => 'Emilaedje a èn uzeu',
-'emailpagetext' => "Si cist uzeu chal a dné ene adresse emile valide dins
-ses preferinces, vos lyi ploz evoyî èn emile a pårti di cisse pådje chal.
-L' adresse emile k' i gn a dins vos preferinces serè-st eployeye
+'emailpagetext' => "Vos ploz eployî l' formulrece chal pa dzo po-z evoyî èn emile a l' uzeu.
+L' adresse emile k' i gn a dins [[Special:Preferences|vos preferinces]] serè-st eployeye
 come adresse di l' evoyeu (adresse «From:» di l' emile),
 po ki l' riçuveu poye risponde.",
 'usermailererror' => "Åk n' a nén stî tot voyant l' emile:",
-'defemailsubject' => 'Emile da {{SITENAME}}',
+'defemailsubject' => "Emile da l' uzeu «$1» so {{SITENAME}}",
 'noemailtitle' => "Pont d' adresse emile",
-'noemailtext' => "Cist uzeu chal n' a nén dné d' adresse emile
-valide, ou n' vout nén rçure des emiles des ôtes uzeus.
-Do côp, c' est nén possibe di lyi evoyî èn emile.",
-'emailfrom' => 'Di',
+'noemailtext' => "Cist uzeu chal n' a nén dné d' adresse emile valide.",
+'emailfrom' => 'Di:',
 'emailto' => 'Po:',
-'emailsubject' => 'Sudjet',
-'emailmessage' => 'Messaedje',
+'emailsubject' => 'Sudjet:',
+'emailmessage' => 'Messaedje:',
 'emailsend' => 'Evoyî',
+'emailccme' => "M' emiler ene copeye do messaedje",
+'emailccsubject' => 'Copeyee di vosse messaedje a $1: $2',
 'emailsent' => 'Emile evoyî',
 'emailsenttext' => 'Vost emilaedje a stî evoyî comifåt.',
 
@@ -1254,14 +1421,14 @@ Si vos vloz bodjî l' pådje foû di vosse djivêye des shuvous, clitchîz so «
 'unwatchthispage' => 'Èn pus shuve li pådje',
 'notanarticle' => 'Nén èn årtike',
 'watchnochange' => "Nole des pådjes di vosse djivêye di pådjes a shuve n' a stî candjeye dins l' termene di tins dmandêye.",
-'watchlist-details' => '{{PLURAL:$1|$1 pådje shuvowe|$1 pådjes shuvowes}} (sins conter les pådjes di copene).',
+'watchlist-details' => 'Vos avoz {{PLURAL:$1|$1 pådje shuvowe|$1 pådjes shuvowes}} (sins conter les pådjes di copene).',
 'wlheader-enotif' => '* Li notifiaedje pa emile est en alaedje.',
 'wlheader-showupdated' => "* Les pådjes k' ont candjî dispoy vosse dierinne vizite sont metowes e '''cråssès letes'''",
 'watchmethod-recent' => "Cwerant après les pådjes k' ont stî candjeyes dierinnmint ki sont eto des pådjes shuvowes",
 'watchmethod-list' => "Cwerant après les pådjes shuvowes k' ont stî candjeyes dierinnmint",
 '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.',
+'wlnote' => "Chal pa dzo {{PLURAL:$1|li dierin candjmint|les '''$1''' dierins candjmints}} {{PLURAL:$2|del dierinne eure|des '''$2''' dierinnès eures}}, disk' å $3 a $4.",
 'wlshowlast' => 'Mostrer les dierin(nè)s $1 eures, $2 djoûs ou $3',
 
 'enotif_mailer' => 'Notifiaedje pa emile di {{SITENAME}}',
@@ -1273,7 +1440,8 @@ Si vos vloz bodjî l' pådje foû di vosse djivêye des shuvous, clitchîz so «
 'enotif_lastvisited' => 'Loukîz $1 po tos les candjmints dispoy vosse dierinne vizite.',
 'enotif_body' => 'Binamé $WATCHINGUSERNAME,
 
-Li pådje «$PAGETITLE» so {{SITENAME}} a stî $CHANGEDORCREATED li $PAGEEDITDATE pa $PAGEEDITOR, loukîz $PAGETITLE_URL pol modêye do moumint.
+Li pådje «$PAGETITLE» so {{SITENAME}} a stî $CHANGEDORCREATED li $PAGEEDITDATE pa $PAGEEDITOR,
+loukîz $PAGETITLE_URL pol modêye do moumint.
 
 $NEWPAGE
 
@@ -1283,17 +1451,24 @@ Contak do candjeu:
 emile: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-I n\' årè nén d\' ôtes notifiaedjes po ds ôtes candjmints di ç\' minme pådje ci tant k\' vos n\' l\' åroz nén vizitêye. Vos ploz eto rimete a noû les drapeas di notifiaedje po totes les pådjes di vosse djivêye des pådjes a shuve.
+I n\' årè nén d\' ôtes notifiaedjes po ds ôtes candjmints di ç\' minme pådje ci tant k\' vos n\' l\' åroz nén vizitêye.
+Vos ploz eto rimete a noû les drapeas di notifiaedje po totes les pådjes di vosse djivêye des pådjes a shuve.
 
 
-         Vosse binamé sistinme di notifiaedje so {{SITENAME}}
+Vosse binamé sistinme di notifiaedje so {{SITENAME}}
 
 --
+Po candjî l\' apontiaedje di vos notifiaedjes pa emile, loukîz
+{{canonicalurl:{{#special:Preferences}}}}
+
 Po candjî l\' apontiaedje di vosse djivêye a shuve, loukîz
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
+Po rsaetchî l\' pådje di vosse djivêye a shuve, alez so
+$UNWATCHURL
+
 Po pus d\' aidance:
-{{canonicalurl:{{ns:help}}:Aidance}}',
+{{canonicalurl:{{MediaWiki:Helppage}}}}',
 
 # Delete
 'deletepage' => "Disfacer l' pådje",
@@ -1302,13 +1477,15 @@ Po pus d\' aidance:
 'excontentauthor' => "li contnou esteut: «$1» (eyet l' seu contribouweu esteut «$2»)",
 'exbeforeblank' => "li contnou dvant l' disfaçaedje esteut: «$1»",
 'exblank' => 'li pådje esteut vude',
-'historywarning' => 'Asteme: Li pådje ki vos alez disfacer a-st ene istwere:',
-'confirmdeletetext' => "Vos alez disfacer po tofer del båze di dnêyes ene
-pådje ou ene imådje, avou tote si istwere.
+'delete-confirm' => 'Disfacer «$1»',
+'delete-legend' => 'Disfacer',
+'historywarning' => "'''Asteme:''' Li pådje ki vos alez disfacer a-st ene istwere avou a pô près $1 modêye{{PLURAL:$1||s}}:",
+'confirmdeletetext' => "Vos alez disfacer ene pådje avou tote si istwere.
 Acertinez s' i vs plait ki c' est bén çoula ki vos vloz fé,
 ki vos comprindoz les consecwinces, et ki vos fjhoz çoula
 tot [[{{MediaWiki:Policy-url}}|shuvant les rîles]].",
 'actioncomplete' => 'Fwait',
+'actionfailed' => "L' accion a fwait berwete",
 'deletedtext' => 'Li pådje «$1» a stî disfacêye. Loukîz li $2 po ene
 djivêye des dierins disfaçaedjes.',
 'dellogpage' => 'Djournå des disfaçaedjes',
@@ -1316,54 +1493,97 @@ djivêye des dierins disfaçaedjes.',
 'deletionlog' => 'djournå des disfaçaedjes',
 'reverted' => 'Rimetou ene modêye di dvant',
 'deletecomment' => 'Råjhon:',
+'deleteotherreason' => 'Ene råjhon diferinne ou di pus:',
+'deletereasonotherlist' => 'Ôte råjhon',
+'deletereason-dropdown' => "* Råjhons les pus corantes po disfacer
+** Dimande di l' oteur
+** Violåcion d' abondroets
+** Vandalisse",
+'delete-edit-reasonlist' => 'Candjî les råjhons do disfaçaedje',
+'delete-toobig' => "Cisse pådje ci a ene foû grande istwere, avou dpus di $1 modêye{{PLURAL:$1||s}}.
+Li disfaçaedje des sfwaitès pådjes a stî dismetou po-z espaitchî k' i gn åye des problinmes so {{SITENAME}}.",
+'delete-warning-toobig' => "Cisse pådje ci a ene foû grande istwere, avou dpus di $1 modêye{{PLURAL:$1||s}}.
+Si disfaçaedje pôreut fé des problinmes avou l' rotaedje del båze di dnêyes so {{SITENAME}}; 
+nel fijhoz k' avou asteme.",
 
 # Rollback
+'rollbacklink' => 'netyî',
 'cantrollback' => "Dji n' sai disfé les candjmints; li dierin contribouweu est li seu oteur po cist årtike ci.",
 'alreadyrolled' => "Dji n' sai disfé li dierin candjmint di [[$1]] fwait pa [[User:$2|$2]] ([[User talk:$2|Copene]]);
 ene sakî d' ôte a ddja candjî l' årtike ou ddja rmetou l' modêye di dvant.
 
 Li dierin candjmint a stî fwait pa [[User:$3|$3]] ([[User talk:$3|Copene]]).",
-'editcomment' => "Li comintaire do candjmint esteut: «''$1''».",
-'revertpage' => 'Disfwait li candjmint da [[Special:Contributions/$2|$2]] ([[User talk:$2|copene]]); li dierin candjmint est asteure da [[User:$1|$1]]',
+'editcomment' => "Li rascourti do candjmint esteut: «''$1''».",
+'revertpage' => 'Disfwait les candjmints da [[Special:Contributions/$2|$2]] ([[User talk:$2|copene]]); li dierin candjmint est asteure da [[User:$1|$1]]',
 
 # Protect
 'protectlogpage' => 'Djournå des protedjaedjes',
-'protectlogtext' => "Chal pa dzo c' est ene djivêye des protedjaedjes et disprotedjaedjes des pådjes.",
+'protectlogtext' => "Chal pa dzo c' est ene djivêye des protedjaedjes et disprotedjaedjes des pådjes.
+Loukîz al [[Special:ProtectedPages|djivêye des pådjes protedjeyes]] po vey les protedjaedjes ki sont en alaedje pol moumint.",
 'protectedarticle' => '«[[$1]]» protedjî',
-'unprotectedarticle' => '«[[$1]]» disprotedjî',
+'modifiedarticleprotection' => "a candjî l' livea d' protedjaedje di «[[$1]]»",
+'unprotectedarticle' => 'a disprotedjî «[[$1]]»',
+'movedarticleprotection' => 'a displaecî les parametes di protedjaedje di «[[$1]]» eviè «[[$2]]»',
 'protect-title' => 'Protedjant «$1»',
+'protect-title-notallowed' => "Livea d' protedjaedje di «$1»",
 'prot_1movedto2' => '[[$1]] displaecî viè [[$2]]',
+'protect-badnamespace-title' => 'Espåce di lomaedjé nén protedjåve',
+'protect-badnamespace-text' => "Les pådjes e cist espåce di lomaedje ci n' polèt nén esse protedjeyes.",
 'protect-legend' => "Acertinez l' protedjaedje",
 'protectcomment' => 'Råjhon:',
+'protectexpiry' => 'Termene:',
+'protect-unchain-permissions' => "Disclawer d' ôtès tchuzes di protedjaedje",
 'protect-text' => "Vos ploz droci vey eyet candjî l' livea d' protedjaedje pol pådje '''$1'''.",
-'protect-default' => '(prémetou)',
-'protect-level-autoconfirmed' => 'Bloker les uzeus nén eredjîstrés',
+'protect-default' => 'Permete a tos les uzeus',
+'protect-level-autoconfirmed' => 'Bloker les noveas uzeus et les cis nén edjîstrés',
 'protect-level-sysop' => 'Seulmint les manaedjeus',
+'protect-summary-cascade' => 'e cascåde',
+'protect-expiring' => 'finixh li $1 (UTC)',
+'protect-expiring-local' => 'finixh li $1',
+'protect-expiry-indefinite' => 'po todi',
+'protect-cascade' => 'Protedjî eto les modeles eployîs so cisse pådje ci (protedjaedje e cascåde)',
+'protect-othertime' => 'Date di fén:',
+'protect-othertime-op' => 'ôte (a vos del diner)',
+'protect-existing-expiry' => 'Li protedjaedje finixh li $2 a $3',
+'protect-otherreason' => 'Ene råjhon diferinne ou di pus:',
+'protect-otherreason-op' => 'Ôte råjhon',
 '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',
+'restriction-type' => 'Permission po:',
+'restriction-level' => "Livea d' protedjaedje:",
+'minimum-size' => 'Grandeu minimom',
+'maximum-size' => 'Grandeu macsimom:',
 'pagesize' => '(octets)',
 
 # Restrictions (nouns)
-'restriction-edit' => 'Candjî',
-'restriction-move' => 'Displaecî',
+'restriction-edit' => 'candjî',
+'restriction-move' => 'displaecî',
+'restriction-create' => 'ahiver',
+'restriction-upload' => 'eberweter',
+
+# Restriction levels
+'restriction-level-sysop' => 'protedjaedje complet',
+'restriction-level-autoconfirmed' => 'dimey-protedjaedje',
+'restriction-level-all' => 'tos les liveas',
 
 # Undelete
 'undelete' => 'Rapexhî des disfacêyès pådjes',
 'undeletepage' => 'Vey et rapexhî des disfacêyès pådjes',
 'viewdeletedpage' => 'Vey les disfacêyès pådjes',
-'undeletepagetext' => 'Les pådjes shuvantes ont stî disfacêyes mins ele sont co ezès årtchives, do côp ele polèt esse rapexheyes.',
-'undeleteextrahelp' => "Po rapexhî l' pådje etire, leyîz vudes totes les boesses a clitchî eyet clitchîz sol boton «'''Rapexhî'''». Po rapexhî seulmint des modêyes k' i gn a, tchoezixhoz les cenes ki vos vloz avou les boesses a clitchî, eyet poy clitchîz sol boton «'''Rapexhî'''». Si vos clitchîz sol boton «'''Netyî'''», çoula neteyrè l' tchamp d' comintaire eyet totes les boesses a clitchî.",
-'undeleterevisions' => '$1 modêyes ezès årtchives',
-'undeletehistory' => "Si vos rapexhîz l' pådje, l' istwere del pådje
-serè rapexheye eto, avou totes les modêyes co ezès årtchives.
-Si ene novele pådje avou l' minme no a stî askepieye dispoy li disfaçaedje
-di cisse chal, les rapexheyès modêyes seront metowes e l' istwere mins
-c' est l' modêye do moumint, et nén l' cisse rapexheye, ki
-srè håynêye.",
+'undeletepagetext' => '{{PLURAL:$1|Li pådje shuvante a stî disfacêye mins elle est co ezès årtchives, do côp ele pout esse rapexheye|Les pådjes shuvantes ont stî disfacêyes mins ele sont co ezès årtchives, do côp ele polèt esse rapexheyes}}.
+Les årtchives polèt esse rnetieyes di tinzintins.',
+'undelete-fieldset-title' => 'Rapexhî les modêyes',
+'undeleteextrahelp' => "Po rapexhî l' istwere etire del pådje, leyîz vudes totes les boesses a clitchî eyet clitchîz sol boton «'''{{int:undeletebtn}}'''».
+Po rapexhî seulmint des modêyes k' i gn a, tchoezixhoz les cenes ki vos vloz avou les boesses a clitchî, eyet poy clitchîz sol boton «'''{{int:undeletebtn}}'''».",
+'undeleterevisions' => '$1 modêye{{PLURAL:$1||s}} ezès årtchives',
+'undeletehistory' => "Si vos rapexhîz l' pådje, tote l' istwere del pådje serè rapexheye eto.
+Si ene novele pådje avou l' minme no a stî askepieye dispoy li disfaçaedje di cisse-chal,
+les rapexheyès modêyes seront metowes e l' istwere del nouve pådje, come viyès modêyes di cisse-lale.",
 'undeletehistorynoadmin' => "Cist årtike a stî disfacé. Li råjhon do
 disfaçaedje est dnêye chal pa dzo, avou les detays des uzeus k' ont
 candjî l' pådje divant do disfaçaedje. Li tecse di ces modêyes disfacêyes
 ni pout esse veyou ki des manaedjeus.",
-'undeletebtn' => 'Rapexhî!',
+'undeletebtn' => 'Rapexhî',
+'undeletelink' => 'vey/rapexhî',
 'undeletereset' => 'Netyî',
 'undeletecomment' => 'Råjhon:',
 'undeletedrevisions' => '{{PLURAL:$1|1 modêye|$1 modêyes}} di rapexheyes',
@@ -1385,32 +1605,49 @@ Loukîz l' [[Special:Log/delete|djournå des disfaçaedjes]] po ene djivêye des
 
 # Contributions
 'contributions' => "Ovraedjes di l' uzeu",
+'contributions-title' => "Djivêye des ovraedjes di l' {{GENDER:$1|uzeu|uzeuse}} $1",
 'mycontris' => 'Mi ovraedje',
 'contribsub2' => "Po l' uzeu $1 ($2)",
 'nocontribs' => "Nou candjmint di trové ki corespondreut a ç' critere la.",
+'uctop' => '(dierinne)',
 '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-newbies-sub' => 'Emey les noveas uzeus',
+'sp-contributions-newbies-title' => 'Contribouwaedjes des noveas uzeus',
+'sp-contributions-blocklog' => 'djournå des blocaedjes',
+'sp-contributions-deleted' => 'contribouwaedjes disfacés',
+'sp-contributions-uploads' => 'eberwetaedjes',
+'sp-contributions-logs' => 'djournås',
+'sp-contributions-talk' => 'copiner',
+'sp-contributions-userrights' => 'droets',
+'sp-contributions-blocked-notice' => '{{GENDER:$1|Cist uzeu est bloké|Ciste uzeuse est blokêye}} pol moumint.
+Li dierinne intrêye e djournå des blocaedjes est dnêye chal pa dzo po infôrmåcion:',
+'sp-contributions-blocked-notice-anon' => 'Ciste adresse IP est blokêye pol moumint.
+Li dierinne intrêye e djournå des blocaedjes est dnêye chal pa dzo po infôrmåcion:',
+'sp-contributions-search' => 'Cweri les contribouwaedjes',
+'sp-contributions-username' => "Adresse IP ou no d' uzeu:",
 'sp-contributions-submit' => 'Cweri',
 
 # What links here
 'whatlinkshere' => 'Pådjes ki loynut chal',
-'whatlinkshere-title' => 'Pådjes ki loynut aviè « $1 »',
-'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.',
+'whatlinkshere-title' => 'Pådjes ki loynut aviè «$1»',
+'whatlinkshere-page' => 'Pådje:',
+'linkshere' => "Les pådjes ki shuvèt ont des loyéns viè '''[[:$1]]''':",
+'nolinkshere' => "Nole pådje avou des loyéns viè '''[[:$1]]'''.",
 '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 les rdjiblaedjes',
+'whatlinkshere-hidetrans' => '$1 les inclusions',
 'whatlinkshere-hidelinks' => '$1 les loyaedjes',
 'whatlinkshere-hideimages' => "$1 fitchîs k' eploynut cist imådje ci",
-'whatlinkshere-filters' => 'Passettes',
+'whatlinkshere-filters' => 'Passetes',
 
 # Block/unblock
+'autoblockid' => 'Blocaedje otomatike #$1',
 'blockip' => 'Bloker èn uzeu',
 'blockiptext' => "Rimplixhoz les tchamps chal pa dzo po bloker
 l' accès e scrijhaedje d' èn uzeu dné ou a pårt d' ene
@@ -1428,24 +1665,28 @@ stî vandalijheyes).",
 'ipbotheroption' => 'ôte',
 'badipaddress' => "Nol uzeu avou ç' no la, ou adresse IP nén valide",
 'blockipsuccesssub' => 'Li blocaedje a stî comifåt',
-'blockipsuccesstext' => '«[[Special:Contributions/$1|$1]]» a stî bloké.<br />Loukîz li [[Special:BlockList|djivêye des blocaedjes]] po candjî on blocaedje.',
+'blockipsuccesstext' => '«[[Special:Contributions/$1|$1]]» a stî {{GENDER:$1|bloké|blokêye}}.<br />
+Loukîz li [[Special:BlockList|djivêye des blocaedjes]] po verifyî les blocaedjes.',
 'unblockip' => 'Disbloker èn uzeu',
 'unblockiptext' => "Rimplixhoz les tchamps chal pa dzo po ridner accès e scrijhaedje a èn uzeu ou adresse IP k' estént blokés.",
-'ipusubmit' => 'Disbloker ciste adresse ci',
+'ipusubmit' => "Risaetchî l' blocaedje",
 'unblocked' => '«[[User:$1|$1]]» a stî disbloké',
-'ipblocklist' => "Djivêye d' adresses IP et di nos d' uzeus ki sont blokés",
+'unblocked-id' => 'Li blocaedje $1 a stî rsaetchî',
+'ipblocklist' => 'Uzeus blokés',
 'blocklist-reason' => 'Råjhon',
 'ipblocklist-submit' => 'Cweri',
 'infiniteblock' => 'po todi',
-'expiringblock' => "disk' å $1 $2",
+'expiringblock' => "disk' å $1 $2",
 'blocklink' => 'bloker',
 'unblocklink' => 'disbloker',
 'contribslink' => 'contribouwaedjes',
 'autoblocker' => "Bloké otomaticmint paski vos eployîz li minme adresse IP ki «[[User:$1|$1]]». Råjhon do blocaedje «'''$2'''».",
 'blocklogpage' => 'Djournå des blocaedjes',
-'blocklogentry' => '«[[$1]]» a stî bloké po ene termene di $2',
-'blocklogtext' => "Çouchal, c' est on djournå des blocaedjes eyet disblocaedjes d' uzeus. Les adresses IP blokêyes otomaticmint èn sont nén håynêyes. Loukîz li [[Special:BlockList|djivêye des adresses IP blokêyes]] po vey les blocaedjes d' adresses IP do moumint.",
-'unblocklogentry' => '«$1» a stî disbloké',
+'blocklogentry' => 'a bloké «[[$1]]» po ene termene di $2 $3',
+'blocklogtext' => "Çouchal, c' est on djournå des blocaedjes eyet disblocaedjes d' uzeus.
+Les adresses IP blokêyes otomaticmint èn sont nén håynêyes.
+Loukîz li [[Special:BlockList|djivêye des blocaedjes]] po vey les blocaedjes èn alaedje pol moumint.",
+'unblocklogentry' => 'a disbloké «$1»',
 'range_block_disabled' => "Li possibilité po les manaedjeus di bloker des fortchetes d' adresses IP a stî dismetowe.",
 'ipb_expiry_invalid' => 'Tins di blocaedje nén valide.',
 'ip_range_invalid' => "Fortchete d' adresses IP nén valide.",
@@ -1455,16 +1696,24 @@ stî vandalijheyes).",
 'sorbsreason' => "Voste adresse IP si trove dins l' djivêye des procsis å lådje di DNSBL.",
 'sorbs_create_account_reason' => "Voste adresse IP si trove dins l' djivêye des procsis å lådje di DNSBL. Vos n' poloz nén ahiver on conte d' uzeu.",
 
+# Developer tools
+'lockdb' => 'Aclawaedje del båze di dnêyes',
+'lockdbsuccesssub' => "L' aclawaedje del båze di dnêyes a stî comifåt",
+'lockdbsuccesstext' => 'Li båze di dnêyes a stî aclawêye.<br />
+Ni rovyîz nén del [[Special:UnlockDB|disserer]] cwand vos åroz tot fwait avou voste etertinaedje.',
+'lockedbyandtime' => '(pa $1 li $2 a $3)',
+
 # Move page
 'move-page' => 'Rilomer $1',
 'move-page-legend' => "Displaecî l' pådje",
-'movepagetext' => "Chal vos ploz candjî l' no d' ene pådje, dj' ô bén displaecî l' pådje, eyet si istwere, viè l' novea no.
+'movepagetext' => "Chal vos ploz candjî l' no d' ene pådje, dj' ô bén displaecî l' pådje, eyet si istwere, eviè l' novea no.
 Li vî tite divénrè-st ene pådje di redjiblaedje viè l' novele.
-Les loyéns viè l' viye pådje èn seront nén candjîs; acertinez vs di verifyî s' i n' a nén des dobes ou crons redjiblaedjes.
+Vos ploz mete otomaticmint a djoû les redjiblaedje k' evoyént sol vî tite.
+Si vos nel vloz nén fé, acertinez vs di verifyî s' i n' a nén des [[Special:DoubleRedirects|dobes]] ou [[Special:BrokenRedirects|crons redjiblaedjes]].
 Vos estoz responsåve di fé çou k' i fåt po k' les loyéns continouwexhe di moenner la k' i fåt.
 
 Notez k' el pådje èn serè '''nén''' displaeceye s' i gn a ddja ene pådje avou l' novea tite, a moens k' ele soeye vude, ou ene pådje di redjiblaedje, et k' ele n' åye nole istwere.
-Çoula vout dire ki vos ploz ri-displaecî ene pådje viè l' no k' ele aveut djusse divant, et insi disfé vosse prumî displaeçaedje, å cas ou vos vs rindrîz conte ki vos avoz fwait ene flotche;
+Çoula vout dire ki vos ploz ridisplaecî ene pådje viè l' no k' ele aveut djusse divant, et insi disfé vosse prumî displaeçaedje, å cas ou vos vs rindrîz conte ki vos avoz fwait ene flotche;
 ey eto ki vos n' poloz nén spotchî par accidint ene pådje k' egzistêye dedja.
 
 '''ASTEME!'''
@@ -1500,7 +1749,7 @@ Tchoezixhoz è èn ôte s' i vs plait.",
 
 L' årtike såme «[[:$1]]» egzistêye dedja. El voloz vs disfacer po vs permete di displaecî l' ôte?",
 'delete_and_move_confirm' => "Oyi, disfacer l' pådje",
-'delete_and_move_reason' => 'Disfacé po permete on displaeçaedje',
+'delete_and_move_reason' => 'Disfacé po permete li displaeçaedje di «[[$1]]»',
 'selfmove' => 'Les tites sourdant et såme sont les minmes; ene pådje ni pout nén esse displaeceye so leye minme.',
 'fix-double-redirects' => "Rapontyî les rdjiblaedjes ki loynut aviè l' mwaisse tite",
 
@@ -1522,8 +1771,18 @@ Dins ç' dierin cas, vos ploz eto eployî ene hårdêye, eg: [[{{#Special:Export
 'allmessagesname' => 'No del variåve',
 'allmessagesdefault' => 'Tecse prémetou',
 'allmessagescurrent' => 'Tecse pol moumint',
-'allmessagestext' => "Çouchal est ene djivêye di tos les messaedjes k' i gn a dins l' espåce di lomaedje ''MediaWiki:''",
+'allmessagestext' => "Çouchal est ene djivêye des messaedjes sistinme k' i gn a dins l' espåce di lomaedje ''MediaWiki:''.
+Loukîz les pådjes sol [//www.mediawiki.org/wiki/Localisation Locålijhaedje di MediaWiki] et 
+[//translatewiki.net/ translatewiki.net] si vos vloz pårticiper avou l' ratournaeje djenerike di MediaWiki.",
 'allmessagesnotsupportedDB' => "'''{{ns:special}}:AllMessages''' n' est nén sopoirté paski '''\$wgUseDatabaseMessages''' est dismetou.",
+'allmessages-filter-legend' => 'Passete',
+'allmessages-filter' => "Sorlon l' estat d' candjaedje:",
+'allmessages-filter-unmodified' => 'Nén candjîs',
+'allmessages-filter-all' => 'Totafwait',
+'allmessages-filter-modified' => 'Candjîs',
+'allmessages-prefix' => "Sorlon l' betchete:",
+'allmessages-language' => 'Lingaedje:',
+'allmessages-filter-submit' => 'Apliker',
 
 # Thumbnails
 'thumbnail-more' => 'Ragrandi',
@@ -1539,7 +1798,8 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'import-interwiki-history' => "Ristitchî avou l' istwere di totes les modêyes",
 'import-interwiki-submit' => 'Ristitchî',
 'import-comment' => 'Comintaire:',
-'importtext' => "S' vs plait ricopyîz l' fitchî foû do sourdant wiki avou l' usteye di rcopiaedje foû (Special:Export), el schaper so voste éndjole, et poy l' eberweter droci.",
+'importtext' => "S' i vs plait ricopyîz l' fitchî foû do sourdant wiki avou l' [[Special:Export|usteye di rcopiaedje foû]].
+Et s' el schaper so voste éndjole, et poy li ristitchî droci.",
 'importstart' => "Dj' enonde li ristitchaedje...",
 'import-revision-count' => '{{PLURAL:$1|1 modêye|$1 modêyes}}',
 'importnopages' => 'Nole pådje a ristitchî.',
@@ -1549,6 +1809,7 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 'importbadinterwiki' => 'Cron loyén eterwiki',
 'importnotext' => "Vude ou pont d' tecse",
 'importsuccess' => 'Li ristitchaedje a stî comifåt!',
+'xml-error-string' => '$1 al roye $2, colone $3 (octet $4): $5',
 
 # Import log
 'importlogpage' => 'Djournå des ristitchaedjes',
@@ -1576,12 +1837,14 @@ Totes les accions di rcopiaedje eterwiki sont metowes e [[Special:Log/import|djo
 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-unprotect' => "Candjî l' protedjaedje del pådje",
 'tooltip-ca-delete' => 'Disfacer ci pådje ci',
 'tooltip-ca-undelete' => "Rapexhî les candjmitns fwaits al pådje divant k' ele soeyexhe disfacêye",
 'tooltip-ca-move' => 'Displaecî cisse pådje ci',
 '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-go' => 'Potchî so ene pådje avou egzactumint ci no ci, si ele egzistêye.',
 'tooltip-search-fulltext' => "Cweri les pådjes avou ç' tecse ci",
 'tooltip-p-logo' => 'Mwaisse pådje',
 'tooltip-n-mainpage' => 'Vizitez li Mwaisse pådje',
@@ -1600,6 +1863,7 @@ Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 '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-t-permalink' => 'Permanante hårdêye viè cisse modêye chal 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',
@@ -1617,6 +1881,9 @@ Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 'tooltip-compareselectedversions' => 'Mostrer les diferinces etur les deus modêyes tchoezeyes di cisse pådje ci. [alt-v]',
 'tooltip-watch' => 'Radjouter cisse pådje ci a vosse djivêye des shuvous [alt-w]',
 'tooltip-recreate' => "Rifé cisse pådje ci mågré k' ele åye sitî disfacêye",
+'tooltip-rollback' => "Li loyén «{{int:rollbacklink}}» permete di disfé d' on seu clitch tos les candjmints(s) fwaits sol pådje på dierin uzeu.",
+'tooltip-undo' => "Li loyén «{{int:editundo}}» permete di disfé li candjmint et drouve li boesse di candjmint e môde prévoeyaedje.
+Dj' ô bén, ça permete di disfé l' candjmint et d' mete on messaedje dins l' boesse di rascourti.",
 
 # Stylesheets
 'common.css' => '/* li côde CSS metou chal serè eployî pa totes les peas et tos les uzeus */',
@@ -1627,15 +1894,19 @@ Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 
 # Attribution
 'anonymous' => '{{PLURAL:$1|Uzeu anonime|Uzeus anonimes}} di {{SITENAME}}',
-'siteuser' => "Uzeu d' {{SITENAME}} «$1»",
+'siteuser' => "$1, {{GENDER:$2|uzeu d'|uzeuse di}} {{SITENAME}}",
+'anonuser' => '$1, {{GENDER:$2|uzeu|uzeuse}} anonime di {{SITENAME}}',
 'lastmodifiedatby' => 'Cisse pådje a stî candjeye pol dierin côp li $2, $1 pa $3.',
 'othercontribs' => "Båzé so l' ovraedje da $1.",
-'others' => 'des ôtes',
-'siteusers' => "{{PLURAL:$2|uzeu|uzeus}} d' {{SITENAME}} «$1»",
+'others' => 'co ds ôtes',
+'siteusers' => "$1, {{PLURAL:$2|uzeu|uzeus}} d' {{SITENAME}}",
+'anonusers' => '$1, {{PLURAL:$2|uzeu anonime|uzeus anonimes}} di {{SITENAME}}',
 'creditspage' => 'Pådje di credits',
 'nocredits' => "I n' a pont d' infôrmåcion di credits po cisse pådje ci.",
 
 # Info page
+'pageinfo-title' => 'Infôrmåcion po «$1»',
+'pageinfo-header-watchlist' => 'Djivêye des shuvous',
 'pageinfo-header-views' => 'Vuwes',
 'pageinfo-subjectpage' => 'Pådje',
 'pageinfo-talkpage' => 'Pådje di copene',
@@ -1667,6 +1938,7 @@ Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 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):',
+'widthheightpage' => '$1 × $2, $3 pådje{{PLURAL:$3||s}}',
 'file-info-size' => '$1 × $2 picsels, groxheur do fitchî: $3, del sôre "MIME": $4',
 'show-big-image' => "Imådje a si grandeur d' oridjinne",
 
@@ -1688,10 +1960,11 @@ Si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
 
 # 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.",
+'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.",
 'metadata-expand' => 'Mostrer les stindous detays',
 'metadata-collapse' => 'Catchî les stindous detays',
-'metadata-fields' => "Les tchamps di meta-dnêyes EXIF metous chal vont esse
+'metadata-fields' => "Les tchamps di meta-dnêyes des imådjes metous chal vont esse
 håynés ezès pådjes d' imådje cwand l' tåvlea di meta-dnêyes
 est raptiti. Les ôtes seront catchîs.
 * make
@@ -1886,9 +2159,14 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'table_pager_prev' => 'Pådje di dvant',
 'table_pager_first' => 'Prumire pådje',
 'table_pager_last' => 'Dierinne pådje',
+'table_pager_limit' => 'Håyner $1 cayets el pådje',
+'table_pager_limit_label' => 'Cayets par pådje:',
+'table_pager_limit_submit' => 'I va',
+'table_pager_empty' => 'Nou rzultat',
 
 # Auto-summaries
-'autosumm-replace' => 'Li contnou a stî replaecé pa « $1 »',
+'autosumm-blank' => 'Pådje vudeye',
+'autosumm-replace' => 'Li contnou a stî replaecî pa « $1 »',
 'autoredircomment' => 'Redjiblaedje viè [[$1]]',
 'autosumm-new' => 'Pådje ahivêye avou «$1»',
 
@@ -1906,14 +2184,22 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 
 # Special:Version
 'version' => 'Modêye des programes',
+'version-extensions' => "Rawetes d' astalêyes",
+'version-specialpages' => 'Pådjes sipeciåles',
+'version-variables' => 'Variåves',
+'version-antispam' => 'Siconte do spam',
 'version-skins' => 'Peas',
 'version-other' => 'Ôtes',
+'version-license' => 'Licince',
+'version-software' => 'Programes astalés',
+'version-software-product' => 'Prodût',
 'version-software-version' => 'Modêye',
 
 # Special:FilePath
 'filepath-page' => 'Fitchî:',
 
 # Special:FileDuplicateSearch
+'fileduplicatesearch' => 'Cweraedje après les dobes fitchîs',
 'fileduplicatesearch-submit' => 'Cweri',
 
 # Special:SpecialPages
@@ -1922,11 +2208,21 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'specialpages-group-other' => 'Ôtès pådjes especiåles',
 'specialpages-group-login' => "S' elodjî / si rashire",
 'specialpages-group-changes' => 'Dierins candjmints et djournås',
+'specialpages-group-media' => 'Rapoirts et eberwetaedjes multimedia',
 'specialpages-group-users' => 'Uzeus et abondroets',
 'specialpages-group-highuse' => 'Eployaedje timpesse des pådjes',
+'specialpages-group-pages' => 'Djivêyes di pådjes',
+'specialpages-group-pagetools' => 'Usteyes po les pådjes',
+'specialpages-group-wiki' => 'Usteyes et dnêyes do wiki',
 'specialpages-group-redirects' => 'Ridjiblaedjes di pådjes sipeciåles',
+'specialpages-group-spam' => 'Usteyes siconte do spam',
+
+# Special:BlankPage
+'blankpage' => 'Vude pådje',
 
 # Special:Tags
+'tag-filter' => 'Passete po ls [[Special:Tags|etiketes]]:',
+'tag-filter-submit' => 'Passete',
 'tags-edit' => 'candjî',
 'tags-hitcount' => '$1 candjmint{{PLURAL:$1||s}}',
 
index b9c9353..8c6f606 100644 (file)
@@ -879,7 +879,7 @@ Mga detalye: $1',
 'nolicense' => 'Waray napili',
 
 # Special:ListFiles
-'imgfile' => 'fayl',
+'imgfile' => 'paypay',
 'listfiles' => 'Listahan han fayl',
 'listfiles_date' => 'Pitsa',
 'listfiles_name' => 'Ngaran',
@@ -888,8 +888,8 @@ Mga detalye: $1',
 'listfiles_count' => 'Mga bersyon',
 
 # File description page
-'file-anchor-link' => 'Fayl',
-'filehist' => 'Kaagi han fayl',
+'file-anchor-link' => 'Paypay',
+'filehist' => 'Kaagi han paypay',
 'filehist-help' => 'Pidlita an adlaw/oras para makit-an an fayl nga naggawas hito nga oras.',
 'filehist-deleteall' => 'Paraa ngatanan',
 'filehist-deleteone' => 'paraa',
index 5c84de2..e53e580 100644 (file)
@@ -311,6 +311,7 @@ $messages = array(
 'index-category' => 'אינדעקסירטע בלעטער',
 'noindex-category' => 'אומאינדעקסירטע בלעטער',
 'broken-file-category' => 'בלעטער מיט צעבראכענע טעקע לינקען',
+'categoryviewer-pagedlinks' => '($1) ($2)',
 
 'about' => 'וועגן',
 'article' => 'אינהאלט בלאט',
@@ -1444,6 +1445,7 @@ $1",
 'right-userrights' => 'רעדאַקטירן אלע באַניצער רעכטן',
 'right-userrights-interwiki' => 'רעדאַקטירן באַניצער רעכטן פֿון באַניצער אויף אנדערע וויקיס',
 'right-siteadmin' => 'פארשליס און שליס-אויף די דאטעבאזע',
+'right-override-export-depth' => 'עקספארטירן בלעטער כולל געלינקטע בלעטער ביז א טיף פון 5',
 'right-sendemail' => 'שיקן ע-פאסט צו אנדערע באניצער',
 'right-passwordreset' => 'באַקוקן פאַסווארט צוריקשטעלן ע־בריוו',
 
@@ -1460,13 +1462,14 @@ $1",
 'action-createpage' => 'שאַפֿן בלעטער',
 'action-createtalk' => 'שאַפֿן שמועס בלעטער',
 'action-createaccount' => 'שאַפֿן די באַניצער קאנטע',
-'action-minoredit' => 'באַצייכנען די רעדאַקטירונג ווי מינערדיק',
+'action-minoredit' => '×\91×\90ַצ×\99×\99×\9b×¢× ×¢×\9f ×\93×\99 ×¨×¢×\93×\90ַק×\98×\99ר×\95× ×\92 ×\95×\95×\99 ×\9e×\99נער×\93×\99ק',
 'action-move' => 'באַוועגן דעם בלאַט',
 'action-move-subpages' => 'באַוועגן דעם בלאַט מיט זײַנע אונטערבלעטער',
 'action-move-rootuserpages' => 'באַוועגן באַניצער הויפטבלעטער',
 'action-movefile' => 'באַוועגן די טעקע',
 'action-upload' => 'אַרויפֿלאָדן די טעקע',
 'action-reupload' => 'איבערשרײַבן די עקזיסטירנדע טעקע',
+'action-reupload-shared' => 'אריבערשרייבן די טעקע אין א געמיינזאמער רעפאזיטאריע',
 'action-upload_by_url' => 'ארויפֿלאָדן די טעקע פֿון א URL',
 'action-writeapi' => 'ניצן דעם שרײַבן API',
 'action-delete' => 'אויסמעקן דעם בלאַט',
@@ -1478,6 +1481,7 @@ $1",
 'action-suppressionlog' => 'באקוקן דעם פריוואטן לאג',
 'action-block' => 'בלאקירן דעם באַניצער פֿון רעדאַקטירן',
 'action-protect' => 'ענדערן שיצונג ניוואען פֿאַר דעם בלאַט',
+'action-rollback' => 'גיך צוריקדרייען די רעדאַקטירונגען פונעם לעצטן באַניצער וואס האט רעדאַקטירט א געוויסן בלאַט',
 'action-import' => 'אימפארטירן דעם בלאַט פֿון אַן אַנדער וויקי',
 'action-importupload' => 'אימפארטירן דעם בלאַט דורך ארויפֿלאָדן אַ טעקע',
 'action-patrol' => "אנצייכענען אנדערס' רעדאקטירונגן אלס נאכגעקוקט",
@@ -1543,6 +1547,7 @@ $1",
 'upload-tryagain' => 'פֿאָרלייגן מאדיפֿיצירטע טעקע באַשרײַבונג',
 'uploadnologin' => 'נישט אַרײַנלאגירט',
 'uploadnologintext' => 'איר מוזט זײַן [[Special:UserLogin| אַרײַנלאָָגירט]] כדי ארויפֿצולאָדן טעקעס',
+'upload_directory_missing' => 'די ארויפלאד דירעקטאריע ($1) פעלט און דער וועבסערווירער קען זי נישט שאפן.',
 'upload_directory_read_only' => 'דער וועבסארווער קען נישט שרייבן צום ארויפלאדן ארכיוו "$1".',
 'uploaderror' => 'אַרויפֿלאָדן פֿעלער',
 'upload-recreate-warning' => "'''ווארענונג: א טעקע מיט דעם נאמען איז געווארן אויסגעמעקט אדער באוועגט.'''
@@ -1578,6 +1583,8 @@ $1",
 'badfilename' => 'טעקע נאמען איז געטוישט צו "$1".',
 'filetype-mime-mismatch' => 'טעקע סופֿיקס ".$1" שטימט נישט מיטן MIME טיפ פון דער טעקע($2).',
 'filetype-badmime' => 'טעקעס מיטן  MIME טיפ "$1" טאר מען נישט ארויפלאדן.',
+'filetype-unwanted-type' => "'''\".\$1\"''' איז אן אומרעקאמענדירטער טעקע־טיפ. {{PLURAL:\$3|רעקאמענדירטער טעקע־טיפ איז|רעקאמענדירטע טעקע־טיפן זענען}} \$2.",
+'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|איז נישט קיין דערלויבטער טעקע־טיפ |זענען נישט קיין דערלויבטע טעקע־טיפן}}. {{PLURAL:$3|דערלויבטער טעקע־טיפ איז|דערלויבטע טעקע־טיפן זענען}} $2.',
 'filetype-missing' => 'די טעקע האט נישט קיין פארברייטערונג (למשל ".jpg").',
 'empty-file' => 'די טעקע וואָס איר האט אײַנגעגעבן איז ליידיג.',
 'file-too-large' => 'די טעקע וואָס איר האט אײַנגעגעבן איז צו גרויס.',
@@ -1613,6 +1620,7 @@ $1",
 'uploadedimage' => 'אַרױפֿגעלאָדן "[[$1]]"',
 'overwroteimage' => 'אַרויפֿגעלאָדן א נײַע ווערסיע פון "[[$1]]"',
 'uploaddisabled' => 'אַרויפֿלאָדן טעקעס מבוטל',
+'copyuploaddisabled' => 'ארויפלאדן דורך URL אומאקטיווירט',
 'uploadfromurl-queued' => 'אייער ארויפלאד איז אין דער רייע.',
 'uploaddisabledtext' => 'אַרויפֿלאָדן טעקעס נישט דערמעגלעכט אצינד.',
 'uploadscripted' => 'די טעקע האט א סקריפט אדער HTML קאד וואס קען ווערן פֿאלש אויסגעטייטשט דורך א בלעטערער',
@@ -1661,6 +1669,9 @@ $1",
 # Lock manager
 'lockmanager-notlocked' => 'מ\'קען נישט אויפֿשליסן "$1"; ער איז נישט פֿארשלאסן.',
 
+# ZipDirectoryReader
+'zip-wrong-format' => 'ספעציפירטע טעקע איז נישט קיין ZIP טעקע.',
+
 # Special:UploadStash
 'uploadstash' => 'אַרויפֿלאָד רעזערוו',
 'uploadstash-refresh' => 'דערפֿרישן די רשימה פון טעקעס',
@@ -2039,6 +2050,7 @@ $1",
 # User Messenger
 'usermessage-summary' => 'איבערלאזן סיסטעם אָנזאָג',
 'usermessage-editor' => 'סיסטעם שליח',
+'usermessage-template' => 'MediaWiki:באניצער־מעלדונג',
 
 # Watchlist
 'watchlist' => 'מיין אויפפַּאסונג ליסטע',
@@ -2079,12 +2091,12 @@ $1",
 'watcherrortext' => 'א גרײַז האט פאסירט ביים ענדערן אײַערע אויפֿפאסן ליסטע אײַנשטעלונגען פֿאר "$1".',
 
 'enotif_mailer' => 'נאטיפאקאציע שיקער {{SITENAME}}',
-'enotif_reset' => 'באַצייכן אלע בלעטער שוין געזען',
+'enotif_reset' => '×\91×\90ַצ×\99×\99×\9b×¢× ×¢×\9f ×\90×\9c×¢ ×\91×\9c×¢×\98ער ×©×\95×\99×\9f ×\92×¢×\96×¢×\9f',
 'enotif_newpagetext' => 'דאס איז א נייער בלאט.',
-'enotif_impersonal_salutation' => 'באנוצער {{SITENAME}}',
+'enotif_impersonal_salutation' => '{{SITENAME}} באַניצער',
 'changed' => 'געטוישט',
-'created' => '×\91×\90ש×\90פן',
-'enotif_subject' => 'דער בלאט $PAGETITLE אין {{grammar:תחילית|{{SITENAME}}}} $CHANGEDORCREATED דורך $PAGEEDITOR',
+'created' => '×\92עש×\90ַפֿן',
+'enotif_subject' => 'דער בלאט $PAGETITLE אין {{SITENAME}} $CHANGEDORCREATED דורך $PAGEEDITOR',
 'enotif_lastvisited' => 'זעט $1 פֿאַר אלע ענדערונגען זינט אײַער לעצטן וויזיט.',
 'enotif_lastdiff' => 'זעט $1 פאר דער ענדערונג.',
 'enotif_anon_editor' => 'אַנאנימער באַניצער $1',
@@ -2175,6 +2187,7 @@ $UNWATCHURL
 'unprotectedarticle' => 'אראפגענומען שוץ פון "[[$1]] "',
 'movedarticleprotection' => 'באוועגט די שיץ באשטימונגען פֿון "[[$2]]" אויף "[[$1]]"',
 'protect-title' => 'ענדערן שיץ ניווא פֿאַר "$1"',
+'protect-title-notallowed' => 'באקוקן שיץ־ניווא פון "$1"',
 'prot_1movedto2' => '[[$1]] אריבערגעפירט צו [[$2]]',
 'protect-badnamespace-title' => 'אומשיצבארער נאמענטייל',
 'protect-badnamespace-text' => 'בלעטער אין דעם נאמענטייל קען מען נישט שיצן.',
@@ -2275,6 +2288,7 @@ $UNWATCHURL
 $1',
 'undelete-show-file-confirm' => 'צי זענט איר זעכער איר ווילט באַקוקן די אויסגעמעקטע רעוויזיע פון דער טעקע "<nowiki>$1</nowiki>" פון $2 בשעה $3?',
 'undelete-show-file-submit' => 'יא',
+'undelete-revisionrow' => '$1 $2 $3 $4 . . $5 $6 $7',
 
 # Namespace form on various pages
 'namespace' => 'נאמענטייל:',
@@ -2457,6 +2471,7 @@ $1',
 'proxyblocker-disabled' => 'די  פֿונקציע איז אומאַקטיווירט.',
 'proxyblockreason' => 'אייער איי.פי. אדרעס איז געווארן געבלאקט צוליב דעם ווייל דאס איז א אפענער פראקסי. ביטע פארבינדט זיך מיט אייער אינטערנעט סערוויס פראוויידער אדער טעקס סאפארט צו אינפארמירן זיי איבער דעם ערענסטן זיכערהייט פראבלעם.',
 'proxyblocksuccess' => 'געטאן.',
+'cant-block-while-blocked' => 'איר קען נישט בלאקירן קיין אנדערע באניצער ווען איר זענט אליין בלאקירט.',
 'ipbnounblockself' => 'איר זענט נישט ערלויבט זיך אליין אויסבלאקירן',
 
 # Developer tools
@@ -2729,8 +2744,8 @@ $1',
 'tooltip-ca-nstab-template' => 'זעט דעם מוסטער',
 'tooltip-ca-nstab-help' => 'זעט דעם הילף בלאַט',
 'tooltip-ca-nstab-category' => 'באקוקט דעם קאטעגאריע בלאט',
-'tooltip-minoredit' => 'באצייכן דאס אלס מינערדיגע ענדערונג',
-'tooltip-save' => '×\94×\99×\98 ×\90×\95×\99×£ אייערע ענדערונגען',
+'tooltip-minoredit' => '×\91×\90צ×\99×\99×\9b×¢× ×¢×\9f ×\93×\90ס ×\90×\9cס ×\9e×\99נער×\93×\99×\92×¢ ×¢× ×\93ער×\95× ×\92',
+'tooltip-save' => '×\90×\95×\99פֿ×\94×\99×\98×\9f אייערע ענדערונגען',
 'tooltip-preview' => 'פֿארויסדיגע ווײַזונג, זײַט אזוי גוט באניצט די געלעגנהייט פֿארן אויפֿהיטן!',
 'tooltip-diff' => 'ווײַזן אייערע ענדערונגען צום טעקסט',
 'tooltip-compareselectedversions' => 'פארגלײַכם די צוויי ווערסיעס פון דעם בלאט',
@@ -2746,8 +2761,15 @@ $1',
 
 # Stylesheets
 'common.css' => '/* CSS געשריבן דא וועט אפילירן און באיינפלוסן אלע סקינס */',
-'monobook.css' => '/* סטייל דא געלייגט וועט באיינפלוסן די בעקגראונד Monobook בלויז */',
-'vector.css' => '/* CSS געשטעלט דא ווירקט נאר אויפן Vector סקין */',
+'standard.css' => '/* CSS געשטעלט דא ווירקט אויפן סטאנדארט סקין */',
+'nostalgia.css' => '/* CSS געשטעלט דא ווירקט נאר אויפן נאסטאלגיע סקין */',
+'cologneblue.css' => '/* CSS געשטעלט דא ווירקט נאר אויפן קעלנישן־בלוי סקין */',
+'monobook.css' => '/* סטייל דא געלייגט וועט באאיינפלוסן דעם Monobook סקין */',
+'myskin.css' => '/* CSS געשטעלט דא ווירקט אויפן MySkin סקין */',
+'chick.css' => '/* CSS געשטעלט דא ווירקט אויפן טשיק סקין */',
+'simple.css' => '/* CSS געשטעלט דא ווירקט אויפן איינפאך סקין */',
+'modern.css' => '/* CSS געשטעלט דא ווירקט אויפן מאדערנעם סקין */',
+'vector.css' => '/* CSS געשטעלט דא ווירקט נאר אויפן וועקטאר סקין */',
 
 # Scripts
 'common.js' => '/* אלע סקריפטן פון JavaScript דא געשריבן וועט לויפן פאר אלע באנוצער ווען זיי וועלן לאדירן דעם בלאט */',
@@ -2785,11 +2807,22 @@ $1',
 'pageinfo-views' => 'צאַל קוקן',
 'pageinfo-viewsperedit' => 'צאל קוקן צו א רעדאַקטירונג',
 
+# Skin names
+'skinname-standard' => 'קלאסיש',
+'skinname-nostalgia' => 'נאסטאלגיע',
+'skinname-cologneblue' => 'קעלניש בלוי',
+'skinname-monobook' => 'מאנאבוק',
+'skinname-myskin' => 'מיין סקין',
+'skinname-chick' => 'טשיק',
+'skinname-simple' => 'איינפֿאַך',
+'skinname-modern' => 'מאדערן',
+'skinname-vector' => 'וועקטאר',
+
 # Patrolling
-'markaspatrolleddiff' => 'באצייכנען אלס פאטראלירט',
-'markaspatrolledtext' => 'באצייכנען בלאט אלס פאטראלירט',
+'markaspatrolleddiff' => '×\91×\90צ×\99×\99×\9b×¢× ×¢×\9f ×\90×\9cס ×¤×\90×\98ר×\90×\9c×\99ר×\98',
+'markaspatrolledtext' => '×\91×\90צ×\99×\99×\9b×¢× ×¢×\9f ×\91×\9c×\90×\98 ×\90×\9cס ×¤×\90×\98ר×\90×\9c×\99ר×\98',
 'markedaspatrolled' => 'באצייכנט אלס פאטראלירט',
-'markedaspatrolledtext' => '×\93×\99 ×\90×\95×\99ס×\92עק×\9c×\99×\91×¢× ×¢ ×¢× ×\93ער×\95× ×\92 ×¤Ö¿×\95×\9f [[:$1]] ×\90×\99×\96 ×\92עצ×\99×\99×\9b× ×\98 ×\92×¢×\95×\95×\90ר×\9f ×\90לס פאַטארלירט.',
+'markedaspatrolledtext' => '×\93×\99 ×\90×\95×\99ס×\92עק×\9c×\99×\91×¢× ×¢ ×¢× ×\93ער×\95× ×\92 ×¤Ö¿×\95×\9f [[:$1]] ×\90×\99×\96 ×\91×\90ַצ×\99×\99×\9b× ×\98 ×\92×¢×\95×\95×\90ר×\9f ×\90Ö·לס פאַטארלירט.',
 'rcpatroldisabled' => 'פאַטראלירן ענדערונגען איז  מבוטל געווארן',
 'rcpatroldisabledtext' => 'די לעצטע ענדערונגען פאַטראלירן אייגנקייט איז אצינד בטל.',
 'markedaspatrollederror' => 'נישט מעגלעך צו צייכענען אלס פאַטראלירט',
@@ -2818,6 +2851,7 @@ $1',
 
 # Media information
 'thumbsize' => 'קליינבילד גרייס:',
+'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2, {{PLURAL:$3|איין בלאט|$3 בלעטער}}',
 'file-info' => 'טעקע גרייס: $1, MIME טיפ: $2',
 'file-info-size' => '$1 × $2 פיקסעל, טעקע גרייס: $3, טיפ MIME: $4',
@@ -2847,6 +2881,9 @@ $1',
 'sp-newimages-showfrom' => 'באַװײַזן נײַע טעקעס פון $2, $1',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'video-dims' => '$1, $2 × $3',
+'seconds-abbrev' => '$1ס',
+'minutes-abbrev' => '$1מ',
 'seconds' => '{{PLURAL:$1|$1 סעקונדע|$1 סעקונדעס}}',
 'minutes' => '{{PLURAL:$1|$1 מינוט|$1 מינוט}}',
 'hours' => '{{PLURAL:$1|$1 שעה|$1 שעה}}',
@@ -2932,24 +2969,34 @@ $1',
 'exif-focallength-format' => '$1 מ"מ',
 'exif-subjectarea' => 'סוביעקט געגנט',
 'exif-flashenergy' => 'פלעש ענערגיע',
-'exif-focalplanexresolution' => 'פאקאל פלעין עקס רעזאלוציע',
-'exif-focalplaneresolutionunit' => 'פאקאל פלעין רעזאלוציע מאס',
-'exif-exposureindex' => 'עקספאוזשער אינדעקס',
+'exif-focalplanexresolution' => 'פאקוס־שטח האריזאנטאל',
+'exif-focalplaneyresolution' => 'פאקוס־שטח ווערטיקאל',
+'exif-focalplaneresolutionunit' => 'פאקוס־שטח רעזאלוציע איינהייט',
+'exif-subjectlocation' => 'סוביעקט ארט',
+'exif-exposureindex' => 'באַלײַכטן אינדעקס',
+'exif-sensingmethod' => 'דערשפירן מעטאד',
 'exif-filesource' => 'מקור פֿון דער טעקע',
 'exif-scenetype' => 'סצענע טיפ',
 'exif-customrendered' => 'קאסטעם בילד פראצעסירונג',
 'exif-exposuremode' => 'באַלײַכטן מצב',
-'exif-digitalzoomratio' => 'דיזשיטאלער זום ראשיאו',
+'exif-whitebalance' => 'ווײַס באַלאַנס',
+'exif-digitalzoomratio' => 'דיגיטאלער זום פארהעלטעניש',
 'exif-focallengthin35mmfilm' => 'פאקאל לענג אין 35 מ"מ פילם',
+'exif-scenecapturetype' => 'סצענע אויפנעם טיפ',
 'exif-gaincontrol' => 'סצענע קאנטראל',
 'exif-contrast' => 'קאנטראסט',
 'exif-devicesettingdescription' => 'זאך סעטינגס אראפמאלונג',
-'exif-gpslatitude' => 'לאטיטוד',
+'exif-gpslatituderef' => 'צפון אדער דרום גארטל־ליניע',
+'exif-gpslatitude' => 'גארטל־ליניע',
 'exif-gpslongituderef' => 'מזרח אדער מערב לענג',
 'exif-gpslongitude' => 'געאגראַפֿישע לענג',
 'exif-gpsaltituderef' => 'אלטיטוט רעפערענץ',
-'exif-gpsaltitude' => 'אלטיטוט',
+'exif-gpsaltitude' => 'הייך',
+'exif-gpstimestamp' => 'GPS צייט (אטאם־זייגער)',
+'exif-gpssatellites' => 'סאטעליטן געניצט פאר מעסטן',
 'exif-gpsdop' => 'מאס פוקנטליכקייט',
+'exif-gpsspeedref' => 'גיך איינהייט',
+'exif-gpsspeed' => 'גיך פון GPS־אויפֿנעמער',
 'exif-gpsimgdirectionref' => 'רעפערענץ פאר ריכטונג פון בילד',
 'exif-gpsimgdirection' => 'ריכטונג פון בילד',
 'exif-gpsdestlatituderef' => 'רעפֿערענץ פֿאַר ברייט־ליניע פון ציל',
@@ -2960,14 +3007,21 @@ $1',
 'exif-gpsdestbearing' => 'ריכטונג פֿון ציל',
 'exif-gpsdestdistanceref' => 'רעפֿערענץ פֿאַר ווײַטקייט פֿון ציל',
 'exif-gpsdestdistance' => 'ווײַטקייט צום ציל',
+'exif-gpsprocessingmethod' => 'נאמען פון GPS פראצעסירן מעטאד',
 'exif-gpsareainformation' => 'נאמען פון GPS געגענט',
-'exif-gpsdatestamp' => 'דאטום GPS',
-'exif-gpsdifferential' => 'דיפראנציאלע קאקרעקציע GPS',
+'exif-gpsdatestamp' => 'GPS דאטע',
+'exif-gpsdifferential' => 'GPS דיפראנציאלע קאקרעקציע',
+'exif-jpegfilecomment' => 'JPEG טעקע הערה',
+'exif-keywords' => 'שליסלווערטער',
+'exif-worldregioncreated' => "וועלטראיאן וואו מ'האט גענומען דאס בילד",
+'exif-countrycreated' => "לאנד וואו מ'האט געמאכט דאס בילד",
 'exif-provinceorstatecreated' => "פראווינץ אדער שטאַט וואו מ'האט גענומען דאס בילד",
-'exif-citycreated' => "שטאַט וואו מ'האט געמאכט דאס בילד",
+'exif-citycreated' => "שטאָט וואו מ'האט געמאכט דאס בילד",
+'exif-worldregiondest' => 'וועלטראיאן געוויזן',
 'exif-countrydest' => 'לאנד געוויזן',
 'exif-countrycodedest' => 'קאד פאר לאנד געוויזן',
-'exif-citydest' => 'געוויזענע שטאט',
+'exif-provinceorstatedest' => 'פראווינץ אדער שטאַט געוויזן',
+'exif-citydest' => 'געוויזענע שטָאט',
 'exif-objectname' => 'קורצער טיטל',
 'exif-source' => 'מקור',
 'exif-editstatus' => 'רעדאקציאנעלער סטאטוס פון בילד',
@@ -2996,6 +3050,7 @@ $1',
 'exif-licenseurl' => 'URL פֿאר קאפירעכט ליצענץ',
 'exif-morepermissionsurl' => 'אלטערנאטיווע ליצענצירן אינפארמאציע',
 'exif-pngfilecomment' => 'PNG טעקע הערה',
+'exif-contentwarning' => 'אינהאלט ווארענונג',
 'exif-giffilecomment' => 'GIF טעקע הערה',
 'exif-intellectualgenre' => 'ארט  איינהייט',
 'exif-subjectnewscode' => 'טעמע קאד',
@@ -3302,8 +3357,27 @@ $5
 'iranian-calendar-m11' => 'באַהמאַן',
 'iranian-calendar-m12' => 'עספֿאַנד',
 
+# Hijri month names
+'hijri-calendar-m9' => 'ראמאדאן',
+'hijri-calendar-m10' => 'שאוואל',
+'hijri-calendar-m11' => 'דהו אל־קאדא',
+'hijri-calendar-m12' => 'דהו אל־הידזשא',
+
 # Hebrew month names
+'hebrew-calendar-m1' => 'תשרי',
+'hebrew-calendar-m2' => 'חשוון',
+'hebrew-calendar-m3' => 'כסלו',
+'hebrew-calendar-m4' => 'טבת',
+'hebrew-calendar-m5' => 'שבט',
+'hebrew-calendar-m6' => 'אדר',
+'hebrew-calendar-m6a' => "אדר א'",
+'hebrew-calendar-m6b' => "אדר ב'",
+'hebrew-calendar-m7' => 'ניסן',
+'hebrew-calendar-m8' => 'אייר',
 'hebrew-calendar-m9' => 'סיון',
+'hebrew-calendar-m10' => 'תמוז',
+'hebrew-calendar-m11' => 'אב',
+'hebrew-calendar-m12' => 'אלול',
 'hebrew-calendar-m1-gen' => 'תשרי',
 'hebrew-calendar-m2-gen' => 'חשוון',
 'hebrew-calendar-m3-gen' => 'כסלו',
@@ -3326,6 +3400,7 @@ $5
 'version' => 'ווערסיע',
 'version-specialpages' => 'ספעציעלע בלעטער',
 'version-variables' => 'וואַריאַבלען',
+'version-skins' => 'באניצער־אייבערפלאכן',
 'version-other' => 'אנדער',
 'version-version' => '(ווערסיע $1)',
 'version-license' => 'ליצענץ',
@@ -3521,5 +3596,6 @@ $5
 'duration-years' => '$1 {{PLURAL:$1|יאר|יאר}}',
 'duration-decades' => '$1 {{PLURAL:$1|צענדליקער|צענדליקערס}}',
 'duration-centuries' => '$1 {{PLURAL:$1|יארהונדערט|יארהונדערטער}}',
+'duration-millennia' => '$1 {{PLURAL:$1|יארטויזנט|יארטויזנטער}}',
 
 );
index 71d9673..9fe1f99 100644 (file)
@@ -271,7 +271,7 @@ $messages = array(
 'redirectpagesub' => 'Ojúewé àtúnjúwe',
 'lastmodifiedat' => 'Àtunṣe ojúewé yi gbẹ̀yìn wáyé ni ago $2, ọjọ́ọdún $1.',
 'viewcount' => 'A ti wo ojúewé yi ni {{PLURAL:$1|ẹ̀kan péré|iye ìgbà $1}}.',
-'protectedpage' => 'Ojúewé ajẹ́dídáàbòbò',
+'protectedpage' => 'Ojúewé oníàbò',
 'jumpto' => 'Lọ sí:',
 'jumptonavigation' => 'atọ́ka',
 'jumptosearch' => 'àwárí',
@@ -438,7 +438,7 @@ Fún ìyédèpadà, ẹ jọ̀wọ́ ẹ lo [//translatewiki.net/wiki/Main_Page?
 'customcssprotected' => 'Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé CSS yìí nítorípé ó ní àwọn ìtòjọ oníṣe ẹlòmíràn.',
 'customjsprotected' => 'Ẹ kò ní ìyọ̀nda láti ṣàtúnṣe ojúewé JavaScript yìí nítorípé ó ní àwọn ìtòjọ oníṣe ẹlòmíràn.',
 'ns-specialprotected' => 'Àtúnṣe kò ṣe é ṣe sí àwọn ojúewé pàtàkì.',
-'titleprotected' => "[[User:$1|$1]] ti dínà sí dídá Ã ká»\8dlé yìí. Ã\80làyé rẹÌ\80 ni pí ''$2''.",
+'titleprotected' => "[[User:$1|$1]] ti dínà sí dídá Ã ká»\8dlé yìí. Ã\8cdí rẹÌ\80 ni pé ''$2''.",
 
 # Virus scanner
 'virus-badscanner' => "Ìtorapọ̀ búburú: awáìpasẹ̀ èràn aláìmọ̀n : ''$1''",
@@ -737,6 +737,7 @@ Tó bá jẹ́ pé oníṣe aláìlórúkọ ni yín, tí ẹ sì ri pé wọ́n
 'note' => "'''Àkíyèsí:'''",
 'previewnote' => "'''Ẹ rántí pé àyẹ̀wò lásán nì yí.'''
 Àwọn àtúnṣe yín kò tíì jẹ́ kìkópamọ́!",
+'continue-editing' => 'Ìtẹ̀síwájú àtúnṣe',
 'previewconflict' => 'Àkọ́wò yìí jẹ́ bí ìkọ̀rọ̀ inú àlà ìtúnṣe ìkọ̀rọ̀ òkè yíò ṣe hàn tí ẹ bá yàn láti ṣàmúpamọ́.',
 'session_fail_preview' => "'''Àforíjìn! A kò le gbésẹ̀ àtúnṣe yín nítorí ìpòfo data ìsinsìyí.
 Ẹ jọ̀wọ́ ẹ gbìyànjú lẹ́ẹ̀kan si.
@@ -752,6 +753,7 @@ Tí kò bá ṣiṣẹ́ síbẹ̀, ẹ gbìyànjú láti [[Special:UserLogout|j
 Èyí únsábà ṣẹlẹ̀ nígbàtí ẹ bá únlo ẹ̀rọ-ìwọ̀fà ẹlòmíràn aláìlórúkọ torí Internet tí kò dára.",
 'edit_form_incomplete' => "'''Àwọn apá kan fọ́ọ̀mù àtúnṣe kò dé ọ̀dọ̀ ẹ̀rọ-ìwọ̀fà; ẹ wo àtúnṣe yín pẹ́ o wà bí ẹ ṣe ṣé kí ẹ tó tún gbìyànjú lẹ́ẹ̀kan síi.'''",
 'editing' => 'Àtúnṣe sí $1',
+'creating' => 'Ìdá $1',
 'editingsection' => 'Àtúnṣe sí $1 (abala)',
 'editingcomment' => 'Àtúnṣe sí $1 (abala tuntun)',
 'editconflict' => 'Ìtakora àtúnṣe: $1',
@@ -1009,6 +1011,8 @@ Kò ṣe é bòmọ́lẹ̀.',
 
 # Diffs
 'history-title' => 'Ìtàn àtúnyẹ̀wò fún "$1"',
+'difference-title' => 'Ìyàtọ̀ láàrin àwọn àtúnyẹ̀wò "$1"',
+'difference-title-multipage' => 'Ìyàtọ̀ láàrin àwọn ojúewé "$1" àti "$2"',
 'difference-multipage' => '(Ìyàtọ̀ láàrin àwọn ojúewé)',
 'lineno' => 'Ìlà $1:',
 'compareselectedversions' => 'Ìfiwéra àwọn àtúnṣe ìṣàyàn',
@@ -1105,6 +1109,7 @@ Ní báyìí ná ẹ le ṣàwárí lọ́dọ̀ Google.
 'prefs-beta' => 'Àwọn ìní Beta',
 'prefs-datetime' => 'Ọjọ́ọdún àti àkókò',
 'prefs-labs' => 'Àwọn ìní ibiàdánwò',
+'prefs-user-pages' => 'Àwọn ojúewé oníṣe',
 'prefs-personal' => 'Ọ̀rọ̀ nípa oníṣe',
 'prefs-rc' => 'Àwọn àtúnṣe tuntun',
 'prefs-watchlist' => 'Ìmójútó',
@@ -1267,7 +1272,7 @@ Tí ẹ bá fisílẹ̀ a ó lòó láti tóka iṣẹ́ yín fún yín.',
 'right-movefile' => 'Yípò fáìlì',
 'right-suppressredirect' => 'Mọ́ dàá àwọn àtúnjúwe lati ojúewé orísun nígbà tí ojúewé bá únyípòdà',
 'right-upload' => 'Ìrùsókè àwọn faili',
-'right-reupload' => 'Kọléṣórí fáìlì tó wà yìí',
+'right-reupload' => 'Ìkọṣórí àwọn fáìlì',
 'right-reupload-own' => 'Ìkọsórí àwọn fáìlì tó wà tí wọn jẹ́ rírùsókè lọ́wọ́ araẹni',
 'right-reupload-shared' => 'Ìrékọjá àwọn fáìlì nínú ibi-àkójọ amóhùnmáwòrán àjọpín lábẹ́lé',
 'right-upload_by_url' => 'Ìrùsókè àwọn faili láti URL kan',
@@ -1333,7 +1338,7 @@ Tí ẹ bá fisílẹ̀ a ó lòó láti tóka iṣẹ́ yín fún yín.',
 'action-move-subpages' => 'yípò ojúewé yìí àti àwọn ọmọ ojúewé rẹ̀',
 'action-move-rootuserpages' => 'yípòdà gbọ̀ngàn àwọn ojúewé oníṣe',
 'action-movefile' => 'yípò fáìlì yìí',
-'action-upload' => 'rùsókè fáìlì yìí',
+'action-upload' => 'ìrùsókè fáìlì yìí',
 'action-reupload' => 'kọléṣórí fáìlì tó wà yìí',
 'action-reupload-shared' => 'ṣe ìrékọjá fáìlì yìí nínú ibi-àkójọ àjọpín',
 'action-upload_by_url' => 'rùsókè fáìlí yìí láti URL',
@@ -2530,6 +2535,9 @@ kò le yípò ojúewé padà sí ara rẹ̀.',
 'import-logentry-interwiki' => 'mú $1 wá láti inú wiki míràn',
 'import-logentry-interwiki-detail' => '{{PLURAL:$1|Àtúnyẹ̀wò|Àwọn àtúnyẹ̀wò}} $1 láti $2',
 
+# JavaScriptTest
+'javascripttest' => 'Ìdánwò JavaScript',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Ojúewé oníṣe yín',
 'tooltip-pt-mytalk' => 'Ojúewé ọ̀rọ̀ yín',
@@ -2609,6 +2617,7 @@ kò le yípò ojúewé padà sí ara rẹ̀.',
 'spamprotectiontitle' => 'Ajọ̀ àbò spam',
 
 # Info page
+'pageinfo-title' => 'Àròyé fún "$1"',
 'pageinfo-header-edits' => 'Àwọn àtúnṣe',
 'pageinfo-header-watchlist' => 'Ìmójútó',
 'pageinfo-header-views' => 'Àwọn ìwò',
@@ -2639,6 +2648,7 @@ kò le yípò ojúewé padà sí ara rẹ̀.',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|ojúewé|àwọn ojúewé}}',
 'file-info' => 'ìtóbi faili: $1, irú MIME: $2',
 'file-info-size' => '$1 × $2 pixel, ìtóbi faili: $3, irú MIME: $4',
+'file-info-size-pages' => '$1 × $2 pixel, ìtóbi faili: $3, irú MIME: $4, {{PLURAL:$5|ojúewé|ojúewé}} $5',
 'file-nohires' => 'Kò sí ìgbéhàn gíga jù báun lọ.',
 'svg-long-desc' => 'faili SVG, pẹ̀lú $1 × $2 pixels, ìtòbi faili: $3',
 'show-big-image' => 'Pẹ̀lú ìgbéhàn gíga',
@@ -2878,6 +2888,7 @@ Tóbájẹ́pé fáìlì ọ̀hún ti jẹ́ títúnṣe sí bóṣewà ní bẹ
 'version-poweredby-credits' => "Agbára ìṣiṣẹ́ wiki yìí wá látọwọ́ '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'àwọn mìíràn',
 'version-software-version' => 'Àtẹ̀jáde',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Ipaṣẹ̀ fáìlì',
@@ -2980,4 +2991,12 @@ Tóbájẹ́pé fáìlì ọ̀hún ti jẹ́ títúnṣe sí bóṣewà ní bẹ
 'api-error-unknown-code' => 'Àsìṣe aláìlójúùtú: "$1".',
 'api-error-unknownerror' => 'Àsìṣe aláìlójúùtú: "$1".',
 
+# Durations
+'duration-seconds' => '{{PLURAL:$1|ìṣẹ́júkejì|ìṣẹ́júkejì}} $1',
+'duration-minutes' => '{{PLURAL:$1|ìṣẹ́jú|ìṣẹ́jú}} $1',
+'duration-hours' => '{{PLURAL:$1|wákàtí|wákàtí}} $1',
+'duration-days' => '{{PLURAL:$1|ọjọ́|ọjọ́}} $1',
+'duration-weeks' => '{{PLURAL:$1|ọ̀sẹ̀|ọ̀sẹ̀}} $1',
+'duration-years' => '{{PLURAL:$1|ọdún|ọdún}} $1',
+
 );
index 2adcdee..c647a61 100644 (file)
@@ -53,6 +53,7 @@
  * @author Wrightbus
  * @author Xiaomingyan
  * @author Yfdyh000
+ * @author 燃玉
  * @author 阿pp
  */
 
@@ -924,7 +925,7 @@ $2
 你所做的修改显示在下面的文字框中。
 你应当将你所做的修改加入现有的内容中。
 '''只有'''在上面文字框中的内容会在你点击“{{int:savearticle}}”后被保存。",
-'yourtext' => '的文字',
+'yourtext' => '的文字',
 'storedversion' => '已保存的版本',
 'nonunicodebrowser' => "'''警告:您的浏览器不兼容Unicode编码。'''这里有一个工作区将使您能安全地编辑页面:非ASCII字符将以十六进制编码方式出现在编辑框中。",
 'editingold' => "'''警告:你正在编辑的是本页的旧版本。'''
@@ -1155,8 +1156,8 @@ $1",
 'mergelogpagetext' => '以下是一个最近由一个页面的修订历史合并到另一个页面的列表。',
 
 # Diffs
-'history-title' => '$1:版本历史',
-'difference-title' => '$1:修订版本之间的差异',
+'history-title' => '“$1”的版本历史',
+'difference-title' => '“$1”的版本间的差异',
 'difference-title-multipage' => '页面“$1”与“$2”之间的差异',
 'difference-multipage' => '(页面间的差异)',
 'lineno' => '第$1行:',
@@ -1781,8 +1782,7 @@ $1',
 'upload_source_file' => '(您计算机上的一个文件)',
 
 # Special:ListFiles
-'listfiles-summary' => '该特殊页面显示所有上传的文件。
-当用户过滤图片时,只有当该文件的最新版本由该用户上传时才会显示。',
+'listfiles-summary' => '本特殊页面显示所有上传的文件。当按用户过滤时,只显示输入的用户最后上传的文件版本。',
 'listfiles_search_for' => '按媒体名称搜索:',
 'imgfile' => '文件',
 'listfiles' => '文件列表',
@@ -1809,7 +1809,7 @@ $1',
 'filehist-user' => '用户',
 'filehist-dimensions' => '大小',
 'filehist-filesize' => '文件大小',
-'filehist-comment' => '注解',
+'filehist-comment' => '评论',
 'filehist-missing' => '文件遗失',
 'imagelinks' => '文件用途',
 'linkstoimage' => '以下的$1个页面链接到本文件:',
@@ -2019,6 +2019,7 @@ $1',
 您可以选择日志类型,用户名(区分大小写)或者相关页面(区分大小写)来缩小查询范围。',
 'logempty' => '在日志中不存在匹配项。',
 'log-title-wildcard' => '搜索以这个文字开始的标题',
+'showhideselectedlogentries' => '显示/隐藏所选日志项',
 
 # Special:AllPages
 'allpages' => '所有页面',
@@ -2386,8 +2387,8 @@ $1',
 'contribsub2' => '$1的贡献($2)',
 'nocontribs' => '没有找到符合特征的更改。',
 'uctop' => '(最后更改)',
-'month' => '自月份(及之前内容):',
-'year' => '自年份(及之前内容):',
+'month' => '截止月份:',
+'year' => '截止年份:',
 
 'sp-contributions-newbies' => '只显示新账户的贡献',
 'sp-contributions-newbies-sub' => '新手',
@@ -3234,7 +3235,7 @@ Variants for Chinese language
 'exif-copyrighted-true' => '版权',
 'exif-copyrighted-false' => '公共领域',
 
-'exif-unknowndate' => '未知日期',
+'exif-unknowndate' => '未知日期',
 
 'exif-orientation-1' => '标准',
 'exif-orientation-2' => '水平翻转',
@@ -3547,8 +3548,8 @@ $5
 'descending_abbrev' => '降',
 'table_pager_next' => '下一页',
 'table_pager_prev' => '上一页',
-'table_pager_first' => '第一页',
-'table_pager_last' => 'æ\9c\80å\90\8eä¸\80页',
+'table_pager_first' => '页',
+'table_pager_last' => 'æ\9c«页',
 'table_pager_limit' => '每页显示$1项',
 'table_pager_limit_label' => '每页项目数:',
 'table_pager_limit_submit' => '提交',
@@ -3593,7 +3594,7 @@ $5
 'watchlistedit-raw-removed' => '$1个标题被删除:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'æ\9f¥ç\9c\8bç\9b¸å\85³更改',
+'watchlisttools-view' => 'æ\9f¥ç\9c\8bç\9b\91è§\86更改',
 'watchlisttools-edit' => '查看并编辑监视列表',
 'watchlisttools-raw' => '编辑原始监视列表',
 
index b013296..8644ca7 100644 (file)
@@ -2003,6 +2003,7 @@ Template:消除歧義',
 'alllogstext' => '綜合顯示 {{SITENAME}} 的上傳、刪除、保護、查封以及站務日誌。',
 'logempty' => '在日誌中不存在匹配項。',
 'log-title-wildcard' => '搜尋以這個文字開始的標題',
+'showhideselectedlogentries' => '顯示/隱藏所選的日誌項目',
 
 # Special:AllPages
 'allpages' => '所有頁面',
@@ -2907,6 +2908,7 @@ $1被封禁的理由是“$2”',
 'spambot_username' => 'MediaWiki 廣告清除',
 'spam_reverting' => '恢復到不包含連結至$1的最近修訂版本',
 'spam_blanking' => '所有包含連結至$1的修訂,清空',
+'spam_deleting' => '所有包含連結至$1的修訂,刪除中',
 
 # Info page
 'pageinfo-title' => '" $1 "的信息',
index 8a760cd..f104899 100644 (file)
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
 class CleanupSpam extends Maintenance {
+
        public function __construct() {
                parent::__construct();
                $this->mDescription = "Cleanup all spam from a given hostname";
                $this->addOption( 'all', 'Check all wikis in $wgLocalDatabases' );
-               $this->addArg( 'hostname', 'Hostname that was spamming' );
+               $this->addOption( 'delete', 'Delete pages containing only spam instead of blanking them' );
+               $this->addArg( 'hostname', 'Hostname that was spamming, single * wildcard in the beginning allowed' );
        }
 
        public function execute() {
@@ -108,15 +110,19 @@ class CleanupSpam extends Maintenance {
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->begin( __METHOD__ );
                        $page = WikiPage::factory( $title );
-                       if ( !$rev ) {
-                               // Didn't find a non-spammy revision, blank the page
-                               $this->output( "blanking\n" );
-                               $page->doEdit( '', wfMsgForContent( 'spam_blanking', $domain ) );
-                       } else {
+                       if ( $rev ) {
                                // Revert to this revision
                                $this->output( "reverting\n" );
                                $page->doEdit( $rev->getText(), wfMsgForContent( 'spam_reverting', $domain ),
                                        EDIT_UPDATE, $rev->getId() );
+                       } elseif ( $this->hasOption( 'delete' ) ) {
+                               // Didn't find a non-spammy revision, blank the page
+                               $this->output( "deleting\n" );
+                               $page->doDeleteArticle( wfMsgForContent( 'spam_deleting', $domain ) );
+                       } else {
+                               // Didn't find a non-spammy revision, blank the page
+                               $this->output( "blanking\n" );
+                               $page->doEdit( '', wfMsgForContent( 'spam_blanking', $domain ) );
                        }
                        $dbw->commit( __METHOD__ );
                }
index b3bb50c..fa98813 100644 (file)
@@ -1,5 +1,21 @@
 <?php
 /**
+ * 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 Maintenance
  */
 
index 0dc200e..0ce9388 100644 (file)
@@ -2,6 +2,22 @@
 /**
  * Maintenance script to import all scripts in the MediaWiki namespace from a
  * local site.
+ *
+ * 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 Maintenance
  */
index 96a65fc..65d6a70 100644 (file)
@@ -81,7 +81,7 @@ class CommandLineInstaller extends Maintenance {
                }
 
                $installer =
-                       new CliInstaller( $siteName, $adminName, $this->mOptions );
+                       InstallerOverrides::getCliInstaller( $siteName, $adminName, $this->mOptions );
 
                $status = $installer->doEnvironmentChecks();
                if( $status->isGood() ) {
index 2e4f40f..4cb90ff 100644 (file)
@@ -1,5 +1,22 @@
 <?php
 /**
+ * Maintenance script to generate first letter data files for Collation.php.
+ *
+ * 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
+ *
  * @ingroup Maintenance
  * @file
  */
index 493fcc5..fbdef20 100644 (file)
@@ -2634,6 +2634,7 @@ $wgMessageStructure = array(
                'spambot_username',
                'spam_reverting',
                'spam_blanking',
+               'spam_deleting',
        ),
        'info' => array(
                'pageinfo-title',
index 50b939c..ba778f4 100644 (file)
@@ -1,12 +1,28 @@
 <?php
 /**
+ * Simple lock server daemon that accepts lock/unlock requests.
+ *
+ * This code should not require MediaWiki setup or PHP files.
+ *
+ * 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 LockManager Maintenance
  */
 
-/**
- * This code should not require MediaWiki setup or PHP files.
- */
 if ( php_sapi_name() !== 'cli' ) {
        die( "This is not a valid entry point.\n" );
 }
index 9c5f32b..10892c4 100644 (file)
@@ -1,6 +1,21 @@
 <?php
 /**
- * Command line script to check for an open proxy at a specified location
+ * Command line script to check for an open proxy at a specified location.
+ *
+ * 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 Maintenance
index 4d775f9..84a2b51 100644 (file)
@@ -1,7 +1,25 @@
 <?php
 /**
- * @ingroup Maintenance
+ * Maintenance script to remove old objects from the parser cache.
+ * This only works when the parser cache is in an SQL database.
+ *
+ * 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 Maintenance
  */
 
 require( dirname( __FILE__ ) . '/Maintenance.php' );
index fc9a6a8..ec7b081 100644 (file)
@@ -1,7 +1,22 @@
 <?php
 /**
- * @ingroup Maintenance Memcached
+ * 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 Maintenance Memcached
  */
 
 require_once( dirname( __FILE__ ) . '/commandLine.inc' );
index 26d7e29..b5aa85f 100644 (file)
@@ -287,6 +287,7 @@ class RefreshLinks extends Maintenance {
                                $dbw->delete( $table, array( $field => $list ), __METHOD__ );
                        }
                        $this->output( "\n" );
+                       wfWaitForSlaves();
                }
                $lb->closeAll();
        }
index 5887a75..29904db 100644 (file)
@@ -388,7 +388,8 @@ class CheckStorage {
        }
 
        function restoreText( $revIds, $xml ) {
-               global $wgTmpDirectory, $wgDBname;
+               global $wgDBname;
+               $tmpDir = wfTempDir();
 
                if ( !count( $revIds ) ) {
                        return;
@@ -396,8 +397,8 @@ class CheckStorage {
 
                print "Restoring text from XML backup...\n";
 
-               $revFileName = "$wgTmpDirectory/broken-revlist-$wgDBname";
-               $filteredXmlFileName = "$wgTmpDirectory/filtered-$wgDBname.xml";
+               $revFileName = "$tmpDir/broken-revlist-$wgDBname";
+               $filteredXmlFileName = "$tmpDir/filtered-$wgDBname.xml";
 
                // Write revision list
                if ( !file_put_contents( $revFileName, implode( "\n", $revIds ) ) ) {
@@ -481,4 +482,3 @@ class CheckStorage {
                $this->errors['fixed'][$id] = true;
        }
 }
-
index 36fb8ee..ca0f95d 100644 (file)
@@ -1,14 +1,31 @@
 <?php
-
 /**
- * @ingroup Testing
- *
  * Set of classes to help with test output and such. Right now pretty specific
  * to the parser tests but could be more useful one day :)
  *
+ * 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 Testing
  * @todo Fixme: Make this more generic
  */
 
+/**
+ * Terminal that supports ANSI escape sequences.
+ */
 class AnsiTermColorer {
        function __construct() {
        }
@@ -37,7 +54,9 @@ class AnsiTermColorer {
        }
 }
 
-/* A colour-less terminal */
+/**
+ * A colour-less terminal
+ */
 class DummyTermColorer {
        public function color( $color ) {
                return '';
index edfae92..3f993f0 100644 (file)
@@ -20,7 +20,7 @@ wfInstallerMain();
 function wfInstallerMain() {
        global $wgRequest, $wgLang, $wgMetaNamespace, $wgCanonicalNamespaceNames;
 
-       $installer = new WebInstaller( $wgRequest );
+       $installer = InstallerOverrides::getWebInstaller( $wgRequest );
 
        if ( !$installer->startSession() ) {
                $installer->finish();
diff --git a/mw-config/overrides.php b/mw-config/overrides.php
new file mode 100644 (file)
index 0000000..ae98295
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/**
+ * MediaWiki installer overrides.
+ * Modify this file if you are a packager who needs to modify the behavior of the MediaWiki installer.
+ * Altering it is preferred over changing anything in /includes.
+ *
+ * Note: this file doesn't gets included from a global scope, don't use globals directly.
+ */
+
+/*
+
+Example of modifications:
+
+       public static function getLocalSettingsGenerator( Installer $installer ) {
+               return new MyLocalSettingsGenerator( $installer );
+       }
+
+Then add the following to the bottom of this file:
+
+class MyLocalSettingsGenerator extends LocalSettingsGenerator {
+       function getText() {
+               // Modify an existing setting
+               $this->values['wgResourceLoaderMaxQueryLength'] = 512;
+               // add a new setting
+               $ls = parent::getText();
+               return $ls . "\n\$wgUseTex = true;\n";
+       }
+}
+*/
+
+/**
+ * @since 1.20
+ */
+class InstallerOverrides {
+       /**
+        * Instantiates and returns an instance of LocalSettingsGenerator or its descendant classes
+        * @param Installer $installer
+        * @return LocalSettingsGenerator
+        */
+       public static function getLocalSettingsGenerator( Installer $installer ) {
+               return new LocalSettingsGenerator( $installer );
+       }
+
+       /**
+        * Instantiates and returns an instance of WebInstaller or its descendant classes
+        * @param WebRequest $request
+        * @return WebInstaller
+        */
+       public static function getWebInstaller( WebRequest $request ) {
+               return new WebInstaller( $request );
+       }
+
+       /**
+        * Instantiates and returns an instance of CliInstaller or its descendant classes
+        * @param string $siteName
+        * @param string|null $admin
+        * @param array $options
+        * @return CliInstaller
+        */
+       public static function getCliInstaller( $siteName, $admin = null, array $options = array() ) {
+               return new CliInstaller( $siteName, $admin, $options );
+       }
+}
index 3b26a00..fb6f2ff 100644 (file)
@@ -364,6 +364,7 @@ return array(
                        'is' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-is.js',
                        'it' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-it.js',
                        'ja' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-ja.js',
+                       'ka' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-ka.js',
                        'kk' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-kk.js',
                        'km' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-km.js',
                        'ko' => 'resources/jquery.ui/i18n/jquery.ui.datepicker-ko.js',
@@ -687,6 +688,7 @@ return array(
                        'cu' => 'resources/mediawiki.language/languages/cu.js',
                        'cy' => 'resources/mediawiki.language/languages/cy.js',
                        'dsb' => 'resources/mediawiki.language/languages/dsb.js',
+                       'fi' => 'resources/mediawiki.language/languages/fi.js',
                        'fr' => 'resources/mediawiki.language/languages/fr.js',
                        'ga' => 'resources/mediawiki.language/languages/ga.js',
                        'gd' => 'resources/mediawiki.language/languages/gd.js',
@@ -695,8 +697,10 @@ return array(
                        'hi' => 'resources/mediawiki.language/languages/hi.js',
                        'hr' => 'resources/mediawiki.language/languages/hr.js',
                        'hsb' => 'resources/mediawiki.language/languages/hsb.js',
+                       'hu' => 'resources/mediawiki.language/languages/hu.js',
                        'hy' => 'resources/mediawiki.language/languages/hy.js',
                        'ksh' => 'resources/mediawiki.language/languages/ksh.js',
+                       'la' => 'resources/mediawiki.language/languages/la.js',
                        'ln' => 'resources/mediawiki.language/languages/ln.js',
                        'lt' => 'resources/mediawiki.language/languages/lt.js',
                        'lv' => 'resources/mediawiki.language/languages/lv.js',
@@ -706,6 +710,7 @@ return array(
                        'mt' => 'resources/mediawiki.language/languages/mt.js',
                        'nl' => 'resources/mediawiki.language/languages/nl.js',
                        'nso' => 'resources/mediawiki.language/languages/nso.js',
+                       'os' => 'resources/mediawiki.language/languages/os.js',
                        'pl' => 'resources/mediawiki.language/languages/pl.js',
                        'pt' => 'resources/mediawiki.language/languages/pt.js',
                        'pt-br' => 'resources/mediawiki.language/languages/pt-br.js',
@@ -810,6 +815,11 @@ return array(
        'mediawiki.special.search' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.search.js',
                'styles' => 'resources/mediawiki.special/mediawiki.special.search.css',
+               'messages' => array(
+                       'powersearch-togglelabel',
+                       'powersearch-toggleall',
+                       'powersearch-togglenone',
+               ),
        ),
        'mediawiki.special.undelete' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.undelete.js',
index c28503b..686cdb7 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Blind 1.8.20
+ * jQuery UI Effects Blind 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 5666312..e3fc3d8 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Bounce 1.8.20
+ * jQuery UI Effects Bounce 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 9244a15..2b43554 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Clip 1.8.20
+ * jQuery UI Effects Clip 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index c49bdaa..cc31827 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects 1.8.20
+ * jQuery UI Effects 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -306,7 +306,7 @@ $.fn.extend({
 /******************************************************************************/
 
 $.extend($.effects, {
-       version: "1.8.20",
+       version: "1.8.21",
 
        // Saves a set of properties in a data storage
        save: function(element, set) {
@@ -370,7 +370,16 @@ $.extend($.effects, {
                                }),
                        active = document.activeElement;
 
-               element.wrap(wrapper);
+               // support: Firefox
+               // Firefox incorrectly exposes anonymous content
+               // https://bugzilla.mozilla.org/show_bug.cgi?id=561664
+               try {
+                       active.id;
+               } catch( e ) {
+                       active = document.body;
+               }
+
+               element.wrap( wrapper );
 
                // Fixes #7595 - Elements lose focus when wrapped.
                if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
index 4fdb521..1fa5660 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Drop 1.8.20
+ * jQuery UI Effects Drop 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 1a9d32e..f50e257 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Explode 1.8.20
+ * jQuery UI Effects Explode 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index c976ce4..c62037f 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Fade 1.8.20
+ * jQuery UI Effects Fade 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 017f70c..a660eed 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Fold 1.8.20
+ * jQuery UI Effects Fold 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 71462fb..e65bda3 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Highlight 1.8.20
+ * jQuery UI Effects Highlight 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 4d8e90e..a512184 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Pulsate 1.8.20
+ * jQuery UI Effects Pulsate 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index a4941f9..c312195 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Scale 1.8.20
+ * jQuery UI Effects Scale 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index b40c783..08ce5a8 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Shake 1.8.20
+ * jQuery UI Effects Shake 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 49059cf..3258a9a 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Slide 1.8.20
+ * jQuery UI Effects Slide 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 565ad28..97514f1 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Effects Transfer 1.8.20
+ * jQuery UI Effects Transfer 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 743a15d..8a9218d 100644 (file)
@@ -12,7 +12,7 @@ jQuery(function($){
                monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
                dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
                dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
-               dayNamesMin: ['اÙ\84أحد', 'اÙ\84اثÙ\86Ù\8aÙ\86', 'اÙ\84Ø«Ù\84اثاء', 'اÙ\84أربعاء', 'اÙ\84Ø®Ù\85Ù\8aس', 'اÙ\84جÙ\85عة', 'اÙ\84سبت'],
+               dayNamesMin: ['Ø­', 'Ù\86', 'Ø«', 'ر', 'Ø®', 'ج', 'س'],
                weekHeader: 'أسبوع',
                dateFormat: 'dd/mm/yy',
                firstDay: 6,
index bee4bfb..ff66e49 100644 (file)
@@ -6,15 +6,15 @@ jQuery(function($){
                prevText: '&#x3c;Aur',
                nextText: 'Hur&#x3e;',
                currentText: 'Gaur',
-               monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina',
-               'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'],
-               monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka',
-               'Uzt','Abu','Ira','Urr','Aza','Abe'],
-               dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'],
-               dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'],
-               dayNamesMin: ['Ig','As','As','As','Os','Os','La'],
-               weekHeader: 'Wk',
-               dateFormat: 'yy/mm/dd',
+               monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina',
+                       'uztaila','abuztua','iraila','urria','azaroa','abendua'],
+               monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.',
+                       'uzt.','abu.','ira.','urr.','aza.','abe.'],
+               dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'],
+               dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'],
+               dayNamesMin: ['ig','al','ar','az','og','ol','lr'],
+               weekHeader: 'As',
+               dateFormat: 'yy-mm-dd',
                firstDay: 1,
                isRTL: false,
                showMonthAfterYear: false,
diff --git a/resources/jquery.ui/i18n/jquery.ui.datepicker-ka.js b/resources/jquery.ui/i18n/jquery.ui.datepicker-ka.js
new file mode 100644 (file)
index 0000000..c10658d
--- /dev/null
@@ -0,0 +1,21 @@
+/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Lado Lomidze (lado.lomidze@gmail.com). */
+jQuery(function($){
+       $.datepicker.regional['ka'] = {
+               closeText: 'დახურვა',
+               prevText: '&#x3c; წინა',
+               nextText: 'შემდეგი &#x3e;',
+               currentText: 'დღეს',
+               monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'],
+               monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'],
+               dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'],
+               dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
+               dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'],
+               weekHeader: 'კვირა',
+               dateFormat: 'dd-mm-yy',
+               firstDay: 1,
+               isRTL: false,
+               showMonthAfterYear: false,
+               yearSuffix: ''};
+       $.datepicker.setDefaults($.datepicker.regional['ka']);
+});
index f086f81..fe0a729 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Accordion 1.8.20
+ * jQuery UI Accordion 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -518,7 +518,7 @@ $.widget( "ui.accordion", {
 });
 
 $.extend( $.ui.accordion, {
-       version: "1.8.20",
+       version: "1.8.21",
        animations: {
                slide: function( options, additions ) {
                        options = $.extend({
index f95b78f..f8009c6 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Autocomplete 1.8.20
+ * jQuery UI Autocomplete 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index cbec505..47bd6aa 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Button 1.8.20
+ * jQuery UI Button 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 6e2b3be..2a8a2c1 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI 1.8.20
+ * jQuery UI 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -18,7 +18,7 @@ if ( $.ui.version ) {
 }
 
 $.extend( $.ui, {
-       version: "1.8.20",
+       version: "1.8.21",
 
        keyCode: {
                ALT: 18,
index 951c1a9..8ca1b15 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Datepicker 1.8.20
+ * jQuery UI Datepicker 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -12,7 +12,7 @@
  */
 (function( $, undefined ) {
 
-$.extend($.ui, { datepicker: { version: "1.8.20" } });
+$.extend($.ui, { datepicker: { version: "1.8.21" } });
 
 var PROP_NAME = 'datepicker';
 var dpuuid = new Date().getTime();
@@ -1815,7 +1815,7 @@ $.fn.datepicker = function(options){
 $.datepicker = new Datepicker(); // singleton instance
 $.datepicker.initialized = false;
 $.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8.20";
+$.datepicker.version = "1.8.21";
 
 // Workaround for #4055
 // Add another global to avoid noConflict issues with inline event handlers
index d28be0c..e7e05b1 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Dialog 1.8.20
+ * jQuery UI Dialog 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -702,7 +702,7 @@ $.widget("ui.dialog", {
 });
 
 $.extend($.ui.dialog, {
-       version: "1.8.20",
+       version: "1.8.21",
 
        uuid: 0,
        maxZ: 0,
index dee9777..40a0c52 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Draggable 1.8.20
+ * jQuery UI Draggable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -103,6 +103,8 @@ $.widget("ui.draggable", $.ui.mouse, {
                //Create and append the visible helper
                this.helper = this._createHelper(event);
 
+               this.helper.addClass("ui-draggable-dragging");
+
                //Cache the helper size
                this._cacheHelperProportions();
 
@@ -163,7 +165,7 @@ $.widget("ui.draggable", $.ui.mouse, {
                if ($.ui.ddmanager && !o.dropBehaviour)
                        $.ui.ddmanager.prepareOffsets(this, event);
 
-               this.helper.addClass("ui-draggable-dragging");
+               
                this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
                
                //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003)
@@ -511,7 +513,7 @@ $.widget("ui.draggable", $.ui.mouse, {
 });
 
 $.extend($.ui.draggable, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 $.ui.plugin.add("draggable", "connectToSortable", {
index 8cb2bb7..a749161 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Droppable 1.8.20
+ * jQuery UI Droppable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -147,7 +147,7 @@ $.widget("ui.droppable", {
 });
 
 $.extend($.ui.droppable, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 $.ui.intersect = function(draggable, droppable, toleranceMode) {
index 63f8570..a4392de 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Mouse 1.8.20
+ * jQuery UI Mouse 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 1989896..164804b 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Position 1.8.20
+ * jQuery UI Position 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -243,7 +243,12 @@ if ( !$.offset.setOffset ) {
        $.fn.offset = function( options ) {
                var elem = this[ 0 ];
                if ( !elem || !elem.ownerDocument ) { return null; }
-               if ( options ) { 
+               if ( options ) {
+                       if ( $.isFunction( options ) ) {
+                               return this.each(function( i ) {
+                                       $( this ).offset( options.call( this, i, $( this ).offset() ) );
+                               });
+                       }
                        return this.each(function() {
                                $.offset.setOffset( this, options );
                        });
index b1c05de..4139be6 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Progressbar 1.8.20
+ * jQuery UI Progressbar 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -103,7 +103,7 @@ $.widget( "ui.progressbar", {
 });
 
 $.extend( $.ui.progressbar, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 })( jQuery );
index a2a7ad5..904be47 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Resizable 1.8.20
+ * jQuery UI Resizable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -540,7 +540,7 @@ $.widget("ui.resizable", $.ui.mouse, {
 });
 
 $.extend($.ui.resizable, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 /*
index b68ea95..403e62d 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Selectable 1.8.20
+ * jQuery UI Selectable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -261,7 +261,7 @@ $.widget("ui.selectable", $.ui.mouse, {
 });
 
 $.extend($.ui.selectable, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 })(jQuery);
index 3e6178e..8629dc6 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Slider 1.8.20
+ * jQuery UI Slider 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -656,7 +656,7 @@ $.widget( "ui.slider", $.ui.mouse, {
 });
 
 $.extend( $.ui.slider, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 }(jQuery));
index 3438f59..45fbb1c 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Sortable 1.8.20
+ * jQuery UI Sortable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -155,11 +155,6 @@ $.widget("ui.sortable", $.ui.mouse, {
                        left: this.offset.left - this.margins.left
                };
 
-               // Only after we got the offset, we can change the helper's position to absolute
-               // TODO: Still need to figure out a way to make relative sorting possible
-               this.helper.css("position", "absolute");
-               this.cssPosition = this.helper.css("position");
-
                $.extend(this.offset, {
                        click: { //Where the click happened, relative to the element
                                left: event.pageX - this.offset.left,
@@ -169,6 +164,11 @@ $.widget("ui.sortable", $.ui.mouse, {
                        relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
                });
 
+               // Only after we got the offset, we can change the helper's position to absolute
+               // TODO: Still need to figure out a way to make relative sorting possible
+               this.helper.css("position", "absolute");
+               this.cssPosition = this.helper.css("position");
+               
                //Generate the original position
                this.originalPosition = this._generatePosition(event);
                this.originalPageX = event.pageX;
@@ -730,30 +730,31 @@ $.widget("ui.sortable", $.ui.mouse, {
                if(this.containers.length === 1) {
                        this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
                        this.containers[innermostIndex].containerCache.over = 1;
-               } else if(this.currentContainer != this.containers[innermostIndex]) { 
-
-                       //When entering a new container, we will find the item with the least distance and append our item near it 
-                       var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; 
-                       for (var j = this.items.length - 1; j >= 0; j--) { 
-                               if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; 
-                               var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; 
-                               if(Math.abs(cur - base) < dist) { 
-                                       dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; 
-                               } 
-                       } 
-
-                       if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled 
-                               return; 
-
-                       this.currentContainer = this.containers[innermostIndex]; 
-                       itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); 
-                       this._trigger("change", event, this._uiHash()); 
-                       this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); 
-
-                       //Update the placeholder 
-                       this.options.placeholder.update(this.currentContainer, this.placeholder); 
-               
-                       this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); 
+               } else if(this.currentContainer != this.containers[innermostIndex]) {
+
+                       //When entering a new container, we will find the item with the least distance and append our item near it
+                       var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top'];
+                       for (var j = this.items.length - 1; j >= 0; j--) {
+                               if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue;
+                               var cur = this.containers[innermostIndex].floating ? this.items[j].item.offset().left : this.items[j].item.offset().top;
+                               if(Math.abs(cur - base) < dist) {
+                                       dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
+                                       this.direction = (cur - base > 0) ? 'down' : 'up';
+                               }
+                       }
+
+                       if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled
+                               return;
+
+                       this.currentContainer = this.containers[innermostIndex];
+                       itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true);
+                       this._trigger("change", event, this._uiHash());
+                       this.containers[innermostIndex]._trigger("change", event, this._uiHash(this));
+
+                       //Update the placeholder
+                       this.options.placeholder.update(this.currentContainer, this.placeholder);
+
+                       this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
                        this.containers[innermostIndex].containerCache.over = 1;
                } 
        
@@ -1075,7 +1076,7 @@ $.widget("ui.sortable", $.ui.mouse, {
 });
 
 $.extend($.ui.sortable, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 })(jQuery);
index 7cc19f0..d9e2fdf 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Tabs 1.8.20
+ * jQuery UI Tabs 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -698,7 +698,7 @@ $.widget( "ui.tabs", {
 });
 
 $.extend( $.ui.tabs, {
-       version: "1.8.20"
+       version: "1.8.21"
 });
 
 /*
index 5a71348..4f7aea7 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Widget 1.8.20
+ * jQuery UI Widget 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index cd207b9..4ad0cec 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Accordion 1.8.20
+ * jQuery UI Accordion 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 535f1e6..428e66a 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Autocomplete 1.8.20
+ * jQuery UI Autocomplete 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -13,7 +13,7 @@
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
 
 /*
- * jQuery UI Menu 1.8.20
+ * jQuery UI Menu 1.8.21
  *
  * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 1e2b1ff..f5fe74e 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Button 1.8.20
+ * jQuery UI Button 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index c42f9ba..f19df47 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI CSS Framework 1.8.20
+ * jQuery UI CSS Framework 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index fefb016..4c0ca36 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Datepicker 1.8.20
+ * jQuery UI Datepicker 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 2319611..77329fb 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Dialog 1.8.20
+ * jQuery UI Dialog 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 7c099ad..4c2a52d 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Progressbar 1.8.20
+ * jQuery UI Progressbar 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index b6b90de..0105c8a 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Resizable 1.8.20
+ * jQuery UI Resizable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
 .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
 .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
 .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-/* @noflip */
 .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-/* @noflip */
 .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-/* @noflip */
 .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-/* @noflip */
 .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-/* @noflip */
 .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-/* @noflip */
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
\ No newline at end of file
index 279effc..1d89569 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Selectable 1.8.20
+ * jQuery UI Selectable 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 6acaeaa..9bd0fd9 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Slider 1.8.20
+ * jQuery UI Slider 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 42a3692..d4645f8 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI Tabs 1.8.20
+ * jQuery UI Tabs 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index b705ff6..aad5943 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * jQuery UI CSS Framework 1.8.20
+ * jQuery UI CSS Framework 1.8.21
  *
  * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
  * Dual licensed under the MIT or GPL Version 2 licenses.
index 5abb869..2db0629 100644 (file)
@@ -1,19 +1,85 @@
 /**
- * jQuery QUnit CompletenessTest 0.3
+ * jQuery QUnit CompletenessTest 0.4
  *
  * Tests the completeness of test suites for object oriented javascript
  * libraries. Written to be used in environments with jQuery and QUnit.
- * Requires jQuery 1.5.2 or higher.
- *
- * Globals: jQuery, QUnit, console.log
+ * Requires jQuery 1.7.2 or higher.
  *
  * Built for and tested with:
- * - Safari 5
+ * - Chrome 19
  * - Firefox 4
+ * - Safari 5
  *
- * @author Timo Tijhof, 2011
+ * @author Timo Tijhof, 2011-2012
  */
-( function( $ ) {
+/*global jQuery, QUnit */
+/*jshint eqeqeq:false, eqnull:false, forin:false */
+( function ( $ ) {
+       "use strict";
+
+       var util,
+               hasOwn = Object.prototype.hasOwnProperty,
+               log = (window.console && window.console.log)
+                       ? function () { return window.console.log.apply(window.console, arguments); }
+                       : function () {};
+
+       // Simplified version of a few jQuery methods, except that they don't
+       // call other jQuery methods. Required to be able to run the CompletenessTest
+       // on jQuery itself as well.
+       util = {
+               keys: Object.keys || function ( object ) {
+                       var key, keys = [];
+                       for ( key in object ) {
+                               if ( hasOwn.call( object, key ) ) {
+                                       keys.push( key );
+                               }
+                       }
+                       return keys;
+               },
+               extend: function () {
+                       var options, name, src, copy,
+                               target = arguments[0] || {},
+                               i = 1,
+                               length = arguments.length;
+
+                       for ( ; i < length; i++ ) {
+                               // Only deal with non-null/undefined values
+                               if ( (options = arguments[ i ]) != null ) {
+                                       // Extend the base object
+                                       for ( name in options ) {
+                                               src = target[ name ];
+                                               copy = options[ name ];
+
+                                               // Prevent never-ending loop
+                                               if ( target === copy ) {
+                                                       continue;
+                                               }
+
+                                               if ( copy !== undefined ) {
+                                                       target[ name ] = copy;
+                                               }
+                                       }
+                               }
+                       }
+
+                       // Return the modified object
+                       return target;
+               },
+               each: function ( object, callback ) {
+                       var name;
+                       for ( name in object ) {
+                               if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+                                       break;
+                               }
+                       }
+               },
+               // $.type and $.isEmptyObject are safe as is, they don't call
+               // other $.* methods. Still need to be derefenced into `util`
+               // since the CompletenessTest will overload them with spies.
+               type: $.type,
+               isEmptyObject: $.isEmptyObject
+       };
+
 
 /**
  * CompletenessTest
@@ -33,67 +99,103 @@ var CompletenessTest = function ( masterVariable, ignoreFn ) {
 
        // Keep track in these objects. Keyed by strings with the
        // method names (ie. 'my.foo', 'my.bar', etc.) values are boolean true.
+       this.injectionTracker = {};
        this.methodCallTracker = {};
        this.missingTests = {};
 
-       this.ignoreFn = undefined === ignoreFn ? function(){ return false; } : ignoreFn;
+       this.ignoreFn = undefined === ignoreFn ? function () { return false; } : ignoreFn;
 
        // Lazy limit in case something weird happends (like recurse (part of) ourself).
-       this.lazyLimit = 1000;
+       this.lazyLimit = 2000;
        this.lazyCounter = 0;
 
        var that = this;
 
        // Bind begin and end to QUnit.
-       QUnit.begin = function(){
-               that.checkTests( null, masterVariable, masterVariable, [], CompletenessTest.ACTION_INJECT );
-       };
+       QUnit.begin( function () {
+               that.walkTheObject( null, masterVariable, masterVariable, [], CompletenessTest.ACTION_INJECT );
+               log( 'CompletenessTest/walkTheObject/ACTION_INJECT', that );
+       });
+
+       QUnit.done( function () {
+               that.populateMissingTests();
+               log( 'CompletenessTest/populateMissingTests', that );
+
+               var toolbar, testResults, cntTotal, cntCalled, cntMissing;
+
+               cntTotal = util.keys( that.injectionTracker ).length;
+               cntCalled = util.keys( that.methodCallTracker ).length;
+               cntMissing = util.keys( that.missingTests ).length;
 
-       QUnit.done = function(){
-               that.checkTests( null, masterVariable, masterVariable, [], CompletenessTest.ACTION_CHECK );
-               console.log( 'CompletenessTest.ACTION_CHECK', that );
+               function makeTestResults( blob, title, style ) {
+                       var elOutputWrapper, elTitle, elContainer, elList, elFoot;
 
-               // Build HTML representing the outcome from CompletenessTest
-               // And insert it into the header.
+                       elTitle = document.createElement( 'strong' );
+                       elTitle.textContent = title || 'Values';
 
-               var makeList = function( blob, title, style ) {
-                       title = title || 'Values';
-                       var html = '<strong>' + mw.html.escape(title) + '</strong>';
-                       $.each( blob, function( key ) {
-                               html += '<br />' + mw.html.escape(key);
+                       elList = document.createElement( 'ul' );
+                       util.each( blob, function ( key ) {
+                               var elItem = document.createElement( 'li' );
+                               elItem.textContent = key;
+                               elList.appendChild( elItem );
                        });
-                       html += '<br /><br /><em>&mdash; CompletenessTest</em>';
-                       var     $oldResult = $( '#qunit-completenesstest' ),
-                               $result = $oldResult.length ? $oldResult : $( '<div id="qunit-completenesstest"></div>' );
-                       return $result.css( style ).html( html );
-               };
 
-               if ( $.isEmptyObject( that.missingTests ) ) {
+                       elFoot = document.createElement( 'p' );
+                       elFoot.innerHTML = '<em>&mdash; CompletenessTest</em>';
+
+                       elContainer = document.createElement( 'div' );
+                       elContainer.appendChild( elTitle );
+                       elContainer.appendChild( elList );
+                       elContainer.appendChild( elFoot );
+
+                       elOutputWrapper = document.getElementById( 'qunit-completenesstest' );
+                       if ( !elOutputWrapper ) {
+                               elOutputWrapper = document.createElement( 'div' );
+                               elOutputWrapper.id = 'qunit-completenesstest';
+                       }
+                       elOutputWrapper.appendChild( elContainer );
+
+                       util.each( style, function ( key, value ) {
+                               elOutputWrapper.style[key] = value;
+                       });
+                       return elOutputWrapper;
+               }
+
+               if ( cntMissing === 0 ) {
                        // Good
-                       var $testResults = makeList(
-                               { 'No missing tests!': true },
-                               'missingTests',
+                       testResults = makeTestResults(
+                               {},
+                               'Detected calls to ' + cntCalled + '/' + cntTotal + ' methods. No missing tests!',
                                {
-                                       background: '#D2E0E6',
+                                       backgroundColor: '#D2E0E6',
                                        color: '#366097',
-                                       padding: '1em'
+                                       paddingTop: '1em',
+                                       paddingRight: '1em',
+                                       paddingBottom: '1em',
+                                       paddingLeft: '1em'
                                }
                        );
                } else {
                        // Bad
-                       var $testResults = makeList(
+                       testResults = makeTestResults(
                                that.missingTests,
-                               'missingTests',
+                               'Detected calls to ' + cntCalled + '/' + cntTotal + ' methods. ' + cntMissing + ' methods not covered:',
                                {
-                                       background: '#EE5757',
+                                       backgroundColor: '#EE5757',
                                        color: 'black',
-                                       padding: '1em'
+                                       paddingTop: '1em',
+                                       paddingRight: '1em',
+                                       paddingBottom: '1em',
+                                       paddingLeft: '1em'
                                }
                        );
                }
 
-               $( '#qunit-testrunner-toolbar' ).prepend( $testResults );
-       };
+               toolbar = document.getElementById( 'qunit-testrunner-toolbar' );
+               if ( toolbar ) {
+                       toolbar.insertBefore( testResults, toolbar.firstChild );
+               }
+       });
 
        return this;
 };
@@ -106,7 +208,7 @@ CompletenessTest.ACTION_CHECK = 501;
 CompletenessTest.fn = CompletenessTest.prototype = {
 
        /**
-        * CompletenessTest.fn.checkTests
+        * CompletenessTest.fn.walkTheObject
         *
         * This function recursively walks through the given object, calling itself as it goes.
         * Depending on the action it either injects our listener into the methods, or
@@ -121,92 +223,86 @@ CompletenessTest.fn = CompletenessTest.prototype = {
         *  masterVariable. Not including currName.
         * @param action {Number} What is this function supposed to do (ACTION_INJECT or ACTION_CHECK)
         */
-       checkTests: function( currName, currVar, masterVariable, parentPathArray, action ) {
-
-               // Handle the lazy limit
-               this.lazyCounter++;
-               if ( this.lazyCounter > this.lazyLimit ) {
-                       console.log( 'CompletenessTest.fn.checkTests> Limit reached: ' + this.lazyCounter );
-                       return null;
-               }
+       walkTheObject: function ( currName, currVar, masterVariable, parentPathArray, action ) {
 
-               var     type = $.type( currVar ),
+               var key, value, tmpPathArray,
+                       type = util.type( currVar ),
                        that = this;
 
                // Hard ignores
                if ( this.ignoreFn( currVar, that, parentPathArray ) ) {
                        return null;
+               }
 
-               // Functions
-               } else  if ( type === 'function' ) {
-
-                       /* CHECK MODE */
-
-                       if ( action === CompletenessTest.ACTION_CHECK ) {
-
-                               if ( !currVar.prototype || $.isEmptyObject( currVar.prototype ) ) {
-
-                                       that.hasTest( parentPathArray.join( '.' ) );
+               // Handle the lazy limit
+               this.lazyCounter++;
+               if ( this.lazyCounter > this.lazyLimit ) {
+                       log( 'CompletenessTest.fn.walkTheObject> Limit reached: ' + this.lazyCounter, parentPathArray );
+                       return null;
+               }
 
-                               // We don't support checking object constructors yet...
-                               } else {
+               // Functions
+               if ( type === 'function' ) {
 
-                                       // ...the prototypes are fine tho
-                                       $.each( currVar.prototype, function( key, value ) {
-                                               if ( key === 'constructor' ) return;
+                       if ( !currVar.prototype || util.isEmptyObject( currVar.prototype ) ) {
 
-                                               // Clone and break reference to parentPathArray
-                                               var tmpPathArray = $.extend( [], parentPathArray );
-                                               tmpPathArray.push( 'prototype' ); tmpPathArray.push( key );
+                               if ( action === CompletenessTest.ACTION_INJECT ) {
 
-                                               that.hasTest( tmpPathArray.join( '.' ) );
+                                       that.injectionTracker[ parentPathArray.join( '.' ) ] = true;
+                                       that.injectCheck( masterVariable, parentPathArray, function () {
+                                               that.methodCallTracker[ parentPathArray.join( '.' ) ] = true;
                                        } );
                                }
 
-                       /* INJECT MODE */
-
-                       } else if ( action === CompletenessTest.ACTION_INJECT ) {
+                       // We don't support checking object constructors yet...
+                       // ...we can check the prototypes fine, though.
+                       } else {
+                               if ( action === CompletenessTest.ACTION_INJECT ) {
 
-                               if ( !currVar.prototype || $.isEmptyObject( currVar.prototype ) ) {
+                                       for ( key in currVar.prototype ) {
+                                               if ( hasOwn.call( currVar.prototype, key ) ) {
+                                                       value = currVar.prototype[key];
+                                                       if ( key === 'constructor' ) {
+                                                               continue;
+                                                       }
 
-                                       // Inject check
-                                       that.injectCheck( masterVariable, parentPathArray, function() {
-                                               that.methodCallTracker[ parentPathArray.join( '.' ) ] = true;
-                                       } );
+                                                       // Clone and break reference to parentPathArray
+                                                       tmpPathArray = util.extend( [], parentPathArray );
+                                                       tmpPathArray.push( 'prototype' );
+                                                       tmpPathArray.push( key );
 
-                               // We don't support checking object constructors yet...
-                               } else {
+                                                       that.walkTheObject( key, value, masterVariable, tmpPathArray, action );
+                                               }
+                                       }
 
-                                       // ... the prototypes are fine tho
-                                       $.each( currVar.prototype, function( key, value ) {
-                                               if ( key === 'constructor' ) return;
-
-                                               // Clone and break reference to parentPathArray
-                                               var tmpPathArray = $.extend( [], parentPathArray );
-                                               tmpPathArray.push( 'prototype' ); tmpPathArray.push( key );
-
-                                               that.checkTests( key, value, masterVariable, tmpPathArray, action );
-                                       } );
                                }
-
                        }
 
-               // Recursively. After all, this *is* the completeness test
-               } else if ( type === 'object' ) {
-
-                       $.each( currVar, function( key, value ) {
-
-                               // Clone and break reference to parentPathArray
-                               var tmpPathArray = $.extend( [], parentPathArray );
-                               tmpPathArray.push( key );
+               }
 
-                               that.checkTests( key, value, masterVariable, tmpPathArray, action );
+               // Recursively. After all, this is the *completeness* test
+               if ( type === 'function' || type === 'object' ) {
+                       for ( key in currVar ) {
+                               if ( hasOwn.call( currVar, key ) ) {
+                                       value = currVar[key];
 
-                       } );
+                                       // Clone and break reference to parentPathArray
+                                       tmpPathArray = util.extend( [], parentPathArray );
+                                       tmpPathArray.push( key );
 
+                                       that.walkTheObject( key, value, masterVariable, tmpPathArray, action );
+                               }
+                       }
                }
        },
 
+       populateMissingTests: function () {
+               var ct = this;
+               util.each( ct.injectionTracker, function ( key ) {
+                       ct.hasTest( key );
+               });
+       },
+
        /**
         * CompletenessTest.fn.hasTest
         *
@@ -217,7 +313,7 @@ CompletenessTest.fn = CompletenessTest.prototype = {
         * @param fnName {String}
         * @return {Boolean}
         */
-       hasTest: function( fnName ) {
+       hasTest: function ( fnName ) {
                if ( !( fnName in this.methodCallTracker ) ) {
                        this.missingTests[fnName] = true;
                        return false;
@@ -235,19 +331,24 @@ CompletenessTest.fn = CompletenessTest.prototype = {
         * @param objectPathArray {Array}
         * @param injectFn {Function}
         */
-       injectCheck: function( masterVariable, objectPathArray, injectFn ) {
-               var     prev,
-                       curr = masterVariable,
-                       lastMember;
+       injectCheck: function ( masterVariable, objectPathArray, injectFn ) {
+               var i, len, prev, memberName, lastMember,
+                       curr = masterVariable;
+
+               // Get the object in question through the path from the master variable,
+               // We can't pass the value directly because we need to re-define the object
+               // member and keep references to the parent object, member name and member
+               // value at all times.
+               for ( i = 0, len = objectPathArray.length; i < len; i++ ) {
+                       memberName = objectPathArray[i];
 
-               $.each( objectPathArray, function( i, memberName ) {
                        prev = curr;
                        curr = prev[memberName];
                        lastMember = memberName;
-               });
+               }
 
                // Objects are by reference, members (unless objects) are not.
-               prev[lastMember] = function() {
+               prev[lastMember] = function () {
                        injectFn();
                        return curr.apply( this, arguments );
                };
index 9f22426..9affcf0 100644 (file)
@@ -18,3 +18,19 @@ mediaWiki.language.convertPlural = function( count, forms ) {
                        return forms[2];
        }
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'bs', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'instrumental': // instrumental
+                       word = 's ' + word;
+                       break;
+               case 'lokativ': // locative
+                       word = 'o ' + word;
+                       break;
+       }
+       return word;
+};
index c3eaa1f..e3c5808 100644 (file)
@@ -16,3 +16,19 @@ mediaWiki.language.convertPlural = function( count, forms ) {
                        return forms[3];
        }
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'dsb', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'instrumental': // instrumental
+                       word = 'z ' + word;
+                       break;
+               case 'lokatiw': // lokatiw
+                       word = 'wo ' + word;
+                       break;
+       }
+       return word;
+};
diff --git a/resources/mediawiki.language/languages/fi.js b/resources/mediawiki.language/languages/fi.js
new file mode 100644 (file)
index 0000000..374698d
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+ *  Finnish (Suomi) language functions
+ *  @author Santhosh Thottingal
+ */
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'fi', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+
+       // vowel harmony flag
+       var aou = word.match( /[aou][^äöy]*$/i );
+       var origWord = word;
+       if ( word.match( /wiki$/i ) ) {
+               aou = false;
+       }
+       //append i after final consonant
+       if ( word.match( /[bcdfghjklmnpqrstvwxz]$/i ) )
+               word += 'i';
+
+       switch ( form ) {
+               case 'genitive':
+                       word += 'n';
+                       break;
+               case 'elative':
+                       word += ( aou ? 'sta' : 'stä' );
+                       break;
+               case 'partitive':
+                       word += ( aou ? 'a' : 'ä' );
+                       break;
+               case 'illative':
+                       // Double the last letter and add 'n'
+                       word += word.substr(  word.length-1 ) + 'n';
+                       break;
+               case 'inessive':
+                       word += ( aou ? 'ssa' : 'ssä' );
+                       break;
+               default:
+                       word = origWord;
+                       break;
+       }
+       return word;
+};
index 3928013..51fce35 100644 (file)
@@ -12,3 +12,38 @@ mediaWiki.language.convertPlural = function( count, forms ) {
        }
        return forms[2];
 };
+
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'ga', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'ainmlae':
+                       switch ( word ) {
+                               case 'an Domhnach':
+                                       word = 'Dé Domhnaigh';
+                                       break;
+                               case 'an Luan':
+                                       word = 'Dé Luain';
+                                       break;
+                               case 'an Mháirt':
+                                       word = 'Dé Mháirt';
+                                       break;
+                               case 'an Chéadaoin':
+                                       word = 'Dé Chéadaoin';
+                                       break;
+                               case 'an Déardaoin':
+                                       word = 'Déardaoin';
+                                       break;
+                               case 'an Aoine':
+                                       word = 'Dé hAoine';
+                                       break;
+                               case 'an Satharn':
+                                       word = 'Dé Sathairn';
+                                       break;
+                       }
+       }
+       return word;
+};
index b74440e..e737a7c 100644 (file)
@@ -12,3 +12,29 @@ mediaWiki.language.convertPlural = function( count, forms ) {
        }
        return forms[1];
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'he', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'prefixed':
+               case 'תחילית': // the same word in Hebrew
+                       // Duplicate prefixed "Waw", but only if it's not already double
+                       if ( word.substr( 0, 1 ) === "ו" && word.substr( 0, 2 ) !== "וו" ) {
+                               word = "ו" + word;
+                       }
+
+                       // Remove the "He" if prefixed
+                       if ( word.substr( 0, 1 ) === "ה" ) {
+                               word = word.substr( 1, word.length );
+                       }
+
+                       // Add a hyphen (maqaf) before numbers and non-Hebrew letters
+                       if (  word.substr( 0, 1 ) < "א" ||  word.substr( 0, 1 ) > "ת" ) {
+                               word = "־" + word;
+                       }
+       }
+       return word;
+};
index 8651fe4..6aa993c 100644 (file)
@@ -16,3 +16,20 @@ mediaWiki.language.convertPlural = function( count, forms ) {
                        return forms[3];
        }
 };
+
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms =mw.language.getData( 'hsb', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'instrumental': // instrumental
+                       word = 'z ' + word;
+                       break;
+               case 'lokatiw': // lokatiw
+                       word = 'wo ' + word;
+                       break;
+               }
+       return word;
+};
diff --git a/resources/mediawiki.language/languages/hu.js b/resources/mediawiki.language/languages/hu.js
new file mode 100644 (file)
index 0000000..eb3f1f3
--- /dev/null
@@ -0,0 +1,23 @@
+/**
+ *  Hungarian language functions
+ *  @author Santhosh Thottingal
+ */
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'hu', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'rol':
+                       word += 'ról';
+                       break;
+               case 'ba':
+                       word += 'ba';
+                       break;
+               case 'k':
+                       word += 'k';
+                       break;
+       }
+       return word;
+};
index 734c26d..b51b2b6 100644 (file)
@@ -6,3 +6,27 @@ mediaWiki.language.convertPlural = function( count, forms ) {
        forms = mediaWiki.language.preConvertPlural( forms, 2 );
        return ( Math.abs( count ) <= 1 ) ? forms[0] : forms[1];
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'hy', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+
+       // These rules are not perfect, but they are currently only used for site names so it doesn't
+       // matter if they are wrong sometimes. Just add a special case for your site name if necessary.
+
+       switch ( form ) {
+               case 'genitive': // սեռական հոլով
+                       if ( word.substr( -1 ) === 'ա' )
+                               word = word.substr( 0, word.length -1 )  + 'այի';
+                       else if ( word.substr( -1 ) === 'ո' )
+                               word = word.substr( 0, word.length - 1 ) + 'ոյի';
+                       else if ( word.substr( -4 ) === 'գիրք' )
+                               word = word.substr( 0, word.length - 4 ) + 'գրքի';
+                       else
+                               word = word + 'ի';
+                       break;
+               }
+       return word;
+};
diff --git a/resources/mediawiki.language/languages/la.js b/resources/mediawiki.language/languages/la.js
new file mode 100644 (file)
index 0000000..313bb1c
--- /dev/null
@@ -0,0 +1,50 @@
+/**
+ * Latin (lingua Latina) language functions
+ * @author Santhosh Thottingal
+ */
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'la', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'genitive':
+                       // only a few declensions, and even for those mostly the singular only
+                       word = word.replace( /u[ms]$/i, 'i' ); // 2nd declension singular
+                       word = word.replace( /ommunia$/i, 'ommunium' ); // 3rd declension neuter plural (partly)
+                       word = word.replace( /a$/i, 'ae' ); // 1st declension singular
+                       word = word.replace( /libri$/i,'librorum' ); // 2nd declension plural (partly)
+                       word = word.replace( /nuntii$/i, 'nuntiorum' ); // 2nd declension plural (partly)
+                       word = word.replace( /tio$/i,'tionis' ); // 3rd declension singular (partly)
+                       word = word.replace( /ns$/i, 'ntis' );
+                       word = word.replace( /as$/i, 'atis' );
+                       word = word.replace( /es$/i ,'ei' ); // 5th declension singular
+                       break;
+               case 'accusative':
+                       // only a few declensions, and even for those mostly the singular only
+                       word = word.replace( /u[ms]$/i, 'um' ); // 2nd declension singular
+                       word = word.replace( /ommunia$/i, 'am' ); // 3rd declension neuter plural (partly)
+                       word = word.replace( /a$/i, 'ommunia' ); // 1st declension singular
+                       word = word.replace( /libri$/i,'libros' ); // 2nd declension plural (partly)
+                       word = word.replace( /nuntii$/i, 'nuntios' );// 2nd declension plural (partly)
+                       word = word.replace( /tio$/i,'tionem' ); // 3rd declension singular (partly)
+                       word = word.replace( /ns$/i, 'ntem' );
+                       word = word.replace( /as$/i, 'atem');
+                       word = word.replace( /es$/i ,'em' ); // 5th declension singular
+                       break;
+               case 'ablative':
+                       // only a few declensions, and even for those mostly the singular only
+                       word = word.replace( /u[ms]$/i, 'o' ); // 2nd declension singular
+                       word = word.replace( /ommunia$/i, 'ommunibus' ); // 3rd declension neuter plural (partly)
+                       word = word.replace( /a$/i, 'a' ); // 1st declension singular
+                       word = word.replace( /libri$/i,'libris' ); // 2nd declension plural (partly)
+                       word = word.replace( /nuntii$/i, 'nuntiis' ); // 2nd declension plural (partly)
+                       word = word.replace( /tio$/i,'tione' ); // 3rd declension singular (partly)
+                       word = word.replace( /ns$/i, 'nte' );
+                       word = word.replace( /as$/i, 'ate');
+                       word = word.replace( /es$/i ,'e' ); // 5th declension singular
+                       break;
+       }
+       return word;
+};
diff --git a/resources/mediawiki.language/languages/os.js b/resources/mediawiki.language/languages/os.js
new file mode 100644 (file)
index 0000000..431e38c
--- /dev/null
@@ -0,0 +1,69 @@
+/**
+ * Ossetian (Ирон) language functions
+ * @author Santhosh Thottingal
+ */
+
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'os', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       // Ending for allative case
+       var end_allative = 'мæ';
+       // Variable for 'j' beetwen vowels
+       var jot = '';
+       // Variable for "-" for not Ossetic words
+       var hyphen = '';
+       // Variable for ending
+       var ending = '';
+       // Checking if the $word is in plural form
+       if ( word.match( /тæ$/i ) ) {
+               word = word.substring( 0, word.length - 1 );
+               end_allative = 'æм';
+       }
+       // Works if word is in singular form.
+       // Checking if word ends on one of the vowels: е, ё, и, о, ы, э, ю, я.
+       else if ( word.match( /[аæеёиоыэюя]$/i ) ) {
+               jot = 'й';
+       }
+       // Checking if word ends on 'у'. 'У' can be either consonant 'W' or vowel 'U' in cyrillic Ossetic.
+       // Examples: {{grammar:genitive|аунеу}} = аунеуы, {{grammar:genitive|лæппу}} = лæппуйы.
+       else if ( word.match( /у$/i ) ) {
+               if ( ! word.substring( word.length-2, word.length-1 ).match( /[аæеёиоыэюя]$/i ) ) {
+                       jot = 'й';
+               }
+       } else if ( !word.match( /[бвгджзйклмнопрстфхцчшщьъ]$/i ) ) {
+               hyphen = '-';
+       }
+
+       switch ( form ) {
+               case 'genitive':
+                       ending = hyphen + jot + 'ы';
+                       break;
+               case 'dative':
+                       ending = hyphen + jot + 'æн';
+                       break;
+               case 'allative':
+                       ending = hyphen + end_allative;
+                       break;
+               case 'ablative':
+                       if ( jot == 'й' ) {
+                               ending = hyphen + jot + 'æ';
+                       }
+                       else {
+                               ending = hyphen + jot + 'æй';
+                       }
+                       break;
+               case 'superessive':
+                       ending = hyphen + jot + 'ыл';
+                       break;
+               case 'equative':
+                       ending = hyphen + jot + 'ау';
+                       break;
+               case 'comitative':
+                       ending = hyphen + 'имæ';
+                       break;
+       }
+       return word + ending;
+};
index 17c9293..42be4f9 100644 (file)
@@ -21,3 +21,29 @@ mediaWiki.language.convertPlural = function( count, forms ) {
                        return forms[2];
        }
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'ru', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'genitive': // родительный падеж
+                       if ( (  word.substr( word.length - 4 )  == 'вики' ) || (  word.substr( word.length - 4 ) == 'Вики' ) ) {
+                       }
+                       else if ( word.substr( word.length - 1 ) == 'ь' )
+                               word = word.substr(0, word.length - 1 ) + 'я';
+                       else if ( word.substr( word.length - 2 ) == 'ия' )
+                               word = word.substr(0, word.length - 2 ) + 'ии';
+                       else if ( word.substr( word.length - 2 ) == 'ка' )
+                               word = word.substr(0, word.length - 2 ) + 'ки';
+                       else if ( word.substr( word.length - 2 )  == 'ти' )
+                               word = word.substr(0, word.length - 2 ) + 'тей';
+                       else if ( word.substr( word.length - 2 ) == 'ды' )
+                               word = word.substr(0, word.length - 2 ) + 'дов';
+                       else if ( word.substr( word.length - 3 ) == 'ник' )
+                               word = word.substr(0, word.length - 3 ) + 'ника';
+                       break;
+       }
+       return word;
+};
index a887e0e..cfb5781 100644 (file)
@@ -18,3 +18,19 @@ mediaWiki.language.convertPlural = function( count, forms ) {
        }
        return forms[4];
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'sl', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'mestnik': // locative
+                       word = 'o ' + word;
+                       break;
+               case 'orodnik': // instrumental
+                       word = 'z ' + word;
+                       break;
+       }
+       return word;
+};
index 5c1294e..372d441 100644 (file)
@@ -21,3 +21,35 @@ mediaWiki.language.convertPlural = function( count, forms ) {
                        return forms[2];
        }
 };
+
+mediaWiki.language.convertGrammar = function( word, form ) {
+       var grammarForms = mw.language.getData( 'uk', 'grammarForms' );
+       if ( grammarForms && grammarForms[form] ) {
+               return grammarForms[form][word] ;
+       }
+       switch ( form ) {
+               case 'genitive': // родовий відмінок
+                       if ( (  word.substr( word.length - 4 ) == 'вікі' ) || (  word.substr( word.length - 4 ) == 'Вікі' ) ) {
+                       }
+                       else if ( word.substr( word.length - 1 ) == 'ь' )
+                               word = word.substr(0, word.length - 1 ) + 'я';
+                       else if ( word.substr( word.length - 2 ) == 'ія' )
+                               word = word.substr(0, word.length - 2 ) + 'ії';
+                       else if ( word.substr( word.length - 2 ) == 'ка' )
+                               word = word.substr(0, word.length - 2 ) + 'ки';
+                       else if ( word.substr( word.length - 2 )  == 'ти' )
+                               word = word.substr(0, word.length - 2 ) + 'тей';
+                       else if ( word.substr( word.length - 2 ) == 'ды' )
+                               word = word.substr(0, word.length - 2 ) + 'дов';
+                       else if ( word.substr( word.length - 3 ) == 'ник' )
+                               word = word.substr(0, word.length - 3 ) + 'ника';
+                       break;
+               case 'accusative': // знахідний відмінок
+                       if ( (  word.substr( word.length - 4 ) == 'вікі' ) || (  word.substr( word.length - 4 ) == 'Вікі' ) ) {
+                       }
+                       else if ( word.substr( word.length - 2 ) == 'ія' )
+                               word = word.substr(0, word.length - 2 ) + 'ію';
+                       break;
+       }
+       return word;
+};
index 20ed711..b49823c 100644 (file)
@@ -4,53 +4,58 @@
  */
 ( function( $, mw ) {
 
-var language = {
-       /**
-        * @var data {Object} Language related data (keyed by language,
-        * contains instances of mw.Map).
-        * @example Set data
-        * <code>
-        *     // Override, extend or create the language data object of 'nl'
-        *     mw.language.setData( 'nl', 'myKey', 'My value' );
-        * </code>
-        * @example Get GrammarForms data for language 'nl':
-        * <code>
-        *     var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
-        * </code>
-        */
-       data: {},
+       var language = {
+               /**
+                * @var data {Object} Language related data (keyed by language,
+                * contains instances of mw.Map).
+                * @example Set data
+                * <code>
+                *     // Override, extend or create the language data object of 'nl'
+                *     mw.language.setData( 'nl', 'myKey', 'My value' );
+                *
+                *     // Set multiple values at once
+                *     mw.language.setData( 'nl', { 'foo': 'X', 'bar': 'Y' } );
+                * </code>
+                * @example Get GrammarForms data for language 'nl':
+                * <code>
+                *     var grammarForms = mw.language.getData( 'nl', 'grammarForms' );
+                * </code>
+                */
+               data: {},
 
-       /**
-        * Convenience method for retreiving language data by language code and data key,
-        * covering for the potential inexistance of a data object for this langiage.
-        * @param langCode {String}
-        * @param dataKey {String}
-        * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
-          the specified langCode).
-        */
-       getData: function ( langCode, dataKey ) {
-               var langData = language.data;
-               if ( langData[langCode] instanceof mw.Map ) {
-                       return langData[langCode].get( dataKey );
-               }
-               return undefined;
-       },
+               /**
+                * Convenience method for retreiving language data by language code and data key,
+                * covering for the potential inexistance of a data object for this langiage.
+                * @param langCode {String}
+                * @param dataKey {String}
+                * @return {mixed} Value stored in the mw.Map (or undefined if there is no map for
+                  the specified langCode).
+                */
+               getData: function ( langCode, dataKey ) {
+                       var langData = language.data;
+                       if ( langData[langCode] instanceof mw.Map ) {
+                               return langData[langCode].get( dataKey );
+                       }
+                       return undefined;
+               },
 
-       /**
-        * Convenience method for setting language data by language code and data key.
-        * Creates a data object if there isn't one for the specified language already.
-        * @param langCode {String}
-        * @param dataKey {String}
-        * @param value {mixed}
-        */
-       setData: function ( langCode, dataKey, value ) {
-               var langData = language.data;
-               if ( !( langData[langCode] instanceof mw.Map ) ) {
-                       langData[langCode] = new mw.Map();
+               /**
+                * Convenience method for setting language data by language code and data key.
+                * Creates the data mw.Map if there isn't one for the specified language already.
+                *
+                * @param langCode {String}
+                * @param dataKey {String|Object} Key or object of key/values.
+                * @param value {mixed} Value for dataKey, ignored if dataKey is an object.
+                */
+               setData: function ( langCode, dataKey, value ) {
+                       var langData = language.data;
+                       if ( !( langData[langCode] instanceof mw.Map ) ) {
+                               langData[langCode] = new mw.Map();
+                       }
+                       langData[langCode].set( dataKey, value );
                }
-               langData[langCode].set( dataKey, value );
-       }
-}
-mw.language = language;
+       };
+
+       mw.language = language;
 
 } )( jQuery, mediaWiki );
index 8865d04..04954e8 100644 (file)
@@ -1,21 +1,33 @@
 /*
  * JavaScript for Special:Search
  */
-jQuery( function( $ ) {
+( function( $, mw ) { $( function() {
 
 // Emulate HTML5 autofocus behavior in non HTML5 compliant browsers
 if ( !( 'autofocus' in document.createElement( 'input' ) ) ) {
        $( 'input[autofocus]:first' ).focus();
 }
 
-// Bind check all/none button
+// Create check all/none button
 var $checkboxes = $('#powersearch input[id^=mw-search-ns]');
-$('#mw-search-toggleall').click( function() {
-       $checkboxes.prop("checked", true);
-} );
-$('#mw-search-togglenone').click( function() {
-       $checkboxes.prop("checked", false);
-} );
+$('#mw-search-togglebox').append(
+       $('<label />')
+               .text(mw.msg('powersearch-togglelabel'))
+).append(
+       $('<input type="button" />')
+               .attr('id', 'mw-search-toggleall')
+               .attr('value', mw.msg('powersearch-toggleall'))
+               .click( function() {
+                       $checkboxes.prop('checked', true);
+               } )
+).append(
+       $('<input type="button" />')
+               .attr('id', 'mw-search-togglenone')
+               .attr('value', mw.msg('powersearch-togglenone'))
+               .click( function() {
+                       $checkboxes.prop('checked', false);
+               } )
+);
 
 // Change the header search links to what user entered
 var headerLinks = $('.search-types a');
@@ -34,4 +46,4 @@ $('#searchText, #powerSearchText').change(function() {
        });
 }).trigger('change');
 
-} );
+} ); } )( jQuery, mediaWiki );
index 2957674..e8a0118 100644 (file)
@@ -56,7 +56,7 @@
  *
  */
 
-( function( $, mw ) {
+( function ( mw, $ ) {
 
        /**
         * Function that's useful when constructing the URI string -- we frequently encounter the pattern of
@@ -70,9 +70,8 @@
        function cat( pre, val, post, raw ) {
                if ( val === undefined || val === null || val === '' ) {
                        return '';
-               } else {
-                       return pre + ( raw ? val : mw.Uri.encode( val ) ) + post;
                }
+               return pre + ( raw ? val : mw.Uri.encode( val ) ) + post;
        }
 
        // Regular expressions to parse many common URIs.
@@ -98,7 +97,8 @@
         * We use a factory to inject a document location, for relative URLs, including protocol-relative URLs.
         * so the library is still testable & purely functional.
         */
-       mw.UriRelative = function( documentLocation ) {
+       mw.UriRelative = function ( documentLocation ) {
+               var defaultUri;
 
                /**
                 * Constructs URI object. Throws error if arguments are illegal/impossible, or otherwise don't parse.
 
                        if ( uri !== undefined && uri !== null || uri !== '' ) {
                                if ( typeof uri === 'string' ) {
-                                       this._parse( uri, options );
+                                       this.parse( uri, options );
                                } else if ( typeof uri === 'object' ) {
-                                       var _this = this;
-                                       $.each( properties, function( i, property ) {
-                                               _this[property] = uri[property];
+                                       var uriObj = this;
+                                       $.each( properties, function ( i, property ) {
+                                               uriObj[property] = uri[property];
                                        } );
                                        if ( this.query === undefined ) {
                                                this.query = {};
                 * @param {String} string
                 * @return {String} encoded for URI
                 */
-               Uri.encode = function( s ) {
+               Uri.encode = function ( s ) {
                        return encodeURIComponent( s )
                                .replace( /!/g, '%21').replace( /'/g, '%27').replace( /\(/g, '%28')
                                .replace( /\)/g, '%29').replace( /\*/g, '%2A')
                 * @param {String} string encoded for URI
                 * @return {String} decoded string
                 */
-               Uri.decode = function( s ) {
+               Uri.decode = function ( s ) {
                        return decodeURIComponent( s.replace( /\+/g, '%20' ) );
                };
 
                         * @param {Object} options
                         * @return {Boolean} success
                         */
-                       _parse: function( str, options ) {
-                               var matches = parser[ options.strictMode ? 'strict' : 'loose' ].exec( str );
-                               var uri = this;
-                               $.each( properties, function( i, property ) {
+                       parse: function ( str, options ) {
+                               var q,
+                                       uri = this,
+                                       matches = parser[ options.strictMode ? 'strict' : 'loose' ].exec( str );
+                               $.each( properties, function ( i, property ) {
                                        uri[ property ] = matches[ i+1 ];
                                } );
 
                                // uri.query starts out as the query string; we will parse it into key-val pairs then make
                                // that object the "query" property.
                                // we overwrite query in uri way to make cloning easier, it can use the same list of properties.
-                               var q = {};
+                               q = {};
                                // using replace to iterate over a string
                                if ( uri.query ) {
                                        uri.query.replace( /(?:^|&)([^&=]*)(?:(=)([^&]*))?/g, function ($0, $1, $2, $3) {
+                                               var k, v;
                                                if ( $1 ) {
-                                                       var k = Uri.decode( $1 );
-                                                       var v = ( $2 === '' || $2 === undefined ) ? null : Uri.decode( $3 );
+                                                       k = Uri.decode( $1 );
+                                                       v = ( $2 === '' || $2 === undefined ) ? null : Uri.decode( $3 );
 
                                                        // If overrideKeys, always (re)set top level value.
                                                        // If not overrideKeys but this key wasn't set before, then we set it as well.
                         * Returns user and password portion of a URI.
                         * @return {String}
                         */
-                       getUserInfo: function() {
+                       getUserInfo: function () {
                                return cat( '', this.user, cat( ':', this.password, '' ) );
                        },
 
                         * Gets host and port portion of a URI.
                         * @return {String}
                         */
-                       getHostPort: function() {
+                       getHostPort: function () {
                                return this.host + cat( ':', this.port, '' );
                        },
 
                         * In most real-world URLs, this is simply the hostname, but it is more general.
                         * @return {String}
                         */
-                       getAuthority: function() {
+                       getAuthority: function () {
                                return cat( '', this.getUserInfo(), '@' ) + this.getHostPort();
                        },
 
                         * Does not preserve the order of arguments passed into the URI. Does handle escaping.
                         * @return {String}
                         */
-                       getQueryString: function() {
+                       getQueryString: function () {
                                var args = [];
-                               $.each( this.query, function( key, val ) {
-                                       var k = Uri.encode( key );
-                                       var vals = val === null ? [ null ] : $.makeArray( val );
-                                       $.each( vals, function( i, v ) {
+                               $.each( this.query, function ( key, val ) {
+                                       var k = Uri.encode( key ),
+                                               vals = val === null ? [ null ] : $.makeArray( val );
+                                       $.each( vals, function ( i, v ) {
                                                args.push( k + ( v === null ? '' : '=' + Uri.encode( v ) ) );
                                        } );
                                } );
                         * Returns everything after the authority section of the URI
                         * @return {String}
                         */
-                       getRelativePath: function() {
+                       getRelativePath: function () {
                                return this.path + cat( '?', this.getQueryString(), '', true ) + cat( '#', this.fragment, '' );
                        },
 
                         * Gets the entire URI string. May not be precisely the same as input due to order of query arguments.
                         * @return {String} the URI string
                         */
-                       toString: function() {
+                       toString: function () {
                                return this.protocol + '://' + this.getAuthority() + this.getRelativePath();
                        },
 
                         * Clone this URI
                         * @return {Object} new URI object with same properties
                         */
-                       clone: function() {
+                       clone: function () {
                                return new Uri( this );
                        },
 
                         * @param {Object} query parameters in key-val form to override or add
                         * @return {Object} this URI object
                         */
-                       extend: function( parameters ) {
+                       extend: function ( parameters ) {
                                $.extend( this.query, parameters );
                                return this;
                        }
                };
 
-               var defaultUri = new Uri( documentLocation );
+               defaultUri = new Uri( documentLocation );
 
                return Uri;     
        };
                mw.Uri = mw.UriRelative( document.location.href );
        }
 
-} )( jQuery, mediaWiki );
+}( mediaWiki, jQuery ) );
index 4c20fad..9202d2e 100644 (file)
                        // Get last match, stop at hash
                        var     re = new RegExp( '^[^#]*[&?]' + $.escapeRE( param ) + '=([^&#]*)' ),
                                m = re.exec( url );
-                       if ( m && m.length > 1 ) {
+                       if ( m ) {
                                // Beware that decodeURIComponent is not required to understand '+'
                                // by spec, as encodeURIComponent does not produce it.
                                return decodeURIComponent( m[1].replace( /\+/g, '%20' ) );
index 9a275be..9dcaf2b 100644 (file)
@@ -79,6 +79,53 @@ abstract class ORMRowTest extends \MediaWikiTestCase {
                return new $class( $this->getTableInstance(), $data, $loadDefaults );
        }
 
+       /**
+        * @since 1.20
+        * @return array
+        */
+       protected function getMockValues() {
+               return array(
+                       'id' => 1,
+                       'str' => 'foobar4645645',
+                       'int' => 42,
+                       'float' => 4.2,
+                       'bool' => true,
+                       'array' => array( 42, 'foobar' ),
+                       'blob' => new stdClass()
+               );
+       }
+
+       /**
+        * @since 1.20
+        * @return array
+        */
+       protected function getMockFields() {
+               $mockValues = $this->getMockValues();
+               $mockFields = array();
+
+               foreach ( $this->getTableInstance()->getFields() as $name => $type ) {
+                       if ( $name !== 'id' ) {
+                               $mockFields[$name] = $mockValues[$type];
+                       }
+               }
+
+               return $mockFields;
+       }
+
+       /**
+        * @since 1.20
+        * @return array of IORMRow
+        */
+       public function instanceProvider() {
+               $instances = array();
+
+               foreach ( $this->constructorTestProvider() as $arguments ) {
+                       $instances[] = array( call_user_func_array( array( $this, 'getRowInstance' ), $arguments ) );
+               }
+
+               return $instances;
+       }
+
        /**
         * @dataProvider constructorTestProvider
         */
@@ -129,6 +176,59 @@ abstract class ORMRowTest extends \MediaWikiTestCase {
                $this->verifyFields( $item, $data );
        }
 
+       /**
+        * @dataProvider instanceProvider
+        */
+       public function testSetField( IORMRow $item ) {
+               foreach ( $this->getMockFields() as $name => $value ) {
+                       $item->setField( $name, $value );
+                       $this->assertEquals( $value, $item->getField( $name ) );
+               }
+       }
+
+       /**
+        * @since 1.20
+        * @param array $expected
+        * @param IORMRow $item
+        */
+       protected function assertFieldValues( array $expected, IORMRow $item ) {
+               foreach ( $expected as $name => $type ) {
+                       if ( $name !== 'id' ) {
+                               $this->assertEquals( $expected[$name], $item->getField( $name ) );
+                       }
+               }
+       }
+
+       /**
+        * @dataProvider instanceProvider
+        */
+       public function testSetFields( IORMRow $item ) {
+               $originalValues = $item->getFields();
+
+               $item->setFields( array(), false );
+
+               foreach ( $item->getTable()->getFields() as $name => $type ) {
+                       $originalHas = array_key_exists( $name, $originalValues );
+                       $newHas = $item->hasField( $name );
+
+                       $this->assertEquals( $originalHas, $newHas );
+
+                       if ( $originalHas && $newHas ) {
+                               $this->assertEquals( $originalValues[$name], $item->getField( $name ) );
+                       }
+               }
+
+               $mockFields = $this->getMockFields();
+
+               $item->setFields( $mockFields, false );
+
+               $this->assertFieldValues( $originalValues, $item );
+
+               $item->setFields( $mockFields, true );
+
+               $this->assertFieldValues( $mockFields, $item );
+       }
+
        // TODO: test all of the methods!
 
 }
\ No newline at end of file
index 01ee4ee..e92b289 100644 (file)
@@ -1,6 +1,6 @@
 <?php
-global $IP;
-require_once( "$IP/maintenance/backupPrefetch.inc" );
+
+require_once dirname( __FILE__ ) . "/../../../maintenance/backupPrefetch.inc";
 
 /**
  * Tests for BaseDump
@@ -150,7 +150,7 @@ class BaseDumpTest extends MediaWikiTestCase {
                $fname = $this->getNewTempFile();
 
                // The header of every prefetch file
-               $header = '<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.6/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.6/ http://www.mediawiki.org/xml/export-0.6.xsd" version="0.6" xml:lang="en">
+               $header = '<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.7/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.7/ http://www.mediawiki.org/xml/export-0.7.xsd" version="0.7" xml:lang="en">
   <siteinfo>
     <sitename>wikisvn</sitename>
     <base>http://localhost/wiki-svn/index.php/Main_Page</base>
@@ -195,8 +195,8 @@ class BaseDumpTest extends MediaWikiTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP1Summary1</comment>
-      <text xml:space="preserve">BackupDumperTestP1Text1</text>
       <sha1>0bolhl6ol7i6x0e7yq91gxgaan39j87</sha1>
+      <text xml:space="preserve">BackupDumperTestP1Text1</text>
     </revision>
   </page>
 ';
@@ -213,8 +213,8 @@ class BaseDumpTest extends MediaWikiTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP2Summary1</comment>
-      <text xml:space="preserve">BackupDumperTestP2Text1</text>
       <sha1>jprywrymfhysqllua29tj3sc7z39dl2</sha1>
+      <text xml:space="preserve">BackupDumperTestP2Text1</text>
     </revision>
     <revision>
       <id>5</id>
@@ -223,8 +223,8 @@ class BaseDumpTest extends MediaWikiTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>BackupDumperTestP2Summary4 extra</comment>
-      <text xml:space="preserve">BackupDumperTestP2Text4 some additional Text</text>
       <sha1>6o1ciaxa6pybnqprmungwofc4lv00wv</sha1>
+      <text xml:space="preserve">BackupDumperTestP2Text4 some additional Text</text>
     </revision>
   </page>
 ';
@@ -240,8 +240,8 @@ class BaseDumpTest extends MediaWikiTestCase {
         <ip>127.0.0.1</ip>
       </contributor>
       <comment>Talk BackupDumperTestP1 Summary1</comment>
-      <text xml:space="preserve">Talk about BackupDumperTestP1 Text1</text>
       <sha1>nktofwzd0tl192k3zfepmlzxoax1lpe</sha1>
+      <text xml:space="preserve">Talk about BackupDumperTestP1 Text1</text>
     </revision>
   </page>
 ';
index edcd834..6cdba85 100644 (file)
@@ -1,7 +1,6 @@
 <?php
-global $IP;
-require_once( "$IP/maintenance/backup.inc" );
-require_once( "$IP/maintenance/backupTextPass.inc" );
+
+require_once dirname( __FILE__ ) . "/../../../maintenance/backupTextPass.inc";
 
 /**
  * Tests for page dumps of BackupDumper
@@ -429,10 +428,10 @@ class TextPassDumperTest extends DumpTestCase {
                if ( $fname === null ) {
                        $fname = $this->getNewTempFile();
                }
-               $header = '<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.6/" '
+               $header = '<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.7/" '
                        . 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
-                       . 'xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.6/ '
-                       . 'http://www.mediawiki.org/xml/export-0.6.xsd" version="0.6" xml:lang="en">
+                       . 'xsi:schemaLocation="http://www.mediawiki.org/xml/export-0.7/ '
+                       . 'http://www.mediawiki.org/xml/export-0.7.xsd" version="0.7" xml:lang="en">
   <siteinfo>
     <sitename>wikisvn</sitename>
     <base>http://localhost/wiki-svn/index.php/Main_Page</base>
index 42a247c..f0689b6 100644 (file)
@@ -1,7 +1,6 @@
 <?php
-global $IP;
-require_once( "$IP/maintenance/fetchText.php" );
 
+require_once dirname( __FILE__ ) . "/../../../maintenance/fetchText.php";
 
 /**
  * Mock for the input/output of FetchText
index 29e7fe6..8635614 100644 (file)
@@ -1,6 +1,6 @@
 <?php
-global $IP;
-require_once( "$IP/maintenance/getSlaveServer.php" );
+
+require_once dirname( __FILE__ ) . "/../../../maintenance/getSlaveServer.php";
 
 /**
  * Tests for getSlaveServer