Merge "Fix various docs and version numbers from 84a2f570"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 30 Jan 2014 03:09:35 +0000 (03:09 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 30 Jan 2014 03:09:35 +0000 (03:09 +0000)
257 files changed:
RELEASE-NOTES-1.23
docs/hooks.txt
includes/AutoLoader.php
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/Exception.php
includes/HttpFunctions.php
includes/Import.php
includes/MWTimestamp.php [new file with mode: 0644]
includes/OutputPage.php
includes/Preferences.php
includes/QueryPage.php
includes/SkinTemplate.php
includes/Timestamp.php [deleted file]
includes/TimestampException.php [new file with mode: 0644]
includes/TitleArray.php
includes/TitleArrayFromResult.php [new file with mode: 0644]
includes/UserArray.php
includes/UserArrayFromResult.php [new file with mode: 0644]
includes/WebRequest.php
includes/Wiki.php
includes/actions/InfoAction.php
includes/config/Config.php [new file with mode: 0644]
includes/config/GlobalConfig.php [new file with mode: 0644]
includes/content/ContentHandler.php
includes/context/ContextSource.php
includes/context/DerivativeContext.php
includes/context/IContextSource.php
includes/context/RequestContext.php
includes/db/DatabasePostgres.php
includes/db/LoadBalancer.php
includes/db/LoadMonitor.php
includes/diff/DifferenceEngine.php
includes/filebackend/SwiftFileBackend.php
includes/filerepo/FileRepo.php
includes/filerepo/ForeignDBRepo.php
includes/filerepo/LocalRepo.php
includes/htmlform/HTMLForm.php
includes/installer/PostgresUpdater.php
includes/job/Job.php
includes/job/JobQueueDB.php
includes/job/JobQueueGroup.php
includes/job/JobQueueRedis.php
includes/job/JobSpecification.php [new file with mode: 0644]
includes/job/jobs/RefreshLinksJob.php
includes/job/utils/BacklinkJobUtils.php
includes/logging/LogEventsList.php
includes/media/Bitmap.php
includes/media/DjVu.php
includes/media/ImageHandler.php
includes/objectcache/SqlBagOStuff.php
includes/parser/ParserOptions.php
includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php
includes/search/SearchEngine.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialContributions.php
includes/specials/SpecialDiff.php [new file with mode: 0644]
includes/specials/SpecialMostlinkedcategories.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialSearch.php
includes/specials/SpecialWantedcategories.php
includes/specials/SpecialWatchlist.php
includes/templates/Usercreate.php
includes/templates/Userlogin.php
includes/upload/UploadStash.php
languages/messages/MessagesAf.php
languages/messages/MessagesAn.php
languages/messages/MessagesAr.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAz.php
languages/messages/MessagesAzb.php
languages/messages/MessagesBa.php
languages/messages/MessagesBcc.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCe.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCo.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEgl.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFrr.php
languages/messages/MessagesGl.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHil.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKm.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesLad.php
languages/messages/MessagesLb.php
languages/messages/MessagesLi.php
languages/messages/MessagesLrc.php
languages/messages/MessagesLt.php
languages/messages/MessagesLv.php
languages/messages/MessagesLzh.php
languages/messages/MessagesMai.php
languages/messages/MessagesMg.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnb.php
languages/messages/MessagesPrg.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesRm.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesScn.php
languages/messages/MessagesSh.php
languages/messages/MessagesSi.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesStq.php
languages/messages/MessagesSv.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTe.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTr.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesUz.php
languages/messages/MessagesVec.php
languages/messages/MessagesVep.php
languages/messages/MessagesVi.php
languages/messages/MessagesWo.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/dictionary/mediawiki.dic
maintenance/eval.php
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/postgres/tables.sql
resources/Resources.php
resources/jquery/jquery.fullscreen.js [new file with mode: 0644]
resources/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/mediawiki.language/languages/he.js
resources/mediawiki.less/mediawiki.mixins.less
resources/mediawiki.special/mediawiki.special.preferences.js
resources/mediawiki.special/mediawiki.special.userlogin.login.css
resources/mediawiki.ui/components/default/buttons.less
resources/mediawiki.ui/mixins/effects.less
resources/mediawiki.ui/mixins/forms.less
resources/mediawiki.ui/settings/colors.less
resources/mediawiki.ui/settings/typography.less
resources/mediawiki/mediawiki.feedback.js
resources/mediawiki/mediawiki.inspect.js
resources/mediawiki/mediawiki.jqueryMsg.js
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.searchSuggest.js
skins/CologneBlue.php
skins/cologneblue/screen.css
skins/common/IE80Fixes.css [deleted file]
skins/common/commonContent.css
skins/common/commonElements.css
skins/common/config.css
skins/modern/main.css
skins/vector/components/watchstar.less
skins/vector/images/unwatch-icon-hl.png [new file with mode: 0644]
skins/vector/images/unwatch-icon-hl.svg [new file with mode: 0644]
skins/vector/images/unwatch-icon.png [new file with mode: 0644]
skins/vector/images/unwatch-icon.svg [new file with mode: 0644]
skins/vector/images/watch-icon-hl.png [new file with mode: 0644]
skins/vector/images/watch-icon-hl.svg [new file with mode: 0644]
skins/vector/images/watch-icon-loading.gif [deleted file]
skins/vector/images/watch-icon-loading.png [new file with mode: 0644]
skins/vector/images/watch-icon-loading.svg [new file with mode: 0644]
skins/vector/images/watch-icon.png [new file with mode: 0644]
skins/vector/images/watch-icon.svg [new file with mode: 0644]
skins/vector/images/watch-icons.png [deleted file]
tests/TestsAutoLoader.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/MWTimestampTest.php [new file with mode: 0644]
tests/phpunit/includes/StatusTest.php
tests/phpunit/includes/TimestampTest.php [deleted file]
tests/phpunit/includes/TitleArrayFromResultTest.php [new file with mode: 0644]
tests/phpunit/includes/UserArrayFromResultTest.php [new file with mode: 0644]
tests/phpunit/includes/config/GlobalConfigTest.php [new file with mode: 0644]
tests/phpunit/includes/jobqueue/RefreshLinksPartitionTest.php
tests/phpunit/includes/specials/SpecialRecentchangesTest.php
tests/phpunit/suite.xml

index fdefa0b..528c401 100644 (file)
@@ -21,14 +21,17 @@ production.
 * $wgSquidServersNoPurge now supports the use of Classless Inter-Domain
   Routing (CIDR) notation to specify contiguous blocks of IPv4 and/or IPv6
   addresses that should be trusted to provide X-Forwarded-For headers.
-* Preferences 'watchcreations' and 'watchdefault' ("Add pages I create and files
-  I upload to my watchlist", "Add pages and files I edit to my watchlist") are
-  now enabled by default.
+* Preferences 'watchcreations', 'watchdefault', 'enotifwatchlistpages' ("Add
+  pages I create and files I upload to my watchlist", "Add pages and files I
+  edit to my watchlist", "Email me when a page or file on my watchlist is
+  changed") are now enabled by default. In addition new user accounts' personal
+  and talk pages are now watched by them by default.
 * $wgLBFactoryConf: Class names have had underscores removed. The configuration
   should be updated if LBFactory_Simple or LBFactory_Multi is configured.
 * $wgPasswordSenderName has been deprecated. To set a custom mailer name,
   the system message 'emailsender' should be modified (default: "{{SITENAME}}").
 * $wgDBAhandler was removed as the only class using it was also removed
+* The 'max threads' setting was removed from $wgDBservers.
 
 === New features in 1.23 ===
 * ResourceLoader can utilize the Web Storage API to cache modules client-side.
@@ -75,6 +78,10 @@ production.
 * WikitextContent will now render redirects with the expected "redirect"
   header, rather than as an ordered list. Code calling Article::viewRedirect
   can probably be changed to no longer special-case redirects.
+* [[Special:Diff]] was added, allowing users to create internal links to
+  revision comparison pages using syntax such as [[Special:Diff/12345]],
+  [[Special:Diff/12345/prev]] or [[Special:Diff/12345/98765]].
+* New user accounts' personal and talk pages are now watched by them by default.
 
 === Bug fixes in 1.23 ===
 * (bug 41759) The "updated since last visit" markers (on history pages, recent
@@ -107,6 +114,7 @@ production.
   compiled without support for MySQL yet with support for another DBMS.
 * (bug 56199) Raw option of parser functions must now match complete word,
   to take effect.
+* (bug 60543) Special:PrefixIndex forgot stripprefix=1 for "Next page" link
 
 === Web API changes in 1.23 ===
 * (bug 54884) action=parse&prop=categories now indicates hidden and missing
@@ -193,9 +201,12 @@ changes to languages because of Bugzilla reports.
 * (bug 52811) Preference "Enable section editing via [edit] links" was removed.
 * (bug 52813) Preference "Show table of contents (for pages with more than
   3 headings)" was removed.
+* (bug 52810) Preference "Justify paragraphs" was removed.
+* OutputPage::showErrorPage raises a notice if arguments are incoherent.
 
 ==== Removed classes ====
 * FakeMemCachedClient (deprecated in 1.18)
+* RdfMetaData (unused)
 * TitleDependency (unused)
 * TitleListDependency (unused)
 * WikiError (deprecated in 1.17)
index 4a43359..cfee2eb 100644 (file)
@@ -847,6 +847,15 @@ content model name, but no entry for that model exists in $wgContentHandlers.
 $modeName: the requested content model name
 &$handler: set this to a ContentHandler object, if desired.
 
+'ContentModelCanBeUsedOn': Called to determine whether that content model can
+be used on a given page. This is especially useful to prevent some content models
+to be used in some special location.
+$contentModel: ID of the content model in question
+$title: the Title in question.
+&$ok: Output parameter, whether it is OK to use $contentModel on $title.
+Handler functions that modify $ok should generally return false to prevent further
+hooks from further modifying $ok.
+
 'ConvertContent': Called by AbstractContent::convert when a conversion to another
 content model is requested.
 $content: The Content object to be converted.
@@ -899,8 +908,9 @@ $new: the ?new= param value from the url
 
 'DiffRevisionTools': Override or extend the revision tools available from the
 diff view, i.e. undo, etc.
-$rev: Revision object
+$newRev: Revision object of the "new" revision
 &$links: Array of HTML links
+$oldRev: Revision object of the "old" revision (may be null)
 
 'DiffViewHeader': Called before diff display
 $diff: DifferenceEngine object that's calling
index 91fa55f..0f1cded 100644 (file)
@@ -211,18 +211,18 @@ $wgAutoloadLocalClasses = array(
        'StubObject' => 'includes/StubObject.php',
        'StubUserLang' => 'includes/StubObject.php',
        'TablePager' => 'includes/Pager.php',
-       'MWTimestamp' => 'includes/Timestamp.php',
-       'TimestampException' => 'includes/Timestamp.php',
+       'MWTimestamp' => 'includes/MWTimestamp.php',
+       'TimestampException' => 'includes/TimestampException.php',
        'Title' => 'includes/Title.php',
        'TitleArray' => 'includes/TitleArray.php',
-       'TitleArrayFromResult' => 'includes/TitleArray.php',
+       'TitleArrayFromResult' => 'includes/TitleArrayFromResult.php',
        'ThrottledError' => 'includes/Exception.php',
        'UnlistedSpecialPage' => 'includes/specialpage/UnlistedSpecialPage.php',
        'UploadSourceAdapter' => 'includes/Import.php',
        'UppercaseCollation' => 'includes/Collation.php',
        'User' => 'includes/User.php',
        'UserArray' => 'includes/UserArray.php',
-       'UserArrayFromResult' => 'includes/UserArray.php',
+       'UserArrayFromResult' => 'includes/UserArrayFromResult.php',
        'UserBlockedError' => 'includes/Exception.php',
        'UserNotLoggedIn' => 'includes/Exception.php',
        'UserCache' => 'includes/cache/UserCache.php',
@@ -405,6 +405,10 @@ $wgAutoloadLocalClasses = array(
        'RedisConnectionPool' => 'includes/clientpool/RedisConnectionPool.php',
        'RedisConnRef' => 'includes/clientpool/RedisConnectionPool.php',
 
+       # includes/config
+       'Config' => 'includes/config/Config.php',
+       'GlobalConfig' => 'includes/config/GlobalConfig.php',
+
        # includes/content
        'AbstractContent' => 'includes/content/AbstractContent.php',
        'ContentHandler' => 'includes/content/ContentHandler.php',
@@ -636,6 +640,7 @@ $wgAutoloadLocalClasses = array(
        'WebInstallerPage' => 'includes/installer/WebInstallerPage.php',
 
        # includes/job
+       'IJobSpecification' => 'includes/job/JobSpecification.php',
        'Job' => 'includes/job/Job.php',
        'JobQueue' => 'includes/job/JobQueue.php',
        'JobQueueAggregator' => 'includes/job/aggregator/JobQueueAggregator.php',
@@ -647,6 +652,7 @@ $wgAutoloadLocalClasses = array(
        'JobQueueGroup' => 'includes/job/JobQueueGroup.php',
        'JobQueueFederated' => 'includes/job/JobQueueFederated.php',
        'JobQueueRedis' => 'includes/job/JobQueueRedis.php',
+       'JobSpecification' => 'includes/job/JobSpecification.php',
 
        # includes/job/jobs
        'DoubleRedirectJob' => 'includes/job/jobs/DoubleRedirectJob.php',
@@ -965,6 +971,7 @@ $wgAutoloadLocalClasses = array(
        'SpecialChangePassword' => 'includes/specials/SpecialChangePassword.php',
        'SpecialComparePages' => 'includes/specials/SpecialComparePages.php',
        'SpecialContributions' => 'includes/specials/SpecialContributions.php',
+       'SpecialDiff' => 'includes/specials/SpecialDiff.php',
        'SpecialEditWatchlist' => 'includes/specials/SpecialEditWatchlist.php',
        'SpecialEmailUser' => 'includes/specials/SpecialEmailuser.php',
        'SpecialExpandTemplates' => 'includes/specials/SpecialExpandTemplates.php',
index 9264947..326a1c2 100644 (file)
@@ -59,6 +59,13 @@ if ( !defined( 'MEDIAWIKI' ) ) {
  */
 $wgConf = new SiteConfiguration;
 
+/**
+ * Class name to use for accessing Config.
+ * Currently only 'GlobalConfig' is available
+ * @since 1.23
+ */
+$wgConfigClass = 'GlobalConfig';
+
 /**
  * MediaWiki version number
  * @since 1.2
@@ -1647,7 +1654,6 @@ $wgSharedTables = array( 'user', 'user_properties' );
  *                                    if available
  *
  *   - max lag:     (optional) Maximum replication lag before a slave will taken out of rotation
- *   - max threads: (optional) Maximum number of running threads
  *
  *   These and any other user-defined properties will be assigned to the mLBInfo member
  *   variable of the Database object.
@@ -3981,7 +3987,7 @@ $wgDefaultUserOptions = array(
        'enotifminoredits' => 0,
        'enotifrevealaddr' => 0,
        'enotifusertalkpages' => 1,
-       'enotifwatchlistpages' => 0,
+       'enotifwatchlistpages' => 1,
        'extendwatchlist' => 0,
        'fancysig' => 0,
        'forceeditsummary' => 0,
@@ -3989,7 +3995,6 @@ $wgDefaultUserOptions = array(
        'hideminor' => 0,
        'hidepatrolled' => 0,
        'imagesize' => 2,
-       'justify' => 0,
        'math' => 1,
        'minordefault' => 0,
        'newpageshidepatrolled' => 0,
index 015ea9c..19801ec 100644 (file)
@@ -165,11 +165,6 @@ define( 'ALF_NO_BLOCK_LOCK', 8 );
  * Date format selectors; used in user preference storage and by
  * Language::date() and co.
  */
-/*define( 'MW_DATE_DEFAULT', '0' );
-define( 'MW_DATE_MDY', '1' );
-define( 'MW_DATE_DMY', '2' );
-define( 'MW_DATE_YMD', '3' );
-define( 'MW_DATE_ISO', 'ISO 8601' );*/
 define( 'MW_DATE_DEFAULT', 'default' );
 define( 'MW_DATE_MDY', 'mdy' );
 define( 'MW_DATE_DMY', 'dmy' );
index 7115eab..fbfe3ed 100644 (file)
@@ -930,10 +930,6 @@ class EditPage {
                                $undo = $wgRequest->getInt( 'undo' );
 
                                if ( $undo > 0 && $undoafter > 0 ) {
-                                       if ( $undo < $undoafter ) {
-                                               # If they got undoafter and undo round the wrong way, switch them
-                                               list( $undo, $undoafter ) = array( $undoafter, $undo );
-                                       }
 
                                        $undorev = Revision::newFromId( $undo );
                                        $oldrev = Revision::newFromId( $undoafter );
@@ -942,8 +938,6 @@ class EditPage {
                                        # the revisions exist and they were not deleted.
                                        # Otherwise, $content will be left as-is.
                                        if ( !is_null( $undorev ) && !is_null( $oldrev ) &&
-                                               $undorev->getPage() == $oldrev->getPage() &&
-                                               $undorev->getPage() == $this->mTitle->getArticleID() &&
                                                !$undorev->isDeleted( Revision::DELETED_TEXT ) &&
                                                !$oldrev->isDeleted( Revision::DELETED_TEXT ) ) {
 
@@ -1993,9 +1987,6 @@ class EditPage {
                        $wgOut->addModules( 'mediawiki.action.edit.editWarning' );
                }
 
-               // Bug #19334: textarea jumps when editing articles in IE8
-               $wgOut->addStyle( 'common/IE80Fixes.css', 'screen', 'IE 8' );
-
                $wgOut->setRobotPolicy( 'noindex,nofollow' );
 
                # Enabled article-related sidebar, toplinks, etc.
@@ -3319,7 +3310,7 @@ HTML
         */
        static function getEditToolbar() {
                global $wgStylePath, $wgContLang, $wgLang, $wgOut;
-               global $wgUseTeX, $wgEnableUploads, $wgForeignFileRepos;
+               global $wgEnableUploads, $wgForeignFileRepos;
 
                $imagesAvailable = $wgEnableUploads || count( $wgForeignFileRepos );
 
@@ -3400,7 +3391,7 @@ HTML
                                'tip'    => wfMessage( 'media_tip' )->text(),
                                'key'    => 'M'
                        ) : false,
-                       $wgUseTeX ? array(
+                       class_exists( 'MathRenderer' ) ? array(
                                'image'  => $wgLang->getImageFile( 'button-math' ),
                                'id'     => 'mw-editbutton-math',
                                'open'   => "<math>",
index 5377add..d8c7b6a 100644 (file)
@@ -317,7 +317,7 @@ class ErrorPageError extends MWException {
         * @param string|Message $msg Message key (string) for error text, or a Message object
         * @param array $params with parameters to wfMessage()
         */
-       function __construct( $title, $msg, $params = null ) {
+       function __construct( $title, $msg, $params = array() ) {
                $this->title = $title;
                $this->msg = $msg;
                $this->params = $params;
@@ -356,7 +356,7 @@ class BadTitleError extends ErrorPageError {
         * @param string|Message $msg A message key (default: 'badtitletext')
         * @param array $params parameter to wfMessage()
         */
-       function __construct( $msg = 'badtitletext', $params = null ) {
+       function __construct( $msg = 'badtitletext', $params = array() ) {
                parent::__construct( 'badtitle', $msg, $params );
        }
 
@@ -426,7 +426,7 @@ class ReadOnlyError extends ErrorPageError {
                parent::__construct(
                        'readonly',
                        'readonlytext',
-                       wfReadOnlyReason()
+                       wfReadOnlyReason() ?: array()
                );
        }
 }
@@ -501,12 +501,12 @@ class UserNotLoggedIn extends ErrorPageError {
         * @param string $titleMsg A message key to set the page title.
         *        Optional, default: 'exception-nologin'
         * @param array $params Parameters to wfMessage().
-        *        Optional, default: null
+        *        Optional, default: array()
         */
        public function __construct(
                $reasonMsg = 'exception-nologin-text',
                $titleMsg = 'exception-nologin',
-               $params = null
+               $params = array()
        ) {
                parent::__construct( $titleMsg, $reasonMsg, $params );
        }
index 9093c83..2536de1 100644 (file)
@@ -350,13 +350,6 @@ class MWHttpRequest {
                }
        }
 
-       /**
-        * Set the referrer header
-        */
-       public function setReferer( $url ) {
-               $this->setHeader( 'Referer', $url );
-       }
-
        /**
         * Set the user agent
         * @param $UA string
@@ -441,8 +434,6 @@ class MWHttpRequest {
         * @return Status
         */
        public function execute() {
-               global $wgTitle;
-
                wfProfileIn( __METHOD__ );
 
                $this->content = "";
@@ -451,10 +442,6 @@ class MWHttpRequest {
                        $this->headersOnly = true;
                }
 
-               if ( is_object( $wgTitle ) && !isset( $this->reqHeaders['Referer'] ) ) {
-                       $this->setReferer( wfExpandUrl( $wgTitle->getFullURL(), PROTO_CURRENT ) );
-               }
-
                $this->proxySetup(); // set up any proxy as needed
 
                if ( !$this->callback ) {
@@ -751,10 +738,6 @@ class CurlHttpRequest extends MWHttpRequest {
                $this->curlOptions[CURLOPT_MAXREDIRS] = $this->maxRedirects;
                $this->curlOptions[CURLOPT_ENCODING] = ""; # Enable compression
 
-               /* not sure these two are actually necessary */
-               if ( isset( $this->reqHeaders['Referer'] ) ) {
-                       $this->curlOptions[CURLOPT_REFERER] = $this->reqHeaders['Referer'];
-               }
                $this->curlOptions[CURLOPT_USERAGENT] = $this->reqHeaders['User-Agent'];
 
                $this->curlOptions[CURLOPT_SSL_VERIFYHOST] = $this->sslVerifyHost ? 2 : 0;
index 721b94b..e447e47 100644 (file)
@@ -252,6 +252,16 @@ class WikiImporter {
         * @return bool
         */
        public function importRevision( $revision ) {
+               if ( !$revision->getContent()->getContentHandler()->canBeUsedOn( $revision->getTitle() ) ) {
+                       $this->notice( 'import-error-bad-location',
+                               $revision->getTitle()->getPrefixedText(),
+                               $revision->getID(),
+                               $revision->getModel(),
+                               $revision->getFormat() );
+
+                       return false;
+               }
+
                try {
                        $dbw = wfGetDB( DB_MASTER );
                        return $dbw->deadlockLoop( array( $revision, 'importOldRevision' ) );
@@ -262,6 +272,8 @@ class WikiImporter {
                                $revision->getModel(),
                                $revision->getFormat() );
                }
+
+               return false;
        }
 
        /**
diff --git a/includes/MWTimestamp.php b/includes/MWTimestamp.php
new file mode 100644 (file)
index 0000000..9de2c0a
--- /dev/null
@@ -0,0 +1,391 @@
+<?php
+/**
+ * Creation and parsing of MW-style timestamps.
+ *
+ * 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
+ * @since 1.20
+ * @author Tyler Romeo, 2012
+ */
+
+/**
+ * Library for creating and parsing MW-style timestamps. Based on the JS
+ * library that does the same thing.
+ *
+ * @since 1.20
+ */
+class MWTimestamp {
+       /**
+        * Standard gmdate() formats for the different timestamp types.
+        */
+       private static $formats = array(
+               TS_UNIX => 'U',
+               TS_MW => 'YmdHis',
+               TS_DB => 'Y-m-d H:i:s',
+               TS_ISO_8601 => 'Y-m-d\TH:i:s\Z',
+               TS_ISO_8601_BASIC => 'Ymd\THis\Z',
+               TS_EXIF => 'Y:m:d H:i:s', // This shouldn't ever be used, but is included for completeness
+               TS_RFC2822 => 'D, d M Y H:i:s',
+               TS_ORACLE => 'd-m-Y H:i:s.000000', // Was 'd-M-y h.i.s A' . ' +00:00' before r51500
+               TS_POSTGRES => 'Y-m-d H:i:s',
+       );
+
+       /**
+        * The actual timestamp being wrapped (DateTime object).
+        * @var DateTime
+        */
+       public $timestamp;
+
+       /**
+        * Make a new timestamp and set it to the specified time,
+        * or the current time if unspecified.
+        *
+        * @since 1.20
+        *
+        * @param bool|string $timestamp Timestamp to set, or false for current time
+        */
+       public function __construct( $timestamp = false ) {
+               $this->setTimestamp( $timestamp );
+       }
+
+       /**
+        * Set the timestamp to the specified time, or the current time if unspecified.
+        *
+        * Parse the given timestamp into either a DateTime object or a Unix timestamp,
+        * and then store it.
+        *
+        * @since 1.20
+        *
+        * @param string|bool $ts Timestamp to store, or false for now
+        * @throws TimestampException
+        */
+       public function setTimestamp( $ts = false ) {
+               $da = array();
+               $strtime = '';
+
+               if ( !$ts || $ts === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0" ) { // We want to catch 0, '', null... but not date strings starting with a letter.
+                       $uts = time();
+                       $strtime = "@$uts";
+               } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
+                       # TS_DB
+               } elseif ( preg_match( '/^(\d{4}):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
+                       # TS_EXIF
+               } elseif ( preg_match( '/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/D', $ts, $da ) ) {
+                       # TS_MW
+               } elseif ( preg_match( '/^-?\d{1,13}$/D', $ts ) ) {
+                       # TS_UNIX
+                       $strtime = "@$ts"; // http://php.net/manual/en/datetime.formats.compound.php
+               } elseif ( preg_match( '/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}.\d{6}$/', $ts ) ) {
+                       # TS_ORACLE // session altered to DD-MM-YYYY HH24:MI:SS.FF6
+                       $strtime = preg_replace( '/(\d\d)\.(\d\d)\.(\d\d)(\.(\d+))?/', "$1:$2:$3",
+                                       str_replace( '+00:00', 'UTC', $ts ) );
+               } elseif ( preg_match( '/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
+                       # TS_ISO_8601
+               } elseif ( preg_match( '/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
+                       #TS_ISO_8601_BASIC
+               } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d*[\+\- ](\d\d)$/', $ts, $da ) ) {
+                       # TS_POSTGRES
+               } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d* GMT$/', $ts, $da ) ) {
+                       # TS_POSTGRES
+               } elseif ( preg_match( '/^[ \t\r\n]*([A-Z][a-z]{2},[ \t\r\n]*)?' . # Day of week
+                                                               '\d\d?[ \t\r\n]*[A-Z][a-z]{2}[ \t\r\n]*\d{2}(?:\d{2})?' .  # dd Mon yyyy
+                                                               '[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d/S', $ts ) ) { # hh:mm:ss
+                       # TS_RFC2822, accepting a trailing comment. See http://www.squid-cache.org/mail-archive/squid-users/200307/0122.html / r77171
+                       # The regex is a superset of rfc2822 for readability
+                       $strtime = strtok( $ts, ';' );
+               } elseif ( preg_match( '/^[A-Z][a-z]{5,8}, \d\d-[A-Z][a-z]{2}-\d{2} \d\d:\d\d:\d\d/', $ts ) ) {
+                       # TS_RFC850
+                       $strtime = $ts;
+               } elseif ( preg_match( '/^[A-Z][a-z]{2} [A-Z][a-z]{2} +\d{1,2} \d\d:\d\d:\d\d \d{4}/', $ts ) ) {
+                       # asctime
+                       $strtime = $ts;
+               } else {
+                       throw new TimestampException( __METHOD__ . ": Invalid timestamp - $ts" );
+               }
+
+               if ( !$strtime ) {
+                       $da = array_map( 'intval', $da );
+                       $da[0] = "%04d-%02d-%02dT%02d:%02d:%02d.00+00:00";
+                       $strtime = call_user_func_array( "sprintf", $da );
+               }
+
+               try {
+                       $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
+               } catch ( Exception $e ) {
+                       throw new TimestampException( __METHOD__ . ': Invalid timestamp format.', $e->getCode(), $e );
+               }
+
+               if ( $final === false ) {
+                       throw new TimestampException( __METHOD__ . ': Invalid timestamp format.' );
+               }
+               $this->timestamp = $final;
+       }
+
+       /**
+        * Get the timestamp represented by this object in a certain form.
+        *
+        * Convert the internal timestamp to the specified format and then
+        * return it.
+        *
+        * @since 1.20
+        *
+        * @param int $style Constant Output format for timestamp
+        * @throws TimestampException
+        * @return string The formatted timestamp
+        */
+       public function getTimestamp( $style = TS_UNIX ) {
+               if ( !isset( self::$formats[$style] ) ) {
+                       throw new TimestampException( __METHOD__ . ': Illegal timestamp output type.' );
+               }
+
+               $output = $this->timestamp->format( self::$formats[$style] );
+
+               if ( ( $style == TS_RFC2822 ) || ( $style == TS_POSTGRES ) ) {
+                       $output .= ' GMT';
+               }
+
+               return $output;
+       }
+
+       /**
+        * Get the timestamp in a human-friendly relative format, e.g., "3 days ago".
+        *
+        * Determine the difference between the timestamp and the current time, and
+        * generate a readable timestamp by returning "<N> <units> ago", where the
+        * largest possible unit is used.
+        *
+        * @since 1.20
+        * @since 1.22 Uses Language::getHumanTimestamp to produce the timestamp
+        *
+        * @param MWTimestamp|null $relativeTo The base timestamp to compare to (defaults to now)
+        * @param User|null $user User the timestamp is being generated for (or null to use main context's user)
+        * @param Language|null $lang Language to use to make the human timestamp (or null to use main context's language)
+        * @return string Formatted timestamp
+        */
+       public function getHumanTimestamp( MWTimestamp $relativeTo = null, User $user = null, Language $lang = null ) {
+               if ( $relativeTo === null ) {
+                       $relativeTo = new self();
+               }
+               if ( $user === null ) {
+                       $user = RequestContext::getMain()->getUser();
+               }
+               if ( $lang === null ) {
+                       $lang = RequestContext::getMain()->getLanguage();
+               }
+
+               // Adjust for the user's timezone.
+               $offsetThis = $this->offsetForUser( $user );
+               $offsetRel = $relativeTo->offsetForUser( $user );
+
+               $ts = '';
+               if ( wfRunHooks( 'GetHumanTimestamp', array( &$ts, $this, $relativeTo, $user, $lang ) ) ) {
+                       $ts = $lang->getHumanTimestamp( $this, $relativeTo, $user );
+               }
+
+               // Reset the timezone on the objects.
+               $this->timestamp->sub( $offsetThis );
+               $relativeTo->timestamp->sub( $offsetRel );
+
+               return $ts;
+       }
+
+       /**
+        * Adjust the timestamp depending on the given user's preferences.
+        *
+        * @since 1.22
+        *
+        * @param User $user User to take preferences from
+        * @param[out] MWTimestamp $ts Timestamp to adjust
+        * @return DateInterval Offset that was applied to the timestamp
+        */
+       public function offsetForUser( User $user ) {
+               global $wgLocalTZoffset;
+
+               $option = $user->getOption( 'timecorrection' );
+               $data = explode( '|', $option, 3 );
+
+               // First handle the case of an actual timezone being specified.
+               if ( $data[0] == 'ZoneInfo' ) {
+                       try {
+                               $tz = new DateTimeZone( $data[2] );
+                       } catch ( Exception $e ) {
+                               $tz = false;
+                       }
+
+                       if ( $tz ) {
+                               $this->timestamp->setTimezone( $tz );
+                               return new DateInterval( 'P0Y' );
+                       } else {
+                               $data[0] = 'Offset';
+                       }
+               }
+
+               $diff = 0;
+               // If $option is in fact a pipe-separated value, check the
+               // first value.
+               if ( $data[0] == 'System' ) {
+                       // First value is System, so use the system offset.
+                       if ( isset( $wgLocalTZoffset ) ) {
+                               $diff = $wgLocalTZoffset;
+                       }
+               } elseif ( $data[0] == 'Offset' ) {
+                       // First value is Offset, so use the specified offset
+                       $diff = (int)$data[1];
+               } else {
+                       // $option actually isn't a pipe separated value, but instead
+                       // a comma separated value. Isn't MediaWiki fun?
+                       $data = explode( ':', $option );
+                       if ( count( $data ) >= 2 ) {
+                               // Combination hours and minutes.
+                               $diff = abs( (int)$data[0] ) * 60 + (int)$data[1];
+                               if ( (int)$data[0] < 0 ) {
+                                       $diff *= -1;
+                               }
+                       } else {
+                               // Just hours.
+                               $diff = (int)$data[0] * 60;
+                       }
+               }
+
+               $interval = new DateInterval( 'PT' . abs( $diff ) . 'M' );
+               if ( $diff < 1 ) {
+                       $interval->invert = 1;
+               }
+
+               $this->timestamp->add( $interval );
+               return $interval;
+       }
+
+       /**
+        * Generate a purely relative timestamp, i.e., represent the time elapsed between
+        * the given base timestamp and this object.
+        *
+        * @param MWTimestamp $relativeTo Relative base timestamp (defaults to now)
+        * @param User $user Use to use offset for
+        * @param Language $lang Language to use
+        * @param array $chosenIntervals Intervals to use to represent it
+        * @return string Relative timestamp
+        */
+       public function getRelativeTimestamp(
+               MWTimestamp $relativeTo = null,
+               User $user = null,
+               Language $lang = null,
+               array $chosenIntervals = array()
+       ) {
+               if ( $relativeTo === null ) {
+                       $relativeTo = new self;
+               }
+               if ( $user === null ) {
+                       $user = RequestContext::getMain()->getUser();
+               }
+               if ( $lang === null ) {
+                       $lang = RequestContext::getMain()->getLanguage();
+               }
+
+               $ts = '';
+               $diff = $this->diff( $relativeTo );
+               if ( wfRunHooks( 'GetRelativeTimestamp', array( &$ts, &$diff, $this, $relativeTo, $user, $lang ) ) ) {
+                       $seconds = ( ( ( $diff->days * 24 + $diff->h ) * 60 + $diff->i ) * 60 + $diff->s );
+                       $ts = wfMessage( 'ago', $lang->formatDuration( $seconds, $chosenIntervals ) )
+                               ->inLanguage( $lang )
+                               ->text();
+               }
+
+               return $ts;
+       }
+
+       /**
+        * @since 1.20
+        *
+        * @return string
+        */
+       public function __toString() {
+               return $this->getTimestamp();
+       }
+
+       /**
+        * Calculate the difference between two MWTimestamp objects.
+        *
+        * @since 1.22
+        * @param MWTimestamp $relativeTo Base time to calculate difference from
+        * @return DateInterval|bool The DateInterval object representing the difference between the two dates or false on failure
+        */
+       public function diff( MWTimestamp $relativeTo ) {
+               return $this->timestamp->diff( $relativeTo->timestamp );
+       }
+
+       /**
+        * Set the timezone of this timestamp to the specified timezone.
+        *
+        * @since 1.22
+        * @param String $timezone Timezone to set
+        * @throws TimestampException
+        */
+       public function setTimezone( $timezone ) {
+               try {
+                       $this->timestamp->setTimezone( new DateTimeZone( $timezone ) );
+               } catch ( Exception $e ) {
+                       throw new TimestampException( __METHOD__ . ': Invalid timezone.', $e->getCode(), $e );
+               }
+       }
+
+       /**
+        * Get the timezone of this timestamp.
+        *
+        * @since 1.22
+        * @return DateTimeZone The timezone
+        */
+       public function getTimezone() {
+               return $this->timestamp->getTimezone();
+       }
+
+       /**
+        * Format the timestamp in a given format.
+        *
+        * @since 1.22
+        * @param string $format Pattern to format in
+        * @return string The formatted timestamp
+        */
+       public function format( $format ) {
+               return $this->timestamp->format( $format );
+       }
+
+       /**
+        * Get a timestamp instance in the server local timezone ($wgLocaltimezone)
+        *
+        * @since 1.22
+        * @param bool|string $ts Timestamp to set, or false for current time
+        * @return MWTimestamp the local instance
+        */
+       public static function getLocalInstance( $ts = false ) {
+               global $wgLocaltimezone;
+               $timestamp = new self( $ts );
+               $timestamp->setTimezone( $wgLocaltimezone );
+               return $timestamp;
+       }
+
+       /**
+        * Get a timestamp instance in GMT
+        *
+        * @since 1.22
+        * @param bool|string $ts Timestamp to set, or false for current time
+        * @return MWTimestamp the instance
+        */
+       public static function getInstance( $ts = false ) {
+               return new self( $ts );
+       }
+}
index 9866e2c..6d06693 100644 (file)
@@ -2130,9 +2130,10 @@ class OutputPage extends ContextSource {
        /**
         * Output a standard error page
         *
+        * showErrorPage( 'titlemsg', 'pagetextmsg' );
         * showErrorPage( 'titlemsg', 'pagetextmsg', array( 'param1', 'param2' ) );
         * showErrorPage( 'titlemsg', $messageObject );
-        * showErrorPage( $titleMessageObj, $messageObject );
+        * showErrorPage( $titleMessageObject, $messageObject );
         *
         * @param $title Mixed: message key (string) for page title, or a Message object
         * @param $msg Mixed: message key (string) for page text, or a Message object
@@ -2146,6 +2147,9 @@ class OutputPage extends ContextSource {
                $this->prepareErrorPage( $title );
 
                if ( $msg instanceof Message ) {
+                       if ( $params !== array() ) {
+                               trigger_error( 'Argument ignored: $params. The message parameters argument is discarded when the $msg argument is a Message object instead of a string.', E_USER_NOTICE );
+                       }
                        $this->addHTML( $msg->parseAsBlock() );
                } else {
                        $this->addWikiMsgArray( $msg, $params );
index 04e9114..dbf4346 100644 (file)
@@ -761,14 +761,6 @@ class Preferences {
                        'label-message' => 'tog-showhiddencats'
                );
 
-               if ( $wgAllowUserCssPrefs ) {
-                       $defaultPreferences['justify'] = array(
-                               'type' => 'toggle',
-                               'section' => 'rendering/advancedrendering',
-                               'label-message' => 'tog-justify',
-                       );
-               }
-
                $defaultPreferences['numberheadings'] = array(
                        'type' => 'toggle',
                        'section' => 'rendering/advancedrendering',
index 654b616..7c2f8f7 100644 (file)
@@ -411,7 +411,7 @@ abstract class QueryPage extends SpecialPage {
        /**
         * Somewhat deprecated, you probably want to be using execute()
         * @param int|bool $offset
-        * @oaram int|bool $limit
+        * @param int|bool $limit
         * @return ResultWrapper
         */
        function doQuery( $offset = false, $limit = false ) {
index 18e36ba..35183ce 100644 (file)
@@ -722,7 +722,6 @@ class SkinTemplate extends Skin {
                                : 'login';
                        $is_signup = $request->getText( 'type' ) == 'signup';
 
-                       $login_id = $this->showIPinHeader() ? 'anonlogin' : 'login';
                        $login_url = array(
                                'text' => $this->msg( $loginlink )->text(),
                                'href' => self::makeSpecialUrl( 'Userlogin', $returnto ),
@@ -756,7 +755,7 @@ class SkinTemplate extends Skin {
                                $personal_urls['createaccount'] = $createaccount_url;
                        }
 
-                       $personal_urls[$login_id] = $login_url;
+                       $personal_urls['login'] = $login_url;
                }
 
                wfRunHooks( 'PersonalUrls', array( &$personal_urls, &$title, $this ) );
diff --git a/includes/Timestamp.php b/includes/Timestamp.php
deleted file mode 100644 (file)
index c1c6455..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-<?php
-/**
- * Creation and parsing of MW-style timestamps.
- *
- * 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
- * @since 1.20
- * @author Tyler Romeo, 2012
- */
-
-/**
- * Library for creating and parsing MW-style timestamps. Based on the JS
- * library that does the same thing.
- *
- * @since 1.20
- */
-class MWTimestamp {
-       /**
-        * Standard gmdate() formats for the different timestamp types.
-        */
-       private static $formats = array(
-               TS_UNIX => 'U',
-               TS_MW => 'YmdHis',
-               TS_DB => 'Y-m-d H:i:s',
-               TS_ISO_8601 => 'Y-m-d\TH:i:s\Z',
-               TS_ISO_8601_BASIC => 'Ymd\THis\Z',
-               TS_EXIF => 'Y:m:d H:i:s', // This shouldn't ever be used, but is included for completeness
-               TS_RFC2822 => 'D, d M Y H:i:s',
-               TS_ORACLE => 'd-m-Y H:i:s.000000', // Was 'd-M-y h.i.s A' . ' +00:00' before r51500
-               TS_POSTGRES => 'Y-m-d H:i:s',
-       );
-
-       /**
-        * The actual timestamp being wrapped (DateTime object).
-        * @var DateTime
-        */
-       public $timestamp;
-
-       /**
-        * Make a new timestamp and set it to the specified time,
-        * or the current time if unspecified.
-        *
-        * @since 1.20
-        *
-        * @param bool|string $timestamp Timestamp to set, or false for current time
-        */
-       public function __construct( $timestamp = false ) {
-               $this->setTimestamp( $timestamp );
-       }
-
-       /**
-        * Set the timestamp to the specified time, or the current time if unspecified.
-        *
-        * Parse the given timestamp into either a DateTime object or a Unix timestamp,
-        * and then store it.
-        *
-        * @since 1.20
-        *
-        * @param string|bool $ts Timestamp to store, or false for now
-        * @throws TimestampException
-        */
-       public function setTimestamp( $ts = false ) {
-               $da = array();
-               $strtime = '';
-
-               if ( !$ts || $ts === "\0\0\0\0\0\0\0\0\0\0\0\0\0\0" ) { // We want to catch 0, '', null... but not date strings starting with a letter.
-                       $uts = time();
-                       $strtime = "@$uts";
-               } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
-                       # TS_DB
-               } elseif ( preg_match( '/^(\d{4}):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)$/D', $ts, $da ) ) {
-                       # TS_EXIF
-               } elseif ( preg_match( '/^(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/D', $ts, $da ) ) {
-                       # TS_MW
-               } elseif ( preg_match( '/^-?\d{1,13}$/D', $ts ) ) {
-                       # TS_UNIX
-                       $strtime = "@$ts"; // http://php.net/manual/en/datetime.formats.compound.php
-               } elseif ( preg_match( '/^\d{2}-\d{2}-\d{4} \d{2}:\d{2}:\d{2}.\d{6}$/', $ts ) ) {
-                       # TS_ORACLE // session altered to DD-MM-YYYY HH24:MI:SS.FF6
-                       $strtime = preg_replace( '/(\d\d)\.(\d\d)\.(\d\d)(\.(\d+))?/', "$1:$2:$3",
-                                       str_replace( '+00:00', 'UTC', $ts ) );
-               } elseif ( preg_match( '/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
-                       # TS_ISO_8601
-               } elseif ( preg_match( '/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})(?:\.*\d*)?Z?$/', $ts, $da ) ) {
-                       #TS_ISO_8601_BASIC
-               } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d*[\+\- ](\d\d)$/', $ts, $da ) ) {
-                       # TS_POSTGRES
-               } elseif ( preg_match( '/^(\d{4})\-(\d\d)\-(\d\d) (\d\d):(\d\d):(\d\d)\.*\d* GMT$/', $ts, $da ) ) {
-                       # TS_POSTGRES
-               } elseif ( preg_match( '/^[ \t\r\n]*([A-Z][a-z]{2},[ \t\r\n]*)?' . # Day of week
-                                                               '\d\d?[ \t\r\n]*[A-Z][a-z]{2}[ \t\r\n]*\d{2}(?:\d{2})?' .  # dd Mon yyyy
-                                                               '[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d[ \t\r\n]*:[ \t\r\n]*\d\d/S', $ts ) ) { # hh:mm:ss
-                       # TS_RFC2822, accepting a trailing comment. See http://www.squid-cache.org/mail-archive/squid-users/200307/0122.html / r77171
-                       # The regex is a superset of rfc2822 for readability
-                       $strtime = strtok( $ts, ';' );
-               } elseif ( preg_match( '/^[A-Z][a-z]{5,8}, \d\d-[A-Z][a-z]{2}-\d{2} \d\d:\d\d:\d\d/', $ts ) ) {
-                       # TS_RFC850
-                       $strtime = $ts;
-               } elseif ( preg_match( '/^[A-Z][a-z]{2} [A-Z][a-z]{2} +\d{1,2} \d\d:\d\d:\d\d \d{4}/', $ts ) ) {
-                       # asctime
-                       $strtime = $ts;
-               } else {
-                       throw new TimestampException( __METHOD__ . ": Invalid timestamp - $ts" );
-               }
-
-               if ( !$strtime ) {
-                       $da = array_map( 'intval', $da );
-                       $da[0] = "%04d-%02d-%02dT%02d:%02d:%02d.00+00:00";
-                       $strtime = call_user_func_array( "sprintf", $da );
-               }
-
-               try {
-                       $final = new DateTime( $strtime, new DateTimeZone( 'GMT' ) );
-               } catch ( Exception $e ) {
-                       throw new TimestampException( __METHOD__ . ': Invalid timestamp format.', $e->getCode(), $e );
-               }
-
-               if ( $final === false ) {
-                       throw new TimestampException( __METHOD__ . ': Invalid timestamp format.' );
-               }
-               $this->timestamp = $final;
-       }
-
-       /**
-        * Get the timestamp represented by this object in a certain form.
-        *
-        * Convert the internal timestamp to the specified format and then
-        * return it.
-        *
-        * @since 1.20
-        *
-        * @param int $style Constant Output format for timestamp
-        * @throws TimestampException
-        * @return string The formatted timestamp
-        */
-       public function getTimestamp( $style = TS_UNIX ) {
-               if ( !isset( self::$formats[$style] ) ) {
-                       throw new TimestampException( __METHOD__ . ': Illegal timestamp output type.' );
-               }
-
-               $output = $this->timestamp->format( self::$formats[$style] );
-
-               if ( ( $style == TS_RFC2822 ) || ( $style == TS_POSTGRES ) ) {
-                       $output .= ' GMT';
-               }
-
-               return $output;
-       }
-
-       /**
-        * Get the timestamp in a human-friendly relative format, e.g., "3 days ago".
-        *
-        * Determine the difference between the timestamp and the current time, and
-        * generate a readable timestamp by returning "<N> <units> ago", where the
-        * largest possible unit is used.
-        *
-        * @since 1.20
-        * @since 1.22 Uses Language::getHumanTimestamp to produce the timestamp
-        *
-        * @param MWTimestamp|null $relativeTo The base timestamp to compare to (defaults to now)
-        * @param User|null $user User the timestamp is being generated for (or null to use main context's user)
-        * @param Language|null $lang Language to use to make the human timestamp (or null to use main context's language)
-        * @return string Formatted timestamp
-        */
-       public function getHumanTimestamp( MWTimestamp $relativeTo = null, User $user = null, Language $lang = null ) {
-               if ( $relativeTo === null ) {
-                       $relativeTo = new self();
-               }
-               if ( $user === null ) {
-                       $user = RequestContext::getMain()->getUser();
-               }
-               if ( $lang === null ) {
-                       $lang = RequestContext::getMain()->getLanguage();
-               }
-
-               // Adjust for the user's timezone.
-               $offsetThis = $this->offsetForUser( $user );
-               $offsetRel = $relativeTo->offsetForUser( $user );
-
-               $ts = '';
-               if ( wfRunHooks( 'GetHumanTimestamp', array( &$ts, $this, $relativeTo, $user, $lang ) ) ) {
-                       $ts = $lang->getHumanTimestamp( $this, $relativeTo, $user );
-               }
-
-               // Reset the timezone on the objects.
-               $this->timestamp->sub( $offsetThis );
-               $relativeTo->timestamp->sub( $offsetRel );
-
-               return $ts;
-       }
-
-       /**
-        * Adjust the timestamp depending on the given user's preferences.
-        *
-        * @since 1.22
-        *
-        * @param User $user User to take preferences from
-        * @param[out] MWTimestamp $ts Timestamp to adjust
-        * @return DateInterval Offset that was applied to the timestamp
-        */
-       public function offsetForUser( User $user ) {
-               global $wgLocalTZoffset;
-
-               $option = $user->getOption( 'timecorrection' );
-               $data = explode( '|', $option, 3 );
-
-               // First handle the case of an actual timezone being specified.
-               if ( $data[0] == 'ZoneInfo' ) {
-                       try {
-                               $tz = new DateTimeZone( $data[2] );
-                       } catch ( Exception $e ) {
-                               $tz = false;
-                       }
-
-                       if ( $tz ) {
-                               $this->timestamp->setTimezone( $tz );
-                               return new DateInterval( 'P0Y' );
-                       } else {
-                               $data[0] = 'Offset';
-                       }
-               }
-
-               $diff = 0;
-               // If $option is in fact a pipe-separated value, check the
-               // first value.
-               if ( $data[0] == 'System' ) {
-                       // First value is System, so use the system offset.
-                       if ( isset( $wgLocalTZoffset ) ) {
-                               $diff = $wgLocalTZoffset;
-                       }
-               } elseif ( $data[0] == 'Offset' ) {
-                       // First value is Offset, so use the specified offset
-                       $diff = (int)$data[1];
-               } else {
-                       // $option actually isn't a pipe separated value, but instead
-                       // a comma separated value. Isn't MediaWiki fun?
-                       $data = explode( ':', $option );
-                       if ( count( $data ) >= 2 ) {
-                               // Combination hours and minutes.
-                               $diff = abs( (int)$data[0] ) * 60 + (int)$data[1];
-                               if ( (int)$data[0] < 0 ) {
-                                       $diff *= -1;
-                               }
-                       } else {
-                               // Just hours.
-                               $diff = (int)$data[0] * 60;
-                       }
-               }
-
-               $interval = new DateInterval( 'PT' . abs( $diff ) . 'M' );
-               if ( $diff < 1 ) {
-                       $interval->invert = 1;
-               }
-
-               $this->timestamp->add( $interval );
-               return $interval;
-       }
-
-       /**
-        * Generate a purely relative timestamp, i.e., represent the time elapsed between
-        * the given base timestamp and this object.
-        *
-        * @param MWTimestamp $relativeTo Relative base timestamp (defaults to now)
-        * @param User $user Use to use offset for
-        * @param Language $lang Language to use
-        * @param array $chosenIntervals Intervals to use to represent it
-        * @return string Relative timestamp
-        */
-       public function getRelativeTimestamp(
-               MWTimestamp $relativeTo = null,
-               User $user = null,
-               Language $lang = null,
-               array $chosenIntervals = array()
-       ) {
-               if ( $relativeTo === null ) {
-                       $relativeTo = new self;
-               }
-               if ( $user === null ) {
-                       $user = RequestContext::getMain()->getUser();
-               }
-               if ( $lang === null ) {
-                       $lang = RequestContext::getMain()->getLanguage();
-               }
-
-               $ts = '';
-               $diff = $this->diff( $relativeTo );
-               if ( wfRunHooks( 'GetRelativeTimestamp', array( &$ts, &$diff, $this, $relativeTo, $user, $lang ) ) ) {
-                       $seconds = ( ( ( $diff->days * 24 + $diff->h ) * 60 + $diff->i ) * 60 + $diff->s );
-                       $ts = wfMessage( 'ago', $lang->formatDuration( $seconds, $chosenIntervals ) )
-                               ->inLanguage( $lang )
-                               ->text();
-               }
-
-               return $ts;
-       }
-
-       /**
-        * @since 1.20
-        *
-        * @return string
-        */
-       public function __toString() {
-               return $this->getTimestamp();
-       }
-
-       /**
-        * Calculate the difference between two MWTimestamp objects.
-        *
-        * @since 1.22
-        * @param MWTimestamp $relativeTo Base time to calculate difference from
-        * @return DateInterval|bool The DateInterval object representing the difference between the two dates or false on failure
-        */
-       public function diff( MWTimestamp $relativeTo ) {
-               return $this->timestamp->diff( $relativeTo->timestamp );
-       }
-
-       /**
-        * Set the timezone of this timestamp to the specified timezone.
-        *
-        * @since 1.22
-        * @param String $timezone Timezone to set
-        * @throws TimestampException
-        */
-       public function setTimezone( $timezone ) {
-               try {
-                       $this->timestamp->setTimezone( new DateTimeZone( $timezone ) );
-               } catch ( Exception $e ) {
-                       throw new TimestampException( __METHOD__ . ': Invalid timezone.', $e->getCode(), $e );
-               }
-       }
-
-       /**
-        * Get the timezone of this timestamp.
-        *
-        * @since 1.22
-        * @return DateTimeZone The timezone
-        */
-       public function getTimezone() {
-               return $this->timestamp->getTimezone();
-       }
-
-       /**
-        * Format the timestamp in a given format.
-        *
-        * @since 1.22
-        * @param string $format Pattern to format in
-        * @return string The formatted timestamp
-        */
-       public function format( $format ) {
-               return $this->timestamp->format( $format );
-       }
-
-       /**
-        * Get a timestamp instance in the server local timezone ($wgLocaltimezone)
-        *
-        * @since 1.22
-        * @param bool|string $ts Timestamp to set, or false for current time
-        * @return MWTimestamp the local instance
-        */
-       public static function getLocalInstance( $ts = false ) {
-               global $wgLocaltimezone;
-               $timestamp = new self( $ts );
-               $timestamp->setTimezone( $wgLocaltimezone );
-               return $timestamp;
-       }
-
-       /**
-        * Get a timestamp instance in GMT
-        *
-        * @since 1.22
-        * @param bool|string $ts Timestamp to set, or false for current time
-        * @return MWTimestamp the instance
-        */
-       public static function getInstance( $ts = false ) {
-               return new self( $ts );
-       }
-}
-
-/**
- * @since 1.20
- */
-class TimestampException extends MWException {}
diff --git a/includes/TimestampException.php b/includes/TimestampException.php
new file mode 100644 (file)
index 0000000..18f58fd
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+
+/**
+ * @since 1.20
+ */
+class TimestampException extends MWException {}
\ No newline at end of file
index cc130d2..eac9211 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Classes to walk into a list of Title objects.
+ * Class to walk into a list of Title objects.
  *
  * Note: this entire file is a byte-for-byte copy of UserArray.php with
  * s/User/Title/.  If anyone can figure out how to do this nicely with
@@ -55,64 +55,3 @@ abstract class TitleArray implements Iterator {
                return $array;
        }
 }
-
-class TitleArrayFromResult extends TitleArray implements Countable {
-
-       /**
-        * @var ResultWrapper
-        */
-       var $res;
-       var $key, $current;
-
-       function __construct( $res ) {
-               $this->res = $res;
-               $this->key = 0;
-               $this->setCurrent( $this->res->current() );
-       }
-
-       /**
-        * @param $row ResultWrapper
-        * @return void
-        */
-       protected function setCurrent( $row ) {
-               if ( $row === false ) {
-                       $this->current = false;
-               } else {
-                       $this->current = Title::newFromRow( $row );
-               }
-       }
-
-       /**
-        * @return int
-        */
-       public function count() {
-               return $this->res->numRows();
-       }
-
-       function current() {
-               return $this->current;
-       }
-
-       function key() {
-               return $this->key;
-       }
-
-       function next() {
-               $row = $this->res->next();
-               $this->setCurrent( $row );
-               $this->key++;
-       }
-
-       function rewind() {
-               $this->res->rewind();
-               $this->key = 0;
-               $this->setCurrent( $this->res->current() );
-       }
-
-       /**
-        * @return bool
-        */
-       function valid() {
-               return $this->current !== false;
-       }
-}
diff --git a/includes/TitleArrayFromResult.php b/includes/TitleArrayFromResult.php
new file mode 100644 (file)
index 0000000..f900538
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Class to walk into a list of Title objects.
+ *
+ * Note: this entire file is a byte-for-byte copy of UserArrayFromResult.php
+ * with s/User/Title/.  If anyone can figure out how to do this nicely
+ * with inheritance or something, please do so.
+ *
+ * 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
+ */
+
+class TitleArrayFromResult extends TitleArray implements Countable {
+
+       /**
+        * @var ResultWrapper
+        */
+       var $res;
+       var $key, $current;
+
+       function __construct( $res ) {
+               $this->res = $res;
+               $this->key = 0;
+               $this->setCurrent( $this->res->current() );
+       }
+
+       /**
+        * @param $row ResultWrapper
+        * @return void
+        */
+       protected function setCurrent( $row ) {
+               if ( $row === false ) {
+                       $this->current = false;
+               } else {
+                       $this->current = Title::newFromRow( $row );
+               }
+       }
+
+       /**
+        * @return int
+        */
+       public function count() {
+               return $this->res->numRows();
+       }
+
+       function current() {
+               return $this->current;
+       }
+
+       function key() {
+               return $this->key;
+       }
+
+       function next() {
+               $row = $this->res->next();
+               $this->setCurrent( $row );
+               $this->key++;
+       }
+
+       function rewind() {
+               $this->res->rewind();
+               $this->key = 0;
+               $this->setCurrent( $this->res->current() );
+       }
+
+       /**
+        * @return bool
+        */
+       function valid() {
+               return $this->current !== false;
+       }
+}
\ No newline at end of file
index 90d1134..38f0d9d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Classes to walk into a list of User objects.
+ * Class to walk into a list of User objects.
  *
  * 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
@@ -63,71 +63,4 @@ abstract class UserArray implements Iterator {
        protected static function newFromResult_internal( $res ) {
                return new UserArrayFromResult( $res );
        }
-}
-
-class UserArrayFromResult extends UserArray implements Countable {
-
-       /**
-        * @var ResultWrapper
-        */
-       var $res;
-       var $key, $current;
-
-       /**
-        * @param $res ResultWrapper
-        */
-       function __construct( $res ) {
-               $this->res = $res;
-               $this->key = 0;
-               $this->setCurrent( $this->res->current() );
-       }
-
-       /**
-        * @param  $row
-        * @return void
-        */
-       protected function setCurrent( $row ) {
-               if ( $row === false ) {
-                       $this->current = false;
-               } else {
-                       $this->current = User::newFromRow( $row );
-               }
-       }
-
-       /**
-        * @return int
-        */
-       public function count() {
-               return $this->res->numRows();
-       }
-
-       /**
-        * @return User
-        */
-       function current() {
-               return $this->current;
-       }
-
-       function key() {
-               return $this->key;
-       }
-
-       function next() {
-               $row = $this->res->next();
-               $this->setCurrent( $row );
-               $this->key++;
-       }
-
-       function rewind() {
-               $this->res->rewind();
-               $this->key = 0;
-               $this->setCurrent( $this->res->current() );
-       }
-
-       /**
-        * @return bool
-        */
-       function valid() {
-               return $this->current !== false;
-       }
-}
+}
\ No newline at end of file
diff --git a/includes/UserArrayFromResult.php b/includes/UserArrayFromResult.php
new file mode 100644 (file)
index 0000000..5d5859d
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Class to walk into a list of User objects.
+ *
+ * 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
+ */
+
+class UserArrayFromResult extends UserArray implements Countable {
+
+       /**
+        * @var ResultWrapper
+        */
+       var $res;
+       var $key, $current;
+
+       /**
+        * @param $res ResultWrapper
+        */
+       function __construct( $res ) {
+               $this->res = $res;
+               $this->key = 0;
+               $this->setCurrent( $this->res->current() );
+       }
+
+       /**
+        * @param  $row
+        * @return void
+        */
+       protected function setCurrent( $row ) {
+               if ( $row === false ) {
+                       $this->current = false;
+               } else {
+                       $this->current = User::newFromRow( $row );
+               }
+       }
+
+       /**
+        * @return int
+        */
+       public function count() {
+               return $this->res->numRows();
+       }
+
+       /**
+        * @return User
+        */
+       function current() {
+               return $this->current;
+       }
+
+       function key() {
+               return $this->key;
+       }
+
+       function next() {
+               $row = $this->res->next();
+               $this->setCurrent( $row );
+               $this->key++;
+       }
+
+       function rewind() {
+               $this->res->rewind();
+               $this->key = 0;
+               $this->setCurrent( $this->res->current() );
+       }
+
+       /**
+        * @return bool
+        */
+       function valid() {
+               return $this->current !== false;
+       }
+}
index b42564c..a52894d 100644 (file)
@@ -1128,6 +1128,10 @@ HTML;
                        # unless the address is not sensible (e.g. private). However, prefer private
                        # IP addresses over proxy servers controlled by this site (more sensible).
                        foreach ( $ipchain as $i => $curIP ) {
+                               // ignore 'unknown' value from Squid when 'forwarded_for off' and try next
+                               if ( $curIP === 'unknown' ) {
+                                       continue;
+                               }
                                $curIP = IP::sanitizeIP( IP::canonicalize( $curIP ) );
                                if ( wfIsTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
                                        if ( wfIsConfiguredProxy( $curIP ) || // bug 48919; treat IP as sane
index 9a6e6b9..56d23b1 100644 (file)
@@ -637,12 +637,19 @@ class MediaWiki {
                }
 
                if ( !wfShellExecDisabled() && is_executable( $wgPhpCli ) ) {
-                       // Start a background process to run some of the jobs.
-                       // This will be asynchronous on *nix though not on Windows.
+                       // Start a background process to run some of the jobs
                        wfProfileIn( __METHOD__ . '-exec' );
                        $retVal = 1;
                        $cmd = wfShellWikiCmd( "$IP/maintenance/runJobs.php", array( '--maxjobs', $n ) );
-                       wfShellExec( "$cmd &", $retVal );
+                       $cmd .= " >" . wfGetNull() . " 2>&1"; // don't hang PHP on pipes
+                       if ( wfIsWindows() ) {
+                               // Using START makes this async and also works around a bug where using
+                               // wfShellExec() with a quoted script name causes a filename syntax error.
+                               $cmd = "START /B \"bg\" $cmd";
+                       } else {
+                               $cmd = "$cmd &";
+                       }
+                       wfShellExec( $cmd, $retVal );
                        wfProfileOut( __METHOD__ . '-exec' );
                } else {
                        try {
index a424b9d..918fc9e 100644 (file)
@@ -619,7 +619,7 @@ class InfoAction extends FormlessAction {
         * @return array
         */
        protected static function pageCounts( Title $title ) {
-               global $wgRCMaxAge, $wgDisableCounters;
+               global $wgRCMaxAge, $wgDisableCounters, $wgMiserMode;
 
                wfProfileIn( __METHOD__ );
                $id = $title->getArticleID();
@@ -723,15 +723,19 @@ class InfoAction extends FormlessAction {
                }
 
                // Counts for the number of transclusion links (to/from)
-               $result['transclusion']['to'] = (int)$dbr->selectField(
-                       'templatelinks',
-                       'COUNT(tl_from)',
-                       array(
-                               'tl_namespace' => $title->getNamespace(),
-                               'tl_title' => $title->getDBkey()
-                       ),
-                       __METHOD__
-               );
+               if ( $wgMiserMode ) {
+                       $result['transclusion']['to'] = 0;
+               } else {
+                       $result['transclusion']['to'] = (int)$dbr->selectField(
+                               'templatelinks',
+                               'COUNT(tl_from)',
+                               array(
+                                       'tl_namespace' => $title->getNamespace(),
+                                       'tl_title' => $title->getDBkey()
+                               ),
+                               __METHOD__
+                       );
+               }
 
                $result['transclusion']['from'] = (int)$dbr->selectField(
                        'templatelinks',
diff --git a/includes/config/Config.php b/includes/config/Config.php
new file mode 100644 (file)
index 0000000..067b1e4
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Copyright 2014
+ *
+ * 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
+ */
+
+/**
+ * Abstract class for get settings for
+ *
+ * @since 1.23
+ */
+
+abstract class Config {
+
+       /**
+        * @param string $name configuration variable name without prefix
+        * @param string $prefix of the variable name
+        * @return mixed
+        */
+       abstract public function get( $name, $prefix = 'wg' );
+
+       /**
+        * @param string $name configuration variable name without prefix
+        * @param mixed $value to set
+        * @param string $prefix of the variable name
+        * @return Status object indicating success or failure
+        */
+       abstract public function set( $name, $value, $prefix = 'wg' );
+
+       /**
+        * @param string|null $type class name for Config object,
+        *        uses $wgConfigClass if not provided
+        * @return Config
+        */
+       public static function factory( $type = null ) {
+               if ( !$type ) {
+                       global $wgConfigClass;
+                       $type = $wgConfigClass;
+               }
+
+               return new $type;
+       }
+}
diff --git a/includes/config/GlobalConfig.php b/includes/config/GlobalConfig.php
new file mode 100644 (file)
index 0000000..1b1cd89
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright 2014
+ *
+ * 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
+ */
+
+/**
+ * Accesses configuration settings from $GLOBALS
+ *
+ * @since 1.23
+ */
+class GlobalConfig extends Config {
+
+       /**
+        * @see Config::get
+        */
+       public function get( $name, $prefix = 'wg' ) {
+               return $GLOBALS[$prefix . $name];
+       }
+
+       /**
+        * @see Config::set
+        */
+       public function set( $name, $value, $prefix = 'wg' ) {
+               $GLOBALS[$prefix . $name] = $value;
+               return Status::newGood();
+       }
+}
index 1abe1fa..200d453 100644 (file)
@@ -677,12 +677,19 @@ abstract class ContentHandler {
         * typically based on the namespace or some other aspect of the title, such as a special suffix
         * (e.g. ".svg" for SVG content).
         *
+        * @note: this calls the ContentHandlerCanBeUsedOn hook which may be used to override which
+        * content model can be used where.
+        *
         * @param Title $title the page's title.
         *
         * @return bool true if content of this kind can be used on the given page, false otherwise.
         */
        public function canBeUsedOn( Title $title ) {
-               return true;
+               $ok = true;
+
+               wfRunHooks( 'ContentModelCanBeUsedOn', array( $this->getModelID(), $title, &$ok ) );
+
+               return $ok;
        }
 
        /**
index 186b8e6..9bc416d 100644 (file)
@@ -60,10 +60,10 @@ abstract class ContextSource implements IContextSource {
        }
 
        /**
-        * Get the SiteConfiguration object
+        * Get the Config object
         *
         * @since 1.23
-        * @return SiteConfiguration
+        * @return Config
         */
        public function getConfig() {
                return $this->getContext()->getConfig();
index 2137757..f5616e0 100644 (file)
@@ -88,9 +88,9 @@ class DerivativeContext extends ContextSource {
        }
 
        /**
-        * Get the SiteConfiguration object
+        * Get the Config object
         *
-        * @return SiteConfiguration
+        * @return Config
         */
        public function getConfig() {
                if ( !is_null( $this->config ) ) {
index 6c5c0a2..eb51372 100644 (file)
@@ -103,7 +103,7 @@ interface IContextSource {
         * Get the site configuration
         *
         * @since 1.23
-        * @return SiteConfiguration
+        * @return Config
         */
        public function getConfig();
 
index 5f91731..978ef03 100644 (file)
@@ -64,28 +64,27 @@ class RequestContext implements IContextSource {
        private $skin;
 
        /**
-        * @var SiteConfiguration
+        * @var Config
         */
        private $config;
 
        /**
-        * Set the SiteConfiguration object
+        * Set the Config object
         *
-        * @param SiteConfiguration $c
+        * @param Config $c
         */
-       public function setConfig( SiteConfiguration $c ) {
+       public function setConfig( Config $c ) {
                $this->config = $c;
        }
 
        /**
-        * Get the SiteConfiguration object
+        * Get the Config object
         *
-        * @return SiteConfiguration
+        * @return Config
         */
        public function getConfig() {
                if ( $this->config === null ) {
-                       global $wgConf;
-                       $this->config = $wgConf;
+                       $this->config = Config::factory();
                }
                return $this->config;
        }
index 83d8cae..6475c8f 100644 (file)
@@ -828,13 +828,15 @@ __INDEXATTR__;
         * so causes a DB error. This wrapper checks which tables can be locked and adjusts it accordingly.
         */
        function selectSQLText( $table, $vars, $conds = '', $fname = __METHOD__, $options = array(), $join_conds = array() ) {
-               $forUpdateKey = array_search( 'FOR UPDATE', $options );
-               if ( $forUpdateKey !== false && $join_conds ) {
-                       unset( $options[$forUpdateKey] );
-
-                       foreach ( $join_conds as $table => $join_cond ) {
-                               if ( 0 === preg_match( '/^(?:LEFT|RIGHT|FULL)(?: OUTER)? JOIN$/i', $join_cond[0] ) ) {
-                                       $options['FOR UPDATE'][] = $table;
+               if ( is_array( $options ) ) {
+                       $forUpdateKey = array_search( 'FOR UPDATE', $options );
+                       if ( $forUpdateKey !== false && $join_conds ) {
+                               unset( $options[$forUpdateKey] );
+
+                               foreach ( $join_conds as $table_cond => $join_cond ) {
+                                       if ( 0 === preg_match( '/^(?:LEFT|RIGHT|FULL)(?: OUTER)? JOIN$/i', $join_cond[0] ) ) {
+                                               $options['FOR UPDATE'][] = $table_cond;
+                                       }
                                }
                        }
                }
index c88ad05..7d0fe34 100644 (file)
@@ -188,7 +188,7 @@ class LoadBalancer {
         * @return bool|int|string
         */
        function getReaderIndex( $group = false, $wiki = false ) {
-               global $wgReadOnly, $wgDBClusterTimeout, $wgDBAvgStatusPoll, $wgDBtype;
+               global $wgReadOnly, $wgDBtype;
 
                # @todo FIXME: For now, only go through all this for mysql databases
                if ( $wgDBtype != 'mysql' ) {
@@ -198,18 +198,13 @@ class LoadBalancer {
                if ( count( $this->mServers ) == 1 ) {
                        # Skip the load balancing if there's only one server
                        return 0;
-               } elseif ( $group === false and $this->mReadIndex >= 0 ) {
+               } elseif ( $group === false && $this->mReadIndex >= 0 ) {
                        # Shortcut if generic reader exists already
                        return $this->mReadIndex;
                }
 
                wfProfileIn( __METHOD__ );
 
-               $totalElapsed = 0;
-
-               # convert from seconds to microseconds
-               $timeout = $wgDBClusterTimeout * 1e6;
-
                # Find the relevant load array
                if ( $group !== false ) {
                        if ( isset( $this->mGroupLoads[$group] ) ) {
@@ -225,7 +220,7 @@ class LoadBalancer {
                        $nonErrorLoads = $this->mLoads;
                }
 
-               if ( !$nonErrorLoads ) {
+               if ( !count( $nonErrorLoads ) ) {
                        wfProfileOut( __METHOD__ );
                        throw new MWException( "Empty server array given to LoadBalancer" );
                }
@@ -235,93 +230,60 @@ class LoadBalancer {
 
                $laggedSlaveMode = false;
 
+               # No server found yet
+               $i = false;
                # First try quickly looking through the available servers for a server that
                # meets our criteria
-               do {
-                       $totalThreadsConnected = 0;
-                       $overloadedServers = 0;
-                       $currentLoads = $nonErrorLoads;
-                       while ( count( $currentLoads ) ) {
-                               if ( $wgReadOnly || $this->mAllowLagged || $laggedSlaveMode ) {
+               $currentLoads = $nonErrorLoads;
+               while ( count( $currentLoads ) ) {
+                       if ( $wgReadOnly || $this->mAllowLagged || $laggedSlaveMode ) {
+                               $i = ArrayUtils::pickRandom( $currentLoads );
+                       } else {
+                               $i = $this->getRandomNonLagged( $currentLoads, $wiki );
+                               if ( $i === false && count( $currentLoads ) != 0 ) {
+                                       # All slaves lagged. Switch to read-only mode
+                                       wfDebugLog( 'replication', "All slaves lagged. Switch to read-only mode\n" );
+                                       $wgReadOnly = 'The database has been automatically locked ' .
+                                               'while the slave database servers catch up to the master';
                                        $i = ArrayUtils::pickRandom( $currentLoads );
-                               } else {
-                                       $i = $this->getRandomNonLagged( $currentLoads, $wiki );
-                                       if ( $i === false && count( $currentLoads ) != 0 ) {
-                                               # All slaves lagged. Switch to read-only mode
-                                               wfDebugLog( 'replication', "All slaves lagged. Switch to read-only mode\n" );
-                                               $wgReadOnly = 'The database has been automatically locked ' .
-                                                       'while the slave database servers catch up to the master';
-                                               $i = ArrayUtils::pickRandom( $currentLoads );
-                                               $laggedSlaveMode = true;
-                                       }
-                               }
-
-                               if ( $i === false ) {
-                                       # pickRandom() returned false
-                                       # This is permanent and means the configuration or the load monitor
-                                       # wants us to return false.
-                                       wfDebugLog( 'connect', __METHOD__ . ": pickRandom() returned false\n" );
-                                       wfProfileOut( __METHOD__ );
-
-                                       return false;
-                               }
-
-                               wfDebugLog( 'connect', __METHOD__ . ": Using reader #$i: {$this->mServers[$i]['host']}...\n" );
-                               $conn = $this->openConnection( $i, $wiki );
-
-                               if ( !$conn ) {
-                                       wfDebugLog( 'connect', __METHOD__ . ": Failed connecting to $i/$wiki\n" );
-                                       unset( $nonErrorLoads[$i] );
-                                       unset( $currentLoads[$i] );
-                                       continue;
+                                       $laggedSlaveMode = true;
                                }
+                       }
 
-                               // Perform post-connection backoff
-                               $threshold = isset( $this->mServers[$i]['max threads'] )
-                                       ? $this->mServers[$i]['max threads'] : 0;
-                               $backoff = $this->getLoadMonitor()->postConnectionBackoff( $conn, $threshold );
-
-                               // Decrement reference counter, we are finished with this connection.
-                               // It will be incremented for the caller later.
-                               if ( $wiki !== false ) {
-                                       $this->reuseConnection( $conn );
-                               }
+                       if ( $i === false ) {
+                               # pickRandom() returned false
+                               # This is permanent and means the configuration or the load monitor
+                               # wants us to return false.
+                               wfDebugLog( 'connect', __METHOD__ . ": pickRandom() returned false\n" );
+                               wfProfileOut( __METHOD__ );
 
-                               if ( $backoff ) {
-                                       # Post-connection overload, don't use this server for now
-                                       $totalThreadsConnected += $backoff;
-                                       $overloadedServers++;
-                                       unset( $currentLoads[$i] );
-                               } else {
-                                       # Return this server
-                                       break 2;
-                               }
+                               return false;
                        }
 
-                       # No server found yet
-                       $i = false;
+                       wfDebugLog( 'connect', __METHOD__ .
+                               ": Using reader #$i: {$this->mServers[$i]['host']}...\n" );
 
-                       # If all servers were down, quit now
-                       if ( !count( $nonErrorLoads ) ) {
-                               wfDebugLog( 'connect', "All servers down\n" );
-                               break;
+                       $conn = $this->openConnection( $i, $wiki );
+                       if ( !$conn ) {
+                               wfDebugLog( 'connect', __METHOD__ . ": Failed connecting to $i/$wiki\n" );
+                               unset( $nonErrorLoads[$i] );
+                               unset( $currentLoads[$i] );
+                               continue;
                        }
 
-                       # Some servers must have been overloaded
-                       if ( $overloadedServers == 0 ) {
-                               throw new MWException( __METHOD__ . ": unexpectedly found no overloaded servers" );
+                       // Decrement reference counter, we are finished with this connection.
+                       // It will be incremented for the caller later.
+                       if ( $wiki !== false ) {
+                               $this->reuseConnection( $conn );
                        }
-                       # Back off for a while
-                       # Scale the sleep time by the number of connected threads, to produce a
-                       # roughly constant global poll rate
-                       $avgThreads = $totalThreadsConnected / $overloadedServers;
-                       $totalElapsed += $this->sleep( $wgDBAvgStatusPoll * $avgThreads );
-               } while ( $totalElapsed < $timeout );
-
-               if ( $totalElapsed >= $timeout ) {
-                       wfDebugLog( 'connect', "All servers busy\n" );
-                       $this->mErrorConnection = false;
-                       $this->mLastError = 'All servers busy';
+
+                       # Return this server
+                       break;
+               }
+
+               # If all servers were down, quit now
+               if ( !count( $nonErrorLoads ) ) {
+                       wfDebugLog( 'connect', "All servers down\n" );
                }
 
                if ( $i !== false ) {
index 651c499..b6ba4f2 100644 (file)
@@ -42,24 +42,6 @@ interface LoadMonitor {
         */
        function scaleLoads( &$loads, $group = false, $wiki = false );
 
-       /**
-        * Perform post-connection backoff.
-        *
-        * If the connection is in overload, this should return a backoff factor
-        * which will be used to control polling time. The number of threads
-        * connected is a good measure.
-        *
-        * If there is no overload, zero can be returned.
-        *
-        * A threshold thread count is given, the concrete class may compare this
-        * to the running thread count. The threshold may be false, which indicates
-        * that the sysadmin has not configured this feature.
-        *
-        * @param DatabaseBase $conn
-        * @param float $threshold
-        */
-       function postConnectionBackoff( $conn, $threshold );
-
        /**
         * Return an estimate of replication lag for each server
         *
@@ -78,9 +60,6 @@ class LoadMonitorNull implements LoadMonitor {
        function scaleLoads( &$loads, $group = false, $wiki = false ) {
        }
 
-       function postConnectionBackoff( $conn, $threshold ) {
-       }
-
        /**
         * @param array $serverIndexes
         * @param string $wiki
@@ -188,24 +167,4 @@ class LoadMonitorMySQL implements LoadMonitor {
 
                return $times;
        }
-
-       /**
-        * @param DatabaseBase|DatabaseMySQLBase $conn
-        * @param int $threshold
-        * @return int
-        */
-       function postConnectionBackoff( $conn, $threshold ) {
-               if ( !$threshold ) {
-                       return 0;
-               }
-               $status = $conn->getMysqlStatus( "Thread%" );
-               if ( $status['Threads_running'] > $threshold ) {
-                       $server = $conn->getProperty( 'mServer' );
-                       wfLogDBError( "LB backoff from $server - Threads_running = {$status['Threads_running']}\n" );
-
-                       return $status['Threads_connected'];
-               } else {
-                       return 0;
-               }
-       }
 }
index b7601e9..8cfae33 100644 (file)
@@ -381,7 +381,7 @@ class DifferenceEngine extends ContextSource {
                $rdel = $this->revisionDeleteLink( $this->mNewRev );
 
                # Allow extensions to define their own revision tools
-               wfRunHooks( 'DiffRevisionTools', array( $this->mNewRev, &$revisionTools ) );
+               wfRunHooks( 'DiffRevisionTools', array( $this->mNewRev, &$revisionTools, $this->mOldRev ) );
                $formattedRevisionTools = array();
                // Put each one in parentheses (poor man's button)
                foreach ( $revisionTools as $tool ) {
index b459b77..d6bbfbe 100644 (file)
@@ -708,7 +708,7 @@ class SwiftFileBackend extends FileBackendStore {
                $auth = $this->getAuthentication();
                if ( !$auth ) {
                        $objHdrs['x-object-meta-sha1base36'] = false;
-                       return false; // failed
+                       return $objHdrs; // failed
                }
 
                $status = Status::newGood();
@@ -726,7 +726,7 @@ class SwiftFileBackend extends FileBackendStore {
                                                'headers' => $this->authTokenHeaders( $auth ) + $objHdrs
                                        ) );
                                        if ( $rcode >= 200 && $rcode <= 299 ) {
-                                               return true; // success
+                                               return $objHdrs; // success
                                        }
                                }
                        }
@@ -734,7 +734,7 @@ class SwiftFileBackend extends FileBackendStore {
                trigger_error( "Unable to set SHA-1 metadata for $path", E_USER_WARNING );
                $objHdrs['x-object-meta-sha1base36'] = false;
 
-               return false; // failed
+               return $objHdrs; // failed
        }
 
        protected function doGetFileContentsMulti( array $params ) {
@@ -1570,11 +1570,11 @@ class SwiftFileBackend extends FileBackendStore {
         * Log an unexpected exception for this backend.
         * This also sets the Status object to have a fatal error.
         *
-        * @param Status $code null
+        * @param Status|null $status
         * @param string $func
         * @param array $params
         * @param string $err Error string
-        * @param integer $status HTTP status
+        * @param integer $code HTTP status
         * @param string $desc HTTP status description
         */
        public function onError( $status, $func, array $params, $err = '', $code = 0, $desc = '' ) {
index 81529e7..ca8c219 100644 (file)
@@ -111,6 +111,9 @@ class FileRepo {
         */
        protected $abbrvThreshold;
 
+       /** @var string The URL of the repo's favicon, if any  */
+       protected $favicon;
+
        /**
         * Factory functions for creating new files
         * Override these in the base class
@@ -147,7 +150,7 @@ class FileRepo {
                $optionalSettings = array(
                        'descBaseUrl', 'scriptDirUrl', 'articleUrl', 'fetchDescription',
                        'thumbScriptUrl', 'pathDisclosureProtection', 'descriptionCacheExpiry',
-                       'scriptExtension'
+                       'scriptExtension', 'favicon'
                );
                foreach ( $optionalSettings as $var ) {
                        if ( isset( $info[$var] ) ) {
@@ -1853,7 +1856,7 @@ class FileRepo {
 
                $optionalSettings = array(
                        'url', 'thumbUrl', 'initialCapital', 'descBaseUrl', 'scriptDirUrl', 'articleUrl',
-                       'fetchDescription', 'descriptionCacheExpiry', 'scriptExtension'
+                       'fetchDescription', 'descriptionCacheExpiry', 'scriptExtension', 'favicon'
                );
                foreach ( $optionalSettings as $k ) {
                        if ( isset( $this->$k ) ) {
index 92f017f..6e9e6ad 100644 (file)
@@ -126,4 +126,14 @@ class ForeignDBRepo extends LocalRepo {
        protected function assertWritableRepo() {
                throw new MWException( get_class( $this ) . ': write operations are not supported.' );
        }
+
+       /**
+        * Return information about the repository.
+        *
+        * @return array
+        * @since 1.22
+        */
+       function getInfo() {
+               return FileRepo::getInfo();
+       }
 }
index 99c0e09..bcccb71 100644 (file)
@@ -494,4 +494,17 @@ class LocalRepo extends FileRepo {
                        $wgMemc->set( $memcKey, ' PURGED', 12 );
                }
        }
+
+       /**
+        * Return information about the repository.
+        *
+        * @return array
+        * @since 1.22
+        */
+       function getInfo() {
+               global $wgFavicon;
+               return array_merge( parent::getInfo(), array(
+                       'favicon' => wfExpandUrl( $wgFavicon ),
+               ) );
+       }
 }
index 0aea070..1e8da45 100644 (file)
@@ -812,7 +812,8 @@ class HTMLForm extends ContextSource {
                        if ( $this->isVForm() ) {
                                // mw-ui-block is necessary because the buttons aren't necessarily in an
                                // immediate child div of the vform.
-                               array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-big', 'mw-ui-primary', 'mw-ui-block' );
+                               // TODO Let client specify if the primary submit button is progressive or destructive
+                               array_push( $attribs['class'], 'mw-ui-button', 'mw-ui-big', 'mw-ui-constructive', 'mw-ui-block' );
                        }
 
                        $html .= Xml::submitButton( $this->getSubmitText(), $attribs ) . "\n";
index fa58a62..cd5a8ad 100644 (file)
@@ -169,6 +169,7 @@ class PostgresUpdater extends DatabaseUpdater {
                                "INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('archive_ar_id_seq')" ),
                        array( 'addPgField', 'externallinks', 'el_id',
                                "INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('externallinks_el_id_seq')" ),
+                       array( 'addPgField', 'uploadstash', 'us_props', "BYTEA" ),
 
                        # type changes
                        array( 'changeField', 'archive', 'ar_deleted', 'smallint', '' ),
index 067ede1..5fc1e06 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Job queue base code.
+ * Job queue task base 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
 /**
  * Class to both describe a background job and handle jobs.
  * The queue aspects of this class are now deprecated.
+ * Using the class to push jobs onto queues is deprecated (use JobSpecification).
  *
  * @ingroup JobQueue
  */
-abstract class Job {
+abstract class Job implements IJobSpecification {
        /** @var string */
        public $command;
 
index e7a269a..6097d31 100644 (file)
@@ -723,10 +723,10 @@ class JobQueueDB extends JobQueue {
        }
 
        /**
-        * @param Job $job
+        * @param IJobSpecification $job
         * @return array
         */
-       protected function insertFields( Job $job ) {
+       protected function insertFields( IJobSpecification $job ) {
                $dbw = $this->getMasterDB();
 
                return array(
index d71df15..90742ce 100644 (file)
@@ -116,7 +116,7 @@ class JobQueueGroup {
 
                $jobsByType = array(); // (job type => list of jobs)
                foreach ( $jobs as $job ) {
-                       if ( $job instanceof Job ) {
+                       if ( $job instanceof IJobSpecification ) {
                                $jobsByType[$job->getType()][] = $job;
                        } else {
                                throw new MWException( "Attempted to push a non-Job object into a queue." );
index 9b9fe2d..212871e 100644 (file)
@@ -765,10 +765,10 @@ LUA;
        }
 
        /**
-        * @param Job $job
+        * @param IJobSpecification $job
         * @return array
         */
-       protected function getNewJobFields( Job $job ) {
+       protected function getNewJobFields( IJobSpecification $job ) {
                return array(
                        // Fields that describe the nature of the job
                        'type' => $job->getType(),
@@ -780,8 +780,8 @@ LUA;
                        // Additional job metadata
                        'uuid' => UIDGenerator::newRawUUIDv4( UIDGenerator::QUICK_RAND ),
                        'sha1' => $job->ignoreDuplicates()
-                                       ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
-                                       : '',
+                               ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
+                               : '',
                        'timestamp' => time() // UNIX timestamp
                );
        }
diff --git a/includes/job/JobSpecification.php b/includes/job/JobSpecification.php
new file mode 100644 (file)
index 0000000..e074e5c
--- /dev/null
@@ -0,0 +1,189 @@
+<?php
+/**
+ * Job queue task description base 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 JobQueue
+ */
+
+/**
+ * Job queue task description interface
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+interface IJobSpecification {
+       /**
+        * @return string Job type
+        */
+       public function getType();
+
+       /**
+        * @return array
+        */
+       public function getParams();
+
+       /**
+        * @return int|null UNIX timestamp to delay running this job until, otherwise null
+        */
+       public function getReleaseTimestamp();
+
+       /**
+        * @return bool Whether only one of each identical set of jobs should be run
+        */
+       public function ignoreDuplicates();
+
+       /**
+        * Subclasses may need to override this to make duplication detection work.
+        * The resulting map conveys everything that makes the job unique. This is
+        * only checked if ignoreDuplicates() returns true, meaning that duplicate
+        * jobs are supposed to be ignored.
+        *
+        * @return array Map of key/values
+        */
+       public function getDeduplicationInfo();
+
+       /**
+        * @return Title Descriptive title (this can simply be informative)
+        */
+       public function getTitle();
+}
+
+/**
+ * Job queue task description base code
+ *
+ * Example usage:
+ * <code>
+ * $job = new JobSpecification(
+ *             'null',
+ *             array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
+ *             array( 'removeDuplicates' => 1 ),
+ *             Title::makeTitle( NS_SPECIAL, 'nullity' )
+ * );
+ * JobQueueGroup::singleton()->push( $job )
+ * </code>
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+class JobSpecification implements IJobSpecification {
+       /** @var string */
+       protected $type;
+
+       /** @var array Array of job parameters or false if none */
+       protected $params;
+
+       /** @var Title */
+       protected $title;
+
+       /** @var bool Expensive jobs may set this to true */
+       protected $ignoreDuplicates;
+
+       /**
+        * @param string $type
+        * @param array $params Map of key/values
+        * @param array $opts Map of key/values
+        * @param Title $title Optional descriptive title
+        */
+       public function __construct(
+               $type, array $params, array $opts = array(), Title $title = null
+       ) {
+               $this->validateParams( $params );
+
+               $this->type = $type;
+               $this->params = $params;
+               $this->title = $title ?: Title::newMainPage();
+               $this->ignoreDuplicates = !empty( $opts['removeDuplicates'] );
+       }
+
+       /**
+        * @param array $params
+        */
+       protected function validateParams( array $params ) {
+               foreach ( $params as $p => $v ) {
+                       if ( is_array( $v ) ) {
+                               $this->validateParams( $v );
+                       } elseif ( !is_scalar( $v ) && $v !== null ) {
+                               throw new UnexpectedValueException( 'Job parameters are not JSON serializable.' );
+                       }
+               }
+       }
+
+       /**
+        * @return string
+        */
+       public function getType() {
+               return $this->type;
+       }
+
+       /**
+        * @return Title
+        */
+       public function getTitle() {
+               return $this->title;
+       }
+
+       /**
+        * @return array
+        */
+       public function getParams() {
+               return $this->params;
+       }
+
+       /**
+        * @return int|null UNIX timestamp to delay running this job until, otherwise null
+        */
+       public function getReleaseTimestamp() {
+               return isset( $this->params['jobReleaseTimestamp'] )
+                       ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
+                       : null;
+       }
+
+       /**
+        * @return bool Whether only one of each identical set of jobs should be run
+        */
+       public function ignoreDuplicates() {
+               return $this->ignoreDuplicates;
+       }
+
+       /**
+        * Subclasses may need to override this to make duplication detection work.
+        * The resulting map conveys everything that makes the job unique. This is
+        * only checked if ignoreDuplicates() returns true, meaning that duplicate
+        * jobs are supposed to be ignored.
+        *
+        * @return array Map of key/values
+        */
+       public function getDeduplicationInfo() {
+               $info = array(
+                       'type' => $this->getType(),
+                       'namespace' => $this->getTitle()->getNamespace(),
+                       'title' => $this->getTitle()->getDBkey(),
+                       'params' => $this->getParams()
+               );
+               if ( is_array( $info['params'] ) ) {
+                       // Identical jobs with different "root" jobs should count as duplicates
+                       unset( $info['params']['rootJobSignature'] );
+                       unset( $info['params']['rootJobTimestamp'] );
+                       // Likewise for jobs with different delay times
+                       unset( $info['params']['jobReleaseTimestamp'] );
+               }
+
+               return $info;
+       }
+}
index 78ac84d..3bcb4fc 100644 (file)
@@ -35,6 +35,8 @@
  * @ingroup JobQueue
  */
 class RefreshLinksJob extends Job {
+       const PARSE_THRESHOLD_SEC = 1.0;
+
        function __construct( $title, $params = '' ) {
                parent::__construct( 'refreshLinks', $title, $params );
                // Base backlink update jobs and per-title update jobs can be de-duplicated.
@@ -114,6 +116,8 @@ class RefreshLinksJob extends Job {
                        wfGetLB()->waitFor( $this->params['masterPos'] );
                }
 
+               $page = WikiPage::factory( $title );
+
                // Fetch the current revision...
                $revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
                if ( !$revision ) {
@@ -127,18 +131,17 @@ class RefreshLinksJob extends Job {
                }
 
                $parserOutput = false;
+               $parserOptions = $page->makeParserOptions( 'canonical' );
                // If page_touched changed after this root job (with a good slave lag skew factor),
                // then it is likely that any views of the pages already resulted in re-parses which
                // are now in cache. This can be reused to avoid expensive parsing in some cases.
                if ( isset( $this->params['rootJobTimestamp'] ) ) {
-                       $page = WikiPage::factory( $title );
                        $skewedTimestamp = wfTimestamp( TS_UNIX, $this->params['rootJobTimestamp'] ) + 5;
                        if ( $page->getLinksTimestamp() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
                                // Something already updated the backlinks since this job was made
                                return true;
                        }
                        if ( $page->getTouched() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
-                               $parserOptions = $page->makeParserOptions( 'canonical' );
                                $parserOutput = ParserCache::singleton()->getDirty( $page, $parserOptions );
                                if ( $parserOutput && $parserOutput->getCacheTime() <= $skewedTimestamp ) {
                                        $parserOutput = false; // too stale
@@ -147,8 +150,21 @@ class RefreshLinksJob extends Job {
                }
                // Fetch the current revision and parse it if necessary...
                if ( $parserOutput == false ) {
+                       $start = microtime( true );
                        // Revision ID must be passed to the parser output to get revision variables correct
-                       $parserOutput = $content->getParserOutput( $title, $revision->getId(), null, false );
+                       $parserOutput = $content->getParserOutput(
+                               $title, $revision->getId(), $parserOptions, false );
+                       $ellapsed = microtime( true ) - $start;
+                       // If it took a long time to render, then save this back to the cache to avoid
+                       // wasted CPU by other apaches or job runners. We don't want to always save to
+                       // cache as this cause cause high cache I/O and LRU churn when a template changes.
+                       if ( $ellapsed >= self::PARSE_THRESHOLD_SEC
+                               && $page->isParserCacheUsed( $parserOptions, $revision->getId() )
+                               && $parserOutput->isCacheable()
+                       ) {
+                               $ctime = wfTimestamp( TS_MW, (int)$start ); // cache time
+                               ParserCache::singleton()->save( $parserOutput, $page, $parserOptions, $ctime );
+                       }
                }
 
                $updates = $content->getSecondaryDataUpdates( $title, null, false, $parserOutput );
index b0b6ccd..c8e5df6 100644 (file)
@@ -62,7 +62,7 @@ class BacklinkJobUtils {
         * @param int $bSize BacklinkCache partition size; usually $wgUpdateRowsPerJob
         * @param int $cSize Max titles per leaf job; Usually 1 or a modest value
         * @param array $opts Optional parameter map
-        * @return array List of Job objects
+        * @return Job[] List of Job objects
         */
        public static function partitionBacklinkJob( Job $job, $bSize, $cSize, $opts = array() ) {
                $class = get_class( $job );
index ead418d..f0f297f 100644 (file)
@@ -502,6 +502,7 @@ class LogEventsList extends ContextSource {
         * - wrap String Wrap the message in html (usually something like "<div ...>$1</div>").
         * - flags Integer display flags (NO_ACTION_LINK,NO_EXTRA_USER_LINKS)
         * - useRequestParams boolean Set true to use Pager-related parameters in the WebRequest
+        * - useMaster boolean Use master DB
         * @return int Number of total log items (not limited by $lim)
         */
        public static function showLogExtract(
@@ -515,6 +516,7 @@ class LogEventsList extends ContextSource {
                        'wrap' => "$1",
                        'flags' => 0,
                        'useRequestParams' => false,
+                       'useMaster' => false,
                );
                # The + operator appends elements of remaining keys from the right
                # handed array to the left handed, whereas duplicated keys are NOT overwritten.
@@ -548,6 +550,9 @@ class LogEventsList extends ContextSource {
                        $pager->mIsBackwards = false;
                }
 
+               if ( $param['useMaster'] ) {
+                       $pager->mDb = wfGetDB( DB_MASTER );
+               }
                if ( isset( $param['offset'] ) ) { # Tell pager to ignore WebRequest offset
                        $pager->setOffset( $param['offset'] );
                }
index 7f108c8..a608657 100644 (file)
@@ -307,27 +307,27 @@ class BitmapHandler extends ImageHandler {
                global $wgSharpenReductionThreshold, $wgSharpenParameter, $wgMaxAnimatedGifArea,
                        $wgImageMagickTempDir, $wgImageMagickConvertCommand;
 
-               $quality = '';
-               $sharpen = '';
+               $quality = array();
+               $sharpen = array();
                $scene = false;
-               $animation_pre = '';
-               $animation_post = '';
-               $decoderHint = '';
+               $animation_pre = array();
+               $animation_post = array();
+               $decoderHint = array();
                if ( $params['mimeType'] == 'image/jpeg' ) {
-                       $quality = "-quality 80"; // 80%
+                       $quality = array( '-quality', '80' ); // 80%
                        # Sharpening, see bug 6193
                        if ( ( $params['physicalWidth'] + $params['physicalHeight'] )
                                / ( $params['srcWidth'] + $params['srcHeight'] )
                                < $wgSharpenReductionThreshold
                        ) {
-                               $sharpen = "-sharpen " . wfEscapeShellArg( $wgSharpenParameter );
+                               $sharpen = array( '-sharpen', $wgSharpenParameter );
                        }
                        if ( version_compare( $this->getMagickVersion(), "6.5.6" ) >= 0 ) {
                                // JPEG decoder hint to reduce memory, available since IM 6.5.6-2
-                               $decoderHint = "-define jpeg:size={$params['physicalDimensions']}";
+                               $decoderHint = array( '-define', "jpeg:size={$params['physicalDimensions']}" );
                        }
                } elseif ( $params['mimeType'] == 'image/png' ) {
-                       $quality = "-quality 95"; // zlib 9, adaptive filtering
+                       $quality = array( '-quality', '95' ); // zlib 9, adaptive filtering
 
                } elseif ( $params['mimeType'] == 'image/gif' ) {
                        if ( $this->getImageArea( $image ) > $wgMaxAnimatedGifArea ) {
@@ -336,15 +336,15 @@ class BitmapHandler extends ImageHandler {
                                $scene = 0;
                        } elseif ( $this->isAnimatedImage( $image ) ) {
                                // Coalesce is needed to scale animated GIFs properly (bug 1017).
-                               $animation_pre = '-coalesce';
+                               $animation_pre = array( '-coalesce' );
                                // We optimize the output, but -optimize is broken,
                                // use optimizeTransparency instead (bug 11822)
                                if ( version_compare( $this->getMagickVersion(), "6.3.5" ) >= 0 ) {
-                                       $animation_post = '-fuzz 5% -layers optimizeTransparency';
+                                       $animation_post = array( '-fuzz', '5%', '-layers', 'optimizeTransparency' );
                                }
                        }
                } elseif ( $params['mimeType'] == 'image/x-xcf' ) {
-                       $animation_post = '-layers merge';
+                       $animation_post = array( '-layers', 'merge' );
                }
 
                // Use one thread only, to avoid deadlock bugs on OOM
@@ -356,26 +356,28 @@ class BitmapHandler extends ImageHandler {
                $rotation = $this->getRotation( $image );
                list( $width, $height ) = $this->extractPreRotationDimensions( $params, $rotation );
 
-               $cmd =
-                       wfEscapeShellArg( $wgImageMagickConvertCommand ) .
+               $cmd = call_user_func_array( 'wfEscapeShellArg', array_merge(
+                       array( $wgImageMagickConvertCommand ),
+                       $quality,
                        // Specify white background color, will be used for transparent images
                        // in Internet Explorer/Windows instead of default black.
-                       " {$quality} -background white" .
-                       " {$decoderHint} " .
-                       wfEscapeShellArg( $this->escapeMagickInput( $params['srcPath'], $scene ) ) .
-                       " {$animation_pre}" .
+                       array( '-background', 'white' ),
+                       $decoderHint,
+                       array( $this->escapeMagickInput( $params['srcPath'], $scene ) ),
+                       $animation_pre,
                        // For the -thumbnail option a "!" is needed to force exact size,
                        // or ImageMagick may decide your ratio is wrong and slice off
                        // a pixel.
-                       " -thumbnail " . wfEscapeShellArg( "{$width}x{$height}!" ) .
+                       array( '-thumbnail', "{$width}x{$height}!" ),
                        // Add the source url as a comment to the thumb, but don't add the flag if there's no comment
                        ( $params['comment'] !== ''
-                               ? " -set comment " . wfEscapeShellArg( $this->escapeMagickProperty( $params['comment'] ) )
-                               : '' ) .
-                       " -depth 8 $sharpen " .
-                       " -rotate -$rotation " .
-                       " {$animation_post} " .
-                       wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) );
+                               ? array( '-set', 'comment', $this->escapeMagickProperty( $params['comment'] ) )
+                               : array() ),
+                       array( '-depth', 8 ),
+                       $sharpen,
+                       array( '-rotate', "-$rotation" ),
+                       $animation_post,
+                       array( $this->escapeMagickOutput( $params['dstPath'] ) ) ) );
 
                wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
                wfProfileIn( 'convert' );
@@ -485,8 +487,8 @@ class BitmapHandler extends ImageHandler {
                $dst = wfEscapeShellArg( $params['dstPath'] );
                $cmd = $wgCustomConvertCommand;
                $cmd = str_replace( '%s', $src, str_replace( '%d', $dst, $cmd ) ); # Filenames
-               $cmd = str_replace( '%h', $params['physicalHeight'],
-                       str_replace( '%w', $params['physicalWidth'], $cmd ) ); # Size
+               $cmd = str_replace( '%h', wfEscapeShellArg( $params['physicalHeight'] ),
+                       str_replace( '%w', wfEscapeShellArg( $params['physicalWidth'] ), $cmd ) ); # Size
                wfDebug( __METHOD__ . ": Running custom convert command $cmd\n" );
                wfProfileIn( 'convert' );
                $retval = 0;
@@ -790,7 +792,7 @@ class BitmapHandler extends ImageHandler {
                        case 'im':
                                $cmd = wfEscapeShellArg( $wgImageMagickConvertCommand ) . " " .
                                        wfEscapeShellArg( $this->escapeMagickInput( $params['srcPath'], $scene ) ) .
-                                       " -rotate -$rotation " .
+                                       " -rotate " . wfEscapeShellArg( "-$rotation" ) . " " .
                                        wfEscapeShellArg( $this->escapeMagickOutput( $params['dstPath'] ) );
                                wfDebug( __METHOD__ . ": running ImageMagick: $cmd\n" );
                                wfProfileIn( 'convert' );
index 7da5a4c..1202c9a 100644 (file)
@@ -180,9 +180,12 @@ class DjVuHandler extends ImageHandler {
                $srcPath = $image->getLocalRefPath();
                # Use a subshell (brackets) to aggregate stderr from both pipeline commands
                # before redirecting it to the overall stdout. This works in both Linux and Windows XP.
-               $cmd = '(' . wfEscapeShellArg( $wgDjvuRenderer ) . " -format=ppm -page={$page}" .
-                       " -size={$params['physicalWidth']}x{$params['physicalHeight']} " .
-                       wfEscapeShellArg( $srcPath );
+               $cmd = '(' . wfEscapeShellArg(
+                       $wgDjvuRenderer,
+                       "-format=ppm",
+                       "-page={$page}",
+                       "-size={$params['physicalWidth']}x{$params['physicalHeight']}",
+                       $srcPath );
                if ( $wgDjvuPostProcessor ) {
                        $cmd .= " | {$wgDjvuPostProcessor}";
                }
index 4dd79a8..8a12e7e 100644 (file)
@@ -93,6 +93,7 @@ abstract class ImageHandler extends MediaHandler {
                if ( !isset( $params['page'] ) ) {
                        $params['page'] = 1;
                } else {
+                       $params['page'] = intval( $params['page'] );
                        if ( $params['page'] > $image->pageCount() ) {
                                $params['page'] = $image->pageCount();
                        }
index e845b55..2c90339 100644 (file)
@@ -677,9 +677,7 @@ class SqlBagOStuff extends BagOStuff {
        public function createTables() {
                for ( $serverIndex = 0; $serverIndex < $this->numServers; $serverIndex++ ) {
                        $db = $this->getDB( $serverIndex );
-                       if ( $db->getType() !== 'mysql'
-                               || version_compare( $db->getServerVersion(), '4.1.0', '<' )
-                       ) {
+                       if ( $db->getType() !== 'mysql' ) {
                                throw new MWException( __METHOD__ . ' is not supported on this DB server' );
                        }
 
index 2ab1d89..7c6dde6 100644 (file)
@@ -164,11 +164,6 @@ class ParserOptions {
         */
        var $mNumberHeadings;
 
-       /**
-        * User math preference (as integer). Not used (1.19)
-        */
-       var $mMath;
-
        /**
         * Thumb size preferred by the user.
         */
@@ -240,9 +235,6 @@ class ParserOptions {
        function getExternalLinkTarget()            { return $this->mExternalLinkTarget; }
        function getDisableContentConversion()      { return $this->mDisableContentConversion; }
        function getDisableTitleConversion()        { return $this->mDisableTitleConversion; }
-       /** @deprecated since 1.22 use User::getOption('math') instead */
-       function getMath()                          { $this->optionUsed( 'math' );
-                                                                                                 return $this->mMath; }
        function getThumbSize()                     { $this->optionUsed( 'thumbsize' );
                                                                                                  return $this->mThumbSize; }
        function getStubThreshold()                 { $this->optionUsed( 'stubthreshold' );
@@ -329,8 +321,6 @@ class ParserOptions {
        function setExternalLinkTarget( $x )        { return wfSetVar( $this->mExternalLinkTarget, $x ); }
        function disableContentConversion( $x = true ) { return wfSetVar( $this->mDisableContentConversion, $x ); }
        function disableTitleConversion( $x = true ) { return wfSetVar( $this->mDisableTitleConversion, $x ); }
-       /** @deprecated since 1.22 */
-       function setMath( $x )                      { return wfSetVar( $this->mMath, $x ); }
        function setUserLang( $x )                  {
                if ( is_string( $x ) ) {
                        $x = Language::factory( $x );
@@ -441,7 +431,6 @@ class ParserOptions {
 
                $this->mUser = $user;
                $this->mNumberHeadings = $user->getOption( 'numberheadings' );
-               $this->mMath = $user->getOption( 'math' );
                $this->mThumbSize = $user->getOption( 'thumbsize' );
                $this->mStubThreshold = $user->getStubThreshold();
                $this->mUserLang = $lang;
@@ -459,8 +448,9 @@ class ParserOptions {
 
        /**
         * Called when an option is accessed.
+        * @param string $optionName name of the option
         */
-       protected function optionUsed( $optionName ) {
+       public function optionUsed( $optionName ) {
                if ( $this->onAccessCallback ) {
                        call_user_func( $this->onAccessCallback, $optionName );
                }
@@ -473,7 +463,7 @@ class ParserOptions {
         * @return array
         */
        public static function legacyOptions() {
-               return array( 'math', 'stubthreshold', 'numberheadings', 'userlang', 'thumbsize', 'editsection', 'printable' );
+               return array( 'stubthreshold', 'numberheadings', 'userlang', 'thumbsize', 'editsection', 'printable' );
        }
 
        /**
@@ -495,13 +485,10 @@ class ParserOptions {
        public function optionsHash( $forOptions, $title = null ) {
                global $wgRenderHashAppend;
 
-               $confstr = '';
-
-               if ( in_array( 'math', $forOptions ) ) {
-                       $confstr .= $this->mMath;
-               } else {
-                       $confstr .= '*';
-               }
+               // FIXME: Once the cache key is reorganized this argument
+               // can be dropped. It was used when the math extension was
+               // part of core.
+               $confstr = '*';
 
                // Space assigned for the stubthreshold but unused
                // since it disables the parser cache, its value will always
@@ -561,7 +548,7 @@ class ParserOptions {
 
                // Give a chance for extensions to modify the hash, if they have
                // extra options or other effects on the parser cache.
-               wfRunHooks( 'PageRenderingHash', array( &$confstr, $this->getUser() ) );
+               wfRunHooks( 'PageRenderingHash', array( &$confstr, $this->getUser(), &$forOptions ) );
 
                // Make it a valid memcached key fragment
                $confstr = str_replace( ' ', '_', $confstr );
index 424afce..8ce0ca7 100644 (file)
@@ -74,9 +74,6 @@ class ResourceLoaderUserCSSPrefsModule extends ResourceLoaderModule {
                        $rules[] = 'a:lang(ar), a:lang(kk-arab), a:lang(mzn), ' .
                        'a:lang(ps), a:lang(ur) { text-decoration: none; }';
                }
-               if ( $options['justify'] ) {
-                       $rules[] = "#article, #bodyContent, #mw_content { text-align: justify; }\n";
-               }
                if ( $options['editfont'] !== 'default' ) {
                        // Double-check that $options['editfont'] consists of safe characters only
                        if ( preg_match( '/^[a-zA-Z0-9_, -]+$/', $options['editfont'] ) ) {
index 33fcd8c..2b149cd 100644 (file)
@@ -472,7 +472,6 @@ class SearchEngine {
                }
 
                $search = new $class( $dbr );
-               $search->setLimitOffset( 0, 0 );
                return $search;
        }
 
index d5ec18c..c088adb 100644 (file)
@@ -31,20 +31,64 @@ abstract class ChangesListSpecialPage extends SpecialPage {
        var $rcSubpage, $rcOptions; // @todo Rename these, make protected
        protected $customFilters;
 
+       /**
+        * The feed format to output as (either 'rss' or 'atom'), or null if no
+        * feed output was requested
+        *
+        * @var string $feedFormat
+        */
+       protected $feedFormat;
+
        /**
         * Main execution point
-        * @todo This should totally do things
         *
         * @param string $subpage
         */
        public function execute( $subpage ) {
                $this->rcSubpage = $subpage;
-               throw new MWException( "Not implemented" );
+               $this->feedFormat = $this->including() ? null : $this->getRequest()->getVal( 'feed' );
+               if ( $this->feedFormat !== 'atom' && $this->feedFormat !== 'rss' ) {
+                       $this->feedFormat = null;
+               }
+
+               $this->setHeaders();
+               $this->outputHeader();
+               $this->addModules();
+
+               $opts = $this->getOptions();
+               // Fetch results, prepare a batch link existence check query
+               $conds = $this->buildMainQueryConds( $opts );
+               $rows = $this->doMainQuery( $conds, $opts );
+               if ( $rows === false ) {
+                       if ( !$this->including() ) {
+                               $this->doHeader( $opts );
+                       }
+
+                       return;
+               }
+
+               if ( !$this->feedFormat ) {
+                       $batch = new LinkBatch;
+                       foreach ( $rows as $row ) {
+                               $batch->add( NS_USER, $row->rc_user_text );
+                               $batch->add( NS_USER_TALK, $row->rc_user_text );
+                               $batch->add( $row->rc_namespace, $row->rc_title );
+                       }
+                       $batch->execute();
+               }
+               if ( $this->feedFormat ) {
+                       list( $changesFeed, $formatter ) = $this->getFeedObject( $this->feedFormat );
+                       /** @var ChangesFeed $changesFeed */
+                       $changesFeed->execute( $formatter, $rows, $this->checkLastModified( $this->feedFormat ), $opts );
+               } else {
+                       $this->webOutput( $rows, $opts );
+               }
+
+               $rows->free();
        }
 
        /**
         * Get the current FormOptions for this request
-        * @todo Not called by anything, should be called by execute()
         *
         * @return FormOptions
         */
@@ -83,13 +127,20 @@ abstract class ChangesListSpecialPage extends SpecialPage {
 
        /**
         * Get a FormOptions object containing the default options. By default returns some basic options,
-        * you might not call parent method and discard them.
+        * you might want to not call parent method and discard them, or to override default values.
         *
         * @return FormOptions
         */
        public function getDefaultOptions() {
                $opts = new FormOptions();
 
+               $opts->add( 'hideminor', false );
+               $opts->add( 'hidebots', false );
+               $opts->add( 'hideanons', false );
+               $opts->add( 'hideliu', false );
+               $opts->add( 'hidepatrolled', false );
+               $opts->add( 'hidemyself', false );
+
                $opts->add( 'namespace', '', FormOptions::INTNULL );
                $opts->add( 'invert', false );
                $opts->add( 'associated', false );
@@ -141,18 +192,84 @@ abstract class ChangesListSpecialPage extends SpecialPage {
 
        /**
         * Return an array of conditions depending of options set in $opts
-        * @todo This should build some basic conditions here…
-        * @todo Not called by anything, should be called by execute()
+        * @todo Whyyyy is this mutating $opts…
         *
         * @param FormOptions $opts
         * @return array
         */
-       abstract public function buildMainQueryConds( FormOptions $opts );
+       public function buildMainQueryConds( FormOptions $opts ) {
+               $dbr = $this->getDB();
+               $user = $this->getUser();
+               $conds = array();
+
+               // It makes no sense to hide both anons and logged-in users
+               // Where this occurs, force anons to be shown
+               $botsOnly = false;
+               if ( $opts['hideanons'] && $opts['hideliu'] ) {
+                       // Check if the user wants to show bots only
+                       if ( $opts['hidebots'] ) {
+                               $opts['hideanons'] = false;
+                       } else {
+                               $botsOnly = true;
+                       }
+               }
+
+               // Toggles
+               if ( $opts['hideminor'] ) {
+                       $conds['rc_minor'] = 0;
+               }
+               if ( $opts['hidebots'] ) {
+                       $conds['rc_bot'] = 0;
+               }
+               if ( $user->useRCPatrol() && $opts['hidepatrolled'] ) {
+                       $conds['rc_patrolled'] = 0;
+               }
+               if ( $botsOnly ) {
+                       $conds['rc_bot'] = 1;
+               } else {
+                       if ( $opts['hideliu'] ) {
+                               $conds[] = 'rc_user = 0';
+                       }
+                       if ( $opts['hideanons'] ) {
+                               $conds[] = 'rc_user != 0';
+                       }
+               }
+               if ( $opts['hidemyself'] ) {
+                       if ( $user->getId() ) {
+                               $conds[] = 'rc_user != ' . $dbr->addQuotes( $user->getId() );
+                       } else {
+                               $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $user->getName() );
+                       }
+               }
+
+               // Namespace filtering
+               if ( $opts['namespace'] !== '' ) {
+                       $selectedNS = $dbr->addQuotes( $opts['namespace'] );
+                       $operator = $opts['invert'] ? '!=' : '=';
+                       $boolean = $opts['invert'] ? 'AND' : 'OR';
+
+                       // Namespace association (bug 2429)
+                       if ( !$opts['associated'] ) {
+                               $condition = "rc_namespace $operator $selectedNS";
+                       } else {
+                               // Also add the associated namespace
+                               $associatedNS = $dbr->addQuotes(
+                                       MWNamespace::getAssociated( $opts['namespace'] )
+                               );
+                               $condition = "(rc_namespace $operator $selectedNS "
+                                       . $boolean
+                                       . " rc_namespace $operator $associatedNS)";
+                       }
+
+                       $conds[] = $condition;
+               }
+
+               return $conds;
+       }
 
        /**
         * Process the query
         * @todo This should build some basic processing here…
-        * @todo Not called by anything, should be called by execute()
         *
         * @param array $conds
         * @param FormOptions $opts
@@ -160,12 +277,20 @@ abstract class ChangesListSpecialPage extends SpecialPage {
         */
        abstract public function doMainQuery( $conds, $opts );
 
+       /**
+        * Return a DatabaseBase object for reading
+        *
+        * @return DatabaseBase
+        */
+       protected function getDB() {
+               return wfGetDB( DB_SLAVE );
+       }
+
        /**
         * Send output to the OutputPage object, only called if not used feeds
         * @todo This should do most, if not all, of the outputting now done by subclasses
-        * @todo Not called by anything, should be called by execute()
         *
-        * @param array $rows Database rows
+        * @param ResultWrapper $rows Database rows
         * @param FormOptions $opts
         */
        abstract public function webOutput( $rows, $opts );
@@ -278,7 +403,6 @@ abstract class ChangesListSpecialPage extends SpecialPage {
 
        /**
         * Add page-specific modules.
-        * @todo Not called by anything, should be called by execute()
         */
        protected function addModules() {
                $out = $this->getOutput();
@@ -287,6 +411,30 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                $out->addModules( 'mediawiki.special.changeslist.legend.js' );
        }
 
+       /**
+        * Return an array with a ChangesFeed object and ChannelFeed object.
+        *
+        * This is intentionally not abstract not to require subclasses which don't
+        * use feeds functionality to implement it.
+        *
+        * @param string $feedFormat Feed's format (either 'rss' or 'atom')
+        * @return array
+        */
+       public function getFeedObject( $feedFormat ) {
+               throw new MWException( "Not implemented" );
+       }
+
+       /**
+        * Get last-modified date, for client caching. Not implemented by default
+        * (returns current time).
+        *
+        * @param string $feedFormat
+        * @return string|bool
+        */
+       public function checkLastModified( $feedFormat ) {
+               return wfTimestampNow();
+       }
+
        protected function getGroupName() {
                return 'changes';
        }
index dcf5f67..792d0a6 100644 (file)
@@ -154,6 +154,7 @@ class SpecialPageFactory {
 
                // Unlisted / redirects
                'Blankpage'                 => 'SpecialBlankpage',
+               'Diff'                      => 'SpecialDiff',
                'Emailuser'                 => 'SpecialEmailUser',
                'Movepage'                  => 'MovePageForm',
                'Mycontributions'           => 'SpecialMycontributions',
index 6b56c2f..08768b6 100644 (file)
@@ -27,7 +27,7 @@
  * @ingroup SpecialPage
  */
 
-class SpecialContributions extends SpecialPage {
+class SpecialContributions extends IncludableSpecialPage {
        protected $opts;
 
        public function __construct() {
@@ -63,8 +63,9 @@ class SpecialContributions extends SpecialPage {
                $this->opts['deletedOnly'] = $request->getBool( 'deletedOnly' );
 
                if ( !strlen( $target ) ) {
-                       $out->addHTML( $this->getForm() );
-
+                       if ( !$this->including() ) {
+                               $out->addHTML( $this->getForm() );
+                       }
                        return;
                }
 
@@ -169,8 +170,9 @@ class SpecialContributions extends SpecialPage {
                $this->addFeedLinks( array( 'action' => 'feedcontributions', 'user' => $target ) );
 
                if ( wfRunHooks( 'SpecialContributionsBeforeMainOutput', array( $id, $userObj, $this ) ) ) {
-                       $out->addHTML( $this->getForm() );
-
+                       if ( !$this->including() ) {
+                               $out->addHTML( $this->getForm() );
+                       }
                        $pager = new ContribsPager( $this->getContext(), array(
                                'target' => $target,
                                'contribs' => $this->opts['contribs'],
@@ -214,10 +216,12 @@ class SpecialContributions extends SpecialPage {
                        }
 
                        if ( $message ) {
-                               if ( !$this->msg( $message, $target )->isDisabled() ) {
-                                       $out->wrapWikiMsg(
-                                               "<div class='mw-contributions-footer'>\n$1\n</div>",
-                                               array( $message, $target ) );
+                               if ( !$this->including() ) {
+                                       if ( !$this->msg( $message, $target )->isDisabled() ) {
+                                               $out->wrapWikiMsg(
+                                                       "<div class='mw-contributions-footer'>\n$1\n</div>",
+                                                       array( $message, $target ) );
+                                       }
                                }
                        }
                }
diff --git a/includes/specials/SpecialDiff.php b/includes/specials/SpecialDiff.php
new file mode 100644 (file)
index 0000000..bc0d7e3
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Redirect from Special:Diff/### to index.php?diff=### and
+ * from Special:Diff/###/### to index.php?oldid=###&diff=###.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * Redirect from Special:Diff/### to index.php?diff=### and
+ * from Special:Diff/###/### to index.php?oldid=###&diff=###.
+ *
+ * All of the following are valid usages:
+ * - [[Special:Diff/12345]] (diff of a revision with the previous one)
+ * - [[Special:Diff/12345/prev]] (diff of a revision with the previous one as well)
+ * - [[Special:Diff/12345/next]] (diff of a revision with the next one)
+ * - [[Special:Diff/12345/cur]] (diff of a revision with the latest one of that page)
+ * - [[Special:Diff/12345/98765]] (diff between arbitrary two revisions)
+ *
+ * @ingroup SpecialPage
+ * @since 1.23
+ */
+class SpecialDiff extends RedirectSpecialPage {
+       function __construct() {
+               parent::__construct( 'Diff' );
+               $this->mAllowedRedirectParams = array();
+       }
+
+       function getRedirect( $subpage ) {
+               $parts = explode( '/', $subpage );
+
+               // Try to parse the values given, generating somewhat pretty URLs if possible
+               if ( count( $parts ) === 1 ) {
+                       $this->mAddedRedirectParams['diff'] = $parts[0];
+               } elseif ( count( $parts ) === 2 ) {
+                       $this->mAddedRedirectParams['oldid'] = $parts[0];
+                       $this->mAddedRedirectParams['diff'] = $parts[1];
+               } else {
+                       // Wrong number of parameters, bail out
+                       throw new ErrorPageError( 'nopagetitle', 'nopagetext' );
+               }
+
+               return true;
+       }
+}
index 0d4641b..f61a115 100644 (file)
@@ -44,6 +44,7 @@ class MostlinkedCategoriesPage extends QueryPage {
                        'fields' => array( 'title' => 'cat_title',
                                'namespace' => NS_CATEGORY,
                                'value' => 'cat_pages' ),
+                       'conds' => array( 'cat_pages > 0' ),
                );
        }
 
index c6307f0..4548b63 100644 (file)
@@ -264,6 +264,7 @@ class SpecialPrefixindex extends SpecialAllpages {
                                        'from' => $s->page_title,
                                        'prefix' => $prefix,
                                        'hideredirects' => $this->hideRedirects,
+                                       'stripprefix' => $this->stripPrefix,
                                );
 
                                if ( $namespace || $prefix == '' ) {
index 4f89c00..fdf8dcb 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialRecentChanges extends ChangesListSpecialPage {
-       /**
-        * The feed format to output as (either 'rss' or 'atom'), or null if no
-        * feed output was requested
-        *
-        * @var string $feedFormat
-        */
-       protected $feedFormat;
 
        public function __construct( $name = 'Recentchanges', $restriction = '' ) {
                parent::__construct( $name, $restriction );
@@ -45,51 +38,15 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @param string $subpage
         */
        public function execute( $subpage ) {
-               $this->rcSubpage = $subpage;
-               $this->feedFormat = $this->including() ? null : $this->getRequest()->getVal( 'feed' );
-
-               # 10 seconds server-side caching max
+               // 10 seconds server-side caching max
                $this->getOutput()->setSquidMaxage( 10 );
-               # Check if the client has a cached version
+               // Check if the client has a cached version
                $lastmod = $this->checkLastModified( $this->feedFormat );
                if ( $lastmod === false ) {
                        return;
                }
 
-               $opts = $this->getOptions();
-               $this->setHeaders();
-               $this->outputHeader();
-               $this->addModules();
-
-               // Fetch results, prepare a batch link existence check query
-               $conds = $this->buildMainQueryConds( $opts );
-               $rows = $this->doMainQuery( $conds, $opts );
-               if ( $rows === false ) {
-                       if ( !$this->including() ) {
-                               $this->doHeader( $opts );
-                       }
-
-                       return;
-               }
-
-               if ( !$this->feedFormat ) {
-                       $batch = new LinkBatch;
-                       foreach ( $rows as $row ) {
-                               $batch->add( NS_USER, $row->rc_user_text );
-                               $batch->add( NS_USER_TALK, $row->rc_user_text );
-                               $batch->add( $row->rc_namespace, $row->rc_title );
-                       }
-                       $batch->execute();
-               }
-               if ( $this->feedFormat ) {
-                       list( $changesFeed, $formatter ) = $this->getFeedObject( $this->feedFormat );
-                       /** @var ChangesFeed $changesFeed */
-                       $changesFeed->execute( $formatter, $rows, $lastmod, $opts );
-               } else {
-                       $this->webOutput( $rows, $opts );
-               }
-
-               $rows->free();
+               parent::execute( $subpage );
        }
 
        /**
@@ -191,26 +148,14 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
        /**
         * Return an array of conditions depending of options set in $opts
+        * @todo Whyyyy is this mutating $opts…
         *
         * @param FormOptions $opts
         * @return array
         */
        public function buildMainQueryConds( FormOptions $opts ) {
-               $dbr = wfGetDB( DB_SLAVE );
-               $conds = array();
-
-               # It makes no sense to hide both anons and logged-in users
-               # Where this occurs, force anons to be shown
-               $forcebot = false;
-               if ( $opts['hideanons'] && $opts['hideliu'] ) {
-                       # Check if the user wants to show bots only
-                       if ( $opts['hidebots'] ) {
-                               $opts['hideanons'] = false;
-                       } else {
-                               $forcebot = true;
-                               $opts['hidebots'] = false;
-                       }
-               }
+               $dbr = $this->getDB();
+               $conds = parent::buildMainQueryConds( $opts );
 
                // Calculate cutoff
                $cutoff_unixtime = time() - ( $opts['days'] * 86400 );
@@ -226,59 +171,6 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
                $conds[] = 'rc_timestamp >= ' . $dbr->addQuotes( $cutoff );
 
-               $hidePatrol = $this->getUser()->useRCPatrol() && $opts['hidepatrolled'];
-               $hideLoggedInUsers = $opts['hideliu'] && !$forcebot;
-               $hideAnonymousUsers = $opts['hideanons'] && !$forcebot;
-
-               if ( $opts['hideminor'] ) {
-                       $conds['rc_minor'] = 0;
-               }
-               if ( $opts['hidebots'] ) {
-                       $conds['rc_bot'] = 0;
-               }
-               if ( $hidePatrol ) {
-                       $conds['rc_patrolled'] = 0;
-               }
-               if ( $forcebot ) {
-                       $conds['rc_bot'] = 1;
-               }
-               if ( $hideLoggedInUsers ) {
-                       $conds[] = 'rc_user = 0';
-               }
-               if ( $hideAnonymousUsers ) {
-                       $conds[] = 'rc_user != 0';
-               }
-
-               if ( $opts['hidemyself'] ) {
-                       if ( $this->getUser()->getId() ) {
-                               $conds[] = 'rc_user != ' . $dbr->addQuotes( $this->getUser()->getId() );
-                       } else {
-                               $conds[] = 'rc_user_text != ' . $dbr->addQuotes( $this->getUser()->getName() );
-                       }
-               }
-
-               # Namespace filtering
-               if ( $opts['namespace'] !== '' ) {
-                       $selectedNS = $dbr->addQuotes( $opts['namespace'] );
-                       $operator = $opts['invert'] ? '!=' : '=';
-                       $boolean = $opts['invert'] ? 'AND' : 'OR';
-
-                       # namespace association (bug 2429)
-                       if ( !$opts['associated'] ) {
-                               $condition = "rc_namespace $operator $selectedNS";
-                       } else {
-                               # Also add the associated namespace
-                               $associatedNS = $dbr->addQuotes(
-                                       MWNamespace::getAssociated( $opts['namespace'] )
-                               );
-                               $condition = "(rc_namespace $operator $selectedNS "
-                                       . $boolean
-                                       . " rc_namespace $operator $associatedNS)";
-                       }
-
-                       $conds[] = $condition;
-               }
-
                return $conds;
        }
 
@@ -295,7 +187,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                $query_options = array();
 
                $uid = $this->getUser()->getId();
-               $dbr = wfGetDB( DB_SLAVE );
+               $dbr = $this->getDB();
                $limit = $opts['limit'];
                $namespace = $opts['namespace'];
                $invert = $opts['invert'];
@@ -366,7 +258,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                $showWatcherCount = $wgRCShowWatchingUsers && $this->getUser()->getOption( 'shownumberswatching' );
                $watcherCache = array();
 
-               $dbr = wfGetDB( DB_SLAVE );
+               $dbr = $this->getDB();
 
                $counter = 1;
                $list = ChangesList::newFromContext( $this->getContext() );
@@ -580,7 +472,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @return string|bool
         */
        public function checkLastModified( $feedFormat ) {
-               $dbr = wfGetDB( DB_SLAVE );
+               $dbr = $this->getDB();
                $lastmod = $dbr->selectField( 'recentchanges', 'MAX(rc_timestamp)', false, __METHOD__ );
                if ( $feedFormat || !$this->getUser()->useRCPatrol() ) {
                        if ( $lastmod && $this->getOutput()->checkLastModified( $lastmod ) ) {
@@ -593,7 +485,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
        }
 
        /**
-        * Return an array with a ChangesFeed object and ChannelFeed object
+        * Return an array with a ChangesFeed object and ChannelFeed object.
         *
         * @param string $feedFormat Feed's format (either 'rss' or 'atom')
         * @return array
@@ -676,7 +568,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
        /**
         * Filter $rows by categories set in $opts
         *
-        * @param array $rows Database rows
+        * @param ResultWrapper $rows Database rows
         * @param FormOptions $opts
         */
        function filterByCategories( &$rows, FormOptions $opts ) {
index 804f7a9..3599dc6 100644 (file)
@@ -55,6 +55,9 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
        /** The RevDel_List object, storing the list of items to be deleted/undeleted */
        var $list;
 
+       /** Was the DB modified in this request */
+       protected $wasSaved = false;
+
        /**
         * UI labels for each type.
         */
@@ -177,14 +180,24 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                # Show relevant lines from the deletion log
                $deleteLogPage = new LogPage( 'delete' );
                $output->addHTML( "<h2>" . $deleteLogPage->getName()->escaped() . "</h2>\n" );
-               LogEventsList::showLogExtract( $output, 'delete',
-                       $this->targetObj, '', array( 'lim' => 25, 'conds' => $qc ) );
+               LogEventsList::showLogExtract(
+                       $output,
+                       'delete',
+                       $this->targetObj,
+                       '', /* user */
+                       array( 'lim' => 25, 'conds' => $qc, 'useMaster' => $this->wasSaved )
+               );
                # Show relevant lines from the suppression log
                if ( $user->isAllowed( 'suppressionlog' ) ) {
                        $suppressLogPage = new LogPage( 'suppress' );
                        $output->addHTML( "<h2>" . $suppressLogPage->getName()->escaped() . "</h2>\n" );
-                       LogEventsList::showLogExtract( $output, 'suppress',
-                               $this->targetObj, '', array( 'lim' => 25, 'conds' => $qc ) );
+                       LogEventsList::showLogExtract(
+                               $output,
+                               'suppress',
+                               $this->targetObj,
+                               '',
+                               array( 'lim' => 25, 'conds' => $qc, 'useMaster' => $this->wasSaved )
+                       );
                }
        }
 
@@ -523,6 +536,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
        protected function success() {
                $this->getOutput()->setPageTitle( $this->msg( 'actioncomplete' ) );
                $this->getOutput()->wrapWikiMsg( "<span class=\"success\">\n$1\n</span>", $this->typeLabels['success'] );
+               $this->wasSaved = true;
                $this->list->reloadFromMaster();
                $this->showForm();
        }
index 18e777a..9e5143f 100644 (file)
@@ -1109,7 +1109,7 @@ class SpecialSearch extends SpecialPage {
                $out .= Html::hidden( 'fulltext', 'Search' ) . "\n";
                $out .= Xml::submitButton(
                        $this->msg( 'searchbutton' )->text(),
-                       array( 'class' => array( 'mw-ui-button', 'mw-ui-primary' ) )
+                       array( 'class' => array( 'mw-ui-button', 'mw-ui-progressive' ) )
                ) . "\n";
                return $out . $this->didYouMeanHtml;
        }
index c8ba4ac..51d9af3 100644 (file)
@@ -73,7 +73,7 @@ class WantedCategoriesPage extends WantedQueryPage {
                        __METHOD__
                );
                foreach ( $categoryRes as $row ) {
-                       $this->currentCategoryCounts[ $row->cat_title ] = $row->cat_pages;
+                       $this->currentCategoryCounts[ $row->cat_title ] = intval( $row->cat_pages );
                }
 
                // Back to start for display
index c664e31..a98447b 100644 (file)
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @ingroup SpecialPage Watchlist
+ * @ingroup SpecialPage
+ */
+
+/**
+ * A special page that lists last changes made to the wiki,
+ * limited to user-defined list of titles.
+ *
+ * @ingroup SpecialPage
  */
 class SpecialWatchlist extends ChangesListSpecialPage {
        /**
@@ -29,25 +36,20 @@ class SpecialWatchlist extends ChangesListSpecialPage {
        }
 
        /**
-        * Execute
-        * @param $par Parameter passed to the page
+        * Main execution point
+        *
+        * @param string $subpage
         */
-       function execute( $par ) {
-               global $wgRCShowWatchingUsers, $wgEnotifWatchlist, $wgShowUpdatedMarker;
-
-               $user = $this->getUser();
-               $output = $this->getOutput();
+       function execute( $subpage ) {
+               global $wgEnotifWatchlist, $wgShowUpdatedMarker;
 
-               # Anons don't get a watchlist
+               // Anons don't get a watchlist
                $this->requireLogin( 'watchlistanontext' );
 
-               // Check permissions
-               $this->checkPermissions();
-
+               $output = $this->getOutput();
                $request = $this->getRequest();
-               $opts = $this->getOptions();
 
-               $mode = SpecialEditWatchlist::getMode( $request, $par );
+               $mode = SpecialEditWatchlist::getMode( $request, $subpage );
                if ( $mode !== false ) {
                        if ( $mode === SpecialEditWatchlist::EDIT_RAW ) {
                                $title = SpecialPage::getTitleFor( 'EditWatchlist', 'raw' );
@@ -59,6 +61,11 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        return;
                }
 
+               $this->checkPermissions();
+
+               $user = $this->getUser();
+               $opts = $this->getOptions();
+
                if ( ( $wgEnotifWatchlist || $wgShowUpdatedMarker ) && $request->getVal( 'reset' ) &&
                        $request->wasPosted() )
                {
@@ -67,39 +74,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        return;
                }
 
-               $this->setHeaders();
-               $this->outputHeader();
-               $this->addModules();
-
-               // Fetch results, prepare a batch link existence check query
-               $conds = $this->buildMainQueryConds( $opts );
-               $rows = $this->doMainQuery( $conds, $opts );
-               $this->numRows = $rows->numRows(); // TODO kill me
-               if ( $rows === false ) {
-                       $this->doHeader( $opts );
-
-                       return;
-               }
-
-               $feedFormat = $this->getRequest()->getVal( 'feed' );
-               if ( !$feedFormat ) {
-                       $batch = new LinkBatch;
-                       foreach ( $rows as $row ) {
-                               $batch->add( NS_USER, $row->rc_user_text );
-                               $batch->add( NS_USER_TALK, $row->rc_user_text );
-                               $batch->add( $row->rc_namespace, $row->rc_title );
-                       }
-                       $batch->execute();
-               }
-               if ( $feedFormat ) {
-                       list( $changesFeed, $formatter ) = $this->getFeedObject( $feedFormat );
-                       /** @var ChangesFeed $changesFeed */
-                       $changesFeed->execute( $formatter, $rows, $lastmod, $opts );
-               } else {
-                       $this->webOutput( $rows, $opts );
-               }
-
-               $rows->free();
+               parent::execute( $subpage );
        }
 
        /**
@@ -180,57 +155,14 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * @return array
         */
        public function buildMainQueryConds( FormOptions $opts ) {
-               $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
-               $conds = array();
-               $user = $this->getUser();
+               $dbr = $this->getDB();
+               $conds = parent::buildMainQueryConds( $opts );
 
                // Calculate cutoff
                if ( $opts['days'] > 0 ) {
                        $conds[] = 'rc_timestamp > ' . $dbr->addQuotes( $dbr->timestamp( time() - intval( $opts['days'] * 86400 ) ) );
                }
 
-               # Toggles
-               if ( $opts['hidemyself'] ) {
-                       $conds[] = 'rc_user != ' . $user->getId();
-               }
-               if ( $opts['hidebots'] ) {
-                       $conds[] = 'rc_bot = 0';
-               }
-               if ( $opts['hideminor'] ) {
-                       $conds[] = 'rc_minor = 0';
-               }
-               if ( $opts['hideliu'] ) {
-                       $conds[] = 'rc_user = 0';
-               }
-               if ( $opts['hideanons'] ) {
-                       $conds[] = 'rc_user != 0';
-               }
-               if ( $user->useRCPatrol() && $opts['hidepatrolled'] ) {
-                       $conds[] = 'rc_patrolled != 1';
-               }
-
-               # Namespace filtering
-               if ( $opts['namespace'] !== '' ) {
-                       $selectedNS = $dbr->addQuotes( $opts['namespace'] );
-                       $operator = $opts['invert'] ? '!=' : '=';
-                       $boolean = $opts['invert'] ? 'AND' : 'OR';
-
-                       # namespace association (bug 2429)
-                       if ( !$opts['associated'] ) {
-                               $condition = "rc_namespace $operator $selectedNS";
-                       } else {
-                               # Also add the associated namespace
-                               $associatedNS = $dbr->addQuotes(
-                                       MWNamespace::getAssociated( $opts['namespace'] )
-                               );
-                               $condition = "(rc_namespace $operator $selectedNS "
-                                       . $boolean
-                                       . " rc_namespace $operator $associatedNS)";
-                       }
-
-                       $conds[] = $condition;
-               }
-
                return $conds;
        }
 
@@ -244,7 +176,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
        public function doMainQuery( $conds, $opts ) {
                global $wgShowUpdatedMarker;
 
-               $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
+               $dbr = $this->getDB();
                $user = $this->getUser();
                # Toggle watchlist content (all recent edits or just the latest)
                if ( $opts['extended'] ) {
@@ -319,16 +251,25 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                return $dbr->select( $tables, $fields, $conds, __METHOD__, $options, $join_conds );
        }
 
+       /**
+        * Return a DatabaseBase object for reading
+        *
+        * @return DatabaseBase
+        */
+       protected function getDB() {
+               return wfGetDB( DB_SLAVE, 'watchlist' );
+       }
+
        /**
         * Send output to the OutputPage object, only called if not used feeds
         *
-        * @param array $rows Database rows
+        * @param ResultWrapper $rows Database rows
         * @param FormOptions $opts
         */
        public function webOutput( $rows, $opts ) {
                global $wgShowUpdatedMarker, $wgRCShowWatchingUsers;
 
-               $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
+               $dbr = $this->getDB();
                $user = $this->getUser();
 
                $dbr->dataSeek( $rows, 0 );
@@ -413,8 +354,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
         * @return string XHTML
         */
        public function doHeader( $opts ) {
-               global $wgScript;
-
                $user = $this->getUser();
 
                $this->setTopText( $opts );
@@ -423,7 +362,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $wlInfo = '';
                if ( $opts['days'] > 0 ) {
                        $timestamp = wfTimestampNow();
-                       $wlInfo = $this->msg( 'wlnote' )->numParams( $this->numRows, round( $opts['days'] * 24 ) )->params(
+                       $wlInfo = $this->msg( 'wlnote2' )->numParams( round( $opts['days'] * 24 ) )->params(
                                $lang->userDate( $timestamp, $user ), $lang->userTime( $timestamp, $user ) )->parse() . "<br />\n";
                }
 
@@ -508,7 +447,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $form = "";
                $user = $this->getUser();
 
-               $dbr = wfGetDB( DB_SLAVE, 'watchlist' );
+               $dbr = $this->getDB();
                $numItems = $this->countItems( $dbr );
 
                // Show watchlist header
index 12210d0..0cb83d5 100644 (file)
@@ -254,7 +254,7 @@ class UsercreateTemplate extends BaseTemplate {
                                        $this->getMsg( $this->data['loggedin'] ? 'createacct-another-submit' : 'createacct-submit' ),
                                        'submit',
                                        array(
-                                               'class' => "mw-ui-button mw-ui-big mw-ui-block mw-ui-primary",
+                                               'class' => "mw-ui-button mw-ui-big mw-ui-block mw-ui-constructive",
                                                'id' => 'wpCreateaccount',
                                                'tabindex' => $tabIndex++
                                        )
index 38e071c..e5d8a1c 100644 (file)
@@ -149,7 +149,7 @@ class UserloginTemplate extends BaseTemplate {
                                echo Html::input( 'wpLoginAttempt', $this->getMsg( 'login' )->text(), 'submit', array(
                                        'id' => 'wpLoginAttempt',
                                        'tabindex' => '6',
-                                       'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-primary'
+                                       'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-constructive'
                                ) );
                                ?>
                        </div>
@@ -164,7 +164,7 @@ class UserloginTemplate extends BaseTemplate {
                                        </div>
                                <?php } else { ?>
                                        <div id="mw-createaccount-cta">
-                                               <h3 id="mw-userloginlink"><?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7"  class="mw-ui-button mw-ui-constructive"><?php $this->msg( 'userlogin-joinproject' ); ?></a></h3>
+                                               <h3 id="mw-userloginlink"><?php $this->msg( 'userlogin-noaccount' ); ?><a href="<?php $this->text( 'createOrLoginHref' ); ?>" id="mw-createaccount-join" tabindex="7"  class="mw-ui-button mw-ui-progressive"><?php $this->msg( 'userlogin-joinproject' ); ?></a></h3>
                                        </div>
                                <?php } ?>
                        <?php } ?>
index 7db6c64..ea11737 100644 (file)
@@ -260,7 +260,7 @@ class UploadStash {
                        'us_key' => $key,
                        'us_orig_path' => $path,
                        'us_path' => $stashPath, // virtual URL
-                       'us_props' => serialize( $fileProps ),
+                       'us_props' => $dbw->encodeBlob( serialize( $fileProps ) ),
                        'us_size' => $fileProps['size'],
                        'us_sha1' => $fileProps['sha1'],
                        'us_mime' => $fileProps['mime'],
index 69da741..2fc7320 100644 (file)
@@ -220,7 +220,6 @@ $messages = array(
 'tog-showtoolbar' => 'Wys redigeergereedskap',
 'tog-editondblclick' => 'Dubbelkliek om te wysig',
 'tog-editsectiononrightclick' => 'Wysig afdeling met regskliek op afdeling se titel (JavaScript)',
-'tog-showtoc' => 'Wys inhoudsopgawe (by bladsye met meer as drie opskrifte)',
 'tog-rememberpassword' => "Onthou dat ek op hierdie rekenaar ingeteken het (vir 'n maksimum van $1 {{PLURAL:$1|dag|dae}})",
 'tog-watchcreations' => 'Voeg bladsye wat ek skep en lêers wat ek oplaai by my dophoulys',
 'tog-watchdefault' => 'Voeg bladsye en lêers wat ek wysig by my dophoulys',
index b9d2c94..e2fd0d6 100644 (file)
@@ -141,7 +141,6 @@ $messages = array(
 'tog-showtoolbar' => "Amostrar a barra de ferramientas d'edición (cal JavaScript)",
 'tog-editondblclick' => 'Activar edición de pachinas fendo-ie doble click (cal JavaScript)',
 'tog-editsectiononrightclick' => "Activar a edición de seccions punchando con o botón dreito d'o ratet <br /> en os títols de seccions (cal JavaScript)",
-'tog-showtoc' => "Amostrar l'endice (ta pachinas con más de 3 seccions)",
 'tog-rememberpassword' => "Remerar o mío nombre d'usuario en iste navegador (como muito por $1 {{PLURAL:$1|día|días}})",
 'tog-watchcreations' => 'Cosirar as pachinas que creye',
 'tog-watchdefault' => 'Cosirar as pachinas que edite',
index de73bc7..0f36188 100644 (file)
@@ -499,7 +499,6 @@ $messages = array(
 'tog-showtoolbar' => 'إظهار شريط التحرير',
 'tog-editondblclick' => 'تعديل الصفحات بالنقر المزدوج',
 'tog-editsectiononrightclick' => 'تفعيل تعديل الأقسام بالنقر باليمين على عناوين الأقسام',
-'tog-showtoc' => 'عرض فهرس المحتويات (للصفحات التي تحتوي على أكثر من 3 عناوين)',
 'tog-rememberpassword' => 'تذكر دخولي بهذا المتصفح (لمدة أقصاها {{PLURAL:$1||يوم واحد|يومان|$1 أيام|$1 يوما|$1 يوم}})',
 'tog-watchcreations' => 'أضف الصفحات التي أنشئها والملفات التي أرفعها إلى قائمة مراقبتي.',
 'tog-watchdefault' => 'أضف الصفحات والملفات التي أعدلها إلى قائمة مراقبتي',
@@ -2622,7 +2621,6 @@ $1',
 'watchmethod-list' => 'فحص الصفحات المراقبة للتعديلات الحديثة',
 'watchlistcontains' => 'تحتوي قائمة مراقبتك على {{PLURAL:$1|لا صفحات|صفحة واحدة|صفحتان|$1 صفحات|$1 صفحة}}.',
 'iteminvalidname' => "مشكلة في المدخل '$1'، اسم غير صحيح...",
-'wlnote' => "بالأسفل {{PLURAL:$1|لا توجد تغييرات|التغيير الأخير|آخر تغييرين|آخر '''$1''' تغييرات|آخر '''$1''' تغييرا|آخر '''$1''' تغيير}} في {{PLURAL:$2||'''الساعة''' الماضية|'''الساعتين''' الماضيتين|ال'''$2''' ساعات الماضية|ال'''$2''' ساعة الماضية}} وفقاً ل$3، $4.",
 'wlshowlast' => 'عرض آخر $1 ساعات $2 أيام $3',
 'watchlist-options' => 'خيارات قائمة المراقبة',
 
@@ -3287,7 +3285,6 @@ $2',
 'tooltip-pt-watchlist' => 'قائمة الصفحات التي تراقب التغييرات التي تحدث بها',
 'tooltip-pt-mycontris' => 'قائمة مساهماتك',
 'tooltip-pt-login' => 'يفضل أن تسجل الدخول، لكنه ليس إلزاميا.',
-'tooltip-pt-anonlogin' => 'من المفضل أن تقوم بتسجيل الدخول، هذا ليس إلزاميا.',
 'tooltip-pt-logout' => 'تسجيل الخروج',
 'tooltip-ca-talk' => 'نقاش عن صفحة المحتوى',
 'tooltip-ca-edit' => 'يمكنك تعديل هذه الصفحة.
@@ -4543,7 +4540,7 @@ $5
 'limitreport-postexpandincludesize' => 'بعد توسيع المساحة الشاملة',
 'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|بايت|بايت}}',
 'limitreport-templateargumentsize' => 'حجم نقاش القالب',
-'limitreport-templateargumentsize-value' => '$1/$2',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|بايت}}',
 'limitreport-expansiondepth' => 'أكثر عمق توسعي',
 'limitreport-expensivefunctioncount' => 'تحليل إحصاء وظيفة مكلف',
 
index 154986d..26a2788 100644 (file)
@@ -313,7 +313,6 @@ $messages = array(
 'tog-showtoolbar' => 'بين شريط التعديل',
 'tog-editondblclick' => 'عدل الصفح لما تدوس مرتين',
 'tog-editsectiononrightclick' => 'اسمح بـ تعديل الاجزاء لما تعمل كليك يمين بـالماوس على عناوين الاجزاء',
-'tog-showtoc' => 'بين جدول المحتويات (بتاع الصفح اللى فيها اكتر من 3 عناوين)',
 'tog-rememberpassword' => ' (لمدة   $1 {{PLURAL:$1|يوم|يوم}})خليك فاكر دخولى على الكمبيوتر دا',
 'tog-watchcreations' => 'زوّد الصفح اللى ابتديتها على ليستة الصفح اللى باراقبها.',
 'tog-watchdefault' => 'زوّد الصفح اللى باعدلها على ليستة الصفح اللى باراقبها',
@@ -2071,7 +2070,6 @@ PICT # misc.
 'watchmethod-list' => 'التشييك فى الصفحات المتراقبة على التعديلات الاخيرة',
 'watchlistcontains' => 'لستة المراقبة بتاعتك فيها $1 {{PLURAL:$1|صفحة|صفحات}}.',
 'iteminvalidname' => "مشكلة فى '$1'، اسم مش صحيح...",
-'wlnote' => "تحت فى {{PLURAL:$1|آخر تغيير|آخر '''$1''' تغيير}} فى آخر {{PLURAL:$2|ساعه|'''$2''' ساعه}}، من الوقت $3، $4.",
 'wlshowlast' => 'عرض اخر $1 ساعات $2 ايام $3',
 'watchlist-options' => 'اختيارات قايمة المراقبة',
 
@@ -2295,7 +2293,7 @@ $1',
 'blanknamespace' => '(رئيسى)',
 
 # Contributions
-'contributions' => 'تعديلات اليوزر {{GENDER:$1|اليوزر|اليوزره}}',
+'contributions' => 'تعديلات {{GENDER:$1|اليوزر|اليوزره}}',
 'contributions-title' => 'مساهمات اليوزر ل$1',
 'mycontris' => 'تعديلاتى',
 'contribsub2' => 'ل{{GENDER:$3|$1}} ($2)',
@@ -2421,7 +2419,7 @@ $1',
 'range_block_disabled' => 'إمكانيةالسيسوب لمنع نطاق متعطلة.',
 'ipb_expiry_invalid' => 'تاريخ الانتهاء مش صحيح.',
 'ipb_expiry_temp' => 'عمليات منع أسماء اليوزرز المستخبية لازم تكون على طول.',
-'ipb_hide_invalid' => 'ماقدرناش نخفى الحساب دا; يمكن يكون عنده تعديلات كتيره قوى.',
+'ipb_hide_invalid' => 'ماقدرناش نخفى الحساب دا؛ هو عنده اكتر من {{PLURAL:$1|تعديل واحد|$1 تعديل}}.',
 'ipb_already_blocked' => '"$1" ممنوع فعلا',
 'ipb-needreblock' => '$1 ممنوع فعلا. عايز تغير الإعدادات؟',
 'ipb-otherblocks-header' => '{{PLURAL:$1||المنع التانى|المنعين التانيين|المنوعات التانيين}}',
@@ -2642,7 +2640,6 @@ $1',
 'tooltip-pt-watchlist' => 'ليستة الصفح اللى بتراقب التعديلات فيها',
 'tooltip-pt-mycontris' => 'ليستة تعديلاتك',
 'tooltip-pt-login' => 'يستحسن تسجل دخولك; لكن, ده مش اجبارى',
-'tooltip-pt-anonlogin' => 'من الأفضل انك تسجل دخولك، لكن ده مش إجبارى.',
 'tooltip-pt-logout' => 'خروج',
 'tooltip-ca-talk' => 'مناقشة صفحة الموضوع',
 'tooltip-ca-edit' => 'ممكن تعدل الصفحه دى.
index 729c63d..fd4dd72 100644 (file)
@@ -193,7 +193,6 @@ $messages = array(
 'tog-showtoolbar' => 'সম্পাদনা দণ্ডিকা দেখুৱাওক',
 'tog-editondblclick' => 'দুবাৰ ক্লিক কৰি পৃষ্ঠা সম্পাদনা কৰিব পাৰি',
 'tog-editsectiononrightclick' => 'অনুচ্ছেদৰ শিৰোনামাত ৰাইট্‌ ক্লিক টিপি সম্পাদনা কৰাটো সক্ৰিয় কৰক',
-'tog-showtoc' => 'শিৰোনামাৰ সূচী দেখুৱাওক (যিবোৰ পৃষ্ঠাত তিনিটাতকৈ বেছি শিৰোনামা আছে)',
 'tog-rememberpassword' => 'মোৰ প্ৰৱেশ এই কম্পিউটাৰত মনত ৰাখক (সৰ্বাধিক $1 {{PLURAL:$1|দিনলৈ|দিনলৈ}})',
 'tog-watchcreations' => 'মই সৃষ্টি সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক',
 'tog-watchdefault' => 'মই সম্পাদনা কৰা সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক',
@@ -2290,7 +2289,6 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'watchmethod-list' => 'লক্ষ্য কৰা পৃষ্ঠাসমূহ শেহতীয়া সম্পাদনাৰ বাবে পৰীক্ষা কৰা হৈছে',
 'watchlistcontains' => 'আপোনাৰ লক্ষ্য-তালিকাত $1 খন {{PLURAL:$1|পৃষ্ঠা|পৃষ্ঠা}} আছে ।',
 'iteminvalidname' => "'$1' আইটেমটোৰ লগত সমস্যা হৈছে, অবৈধ নাম...",
-'wlnote' => "তলত {{PLURAL:$1| হ'ল সৰ্বশেষ পৰিৱৰ্তন|হ'ল সৰ্বশেষ '''$1''' পৰিৱৰ্তনসমূহ}} সৰ্বশেষ {{PLURAL:$2|ঘন্টা|'''$2''' ঘন্টা}}, $3, $4 -ৰ হিচাপে।",
 'wlshowlast' => 'যোৱা $1 ঘণ্টা $2 দিন $3 চাওক',
 'watchlist-options' => 'লক্ষ্য-তালিকা পছন্দসমূহ',
 
@@ -2857,6 +2855,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'allmessages-prefix' => 'উপসৰ্গ দি চেকক',
 'allmessages-language' => 'ভাষা:',
 'allmessages-filter-submit' => 'যাওক',
+'allmessages-filter-translate' => 'ভাঙনি কৰক',
 
 # Thumbnails
 'thumbnail-more' => 'ডাঙৰকৈ চাওক',
@@ -2954,7 +2953,6 @@ $2',
 'tooltip-pt-watchlist' => 'আপুনি সালসলনিৰ গতিবিধি লক্ষ্য কৰি থকা পৃষ্ঠাসমূহৰ সুচী',
 'tooltip-pt-mycontris' => 'আপোনাৰ বৰঙণিৰ তালিকা',
 'tooltip-pt-login' => "বাধ্যতামূলক নহ'লেও প্ৰৱেশ কৰাটো বাঞ্চনীয়",
-'tooltip-pt-anonlogin' => 'বাধ্যতামূলক নহ’লেও প্ৰৱেশ কৰাটো বাঞ্চনীয়',
 'tooltip-pt-logout' => 'প্ৰস্থান',
 'tooltip-ca-talk' => 'সংশ্লিষ্ট প্ৰবন্ধ সম্পৰ্কীয় আলোচনা',
 'tooltip-ca-edit' => 'আপুনি এই পৃষ্ঠাটো সালসলনি কৰিব পাৰে, অনুগ্ৰহ কৰি সালসলনি সাচী থোৱাৰ আগতে খচৰা চাই লব',
@@ -3789,6 +3787,12 @@ $5
 'version-hook-subscribedby' => 'চাবস্ক্ৰাইব কৰিছে',
 'version-version' => '(সংস্কৰণ $1)',
 'version-license' => 'অনুজ্ঞাপত্ৰ',
+'version-ext-license' => 'অনুজ্ঞাপত্ৰ',
+'version-ext-colheader-name' => 'এক্সটেন্‌চন',
+'version-ext-colheader-version' => 'সংস্কৰণ',
+'version-ext-colheader-license' => 'অনুজ্ঞাপত্ৰ',
+'version-ext-colheader-description' => 'বিৱৰণ',
+'version-ext-colheader-credits' => 'লেখকসকল',
 'version-poweredby-credits' => "এই ৱিকি '''[https://www.mediawiki.org/ মিডিয়াৱিকিৰ]''' দ্বাৰা প্ৰচলিত , কপিৰাইট © ২০০১-$1 $2.",
 'version-poweredby-others' => 'অন্য',
 'version-poweredby-translators' => 'translatewiki.net অনুবাদকসকল',
index 1e386a5..f89cc13 100644 (file)
@@ -75,7 +75,6 @@ $messages = array(
 'tog-showtoolbar' => "Amosar la barra de ferramientes d'edición",
 'tog-editondblclick' => 'Editar páxines con doble clic',
 'tog-editsectiononrightclick' => 'Activar la edición de seiciones calcando col botón drechu nos títulos de seición',
-'tog-showtoc' => 'Amosar índiz (pa páxines con más de 3 encabezaos)',
 'tog-rememberpassword' => 'Recordar la mio identificación nesti ordenador (hasta un máximu de $1 {{PLURAL:$1|día|díes}})',
 'tog-watchcreations' => 'Amestar les páxines que creo y los ficheros que cargo a la mio llista de vixilancia',
 'tog-watchdefault' => "Amestar les páxines y ficheros qu'edito a la mio llista de vixilancia",
@@ -636,6 +635,8 @@ P'acabar d'aniciar sesión, tienes de configurar equí una contraseña nueva:",
 'retypenew' => 'Vuelvi a escribir la contraseña nueva:',
 'resetpass_submit' => 'Configurar la contraseña y aniciar sesión',
 'changepassword-success' => '¡Camudóse la contraseña correutamente!',
+'changepassword-throttled' => "Ficisti demasiaos intentos d'aniciu de sesión recientes.
+Por favor espera $1 enantes d'intentalo otra vuelta.",
 'resetpass_forbidden' => 'Nun puen camudase les contraseñes',
 'resetpass-no-info' => "Tienes d'aniciar sesión pa entrar direutamente a esta páxina.",
 'resetpass-submit-loggedin' => 'Camudar la contraseña',
@@ -691,6 +692,8 @@ Contraseña temporal: $2",
 'changeemail-password' => 'La to contraseña en {{SITENAME}}:',
 'changeemail-submit' => 'Camudar el corréu electrónicu',
 'changeemail-cancel' => 'Encaboxar',
+'changeemail-throttled' => "Ficisti demasiaos intentos d'aniciu de sesión.
+Por favor espera $1 enantes d'intentalo otra vuelta.",
 
 # Special:ResetTokens
 'resettokens' => 'Reaniciar los pases',
@@ -2194,7 +2197,6 @@ Los futuro cambeos nesta páxina y na so páxina d\'alderique asociada apaecerá
 'watchmethod-list' => 'comprobando ediciones recientes nes páxines vixilaes',
 'watchlistcontains' => 'La to llista de vixilancia tien $1 {{PLURAL:$1|páxina|páxines}}.',
 'iteminvalidname' => "Problema col elementu '$1', nome non válidu...",
-'wlnote' => "Abaxo {{PLURAL:$1|ta'l caberu cambiu|tán los caberos '''$1''' cambios}} {{PLURAL:$2|na cabera hora|nes caberes '''$2''' hores}}, el día $3 a les $4.",
 'wlshowlast' => 'Amosar les últimes $1 hores $2 díes $3',
 'watchlist-options' => 'Opciones de la llista de vixilancia',
 
@@ -2845,7 +2847,6 @@ Guárdalu nel ordenador y xúbilu equí.",
 'tooltip-pt-watchlist' => 'Llista de les páxines nes que tas vixilando los cambios',
 'tooltip-pt-mycontris' => 'Llista de les tos collaboraciones',
 'tooltip-pt-login' => "T'encamentamos que t'identifiques, anque nun ye obligatorio",
-'tooltip-pt-anonlogin' => "T'encamentamos que t'identifiques, anque nun ye obligatorio.",
 'tooltip-pt-logout' => 'Salir',
 'tooltip-ca-talk' => 'Alderique tocante al conteníu de la páxina',
 'tooltip-ca-edit' => "Pues editar esta páxina. Por favor usa'l botón de vista previa enantes de guardar los cambios.",
@@ -4003,5 +4004,6 @@ En realidá cuasi tolo qu'apaeza ente llaves dobles.",
 'expand_templates_preview' => 'Vista previa',
 
 # Unknown messages
+'createaccount-hook-aborted' => '$1',
 'uploadinvalidxml' => "Nun pudo interpretase'l XML del ficheru cargáu.",
 );
index 8a2394c..fd69777 100644 (file)
@@ -94,7 +94,6 @@ $messages = array(
 'tog-showtoolbar' => 'Redaktə zamanı alətlər qutusunu göstər (JavaScript)',
 'tog-editondblclick' => 'Səhifələri iki kliklə redaktə etməyə başla (JavaScript)',
 'tog-editsectiononrightclick' => 'Bölmələrin redaktəsini başlıqların üzərində sağ klik etməklə mümkün et (JavaScript)',
-'tog-showtoc' => 'Mündəricat siyahısını göstər (3 başlıqdan artıq olan səhifələrdə)',
 'tog-rememberpassword' => 'Məni bu kompyuterdə xatırla (maksimum $1 {{PLURAL:$1|gün|gün}})',
 'tog-watchcreations' => 'Yaratdığım səhifələri izlədiyim səhifələrə əlavə et',
 'tog-watchdefault' => 'Redaktə etdiyim səhifələri izlədiyim səhifələrə əlavə et',
index 8987e70..14417b1 100644 (file)
@@ -98,7 +98,6 @@ $messages = array(
 'tog-showtoolbar' => 'دَییشدیرمه آراج چوبوغونو گؤستر (جاوااسکریپت لازیم‌دیر)',
 'tog-editondblclick' => 'صحیفه‌‌لری ایکی کلیکله دَییشدیر (جاوااسکریپت لازیم‌دیر)',
 'tog-editsectiononrightclick' => 'بؤلوم‌لرین دیشدیرمه‌سینی، باشلیقلارین اوزرینده ساغ‌کلیک ائتمک‌له ایجازه وئر (جاوااسکریپت لازیم‌دیر)',
-'tog-showtoc' => 'ایچینده‌کیلر جدولینی گؤستر (۳-دن آرتیق باشلیقلاری اولان صحیفه‌‌لرده)',
 'tog-rememberpassword' => 'منیم گیریشیمی بو بیلگی‌سایاردا یاددا ساخلا (چوخو {{PLURAL:$1|بیر گونه|$1 گونه}} کیمی)',
 'tog-watchcreations' => 'ياراتدیغیم صحیفه‌‌لری و يوکله‌دیگیم فايل‌لاری ایزله‌مه‌لریمه آرتیر',
 'tog-watchdefault' => 'دَییشدیردیگیم صحیفه‌‌لری و فايل‌لاری ایزله‌دیکلریمه آرتیر',
index 5af0e7a..539f857 100644 (file)
@@ -159,7 +159,6 @@ $messages = array(
 'tog-showtoolbar' => 'Мөхәррирләгән ваҡытта өҫкө ҡоралдар панелен күрһәтергә (JavaScript кәрәк)',
 'tog-editondblclick' => 'Биттәрҙе ике сиртеү менән мөхәррирләргә',
 'tog-editsectiononrightclick' => 'Бүлектәрҙе исемдәренә төрткөнөң уң яғына сиртеп үҙгәртергә',
-'tog-showtoc' => 'Эстәлек күрһәтелһен (3-тән күп башлығы булған биттәрҙә)',
 'tog-rememberpassword' => 'Был браузерҙа (иң күбендә $1 {{PLURAL:$1|көнгә}}) иҫәп яҙыуым хәтерләнһен',
 'tog-watchcreations' => 'Мин төҙөгән биттәрҙе һәм күсергән файлдарҙы күҙәтеү исемлегенә өҫтәргә',
 'tog-watchdefault' => 'Мин үҙгәрткән биттәр һәм файлдар аңлатмаһын күҙәтеү исемлегенә өҫтәргә',
index d15280e..f96bcd2 100644 (file)
@@ -153,7 +153,6 @@ $messages = array(
 'tog-showtoolbar' => 'میله ابزار اصلاح پیش درا(جاوا)',
 'tog-editondblclick' => 'صفحات گون دو کلیک اصلاح کن(جاوا)',
 'tog-editsectiononrightclick' => 'فعال کتن اصلاح کسمت گون کلیک راست اور کسمت عناوین(جاوا)',
-'tog-showtoc' => 'جدول محتوای‌ء پیش دار( په صفحیانی که گیش چه 3 عنوانش هست)',
 'tog-rememberpassword' => 'من ورود ته ای کامپیوتر هیال بکن (په $1 {{PLURAL:$1|روچ|روچ}})',
 'tog-watchcreations' => 'هور کن منی صفحاتی که من ته لیست چارگ شرکتت',
 'tog-watchdefault' => 'هورکن صفحاتی که من اصلاح کتن ته منی لیست چارگ',
index 1381eae..9696a73 100644 (file)
@@ -109,7 +109,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ipahiling an barang-gamit nin pagliwat',
 'tog-editondblclick' => 'Liwaton an mga pahina sa pagdoble nin klik',
 'tog-editsectiononrightclick' => 'Paganaha an seksyon nin pagliliwat sa pag-klik kan mga titulo nin seksyon',
-'tog-showtoc' => 'Ihayag an taytayan nin mga laog (para sa mga pahinang igwang sobra sa 3 pamayohan)',
 'tog-rememberpassword' => 'Giromdoma an sakong paglaóg sa kilyaw (browser) na ini (para sa maximum na $1 {{PLURAL:$1|aldaw|mga aldaw}})',
 'tog-watchcreations' => 'Idagdag an mga pahina na ako an nagmukna asin an mga sagunson na ako an nagkarga sa sakong bantay-listahan',
 'tog-watchdefault' => 'Idagdag an mga pahina asin mga sagunson na ako an nagliwat sa sakong bantay-listahan',
@@ -2187,7 +2186,6 @@ An maabot na mga pagbabâgo sa páhinang ini asin sa asosyadong páhina nin olay
 'watchmethod-list' => 'Pigsososog an mga pigbabantayan na páhina para mahiling an mga kaaagi pa sanan paghirá',
 'watchlistcontains' => 'An saimong lista nin pigbabantayan igwang $1 na {{PLURAL:$1|páhina|mga páhina}}.',
 'iteminvalidname' => "May problema sa bagay na '$1', salâ an pangaran...",
-'wlnote' => "Sa ibaba an {{PLURAL:$1|huring pagbabago|mga huring '''$1''' pagbabago}} sa nakaaging {{PLURAL:$2|oras|'''$2''' mga oras}}, magpoon pa kan $3, $4.",
 'wlshowlast' => 'Ipahilíng an nakaaging $1 na mga oras mga $2 na aldaw $3',
 'watchlist-options' => 'Bantay-listahan na mga pagpipilian',
 
@@ -2737,6 +2735,7 @@ Pakibisita an [https://www.mediawiki.org/wiki/Localisation Mediawiki Lokalisasyo
 'allmessages-prefix' => 'Pansara sa paagi kan enot-panigmit:',
 'allmessages-language' => 'Lengguwahe:',
 'allmessages-filter-submit' => 'Dumuman',
+'allmessages-filter-translate' => 'Idakit-taramon',
 
 # Thumbnails
 'thumbnail-more' => 'Padakuláon',
@@ -2834,7 +2833,6 @@ Paki-otro giraray.',
 'tooltip-pt-watchlist' => 'Sarong listahan kan mga pahina na saimong inaantabayanan para sa mga kaliwatan',
 'tooltip-pt-mycontris' => 'Sarong listahan kan saimong mga kontribusyon',
 'tooltip-pt-login' => 'Ika inaagyat na maglaog; alagad, bako tabi ining piriritan',
-'tooltip-pt-anonlogin' => 'Pig-aagda kang maglaog, alagad, bakô man ining piriritan.',
 'tooltip-pt-logout' => 'Magluwas',
 'tooltip-ca-talk' => 'Orolayan dapit sa laog kan pahina',
 'tooltip-ca-edit' => 'Ika makakaliwat kaining pahina. Tabi man gamiton an pindutan nin patanaw bago itatagama',
index 5356a6c..88947c8 100644 (file)
@@ -103,7 +103,6 @@ $messages = array(
 'tog-showtoolbar' => 'Паказваць рэдактарскую стужку (Яваскрыпт)',
 'tog-editondblclick' => 'Праўка старонак па падвойным пстрыку (Яваскрыпт)',
 'tog-editsectiononrightclick' => 'Праўка падраздзелаў па правым пстрыку на загалоўку (Яваскрыпт)',
-'tog-showtoc' => 'Паказваць змест (для старонак, дзе больш за 3 падзагалоўкі)',
 'tog-rememberpassword' => 'Памятаць уваходныя даныя ў гэтым браўзеры (не даўжэй за $1 {{PLURAL:$1|дзень|дні|дзён}})',
 'tog-watchcreations' => 'Дабаўляць створаныя мною старонкі і файлы ў мой спіс назірання',
 'tog-watchdefault' => 'Дабаўляць старонкі і файлы пасля маіх правак у мой спіс назірання',
index 579f6cb..948698b 100644 (file)
@@ -271,12 +271,11 @@ $messages = array(
 'tog-usenewrc' => 'Групаваць зьмены па старонках у апошніх зьменах і сьпісе назіраньня',
 'tog-numberheadings' => 'Аўтаматычная нумарацыя загалоўкаў',
 'tog-showtoolbar' => 'Паказваць панэль інструмэнтаў рэдагаваньня',
-'tog-editondblclick' => 'Рэдагаваць старонкі па падвойным пстрыку',
-'tog-editsectiononrightclick' => 'Рэдагаваць сэкцыі па правым пстрыку на загалоўку',
-'tog-showtoc' => 'Паказваць зьмест (для старонак з больш як 3 разьдзеламі)',
+'tog-editondblclick' => 'Рэдагаваць старонкі па падвойным націсканьні',
+'tog-editsectiononrightclick' => 'Рэдагаваць сэкцыі па націсканьні правай кнопкі мышы на загалоўку',
 'tog-rememberpassword' => 'Запомніць мяне ў гэтым браўзэры (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
 'tog-watchcreations' => 'Дадаваць у мой сьпіс назіраньня створаныя мной старонкі і загружаныя файлы',
-'tog-watchdefault' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я рэдагаваў',
+'tog-watchdefault' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я {{GENDER:|рэдагаваў|рэдагавала}}',
 'tog-watchmoves' => 'Дадаваць у мой сьпіс назіраньня перанесеныя мною старонкі і файлы',
 'tog-watchdeletion' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я выдаляю',
 'tog-minordefault' => 'Па змоўчаньні пазначаць усе зьмены дробнымі',
@@ -630,7 +629,7 @@ $1',
 'no-null-revision' => 'Немагчыма стварыць нулявую вэрсію для старонкі «$1»',
 'badtitle' => 'Няслушная назва',
 'badtitletext' => 'Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці інтэрвікі-назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.',
-'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікаў|вынікі}}.',
+'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.',
 'perfcachedts' => 'Наступныя зьвесткі кэшаваныя і апошні раз былі абноўленыя $1. У кэшы {{PLURAL:$4|даступны|даступныя}} ня больш за $4 {{PLURAL:$4|вынік|вынікаў|вынікі}}.',
 'querypage-no-updates' => 'Абнаўленьні гэтай старонкі цяпер адключаныя. Зьвесткі ня будуць абнаўляцца.',
 'viewsource' => 'Паказаць крыніцу',
@@ -844,17 +843,17 @@ $2',
 'passwordreset-capture-help' => 'Калі Вы пазначыце гэтае поле, электронны ліст (з часовым паролем), будзе паказаны Вам як толькі ён будзе дасланы ўдзельніку.',
 'passwordreset-email' => 'Адрас электроннай пошты:',
 'passwordreset-emailtitle' => 'Падрабязнасьці рахунку ў {{GRAMMAR:месны|{{SITENAME}}}}',
-'passwordreset-emailtext-ip' => 'Нехта (магчыма Вы, з IP-адрасу $1) зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
+'passwordreset-emailtext-ip' => 'Нехта (магчыма Вы, з IP-адрасу $1) зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|1=Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
 
 $2
 
-{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дзён|дні}}.
+{{PLURAL:$3|1=Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дні|дзён}}.
 Цяпер Вам неабходна ўвайсьці і выбраць новы пароль. Калі нехта іншы зрабіў гэты запыт, ці Вы ўспомнілі Ваш пачатковы пароль, які ня хочаце мяняць, Вы можаце праігнараваць гэтае паведамленьне, і працягваць выкарыстоўваць стары пароль.',
-'passwordreset-emailtext-user' => 'Удзельнік $1 зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
+'passwordreset-emailtext-user' => 'Удзельнік $1 зрабіў запыт на скіданьне вашага паролю ў {{GRAMMAR:месны|{{SITENAME}}}} ($4). {{PLURAL:$3|1=Наступны рахунак удзельніка зьвязаны|Наступныя рахункі ўдзельнікаў зьвязаныя}} з гэтым адрасам электроннай пошты:
 
 $2
 
-{{PLURAL:$3|Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дзён|дні}}.
+{{PLURAL:$3|1=Гэты часовы пароль будзе|Гэтыя часовыя паролі будуць}} дзейнічаць $5 {{PLURAL:$5|дзень|дні|дзён}}.
 Цяпер Вам неабходна ўвайсьці і выбраць новы пароль. Калі нехта іншы зрабіў гэты запыт, ці Вы ўспомнілі Ваш пачатковы пароль, які ня хочаце мяняць, Вы можаце праігнараваць гэтае паведамленьне, і працягваць выкарыстоўваць стары пароль.',
 'passwordreset-emailelement' => 'Імя ўдзельніка: $1
 Часовы пароль: $2',
@@ -873,6 +872,8 @@ $2
 'changeemail-password' => 'Ваш пароль у {{GRAMMAR:месны|{{SITENAME}}}}:',
 'changeemail-submit' => 'Зьмяніць адрас электроннай пошты',
 'changeemail-cancel' => 'Скасаваць',
+'changeemail-throttled' => 'Вы зрабілі зашмат спробаў увайсьці ў сыстэму.
+Калі ласка, пачакайце $1 перад наступнай спробай.',
 
 # Special:ResetTokens
 'resettokens' => 'Скідваньне токенаў',
@@ -1050,12 +1051,12 @@ $2
 Апошні запіс з журнала пададзены ніжэй для даведкі:",
 'semiprotectedpagewarning' => "'''Заўвага:''' Гэтая старонка была абароненая, і рэдагаваць яе могуць толькі зарэгістраваныя ўдзельнікі.
 Апошні запіс з журнала пададзены ніжэй для даведкі:",
-'cascadeprotectedwarning' => "'''Папярэджаньне:''' гэтая старонка абароненая, толькі ўдзельнікі з правамі адміністратараў могуць рэдагаваць яе, таму што яна ўключаная ў {{PLURAL:$1|наступную старонку|наступныя старонкі}} з каскаднай абаронай:",
+'cascadeprotectedwarning' => "'''Папярэджаньне:''' гэтая старонка абароненая, толькі ўдзельнікі з правамі адміністратараў могуць рэдагаваць яе, таму што яна ўключаная ў {{PLURAL:$1|1=наступную старонку|наступныя старонкі}} з каскаднай абаронай:",
 'titleprotectedwarning' => "'''Папярэджаньне: гэтая старонка была абароненая і для яе стварэньня патрабуюцца [[Special:ListGroupRights|адпаведныя правы]].'''
 Апошні запіс з журнала пададзены ніжэй для даведкі:",
 'templatesused' => '{{PLURAL:$1|Шаблён, які ўжываецца|Шаблёны, якія ўжываюцца}} на гэтай старонцы:',
-'templatesusedpreview' => 'У гэтым папярэднім праглядзе {{PLURAL:$1|выкарыстаны наступны шаблён|выкарыстаныя наступныя шаблёны}}:',
-'templatesusedsection' => 'У гэтай сэкцыі {{PLURAL:$1|выкарыстаны наступны шаблён|выкарыстаныя наступныя шаблёны}}:',
+'templatesusedpreview' => 'У гэтым папярэднім праглядзе {{PLURAL:$1|1=выкарыстаны наступны шаблён|выкарыстаныя наступныя шаблёны}}:',
+'templatesusedsection' => 'У гэтай сэкцыі {{PLURAL:$1|1=выкарыстаны наступны шаблён|выкарыстаныя наступныя шаблёны}}:',
 'template-protected' => '(абаронены)',
 'template-semiprotected' => '(часткова абароненая)',
 'hiddencategories' => 'Гэтая старонка належыць да $1 {{PLURAL:$1|схаванай катэгорыі|схаваных катэгорыяў}}:',
@@ -1065,8 +1066,8 @@ $2
 'sectioneditnotsupported-title' => 'Рэдагаваньне сэкцыяў не падтрымліваецца',
 'sectioneditnotsupported-text' => 'Рэдагаваньне сэкцыяў не падтрымліваецца ў гэтай старонцы рэдагаваньня',
 'permissionserrors' => 'Памылка дазволу',
-'permissionserrorstext' => 'Вы ня маеце дазволу на гэтае дзеяньне з {{PLURAL:$1|наступнай прычыны|наступных прычынаў}}:',
-'permissionserrorstext-withaction' => 'Вы ня маеце дазволу на $2 з {{PLURAL:$1|наступнай прычыны|наступных прычынаў}}:',
+'permissionserrorstext' => 'Вы ня маеце дазволу на гэтае дзеяньне з {{PLURAL:$1|1=наступнай прычыны|наступных прычынаў}}:',
+'permissionserrorstext-withaction' => 'Вы ня маеце дазволу на $2 з {{PLURAL:$1|1=наступнай прычыны|наступных прычынаў}}:',
 'recreate-moveddeleted-warn' => "'''Увага: Вы ствараеце старонку, якая раней была выдаленая.'''
 
 Упэўніцеся, што стварэньне гэтай старонкі неабходнае.
@@ -1131,6 +1132,9 @@ $2
 'cantcreateaccount-text' => "Стварэньне рахункаў з гэтага IP-адрасу ('''$1''') было заблякаванае [[User:$3|$3]].
 
 Прычына блякаваньня пададзеная $3: ''$2''",
+'cantcreateaccount-range-text' => "Стварэньне рахункаў з IP-адрасоў у дыяпазоне '''$1''', у які ўваходзіць ваш IP-адрас ('''$4'''), было забароненае {{GENDER:$3|ўдзельнікам|ўдзельніцай}} [[User:$3|$3]].
+
+{{GENDER:$3|Удзельнікам|Удзельніцай}} $3 была пададзеная наступная прычына: ''$2''.",
 
 # History pages
 'viewpagelogs' => 'Паказаць журналы падзеяў для гэтай старонкі',
@@ -1202,8 +1206,8 @@ $2
 'revdelete-no-file' => 'Пазначаны файл не існуе.',
 'revdelete-show-file-confirm' => 'Вы ўпэўненыя, што жадаеце паглядзець выдаленую вэрсію файла «<nowiki>$1</nowiki>» ад $2 $3?',
 'revdelete-show-file-submit' => 'Так',
-'revdelete-selected' => "'''{{PLURAL:$2|Выбраная вэрсія|Выбраныя вэрсіі}} старонкі [[:$1]]:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|Выбраны запіс|Выбраныя запісы}} журнала:'''",
+'revdelete-selected' => "'''{{PLURAL:$2|1=Выбраная вэрсія|Выбраныя вэрсіі}} старонкі [[:$1]]:'''",
+'logdelete-selected' => "'''{{PLURAL:$1|1=Выбраны запіс|Выбраныя запісы}} журнала:'''",
 'revdelete-text' => "'''Выдаленыя вэрсіі і падзеі будуць паказвацца ў гісторыі старонкі і журналах, але частка іх зьместу ня будзе даступная для звычайных удзельнікаў.'''
 Іншыя адміністратары {{GRAMMAR:родны|{{SITENAME}}}} будуць мець магчымасьць прагляду зьместу і аднаўленьня старонкі праз гэты інтэрфэйс, калі ня будуць уведзеныя дадатковыя абмежаваньні.",
 'revdelete-confirm' => 'Калі ласка, пацьвердзіце, што Вы сапраўды жадаеце зрабіць гэта, разумееце наступствы і робіце гэта ў адпаведнасьці з [[{{MediaWiki:Policy-url}}|правіламі]].',
@@ -1212,15 +1216,15 @@ $2
 * раскрыцьцё асабістых зьвестак
 *: ''хатнія адрасы, тэлефонныя нумары, нумары пашпартоў і г. д.''",
 'revdelete-legend' => 'Усталяваць абмежаваньні бачнасьці',
-'revdelete-hide-text' => 'СÑ\85аваÑ\86Ñ\8c Ñ\82экст вэрсіі',
+'revdelete-hide-text' => 'Тэкст вэрсіі',
 'revdelete-hide-image' => 'Схаваць зьмест файла',
 'revdelete-hide-name' => 'Схаваць дзеяньне і мэту',
-'revdelete-hide-comment' => 'СÑ\85аваÑ\86Ñ\8c ÐºÐ°Ñ\80оÑ\82кае Ð°пісаньне зьменаў',
-'revdelete-hide-user' => 'СÑ\85аваÑ\86Ñ\8c Ñ\96мÑ\8f/IP-адÑ\80аÑ\81 Ñ\83дзелÑ\8cнÑ\96ка',
+'revdelete-hide-comment' => 'Ð\90пісаньне зьменаў',
+'revdelete-hide-user' => 'Ð\86мÑ\8f Ñ\9eдзелÑ\8cнÑ\96ка/IP-адÑ\80аÑ\81',
 'revdelete-hide-restricted' => 'Ужываць гэтыя абмежаваньні таксама і для адміністратараў',
 'revdelete-radio-same' => '(не зьмяняць)',
-'revdelete-radio-set' => 'Так',
-'revdelete-radio-unset' => 'Ð\9dе',
+'revdelete-radio-set' => 'СÑ\85аваÑ\86Ñ\8c',
+'revdelete-radio-unset' => 'Ð\9fаказаÑ\86Ñ\8c',
 'revdelete-suppress' => 'Схаваць зьвесткі ад адміністратараў як і ад іншых удзельнікаў',
 'revdelete-unsuppress' => 'Зьняць абмежаваньні з адноўленых вэрсіяў',
 'revdelete-log' => 'Прычына:',
@@ -1303,9 +1307,9 @@ $1",
 'diff-empty' => '(Розьніцы няма)',
 'diff-multi' => '($1 {{PLURAL:$1|прамежная вэрсія|прамежныя вэрсіі|прамежных вэрсіяў}} $2 {{PLURAL:$2|удзельніка|удзельнікаў|удзельнікаў}} {{PLURAL:$1|не паказаная|не паказаныя|не паказаныя}})',
 'diff-multi-manyusers' => '($1 {{PLURAL:$1|прамежная вэрсія|прамежныя вэрсіі|прамежных вэрсіяў}} $2 {{PLURAL:$2|удзельніка|удзельнікаў|удзельнікаў}} {{PLURAL:$1|не паказаная|не паказаныя|не паказаныя}})',
-'difference-missing-revision' => '{{PLURAL:$2|1=Адна вэрсія|$2 вэрсіі}} з гэтымі адрозьненьнямі ($1) {{PLURAL:$2|1=не была|не былі}} знойдзеныя.
+'difference-missing-revision' => '{{PLURAL:$2|$2 вэрсія|$2 вэрсіі|$2 вэрсіяў}} з гэтымі адрозьненьнямі ($1) {{PLURAL:$2|не была|не былі}} знойдзеныя.
 
-Звычайна гэта здараецца з-за перахода па састарэлай спасылцы на старонку, якая была выдаленая.
+Звычайна гэта здараецца з-за пераходу па састарэлай спасылцы на старонку, якая была выдаленая.
 Падрабязнасьці можна знайсьці ў [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале выдаленьняў].',
 
 # Search results
@@ -1338,6 +1342,7 @@ $1",
 'search-result-score' => 'Адпаведнасьць: $1%',
 'search-redirect' => '(перанакіраваньне $1)',
 'search-section' => '(сэкцыя $1)',
+'search-file-match' => '(супадае зь зьмесьцівам файла)',
 'search-suggest' => 'Магчыма, вы мелі на ўвазе: $1',
 'search-interwiki-caption' => 'Сумежныя праекты',
 'search-interwiki-default' => 'вынікі з $1:',
@@ -1348,7 +1353,7 @@ $1",
 'searchall' => 'усе',
 'showingresults' => "Ніжэй {{PLURAL:$1|паданы|паданыя|паданыя}} да '''$1''' {{PLURAL:$1|выніку|вынікаў|вынікаў}}, пачынаючы з #<b>$2</b>.",
 'showingresultsnum' => "Ніжэй паказаны сьпіс з '''$3''' {{PLURAL:$3|выніка|вынікаў|вынікаў}}, пачынаючы ад № '''$2'''.",
-'showingresultsheader' => "{{PLURAL:$5|Вынік '''$1''' з '''$3'''|Вынікі '''$1—$2''' з '''$3'''}} для '''$4'''",
+'showingresultsheader' => "{{PLURAL:$5|1=Вынік '''$1''' з '''$3'''|Вынікі '''$1—$2''' з '''$3'''}} для '''$4'''",
 'search-nonefound' => 'Супадзеньняў па запыце ня знойдзена.',
 'powersearch-legend' => 'Удасканалены пошук',
 'powersearch-ns' => 'Шукаць у прасторах назваў:',
@@ -1741,8 +1746,8 @@ $1",
 'filetype-mime-mismatch' => 'Пашырэньне файла «.$1» не адпавядае выяўленаму MIME-тыпу файла ($2).',
 'filetype-badmime' => 'Загрузка файлаў тыпу MIME «$1» забароненая.',
 'filetype-bad-ie-mime' => 'Немагчыма загрузіць гэты файл, таму што Internet Explorer вызначыў яго як «$1», што азначае, што тып гэтага файла забаронены і патэнцыяльна небясьпечны.',
-'filetype-unwanted-type' => "'''«.$1»''' — непажаданы тып файла.
-{{PLURAL:$3|1=Пажаданым тыпам файла зьяўляецца|Пажаданымі тыпамі файлаў зьяўляюцца}} $2.",
+'filetype-unwanted-type' => '<strong>«.$1»</strong> — непажаданы тып файла.
+{{PLURAL:$3|1=Пажаданым тыпам файла зьяўляецца|Пажаданымі тыпамі файлаў зьяўляюцца:}} $2.',
 'filetype-banned-type' => "'''«.$1»''' — {{PLURAL:$4|1=забаронены тып файлаў|забароненыя тыпы файлаў}}.
 {{PLURAL:$3|1=Дазволены тып файлаў|Дазволеныя тыпы файлаў}}: $2.",
 'filetype-missing' => 'Файл ня мае пашырэньня (напрыклад, «.jpg»).',
@@ -1972,7 +1977,7 @@ $1',
 'filehist-comment' => 'Камэнтар',
 'filehist-missing' => 'Файл адсутнічае',
 'imagelinks' => 'Выкарыстаньне файла',
-'linkstoimage' => '$1 {{PLURAL:$1|наступная старонка спасылаецца|наступных старонак спасылаюцца|наступныя старонкі спасылаюцца}} на гэты файл:',
+'linkstoimage' => '{{PLURAL:$1|1=Наступная старонка спасылаецца|Наступныя старонкі спасылаюцца}} на гэты файл:',
 'linkstoimage-more' => 'Больш чым $1 {{PLURAL:$1|старонка спасылаецца|старонкі спасылаюцца|старонак спасылаюцца}} на гэты файл.
 У гэтым сьпісе толькі $1 {{PLURAL:$1|спасылка|спасылкі|спасылак}} на гэты файл.
 Даступны таксама [[Special:WhatLinksHere/$2|поўны сьпіс]].',
@@ -2342,7 +2347,6 @@ $1',
 'watchmethod-list' => 'прагляд старонак са сьпісу назіраньня дзеля апошніх зьменах',
 'watchlistcontains' => 'Ваш сьпіс назіраньня зьмяшчае $1 {{PLURAL:$1|старонка|старонкі|старонак}}.',
 'iteminvalidname' => 'Праблема з элемэнтам «$1», няслушная назва…',
-'wlnote' => "Ніжэй {{PLURAL:$1|паказаная '''$1''' апошняя зьмена|паказаныя '''$1''' апошнія зьмены|паказаныя '''$1''' апошніх зьменаў}} за '''$2''' {{PLURAL:$2|гадзіну|гадзіны|гадзінаў}}, па стане на $3, $4.",
 'wlshowlast' => 'Паказаць: за апошнія $1 гадзінаў, $2 дзён, $3',
 'watchlist-options' => 'Налады сьпісу назіраньня',
 
@@ -2996,7 +3000,6 @@ $2',
 'tooltip-pt-watchlist' => 'Сьпіс старонак, за зьменамі якіх Вы назіраеце',
 'tooltip-pt-mycontris' => 'Ваш унёсак',
 'tooltip-pt-login' => 'Вас запрашаюць увайсьці, хаця гэта і неабавязкова.',
-'tooltip-pt-anonlogin' => 'Уваход у сыстэму вітаецца, хаця ён не абавязковы.',
 'tooltip-pt-logout' => 'Выйсьці',
 'tooltip-ca-talk' => 'Абмеркаваньне зьместу старонкі',
 'tooltip-ca-edit' => 'Вы можаце рэдагаваць гэтую старонку. Калі ласка, ужывайце кнопку прагляду перад захаваньнем.',
@@ -3846,7 +3849,7 @@ $5
 'version-hook-subscribedby' => 'Падпісаны на',
 'version-version' => '(Вэрсія $1)',
 'version-svn-revision' => '(r$2)',
-'version-license' => 'Ліцэнзія',
+'version-license' => 'Ліцэнзія MediaWiki',
 'version-poweredby-credits' => "{{SITENAME}} працуе на праграмным забесьпячэньні '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'іншыя',
 'version-poweredby-translators' => 'перакладчыкі з translatewiki.net',
@@ -4121,4 +4124,6 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'expand_templates_generate_xml' => 'Паказаць дрэва аналізу XML',
 'expand_templates_preview' => 'Папярэдні прагляд',
 
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
 );
index cd24dcd..851729d 100644 (file)
@@ -253,7 +253,6 @@ $messages = array(
 'tog-showtoolbar' => 'Показване на инструментите за редактиране',
 'tog-editondblclick' => 'Редактиране на страниците чрез двойно щракване',
 'tog-editsectiononrightclick' => 'Възможност за редактиране на раздел при щракване с десния бутон върху заглавието му',
-'tog-showtoc' => 'Показване на съдържание (за страници с повече от три раздела)',
 'tog-rememberpassword' => 'Запомяне на паролата ми в този браузър (за не повече от $1 {{PLURAL:$1|ден|дни}})',
 'tog-watchcreations' => 'Добавяне на създадените от мен страници и качените от мен файлове към списъка ми за наблюдение',
 'tog-watchdefault' => 'Добавяне на страниците, които редактирам, в списъка ми за наблюдение',
index 60b6eb7..81c4298 100644 (file)
@@ -155,7 +155,6 @@ $messages = array(
 'tog-showtoolbar' => 'Tampaiakan bilah-pakakas babak (parlu ada JavaScript)',
 'tog-editondblclick' => 'Babak tutungkaran wan klik ganda (parlu ada JavaScript)',
 'tog-editsectiononrightclick' => "Kawa'akan mambabak sub-hagian lawan mang-klik kanan pada judul hagian (parlu ada JavaScript)",
-'tog-showtoc' => 'Tampaiakan daptar isi (gasan tungkaran-tungkaran nang baisi labih dari 3 subbagian)',
 'tog-rememberpassword' => 'Ingatakan babuat log ulun pada panjalajah web ini (gasan salawas $1{{PLURAL:$1|hari|hahari}})',
 'tog-watchcreations' => 'Tambahi tungkaran nang ulun ulah ka daptar itihan',
 'tog-watchdefault' => 'Tambahi tungkaran nang ulun babak ka daptar itihan ulun',
index 1da9083..4da1542 100644 (file)
@@ -84,7 +84,6 @@ $messages = array(
 'tog-showtoolbar' => 'সম্পাদনা টুলবার দেখাও',
 'tog-editondblclick' => 'দুইবার ক্লিক করে পাতা সম্পাদনা',
 'tog-editsectiononrightclick' => 'পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে সম্পাদনা করার ক্ষমতা দেয়া হোক',
-'tog-showtoc' => 'সূচিপত্র দেখানো হোক (৩টির বেশি পরিচ্ছেদের শিরোনামবিশিষ্ট পাতার জন্য)',
 'tog-rememberpassword' => 'এই ব্রাউজারে আমার লগ ইন তথ্য (শব্দচাবি) মনে রাখো (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)',
 'tog-watchcreations' => 'আমার তৈরি পাতা এবং আপলোড করা ফাইলগুললো আমার নজরতালিকায় যোগ করা হোক',
 'tog-watchdefault' => 'আমার সম্পাদিত পাতা এবং ফাইলগুলো আমার নজরতালিকায় যোগ করা হোক',
@@ -624,6 +623,7 @@ $2',
 'retypenew' => 'নতুন শব্দচাবি আবার লিখুন:',
 'resetpass_submit' => 'শব্দচাবি দাও এবং লগ-ইন করো',
 'changepassword-success' => 'আপনার শব্দচাবি সাফলভাবে পরিবর্তীত হয়েছে।',
+'changepassword-throttled' => 'আপনি সম্প্রতি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।',
 'resetpass_forbidden' => 'শব্দচাবি পরিবর্তন করা সম্ভব নয়',
 'resetpass-no-info' => 'এই পাতাটিতে সরাসরি প্রবেশাধিকার পেতে আপনাকে অবশ্যই লগইন করতে হবে।',
 'resetpass-submit-loggedin' => 'শব্দচাবি পরিবর্তন',
@@ -682,6 +682,7 @@ $2
 'changeemail-password' => 'আপনার {{SITENAME}} শব্দচাবি:',
 'changeemail-submit' => 'ই-মেইল পরিবর্তন',
 'changeemail-cancel' => 'বাতিল',
+'changeemail-throttled' => 'আপনি পরপর বেশ কয়েকবার প্রবেশের চেষ্টা করেছেন। পুনরায় চেষ্টা করার পূর্বে অনুগ্রহ করে $1 অপেক্ষা করুন।',
 
 # Special:ResetTokens
 'resettokens' => 'রিসেট টোকেন',
@@ -2143,7 +2144,6 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 'watchmethod-list' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
 'watchlistcontains' => 'আপনার নজরতালিকায় $1 টি {{PLURAL:$1|পাতা|পাতা}} রয়েছে।',
 'iteminvalidname' => "'$1'নং আইটেমে সমস্যা, অবৈধ নাম...",
-'wlnote' => "নিচে $3, $4 তারিখ থেকে বিগত {{PLURAL:$2|১ ঘন্টায়|'''$2''' ঘন্টায়}} সংঘটিত {{PLURAL:$1|শেষ ১টি পরিবর্তন|শেষ '''$1'''টি পরিবর্তন}} দেখানো হল।",
 'wlshowlast' => 'দেখাও সর্বশেষ  $1 ঘন্টা $2 দিন $3',
 'watchlist-options' => 'নজর তালিকা পছন্দসমূহ',
 
@@ -2206,7 +2206,7 @@ $UNWATCHURL
 'exblank' => 'পাতাটি খালি ছিল',
 'delete-confirm' => '"$1" অপসারণ',
 'delete-legend' => 'অপসারণ',
-'historywarning' => "'''সতর্কীকরণ:''' যে পাতাটি আপনি মুছে ফেলতে যাচ্ছেন তার ইতিহাসের সংখ্যা প্রায় $1টি {{PLURAL:$1|সংশোধন|সংশোধন}}:",
+'historywarning' => "'''সতর্কীকরণ:''' যে পাতাটি আপনি মুছে ফেলতে যাচ্ছেন তার ইতিহাসে প্রায় $1টি {{PLURAL:$1|সংশোধন}} রয়েছে:",
 'confirmdeletetext' => 'আপনি একটি পাতা সেটির সমস্ত ইতিহাসসহ মুছে ফেলতে যাচ্ছেন।
 অনুগ্রহ করে নিশ্চিত করুন আপনি আসলেই এটি করতে চান, আপনি এর ফলাফল সম্পর্কে অবহিত, এবং আপনি [[{{MediaWiki:Policy-url}}|নীতিমালা]] মেনে এটি করছেন।',
 'actioncomplete' => 'কাজটি নিষ্পন্ন হয়েছে',
@@ -2692,6 +2692,7 @@ $1',
 'allmessages-prefix' => 'প্রিফিক্স অনুযায়ী ফিল্টার:',
 'allmessages-language' => 'ভাষা:',
 'allmessages-filter-submit' => 'চলো',
+'allmessages-filter-translate' => 'অনুবাদ',
 
 # Thumbnails
 'thumbnail-more' => 'বড় করো',
@@ -2786,7 +2787,6 @@ $2',
 'tooltip-pt-watchlist' => 'যে পাতাগুলির পরিবর্তন আপনি নজরে রেখেছেন, তাদের তালিকা',
 'tooltip-pt-mycontris' => 'আপনার অবদানগুলোর তালিকা',
 'tooltip-pt-login' => 'আপনার লগ-ইন করাটা বাঞ্চনীয়, কিন্তু তা বাধ্যতামূলক নয়।',
-'tooltip-pt-anonlogin' => 'আপনাকে লগ ইন করতে উৎসাহ দেয়া হচ্ছে, তবে এটা বাধ্যতামূলক নয়।',
 'tooltip-pt-logout' => 'প্রস্থান',
 'tooltip-ca-talk' => 'বিষয়বস্তু পাতা সম্পর্কে আলোচনা',
 'tooltip-ca-edit' => 'আপনি এই পাতা সম্পাদনা করতে পারেন। অনুগ্রহ করে সংরক্ষণের আগে প্রাকদর্শন করুন।',
index 8f92cba..a6c665f 100644 (file)
@@ -191,7 +191,6 @@ $messages = array(
 'tog-showtoolbar' => 'Diskouez ar varrenn ostilhoù aozañ',
 'tog-editondblclick' => 'Daouglikañ evit kemmañ pajennoù',
 'tog-editsectiononrightclick' => 'Kemmañ ur rann dre glikañ a-zehou war titl ar rann',
-'tog-showtoc' => 'Diskouez an daolenn<br /> (evit ar pennadoù zo ouzhpenn 3 rann enno)',
 'tog-rememberpassword' => "Derc'hel soñj eus ma ger-tremen war an urzhiataer-mañ (evit $1 devezh{{PLURAL:$1||}} d'ar muiañ)",
 'tog-watchcreations' => "Ouzhpennañ ar pajennoù krouet ganin da'm roll evezhiañ",
 'tog-watchdefault' => "Ouzhpennañ ar pajennoù kemmet ganin da'm roll evezhiañ",
index fff7c54..4f9a24a 100644 (file)
@@ -292,7 +292,6 @@ $messages = array(
 'tog-showtoolbar' => 'Prikaži traku s alatkama za uređivanje',
 'tog-editondblclick' => 'Izmijeni stranice dvostrukim klikom',
 'tog-editsectiononrightclick' => 'Uključite uređivanje odjeljka sa pritiskom na desno dugme miša u naslovu odjeljka',
-'tog-showtoc' => 'Prikaži sadržaj (u svim stranicama sa više od tri podnaslova)',
 'tog-rememberpassword' => 'Zapamti moju šifru u ovom pregledniku (najviše $1 {{PLURAL:$1|dan|dana}})',
 'tog-watchcreations' => 'Dodaj stranice i datoteke koje napravim na moj spisak praćenih članaka',
 'tog-watchdefault' => 'Dodaj stranice i datoteke koje uređujem na moj spisak praćenih članaka',
index 3e6e4ee..52128da 100644 (file)
@@ -215,7 +215,6 @@ $messages = array(
 'tog-showtoolbar' => "Mostra la barra d'eines d'edició (cal JavaScript)",
 'tog-editondblclick' => 'Edita les pàgines amb un doble clic (cal JavaScript)',
 'tog-editsectiononrightclick' => "Habilita l'edició per seccions en clicar amb el botó dret sobre els títols de les seccions (cal JavaScript)",
-'tog-showtoc' => 'Mostra la taula de continguts (per pàgines amb més de 3 seccions)',
 'tog-rememberpassword' => 'Recorda la sessió al navegador (per un màxim de {{PLURAL:$1|dia|dies}})',
 'tog-watchcreations' => 'Afegeix les pàgines que vagi creant i fitxers que carregui a la llista de seguiment',
 'tog-watchdefault' => 'Afegeix les pàgines que vagi editant a la llista de seguiment',
@@ -2272,7 +2271,6 @@ S\'hi mostraran els canvis futurs que tinguin lloc en aquesta pàgina i la corre
 'watchmethod-list' => "s'està comprovant si hi ha edicions recents en les pàgines vigilades",
 'watchlistcontains' => 'La vostra llista de seguiment conté {{PLURAL:$1|una única pàgina|$1 pàgines}}.',
 'iteminvalidname' => "Hi ha un problema amb l'element '$1': el nom no és vàlid...",
-'wlnote' => "A sota hi ha {{PLURAL:$1|el darrer canvi|els darrers '''$1''' canvis}} en {{PLURAL:$2|la darrera hora|les  '''$2''' darreres hores}}, a $4 del $3.",
 'wlshowlast' => '<small>- Mostra les darreres $1 hores, els darrers $2 dies o $3</small>',
 'watchlist-options' => 'Opcions de la llista de seguiment',
 
@@ -2923,7 +2921,6 @@ Deseu-lo al vostre ordinador i carregueu-ne una còpia ací.",
 'tooltip-pt-watchlist' => 'La llista de pàgines de les que estau vigilant els canvis.',
 'tooltip-pt-mycontris' => 'Llista de les vostres contribucions.',
 'tooltip-pt-login' => 'Us animem a registrar-vos, però no és obligatori',
-'tooltip-pt-anonlogin' => 'Us animem a registrar-vos, però no és obligatori.',
 'tooltip-pt-logout' => "Finalitza la sessió d'usuari",
 'tooltip-ca-talk' => "Discussió sobre el contingut d'aquesta pàgina",
 'tooltip-ca-edit' => 'Podeu modificar aquesta pàgina. Si us plau, previsualitzeu-la abans de desar.',
index 83cecee..fc31320 100644 (file)
@@ -330,7 +330,6 @@ $messages = array(
 'tog-showtoolbar' => 'Гайта лакхара гӀирсан дакъа нисйеш аттон оц тадар чохь (JavaScript)',
 'tog-editondblclick' => 'Нисйе агӀонаш шозза тӀетаӀийча (JavaScript)',
 'tog-editsectiononrightclick' => 'Нисде дакъа шозза бакъехьар дахка тӀетаӀийча оцу кортан (JavaScript)',
-'tog-showtoc' => 'Гойти коьртнаш (оцу агlонашна лаххара 3 коьртнашца)',
 'tog-rememberpassword' => 'Даглаца сан дӀаяздар хӀокху браузеран тӀяхь (цхьан $1 {{PLURAL:$1|де|динахь|ден}})',
 'tog-watchcreations' => 'ТӀетоха ас кхоьллина агӀонаш тергаме могӀам чу',
 'tog-watchdefault' => 'ТӀетоха ас нисйина агӀонаш тергаме могӀам чу',
@@ -1877,7 +1876,6 @@ PICT # тайп тайпан
 'notanarticle' => 'Бац яззам',
 'watchlist-details' => 'Хьан тергаме могlамца $1 {{PLURAL:$1|агlо|агlонаш|агlонаш}} ю, дийцаре агlонаша йоцуш.',
 'wlheader-showupdated' => "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
-'wlnote' => 'Лахахьа {{PLURAL:$1|тlаьхьа богlу $1 хийцам|тlаьхьа богlу $1 хийцамаш|тlаьхьа богlу $1 хийцамаш}} хlокху {{PLURAL:$2|тlаьхьар|тlаьхьара|тlаьхьара}} <strong>$2</strong> {{PLURAL:$2|сохьт|сохьатехь|сохьташкахь}}.',
 'wlshowlast' => 'Гайта тlаьххьара $1 сахьташ $2 денош $3',
 'watchlist-options' => 'Тергаме могlаман гlирс нисбар',
 
index 108b8c5..d752e19 100644 (file)
@@ -197,7 +197,6 @@ $messages = array(
 'tog-showtoolbar' => 'شریتی ئامرازەکانی دەستکاری نیشان بدە (JavaScript پێویستە)',
 'tog-editondblclick' => 'دەستکاریی پەڕە بە دووکلیک لەسەر دەق (JavaScript پێویستە)',
 'tog-editsectiononrightclick' => 'ڕێگە بدە بۆ دەستکاری کردنی بەشەکان لە ڕێگەی کلیکی ڕاست کردن لەسەر سەردێڕی بەشەکان (JavaScript پێویستە)',
-'tog-showtoc' => 'پێرستی ناوەرۆک نیشان بدە (بۆ ئەو پەڕانە کە زیاتر لە ٣ سەردێڕیان تێدایە)',
 'tog-rememberpassword' => 'چوونە ژوورەوەم لەسەر ئەم وێبگەڕە پاشەکەوت بکە (ئەو پەڕی $1 {{PLURAL:$1|ڕۆژ|ڕۆژ}}ە)',
 'tog-watchcreations' => 'ئەو پەڕانەی من دروستم کردوون و ئەو پەڕگانە من بارم کردوون زیاد بکە بە لیستی چاودێڕییەکەم',
 'tog-watchdefault' => 'ئەو پەڕانە  و ئەو پەڕگانە من دەستکاریان دەکەم زیاد بکە بە لیستی چاودێڕییەکەم',
index aaf8e2a..f742c57 100644 (file)
@@ -583,7 +583,7 @@ Parechji mudelli ùn seranu micca inclusi.",
 
 # Contributions
 'contributions' => 'Mudifiche fatte da i {{GENDER:$1|cuntributori|cuntributrici}}',
-'contributions-title' => 'Cuntribuzioni di $1',
+'contributions-title' => 'Cuntribuzione di $1',
 'mycontris' => 'Cuntribuzioni',
 'contribsub2' => 'Per {{GENDER:$3|$1}} ($2)',
 'month' => 'Da u mese (è nanzu):',
@@ -778,6 +778,9 @@ Parechji mudelli ùn seranu micca inclusi.",
 # Special:Tags
 'tags-edit' => 'mudificà',
 
+# New logging system
+'rightsnone' => '(nessunu)',
+
 # Special:ExpandTemplates
 'expand_templates_output' => 'Risultatu',
 
index 59dcbbf..74628fd 100644 (file)
@@ -376,7 +376,6 @@ $messages = array(
 'tog-showtoolbar' => 'Zobrazit panel nástrojů',
 'tog-editondblclick' => 'Editovat stránky dvojklikem',
 'tog-editsectiononrightclick' => 'Umožnit editaci části stránky kliknutím pravým tlačítkem na nadpisy sekcí',
-'tog-showtoc' => 'Zobrazovat obsah (na stránkách s více než třemi nadpisy)',
 'tog-rememberpassword' => 'Zapamatovat si mé přihlášení v tomto prohlížeči (maximálně $1 {{PLURAL:$1|den|dny|dní}})',
 'tog-watchcreations' => 'Přidávat mnou založené stránky a načtené soubory ke sledovaným',
 'tog-watchdefault' => 'Přidávat mnou editované stránky a soubory ke sledovaným',
@@ -921,6 +920,8 @@ Pokud se ho rozhodnete uvést, bude použito pro označení autorství vaší pr
 'retypenew' => 'Napište znovu nové heslo',
 'resetpass_submit' => 'Nastavit heslo a přihlásit se',
 'changepassword-success' => 'Vaše heslo bylo úspěšně změněno!',
+'changepassword-throttled' => 'Provedli jste příliš mnoho pokusů o přihlášení.
+Než to zkusíte znovu, musíte počkat na vypršení lhůty $1.',
 'resetpass_forbidden' => 'Hesla nelze změnit.',
 'resetpass-no-info' => 'K této stránce mají přímý přístup jen přihlášení uživatelé.',
 'resetpass-submit-loggedin' => 'Změnit heslo',
@@ -977,6 +978,8 @@ Dočasné heslo: $2',
 'changeemail-password' => 'Vaše heslo do {{gender:2sg|{{SITENAME}}}}:',
 'changeemail-submit' => 'Změnit e-mail',
 'changeemail-cancel' => 'Storno',
+'changeemail-throttled' => 'Provedli jste příliš mnoho pokusů o přihlášení.
+Než to zkusíte znovu, musíte počkat na vypršení lhůty $1.',
 
 # Special:ResetTokens
 'resettokens' => 'Reinicializace klíčů',
@@ -2450,7 +2453,7 @@ Ve [[Special:Watchlist|sledovaných stránkách]] se tak budou objevovat budouc
 'watchmethod-list' => 'hledají se nejnovější editace sledovaných stránek',
 'watchlistcontains' => 'Na vašem seznamu sledovaných stránek {{PLURAL:$1|je $1 položka|jsou $1 položky|je $1 položek}}.',
 'iteminvalidname' => 'Problém s položkou „$1“, neplatný název…',
-'wlnote' => "Níže {{PLURAL:$1|je poslední změna|jsou poslední '''$1''' změny|je posledních '''$1''' změn}} za {{PLURAL:$2|poslední hodinu|poslední '''$2''' hodiny|posledních '''$2''' hodin}} do $4, $3.",
+'wlnote2' => 'Níže jsou změny za {{PLURAL:$1|poslední hodinu|poslední <strong>$1</strong> hodiny|posledních <strong>$1</strong> hodin}} do $3, $2.',
 'wlshowlast' => 'Ukázat posledních $1 hodin $2 dnů $3',
 'watchlist-options' => 'Možnosti sledovaných stránek',
 
@@ -2990,6 +2993,7 @@ Pokud si přejete přispívat k lokalizaci softwaru MediaWiki, navštivte [https
 'allmessages-prefix' => 'Filtr podle začátku názvu:',
 'allmessages-language' => 'Jazyk:',
 'allmessages-filter-submit' => 'Použít',
+'allmessages-filter-translate' => 'přeložit',
 
 # Thumbnails
 'thumbnail-more' => 'Zvětšit',
@@ -3081,7 +3085,6 @@ Uložte jej na svůj disk a nahrajte ho sem.',
 'tooltip-pt-watchlist' => 'Seznam stránek, jejichž změny sleduji',
 'tooltip-pt-mycontris' => 'Seznam vašich příspěvků',
 'tooltip-pt-login' => 'Doporučujeme vám přihlásit se, ovšem není to povinné.',
-'tooltip-pt-anonlogin' => 'Doporučujeme vám přihlásit se, ovšem není to povinné.',
 'tooltip-pt-logout' => 'Odhlásit se',
 'tooltip-ca-talk' => 'Diskuse ke stránce',
 'tooltip-ca-edit' => 'Tuto stránku můžete editovat. Prosíme použijte tlačítko Ukázat náhled před uložením.',
@@ -4290,5 +4293,6 @@ V podstatě rozbalí prakticky všechno v dvojitých složených závorkách.',
 'expand_templates_preview' => 'Náhled',
 
 # Unknown messages
+'createaccount-hook-aborted' => '$1',
 'uploadinvalidxml' => 'XML v načteném souboru nelze zpracovat.',
 );
index 9bd91a0..0a00faa 100644 (file)
@@ -130,7 +130,6 @@ $messages = array(
 'tog-showtoolbar' => 'Dangos y bar offer golygu',
 'tog-editondblclick' => 'Golygu tudalennau wrth glicio ddwywaith',
 'tog-editsectiononrightclick' => 'Galluogi golygu adran drwy dde-glicio ar bennawd yr adran',
-'tog-showtoc' => 'Dangos y daflen gynnwys (ar gyfer tudalennau sydd â mwy na 3 pennawd)',
 'tog-rememberpassword' => "Y porwr hwn i gofio'r manylion mewngofnodi (hyd at $1 {{PLURAL:$1||diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}})",
 'tog-watchcreations' => 'Ychwanegu tudalennau at fy rhestr wylio wrth i mi eu creu a ffeiliau wrth i mi eu huwchlwytho.',
 'tog-watchdefault' => 'Ychwanegu tudalennau a ffeiliau at fy rhestr wylio wrth i mi eu golygu',
index 71d870e..ac1dd4e 100644 (file)
@@ -205,7 +205,6 @@ $messages = array(
 'tog-showtoolbar' => 'Vis værktøjslinje til redigering',
 'tog-editondblclick' => 'Redigér sider med dobbeltklik',
 'tog-editsectiononrightclick' => 'Redigér afsnit ved at højreklikke på deres titler',
-'tog-showtoc' => 'Vis indholdsfortegnelse (på sider med mere end tre afsnit)',
 'tog-rememberpassword' => 'Husk mig i denne browser (i højst $1 {{PLURAL:$1|dag|dage}})',
 'tog-watchcreations' => 'Tilføj sider, jeg opretter, og filer, jeg lægger op, til min overvågningsliste',
 'tog-watchdefault' => 'Tilføj sider og filer, jeg redigerer, til min overvågningsliste',
index 1334419..c39df8d 100644 (file)
@@ -435,7 +435,6 @@ $messages = array(
 'tog-showtoolbar' => 'Bearbeiten-Werkzeugleiste anzeigen',
 'tog-editondblclick' => 'Seiten mit Doppelklick bearbeiten',
 'tog-editsectiononrightclick' => 'Einzelne Abschnitte per Rechtsklick bearbeiten',
-'tog-showtoc' => 'Anzeige eines Inhaltsverzeichnisses auf Seiten mit mehr als drei Überschriften',
 'tog-rememberpassword' => 'Mit diesem Browser dauerhaft angemeldet bleiben (maximal $1 {{PLURAL:$1|Tag|Tage}})',
 'tog-watchcreations' => 'Selbst erstellte Seiten und hochgeladene Dateien automatisch beobachten',
 'tog-watchdefault' => 'Selbst geänderte Seiten und Dateien automatisch beobachten',
@@ -2522,7 +2521,7 @@ Spätere Änderungen an dieser Seite und der zugehörigen Diskussionsseite werde
 'watchmethod-list' => 'Überprüfen der Beobachtungsliste nach letzten Bearbeitungen',
 'watchlistcontains' => 'Deine Beobachtungsliste enthält $1 {{PLURAL:$1|Seite|Seiten}}.',
 'iteminvalidname' => 'Problem mit dem Eintrag „$1“, ungültiger Name.',
-'wlnote' => "Es {{PLURAL:$1|folgt die letzte Änderung|folgen die letzten '''$1''' Änderungen}} der letzten {{PLURAL:$2|Stunde|'''$2''' Stunden}}. Stand: $3, $4 Uhr.",
+'wlnote2' => 'Es folgen die Änderungen der letzten {{PLURAL:$1|Stunde|<strong>$1</strong> Stunden}}. Stand: $2, $3.',
 'wlshowlast' => 'Zeige die Änderungen der letzten $1 Stunden, $2 Tage oder $3.',
 'watchlist-options' => 'Anzeigeoptionen',
 
@@ -3064,6 +3063,7 @@ Bitte besuche die Seiten [https://www.mediawiki.org/wiki/Localisation MediaWiki-
 'allmessages-prefix' => 'Präfixfilter:',
 'allmessages-language' => 'Sprache:',
 'allmessages-filter-submit' => 'Los',
+'allmessages-filter-translate' => 'Übersetzen',
 
 # Thumbnails
 'thumbnail-more' => 'vergrößern',
@@ -3157,7 +3157,6 @@ Diese auf dem lokalen Rechner speichern und danach hier hochladen.',
 'tooltip-pt-watchlist' => 'Liste der beobachteten Seiten',
 'tooltip-pt-mycontris' => 'Liste eigener Beiträge',
 'tooltip-pt-login' => 'Sich anzumelden wird zwar gerne gesehen, ist aber keine Pflicht.',
-'tooltip-pt-anonlogin' => 'Sich anzumelden wird zwar gerne gesehen, ist aber keine Pflicht.',
 'tooltip-pt-logout' => 'Abmelden',
 'tooltip-ca-talk' => 'Diskussion zum Seiteninhalt',
 'tooltip-ca-edit' => 'Seite bearbeiten. Bitte vor dem Speichern die Vorschaufunktion benutzen.',
index e5ae653..b24c903 100644 (file)
@@ -342,7 +342,6 @@ $messages = array(
 'tog-showtoolbar' => 'Toolbar virnayisi bivin (JavaScript lazımo)',
 'tog-editondblclick' => 'Per virnayisi di dilet klik bike (JavaScript lazımo)',
 'tog-editsectiononrightclick' => 'Qısıman be tıknayışê serrêze ra ebe gocega raşte bıvurne (JavaScript lazımo)',
-'tog-showtoc' => 'Tabloyê tedeesteyan bımocne (de pelanê be hirê sernuşteyan ra vêşêri de)',
 'tog-rememberpassword' => 'Parola mı nê cıgeyrayoği de bia xo viri (seba tewr zêde $1 {{PLURAL:$1|roce|rocan}}).',
 'tog-watchcreations' => 'Pelê ke mı afernayê u dosyeyê ke mı bar kerdê lista mına seyrkerdışi ke',
 'tog-watchdefault' => 'Pel u dosyeyê ke mı vurnayê lista mına seyrkerdışi ke',
@@ -641,7 +640,7 @@ $1',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Wesiqe',
-'nstab-user' => 'Pera Karberi',
+'nstab-user' => 'Pela karberi',
 'nstab-media' => 'Pera Medya',
 'nstab-special' => 'Pela xase',
 'nstab-project' => 'Pera proci',
@@ -783,7 +782,7 @@ Wexta ke verhafızayê cıgerayoxê şıma pak beno no benate de taye peli de he
 'nologinlink' => 'Yew hesab ake',
 'createaccount' => 'Hesab vıraşten',
 'gotaccount' => "Hesabê şıma esto? '''$1'''.",
-'gotaccountlink' => 'Dekewtış',
+'gotaccountlink' => 'Cı kewe',
 'userlogin-resetlink' => 'Melumatê cıkewtışi xo vira kerdê?',
 'userlogin-resetpassword-link' => 'Parola xo kerda xo vira?',
 'helplogin-url' => 'Help:Qeydbiyayış',
@@ -2415,7 +2414,6 @@ Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni.',
 'watchmethod-list' => 'pel ê ke şıma temaşa kenî vuryayişê peyinê ey konrol beno',
 'watchlistcontains' => 'listeya seyrkerdışê şıma de $1 tene {{PLURAL:$1|peli|peli}} estî.',
 'iteminvalidname' => "pê no '$1' unsuri problem bı, nameyo nemeqbul...",
-'wlnote' => "$3 seate u bahde $4 deqa dıma {{PLURAL:$2|ju seate dı|'''$2''' ju seate dı}} {{PLURAL:$1|vurnayışe peyeni|vurnayışe '''$1''' peyeni}} cêrdeyê",
 'wlshowlast' => 'Peyni de vurnayışan ra  $1 seata u $2 roca $3 bımocnê',
 'watchlist-options' => 'Tercihê liste da seyri',
 
@@ -2901,7 +2899,7 @@ Yewna name bınus.',
 'movepage-page-moved' => 'pelê $1i kırışiya pelê $2i.',
 'movepage-page-unmoved' => 'pelê $1i nêkırışiyeno sernameyê $2i.',
 'movepage-max-pages' => 'tewr ziyed $1 {{PLURAL:$1|peli|peli}} kırışiya u hıni ziyedê ıney otomotikmen nêkırışiyeno.',
-'movelogpage' => 'Qeydé berdışi',
+'movelogpage' => 'Qeydê berdışi',
 'movelogpagetext' => 'nameyê liste ya ke cêr de yo, pelê vuriyayeyani mocneno',
 'movesubpage' => '{{PLURAL:$1|Subpage|pelê bınıni}}',
 'movesubpagetext' => '{{PLURAL:$1|pelê bınıni yê|pelê bınıni yê}} no $1 peli cer de yo.',
@@ -3059,7 +3057,7 @@ dosyaya emaneti vindbiyo',
 'javascripttest-qunit-heading' => 'MediaWiki JavaScript QUnit test suite',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Pera şımaya karberi',
+'tooltip-pt-userpage' => 'Pela şımaya karberi',
 'tooltip-pt-anonuserpage' => 'pelê karberê IPyi',
 'tooltip-pt-mytalk' => 'Pela toya werênayışi',
 'tooltip-pt-anontalk' => 'vurnayiş ê ke no Ipadresi ra biyo muneqeşa bıker',
@@ -3067,7 +3065,6 @@ dosyaya emaneti vindbiyo',
 'tooltip-pt-watchlist' => 'Lista pelanê ke to gırewtê seyrkerdış',
 'tooltip-pt-mycontris' => 'Listeya dekerdışan de şıma',
 'tooltip-pt-login' => 'Mayê şıma ronıştış akerdışi rê dawet keme; labelê ronıştış mecburi niyo',
-'tooltip-pt-anonlogin' => 'Seba cıkewtışê şıma rê dewato; labelê, no zeruri niyo',
 'tooltip-pt-logout' => 'Sistem ra vıcyayış',
 'tooltip-ca-talk' => 'Zerrekê pele sero werênayış',
 'tooltip-ca-edit' => 'Tı şenay na perer bıvurné.Verdé qeyd kerdışi ver gocega verqayti bıkarné.',
@@ -3104,7 +3101,7 @@ dosyaya emaneti vindbiyo',
 'tooltip-t-print' => 'Hewl versiyona ploğnayışa na perer',
 'tooltip-t-permalink' => 'Gırêyo daimi be ena versiyonê pele',
 'tooltip-ca-nstab-main' => 'Perra muhtevay bıvin',
-'tooltip-ca-nstab-user' => 'Pera karberi bıvin',
+'tooltip-ca-nstab-user' => 'Pela karberi bıvêne',
 'tooltip-ca-nstab-media' => 'Pera medya bıvin',
 'tooltip-ca-nstab-special' => 'Na yew pela xasa, şıma nêşenê sero vurnayış bıkerê',
 'tooltip-ca-nstab-project' => 'Pera proci bıvin',
index 388e0a0..7c3b3b1 100644 (file)
@@ -171,7 +171,6 @@ $messages = array(
 'tog-showtoolbar' => 'Wobźěłowańsku rědku pokazaś',
 'tog-editondblclick' => 'Boki z dwójnym kliknjenim wobźěłaś',
 'tog-editsectiononrightclick' => 'Wobźěłowanje wótrězkow pśez kliknjenje z pšaweju tastu myški zmóžniś',
-'tog-showtoc' => 'Wopśimjeśe pokazaś, jolic ma bok wěcej nježli 3 nadpisma',
 'tog-rememberpassword' => 'Z toś tym wobglědowakom pśizjawjony wóstaś (za maksimalnje $1 {{PLURAL:$1|źeń|dnja|dny|dnjow}})',
 'tog-watchcreations' => 'Boki, kótarež napórajom a dataje, kótarež nagrawam, wobglědowaś',
 'tog-watchdefault' => 'Boki a dataje , kótarež změnijom, wobglědowaś',
@@ -701,6 +700,8 @@ Jolic jo pódajoš, buźo se to wužywaś, aby pśinoski pśirědowało.',
 'retypenew' => 'Nowe šćitne gronidło (hyšći raz):',
 'resetpass_submit' => 'Šćitne gronidło nastajiś a se pśizjawiś',
 'changepassword-success' => 'Twóje gronidło jo se wuspěšnje změniło!',
+'changepassword-throttled' => 'Sy pśecesto wopytał se pśizjawiś.
+Pócakaj pšosym $1, nježli až wopytajoš znowego.',
 'resetpass_forbidden' => 'Gronidła njedaju se změniś',
 'resetpass-no-info' => 'Dejš pśizjawjony byś, aby direktny pśistup na toś ten bok měł.',
 'resetpass-submit-loggedin' => 'Gronidło změniś',
@@ -752,6 +753,8 @@ Nachylne gronidło: $2',
 'changeemail-password' => 'Twójo gronidło za {{GRAMMAR:akuzatiw|{{SITENAME}}}}',
 'changeemail-submit' => 'E-mailowu adresu změniś',
 'changeemail-cancel' => 'Pśetergnuś',
+'changeemail-throttled' => 'Sy pśecesto wopytał se pśizjawiś.
+Pócakaj pšosym $1, nježli až wopytajoš znowego.',
 
 # Special:ResetTokens
 'resettokens' => 'Tokeny slědk stajiś',
@@ -2210,7 +2213,6 @@ Pózdźejšne změny na toś tom boku a w pśisłušecej diskusiji se tam nalicu
 'watchmethod-list' => 'Pśepytanje wobglědowanych bokow za aktualnymi změnami',
 'watchlistcontains' => 'Twója wobglědowańka wopśimujo $1 {{PLURAL:$1|bok|boka|boki|bokow}}.',
 'iteminvalidname' => 'Problem ze zapisom „$1“, njepłaśece mě.',
-'wlnote' => "{{PLURAL:$1|Slědujo slědna změna|slědujotej '''$1''' slědnej změnje|slěduju slědne '''$1''' změny}} {{PLURAL:$2|slědneje góźiny|slědneju '''$2''' góźinowu|slědnych '''$2''' góźinow}}, staw: $3, $4.",
 'wlshowlast' => 'Pokaž změny slědnych $1 góźinow, $2 dnjow abo $3 (w slědnych 30 dnjach).',
 'watchlist-options' => 'Opcije wobglědowańki',
 
@@ -2839,7 +2841,6 @@ Wšykne transwiki-importowe akcije protokolěruju se w [[Special:Log/import|log-
 'tooltip-pt-watchlist' => 'Lisćina bokow, kótarež se wobglěduju',
 'tooltip-pt-mycontris' => 'Lisćina twójich pśinoskow',
 'tooltip-pt-login' => 'Pśizjawjenje njejo obligatoriske, ale lubje witane.',
-'tooltip-pt-anonlogin' => 'Pśizjawjenje njejo obligatoriske, ale lubje witane.',
 'tooltip-pt-logout' => 'Wótzjawiś',
 'tooltip-ca-talk' => 'Diskusija wó wopśimjeśu boka',
 'tooltip-ca-edit' => 'Móžoš bok wobźěłaś. Nježlic składujoš, wužywaj pšosym funkciju "pśeglěd".',
@@ -3970,5 +3971,6 @@ Hować móžoš slědujucy jadnory formular wužywaś. Twój komentar pśidajo s
 'expand_templates_preview' => 'Pśeglěd',
 
 # Unknown messages
+'createaccount-hook-aborted' => '$1',
 'uploadinvalidxml' => 'XML w nagratej dataji njedajo se parsowaś.',
 );
index d4bc18e..81e3ca4 100644 (file)
@@ -26,7 +26,6 @@ $messages = array(
 'tog-showtoolbar' => 'Fà vèder la bâra di strumèint ed mudéfica.',
 'tog-editondblclick' => "Mudéfica 'l pàgini cun un cléch dòpi.",
 'tog-editsectiononrightclick' => 'Mudéfica dal sesiòun per mèz dal cléch a dréta insém al tétol.',
-'tog-showtoc' => "Fà vèder al sûnt (p'r al pàgini cun pió 'd 3 sesiòun)",
 'tog-rememberpassword' => "Tîn a mèint la cêva 'd ingrès insém a cól navigadōr ché (per un mâsim ed $1{{PLURAL:$1|dé}}).",
 'tog-watchcreations' => "Zûnta al pàgini fâti e i file carghê int i tgnû 'd ôc specêl.",
 'tog-watchdefault' => "Zûnta al pàgini e i file mudifichê int i tgnû 'd ôc specêl.",
@@ -505,8 +504,30 @@ Siēlier 'n' êter nòm utèint.",
 'noemailcreate' => "L'é necesâri dêr un 'indirés ed pôsta eletrônica vâlid.",
 'passwordsent' => "'Na nōva cêva 'd ingrès l'é stêda spidîda a l'indiré ed pôsta eletrônica per l'utèint \"\$1\". Per piaşèir, fà un ingrès apèina 't la ricēv.",
 'blocked-mailpassword' => "Per pervèder abûş, an n'é mìa permès druvêr la funsiòun \"spidés 'na nōva cêva 'd ingrès\" da un indirés IP bluchê.",
+'eauthentsent' => "Un mesâg ed cunfèirma l'é stê spidî a l'indirés ed pôsta eletrônica sgnê ché. L'utèint per prèir inviêr di mesâg ed pôsta eletrônica al dēv andêr a drē al j istrusiòun scréti, in môd da cunfermêr ch' l'é ló al legétim proprietâri 'd l'indirés.",
+'throttled-mailpassword' => "Un mesâg ed pôsta eletrônica 'd arnōv ed la cêva 'd ingrès l'é bèle stê inviê da mēno 'd {{PLURAL:$1|1 ōra|$1 ōri}}. Per pervèder abûş, la funziòun 'd arnōv ed la cêva 'd ingrès la pōl èser druvêda sōl 'na vôlta ògni {{PLURAL:$1|1 ōra|$1 ōri}}.",
+'mailerror' => 'Erōr int la spedisiòun dal mesâg $1',
+'acct_creation_throttle_hit' => "{{PLURAL:$1|1 registrasiòun l'é bèle stêda fâta |$1 registrasiòun în bèle stêdi fâti}} da quelchidûn cun al tó 'stès indirés IP int l'ûltem dé: l'é al mâsim permés in cól peréiod ed tèimp ché. Per còst j utèint che drōven cl 'indirés IP ché, p'r al mumèint,  an 's pōl mìa registrêr.",
+'emailauthenticated' => "L'indirés ed pôsta eletrônica l'é stê cunfermê al $2 al $3.",
+'emailnotauthenticated' => "L'indirés ed pôsta eletrônica an n'é mìa incòra stê cunfermê.
+A gnirâ mìa spidî mesâg ed pôsta eletrônica p'r al funsiòun in elèinch ché sòta.",
+'noemailprefs' => "Scréver un indirés ed pôsta eletrônica per fêr funsionêr st' al funsiòun.",
+'emailconfirmlink' => 'Cunfèirma al tó indirés ed pôsta eletrônica',
+'invalidemailaddress' => "L'indirés ed pôsta eletrônica scrét in 'na manēra mìa vâlida.
+Scrév un indirés vâlid o vōda la caşèla.",
+'cannotchangeemail' => 'In cól wiki ché j indiré ed pôsta eletrônica an pōlen mìa èser cambiê.',
+'emaildisabled' => 'Cól sît ché an pōl mia spidîr mesâg ed pôsta eletrônica.',
 'accountcreated' => 'Ingrès fât',
+'accountcreatedtext' => "È stê fât 'n'utèisa per [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
+'createaccount-title' => 'Per fêr un inscrisiòun a {{SITENAME}}',
+'createaccount-text' => "Quelchidûn l'à fât un inscrisiòun a  {{SITENAME}} (\$4) a nòm ed \$2 coleghê a cl'indirés ed pôsta eletrônica ché. La cêva 'd ingrès per l'utèint \"\$2\" l'é  impustêda a \"\$3\". 
+É necesâri fêr un ingrès préma ch' es pôl e cambiêr subét la cêva 'd ingrès. 
+Se l'inscrisiòun l'é stêda fâta per şbâli, es pōl scanşlêr sté mesâg.",
+'usernamehasherror' => 'Al nòm utèint al pōl mìa avèir i carâter hash',
+'login-throttled' => "În stê fât trôp tentatîv 'd ingrès in pôch tèimp. Spèta $1 e pó tōrna pruvêr.",
+'login-abort-generic' => "An t'é mìa stê arcgnusû - Scanşlê",
 'loginlanguagelabel' => 'Léngva: $1',
+'suspicious-userlogout' => "La tó dmânda per destachêret l'é stēda rifiutêda perchè la sèmbra spidîda da un navigadōr ch' al funsiòuna mìa o da un proxy di caching.",
 
 # Change password dialog
 'changepassword' => "Câmbia la cêva 'd ingrès",
index 94796ac..5f0422a 100644 (file)
@@ -382,7 +382,6 @@ $messages = array(
 'tog-showtoolbar' => 'Εμφάνιση μπάρας εργαλείων επεξεργασίας',
 'tog-editondblclick' => 'Επεξεργασία σελίδων με διπλό κλικ',
 'tog-editsectiononrightclick' => 'Ενεργοποίηση επεξεργασίας ενοτήτων με δεξί κλικ στους τίτλους των ενοτήτων',
-'tog-showtoc' => 'Εμφάνιση πίνακα περιεχομένων (για σελίδες με περισσότερες από τρεις κεφαλίδες)',
 'tog-rememberpassword' => 'Διατήρηση της σύνδεσής μου σε αυτόν τον περιηγητή (για μέγιστο $1 {{PLURAL:$1|ημέρας|ημερών}})',
 'tog-watchcreations' => 'Προσθήκη σελίδων που δημιουργώ και αρχείων που ανεβάζω στη λίστα παρακολούθησής μου',
 'tog-watchdefault' => 'Προσθήκη σελίδων που επεξεργάζομαι στη λίστα παρακολούθησης.',
index 300792a..ae76b91 100644 (file)
@@ -404,6 +404,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'CreateAccount' ),
        'Deadendpages'              => array( 'DeadendPages' ),
        'DeletedContributions'      => array( 'DeletedContributions' ),
+       'Diff'                      => array( 'Diff' ),
        'DoubleRedirects'           => array( 'DoubleRedirects' ),
        'EditWatchlist'             => array( 'EditWatchlist' ),
        'Emailuser'                 => array( 'EmailUser' ),
@@ -658,7 +659,6 @@ future releases. Also note that since each list value is wrapped in a unique
 
 # User preference toggles
 'tog-underline'               => 'Link underlining:',
-'tog-justify'                 => 'Justify paragraphs',
 'tog-hideminor'               => 'Hide minor edits in recent changes',
 'tog-hidepatrolled'           => 'Hide patrolled edits in recent changes',
 'tog-newpageshidepatrolled'   => 'Hide patrolled pages from new page list',
@@ -2971,7 +2971,7 @@ Future changes to this page and its associated talk page will be listed there.',
 'watchmethod-list'     => 'checking watched pages for recent edits',
 'watchlistcontains'    => 'Your watchlist contains $1 {{PLURAL:$1|page|pages}}.',
 'iteminvalidname'      => 'Problem with item "$1", invalid name...',
-'wlnote'               => "Below {{PLURAL:$1|is the last change|are the last <strong>$1</strong> changes}} in the last {{PLURAL:$2|hour|<strong>$2</strong> hours}}, as of $3, $4.",
+'wlnote2'              => "Below are the changes in the last {{PLURAL:$1|hour|<strong>$1</strong> hours}}, as of $2, $3.",
 'wlshowlast'           => 'Show last $1 hours $2 days $3',
 'watchlist-options'    => 'Watchlist options',
 
@@ -3613,7 +3613,7 @@ The file was only partially uploaded.',
 A temporary folder is missing.',
 'import-parse-failure'       => 'XML import parse failure',
 'import-noarticle'           => 'No page to import!',
-'import-nonewrevisions'      => 'All revisions were previously imported.',
+'import-nonewrevisions'      => 'No revisions imported (all were either already present, or skipped due to errors).',
 'xml-error-string'           => '$1 at line $2, col $3 (byte $4): $5',
 'import-upload'              => 'Upload XML data',
 'import-token-mismatch'      => 'Loss of session data.
@@ -3625,6 +3625,7 @@ Please try again.',
 'import-error-special'       => 'Page "$1" is not imported because it belongs to a special namespace that does not allow pages.',
 'import-error-invalid'       => 'Page "$1" is not imported because its name is invalid.',
 'import-error-unserialize'   => 'Revision $2 of page "$1" could not be unserialized. The revision was reported to use content model $3 serialized as $4.',
+'import-error-bad-location'  => 'Revision $2 using content model $3 can not be stored on "$1" on this wiki, since that model is not supported on that page.',
 'import-options-wrong'       => 'Wrong {{PLURAL:$2|option|options}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid'    => 'Given root page is an invalid title.',
 'import-rootpage-nosubpage'  => 'Namespace "$1" of the root page does not allow subpages.',
@@ -3658,7 +3659,6 @@ Please try again.',
 'accesskey-pt-watchlist'                => 'l', # do not translate or duplicate this message to other languages
 'accesskey-pt-mycontris'                => 'y', # do not translate or duplicate this message to other languages
 'accesskey-pt-login'                    => 'o', # do not translate or duplicate this message to other languages
-'accesskey-pt-anonlogin'                => 'o', # do not translate or duplicate this message to other languages
 'accesskey-pt-logout'                   => '', # do not translate or duplicate this message to other languages
 'accesskey-ca-talk'                     => 't', # do not translate or duplicate this message to other languages
 'accesskey-ca-edit'                     => 'e', # do not translate or duplicate this message to other languages
@@ -3728,7 +3728,6 @@ Please try again.',
 'tooltip-pt-watchlist'                => 'A list of pages you are monitoring for changes',
 'tooltip-pt-mycontris'                => 'A list of your contributions',
 'tooltip-pt-login'                    => 'You are encouraged to log in; however, it is not mandatory',
-'tooltip-pt-anonlogin'                => 'You are encouraged to log in; however, it is not mandatory',
 'tooltip-pt-logout'                   => 'Log out',
 'tooltip-ca-talk'                     => 'Discussion about the content page',
 'tooltip-ca-edit'                     => 'You can edit this page. Please use the preview button before saving',
index a332727..9bbd032 100644 (file)
@@ -336,7 +336,6 @@ $messages = array(
 'tog-showtoolbar' => 'Montri redakto-breton (per JavaScript)',
 'tog-editondblclick' => 'Redakti per duobla alklako (per JavaScript)',
 'tog-editsectiononrightclick' => 'Ŝalti sekcian redaktadon per dekstra musklako de sekciaj titoloj (kun JavaScript)',
-'tog-showtoc' => 'Montri enhavliston (por paĝoj kun pli ol 3 sekcioj)',
 'tog-rememberpassword' => 'Memori mian ensalutadon ĉe ĉi tiu retumilo (daŭrante maksimume $1 {{PLURAL:$1|tagon|tagojn}})',
 'tog-watchcreations' => 'Aldoni miajn kreatajn paĝojn al mia atentaro',
 'tog-watchdefault' => 'Aldoni al mia atentaro paĝojn redaktitajn de mi',
@@ -2368,7 +2367,6 @@ La retadreso kiun vi enigis en [[Special:Preferences|viaj preferoj]] aperos kiel
 'watchmethod-list' => 'traserĉas priatentitajn',
 'watchlistcontains' => 'Via atentaro enhavas $1 {{PLURAL:$1|paĝon|paĝojn}}.',
 'iteminvalidname' => 'Ia eraro pri "$1", nevalida titolo...',
-'wlnote' => "Jen la {{PLURAL:$1|lasta redakto|lastaj '''$1''' redaktoj}} dum la {{PLURAL:$2|lasta horo|lastaj '''$2''' horoj}}, ekde $3, $4.",
 'wlshowlast' => 'Montri el lastaj $1 horoj $2 tagoj $3',
 'watchlist-options' => 'Opcioj por atentaro',
 
@@ -3012,7 +3010,6 @@ Datoj de versioj kaj nomoj de redaktantoj estos preservitaj.
 'tooltip-pt-watchlist' => 'Listo de paĝoj kies ŝanĝojn vi priatentas.',
 'tooltip-pt-mycontris' => 'Listo de viaj kontribuoj',
 'tooltip-pt-login' => 'Vi estas invitita ensaluti, tamen ne estas devige.',
-'tooltip-pt-anonlogin' => 'Vi estas invitita ensaluti, tamen ne estas devige.',
 'tooltip-pt-logout' => 'Elsaluti',
 'tooltip-ca-talk' => 'Diskuto pri la artikolo',
 'tooltip-ca-edit' => 'Vi povas redakti tiun ĉi paĝon. Bv uzi la antaŭvidbutonon antaŭ ol konservi.',
@@ -3910,7 +3907,7 @@ Vi povas ankaŭ [[Special:EditWatchlist|redakti norme]].',
 'version-parser-function-hooks' => 'Hokoj de sintaksaj funkcioj',
 'version-hook-name' => 'Nomo de hoko',
 'version-hook-subscribedby' => 'Abonita de',
-'version-version' => '(Versio $1)',
+'version-version' => '($1)',
 'version-license' => 'Permesilo de MediaWiki',
 'version-poweredby-credits' => "Ĉi tiu vikio funkcias per '''[https://www.mediawiki.org/ MediaWiki]''', aŭtorrajto ©&thinsp;2001–$1 $2.",
 'version-poweredby-others' => 'aliaj',
index 3bc309c..415328a 100644 (file)
@@ -25,6 +25,7 @@
  * @author Boivie
  * @author Candalua
  * @author Capmo
+ * @author Carlitosag
  * @author Cerealito
  * @author Ciencia Al Poder
  * @author Clerc
@@ -90,6 +91,7 @@
  * @author Salvador alc
  * @author Sanbec
  * @author Savh
+ * @author Sethladan
  * @author Shirayuki
  * @author Spacebirdy
  * @author Stephensuleeman
@@ -395,7 +397,6 @@ $messages = array(
 'tog-showtoolbar' => 'Mostrar la barra de edición',
 'tog-editondblclick' => 'Editar las páginas al pulsar dos veces en ellos con el ratón',
 'tog-editsectiononrightclick' => 'Activar la edición de secciones pulsando el botón derecho en los títulos de secciones',
-'tog-showtoc' => 'Mostrar el índice (para páginas con más de 3 encabezados)',
 'tog-rememberpassword' => 'Recordar mi nombre de usuario y contraseña entre sesiones en este navegador (por un máximo de $1 {{PLURAL:$1|día|días}})',
 'tog-watchcreations' => 'Añadir las páginas que cree y los archivos que suba a mi lista de seguimento',
 'tog-watchdefault' => 'Añadir las páginas y archivos que edite a mi lista de seguimiento',
@@ -943,6 +944,8 @@ Establece una contraseña nueva aquí:',
 'retypenew' => 'Confirmar la contraseña nueva:',
 'resetpass_submit' => 'Establecer contraseña e iniciar sesión',
 'changepassword-success' => 'La contraseña ha sido cambiada con éxito.',
+'changepassword-throttled' => 'Has intentado acceder demasiadas veces.
+Espera $1 antes de intentarlo de nuevo.',
 'resetpass_forbidden' => 'No se pueden cambiar las contraseñas',
 'resetpass-no-info' => 'Debes iniciar sesión para acceder directamente a esta página.',
 'resetpass-submit-loggedin' => 'Cambiar contraseña',
@@ -1000,6 +1003,8 @@ Contraseña temporal: $2',
 'changeemail-password' => 'Tu contraseña en {{SITENAME}}:',
 'changeemail-submit' => 'Cambiar correo electrónico',
 'changeemail-cancel' => 'Cancelar',
+'changeemail-throttled' => 'Has intentado acceder demasiadas veces.
+Espera $1 antes de intentarlo de nuevo.',
 
 # Special:ResetTokens
 'resettokens' => 'Restablecer claves',
@@ -2486,7 +2491,6 @@ La dirección de correo electrónico que indicaste en [[Special:Preferences|tus
 'watchmethod-list' => 'revisando las páginas vigiladas en busca de cambios recientes',
 'watchlistcontains' => 'Tu lista de seguimiento posee $1 {{PLURAL:$1|página|páginas}}.',
 'iteminvalidname' => "Problema con el artículo '$1', nombre inválido...",
-'wlnote' => "A continuación {{PLURAL:$1|se muestra el último cambio|se muestran los últimos '''$1''' cambios}} en {{PLURAL:$2|la última hora|las últimas '''$2''' horas}} a fecha de $4 $3.",
 'wlshowlast' => 'Ver los cambios de las últimas $1 horas, $2 días  $3',
 'watchlist-options' => 'Opciones de la lista de seguimiento',
 
@@ -2573,7 +2577,7 @@ Véase $2 para un registro de los borrados recientes.',
 'delete-edit-reasonlist' => 'Editar razones de borrado',
 'delete-toobig' => 'Esta página tiene un historial muy grande, con más de $1 {{PLURAL:$1|revisión|revisiones}}. Borrar este tipo de páginas ha sido restringido para prevenir posibles problemas en {{SITENAME}}.',
 'delete-warning-toobig' => 'Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}. Eliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}. Ten cuidado al borrar.',
-'deleting-backlinks-warning' => "'''Advertencia:''' Hay enlaces desde otras páginas a la página que estás a punto de borrar.",
+'deleting-backlinks-warning' => "'''Advertencia:''' Otras páginas están enlazadas o son inclusión desde la página que estás por eliminar.",
 
 # Rollback
 'rollback' => 'Revertir ediciones',
@@ -2870,7 +2874,7 @@ Consulta la [[Special:BlockList|lista de bloqueos]] para ver la lista de bloqueo
 'range_block_disabled' => 'La facultad de administrador de crear bloqueos por rangos está deshabilitada.',
 'ipb_expiry_invalid' => 'El tiempo de caducidad no es válido.',
 'ipb_expiry_temp' => 'Los bloqueos a nombres de usuario ocultos deben ser permanentes.',
-'ipb_hide_invalid' => 'Incapaz de suprimir esta cuenta; puede tener muchas ediciones.',
+'ipb_hide_invalid' => 'No se puede suprimir esta cuenta; tiene más de {{PLURAL:$1|una edición|$1 ediciones}}.',
 'ipb_already_blocked' => '"$1" ya se encuentra bloqueado.',
 'ipb-needreblock' => '$1 ya está bloqueado. ¿Quieres cambiar el bloqueo?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Otro bloqueo|Otros bloqueos}}',
@@ -3037,6 +3041,7 @@ Por favor visita [https://www.mediawiki.org/wiki/Localisation Localización Medi
 'allmessages-prefix' => 'Filtrar por prefijo:',
 'allmessages-language' => 'Idioma:',
 'allmessages-filter-submit' => 'Ir',
+'allmessages-filter-translate' => 'Traducir',
 
 # Thumbnails
 'thumbnail-more' => 'Aumentar',
@@ -3132,7 +3137,6 @@ No hay un directorio temporal.',
 'tooltip-pt-watchlist' => 'Lista de páginas cuyos cambios vigilas',
 'tooltip-pt-mycontris' => 'Lista de tus contribuciones',
 'tooltip-pt-login' => 'Te recomendamos iniciar sesión, sin embargo no es obligatorio',
-'tooltip-pt-anonlogin' => 'Te invitamos a registrarte, aunque no es obligatorio',
 'tooltip-pt-logout' => 'Salir de la sesión',
 'tooltip-ca-talk' => 'Discusión acerca del artículo',
 'tooltip-ca-edit' => 'Puedes editar esta página. Utiliza el botón de previsualización antes de guardar',
@@ -3305,7 +3309,7 @@ Esto podría estar causado por un enlace a un sitio externo incluido en la lista
 'markaspatrolledtext' => 'Marcar este artículo como revisado',
 'markedaspatrolled' => 'Marcado como revisado',
 'markedaspatrolledtext' => 'La revisión seleccionada de [[:$1|$1]] ha sido marcada como revisada.',
-'rcpatroldisabled' => 'Revisión de los Cambios Recientes deshabilitada',
+'rcpatroldisabled' => 'Se ha desactivado la supervisión de cambios recientes',
 'rcpatroldisabledtext' => 'La capacidad de revisar los Cambios Recientes está deshabilitada en este momento.',
 'markedaspatrollederror' => 'No se puede marcar como patrullada',
 'markedaspatrollederrortext' => 'Debes especificar una revisión para marcarla como patrullada.',
@@ -3997,7 +4001,7 @@ También puedes [[Special:EditWatchlist|usar el editor estándar]].',
 'version-parser-function-hooks' => 'Extensiones de funciones sintácticas',
 'version-hook-name' => 'Nombre de la extensión',
 'version-hook-subscribedby' => 'Suscrito por',
-'version-version' => '(Versión $1)',
+'version-version' => '($1)',
 'version-license' => 'Licencia de MediaWiki',
 'version-ext-license' => 'Licencia',
 'version-ext-colheader-name' => 'Extensión',
index 3958796..6b539e2 100644 (file)
@@ -317,7 +317,6 @@ $messages = array(
 'tog-showtoolbar' => 'Näita redigeerimise tööriistariba',
 'tog-editondblclick' => 'Redigeeri lehekülgi topeltklõpsu peale',
 'tog-editsectiononrightclick' => 'Alusta alaosa redigeerimist paremklõpsuga alaosa pealkirjal',
-'tog-showtoc' => 'Näita sisukorda (lehtedel, millel on rohkem kui 3 pealkirja)',
 'tog-rememberpassword' => 'Parooli meeldejätmine tulevasteks seanssideks (kuni $1 {{PLURAL:$1|päevaks|päevaks}})',
 'tog-watchcreations' => 'Lisa jälgimisloendisse minu alustatud leheküljed ja minu üles laaditud failid',
 'tog-watchdefault' => 'Lisa jälgimisloendisse minu muudetud leheküljed ja failid',
@@ -859,6 +858,8 @@ Sisselogimise lõpetamiseks pead siia uue parooli sisestama:',
 'resetpass_submit' => 'Sisesta parool ja logi sisse',
 'changepassword-success' => 'Sinu parool on edukalt muudetud!
 Sind logitakse nüüd sisse...',
+'changepassword-throttled' => 'Oled hiljuti proovinud liiga palju kordi sisse logida.
+Palun oota $1, enne kui uuesti proovid.',
 'resetpass_forbidden' => 'Paroole ei saa muuta',
 'resetpass-no-info' => 'Pead olema sisselogitud, et sellele lehele pääseda.',
 'resetpass-submit-loggedin' => 'Muuda parool',
@@ -910,6 +911,8 @@ Ajutine parool: $2',
 'changeemail-password' => 'Sinu parool {{GRAMMAR:inessive|{{SITENAME}}}}:',
 'changeemail-submit' => 'Muuda e-posti aadress',
 'changeemail-cancel' => 'Loobu',
+'changeemail-throttled' => 'Oled proovinud liiga palju kordi sisse logida.
+Palun oota $1, enne kui uuesti proovid.',
 
 # Special:ResetTokens
 'resettokens' => 'Lubade lähtestamine',
@@ -2373,7 +2376,6 @@ Edasised muudatused sellel leheküljel ja seotud aruteluleheküljel tuuakse ära
 'watchmethod-list' => 'jälgitavate lehekülgede viimased muudatused',
 'watchlistcontains' => 'Sinu jälgimisloendis on $1 {{PLURAL:$1|lehekülg|lehekülge}}.',
 'iteminvalidname' => "Probleem üksusega '$1'. Selle nimes on viga.",
-'wlnote' => "Allpool on {{PLURAL:$1|viimane muudatus|viimased '''$1''' muudatust}} viimase {{PLURAL:$2|tunni|'''$2''' tunni}} jooksul seisuga $3, $4.",
 'wlshowlast' => 'Näita viimast $1 tundi $2 päeva. $3',
 'watchlist-options' => 'Jälgimisloendi seaded',
 
@@ -3027,7 +3029,6 @@ Palun ürita uuesti.',
 'tooltip-pt-watchlist' => 'Lehekülgede loend, mille muudatusi jälgid',
 'tooltip-pt-mycontris' => 'Sinu kaastööde loend',
 'tooltip-pt-login' => 'Me julgustame teid sisse logima, kuid see pole kohustuslik.',
-'tooltip-pt-anonlogin' => 'Me julgustame teid sisse logima, kuid see pole kohustuslik.',
 'tooltip-pt-logout' => 'Logi välja',
 'tooltip-ca-talk' => 'Selle artikli arutelu',
 'tooltip-ca-edit' => 'Sa saad seda lehekülge muuta. Palun kasuta enne salvestamist eelvaadet.',
@@ -3865,7 +3866,7 @@ Sa võid [[Special:EditWatchlist|kasutada ka harilikku tekstiredaktorit]].',
 'version-parser-function-hooks' => 'Parserifunktsioonid',
 'version-hook-name' => 'Haagi nimi',
 'version-hook-subscribedby' => 'Tellijad',
-'version-version' => '(Versioon $1)',
+'version-version' => '($1)',
 'version-license' => 'MediaWiki litsents',
 'version-ext-license' => 'Litsents',
 'version-ext-colheader-name' => 'Lisa',
index d2b01cf..4522c2e 100644 (file)
@@ -137,7 +137,6 @@ $messages = array(
 'tog-showtoolbar' => 'Aldaketen tresna-barra erakutsi',
 'tog-editondblclick' => 'Klik bikoitzaren bitartez orrialdeak aldatu',
 'tog-editsectiononrightclick' => 'Atalen izenburuetan eskuin klik eginez aldatzea gaitu',
-'tog-showtoc' => 'Edukien taula erakutsi (3 goiburukotik gorako orrialdeentzako)',
 'tog-rememberpassword' => 'Nire saioa ordenagailu honetan gorde ({{PLURAL:$1|egun baterako| $1 egunerako}} gehienez)',
 'tog-watchcreations' => 'Sortzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
 'tog-watchdefault' => 'Aldatzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
@@ -2122,7 +2121,6 @@ Orri honetan aurrerantzean egindako aldaketak zerrenda horretan agertuko dira.',
 'watchmethod-list' => 'jarraipen zerrendako orrialdeak aldaketa berrien bila aztertzen',
 'watchlistcontains' => 'Zure jarraipen zerrendak {{PLURAL:$1|orrialde $1 du|$1 orrialde ditu}}.',
 'iteminvalidname' => "Arazoa '$1' elementuarekin, baliogabeko izena...",
-'wlnote' => "Jarraian {{PLURAL:$2|ikus daiteke azken orduko|ikus daitezke azken '''$2''' orduetako}} azken {{PLURAL:$1|aldaketa|'''$1''' aldaketak}}, $3, $4 gisa.",
 'wlshowlast' => 'Erakutsi azken $1 orduak $2 egunak $3',
 'watchlist-options' => 'Jarraitze-zerrendaren aukerak',
 
@@ -2733,7 +2731,6 @@ Fitxategiaren atal bat baino ez zen igo.',
 'tooltip-pt-watchlist' => 'Jarraitzen dituzun orrialdeen zerrenda.',
 'tooltip-pt-mycontris' => 'Nire ekarpenen zerrenda',
 'tooltip-pt-login' => 'Izen ematera gonbidatzen zaitugu.',
-'tooltip-pt-anonlogin' => 'Izen ematera gonbidatzen zaitugu.',
 'tooltip-pt-logout' => 'Saioa itxi',
 'tooltip-ca-talk' => 'Artikuluari buruzko eztabaida',
 'tooltip-ca-edit' => 'Artikulu hau aldatu dezakezu. Mesedez, aurrebista botoia erabil ezazu gorde baino lehen.',
index 4cbf6cd..3f28adf 100644 (file)
@@ -18,6 +18,7 @@
  * @author Dalba
  * @author E THP
  * @author Ebraminio
+ * @author Fatemi127
  * @author Goudarz
  * @author Huji
  * @author Ibrahim
@@ -464,7 +465,6 @@ $messages = array(
 'tog-showtoolbar' => 'نوار ابزار جعبهٔ ویرایش نمایش یابد',
 'tog-editondblclick' => 'ویرایش صفحه‌ها با دوکلیک (نیازمند جاوااسکریپت)',
 'tog-editsectiononrightclick' => 'امکان ویرایش بخش‌ها با کلیک راست روی عنوان‌های بخش (نیازمند جاوااسکریپت)',
-'tog-showtoc' => 'فهرست مندرجات نمایش یابد (برای صفحه‌های دارای بیش از ۳ عنوان)',
 'tog-rememberpassword' => 'گذرواژهٔ من (حداکثر $1 {{PLURAL:$1|روز|روز}}) در این مرورگر به خاطر سپرده شود',
 'tog-watchcreations' => 'صفحه‌هایی که می‌سازم و پرونده‌هایی که بارگذاری می‌کنم به فهرست پی‌گیری‌هایم افزوده شود',
 'tog-watchdefault' => 'صفحه‌ها و پرونده‌هایی که ویرایش می‌کنم به فهرست پی‌گیری‌هایم افزوده شود',
@@ -1025,6 +1025,8 @@ $2',
 'retypenew' => 'گذرواژهٔ جدید را دوباره وارد کنید',
 'resetpass_submit' => 'تنظیم گذرواژه و ورود به سامانه',
 'changepassword-success' => 'گذرواژهٔ شما با موفقیت تغییر داده شد!',
+'changepassword-throttled' => 'شما به تازگی چندین‌بار برای ثبت ورود تلاش کرده‌اید.
+لطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.',
 'resetpass_forbidden' => 'نمی‌توان گذرواژه‌ها را تغییر داد',
 'resetpass-no-info' => 'برای دسترسی مستقیم به این صفحه شما باید به سامانه وارد شده باشید.',
 'resetpass-submit-loggedin' => 'تغییر گذرواژه',
@@ -1076,6 +1078,8 @@ $2
 'changeemail-password' => ' {{SITENAME}} رمز عبور شما:',
 'changeemail-submit' => 'تغییر رایانامه',
 'changeemail-cancel' => 'انصراف',
+'changeemail-throttled' => 'شما به مراتب برای ورود تلاش کرده‌اید.
+لطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.',
 
 # Special:ResetTokens
 'resettokens' => 'بازنشانی شناساننده‌ها',
@@ -2575,7 +2579,6 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'watchmethod-list' => 'بررسی صفحه‌های مورد پی‌گیری برای ویرایش‌های اخیر',
 'watchlistcontains' => 'فهرست پی‌گیری‌های شما حاوی $1 {{PLURAL:$1|صفحه|صفحه}} است.',
 'iteminvalidname' => 'مشکل با مورد «$1»، نام نامعتبر است...',
-'wlnote' => 'در زیر {{PLURAL:$1|تغییری|$1 تغییری}} که در {{PLURAL:$2|ساعت|$2 ساعت}} گذشته انجام شده موجود است، تاریخ آخرین بازیابی: $3، $4',
 'wlshowlast' => 'نمایش آخرین $1 ساعت $2 روز $3',
 'watchlist-options' => 'گزینه‌های پی‌گیری',
 
@@ -3145,6 +3148,7 @@ $1',
 'allmessages-prefix' => 'پالودن بر اساس پسوند:',
 'allmessages-language' => 'زبان:',
 'allmessages-filter-submit' => 'برو',
+'allmessages-filter-translate' => 'ترجمه',
 
 # Thumbnails
 'thumbnail-more' => 'بزرگ‌کردن',
@@ -3240,7 +3244,6 @@ $2',
 'tooltip-pt-watchlist' => 'فهرست صفحه‌هایی که شما تغییرات آن‌ها را پی‌گیری می‌کنید',
 'tooltip-pt-mycontris' => 'فهرست مشارکت‌های شما',
 'tooltip-pt-login' => 'توصیه می‌شود که به سامانه وارد شوید، گرچه اجباری نیست',
-'tooltip-pt-anonlogin' => 'توصیه می‌شود که به سامانه وارد شوید، لیکن اجباری نیست',
 'tooltip-pt-logout' => 'خروج از سامانه',
 'tooltip-ca-talk' => 'گفتگو پیرامون محتوای صفحه',
 'tooltip-ca-edit' => 'شما می‌توانید این صفحه را ویرایش کنید. لطفاً پیش از ذخیره از دکمهٔ پیش‌نمایش استفاده کنید.',
@@ -4439,5 +4442,6 @@ $5
 'expand_templates_preview' => 'پیش‌نمایش',
 
 # Unknown messages
+'createaccount-hook-aborted' => '$1',
 'uploadinvalidxml' => 'XML در پروندهٔ بارگذاری‌شده نمی‌تواند تجزیه شود.',
 );
index bad61d4..965e031 100644 (file)
@@ -331,7 +331,6 @@ $messages = array(
 'tog-showtoolbar' => 'Näytä työkalupalkki',
 'tog-editondblclick' => 'Muokkaa sivuja kaksoisnapsautuksella',
 'tog-editsectiononrightclick' => 'Muokkaa osioita napsauttamalla osion otsikkoa hiiren oikealla painikkeella',
-'tog-showtoc' => 'Näytä sisällysluettelo (sivuilla, joilla on yli kolme otsikkoa)',
 'tog-rememberpassword' => 'Muista kirjautuminen tässä selaimessa (enintään $1 {{PLURAL:$1|päivä|päivää}})',
 'tog-watchcreations' => 'Lisää luomani sivut ja tallentamani tiedostot tarkkailulistalleni',
 'tog-watchdefault' => 'Lisää muokkaamani sivut ja tiedostot tarkkailulistalleni',
@@ -872,6 +871,8 @@ Nimesi näytetään käyttäjätunnuksesi sijasta sivun tekijäluettelossa.',
 'retypenew' => 'Uusi salasana uudelleen:',
 'resetpass_submit' => 'Aseta salasana ja kirjaudu sisään',
 'changepassword-success' => 'Salasanan vaihto onnistui.',
+'changepassword-throttled' => 'Olet tehnyt liian monta äskettäistä kirjautumisyritystä.
+Odota $1 ennen kuin yrität uudelleen.',
 'resetpass_forbidden' => 'Salasanoja ei voi vaihtaa.',
 'resetpass-no-info' => 'Et voi nähdä tätä sivua kirjautumatta sisään.',
 'resetpass-submit-loggedin' => 'Muuta salasana',
@@ -930,6 +931,8 @@ Väliaikainen salasana: $2',
 'changeemail-password' => 'Salasanasi sivustolla {{SITENAME}}',
 'changeemail-submit' => 'Muuta sähköpostiosoite',
 'changeemail-cancel' => 'Peruuta',
+'changeemail-throttled' => 'Olet tehnyt liian monta kirjautumisyritystä.
+Odota $1 ennen kuin yrität uudelleen.',
 
 # Special:ResetTokens
 'resettokens' => 'Uudista avaimet',
@@ -1385,6 +1388,7 @@ $1 {{int:pipe-separator}} $2',
 'search-result-score' => 'Asiaankuuluvuus: $1%',
 'search-redirect' => '(ohjaus $1)',
 'search-section' => '(osio $1)',
+'search-file-match' => '(vastaa tiedoston sisältöä)',
 'search-suggest' => 'Tarkoititko: $1',
 'search-interwiki-caption' => 'Sisarprojektit',
 'search-interwiki-default' => 'Tulokset osoitteesta $1:',
@@ -2382,7 +2386,6 @@ Tulevaisuudessa sivuun ja sen keskustelusivuun tehtävät muutokset listataan t
 'watchmethod-list' => 'tarkistetaan tarkkailtujen sivujen tuoreimmat muutokset',
 'watchlistcontains' => 'Tarkkailulistallasi on {{PLURAL:$1|yksi sivu|$1 sivua}}.',
 'iteminvalidname' => 'Sivun $1 kanssa oli ongelmia. Sivun nimessä on vikaa.',
-'wlnote' => "Alla on {{PLURAL:$1|yksi muutos|'''$1''' muutosta}} viimeisen {{PLURAL:$2|tunnin|'''$2''' tunnin}} ajalta $3 kello $4 asti.",
 'wlshowlast' => 'Näytä viimeiset $1 tuntia tai $2 päivää, $3',
 'watchlist-options' => 'Tarkkailulistan asetukset',
 
@@ -2467,7 +2470,7 @@ Sivulla $2 on lista viimeaikaisista poistoista.',
 'delete-edit-reasonlist' => 'Muokkaa poistosyitä',
 'delete-toobig' => 'Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistamista on rajoitettu suorituskykysyistä.',
 'delete-warning-toobig' => 'Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistaminen voi haitata sivuston suorituskykyä.',
-'deleting-backlinks-warning' => "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa linkkejä muilta sivuilta.",
+'deleting-backlinks-warning' => "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa linkkejä muilta sivuilta, tai sivu on sisällytetty muuhun sivuun.",
 
 # Rollback
 'rollback' => 'palauta aiempaan versioon',
@@ -2759,7 +2762,7 @@ Alla on ote häivytyslokista.',
 'range_block_disabled' => 'Ylläpitäjien mahdollisuus asettaa avaruusestoja on poistettu käytöstä.',
 'ipb_expiry_invalid' => 'Virheellinen päättymisaika.',
 'ipb_expiry_temp' => 'Piilotettujen käyttäjätunnusten estojen tulee olla pysyviä.',
-'ipb_hide_invalid' => 'Tämän tunnuksen piilottaminen ei onnistu. Sillä saattaa olla liikaa muokkauksia.',
+'ipb_hide_invalid' => 'Tämän tunnuksen piilottaminen ei onnistu; sillä on enemmän kuin {{PLURAL:$1|yksi muokkaus|$1 muokkausta}}.',
 'ipb_already_blocked' => '”$1” on jo estetty.',
 'ipb-needreblock' => '$1 on jo estetty. Haluatko muuttaa eston asetuksia?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Muu esto|Muut estot}}',
@@ -2921,6 +2924,7 @@ Jos haluat muokata MediaWikin yleistä kotoistusta, käy [https://www.mediawiki.
 'allmessages-prefix' => 'Suodata etuliitteellä',
 'allmessages-language' => 'Kieli:',
 'allmessages-filter-submit' => 'Siirry',
+'allmessages-filter-translate' => 'Käännä',
 
 # Thumbnails
 'thumbnail-more' => 'Suurenna',
@@ -3014,7 +3018,6 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 'tooltip-pt-watchlist' => 'Lista sivuista, joiden muokkauksia tarkkailet',
 'tooltip-pt-mycontris' => 'Lista omista muokkauksista',
 'tooltip-pt-login' => 'Kirjaudu sisään tai luo tunnus',
-'tooltip-pt-anonlogin' => 'Kirjaudu sisään tai luo tunnus',
 'tooltip-pt-logout' => 'Kirjaudu ulos',
 'tooltip-ca-talk' => 'Keskustele sisällöstä',
 'tooltip-ca-edit' => 'Muokkaa tätä sivua',
index dcc9b04..58e703d 100644 (file)
@@ -51,6 +51,7 @@
  * @author Jean-Frédéric
  * @author JeanVoisin
  * @author Jens Liebenau
+ * @author Jul law
  * @author Klutzy
  * @author Korg
  * @author Korrigan
@@ -428,7 +429,6 @@ $messages = array(
 'tog-showtoolbar' => "Montrer la barre d'outils de modification (nécessite JavaScript)",
 'tog-editondblclick' => 'Modifier des pages sur double-clic (nécessite JavaScript)',
 'tog-editsectiononrightclick' => 'Activer la modification de sections par clic droit sur les titres (nécessite JavaScript)',
-'tog-showtoc' => 'Afficher la table des matières (pour les pages ayant plus de 3 sections)',
 'tog-rememberpassword' => 'Se souvenir de mon identification avec ce navigateur (au maximum $1 {{PLURAL:$1|jour|jours}})',
 'tog-watchcreations' => "Ajouter les pages que je crée et les fichiers que j'importe à ma liste de suivi",
 'tog-watchdefault' => 'Ajouter les pages et les fichiers que je modifie à ma liste de suivi',
@@ -1273,9 +1273,9 @@ Il devrait y avoir moins de $2 appel{{PLURAL:$2||s}}, alors qu'il y en a mainten
 'converter-manual-rule-error' => 'Erreur détectée dans la règle manuelle de conversion de langue',
 
 # "Undo" feature
-'undo-success' => "Cette modification va être défaite. Veuillez vérifier les modifications ci-dessous, puis publier si c'est bien ce que vous voulez faire.",
+'undo-success' => 'Cette modification va être défaite. Veuillez vérifier les modifications ci-dessous, puis publier si c’est bien ce que vous voulez faire.',
 'undo-failure' => 'Cette modification ne peut pas être défaite : cela entrerait en conflit avec les modifications intermédiaires.',
-'undo-norev' => "La modification n'a pas pu être défaite parce qu'elle est inexistante ou qu'elle a été supprimée.",
+'undo-norev' => 'La modification n’a pas pu être défaite parce qu’elle est inexistante ou qu’elle a été supprimée.',
 'undo-summary' => 'Annulation des modifications $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussion]])',
 'undo-summary-username-hidden' => 'Annuler la révision $1 par un utilisateur masqué',
 
@@ -1584,7 +1584,7 @@ Toute personne la connaissant pourra lire votre liste de suivi, ne la communique
 'prefs-emailconfirm-label' => 'Confirmation du courriel :',
 'youremail' => 'Courriel :',
 'username' => "{{GENDER:$1|Nom d'utilisateur|Nom d'utilisatrice}} :",
-'uid' => "Numéro d'{{GENDER:$1|utilisateur|utilisatrice}}:",
+'uid' => 'Numéro d’{{GENDER:$1|utilisateur|utilisatrice}} :',
 'prefs-memberingroups' => '{{GENDER:$2|Membre}} {{PLURAL:$1|du groupe|des groupes}}:',
 'prefs-registration' => "Date d'inscription :",
 'yourrealname' => 'Nom réel :',
@@ -1858,24 +1858,24 @@ Cette information sera publique.',
 'upload-tryagain' => 'Envoyer la description du fichier modifiée',
 'uploadnologin' => 'Non connecté{{GENDER:||e|(e)}}',
 'uploadnologintext' => 'Vous devez $1 pour importer des fichiers.',
-'upload_directory_missing' => "Le répertoire d'import de fichier ($1) est introuvable et n'a pas pu être créé par le serveur web.",
-'upload_directory_read_only' => "Le répertoire d'import de fichier ($1) n'est pas accessible en écriture depuis le serveur web.",
-'uploaderror' => "Erreur lors de l'import",
+'upload_directory_missing' => 'Le répertoire d’import de fichier ($1) est introuvable et n’a pas pu être créé par le serveur web.',
+'upload_directory_read_only' => 'Le répertoire d’import de fichier ($1) n’est pas accessible en écriture depuis le serveur web.',
+'uploaderror' => 'Erreur lors de l’import',
 'upload-recreate-warning' => "'''Attention : Un fichier portant ce nom a été supprimé ou déplacé.'''
 
 Le journal des suppressions et celui des déplacements de cette page sont affichés ici pour informations :",
 'uploadtext' => "Utilisez ce formulaire pour importer des fichiers sur le serveur.
-Pour voir ou rechercher des images précédemment envoyées, consultez la [[Special:FileList|liste des images]]. L'import est aussi enregistrés dans le [[Special:Log/upload|journal d'import des fichiers]], et les suppressions dans le [[Special:Log/delete|journal des suppressions]].
+Pour voir ou rechercher des images précédemment envoyées, consultez la [[Special:FileList|liste des images]]. L’import est aussi enregistré dans le [[Special:Log/upload|journal d’import des fichiers]], et les suppressions dans le [[Special:Log/delete|journal des suppressions]].
 
 Pour inclure un fichier dans une page, utilisez un lien de la forme :
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.jpg]]</nowiki></code>''', pour afficher le fichier en pleine résolution (dans le cas d'une image) ;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.jpg]]</nowiki></code>''', pour afficher le fichier en pleine résolution (dans le cas dune image) ;
 * '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichier.png|200px|thumb|left|texte descriptif]]</nowiki></code>''' pour utiliser une miniature de 200 pixels de large dans une boîte à gauche avec « texte descriptif » comme description ;
-* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichier.ogg]]</nowiki></code>''' pour lier directement vers le fichier sans l'afficher.",
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichier.ogg]]</nowiki></code>''' pour lier directement vers le fichier sans lafficher.",
 'upload-permitted' => 'Formats de fichiers autorisés : $1.',
 'upload-preferred' => 'Formats de fichiers préférés : $1.',
 'upload-prohibited' => 'Formats de fichiers interdits : $1.',
-'uploadlog' => "Journal d'import de fichiers",
-'uploadlogpage' => "Journal d'import de fichiers",
+'uploadlog' => 'Journal d’import de fichiers',
+'uploadlogpage' => 'Journal d’import de fichiers',
 'uploadlogpagetext' => 'Voici la liste des derniers fichiers importés sur le serveur.
 Voyez la [[Special:NewFiles|galerie des nouvelles images]] pour une présentation plus visuelle.',
 'filename' => 'Nom du fichier',
@@ -1907,7 +1907,7 @@ Voyez la [[Special:NewFiles|galerie des nouvelles images]] pour une présentatio
 'hookaborted' => 'La modification que vous avez essayé de faire a été annulée par une extension.',
 'illegal-filename' => "Le nom du fichier n'est pas autorisé.",
 'overwrite' => "Écraser un fichier existant n'est pas autorisé.",
-'unknown-error' => "Une erreur inconnue s'est produite.",
+'unknown-error' => 'Une erreur inconnue s’est produite.',
 'tmp-create-error' => 'Impossible de créer le fichier temporaire.',
 'tmp-write-error' => "Erreur d'écriture du fichier temporaire.",
 'large-file' => 'Les fichiers importés ne devraient pas dépasser $1 ; ce fichier fait $2.',
@@ -1945,22 +1945,22 @@ Vous devriez demander à quelqu'un la possibilité de vérifier le journal de ce
 'savefile' => 'Sauvegarder le fichier',
 'uploadedimage' => 'a importé « [[$1]] »',
 'overwroteimage' => 'a importé une nouvelle version de « [[$1]] »',
-'uploaddisabled' => "Désolé, l'import de fichiers est désactivé.",
+'uploaddisabled' => 'Désolé, l’import de fichiers est désactivé.',
 'copyuploaddisabled' => 'Import de fichier par URL désactivé.',
-'uploadfromurl-queued' => "Votre fichier a été mis dans la file d'attente.",
-'uploaddisabledtext' => "L'import de fichiers est désactivé sur ce wiki.",
+'uploadfromurl-queued' => 'Votre fichier a été mis dans la file d’attente.',
+'uploaddisabledtext' => 'L’import de fichiers est désactivé sur ce wiki.',
 'php-uploaddisabledtext' => "L'import de fichiers a été désactivé dans PHP. Vérifiez l'option de configuration file_uploads.",
 'uploadscripted' => 'Ce fichier contient du code HTML ou un script qui pourrait être interprété de façon incorrecte par un navigateur web.',
 'uploadvirus' => 'Ce fichier contient un virus ! Pour plus de détails, consultez : $1',
-'uploadjava' => "C'est un fichier ZIP qui contient un fichier Java .class.
-Le téléchargement de fichiers Java n'est pas autorisé, car ils peuvent contourner des restrictions de sécurité.",
+'uploadjava' => 'C’est un fichier ZIP qui contient un fichier Java .class.
+Le téléchargement de fichiers Java n’est pas autorisé, car ils peuvent contourner certaines restrictions de sécurité.',
 'upload-source' => 'Fichier source',
 'sourcefilename' => 'Nom du fichier source :',
 'sourceurl' => 'URL source :',
 'destfilename' => 'Nom sous lequel le fichier sera enregistré :',
 'upload-maxfilesize' => 'Taille maximale du fichier : $1',
 'upload-description' => 'Description du fichier',
-'upload-options' => "Options d'import de fichiers",
+'upload-options' => 'Options d’import de fichiers',
 'watchthisupload' => 'Suivre ce fichier',
 'filewasdeleted' => "Un fichier avec ce nom a déjà été importé, puis supprimé.
 Vous devriez vérifier le $1 avant de l'importer à nouveau.",
@@ -1986,21 +1986,21 @@ PICT # divers
 'upload-failure-msg' => 'Il y a eu un problème avec votre import depuis [$2] :
 
 $1',
-'upload-warning-subj' => "Avertissement lors de l'import",
-'upload-warning-msg' => "Un problème est survenu lors de l'import depuis [$2]. Vous pouvez revenir au [[Special:Upload/stash/$1|formulaire d'import]] pour le résoudre.",
+'upload-warning-subj' => 'Avertissement lors de l’import',
+'upload-warning-msg' => 'Un problème est survenu lors de l’import depuis [$2]. Vous pouvez revenir au [[Special:Upload/stash/$1|formulaire d’import]] pour le résoudre.',
 
 'upload-proto-error' => 'Protocole incorrect',
-'upload-proto-error-text' => "L'import requiert des URL commençant par <code>http://</code> ou <code>ftp://</code>.",
+'upload-proto-error-text' => 'L’import requiert des URL commençant par <code>http://</code> ou <code>ftp://</code>.',
 'upload-file-error' => 'Erreur interne',
 'upload-file-error-text' => 'Une erreur interne est survenue en voulant créer un fichier temporaire sur le serveur. Veuillez contacter un [[Special:ListUsers/sysop|administrateur]].',
-'upload-misc-error' => "Erreur d'import inconnue",
-'upload-misc-error-text' => "Une erreur inconnue est survenue pendant l'import.
-Veuillez vérifier que l'URL est valide et accessible, puis essayer à nouveau.
-Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]].",
-'upload-too-many-redirects' => "L'URL contient trop de redirections.",
+'upload-misc-error' => 'Erreur d’import inconnue',
+'upload-misc-error-text' => 'Une erreur inconnue est survenue pendant l’import.
+Veuillez vérifier que lURL est valide et accessible, puis essayer à nouveau.
+Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]].',
+'upload-too-many-redirects' => 'L’URL contient trop de redirections.',
 'upload-unknown-size' => 'Taille inconnue',
 'upload-http-error' => 'Une erreur HTTP est survenue : $1',
-'upload-copy-upload-invalid-domain' => "La copie des téléchargements n'est pas disponible depuis ce domaine.",
+'upload-copy-upload-invalid-domain' => 'La copie des téléversements n’est pas disponible depuis ce domaine.',
 
 # File backend
 'backend-fail-stream' => 'Impossible de lire le fichier $1.',
@@ -2054,12 +2054,12 @@ Il ne peut pas être correctement vérifié pour la sécurité.',
 Sa sécurité ne peut pas être correctement vérifiée.',
 
 # Special:UploadStash
-'uploadstash' => "Cache d'import",
-'uploadstash-summary' => "Cette page donne accès aux fichiers qui sont importés (ou en cours d'importation), mais ne sont pas encore publiés dans le wiki. Ces fichiers ne sont pas encore visibles, sauf pour l'utilisateur qui les a importés.",
+'uploadstash' => 'Cache d’import',
+'uploadstash-summary' => 'Cette page donne accès aux fichiers qui sont importés (ou en cours d’importation), mais ne sont pas encore publiés dans le wiki. Ces fichiers ne sont pas encore visibles, sauf pour l’utilisateur qui les a importés.',
 'uploadstash-clear' => 'Effacer les fichiers en cache',
-'uploadstash-nofiles' => "Vous n'avez pas de fichiers en cache d'import.",
-'uploadstash-badtoken' => "L'exécution de cette action a échoué, peut-être parce que vos informations d'identification ont expiré. Réessayez.",
-'uploadstash-errclear' => "L'effacement des fichiers a échoué.",
+'uploadstash-nofiles' => 'Vous n’avez pas de fichiers en cache d’import.',
+'uploadstash-badtoken' => 'L’exécution de cette action a échoué, peut-être parce que vos informations d’identification ont expiré. Réessayez.',
+'uploadstash-errclear' => 'La suppression des fichiers a échoué.',
 'uploadstash-refresh' => 'Actualiser la liste des fichiers',
 'invalid-chunk-offset' => 'Offset de segment non valide',
 
@@ -2093,7 +2093,7 @@ Pour une sécurité optimale, img_auth.php est désactivé.",
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL injoignable',
-'upload-curl-error6-text' => "L'URL fournie ne peut pas être atteinte. Veuillez vérifier que l'URL est correcte et que le site est en ligne.",
+'upload-curl-error6-text' => 'L’URL fournie ne peut pas être atteinte. Veuillez vérifier que l’URL est correcte et que le site est en ligne.',
 'upload-curl-error28' => "Dépassement du délai lors de l'import",
 'upload-curl-error28-text' => 'Le site a mis trop longtemps à répondre. Vérifiez que le site est en ligne, attendez un peu et réessayez. Vous pouvez aussi réessayer à une heure de moindre affluence.',
 
@@ -2203,15 +2203,15 @@ Entrée : ''typedecontenu''/''sous-type'', par exemple <code>image/jpeg</code>."
 'download' => 'télécharger',
 
 # Unwatched pages
-'unwatchedpages' => "Pages ne faisant partie d'aucune liste de suivi",
+'unwatchedpages' => 'Pages ne faisant partie d’aucune liste de suivi',
 
 # List redirects
 'listredirects' => 'Liste des redirections',
 
 # Unused templates
 'unusedtemplates' => 'Modèles inutilisés',
-'unusedtemplatestext' => "Cette page liste toutes les pages de l'espace de noms « {{ns:template}} » qui ne sont incluses dans aucune autre page.
-N'oubliez pas de vérifier s'il n'y a pas d'autres liens vers les modèles avant de les supprimer.",
+'unusedtemplatestext' => 'Cette page liste toutes les pages de l’espace de noms « {{ns:template}} » qui ne sont incluses dans aucune autre page.
+N’oubliez pas de vérifier s’il n’y a pas d’autres liens vers les modèles avant de les supprimer.',
 'unusedtemplateswlh' => 'autres liens',
 
 # Random page
@@ -2338,8 +2338,8 @@ Les entrées <del>barrées</del> ont été résolues.',
 'ancientpages' => 'Pages les plus anciennement modifiées',
 'move' => 'Renommer',
 'movethispage' => 'Renommer cette page',
-'unusedimagestext' => "Les fichiers suivants existent, mais ne sont inclus dans aucune page.
-Veuillez noter que d'autres sites peuvent avoir un lien direct vers un fichier, et donc qu'un fichier peut être listé ici alors qu'il est en réalité utilisé sur ces sites.",
+'unusedimagestext' => 'Les fichiers suivants existent, mais ne sont inclus dans aucune page.
+Veuillez noter que d’autres sites peuvent avoir un lien direct vers un fichier, et donc qu’un fichier peut être listé ici alors qu’il est en réalité utilisé sur ces sites.',
 'unusedcategoriestext' => 'Les catégories suivantes existent mais aucune page ou catégorie ne les utilise.',
 'notargettitle' => 'Pas de cible',
 'notargettext' => "Vous n'avez pas indiqué une page ou un utilisateur sur lequel vous souhaitez effectuer cette action.",
@@ -2512,7 +2512,7 @@ Les prochaines modifications de cette page et de la page de discussion associée
 'watchmethod-list' => 'vérification des pages suivies pour y trouver des modifications récentes',
 'watchlistcontains' => 'Votre liste de suivi référence $1 page{{PLURAL:$1||s}}.',
 'iteminvalidname' => "Problème avec l'élément « $1 » : le nom est invalide.",
-'wlnote' => "Ci-dessous {{PLURAL:$1|figure la dernière modification effectuée|figurent les '''$1''' dernières modifications effectuées}} durant {{PLURAL:$2|la dernière heure|les '''$2''' dernières heures}}, depuis $3, $4.",
+'wlnote2' => 'Ci-dessous les modifications dans {{PLURAL:$1|la dernière heure|les <strong>$1</strong> dernières heures}}, à partir de $2, $3.',
 'wlshowlast' => 'Montrer les dernières $1 heures, les derniers $2 jours ou bien $3',
 'watchlist-options' => 'Options de la liste de suivi',
 
@@ -2700,22 +2700,22 @@ Voici les réglages actuels de la page '''$1''' :",
 'undeletepage' => 'Voir et restaurer des pages supprimées',
 'undeletepagetitle' => "'''La liste suivante contient des versions supprimées de [[:$1|$1]]'''.",
 'viewdeletedpage' => 'Voir les pages supprimées',
-'undeletepagetext' => "{{PLURAL:$1|La page suivante a été supprimée et se trouve|Les pages suivantes ont été supprimées et se trouvent}} dans la base de données archive, d'où {{PLURAL:$1|elle peut|elles peuvent}} encore être restaurée{{PLURAL:$1||s}}.
-L'archive peut être nettoyée périodiquement.",
+'undeletepagetext' => '{{PLURAL:$1|La page suivante a été supprimée et se trouve|Les pages suivantes ont été supprimées et se trouvent}} dans la base de données archive, d’où {{PLURAL:$1|elle peut|elles peuvent}} encore être restaurée{{PLURAL:$1||s}}.
+L’archive peut être nettoyée périodiquement.',
 'undelete-fieldset-title' => 'Restaurer les versions',
-'undeleteextrahelp' => "Pour restaurer l'historique complet de cette page, laissez toutes les cases décochées et cliquez sur '''''Restaurer'''''.
+'undeleteextrahelp' => "Pour restaurer lhistorique complet de cette page, laissez toutes les cases décochées et cliquez sur '''''Restaurer'''''.
 Pour effectuer une restauration partielle, cochez les cases correspondant aux versions à rétablir, puis cliquez sur '''''Restaurer'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|version archivée|versions archivées}}',
-'undeletehistory' => "Si vous restaurez la page, toutes les versions seront replacées dans l'historique.
-Si une nouvelle page avec le même nom a été créée depuis la suppression, les versions restaurées apparaîtront dans l'historique antérieur et la version courante ne sera pas automatiquement remplacée.",
+'undeletehistory' => 'Si vous restaurez la page, toutes les versions seront replacées dans l’historique.
+Si une nouvelle page avec le même nom a été créée depuis la suppression, les versions restaurées apparaîtront dans l’historique antérieur et la version courante ne sera pas automatiquement remplacée.',
 'undeleterevdel' => 'La restauration ne sera pas effectuée si, au final, la version la plus récente de la page ou du fichier reste partiellement supprimée.
 Dans de tels cas, vous devez décocher ou démasquer les versions effacées les plus récentes (en tête de liste).',
-'undeletehistorynoadmin' => "Cette page a été supprimée.
-Le motif de la suppression est indiqué dans le résumé ci-dessous, avec les détails des utilisateurs qui l'ont modifié avant sa suppression.
-Le contenu effectif de ces versions supprimées n'est accessible qu'aux administrateurs.",
+'undeletehistorynoadmin' => 'Cette page a été supprimée.
+Le motif de la suppression est indiqué dans le résumé ci-dessous, avec les détails des utilisateurs qui ont modifié la page avant sa suppression.
+Le contenu effectif de ces versions supprimées n’est accessible qu’aux administrateurs.',
 'undelete-revision' => 'Version supprimée de $1 (version du $4 à $5) par $3 :',
-'undeleterevision-missing' => "Version incorrecte ou manquante.
-Vous avez peut-être un mauvais lien, ou la version a pu être restaurée ou supprimée de l'archive.",
+'undeleterevision-missing' => 'Version incorrecte ou manquante.
+Vous avez peut-être un mauvais lien, ou la version a pu être restaurée ou supprimée de l’archive.',
 'undelete-nodiff' => 'Aucune version précédente trouvée.',
 'undeletebtn' => 'Restaurer',
 'undeletelink' => 'visualiser/rétablir',
@@ -2735,13 +2735,13 @@ Consultez le [[Special:Log/delete|journal des suppressions]] pour obtenir la lis
 'undelete-search-box' => 'Rechercher des pages supprimées',
 'undelete-search-prefix' => 'Montrer les pages commençant par :',
 'undelete-search-submit' => 'Rechercher',
-'undelete-no-results' => "Aucune page correspondante n'a été trouvée dans les archives de suppression.",
+'undelete-no-results' => 'Aucune page correspondante n’a été trouvée dans les archives de suppression.',
 'undelete-filename-mismatch' => 'Impossible de restaurer la version du fichier datée du $1 : le nom de fichier ne correspond pas.',
 'undelete-bad-store-key' => 'Impossible de restaurer la version du fichier datée du $1 : le fichier était absent avant la suppression.',
-'undelete-cleanup-error' => "Erreur lors de la suppression du fichier d'archive inutilisé « $1 ».",
-'undelete-missing-filearchive' => "Impossible de restaurer le fichier d'archive avec l'identifiant $1 parce qu'il n'est pas dans la base de données.
-Il a peut-être déjà été restauré.",
-'undelete-error' => "Page d'erreur d'annulation",
+'undelete-cleanup-error' => 'Erreur lors de la suppression du fichier d’archive inutilisé « $1 ».',
+'undelete-missing-filearchive' => 'Impossible de restaurer le fichier d’archive avec l’identifiant $1 parce qu’il n’est pas dans la base de données.
+Il a peut-être déjà été restauré.',
+'undelete-error' => 'Page d’erreur d’annulation',
 'undelete-error-short' => 'Erreur lors de la restauration du fichier : $1',
 'undelete-error-long' => 'Des erreurs ont été rencontrées lors de la restauration du fichier :
 
@@ -2806,7 +2806,7 @@ La dernière entrée du journal des blocages est indiquée ci-dessous à titre d
 # Block/unblock
 'autoblockid' => 'Blocage automatique #$1',
 'block' => 'Bloquer l’utilisateur',
-'unblock' => "Débloquer l'utilisateur",
+'unblock' => 'Débloquer l’utilisateur',
 'blockip' => 'Bloquer l’utilisateur',
 'blockip-legend' => 'Bloquer l’utilisateur',
 'blockiptext' => 'Utilisez le formulaire ci-dessous pour bloquer les tentatives de modification faites à partir d’une adresse IP spécifique ou d’un nom d’utilisateur.
@@ -2848,7 +2848,7 @@ Consultez la [[Special:BlockList|liste des blocages]] pour revoir les blocages.'
 'ipb-blocklist' => 'Voir les blocages existants',
 'ipb-blocklist-contribs' => 'Contributions pour $1',
 'unblockip' => 'Débloquer un utilisateur ou une adresse IP',
-'unblockiptext' => "Utilisez le formulaire ci-dessous pour rétablir l'accès aux modifications depuis une adresse IP ou un nom d'utilisateur.",
+'unblockiptext' => 'Utilisez le formulaire ci-dessous pour redonner les droits d’écriture à une adresse IP ou un nom d’utilisateur.',
 'ipusubmit' => 'Supprimer ce blocage',
 'unblocked' => '[[User:$1|$1]] a été débloqué{{GENDER:$1||e|(e)}}',
 'unblocked-range' => '$1 a été débloqué{{GENDER:$1||e|(e)}}',
@@ -2908,7 +2908,7 @@ Consultez la [[Special:BlockList|liste des blocages]] pour voir les bannissement
 'ipb_already_blocked' => '« $1 » est déjà bloqué',
 'ipb-needreblock' => '$1 est déjà bloqué. Voulez-vous modifier les paramètres ?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Autre blocage|Autres blocages}}',
-'unblock-hideuser' => "Vous ne pouvez pas débloquer cet utilisateur, car son nom d'utilisateur a été masqué.",
+'unblock-hideuser' => 'Vous ne pouvez pas débloquer cet utilisateur, car son nom d’utilisateur a été masqué.',
 'ipb_cant_unblock' => "Erreur : identifiant de blocage $1 non trouvé.
 Il est possible qu'un déblocage ait déjà été effectué.",
 'ipb_blocked_as_range' => "Erreur : l'adresse IP $1 n'est pas bloquée directement et ne peut donc pas être débloquée.
@@ -2931,8 +2931,8 @@ Vous ne pouvez pas créer un compte.',
 'unlockdb' => 'Déverrouiller la base de données',
 'lockdbtext' => "Le verrouillage de la base de données empêchera tous les utilisateurs de modifier des pages, d'enregistrer leurs préférences, de modifier leur liste de suivi et d'effectuer toutes les autres opérations nécessitant des changements dans la base de données.
 Veuillez confirmer que c'est bien là ce que vous voulez faire et que vous déverrouillerez la base dès que votre opération de maintenance sera terminée.",
-'unlockdbtext' => "Le déverrouillage de la base de données permettra à nouveau à tous les utilisateurs de modifier des pages, de changer leurs préférences, de modifier leur liste de suivi et d'effectuer les autres opérations nécessitant des changements dans la base de données.
-Veuillez confirmer que c'est bien là ce que vous voulez faire.",
+'unlockdbtext' => 'Le déverrouillage de la base de données permettra à nouveau à tous les utilisateurs de modifier des pages, de changer leurs préférences, de modifier leur liste de suivi et d’effectuer les autres opérations nécessitant des changements dans la base de données.
+Veuillez confirmer que c’est bien là ce que vous voulez faire.',
 'lockconfirm' => 'Oui, je confirme que je souhaite verrouiller la base de données.',
 'unlockconfirm' => 'Oui, je confirme que je souhaite déverrouiller la base de données.',
 'lockbtn' => 'Verrouiller la base de données',
@@ -3057,8 +3057,8 @@ Dans ce dernier cas vous pouvez aussi utiliser un lien, tel que [[{{#Special:Exp
 'allmessagesname' => 'Nom du message',
 'allmessagesdefault' => 'Message par défaut',
 'allmessagescurrent' => 'Message actuel',
-'allmessagestext' => "Ceci est la liste des messages disponibles dans l'espace MediaWiki.
-Veuillez visiter la [https://www.mediawiki.org/wiki/Localisation Localisation de MediaWiki] et [//translatewiki.net/ translatewiki.net] si vous désirez contribuer à la localisation générique de MediaWiki.",
+'allmessagestext' => 'Ceci est la liste des messages disponibles dans l’espace MediaWiki.
+Veuillez visiter la [https://www.mediawiki.org/wiki/Localisation Localisation de MediaWiki] et [//translatewiki.net/ translatewiki.net] si vous désirez contribuer à la localisation générique de MediaWiki.',
 'allmessagesnotsupportedDB' => "Cette page '''{{ns:special}}:Allmessages''' n'est pas utilisable car '''\$wgUseDatabaseMessages''' a été désactivé.",
 'allmessages-filter-legend' => 'Filtrer',
 'allmessages-filter' => 'Filtrer par état de modification :',
@@ -3068,6 +3068,7 @@ Veuillez visiter la [https://www.mediawiki.org/wiki/Localisation Localisation de
 'allmessages-prefix' => 'Filtrer par préfixe :',
 'allmessages-language' => 'Langue :',
 'allmessages-filter-submit' => 'Appliquer',
+'allmessages-filter-translate' => 'Traduire',
 
 # Thumbnails
 'thumbnail-more' => 'Agrandir',
@@ -3164,7 +3165,6 @@ Un dossier temporaire est manquant.",
 'tooltip-pt-watchlist' => 'La liste des pages dont vous suivez les modifications',
 'tooltip-pt-mycontris' => 'La liste de vos contributions',
 'tooltip-pt-login' => "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier ; ce n'est cependant pas obligatoire.",
-'tooltip-pt-anonlogin' => "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier ; ce n'est cependant pas obligatoire.",
 'tooltip-pt-logout' => 'Se déconnecter',
 'tooltip-ca-talk' => 'Discussion au sujet de cette page de contenu',
 'tooltip-ca-edit' => "Vous pouvez modifier cette page.
@@ -4090,8 +4090,8 @@ Vous pouvez aussi [[Special:EditWatchlist|utiliser l'éditeur normal]].",
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussion]])',
 
 # Core parser functions
-'unknown_extension_tag' => "Balise d'extension « $1 » inconnue",
-'duplicate-defaultsort' => 'Attention : la clé de tri par défaut « $2 » écrase la précédente « $1 ».',
+'unknown_extension_tag' => 'Balise d’extension « $1 » inconnue',
+'duplicate-defaultsort' => 'Attention : la clé de tri par défaut « $2 » écrase la précédente clé « $1 ».',
 
 # Special:Version
 'version' => 'Version',
index 8991d02..716134b 100644 (file)
@@ -323,7 +323,6 @@ $messages = array(
 'tog-showtoolbar' => 'Montrar la bârra d’outils de changement (at fôta de JavaScript)',
 'tog-editondblclick' => 'Changiér des pâges sur doblo-clic (at fôta de JavaScript)',
 'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)',
-'tog-showtoc' => 'Montrar la trâbla de les matiéres (por les pâges qu’ant més de 3 sèccions)',
 'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
 'tog-watchcreations' => 'Apondre les pâges que fé et pués los fichiérs que tèlèchârjo a ma lista de siuvu',
 'tog-watchdefault' => 'Apondre les pâges et los fichiérs que chanjo a ma lista de siuvu',
index 1328f19..3f69bdf 100644 (file)
@@ -32,7 +32,6 @@ $messages = array(
 'tog-showtoolbar' => 'Werktjüch tu bewerkin wise',
 'tog-editondblclick' => 'Sidjen mä dobelklik bewerke',
 'tog-editsectiononrightclick' => 'Enkelt kirwer mä rochtsklik bewerke',
-'tog-showtoc' => 'Üüb sidjen mä muar üs trii auerskraften en indeks uunwise',
 'tog-rememberpassword' => 'Üüb diheer reegner üüb düür uunmelde (maksimaal för $1 {{PLURAL:$1|dai|daar}})',
 'tog-watchcreations' => "Salew maaget sidjen an huuchlooset datein leewen uun't uug behual",
 'tog-watchdefault' => "Salew feranert sidjen an datein leewen uun't uug behual",
index 1891fbc..5692e83 100644 (file)
@@ -296,7 +296,6 @@ $messages = array(
 'tog-showtoolbar' => 'Mostrar a barra de ferramentas de edición',
 'tog-editondblclick' => 'Editar as páxinas logo de facer dobre clic',
 'tog-editsectiononrightclick' => 'Permitir a edición de seccións premendo co botón dereito nos títulos das seccións',
-'tog-showtoc' => 'Mostrar o índice (para as páxinas con máis de tres cabeceiras)',
 'tog-rememberpassword' => 'Lembrar o meu contrasinal neste navegador (ata $1 {{PLURAL:$1|día|días}})',
 'tog-watchcreations' => 'Engadir as páxinas que cree e os ficheiros que cargue á miña lista de vixilancia',
 'tog-watchdefault' => 'Engadir as páxinas e os ficheiros que edite á miña lista de vixilancia',
@@ -855,6 +854,8 @@ Se escolle dalo utilizarase para atribuír ao usuario o seu traballo.',
 'retypenew' => 'Insira outra vez o novo contrasinal:',
 'resetpass_submit' => 'Establecer o contrasinal e acceder ao sistema',
 'changepassword-success' => 'O seu contrasinal modificouse correctamente!',
+'changepassword-throttled' => 'Fixo demasiados intentos de acceder ao sistema.
+Por favor, agarde $1 antes de probar outra vez.',
 'resetpass_forbidden' => 'Non se poden mudar os contrasinais',
 'resetpass-no-info' => 'Debe rexistrarse para acceder directamente a esta páxina.',
 'resetpass-submit-loggedin' => 'Cambiar o contrasinal',
@@ -914,6 +915,8 @@ Contrasinal temporal: $2',
 'changeemail-password' => 'O seu contrasinal en {{SITENAME}}:',
 'changeemail-submit' => 'Cambiar o correo electrónico',
 'changeemail-cancel' => 'Cancelar',
+'changeemail-throttled' => 'Fixo demasiados intentos de acceder ao sistema.
+Por favor, agarde $1 antes de probar outra vez.',
 
 # Special:ResetTokens
 'resettokens' => 'Restablecer os pases',
@@ -1136,7 +1139,7 @@ Esta xa existe.',
 'editwarning-warning' => 'Deixar esta páxina pode causar a perda de calquera cambio feito.
 Se accedeu ao sistema, pode desactivar esta mensaxe de advertencia na sección "Edición" das súas preferencias.',
 'editpage-notsupportedcontentformat-title' => 'Formato de contido non admitido',
-'editpage-notsupportedcontentformat-text' => 'O formato de contido $1 non é compatible co modelo de contido  $2.',
+'editpage-notsupportedcontentformat-text' => 'O formato de contido $1 non é compatible co modelo de contido $2.',
 
 # Content models
 'content-model-wikitext' => 'texto wiki',
@@ -1388,6 +1391,7 @@ O [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistro de borrad
 'search-result-score' => 'Relevancia: $1%',
 'search-redirect' => '(redirixido desde "$1")',
 'search-section' => '(sección "$1")',
+'search-file-match' => '(coincide co contido do ficheiro)',
 'search-suggest' => 'Quizais quixo dicir: $1',
 'search-interwiki-caption' => 'Proxectos irmáns',
 'search-interwiki-default' => 'Resultados en $1:',
@@ -1842,7 +1846,8 @@ Se aínda quere cargar o seu ficheiro, volva atrás e use outro nome.
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Este ficheiro é un duplicado {{PLURAL:$1|do seguinte|dos seguintes}}:',
 'file-deleted-duplicate' => 'Un ficheiro idéntico a este ("[[:$1]]") foi borrado previamente. Debería comprobar o historial de borrados do ficheiro antes de proceder a cargalo de novo.',
-'file-deleted-duplicate-notitle' => 'Un ficheiro idéntico a este foi borrado con anterioridade, e o título foi suprimido. Debería contactar con alguén capaz de ver os datos de ficheiros borrados para que revise esta situación antes de voltar a subilo de novo.',
+'file-deleted-duplicate-notitle' => 'Un ficheiro idéntico a este foi borrado con anterioridade e o título foi suprimido.
+Debería contactar con alguén capaz de ver os datos de ficheiros borrados para que revise esta situación antes de subilo de novo.',
 'uploadwarning' => 'Advertencia ao cargar o ficheiro',
 'uploadwarning-text' => 'Por favor, modifique a descrición do ficheiro e inténteo de novo.',
 'savefile' => 'Gardar o ficheiro',
@@ -2418,7 +2423,7 @@ Os cambios futuros nesta páxina e na súa páxina de conversa asociada serán l
 'watchmethod-list' => 'comprobando as páxinas vixiadas na procura de edicións recentes',
 'watchlistcontains' => 'A súa lista de vixilancia ten $1 {{PLURAL:$1|páxina|páxinas}}.',
 'iteminvalidname' => 'Hai un problema co elemento "$1", nome non válido...',
-'wlnote' => "A continuación {{PLURAL:$1|está a última modificación|están as últimas '''$1''' modificacións}} {{PLURAL:$2|na última hora|nas últimas '''$2''' horas}} ata o $3 ás $4.",
+'wlnote2' => 'A continuación están as modificacións feitas {{PLURAL:$1|na última hora|nas últimas <strong>$1</strong> horas}}, ata o $2 ás $3.',
 'wlshowlast' => 'Mostrar as últimas $1 horas, os últimos $2 días ou $3',
 'watchlist-options' => 'Opcións de vixilancia',
 
@@ -2746,7 +2751,7 @@ Explique a razón específica do bloqueo (por exemplo, citando as páxinas concr
 Olle a [[Special:BlockList|lista de bloqueos]] para revisalo.',
 'ipb-blockingself' => 'Está a piques de se bloquear! Está seguro de querer facelo?',
 'ipb-confirmhideuser' => 'Está a piques de bloquear un usuario coa opción "agochar o usuario" activada. Isto suprime o nome de usuario de todas as listas e entradas de rexistro. Está seguro de querer facelo?',
-'ipb-confirmaction' => 'Se está seguro de que quere facelo realmente, por favor marque o campo "{{int:ipb-confirm}}" abaixo.',
+'ipb-confirmaction' => 'Se está seguro de querer facelo, marque o campo "{{int:ipb-confirm}}" ao final.',
 'ipb-edit-dropdown' => 'Editar os motivos de bloqueo',
 'ipb-unblock-addr' => 'Desbloquear a $1',
 'ipb-unblock' => 'Desbloquear un usuario ou enderezo IP',
@@ -2809,7 +2814,7 @@ Olle a [[Special:BlockList|lista de bloqueos]] para comprobar os bloqueos vixent
 'range_block_disabled' => 'A funcionalidade de administrador de crear rangos de bloqueos está deshabilitada.',
 'ipb_expiry_invalid' => 'O tempo de duración non é válido.',
 'ipb_expiry_temp' => 'Os bloqueos a nomes de usuario agochados deberían ser permanentes.',
-'ipb_hide_invalid' => 'Non se pode suprimir esta conta; se cadra, ten moitas edicións.',
+'ipb_hide_invalid' => 'Non se pode suprimir esta conta; ten máis {{PLURAL:$1|dunha edición|de $1 edicións}}.',
 'ipb_already_blocked' => '"$1" xa está bloqueado',
 'ipb-needreblock' => '$1 xa está bloqueado. Quere cambiar as configuracións?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Outro bloqueo|Outros bloqueos}}',
@@ -2978,6 +2983,7 @@ Por favor, visite a páxina de [https://www.mediawiki.org/wiki/Localisation loca
 'allmessages-prefix' => 'Filtrar por prefixo:',
 'allmessages-language' => 'Lingua:',
 'allmessages-filter-submit' => 'Mostrar',
+'allmessages-filter-translate' => 'Traducir',
 
 # Thumbnails
 'thumbnail-more' => 'Ampliar',
@@ -3071,7 +3077,6 @@ Gárdeo no seu disco duro e cárgueo aquí.',
 'tooltip-pt-watchlist' => 'A lista de páxinas cuxas modificacións está a seguir',
 'tooltip-pt-mycontris' => 'Lista das súas contribucións',
 'tooltip-pt-login' => 'Recoméndaselle rexistrarse, se ben non é obrigatorio.',
-'tooltip-pt-anonlogin' => 'Recoméndaselle rexistrarse, se ben non é obrigatorio.',
 'tooltip-pt-logout' => 'Saír ao anonimato',
 'tooltip-ca-talk' => 'Conversa acerca do contido desta páxina',
 'tooltip-ca-edit' => 'Pode modificar esta páxina; antes de gardala, por favor, utilice o botón de vista previa',
@@ -4232,5 +4237,5 @@ De feito, expande case calquera cousa entre dúas chaves.',
 'expand_templates_preview' => 'Vista previa',
 
 # Unknown messages
-'uploadinvalidxml' => 'O XML do ficheiro cargado non pode ser interpretado.',
+'uploadinvalidxml' => 'Non se puido analizar o XML do ficheiro cargado.',
 );
index 974bbe1..9ef6cd4 100644 (file)
@@ -145,7 +145,6 @@ $messages = array(
 'tog-showtoolbar' => 'Wärchzyyglyscht zum Bearbeite aazeige',
 'tog-editondblclick' => 'Syte ändere mit Doppelklick',
 'tog-editsectiononrightclick' => 'Einzelni Absätz ändere mit Rächtsclick uf d Iberschrifte',
-'tog-showtoc' => 'Inhaltsverzeichnis aazeige bi Artikle mit meh als drei Überschrifte',
 'tog-rememberpassword' => 'Mit däm Browser duurhaft aamälde (Maximal fir $1 {{PLURAL:$1|Tag|Täg}})',
 'tog-watchcreations' => 'Sälber gmachti Sytene un uffegladeni Dateie automatisch  beobachte',
 'tog-watchdefault' => 'Sälber gändereti Syte un Dateie automatisch beobachte',
@@ -2154,7 +2153,6 @@ Neji Änderige an dr Syte oder dr Diskussionssyte drvo chasch jetz dert säh.',
 'watchmethod-list' => 'Iberpriefe vu dr Beobachtigslischt no letschte Bearbeitige',
 'watchlistcontains' => 'In Dyynere Beobachtigslischt het s $1 {{PLURAL:$1|Syte|Syte}}.',
 'iteminvalidname' => 'Probläm mit em Yytrag „$1“, uugiltige Name.',
-'wlnote' => "Do {{PLURAL:$1|chunnt di letscht Änderig|chemme di letschte '''$1''' Änderige}} vu dr letschte {{PLURAL:$2|Stund|'''$2''' Stunde}}. Stand: $3, $4 Uhr.",
 'wlshowlast' => 'Zeig di letschte $1 Stunde $2 Tage $3',
 'watchlist-options' => 'Aazeigoptione',
 
@@ -2779,7 +2777,6 @@ Die uf em lokale Rächner spychere un derno do uffelade.',
 'tooltip-pt-watchlist' => 'Lischte vo de beobachtete Syte.',
 'tooltip-pt-mycontris' => 'Lischt vu Dyyne Byyträg',
 'tooltip-pt-login' => 'Aamälde',
-'tooltip-pt-anonlogin' => 'Mir ermuntre dich zwar dass du dich miteme Benutzerkonto aamääldsch, es isch aber kei Pflicht!',
 'tooltip-pt-logout' => 'Abmälde',
 'tooltip-ca-talk' => 'Diskussion zum Artikelinhalt',
 'tooltip-ca-edit' => 'Syte bearbeite. Bitte vor em Spychere d Vorschou aaluege.',
index 4277598..eb96bb7 100644 (file)
@@ -163,7 +163,6 @@ $messages = array(
 'tog-showtoolbar' => 'ફેરફાર માટેની ટૂલબાર બતાવો',
 'tog-editondblclick' => 'બે વખત ક્લિક કરી પાનાંઓમાં ફેરફાર કરો',
 'tog-editsectiononrightclick' => 'વિભાગના મથાળાં ને રાઇટ ક્લિક દ્વારા ફેરફાર કરવાની રીત અપનાવો.',
-'tog-showtoc' => 'અનુક્રમણિકા દર્શાવો (૩થી વધુ પેટા-મથાળા વાળા લેખો માટે)',
 'tog-rememberpassword' => 'આ કમ્પ્યૂટર પર મારી લોગ-ઇન વિગતો યાદ રાખો (મહત્તમ $1 {{PLURAL:$1|દિવસ|દિવસો}} માટે)',
 'tog-watchcreations' => 'મેં બનાવેલાં પાનાં અને અપલોડ કરેલી ફાઇલો મારી ધ્યાનસૂચિમાં ઉમેરો',
 'tog-watchdefault' => 'હું ફેરફાર કરૂં તે પાનાં અને ફાઇલ્સ મારી ધ્યાનસૂચિમાં ઉમેરો',
index 70f0b18..01996d9 100644 (file)
@@ -32,7 +32,6 @@ $messages = array(
 'tog-showtoolbar' => '展示編寫工具欄',
 'tog-editondblclick' => '雙撳編寫頁面',
 'tog-editsectiononrightclick' => '允許右撳標題編寫段落',
-'tog-showtoc' => '顯示目錄(針對一頁超過3隻標題嘅頁面)',
 'tog-rememberpassword' => '在邇隻瀏覽器記下亻厓嘅登入狀態(最多$1日)',
 'tog-watchcreations' => '加亻厓建立嘅頁面撈上傳嘅文件加入亻厓嘅監視列表',
 'tog-watchdefault' => '將亻厓編寫嘅頁面撈檔案加入亻厓嘅監視列表',
@@ -1300,7 +1299,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchmethod-list' => '檢查最近編寫嘅分監視頁面',
 'watchlistcontains' => '汝嘅監視列表包含$1隻頁面。',
 'iteminvalidname' => "頁面'$1'錯誤,無效命名...",
-'wlnote' => 'Yî-ha he chui-khiûn <b>$2</b> séu-sṳ̀ nui-ke chui-heu $1-chhṳ chin-siû.',
 'wlshowlast' => '展示最近$1隻鐘頭,$2日或$3嘅更改。',
 'watchlist-options' => '監視列表選項',
 
@@ -1670,7 +1668,6 @@ Please visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation
 'tooltip-pt-watchlist' => '汝監視中頁面嘅更改列表',
 'tooltip-pt-mycontris' => '汝嘅貢獻列表',
 'tooltip-pt-login' => '建議汝登入,但係並非必須嘅',
-'tooltip-pt-anonlogin' => 'Kien-ngi ngì tên-ki, than-he pin-fî pit-sî.',
 'tooltip-pt-logout' => '登出',
 'tooltip-ca-talk' => '關於頁面正文嘅討論',
 'tooltip-ca-edit' => '汝做得編寫邇頁,請在保存前用預覽撳掣。',
index 0c5ee79..f608e5e 100644 (file)
@@ -376,7 +376,6 @@ $messages = array(
 'tog-showtoolbar' => 'הצגת סרגל העריכה',
 'tog-editondblclick' => 'עריכת דפים בלחיצה כפולה',
 'tog-editsectiononrightclick' => 'עריכת פסקאות באמצעות לחיצה ימנית על כותרות הפסקאות',
-'tog-showtoc' => 'הצגת תוכן עניינים (עבור דפים עם יותר מ־3 כותרות)',
 'tog-rememberpassword' => 'שמירת הכניסה שלי בדפדפן זה ({{PLURAL:$1|ליום אחד|ליומיים|ל־$1 ימים}} לכל היותר)',
 'tog-watchcreations' => 'מעקב אחרי דפים שיצרתי וקבצים שהעליתי',
 'tog-watchdefault' => 'מעקב אחרי דפים וקבצים שערכתי',
@@ -1058,7 +1057,7 @@ $2
 'autoblockedtext' => 'כתובת ה־IP שלכם נחסמה באופן אוטומטי כיוון שמשתמש אחר, שנחסם על־ידי $1, עשה בה שימוש.
 הסיבה שניתנה לחסימה היא:
 
-:\'\'\'$2\'\'\'
+:<em>$2</em>
 
 * תחילת החסימה: $8
 * פקיעת החסימה: $6
@@ -2493,7 +2492,6 @@ $1',
 'watchmethod-list' => 'בודק את העריכות האחרונות בדפים שברשימת המעקב',
 'watchlistcontains' => 'רשימת המעקב כוללת {{PLURAL:$1|דף אחד|$1 דפים}}.',
 'iteminvalidname' => 'בעיה עם $1, שם שגוי…',
-'wlnote' => "להלן {{PLURAL:$1|השינוי האחרון|'''$1''' השינויים האחרונים}} {{PLURAL:$2|בשעה האחרונה|בשעתיים האחרונות|ב־'''$2''' השעות האחרונות}}, עד $4, $3.",
 'wlshowlast' => '(הצגת $1 שעות אחרונות | $2 ימים אחרונים | $3)',
 'watchlist-options' => 'אפשרויות ברשימת המעקב',
 
@@ -3146,7 +3144,6 @@ $2',
 'tooltip-pt-watchlist' => 'רשימת הדפים שאתם עוקבים אחרי השינויים בהם',
 'tooltip-pt-mycontris' => 'רשימת התרומות שלך',
 'tooltip-pt-login' => 'מומלץ להירשם, אך אין חובה לעשות כן',
-'tooltip-pt-anonlogin' => 'מומלץ להירשם, אך אין חובה לעשות כן',
 'tooltip-pt-logout' => 'יציאה מהחשבון',
 'tooltip-ca-talk' => 'שיחה על דף זה',
 'tooltip-ca-edit' => 'באפשרותכם לערוך דף זה. אנא השתמשו בלחצן "תצוגה מקדימה" לפני השמירה',
index 2de4029..d60b41a 100644 (file)
@@ -202,7 +202,6 @@ $messages = array(
 'tog-showtoolbar' => 'सम्पादन औज़ारपट्टी दिखाएँ',
 'tog-editondblclick' => 'दुगुने क्लिक पर पृष्ठ संपादित करें',
 'tog-editsectiononrightclick' => 'अनुभाग शीर्षक पर दायाँ क्लिक करने पर अनुभाग सम्पादित करें',
-'tog-showtoc' => 'अनुक्रम दर्शायें (जिन पृष्ठों पर तीन से अधिक अनुभाग हों)',
 'tog-rememberpassword' => 'इस ब्राउज़र पर मेरा कूटशब्द  (अधिकतम $1 {{PLURAL:$1|दिन|दिनों}} तक) याद रखें',
 'tog-watchcreations' => 'मेरे द्वारा निर्मित पृष्ठों और मेरी अपलोड की फ़ाइलों को मेरी ध्यानसूची में जोड़ें',
 'tog-watchdefault' => 'मेरे द्वारा सम्पादित पृष्ठों और फ़ाइलों को मेरी ध्यानसूची में जोड़ें',
@@ -594,7 +593,7 @@ $2',
 'invalidtitle-knownnamespace' => '"$2" नामस्थान और "$3" नाम वाला गलत शीर्षक',
 'invalidtitle-unknownnamespace' => 'अज्ञात नामस्थान संख्या $1 और नाम "$2" वाला गलत शीर्षक',
 'exception-nologin' => 'लॉग इन नहीं किया है',
-'exception-nologin-text' => 'इस पृष्ठ अथवा कार्य को सक्षम करने के लिए कृपया [[Special:Userlogin|लॉग इन]]करें।',
+'exception-nologin-text' => 'इस पृष्ठ अथवा कार्य को सक्षम करने के लिए कृपया [[Special:Userlogin|लॉग इन]] करें।',
 'exception-nologin-text-manual' => 'इस पृष्ठ अथवा कार्य को सक्षम करने के लिए कृपया $1 करें।',
 
 # Virus scanner
@@ -646,7 +645,7 @@ $2',
 'helplogin-url' => 'Help:लॉगिंग इन',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|लॉग इन करने में सहायता]]',
 'userlogin-loggedin' => 'आप {{GENDER:$1|$1}} के रूप में पहले से लॉग्ड इन हैं।
-à¤\95िसà¥\80 à¤\85नà¥\8dय à¤\89पयà¥\8bà¤\97à¤\95रà¥\8dता à¤\95à¥\87 à¤°à¥\82प à¤®à¥\87à¤\82 à¤²à¥\89à¤\97 à¤\87न à¤\95रनà¥\87 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤«ॉर्म का प्रयोग करें।',
+à¤\95िसà¥\80 à¤\85नà¥\8dय à¤¸à¤¦à¤¸à¥\8dय à¤\95à¥\87 à¤°à¥\82प à¤®à¥\87à¤\82 à¤²à¥\89à¤\97 à¤\87न à¤\95रनà¥\87 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¨à¤¿à¤®à¥\8dनलिà¤\96ित à¤«à¤¼ॉर्म का प्रयोग करें।',
 'userlogin-createanother' => 'एक अन्य खाता खोलें',
 'createacct-join' => 'अपनी जानकारी नीचे लिखें',
 'createacct-another-join' => 'नए खाते की जानकारी नीचे प्रदान करें।',
@@ -698,7 +697,7 @@ $2',
 'passwordtooshort' => 'आपका कूटशब्द कम से कम {{PLURAL:$1|1 अक्षर|$1 अक्षरों}} का होना चाहिये।',
 'password-name-match' => 'आपका कूटशब्द आपके सदस्यनाम से भिन्न होना चाहिए।',
 'password-login-forbidden' => 'इस सदस्यनाम और कूटशब्द का उपयोग वर्जित है।',
-'mailmypassword' => 'कूटशब्द पुनःस्थापित करे',
+'mailmypassword' => 'कूटशब्द पुनःस्थापित करे',
 'passwordremindertitle' => '{{SITENAME}} के लिये नया अस्थायी कूटशब्द',
 'passwordremindertext' => 'किसी ने (शायद आपने ही, $1 आइ॰पी पते से) {{SITENAME}} ($4) पर इस्तेमाल के लिये नया कूटशब्द मँगाया है। सदस्य "$2" के लिए एक अस्थायी कूटशब्द बना दिया गया है, और यह अभी "$3" है। यदि यह आपकी ही मंशा थी, तो अब आपको सत्रारंभ करके एक नया कूटशब्द चुनना होगा।
 आपके अस्थायी कूटशब्द की अवधि {{PLURAL:$5|एक दिन|$5 दिनों}} में समाप्त हो जाएगी।
@@ -757,6 +756,8 @@ $2',
 'retypenew' => 'नया कूटशब्द पुन: लिखें:',
 'resetpass_submit' => 'कूटशब्द बनाएँ और लॉग इन करें',
 'changepassword-success' => 'आपका कूटशब्द बदल दिया गया है!',
+'changepassword-throttled' => 'आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।
+पुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।',
 'resetpass_forbidden' => 'कूटशब्द बदले नहीं जा सकते',
 'resetpass-no-info' => 'इस पृष्ठ का सीधे प्रयोग करने के लिए आपको लॉग इन करना होगा।',
 'resetpass-submit-loggedin' => 'कूटशब्द बदलें',
@@ -769,7 +770,7 @@ $2',
 # Special:PasswordReset
 'passwordreset' => 'कूटशब्द रीसेट',
 'passwordreset-text-one' => 'अपना कूटशब्द रीसेट करने के लिए यह फ़ॉर्म भरें।',
-'passwordreset-text-many' => '{{PLURAL:$1|à¤\85पना à¤\95à¥\82à¤\9fशबà¥\8dद à¤°à¥\80सà¥\87à¤\9f à¤\95रनà¥\87 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¨à¤¿à¤®à¥\8dन à¤®à¥\87à¤\82 à¤¸à¥\87 à¤\95à¥\8bà¤\88 à¤\8fà¤\95 भरें।}}',
+'passwordreset-text-many' => '{{PLURAL:$1|à¤\88मà¥\87ल à¤\95à¥\87 à¤®à¤¾à¤§à¥\8dयम à¤¸à¥\87 à¤\8fà¤\95 à¤\85सà¥\8dथायà¥\80 à¤ªà¤¾à¤¸à¤µà¤°à¥\8dड à¤ªà¥\8dरापà¥\8dत à¤\95रनà¥\87 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤\95à¥\8bà¤\88 à¤\8fà¤\95 à¤¡à¤¿à¤¬à¥\8dबा भरें।}}',
 'passwordreset-legend' => 'कूटशब्द रीसेट करें',
 'passwordreset-disabled' => 'कूटशब्द रीसेट करना इस विकी पर अक्षम है।',
 'passwordreset-emaildisabled' => 'इस विकि पर ई-मेल सुविधा अक्षम कर दी गयी है।',
@@ -808,6 +809,8 @@ $2
 'changeemail-password' => 'आपका {{SITENAME}} पासवर्ड:',
 'changeemail-submit' => 'ई-मेल बदलें',
 'changeemail-cancel' => 'रद्द करें',
+'changeemail-throttled' => 'आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।
+पुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।',
 
 # Special:ResetTokens
 'resettokens' => 'टोकन रीसेट करें',
@@ -1037,6 +1040,8 @@ $2
 'content-not-allowed-here' => '[[$2]] पृष्ठ पर "$1" सामग्री मना है।',
 'editwarning-warning' => 'इस पृष्ठ को छोड़ने पर आपके द्वारा किये गए कोई भी बदलाव गायब हो जाएँगे।
 यदि आपने लॉग इन किया हुआ है तो आप इस सूचना का दिखना अपनी वरीयताओं के "संपादन" भाग में बंद कर सकते हैं।',
+'editpage-notsupportedcontentformat-title' => 'सामग्री स्वरूप समर्थित नहीं है',
+'editpage-notsupportedcontentformat-text' => '$1 सामग्री स्वरूप $2 सामग्री मॉडल द्वारा समर्थित नहीं है।',
 
 # Content models
 'content-model-wikitext' => 'विकिटेक्स्ट',
@@ -1079,6 +1084,9 @@ $2
 'cantcreateaccount-text' => "इस आइ॰पी पते ('''$1''') को खाता निर्मित करने से [[User:$3|$3]] ने प्रतिबंधित किया है।
 
 इसके लिये $3 ने ''$2'' कारण दिया है।",
+'cantcreateaccount-range-text' => "'''\$1''' की श्रेणी में आने वाले आई॰पी पतों से, जिसमें आपका आई॰पी पता ('''\$4''') शामिल है, नए खातों की रचना [[User:\$3|\$3]] द्वारा अवरोधित की गयी है। 
+
+\$3 द्वारा दिया गया कारण है: \"\$2\"",
 
 # History pages
 'viewpagelogs' => 'इस पृष्ठ का लॉग देखें',
@@ -1155,20 +1163,20 @@ $2
 'revdelete-text' => "'''हटाए गए अवतरण और इवेंट पृष्ठ इतिहास और लॉग में दिखेंगे, लेकिन उनकी कुछ सामग्री सार्वजनिक नहीं होगी।'''
 {{SITENAME}} के अन्य प्रबंधक छिपी हुई सामग्री को देख पाएँगे, और इसी अंतरापृष्ठ के जरिए वे इसकी पुनर्स्थापना भी कर सकते हैं, बशर्ते कि अतिरिक्त प्रतिबंध न लगाए गए हों।",
 'revdelete-confirm' => 'पुष्टि करें कि आप यह कार्य करना चाहते हैं, आप इसका परिणाम समझते हैं, और आप ये [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार कर रहे हैं।',
-'revdelete-suppress-text' => "छिपाने का प्रयोग '''केवल''' इन परिस्थितियों में होना चाहिए:
-* à¤¬à¤¦à¤¨à¤¾à¤® à¤\95रनà¥\87 à¤µà¤¾à¤²à¥\80 जानकारी
+'revdelete-suppress-text' => 'छिपाने का प्रयोग <strong>केवल</strong> इन परिस्थितियों में होना चाहिए:
+* à¤¸à¤\82भावित à¤\85पमानà¤\9cनà¤\95 जानकारी
 * अनुपयुक्त निजी जानकारी
-*: ''घर के पते व दूरभाष, सामाजिक सुरक्षा क्रमांक आदि''",
+*: <em>घर के पते व दूरभाष, राष्ट्रीय पहचान क्रमांक आदि।</em>',
 'revdelete-legend' => 'दृश्य प्रतिबंध निश्चित करें',
-'revdelete-hide-text' => 'à¤\85वरतण à¤\95ा à¤ªà¤¾à¤  à¤\9bà¥\81पाà¤\8fà¤\81',
+'revdelete-hide-text' => 'à¤\85वरतण à¤ªà¤¾à¤ ',
 'revdelete-hide-image' => 'फ़ाइल का पाठ छुपाएँ',
 'revdelete-hide-name' => 'क्रिया और लक्ष्य को छुपाएँ',
-'revdelete-hide-comment' => 'सà¤\82पादन à¤\9fिपà¥\8dपणà¥\80 à¤\9bà¥\81पाà¤\8fà¤\81',
-'revdelete-hide-user' => 'संपादक का सदस्यनाम/आइ॰पी छुपाएँ',
+'revdelete-hide-comment' => 'सà¤\82पादन à¤¸à¤¾à¤°à¤¾à¤\82श',
+'revdelete-hide-user' => 'संपादक का सदस्यनाम/आइ॰पी॰ पता',
 'revdelete-hide-restricted' => 'प्रबंधक सहित सभी सदस्यों से डाटा छुपाएँ',
 'revdelete-radio-same' => '‍‌(बदलें नहीं)',
-'revdelete-radio-set' => 'हाà¤\81',
-'revdelete-radio-unset' => 'नहà¥\80à¤\82',
+'revdelete-radio-set' => 'à¤\9bिपा à¤¹à¥\81à¤\86',
+'revdelete-radio-unset' => 'दà¥\83शà¥\8dय',
 'revdelete-suppress' => 'प्रबंधक सहित सभी सदस्यों से डाटा छुपाएँ',
 'revdelete-unsuppress' => 'पुनर्स्थापित अवतरणों पर से प्रतिबन्ध हटाएँ',
 'revdelete-log' => 'कारण:',
@@ -1285,6 +1293,7 @@ $1",
 'search-result-score' => 'संबद्ध: $1%',
 'search-redirect' => '($1 से पुनर्निर्देशित)',
 'search-section' => '(अनुभाग $1)',
+'search-file-match' => '(फ़ाइल सामग्री से मेल खाता है)',
 'search-suggest' => 'कहीं आपका मतलब $1 तो नहीं था?',
 'search-interwiki-caption' => 'अन्य प्रकल्प',
 'search-interwiki-default' => '$1 के परिणाम:',
@@ -1313,6 +1322,7 @@ $1",
 'preferences' => 'मेरी वरीयताएँ',
 'mypreferences' => 'पसंद',
 'prefs-edits' => 'संपादन संख्या:',
+'prefsnologintext2' => 'अपनी वरीयताओं को बदलने के लिए कृपया $1 करें।',
 'prefs-skin' => 'त्वचा',
 'skin-preview' => 'झलक',
 'datedefault' => 'खा़स पसंद नहीं',
@@ -1424,6 +1434,7 @@ HTML टैग की जाँच करें।',
 'prefs-tokenwatchlist' => 'टोकन',
 'prefs-diffs' => 'अंतर',
 'prefs-help-prefershttps' => 'यह वरीयता आपके अगले लॉगिन पर प्रभावी होगी।',
+'prefs-tabs-navigation-hint' => 'सुझाव: आप टैब्स सूची में टैब्स के बीच आवागमन करने के लिए बाएँ और दाएँ तीर कुंजियों का उपयोग कर सकते हैं।',
 
 # User preference: email validation using jQuery
 'email-address-validity-valid' => 'ई-मेल पता वैध प्रतीत होता है',
@@ -1609,12 +1620,14 @@ HTML टैग की जाँच करें।',
 'recentchanges-label-minor' => 'यह एक छोटा सम्पादन है',
 'recentchanges-label-bot' => 'यह संपादन एक बॉट द्वारा किया गया था',
 'recentchanges-label-unpatrolled' => 'यह संपादन अभी जाँचा नहीं गया है',
-'recentchanges-legend-newpage' => '$1 - नया पन्ना',
+'recentchanges-label-plusminus' => 'पृष्ठ आकार इस बाइट संख्या से बदला',
+'recentchanges-legend-heading' => "'''कुंजी:'''",
+'recentchanges-legend-newpage' => '([[विशेष:NewPages|नए पन्नों की सूची]] को भी देखें)',
 'rcnotefrom' => "नीचे '''$2''' के बाद से ('''$1''' तक) हुए बदलाव दर्शाए गये हैं।",
 'rclistfrom' => '$1 से नये बदलाव दिखाएँ',
 'rcshowhideminor' => 'छोटे बदलाव $1',
 'rcshowhidebots' => 'बॉट $1',
-'rcshowhideliu' => 'लॉग्ड इन सदस्यों के बदलाव $1',
+'rcshowhideliu' => '$1 पंजीकृत सदस्य',
 'rcshowhideanons' => 'आइ॰पी सदस्यों के बदलाव $1',
 'rcshowhidepatr' => 'परीक्षित सम्पादन $1',
 'rcshowhidemine' => 'मेरे बदलाव $1',
@@ -1734,6 +1747,8 @@ HTML टैग की जाँच करें।',
 'file-exists-duplicate' => 'यह फ़ाइल निम्नलिखित {{PLURAL:$1|फ़ाइल|फ़ाइलों}} की प्रति है:',
 'file-deleted-duplicate' => 'इसी फ़ाइल ([[:$1]]) से हूबहू मेल खाती एक फ़ाइल पहले हटाई जा चुकी है।
 इसे फिर से अपलोड करने से पहले आपको पुरानी फ़ाइल का हटाने के इतिहास देख लेना चाहिए।',
+'file-deleted-duplicate-notitle' => 'इससे पहले इस फ़ाइल के समान एक फ़ाइल को हटाया गया है, और शीर्षक छिपा दिया गया है।
+इसे फिर से अपलोड करने से पहले आप किसी ऐसे व्यक्ति से स्थिति की समीक्षा करने के लिए कहें जिसके पास छिपी फ़ाइल का डाटा देखने की क्षमता है।',
 'uploadwarning' => 'अपलोड चेतावनी',
 'uploadwarning-text' => 'फ़ाइल विवरण को संशोधित कर फिर कोशिश करें।',
 'savefile' => 'फ़ाइल संजोयें',
@@ -1823,6 +1838,7 @@ $1',
 'backend-fail-internal' => 'भंडारण बैकेंड "$1" में कोई अज्ञात त्रुटि उत्पन्न हुई।',
 'backend-fail-contenttype' => '"$1" पर संजोने के लिये फ़ाइल का प्रकार नहीं निश्चित किया जा सका।',
 'backend-fail-batchsize' => 'भंडारण बैकेंड को $1 फ़ाइल {{PLURAL:$1|कार्य}} दिये गए थे; सीमा {{PLURAL:$2|$2 कार्य|$2 कार्यों}} की है।',
+'backend-fail-usable' => 'फ़ाइल "$1" को पर्याप्त अनुमति या अनुपस्थित डायरेक्ट्रीज़/कंटेनरों के कारण पढ़ा या लिखा नहीं जा सका।',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'भंडारण बैकेंड "$1" के जर्नल डाटाबेस से सम्पर्क नहीं हो पाया।',
@@ -1837,6 +1853,7 @@ $1',
 'lockmanager-fail-releaselock' => '"$1" के लिए लॉक हटाया नहीं जा सका।',
 'lockmanager-fail-db-bucket' => 'बकेट $1 में आवश्यक संख्या में लॉक डाटाबेसों से सम्पर्क नहीं हो पाया।',
 'lockmanager-fail-db-release' => 'डाटाबेस $1 से ताला हटाया नहीं जा सका।',
+'lockmanager-fail-svr-acquire' => 'सर्वर $1 पर तालों को प्राप्त नहीं किया जा सका।',
 'lockmanager-fail-svr-release' => 'सर्वर $1 से टाला हटाया नहीं जा सका।',
 
 # ZipDirectoryReader
@@ -2046,6 +2063,12 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'statistics-users-active-desc' => 'पिछले {{PLURAL:$1|एक दिन|$1 दिनों}} में कुछ गतिविधि रखने वाले सदस्य',
 'statistics-mostpopular' => 'सबसे अधिक देखे गए पृष्ठ',
 
+'pageswithprop' => 'पृष्ठ जिनमें पृष्ठ गुण हैं',
+'pageswithprop-legend' => 'पृष्ठ जिनमें पृष्ठ गुण हैं',
+'pageswithprop-text' => 'यह पृष्ठ पृष्ठ गुण का उपयोग कर रहे पन्नों को सूचीबद्ध करता है।',
+'pageswithprop-prop' => 'गुण का नाम:',
+'pageswithprop-submit' => 'खोजें',
+
 'doubleredirects' => 'दुगुने पुनर्निर्देश',
 'doubleredirectstext' => 'यह पृष्ठ उन पृष्ठों की सूची देता है जो अन्य पुनर्निर्देशित पृष्ठों की ओर पुनर्निर्देशित हैं।
 हर कतार में पहले और दूसरे पुनर्निर्देशन की कड़ियाँ, तथा दूसरे पुनर्निर्देशन का लक्ष्य भी है, आमतौर पर यही "वास्तविक" लक्ष्यित पृष्ठ होगा, और पहला पुनर्देशन वास्तव में इसी को लक्ष्यित होना चाहिए।
@@ -2298,7 +2321,6 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'watchmethod-list' => 'ध्यानसूची में दिये गये पृष्ठों में हाल में हुए बदलाव देख रहे हैं',
 'watchlistcontains' => 'आपकी ध्यानसूची में $1 {{PLURAL:$1|पृष्ठ}} हैं।',
 'iteminvalidname' => "'$1' के साथ समस्या, अवैध नाम...",
-'wlnote' => "$3 को $4 बजे तक पिछले '''$2''' {{PLURAL:$2|घंटे|घंटों}} में {{PLURAL:$1|हुआ एक|हुए '''$1'''}} परिवर्तन निम्न {{PLURAL:$1|है|हैं}}।",
 'wlshowlast' => 'पिछले $1 घंटे $2 दिन $3 देखें',
 'watchlist-options' => 'ध्यानसूची विकल्प',
 
@@ -2954,7 +2976,6 @@ $1 को बाध्य करने का कारण है: "$2"',
 'tooltip-pt-watchlist' => 'आपने ध्यान दिये हुए पन्नोंकी सूची',
 'tooltip-pt-mycontris' => 'आपके योगदानों की सूची',
 'tooltip-pt-login' => 'आपको सत्रारम्भ करने के लिए प्रोत्साहित किया जाता है; लेकिन यह अनिवार्य नहीं है',
-'tooltip-pt-anonlogin' => 'आप लॉग इन करें, जबकि यह अत्यावश्यक नहीं हैं।',
 'tooltip-pt-logout' => 'सत्रांत',
 'tooltip-ca-talk' => 'सामग्री पृष्ठ के बारे में वार्तालाप',
 'tooltip-ca-edit' => 'आप यह पृष्ठ बदल सकते हैं।
@@ -3140,7 +3161,7 @@ $1',
 'svg-long-desc' => 'SVG फ़ाईल, साधारणत: $1 × $2 पीक्सेल्स, फ़ाईलका आकार: $3',
 'svg-long-desc-animated' => 'ऐनिमेटिड एस॰वी॰जी फ़ाइल, $1 × $2 पिक्सेल, फ़ाइल साइज़: $3',
 'svg-long-error' => 'अमान्य एस॰वी॰जी फ़ाइल: $1',
-'show-big-image' => 'मà¥\82ल à¤\86à¤\95ार',
+'show-big-image' => 'मà¥\82ल à¤«à¤¼à¤¾à¤\87ल',
 'show-big-image-preview' => 'इस पूर्वावलोकन का आकार:  $1 ।',
 'show-big-image-other' => 'अन्य  {{PLURAL:$2| resolution|resolutions}}:  $1 ।',
 'show-big-image-size' => '$1 × $2  पिक्सेल',
@@ -4065,4 +4086,6 @@ $5
 'expand_templates_generate_xml' => 'XML का पार्स (parse) वृक्ष दर्शायें',
 'expand_templates_preview' => 'झलक',
 
+# Unknown messages
+'uploadinvalidxml' => 'अपलोड की गई फ़ाइल में स्थित XML पार्स नहीं की जा सकी।',
 );
index 7198652..ead48ef 100644 (file)
@@ -47,7 +47,6 @@ $messages = array(
 'tog-showtoolbar' => 'Badle waala toolbar ke dekhao',
 'tog-editondblclick' => 'Dugnaa click pe panna ke badlo',
 'tog-editsectiononrightclick' => 'Bhaag ke title pe right click kare pe bhaag ke badle ke laabu karo',
-'tog-showtoc' => 'Dhyan suchi dekhao (uu panna khatir jon me tiin se jaada heading hai)',
 'tog-rememberpassword' => 'Ii browser me (jaada se jaada $1 {{PLURAL:$1|din|din}}) talak hamaar login ke yaad rakho.',
 'tog-watchcreations' => 'Hamaar banawa waala panna aur upload karaa gais file ke hamaar dhyaan suchi me jorro',
 'tog-watchdefault' => 'Ham se badla gais panna aur file ke hamaar dhyaan suchi me jorro',
index 2f1b20c..8ff2bd9 100644 (file)
@@ -31,7 +31,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ipakita ang edit toolbar (nagakilanlan JavaScript)',
 'tog-editondblclick' => 'Islan ang pahina kung i-doble klik mo (nagakilanlan JavaScript)',
 'tog-editsectiononrightclick' => 'Sugtan ang pag-ilis sang seksyon paagi sa pagtum-ok sang natoo sa mouse sa titulo sang seksyon (nagakinahanglan sang JavaScript)',
-'tog-showtoc' => 'Ipakita ang sinulatan sang nagabug-os (para sang mga panid nga may yara sang masobra sa 3 nga pangolohan)',
 'tog-rememberpassword' => 'Dumdumon ang akon password sa sini nga brawser (para sa indi magsobra $1 {{PLURAL:$1|nga adlaw|nga mga adlaw}})',
 'tog-watchcreations' => 'Magdugang sang mga panid nga akon buhaton kag mga hilera nga akon igapasaka sa akon mga ginabantayan',
 'tog-watchdefault' => 'Idugang ang mga panid kag hilera nga akon ginbag-o sa akon mga ginabantayan',
@@ -1713,7 +1712,6 @@ Sa ulihi nga kaso, pwede ka magusar sang isa ka sugpon, tulad sa [[{{#Special:Ex
 'tooltip-pt-watchlist' => 'Ang lista sang mga pahina nga imo ginabantayan para bag-ohon',
 'tooltip-pt-mycontris' => 'Lista sang imo kontribusyon',
 'tooltip-pt-login' => 'Gina-abi-abi ikaw nga man magsulod paagi sa pag log-in, apang indi ini kinahanglan gid buhaton',
-'tooltip-pt-anonlogin' => 'Ginasuportahan ka nga magsulod, ugaling indi ini kinahanglan.',
 'tooltip-pt-logout' => 'Mag guha',
 'tooltip-ca-talk' => 'Paghisayranay nahanungod sini nga panid',
 'tooltip-ca-edit' => 'Puede nimo islan ang unod sang sini nga panid. Palihog gamit sang preview button antes permanentehon ang gin ilisan.',
index ea5b547..cafe1f3 100644 (file)
@@ -328,7 +328,6 @@ $messages = array(
 'tog-showtoolbar' => 'Prikaži traku s alatima za uređivanje (zahtijeva JavaScript)',
 'tog-editondblclick' => 'Dvoklik otvara uređivanje stranice (JavaScript)',
 'tog-editsectiononrightclick' => 'Pritiskom na desnu tipku miša otvori uređivanje pojedinih odlomaka (JavaScript)',
-'tog-showtoc' => 'U člancima s više od tri odlomka prikaži tablicu sadržaja.',
 'tog-rememberpassword' => 'Zapamti moju lozinku u ovom pregledniku (najduže $1 {{PLURAL:$1|dan|dana|dana}})',
 'tog-watchcreations' => 'Dodaj članke koje kreiram na moj popis praćenja',
 'tog-watchdefault' => 'Dodaj svaku stranicu koju uredim na moj popis praćenja',
index 5f316b0..da572b4 100644 (file)
@@ -166,7 +166,6 @@ $messages = array(
 'tog-showtoolbar' => 'Wobdźěłowansku lajstu pokazać',
 'tog-editondblclick' => 'Strony z dwójnym kliknjenjom wobdźěłować',
 'tog-editsectiononrightclick' => 'Wobdźěłowanje wotrězkow přez kliknjenje z prawej tastu na nadpisma wotrězkow zmóžnić',
-'tog-showtoc' => 'Zapis wobsaha pokazać (za strony z wjace hač 3 nadpismami)',
 'tog-rememberpassword' => 'Přizjewjenje na tutym wobhladowaku sej spomjatkować (za maksimalnje $1 {{PLURAL:$1|dźeń|dnjej|dny|dnjow}})',
 'tog-watchcreations' => 'Strony, kotrež wutworjam a dataje, kotrež nahrawam, swojim wobkedźbowankam přidać',
 'tog-watchdefault' => 'Strony a dataje, kotrež wobdźěłuju, swojim wobkedźbowankam přidać',
@@ -702,6 +701,7 @@ Jeli jo podaš, budźe so to wužiwać, zo by přinoški přirjadowało.',
 'retypenew' => 'Nowe hesło wospjetować:',
 'resetpass_submit' => 'Hesło posrědkować a so přizjewić',
 'changepassword-success' => 'Twoje hesło je so wuspěšnje změniło!',
+'changepassword-throttled' => 'Sy přehusto spytał so přizjewić. Počakaj prošu $1, prjedy hač hišće raz spytaš.',
 'resetpass_forbidden' => 'Hesła njedadźa so změnić.',
 'resetpass-no-info' => 'Dyrbiš so přizjewić, zo by direktny přistup na tutu stronu měł.',
 'resetpass-submit-loggedin' => 'Hesło změnić',
@@ -753,6 +753,8 @@ Nachwilne hesło: $2',
 'changeemail-password' => 'Twoje hesło za {{GRAMMAR:akuzatiw|{{SITENAME}}}}',
 'changeemail-submit' => 'E-mejlowu adresu změnić',
 'changeemail-cancel' => 'Přetorhnyć',
+'changeemail-throttled' => 'Sy přehusto spytał so přizjewić.
+Počakaj prošu $1, prjedy hač hišće raz spytaš.',
 
 # Special:ResetTokens
 'resettokens' => 'Tokeny wróćo stajić',
@@ -2215,7 +2217,6 @@ Přichodne změny tuteje strony a přisłušneje diskusijneje strony budu so tam
 'watchmethod-list' => 'Wobkedźbowanki za aktualnymi změnami přepruwować',
 'watchlistcontains' => 'Maš $1 {{PLURAL:$1|stronu|stronje|strony|stronow}} w swojich wobkedźbowankach.',
 'iteminvalidname' => 'Problem ze zapiskom „$1“, njepłaćiwe mjeno.',
-'wlnote' => "Deleka {{PLURAL:$1|je poslednja změna|stej poslednjej '''$1''' změnje|su poslednje '''$1''' změny|je poslednich '''$1''' změnow}} za {{PLURAL:$2|poslednju hodźinu|poslednje '''$2''' hodźinje|poslednje '''$2''' hodźiny|poslednje '''$2''' hodźin}}, staw : $3, $4.",
 'wlshowlast' => 'Poslednje $1 hodź. - $2 dnjow - $3 pokazać',
 'watchlist-options' => 'Opcije wobkedźbowankow',
 
@@ -2836,7 +2837,6 @@ $2',
 'tooltip-pt-watchlist' => 'lisćina stronow, kotrež wobkedźbuješ',
 'tooltip-pt-mycontris' => 'Lisćina twojich přinoškow',
 'tooltip-pt-login' => 'Móžeš so woměrje přizjewić, to pak zawjazowace njeje.',
-'tooltip-pt-anonlogin' => 'Móžeš so woměrje přizjewić, to pak zawjazowace njeje.',
 'tooltip-pt-logout' => 'so wotzjewić',
 'tooltip-ca-talk' => 'diskusija wo stronje',
 'tooltip-ca-edit' => 'Móžeš stronu wobdźěłać. Prošu wužij tłóčku „Přehlad” do składowanja.',
@@ -3960,5 +3960,6 @@ Hewak móžeš slědowacy jednory formular wužiwać. Twój komentar přida so s
 'expand_templates_preview' => 'Přehlad',
 
 # Unknown messages
+'createaccount-hook-aborted' => '$1',
 'uploadinvalidxml' => 'XML w nahratej dataji njeda so parsować.',
 );
index 702bf13..c5acdd8 100644 (file)
@@ -326,7 +326,6 @@ $messages = array(
 'tog-showtoolbar' => 'Szerkesztőeszközsor megjelenítése',
 'tog-editondblclick' => 'A lapok szerkesztése dupla kattintásra',
 'tog-editsectiononrightclick' => 'Szakaszok szerkesztése a szakaszcímre való jobb kattintással',
-'tog-showtoc' => 'Tartalomjegyzék megjelenítése a három fejezetnél többel rendelkező cikkeknél',
 'tog-rememberpassword' => 'Emlékezzen rám ezzel a böngészővel (legfeljebb {{PLURAL:$1|egy|$1}} napig)',
 'tog-watchcreations' => 'Az általam létrehozott lapok és feltöltött fájlok felvétele a figyelőlistámra',
 'tog-watchdefault' => 'Az általam szerkesztett lapok és fájlok felvétele a figyelőlistámra',
index 76e9eff..ea32ddb 100644 (file)
@@ -287,7 +287,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ցույց տալ խմբագրումների գործիքների վահանակը',
 'tog-editondblclick' => 'Խմբագրել էջերը կրկնակի մատնահարմամբ',
 'tog-editsectiononrightclick' => 'Խմբագրել բաժինները վերնագրի աջ մատնահարմամբ',
-'tog-showtoc' => 'Ցույց տալ բովանդակությունը (3  կամ ավել վերնագրեր ունեցող էջերի համար)',
 'tog-rememberpassword' => 'Հիշել իմ մուտքագրված տվյալներն այս համակարգչում ($1 {{PLURAL:$1|օրից}} ոչ ավել ժամկետով)',
 'tog-watchcreations' => 'Ավելացնել իմ ստեղծած էջերը և բեռնած նիշքերը հսկացանկին',
 'tog-watchdefault' => 'Ավելացնել իմ խմբագրած էջերը և նիշքերը հսկացանկին',
@@ -1817,7 +1816,6 @@ $1-ը հղվել է $2 ից',
 'watchmethod-list' => 'հսկվող էջերի վերջին փոփոխությունները',
 'watchlistcontains' => 'Ձեր հսկացանկում կա $1 {{PLURAL:$1|էջ|էջ}}։',
 'iteminvalidname' => 'Խնդիր «$1» տարրի հետ, անթույլատրելի անվանում...',
-'wlnote' => "Ստորև բերված {{PLURAL:$1|է վերջին փոփոխությունը|են վերջին '''$1''' փոփոխությունները}} վերջին <strong>$2</strong> ժամվա ընթացքում։",
 'wlshowlast' => 'Ցուցադրել վերջին $1 ժամերը $2 օրերը $3',
 'watchlist-options' => 'Հսկացանկի նախընտրություններ',
 
@@ -2307,7 +2305,6 @@ Please visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation
 'tooltip-pt-watchlist' => 'Ձեր հսկողության տակ գտնվող էջերի ցանկը',
 'tooltip-pt-mycontris' => 'Ձեր ներդրումների ցանկը',
 'tooltip-pt-login' => 'Կոչ ենք անում մտնել համակարգ, սակայն դա պարտադիր չէ',
-'tooltip-pt-anonlogin' => 'Կոչ ենք ձեզ անում մուտք գործել համակարգ, սակայն դա պարտադիր չէ',
 'tooltip-pt-logout' => 'Դուրս գալ համակարգից',
 'tooltip-ca-talk' => 'Քննարկումներ այս էջի բովանդակության մասին',
 'tooltip-ca-edit' => 'Դուք կարող էք խմբագրել այս էջը։ Խնդրում ենք օգտագործել նախադիտման կոճակը հիշելուց առաջ։',
index 79af7e8..f8af929 100644 (file)
@@ -157,7 +157,6 @@ $messages = array(
 'tog-showtoolbar' => 'Monstrar instrumentario de modification',
 'tog-editondblclick' => 'Modificar paginas con duple clic',
 'tog-editsectiononrightclick' => 'Permitter modification de sectiones con clic-a-dextra sur titulos de section',
-'tog-showtoc' => 'Monstrar tabula de contento (in paginas con plus de 3 sectiones)',
 'tog-rememberpassword' => 'Memorar mi contrasigno in iste navigator (pro un maximo de $1 {{PLURAL:$1|die|dies}})',
 'tog-watchcreations' => 'Adder le paginas que io crea e le files que io incarga a mi observatorio',
 'tog-watchdefault' => 'Adder le paginas e files que io modifica a mi observatorio',
index 28ad25c..99ce286 100644 (file)
@@ -358,7 +358,6 @@ $messages = array(
 'tog-showtoolbar' => 'Tampilkan bilah alat penyuntingan',
 'tog-editondblclick' => 'Sunting halaman dengan klik ganda',
 'tog-editsectiononrightclick' => 'Fungsikan penyuntingan bagian dengan mengeklik kanan pada judul bagian',
-'tog-showtoc' => 'Perlihatkan daftar isi (untuk halaman yang mempunyai lebih dari 3 subbagian)',
 'tog-rememberpassword' => 'Ingat kata sandi saya di peramban ini (selama $1 {{PLURAL:$1|hari}})',
 'tog-watchcreations' => 'Tambahkan halaman yang saya buat ke daftar pantauan',
 'tog-watchdefault' => 'Tambahkan halaman yang saya sunting ke daftar pantauan',
index 7a37c44..75fd544 100644 (file)
@@ -47,7 +47,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ipakita ti baras ti ramit ti panag-urnos',
 'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagpindut',
 'tog-editsectiononrightclick' => 'Pakabaelan ti panag-urnos ti paset babaen ti kanawan a panagpindut kadagiti titulo ti paset',
-'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga adda ti ad-adu ngem dagiti 3 a paulo)',
 'tog-rememberpassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (iti kapaut nga $1 {{PLURAL:$1|aldaw|al-aldaw}})',
 'tog-watchcreations' => 'Agnayon kadagiti panid a pinartuatko ken papeles nga inkargak idiay listaan ti bambantayak',
 'tog-watchdefault' => 'Agnayon kadagiti panid ken papeles nga inurnosko idiay listaan ti bambantayak',
index 04b943f..33f8540 100644 (file)
@@ -244,7 +244,6 @@ $messages = array(
 'tog-showtoolbar' => 'Sýna breytingarverkfærastiku',
 'tog-editondblclick' => 'Breyta síðum þegar tvísmellt er',
 'tog-editsectiononrightclick' => 'Virkja hlutabreytingu með því að hægrismella á hlutafyrirsagnir',
-'tog-showtoc' => 'Sýna efnisyfirlit (fyrir síður með meira en 3 fyrirsagnir)',
 'tog-rememberpassword' => 'Muna innskráninguna mína í þessum vafra (í allt að $1 {{PLURAL:$1|dag|daga}})',
 'tog-watchcreations' => 'Bæta síðum sem ég bý til og skrám sem ég hleð inn á vaktlistann minn',
 'tog-watchdefault' => 'Bæta síðum og skrám sem ég breyti á vaktlistann minn',
@@ -359,9 +358,9 @@ $messages = array(
 'hidden-category-category' => 'Faldir flokkar',
 'category-subcat-count' => '{{PLURAL:$2|Þessi flokkur hefur einungis eftirfarandi undirflokk.|Þessi flokkur hefur eftirfarandi {{PLURAL:$1|undirflokk|$1 undirflokka}}, af alls $2.}}',
 'category-subcat-count-limited' => 'Þessi flokkur hefur eftirfarandi {{PLURAL:$1|undirflokk|$1 undirflokka}}.',
-'category-article-count' => '{{PLURAL:$2|Þessi flokkur inniheldur aðeins eftirfarandi síðu.|Eftirfarandi {{PLURAL:$1|síða er|síður eru}} í þessum flokki, af alls $1.}}',
+'category-article-count' => 'Þessi flokkur inniheldur {{PLURAL:$1|$1 síðu|$1 síður}}, af alls {{PLURAL:$2|$2}}.',
 'category-article-count-limited' => 'Eftirfarandi {{PLURAL:$1|síða er|$1 síður eru}} í þessum flokki.',
-'category-file-count' => '{{PLURAL:$2|Þessi flokkur inniheldur einungis eftirfarandi skrá.|Eftirfarandi {{PLURAL:$1|skrá er|$1 skrár eru}} í þessum flokki, af alls $2.}}',
+'category-file-count' => 'Þessi flokkur inniheldur {{PLURAL:$1|$1 skrá|$1 skrár}}, af alls {{PLURAL:$2|$2}}.',
 'category-file-count-limited' => 'Eftirfarandi {{PLURAL:$1|skrá er|$1 skrár eru}} í þessum flokki.',
 'listingcontinuesabbrev' => 'frh.',
 'index-category' => 'Raðaðar skrár',
@@ -429,7 +428,7 @@ $messages = array(
 'delete' => 'Eyða',
 'deletethispage' => 'Eyða þessari síðu',
 'undeletethispage' => 'Endurvekja þessa síðu',
-'undelete_short' => 'Endurvekja {{PLURAL:$1|eina breytingu|$1 breytingar}}',
+'undelete_short' => 'Endurvekja {{PLURAL:$1|$1 breytingu|$1 breytingar}}',
 'viewdeleted_short' => 'Skoða {{PLURAL:$1|eina eydda breytingu|$1 eyddar breytingar}}',
 'protect' => 'Vernda',
 'protect_change' => 'breyta',
@@ -520,7 +519,7 @@ Sjá [[Special:Version|útgáfusíðuna]].',
 'collapsible-expand' => 'Sýna',
 'thisisdeleted' => 'Endurvekja eða skoða $1?',
 'viewdeleted' => 'Skoða $1?',
-'restorelink' => '{{PLURAL:$1|eina eydda breytingu|$1 eyddar breytingar}}',
+'restorelink' => '$1 {{PLURAL:$1|eydd breyting|eyddar breytingar}}',
 'feedlinks' => 'Streymi:',
 'feed-invalid' => 'Röng tegund áskriftarstreymis.',
 'feed-unavailable' => 'Samræmisstreymi eru ekki fáanlegt',
@@ -741,7 +740,7 @@ Vinsamlegast skráðu þig inn á ný þegar þú hefur móttekið það.',
 'throttled-mailpassword' => 'Tölvupóstur til að endursetja lykilorðið hefur þegar verið sent, innan við {{PLURAL:$1|síðasta klukkutímans|$1 síðustu klukkutímanna}}.
 Til að koma í veg fyrir misnotkun, er aðeins einn tölvupóstur sendur {{PLURAL:$1|hvern klukkutíma|hverja $1 klukkutíma}}.',
 'mailerror' => 'Upp kom villa við sendingu tölvupósts: $1',
-'acct_creation_throttle_hit' => 'Því miður, hafa verið búnir til {{PLURAL:$1|1 aðgang|$1 aðganga}} nýr aðgangar í dag sem er hámarksfjöldi nýskráninga á einum degi.
+'acct_creation_throttle_hit' => 'Því miður, hafa verið búnir til {{PLURAL:$1|$1 nýr aðgangur|$1 nýjir aðgangar}} í dag sem er hámarksfjöldi nýskráninga á einum degi.
 Þú getur því miður ekki búið til nýjan aðgang frá þessari IP-tölu að svo stöddu.',
 'emailauthenticated' => 'Netfang þitt var staðfest þann $2 klukkan $3.',
 'emailnotauthenticated' => 'Tölvupóstfang þitt hefur ekki enn verið staðfest. Enginn póstur verður sendur af neinum af eftirfarandi eiginleikum.',
@@ -1004,7 +1003,7 @@ Lausn er í gildi sem leyfir þér að breyta síðum: Stafatákn sem eru ekki 
 Ef þú vilt ekki að textanum verði breytt skaltu ekki senda hann inn hér.<br />
 Þú lofar okkur einnig að þú hafir skrifað þetta sjálfur, að efnið sé í almannaeigu eða að það heyri undir frjálst leyfi. (sjá $1).
 '''EKKI SENDA INN HÖFUNDARRÉTTARVARIРEFNI ÁN LEYFIS RÉTTHAFA!'''",
-'longpageerror' => "'''VILLA: Textinn sem þú sendir inn er $1 {{PLURAL:$1|kílóbæti|kílóbæti}} að lengd, en hámarkið er $2 {{PLURAL:$2|kílóbæti|kílóbæti}}. Ekki er hægt að vista textann.'''",
+'longpageerror' => "'''VILLA: Textinn sem þú sendir inn er $1 {{PLURAL:$1|kílóbæti}} að lengd, en hámarkið er $2 {{PLURAL:$2|kílóbæti}}. Ekki er hægt að vista textann.'''",
 'readonlywarning' => "'''AÐVÖRUN: Gagnagrunninum hefur verið læst til að unnt sé að framkvæma viðhaldsaðgerðir, svo þú getur ekki vistað breytingar þínar núna.'''
 Þú ættir að klippa og líma textann yfir í textaskjal til þess að geyma hann til seinni tíma.
 
@@ -1309,7 +1308,7 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'searcheverything-enable' => 'Leita í öllum nafnrýmum',
 'searchrelated' => 'tengt',
 'searchall' => 'öllum',
-'showingresults' => "Sýni {{PLURAL:$1|'''1''' niðurstöðu|'''$1''' niðurstöður}} frá og með #'''$2'''.",
+'showingresults' => 'Sýni <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} frá og með #<strong>$2</strong>.',
 'showingresultsnum' => "Sýni {{PLURAL:$3|'''$3''' niðurstöðu|'''$3''' niðurstöður}} frá og með #<b>$2</b>.",
 'showingresultsheader' => "{{PLURAL:$5|Niðurstaða '''$1''' af '''$3'''|Niðurstöður'''$1 - $2''' af '''$3'''}} fyrir '''$4'''",
 'search-nonefound' => 'Engar niðurstöður pössuðu við fyrirspurnina.',
@@ -2301,7 +2300,6 @@ Frekari breytingar á henni eða spjallsíðu hennar munu verða sýndar þar.',
 'watchmethod-list' => 'leita að breytingum í vöktuðum síðum',
 'watchlistcontains' => 'Vaktlistinn þinn inniheldur {{PLURAL:$1|$1 síðu|$1 síður}}.',
 'iteminvalidname' => 'Vandamál með „$1“, rangt nafn...',
-'wlnote' => "Hér fyrir neðan {{PLURAL:$1|er síðasta breyting|eru síðustu '''$1''' breytingar}} {{PLURAL:$2|síðastliðinn klukkutímann|síðastliðna '''$2''' klukkutímana}}, frá $3, $4.",
 'wlshowlast' => 'Sýna síðustu $1 klukkutíma, $2 daga, $3',
 'watchlist-options' => 'Vaktlistastillingar',
 
@@ -2955,7 +2953,6 @@ Vinsamlegast reyndu aftur.',
 'tooltip-pt-watchlist' => 'Listi yfir síður sem þú fylgist með breytingum á',
 'tooltip-pt-mycontris' => 'Listi yfir framlög þín',
 'tooltip-pt-login' => 'Þú ert hvattur/hvött til að innskrá þig, það er hinsvegar ekki skylda.',
-'tooltip-pt-anonlogin' => 'Þú ert hvattur/hvött til að innskrá þig, það er hinsvegar ekki nauðsynlegt.',
 'tooltip-pt-logout' => 'Útskráning',
 'tooltip-ca-talk' => 'Spallsíða þessarar síðu',
 'tooltip-ca-edit' => 'Þú getur breytt síðu þessari, vinsamlegast notaðu „forskoða“ hnappinn áður en þú vistar',
@@ -3026,7 +3023,7 @@ Vinsamlegast reyndu aftur.',
 'notacceptable' => 'Wiki vefþjónninn getur ekki útvegað gögn á því formi sem biðlarinn þinn getur lesið.',
 
 # Attribution
-'anonymous' => '{{PLURAL:$1|Óþekktur notandi|Óþekktir notendur}} á {{SITENAME}}',
+'anonymous' => '$1 {{PLURAL:$1|óþekktur notandi|óþekktir notendur}} á {{SITENAME}}',
 'siteuser' => '{{SITENAME}} notandi $1',
 'anonuser' => '{{SITENAME}} nafnlaus notandi $1',
 'lastmodifiedatby' => 'Þessari síðu var síðast breytt $1 klukkan $2 af $3.',
@@ -3157,7 +3154,7 @@ Vinsamlegast reyndu aftur.',
 
 # Special:NewFiles
 'newimages' => 'Myndasafn nýlegra skráa',
-'imagelisttext' => 'Hér fyrir neðan er {{PLURAL:$1|einni skrá|$1 skrám}} raðað $2.',
+'imagelisttext' => 'Hér fyrir neðan er $1 {{PLURAL:$1|skrá|skrám}} raðað $2.',
 'newimages-summary' => 'Þessi kerfissíða sýnir nýlega innhlaðnar skrár.',
 'newimages-legend' => 'Sía',
 'newimages-label' => 'Skráarnafn (eða hluti þess):',
@@ -3696,7 +3693,7 @@ Vinsamlegast staðfestu að þú viljir endurvekja hana.',
 'lag-warn-high' => 'Vegna mikils álags á vefþjónanna, kunna breytingar yngri en $1 {{PLURAL:$1|sekúnda|sekúndur}} ekki að vera á þessum lista.',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'Á vaktlista þínum {{PLURAL:$1|er 1 síða|eru $1 síður}}, að undanskildum spjallsíðum.',
+'watchlistedit-numitems' => 'Á vaktlista þínum {{PLURAL:$1|er $1 síða|eru $1 síður}}, að undanskildum spjallsíðum.',
 'watchlistedit-noitems' => 'Vaktlistinn þinn inniheldur enga titla.',
 'watchlistedit-normal-title' => 'Breyta vaktlistanum',
 'watchlistedit-normal-legend' => 'Fjarlægja titla af vaktlistanum',
@@ -3713,8 +3710,8 @@ einn titil í hverri línu.
 'watchlistedit-raw-titles' => 'Titlar:',
 'watchlistedit-raw-submit' => 'Uppfæra vaktlistann',
 'watchlistedit-raw-done' => 'Vaktlistinn þinn hefur verið uppfærður.',
-'watchlistedit-raw-added' => '{{PLURAL:$1|Einum titli|$1 titlum}} var bætt við:',
-'watchlistedit-raw-removed' => '{{PLURAL:$1|1 titill var fjarlægður|$1 titlar voru fjarlægðir}}:',
+'watchlistedit-raw-added' => '$1 {{PLURAL:$1|titli|titlum}} var bætt við:',
+'watchlistedit-raw-removed' => '$1 {{PLURAL:$1|titill var fjarlægður|titlar voru fjarlægðir}}:',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Sýna viðeigandi breytingar',
index e0f1ff4..8f5859f 100644 (file)
@@ -304,7 +304,6 @@ $messages = array(
 'tog-showtoolbar' => 'Mostra la barra degli strumenti di modifica',
 'tog-editondblclick' => 'Modifica delle pagine tramite doppio clic',
 'tog-editsectiononrightclick' => 'Modifica delle sezioni tramite clic destro sul titolo',
-'tog-showtoc' => "Mostra l'indice (per le pagine con più di 3 sezioni)",
 'tog-rememberpassword' => 'Ricorda la password su questo browser (per un massimo di $1 {{PLURAL:$1|giorno|giorni}})',
 'tog-watchcreations' => 'Aggiungi le pagine create e i file caricati agli osservati speciali',
 'tog-watchdefault' => 'Aggiungi le pagine e i file modificati agli osservati speciali',
@@ -2362,7 +2361,7 @@ D\'ora in poi, le modifiche apportate alla pagina e alla sua discussione verrann
 'watchmethod-list' => 'controllo degli osservati speciali per modifiche recenti',
 'watchlistcontains' => 'La lista degli osservati speciali contiene {{PLURAL:$1|una pagina|$1 pagine}}.',
 'iteminvalidname' => "Problemi con la pagina '$1', nome non valido...",
-'wlnote' => "Di seguito {{PLURAL:$1|è elencata la modifica più recente apportata|sono elencate le '''$1''' modifiche più recenti apportate}} {{PLURAL:$2|nella scorsa ora|nelle scorse '''$2''' ore}}; i dati sono aggiornati alle $4 del $3.",
+'wlnote2' => "Di seguito le modifiche {{PLURAL:$1|nell'ultima ora|nelle ultime <strong>$1</strong> ore}}, da $2, $3.",
 'wlshowlast' => 'Mostra le ultime $1 ore $2 giorni $3',
 'watchlist-options' => 'Opzioni osservati speciali',
 
@@ -2896,6 +2895,7 @@ Visitare [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] e
 'allmessages-prefix' => 'Filtra per prefisso:',
 'allmessages-language' => 'Lingua:',
 'allmessages-filter-submit' => 'Vai',
+'allmessages-filter-translate' => 'Traduci',
 
 # Thumbnails
 'thumbnail-more' => 'Ingrandisci',
@@ -2988,7 +2988,6 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 'tooltip-pt-watchlist' => 'La lista delle pagine che stai tenendo sotto osservazione',
 'tooltip-pt-mycontris' => 'Elenco dei tuoi contributi',
 'tooltip-pt-login' => 'La registrazione è consigliata, anche se non obbligatoria',
-'tooltip-pt-anonlogin' => 'La registrazione è consigliata, anche se non obbligatoria',
 'tooltip-pt-logout' => 'Uscita (logout)',
 'tooltip-ca-talk' => 'Vedi le discussioni relative a questa pagina',
 'tooltip-ca-edit' => 'Puoi modificare questa pagina. Per favore usa il pulsante di anteprima prima di salvare',
index 3cca420..580edbe 100644 (file)
@@ -380,7 +380,6 @@ $messages = array(
 'tog-showtoolbar' => '編集用のツールバーを表示',
 'tog-editondblclick' => 'ダブルクリックでページを編集',
 'tog-editsectiononrightclick' => '節見出しの右クリックで節を編集できるようにする',
-'tog-showtoc' => '目次を表示 (ページに見出しが4つ以上ある場合)',
 'tog-rememberpassword' => 'このブラウザーにログイン情報を保存 (最長 $1 {{PLURAL:$1|日|日間}})',
 'tog-watchcreations' => '自分が作成したページやアップロードしたファイルをウォッチリストに追加',
 'tog-watchdefault' => '自分が編集したページやファイルをウォッチリストに追加',
@@ -492,7 +491,7 @@ $messages = array(
 'category_header' => 'カテゴリ「$1」にあるページ',
 'subcategories' => '下位カテゴリ',
 'category-media-header' => 'カテゴリ「$1」にあるメディア',
-'category-empty' => "''このカテゴリには現在、ページやメディアが何もありません。''",
+'category-empty' => '<em>このカテゴリには現在、ページやメディアが何もありません。</em>',
 'hidden-categories' => '{{PLURAL:$1|隠しカテゴリ}}',
 'hidden-category-category' => '隠しカテゴリ',
 'category-subcat-count' => '{{PLURAL:$2|このカテゴリには以下の下位カテゴリのみが含まれています。|このカテゴリには $2 下位カテゴリが含まれており、そのうち以下の {{PLURAL:$1|$1 下位カテゴリ}}を表示しています。}}',
@@ -703,7 +702,7 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'databaseerror-query' => 'クエリ: $1',
 'databaseerror-function' => '関数: $1',
 'databaseerror-error' => 'エラー: $1',
-'laggedslavemode' => "'''警告:''' ページに最新の編集が反映されていない可能性があります。",
+'laggedslavemode' => '<strong>警告:</strong> ページに最新の編集が反映されていない可能性があります。',
 'readonly' => 'データベースがロックされています',
 'enterlockreason' => 'ロックの理由とロック解除の予定を入力してください',
 'readonlytext' => 'データベースは現在、新しいページの追加や編集を受け付けない「ロック状態」になっています。これはおそらくデータベースの定期メンテナンスのためで、メンテナンス終了後は正常な状態に復帰します。
@@ -751,15 +750,15 @@ URL を間違って入力したか、正しくないリンクをたどった可
 少し時間をおいてからもう一度操作してください。',
 'protectedpagetext' => 'このページは編集や他の操作ができないように保護されています。',
 'viewsourcetext' => 'このページのソースの閲覧やコピーができます:',
-'viewyourtext' => "このページへの'''あなたの編集'''のソースの閲覧やコピーができます:",
+'viewyourtext' => 'このページへの<strong>あなたの編集</strong>のソースの閲覧やコピーができます:',
 'protectedinterface' => 'このページにはこのウィキのソフトウェアのインターフェイスに使用されるテキストが保存されており、いたずらなどの防止のために保護されています。
 すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/ translatewiki.net] を使用してください。',
-'editinginterface' => "'''警告:''' ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。
+'editinginterface' => '<strong>警告:</strong> ソフトウェアのインターフェイスに使用されるテキストのページを編集しています。
 このページを変更すると、このウィキの他の利用者のユーザーインターフェイスの外観に影響します。
-すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。",
+すべてのウィキに対して翻訳を追加/変更する場合は、MediaWiki の地域化プロジェクト [//translatewiki.net/wiki/Main_Page?setlang=ja translatewiki.net] を使用してください。',
 'cascadeprotected' => 'このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}で読み込まれているため、編集できないように保護されています:
 $2',
-'namespaceprotected' => "'''$1'''名前空間にあるページを編集する権限がありません。",
+'namespaceprotected' => '<strong>$1</strong>名前空間にあるページを編集する権限がありません。',
 'customcssprotected' => 'この CSS ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。',
 'customjsprotected' => 'この JavaScript ページは他の利用者の個人設定を含んでいるため、あなたには編集する権限がありません。',
 'mycustomcssprotected' => 'あなたには CSS ページを編集する権限がありません。',
@@ -767,8 +766,8 @@ $2',
 'myprivateinfoprotected' => 'あなたには自身の非公開情報を編集する権限がありません。',
 'mypreferencesprotected' => 'あなたには自身の個人設定を編集する権限がありません。',
 'ns-specialprotected' => '特別ページは編集できません。',
-'titleprotected' => "[[User:$1|$1]]によりこのページ名を持つページの作成は保護されています。
-理由は「''$2''」です。",
+'titleprotected' => '[[User:$1|$1]]によりこのページ名を持つページの作成は保護されています。
+理由は「<em>$2</em>」です。',
 'filereadonlyerror' => 'ファイルリポジトリ「$2」が読み取り専用の状態にあるため、ファイル「$1」を変更できません。
 
 読み取り専用に設定した管理者からの説明:「$3」',
@@ -779,14 +778,14 @@ $2',
 'exception-nologin-text-manual' => 'このページまたは操作にアクセスできるようにするには$1してください。',
 
 # Virus scanner
-'virus-badscanner' => "環境設定が不適合です: 不明なウイルス対策ソフトウェア: ''$1''",
+'virus-badscanner' => '環境設定が不適合です: 不明なウイルス対策ソフトウェア: <em>$1</em>',
 'virus-scanfailed' => 'スキャンに失敗しました (コード $1)',
 'virus-unknownscanner' => '不明なウイルス対策ソフトウェア:',
 
 # Login and logout pages
-'logouttext' => "'''ログアウトしました。'''
+'logouttext' => '<strong>ログアウトしました。</strong>
 
-ページによっては、ブラウザーのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。",
+ページによっては、ブラウザーのキャッシュをクリアするまで、ログインしているかのように表示され続ける場合があるためご注意ください。',
 'welcomeuser' => 'ようこそ、$1さん!',
 'welcomecreation-msg' => 'アカウントが作成されました。
 お好みで[[Special:Preferences|{{SITENAME}}の個人設定]]を変更できます。',
@@ -866,7 +865,7 @@ Cookieを有効にしていることを確認して、このページを再読
 'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'noname' => '利用者名を正しく指定していません。',
 'loginsuccesstitle' => 'ログイン成功',
-'loginsuccess' => "'''{{SITENAME}}に「$1」としてログインしました。'''",
+'loginsuccess' => '<strong>{{SITENAME}}に「$1」としてログインしました。</strong>',
 'nosuchuser' => '「$1」という名前の利用者は見当たりません。
 利用者名では大文字と小文字を区別します。
 綴りが正しいことを確認するか、[[Special:UserLogin/signup|新たにアカウントを作成]]してください。',
@@ -944,6 +943,8 @@ $1待ってから再度試してください。',
 'retypenew' => '新しいパスワードを再入力:',
 'resetpass_submit' => '再設定してログイン',
 'changepassword-success' => 'パスワードを変更しました!',
+'changepassword-throttled' => '最近のログインの試行回数が多すぎます。
+$1待ってから再度試してください。',
 'resetpass_forbidden' => 'パスワードは変更できません',
 'resetpass-no-info' => 'このページに直接アクセスするためにはログインしている必要があります。',
 'resetpass-submit-loggedin' => 'パスワードを変更',
@@ -1005,6 +1006,8 @@ $2
 'changeemail-password' => '{{SITENAME}}のパスワード:',
 'changeemail-submit' => 'メールアドレスを変更',
 'changeemail-cancel' => '中止',
+'changeemail-throttled' => 'ログインの試行回数が多すぎます。
+$1待ってから再度試してください。',
 
 # Special:ResetTokens
 'resettokens' => 'トークンの再設定',
@@ -1049,21 +1052,21 @@ $2
 'showpreview' => 'プレビューを表示',
 'showlivepreview' => 'ライブプレビュー',
 'showdiff' => '差分を表示',
-'anoneditwarning' => "'''警告:''' ログインしていません。
-編集すると、IPアドレスがこのページの編集履歴に記録されます。",
-'anonpreviewwarning' => "''ログインしていません。投稿を保存すると、ご使用中のIPアドレスがこのページの履歴に記録されます。''",
-'missingsummary' => "'''注意:''' 編集内容の要約が空欄です。
-「{{int:savearticle}}」をもう一度クリックすると、編集内容は要約なしで保存されます。",
+'anoneditwarning' => '<strong>警告:</strong> ログインしていません。
+編集すると、IPアドレスがこのページの編集履歴に記録されます。',
+'anonpreviewwarning' => '<em>ログインしていません。投稿を保存すると、ご使用中のIPアドレスがこのページの履歴に記録されます。</em>',
+'missingsummary' => '<strong>注意:</strong> 編集内容の要約が空欄です。
+「{{int:savearticle}}」をもう一度クリックすると、編集内容は要約なしで保存されます。',
 'missingcommenttext' => '以下にコメントを入力してください。',
-'missingcommentheader' => "'''注意:''' このコメントに対する題名/見出しが空欄です。
-「{{int:savearticle}}」ボタンをもう一度押すと、空のまま編集が保存されます。",
+'missingcommentheader' => '<strong>注意:</strong> このコメントに対する題名/見出しが空欄です。
+「{{int:savearticle}}」ボタンをもう一度押すと、空のまま編集が保存されます。',
 'summary-preview' => '要約のプレビュー:',
 'subject-preview' => '題名/見出しのプレビュー:',
 'blockedtitle' => '利用者はブロックされています',
-'blockedtext' => "'''この利用者名またはIPアドレスはブロックされています。'''
+'blockedtext' => '<strong>この利用者名またはIPアドレスはブロックされています。</strong>
 
 ブロックは$1によって実施されました。
-ブロックの理由は ''$2'' です。
+ブロックの理由は <em>$2</em> です。
 
 * ブロック開始日時: $8
 * ブロック解除予定: $6
@@ -1072,11 +1075,11 @@ $2
 このブロックについて、$1もしくは他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]に問い合わせることができます。
 ただし、[[Special:Preferences|個人設定]]で有効なメールアドレスが登録されていない場合、またはメール送信機能の使用がブロックされている場合、「この利用者にメールを送信」の機能は使えません。
 現在ご使用中のIPアドレスは$3、このブロックIDは#$5です。
-お問い合わせの際には、上記の情報を必ず書いてください。",
-'autoblockedtext' => "このIPアドレスは、$1によりブロックされた利用者によって使用されたため、自動的にブロックされています。
+お問い合わせの際には、上記の情報を必ず書いてください。',
+'autoblockedtext' => 'このIPアドレスは、$1によりブロックされた利用者によって使用されたため、自動的にブロックされています。
 理由は次の通りです。
 
-:''$2''
+:<em>$2</em>
 
 * ブロック開始日時: $8
 * ブロック解除予定: $6
@@ -1087,7 +1090,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 ただし、[[Special:Preferences|個人設定]]に正しいメールアドレスが登録されていない場合、またはメール送信がブロックされている場合、「この利用者にメールを送信」機能を使用できないことに注意してください。
 
 現在ご使用中のIPアドレスは$3 、このブロックIDは#$5です。
-お問い合わせの際は、上記の情報を必ず書いてください。",
+お問い合わせの際は、上記の情報を必ず書いてください。',
 'blockednoreason' => '理由が設定されていません',
 'whitelistedittext' => 'このページを編集するには$1してください。',
 'confirmedittext' => 'ページの編集を始める前にメールアドレスの確認をする必要があります。
@@ -1099,15 +1102,15 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'loginreqlink' => 'ログイン',
 'loginreqpagetext' => '他のページを閲覧するには$1してください。',
 'accmailtitle' => 'パスワードをお送りしました',
-'accmailtext' => "[[User talk:$1|$1]]のために無作為に生成したパスワードを、$2に送信しました。パスワードは、ログインした際に''[[Special:ChangePassword|パスワード変更]]''ページで変更できます。",
+'accmailtext' => '[[User talk:$1|$1]]のために無作為に生成したパスワードを、$2に送信しました。パスワードは、ログインした際に<em>[[Special:ChangePassword|パスワード変更]]</em>ページで変更できます。',
 'newarticle' => '(新)',
-'newarticletext' => "まだ存在しないページへのリンクをたどりました。
+'newarticletext' => 'まだ存在しないページへのリンクをたどりました。
 このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプページ]]を参照してください)。
-誤ってこのページにたどり着いた場合には、ブラウザーの'''戻る'''ボタンで前のページに戻ってください。",
-'anontalkpagetext' => "----
-''このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。''
+誤ってこのページにたどり着いた場合には、ブラウザーの<strong>戻る</strong>ボタンで前のページに戻ってください。',
+'anontalkpagetext' => '----
+<em>このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。</em>
 
-匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。IP アドレスは複数の利用者で共有されている場合があります。もし、あなたが匿名利用者であり、自分に関係のないコメントが寄せられていると考えられる場合は、[[Special:UserLogin/signup|アカウントを作成する]]か[[Special:UserLogin|ログインして]]他の匿名利用者と間違えられないようにしてください。",
+匿名利用者を識別するために、利用者名の代わりにIPアドレスが使用されています。IP アドレスは複数の利用者で共有されている場合があります。もし、あなたが匿名利用者であり、自分に関係のないコメントが寄せられていると考えられる場合は、[[Special:UserLogin/signup|アカウントを作成する]]か[[Special:UserLogin|ログインして]]他の匿名利用者と間違えられないようにしてください。',
 'noarticletext' => '現在このページには内容がありません。
 他のページ内で[[Special:Search/{{PAGENAME}}|このページ名を検索]]、
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 関連する記録を検索]、
@@ -1123,80 +1126,80 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 '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'')
-* '''Internet Explorer:''' ''Ctrl'' を押しながら ''最新の情報に更新'' をクリックするか、''Ctrl-F5'' を押してください
-* '''Opera:''' ''ツール → 設定'' からキャッシュをクリアしてください。",
-'usercssyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいCSSを試験できます。",
-'userjsyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいJavaScriptを試験できます。",
-'usercsspreview' => "'''利用者CSSをプレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'userjspreview' => "'''利用者JavaScriptを試験/プレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'sitecsspreview' => "'''ここでは、CSSをプレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'sitejspreview' => "'''ここでは、JavaScriptをプレビューしているだけに過ぎません。'''
-'''まだ保存されていません!'''",
-'userinvalidcssjstitle' => "'''警告:'''「$1」という外装はありません。
-カスタム .css/.js ページではページ名を小文字にしてください。例: {{ns:user}}:Hoge/Vector.css ではなく {{ns:user}}:Hoge/vector.css",
+'clearyourcache' => '<strong>注意:</strong> 保存後、変更を確認するにはブラウザーのキャッシュを消去する必要がある場合があります。
+* <strong>Firefox / Safari:</strong> <em>Shift</em> を押しながら <em>再読み込み</em> をクリックするか、<em>Ctrl-F5</em> または <em>Ctrl-R</em> を押してください (Mac では <em>&#x2318;-R</em>)
+* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> を押してください (Mac では <em>&#x2318;-Shift-R</em>)
+* <strong>Internet Explorer:</strong> <em>Ctrl</em> を押しながら <em>最新の情報に更新</em> をクリックするか、<em>Ctrl-F5</em> を押してください
+* <strong>Opera:</strong> <em>ツール → 設定</em> からキャッシュをクリアしてください。',
+'usercssyoucanpreview' => '<strong>ヒント:</strong>「{{int:showpreview}}」ボタンを使うと、保存前に新しいCSSを試験できます。',
+'userjsyoucanpreview' => '<strong>ヒント:</strong>「{{int:showpreview}}」ボタンを使うと、保存前に新しいJavaScriptを試験できます。',
+'usercsspreview' => '<strong>利用者CSSをプレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'userjspreview' => '<strong>利用者JavaScriptを試験/プレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'sitecsspreview' => '<strong>ここでは、CSSをプレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'sitejspreview' => '<strong>ここでは、JavaScriptをプレビューしているだけに過ぎません。</strong>
+<strong>まだ保存されていません!</strong>',
+'userinvalidcssjstitle' => '<strong>警告:</strong>「$1」という外装はありません。
+カスタム .css/.js ページではページ名を小文字にしてください。例: {{ns:user}}:Hoge/Vector.css ではなく {{ns:user}}:Hoge/vector.css',
 'updated' => '(更新)',
-'note' => "'''お知らせ:'''",
-'previewnote' => "'''これはプレビューです。'''
-変更内容はまだ保存されていません!",
+'note' => '<strong>お知らせ:</strong>',
+'previewnote' => '<strong>これはプレビューです。</strong>
+変更内容はまだ保存されていません!',
 'continue-editing' => '編集を続行',
 'previewconflict' => 'これは、上の編集エリアの文章を保存した場合にどう表示されるかを示すプレビューです。',
-'session_fail_preview' => "'''申し訳ありません! セッションデータが消失したため編集を処理できませんでした。'''
+'session_fail_preview' => '<strong>申し訳ありません! セッションデータが消失したため編集を処理できませんでした。</strong>
 もう一度やり直してください。
-それでも失敗する場合、[[Special:UserLogout|ログアウト]]してからログインし直してください。",
-'session_fail_preview_html' => "'''申し訳ありません! セッション データが消失したため編集を処理できませんでした。'''
+それでも失敗する場合、[[Special:UserLogout|ログアウト]]してからログインし直してください。',
+'session_fail_preview_html' => '<strong>申し訳ありません! セッション データが消失したため編集を処理できませんでした。</strong>
 
-''{{SITENAME}}では生のHTMLが有効であり、JavaScriptでの攻撃を予防するためにプレビューを表示していません。''
+<em>{{SITENAME}}では生のHTMLが有効であり、JavaScriptでの攻撃を予防するためにプレビューを表示していません。</em>
 
-'''この編集が問題ない場合はもう一度保存してください。'''
-それでもうまくいかない場合は一度[[Special:UserLogout|ログアウト]]して、ログインし直してみてください。",
-'token_suffix_mismatch' => "'''ご使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。'''
+<strong>この編集が問題ない場合はもう一度保存してください。</strong>
+それでもうまくいかない場合は一度[[Special:UserLogout|ログアウト]]して、ログインし直してみてください。',
+'token_suffix_mismatch' => '<strong>ご使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。</strong>
 ページ本文の破損を防ぐため、編集は反映されません。
-問題のある匿名プロキシ サービスを使用していると、これが発生する場合があります。",
-'edit_form_incomplete' => "'''編集フォームの一部がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。'''",
+問題のある匿名プロキシ サービスを使用していると、これが発生する場合があります。',
+'edit_form_incomplete' => '<strong>編集フォームの一部がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。</strong>',
 'editing' => '「$1」を編集中',
 'creating' => '「$1」を作成中',
 'editingsection' => '「$1」を編集中 (節単位)',
 'editingcomment' => '「$1」を編集中 (新しい節)',
 'editconflict' => '編集競合: $1',
-'explainconflict' => "このページを編集し始めた後に、他の誰かがこのページを変更しました。
+'explainconflict' => 'このページを編集し始めた後に、他の誰かがこのページを変更しました。
 上側のテキスト領域は現在の最新の状態です。
 編集していた文章は下側のテキスト領域に示されています。
 編集していた文章を、上側のテキスト領域の、既存の文章に組み込んでください。
-上側のテキスト領域の内容'''だけ'''が、「{{int:savearticle}}」をクリックした時に実際に保存されます。",
+上側のテキスト領域の内容<strong>だけ</strong>が、「{{int:savearticle}}」をクリックした時に実際に保存されます。',
 'yourtext' => '編集中の文章',
 'storedversion' => '保存された版',
-'nonunicodebrowser' => "'''警告: ご使用中のブラウザーは Unicode に未対応です。'''
-安全にページを編集する回避策を表示しています: 編集ボックス内の非 ASCII 文字を 16 進数コードで表現しています。",
-'editingold' => "'''警告: このページの古い版を編集しています。'''
-保存すると、この版以降になされた変更がすべて失われます。",
+'nonunicodebrowser' => '<strong>警告: ご使用中のブラウザーは Unicode に未対応です。</strong>
+安全にページを編集する回避策を表示しています: 編集ボックス内の非 ASCII 文字を 16 進数コードで表現しています。',
+'editingold' => '<strong>警告: このページの古い版を編集しています。</strong>
+保存すると、この版以降になされた変更がすべて失われます。',
 'yourdiff' => '差分',
-'copyrightwarning' => "{{SITENAME}}への投稿は、すべて$2 (詳細は$1を参照) のもとで公開したと見なされることにご注意ください。
+'copyrightwarning' => '{{SITENAME}}への投稿は、すべて$2 (詳細は$1を参照) のもとで公開したと見なされることにご注意ください。
 あなたが投稿したものを、他人がよって遠慮なく編集し、それを自由に配布するのを望まない場合は、ここには投稿しないでください。<br />
 また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
-'''著作権保護されている作品を、許諾なしに投稿しないでください!'''",
-'copyrightwarning2' => "{{SITENAME}}へのすべての投稿は、他の利用者によって編集、変更、除去される場合があります。
+<strong>著作権保護されている作品を、許諾なしに投稿しないでください!</strong>',
+'copyrightwarning2' => '{{SITENAME}}へのすべての投稿は、他の利用者によって編集、変更、除去される場合があります。
 あなたの投稿を、他人が遠慮なく編集するのを望まない場合は、ここには投稿しないでください。<br />
 また、投稿するのは、あなたが書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください (詳細は$1を参照)。
-'''著作権保護されている作品を、許諾なしに投稿してはいけません!'''",
-'longpageerror' => "'''エラー: 投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。'''
-この編集内容は保存できません。",
-'readonlywarning' => "'''警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。'''
+<strong>著作権保護されている作品を、許諾なしに投稿してはいけません!</strong>',
+'longpageerror' => '<strong>エラー: 投稿された文章は {{PLURAL:$1|$1 KB}} の長さがあります。これは投稿できる最大の長さ {{PLURAL:$2|$2 KB}} を超えています。</strong>
+この編集内容は保存できません。',
+'readonlywarning' => '<strong>警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。</strong>
 必要であれば文章をコピー&amp;ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
 
-データベースをロックした管理者による説明は以下の通りです: $1",
-'protectedpagewarning' => "'''警告: このページは保護されているため、管理者権限を持つ利用者のみが編集できます。'''
-参考として以下に最後の記録を表示します:",
-'semiprotectedpagewarning' => "'''注意:''' このページは保護されているため、登録利用者のみが編集できます。
-参考として以下に最後の記録を表示します:",
-'cascadeprotectedwarning' => "'''警告:''' このページはカスケード保護されている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、管理者権限を持つ利用者のみが編集できるように保護されています:",
-'titleprotectedwarning' => "'''警告: このページは保護されているため、作成には[[Special:ListGroupRights|特定の権限]]が必要です。'''
-参考として以下に最後の記録を表示します:",
+データベースをロックした管理者による説明は以下の通りです: $1',
+'protectedpagewarning' => '<strong>警告: このページは保護されているため、管理者権限を持つ利用者のみが編集できます。</strong>
+参考として以下に最後の記録を表示します:',
+'semiprotectedpagewarning' => '<strong>注意:</strong> このページは保護されているため、登録利用者のみが編集できます。
+参考として以下に最後の記録を表示します:',
+'cascadeprotectedwarning' => '<strong>警告:</strong> このページはカスケード保護されている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、管理者権限を持つ利用者のみが編集できるように保護されています:',
+'titleprotectedwarning' => '<strong>警告: このページは保護されているため、作成には[[Special:ListGroupRights|特定の権限]]が必要です。</strong>
+参考として以下に最後の記録を表示します:',
 'templatesused' => 'このページで使用されている{{PLURAL:$1|テンプレート}}:',
 'templatesusedpreview' => 'このプレビューで使用されている{{PLURAL:$1|テンプレート}}:',
 'templatesusedsection' => 'この節で使用されている{{PLURAL:$1|テンプレート}}:',
@@ -1212,10 +1215,10 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'permissionserrors' => '権限エラー',
 'permissionserrorstext' => 'あなたにはこの操作を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
 'permissionserrorstext-withaction' => 'あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
-'recreate-moveddeleted-warn' => "'''警告: 以前削除されたページを再作成しようとしています。'''
+'recreate-moveddeleted-warn' => '<strong>警告: 以前削除されたページを再作成しようとしています。</strong>
 
 このページの編集を続行するのが適切かどうかご確認ください。
-参考までに、このページの削除と移動の記録を以下に示します:",
+参考までに、このページの削除と移動の記録を以下に示します:',
 'moveddeleted-notice' => 'このページは削除されています。
 参考のため、このページの削除と移動の記録を以下に表示します。',
 'log-fulllog' => '完全な記録を閲覧',
@@ -1244,15 +1247,15 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
-'expensive-parserfunction-warning' => "'''警告:''' このページでは、高負荷なパーサー関数の呼び出し回数が多過ぎます。
+'expensive-parserfunction-warning' => '<strong>警告:</strong> このページでは、高負荷なパーサー関数の呼び出し回数が多過ぎます。
 
-{{PLURAL:$2|呼び出しを $2 回}}未満にしてください ({{PLURAL:$1|現在は $1 回}})。",
+{{PLURAL:$2|呼び出しを $2 回}}未満にしてください ({{PLURAL:$1|現在は $1 回}})。',
 'expensive-parserfunction-category' => '高負荷な構文解析関数の呼び出しが多過ぎるページ',
-'post-expand-template-inclusion-warning' => "'''警告:''' テンプレートの読み込みサイズが大き過ぎます。
-いくつかのテンプレートは読み込まれません。",
+'post-expand-template-inclusion-warning' => '<strong>警告:</strong> テンプレートの読み込みサイズが大き過ぎます。
+いくつかのテンプレートは読み込まれません。',
 'post-expand-template-inclusion-category' => 'テンプレート読み込みサイズが制限値を越えているページ',
-'post-expand-template-argument-warning' => "'''警告:''' このページは、展開後のサイズが大きすぎるテンプレート引数を少なくとも 1 つ含んでいます。
-これらの引数を省略しました。",
+'post-expand-template-argument-warning' => '<strong>警告:</strong> このページは、展開後のサイズが大きすぎるテンプレート引数を少なくとも 1 つ含んでいます。
+これらの引数を省略しました。',
 'post-expand-template-argument-category' => '省略されたテンプレート引数を含むページ',
 'parser-template-loop-warning' => 'テンプレートのループを検出しました: [[$1]]',
 'parser-template-recursion-depth-warning' => 'テンプレートの再帰の深さ ($1) が上限を超えました',
@@ -1275,9 +1278,9 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 
 # Account creation failure
 'cantcreateaccounttitle' => 'アカウントを作成できません',
-'cantcreateaccount-text' => "この IP アドレス ('''$1''') からのアカウント作成は、[[User:$3|$3]] によってブロックされています。
+'cantcreateaccount-text' => 'この IP アドレス (<strong>$1</strong>) からのアカウント作成は、[[User:$3|$3]] によってブロックされています。
 
-$3 が示した理由: ''$2''",
+$3 が示した理由: <em>$2</em>',
 'cantcreateaccount-range-text' => "この IP アドレス ('''$4''') を含む、IP アドレス範囲 '''$1''' からのアカウント作成は、[[User:$3|$3]] によってブロックされています。
 
 $3 が示した理由: ''$2''",
@@ -1297,8 +1300,8 @@ $3 が示した理由: ''$2''",
 'last' => '前',
 'page_first' => '先頭',
 'page_last' => '末尾',
-'histlegend' => "差分の選択: 比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。<br />
-凡例: '''({{int:cur}})'''=最新版との比較、'''({{int:last}})'''=直前の版との比較、'''{{int:minoreditletter}}'''=細部の編集",
+'histlegend' => '差分の選択: 比較したい版のラジオボタンを選択し、Enterキーを押すか、下部のボタンを押します。<br />
+凡例: <strong>({{int:cur}})</strong>=最新版との比較、<strong>({{int:last}})</strong>=直前の版との比較、<strong>{{int:minoreditletter}}</strong>=細部の編集',
 'history-fieldset-title' => '履歴の閲覧',
 'history-show-deleted' => '削除済みのみ',
 'histfirst' => '最古',
@@ -1319,31 +1322,31 @@ $3 が示した理由: ''$2''",
 'rev-deleted-user' => '(利用者名は除去されています)',
 'rev-deleted-event' => '(記録は除去されています)',
 'rev-deleted-user-contribs' => '[利用者名またはIPアドレスは除去されました - その編集は投稿記録で非表示にされています]',
-'rev-deleted-text-permission' => "この版は'''削除されています'''
-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-deleted-text-unhide' => "この版は'''削除されています'''
+'rev-deleted-text-permission' => 'この版は<strong>削除されています</strong>
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-deleted-text-unhide' => 'この版は<strong>削除されています</strong>
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。
-このまま[$1 この版を閲覧]できます。",
-'rev-suppressed-text-unhide' => "この版は'''秘匿されています'''
+このまま[$1 この版を閲覧]できます。',
+'rev-suppressed-text-unhide' => 'この版は<strong>秘匿されています</strong>
 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。
-このまま[$1 この版を閲覧]できます。",
-'rev-deleted-text-view' => "この版は'''削除されています'''
-内容を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-suppressed-text-view' => "この版は'''秘匿されています'''
-内容を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。",
-'rev-deleted-no-diff' => "どちらかの版が'''削除されているため'''、差分表示できません。
-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-suppressed-no-diff' => "どちらかの版が'''削除されているため'''、差分表示できません。",
-'rev-deleted-unhide-diff' => "この差分の一方の版は'''削除されています'''
+このまま[$1 この版を閲覧]できます。',
+'rev-deleted-text-view' => 'この版は<strong>削除されています</strong>
+内容を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-suppressed-text-view' => 'この版は<strong>秘匿されています</strong>
+内容を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。',
+'rev-deleted-no-diff' => 'どちらかの版が<strong>削除されているため</strong>、差分表示できません。
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-suppressed-no-diff' => 'どちらかの版が<strong>削除されているため</strong>、差分表示できません。',
+'rev-deleted-unhide-diff' => 'この差分の一方の版は<strong>削除されています</strong>
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。
-このまま[$1 この差分を閲覧]できます。",
-'rev-suppressed-unhide-diff' => "この差分の一方の版は'''秘匿されています'''
+このまま[$1 この差分を閲覧]できます。',
+'rev-suppressed-unhide-diff' => 'この差分の一方の版は<strong>秘匿されています</strong>
 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。
-このまま[$1 この差分を閲覧]できます。",
-'rev-deleted-diff-view' => "この差分の一方の版は'''削除されています'''
-この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。",
-'rev-suppressed-diff-view' => "この差分の一方の版は'''秘匿されています'''
-この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。",
+このまま[$1 この差分を閲覧]できます。',
+'rev-deleted-diff-view' => 'この差分の一方の版は<strong>削除されています</strong>
+この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 削除記録]に詳細情報があるかもしれません。',
+'rev-suppressed-diff-view' => 'この差分の一方の版は<strong>秘匿されています</strong>
+この差分を閲覧できます。[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 秘匿記録]に詳細情報があるかもしれません。',
 'rev-delundel' => '表示/非表示',
 'rev-showdeleted' => '表示',
 'revisiondelete' => '版の削除と復元',
@@ -1352,15 +1355,15 @@ $3 が示した理由: ''$2''",
 'revdelete-no-file' => '指定されたファイルは存在しません。',
 'revdelete-show-file-confirm' => 'ファイル「<nowiki>$1</nowiki>」の削除された$2$3の版を本当に閲覧しますか?',
 'revdelete-show-file-submit' => 'はい',
-'revdelete-selected' => "'''[[:$1]] の{{PLURAL:$2|選択された版}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|選択された記録項目}}:'''",
-'revdelete-text' => "'''削除された版や記録項目は引き続きページの履歴や記録に表示されますが、一般利用者はその内容の一部を取得できなくなります。'''
-追加の制限がかけられない限り、{{SITENAME}}の他の管理者は同じインターフェイスを使って非表示の内容の取得や復元ができます。",
+'revdelete-selected' => '<strong>[[:$1]] の{{PLURAL:$2|選択された版}}:</strong>',
+'logdelete-selected' => '<strong>{{PLURAL:$1|選択された記録項目}}:</strong>',
+'revdelete-text' => '<strong>削除された版や記録項目は引き続きページの履歴や記録に表示されますが、一般利用者はその内容の一部を取得できなくなります。</strong>
+追加の制限がかけられない限り、{{SITENAME}}の他の管理者は同じインターフェイスを使って非表示の内容の取得や復元ができます。',
 'revdelete-confirm' => 'この操作を行おうとしていること、その結果を理解していること、[[{{MediaWiki:Policy-url}}|方針]]に従っていること、を確認してください。',
-'revdelete-suppress-text' => "秘匿は、'''以下の場合に限って'''使用すべきです:
+'revdelete-suppress-text' => '秘匿は、<strong>以下の場合に限って</strong>使用すべきです:
 * 名誉毀損のおそれがある記述
 * 非公開個人情報
-*: ''自宅の住所、電話番号、個人を識別できる公的な番号など''",
+*: <em>自宅の住所、電話番号、個人を識別できる公的な番号など</em>',
 'revdelete-legend' => '閲覧レベル制限を設定',
 'revdelete-hide-text' => '版の本文',
 'revdelete-hide-image' => 'ファイル内容を隠す',
@@ -1375,12 +1378,12 @@ $3 が示した理由: ''$2''",
 'revdelete-unsuppress' => '復元版に対する制限を除去',
 'revdelete-log' => '理由:',
 'revdelete-submit' => '選択された{{PLURAL:$1|版}}に適用',
-'revdelete-success' => "'''版の閲覧レベルを更新しました。'''",
-'revdelete-failure' => "'''版の閲覧レベルを更新できませんでした:'''
-$1",
-'logdelete-success' => "'''記録の閲覧レベルを変更しました。'''",
-'logdelete-failure' => "'''記録の閲覧レベルを設定できませんでした。'''
-$1",
+'revdelete-success' => '<strong>版の閲覧レベルを更新しました。</strong>',
+'revdelete-failure' => '<strong>版の閲覧レベルを更新できませんでした:</strong>
+$1',
+'logdelete-success' => '<strong>記録の閲覧レベルを変更しました。</strong>',
+'logdelete-failure' => '<strong>記録の閲覧レベルを設定できませんでした。</strong>
+$1',
 'revdel-restore' => '閲覧レベルを変更',
 'pagehist' => 'ページの履歴',
 'deletedhist' => '削除された履歴',
@@ -1391,7 +1394,7 @@ $1",
 'revdelete-modify-no-access' => '$1$2の項目の修正に失敗しました: この項目には「制限付き」の印が付いています。
 アクセス権限がありません。',
 'revdelete-modify-missing' => '版 ID $1 の項目の変更に失敗しました: データベース内にありません!',
-'revdelete-no-change' => "'''警告:''' $1$2の項目には要求された閲覧レベルが既に設定されています。",
+'revdelete-no-change' => '<strong>警告:</strong> $1$2の項目には要求された閲覧レベルが既に設定されています。',
 'revdelete-concurrent-change' => '$1$2の項目の変更に失敗しました: あなたが変更しようとしている間に、他の誰かが変更したようです。
 記録を確認してください。',
 'revdelete-only-restricted' => '$1$2の項目の版指定削除に失敗しました: 他の閲覧レベルの選択肢のうちどれかをさらに選択しなければ、管理者から項目を秘匿できません。',
@@ -1471,8 +1474,8 @@ $1",
 'nextn-title' => '次の{{PLURAL:$1|$1件}}',
 'shown-title' => 'ページあたり{{PLURAL:$1|$1件の結果}}を表示',
 'viewprevnext' => '($1{{int:pipe-separator}}$2) ($3 件) を表示',
-'searchmenu-exists' => "'''このウィキには「[[:$1]]」という名前のページがあります。'''{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}",
-'searchmenu-new' => "'''このウィキでページ「[[:$1]]」を新規作成しましょう。'''{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}",
+'searchmenu-exists' => '<strong>このウィキには「[[:$1]]」という名前のページがあります。</strong>{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}',
+'searchmenu-new' => '<strong>このウィキでページ「[[:$1]]」を新規作成しましょう。</strong>{{PLURAL:$2|0=|検索で見つかった他のページも参照してください。}}',
 'searchprofile-articles' => '本文ページ',
 'searchprofile-project' => 'ヘルプとプロジェクトページ',
 'searchprofile-images' => 'マルチメディア',
@@ -1497,9 +1500,9 @@ $1",
 'searcheverything-enable' => 'すべての名前空間を検索',
 'searchrelated' => '関連',
 'searchall' => 'すべて',
-'showingresults' => "'''$2''' 件目以降の最大 {{PLURAL:$1|'''$1''' 件の結果}}を表示しています。",
-'showingresultsnum' => "'''$2''' 件目以降の {{PLURAL:$3|'''$3''' 件の結果}}を表示しています。",
-'showingresultsheader' => "「'''$4'''」の検索結果 {{PLURAL:$5|'''$3''' 件中の '''$1''' 件目|'''$3''' 件中の '''$1''' 件目から '''$2''' 件目}}",
+'showingresults' => '<strong>$2</strong> 件目以降の最大 {{PLURAL:$1|<strong>$1</strong> 件の結果}}を表示しています。',
+'showingresultsnum' => '<strong>$2</strong> 件目以降の {{PLURAL:$3|<strong>$3</strong> 件の結果}}を表示しています。',
+'showingresultsheader' => '「<strong>$4</strong>」の検索結果 {{PLURAL:$5|<strong>$3</strong> 件中の <strong>$1</strong> 件目|<strong>$3</strong> 件中の <strong>$1</strong> 件目から <strong>$2</strong> 件目}}',
 'search-nonefound' => '問い合わせに合致する検索結果はありませんでした。',
 'powersearch-legend' => '高度な検索',
 'powersearch-ns' => '名前空間を指定して検索:',
@@ -1643,7 +1646,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'userrights-lookup-user' => '利用者グループを管理',
 'userrights-user-editname' => '利用者名を入力:',
 'editusergroup' => '利用者グループを編集',
-'editinguser' => "利用者''' [[User:$1|$1]]''' $2 の権限を変更",
+'editinguser' => '利用者<strong> [[User:$1|$1]]</strong> $2 の権限を変更',
 'userrights-editusergroup' => '利用者グループを編集',
 'saveusergroups' => '利用者グループを保存',
 'userrights-groupsmember' => '所属グループ:',
@@ -1823,8 +1826,8 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'recentchanges-label-plusminus' => 'ページ サイズの増減 (バイト単位)',
 'recentchanges-legend-heading' => "'''凡例:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|新しいページ一覧]]も参照)',
-'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "以下は'''$2'''以降の更新です (最大 '''$1''' 件)。",
+'recentchanges-legend-plusminus' => '(<em>±123</em>)',
+'rcnotefrom' => '以下は<strong>$2</strong>以降の更新です (最大 <strong>$1</strong> 件)。',
 'rclistfrom' => '$1以降の更新を表示する',
 'rcshowhideminor' => '細部の編集を$1',
 'rcshowhidebots' => 'ボットを$1',
@@ -1856,8 +1859,8 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'recentchangeslinked-feed' => '関連ページの更新状況',
 'recentchangeslinked-toolbox' => '関連ページの更新状況',
 'recentchangeslinked-title' => '「$1」と関連する変更',
-'recentchangeslinked-summary' => "これは指定したページからリンクされている (または指定したカテゴリに含まれている) ページの最近の変更の一覧です。
-[[Special:Watchlist|自分のウォッチリスト]]にあるページは'''太字'''で表示されます。",
+'recentchangeslinked-summary' => 'これは指定したページからリンクされている (または指定したカテゴリに含まれている) ページの最近の変更の一覧です。
+[[Special:Watchlist|自分のウォッチリスト]]にあるページは<strong>太字</strong>で表示されます。',
 'recentchangeslinked-page' => 'ページ名:',
 'recentchangeslinked-to' => 'このページへのリンク元での変更の表示に切り替え',
 
@@ -1871,17 +1874,17 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'upload_directory_missing' => 'アップロード先ディレクトリ ($1) が見つかりませんでした。ウェブ サーバーによる作成もできませんでした。',
 'upload_directory_read_only' => 'アップロード先ディレクトリ ($1) には、ウェブサーバーが書き込めません。',
 'uploaderror' => 'アップロードのエラー',
-'upload-recreate-warning' => "'''警告: その名前のファイルは、以前に削除または移動されています。'''
+'upload-recreate-warning' => '<strong>警告: その名前のファイルは、以前に削除または移動されています。</strong>
 
-参考のため、このページの削除と移動の記録を以下に示します:",
-'uploadtext' => "ファイルをアップロードするには、以下のフォームを使用してください。
+参考のため、このページの削除と移動の記録を以下に示します:',
+'uploadtext' => 'ファイルをアップロードするには、以下のフォームを使用してください。
 
 以前にアップロードされたファイルの表示と検索には[[Special:FileList|{{int:listfiles}}]]を使用してください。(再) アップロードは[[Special:Log/upload|アップロード記録]]に、削除は[[Special:Log/delete|削除記録]]にも記録されます。
 
 ページにファイルを入れるには、以下の書式のリンクを使用してください:
-* '''<code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></code>''' とすると、ファイルが完全なままで使用されます。
-* '''<code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></code>''' とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。
-* '''<code><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></code>''' とすると、ファイルを表示せずにそのファイルに直接リンクします。",
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></code></strong> とすると、ファイルが完全なままで使用されます。
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></code></strong> とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。
+* <strong><code><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></code></strong> とすると、ファイルを表示せずにそのファイルに直接リンクします。',
 'upload-permitted' => '許可されているファイル形式: $1。',
 'upload-preferred' => '推奨されているファイル形式: $1。',
 'upload-prohibited' => '禁止されているファイル形式: $1。',
@@ -1906,10 +1909,10 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'filetype-mime-mismatch' => 'ファイルの拡張子「$1」がMIMEタイプ「$2」と一致しません。',
 'filetype-badmime' => 'MIMEタイプ「$1」のファイルのアップロードは許可されていません。',
 'filetype-bad-ie-mime' => '許可されていない潜在的危険性のあるファイル形式「$1」としてInternet Explorerに認識されてしまうため、このファイルをアップロードできません。',
-'filetype-unwanted-type' => "'''「.$1」'''は好ましくないファイル形式です。
-推奨される{{PLURAL:$3|ファイル形式}}は $2 です。",
-'filetype-banned-type' => "'''「.$1」''' は許可されていないファイル形式です{{PLURAL:$4|}}。
-許可されているファイル形式{{PLURAL:$3|}}は$2です。",
+'filetype-unwanted-type' => '<strong>「.$1」</strong>は好ましくないファイル形式です。
+推奨される{{PLURAL:$3|ファイル形式}}は $2 です。',
+'filetype-banned-type' => '<strong>「.$1」</strong> は許可されていないファイル形式です{{PLURAL:$4|}}。
+許可されているファイル形式{{PLURAL:$3|}}は$2です。',
 'filetype-missing' => 'ファイル名に「.jpg」のような拡張子がありません。',
 'empty-file' => '送信されたファイルは空でした。',
 'file-too-large' => '送信されたファイルは大きすぎます。',
@@ -1939,13 +1942,13 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 * アップロード中のファイルの名前: <strong>[[:$1]]</strong>
 * 既存ファイルの名前: <strong>[[:$2]]</strong>
 違う名前を選択してください。',
-'fileexists-thumbnail-yes' => "このファイルは元の画像から縮小されたもの ''(サムネイル)'' のようです。
+'fileexists-thumbnail-yes' => 'このファイルは元の画像から縮小されたもの <em>(サムネイル)</em> のようです。
 [[$1|thumb]]
 ファイル <strong>[[:$1]]</strong> を確認してください。
-確認したファイルが同じ画像の元のサイズの版の場合は、サムネイルを別途アップロードする必要はありません。",
-'file-thumbnail-no' => "ファイル名が <strong>$1</strong> で始まっています。
-他の画像から縮小されたもの ''(サムネイル)'' のようです。
-より高精細な画像をお持ちの場合はそれをアップロードしてください。お持ちではない場合はファイル名を変更してください。",
+確認したファイルが同じ画像の元のサイズの版の場合は、サムネイルを別途アップロードする必要はありません。',
+'file-thumbnail-no' => 'ファイル名が <strong>$1</strong> で始まっています。
+他の画像から縮小されたもの <em>(サムネイル)</em> のようです。
+より高精細な画像をお持ちの場合はそれをアップロードしてください。お持ちではない場合はファイル名を変更してください。',
 'fileexists-forbidden' => 'この名前のファイルは既に存在しており、上書きできません。
 アップロードを継続したい場合は、前のページに戻り、別のファイル名を使用してください。
 [[File:$1|thumb|center|$1]]',
@@ -1983,8 +1986,8 @@ file_uploadsの設定を確認してください。',
 'watchthisupload' => 'このファイルをウォッチ',
 'filewasdeleted' => 'この名前のファイルは一度アップロードされ、その後削除されています。
 再度アップロードする前に$1を確認してください。',
-'filename-bad-prefix' => "アップロードしようとしているファイルの名前が'''「$1」'''から始まっていますが、これはデジタルカメラによって自動的に付与されるような具体性を欠いた名前です。
-ファイルの内容をより具体的に説明する名前を使用してください。",
+'filename-bad-prefix' => 'アップロードしようとしているファイルの名前が<strong>「$1」</strong>から始まっていますが、これはデジタルカメラによって自動的に付与されるような具体性を欠いた名前です。
+ファイルの内容をより具体的に説明する名前を使用してください。',
 'filename-prefix-blacklist' => ' #<!-- この行はそのままにしておいてください --> <pre>
 # 構文は以下の通り:
 #   * "#" 記号から行末まではすべてがコメント
@@ -2041,7 +2044,7 @@ $1',
 'backend-fail-read' => 'ファイル「$1」から読み取れませんでした。',
 'backend-fail-create' => 'ファイル「$1」に書き込めませんでした。',
 'backend-fail-maxsize' => 'サイズが {{PLURAL:$2|$2 バイト}}を超えているため、ファイル「$1」に書き込めませんでした。',
-'backend-fail-readonly' => "ストレージバックエンド「$1」は現在読み取り専用です。理由:「''$2''」",
+'backend-fail-readonly' => 'ストレージバックエンド「$1」は現在読み取り専用です。理由:「<em>$2</em>」',
 'backend-fail-synced' => 'ファイル「$1」は、ストレージバックエンド内部で不一致の状態にあります',
 'backend-fail-connect' => 'ストレージバックエンド「$1」に接続できませんでした。',
 'backend-fail-internal' => 'ストレージバックエンド「$1」内で不明なエラーが発生しました。',
@@ -2191,24 +2194,24 @@ $1での[$2 ファイル解説ページ]にある説明を編集した方がい
 # File reversion
 'filerevert' => '$1を差し戻す',
 'filerevert-legend' => 'ファイルを差し戻す',
-'filerevert-intro' => "ファイル'''[[Media:$1|$1]]'''を[$4 $2$3版]に差し戻そうとしています。",
+'filerevert-intro' => 'ファイル<strong>[[Media:$1|$1]]</strong>を[$4 $2$3版]に差し戻そうとしています。',
 'filerevert-comment' => '理由:',
 'filerevert-defaultcomment' => '$1$2の版へ差し戻し',
 'filerevert-submit' => '差し戻す',
-'filerevert-success' => "'''[[Media:$1|$1]]'''は[$4 $2$3の版]に差し戻されました。",
+'filerevert-success' => '<strong>[[Media:$1|$1]]</strong>は[$4 $2$3の版]に差し戻されました。',
 'filerevert-badversion' => 'このファイルに指定された時刻印を持つ過去の版はありません。',
 
 # File deletion
 'filedelete' => '$1の削除',
 'filedelete-legend' => 'ファイルの削除',
-'filedelete-intro' => "'''[[Media:$1|$1]]'''をすべての履歴とともに削除しようとしています。",
-'filedelete-intro-old' => "'''[[Media:$1|$1]]'''の[$4 $2$3の版]を削除しようとしています。",
+'filedelete-intro' => '<strong>[[Media:$1|$1]]</strong>をすべての履歴とともに削除しようとしています。',
+'filedelete-intro-old' => '<strong>[[Media:$1|$1]]</strong>の[$4 $2$3の版]を削除しようとしています。',
 'filedelete-comment' => '理由:',
 'filedelete-submit' => '削除',
-'filedelete-success' => "'''$1''' を削除しました。",
-'filedelete-success-old' => "'''[[Media:$1|$1]]'''の$2$3の版を削除しました。",
-'filedelete-nofile' => "'''$1'''は存在しません。",
-'filedelete-nofile-old' => "指定された属性を持つ'''$1'''の古い版は存在しません。",
+'filedelete-success' => '<strong>$1</strong> を削除しました。',
+'filedelete-success-old' => '<strong>[[Media:$1|$1]]</strong>の$2$3の版を削除しました。',
+'filedelete-nofile' => '<strong>$1</strong>は存在しません。',
+'filedelete-nofile-old' => '指定された属性を持つ<strong>$1</strong>の古い版は存在しません。',
 'filedelete-otherreason' => '他の、または追加の理由:',
 'filedelete-reason-otherlist' => 'その他の理由',
 'filedelete-reason-dropdown' => '*よくある削除理由
@@ -2534,12 +2537,12 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'notvisiblerev' => '別の利用者による最終版は削除されました',
 'watchlist-details' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています (トークページを除く)。',
 'wlheader-enotif' => 'メール通知が有効になっています。',
-'wlheader-showupdated' => "最終訪問以降に変更されたページは、'''太字'''で表示されます。",
+'wlheader-showupdated' => '最終訪問以降に変更されたページは、<strong>太字</strong>で表示されます。',
 'watchmethod-recent' => '最近の更新内のウォッチされているページを確認中',
 'watchmethod-list' => 'ウォッチされているページ内の最近の更新を確認中',
 'watchlistcontains' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています。',
 'iteminvalidname' => '項目「$1」には問題があります。名前が無効です...',
-'wlnote' => "$3 $4 までの{{PLURAL:$2|'''$2'''時間}}になされた{{PLURAL:$1|'''$1'''件の変更}}は以下の通りです。",
+'wlnote2' => '以下は $2 $3 までの {{PLURAL:$1|<strong>$1</strong> 時間}}でなされた変更です。',
 'wlshowlast' => '次の期間で表示: $1時間、$2日間、$3',
 'watchlist-options' => 'ウォッチリストのオプション',
 
@@ -2602,7 +2605,7 @@ $UNWATCHURL
 'exblank' => '白紙ページ',
 'delete-confirm' => '「$1」の削除',
 'delete-legend' => '削除',
-'historywarning' => "'''警告:''' 削除しようとしているページには、約$1版の履歴があります:",
+'historywarning' => '<strong>警告:</strong> 削除しようとしているページには、約$1版の履歴があります:',
 'confirmdeletetext' => 'ページをすべての履歴とともに削除しようとしています。
 本当にこの操作を行いたいか、操作の結果を理解しているか、およびこの操作が[[{{MediaWiki:Policy-url}}|方針]]に従っているかどうか、確認してください。',
 'actioncomplete' => '操作を完了しました',
@@ -2676,13 +2679,13 @@ $2による直前の版へ変更されました。',
 'protect_expiry_invalid' => '有効期間が正しくありません。',
 'protect_expiry_old' => '有効期限が過去の時刻です。',
 'protect-unchain-permissions' => '追加保護オプションをロック解除',
-'protect-text' => "ここでは、ページ '''$1''' に対する保護レベルの表示と操作ができます。",
-'protect-locked-blocked' => "ブロックされている間は、保護レベルを変更できません。
-ページ '''$1''' の現在の状態は以下の通りです:",
-'protect-locked-dblock' => "データベースのロックが有効なため、保護レベルを変更できません。
-ページ '''$1''' の現在の状態は以下の通りです:",
-'protect-locked-access' => "アカウントに、ページの保護レベルを変更する権限がありません。
-ページ '''$1''' の現在の状態は以下の通りです:",
+'protect-text' => 'ここでは、ページ <strong>$1</strong> に対する保護レベルの表示と操作ができます。',
+'protect-locked-blocked' => 'ブロックされている間は、保護レベルを変更できません。
+ページ <strong>$1</strong> の現在の状態は以下の通りです:',
+'protect-locked-dblock' => 'データベースのロックが有効なため、保護レベルを変更できません。
+ページ <strong>$1</strong> の現在の状態は以下の通りです:',
+'protect-locked-access' => 'アカウントに、ページの保護レベルを変更する権限がありません。
+ページ <strong>$1</strong> の現在の状態は以下の通りです:',
 'protect-cascadeon' => 'このページは現在、カスケード保護が有効になっている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、保護されています。
 このページの保護レベルを変更できますが、カスケード保護には影響しません。',
 'protect-default' => 'すべての利用者に許可',
@@ -2728,13 +2731,13 @@ $2による直前の版へ変更されました。',
 # Undelete
 'undelete' => '削除されたページを表示',
 'undeletepage' => '削除されたページの表示と復元',
-'undeletepagetitle' => "'''以下は[[:$1|$1]]の削除された版です'''。",
+'undeletepagetitle' => '<strong>以下は[[:$1|$1]]の削除された版です</strong>。',
 'viewdeletedpage' => '削除されたページを表示',
 'undeletepagetext' => '以下の{{PLURAL:$1|削除されたページ|​&#32;$1 件の削除されたページ}}は、保存版に残っているため復元できます。
 保存版は定期的に消去される可能性があります。',
 'undelete-fieldset-title' => '削除された版の復元',
-'undeleteextrahelp' => "すべての版を復元する場合は、どのボックスにもチェックを入れていない状態で'''''{{int:undeletebtn}}'''''をクリックしてください。
-特定の版を復元する場合は、復元する版のボックスにチェックを入れた状態で'''''{{int:undeletebtn}}'''''をクリックしてください。",
+'undeleteextrahelp' => 'すべての版を復元する場合は、どのボックスにもチェックを入れていない状態で<strong><em>{{int:undeletebtn}}</em></strong>をクリックしてください。
+特定の版を復元する場合は、復元する版のボックスにチェックを入れた状態で<strong><em>{{int:undeletebtn}}</em></strong>をクリックしてください。',
 'undeleterevisions' => '保存版に$1{{PLURAL:$1|版}}あります',
 'undeletehistory' => 'ページを復元すると、すべての版が履歴に復元されます。
 削除後に同じ名前で新しいページが作成されている場合、復元された版はそれに先行する履歴として表示されます。',
@@ -2757,9 +2760,9 @@ $2による直前の版へ変更されました。',
 'undeletedfiles' => '{{PLURAL:$1|$1ファイル}}を復元しました',
 'cannotundelete' => '復元に失敗しました:
 $1',
-'undeletedpage' => "'''$1を復元しました。'''
+'undeletedpage' => '<strong>$1を復元しました。</strong>
 
-最近の削除と復元の記録については[[Special:Log/delete|削除記録]]を参照してください。",
+最近の削除と復元の記録については[[Special:Log/delete|削除記録]]を参照してください。',
 'undelete-header' => '最近削除されたページは[[Special:Log/delete|削除記録]]で確認できます。',
 'undelete-search-title' => '削除されたページの検索',
 'undelete-search-box' => '削除されたページの検索',
@@ -2819,9 +2822,9 @@ $1',
 'whatlinkshere' => 'リンク元',
 'whatlinkshere-title' => '「$1」へリンクしているページ',
 'whatlinkshere-page' => 'ページ:',
-'linkshere' => "以下のページが、'''[[:$1]]''' にリンクしています:",
-'nolinkshere' => "'''[[:$1]]''' にリンクしているページはありません。",
-'nolinkshere-ns' => "指定した名前空間内に、'''[[:$1]]''' にリンクしているページはありません。",
+'linkshere' => '以下のページが、<strong>[[:$1]]</strong> にリンクしています:',
+'nolinkshere' => '<strong>[[:$1]]</strong> にリンクしているページはありません。',
+'nolinkshere-ns' => '指定した名前空間内に、<strong>[[:$1]]</strong> にリンクしているページはありません。',
 'isredirect' => '転送ページ',
 'istemplate' => '参照読み込み',
 'isimage' => 'ファイルへのリンク',
@@ -2914,8 +2917,8 @@ $1',
 'change-blocklink' => '設定を変更',
 'contribslink' => '投稿記録',
 'emaillink' => 'メールを送信',
-'autoblocker' => "この IP アドレスを「[[User:$1|$1]]」が最近使用したため、自動ブロックされています。
-$1 のブロックの理由は「''$2''」です。",
+'autoblocker' => 'この IP アドレスを「[[User:$1|$1]]」が最近使用したため、自動ブロックされています。
+$1 のブロックの理由は「<em>$2</em>」です。',
 'blocklogpage' => 'ブロック記録',
 'blocklog-showlog' => 'この利用者は以前にブロックされたことがあります。
 参考のため、ブロック記録を以下に示します:',
@@ -2985,36 +2988,36 @@ $1 のブロックの理由は「''$2''」です。",
 # Move page
 'move-page' => '「$1」の移動',
 'move-page-legend' => 'ページの移動',
-'movepagetext' => "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
+'movepagetext' => '下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
 移動元のページは移動先への転送ページになります。
 移動元のページへの転送ページを自動的に修正できます。
 [[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。
 リンクを正しく維持するのは移動した人の責任です。
 
-移動先のページが既に存在する場合は、その移動先が転送ページであり、かつ過去の版を持たない場合以外は移動'''できません'''
+移動先のページが既に存在する場合は、その移動先が転送ページであり、かつ過去の版を持たない場合以外は移動<strong>できません</strong>
 つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
 
-'''注意!'''
+<strong>注意!</strong>
 よく閲覧されるページや、他の多くのページからリンクされているページを移動すると予期しない結果が起こるかもしれません。
-ページの移動に伴う影響をよく考えてから踏み切るようにしてください。",
-'movepagetext-noredirectfixer' => "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
+ページの移動に伴う影響をよく考えてから踏み切るようにしてください。',
+'movepagetext-noredirectfixer' => '下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
 移動元のページは移動先への転送ページになります。
 自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重転送]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。
 つながるべき場所にリンクがつながるよう維持するのは移動した人の責任です。
 
-移動先が既に存在する場合は、そのページが転送ページであり、かつ過去の版を持たない場合を除いて移動'''できません'''
+移動先が既に存在する場合は、そのページが転送ページであり、かつ過去の版を持たない場合を除いて移動<strong>できません</strong>
 つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
 
-'''警告!'''
+<strong>警告!</strong>
 多く閲覧されるページや多くリンクされているページを移動すると、予期しない大きな変化が起こるかもしれないことにご注意ください。
-ページの移動に伴う影響をよく考えてから移動してください。",
-'movepagetalktext' => "関連付けられたトークページも一緒に、自動的に移動されます。ただし、'''以下の場合を除きます:'''
+ページの移動に伴う影響をよく考えてから移動してください。',
+'movepagetalktext' => '関連付けられたトークページも一緒に、自動的に移動されます。ただし、<strong>以下の場合を除きます:</strong>
 * 移動先に、空ではないトークページが既に存在する場合
 * 下のボックスのチェックを消した場合
 
-これらの場合、必要に応じて、トークページを移動または統合する必要があります。",
+これらの場合、必要に応じて、トークページを移動または統合する必要があります。',
 'movearticle' => '移動するページ:',
-'moveuserpage-warning' => "'''警告:''' 利用者ページを移動しようとしています。この操作ではページのみが移動され、利用者名は''変更されない''点に注意してください。",
+'moveuserpage-warning' => '<strong>警告:</strong> 利用者ページを移動しようとしています。この操作ではページのみが移動され、利用者名は<em>変更されない</em>点に注意してください。',
 'movenologintext' => 'ページを移動するためには、登録利用者でありかつ、[[Special:UserLogin|ログイン]]している必要があります。',
 'movenotallowed' => 'ページを移動する権限がありません。',
 'movenotallowedfile' => 'ファイルを移動する権限がありません。',
@@ -3024,7 +3027,7 @@ $1 のブロックの理由は「''$2''」です。",
 'move-watch' => '移動元と移動先ページをウォッチ',
 'movepagebtn' => 'ページを移動',
 'pagemovedsub' => '移動に成功しました',
-'movepage-moved' => "'''「$1」は「$2」へ移動されました'''",
+'movepage-moved' => '<strong>「$1」は「$2」へ移動されました</strong>',
 'movepage-moved-redirect' => '転送ページを作成しました。',
 'movepage-moved-noredirect' => '転送ページは作成されませんでした。',
 'articleexists' => '指定された移動先には既にページが存在するか、名前が不適切です。
@@ -3064,10 +3067,10 @@ $1 のブロックの理由は「''$2''」です。",
 'imageinvalidfilename' => '対象ファイル名が無効です',
 'fix-double-redirects' => 'このページへのリダイレクトがあればそのリダイレクトを修正',
 'move-leave-redirect' => '移動元に転送ページを作成する',
-'protectedpagemovewarning' => "'''警告:''' このページは保護されているため、管理者権限を持つ利用者のみが移動できます。
-参考として以下に最後の記録を表示します:",
-'semiprotectedpagemovewarning' => "'''注意:''' このページは保護されているため、登録利用者のみが移動できます。
-参考として以下に最後の記録を表示します:",
+'protectedpagemovewarning' => '<strong>警告:</strong> このページは保護されているため、管理者権限を持つ利用者のみが移動できます。
+参考として以下に最後の記録を表示します:',
+'semiprotectedpagemovewarning' => '<strong>注意:</strong> このページは保護されているため、登録利用者のみが移動できます。
+参考として以下に最後の記録を表示します:',
 'move-over-sharedrepo' => '== ファイルが存在します ==
 [[:$1]]は共有リポジトリ上に存在します。ファイルをこの名前に移動すると共有ファイルを上書きします。',
 'file-exists-sharedrepo' => '選ばれたファイル名は既に共有リポジトリ上で使用されています。
@@ -3083,8 +3086,8 @@ $1 のブロックの理由は「''$2''」です。",
 後者の場合ではリンクの形で使うこともできます。例えば、[[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]はページ「[[{{MediaWiki:Mainpage}}]]」が対象になります。',
 'exportall' => 'すべてのページを書き出し',
 'exportcuronly' => '完全な履歴は含めず、最新版のみを含める',
-'exportnohistory' => "----
-'''注意:''' 処理能力上の理由により、このフォームによるページの完全な履歴の書き出しは無効化されています。",
+'exportnohistory' => '----
+<strong>注意:</strong> 処理能力上の理由により、このフォームによるページの完全な履歴の書き出しは無効化されています。',
 'exportlistauthors' => '各ページの投稿者の完全な一覧を含める',
 'export-submit' => '書き出し',
 'export-addcattext' => '指定したカテゴリ内のページを追加:',
@@ -3102,7 +3105,7 @@ $1 のブロックの理由は「''$2''」です。",
 'allmessagescurrent' => '現在のメッセージ文',
 'allmessagestext' => 'これは MediaWiki 名前空間で利用できるシステム メッセージの一覧です。
 MediaWiki 全般のローカライズ (地域化) に貢献したい場合は、[https://www.mediawiki.org/wiki/Localisation/ja MediaWiki のローカライズ]や [//translatewiki.net?setlang=ja translatewiki.net] をご覧ください。',
-'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages'''が無効のため、このページを使用できません。",
+'allmessagesnotsupportedDB' => '<strong>$wgUseDatabaseMessages</strong>が無効のため、このページを使用できません。',
 'allmessages-filter-legend' => '絞り込み',
 'allmessages-filter' => '変更状態により絞り込む:',
 'allmessages-filter-unmodified' => '変更なし',
@@ -3111,6 +3114,7 @@ MediaWiki 全般のローカライズ (地域化) に貢献したい場合は、
 'allmessages-prefix' => '名前の先頭部分で絞り込む:',
 'allmessages-language' => '言語:',
 'allmessages-filter-submit' => '表示',
+'allmessages-filter-translate' => '翻訳',
 
 # Thumbnails
 'thumbnail-more' => '拡大',
@@ -3208,7 +3212,6 @@ $2',
 'tooltip-pt-watchlist' => '変更をウォッチしているページの一覧',
 'tooltip-pt-mycontris' => '自分の投稿の一覧',
 'tooltip-pt-login' => 'ログインすることを推奨します。ただし、必須ではありません。',
-'tooltip-pt-anonlogin' => 'ログインすることを推奨します。ただし、必須ではありません。',
 'tooltip-pt-logout' => 'ログアウト',
 'tooltip-ca-talk' => '本文ページについての議論',
 'tooltip-ca-edit' => 'このページを編集できます。保存前にプレビューボタンを使用してください。',
@@ -3320,8 +3323,8 @@ $2',
 'spam_reverting' => '$1へのリンクを含まない最新の版に差し戻し',
 'spam_blanking' => 'すべての版が$1へのリンクを含んでいます。白紙化します。',
 'spam_deleting' => 'すべての版が$1へのリンクを含んでいます。削除します。',
-'simpleantispam-label' => "スパム攻撃防止用のチェックです。
-ここに値を決して入力'''しない'''でください。",
+'simpleantispam-label' => 'スパム攻撃防止用のチェックです。
+ここに値を決して入力<strong>しない</strong>でください。',
 
 # Info page
 'pageinfo-title' => '「$1」の情報',
@@ -3411,9 +3414,9 @@ $1',
 'nextdiff' => '新しい編集→',
 
 # Media information
-'mediawarning' => "'''警告:''' この種類のファイルは、悪意があるコードを含んでいる可能性があります。
-実行するとシステムが危険にさらされるおそれがあります。",
-'imagemaxsize' => "画像のサイズ制限: <br />''(ファイルページに対する)''",
+'mediawarning' => '<strong>警告:</strong> この種類のファイルは、悪意があるコードを含んでいる可能性があります。
+実行するとシステムが危険にさらされるおそれがあります。',
+'imagemaxsize' => '画像のサイズ制限: <br /><em>(ファイルページに対する)</em>',
 'thumbsize' => 'サムネイルの大きさ:',
 'widthheight' => '$1 × $2',
 'widthheightpage' => '$1 × $2、$3 {{PLURAL:$3|ページ}}',
@@ -3433,12 +3436,12 @@ $1',
 'file-info-png-looped' => '繰り返し',
 'file-info-png-repeat' => '$1 {{PLURAL:$1|回再生しました}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|フレーム}}',
-'file-no-thumb-animation' => "'''注意: 技術的な制限により、このファイルのサムネイルはアニメーションされません。'''",
-'file-no-thumb-animation-gif' => "'''注意: 技術的な制限により、この画像のような高解像度の GIF 画像の、サムネイルはアニメーションされません。'''",
+'file-no-thumb-animation' => '<strong>注意: 技術的な制限により、このファイルのサムネイルはアニメーションされません。</strong>',
+'file-no-thumb-animation-gif' => '<strong>注意: 技術的な制限により、この画像のような高解像度の GIF 画像の、サムネイルはアニメーションされません。</strong>',
 
 # Special:NewFiles
 'newimages' => '新しいファイルのギャラリー',
-'imagelisttext' => "以下は、'''$1'''{{PLURAL:$1|ファイル}}の$2で並べ替えた一覧です。",
+'imagelisttext' => '以下は、<strong>$1</strong>{{PLURAL:$1|ファイル}}の$2で並べ替えた一覧です。',
 'newimages-summary' => 'この特別ページでは、最近アップロードされたファイルを表示します。',
 'newimages-legend' => '絞り込み',
 'newimages-label' => 'ファイル名 (またはその一部):',
@@ -4030,10 +4033,10 @@ $5
 'scarytranscludetoolong' => '[URLが長すぎます]',
 
 # Delete conflict
-'deletedwhileediting' => "'''警告:''' このページが、編集開始後に削除されました!",
-'confirmrecreate' => "あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを以下の理由で削除しました:
-: ''$2''
-このままこのページを本当に再作成していいか確認してください。",
+'deletedwhileediting' => '<strong>警告:</strong> このページが、編集開始後に削除されました!',
+'confirmrecreate' => 'あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを以下の理由で削除しました:
+: <em>$2</em>
+このままこのページを本当に再作成していいか確認してください。',
 'confirmrecreate-noreason' => 'あなたが編集を開始した後、[[User:$1|$1]] ([[User talk:$1|トーク]]) がこのページを削除しました。このページを本当に再作成していいかご確認ください。',
 'recreate' => '再作成する',
 
@@ -4199,7 +4202,7 @@ $5
 
 # Core parser functions
 'unknown_extension_tag' => '不明な拡張機能タグ「$1」です',
-'duplicate-defaultsort' => "'''警告:''' 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。",
+'duplicate-defaultsort' => '<strong>警告:</strong> 既定のソートキー「$2」が、その前に書かれている既定のソートキー「$1」を上書きしています。',
 
 # Special:Version
 'version' => 'バージョン情報',
@@ -4228,7 +4231,7 @@ $5
 'version-license-not-found' => 'この拡張機能には詳細なライセンス情報がありません。',
 'version-credits-title' => '$1 への貢献者情報',
 'version-credits-not-found' => 'この拡張機能には詳細な貢献者情報がありません。',
-'version-poweredby-credits' => "このウィキは、'''[https://www.mediawiki.org/ MediaWiki]''' (copyright © 2001-$1 $2) で動作しています。",
+'version-poweredby-credits' => 'このウィキは、<strong>[https://www.mediawiki.org/ MediaWiki]</strong> (copyright © 2001-$1 $2) で動作しています。',
 'version-poweredby-others' => 'その他',
 'version-poweredby-translators' => 'translatewiki.net の翻訳者たち',
 'version-credits-summary' => '[[Special:Version|MediaWiki]] に貢献した以下の人たちに感謝します。',
index ba9e640..700910a 100644 (file)
@@ -64,7 +64,6 @@ $messages = array(
 'tog-showtoolbar' => 'Tuduhna <em>toolbar</em> (batang piranti) panyuntingan (mbutuhaké JavaScript)',
 'tog-editondblclick' => 'Sunting kaca nganggo klik ping loro (mbutuhaké JavaScript)',
 'tog-editsectiononrightclick' => 'Fungsèkna panyuntingan sub-bagian mawa klik-tengen ing judul bagian (mbutuhaké JavaScript)',
-'tog-showtoc' => 'Tuduhna daftar isi (kanggo kaca sing nduwé luwih saka 3 sub-bagian)',
 'tog-rememberpassword' => 'Émut tembung sandi kula ing peramban punika (salebeting $1 {{PLURAL:$1|dinten|dinten}})',
 'tog-watchcreations' => 'Tambahaké kaca sing tak gawé lan berkas sing tak unggah nèng daptar pangawasan',
 'tog-watchdefault' => 'Tambahaké kaca lan berkas sing tak sunting nèng daptar pangawasan',
index dc0d876..4d86ae9 100644 (file)
@@ -179,7 +179,6 @@ $messages = array(
 'tog-showtoolbar' => 'რედაქტირების პანელის ჩვენება',
 'tog-editondblclick' => 'გვერდების რედაქტირება ორმაგი დაწკაპუნებით',
 'tog-editsectiononrightclick' => 'სექციის რედაქტირების ნებართვა სათაურებზე მარჯვენა ღილაკზე დაჭერით',
-'tog-showtoc' => 'აჩვენე სარჩევი (სამ ქვესათაურზე მეტის მქონე გვერდებისთვის)',
 'tog-rememberpassword' => 'დამიმახსოვრე ამ კომპიუტერზე (მაქსიმუმ $1 {{PLURAL:$1|დღე|დღე}})',
 'tog-watchcreations' => 'დაამატე ჩემი კონტროლის სიას ჩემს მიერ შექმნილი გვერდები და ატვირთული ფაილები',
 'tog-watchdefault' => 'დაამატე ჩემი კონტროლის სიას ჩემს მიერ რედაქტირებული გვერდები და ფაილები',
index c407c4f..87bfd21 100644 (file)
@@ -55,7 +55,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ssken tafeggagt n ifecka n ubeddel',
 'tog-editondblclick' => 'Beddel isebtar mi wekkiɣ snat n tikwal',
 'tog-editsectiononrightclick' => 'Ssermed abeddel n tigezmi s ukliki ayeffus ɣef izwal',
-'tog-showtoc' => 'Ssken agbur (i isebtar i yesɛan kter n 3 izwalen)',
 'tog-rememberpassword' => 'Cfu ɣef yisem n umseqdac inu di uselkim-agi (i afellay n $1 {{PLURAL:$1|ass|ussan}})',
 'tog-watchcreations' => 'Rnu isebtar i xelqeɣ deg wumuɣ n uɛessi inu',
 'tog-watchdefault' => 'Rnu isebtar i ttbeddileɣ deg wumuɣ n uɛessi inu',
@@ -585,6 +584,8 @@ Ma teɛzemeḍ a t-tefkeḍ, ad yettuseqdac iwakken ad snen medden anwa yuran ti
 'retypenew' => 'Ɛiwed ssekcem n tbaḍnit amaynut:',
 'resetpass_submit' => 'Eg awal n tbaḍnit u kcem',
 'changepassword-success' => 'Awal n uɛaddi yettubeddel s lerbaḥ !',
+'changepassword-throttled' => 'Tɛerdeḍ ad qqeneḍ aṭas tiqwal deg dqiqat agi iɛddan.
+Ilaq ad rǧuḍ $1 uqbel ad ɛerdeḍ tikkelt nniḍen.',
 'resetpass_forbidden' => 'Ur zemreḍ ara ad beddeleḍ awalen n uɛaddi',
 'resetpass-no-info' => 'Ilaq ad qqeneḍ iwakken ad ẓṛeḍ asebter agi.',
 'resetpass-submit-loggedin' => 'Beddel awal n uɛaddi',
@@ -634,6 +635,8 @@ Awal n uɛddi akudan : $2',
 'changeemail-password' => 'Awal-ik/im n uɛaddi ɣef {{SITENAME}} :',
 'changeemail-submit' => 'Beddel tansa e-mail',
 'changeemail-cancel' => 'Semmewet',
+'changeemail-throttled' => 'Tɛerdeḍ ad qqeneḍ aṭas tiqwal.
+Ilaq ad rǧuḍ $1 uqbel ad ɛerdeḍ tikkelt nniḍen.',
 
 # Special:ResetTokens
 'resettokens' => 'Wennez tiddas',
@@ -1091,6 +1094,7 @@ Tzemreḍ ad affeḍ tilɣa deg [{{fullurl:{{#Special:Log}}/delete|page={{FULLPA
 'search-result-score' => 'Taflest : $1%',
 'search-redirect' => '(asemmimeḍ $1)',
 'search-section' => '(tigezmi $1)',
+'search-file-match' => '(yzega i ugbur n ufaylu)',
 'search-suggest' => 'D awal $1 i tnadiḍ ?',
 'search-interwiki-caption' => 'Isenfaren atmaten',
 'search-interwiki-default' => 'Igemmaḍ ɣef $1 :',
@@ -2090,7 +2094,7 @@ Ibeddlen id-yetteddun deg usebter-agi neɣ deg usbtar umyennan ines, ad banen da
 'watchmethod-list' => 'yessenqed isebtar i ttɛassaɣ i ibeddlen imaynuten',
 'watchlistcontains' => 'Umuɣ n uɛessi inek ɣur-s $1 n {{PLURAL:$1|usebter|isebtar}}.',
 'iteminvalidname' => "Agnu akk d uferdis '$1', isem mačči ṣaḥiḥ...",
-'wlnote' => "Ddaw agi  {{PLURAL:$1|yella abeddel aneggaru|llan '''$1''' ibeddilen ineggura}} n {{PLURAL:$2|usrag aneggaru|'''$2''' isragen ineggura}}, seg $3 af $4.",
+'wlnote2' => 'Ddaw agi ibeddilen deg {{PLURAL:$1|asrag aneggaru|<strong>$1</strong> isragen ineggura}}, seg $2, $3.',
 'wlshowlast' => 'Ssken $1 n swayeɛ $2 n wussan neɣ $3 ineggura',
 'watchlist-options' => 'Tifranin n umuɣ n uɛessi',
 
@@ -2178,7 +2182,7 @@ Amḥu n isebtar am wagi yesɛa akref iwakken {{SITENAME}} ur yesɛu ara arway.'
 'delete-warning-toobig' => 'Asebtar agi yesɛa amezruy axatar n ibeddilen, ugaren $1 {{PLURAL:$1|lqem|ileqman}}.
 Tukksa-s tezmer ad terwi tiddit n taffa n isefka n {{SITENAME}} ;
 ilaq ad seqdeceḍ s-leɛqel.',
-'deleting-backlinks-warning' => "'''Ɣur-wet :''' Isebtar nniḍen sɛant azday ɣer asebtar i tebɣiḍ ad kkeseḍ.",
+'deleting-backlinks-warning' => "'''Ɣur-wet :''' Isebtar nniḍen sɛan azday ɣer asebtar i tebɣiḍ ad ekkeseḍ.",
 
 # Rollback
 'rollback' => 'Semmet ibeddilen',
@@ -2492,11 +2496,16 @@ Ahat asewḥel yetwekkes yakan.',
 'ipb_blocked_as_range' => 'Tuccḍa : tansa IP $1 ur t-uwḥel ara srid dɣa ulamek an ekkes asewḥel.
 Lamaɛna tezga deg tagrumma $2 i nezmer an ekkes asewḥel.',
 'ip_range_invalid' => 'Tagrumma IP artameɣtut',
+'ip_range_toolarge' => 'Isewḥal n tagrummiwin i ugaren /$1 ur sɛan ara assireg.',
+'proxyblocker' => 'Amsewḥel n proxy',
 'proxyblockreason' => 'Tansa n IP inek teɛkel axaṭer nettat "open proxy". G leɛnayek, meslay akk d provider inek.',
 'sorbsreason' => 'Tansa IP inek/inem tella deg yiwen umuɣ am "open proxy" deg DNSBL yettuseqdac deg {{SITENAME}}.',
 'sorbs_create_account_reason' => 'Tansa IP inek/inem tella deg yiwen umuɣ am "open proxy" deg DNSBL yettuseqdac deg {{SITENAME}}.
 Ur tezmireḍ ara ad snulfuḍ amiḍan.',
 'xffblockreason' => 'Yiwet tansa IP deg tasenṭit X-Forwarded-For header, tin inek/inem neɣ tin n uqeddac proxy i tseqeddeceḍ ,tesewḥel. Taɣzint n usewḥel amezrwaru : $1',
+'cant-see-hidden-user' => "Amseqdac i tebɣiḍ ad sewḥeleḍ yetsewḥel yakan dɣa yetweffer. Imi ur tesɛiḍ ara azref ''hideuser'', ur tzemreḍ ara ad ẓṛeḍ neɣ ad beddeleḍ asewḥel n umseqdac agi.",
+'ipbblocked' => 'Ur tzemreḍ ada ad sewḥeleḍ neɣ ad aksewḥeleḍ imseqdacen nniḍen, acku ula d-kečč/kem tsewḥeleḍ.',
+'ipbnounblockself' => 'Ur tesɛiḍ ara assireg ad aksewḥeleḍ iman-ik/im.',
 
 # Developer tools
 'lockdb' => 'Sekker database',
@@ -2510,19 +2519,31 @@ Ilaq ad sergegeḍ d-ayen yebɣiḍ ad xeddemeḍ.',
 'unlockconfirm' => 'Ih, bɣiɣ ad ekkeseɣ aksskeṛeɣ taffa n isefka.',
 'lockbtn' => 'Sekker taffa n isefka',
 'unlockbtn' => 'Kkes aseḍru n taffa n isefka',
+'locknoconfirm' => 'Ur d-sekcemeḍ ara amidag deg tanaka n aragag.',
 'lockdbsuccesssub' => 'Askaṛ n taffa n isefka yetwexddem',
 'unlockdbsuccesssub' => 'Asewḥel n taffa n isefka yetwekkes',
+'lockdbsuccesstext' => 'Taffa n isefka teskeṛ.<br />
+Ur tettu ara ad ekkeseḍ [[Special:UnlockDB|askaṛ]] ma tfukeḍ tamhelt inek/inem n ibeddi.',
 'unlockdbsuccesstext' => 'Askaṛ n taffa n isefka yetwekkes.',
 'lockfilenotwritable' => 'Ur tzemreḍ ara ad aruḍ deg ufaylu n uskaṛ n taffa n isefka.
 Ma tebɣiḍ ad sewḥeleḍ neɣ ad ekkseḍ asewḥel ɣef taffa n isefka, ilaq aqeddac web ad yezmer ad yaru deg ufaylu agi.',
+'databasenotlocked' => 'Taffa n isefka ur tesɛa ara askar.',
 'lockedbyandtime' => '(sɣur $1 ass n $2 af $3)',
 
 # Move page
 'move-page' => 'Beddel isem n $1',
 'move-page-legend' => 'Smimeḍ asebter',
-'movepagetext' => "Seqdec tiferkit ddaw agi iwakken ad beddeleḍ isem n usebter, s usiweḍ n akkw amezruy is ɣer isem amaynut. Azwel aqbur ad yuɣal d asebter n usemmime ɣer azwel amaynut. Tzemreḍ ad mucceḍeḍ s uwurman isemmimen amiran i sweṛen ɣer azwel amezwaru. Ma ur tebɣiḍ ara at sexdemeḍ wagi, ilaq ad selkeneḍ akkw [[Special:DoubleRedirects|Asemmimeḍ yeḍran snat tikwal]] naɣ [[Special:BrokenRedirects|asmmimeḍ yerẓan]]. Ilaq ad sɛuḍ talkint belli izdayen tsweṛen ɣer aserken is.
+'movepagetext' => "Seqdec tiferkit ddaw agi iwakken ad beddeleḍ isem n usebter, s usiweḍ n akkw umezruy-is ɣer isem amaynut. Azwel aqbur ad yuɣal d asebter n usemmime ɣer azwel amaynut. Tzemreḍ ad mucceḍeḍ s uwurman isemmimen imiranen i sweṛen ɣer azwel amezwaru. Ma ur tebɣiḍ ara at sexdemeḍ wagi, ilaq ad selkeneḍ akkw [[Special:DoubleRedirects|Asemmimeḍ yeḍran snat tikwal]] neɣ [[Special:BrokenRedirects|asmmimeḍ yerẓan]]. Ilaq ad sɛuḍ talkint belli izdayen tsweṛen ɣer aserken is.
+
+Abeddel n isem <strong>ur</strong> yezmer <strong>ara</strong> ad yilli ma yella yakan asebter s isem agi, ḥaca ma ulac amezruy deg-es. Waya yetɛemmed an beddel isem n usebtar ɣer addud ines amezwaru ma tiggit d tuccḍit, dɣa ulamek an mzey yiwen asebtar yellan.
+
+'''Ɣur-wet !'''
+Wagi yezmer ad yexdem abeddel ameqqṛan i asebter s aṭas timerziwin ; ilaq ad fehmeḍ uqbel ad beddeleḍ asebter.",
+'movepagetext-noredirectfixer' => "Seqdec tiferkit ddaw agi iwakken ad beddeleḍ isem n usebter, s usiweḍ n akkw amezruy is ɣer isem amaynut. Azwel aqbur ad yuɣal d asebter n usemmime ɣer azwel amaynut.
+Ilaq ad selkeneḍ akkw [[Special:DoubleRedirects|Asemmimeḍ yeḍran snat tikwal]] naɣ [[Special:BrokenRedirects|asmmimeḍ yerẓan]].
+Ilaq ad sɛuḍ talkint belli izdayen tsweṛen ɣer aserken is.
 
-Abeddel n isem ur yezmer ara ad yilli ma yella yakan asebter s isem agi, ḥaca ma ulac amezruy deg-es.
+Abeddel n isem ur yezmer ara ad yilli ma yella yakan asebter s isem agi, ḥaca ma ulac amezruy deg-es dɣa yuɣal d-asebtar n usemmim. Waya yetɛemmed an beddel isem n usebtar ɣer addud ines amezwaru ma tiggit d tuccḍit, dɣa ulamek an mzey yiwen asebtar yellan.
 
 '''Ɣur-wet !'''
 Wagi yezmer ad yexdem abeddel ameqqṛan i asebter s aṭas timerziwin ; ilaq ad fehmeḍ uqbel ad beddeleḍ asebter.",
@@ -2532,20 +2553,31 @@ Wagi yezmer ad yexdem abeddel ameqqṛan i asebter s aṭas timerziwin ; ilaq ad
 
 Lukan akka, yessefk a t-tedmeḍ weḥdek.",
 'movearticle' => 'Smimeḍ asebter',
+'moveuserpage-warning' => "'''Ɣur-wet !''' Atan ad beddeleḍ isem n usebtar n umseqdac. Ilaq ad fehmeḍ, isem n usebtar ad yetbeddel, maca isem n umseqdac '''ur''' d-yetbeddel '''ara'''.",
 'movenologintext' => 'Yessefk ad tesɛuḍ isem n wemseqdac u [[Special:UserLogin|tkecmeḍ]]
 iwakken ad tesmimḍeḍ asebter.',
 'movenotallowed' => 'Ur tesɛiḍ ara turagt ad beddeleḍ isem n isebtar.',
+'movenotallowedfile' => 'Ur tesɛiḍ ara turagt ad beddeleḍ isem n ifuyla.',
 'cant-move-user-page' => 'Ur tesɛiḍ ara turagt ad beddeleḍ isem n isebtar igejdanen n imseqdacen',
+'cant-move-to-user-page' => 'Ur tesɛid ara assireg iwakken ad beddeleḍ isem n usebtar ɣer asebtar n umseqdac (haca ma d-adu-asebtar).',
 'newtitle' => 'Ar azwel amaynut',
 'move-watch' => 'Ɛass asebter-agi',
 'movepagebtn' => 'Smimeḍ asebter',
 'pagemovedsub' => 'Asemmimeḍ yekfa',
+'movepage-moved' => "'''« $1 » yetwabeddel isem ar « $2 »'''",
+'movepage-moved-redirect' => 'Abeddel n isem seg isem aqbur yetxelqed.',
+'movepage-moved-noredirect' => 'Asnulfu n ubeddel n isem seg isem aqbur yetsemmet.',
 'articleexists' => 'Yella yagi yisem am wagi, neɣ
 isem ayen textareḍ mačči d ṣaḥiḥ.
 Xtar yiwen nniḍen.',
+'cantmove-titleprotected' => 'Ur tzemreḍ ara ad ssiweḍeḍ asebtar ɣer amkan agi acku asnulfu n usebtar s uzwel agi amaynut yetweḥrez',
 'movetalk' => 'Smimeḍ asebter n umyannan (n umagrad-nni)',
 'move-subpages' => 'Beddel isem n adu-isebtar (alma d $1 {{PLURAL:$1|asebtar|isebtar}})',
 'move-talk-subpages' => 'Beddel adu-isebtar n usebtar n amyannan (alma d $1 isebtar)',
+'movepage-page-exists' => 'Asebtar $1 yella yakan dɣa ur nezmer ara at n-mzey s uwurman.',
+'movepage-page-moved' => 'Asebtar $1 yetwabeddel isem-is ar $2.',
+'movepage-page-unmoved' => 'Asebtar $1 ur nezmer ara an beddel isem-is ar $2.',
+'movepage-max-pages' => 'Afellay n $1 {{PLURAL:$1|asebtar|isebtar}} s isem ibeddelen yetwuɛa dɣa tura ur d-yetilli ara abeddel n isem s-uwurman.',
 'movelogpage' => 'Aɣmis n usemmimeḍ',
 'movelogpagetext' => 'Akessar yella wumuɣ n isebtar yettusmimeḍen.',
 'movesubpage' => '{{PLURAL:$1|Adu-asebtar|Adu-isebtar}}',
@@ -2560,10 +2592,30 @@ Anda tebɣiḍ tesmimeḍ "[[:$1]]" yella yagi. tebɣiḍ ad temḥuḍ iwakken
 'delete_and_move_confirm' => 'Ih, mḥu asebter',
 'delete_and_move_reason' => 'Asebter yemḥa iwakken yeqqim-d wemkan i usmimeḍ seg "[[$1]]"',
 'selfmove' => 'Izwal amezwaru d uneggaru kif-kif; ur yezmir ara ad yesmimeḍ asebter ɣur iman-is.',
+'immobile-source-namespace' => 'Ur tzemreḍ ara ad beddeleḍ isem n isebtar deg tallunt n isemawen « $1 »',
+'immobile-target-namespace' => 'Ur tzemreḍ ara ad beddeleḍ isem n isebtar ɣer tallunt n isemawen « $1 »',
 'immobile-target-namespace-iw' => 'Izdayen interwiki mačči d iswi ameɣtu i imussa.',
+'immobile-source-page' => 'Ulamek ad beddeleḍ isem n usebtar agi.',
+'immobile-target-page' => 'Ur tzemreḍ ara ad beddeleḍ isem n usebtar ɣer azwel agi.',
+'bad-target-model' => 'Aserken i tebɣiḍ yetseqdac talɣa nniḍen n ugbur. Ulamek an beddel seg $1 ɣer $2.',
+'imagenocrossnamespace' => 'Ulamek an beddeleḍ isem n ufaylu ɣer tallunt n isemawen nniḍen wala afaylu',
+'nonfile-cannot-move-to-file' => 'Ulamek an beddeleḍ ayen nniḍen wala afaylu ɣer tallunt n isemawen n ufaylu',
+'imagetypemismatch' => 'Asiɣzef amaynut n ufaylu agi ur yaɛdil ara s tawsit ines.',
+'imageinvalidfilename' => 'Isem n ufaylu iswi ur yaɛdil ara',
+'fix-double-redirects' => 'Mucceḍ inegzumen yetruḥun ɣer azwel amezwaru',
+'move-leave-redirect' => 'Eǧǧ anegzum ɣer azwel amaynut',
+'protectedpagemovewarning' => "'''ƔUR-WET :''' Asebter-agi yettwaḥrez iwakken imseqdacen kan yesɛan izerfan n unedbal ad zemren ad beddlen isem-is.
+Asekcem aneggaru n uɣmis yella ddaw-agi :",
+'semiprotectedpagemovewarning' => "'''Tamawt :''' Asebter-agi yettwaḥrez iwakken imseqdacen kan yesɛan amiḍan kan i zemren ad beddlen isem-is.
+Asekcem aneggaru n uɣmis yella ddaw-agi :",
+'move-over-sharedrepo' => '== Afaylu yella yakan ==
+[[:$1]] yella yakan ɣef azadur anmili. Abeddel n isem n ufaylu agi ad yarreẓ azday ɣer ufaylu seg azadur anmili.',
+'file-exists-sharedrepo' => 'Isem agi yetseqdac yakan sɣur afaylu ɣef azadur anmili.
+Xtir isem nniḍen.',
 
 # Export
 'export' => 'Ssufeɣ isebtar',
+'exportall' => 'Ssufeɣ akkw isebtar',
 'exportcuronly' => 'Ssekcem tasiwelt n tura kan, mačči akk amezruy-is',
 'export-submit' => 'Ssufeɣ',
 'export-addcattext' => 'Rnu isebtar seg taggayt:',
@@ -2582,12 +2634,14 @@ Anda tebɣiḍ tesmimeḍ "[[:$1]]" yella yagi. tebɣiḍ ad temḥuḍ iwakken
 Ẓeṛ [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] dɣa [//translatewiki.net translatewiki.net] ma tebɣiḍ ad ɛiweneḍ i usideg imcettel n MediaWiki.',
 'allmessagesnotsupportedDB' => "'''{{ns:special}}:Allmessages''' ut yezmir ara ad yettuseqdac axaṭer '''\$wgUseDatabaseMessages''' yettwakkes.",
 'allmessages-filter-legend' => 'Tastayt',
+'allmessages-filter' => 'Ṣeffi s addad n ubeddil :',
 'allmessages-filter-unmodified' => 'Ur yebeqqeḍ ara',
 'allmessages-filter-all' => 'Akkw',
 'allmessages-filter-modified' => 'Yebeddel',
 'allmessages-prefix' => 'Tastayt s adat :',
 'allmessages-language' => 'Tutlayt :',
 'allmessages-filter-submit' => 'Ruḥ',
+'allmessages-filter-translate' => 'Ssuqqel',
 
 # Thumbnails
 'thumbnail-more' => 'Ssemɣer',
@@ -2596,19 +2650,30 @@ Anda tebɣiḍ tesmimeḍ "[[:$1]]" yella yagi. tebɣiḍ ad temḥuḍ iwakken
 'thumbnail_error_remote' => 'Izen n tuccḍa n $1 :
 $2',
 'djvu_page_error' => 'Asebter DjVu yeffeɣ seg tilisa',
+'djvu_no_xml' => 'Ulamek an err XML i ufaylu DjVu',
+'thumbnail-temp-create' => 'Ulamek ad nesnulfu afaylu n tignit akudan',
+'thumbnail-dest-create' => 'Ulamek an kles tignit ɣef aserken',
+'thumbnail_invalid_params' => 'Iɣewwaren n tignit ur ɣeblen ara',
+'thumbnail_dest_directory' => 'Ulamek ad nesnulfu akaram n userken',
+'thumbnail_image-type' => 'Tawsit n tugna ur teɣbel ara',
+'thumbnail_gd-library' => 'Tawila tagermazt n tamkarḍit GD : ulac tasɣent $1',
+'thumbnail_image-missing' => 'Afaylu agi ulac-it : $1',
 
 # Special:Import
 'import' => 'Ssekcem isebtar',
 'importinterwiki' => 'Assekcem n transwiki',
 'import-interwiki-source' => 'Wiki d usebtar n taɣbalut',
 'import-interwiki-history' => 'Xdem alsaru n akk tisiwal umezruy n usebter-agi',
+'import-interwiki-templates' => 'Sekcem akkw talɣiwin',
 'import-interwiki-submit' => 'Ssekcem',
 'import-interwiki-namespace' => 'Azen isebtar ar isem n taɣult:',
+'import-interwiki-rootpage' => 'Asebtar azaṛ n userken (axetṛan) :',
 'import-upload-filename' => 'Isem n ufaylu :',
 'import-comment' => 'Awennit :',
 'importstart' => 'Asekcem n isebtar...',
 'import-revision-count' => '$1 {{PLURAL:$1|tasiwelt|tisiwal}}',
 'importnopages' => 'Ulac isebtar iwakken ad ttussekcmen.',
+'imported-log-entries' => '$1 {{PLURAL:$1|anekcum|inekcumen}} n uɣmis yekteren.',
 'importfailed' => 'Asekcem yexser: $1',
 'importunknownsource' => 'Anaw n uɣbalu n usekcem mačči d mechur',
 'importcantopen' => 'Ur yezmir ara ad yexdem asekcem n ufaylu',
@@ -2618,6 +2683,14 @@ $2',
 'importhistoryconflict' => 'Amennuɣ ger tisiwal n umezruy (ahat asebter-agi yettwazen yagi)',
 'importnosources' => 'Asekcam n transwiki ur yexdim ara u amezruy n usekcam yettwakkes.',
 'importnofile' => 'ulaḥedd afaylu usekcam ur yettwazen.',
+'import-noarticle' => 'Ulac isebtar ad nekter.',
+'import-nonewrevisions' => 'Akkw ileqman tetwaketren yakan.',
+'import-error-edit' => 'Asebtar « $1 » ur d-yekter ara acku ur tesɛiḍ ara turagt iwakken at beddeleḍ.',
+'import-error-create' => 'Asebtar « $1 » ur d-yekter ara acku ur tesɛiḍ ara turagt iwakken at snulfuḍ.',
+'import-error-interwiki' => 'Asebtar « $1 » ur d-yekter ara acku isem-is yettwaṭṭef i uzday yeffɣen (interwiki).',
+'import-error-special' => 'Asebtar « $1 » ur d-yekter ara acku yeqqen s tallunt n isemawen uslig ur yebɣan ara isebtar.',
+'import-error-invalid' => 'Asebtar « $1 » ur d-yekter ara acku isem-is ur yeɣbel ara.',
+'import-options-wrong' => 'Yir {{PLURAL:$2|afran|ifranen}} : <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'Asebtar aẓar id efkeḍ d-azwel ur ɣblen ara.',
 'import-rootpage-nosubpage' => 'Tallunt n isemawen « $1 » n usebtar aẓar ur yeqbel ara adu-isebtar.',
 
@@ -2648,7 +2721,6 @@ $2',
 'tooltip-pt-watchlist' => 'Umuɣ n uɛessi n isebtar i ttɛessaɣ',
 'tooltip-pt-mycontris' => 'Umuɣ n tikkin inu',
 'tooltip-pt-login' => 'Lukan tkecmeḍ xir, meɛna am tebɣiḍ.',
-'tooltip-pt-anonlogin' => 'Lukan tkecmeḍ xir, meɛna am tebɣiḍ.',
 'tooltip-pt-logout' => 'Ffeɣ',
 'tooltip-ca-talk' => 'Amyannan ɣef wayen yella deg usebter',
 'tooltip-ca-edit' => 'Tzemreḍ ad tbeddleḍ asebter-agi. Sseqdec pre-timeẓriwt qbel.',
@@ -2756,6 +2828,7 @@ Ur-d t-aru '''ACEMMA''' d-agi !",
 'pageinfo-few-watchers' => 'Kkes-as $1 {{PLURAL:$1|amanay|imanayen}}',
 'pageinfo-redirects-name' => 'Amḍan n izdayen ɣer asebtar agi',
 'pageinfo-subpages-name' => 'Adu-isebtar n usebter agi',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|anegzum|inegzumen}}; $3 {{PLURAL:$3|ur-anegzum|ur-inegzumen}})',
 'pageinfo-firstuser' => 'Ameslal n usebtar',
 'pageinfo-firsttime' => 'Azmez n usnulfu n usebtar',
 'pageinfo-lastuser' => 'Atekki aneggaru',
@@ -2767,6 +2840,7 @@ Ur-d t-aru '''ACEMMA''' d-agi !",
 'pageinfo-magic-words' => '{{PLURAL:$1|Awal n tiḥḥerga|Awalen n tiḥḥerga}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Taggayt yeffren|Taggayin yeffren}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Talɣa i seddan|Talɣiwin i seddan}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Asebtar|Isebtar}} ayyes tesekcem ($1)',
 'pageinfo-toolboxlink' => 'Tilɣa ɣef usebtar',
 'pageinfo-redirectsto' => 'Ceggaɛ ɣer',
 'pageinfo-redirectsto-info' => 'tiɣa',
@@ -3013,7 +3087,39 @@ Izdayen nniḍen ɣef yiwen ajerriḍ llan d tisuraf, am isebtar ɣef anta tugna
 'exif-datetimereleased' => 'Tuffɣa ass n',
 'exif-originaltransmissionref' => 'Tangalt n usideg n tuzzna tamezwarut',
 'exif-identifier' => 'Asulay',
+'exif-lens' => 'Tilintit yetseqdacen',
+'exif-serialnumber' => 'Uṭṭun n umazrar n timseknewt',
+'exif-cameraownername' => 'Amli n timseknewt',
 'exif-label' => 'Aglam',
+'exif-datetimemetadata' => 'Azmez n abeddil aneggaru n adferisefka',
+'exif-nickname' => 'Isem aralɣawi n tugna',
+'exif-rating' => 'Tazmilt (ɣef 5)',
+'exif-rightscertificate' => 'Aselkin n usefrek n izerfan',
+'exif-copyrighted' => 'Aẓayer n uzref n umeskar',
+'exif-copyrightowner' => 'Amaway n uzref n umeskar',
+'exif-usageterms' => 'Tawtilt n usseqdec',
+'exif-webstatement' => 'Taseɣrut n copyright askar uqqin',
+'exif-originaldocumentid' => 'ID awḥid n taftart taneṣlit',
+'exif-licenseurl' => 'URL n turagt',
+'exif-morepermissionsurl' => 'Tilɣa ɣef turagin timlellayin',
+'exif-attributionurl' => 'Deg alsasseqdec n tawuri agi, ilaq ad qqeneḍ ar',
+'exif-preferredattributionname' => 'Deg alsasseqdec n tawuri agi, ilaq ad snemmer',
+'exif-pngfilecomment' => 'Awennit n ufaylu PNG',
+'exif-disclaimer' => 'Ur-tamasit',
+'exif-contentwarning' => 'Alɣu ɣef ugbur',
+'exif-intellectualgenre' => 'Tawsit n uferdis',
+'exif-subjectnewscode' => 'Angal n usentel',
+'exif-scenecode' => 'Angal n usayes IPTC',
+'exif-event' => 'Tadyant yetsnazelen',
+'exif-organisationinimage' => 'Tuddsa yetsnazelen',
+'exif-personinimage' => 'Aterras yetsnazelen',
+'exif-originalimageheight' => 'Tafelleyt n tugna uqbel att ili tetwalssurret',
+'exif-originalimagewidth' => 'Tehri n tugna uqbel att ili tetwalssurret',
+
+# Exif attributes
+'exif-compression-2' => 'CCITT Agraw 3 Teɣzef n usettengel Huffman yetbeddlen n tasekta 1',
+'exif-compression-3' => 'CCITT Agraw 3 asettengel n fax',
+'exif-compression-4' => 'CCITT Agraw 4 asettengel n fax',
 
 'exif-copyrighted-true' => 'Ddaw azref n umeskar',
 'exif-copyrighted-false' => 'Addad n izerfan n umeskar ur yesbadu ara',
@@ -3078,6 +3184,9 @@ Izdayen nniḍen ɣef yiwen ajerriḍ llan d tisuraf, am isebtar ɣef anta tugna
 # Flash modes
 'exif-flash-fired-0' => 'Lebṛaq ur yendeḥ ara',
 'exif-flash-fired-1' => 'Lebṛaq yendeḥ',
+'exif-flash-return-0' => 'ula d yiwen n strub ur d-yerra ara tasɣent n tifin',
+'exif-flash-return-2' => 'strub ur-d i t-aff ara tafat id yuɣalen',
+'exif-flash-return-3' => 'strub yuffad tuqqla n tafat',
 'exif-flash-mode-1' => 'Tafat n lebaq yuwren',
 'exif-flash-mode-2' => 'Tukksa n lebaq yuwren',
 'exif-flash-mode-3' => 'askar awurman',
@@ -3133,6 +3242,26 @@ Izdayen nniḍen ɣef yiwen ajerriḍ llan d tisuraf, am isebtar ɣef anta tugna
 
 'exif-subjectdistancerange-0' => 'Warisem',
 'exif-subjectdistancerange-1' => 'Amɣer',
+'exif-subjectdistancerange-2' => 'Imeẓri iqerrben',
+'exif-subjectdistancerange-3' => 'Imeẓri ibɛeden',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'Agafa',
+'exif-gpslatitude-s' => 'Anẓul',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'Agmuḍ',
+'exif-gpslongitude-w' => 'Amalu',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|lmitra}} nnig aswir n ilel',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|lmitra}} ddaw aswir n ilel',
+
+'exif-gpsstatus-a' => 'Akat imir',
+'exif-gpsstatus-v' => 'Agertiddit n akat',
+
+'exif-gpsmeasuremode-2' => 'Akat s 2 tisektiwin',
+'exif-gpsmeasuremode-3' => 'Akat s 3 tisektiwin',
 
 # Pseudotags used for GPSSpeedRef
 'exif-gpsspeed-k' => 'Kilometr deg ssaɛa',
@@ -3195,6 +3324,7 @@ Izdayen nniḍen ɣef yiwen ajerriḍ llan d tisuraf, am isebtar ɣef anta tugna
 'exif-urgency-normal' => 'Alugen ($1)',
 'exif-urgency-low' => 'Anammum ($1)',
 'exif-urgency-high' => 'Afella ($1)',
+'exif-urgency-other' => 'Lḥir id yefka amseqdac ($1)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'akk',
@@ -3239,10 +3369,13 @@ Ma mačči d *kečč/kem*, ilaq ad lkemeḍ aseɣwen agi deg iminig :
 $5
 
 Angal n usentem-agi ad yemmut ass $4.',
+'confirmemail_invalidated' => 'Aragag n tansa email yettusemmet',
+'invalidateemail' => 'Semmet aragag n tansa email',
 
 # Scary transclusion
 'scarytranscludedisabled' => '[Yettwakkes assekcam n isebtar seg wiki tiyaḍ]',
 'scarytranscludefailed' => '[Ur yezmir ara a d-yawi talɣa n $1]',
+'scarytranscludefailed-httpstatus' => '[Abrir n tiririt n talɣa i $1 : HTTP $2]',
 'scarytranscludetoolong' => '[URL agi uffay aṭas]',
 
 # Delete conflict
@@ -3258,7 +3391,9 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 
 # action=watch/unwatch
 'confirm-watch-button' => 'Seɣbel',
+'confirm-watch-top' => 'Rnu asebter-agi i wumuɣ n uɛessi inek ?',
 'confirm-unwatch-button' => 'Seɣbel',
+'confirm-unwatch-top' => 'Ekkes asebter-agi seg wumuɣ n uɛessi inek ?',
 
 # Multipage image navigation
 'imgmultipageprev' => '← asebter ssabeq',
@@ -3266,6 +3401,11 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'imgmultigo' => 'Ruḥ!',
 'imgmultigoto' => 'Ruḥ ar usebtar $1',
 
+# Language selector for translatable SVGs
+'img-lang-default' => '(tutlayt s lexṣas)',
+'img-lang-info' => 'Beqqeḍ tugna agi s $1 $2.',
+'img-lang-go' => 'Ruḥ',
+
 # Table pager
 'ascending_abbrev' => 'asawen',
 'descending_abbrev' => 'akessar',
@@ -3274,6 +3414,7 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'table_pager_first' => 'Asebtar amezwaru',
 'table_pager_last' => 'Asebtar aneggaru',
 'table_pager_limit' => 'Ssken $1 n yiferdas di mkul asebtar',
+'table_pager_limit_label' => 'Agemmuḍ deg usebtar :',
 'table_pager_limit_submit' => 'Ruḥ',
 'table_pager_empty' => 'Ulac igmad',
 
@@ -3312,6 +3453,7 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'watchlistedit-raw-title' => 'Beddel umuɣ n uɛessi (raw)',
 'watchlistedit-raw-legend' => 'Beddel umuɣ n uɛessi (raw)',
 'watchlistedit-raw-titles' => 'Izwal:',
+'watchlistedit-raw-submit' => 'Amucceḍ n umuɣ n uɛassi',
 'watchlistedit-raw-done' => 'Umuɣ n uɛessi inek yettubeddel.',
 'watchlistedit-raw-added' => '{{PLURAL:$1|1 wezwel |$1 yizwal}} nnernan:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 wezwel yettwakkes|$1 yizwal ttwakksen}}:',
@@ -3321,16 +3463,42 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'watchlisttools-edit' => 'Ẓer u beddel umuɣ n uɛessi',
 'watchlisttools-raw' => 'Beddel umuɣ n uɛessi (raw)',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|amyannan]])',
+
 # Core parser functions
 'unknown_extension_tag' => 'Ticṛeṭ n usiɣzef « $1 » warisem',
 'duplicate-defaultsort' => 'Ɣur-wet : tasarut n ufran m-ulac « $2 » atsefεej tasarut n uqbel « $1 ».',
 
 # Special:Version
 'version' => 'Lqem',
+'version-extensions' => 'Isiɣzaf i serkeben',
 'version-specialpages' => 'isebtar usligen',
+'version-parserhooks' => 'Imguden n umsisleḍ n taseddast',
+'version-variables' => 'Imuttiyen',
+'version-antispam' => 'Aḥezzeb n spam',
+'version-skins' => 'Igelman',
 'version-other' => 'Nniḍen',
+'version-mediahandlers' => 'Amsqerdec n imediaten',
+'version-hooks' => 'Imguden',
+'version-parser-extensiontags' => 'Ticraḍ yeẓẓlen n umsisleḍ n taseddast',
+'version-parser-function-hooks' => 'Tiseɣnin yeẓẓlen n umsisleḍ n taseddast',
+'version-hook-name' => 'Isem n umgud',
+'version-hook-subscribedby' => 'Imeltaɣen :',
 'version-version' => '(lqem $1)',
+'version-license' => 'Turagt MediaWiki',
+'version-ext-license' => 'Turagt',
+'version-ext-colheader-name' => 'Asiɣzef',
+'version-ext-colheader-version' => 'Lqem',
+'version-ext-colheader-license' => 'Turagt',
+'version-ext-colheader-description' => 'Aglam',
+'version-ext-colheader-credits' => 'Imeskaren',
+'version-license-title' => 'Turagt i $1',
+'version-credits-title' => 'Isnemmiren i $1',
+'version-poweredby-credits' => "Wiki agi yetelḥu s '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'nniḍen',
+'version-poweredby-translators' => 'imsuqqlen n translatewiki.net',
+'version-credits-summary' => 'Nebɣa an snemmer imdanen agi i uttekki nsen ar [[Special:Version|MediaWiki]].',
 'version-software' => 'Iseɣẓanen i serkeben',
 'version-software-product' => 'Afaris',
 'version-software-version' => 'Lqem',
@@ -3343,6 +3511,7 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'redirect-lookup' => 'Anadi :',
 'redirect-value' => 'Azal :',
 'redirect-user' => 'ID n umseqdac',
+'redirect-page' => 'Uṭṭun n usebter',
 'redirect-revision' => 'Tacaggart n usebtar',
 'redirect-file' => 'Isem n ufaylu',
 'redirect-not-exists' => 'Azal ulac-it',
@@ -3359,6 +3528,7 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 
 # Special:SpecialPages
 'specialpages' => 'isebtar usligen',
+'specialpages-note-top' => 'Aglam',
 'specialpages-group-maintenance' => 'Iṛabulen n ibeddi',
 'specialpages-group-other' => 'Isebtar usligen nniḍen',
 'specialpages-group-login' => 'Asulu / assiggez',
@@ -3422,6 +3592,12 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'dberr-info-hidden' => '(Ulamek an qqen ar uqeddac n taffa n isefka)',
 
 # HTML forms
+'htmlform-select-badoption' => 'Azal id efkeḍ mačči d taxtiṛit i ɣeblen.',
+'htmlform-int-invalid' => 'Azal id efkeḍ mačči d amḍan ummid.',
+'htmlform-float-invalid' => 'Azal id efkeḍ mačči d amḍan.',
+'htmlform-int-toolow' => 'Azal id efkeḍ d-amectuḥ ugar adday n $1',
+'htmlform-int-toohigh' => 'Azal id efkiḍ yugar afellay n $1',
+'htmlform-required' => 'Ilaq azal agi',
 'htmlform-submit' => 'Ssumer',
 'htmlform-reset' => 'Ekkes ibeddilen',
 'htmlform-selectorother-other' => 'Nniḍen',
@@ -3490,6 +3666,9 @@ G leɛnaya-k sentem belli ṣaḥḥ tebɣiḍ ad tɛiwedeḍ axlaq n usebter-ag
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|tasint|tisinin}}',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|tasint|tisinin}}',
 
+# Special:ExpandTemplates
+'expand_templates_preview' => 'Azaraskan',
+
 # Unknown messages
 'uploadinvalidxml' => 'XML deg ufaylu yekteren ur d-yetwesleḍ ara.',
 );
index a075be9..cbda026 100644 (file)
@@ -66,7 +66,6 @@ $messages = array(
 'tog-showtoolbar' => 'Gozagunê hacetunê vurnayişi bıasne (JavaScript lazımo)',
 'tog-editondblclick' => 'Pê dı rey teqnayene pele sero bıguriye (JavaScript lazımo)',
 'tog-editsectiononrightclick' => 'Qısımu be teqnayena serrêze ra ebe gozaga raste bıvurne (JavaScript lazımo)',
-'tog-showtoc' => 'Tablowê tedeestewu bıasne (de pelunê be hirê sernustu ra jêdêri de)',
 'tog-rememberpassword' => 'Parola mı nê cıcêrawoği de bia ho viri (serba tewr jêde $1 {{PLURAL:$1|roze|rozu}}).',
 'tog-watchcreations' => 'Pelê ke mı afernê u dosyê ke mı bar kerdê lista mına şêrkerdişi ke',
 'tog-watchdefault' => 'Pel u dosyê ke mı vurnê lista mına şêrkerdişi ke',
@@ -1325,7 +1324,6 @@ Kerem ke, nameo de bin bıcerrebne.',
 'tooltip-pt-watchlist' => 'Lista pelunê ke to guretê şêrkerdene',
 'tooltip-pt-mycontris' => 'Lista iştıraqunê sıma',
 'tooltip-pt-login' => 'Serba cıkotene sıma rê sılaiya; hama, na zeruriye niya',
-'tooltip-pt-anonlogin' => 'Serba cıkotene sıma rê sılaiya, hama na zeruriye niya.',
 'tooltip-pt-logout' => 'Veciye',
 'tooltip-ca-talk' => 'Pela tedeesteu sero hurênais',
 'tooltip-ca-edit' => 'Tı şikina na pele bıvurnê.
index 4252963..05e0a99 100644 (file)
@@ -372,7 +372,6 @@ $messages = array(
 'tog-showtoolbar' => 'Өңдеу құралдарын көрсету',
 'tog-editondblclick' => 'Қос шерту арқылы бетті өңдеу',
 'tog-editsectiononrightclick' => 'Бөлім тақырыбын оң нұқумен бөлім өңдеуін қосу',
-'tog-showtoc' => 'Мазмұнын көрсету (3-тен астам бөлімі болған жағдайда ғана)',
 'tog-rememberpassword' => 'Тіркелгімді осы браузерде ұмытпа (ең көбі $1 {{PLURAL:$1|күн|күн}})',
 'tog-watchcreations' => 'Мен бастаған беттерді бақылау тізіміне қос',
 'tog-watchdefault' => 'Мен өңдеген беттерді бақылау тізіміне қос',
@@ -2206,7 +2205,6 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'watchmethod-list' => 'жуықтағы өзгерістер үшін бақылаулы беттерді тексеру',
 'watchlistcontains' => 'Бақылау тізіміңізде $1 бет бар.',
 'iteminvalidname' => "'$1' данада ақау бар — жарамсыз атау…",
-'wlnote' => "Төменде $3, $4 кезіне дейінгі соңғы {{PLURAL:$2|сағатта|'''$2''' сағатта}} болған, {{PLURAL:$1|жуықтағы өзгеріс|жуықтағы '''$1''' өзгеріс}} көрсетіледі.",
 'wlshowlast' => 'Соңғы $1 сағаттағы, $2 күндегі, $3 болған өзгерісті көрсету',
 'watchlist-options' => 'Бақылау тізімінің баптаулары',
 
@@ -2654,6 +2652,7 @@ $1 бұғаттауы үшін келтірілген себебі: «$2».',
 
 Ал мақаланың атауын өзгертем деп мағлұматын қолмен көшіруге болмайды, себебі беттің түзету тарихын өшіреді.",
 'movearticle' => 'Ағымдағы бет атауы:',
+'moveuserpage-warning' => '<strong>Ескерту:</strong> Сіз қатысушы бетін жылжытпақшысыз. Назар аударыңыз, қатысушы беті ғана жылжытылуы мүмкін және қатысушы аты <em>өзгертілмейді</em>.',
 'movenologintext' => 'Бетті жылжыту үшін тіркелген болуыңыз және [[{{#special:UserLogin}}|кіруіңіз]] жөн.',
 'movenotallowed' => '{{SITENAME}} жобасында беттерді жылжытуға рұқсатыңыз жоқ.',
 'newtitle' => 'Жаңа бет атауы:',
@@ -2695,6 +2694,8 @@ $1 бұғаттауы үшін келтірілген себебі: «$2».',
 'imagetypemismatch' => 'Файлдың жаңа кеңейтімі бұның түріне сәйкес емес',
 'imageinvalidfilename' => 'Файл атауы жарамсыз',
 'move-leave-redirect' => 'Ескі бетте айдату сілтемесін қалдыру',
+'protectedpagemovewarning' => '<strong>Ескерту:</strong> Бұл бет қорғалғандықтан бұны тек әкімшілер ғана атауын өзгерте алады. 
+Төменде ең соңғы журнал жазбасы көрсетілген:',
 'semiprotectedpagemovewarning' => "'''Ескерту:''' Бұл бет жылжытудан қорғалған оны тек тіркелген қатысушылар ғана жылжытыта алады.
 Төменде ең соңғы журнал енгізілімі көрсетілген:",
 
@@ -2803,7 +2804,6 @@ $2',
 'tooltip-pt-watchlist' => 'Өзгерістерін бақылап тұрған беттер тізімім.',
 'tooltip-pt-mycontris' => 'Өңдеулеріңіздің тізімі',
 'tooltip-pt-login' => 'Кіруіңізді ұсынамыз, ол міндетті емес.',
-'tooltip-pt-anonlogin' => 'Кіруіңізді ұсынамыз, бірақ, ол міндетті емес.',
 'tooltip-pt-logout' => 'Шығу',
 'tooltip-ca-talk' => 'Мағлұмат бетті талқылау',
 'tooltip-ca-edit' => 'Бұл бетті өңдей аласыз. Сақтаудың алдында «Қарап шығу» батырмасын нұқыңыз.',
index ab40ec5..17f4827 100644 (file)
@@ -272,7 +272,6 @@ $messages = array(
 'tog-showtoolbar' => 'បង្ហាញ​របារឧបករណ៍កែប្រែ',
 'tog-editondblclick' => 'កែប្រែទំព័រដោយចុចពីរដង​ជាប់គ្នា',
 'tog-editsectiononrightclick' => 'អនុញ្ញាត​អោយកែប្រែ​​ផ្នែកណាមួយ ដោយ​ចុចកណ្តុរស្ដាំ​លើ​ចំណងជើង​របស់វា',
-'tog-showtoc' => 'បង្ហាញ​តារាងមាតិកា (សម្រាប់ទំព័រ​ដែលមាន​ចំណងជើងរង​លើសពី៣)',
 'tog-rememberpassword' => 'ចងចាំ​ការកត់ឈ្មោះចូលរបស់ខ្ញុំ​លើកុំព្យូទ័រនេះ (សំរាប់រយៈពេលយ៉ាងយូរ$1 {{PLURAL:$1|ថ្ងៃ|ថ្ងៃ}})',
 'tog-watchcreations' => 'បន្ថែម​ទំព័រ​ទាំងឡាយដែលខ្ញុំបង្កើត​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
 'tog-watchdefault' => 'បន្ថែម​ទំព័រទាំងឡាយ​ដែលខ្ញុំកែប្រែ​ទៅ​បញ្ជីតាមដាន​របស់ខ្ញុំ',
@@ -2309,7 +2308,6 @@ $1',
 'watchmethod-list' => 'ឆែកមើលទំព័រត្រូវបានតាមដានចំពោះកំណែប្រែថ្មីៗ',
 'watchlistcontains' => 'បញ្ជីតាមដាន របស់អ្នក មាន $1 {{PLURAL:$1|ទំព័រ|ទំព័រ}}។',
 'iteminvalidname' => "មានបញ្ហាជាមួយនឹង'$1'​។ ឈ្មោះគឺមិនត្រឹមត្រូវ...",
-'wlnote' => "ខាងក្រោមនេះជា {{PLURAL:$1|បំលាស់ប្តូរចុងក្រោយ|'''$1'''បំលាស់ប្តូរចុងក្រោយ}}ក្នុងរយះពេល{{PLURAL:$2|'''$2'''ម៉ោង}}ចុងក្រោយ គិតចាប់ពី $3, $4។",
 'wlshowlast' => 'បង្ហាញ $1ម៉ោងចុងក្រោយ $2ថ្ងៃចុងក្រោយ ឬ$3',
 'watchlist-options' => 'ជម្រើសនានាក្នុងបញ្ជីតាមដាន',
 
@@ -2896,7 +2894,6 @@ $1',
 'tooltip-pt-watchlist' => 'បញ្ជី​នៃ​ទំព័រ​ដែលអ្នកកំពុង​ត្រួតពិនិត្យ​រក​បន្លាស់ប្ដូរ',
 'tooltip-pt-mycontris' => 'បញ្ជី​នៃ​ការរួមចំណែក​របស់​អ្នក',
 'tooltip-pt-login' => 'អ្នកត្រូវបានលើកទឹកចិត្តឱ្យកត់ឈ្មោះចូល។ ប៉ុន្តែនេះមិនមែនជាការបង្ខំទេ។',
-'tooltip-pt-anonlogin' => 'អ្នកត្រូវបានលើកទឹកចិត្តឱ្យកត់ឈ្មោះចូល មិនមែនជាការបង្ខំទេ។',
 'tooltip-pt-logout' => 'កត់ឈ្មោះចេញ',
 'tooltip-ca-talk' => 'ការពិភាក្សា​អំពីទំព័រខ្លឹមសារ​នេះ',
 'tooltip-ca-edit' => "អ្នកអាច​កែប្រែ​ទំព័រ​នេះ ។ សូមប្រើប្រាស់​ប៊ូតុង 'បង្ហាញការមើលមុន' មុននឹង​រក្សាទុក​វា  ។",
index 1665711..1735256 100644 (file)
@@ -374,7 +374,6 @@ $messages = array(
 'tog-showtoolbar' => '편집에 툴바 보이기',
 'tog-editondblclick' => '더블 클릭으로 문서 편집하기',
 'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 문단 편집하기 활성화',
-'tog-showtoc' => '문서의 목차 보여주기 (머릿글이 4개 이상인 경우)',
 'tog-rememberpassword' => '이 브라우저에 로그인 상태를 저장하기(최대 $1{{PLURAL:$1|일}})',
 'tog-watchcreations' => '내가 만드는 문서와 내가 올린 파일을 주시문서 목록에 추가',
 'tog-watchdefault' => '내가 편집하는 문서와 파일을 주시문서 목록에 추가',
@@ -2423,7 +2422,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'listusers-blocked' => '(차단됨)',
 
 # Special:ActiveUsers
-'activeusers' => 'í\99\9cë°\9cí\95\9c 사용자 목록',
+'activeusers' => 'í\99\9cë\8f\99í\95\98ë\8a\94 사용자 목록',
 'activeusers-intro' => '다음은 최근 $1{{PLURAL:$1|일}} 동안 활동한 사용자의 목록입니다.',
 'activeusers-count' => '마지막 {{PLURAL:$3|$3일}} 사이의 {{PLURAL:$1|활동}} $1회',
 'activeusers-from' => '다음으로 시작하는 사용자를 보기:',
@@ -2515,7 +2514,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'watchmethod-list' => '최근 편집을 확인하고자 주시된 문서 확인',
 'watchlistcontains' => '{{PLURAL:$1|문서 $1개}}를 주시하고 있습니다.',
 'iteminvalidname' => "'$1' 항목에 문제가 발생했습니다. 이름이 잘못되었습니다...",
-'wlnote' => "다음은 최근 {{PLURAL:$2|'''$2'''시간}} 동안 {{PLURAL:$1|바뀐 문서 '''$1'''개 입니다}}. ($3 $4 기준)",
+'wlnote2' => '아래는 $2, $3 기준으로 지난 {{PLURAL:$1|hour|<strong>$1</strong> 시간}} 동안의 바뀜입니다.',
 'wlshowlast' => '최근 $1시간 $2일 또는 $3 동안에 바뀐 문서 보기',
 'watchlist-options' => '주시문서 목록 설정',
 
@@ -2702,7 +2701,7 @@ $UNWATCHURL
 # Undelete
 'undelete' => '삭제된 문서 보기',
 'undeletepage' => '삭제된 문서를 보거나 되살리기',
-'undeletepagetitle' => "'''아래는 [[:$1|$1]]의 삭제된 판입니다'''.",
+'undeletepagetitle' => "'''아래는 [[:$1|$1]] 판의 삭제된 판입니다'''.",
 'viewdeletedpage' => '삭제된 문서 보기',
 'undeletepagetext' => '다음 {{PLURAL:$1|문서는 삭제되었지만|문서 $1개는 삭제되었지만}} 아직 보관되어 있고 되살릴 수 있습니다.
 보관된 문서는 주기적으로 삭제될 것입니다.',
@@ -3084,6 +3083,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'allmessages-prefix' => '접두어로 거르기:',
 'allmessages-language' => '언어:',
 'allmessages-filter-submit' => '보기',
+'allmessages-filter-translate' => '번역',
 
 # Thumbnails
 'thumbnail-more' => '실제 크기로',
@@ -3181,7 +3181,6 @@ $2',
 'tooltip-pt-watchlist' => '주시문서에 대한 바뀜 목록',
 'tooltip-pt-mycontris' => '내 기여의 목록',
 'tooltip-pt-login' => '꼭 로그인해야 하는 것은 아니지만, 로그인을 권장합니다.',
-'tooltip-pt-anonlogin' => '꼭 필요한 것은 아니지만, 로그인을 하면 편리한 점이 많습니다.',
 'tooltip-pt-logout' => '로그아웃',
 'tooltip-ca-talk' => '문서의 내용에 대한 토론 문서',
 'tooltip-ca-edit' => '문서를 편집할 수 있습니다. 저장하기 전에 미리 보기를 해주세요.',
@@ -3408,7 +3407,7 @@ $1',
 
 # Special:NewFiles
 'newimages' => '새 파일 목록',
-'imagelisttext' => "{{PLURAL:$1|파일}} '''$1'''개를 $2 순으로 정렬한 목록입니다.",
+'imagelisttext' => "{{PLURAL:$1|파일}} '''$1'''개를 $2순으로 정렬한 목록입니다.",
 'newimages-summary' => '이 특수 문서는 최근에 올라온 파일을 나열하고 있습니다.',
 'newimages-legend' => '필터',
 'newimages-label' => '파일 이름 (또는 그 일부분):',
@@ -4004,7 +4003,7 @@ $5
 
 # Live preview
 'livepreview-loading' => '불러오는 중...',
-'livepreview-ready' => '불러 오는 중... 준비!',
+'livepreview-ready' => '불러오는 중... 준비!',
 'livepreview-failed' => '실시간 미리 보기 실패!
 일반 미리 보기를 이용하세요.',
 'livepreview-error' => '연결에 실패하였습니다: $1 "$2"
@@ -4071,7 +4070,7 @@ $5
 'version-ext-colheader-license' => '라이선스',
 'version-ext-colheader-description' => '설명',
 'version-ext-colheader-credits' => '저자',
-'version-license-title' => '$1 사용을 위한 라이센스',
+'version-license-title' => '$1 라이센스',
 'version-license-not-found' => '이 확장기능에 대한 라이선스 세부 정보가 없습니다.',
 'version-credits-title' => '$1의 작성자',
 'version-credits-not-found' => '이 확장기능에 대한 크레딧 세부 정보가 없습니다.',
@@ -4150,7 +4149,7 @@ $5
 #모든 정규 표현식은 이 줄 위에 넣어 주십시오. 그리고 이 줄은 그대로 두십시오.</pre>',
 
 # Special:Tags
-'tags' => 'ì\9c í\9a¨í\95\9c 편집 태그',
+'tags' => 'ì\98¬ë°\94른 편집 태그',
 'tag-filter' => '[[Special:Tags|태그]] 필터:',
 'tag-filter-submit' => '필터',
 'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|태그}}]]: $2)',
index 4fc4d21..a0c7407 100644 (file)
@@ -122,7 +122,6 @@ $messages = array(
 'tog-showtoolbar' => 'Тюрлендириу адыр панелни кёргюз',
 'tog-editondblclick' => 'Эки басыу бла бетлени тюрлендир',
 'tog-editsectiononrightclick' => 'Бёлюмлени бёлюм башлыкъгъа басханлай тюрлендир',
-'tog-showtoc' => 'Башларын кёргюз (3-ден кёб бёлюм башлыгъы болгъан бетлеге)',
 'tog-rememberpassword' => 'Бу браузерде мени тергеў джазыўуму сакъла (эм кёб: $1 {{PLURAL:$1|бир кюн|кюн}})',
 'tog-watchcreations' => 'Мен къурагъан (башлагъан) бетлени эм мен джюклеген файлланы кёзюмде тургъан тизмеме къош',
 'tog-watchdefault' => 'Мен тюрлендирген бетлени эм файлланы кёзюмде тургъан тизмеме къош',
index e5c476a..50d7ee8 100644 (file)
@@ -223,7 +223,6 @@ $messages = array(
 'tog-showtoolbar' => 'De Wärkzüchleß zom Ändere aanzeije',
 'tog-editondblclick' => 'Sigge met Dubbel-Klicke ändere',
 'tog-editsectiononrightclick' => 'Afschnedde met Räächs-Klecke op de Üvverschrefte ändere',
-'tog-showtoc' => 'Zeich en Enhaldsüvversich bei Sigge met mieh wie drei Üvverschrefte dren',
 'tog-rememberpassword' => 'Op Duur enlogge op dämm Kompjuter un för dää Brauser (hält {{PLURAL:$1|för eine Daach|bes op $1 Dääsch|bloß för hück}})',
 'tog-watchcreations' => 'Donn Sigge beim neu Aanlääje automattesch för ming Oppaßlėß vörschlonn',
 'tog-watchdefault' => 'Donn Sigge beim Ändere automattesch för ming Oppaßlėß vörschlonn',
index f4bfdec..412e815 100644 (file)
@@ -193,7 +193,6 @@ $messages = array(
 'tog-showtoolbar' => 'Amostrar el chibuk de aparatos',
 'tog-editondblclick' => 'Trocar las hojas con doble klik',
 'tog-editsectiononrightclick' => 'Pueder trocar los kapítůlos, en pizando el botón derecho del ratón encima el títůlo',
-'tog-showtoc' => 'Àmostrar el cuadro de contènidos (para las hojas que tienen más de 3 títůlos de capítůlo)',
 'tog-rememberpassword' => 'Acordarse de mi entrada en este navigador (a lo más muńcho $1 {{PLURAL:$1|día|días}})',
 'tog-watchcreations' => 'Anyadir lad pajinas ke kree i archivos ke karge a mi lista',
 'tog-watchdefault' => 'Anyadir pajinas i archivos ke edite a mi lista',
@@ -1380,7 +1379,7 @@ Si puede ser, escoge otro nombre.',
 'tooltip-pt-login' => 'Te encorajamos de entrar ma no estás obligado',
 'tooltip-pt-logout' => 'Sal de tu cuento',
 'tooltip-ca-talk' => 'Diskusyón encima del artíkolo',
-'tooltip-ca-edit' => 'Puedes trocar esta hoja. Ma te rogamos para que eches una ojada (previsteo) antes de enrezhistrarla.',
+'tooltip-ca-edit' => 'Puedes trocar esta hoja. Ma te rogamos para que eches una ojada (previsteo) antes de enrejistrarla.',
 'tooltip-ca-addsection' => 'Empeça a un muevo kapítolo',
 'tooltip-ca-viewsource' => 'Esta hoja está guadrada.
 Puedes ver su manadero',
@@ -1402,7 +1401,7 @@ Puedes ver su manadero',
 'tooltip-n-randompage' => 'Carga una hoja por azardo',
 'tooltip-n-help' => 'Ambézate y topa ayudo',
 'tooltip-t-whatlinkshere' => 'Una lista de todas las hojas del viki que tienen atamientos a esta hoja',
-'tooltip-t-recentchangeslinked' => 'Los trocamientos dalcavo de las hojas atadas a ésta',
+'tooltip-t-recentchangeslinked' => 'Los trocamientos dalcavo de las hojas atadas a la ésta',
 'tooltip-feed-rss' => 'Sindicación RSS de esta hoja',
 'tooltip-feed-atom' => "Fuente de Atom d'esta hoja",
 'tooltip-t-contributions' => 'Ver la lista de ajustamientos de este usuario',
index 2617a17..c7546ca 100644 (file)
@@ -197,7 +197,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ännerungstoolbar weisen',
 'tog-editondblclick' => 'Säite mat Duebelklick änneren',
 'tog-editsectiononrightclick' => 'Eenzel Abschnitter mat Rietsklick änneren',
-'tog-showtoc' => 'Inhaltsverzeechnes weise bei Säite mat méi wéi dräi Iwwerschrëften',
 'tog-rememberpassword' => 'Meng Umeldung mat dësem Browser (fir maximal $1 {{PLURAL:$1|Dag|Deeg}}) verhalen',
 'tog-watchcreations' => 'Säiten déi ech uleeën a Fichieren déi ech eroplueden op meng Iwwerwaachungslëscht derbäisetzen',
 'tog-watchdefault' => 'Säiten a Fichieren déi ech änneren op meng Iwwerwaachungslëscht derbäisetzen',
@@ -750,6 +749,8 @@ Fir är Umeldung ofzeschléissen, musst Dir elo hei een neit Passwuert uginn:',
 'retypenew' => 'Neit Passwuert nach eemol antippen:',
 'resetpass_submit' => 'Passwuert aginn an aloggen',
 'changepassword-success' => 'Äert Passwuert gouf geännert!',
+'changepassword-throttled' => 'Dir hutt rezent zevill dacks versicht Iech anzeloggen.
+Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
 'resetpass_forbidden' => 'Passwierder kënnen net geännert ginn.',
 'resetpass-no-info' => 'Dir musst ageloggt sinn, fir direkt op dës Säit ze kommen.',
 'resetpass-submit-loggedin' => 'Passwuert änneren',
@@ -803,6 +804,8 @@ Temporärt Passwuert: $2',
 'changeemail-password' => 'Äert {{SITENAME}}-Passwuert:',
 'changeemail-submit' => 'Mailadress änneren',
 'changeemail-cancel' => 'Ofbriechen',
+'changeemail-throttled' => 'Dir hutt zevill dacks versicht Iech anzeloggen.
+Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
 
 # Special:ResetTokens
 'resettokens' => 'Token zrécksetzen',
@@ -2265,7 +2268,6 @@ All weider Ännerungen op dëser Säit an der associéierter Diskussiounssäit g
 'watchmethod-list' => 'Iwwerwaachte Säite ginn op rezent Ännerungen iwwerpréift',
 'watchlistcontains' => 'Op ärer Iwwerwaachungslëscht $1 {{PLURAL:$1|steet $1 Säit|stinn $1 Säiten}}.',
 'iteminvalidname' => "Problem mam Element '$1', ongëltegen Numm ...",
-'wlnote' => "Hei {{PLURAL:$1|ass déi lescht Ännerung|sinn déi lescht '''$1''' Ännerunge}} vun {{PLURAL:$2|der leschter Stonn|de leschte(n) '''$2''' Stonnen}}, Stand: $3 ëm $4 Auer.",
 'wlshowlast' => "D'Ännerunge vun de leschte(n) $1 Stonnen, $2 Deeg oder $3 (an de leschten 30 Deeg) weisen.",
 'watchlist-options' => 'Optioune vun der Iwwerwaachungslëscht',
 
@@ -2824,6 +2826,7 @@ Besicht w.e.g. [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisati
 'allmessages-prefix' => 'Nom Prefix filteren:',
 'allmessages-language' => 'Sprooch:',
 'allmessages-filter-submit' => 'Lass',
+'allmessages-filter-translate' => 'Iwwersetzen',
 
 # Thumbnails
 'thumbnail-more' => 'vergréisseren',
@@ -2917,7 +2920,6 @@ Späichert en op Ärem Computer of a luet en hei nees erop.',
 'tooltip-pt-watchlist' => 'Lëscht vu Säiten, bei deenen Dir op Ännerungen oppasst',
 'tooltip-pt-mycontris' => 'Lëscht vun Äre Kontributiounen',
 'tooltip-pt-login' => 'Sech umelle gëtt gäre gesinn, Dir musst et awer net maachen.',
-'tooltip-pt-anonlogin' => 'Et wier gutt, Dir géift Iech aloggen, och wann et keng Musse-Saach ass.',
 'tooltip-pt-logout' => 'Ofmellen',
 'tooltip-ca-talk' => 'Diskussioun iwwer de Säiteninhalt',
 'tooltip-ca-edit' => 'Dës Säit ka geännert ginn. Maacht vun der Méiglechkeet Gebrauch fir ze "kucken ouni ofzespäicheren" a kuckt ob alles an der Rei ass ier der ofspäichert.',
index 76e2d35..a7c995a 100644 (file)
@@ -167,7 +167,6 @@ $messages = array(
 'tog-showtoolbar' => 'Laot edit toolbar zeen',
 'tog-editondblclick' => "Bewirk pagina's bie 'ne dobbelklik (JavaScript)",
 'tog-editsectiononrightclick' => "Secties bewirke mit 'ne rechtermoesklik op sectietitels (JavaScript nudig)",
-'tog-showtoc' => "Inhaudsopgaaf veur pagina's mit mie es 3 köpkes",
 'tog-rememberpassword' => 'Mien wachwaord onthouwe veur later sessies (hoegstens $1 {{PLURAL:$1|daag|daag}})',
 'tog-watchcreations' => "Volg autematis pagina's die ich aanmaak en bestenj die ich upload",
 'tog-watchdefault' => "Voog pagina's em bestenj die se bewirks toe aan dien volglies",
index e7a71b5..02f926f 100644 (file)
@@ -26,7 +26,6 @@ $messages = array(
 'tog-showtoolbar' => 'نوار اوزار ويرايشت نشون بيه',
 'tog-editondblclick' => 'بلگيا نه وا دوبار پورنين ويرايشت بكيد',
 'tog-editsectiononrightclick' => 'بهر ویرایشت نه وا راس کلیک کردن د بهر عنوانیا فعال کو',
-'tog-showtoc' => 'چیا مئن جدول نشو بیه',
 'tog-rememberpassword' => 'اومائن وا مئن منه د ای مرورگر د ویر داشتو(سی بیشترین$1{{PLURAL:$1|day|days}})',
 'tog-watchcreations' => 'بلگیایی که مه راس کمه و فایلیایی که مه سوار کمه اضاف کو د سیل برگه مه',
 'tog-watchdefault' => 'بلگیا و فایلایی که مه ویرایشت کمه اضاف کو د سیل برگم',
@@ -1260,6 +1259,7 @@ $2',
 'usercreated' => '{{جنسیت:$3|راس بیه}}د $1 at $2',
 'newpages' => 'بلگيا نو',
 'move' => 'جاوه جا بوئيت',
+'movethispage' => 'ای بگله نه جا وه جا كو',
 'pager-newer-n' => '{{جمی:$1|وانها تر 1وانها تر $1}}',
 'pager-older-n' => '{{جمی:$1|گپسالتر 1|گپسالتر $1}}',
 
@@ -1285,6 +1285,7 @@ $2',
 'categories' => 'دسه يا',
 
 # Special:LinkSearch
+'linksearch-ns' => 'نوم جا:',
 'linksearch-line' => '$1 داره د $2 هوم پیوند بوئه',
 
 # Special:ListGroupRights
@@ -1322,9 +1323,11 @@ $2',
 'protectedarticle' => 'حفاظت بيه [[$1]]',
 'modifiedarticleprotection' => 'ریتراز حفاظت د "[[$1]]" آلشت بیه',
 'protect-title' => 'ریتراز حفاظت د "$1" آلشت بیه',
+'prot_1movedto2' => '[[$1]] د [[$2]] جا وه جا بی',
 'restriction-type' => 'دسرسی:',
 
 # Restrictions (nouns)
+'restriction-move' => 'جاوه جا بوئيت',
 'restriction-upload' => 'سوار کرد',
 
 # Restriction levels
@@ -1381,6 +1384,7 @@ $2',
 # Block/unblock
 'ipboptions' => '2 ساعتیا:2 ساعت,1 رو:1 رو,3 روزا:3 رو,1 هفته:1 هفته,2 هفته یا:2 هفته,1 ما:1 ما,3 ما:3 میا,6 ما:6 مایا,1 سال:1سال,حد ناره:حد ناره',
 'ipblocklist' => 'كاروريا منع بيه',
+'blocklist-nousertalk' => 'نبوئه بلگه چک چنه خوتونه ویرایشت بکید',
 'blocklink' => 'بسته بوئه',
 'unblocklink' => 'بی قطی',
 'change-blocklink' => 'اجازه نديئن سی  آلشت',
@@ -1388,12 +1392,16 @@ $2',
 'blocklogpage' => 'قلف',
 'blocklogentry' => ' [[$1]] وا یه گل وخت تموم بیئن $2 و $3  قلف بیه',
 'block-log-flags-nocreate' => 'حساو راس کردن عاجز بیه.',
+'block-log-flags-nousertalk' => 'نبوئه بلگه چک چنه خوتونه ویرایشت بکید',
 
 # Move page
+'move-page' => '$1 جا وه جا کو',
 'movenotallowed' => 'شما وه جا وه جا کردن بلگه دسرسی ناریت',
 'movenotallowedfile' => 'شما وه جا وه جا کردن جانیایا دسرسی ناریت',
+'movepagebtn' => 'بلگه جا وه جا کو',
 'movelogpage' => 'جاوه جا کردن',
 'revertmove' => 'لرستن',
+'delete_and_move' => 'پاک و جا وه جا بوئه',
 
 # Export
 'export' => 'وه صحرا ديئن بلگيا',
@@ -1403,6 +1411,7 @@ $2',
 'allmessagesname' => 'نوم',
 'allmessagesdefault' => 'سفارشت متنی پيش فرض',
 'allmessages-language' => 'زون:',
+'allmessages-filter-submit' => 'رو',
 
 # Thumbnails
 'thumbnail-more' => 'گپ كردن',
@@ -1428,7 +1437,6 @@ $2',
 'tooltip-pt-watchlist' => 'نوم نوشت د بلگه يايی كه شما آلشتاشونه پيگئری  ميكيد',
 'tooltip-pt-mycontris' => 'يه گل د هومياريا شما',
 'tooltip-pt-login' => 'توصيه بو كه وارد بوئين، اما مجبوری ني',
-'tooltip-pt-anonlogin' => 'توصيه بو كه وارد بوئين، اما مجبوری ني',
 'tooltip-pt-logout' => 'د سيستم دراومائن',
 'tooltip-ca-talk' => 'قسه دباره محتوا بلگه',
 'tooltip-ca-edit' => 'شما تونيد ای  بلگه نه ويرايشت بكيد. لطف بكيد د دگمه پيش ديئن پيش د ذخيره كردن استفاده بكيد',
@@ -1544,11 +1552,22 @@ $2',
 'exif-gpsaltitude-above-sealevel' => '$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا',
 'exif-gpsaltitude-below-sealevel' => '$1 {{جمی:$1|متر|متریا}} وارؤ د ریتراز دریا',
 
+'exif-gpsdop-good' => 'خو ($1)',
+
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'همه شو',
 'namespacesall' => 'همه شو',
 'monthsall' => 'همه',
 
+# Multipage image navigation
+'imgmultigo' => 'رؤ!',
+
+# Language selector for translatable SVGs
+'img-lang-go' => 'رو',
+
+# Table pager
+'table_pager_limit_submit' => 'رو',
+
 # Watchlist editing tools
 'watchlisttools-view' => 'آلشتیا مرتوط نه بوینیت',
 'watchlisttools-edit' => 'سیل برگ بوینیتو و ویرایشت بکید',
@@ -1564,6 +1583,7 @@ $2',
 'version-ext-colheader-credits' => 'نیسنه یا',
 
 # Special:Redirect
+'redirect-submit' => 'رو',
 'redirect-file' => 'نوم جانیا',
 
 # Special:FileDuplicateSearch
index 811e66d..203c9d2 100644 (file)
@@ -197,7 +197,6 @@ $messages = array(
 'tog-showtoolbar' => 'Rodyti redagavimo įrankinę (JavaScript)',
 'tog-editondblclick' => 'Puslapių redagavimas dvigubu spustelėjimu (JavaScript)',
 'tog-editsectiononrightclick' => 'Įjungti skyrelių redagavimą paspaudus skyrelio pavadinimą dešiniuoju pelės klavišu (JavaScript)',
-'tog-showtoc' => 'Rodyti turinį, jei puslapyje daugiau nei 3 skyreliai',
 'tog-rememberpassword' => 'Prisiminti prisijungimo informaciją šioje naršyklėje (daugiausiai $1 {{PLURAL:$1|dieną|dienas|dienų}})',
 'tog-watchcreations' => 'Pridėti puslapius, kuriuos aš sukuriu, į stebimų sąrašą',
 'tog-watchdefault' => 'Pridėti puslapius, kuriuos aš redaguoju, į stebimų sąrašą',
index 7a91997..bae6973 100644 (file)
@@ -65,7 +65,6 @@ $messages = array(
 'tog-showtoolbar' => 'Rādīt rediģēšanas rīkjoslu',
 'tog-editondblclick' => 'Atvērt lapu rediģēšanai ar dubultklikšķi',
 'tog-editsectiononrightclick' => "Atvērt sadaļas rediģēšanas lapu, uzklikšķinot ar labo peles pogu uz sadaļas virsraksta (izmanto ''JavaScript'')",
-'tog-showtoc' => 'Parādīt satura rādītāju (lapām, kurās ir vairāk par 3 virsrakstiem)',
 'tog-rememberpassword' => 'Atcerēties manu lietotājvārdu pēc pārlūka aizvēršanas (ne vairāk kā $1 {{PLURAL:$1|diena|dienas}}).',
 'tog-watchcreations' => 'Pievienot manis radītās lapas un manis augšuplādētos failus uzraugāmo lapu sarakstam',
 'tog-watchdefault' => 'Pievienot manis izmainītās lapas un failus uzraugāmo lapu sarakstam',
@@ -2346,6 +2345,7 @@ Pirmajā gadījumā var arī lietot šādu metodi, piem., [[{{#Special:Export}}/
 'allmessages-prefix' => 'Filtrēt pēc prefiksa:',
 'allmessages-language' => 'Valoda:',
 'allmessages-filter-submit' => 'Parādīt',
+'allmessages-filter-translate' => 'Tulkot',
 
 # Thumbnails
 'thumbnail-more' => 'Palielināt',
@@ -2417,7 +2417,6 @@ Lūdzu, mēģiniet vēlreiz.',
 'tooltip-pt-watchlist' => 'Tevis uzraudzītās lapas',
 'tooltip-pt-mycontris' => 'Tavs devums',
 'tooltip-pt-login' => 'Aicinām tevi ieiet {{grammar:lokatīvs|{{SITENAME}}}}, tomēr tas nav obligāti.',
-'tooltip-pt-anonlogin' => 'Aicinām tevi ieiet {{grammar:lokatīvs|{{SITENAME}}}}, tomēr tas nav obligāti.',
 'tooltip-pt-logout' => 'Iziet',
 'tooltip-ca-talk' => 'Diskusija par šī raksta lapu',
 'tooltip-ca-edit' => 'Izmainīt šo lapu. Lūdzam izmantot pirmskatu pirms lapas saglabāšanas.',
@@ -2498,8 +2497,8 @@ To visticamāk izraisīja ārēja saite uz melnajā sarakstā esošu interneta v
 'spamprotectionmatch' => 'Spama filtram radās iebildumi pret šo tekstu: $1',
 'spambot_username' => 'MediaWiki surogātpasta tīrīšana',
 'spam_reverting' => 'Atjauno iepriekšējo versiju, kas nesatur saiti uz $1',
-'simpleantispam-label' => "Pretspama pārbaude. 
- '''NEAIZPILDĪT!'''",
+'simpleantispam-label' => 'Pretspama pārbaude. 
+<strong>Neaizpildiet</strong> šo!',
 
 # Info page
 'pageinfo-title' => 'Informācija par "$1"',
index c2515ab..0ec2012 100644 (file)
@@ -162,7 +162,6 @@ $messages = array(
 'tog-showtoolbar' => '多寶列見(JavaScript)',
 'tog-editondblclick' => '纂頁雙擊(JavaScript)',
 'tog-editsectiononrightclick' => '纂段右擊標(JavaScript)',
-'tog-showtoc' => '四章見目',
 'tog-rememberpassword' => '符節通越(達至$1日)',
 'tog-watchcreations' => '哨己撰',
 'tog-watchdefault' => '哨己纂',
index 4a32e41..0b6785c 100644 (file)
@@ -40,7 +40,6 @@ $messages = array(
 'tog-showtoolbar' => 'संपादन ओजारपेटी देखाऊ (जावास्क्रीप्ट)',
 'tog-editondblclick' => 'दू बेर क्लीक कए पन्ना संपादित करू (जावास्क्रीप्ट)',
 'tog-editsectiononrightclick' => 'ऐ खण्डक सम्पादन खण्डक शीर्षकेँ दहिन क्लिक कऽ सम्भव (जावास्क्रिप्ट चाही)',
-'tog-showtoc' => 'अनुक्रम देखाऊ (जाहि पृष्ठ पर तीनसँ बेशी विभाग होए)',
 'tog-rememberpassword' => 'ऐ गवेषकपर हमर कूटशब्द (बेशीसं बेशी $1 {{PLURAL:$1|दिन धरि| कएक दिन धरि}}) मोन राखू',
 'tog-watchcreations' => 'हमर बनाओल पृष्ठ हमर साकांक्ष सूचीमे राखू',
 'tog-watchdefault' => 'हमर संपादित पृष्ठ हमर साकांक्ष सूचीमे देखाऊ',
index 7b22cf9..6e0f7df 100644 (file)
@@ -230,7 +230,6 @@ $messages = array(
 'tog-showtoolbar' => 'Haneho ny toolbar fanovana',
 'tog-editondblclick' => "Hanova pejy amin'ny alalan'ny tsindrim-boalavo roa misesy",
 'tog-editsectiononrightclick' => "Hampiasa ny fanovana fizarana amin'ny tsindry havanana eo amin'ny lohatenim-pizarana.",
-'tog-showtoc' => "Asehoy ny fanoroan-takila (ho an'ny pejy misy lohateny mihoatra ny 3)",
 'tog-rememberpassword' => "Tadidio ny tenimiafiko eto amin'ity solosaina ity (mandritry ny andro $1 fara-fahabetsany){{PLURAL:}}",
 'tog-watchcreations' => 'Hanaraka ny pejy foronoko ary ny rakitra ampidiriko',
 'tog-watchdefault' => 'Hanaraka ny pejy ary ny rakitra ovaiko',
@@ -2251,7 +2250,6 @@ na tsy maniry handray imailaka avy amin'ny mpikambana hafa izy.",
 'watchmethod-list' => 'fanamarinana ny pejy arahana hahitana fiovana vao haingana',
 'watchlistcontains' => "Ao amin'ny pejy arahanao dia ahitana pejy $1{{PLURAL:}}.",
 'iteminvalidname' => "Olana amin'ny zavatra « $1 » : tsy ara-dalàna ny anarana...",
-'wlnote' => "Eo ambany dia ahitana ny {{PLURAL:$1|fiovana farany indrindra|ny fiovana ''$1'' farany}} natao tanatin'ny adin'ny {{PLURAL:$2|iray|'''$2'''}}, nanomboka ny $3, $4.",
 'wlshowlast' => 'Haneho ny $1 ora farany, ny $2 andro farany na $3',
 'watchlist-options' => 'Safidy ny lisitry ny pejy arahana',
 
@@ -2866,7 +2864,6 @@ Avereno fanindroany.',
 'tooltip-pt-watchlist' => 'Ny lisitra ny pejy arahanao-maso',
 'tooltip-pt-mycontris' => "Lisitra ny fandraisan'anjaranao",
 'tooltip-pt-login' => 'Tsara aminao no miditra na misoratra anarana, fa tsy voatery ianao.',
-'tooltip-pt-anonlogin' => 'Tsara aminao no miditra na misoratra anarana, fa tsy voatery ianao.',
 'tooltip-pt-logout' => 'Hidio',
 'tooltip-ca-talk' => 'resaka momba io takelaka io',
 'tooltip-ca-edit' => "Azonao atao no manova n'ity pejy ity.
index fbd86e1..7a01cb6 100644 (file)
@@ -365,7 +365,6 @@ $messages = array(
 'tog-showtoolbar' => 'Прикажи алатник за уредување',
 'tog-editondblclick' => 'Уредување на страници при двоен стисок',
 'tog-editsectiononrightclick' => 'Уредување на заглавија со десно копче од глушецот на нивниот наслов',
-'tog-showtoc' => 'Покажи содржина (за страници со повеќе од 3 заглавија)',
 'tog-rememberpassword' => 'Запомни ме на овој прелистувач (највеќе до $1 {{PLURAL:$1|ден|дена}})',
 'tog-watchcreations' => 'Додавај ги страниците што ги создавам и податотеките што ги подигам во списокот на набљудувања',
 'tog-watchdefault' => 'Додавај ги страниците и податотеките што ги уредувам во списокот на набљудувања',
@@ -2500,7 +2499,7 @@ $1',
 'watchmethod-list' => 'Проверерка на набљудуваните страници во скорешните уредувања',
 'watchlistcontains' => 'Вашиот список на набљудувања содржи $1 {{PLURAL:$1|страница|страници}}.',
 'iteminvalidname' => "Проблем со елементот '$1', неважечко име...",
-'wlnote' => "Подолу {{PLURAL:$1|е прикажана последната промена|се прикажани последните '''$1''' промени}} во {{PLURAL:$2|последниов час|последниве '''$2''' часа}}, заклучно со $3, $4 ч.",
+'wlnote2' => 'Подолу се прикажани промените направени во {{PLURAL:$1|последниов час|последните <strong>$1</strong> часа}}, согласно $2, $3.',
 'wlshowlast' => 'Прикажи ги последните $1 часа, $2 дена, $3',
 'watchlist-options' => 'Поставки за список на набљудувања',
 
@@ -3071,6 +3070,7 @@ $1',
 'allmessages-prefix' => 'Филтрирај по префикс:',
 'allmessages-language' => 'Јазик:',
 'allmessages-filter-submit' => 'Оди',
+'allmessages-filter-translate' => 'Преведување',
 
 # Thumbnails
 'thumbnail-more' => 'Зголеми',
@@ -3167,7 +3167,6 @@ $2',
 'tooltip-pt-watchlist' => 'Список на страници кои сте избрале да ги набљудувате.',
 'tooltip-pt-mycontris' => 'Список на ваши придонеси',
 'tooltip-pt-login' => 'Ви препорачуваме да се најавите, иако тоа не е задолжително.',
-'tooltip-pt-anonlogin' => 'Ви препорачуваме да се најавите, иако тоа не е задолжително.',
 'tooltip-pt-logout' => 'Одјавете се',
 'tooltip-ca-talk' => 'Разговор за страницата',
 'tooltip-ca-edit' => 'Можете да ја уредите оваа страница. Ве молиме користете го копчето за преглед пред зачувување.',
@@ -4019,7 +4018,7 @@ $5
 # Multipage image navigation
 'imgmultipageprev' => '&larr; претходна страница',
 'imgmultipagenext' => 'следна страница &rarr;',
-'imgmultigo' => 'Оди!',
+'imgmultigo' => 'Отвори',
 'imgmultigoto' => 'Оди на страница $1',
 
 # Language selector for translatable SVGs
index 4519785..a334b01 100644 (file)
@@ -366,7 +366,6 @@ $messages = array(
 'tog-showtoolbar' => 'തിരുത്തൽ റ്റൂൾബാർ  പ്രദർശിപ്പിക്കുക',
 'tog-editondblclick' => 'താളുകളിൽ ഇരട്ട ക്ലിക്ക് ചെയ്യുമ്പോൾ തിരുത്താനനുവദിക്കുക',
 'tog-editsectiononrightclick' => 'ഉപവിഭാഗങ്ങളുടെ തലക്കെട്ടിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുന്നതു വഴി തിരുത്താനനുവദിക്കുക',
-'tog-showtoc' => 'ഉള്ളടക്കപ്പട്ടിക പ്രദർശിപ്പിക്കുക (മൂന്നിൽ കൂടുതൽ ഉപശീർഷകങ്ങളുള്ള താളുകൾക്കു മാത്രം)',
 'tog-rememberpassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
 'tog-watchcreations' => 'ഞാൻ സൃഷ്ടിക്കുന്ന താളുകളും ഞാൻ അപ്‌ലോഡ് ചെയ്യുന്ന പ്രമാണങ്ങളും ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
 'tog-watchdefault' => 'ഞാൻ തിരുത്തുന്ന താളുകളും പ്രമാണങ്ങളും ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
@@ -905,6 +904,8 @@ $2',
 'retypenew' => 'പുതിയ രഹസ്യവാക്ക് ഉറപ്പിക്കുക:',
 'resetpass_submit' => 'രഹസ്യവാക്ക് സജ്ജീകരിച്ചശേഷം ലോഗിൻ ചെയ്യുക',
 'changepassword-success' => 'താങ്കളുടെ രഹസ്യവാക്ക് വിജയകരമായി മാറ്റിയിരിക്കുന്നു!',
+'changepassword-throttled' => 'കുറഞ്ഞ സമയത്തിനുള്ളിൽ താങ്കൾ നിരവധി തവണ പ്രവേശിക്കാൻ ശ്രമിച്ചിരിക്കുന്നു.
+വീണ്ടും ശ്രമിക്കുന്നതിനു മുമ്പ് ദയവായി $1 കാത്തിരിക്കുക.',
 'resetpass_forbidden' => 'രഹസ്യവാക്കുകൾ മാറ്റുന്നത് അനുവദിക്കുന്നില്ല',
 'resetpass-no-info' => 'ഈ താൾ നേരിട്ടു കാണുന്നതിന് താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കണം.',
 'resetpass-submit-loggedin' => 'രഹസ്യവാക്ക് മാറ്റുക',
@@ -958,6 +959,8 @@ $2
 'changeemail-password' => 'താങ്കളുടെ {{SITENAME}} രഹസ്യവാക്ക്:',
 'changeemail-submit' => 'ഇമെയിലിൽ മാറ്റംവരുത്തുക',
 'changeemail-cancel' => 'റദ്ദാക്കുക',
+'changeemail-throttled' => 'താങ്കൾ നിരവധി തവണ പ്രവേശിക്കാൻ ശ്രമിച്ചിരിക്കുന്നു.
+വീണ്ടും ശ്രമിക്കുന്നതിനു മുമ്പ് ദയവായി $1 കാത്തിരിക്കുക.',
 
 # Special:ResetTokens
 'resettokens' => 'ചീട്ടുകൾ പുനഃസജ്ജീകരിക്കുക',
@@ -2422,7 +2425,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'watchmethod-list' => 'ശ്രദ്ധിക്കുന്ന താളുകളിലെ പുതിയ മാറ്റങ്ങൾ പരിശോധിക്കുന്നു',
 'watchlistcontains' => 'താങ്കൾ {{PLURAL:$1|താൾ|താളുകൾ}} ശ്രദ്ധിക്കുന്നുണ്ട്.',
 'iteminvalidname' => "ഇനം '$1' ൽ പിഴവ്, അസാധുവായ പേര്‌...",
-'wlnote' => "$3, $4-നു കഴിഞ്ഞ {{PLURAL:$2|മണിക്കൂറിൽ|'''$2''' മണിക്കൂറിൽ}} നടന്ന {{PLURAL:$1|ഒരു പുതിയ മാറ്റം|'''$1''' പുതിയ മാറ്റങ്ങൾ}} താഴെ പ്രദർശിപ്പിച്ചിരിക്കുന്നു.",
+'wlnote2' => '$2, $3-നു കഴിഞ്ഞ {{PLURAL:$1|ഒരു മണിക്കൂറിലെ|<strong>$1</strong> മണിക്കൂറുകളിലെ}} മാറ്റങ്ങൾ താഴെക്കൊടുത്തിരിക്കുന്നു.',
 'wlshowlast' => 'ഒടുവിലത്തെ $1 മണിക്കൂറുകൾ $2 ദിനങ്ങൾ, $3 പ്രദർശിപ്പിക്കുക',
 'watchlist-options' => 'ശ്രദ്ധിക്കുന്ന താളുകളുടെ സജ്ജീകരണങ്ങൾ',
 
@@ -2808,7 +2811,7 @@ $1',
 'range_block_disabled' => 'സിസോപ്പിനു റേഞ്ച് ബ്ലോക്കു ചെയ്യാനുള്ള സൗകര്യം ദുർബലപ്പെടുത്തുക.',
 'ipb_expiry_invalid' => 'കാലാവധി സമയം അസാധുവാണ്‌.',
 'ipb_expiry_temp' => 'മറയ്ക്കപ്പെട്ട ഉപയോക്തൃനാമങ്ങളിലുള്ള തടയൽ സ്ഥിരമായിരിക്കണം.',
-'ipb_hide_invalid' => 'ഈ അംഗത്വം ഒതുക്കാൻ കഴിയില്ല; അതിന് {PLURAL:$1|ഒരു തിരുത്ത്|$1 തിരുത്തുകൾ}} ഉണ്ട്.',
+'ipb_hide_invalid' => 'ഈ അംഗത്വം ഒതുക്കാൻ കഴിയില്ല; അതിന് {{PLURAL:$1|ഒരു തിരുത്ത്|$1 തിരുത്തുകൾ}} ഉണ്ട്.',
 'ipb_already_blocked' => '"$1" ഇതിനകം തന്നെ തടയപ്പെട്ടിരിക്കുന്നു.',
 'ipb-needreblock' => '$1 നിലവിൽ തടയപ്പെട്ടതാണ്.<br />
 താങ്കൾ സജ്ജീകരണത്തിൽ മാറ്റം വരുത്തുവാൻ ഉദ്ദേശിക്കുന്നുണ്ടോ?',
@@ -2980,6 +2983,7 @@ $1',
 'allmessages-prefix' => 'പൂർവ്വപദത്തിനനുസരിച്ച് തിരഞ്ഞുവെയ്ക്കുക:',
 'allmessages-language' => 'ഭാഷ:',
 'allmessages-filter-submit' => 'പോകൂ',
+'allmessages-filter-translate' => 'പരിഭാഷപ്പെടുത്തുക',
 
 # Thumbnails
 'thumbnail-more' => 'വലുതാക്കി കാണിക്കുക',
@@ -3074,7 +3078,6 @@ $1',
 'tooltip-pt-watchlist' => 'താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളിലെ മാറ്റങ്ങൾ',
 'tooltip-pt-mycontris' => 'താങ്കളുടെ സേവനങ്ങളുടെ പട്ടിക',
 'tooltip-pt-login' => 'ലോഗിൻ ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു; പക്ഷേ നിർബന്ധമല്ല',
-'tooltip-pt-anonlogin' => 'ലോഗിൻ ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു; പക്ഷേ നിർബന്ധമല്ല',
 'tooltip-pt-logout' => 'ലോഗൗട്ട് ചെയ്യാനുള്ള കണ്ണി',
 'tooltip-ca-talk' => 'വിവരദായക താളിനെക്കുറിച്ചുള്ള ചർച്ച',
 'tooltip-ca-edit' => 'താങ്കൾക്ക് ഈ താൾ തിരുത്താവുന്നതാണ്. തിരുത്തിയ താൾ സേവ് ചെയ്യൂന്നതിനു മുൻപ് പ്രിവ്യൂ കാണുക.',
index ffea3b9..5a6e44c 100644 (file)
@@ -56,7 +56,6 @@ $messages = array(
 'tog-showtoolbar' => 'Засварлах түүлбарыг үзүүлэх (ЖаваСкрипт)',
 'tog-editondblclick' => 'Хоёр удаа дараад хуудсыг засварлах (ЖаваСкрипт)',
 'tog-editsectiononrightclick' => 'Хэсгийн гарчиг дээр баруун товчлуураар дарж засварладаг болгох (ЖаваСкрипт)',
-'tog-showtoc' => 'Агуулгын хүснэгтийг үзүүлэх (3-с илүү хэсэгтэй хуудсуудад)',
 'tog-rememberpassword' => 'Энэхүү хөтөч дээрх нэвтрэлтийг санах (хамгийн ихдээ $1 {{PLURAL:$1|өдрийн|өдрийн}} турш)',
 'tog-watchcreations' => 'Миний үүсгэсэн хуудсуудыг хянах жагсаалтанд оруулах',
 'tog-watchdefault' => 'Миний засварласан хуудсуудыг хянах жагсаалтанд оруулах',
index 55ca268..3c760f0 100644 (file)
@@ -341,7 +341,6 @@ $messages = array(
 'tog-showtoolbar' => 'संपादन साधनपट्टी दाखवा',
 'tog-editondblclick' => 'दुबार-टिचकुन पान संपादित करा',
 'tog-editsectiononrightclick' => 'विभाग शीर्षकावर उजव्या क्लिकने टिचकुन संपादन करणे शक्य करा',
-'tog-showtoc' => 'अनुक्रमणिका दाखवा(पानात ३ पेक्षा जास्त शीर्षके असल्यास)',
 'tog-rememberpassword' => 'माझा सनोंदप्रवेश (लॉग-ईन) या न्याहाळकावर लक्षात ठेवा (जास्तीत जास्त $1 {{PLURAL:$1|दिवसासाठी|दिवसांसाठी}})',
 'tog-watchcreations' => 'मी तयार केलेली पाने आणि चढविलेल्या संचिका माझ्या निरीक्षणसूचीत टाका',
 'tog-watchdefault' => 'मी संपादित केलेली पाने आणि संचिका माझ्या निरीक्षणसूचीत टाका',
@@ -2347,7 +2346,6 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'watchmethod-list' => 'अलीकडील बदलांकरिता पहाऱ्यातील पानांचा तपास',
 'watchlistcontains' => 'तुमचा $1 {{PLURAL:$1|पानावर|पानांवर}} पहारा आहे.',
 'iteminvalidname' => "'$1'या बाबीसाठी समस्या, अवैध नाव...",
-'wlnote' => "खाली $3, $4 पर्यंतचे गेल्या {{PLURAL:$2| '''१''' तासातील|'''$2''' तासातील}} {{PLURAL:$1|शेवटचा बदल दिला आहे|शेवटाचे '''$1'''बदल दिले आहेत}}.",
 'wlshowlast' => 'मागील $1 तास $2 दिवस $3 पहा',
 'watchlist-options' => 'पहाऱ्याच्या सूचीचे पर्याय',
 
@@ -2891,6 +2889,7 @@ $1',
 'allmessages-prefix' => 'उपसर्गाने गाळा:',
 'allmessages-language' => 'भाषा:',
 'allmessages-filter-submit' => 'चला',
+'allmessages-filter-translate' => 'भाषांतर करा',
 
 # Thumbnails
 'thumbnail-more' => 'मोठे करा',
@@ -2983,7 +2982,6 @@ $1',
 'tooltip-pt-watchlist' => 'तुम्ही पहारा दिलेल्या पानांची यादी',
 'tooltip-pt-mycontris' => 'तुमच्या योगदानांची यादी',
 'tooltip-pt-login' => 'आपणांस सदस्यत्व घेण्याची विनंती करण्यात येत आहे. सदस्यत्व घेणे अनिवार्य नाही.',
-'tooltip-pt-anonlogin' => 'आपण खात्यात दाखल व्हावे या करिता प्रोत्साहन देतो, अर्थात ते अत्यावश्यक नाही.',
 'tooltip-pt-logout' => 'सनोंद निर्गम',
 'tooltip-ca-talk' => 'आशय पानाबद्दलच्या चर्चा',
 'tooltip-ca-edit' => 'तुम्ही हे पान बद्लू शकता. कृपया जतन करण्यापूर्वी झलक कळ वापरून पहा.',
index d998720..126da5c 100644 (file)
@@ -210,7 +210,6 @@ $messages = array(
 'tog-showtoolbar' => 'Tunjukkan palang sunting (perlukan JavaScript)',
 'tog-editondblclick' => 'Dwiklik untuk sunting laman (JavaScript)',
 'tog-editsectiononrightclick' => 'Bolehkan penyuntingan bahagian dengan mengklik kanan pada tajuk bahagian',
-'tog-showtoc' => 'Tunjukkan isi kandungan (bagi rencana yang melebihi 3 tajuk)',
 'tog-rememberpassword' => 'Ingat log masuk saya di pelayar ini (tidak melebihi $1 {{PLURAL:$1|hari|hari}})',
 'tog-watchcreations' => 'Tambahkan laman yang saya buat dan fail yang saya muat naik ke dalam senarai pantau',
 'tog-watchdefault' => 'Tambahkan laman dan fail yang saya sunting ke dalam senarai pantau',
@@ -2280,7 +2279,6 @@ Perubahan-perubahan pada halaman ini dan halaman perbualannya pada masa akan dat
 'watchmethod-list' => 'menyemak suntingan terkini pada laman-laman yang dipantau',
 'watchlistcontains' => 'Terdapat $1 laman dalam senarai pantau anda.',
 'iteminvalidname' => "Terdapat masalah dengan item '$1', nama tidak sah...",
-'wlnote' => "Berikut ialah {{PLURAL:$1|perubahan|'''$1''' perubahan}} yang terkini dalam {{PLURAL:$2|sejam|'''$2''' jam}} yang lalu, tepat pada $3, $4.",
 'wlshowlast' => 'Tunjukkan $1 jam / $2 hari yang lalu / $3.',
 'watchlist-options' => 'Pilihan senarai pantau',
 
@@ -2932,7 +2930,6 @@ Simpan dalam komputer anda dan muat naiknya di sini.',
 'tooltip-pt-watchlist' => 'Senarai laman yang anda pantau',
 'tooltip-pt-mycontris' => 'Senarai sumbangan anda',
 'tooltip-pt-login' => 'Walaupun tidak wajib, anda digalakkan supaya log masuk.',
-'tooltip-pt-anonlogin' => 'Walaupun tidak wajib, anda digalakkan supaya log masuk.',
 'tooltip-pt-logout' => 'Log keluar',
 'tooltip-ca-talk' => 'Perbincangan mengenai laman kandungan',
 'tooltip-ca-edit' => "Anda boleh menyunting laman ini. Sila tekan butang 'pralihat' terlebih dahulu sebelum menyimpan.",
index 6c7c709..d0d0ca9 100644 (file)
@@ -285,7 +285,6 @@ $messages = array(
 'tog-showtoolbar' => 'Uri l-kolonna tal-għodda għall-immodifikar (bżonn tal-JavaScript)',
 'tog-editondblclick' => "Immodifika l-paġni permezz ta' klikk doppju (bżonn tal-JavaScript)",
 'tog-editsectiononrightclick' => "L-immodifikar ta' sezzjonijiet bi klikk lemini fuq it-titli tas-sezzjonijiet (bżonn tal-JavaScript)",
-'tog-showtoc' => "Uri l-werrej (għal paġni b'iktar minn 3 sezzjonijiet)",
 'tog-rememberpassword' => "Ftakar il-login tiegħi fuq dan il-browżer (għal massimu ta' {{PLURAL:$1|ġurnata|$1 ġurnata}})",
 'tog-watchcreations' => "Żid il-paġni li noħloq u l-fajls li ntella' fil-lista ta' osservazzjoni tiegħi",
 'tog-watchdefault' => "Żid il-paġni u l-fajls li nimmodifika fil-lista ta' osservazzjoni personali",
index dc3b40a..1ceb4b7 100644 (file)
@@ -330,7 +330,6 @@ $messages = array(
 'tog-showtoolbar' => 'Vis verktøylinje',
 'tog-editondblclick' => 'Rediger sider ved å dobbeltklikke',
 'tog-editsectiononrightclick' => 'Rediger avsnitt ved å høyreklikke på avsnittsoverskrift',
-'tog-showtoc' => 'Vis innholdsfortegnelse (for sider med flere enn tre avsnitt)',
 'tog-rememberpassword' => 'Husk meg i denne nettleseren (i høyst $1 {{PLURAL:$1|dag|dager}})',
 'tog-watchcreations' => 'Legg til sider jeg oppretter og filer jeg laster opp i min overvåkingsliste',
 'tog-watchdefault' => 'Legg til sider og filer jeg endrer på i min overvåkingsliste',
@@ -874,6 +873,8 @@ Hvis du velger å oppgi det, vil det blir anvendt for å gi deg som bruker anerk
 'retypenew' => 'Gjenta nytt passord:',
 'resetpass_submit' => 'Angi passord og logg inn',
 'changepassword-success' => 'Passordet ditt ble korrekt endret!',
+'changepassword-throttled' => 'Du har foretatt for mange nylige innloggingsforsøk.
+Vær vennlig å vente $1 før du prøver igjen.',
 'resetpass_forbidden' => 'Passord kan ikke endres',
 'resetpass-no-info' => 'Du må være logget inn for å gå til denne siden direkte',
 'resetpass-submit-loggedin' => 'Endre passord',
@@ -933,6 +934,7 @@ Midlertidig passord: $2',
 'changeemail-password' => 'Ditt passord på {{SITENAME}}:',
 'changeemail-submit' => 'Endre e-post',
 'changeemail-cancel' => 'Avbryt',
+'changeemail-throttled' => 'Du har foretatt for mange innloggingsforsøk. Vær vennlig å vente $1 før du prøver igjen.',
 
 # Special:ResetTokens
 'resettokens' => 'Nullstill merker',
@@ -2414,7 +2416,7 @@ Fremtidige endringer til denne siden og den tilhørende diskusjonssiden blir lis
 'watchmethod-list' => 'sjekker siste endringer for sider i overvåkningslisten',
 'watchlistcontains' => 'Overvåkningslisten inneholder $1 {{PLURAL:$1|side|sider}}.',
 'iteminvalidname' => 'Problem med «$1», ugyldig navn&nbsp;…',
-'wlnote' => "Nedenfor er {{PLURAL:$1|den siste endringen|de siste '''$1''' endringene}} {{PLURAL:$2|den siste timen|de siste '''$2''' timene}}, fra den $3, kl. $4",
+'wlnote2' => 'Nedenfor er endringene {{PLURAL:$1|den siste timen|de siste <strong>$1</strong> timene}}, per $2 $3.',
 'wlshowlast' => 'Vis siste $1 timer $2 dager $3',
 'watchlist-options' => 'Alternativ for overvåkningslisten',
 
@@ -2961,6 +2963,7 @@ Besøk [//translatewiki.net translatewiki.net] om du ønsker å bidra med overse
 'allmessages-prefix' => 'Filtrer etter prefiks:',
 'allmessages-language' => 'Språk:',
 'allmessages-filter-submit' => 'Gå',
+'allmessages-filter-translate' => 'Oversett',
 
 # Thumbnails
 'thumbnail-more' => 'Forstørr',
@@ -3052,7 +3055,6 @@ Lagre den på din egen datamaskin og last den opp her.',
 'tooltip-pt-watchlist' => 'Liste over sider du overvåker for endringer.',
 'tooltip-pt-mycontris' => 'Liste over dine bidrag',
 'tooltip-pt-login' => 'Du oppfordres til å logge inn, men det er ikke obligatorisk',
-'tooltip-pt-anonlogin' => 'Du oppfordres til å logge inn, men det er ikke obligatorisk.',
 'tooltip-pt-logout' => 'Logg ut',
 'tooltip-ca-talk' => 'Diskusjon om innholdssiden',
 'tooltip-ca-edit' => 'Du kan redigere denne siden. Vennligst bruk forhåndsvisningsknappen før du lagrer.',
index 4ff9d80..b380a0f 100644 (file)
@@ -226,7 +226,6 @@ $messages = array(
 'tog-showtoolbar' => 'Editeer-Warktüüchlist wiesen',
 'tog-editondblclick' => 'Sieden mit Dubbelklick ännern (JavaScript)',
 'tog-editsectiononrightclick' => 'En Afsatz mit en Rechtsklick ännern (Javascript)',
-'tog-showtoc' => "Wiesen vun'n Inholtsverteken bi Sieten mit mehr as dree Överschriften",
 'tog-rememberpassword' => 'Duersam inloggen (för maximaal $1 {{PLURAL:$1|Dag|Daag}})',
 'tog-watchcreations' => 'Nee schrevene Sieden op miene Oppasslist setten',
 'tog-watchdefault' => 'Op ne’e un ännerte Sieden oppassen',
index 96a5090..40e8780 100644 (file)
@@ -335,7 +335,6 @@ $messages = array(
 'tog-showtoolbar' => 'Laot de warkbalke zien',
 'tog-editondblclick' => 'Mit dubbelklik bewarken',
 'tog-editsectiononrightclick' => 'Bewarken van deelziejen meugelik maken mit n rechtermuusklik op n tussenkop',
-'tog-showtoc' => 'Samenvatting laoten zien van de zaken die an bod koemen (mit meer as dree onderwarpen)',
 'tog-rememberpassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
 'tog-watchcreations' => "Spul wa'k anmake op mien volglieste zetten",
 'tog-watchdefault' => "Spul wa'k bewarke op mien volglieste zetten",
index fb78ae6..e216dea 100644 (file)
@@ -15,6 +15,7 @@
  * @author Kaganer
  * @author Krish Dulal
  * @author Lkhatiwada
+ * @author Nirmal Dulal
  * @author RajeshPandey
  * @author Reedy
  * @author ne.wikipedia.org sysops
@@ -66,7 +67,6 @@ $messages = array(
 'tog-showtoolbar' => 'सम्पादन औजारबट्टा देखाउने',
 'tog-editondblclick' => 'दोहोरो क्लिकमा पृष्ठ सम्पादन गर्ने',
 'tog-editsectiononrightclick' => 'शीर्षकमा दाहिने क्लिकद्वारा खण्ड सम्पादन सक्षम पार्ने',
-'tog-showtoc' => 'सामग्री तालिका हेर्ने (तीन भन्दा बढी शीर्षक भएमा)',
 'tog-rememberpassword' => 'यस ब्राउजरमा मेरो प्रवेशलाई सम्झनुहोस् (अधिकतम $1 {{PLURAL:$1|दिन|दिनहरु}} सम्म)',
 'tog-watchcreations' => 'मेरो निगरानी सूचीमा मैले सृजना गरेको पृष्ठ र अपलोड जोड्ने',
 'tog-watchdefault' => 'मैले सम्पादन गरेको पृष्ठ र फाइल निगरानी सूचीमा थप्ने',
@@ -768,8 +768,8 @@ $2
 '''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
 'userjspreview' => "'''याद राख्नुहोस तपाईँले आफ्नो प्रयोगकर्ता JavaScript को पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''
 '''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
-'sitecsspreview' => "'''याद राख्नुहोस तपाईँले केवल वैश्विक CSS. को पूर्वावलोकन मात्र अवलोकन गर्नु भएको छ। '''
-'''यसलाà¤\87 à¤\85हिलà¥\87 सम्म संग्रह गरिएको छैन!'''",
+'sitecsspreview' => "'''याद राख्नुहोस् तपाईँले केवल विश्वव्यापी CSS. को पूर्वावलोकन मात्र अवलोकन गर्नुभएको छ। '''
+'''यसलाà¤\88 à¤\85हिलà¥\87सम्म संग्रह गरिएको छैन!'''",
 'sitejspreview' => "याद राख्नुहोस तपाईँले केवल JavaScript code को पूर्वावलोकन मात्र हेरिरहनु भएको छ। '''
 '''यसलाइ अहिले सम्म संग्रह गरिएको छैन!'''",
 'userinvalidcssjstitle' => "'''चेतावनी:''' यहाँ कुनैपनि \"\$1\" नामको स्कीन छैन ।
@@ -1098,7 +1098,7 @@ $1",
 याद गर्नुहोस् उनीहरुको {{SITENAME}}को सूची सामग्री पुरानो भएको हुनसक्छ ।',
 
 # Preferences page
-'preferences' => 'रà¥\8bà¤\9cाà¤\88हरू',
+'preferences' => 'रà¥\8bà¤\9cाà¤\87हरू',
 'mypreferences' => 'प्राथमिकताहरु',
 'prefs-edits' => 'सम्पादन संख्या:',
 'prefs-skin' => 'काँचुली',
@@ -1117,7 +1117,7 @@ $1",
 'prefs-watchlist-edits-max' => 'उच्चतम संख्या : १०००',
 'prefs-watchlist-token' => 'अवलोकन सूची टोकन:',
 'prefs-misc' => 'साधारण',
-'prefs-resetpass' => 'प्रवेशशव्द परिवर्रतन',
+'prefs-resetpass' => 'प्रवेश शब्द परिवर्तन',
 'prefs-changeemail' => 'इमेल परिवर्तन गर्ने',
 'prefs-setemail' => 'इमेल ठेगाना प्रविष्ट गर्ने',
 'prefs-email' => 'इमेल  विकल्पहरु',
@@ -1669,7 +1669,7 @@ $1',
 'statistics-header-pages' => 'पृष्ठहरुको तथ्याङ्क',
 'statistics-header-edits' => 'सम्पादनहरुको तथ्याङ्क',
 'statistics-header-views' => 'तथ्याङ्क देखाउनुहोस्',
-'statistics-header-users' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95हरà¥\81',
+'statistics-header-users' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤¤à¤¥à¥\8dयाà¤\99à¥\8dà¤\95हरà¥\82',
 'statistics-header-hooks' => 'अन्य तथ्याङ्कहरु',
 'statistics-articles' => 'सामग्री पृष्ठहरू',
 'statistics-pages' => 'पृष्ठहरू',
@@ -1849,7 +1849,7 @@ $1',
 'emailpage' => 'प्रयोगकर्तालाई इमेल गर्नुहोस्',
 'usermailererror' => 'मेल अब्जेक्टले देखाएको त्रुटि:',
 'defemailsubject' => '{{SITENAME}} प्रयपोगकर्ता "$1" बाट इमेल',
-'usermaildisabled' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤\88-मेल निरस्त गरिएको',
+'usermaildisabled' => 'पà¥\8dरयà¥\8bà¤\97à¤\95रà¥\8dता à¤\87मेल निरस्त गरिएको',
 'usermaildisabledtext' => 'यस विकिमा तपाईं अरु प्रयोगकर्तालाई ई-मेल पठाउन सक्नुहुन्न',
 'noemailtitle' => 'ईमेल ठेगाना नभएको',
 'noemailtext' => 'प्रयोगकर्ताले सही ई-मेल ठेगाना दर्शाएको छैन।',
@@ -1902,7 +1902,6 @@ $1',
 'watchmethod-list' => 'सम्पदान गरिएका निगरानी सुचीमा रहेका पृष्ठहरुको सम्पादन जाँच्दै',
 'watchlistcontains' => 'तपाईको निगरानी सुचीमा $1 {{PLURAL:$1|पृष्ठ|पृष्ठहरु}}रहेका छन् ।',
 'iteminvalidname' => "वस्तु '$1'मा समस्या , अमान्य नाम...",
-'wlnote' => "$3 र $4 अनुसार विगत {{PLURAL:$2|घण्टामा|'''$2''' घण्टाहरुमा}} {{PLURAL:$1|गरिएको अन्तिम परिवर्तन तल दिइएकोछ|गरिएका अन्तिम  '''$1''' परिवर्तनहरु तल दिइएका छन्}}।",
 'wlshowlast' => 'पछिल्ला $2 दिनहरूका $3 $1 घण्टाहरूका देखाउनुहोस्',
 'watchlist-options' => 'निगरानि सूची विकल्प',
 
@@ -2456,7 +2455,6 @@ $1को बन्देजको कारण : "$2" हो',
 'tooltip-pt-watchlist' => 'पृष्ठहरूको सूची जसका परिवर्तनहरूलाई तपाईँले निगरानी गरिरहनु भएको छ',
 'tooltip-pt-mycontris' => 'तपाईको योगदानको सूची',
 'tooltip-pt-login' => 'तपाईँलाई प्रवेशगर्न सुझाव दिइन्छ ; तर यो जरुरी भने छैन',
-'tooltip-pt-anonlogin' => 'तपाईँलाई लग-इन गर्न प्रोत्साहन गरिन्छ, तर यो अनिवार्य चाँही होइन।',
 'tooltip-pt-logout' => 'निर्गमन (लग आउट) गर्नुहोस्',
 'tooltip-ca-talk' => 'सामग्री पृष्ठबारेमा छलफल',
 'tooltip-ca-edit' => 'तपाईँले यो पृष्ठ सम्पादन गर्न सक्नुहुन्छ ।
@@ -3348,7 +3346,7 @@ $5
 'specialpages-group-pagetools' => 'पृष्ठ उपकरणहरू',
 'specialpages-group-wiki' => 'विकि डाटा र औजारहरु',
 'specialpages-group-redirects' => 'विशेष पृष्ठमा पठाउने',
-'specialpages-group-spam' => 'सà¥\8dपाम à¤\89पà¤\95रणहरà¥\81',
+'specialpages-group-spam' => 'सà¥\8dपाम à¤\89पà¤\95रणहरà¥\82',
 
 # Special:BlankPage
 'blankpage' => 'खाली पृष्ठहरू',
index 3378c4b..5b1176f 100644 (file)
@@ -390,7 +390,6 @@ $messages = array(
 'tog-showtoolbar' => 'Bewerkingswerkbalk weergeven',
 'tog-editondblclick' => 'Dubbelklikken voor bewerken',
 'tog-editsectiononrightclick' => 'Bewerken van deelpagina’s mogelijk maken met een rechtermuisklik op een tussenkop',
-'tog-showtoc' => 'Inhoudsopgave weergeven (voor pagina’s met minstens 3 tussenkoppen)',
 'tog-rememberpassword' => 'Aanmeldgegevens onthouden (maximaal $1 {{PLURAL:$1|dag|dagen}})',
 'tog-watchcreations' => "Pagina's die ik aanmaak en bestanden die ik upload automatisch volgen",
 'tog-watchdefault' => 'Pagina’s en bestanden die ik bewerk automatisch volgen',
@@ -2545,7 +2544,6 @@ Toekomstige bewerkingen van deze pagina en de bijbehorende overlegpagina worden
 'watchmethod-list' => "controleer pagina's op volglijst op wijzigingen",
 'watchlistcontains' => "Er {{PLURAL:$1|staat één pagina|staan $1 pagina's}} op uw volglijst.",
 'iteminvalidname' => "Probleem met object '$1', ongeldige naam…",
-'wlnote' => 'Hieronder {{PLURAL:$1|staat de laaste wijziging|staan de laatste $1 wijzigingen}} in {{PLURAL:$2|het laatste uur|de laatste $2 uur}} per $3 om $4.',
 'wlshowlast' => 'Laatste $1 uur, $2 dagen bekijken ($3)',
 'watchlist-options' => 'Opties voor volglijst',
 
@@ -3114,6 +3112,7 @@ Ga naar [https://www.mediawiki.org/wiki/Localisation MediaWiki-lokalisatie] en [
 'allmessages-prefix' => 'Filteren op voorvoegsel:',
 'allmessages-language' => 'Taal:',
 'allmessages-filter-submit' => 'OK',
+'allmessages-filter-translate' => 'Vertalen',
 
 # Thumbnails
 'thumbnail-more' => 'Vergroten',
@@ -3210,7 +3209,6 @@ Een tijdelijke map is niet aanwezig.',
 'tooltip-pt-watchlist' => "Overzicht van pagina's die u volgt",
 'tooltip-pt-mycontris' => 'Overzicht van uw bijdragen',
 'tooltip-pt-login' => 'U wordt van harte uitgenodigd om u aan te melden als gebruiker, maar dit is niet verplicht',
-'tooltip-pt-anonlogin' => 'U wordt van harte uitgenodigd om u aan te melden als gebruiker, maar dit is niet verplicht',
 'tooltip-pt-logout' => 'Afmelden',
 'tooltip-ca-talk' => 'Overleg over deze pagina',
 'tooltip-ca-edit' => 'U kunt deze pagina bewerken. Gebruik de knop "Bewerking ter controle bekijken" voordat u de pagina opslaat',
index 9fe0b93..7ace8ef 100644 (file)
@@ -331,7 +331,6 @@ $messages = array(
 'tog-showtoolbar' => 'Vis endringsverktøyline',
 'tog-editondblclick' => 'Endre sider med dobbeltklikk',
 'tog-editsectiononrightclick' => 'Endre avsnitt ved å høgreklikke på avsnittsoverskrifter',
-'tog-showtoc' => 'Vis innhaldsliste (for sider med meir enn tre bolkar)',
 'tog-rememberpassword' => 'Hugs innlogginga mi med denne nettlesaren (for høgst {{PLURAL:$1|éin dag|$1 dagar}})',
 'tog-watchcreations' => 'Legg til sidene eg opprettar og filene eg lastar opp på overvakingslista mi',
 'tog-watchdefault' => 'Legg til sidene og filene eg endrar på overvakingslista mi',
index 53ce978..4fb1a23 100644 (file)
@@ -302,7 +302,6 @@ $messages = array(
 'tog-showtoolbar' => 'Far veire la barra de menú',
 'tog-editondblclick' => 'Modificar las paginas amb un clic doble',
 'tog-editsectiononrightclick' => 'Modificar una seccion en fasent un clic drech suls títols de seccion',
-'tog-showtoc' => "Afichar l'ensenhador (per las paginas de mai de 3 seccions)",
 'tog-rememberpassword' => 'Se remembrar de mon senhal sus aqueste ordinator (al mai $1 {{PLURAL:$1|jorn|jorns}})',
 'tog-watchcreations' => "Apondre las paginas que creï e los fichièrs qu'impòrti a ma lista de seguiment",
 'tog-watchdefault' => "Apondre las paginas que modifiqui e los fichièrs qu'impòrti a ma lista de seguiment",
index 9e74549..4a69d4d 100644 (file)
@@ -269,7 +269,6 @@ $messages = array(
 'tog-showtoolbar' => 'ସମ୍ପାଦନା ଟୁଲବାର ଦେଖାଇବେ',
 'tog-editondblclick' => 'ଦୁଇଥର କ୍ଲିକରେ ପୃଷ୍ଠା ବଦଳାଇବେ',
 'tog-editsectiononrightclick' => 'ବିଭାଗ ନାମରେ ଡାହାଣ କ୍ଲିକ କରି ବିଭାଗ ସମ୍ପାଦନାକୁ ସଚଳ କରିବେ',
-'tog-showtoc' => 'ସୂଚୀପତ୍ର ଦେଖାଇବେ (୩ରୁ ଅଧିକ ମୁଖ୍ୟ ନାମ ଥିଲେ)',
 'tog-rememberpassword' => 'ଏହି ବ୍ରାଉଜରରେ (ସର୍ବାଧିକ $1 {{PLURAL:$1|day|ଦିନ}}) ପାଇଁ ମୋ ଲଗ-ଇନ ମନେରଖିଥିବେ',
 'tog-watchcreations' => 'ମୋ ତିଆରି ପୃଷ୍ଠାସବୁକୁ ଏବଂ ମୋ ଅପଲୋଡ଼ଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
 'tog-watchdefault' => 'ମୁଁ ବଦଳେଇଥିବା ପୃଷ୍ଠା ଏବଂ ଫାଇଲଗୁଡ଼ିକୁ ମୋର ଦେଖଣାତାଲିକାରେ ଯୋଡ଼ନ୍ତୁ',
@@ -2291,7 +2290,6 @@ URLଟି ଠିକ ଅଚିକି କି ନାଁ ଓ ସାଇଟଟି ସ
 'watchmethod-list' => 'ନଗଦ ବଦଳ ନିମନ୍ତେ ଦେଖାଯାଇଥିବା ପୃଷ୍ଠାମାନ ପରଖୁଛୁଁ',
 'watchlistcontains' => 'ଆପଣଙ୍କ ଦେଖଣାତାଲିକାରେ $1 {{PLURAL:$1|ଗୋଟି ପୃଷ୍ଠା|ଗୋଟି ପୃଷ୍ଠା}} ରହିଅଛି ।',
 'iteminvalidname' => "'$1' ଯୋଗୁଁ କିଛି ଅସୁବିଧା ହେଉଅଛି, ଭୁଲ ନାମ...",
-'wlnote' => "$3, $4 ସୁଦ୍ଧା ବିଗତ {{PLURAL:$2|ଘଣ୍ଟେ ଭିତରେ|'''$2''' ଘଣ୍ଟା ଭିତରେ}} ଘଟିଥିବା {{PLURAL:$1|ଶେଷ ବଦଳଟି ଅଛି|ଶେଷ '''$1''' ଟି ବଦଳ}} ତଳେ ଦିଆଯାଇଛି ।",
 'wlshowlast' => 'ଶେଷ $1 ଘଣ୍ଟା $2 ଦିନ $3 ଦେଖାଇବେ',
 'watchlist-options' => 'ଦେଖଣା ବିକଳ୍ପସବୁ',
 
@@ -2947,7 +2945,6 @@ MediaWiki ବ୍ୟବହାର କରି [[Special:Import|ପୃଷ୍ଠା 
 'tooltip-pt-watchlist' => 'ବଦଳ ପାଇଁ ଆପଣ ଦେଖାଶୁଣା କରୁଥିବା ପୃଷ୍ଠାଗୁଡ଼ିକର ତାଲିକା',
 'tooltip-pt-mycontris' => 'ଆପଣଙ୍କ ଅବଦାନ',
 'tooltip-pt-login' => 'ଆପଣଙ୍କୁ ଲଗ-ଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
-'tooltip-pt-anonlogin' => 'ଆପଣଙ୍କୁ ଲଗଇନ କରିବାକୁ କୁହାଯାଉଅଛି ସିନା, ବାଧ୍ୟ କରାଯାଉନାହିଁ',
 'tooltip-pt-logout' => 'ଲଗଆଉଟ',
 'tooltip-ca-talk' => 'ଏହି ପୃଷ୍ଠାଟି ଉପରେ ଆଲୋଚନା',
 'tooltip-ca-edit' => 'ଆପଣ ଏହି ପୃଷ୍ଠାଟିରେ ଅଦଳ ବଦଳ କରିପାରିବେ, ତେବେ ସାଇତିବା ଆଗରୁ ଦେଖଣା ଦେଖନ୍ତୁ ।',
index 174e8d2..ff5b8ec 100644 (file)
@@ -327,7 +327,6 @@ $messages = array(
 'tog-showtoolbar' => 'Pokaż pasek narzędzi',
 'tog-editondblclick' => 'Podwójne kliknięcie rozpoczyna edycję',
 'tog-editsectiononrightclick' => 'Kliknięcie prawym klawiszem myszy na tytule sekcji rozpoczyna jej edycję',
-'tog-showtoc' => 'Pokazuj spis treści (na stronach z więcej niż 3 nagłówkami)',
 'tog-rememberpassword' => 'Zapamiętaj moje hasło w przeglądarce (maksymalnie przez $1 {{PLURAL:$1|dzień|dni}})',
 'tog-watchcreations' => 'Dodawaj do obserwowanych tworzone przeze mnie strony oraz wgrywane przeze mnie pliki',
 'tog-watchdefault' => 'Dodawaj do obserwowanych strony i pliki, które edytuję',
@@ -882,6 +881,8 @@ Aby zakończyć proces logowania, musisz ustawić nowe hasło:',
 'retypenew' => 'Powtórz nowe hasło',
 'resetpass_submit' => 'Ustaw hasło i zaloguj się',
 'changepassword-success' => 'Twoje hasło zostało pomyślnie zmienione!',
+'changepassword-throttled' => 'Ostatnio zbyt wiele razy próbowałeś zalogować się na to konto.
+Odczekaj $1, zanim ponowisz próbę.',
 'resetpass_forbidden' => 'Hasła nie mogą zostać zmienione',
 'resetpass-no-info' => 'Musisz być zalogowany, by uzyskać bezpośredni dostęp do tej strony.',
 'resetpass-submit-loggedin' => 'Zmień hasło',
@@ -933,6 +934,8 @@ Tymczasowe hasło – $2',
 'changeemail-password' => 'Twoje hasło:',
 'changeemail-submit' => 'Zapisz nowy',
 'changeemail-cancel' => 'Anuluj',
+'changeemail-throttled' => 'Zbyt wiele razy próbowałeś zalogować się na to konto.
+Odczekaj $1, zanim ponowisz próbę.',
 
 # Special:ResetTokens
 'resettokens' => 'Resetuj tokeny',
@@ -1158,6 +1161,7 @@ Strona już istnieje.',
 'content-not-allowed-here' => 'Zawartość tego typu ($1) nie jest dozwolona na stronie [[$2]]',
 'editwarning-warning' => 'Opuszczenie tej strony może spowodować utratę wprowadzonych przez Ciebie zmian.
 Jeśli jesteś zalogowany możesz wyłączyć wyświetlanie tego ostrzeżenia w zakładce Edycja w swoich preferencjach.',
+'editpage-notsupportedcontentformat-title' => 'Nieobsługiwany format zawartości',
 
 # Content models
 'content-model-wikitext' => 'wikitekst',
@@ -1285,11 +1289,11 @@ Inni administratorzy {{GRAMMAR:D.lp|{{SITENAME}}}} nadal będą mieć dostęp do
 * Ujawnienie danych osobowych
 *: ''adres domowy, numer telefonu, numer PESEL itp''",
 'revdelete-legend' => 'Ustaw ograniczenia widoczności',
-'revdelete-hide-text' => 'Ukryj tekst wersji',
+'revdelete-hide-text' => 'Tekst wersji',
 'revdelete-hide-image' => 'Ukryj zawartość pliku',
 'revdelete-hide-name' => 'Ukryj akcję i cel',
-'revdelete-hide-comment' => 'Ukryj komentarz edycji',
-'revdelete-hide-user' => 'Ukryj nazwę użytkownika/adres IP',
+'revdelete-hide-comment' => 'Opis zmian',
+'revdelete-hide-user' => 'Nazwa użytkownika/adres IP',
 'revdelete-hide-restricted' => 'Ukryj informacje przed administratorami tak samo jak przed innymi',
 'revdelete-radio-same' => '(bez zmian)',
 'revdelete-radio-set' => 'Ukryty',
@@ -1644,8 +1648,8 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'right-editusercssjs' => 'Edycja plików CSS i JS innych użytkowników',
 'right-editusercss' => 'Edycja plików CSS innych użytkowników',
 'right-edituserjs' => 'Edycja plików JS innych użytkowników',
-'right-editmyusercss' => 'Edytuj własne pliki CSS',
-'right-editmyuserjs' => 'Edytuj własne pliki JavaScript',
+'right-editmyusercss' => 'Edycja swoich plików CSS',
+'right-editmyuserjs' => 'Edycja swoich plików JavaScript',
 'right-viewmywatchlist' => 'Podgląd swojej listy obserwowanych stron',
 'right-editmywatchlist' => 'Edycja swojej listy obserwowanych stron. Niektóre akcje mogą dodawać strony do obserwowanych bez tego uprawnienia.',
 'right-viewmyprivateinfo' => 'Podgląd swoich prywatnych danych (np. adres e-mail, prawdziwe imię i nazwisko)',
@@ -1654,8 +1658,8 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'right-rollback' => 'Szybkie wycofanie zmian wprowadzonych przez użytkownika, który jako ostatni edytował jakąś stronę',
 'right-markbotedits' => 'Oznaczanie rewertu jako edycji bota',
 'right-noratelimit' => 'Brak ograniczeń przepustowości',
-'right-import' => 'Import stron z innych wiki',
-'right-importupload' => 'Import stron poprzez przesłanie pliku',
+'right-import' => 'Importowanie stron z innych wiki',
+'right-importupload' => 'Importowanie stron poprzez przesłanie pliku',
 'right-patrol' => 'Oznaczanie edycji jako „sprawdzone”',
 'right-autopatrol' => 'Automatyczne oznaczanie własnych edycji jako „sprawdzone”',
 'right-patrolmarks' => 'Podgląd znaczników patrolowania ostatnich zmian – oznaczania jako „sprawdzone”',
@@ -2431,7 +2435,6 @@ Każda zmiana treści tej strony lub związanej z nią strony dyskusji zostanie
 'watchmethod-list' => 'poszukiwanie obserwowanych stron wśród ostatnich zmian',
 'watchlistcontains' => 'Na liście obserwowanych przez Ciebie stron {{PLURAL:$1|znajduje się 1 pozycja|znajdują się $1 pozycje|znajduje się $1 pozycji}}.',
 'iteminvalidname' => 'Problem z pozycją „$1” – niepoprawna nazwa...',
-'wlnote' => "Poniżej pokazano {{PLURAL:$1|zmianę wykonaną|'''$1''' zmiany wykonane|'''$1''' zmian wykonanych}} w ciągu {{PLURAL:$2|ostatniej godziny|ostatnich '''$2''' godzin}}, licząc od $4 dnia $3.",
 'wlshowlast' => 'Pokaż ostatnie $1 godzin, $2 dni ($3)',
 'watchlist-options' => 'Opcje obserwowanych',
 
@@ -2609,7 +2612,7 @@ Obecne ustawienia dla strony '''$1''' to:",
 'restriction-level-all' => 'dowolny stopień',
 
 # Undelete
-'undelete' => 'Odtwórz usuniętą stronę',
+'undelete' => 'Przeglądanie usuniętych stron',
 'undeletepage' => 'Odtwarzanie usuniętych stron',
 'undeletepagetitle' => "'''Poniżej znajdują się usunięte wersje strony [[:$1]]'''.",
 'viewdeletedpage' => 'Zobacz usunięte wersje',
@@ -2989,6 +2992,7 @@ Odwiedź [https://www.mediawiki.org/wiki/Localisation Tłumaczenie MediaWiki] or
 'allmessages-prefix' => 'Tytuły rozpoczynające się od',
 'allmessages-language' => 'Język:',
 'allmessages-filter-submit' => 'Pokaż',
+'allmessages-filter-translate' => 'Przetłumacz',
 
 # Thumbnails
 'thumbnail-more' => 'Powiększ',
@@ -3083,7 +3087,6 @@ Brak katalogu dla plików tymczasowych.',
 'tooltip-pt-watchlist' => 'Lista stron obserwowanych przez Ciebie',
 'tooltip-pt-mycontris' => 'Lista moich edycji',
 'tooltip-pt-login' => 'Zachęcamy do zalogowania się, choć nie jest to obowiązkowe.',
-'tooltip-pt-anonlogin' => 'Zachęcamy do zalogowania się, choć nie jest to obowiązkowe',
 'tooltip-pt-logout' => 'Wyloguj',
 'tooltip-ca-talk' => 'Dyskusja o zawartości tej strony',
 'tooltip-ca-edit' => 'Możesz edytować tę stronę. Przed zapisaniem zmian użyj przycisku podgląd.',
@@ -4287,4 +4290,6 @@ W zasadzie rozwijane jest prawie wszystko w podwójnych nawiasach klamrowych.',
 'expand_templates_generate_rawhtml' => 'Pokaż surowy HTML',
 'expand_templates_preview' => 'Podgląd',
 
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
 );
index b688e10..2a05d90 100644 (file)
@@ -54,7 +54,6 @@ $messages = array(
 'tog-showtoolbar' => "Smon-e la bara dj'utiss ëd modìfica",
 'tog-editondblclick' => 'Dobia sgnacà për modifiché la pàgina',
 'tog-editsectiononrightclick' => 'Abilité la modìfica dle session ën sgnacand-je ansima ai tìtoj col tast drit dël rat',
-'tog-showtoc' => "Smon-e la tàula dij contnù (për le pàgine che l'han pì che 3 session)",
 'tog-rememberpassword' => "Visesse ëd mia ciav ansima a 's navigador (për al pi $1 {{PLURAL:$1|di}})",
 'tog-watchcreations' => "Gionté le pàgine che i creo mi e j'archivi che i cario mi a la lista ëd lòn che im ten-o sot-euj",
 'tog-watchdefault' => "Gionté le pàgine e j'archivi che i modìfico mi a la lista dle ròbe ch'i ten-o sot-euj",
@@ -2153,7 +2152,7 @@ Le modìfiche che a-i saran ant costa pàgina-sì e ant soa pàgina ëd discussi
 'watchmethod-list' => 'contròl ëd le pàgine che as ten sot-euj për vëdde se a-i sio staje dle modìfiche recente',
 'watchlistcontains' => "Soa lista dla ròba ch'as ten sot-euj a l'ha andrinta {{PLURAL:$1|na pàgina|$1 pàgine}}.",
 'iteminvalidname' => "Problema con l'element '$1', nòm nen vàlid...",
-'wlnote' => "Ambelessì sota a-i {{PLURAL:$1|é l'ùltima modìfica|son j'ùltime '''$1''' modìfiche}} ant {{PLURAL:$2|l'ùltima ora|j'ùltime '''$2''' ore}}, a parte da $3, $4.",
+'wlnote2' => "Sì-sota a-i son le modìfiche {{PLURAL:$1|ant l'ùltima ora|ant j'ùltime <strong>$1</strong> ore}}, a parte da $2, $3.",
 'wlshowlast' => "Smon-e j'ùltime $1 ore $2 dì $3",
 'watchlist-options' => "Opsion ëd la lista dla ròba ch'as ten sot-euj",
 
@@ -2714,6 +2713,7 @@ Për piasì, ch'a vìsita la [https://www.mediawiki.org/wiki/Localisation Locali
 'allmessages-prefix' => 'Filtré për prefiss:',
 'allmessages-language' => 'Lenga:',
 'allmessages-filter-submit' => 'Apliché',
+'allmessages-filter-translate' => 'Volté',
 
 # Thumbnails
 'thumbnail-more' => 'Slarghé',
@@ -2808,7 +2808,6 @@ Për piasì, ch'a preuva torna.",
 'tooltip-pt-watchlist' => 'Lista dle pàgine che chiel as ten sot euj.',
 'tooltip-pt-mycontris' => 'Lista ëd soe contribussion',
 'tooltip-pt-login' => "Un a l'é nen obligà a rintré ant al sistema, ma se a lo fa a l'é mej",
-'tooltip-pt-anonlogin' => "Un a l'é nen obligà a rintré ant al sistema, ma se a lo fa a l'é mej",
 'tooltip-pt-logout' => 'Seurte da',
 'tooltip-ca-talk' => 'Discussion ansima a sta pàgina ëd contnù.',
 'tooltip-ca-edit' => 'A peul modifiché sa pàgina-sì. Për piasì, che as fasa na preuva anans che salvé.',
index ac82929..eac64a9 100644 (file)
@@ -33,7 +33,6 @@ $messages = array(
 'tog-showtoolbar' => 'ایڈٹ ٹولبار وکھاؤ',
 'tog-editondblclick' => 'صفیاں تے ڈبل کلک کرن تے تبدیلیاں لیاؤ',
 'tog-editsectiononrightclick' => 'سیکشن سرخی تے تبدیلی لیاؤ سجی کلک نال',
-'tog-showtoc' => 'آرٹیکل دی لسٹ دسو (3 توں چوکھیاں سرخیاں والے صفیاں دی)',
 'tog-rememberpassword' => 'اس براؤزر تے میرا ورتن ناں یاد رکھو ($1 {{PLURAL:$1|دن|دناں}} واسطے)',
 'tog-watchcreations' => 'جیہڑے صفے میں بناندا واں اوہ میری اکھ تھلے لسٹ چ کر دیو',
 'tog-watchdefault' => 'جیہڑے صفے میں لکھداں اوہ میری اکھ تھلے لسٹ چ کر دیو',
index bee5a8f..a170a38 100644 (file)
@@ -25,7 +25,6 @@ $messages = array(
 'tog-showtoolbar' => 'Waidinnais sawinzlin stēisan pagaptin (JavaScript)',
 'tog-editondblclick' => 'Redigīs pāusans pra dwigubban pellis gnesnan (JavaScript)',
 'tog-editsectiononrightclick' => 'Ermazīnginais redigīsnan stēisan pāusas sekciōnin pra tikrōman pellis knuppas gnesnan na tenesses tītelin',
-'tog-showtoc' => 'Waidinnais ēnturas listin (en pāusamans sen tūls nikāi 3 galwasrīndans)',
 'tog-rememberpassword' => 'Pamēnais enēisenes infōrmaciōnins en šismu kōmputerin (per maksimum of $1 {{PLURAL:$1|deinā|dēinans}})',
 'tog-watchcreations' => 'Preidāis pāusans kawīdans as teīke prei majjan listin stēisan nadirītan',
 'tog-watchdefault' => 'Preidāis pāusans kawīdans as redigijja prei majjan listin stēisan nadirītan',
index 321d400..ddeb146 100644 (file)
@@ -332,7 +332,6 @@ $messages = array(
 'tog-showtoolbar' => 'Mostrar barra de edição',
 'tog-editondblclick' => 'Editar páginas quando houver um clique duplo',
 'tog-editsectiononrightclick' => 'Possibilitar a edição de seções por clique com o botão direito no título da seção',
-'tog-showtoc' => 'Mostrar índice (para páginas com mais de três seções)',
 'tog-rememberpassword' => 'Recordar os meus dados neste browser (no máximo, durante $1 {{PLURAL:$1|dia|dias}})',
 'tog-watchcreations' => 'Adicionar as páginas e ficheiros que eu criar às minhas páginas vigiadas',
 'tog-watchdefault' => 'Adicionar as páginas e ficheiros que eu editar às minhas páginas vigiadas',
@@ -2444,7 +2443,6 @@ Modificações futuras desta página e da respetiva página de discussão serão
 'watchmethod-list' => 'a procurar mudanças recentes nas páginas vigiadas',
 'watchlistcontains' => 'A sua lista de páginas vigiadas contém $1 {{PLURAL:$1|página|páginas}}.',
 'iteminvalidname' => "Problema com item '$1', nome inválido...",
-'wlnote' => "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas '''$1''' alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas '''$2''' horas}} até $3, $4.",
 'wlshowlast' => 'Ver últimas $1 horas $2 dias $3',
 'watchlist-options' => 'Opções da lista de páginas vigiadas',
 
@@ -3097,7 +3095,6 @@ Não há um diretório temporário.',
 'tooltip-pt-watchlist' => 'Lista de mudanças nas páginas que está a vigiar',
 'tooltip-pt-mycontris' => 'Lista das suas contribuições',
 'tooltip-pt-login' => 'É encorajado a autenticar-se, apesar de não ser obrigatório.',
-'tooltip-pt-anonlogin' => 'É encorajado a autenticar-se, apesar de não ser obrigatório.',
 'tooltip-pt-logout' => 'Terminar esta sessão na wiki',
 'tooltip-ca-talk' => 'Discussão sobre o conteúdo da página',
 'tooltip-ca-edit' => 'Pode editar esta página.
index 2af9609..4d28ef7 100644 (file)
@@ -339,7 +339,6 @@ $messages = array(
 'tog-showtoolbar' => 'Mostrar barra de ferramentas de edição',
 'tog-editondblclick' => 'Editar páginas quando houver clique duplo',
 'tog-editsectiononrightclick' => 'Habilitar edição de seção por clique com o botão direito no título da seção (requer JavaScript)',
-'tog-showtoc' => 'Mostrar Tabela de Conteúdos (para páginas com mais de três cabeçalhos)',
 'tog-rememberpassword' => 'Recordar meus dados de acesso neste navegador (por no máximo $1 {{PLURAL:$1|dia|dias}})',
 'tog-watchcreations' => 'Adicionar as páginas e arquivos que eu criar à minha lista de páginas vigiadas',
 'tog-watchdefault' => 'Adicionar as páginas e arquivos que eu editar à minha lista de páginas vigiadas',
@@ -2443,7 +2442,6 @@ Futuras modificações em tal página e páginas de discussão relacionadas ser
 'watchmethod-list' => 'verificando páginas vigiadas para edições recentes',
 'watchlistcontains' => 'Sua lista de páginas vigiadas contém $1 {{PLURAL:$1|página|páginas}}.',
 'iteminvalidname' => "Problema com item '$1', nome inválido...",
-'wlnote' => "A seguir {{PLURAL:$1|está a última alteração ocorrida|estão as últimas '''$1''' alterações ocorridas}} {{PLURAL:$2|na última hora|nas últimas '''$2''' horas}} a partir de $3, $4.",
 'wlshowlast' => 'Ver últimas $1 horas $2 dias $3',
 'watchlist-options' => 'Opções da lista de páginas vigiadas',
 
@@ -3088,7 +3086,6 @@ Salve o arquivo no seu computador e importe-o aqui.',
 'tooltip-pt-watchlist' => 'Lista de alterações nas páginas que você está monitorando',
 'tooltip-pt-mycontris' => 'Listagem de suas contribuições',
 'tooltip-pt-login' => 'Você é encorajado a autenticar-se, apesar disso não ser obrigatório.',
-'tooltip-pt-anonlogin' => 'Você é encorajado a autenticar-se, apesar disso não ser obrigatório.',
 'tooltip-pt-logout' => 'Sair',
 'tooltip-ca-talk' => 'Discussão sobre o conteúdo da página',
 'tooltip-ca-edit' => 'Você pode editar esta página. Use o botão "Mostrar previsão" antes de salvar.',
index ebb470f..341bcfc 100644 (file)
@@ -183,8 +183,6 @@ This is the toolbar: [[Image:Toolbar.png]]",
 [[Special:Preferences]], tab 'Edit'. Offers user to open edit page on double click.",
 'tog-editsectiononrightclick' => "{{Gender}}
 [[Special:Preferences]], tab 'Edit'. Offers user to edit a section by clicking on a section title.",
-'tog-showtoc' => "[[Special:Preferences]], tab 'Misc'.
-Offers user to show a table of contents automatically if a page has more than 3 headings (= 4 or more headings).",
 'tog-rememberpassword' => "{{Gender}}
 [[Special:Preferences]], tab 'User profile', section 'Change password'. Offers user remember login details.
 Parameters:
@@ -855,8 +853,10 @@ See also:
 * {{msg-mw|Youhavenewmessages}}',
 'newmessageslinkplural' => "This is the first link displayed in an orange rectangle when a user gets a message on their talk page.
 
-Used as <code>$1</code> in messages {{msg-mw|youhavenewmessagesfromusers}}, {{msg-mw|youhavenewmessagesmanyusers}}, {{msg-mw|youhavenewmessages}}.
-
+Used as <code>$1</code> in the following messages:
+* {{msg-mw|youhavenewmessagesfromusers}}
+* {{msg-mw|youhavenewmessagesmanyusers}}
+* {{msg-mw|youhavenewmessages}}.
 Parameters:
 * $1 - 1 or 999:
 ** 1 - if there was '''one''' new edit since the last time the user has seen their talk page
@@ -1624,7 +1624,9 @@ Parameters:
 This is a protection against robots trying to find the password by trying lots of them.
 The number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].
 This message is used in html.
-{{identical|Login throttled}}',
+
+See also:
+* {{msg-mw|Changeemail-throttled}}',
 'resetpass_forbidden' => "Used as error message in changing password. Maybe the external auth plugin won't allow local password changes.",
 'resetpass-no-info' => 'Error message for [[Special:ChangePassword]].
 
@@ -1733,7 +1735,9 @@ Parameters:
 This is a protection against robots trying to find the password by trying lots of them.
 The number of attempts and waiting time are configured via [[mw:Manual:$wgPasswordAttemptThrottle|$wgPasswordAttemptThrottle]].
 This message is used in html.
-{{identical|Login throttled}}',
+
+See also:
+* {{msg-mw|Changepassword-throttled}}',
 
 # Special:ResetTokens
 'resettokens' => '{{doc-special|ResetTokens}}
@@ -5462,13 +5466,14 @@ See also:
 * {{msg-mw|Watchlist-details}}',
 'iteminvalidname' => 'Parameters:
 * $1 - item name',
-'wlnote' => 'Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.
+'wlnote2' => 'Used on [[Special:Watchlist]] when a maximum number of hours or days is specified.
 
 Parameters:
-* $1 - the number of changes shown
-* $2 - the number of hours for which the changes are shown
-* $3 - a date alone
-* $4 - a time alone',
+* $1 - the number of hours for which the changes are shown
+* $2 - a date alone
+* $3 - a time alone
+See also:
+* {{msg-mw|Wlnote}}',
 'wlshowlast' => 'Appears on [[Special:Watchlist]]. Parameters:
 * $1 - a choice of different numbers of hours ("1 | 2 | 6 | 12")
 * $2 - a choice of different numbers of days ("1 | 3 | 7")
@@ -7190,7 +7195,8 @@ See also:
 'allmessages-filter-submit' => 'Used on [[Special:Allmessages]].
 
 {{Identical|Go}}',
-'allmessages-filter-translate' => 'Used on [[Special:Allmessages]]. Label for a link to translatewiki.net for a message to translate.',
+'allmessages-filter-translate' => 'Used on [[Special:Allmessages]]. Label for a link to translatewiki.net for a message to translate.
+{{Identical|Translate}}',
 
 # Thumbnails
 'thumbnail-more' => '[[Image:Yes.png|thumb|This:]]
@@ -7527,12 +7533,6 @@ See also:
 * {{msg-mw|Accesskey-pt-mycontris}}
 * {{msg-mw|Tooltip-pt-mycontris}}',
 'tooltip-pt-login' => "Tooltip shown when hovering over the link 'Log in / create account' in the upper right corner show on all pages while not logged in.",
-'tooltip-pt-anonlogin' => 'Used as tooltip for link {{msg-mw|Login}} in your personal toolbox (upper right side).
-
-See also:
-* {{msg-mw|Login}}
-* {{msg-mw|Accesskey-pt-anonlogin}}
-* {{msg-mw|Tooltip-pt-anonlogin}}',
 'tooltip-pt-logout' => 'Tooltip shown when hovering over the {{msg-mw|Logout}} link in your personal toolbox (upper right side).
 
 See also:
@@ -8156,7 +8156,8 @@ See also:
 # Skin names
 'skinname-cologneblue' => '{{optional}}',
 'skinname-monobook' => '{{optional}}',
-'skinname-modern' => '{{optional}}',
+'skinname-modern' => '{{optional}}
+{{Identical|Modern}}',
 'skinname-vector' => '{{optional}}',
 
 # Patrolling
index 2d6aeb3..3c6dee6 100644 (file)
@@ -275,7 +275,6 @@ $messages = array(
 'tog-showtoolbar' => "Llamk'apuna sillwita rikuchiy",
 'tog-editondblclick' => "P'anqakunata llamk'apuy iskaylla ñit'iywan",
 'tog-editsectiononrightclick' => "Rakirilla llamk'apuyta saqillay paña butunta rakirip sutinpi ñit'ispa",
-'tog-showtoc' => "Yuyarina wachuchasqata rikuchiy (kimsamanta aswan uma siq'iyuq p'anqakunapaq)",
 'tog-rememberpassword' => "Ruraqpa sutiyta yaykuna rimaytapas yuyaykuy kay llika wamp'unapi ({{PLURAL:$1|huk p'unchawkama|$1 p'unchawkama}})",
 'tog-watchcreations' => "Qallarisqay p'anqakunata churkusqay willañiqikunatapas watiqay",
 'tog-watchdefault' => "Hukchasqay p'anqakunata willañiqikunatapas watiqay",
index 2742a28..6e580a8 100644 (file)
@@ -55,7 +55,6 @@ $messages = array(
 'tog-showtoolbar' => "Mussar la trav d'utensils per modifitgar",
 'tog-editondblclick' => 'Modifitgar paginas cun in clic dubel',
 'tog-editsectiononrightclick' => 'Activar la pussaivladad da modifitgar secziuns cun in clic dretg sin il titel',
-'tog-showtoc' => 'Mussar ina tabla da cuntegn sin paginas cun dapli che trais tetels',
 'tog-rememberpassword' => "S'annunziar permanantamain cun quest navigatur (per maximalmain $1 {{PLURAL:$1|di|dis}})",
 'tog-watchcreations' => "Agiuntar paginas ch'jeu creesch e datotecas ch'jau transferesch a la glista d'observaziun",
 'tog-watchdefault' => "Agiuntar paginas e datotecas ch'jau modifitgesch a la glista d'observaziun",
index e354412..5a372ba 100644 (file)
@@ -309,7 +309,6 @@ $messages = array(
 'tog-showtoolbar' => 'Afișează bara de unelte pentru modificare',
 'tog-editondblclick' => 'Modifică paginile prin dublu clic',
 'tog-editsectiononrightclick' => 'Activează modificarea secţiunilor prin clic dreapta pe titlul secțiunii',
-'tog-showtoc' => 'Arată cuprinsul (pentru paginile cu mai mult de 3 paragrafe cu titlu)',
 'tog-rememberpassword' => 'Autentificare automată de la acest navigator (expiră după $1 {{PLURAL:$1|zi|zile|de zile}})',
 'tog-watchcreations' => 'Adaugă paginile pe care le creez și fișierele pe care le încarc la lista mea de pagini urmărite',
 'tog-watchdefault' => 'Adaugă paginile și fișierele pe care le modific la lista mea de urmărire',
@@ -856,6 +855,8 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a atribui utilizatoru
 'retypenew' => 'Reintroduceți noua parolă:',
 'resetpass_submit' => 'Setează parola și autentifică',
 'changepassword-success' => 'Parola dumneavoastră a fost schimbată cu succes!',
+'changepassword-throttled' => 'Ați avut prea multe încercări recente de a vă autentifica.
+Vă rugăm să așteptați $1 până să reîncercați.',
 'resetpass_forbidden' => 'Parolele nu pot fi schimbate.',
 'resetpass-no-info' => 'Trebuie să fiți autentificat pentru a accesa această pagină direct.',
 'resetpass-submit-loggedin' => 'Modifică parola',
@@ -911,6 +912,8 @@ Parolă temporară: $2',
 'changeemail-password' => 'Parola dumneavoastră la {{SITENAME}}:',
 'changeemail-submit' => 'Modifică adresa de e-mail',
 'changeemail-cancel' => 'Revocare',
+'changeemail-throttled' => 'Ați avut prea multe încercări de a vă autentifica.
+Vă rugăm să așteptați $1 până să reîncercați.',
 
 # Special:ResetTokens
 'resettokens' => 'Resetare jetoane',
@@ -2403,7 +2406,7 @@ Modificările viitoare efectuate asupra acestei pagini dar și asupra paginii de
 'watchmethod-list' => 'căutarea paginilor urmărite pentru schimbări recente',
 'watchlistcontains' => 'Lista de pagini urmărite conține $1 {{PLURAL:$1|element|elemente|de elemente}}.',
 'iteminvalidname' => "E o problemă cu elementul '$1', numele este invalid...",
-'wlnote' => "Mai jos se află {{PLURAL:$1|ultima schimbare|ultimele $1 schimbări|ultimele $1 de schimbări}} din {{PLURAL:$2|ultima oră|ultimele '''$2''' ore|ultimele '''$2''' de ore}}, așa cum era situația la $3, $4.",
+'wlnote2' => 'Mai jos se află schimbările din {{PLURAL:$1|ultima oră|ultimele <strong>$1</strong> ore|ultimele <strong>$1</strong> de ore}}, așa cum era situația la $2, $3.',
 'wlshowlast' => 'Arată ultimele $1 ore $2 zile $3',
 'watchlist-options' => 'Opțiuni listă de pagini urmărite',
 
@@ -2963,6 +2966,7 @@ Vă rugăm să vizitați [https://www.mediawiki.org/wiki/Localisation MediaWiki
 'allmessages-prefix' => 'Filtru după prefix:',
 'allmessages-language' => 'Limbă:',
 'allmessages-filter-submit' => 'Du-te',
+'allmessages-filter-translate' => 'Traducere',
 
 # Thumbnails
 'thumbnail-more' => 'Extindere',
@@ -3057,7 +3061,6 @@ Un dosar temporar lipsește.',
 'tooltip-pt-watchlist' => 'Lista paginilor pe care le monitorizați',
 'tooltip-pt-mycontris' => 'Listă de contribuții',
 'tooltip-pt-login' => 'Sunteți încurajat să vă autentificați, deși acest lucru nu este obligatoriu.',
-'tooltip-pt-anonlogin' => 'Sunteți încurajat să vă autentificați, deși acest lucru nu este obligatoriu.',
 'tooltip-pt-logout' => 'Închideți sesiunea de lucru',
 'tooltip-ca-talk' => 'Discuții despre această pagină',
 'tooltip-ca-edit' => 'Puteți modifica această pagină. Înainte de a o salva vă rugăm s-o previzualizați.',
index 4772c41..b07e4be 100644 (file)
@@ -36,7 +36,6 @@ $messages = array(
 'tog-showtoolbar' => "Fà vedè 'a barra de le cangiaminde",
 'tog-editondblclick' => "Cange le pàggene cu 'nu doppie clic",
 'tog-editsectiononrightclick' => "Abbilite le cangiaminde d'a sezione ausanne 'u pulsande destre d'u sciorge cazzanne sus a 'u titole",
-'tog-showtoc' => "Fa vedè 'a tabbelle de le condenute (pe le pàggene cu cchiù de 3 testate)",
 'tog-rememberpassword' => "Arrecuèrdete 'u nome mije sus a stu browser (pe 'nu massime de $1 {{PLURAL:$1|sciurne}})",
 'tog-watchcreations' => "Mitte le pàggene ca je agghie ccrejate jndr'à le pàggene condrollate",
 'tog-watchdefault' => "Mitte le pàggene ca je agghie cangiate jndr'à le pàggene condrollate",
@@ -2171,7 +2170,6 @@ Le cangiaminde future a sta pàgene e 'a pàgene de le 'ngazzaminde associete le
 'watchmethod-list' => 'stoche a condrolle le pàggene condrollete pe le urteme cangiaminde',
 'watchlistcontains' => "'A liste de le pàggene condrollete toje condene $1 {{PLURAL:$1|pàgene|pàggene}}.",
 'iteminvalidname' => "Probbleme cu 'a vosce '$1', nome invalide...",
-'wlnote' => "Aqquà sotte {{PLURAL:$1|ste l'urteme cangiamende|stonne l'urteme '''$1''' cangiaminde}} jndr'à {{PLURAL:$2|l'urtema ore|l'urteme '''$2''' ore}}, jndr'à $3, $4.",
 'wlshowlast' => "Vide l'urteme $1 ore $2 sciurne $3",
 'watchlist-options' => "Opzione d'a liste de le pàggene condrollete",
 
@@ -2742,6 +2740,7 @@ Pe piacere vè vide [https://www.mediawiki.org/wiki/Localisation Localizzazione
 'allmessages-prefix' => 'Filtrate pe prefisse:',
 'allmessages-language' => 'Lènga:',
 'allmessages-filter-submit' => 'Veje',
+'allmessages-filter-translate' => 'Traduce',
 
 # Thumbnails
 'thumbnail-more' => 'Allarije',
@@ -2838,7 +2837,6 @@ Reggistrele sus a 'u combiuter tune e carechele aqquà.",
 'tooltip-pt-watchlist' => "'A liste de le pàggene ca ste condrolle pe le camgiaminde",
 'tooltip-pt-mycontris' => 'Liste de le condrebbute mie',
 'tooltip-pt-login' => "Tu si 'ncoraggiete a cullegarte, jidde non g'è 'n'obblighe.",
-'tooltip-pt-anonlogin' => "Tu si 'ncoraggiete a cullegarte; però non g'è 'n'obblighe.",
 'tooltip-pt-logout' => 'Isse',
 'tooltip-ca-talk' => "'Ngazzaminde sus 'a pàgene de le condenute",
 'tooltip-ca-edit' => "Tu puè cangià sta pàgene.
index f34c369..75821f4 100644 (file)
@@ -454,7 +454,6 @@ $messages = array(
 'tog-showtoolbar' => 'Показывать верхнюю панель инструментов при редактировании',
 'tog-editondblclick' => 'Править страницы по двойному щелчку',
 'tog-editsectiononrightclick' => 'Править секции при правом щелчке мышью на заголовке',
-'tog-showtoc' => 'Показывать оглавление (для страниц более чем с 3 заголовками)',
 'tog-rememberpassword' => 'Помнить мою учётную запись в этом браузере (не более $1 {{PLURAL:$1|дня|дней}})',
 'tog-watchcreations' => 'Добавлять в список наблюдения созданные мной страницы и загруженные мной файлы',
 'tog-watchdefault' => 'Добавлять в список наблюдения изменённые мной страницы и описания файлов',
@@ -2561,7 +2560,7 @@ $1',
 'watchmethod-list' => 'просмотр наблюдаемых страниц для последних изменений',
 'watchlistcontains' => 'Ваш список наблюдения содержит $1 {{PLURAL:$1|страница|страниц|страницы}}.',
 'iteminvalidname' => 'Проблема с элементом «$1», недопустимое название…',
-'wlnote' => "Ниже {{PLURAL:$1|показано $1 последнее изменение|показаны $1 последних изменений|показаны $1 последние изменения|1=показано последнее изменение}} за {{PLURAL:$2|'''$2''' последний час|последние '''$2''' часов|последние '''$2''' часа|1=последний час}}, по состоянию на $3 $4.",
+'wlnote2' => 'Ниже приведены изменения за {{PLURAL:$1|последний час|последние <strong>$1</strong> часов|последние <strong>$1</strong> часа}} на $2 $3.',
 'wlshowlast' => 'Показать за последние $1 часов $2 дней $3',
 'watchlist-options' => 'Настройки списка наблюдения',
 
@@ -3117,6 +3116,7 @@ $1',
 'allmessages-prefix' => 'Фильтр по префиксу:',
 'allmessages-language' => 'Язык:',
 'allmessages-filter-submit' => 'Перейти',
+'allmessages-filter-translate' => 'Перевести',
 
 # Thumbnails
 'thumbnail-more' => 'Увеличить',
@@ -3209,7 +3209,6 @@ $2',
 'tooltip-pt-watchlist' => 'Список страниц, изменения в которых вы отслеживаете',
 'tooltip-pt-mycontris' => 'Список ваших правок',
 'tooltip-pt-login' => 'Здесь можно зарегистрироваться в системе, но это необязательно.',
-'tooltip-pt-anonlogin' => 'Здесь можно зарегистрироваться в системе, но это необязательно.',
 'tooltip-pt-logout' => 'Завершить сеанс работы',
 'tooltip-ca-talk' => 'Обсуждение основной страницы',
 'tooltip-ca-edit' => 'Вы можете редактировать эту страницу. Перед тем, как записать свои изменения, воспользуйтесь, пожалуйста, кнопкой предварительного просмотра.',
index c7b28de..441b4e0 100644 (file)
@@ -128,7 +128,6 @@ $messages = array(
 'tog-showtoolbar' => 'Вказати панел інштрументів',
 'tog-editondblclick' => 'Едітовати двоїтым кликом',
 'tog-editsectiononrightclick' => 'Дозволити едітованя секції сторінкы через кликаня правов клапков мышкы на надписы сторінок',
-'tog-showtoc' => 'Вказовати обсяг (на сторінках з веце як трёма надписами)',
 'tog-rememberpassword' => 'Запамнятати моє приголошіня на тім переглядачу (максімално $1 {{PLURAL:$1|день|днів}})',
 'tog-watchcreations' => 'Придавати сторінкы створены мнов тай файлы мнов наладованы до мого списку слїдованых',
 'tog-watchdefault' => 'Придавати мнов едітованы сторінкы і файлы до списку слїдованых',
index 1686aec..fc78409 100644 (file)
@@ -289,7 +289,6 @@ $messages = array(
 'tog-showtoolbar' => 'सम्पादन-उपकरण-पट्टिका दर्श्यताम् (जावालिपिः अपेक्ष्यते)',
 'tog-editondblclick' => 'द्विक्लिक्कारेण पृष्ठानि सम्पाद्यन्ताम् (जावालिपिः अपेक्ष्यते)',
 'tog-editsectiononrightclick' => 'विभागशीर्षकाणामुपरि दक्षिणक्लिक्करणेन विभागसम्पादनं समर्थ्यताम् (जावालिपिः अपेक्ष्यते)।',
-'tog-showtoc' => 'विषयानुक्रमणिका दर्श्यताम् (त्र्यधिकशीर्षकयुतेषु पृष्ठेषु)।',
 'tog-rememberpassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})',
 'tog-watchcreations' => 'मया रचितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
 'tog-watchdefault' => 'मया सम्पादितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
index c2492ba..012581e 100644 (file)
@@ -56,7 +56,6 @@ $messages = array(
 'tog-showtoolbar' => 'Көннөрүү үстүрүмүөннэрин көрдөр',
 'tog-editondblclick' => 'Хоһулатан иккитэ баттаан сирэйи уларытыы',
 'tog-editsectiononrightclick' => 'Сиэксийэ баһыгар уҥа тимэҕинэн баттаан сиэксийэни көннөрүү',
-'tog-showtoc' => 'Иһинээҕитин көрдөр (ыстатыйа үстэн ордук бас тыллаах буоллаҕына)',
 'tog-rememberpassword' => 'Миигин бу браузерга сигээ ($1 {{PLURAL:$1|күн|күнтэн ордуга суох}})',
 'tog-watchcreations' => 'Суруйбут ыстатыйаларбын уонна укпут билэлэрбин кэтээн көрүүгэ киллэрэн ис',
 'tog-watchdefault' => 'Уларыппыт сирэйдэрбин уонна билэлэрбин кэтээн көрүү тиһигэр киллэрэн ис',
index 25474e2..369dba5 100644 (file)
@@ -164,7 +164,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ammustra la barra dî strumenta pi lu canciamentu',
 'tog-editondblclick' => "Duppiu click pi canciari l'artìculu (richiedi Javascript)",
 'tog-editsectiononrightclick' => 'Abbìlita lu canciamentu dî sezzioni tràmiti duppiu click supra lu tìtulu dâ sezzioni (richiedi Javascript)',
-'tog-showtoc' => "Ammustra l'ìndici (pi artìculi cu cchiù di 3 sezzioni)",
 'tog-rememberpassword' => 'Arricorda la password supra stu navigaturi (pi ô massimu $1 {{PLURAL:$1|jornu|jorna}})',
 'tog-watchcreations' => "Agghiunci li pàggini criati a l'ossirvati spiciali",
 'tog-watchdefault' => "Agghiunci li pàggini canciati a l'ossirvati spiciali",
index 80bca92..09bb600 100644 (file)
@@ -219,7 +219,6 @@ $messages = array(
 'tog-showtoolbar' => 'Pokaži alatnu traku (potreban JavaScript)',
 'tog-editondblclick' => 'Izmijeni stranice dvostrukim klikom (potreban JavaScript)',
 'tog-editsectiononrightclick' => 'Uključite uređivanje odjeljka sa pritiskom na desno dugme miša u naslovu odjeljka (JavaScript)',
-'tog-showtoc' => 'Prikaži sadržaj (u svim stranicama sa više od tri podnaslova)',
 'tog-rememberpassword' => 'Upamti moju prijavu za ovaj preglednik (za maksimum od $1 {{PLURAL:$1|dan|dana}})',
 'tog-watchcreations' => 'Dodaj stranice koje sam stvorio i dadtoteke koje sam poslao u moj spisak praćenih stranica',
 'tog-watchdefault' => 'Dodaj stranice i datoteke koje izmijenim u spisak praćenja',
@@ -261,56 +260,56 @@ $messages = array(
 'editfont-serif' => 'Slova serif',
 
 # Dates
-'sunday' => 'nedjelja',
+'sunday' => 'Nedjelja/Недеља',
 'monday' => 'Ponedjeljak / Понедељак',
-'tuesday' => 'utorak',
-'wednesday' => 'srijeda',
-'thursday' => 'Ä\8detvrtak',
-'friday' => 'petak',
-'saturday' => 'subota',
-'sun' => 'Ned',
-'mon' => 'Pon',
-'tue' => 'Uto',
-'wed' => 'Sri',
-'thu' => 'Čet',
-'fri' => 'Pet',
-'sat' => 'Sub',
-'january' => 'januar',
-'february' => 'februar',
-'march' => 'mart',
-'april' => 'april',
-'may_long' => 'maj',
-'june' => 'jun',
-'july' => 'jul',
-'august' => 'august',
-'september' => 'septembar',
-'october' => 'oktobar',
+'tuesday' => 'Utorak/Уторак',
+'wednesday' => 'Srijeda/Среда',
+'thursday' => 'Ä\8cetvrtak/ЧеÑ\82вÑ\80Ñ\82ак',
+'friday' => 'Petak/Петак',
+'saturday' => 'Subota/Субота',
+'sun' => 'ned-нед',
+'mon' => 'pon-пон',
+'tue' => 'uto-уто',
+'wed' => 'sri-сре',
+'thu' => 'чет-čet',
+'fri' => 'pet-пет',
+'sat' => 'sub-суб',
+'january' => 'januar-сијечањ',
+'february' => 'februar-вељача',
+'march' => 'mart-ожујак',
+'april' => 'april-травањ',
+'may_long' => 'maj-свибањ',
+'june' => 'jun-липањ',
+'july' => 'jul-српањ',
+'august' => 'avgust-коловоз',
+'september' => 'septembar-рујан',
+'october' => 'oktobar-листопад',
 'november' => 'novembar',
-'december' => 'decembar',
-'january-gen' => 'januar',
-'february-gen' => 'februar',
-'march-gen' => 'mart',
-'april-gen' => 'april',
-'may-gen' => 'maj',
-'june-gen' => 'jun',
-'july-gen' => 'jul',
-'august-gen' => 'august',
-'september-gen' => 'septembar',
-'october-gen' => 'oktobar',
+'december' => 'decembar-просинац',
+'january-gen' => 'januara-сијечња',
+'february-gen' => 'februara-вељаче',
+'march-gen' => 'marta-ожујка',
+'april-gen' => 'aprila-травња',
+'may-gen' => 'маја-свибња',
+'june-gen' => 'junа-липња',
+'july-gen' => 'jula-српња',
+'august-gen' => 'augusta-коловоза',
+'september-gen' => 'septembra-рујна',
+'october-gen' => 'oktobra-листопада',
 'november-gen' => 'novembar',
-'december-gen' => 'decembar',
-'jan' => 'jan',
-'feb' => 'feb',
-'mar' => 'mar',
-'apr' => 'apr',
-'may' => 'maj',
-'jun' => 'jun',
-'jul' => 'jul',
-'aug' => 'aug',
-'sep' => 'sep',
-'oct' => 'okt',
+'december-gen' => 'decembra-просинца',
+'jan' => 'jan-сиј',
+'feb' => 'feb-вељ',
+'mar' => 'mar-ожу',
+'apr' => 'apr-тра',
+'may' => 'maj-сви',
+'jun' => 'jun-лип',
+'jul' => 'jul-срп',
+'aug' => 'aug-кол',
+'sep' => 'sep-руј',
+'oct' => 'okt-лис',
 'nov' => 'nov',
-'dec' => 'dec',
+'dec' => 'dec-про',
 'january-date' => '$1. januar',
 'february-date' => '$1. februar',
 'march-date' => '$1. mart',
@@ -349,11 +348,11 @@ $messages = array(
 'cancel' => 'Odustani - Одустани',
 'moredotdotdot' => 'Još...',
 'morenotlisted' => 'Više nije prikazano...',
-'mypage' => 'Stranica',
+'mypage' => 'Moja stranica',
 'mytalk' => 'Moj razgovor / Мој разговор',
 'anontalk' => 'Razgovor za ovu IP adresu',
-'navigation' => 'Navigacija',
-'and' => '&#32;i',
+'navigation' => 'Navigacija - Навигација',
+'and' => 'i/и',
 
 # Cologne Blue skin
 'qbfind' => 'Pronađite',
@@ -385,10 +384,10 @@ $messages = array(
 'errorpagetitle' => 'Greška - Грешка',
 'returnto' => 'Povratak na $1.',
 'tagline' => 'Izvor: {{SITENAME}}',
-'help' => 'Pomoć',
+'help' => 'Pomoć / Помоћ',
 'search' => 'Traži / Тражи',
 'searchbutton' => 'Traži',
-'go' => 'Idi - Иди',
+'go' => 'Idi / Иди',
 'searcharticle' => 'Idi',
 'history' => 'Historija stranice',
 'history_short' => 'Historija',
@@ -397,7 +396,7 @@ $messages = array(
 'permalink' => 'Trajni link',
 'print' => 'Štampa',
 'view' => 'Vidi',
-'edit' => 'Uredi',
+'edit' => 'Uredi / Уреди',
 'create' => 'Napravi',
 'editthispage' => 'Uredite ovu stranicu',
 'create-this-page' => 'Stvori ovu stranicu',
@@ -412,15 +411,15 @@ $messages = array(
 'unprotect' => 'Promijeni zaštitu',
 'unprotectthispage' => 'Promijeni zaštitu za ovu stranicu',
 'newpage' => 'Nova stranica / Нова страница',
-'talkpage' => 'Razgovaraj o ovoj stranici',
+'talkpage' => 'Razgovaraj o ovoj stranici - Разговарај о овој страници',
 'talkpagelinktext' => 'Razgovor',
 'specialpage' => 'Posebna stranica',
 'personaltools' => 'Lični alati',
 'postcomment' => 'Pošaljite komentar - Пошаљите коментар',
 'articlepage' => 'Pogledaj stranicu sa sadržajem (članak)',
-'talk' => 'Razgovor',
+'talk' => 'Razgovor / Разговор',
 'views' => 'Pregledi',
-'toolbox' => 'Traka sa alatima',
+'toolbox' => 'Alatke / Алатке',
 'userpage' => 'Pogledajte korisničku stranicu',
 'projectpage' => 'Pogledajte stranicu projekta',
 'imagepage' => 'Vidi stranicu datoteke/fajla',
@@ -450,7 +449,7 @@ $1',
 # 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).
 'aboutsite' => 'O projektu {{SITENAME}}',
 'aboutpage' => 'Project:O_projektu_{{SITENAME}}',
-'copyright' => 'Sadržaj je dostupan pod $1.',
+'copyright' => 'Pod licencom / Под лиценцом: $1.',
 'copyrightpage' => '{{ns:project}}:Autorska_prava',
 'currentevents' => 'Trenutni događaji',
 'currentevents-url' => 'Project:Novosti',
@@ -475,7 +474,7 @@ $1',
 
 'ok' => 'da',
 'retrievedfrom' => 'Dobavljeno iz "$1"',
-'youhavenewmessages' => 'Imate $1 ($2).',
+'youhavenewmessages' => 'Imate / Имате $1 ($2).',
 'youhavenewmessagesfromusers' => 'Imate $1 od {{PLURAL:$3|drugog korisnika|$3 korisnika|$3 korisnika}} ($2).',
 'youhavenewmessagesmanyusers' => 'Imate $1 od mnogo korisnika ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|novu poruku|$1 nove poruke|$1 novih poruka}}',
@@ -489,7 +488,7 @@ $1',
 'editsectionhint' => 'Uredi sekciju: $1',
 'toc' => 'Sadržaj / Садржај',
 'showtoc' => 'prikaži / прикажи',
-'hidetoc' => 'sakrij',
+'hidetoc' => 'sakrij - сакриј',
 'collapsible-collapse' => 'Sakrij',
 'collapsible-expand' => 'Proširi',
 'thisisdeleted' => 'Pogledaj ili vrati $1?',
@@ -514,9 +513,9 @@ $1',
 'nstab-project' => 'Stranica projekta',
 'nstab-image' => 'Datoteka',
 'nstab-mediawiki' => 'Poruka / Порука',
-'nstab-template' => 'Šablon',
-'nstab-help' => 'Stranica pomoći',
-'nstab-category' => 'Kategorija',
+'nstab-template' => 'Šablon / Шаблон',
+'nstab-help' => 'Pomoć / Помоћ',
+'nstab-category' => 'Kategorija / Категорија',
 
 # Main script and global functions
 'nosuchaction' => 'Nema takve akcije',
@@ -544,7 +543,7 @@ Do ovoga dolazi kada se prati premještaj ili historija linka za stranicu koja j
 U slučaju da se ne radi o gore navedenom, moguće je da ste pronašli grešku u programu.
 Molimo Vas da ovo prijavite [[Special:ListUsers/sysop|administratoru]] sa navođenjem tačne adrese stranice',
 'missingarticle-rev' => '(izmjena#: $1)',
-'missingarticle-diff' => '(Razl: $1, $2)',
+'missingarticle-diff' => '(razlika: $1, $2)',
 'readonly_lag' => 'Baza podataka je zaključana dok se sekundarne baze podataka na serveru ne sastave sa glavnom.',
 'internalerror' => 'Interna pogreška',
 'internalerror_info' => 'Interna greška: $1',
@@ -615,15 +614,15 @@ Obratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još
 'welcomeuser' => 'Dobro došli, $1!',
 'welcomecreation-msg' => 'Vaš korisnički račun je napravljen.
 Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].',
-'yourname' => 'Korisničko ime:',
+'yourname' => 'Vaše korisničko ime / Ваше корисничко име',
 'userlogin-yourname' => 'Korisničko ime',
 'userlogin-yourname-ph' => 'Unesite svoje korisničko ime',
 'createacct-another-username-ph' => 'Unesi korisničko ime',
-'yourpassword' => 'Lozinka/zaporka:',
+'yourpassword' => 'Vaša šifra / Ваша шифра:',
 'userlogin-yourpassword' => 'Lozinka/zaporka',
 'userlogin-yourpassword-ph' => 'Unesite svoju lozinku/zaporku',
 'createacct-yourpassword-ph' => 'Unesite lozinku/zaporku',
-'yourpasswordagain' => 'Ponovno utipkajte lozinku/zaporku:',
+'yourpasswordagain' => 'Ponovo upišite šifru / Поново упишите шифру',
 'createacct-yourpasswordagain' => 'Potvrdite lozinku/zaporku',
 'createacct-yourpasswordagain-ph' => 'Unesite lozinku/zaporku ponovno',
 'remembermypassword' => 'Upamti moju lozinku na ovom kompjuteru (za maksimum od $1 {{PLURAL:$1|dan|dana}})',
@@ -638,7 +637,7 @@ Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].
 'userlogin' => 'Prijavi se / stvori korisnički račun',
 'userloginnocreate' => 'Prijavi se',
 'logout' => 'Odjavi se - Одјави се',
-'userlogout' => 'Odjava',
+'userlogout' => 'Odjavi se / Одјави се',
 'notloggedin' => 'Niste prijavljeni',
 'userlogin-noaccount' => 'Nemate račun?',
 'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
@@ -646,7 +645,7 @@ Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].
 'nologinlink' => 'Otvorite račun',
 'createaccount' => 'Napraviti novi nalog / Направити нови налог',
 'gotaccount' => "Imate račun? '''$1'''.",
-'gotaccountlink' => 'Prijavite se - Пријавите се',
+'gotaccountlink' => 'Prijavite se / Пријавите се',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
 'userlogin-resetpassword-link' => 'Resetirajte svoju lozinku/zaporku',
 'helplogin-url' => 'Help:Logiranje',
@@ -695,8 +694,9 @@ Provjerite vaše kucanje ili [[Special:UserLogin/signup|napravite novi korisnič
 Provjerite da li ste dobro ukucali.',
 'nouserspecified' => 'Morate izabrati korisničko ime.',
 'login-userblocked' => 'Ovaj korisnik je blokiran. Prijava nije dozvoljena.',
-'wrongpassword' => 'Unijeli ste neispravnu šifru.
-Molimo Vas da pokušate ponovno.',
+'wrongpassword' => 'Šifra koju ste uneli je neodgovarajuće. Molimo, upišite je ponovo.
+
+Шифра коју сте унели је неодговарајућа. Молимо, упишите је поново.',
 'wrongpasswordempty' => 'Unesena šifra je bila prazna.
 Molimo Vas da pokušate ponovno.',
 'passwordtooshort' => 'Lozinka mora imati najmanje {{PLURAL:$1|1 znak|$1 znakova}}.',
@@ -729,7 +729,7 @@ Nijedan e-mail neće biti poslan za bilo koju uslugu od slijedećih.',
 Molimo vas da unesete ispravnu adresu ili ostavite prazno polje.',
 'cannotchangeemail' => 'Na ovom wikiju ne možete promeniti e-mail adresu računa.',
 'emaildisabled' => 'Ova web-stranica ne može da šalje e-poruke.',
-'accountcreated' => 'Korisnički račun je napravljen',
+'accountcreated' => 'Korisnički nalog kreiran / Кориснички налог креиран',
 'accountcreatedtext' => 'Korisnički račun za $1 je kreiran. Кориснички налог за $1 је креиран.',
 'createaccount-title' => 'Pravljenje korisničkog računa za {{SITENAME}}',
 'createaccount-text' => 'Neko je napravio korisnički račun za vašu e-mail adresu na {{SITENAME}} ($4) sa imenom "$2", i sa šifrom "$3".
@@ -838,7 +838,7 @@ Privremena šifra: $2',
 'summary' => 'Sažetak:',
 'subject' => 'Tema/naslov:',
 'minoredit' => 'Mala izmjena - Мала измена',
-'watchthis' => 'Prati ovu stranicu',
+'watchthis' => 'Prati / Прати',
 'savearticle' => 'Sačuvaj - Сачувај',
 'preview' => 'Pretpregled / Претпреглед',
 'showpreview' => 'Pretpregled - Претпреглед',
@@ -940,8 +940,8 @@ Posljednje stavke evidencije blokiranja možete pogledati ispod:',
 '''Još uvijek nije snimljen!'''",
 'sitejspreview' => "'''Zapamtite ovo je samo izgled ovog koda JavaScripte.'''
 '''Još uvijek nije snimljen!'''",
-'userinvalidcssjstitle' => "'''Upozorenje:''' Ne postoji interfejs (skin) pod imenom \"\$1\".
-Ne zaboravite da imena stranica s .css i .js kodom počinju malim slovom, npr. {{ns:user}}:Foo/vector.css, a ne {{ns:user}}:Foo/Vector.css.",
+'userinvalidcssjstitle' => "'''Upozorenje:''' Nema skina pod imenom \"\$1\".
+Upamtite da korisničke .css i .js stranice koriste naslov s malim slovom, npr. {{ns:user}}:Foo/monobook.css umjesto {{ns:user}}:Foo/Monobook.css.",
 'updated' => '(Osvježeno)',
 'note' => "'''Napomena:'''",
 'previewnote' => "'''Ne zaboravite da je ovo samo pregled'''
@@ -969,7 +969,7 @@ Gornje tekstualno polje sadrži tekst stranice koji trenutno postoji.
 Vaše izmjene su prikazane u donjem tekstu.
 Moraćete da unesete svoje promjene u postojeći tekst.
 '''Samo''' tekst u gornjem tekstualnom polju će biti snimljen kad pritisnete \"{{int:savearticle}}\".",
-'yourtext' => 'Vaš tekst',
+'yourtext' => 'Vaš tekst / Ваш текст',
 'storedversion' => 'Uskladištena verzija',
 'nonunicodebrowser' => "'''UPOZORENJE: Vaš preglednik ne podržava Unicode zapis znakova.
 Molimo Vas promijenite ga prije sljedećeg uređivanja članaka. Znakovi koji nisu po ASCII standardu će se u prozoru za izmjene pojaviti kao heksadecimalni kodovi.'''",
@@ -1089,7 +1089,7 @@ Razlog koji je naveo $3 je ''$2''",
 'nextrevision' => 'Novija izmjena →',
 'currentrevisionlink' => 'Trenutna verzija',
 'cur' => 'tren',
-'next' => 'slijed',
+'next' => 'sljed - след',
 'last' => 'preth - претх',
 'page_first' => 'prva',
 'page_last' => 'zadnja',
@@ -1262,7 +1262,7 @@ Više informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{F
 'textmatches' => 'Tekst stranice odgovara',
 'notextmatches' => 'Tekst stranice ne odgovara',
 'prevn' => 'prethodna {{PLURAL:$1|$1}}',
-'nextn' => 'sljedećih {{PLURAL:$1|$1}}',
+'nextn' => 'sljedećih - следећих $1',
 'prevn-title' => '{{PLURAL:$1|Prethodni $1 rezultat|Prethodna $1 rezultata|Prethodnih $1 rezultata}}',
 'nextn-title' => '{{PLURAL:$1|Slijedeći $1 rezultat|Slijedeća $1 rezultata|Slijedećih $1 rezultata}}',
 'shown-title' => 'Pokaži $1 {{PLURAL:$1|rezultat|rezultata}} po stranici',
@@ -1327,7 +1327,7 @@ Uzmite u obzir da njegovi indeksi za ovu Wiki ne moraju biti ažurirani.',
 'prefs-watchlist-edits' => 'Najveći broj izmjena za prikaz u proširenom spisku praćenja:',
 'prefs-watchlist-edits-max' => 'Maksimalni broj: 1000',
 'prefs-watchlist-token' => 'Token spiska za praćenje:',
-'prefs-misc' => 'Ostala podešavanja',
+'prefs-misc' => 'Razno / Разно',
 'prefs-resetpass' => 'Promijeni lozinku',
 'prefs-changeemail' => 'Promijeni E-mail',
 'prefs-setemail' => 'Postavite E-mail adresu',
@@ -1379,11 +1379,11 @@ Ovo se ne može vratiti unazad.',
 'uid' => '{{GENDER:$1|Korisnički}} ID:',
 'prefs-memberingroups' => '{{GENDER:$2|Korisnik|Korisnica}} je član {{PLURAL:$1|grupe|grupâ}}:',
 'prefs-registration' => 'Vrijeme registracije:',
-'yourrealname' => 'Vaše pravo ime:',
-'yourlanguage' => 'Jezik:',
+'yourrealname' => 'Vaše ime / Ваше име*',
+'yourlanguage' => 'Jezik interfejsa / Језик интерфејса',
 'yourvariant' => 'Varijanta jezika:',
 'prefs-help-variant' => 'Željena varijanta ili pravopis za prikaz stranica sa sadržajem ovog vikija.',
-'yournick' => 'Nadimak (za potpise):',
+'yournick' => 'Vaš 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.
 Provjerite HTML tagove.',
@@ -1398,7 +1398,9 @@ Ova informacija će biti javna.',
 'email' => 'E-mail',
 'prefs-help-realname' => 'Pravo ime nije obavezno.
 Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
-'prefs-help-email' => 'E-mail adresa je opcionalna, ali Vam omogućava da Vam se pošalje nova šifra u slučaju da je izgubite ili zaboravite.',
+'prefs-help-email' => '* E-mail (nije obavezno): omogućuje drugima da Vas kontaktiraju na korisničkoj strani ili strani za razgovor bez javnog pokazivanja Vaše elektronske adrese. Ako zaboravite šifru možemo Vam na ovu adresu poslati novu, privremenu. <br/>
+
+* Е-пошта (није обавезно): Омогућује другима да Вас контактирају на корисничкој страни или страни за разговор без јавног показивања Ваше електронске адресе. Ако заборавите шифру, можемо Вам на ову адресу послати нову, привремену.',
 'prefs-help-email-others' => 'Također možete da odaberete da vas drugi kontaktiraju putem vaše korisničke stranice ili stranice za razgovor bez otkrivanja vašeg identiteta.',
 'prefs-help-email-required' => 'Neophodno je navesti e-mail adresu.',
 'prefs-info' => 'Osnovne informacije',
@@ -1545,7 +1547,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'newuserlogpagetext' => 'Ovo je evidencija registracije novih korisnika.',
 
 # User rights log
-'rightslog' => 'Registar korisničkih prava',
+'rightslog' => 'Evidencija korisničkih prava',
 'rightslogtext' => 'Ovo je evidencija izmjene korisničkih prava.',
 
 # Associated actions - in the sentence "You do not have permission to X"
@@ -1619,7 +1621,7 @@ $3
 'hist' => 'hist',
 'hide' => 'Sakrij',
 'show' => 'prikaži / прикажи',
-'minoreditletter' => 'm',
+'minoreditletter' => 'm',
 'newpageletter' => 'N',
 'boteditletter' => 'b',
 'number_of_watching_users_pageview' => '[$1 {{PLURAL:$1|korisnik|korisnika}} koji pregledaju]',
@@ -1668,12 +1670,12 @@ Da bi ste prikazali datoteku na stranici, koristite link na jedan od slijedećih
 'uploadlogpage' => 'Registar postavljanja',
 'uploadlogpagetext' => 'Ispod je popis najnovijih postavljanja datoteka.
 Vidi [[Special:NewFiles|galeriju novih datoteka]] za slikovitiji pregled.',
-'filename' => 'Ime datoteke',
+'filename' => 'Ime fajla / Име датотеке',
 'filedesc' => 'Sažetak - Сажетак',
-'fileuploadsummary' => 'Sažetak:',
+'fileuploadsummary' => 'Sažetak / Сажетак:',
 'filereuploadsummary' => 'Izmjene datoteke:',
 'filestatus' => 'Status autorskih prava:',
-'filesource' => 'Izvor - Извор',
+'filesource' => 'Izvor / Извор',
 'uploadedfiles' => 'Postavljene datoteke',
 'ignorewarning' => 'Zanemari upozorenja i sačuvaj datoteku',
 'ignorewarnings' => 'Zanemari sva upozorenja',
@@ -1999,7 +2001,7 @@ Prije brisanja provjerite da li druge stranice vode na te šablone.',
 'randomredirect-nopages' => 'Nema preusmjerenja u imenskom prostoru "$1".',
 
 # Statistics
-'statistics' => 'Statistike',
+'statistics' => 'Statistike / Статистике',
 'statistics-header-pages' => 'Statistike stranice',
 'statistics-header-edits' => 'Statistike izmjena',
 'statistics-header-views' => 'Statistike pregleda',
@@ -2066,7 +2068,7 @@ Svaki red sadrži veze na prvo i drugo preusmjerenje, kao i na prvu liniju tekst
 'unusedimages' => 'Neupotrebljene datoteke',
 'popularpages' => 'Popularne stranice',
 'wantedcategories' => 'Tražene kategorije',
-'wantedpages' => 'Tražene stranice',
+'wantedpages' => 'Tražene stranice / Тражене странице',
 'wantedpages-badtitle' => 'Nevaljan naslov u setu rezultata: $1',
 'wantedfiles' => 'Tražene datoteke',
 'wantedfiletext-cat' => 'Sledeće datoteke se koriste, ali ne postoje. Datoteke iz drugih spremnika mogu biti navedene iako ne postoje. Takve datoteke će biti <del>izbačene</del> sa spiska. Pored toga, stranice koje sadrže nepostojeće datoteke se nalaze [[:$1|ovde]].',
@@ -2133,7 +2135,7 @@ Možete specificirati prikaz izabiranjem specifičnog spiska, korisničkog imena
 'showhideselectedlogentries' => 'Prikaži/sakrij izabrane zapise u evidenciji',
 
 # Special:AllPages
-'allpages' => 'Sve stranice',
+'allpages' => 'Sve stranice / Све странице',
 'alphaindexline' => '$1 do $2',
 'nextpage' => 'Sljedeća strana ($1)',
 'prevpage' => 'Prethodna stranica ($1)',
@@ -2250,20 +2252,20 @@ E-mail koju ste uneli u vašim [[Special:Preferences|postavkama]] će se prikaza
 'usermessage-editor' => 'Sistem za poruke',
 
 # Watchlist
-'watchlist' => 'Spisak praćenja',
+'watchlist' => 'Spisak praćenja / Списак праћења',
 'mywatchlist' => 'Moj popis praćenja / Списак надгледања',
 'watchlistfor2' => 'Za $1 $2',
 'nowatchlist' => 'Nemate ništa na svom spisku praćenih članaka.',
 'watchlistanontext' => 'Molimo da $1 da možete vidjeti ili urediti stavke na Vašem spisku praćenja.',
-'watchnologin' => 'Niste prijavljeni',
-'watchnologintext' => 'Morate biti [[Special:UserLogin|prijavljeni]] da bi ste mijenjali spisak praćenih članaka.',
+'watchnologin' => 'Niste logovani / Нисте логовани',
+'watchnologintext' => 'Morate da budete [[Special:Userlogin|prijavljeni]] da biste sređivali spisak praćenja.',
 'addwatch' => 'Dodaj u popis praćenja',
 'addedwatchtext' => 'Stranica "[[:$1]]" je dodata vašem [[Special:Watchlist|spisku praćenih članaka]]. 
 Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti navedene ovde.',
 'removewatch' => 'Ukloni sa spiska praćenja',
 'removedwatchtext' => 'Stranica "[[:$1]]" je uklonjena s [[Special:Watchlist|vaše liste praćenja]].',
-'watch' => 'Prati',
-'watchthispage' => 'Prati ovu stranicu',
+'watch' => 'Prati / Прати',
+'watchthispage' => 'Prati / Прати',
 'unwatch' => 'Prekini praćenje',
 'unwatchthispage' => 'Ukinite praćenje',
 'notanarticle' => 'Nije članak',
@@ -2275,12 +2277,11 @@ Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti n
 'watchmethod-list' => 'provjerava se da li ima nedavnih izmjena u praćenim stranicama',
 'watchlistcontains' => 'Vaš spisak praćenih članaka sadrži $1 {{PLURAL:$1|stranicu|stranica}}.',
 'iteminvalidname' => "Problem sa '$1', neispravno ime...",
-'wlnote' => "Ispod {{PLURAL:$1|je posljednja izmjena|su posljednje '''$1''' izmjene|je posljednjih '''$1''' izmjena}} u {{PLURAL:$2|prethodnom satu|prethodna '''$2''' sata|prethodnih '''$2''' sati}}, zaključno sa $3, $4.",
 'wlshowlast' => 'Prikaži posljednjih $1 sati $2 dana $3',
 'watchlist-options' => 'Opcije liste praćenja',
 
 # Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Pratim',
+'watching' => 'Pratim... / Додавање на списак надгледања...',
 'unwatching' => 'Ne pratim…',
 'watcherrortext' => 'Desila se greška pri promjeni postavki vašeg spiska praćenja za "$1".',
 
@@ -2332,7 +2333,7 @@ Povratne informacije i daljnja pomoć:
 
 # Delete
 'deletepage' => 'Izbrišite stranicu',
-'confirm' => 'Potvrdite',
+'confirm' => 'Potvrdi / Потврди',
 'excontent' => "sadržaj je bio: '$1'",
 'excontentauthor' => "sadržaj je bio: '$1' (i jedini korisnik koji je mijenjao bio je '[[Special:Contributions/$2|$2]]')",
 'exbeforeblank' => "sadržaj prije brisanja je bio: '$1'",
@@ -2644,9 +2645,8 @@ Blokiranja možete da pogledate [[Special:BlockList|ovde]].',
 'change-blocklink' => 'promijeni blokadu',
 'contribslink' => 'doprinosi',
 'emaillink' => 'pošalji e-mail',
-'autoblocker' => 'Automatski ste blokirani jer dijelite IP adresu sa "[[User:$1|$1]]".
-Razlog za blokiranje je korisnika $1 je: \'\'$2\'\'',
-'blocklogpage' => 'Registar blokiranja',
+'autoblocker' => 'Automatski ste blokirani jer je vašu IP adresu nedavno koristio "[[User:$1|$1]]". Razlog za blokiranje $1 je: "\'\'\'$2\'\'\'"',
+'blocklogpage' => 'Evidencija blokiranja',
 'blocklog-showlog' => 'Ovaj korisnik je ranije blokiran. 
 Evidencija blokiranja je prikazana ispod kao referenca:',
 'blocklog-showsuppresslog' => 'Ovaj korisnik je ranije blokiran i sakriven. 
@@ -2753,7 +2753,7 @@ U tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.
 'cant-move-to-user-page' => 'Nemate dopuštenje da premjestite stranicu na korisničku stranicu (osim na korisničku podstranicu).',
 'newtitle' => 'Novi naziv - Нови назив',
 'move-watch' => 'Prati ovu stranicu - Прати ову страницу',
-'movepagebtn' => 'premjestite stranicu',
+'movepagebtn' => 'Premjesti stranicu – Премјести страницу',
 'pagemovedsub' => 'Premještanje uspjelo',
 'movepage-moved' => '\'\'\'"$1" je premještena na "$2"\'\'\'',
 'movepage-moved-redirect' => 'Preusmjerenje je napravljeno.',
@@ -2761,7 +2761,7 @@ U tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.
 'articleexists' => 'Stranica pod tim imenom već postoji, ili je ime koje ste izabrali neispravno.
 Molimo Vas da izaberete drugo ime.',
 'cantmove-titleprotected' => 'Ne možete premjestiti stranicu na ovu lokaciju, jer je novi naslov zaštićen od pravljenja',
-'movetalk' => 'Premjestite pridruženu stranicu za razgovor',
+'movetalk' => 'Premjesti i stranicu za diskusiju zajedno sa člankom (ukoliko nije prazna).',
 'move-subpages' => 'Premjesti sve podstranice (do $1)',
 'move-talk-subpages' => 'Premjesti podstranice stranica za razgovor (do $1)',
 'movepage-page-exists' => 'Stranica $1 već postoji i ne može biti automatski zamijenjena.',
@@ -2816,7 +2816,7 @@ U drugom slučaju možete koristiti i vezu, npr. [[{{#Special:Export}}/{{MediaWi
 'exportnohistory' => "----
 '''Pažnja:''' Izvoz cjelokupne historije stranica preko ovog obrasca je onemogućeno iz tehničkih razloga.",
 'exportlistauthors' => 'Uključi cjelokupni popis doprinosilaca za svaku stranicu',
-'export-submit' => 'Izvezi',
+'export-submit' => 'Izvezi / Извези',
 'export-addcattext' => 'Dodaj stranice iz kategorije:',
 'export-addcat' => 'Dodaj',
 'export-addnstext' => 'Dodaj stranice iz imenskog prostora:',
@@ -2826,7 +2826,7 @@ U drugom slučaju možete koristiti i vezu, npr. [[{{#Special:Export}}/{{MediaWi
 'export-pagelinks' => 'Uključi povezane stranice do dubine od:',
 
 # Namespace 8 related
-'allmessages' => 'Sistemske poruke',
+'allmessages' => 'Sistemske poruke / Системске поруке',
 'allmessagesname' => 'Naziv',
 'allmessagesdefault' => 'Uobičajeni tekst',
 'allmessagescurrent' => 'Trenutni tekst',
@@ -2841,6 +2841,7 @@ Molimo posjetite [https://www.mediawiki.org/wiki/Localisation MediaWiki lokaliza
 'allmessages-prefix' => 'Filter po prefiksu:',
 'allmessages-language' => 'Jezik:',
 'allmessages-filter-submit' => 'Idi',
+'allmessages-filter-translate' => 'Prevedi',
 
 # Thumbnails
 'thumbnail-more' => 'Uvećaj',
@@ -2938,7 +2939,6 @@ Molimo pokušajte ponovno.',
 'tooltip-pt-watchlist' => 'Spisak stranica koje pratite radi izmjena',
 'tooltip-pt-mycontris' => 'Spisak vaših doprinosa',
 'tooltip-pt-login' => 'Predlažem da se prijavite; međutim, to nije obavezno',
-'tooltip-pt-anonlogin' => 'Predlažemo da se prijavite, ali nije obavezno.',
 'tooltip-pt-logout' => 'Odjava sa projekta {{SITENAME}}',
 'tooltip-ca-talk' => 'Razgovor o sadržaju stranice',
 'tooltip-ca-edit' => 'Možete da uređujete ovu stranicu.
@@ -2954,7 +2954,7 @@ Možete vidjeti njen izvor',
 'tooltip-ca-move' => 'Premjesti ovu stranicu',
 'tooltip-ca-watch' => 'Dodajte ovu stranicu na Vaš spisak praćenja',
 'tooltip-ca-unwatch' => 'Izbrišite ovu stranicu sa spiska praćenja',
-'tooltip-search' => 'Pretraži ovaj wiki',
+'tooltip-search' => 'Traži ovaj Wiki / Тражи овај Вики [alt-f]',
 'tooltip-search-go' => 'Idi na stranicu s upravo ovakvim imenom ako postoji',
 'tooltip-search-fulltext' => 'Pretraga stranica sa ovim tekstom',
 'tooltip-p-logo' => 'Posjetite glavnu stranicu',
@@ -2986,11 +2986,11 @@ Možete vidjeti njen izvor',
 'tooltip-ca-nstab-help' => 'Pogledajte stranicu za pomoć',
 'tooltip-ca-nstab-category' => 'Pogledajte stranicu kategorije',
 'tooltip-minoredit' => 'Označite ovo kao manju izmjenu',
-'tooltip-save' => 'Snimite vaše izmjene',
+'tooltip-save' => 'Snimi izmjene - Сними измјене [alt-s]',
 'tooltip-preview' => 'Prethodni pregled stranice, molimo koristiti prije snimanja!',
 'tooltip-diff' => 'Prikaz izmjena koje ste napravili u tekstu',
 'tooltip-compareselectedversions' => 'Pogledajte pazlike između dvije selektovane verzije ove stranice.',
-'tooltip-watch' => 'Dodajte ovu stranicu na Vaš spisak praćenja',
+'tooltip-watch' => 'Postavite ovu stranicu na Vaš spisak praćenja / Поставите ову страницу на Ваш списак праћења [alt-w]',
 'tooltip-watchlistedit-normal-submit' => 'Ukloni naslove',
 'tooltip-watchlistedit-raw-submit' => 'Ažuriraj spisak praćenja',
 'tooltip-recreate' => 'Ponovno pravljenje stranice iako je već brisana',
@@ -3138,7 +3138,7 @@ Njegovim izvršavanjem možete da ugrozite Vaš sistem.",
 'newimages-label' => 'Ime datoteke (ili dio imena):',
 'showhidebots' => '($1 botove)',
 'noimages' => 'Ništa za prikazati.',
-'ilsubmit' => 'Traži',
+'ilsubmit' => 'Traži / Тражи',
 'bydate' => 'po datumu',
 'sp-newimages-showfrom' => 'Prikaz novih datoteka počev od $2, $1',
 
@@ -3814,7 +3814,7 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'specialpages-group-maintenance' => 'Izvještaji o održavanju / Извјештаји о одржавању',
 'specialpages-group-other' => 'Ostale posebne stranice - Остале посебне странице',
 'specialpages-group-login' => 'Prijava / Пријава',
-'specialpages-group-changes' => 'Nedavne izmjene i registri',
+'specialpages-group-changes' => 'Nedavne izmjene i evidencije / registri - Недавне измене и евиденције / регистри',
 'specialpages-group-media' => 'Multimedijalne datoteke \\ fajlovi i njihovo postavljanje / Мултимедијалне датотеке \\ фајлови и њихово постављање',
 'specialpages-group-users' => 'Korisnici i njihova prava / Корисници и њихова права',
 'specialpages-group-highuse' => 'Najčešće korištene stranice / Најчешће кориштене странице',
index 074151b..d1f65c0 100644 (file)
@@ -203,7 +203,6 @@ $messages = array(
 'tog-showtoolbar' => 'සංස්කරණ මෙවලම්තීරුව පෙන්වන්න',
 'tog-editondblclick' => 'ද්විත්ව-ක්ලික් කිරීම මගින් පිටු සංස්කරණය අරඹන්න',
 'tog-editsectiononrightclick' => 'ඡේද ශීර්ෂ මත දකුණු-ක්ලික් කිරීමෙන් ඡේද සංස්කරණය සක්‍රීය කරන්න (ජාවාස්ක්‍රිප්ට්)',
-'tog-showtoc' => 'පටුන පෙන්වන්න ( තුනකට වඩා වැඩියෙන් ශීර්ෂ-නාම අඩංගු පිටු සඳහා)',
 'tog-rememberpassword' => 'මගේ ප්‍රවිෂ්ටය මෙම ගවේශකයෙහි උපරිම ලෙස {{PLURAL:$1|දිනයක්|දින $1ක්}} මතක තබා ගන්න',
 'tog-watchcreations' => 'මම තනන පිටු හා මම උඩුගත කරන ගොනු මාගේ මුරලැයිස්තුවට එක් කරන්න',
 'tog-watchdefault' => 'මම සංස්කරණය කරන පිටු හා ගොනු මාගේ මුර ලැයිස්තුවට එක් කරන්න',
index c6329d6..a9f0aa4 100644 (file)
@@ -295,7 +295,6 @@ $messages = array(
 'tog-showtoolbar' => 'Zobraziť panel nástrojov úprav',
 'tog-editondblclick' => 'Upravovať stránky po dvojitom kliknutí',
 'tog-editsectiononrightclick' => 'Umožniť upravovanie sekcie pravým kliknutím na nadpisy sekcií',
-'tog-showtoc' => 'Zobrazovať tabuľku s obsahom (pre stránky s viac ako 3 nadpismi)',
 'tog-rememberpassword' => 'Zapamätať si prihlásenie na tomto počítači (najviac $1 {{PLURAL:$1|deň|dni|dní}})',
 'tog-watchcreations' => 'Pridávať stránky, ktoré vytvorím a súbory, ktoré nahrám medzi sledované',
 'tog-watchdefault' => 'Pridávať stránky a súbory, ktoré upravím medzi sledované',
index c0d64ed..9682e61 100644 (file)
@@ -198,7 +198,6 @@ $messages = array(
 'tog-showtoolbar' => 'Prikaži urejevalno orodno vrstico',
 'tog-editondblclick' => 'Omogoči urejanje strani z dvojnim klikom',
 'tog-editsectiononrightclick' => 'Omogoči urejanje razdelkov z desnim klikanjem njihovih naslovov',
-'tog-showtoc' => 'Prikaži vsebino (strani z več kot tremi naslovi)',
 'tog-rememberpassword' => 'Zapomni si me v tem brskalniku (za največ $1 {{PLURAL:$1|dan|dneva|dni}})',
 'tog-watchcreations' => 'Vse ustvarjene strani in moje naložene datoteke dodaj na spisek nadzorov',
 'tog-watchdefault' => 'Dodaj na spisek nadzorov vse članke in datoteke, ki sem jih spremenil/-a',
index bc42213..30ad38d 100644 (file)
@@ -227,7 +227,6 @@ $messages = array(
 'tog-showtoolbar' => 'Trego mjetet e redaktimit (kërkon JavaScript)',
 'tog-editondblclick' => 'Redakto faqet me dopio-klik (kërkon JavaScript)',
 'tog-editsectiononrightclick' => 'Lejo redaktimin e seksioneve duke klikuar me të djathtën mbi titullin e seksionit (kërkon JavaScript)',
-'tog-showtoc' => 'Trego tabelën e përmbajtjes (për faqet me më shume se 3 tituj)',
 'tog-rememberpassword' => 'Mbaj mend fjalëkalimin tim në këtë shfletues (më së shumti për $1 {{PLURAL:$1|ditë|ditë}})',
 'tog-watchcreations' => 'Shtoi faqet e krijuara dhe skedat e ngarkuara prej meje tek lista e faqeve nën mbikqyrje',
 'tog-watchdefault' => 'Shto faqet dhe skedat e redaktuara prej meje tek lista e faqeve nën mbikqyrje',
index af53249..481374e 100644 (file)
@@ -406,8 +406,7 @@ $messages = array(
 'tog-showtoolbar' => 'Прикажи траку с алаткама за уређивање',
 'tog-editondblclick' => 'Уређивање страница двоструким кликом',
 'tog-editsectiononrightclick' => 'Уређивање одељака десним кликом на њихове наслове',
-'tog-showtoc' => 'Прикажи садржај страница које имају више од три поднаслова',
-'tog-rememberpassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана|дана}})',
+'tog-rememberpassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана}})',
 'tog-watchcreations' => 'Додај странице које направим и датотеке које пошаљем у списак надгледања',
 'tog-watchdefault' => 'Додај странице и датотеке које изменим у списак надгледања',
 'tog-watchmoves' => 'Додај странице и датотеке које преместим у списак надгледања',
@@ -1913,7 +1912,7 @@ $1",
 'fileexists-forbidden' => 'Датотека с овим називом већ постоји и не може се заменити.
 Ако и даље желите да пошаљете датотеку, вратите се и изаберите други назив.
 [[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Датотека с овим називом већ постоји у заједничком складишту.
+'fileexists-shared-forbidden' => 'Датотека с овим називом већ постоји у заједничкој остави.
 Вратите се и пошаљите датотеку с другим називом.
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Ово је дупликат {{PLURAL:$1|следеће датотеке|следећих датотека}}:',
@@ -2493,7 +2492,6 @@ $1',
 'watchmethod-list' => 'проверава се да ли има скорашњих измена у надгледаним страницама',
 'watchlistcontains' => 'Ваш списак надгледања садржи $1 {{PLURAL:$1|страницу|странице|страница}}.',
 'iteminvalidname' => 'Проблем са ставком „$1“. Неисправан назив.',
-'wlnote' => "Испод {{PLURAL:$1|је последња измена|су последње '''$1''' измене|је последњих '''$1''' измена}} у {{PLURAL:$2|претходном сату|претходна '''$2''' сата|претходних '''$2''' сати}}, закључно са $3, $4.",
 'wlshowlast' => 'Прикажи последњих $1 сати, $2 дана, $3',
 'watchlist-options' => 'Поставке списка надгледања',
 
@@ -3156,7 +3154,6 @@ $1',
 'tooltip-pt-watchlist' => 'Списак страница које надгледате',
 'tooltip-pt-mycontris' => 'Списак ваших доприноса',
 'tooltip-pt-login' => 'Препоручујемо вам да се пријавите, иако то није обавезно.',
-'tooltip-pt-anonlogin' => 'Препоручујемо вам да се пријавите, иако то није обавезно.',
 'tooltip-pt-logout' => 'Одјавите се',
 'tooltip-ca-talk' => 'Разговор о страници са садржајем',
 'tooltip-ca-edit' => 'Можете да уређујете ову страницу. Користите претпреглед пре снимања',
index 38fee55..1083899 100644 (file)
@@ -317,8 +317,7 @@ $messages = array(
 'tog-showtoolbar' => 'Prikaži traku s alatkama za uređivanje',
 'tog-editondblclick' => 'Uređivanje stranica dvostrukim klikom',
 'tog-editsectiononrightclick' => 'Uređivanje odeljaka desnim klikom na njihove naslove',
-'tog-showtoc' => 'Prikaži sadržaj stranica koje imaju više od tri podnaslova',
-'tog-rememberpassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|1=dan|dana}})',
+'tog-rememberpassword' => 'Zapamti me na ovom pregledaču (najduže $1 {{PLURAL:$1|dan|dana}})',
 'tog-watchcreations' => 'Dodaj stranice koje napravim i datoteke koje pošaljem u spisak nadgledanja',
 'tog-watchdefault' => 'Dodaj stranice i datoteke koje izmenim u spisak nadgledanja',
 'tog-watchmoves' => 'Dodaj stranice i datoteke koje premestim u spisak nadgledanja',
@@ -1787,7 +1786,7 @@ Ukoliko imate ovu sliku u punoj veličini, pošaljite je, a ako nemate, promenit
 'fileexists-forbidden' => 'Datoteka s ovim nazivom već postoji i ne može se zameniti.
 Ako i dalje želite da pošaljete datoteku, vratite se i izaberite drugi naziv.
 [[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Datoteka s ovim nazivom već postoji u zajedničkom skladištu.
+'fileexists-shared-forbidden' => 'Datoteka s ovim nazivom već postoji u zajedničkoj ostavi.
 Vratite se i pošaljite datoteku s drugim nazivom.
 [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Ovo je duplikat {{PLURAL:$1|sledeće datoteke|sledećih datoteka}}:',
@@ -2360,7 +2359,6 @@ Buduće izmene ove stranice i njene stranice za razgovor biće navedene ovde.',
 'watchmethod-list' => 'proverava se da li ima skorašnjih izmena u nadgledanim stranicama',
 'watchlistcontains' => 'Vaš spisak nadgledanja sadrži $1 {{PLURAL:$1|stranicu|stranice|stranica}}.',
 'iteminvalidname' => 'Problem sa stavkom „$1“. Neispravan naziv.',
-'wlnote' => "Ispod {{PLURAL:$1|je poslednja izmena|su poslednje '''$1''' izmene|je poslednjih '''$1''' izmena}} u {{PLURAL:$2|prethodnom satu|prethodna '''$2''' sata|prethodnih '''$2''' sati}}, zaključno sa $3, $4.",
 'wlshowlast' => 'Prikaži poslednjih $1 sati, $2 dana, $3',
 'watchlist-options' => 'Postavke spiska nadgledanja',
 
@@ -3012,7 +3010,6 @@ Pokušajte ponovo.',
 'tooltip-pt-watchlist' => 'Spisak stranica koje nadgledate',
 'tooltip-pt-mycontris' => 'Spisak vaših doprinosa',
 'tooltip-pt-login' => 'Preporučujemo vam da se prijavite, iako to nije obavezno.',
-'tooltip-pt-anonlogin' => 'Preporučujemo vam da se prijavite, iako to nije obavezno.',
 'tooltip-pt-logout' => 'Odjavite se',
 'tooltip-ca-talk' => 'Razgovor o stranici sa sadržajem',
 'tooltip-ca-edit' => 'Možete da uređujete ovu stranicu. Koristite pretpregled pre snimanja',
index d8682b7..360fea2 100644 (file)
@@ -56,7 +56,6 @@ $messages = array(
 'tog-showtoolbar' => 'Beoarbaidengs-Reewen anwiese',
 'tog-editondblclick' => 'Sieden mäd Dubbeldklik beoarbaidje (JavaScript)',
 'tog-editsectiononrightclick' => 'Eenpelde Ousatse mäd Gjuchtsklik beoarbaidje (JavaScript)',
-'tog-showtoc' => 'Anwiesen fon n Inhooldsferteeknis bie Artikkele mäd moor as 3 Uurskrifte',
 'tog-rememberpassword' => 'Mäd dissen Browser duurhaft ounmälded blieuwe (Maximoal foar $1 {{PLURAL:$1|Dai|Deege}})',
 'tog-watchcreations' => 'Aal do sälwen näi anlaide Sieden beooboachtje',
 'tog-watchdefault' => 'Aal do sälwen annerde Sieden beooboachtje',
index 9f70a12..56f32a3 100644 (file)
@@ -337,7 +337,6 @@ $messages = array(
 'tog-showtoolbar' => 'Visa redigeringsverktygsraden',
 'tog-editondblclick' => 'Redigera sidor med dubbelklick',
 'tog-editsectiononrightclick' => 'Aktivera redigering av avsnitt genom högerklick på underrubriker',
-'tog-showtoc' => 'Visa innehållsförteckning (för sidor med minst fyra rubriker)',
 'tog-rememberpassword' => 'Kom ihåg min inloggning på den här webbläsaren (i maximalt $1 {{PLURAL:$1|dygn|dygn}})',
 'tog-watchcreations' => 'Lägg till sidor jag skapar och filer jag laddar upp till min bevakningslista',
 'tog-watchdefault' => 'Lägg till sidor och filer jag redigerar i min bevakningslista',
@@ -883,6 +882,8 @@ Om du väljer att ange det, kommer det användas för att tillskriva användaren
 'retypenew' => 'Upprepa det nya lösenordet:',
 'resetpass_submit' => 'Ange lösenord och logga in',
 'changepassword-success' => 'Ditt lösenord har ändrats!',
+'changepassword-throttled' => 'Du har gjort för många misslyckade inloggningsförsök.
+Vänta $1 innan du försöker igen.',
 'resetpass_forbidden' => 'Lösenord kan inte ändras',
 'resetpass-no-info' => 'Du måste vara inloggad för att komma åt den här sidan direkt.',
 'resetpass-submit-loggedin' => 'Ändra lösenord',
@@ -934,6 +935,8 @@ Tillfälligt lösenord: $2',
 'changeemail-password' => 'Ditt lösenord till {{SITENAME}}:',
 'changeemail-submit' => 'Ändra e-post',
 'changeemail-cancel' => 'Avbryt',
+'changeemail-throttled' => 'Du har gjort för många inloggningsförsök.
+Vänta $1 innan du försöker igen.',
 
 # Special:ResetTokens
 'resettokens' => 'Återställ nycklar',
@@ -2427,7 +2430,6 @@ Framtida ändringar av den här sidan och dess diskussionssida kommer att listas
 'watchmethod-list' => 'letar efter nyligen gjorda ändringar bland bevakade sidor',
 'watchlistcontains' => 'Din bevakningslista innehåller $1 {{PLURAL:$1|sida|sidor}}.',
 'iteminvalidname' => "Problem med ''$1'', ogiltigt namn...",
-'wlnote' => "Nedan finns {{PLURAL:$1|den senaste ändringen|de senaste '''$1''' ändringarna}} under {{PLURAL:$2|den senaste timmen|de senaste '''$2''' timmarna}} från den $3 kl. $4.",
 'wlshowlast' => 'Visa senaste $1 timmarna $2 dygnen $3',
 'watchlist-options' => 'Alternativ för bevakningslistan',
 
@@ -2518,7 +2520,7 @@ Se $2 för noteringar om de senaste raderingarna.',
 # Rollback
 'rollback' => 'Rulla tillbaka ändringar',
 'rollback_short' => 'Tillbakarullning',
-'rollbacklink' => 'tillbakarullning',
+'rollbacklink' => 'rulla tillbaka',
 'rollbacklinkcount' => 'rulla tillbaka $1 {{PLURAL:$1|redigering|redigeringar}}',
 'rollbacklinkcount-morethan' => 'rulla tillbaka mer än $1 {{PLURAL:$1|redigering|redigeringar}}',
 'rollbackfailed' => 'Tillbakarullning misslyckades',
@@ -3073,7 +3075,6 @@ Spara den på din dator och ladda upp den här.',
 'tooltip-pt-watchlist' => 'Listan över sidor du bevakar för ändringar',
 'tooltip-pt-mycontris' => 'Lista över dina bidrag',
 'tooltip-pt-login' => 'Du uppmuntras att logga in, men det är inte nödvändigt',
-'tooltip-pt-anonlogin' => 'Du får gärna logga in, men det är inte nödvändigt',
 'tooltip-pt-logout' => 'Logga ut',
 'tooltip-ca-talk' => 'Diskussion om innehållssidan',
 'tooltip-ca-edit' => 'Du kan redigera den här sidan.
@@ -4223,4 +4224,7 @@ Annars kan du använda det enkla formuläret nedan. Din kommentar kommer att lä
 'expand_templates_generate_rawhtml' => 'Visa rå HTML',
 'expand_templates_preview' => 'Förhandsvisning',
 
+# Unknown messages
+'createaccount-hook-aborted' => '$1',
+'uploadinvalidxml' => 'XML-koden i den uppladdade filen kunde inte tolkas.',
 );
index 10ad43e..6b7b50c 100644 (file)
@@ -77,7 +77,6 @@ $messages = array(
 'tog-showtoolbar' => 'Pokoż gurt werkcojgůw (JavaScript)',
 'tog-editondblclick' => 'Edycyjo napoczynajům dwa klikńyńća (JavaScript)',
 'tog-editsectiononrightclick' => 'Klikńyńće prawym kneflym myszy na titlu tajli<br />napoczyno jigo sprowjańy(JavaScript)',
-'tog-showtoc' => 'Pokoż spis treśći (na zajtach, kere majům wjyncyj kej trzi tajle)',
 'tog-rememberpassword' => 'Pamjyntej můj ausdruk na tym kůmputrze (nojdalij bez $1 {{PLURAL:$1|dźyń|dńůw}})',
 'tog-watchcreations' => 'Dowům pozůr na zajty, kere żech naszkryfloł',
 'tog-watchdefault' => 'Dowům pozůr na zajty, kere żech sprowjoł',
index 6a1cd1d..0cf0f06 100644 (file)
@@ -98,7 +98,6 @@ $messages = array(
 'tog-showtoolbar' => 'கருவிப்பட்டையைக் காட்டு',
 'tog-editondblclick' => 'இரட்டைச் சொடுக்கில் பக்கங்களைத் தொகு',
 'tog-editsectiononrightclick' => 'பிரிவுத் தலைப்பின் மீது வலச் சொடுக்குவதன் மூலம் பகுதித்  தொகுப்பை செயலாக்கவும்',
-'tog-showtoc' => 'பொருளடக்க பட்டியலைக் காண்பி (மூன்றுக்கு மேற்பட்ட தலைப்புகளையுடைய கட்டுரைகளுக்கு)',
 'tog-rememberpassword' => 'எனது புகுபதிகை பற்றிய விவரங்களை இவ்வுலாவியில் (மிக அதிகமாக $1 {{PLURAL:$1|நாள்|நாட்கள்}}) வரை நினைவில் வைத்திருக்கவும்.',
 'tog-watchcreations' => 'நான் உருவாக்கும் பக்கங்கள் மற்றும் பதிவேற்றும் கோப்புகளை எனது கவனிப்புப் பட்டியலில் சேர்க்கவும்.',
 'tog-watchdefault' => 'நான் தொகுக்கும் பக்கங்கள் மற்றும் கோப்புகளை என் கவனிப்புப் பட்டியலில் சேர்',
index daf7eb6..f114ce8 100644 (file)
@@ -154,7 +154,6 @@ $messages = array(
 'tog-showtoolbar' => 'దిద్దుబాటు పనిముట్ల పట్టీని చూపించు',
 'tog-editondblclick' => 'డబుల్‌ క్లిక్కు చేసినప్పుడు పేజీని మార్చు',
 'tog-editsectiononrightclick' => 'విభాగాల శీర్షికల మీద కుడినొక్కుతో విభాగపు దిద్దుబాటును చేతనంచేయి',
-'tog-showtoc' => 'విషయసూచిక చూపించు (3 కంటే ఎక్కువ శీర్షికలున్న పేజీలకు)',
 'tog-rememberpassword' => 'ఈ విహారిణిలో నా ప్రవేశాన్ని గుర్తుంచుకో (గరిష్ఠంగా $1 {{PLURAL:$1|రోజు|రోజుల}}కి)',
 'tog-watchcreations' => 'నేను సృష్టించే పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు',
 'tog-watchdefault' => 'నేను మార్చే పేజీలను మరియు దస్త్రాలను నా వీక్షణ జాబితాకు చేర్చు',
index d525fbf..cfe3fbb 100644 (file)
@@ -81,9 +81,7 @@ $messages = array(
 'tog-numberheadings' => 'шуморагузори~и худкори инвонҳо',
 'tog-showtoolbar' => 'Намоиши навори абзори вироиш (JavaScript)',
 'tog-editondblclick' => 'Вироиш намудани саҳифаҳо ҳангоми ду карат пахш намудани тугмаи мушак (JavaScript)',
-'tog-editsection' => 'Иҷозат додани вироиши қисмати саҳифа ба воситаи пайванди [вироиш]',
 'tog-editsectiononrightclick' => 'Ба кор андохтани вироиши сарлавҳаҳои қисматҳо бо клики рост (ҶаваСкрипт)',
-'tog-showtoc' => 'Намоиши феҳристи мундариҷон (барои мақолаҳои бо беш аз 3 сарлавҳа)',
 'tog-rememberpassword' => 'Вуруди манро дар ин мурургар дар хотир нигоҳ дор (ҳадди аксар то $1 {{PLURAL:$1|рӯз|рӯз}})',
 'tog-watchcreations' => 'Саҳифаҳое, ки месозам ва парвандаҳое, ки боргузорӣ мекунам ба феҳристи пайгириҳоям афзуда шавад.',
 'tog-watchdefault' => 'Саҳифаҳо ва парвандаҳое, ки вироиш мекунам ба феҳристи пайгириҳоям афзуда шавад',
@@ -97,9 +95,9 @@ $messages = array(
 'tog-enotifminoredits' => 'Барои тағийроти ҷузъӣ дар сафҳаҳо ва парвандаҳо ҳам ба ман номае фиристода шавад',
 'tog-enotifrevealaddr' => 'Нишонаи почтаи электронии ман дар номаҳои иттилорасонӣ қайд шавад',
 'tog-shownumberswatching' => 'Нишон додани шумораи корбарони пайгир',
-'tog-oldsig' => 'Ð\9fеÑ\88намоиÑ\88и Ð¸мзои вуҷуддошта:',
+'tog-oldsig' => 'Ð\98мзои вуҷуддошта:',
 'tog-fancysig' => 'Имзоро ба сурати викиматн ба назар бигир (бе пайванди худкор)',
-'tog-uselivepreview' => 'Истифода аз пешнамоиши зинда (ҶаваСкрипт) (Озмоишӣ)',
+'tog-uselivepreview' => 'Истифода аз пешнамоиши зиндазмоишӣ)',
 'tog-forceeditsummary' => 'Ҳангоме ки хулосаи вироиш нанавиштаам юа ман ислоҳ бидеҳ',
 'tog-watchlisthideown' => 'Пинҳон намудани вироишҳои ман дар феҳристи назарот',
 'tog-watchlisthidebots' => 'Пинҳон намудани вироишҳои бот дар феҳристи назарот',
@@ -111,6 +109,8 @@ $messages = array(
 'tog-diffonly' => 'Муҳтавиёти саҳифаи зерин намоиш дода нашавад',
 'tog-showhiddencats' => 'Гурӯҳҳои пинҳонро намоиш бидеҳ',
 'tog-norollbackdiff' => 'Баъд аз вогардони тафовутро нишон надеҳ',
+'tog-useeditwarning' => 'Дар ҳолати тарки саҳифа вироиши тағйироти захиранашуда манро огаҳ кун',
+'tog-prefershttps' => 'Ҳамеша пайвастшавии амнро дар ҳоли вуруд истифода бар',
 
 'underline-always' => 'Доимо',
 'underline-never' => 'Ҳеҷгоҳ',
@@ -151,17 +151,17 @@ $messages = array(
 'november' => 'Ноябр',
 'december' => 'Декабр',
 'january-gen' => 'Январ',
-'february-gen' => 'феврали',
-'march-gen' => 'маÑ\80Ñ\82и',
+'february-gen' => 'Феврал',
+'march-gen' => 'Ð\9cаÑ\80Ñ\82',
 'april-gen' => 'Апрел',
-'may-gen' => 'май',
-'june-gen' => 'иÑ\8eни',
+'may-gen' => 'Ð\9cай',
+'june-gen' => 'Ð\98Ñ\8eн',
 'july-gen' => 'Июл',
 'august-gen' => 'Август',
-'september-gen' => 'сентябри',
+'september-gen' => 'Сентябр',
 'october-gen' => 'Октябр',
 'november-gen' => 'Ноябр',
-'december-gen' => 'Декабри',
+'december-gen' => 'Декабр',
 'jan' => 'Ян',
 'feb' => 'Фев',
 'mar' => 'Мар',
@@ -174,6 +174,18 @@ $messages = array(
 'oct' => 'Окт',
 'nov' => 'Нов',
 'dec' => 'Дек',
+'january-date' => '$1 январ',
+'february-date' => '$1 феврал',
+'march-date' => '$1 март',
+'april-date' => '$1 апрел',
+'may-date' => '$1 май',
+'june-date' => '$1 июн',
+'july-date' => '$1 июл',
+'august-date' => '$1 август',
+'september-date' => '$1 сентябр',
+'october-date' => '$1 октябр',
+'november-date' => '$1 ноябр',
+'december-date' => '$1 декабр',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Гурӯҳ|Гурӯҳҳо}}',
@@ -199,6 +211,7 @@ $messages = array(
 'newwindow' => '(дар равзанаи ҷадид боз мешавад)',
 'cancel' => 'Лағв',
 'moredotdotdot' => 'Бештар...',
+'morenotlisted' => 'Ин феҳрист комил нест.',
 'mypage' => 'Саҳифа',
 'mytalk' => 'Баҳс',
 'anontalk' => 'Баҳс бо ин IP',
@@ -220,7 +233,7 @@ $messages = array(
 'vector-action-move' => 'Кӯчонидан',
 'vector-action-protect' => 'Муҳофизат',
 'vector-action-undelete' => 'Эҳё',
-'vector-action-unprotect' => 'Ð\91а Ð´Ð°Ñ\80 Ð¾Ð²Ð°Ñ\80дан Ð°Ð· муҳофизат',
+'vector-action-unprotect' => 'ТаÒ\93йиÑ\80и муҳофизат',
 'vector-view-create' => 'Эҷод',
 'vector-view-edit' => 'Вироиш',
 'vector-view-history' => 'Намоиши таърих',
@@ -250,12 +263,14 @@ $messages = array(
 'create-this-page' => 'Эҷод кардани ин саҳифа',
 'delete' => 'Ҳазф',
 'deletethispage' => 'Ин саҳифаро ҳазф кунед',
+'undeletethispage' => 'Барқарор кардани ин саҳифа',
 'undelete_short' => 'Эҳёи {{PLURAL:$1|вироиш|$1 вироишот}}',
+'viewdeleted_short' => '{{PLURAL:$1|вироиши ҳазфшуда|$1 вироишҳои ҳазфшуда}}',
 'protect' => 'Ҳифз кардан',
 'protect_change' => 'тағйир',
 'protectthispage' => 'Ҳифз намудани ин саҳифа',
 'unprotect' => 'Тағйири сатҳи муҳофизат',
-'unprotectthispage' => 'Ð\90з Ð¼Ñ\83ҳоÑ\84изаÑ\82 Ð´Ð°Ñ\80 Ð¾Ð²Ð°Ñ\80дани ин саҳифа',
+'unprotectthispage' => 'ТаÒ\93йиÑ\80и Ð¼Ñ\83ҳоÑ\84изаÑ\82и ин саҳифа',
 'newpage' => 'Саҳифаи нав',
 'talkpage' => 'Ин саҳифаро муҳокима кунед',
 'talkpagelinktext' => 'Баҳс',
@@ -265,7 +280,7 @@ $messages = array(
 'articlepage' => 'Намоиши мақола',
 'talk' => 'Баҳс',
 'views' => 'Назарот',
-'toolbox' => 'Ҷаъбаи абзор',
+'toolbox' => 'Абзорҳо',
 'userpage' => 'Саҳифаи корбарро бинед',
 'projectpage' => 'Дидани саҳифаи лоиҳа',
 'imagepage' => 'Намоиши саҳифаи парванда',
@@ -274,7 +289,7 @@ $messages = array(
 'viewhelppage' => 'Намоиши саҳифаи роҳнамо',
 'categorypage' => 'Намоиши саҳифаи гурӯҳ',
 'viewtalkpage' => 'Намоиши мубоҳисот',
-'otherlanguages' => 'бо забонҳои дигар',
+'otherlanguages' => 'Ð\91о забонҳои дигар',
 'redirectedfrom' => '(Тағйири масир аз $1)',
 'redirectpagesub' => 'Саҳифаи равонакунӣ',
 'lastmodifiedat' => 'Ин саҳифа бори охир $2, $1 дигаргун карда шудааст.',
@@ -282,7 +297,7 @@ $messages = array(
 'protectedpage' => 'Саҳифаи муҳофизатшуда',
 'jumpto' => 'Ҷаҳиш ба:',
 'jumptonavigation' => 'гаштан',
-'jumptosearch' => 'Ҷустуҷӯи',
+'jumptosearch' => 'Ҷустуҷӯ',
 'view-pool-error' => 'Мутаасифона, корсозҳои дар ҳоли ҳозир дучори бори изофӣ ҳастанд.
 Теъдоди зиёди аз корбарон талош мекунанд, ки ин саҳифаро бубинанд.
 Лутфан қабл аз талош дубора барои дидани ин саҳифа муддате сабр кунед.
@@ -293,9 +308,9 @@ $1',
 # 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).
 'aboutsite' => 'Дар бораи {{SITENAME}}',
 'aboutpage' => 'Project:Дар бораи',
-'copyright' => 'Мӯҳтаво таҳти иҷозатномаи $1 дастрас аст.',
+'copyright' => 'Ð\9cÓ¯Ò³Ñ\82аво Ñ\82аҳÑ\82и Ð¸Ò·Ð¾Ð·Ð°Ñ\82номаи $1 Ð²Ð° Ñ\91 Ð´Ð¸Ð³Ð°Ñ\80 Ð´Ð°Ñ\81Ñ\82Ñ\80аÑ\81 Ð°Ñ\81Ñ\82.',
 'copyrightpage' => '{{ns:project}}:Copyrights',
-'currentevents' => 'Вокеаҳои кунунӣ',
+'currentevents' => 'Воқеаҳои кунунӣ',
 'currentevents-url' => 'Project:Воқеаҳои кунунӣ',
 'disclaimers' => 'Такзибнома',
 'disclaimerpage' => 'Project:Такзибномаи умумӣ',
@@ -348,7 +363,7 @@ $1',
 'nstab-media' => 'Расона',
 'nstab-special' => 'Саҳифаи вижа',
 'nstab-project' => 'Саҳифаи лоиҳа',
-'nstab-image' => 'файл',
+'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Пайём',
 'nstab-template' => 'Шаблон',
 'nstab-help' => 'Кӯмак',
@@ -397,7 +412,7 @@ $1',
 'cannotdelete' => 'Саҳифа ё парвандаи мушаххасшударо ҳазф карда нашуд. (Мумкин аст қаблан касе дигаре онро ҳазф карда бошад.)',
 'badtitle' => 'Унвони номуносиб',
 'badtitletext' => 'Унвони саҳифаи дархостшуда номӯътабар, холӣ, ё пайванди байнизабони ё байнивикии нодуруст буд. Он метавонад як ё якчанд аломатҳоеро дар бар гирад, ки дар унвонҳо истифода шуда наметавонанд.',
-'perfcached' => 'Додаҳои зерин аз ҳофизаи муваққатӣ фарохонӣ шудаанд ва мумкин аст, комилан ба рӯз нашудаанд. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
+'perfcached' => 'Додаҳои зерин аз ҳофизаи муваққатӣ фарохонӣ шудаанд ва мумкин аст, комилан ба рӯз нашудаанд. Ҳаддиаксар {{PLURAL:$1|як натиҷа|$1 натоиҷ}} дар ҳофиза дастрас аст.',
 'perfcachedts' => 'Додаҳои зерин аз ҳофизаи муваққатӣ фарохонӣ шудаанд ва мумкин аст, охирин ба рӯзрасонӣ $1 аст. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
 'querypage-no-updates' => 'Имкони ба рӯзрасонии ин саҳифа феълан ғайрифаъол шудааст.',
 'viewsource' => 'Намоиши матни вики',
@@ -445,13 +460,22 @@ $1',
 'userlogin-resetlink' => 'Ҷузъиёти вурудро фаромӯш кардаед?',
 'createaccountmail' => 'бо почтаи электронӣ',
 'createaccountreason' => 'Сабаб:',
+'createacct-submit' => 'Ҳисоби худро созед',
+'createacct-another-submit' => 'Ҳисоби дигаре созед',
+'createacct-benefit-heading' => '{{SITENAME}} тавассути одамони мисли шумо сохта шудааст.',
+'createacct-benefit-body1' => '{{PLURAL:$1|вироиш|вироишҳо}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|саҳифа|саҳифаҳо}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|саҳмгузор|саҳмгузорони}} охирин',
 'badretype' => 'Калимаҳои убуре, ки ворид кардаед бо ҳамдигар мувофиқат намекунанд.',
 'userexists' => 'Номи корбарии дохил кардашуда мавриди истифода аст.
\9dоми дигарероро интихоб кунед.',
\9bÑ\83Ñ\82Ñ\84ан Ð½оми дигарероро интихоб кунед.',
 'loginerror' => 'Иштибоҳ дар вуруд',
+'createacct-error' => 'Иштибоҳи сохтани ҳисоб',
 'createaccounterror' => 'Имкони сохтани ин ҳисоб вуҷуд надорад: $1',
 'nocookiesnew' => 'Ҳисоби корбарӣ эҷод шуд, аммо шумо вориди сомона нашудаед. {{SITENAME}} барои вуруд кардани корбарон ба сомона аз кукиҳо (cookies) истифода мекунад. Шумо бояд кукиҳоро фаъол кунед. Лутфан кукиҳоро фаъол кунед, баъдан ба систем бо номи корбарии ҷадид ва калимаи убуратон вуруд кунед.',
 'nocookieslogin' => '{{SITENAME}} барои ворид кардани корбарон ба систем аз кукиҳо (cookies) истифода мекунад. Кукиҳо фаъол нестанд. Лутфан кукиҳоро фаъол карда бори дигар бисанҷед.',
+'nocookiesfornew' => 'Ҳисоби корбарӣ сохта нашуд, чун мо манбаъи онро тасдиқ карда натавонистем.
+Мутмаин бошед, ки кукиҳои мурургар фаъоланд, ин саҳифро аз нав кушода бори дигар саъй кунед.',
 'noname' => 'Номи корбари дурустеро шумо пешниҳод накардед.',
 'loginsuccesstitle' => 'Вуруд бо муваффақият',
 'loginsuccess' => "'''Шумо акнун ба Википедиа ҳамчун \"\$1\". вуруд кардед'''",
@@ -462,21 +486,21 @@ $1',
 'login-userblocked' => 'Ин корбар баста шудааст. Вуруд манъ аст.',
 'wrongpassword' => 'Калимаи убури нодуруст дохил карда шуд. Бори дигар санҷед.',
 'wrongpasswordempty' => 'Калимаи убури дохил шуда холӣ аст. Бори дигар санҷед.',
-'passwordtooshort' => 'Ð\9aалимаи Ñ\83бÑ\83Ñ\80 Ñ\85еле ÐºÓ¯Ñ\82оҳ Ð°Ñ\81Ñ\82. Ð\92ай Ð±Ð¾Ñ\8fд Ò³Ð°Ð´Ð´Ð¸ Ð°Ò\9bал {{PLURAL:$1|1 Ð°Ð»Ð¾Ð¼Ð°Ñ\82|$1 Ð°Ð»Ð¾Ð¼Ð°Ñ\82ҳо}} Ð´Ð¾Ñ\88Ñ\82а Ð°Ð· Ð½Ð¾Ð¼Ð¸ ÐºÐ¾Ñ\80баÑ\80Ó£ Ñ\84аÑ\80Ò\9b ÐºÑ\83над.',
+'passwordtooshort' => 'Ð\93Ñ\83заÑ\80вожа Ò³Ð°Ð´Ð´Ð¸ Ð°Ò\9bал {{PLURAL:$1|1 Ð°Ð»Ð¾Ð¼Ð°Ñ\82|$1 Ð°Ð»Ð¾Ð¼Ð°Ñ\82ҳо}} Ð±Ð¾Ñ\8fд Ð´Ð¾Ñ\88Ñ\82а Ð±Ð¾Ñ\88ад.',
 'password-name-match' => 'Гузарвожаи шумо бояд аз номи корбариатон тафовут дошта бошад.',
-'mailmypassword' => 'Гузарвожаи навро ба E-mail бифиристед',
+'password-login-forbidden' => 'Истифодаи ин номи корбарӣ ва гузарвожа манъ аст.',
+'mailmypassword' => 'Танзими гузарвожа',
 'passwordremindertitle' => 'Муваққатан калимаи убурӣ ҷадид барои {{SITENAME}}',
-'passwordremindertext' => 'Касе (эҳтимолан худи Шумо), аз нишонаи IP $1 дархост кардааст, ки гузарвожаи ҷадиде барои {{SITENAME}} ($4) барои шумо бифиристем.
-Гузарвожаи муваққатӣ барои корбар "$2" ҳамакнун "$3" аст.
-Агар ин нияти шумо буд, шумо бояд вориди систем шавед ва гузарвожаи худро тағйир диҳед.
+'passwordremindertext' => 'Касе (эҳтимолан худи Шумо, аз нишонаи IP $1) гузарвожаи навро барои {{SITENAME}} ($4) дархост кардааст. Гузарвожаи муваққатӣ барои корбар "$2" сохта ва ба "$3" таъин шуд.
+Агар ин нияти шумо буд, шумо бояд вориди систем шавед ва гузарвожаи навро интихоб кунед.
 
-Агар касе дигаре инро дахост кардааст, ё инки шумо гузарвожаи пешинаи худро ба ёд овардаед ва дигар хоҳиши тағйир додани онро надоред, ба ин паём аҳмият надиҳед ва гузарвожаи пешинаи худро истифода баред.',
\90гаÑ\80 ÐºÐ°Ñ\81е Ð´Ð¸Ð³Ð°Ñ\80е Ð¸Ð½Ñ\80о Ð´Ð°Ñ\85оÑ\81Ñ\82 ÐºÐ°Ñ\80дааÑ\81Ñ\82, Ñ\91 Ð¸Ð½ÐºÐ¸ Ñ\88Ñ\83мо Ð³Ñ\83заÑ\80вожаи Ð¿ÐµÑ\88инаи Ñ\85Ñ\83дÑ\80о Ð±Ð° Ñ\91д Ð¾Ð²Ð°Ñ\80даед Ð²Ð° Ð´Ð¸Ð³Ð°Ñ\80 Ñ\85оҳиÑ\88и Ñ\82аÒ\93йиÑ\80 Ð´Ð¾Ð´Ð°Ð½Ð¸ Ð¾Ð½Ñ\80о Ð½Ð°Ð´Ð¾Ñ\80ед, Ð±Ð° Ð¸Ð½ Ð¿Ð°Ñ\91м Ð°Ò³Ð°Ð¼Ð¸Ñ\8fÑ\82 Ð½Ð°Ð´Ð¸Ò³ÐµÐ´ Ð²Ð° Ð³Ñ\83заÑ\80вожаи Ð¿ÐµÑ\88инаи Ñ\85Ñ\83дÑ\80о Ð¸Ñ\81Ñ\82иÑ\84ода Ð±Ð°Ñ\80ед.',
 'noemail' => 'Ҳеҷ нишонаи почтаи электронӣ барои корбар "$1" сабт нашудааст.',
 'noemailcreate' => 'Шумо бояд як нишонаи почтаи электронии мӯътабарро ворид кунед',
 'passwordsent' => 'Калимаи убури нав ба адреси e-mail, ки барои "$1" номнавис шудааст фиристода шуд.
 Баъд аз дастрас кардани он, марҳамат карда вуруд кунед.',
 'blocked-mailpassword' => 'Нишонаи IP шумо аз вироиш боз дошта шудааст ва аз ин рӯ ба манзури ҷилавгирӣ аз сӯиистифода аз баҳрагирӣ аз қобилияти барқарор кардани калимаи убурро надорад.',
-'eauthentsent' => 'Ð\9dомаи Ð±Ð°Ñ\80ои Ñ\82аÑ\81диÒ\9b Ð±Ð° Ð½Ð¸Ñ\88онаи Ð¿Ð¾Ñ\87Ñ\82а Ñ\8dлекÑ\82Ñ\80онӣ Ñ\84иÑ\80иÑ\81Ñ\82ода Ñ\88Ñ\83д. Ð\9fеÑ\88 Ð°Ð· Ñ\84иÑ\80иÑ\81Ñ\82одани Ð½Ð¾Ð¼Ð° Ð±Ð° Ð¸Ð½ Ò³Ð¸Ñ\81об, Ñ\88Ñ\83мо Ð±Ð¾Ñ\8fд Ð´Ð°Ñ\81Ñ\82Ñ\83Ñ\80оÑ\82е ÐºÐ¸ Ð±Ð° Ð¾Ð½ Ð½Ð¸Ñ\88онаи Ð¿Ð¾Ñ\87Ñ\82аи Ñ\8dлекÑ\82Ñ\80онӣ Ð¾Ð¼Ð°Ð´Ð°Ñ\81Ñ\82, Ð¸Ò·Ñ\80о ÐºÐ°Ñ\80да, Ð´Ð°Ñ\80 Ò³Ð°Ò\9bиÒ\9bаÑ\82 Ò³Ð¸Ñ\81оби Ñ\85Ñ\83д Ð±Ñ\83данаÑ\88Ñ\80о Ð±Ð¾Ñ\8fд тасдиқ кунед.',
+'eauthentsent' => 'Ð\9dомае Ð±Ð°Ñ\80ои Ñ\82аÑ\81диÒ\9b Ð±Ð° Ð½Ð¸Ñ\88онаи Ð¿Ð¾Ñ\87Ñ\82аи Ñ\8dлекÑ\82Ñ\80онии Ð¼Ñ\83Ñ\88аÑ\85аÑ\81Ñ\88Ñ\83да Ñ\84иÑ\80иÑ\81Ñ\82ода Ñ\88Ñ\83д. Ð\9fеÑ\88 Ð°Ð· Ñ\84иÑ\80иÑ\81Ñ\82одани Ð´Ð¸Ð³Ð°Ñ\80 Ð½Ð¾Ð¼Ð° Ð±Ð° Ð¸Ð½ Ò³Ð¸Ñ\81об, Ñ\88Ñ\83мо Ð±Ð¾Ñ\8fд Ð´Ð°Ñ\81Ñ\82Ñ\83Ñ\80оÑ\82е ÐºÐ¸ Ð±Ð° Ð¾Ð½ Ð½Ð¸Ñ\88онаи Ð¿Ð¾Ñ\87Ñ\82аи Ñ\8dлекÑ\82Ñ\80онӣ Ð¾Ð¼Ð°Ð´Ð°Ñ\81Ñ\82, Ð¸Ò·Ñ\80о ÐºÐ°Ñ\80да, Ð´Ð°Ñ\80 Ò³Ð°Ò\9bиÒ\9bаÑ\82 Ò³Ð¸Ñ\81оби Ð¨Ñ\83мо Ð±Ñ\83данаÑ\88Ñ\80о тасдиқ кунед.',
 'throttled-mailpassword' => 'Як ёдоварии калимаи убур барои шумо {{PLURAL:$1|соат|$1 соат}} гузашта фиристода шудааст. Барои чилавгирӣ аз сӯиистифода, фақат дар ҳар {{PLURAL:$1|соат|$1 соат}} танҳо як ёдоварӣ фиристода мешавад.',
 'mailerror' => 'Хато дар фиристодани номаи электронӣ: $1',
 'acct_creation_throttle_hit' => 'Бубахшед, Шумо аллакай $1 ҳисобҳо сохтед. Шумо бештар сохта наметавонед.',
@@ -603,6 +627,7 @@ $1',
 Шумо метавонед дар дигар саҳифаҳо [[Special:Search/{{PAGENAME}}|унвони ин саҳифаро ҷустуҷӯ кунед]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} гузоришҳои алоқамандро ҷустуҷӯ намоед],
 ё [{{fullurl:{{FULLPAGENAME}}|action=edit}} ин саҳифаро вироиш кунед]</span>.',
+'noarticletext-nopermission' => 'Дар ин саҳифа то кунун матне вуҷуд надорад. Шумо метавонед дар дигар саҳифаҳо [[Special:Search/{{PAGENAME}}|унвони ин саҳифаро ҷустуҷӯ кунед]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} гузоришҳои алоқамандро ҷустуҷӯ намоед], ё [{{fullurl:{{FULLPAGENAME}}|action=edit}} ин саҳифаро вироиш кунед]</span>.',
 'userpage-userdoesnotexist' => 'Ҳисоби корбар "<nowiki>$1</nowiki>" сабт нашудааст. Итминон ҳосил кунед ки мехоҳед ин саҳифаро эчод ё вироиш кунед.',
 'clearyourcache' => "'''Эзоҳ:''' Пас аз захирасозӣ мумкин аст барои дидани тағйирот ниёз бошад, ки ҳофизаи ниҳонии мурургари худро холӣ кунед. '''Мозилла / Файерфокс / Сафари:''' калиди ''Shift''-ро нигоҳ доред  ва рӯи тугмаи  ''Reload'' клик кунед, ё калидҳои ''Ctrl-Shift-R'' (''Cmd-Shift-R'' дар Эппл Макинтош) бо ҳам фишор диҳед; '''IE:''' калиди ''Ctrl'' нигоҳ доред ва рӯи тугмаи ''Refresh'' клик кунед, ё калидҳои ''Ctrl-F5'' бо ҳам фишор диҳед; '''Konqueror:''': тугмаи ''Reload''-ро оддӣ клик кунед, ё калиди ''F5'' фишор диҳед; Ба корбарони '''Opera''' мумкин аст лозим бошад, ки ҳофизаи ниҳонии худро комилан дар ''Tools→Preferences'' холӣ кунанд.",
 'usercssyoucanpreview' => "'''Эзоҳ:''' Пеш парвандаи CSS ё JS худро захира кунед, бо истифода аз тугмаи \"Пешнамоиш\" метавонед онро озмоиш кунед.",
@@ -666,8 +691,14 @@ $1',
 
 Шумо зарурияти вироиши ин саҳифаро дида баромаданатон лозим.
 Сабти ҳазфшавии ин саҳифа барои фароҳам овардани имкониятҳои қулай оварда шудааст:",
+'moveddeleted-notice' => 'Ин саҳифа ҳазф шудааст. 
+Гузориши ҳазф ва тағйири масири ин саҳифа дар зер барои иттилооти шумо оварда шудааст.',
 
 # Parser/template warnings
+'post-expand-template-inclusion-warning' => '<strong>Огоҳӣ:</strong> Шаблони дар баргирифта хеле калон аст. Баъзе аз шаблонҳо дар бар гирифта намешавад.',
+'post-expand-template-inclusion-category' => 'Саҳифаҳое ки дар он ҳаҷми шаблон беш аз ҳад аст',
+'post-expand-template-argument-warning' => '<strong>Огоҳӣ:</strong> Ин саҳифа ҳаддиақал як шаблоне дорад, ки хосияти ҳаҷм калони васеъшавӣ дорад.
+Ин хосият аз байр гирифта шуд.',
 'post-expand-template-argument-category' => 'Саҳифаҳои ҳавои шаблонҳои бо параметрҳои нодида гирифташуда',
 
 # "Undo" feature
@@ -701,8 +732,8 @@ $1',
 (қаблӣ) = тафовут бо нусхаи феълӣ, ҷузъ = вироиши ҷузъӣ',
 'history-fieldset-title' => 'Мурури таърих',
 'history-show-deleted' => 'Фақат ҳазфшуда',
-'histfirst' => 'Ð\90ввалин',
-'histlast' => 'Ð\9eÑ\85ирин',
+'histfirst' => 'кӯҳнаÑ\82аÑ\80ин',
+'histlast' => 'навÑ\82арин',
 'historysize' => '({{PLURAL:$1|1 байт|$1 байт}})',
 'historyempty' => '(холӣ)',
 
@@ -796,6 +827,9 @@ $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-exists' => "'''Саҳифае бо номи \"[[:\$1]]\" дар ин вики вуҷуд дорад.'''",
 'searchmenu-new' => "'''Эҷоди саҳифаи \"[[:\$1]]\" дар ин вики!'''",
@@ -822,6 +856,7 @@ $1',
 'searchall' => 'ҳама',
 'showingresults' => "Намоиши {{PLURAL:$1|'''1''' натиҷа|'''$1''' натоиҷ}} дар зер оғоз аз #'''$2'''.",
 'showingresultsnum' => "Намоиши {{PLURAL:$3|'''1''' натиҷа|'''$3''' натоиҷ}} оғоз аз #'''$2'''.",
+'showingresultsheader' => '{{PLURAL:$5|Натиҷаи <strong>$1</strong> <strong>$3</strong>|Натоиҷи <strong>$1 - $2</strong> <strong>$3</strong>}} барои <strong>$4</strong>',
 'search-nonefound' => 'Натиҷаи муносиб бо дархост пайдо нашуд.',
 'powersearch-legend' => 'Ҷустуҷӯи пешрафта',
 'powersearch-ns' => 'Ҷустуҷӯ дар фазоҳои ном:',
@@ -998,7 +1033,7 @@ $1',
 'rclistfrom' => 'Нишон додани тағйиротҳои нав сар карда аз $1',
 'rcshowhideminor' => '$1 вироишҳои хурд',
 'rcshowhidebots' => '$1 ботҳо',
-'rcshowhideliu' => '$1 корбарони вурудшуда',
+'rcshowhideliu' => '$1 корбарони сабтиномшуда',
 'rcshowhideanons' => '$1 корбарони вуруднашуда',
 'rcshowhidepatr' => '$1 вироишҳои гаштӣ',
 'rcshowhidemine' => '$1 вироишҳои ман',
@@ -1014,13 +1049,13 @@ $1',
 'rc_categories' => 'Маҳдудият ба гурӯҳҳо (бо аломати "|" ҷудо кунед)',
 'rc_categories_any' => 'Ҳар кадом',
 'newsectionsummary' => '/* $1 */ бахши ҷадид',
-'rc-enhanced-expand' => 'Намоиши ҷузъиёт (ниёзманд ба Ҷава Скрипт)',
+'rc-enhanced-expand' => 'Намоиши ҷузъиёт',
 'rc-enhanced-hide' => 'Пинҳони ҷузъиёт',
 
 # Recent changes linked
 'recentchangeslinked' => 'Таъғироти монандӣ',
 'recentchangeslinked-feed' => 'Таъғироти монандӣ',
-'recentchangeslinked-toolbox' => 'Таъғироти монандӣ',
+'recentchangeslinked-toolbox' => 'Тағйироти вобаста',
 'recentchangeslinked-title' => 'Тағйирҳои алоқаманд ба "$1"',
 'recentchangeslinked-summary' => "Ин феҳристи тағйироти охир барои саҳифаҳои пайваста аз саҳифаи мушаххасшуда мебошад (ё ба аъзоёни гурӯҳи мушаххасшуда).
 Саҳифаҳои дар [[Special:Watchlist|феҳристи назароти шумо]] буда  '''пурранг''' ҳастанд.",
@@ -1148,6 +1183,7 @@ $1',
 'linkstoimage' => '{{PLURAL:$1|Саҳифаҳои|$1 Саҳифаи}} зерин ба ин акс пайванданд:',
 'nolinkstoimage' => 'Ҳеҷ саҳифае ба ин акс пайванд надорад.',
 'sharedupload' => 'Ин парванда аз $1 мебошад ва шояд аз тарафи дигар лоиҳаҳо истифода шавад.',
+'sharedupload-desc-here' => 'Ин файл аз $1 ва дар дигар лоиҳаҳо метавонад истифода шавад. Тафсилоти ин файл [$2 саҳифаи тафсилоти файл] дар зер нишон дода шудааст.',
 'uploadnewversion-linktext' => 'Бор кардани нусхаи ҷадидӣ ин парванда',
 
 # File reversion
@@ -1396,7 +1432,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchmethod-list' => 'баррасии саҳифаҳои пайгиришуда барои вироишҳои охир',
 'watchlistcontains' => 'Феҳристи пайгириҳои шумо $1 {{PLURAL:$1|саҳифаро|саҳифаҳоро}} дар бар мегирад.',
 'iteminvalidname' => "Мушкилӣ бо мавриди '$1', номи номӯътабар аст...",
-'wlnote' => "Дар зер {{PLURAL:$1|охирин тағйир|'''$1''' охирин тағйирот}} дар $2 соати охир {{PLURAL:омадааст|омадаанд}}.",
 'wlshowlast' => 'Намоиши охирин $1 соат $2 рӯзҳо $3',
 'watchlist-options' => 'Ихтиёроти феҳристи пайгириҳо',
 
@@ -1580,9 +1615,9 @@ $1',
 'contributions' => 'Ҳиссагузориҳои {{GENDER:$1|корбар}}',
 'contributions-title' => 'Ҳиссагузориҳои корбар барои $1',
 'mycontris' => 'Ҳиссагузориҳо',
-'contribsub2' => 'Барои $1 ($2)',
+'contribsub2' => 'Барои {{GENDER:$3|$1}} ($2)',
 'nocontribs' => 'Ҳеҷ тағйире бо ин мушаххасот пайдо нашуд.',
-'uctop' => '(боло)',
+'uctop' => '(кÑ\83нÑ\83нӣ)',
 'month' => 'Дар ин моҳ (ва қабл аз он):',
 'year' => 'Дар ин сол (ва қабл аз он):',
 
@@ -1596,6 +1631,7 @@ $1',
 'sp-contributions-userrights' => 'Мудирияти ихтиёроти корбарӣ',
 'sp-contributions-search' => 'Ҷустуҷӯи ҳиссагузориҳо',
 'sp-contributions-username' => 'IP нишона ё номи корбар:',
+'sp-contributions-toponly' => 'Танҳо вироиширо охирин нусхаҳоро нишон деҳ',
 'sp-contributions-submit' => 'Ҷустуҷӯ',
 
 # What links here
@@ -1860,7 +1896,6 @@ $1',
 'tooltip-pt-watchlist' => 'Рӯйхати саҳифаҳое, ки тағйиротҳояшонро Шумо назорат мекунед',
 'tooltip-pt-mycontris' => 'Феҳристи ҳиссагузориҳои шумо',
 'tooltip-pt-login' => 'Тавсия мешавад ки ба систем ворид шавад, лекин иҷборӣ нест.',
-'tooltip-pt-anonlogin' => 'Ба шумо тавзеҳ мешавад, ки ба систем ворид шавед, лекин ин иҷборӣ нест.',
 'tooltip-pt-logout' => 'Хуруҷ аз систем',
 'tooltip-ca-talk' => 'Баҳси матни таркибии ин саҳифа',
 'tooltip-ca-edit' => 'Шумо ин саҳифаро вироиш карда метавонед. Пеш аз захира кардани саҳифа пешнамоишро истифода баред.',
@@ -1873,17 +1908,17 @@ $1',
 'tooltip-ca-move' => 'Кӯчонидани ин саҳифа',
 'tooltip-ca-watch' => 'Ин саҳифаро метавонед ба феҳристи назароти худ дохил кунед',
 'tooltip-ca-unwatch' => 'Гирифта партофтани ин саҳифа аз феҳристи назароти Шумо',
-'tooltip-search' => 'Ҷустуҷӯи {{SITENAME}}',
+'tooltip-search' => 'Ҷустуҷӯ дар {{SITENAME}}',
 'tooltip-search-go' => 'Гузаштан ба саҳифае, ки айнан чунин ном дорад, агар вуҷуд дошта бошад',
 'tooltip-search-fulltext' => 'Ҷустуҷӯи саҳифаҳое, ки чунин матн доранд',
 'tooltip-p-logo' => 'Саҳифаи Аслӣ',
 'tooltip-n-mainpage' => 'Гузаштан ба Саҳифаи Аслӣ',
 'tooltip-n-mainpage-description' => 'Мушоҳидаи саҳифаи аслӣ',
-'tooltip-n-portal' => 'Дар бораи лоиҳа ва чи корҳоро метавонед кард',
+'tooltip-n-portal' => 'Дар бораи лоиҳа, чӣ корҳоро метавонед кард, ва дарёфти чизҳо',
 'tooltip-n-currentevents' => 'Ёфтани иттилооти пешзамина перомуни воқеаҳои кунунӣ',
-'tooltip-n-recentchanges' => 'Рӯйхати тағйиротҳо дар Википедиа',
+'tooltip-n-recentchanges' => 'Рӯйхати тағйирот дар Википедиа',
 'tooltip-n-randompage' => 'Овардани як саҳифаи тасодуфӣ',
-'tooltip-n-help' => 'Ð\93Ñ\83заÑ\88Ñ\82ан Ð±Ð° Ð Ð¾Ò³Ð½Ð°Ð¼Ð¾.',
+'tooltip-n-help' => 'Ð\9cакон Ð±Ð°Ñ\80ои Ð´Ð°Ñ\80Ñ\91Ñ\84Ñ\82',
 'tooltip-t-whatlinkshere' => 'Рӯйхати ҳамаи саҳифаҳое, ки ба ин саҳифа пайванд доранд',
 'tooltip-t-recentchangeslinked' => 'Тағйироти охир ин саҳифаҳое, ки ин саҳифа ба онҳо пайванд дорад',
 'tooltip-feed-rss' => 'Хабарномаи RSS барои ин саҳифа',
@@ -1978,7 +2013,7 @@ $1',
 'file-info-size' => '$1 × $2 пиксел, ҳаҷми парванда: $3, навъи MIME: $4',
 'file-nohires' => 'Нусхаи ҳаҷман ва сифатан баландтар дастрас нест.',
 'svg-long-desc' => 'SVG парванда, исмӣ $1 × $2 пиксел, андозаи парванда: $3',
-'show-big-image' => 'Ð\90кÑ\81и Ð¿Ñ\83Ñ\80Ñ\80а',
+'show-big-image' => 'Ð\90кÑ\81и Ð°Ñ\81лӣ',
 
 # Special:NewFiles
 'newimages' => 'Намоишгоҳи парвандаҳои ҷадид',
index 6571f09..9d280da 100644 (file)
@@ -207,7 +207,6 @@ $messages = array(
 'tog-showtoolbar' => 'แสดงแถบเครื่องมือแก้ไข',
 'tog-editondblclick' => 'แก้ไขหน้าเมื่อดับเบิลคลิก',
 'tog-editsectiononrightclick' => 'เปิดใช้งานการแก้ไขเฉพาะส่วนโดยคลิกขวาที่หัวข้อ',
-'tog-showtoc' => 'แสดงสารบัญ (สำหรับหน้าที่มีมากกว่า 3 หัวข้อ)',
 'tog-rememberpassword' => 'จำการล็อกอินของฉันในเบราว์เซอร์นี้ (สูงสุด $1 วัน)',
 'tog-watchcreations' => 'เพิ่มหน้าที่ฉันสร้างและไฟล์ที่ฉันอัปโหลดเข้ารายการเฝ้าดู',
 'tog-watchdefault' => 'เพิ่มหน้าและไฟล์ที่ฉันแก้ไขเข้ารายการเฝ้าดู',
@@ -1202,7 +1201,7 @@ $1",
 'difference-title-multipage' => 'ผลต่างระหว่างหน้า "$1" และ "$2"',
 'difference-multipage' => '(ผลต่างระหว่างหน้า)',
 'lineno' => 'แถว $1:',
-'compareselectedversions' => 'à¹\80à¸\9bรียà¸\9aà¹\80à¸\97ียà¸\9aสอà¸\87รุà¹\88à¸\99à¸\97ีà¹\88à¹\80ลือà¸\81',
+'compareselectedversions' => 'à¹\80à¸\9bรียà¸\9aà¹\80à¸\97ียà¸\9aรุà¹\88à¸\99à¸\97ีà¹\88à¹\80ลือà¸\81à¹\84วà¹\89',
 'showhideselectedversions' => 'แสดง/ซ่อนรุ่นที่เลือก',
 'editundo' => 'ย้อน',
 'diff-empty' => '(ไม่แตกต่าง)',
@@ -2154,7 +2153,7 @@ $1',
 'emailpagetext' => 'คุณสามารถใช้แบบด้านล่างส่งอีเมลหา{{GENDER:$1|ผู้ใช้}}นี้
 ที่อยู่อีเมลที่คุณกรอกใน[[Special:Preferences|การตั้งค่าส่วนตัวของคุณ]]จะปรากฏเป็นที่อยู่ "จาก" ของอีเมล ซึ่งผู้รับสามารถตอบกลับคุณได้โดยตรง',
 'usermailererror' => 'การส่งอีเมลผิดพลาด:',
-'defemailsubject' => 'อีเมล {{SITENAME}} จากผู้ใช้ "$1"',
+'defemailsubject' => 'อีเมล{{SITENAME}}จากผู้ใช้ "$1"',
 'usermaildisabled' => 'ปิดใช้งานการส่งอีเมลหาผู้ใช้',
 'usermaildisabledtext' => 'คุณไม่สามารถส่งอีเมลหาผู้ใช้อื่นบนวิกินี้',
 'noemailtitle' => 'ไม่มีที่อยู่อีเมล',
@@ -2206,7 +2205,6 @@ $1',
 'watchmethod-list' => 'ตรวจสอบหน้าเฝ้าดูกับการแก้ไขล่าสุด',
 'watchlistcontains' => 'รายการเฝ้าดูของคุณมี $1 หน้า',
 'iteminvalidname' => "เกิดปัญหากับรายการ '$1' ชื่อไม่ถูกต้อง...",
-'wlnote' => "ด้านล่างเป็นการแก้ไข{{PLURAL:$1|ล่าสุด|ล่าสุด '''$1''' รายการ}} ใน{{PLURAL:$2|ชั่วโมง|ช่วง '''$2''' ชั่วโมง}}ที่ผ่านมา จนถึง $3, $4",
 'wlshowlast' => 'แสดง $1 ชั่วโมง $2 วันล่าสุด $3',
 'watchlist-options' => 'ตัวเลือกรายการเฝ้าดู',
 
@@ -2264,7 +2262,7 @@ $UNWATCHURL
 'deletepage' => 'ลบหน้า',
 'confirm' => 'ยืนยัน',
 'excontent' => "เนื้อหาเดิม: '$1'",
-'excontentauthor' => "เนื้อหาเดิม: '$1' (และมีผู้เขียนคนเดียว คือ '[[Special:Contributions/$2|$2]]')",
+'excontentauthor' => "เนื้อหาเดิม: '$1' (และมีผู้เขียนคนเดียวคือ '[[Special:Contributions/$2|$2]]')",
 'exbeforeblank' => "เนื้อหาก่อนถูกทำว่างคือ: '$1'",
 'exblank' => 'หน้าว่าง',
 'delete-confirm' => 'ลบ "$1"',
@@ -2835,7 +2833,6 @@ $1',
 'tooltip-pt-watchlist' => 'รายการหน้าที่คุณเฝ้าดูการแก้ไข',
 'tooltip-pt-mycontris' => 'รายการหน้าที่คุณเขียน',
 'tooltip-pt-login' => 'ไม่จำเป็นต้องล็อกอินในการแก้ไข แต่แนะนำอย่างยิ่งให้ล็อกอิน',
-'tooltip-pt-anonlogin' => 'ไม่จำเป็นต้องล็อกอินในการแก้ไข แต่แนะนำอย่างยิ่งให้ล็อกอิน',
 'tooltip-pt-logout' => 'ล็อกเอาต์',
 'tooltip-ca-talk' => 'พูดคุยเกี่ยวกับเนื้อหา',
 'tooltip-ca-edit' => 'คุณสามารถแก้ไขหน้านี้ได้ โปรดใช้ปุ่มดูตัวอย่างก่อนบันทึก',
@@ -3406,7 +3403,7 @@ $1',
 'monthsall' => 'ทั้งหมด',
 
 # Email address confirmation
-'confirmemail' => 'ยืนยันอีเมล',
+'confirmemail' => 'ยืà¸\99ยัà¸\99à¸\97ีà¹\88อยูà¹\88อีà¹\80มล',
 'confirmemail_noemail' => 'ไม่ได้ใส่อีเมลในส่วน [[Special:Preferences|การตั้งค่าส่วนตัว]]',
 'confirmemail_text' => '{{SITENAME}} กำหนดให้คุณตรวจสอบความสมเหตุสมผลของที่อยู่อีเมลของคุณก่อนใช้คุณลักษณะอีเมล
 เปิดใช้งานปุ่มด้านล่างเพื่อส่งเมลยืนยันไปยังที่อยู่ของคุณ
index 6bda8a7..1125b99 100644 (file)
@@ -50,7 +50,6 @@ $messages = array(
 'tog-showtoolbar' => 'Redaktirleme mahalynda gural panelini görkez (JavaScript)',
 'tog-editondblclick' => 'Sahypany jübüt tyklap, redaktirläp başla (JavaScript)',
 'tog-editsectiononrightclick' => 'Bölümleri bölümiň adyna sag tyklap redaktirlemäge mümkinçilik döret (JavaScript)',
-'tog-showtoc' => 'Mazmun tablisasyny görkez (3 sanydan köp ady bar bolan sahypalar üçin)',
 'tog-rememberpassword' => 'Sessiýamy şu brauzerde ýatda sakla  (iň köp $1 {{PLURAL:$1|günläp|günläp}})',
 'tog-watchcreations' => 'Döreden sahypalarymy gözegçilik sanawyma goş',
 'tog-watchdefault' => 'Redaktirlän sahypalarymy gözegçilik sanawyma goş',
index 7d21181..9ff45b2 100644 (file)
@@ -159,7 +159,6 @@ $messages = array(
 'tog-showtoolbar' => "Ipakita ang ''toolbar'' ng pagbabago (JavaScript)",
 'tog-editondblclick' => 'Magbago ng mga pahina sa dalawahang pagpindot (JavaScript)',
 'tog-editsectiononrightclick' => 'Payagan ang mga pagbabagong panseksyon sa pakanang pagpindot ng mga panseksyong pamagat (JavaScript)',
-'tog-showtoc' => 'Ipakita ang talaan ng mga nilalaman (sa mga pahinang may higit sa 3 punong pamagat)',
 'tog-rememberpassword' => 'Tandaan ang paglagda ko sa panghanaphanap na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
 'tog-watchcreations' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahinang nilikha ko at mga talaksang ikinarga kong paitaas',
 'tog-watchdefault' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahina at mga talaksang binago ko',
index 64b2f3d..d4dbd4e 100644 (file)
@@ -367,7 +367,6 @@ $messages = array(
 'tog-showtoolbar' => 'Düzenleme araç çubuğunu göster',
 'tog-editondblclick' => 'Çift tıklayarak sayfaları düzenle',
 'tog-editsectiononrightclick' => 'Bölüm başlığına sağ tıklayarak bölümleri düzenleyebilme olanağı ver',
-'tog-showtoc' => 'İçindekiler tablosunu göster (3 taneden fazla başlığı olan sayfalar için)',
 'tog-rememberpassword' => 'Girişimi bu tarayıcıda hatırla (en fazla $1 {{PLURAL:$1|gün|gün}} için)',
 'tog-watchcreations' => 'Açtığım sayfaları ve yüklediğim dosyaları izleme listeme ekle',
 'tog-watchdefault' => 'Düzenleme yaptığım sayfaları izleme listeme ekle',
@@ -912,6 +911,8 @@ Girişi bitirmek için, burada yeni bir parola yazın:',
 'retypenew' => 'Yeni parolayı tekrar girin',
 'resetpass_submit' => 'Şifreyi ayarlayın ve oturum açın',
 'changepassword-success' => 'Parolanız başarıyla değiştirildi!',
+'changepassword-throttled' => 'Çok fazla yeni oturum açma girişiminde bulundunuz.
+Lütfen tekrar denemeden önce $1 bekleyin.',
 'resetpass_forbidden' => 'Parolalar değiştirilememektedir',
 'resetpass-no-info' => 'Bu sayfaya doğrudan erişmek için oturum açmanız gereklidir.',
 'resetpass-submit-loggedin' => 'Parolayı değiştir',
@@ -957,13 +958,15 @@ Geçici şifre: $2',
 'changeemail' => 'E-posta adresini değiştir',
 'changeemail-header' => 'Hesabın e-posta adresini değiştirin',
 'changeemail-text' => 'E-posta adresinizi değiştirmek için bu formu doldurun. Değişikliği onaylamak için parolanızı girmeniz gerekecektir.',
-'changeemail-no-info' => 'Bu sayfaya doğrudan ulaşabilmek için oturum açmış olmalısınız.',
+'changeemail-no-info' => 'Bu sayfaya doğrudan erişmek için oturum açmanız gereklidir.',
 'changeemail-oldemail' => 'Mevcut E-posta adresi:',
 'changeemail-newemail' => 'Yeni E-posta adresi:',
 'changeemail-none' => '(yok)',
 'changeemail-password' => '{{SITENAME}} parolanız:',
 'changeemail-submit' => "E-posta'yı değiştir",
 'changeemail-cancel' => 'İptal',
+'changeemail-throttled' => 'Çok fazla oturum açma girişiminde bulundunuz.
+Lütfen tekrar denemeden önce $1 bekleyin.',
 
 # Special:ResetTokens
 'resettokens' => 'Anahtarları sıfırla',
@@ -1054,7 +1057,7 @@ Lütfen yapacağınız herhangi bir sorguda yukarıdaki bütün detayları bulun
 Siz sayfayı görüntülerken taşınmış veya silinmiş olabilir.',
 'loginreqtitle' => 'Oturum açmanız gerekiyor',
 'loginreqlink' => 'oturum aç',
-'loginreqpagetext' => 'Diğer sayfaları görmek için $1 olmalısınız.',
+'loginreqpagetext' => 'Diğer sayfaları görmek için $1 .',
 'accmailtitle' => 'Parola gönderildi.',
 'accmailtext' => "[[User talk:$1|$1]] için rastgele oluşturulan parola $2 adresine gönderildi.
 
@@ -2447,7 +2450,6 @@ Bundan sonra, bu sayfaya ve ilgili tartışma sayfasına yapılacak değişiklik
 'watchmethod-list' => 'izlediğiniz sayfalarda yapılan son değişiklikler kontrol ediliyor',
 'watchlistcontains' => 'İzleme listenizde $1 tane {{PLURAL:$1|sayfa|sayfa}} var.',
 'iteminvalidname' => "'$1' öğesi ile sorun, geçersiz isim...",
-'wlnote' => "$3 saat $4 itibariyle son {{PLURAL:$2|bir saatte|'''$2''' saatte}} yapılan {{PLURAL:$1|son değişiklik|son '''$1''' değişiklik}} aşağıdadır.",
 'wlshowlast' => 'Son $1 saati $2 günü göster $3',
 'watchlist-options' => 'İzleme listesi seçenekleri',
 
@@ -3103,7 +3105,6 @@ Geçici dosya kayıp.',
 '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' => '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 e7903e9..97dd6b4 100644 (file)
@@ -59,7 +59,6 @@ $messages = array(
 'tog-showtoolbar' => 'تەھرىر قورال بالداقنى كۆرسەت',
 'tog-editondblclick' => 'قوش چەككەندە بەت تەھرىرلە',
 'tog-editsectiononrightclick' => 'تېمىنى ئوڭ چېكىپ ئابزاس تەھرىرلەشكە يول قوي',
-'tog-showtoc' => 'مەزمۇن جەدۋىلى كۆرسەت (بىر بەتتە 3 تىن ئارتۇق ماۋزۇ بار بەتكە قارىتىلغان)',
 'tog-rememberpassword' => 'بۇ كومپيۇتېردا كىرگىنىمنى ئەستە ساقلا(ئەڭ ئۇزۇن بولغاندا $1 {{PLURAL:$1|كۈن|كۈن}})',
 'tog-watchcreations' => 'مەن قۇرغان بەت ۋە يۈكلىگەن ھۆججەتلەرنى كۆزەت تىزىملىكىمگە قوش',
 'tog-watchdefault' => 'مەن تەھرىرلىگەن بەت ۋە ھۆججەتنى كۆزەت تىزىملىكىمگە قوش',
index 3528a47..1bdf398 100644 (file)
@@ -378,7 +378,6 @@ $messages = array(
 'tog-showtoolbar' => 'Показувати панель інструментів',
 'tog-editondblclick' => 'Редагувати сторінки при подвійному клацанні мишкою',
 'tog-editsectiononrightclick' => 'Редагувати розділи при клацанні правою кнопкою мишки на заголовку',
-'tog-showtoc' => 'Показувати зміст (для сторінок з більш ніж трьома заголовками)',
 'tog-rememberpassword' => "Запам'ятати мій обліковий запис для цього браузера (на строк не більше $1 {{PLURAL:$1|1=дня|днів}})",
 'tog-watchcreations' => 'Додавати створені мною сторінки і завантажені мною файли до мого списку спостереження',
 'tog-watchdefault' => 'Додавати змінені мною сторінки та файли до мого списку спостереження',
@@ -2503,7 +2502,6 @@ $1',
 'watchmethod-list' => 'перегляд статей за якими ведеться спостереження',
 'watchlistcontains' => 'Ваш список спостереження містить $1 {{PLURAL:$1|сторінку|сторінки|сторінок}}.',
 'iteminvalidname' => 'Проблема з елементом «$1», недопустима назва…',
-'wlnote' => 'Нижче наведено {{PLURAL:$1|останнє $1 редагування|останні $1 редагування|останні $1 редагувань}} за {{PLURAL:$2|останню|останні|останні}} <strong>$2</strong> {{PLURAL:$2|годину|години|годин}}, на час $3 $4.',
 'wlshowlast' => 'Показати зміни за останні $1 годин $2 днів $3',
 'watchlist-options' => 'Налаштування списку спостереження',
 
@@ -3149,7 +3147,6 @@ $2',
 'tooltip-pt-watchlist' => 'Список сторінок, за змінами в яких Ви спостерігаєте',
 'tooltip-pt-mycontris' => 'Ваш внесок',
 'tooltip-pt-login' => "Тут можна зареєструватися в системі, але це не обов'язково.",
-'tooltip-pt-anonlogin' => "Тут можна зареєструватися в системі, але це не обов'язково.",
 'tooltip-pt-logout' => 'Вихід із системи',
 'tooltip-ca-talk' => 'Обговорення змісту сторінки',
 'tooltip-ca-edit' => 'Ви можете редагувати цю сторінку. Будь ласка, використовуйте кнопку попереднього перегляду перед збереженням',
@@ -4470,5 +4467,6 @@ MediaWiki поширюється в надії, що вона буде кори
 'expand_templates_preview' => 'Попередній перегляд',
 
 # Unknown messages
+'createaccount-hook-aborted' => ' $1',
 'uploadinvalidxml' => 'Не вдалося проаналізувати XML у завантаженому файлі.',
 );
index bdc6761..2998e5f 100644 (file)
@@ -122,7 +122,6 @@ $messages = array(
 'tog-showtoolbar' => 'Tahrirlash asboblari joylashgan yoʻlakchani koʻrsatish (JavaScript orqali)',
 'tog-editondblclick' => 'Sichqoncha tugmasini ikki marta bosish orqali tahrirlashni boshlash',
 'tog-editsectiononrightclick' => 'Boʻlim sarlavhasiga sichqonchaning oʻng tugmasi bilan bosib tahrirlashni boshlash',
-'tog-showtoc' => 'Mundarijani koʻrsatish (3 tadan koʻproq sarlavha bor sahifalarda)',
 'tog-rememberpassword' => 'Hisob ma’lumotlarim ushbu brauzerda eslab qolinsin (ko‘pi bilan $1 kunga)',
 'tog-watchcreations' => 'Men yaratgan sahifalarni va yuklagan fayllarni kuzatuv roʻyxatimga qoʻsh',
 'tog-watchdefault' => 'Men tahrirlagan sahifa va fayllarni kuzatuv roʻyxatimga qoʻsh',
@@ -444,10 +443,9 @@ Ushbu xabar tarjimasini qoʻshish yoki oʻzgartirish uchun, iltimos, MediaWikini
 'virus-unknownscanner' => "noma'lum antivirus:",
 
 # Login and logout pages
-'logouttext' => "'''Siz saytdan muvaffaqiyatli chiqdingiz.'''
+'logouttext' => '<strong>Siz saytdan muvaffaqiyatli chiqdingiz.</strong>
 
-{{SITENAME}} saytidan anonim holda foydalanishda davom etishindiz mumkin. Yoki siz yana hozirgi yoki boshqa foydalanuvchi nomi bilan qaytadan tizimga kirishingiz mumkin.
-Shuni e'tiborga olingki, ayrim sahifalar siz brauzeringiz keshini tozalamaguningizga qadar xuddi tizimga kirganingizdagidek ko'rinishda davom etaverishi mumkin.",
+Brauzeringiz keshini tozalamaguningizgacha ayrim sahifalar tizimga kirganingizdek koʻrinishda davom etaverishi mumkin.',
 'yourname' => 'Foydalanuvchi nomi:',
 'userlogin-yourname' => 'Foydalanuvchi nomi',
 'userlogin-yourname-ph' => 'Foydalanuvchi nomingizni kiriting',
@@ -1215,7 +1213,6 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'notanarticle' => 'Maqola emas',
 'watchlist-details' => 'Sizning kuzatuv roʻyxatingizda hozirda {{PLURAL:$1|bitta sahifa|$1ta sahifa}} mavjud (munozara sahifalarini hisobga olmaganda).',
 'wlheader-showupdated' => "Siz oxirgi marta kirganingizdan keyin oʻzgartirilgan sahifalar '''qalin''' yozuv bilan ajratib koʻrsatilgan.",
-'wlnote' => "Below {{PLURAL:$1|is the last change|are the last '''$1''' changes}} in the last {{PLURAL:$2|hour|'''$2''' hours}}, as of $3, $4.",
 'wlshowlast' => 'Oxirgi $1 soatdagi $2 kundagi tahrirlarni koʻrsat $3',
 'watchlist-options' => 'Kuzatuv roʻyxati moslamalari',
 
@@ -1516,7 +1513,6 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'tooltip-pt-watchlist' => 'Siz kuzatib borayotgan sahifalardagi oʻzgarishlar roʻyxati',
 'tooltip-pt-mycontris' => 'Hissalaringiz roʻyxati',
 'tooltip-pt-login' => 'Bu majburiyat mavjud bo‘lmasa-da, kirishingiz taklif qilinadi.',
-'tooltip-pt-anonlogin' => "Bu majburiyat bo'lmasada, kirishingiz taklif qilinadi.",
 'tooltip-pt-logout' => 'Chiqish',
 'tooltip-ca-talk' => 'Sahifa matni borasida munozara',
 'tooltip-ca-edit' => 'Siz bu sahifani tahrirlashingiz mumkin. Iltimos, saqlashdan oldin koʻrib chiqish tugmasidan foydalaning',
index 6653a61..06a12e7 100644 (file)
@@ -171,7 +171,6 @@ $messages = array(
 'tog-showtoolbar' => 'Mostra ła bara de i strumenti de modifega (el richiede JavaScript)',
 'tog-editondblclick' => 'Modifega de łe pajine tramite dopio clic (el richiede JavaScript)',
 'tog-editsectiononrightclick' => 'Modifega de łe sesion tramite clic destro sol titoło (el richiede JavaScript)',
-'tog-showtoc' => "Mostra l'indexe par łe pajine con pì de 3 sesion",
 'tog-rememberpassword' => 'Tiente in mente la me password so sto computer (par un massimo de $1 {{PLURAL:$1|zorno|zorni}})',
 'tog-watchcreations' => "Xonta łe pàjine creae e i file cargai a łe tegnùe d'ocio",
 'tog-watchdefault' => "Xonta łe pàjine e i file modifegai a łe tegnùe d'ocio",
index cef8f60..75374d3 100644 (file)
@@ -100,7 +100,6 @@ $messages = array(
 'tog-showtoolbar' => "Ozutada redaktiruindan panel'",
 'tog-editondblclick' => 'Redaktiruida lehtpoled kaksitadud plokul',
 'tog-editsectiononrightclick' => 'Redaktiruida sekcijad hiren oiktal plokul pälkirjutesele',
-'tog-showtoc' => 'Ozutada südäiolend (lehtpoled, kudambil om enamba, mi 3 pälkirjutest)',
 'tog-rememberpassword' => 'Muštta minun kävutajan nimi neciš kompjuteras (enintään $1 {{PLURAL:$1|päivä|päivää}})',
 'tog-watchcreations' => 'Ližata kaik minai sätud lehtpoled da failad minun kaclendkirjuteshe',
 'tog-watchdefault' => 'Ližata kaik minai toižetadud lehtpoled da failad minun kaclendkirjuteshe',
index 4af0432..178bc97 100644 (file)
@@ -349,7 +349,6 @@ $messages = array(
 'tog-showtoolbar' => 'Hiển thị thanh định dạng',
 'tog-editondblclick' => 'Nhấn đúp để sửa đổi trang',
 'tog-editsectiononrightclick' => 'Bấm chuột phải vào đề mục để sửa đổi phần trang',
-'tog-showtoc' => 'Hiển thị mục lục (cho trang có trên 3 đề mục)',
 'tog-rememberpassword' => 'Nhớ thông tin đăng nhập của tôi trong trình duyệt này (cho đến $1 ngày)',
 'tog-watchcreations' => 'Tự động theo dõi các trang tôi viết mới và các tập tin tôi tải lên',
 'tog-watchdefault' => 'Tự động theo dõi các trang và tập tin tôi sửa',
@@ -2428,7 +2427,6 @@ Những sửa đổi đối với trang này và trang thảo luận của nó s
 'watchmethod-list' => 'Dưới đây hiện danh sách các trang theo dõi.',
 'watchlistcontains' => 'Danh sách theo dõi của bạn có $1 {{PLURAL:$1|trang|trang}}.',
 'iteminvalidname' => 'Tên trang “$1” không hợp lệ…',
-'wlnote' => "Dưới đây là {{PLURAL:$1|thay đổi '''duy nhất'''|'''$1''' thay đổi gần nhất}} trong {{PLURAL:$2|giờ|'''$2''' giờ}} qua, tính tới $3 lúc $4.",
 'wlshowlast' => 'Hiển thị $1 giờ $2 ngày gần đây $3',
 'watchlist-options' => 'Tùy chọn về danh sách theo dõi',
 
@@ -3072,7 +3070,6 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'tooltip-pt-watchlist' => 'Thay đổi của các trang tôi theo dõi',
 'tooltip-pt-mycontris' => 'Danh sách các đóng góp của tôi',
 'tooltip-pt-login' => 'Đăng nhập sẽ có lợi hơn, tuy nhiên không bắt buộc.',
-'tooltip-pt-anonlogin' => 'Không đăng nhập vẫn tham gia được, tuy nhiên đăng nhập sẽ lợi hơn.',
 'tooltip-pt-logout' => 'Đăng xuất',
 'tooltip-ca-talk' => 'Thảo luận về trang này',
 'tooltip-ca-edit' => 'Bạn có thể sửa được trang này! (Xin vui lòng xem trước trước khi lưu.)',
index 37d344c..3168503 100644 (file)
@@ -95,7 +95,6 @@ $messages = array(
 'tog-showtoolbar' => 'Wone bànqaasu njëlu coppite bi (JavaScript)',
 'tog-editondblclick' => 'Cuq cuqaatal ngir soppi aw xët (JavaScript)',
 'tog-editsectiononrightclick' => 'Soppi ab xaaj cib cuqub ndeyjoor ci kojam  (JavaScript)',
-'tog-showtoc' => 'Wone tëralinu ne-ne yi (ngir xët yi ëpp 3 xaaj)',
 'tog-rememberpassword' => 'Fattalikul sama baatujàll  (for a maximum of $1 {{PLURAL:$1|day|days}})',
 'tog-watchcreations' => 'Yokk ci sama limu toppte xët yi may sos',
 'tog-watchdefault' => 'Yokk ci sama limu toppte xët yi may soppi',
index 4c44ac2..e305787 100644 (file)
@@ -208,7 +208,6 @@ $messages = array(
 'tog-showtoolbar' => 'ווײַזן רעדאקטירן געצייג-שטאנג',
 'tog-editondblclick' => 'רעדאקטירן בלעטער דורך טאפל קליק',
 'tog-editsectiononrightclick' => 'באמעגלעכן אפטייל רעדאקטירן דורכן רעכטס־קליקן אויף אפטייל קעפלעך',
-'tog-showtoc' => 'ווייז דאס אינהאלט קעסטל<br />(פאר בלעטער מיט מער ווי 3 קעפלעך)',
 'tog-rememberpassword' => 'געדענק מיין אריינלאגירן אין דעם בלעטערער (ביז $1 {{PLURAL:$1|טאָג|טעג}})',
 'tog-watchcreations' => 'צולייגן בלעטער וואס איך באשאף און טעקעס וואס איך לאד ארויף צו מיין אכטונג ליסטע',
 'tog-watchdefault' => 'צולייגן בלעטער וואס איך רעדאקטיר צו מיין אכטונג ליסטע',
@@ -1293,6 +1292,7 @@ $1",
 'search-result-score' => 'שייכותדיקייט: $1%',
 'search-redirect' => '(ווײַטערפֿירן $1)',
 'search-section' => '(אפטיילונג $1)',
+'search-file-match' => '(פאסט צו טעקע אינהאלט)',
 'search-suggest' => 'צי האט איר געמיינט: $1',
 'search-interwiki-caption' => 'שוועסטער פראיעקטן',
 'search-interwiki-default' => '$1 רעזולטאטן:',
@@ -2010,6 +2010,7 @@ $1",
 'pageswithprop-text' => 'דער בלאט האלט א רשימה פון בלעטער וואס ניצן א געוויסע בלאט אייגנשאפט.',
 'pageswithprop-prop' => 'אייגנשאפט נאמען:',
 'pageswithprop-submit' => 'גייט',
+'pageswithprop-prophidden-long' => 'לא גער טעקסט אייגנשאפט־ווערט באהאלטן ($1)',
 
 'doubleredirects' => 'געטאפלטע ווײַטערפֿירונגען',
 'doubleredirectstext' => 'דער בלאט רעכנט אויס בלעטער וואס פירן ווייטער צו אנדערע ווייטערפירן בלעטער.
@@ -2260,7 +2261,6 @@ $1",
 'watchmethod-list' => 'קאנטראלירן בלעטער אין אַכטונג־ליסטע פֿאַר לעצטע ענדערונגען',
 'watchlistcontains' => 'אייער אויפֿפאסונג ליסטע אנטהאלט {{PLURAL:$1|איין בלאט|$1 בלעטער}}.',
 'iteminvalidname' => "פּראָבלעם מיט '$1', אומגילטיקער נאָמען ...",
-'wlnote' => "אונטן {{PLURAL:$1|איז די לעצטע ענדערונג|זענען די לעצטע '''$1''' ענדערונגען}} אין {{PLURAL:$2|דער לעצטער שעה|די לעצטע '''$2''' שעה'ן}} ביז $3, $4.",
 'wlshowlast' => "(ווײַזן די לעצטע $1 שעה'ן | $2 טעג | $3)",
 'watchlist-options' => 'אויפֿפאַסן ליסטע ברירות',
 
@@ -2810,6 +2810,7 @@ $1',
 'allmessages-prefix' => 'פֿילטערן לויט פרעפֿיקס',
 'allmessages-language' => 'שפראַך:',
 'allmessages-filter-submit' => 'צייגן',
+'allmessages-filter-translate' => 'איבערזעצן',
 
 # Thumbnails
 'thumbnail-more' => 'פארגרעסער',
@@ -2904,7 +2905,6 @@ $2',
 'tooltip-pt-watchlist' => 'ליסטע פון בלעטער וואס איר טוט אויפפאסן נאך ענדערונגן',
 'tooltip-pt-mycontris' => 'ליסטע פון אייערע ביישטייערונגען',
 'tooltip-pt-login' => "עס איז רעקאָמענדירט זיך אײַנשרײַבן; ס'איז אבער נישט קיין פֿליכט",
-'tooltip-pt-anonlogin' => "עס איז רעקאָמענדירט זיך אײַנשרײַבן; ס'איז אָבער נישט קײַן פֿליכט",
 'tooltip-pt-logout' => 'ארויסלאגירן',
 'tooltip-ca-talk' => 'שמועס וועגן דעם אינהאַלט בלאַט',
 'tooltip-ca-edit' => "איר קענט ענדערן דעם בלאט. ביטע באניצט דעם ''פֿארויסקוק'' קנעפל בעפֿארן אפהיטן",
index 0ecfdc8..4e256e0 100644 (file)
@@ -65,7 +65,6 @@ $messages = array(
 'tog-showtoolbar' => 'Ìfihàn pẹpẹ irinṣẹ́ àtúnṣe',
 'tog-editondblclick' => "Ṣ'àtúnṣe àwọn ojúewé ní kíkàn lẹ́mẹjì",
 'tog-editsectiononrightclick' => 'Ìgbàláyè àtúnṣe abala nípa klííkì ọ̀tún lórí àkọlé abala',
-'tog-showtoc' => 'Ìfihàn tábìlì àkóónú (fún àwọn ojúewé tó ní ju orí ọ̀rọ̀ 3 lọ)',
 'tog-rememberpassword' => "Ṣè'rántí àkọọ́lẹ̀ ìwọlé mi lórí agbétàkùn yìí (fún {{PLURAL:$1|ọjọ́|ọjọ́}} $1 pípẹ́jùlọ)",
 'tog-watchcreations' => "Ṣ'àfikún ojúewé tí mo dá àti àwọn fáìlì tí mo rùsókè mọ́ ìmójútó mi",
 'tog-watchdefault' => "Ṣ'àfikún àwọn ojúewé àti fáìlì tí mo ṣ'àtúnse mọ́ ìmójútó mi",
index 4e8563a..3c7d5cb 100644 (file)
@@ -245,7 +245,6 @@ $messages = array(
 'tog-showtoolbar' => '顯示修改工具列(需要JavaScript)',
 'tog-editondblclick' => '撳兩下改嘢(需要JavaScript)',
 'tog-editsectiononrightclick' => '可以撳右掣更改個別段落(需要JavaScript)',
-'tog-showtoc' => '多過三段時顯示目錄',
 'tog-rememberpassword' => '響呢個瀏覽器度記住我嘅登入資料 (最高維持$1{{PLURAL:$1|日|日}})',
 'tog-watchcreations' => '將我開嘅頁加入監視清單',
 'tog-watchdefault' => '將我修改嘅頁加入監視清單',
index a4c1cfd..99125d2 100644 (file)
@@ -394,7 +394,6 @@ $messages = array(
 'tog-showtoolbar' => '显示编辑工具栏',
 'tog-editondblclick' => '双击编辑页面',
 'tog-editsectiononrightclick' => '启用右击段落标题编辑段落',
-'tog-showtoc' => '显示目录(对于有多于3个标题的页面)',
 'tog-rememberpassword' => '在该浏览器记住我的登录状态(最长$1天)',
 'tog-watchcreations' => '添加我创建的页面和我上传的文件至我的监视列表',
 'tog-watchdefault' => '添加我编辑的页面和文件至我的监视列表',
@@ -2360,7 +2359,7 @@ $1',
 'watchmethod-list' => '查看监视页中的最新修改',
 'watchlistcontains' => '您的监视列表包含$1个页面。',
 'iteminvalidname' => "页面'$1'错误,无效命名...",
-'wlnote' => "下面是{{PLURAL:$2|上|过去'''$2'''}}小时的{{PLURAL:$1|最后更改|最后'''$1'''个更改}},截至$3 $4。",
+'wlnote2' => '以下是最近<strong>$1</strong>小时的变化,作为$2,$3。',
 'wlshowlast' => '显示过去$1小时或$2天内的$3',
 'watchlist-options' => '监视列表选项',
 
@@ -2897,6 +2896,7 @@ $1被封禁的理由是:“$2”',
 'allmessages-prefix' => '以前缀过滤:',
 'allmessages-language' => '语言:',
 'allmessages-filter-submit' => '提交',
+'allmessages-filter-translate' => '翻译',
 
 # Thumbnails
 'thumbnail-more' => '放大',
@@ -2988,7 +2988,6 @@ $2',
 'tooltip-pt-watchlist' => '你正在监视更改的页面的列表',
 'tooltip-pt-mycontris' => '你的贡献的列表',
 'tooltip-pt-login' => '我们鼓励您登录,不过这不是强制的',
-'tooltip-pt-anonlogin' => '我们鼓励你登录,不过这不是强制的',
 'tooltip-pt-logout' => '退出登录',
 'tooltip-ca-talk' => '关于内容页面的讨论',
 'tooltip-ca-edit' => '你可以编辑本页面。请在保存前使用预览按钮',
index b7adb9f..66f0ca5 100644 (file)
@@ -280,7 +280,6 @@ $messages = array(
 'tog-showtoolbar' => '顯示編輯工具欄',
 'tog-editondblclick' => '雙擊編輯頁面',
 'tog-editsectiononrightclick' => '允許右擊標題編輯段落',
-'tog-showtoc' => '顯示目錄 (針對一頁超過3個標題的頁面)',
 'tog-rememberpassword' => '在這個瀏覽器上記住我的登入狀態(最多 $1 天)',
 'tog-watchcreations' => '將我建立的頁面和上傳的檔案加入監視列表',
 'tog-watchdefault' => '將我更改的頁面和檔案加入監視列表',
@@ -2315,7 +2314,7 @@ $1',
 'watchmethod-list' => '檢查最近編輯的被監視頁面',
 'watchlistcontains' => '您的監視列表包含$1個頁面。',
 'iteminvalidname' => "頁面 '$1' 錯誤,無效命名...",
-'wlnote' => "截至$3 $4,以下是最近'''$2'''小時內的最後'''$1'''次修改。",
+'wlnote2' => '以下是新近<strong>$1</strong>小時的更改,作為$2,$3。',
 'wlshowlast' => '顯示最近$1小時;$2天;$3的修改。',
 'watchlist-options' => '監視列表選項',
 
@@ -2866,6 +2865,7 @@ $1被封禁的理由是“$2”',
 'allmessages-prefix' => '以前綴過濾:',
 'allmessages-language' => '語言:',
 'allmessages-filter-submit' => '往',
+'allmessages-filter-translate' => '翻譯',
 
 # Thumbnails
 'thumbnail-more' => '放大',
@@ -2959,7 +2959,6 @@ $2',
 'tooltip-pt-watchlist' => '您所監視頁面的變更列表',
 'tooltip-pt-mycontris' => '您的貢獻列表',
 'tooltip-pt-login' => '建議您登入,儘管並非必須。',
-'tooltip-pt-anonlogin' => '建議您登入,儘管並非必須。',
 'tooltip-pt-logout' => '登出',
 'tooltip-ca-talk' => '關於頁面正文的討論',
 'tooltip-ca-edit' => '您可以編輯此頁,請在儲存之前先預覽一下。',
index ebbc22c..5656d82 100644 (file)
@@ -478,7 +478,6 @@ andconvert
 andtitle
 anon
 anoneditwarning
-anonlogin
 anonnotice
 anononly
 anonpreviewwarning
index f56e91f..51f2cac 100644 (file)
@@ -55,7 +55,7 @@ if ( isset( $options['d'] ) ) {
 }
 
 $useReadline = function_exists( 'readline_add_history' )
-                       && Maintenance::posix_isatty( 0 /*STDIN*/ );
+       && Maintenance::posix_isatty( 0 /*STDIN*/ );
 
 if ( $useReadline ) {
        $historyFile = isset( $_ENV['HOME'] ) ?
@@ -63,12 +63,27 @@ if ( $useReadline ) {
        readline_read_history( $historyFile );
 }
 
+$e = null; // PHP exception
 while ( ( $line = Maintenance::readconsole() ) !== false ) {
+       if ( $e && !preg_match( '/^(exit|die);?$/', $line ) ) {
+               // Internal state may be corrupted or fatals may occur later due
+               // to some object not being set. Don't drop out of eval in case
+               // lines were being pasted in (which would then get dumped to the shell).
+               // Instead, just absorb the remaning commands. Let "exit" through per DWIM.
+               echo "Exception was thrown before; please restart eval.php\n";
+               continue;
+       }
        if ( $useReadline ) {
                readline_add_history( $line );
                readline_write_history( $historyFile );
        }
-       $val = eval( $line . ";" );
+       try {
+               $val = eval( $line . ";" );
+       } catch ( Exception $e ) {
+               echo "Caught exception " . get_class( $e ) .
+                       ": {$e->getMessage()}\n" . $e->getTraceAsString() . "\n";
+               continue;
+       }
        if ( wfIsHHVM() || is_null( $val ) ) {
                echo "\n";
        } elseif ( is_string( $val ) || is_numeric( $val ) ) {
index e0dd8ee..97a00a9 100644 (file)
@@ -32,7 +32,6 @@ $wgIgnoredMessages = array(
        'accesskey-pt-watchlist',
        'accesskey-pt-mycontris',
        'accesskey-pt-login',
-       'accesskey-pt-anonlogin',
        'accesskey-pt-logout',
        'accesskey-ca-talk',
        'accesskey-ca-edit',
index d698552..63e2091 100644 (file)
@@ -28,7 +28,6 @@ $wgMessageStructure = array(
        ),
        'toggles' => array(
                'tog-underline',
-               'tog-justify',
                'tog-hideminor',
                'tog-hidepatrolled',
                'tog-newpageshidepatrolled',
@@ -2011,7 +2010,7 @@ $wgMessageStructure = array(
                'watchmethod-list',
                'watchlistcontains',
                'iteminvalidname',
-               'wlnote',
+               'wlnote2',
                'wlshowlast',
                'watchlist-options',
        ),
@@ -2532,6 +2531,7 @@ $wgMessageStructure = array(
                'import-error-special',
                'import-error-invalid',
                'import-error-unserialize',
+               'import-error-bad-location',
                'import-options-wrong',
                'import-rootpage-invalid',
                'import-rootpage-nosubpage',
@@ -2565,7 +2565,6 @@ $wgMessageStructure = array(
                'accesskey-pt-watchlist',
                'accesskey-pt-mycontris',
                'accesskey-pt-login',
-               'accesskey-pt-anonlogin',
                'accesskey-pt-logout',
                'accesskey-ca-talk',
                'accesskey-ca-edit',
@@ -2636,7 +2635,6 @@ $wgMessageStructure = array(
                'tooltip-pt-watchlist',
                'tooltip-pt-mycontris',
                'tooltip-pt-login',
-               'tooltip-pt-anonlogin',
                'tooltip-pt-logout',
                'tooltip-ca-talk',
                'tooltip-ca-edit',
index 3940ba2..3aa8109 100644 (file)
@@ -229,9 +229,9 @@ CREATE TABLE categorylinks (
 CREATE UNIQUE INDEX cl_from ON categorylinks (cl_from, cl_to);
 CREATE INDEX cl_sortkey     ON categorylinks (cl_to, cl_sortkey, cl_from);
 
-CREATE SEQUENCE externallinks_id_seq;
+CREATE SEQUENCE externallinks_el_id_seq;
 CREATE TABLE externallinks (
-  el_id     INTEGER  NOT NULL  PRIMARY KEY DEFAULT nextval('externallinks_id_seq'),
+  el_id     INTEGER  NOT NULL  PRIMARY KEY DEFAULT nextval('externallinks_el_id_seq'),
   el_from   INTEGER  NOT NULL  REFERENCES page(page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
   el_to     TEXT     NOT NULL,
   el_index  TEXT     NOT NULL
@@ -377,6 +377,7 @@ CREATE TABLE uploadstash (
   us_key          TEXT,
   us_orig_path    TEXT,
   us_path         TEXT,
+  us_props        BYTEA,
   us_source_type  TEXT,
   us_timestamp    TIMESTAMPTZ,
   us_status       TEXT,
index cd8e9bd..8a13440 100644 (file)
@@ -274,6 +274,9 @@ return array(
        'jquery.form' => array(
                'scripts' => 'resources/jquery/jquery.form.js',
        ),
+       'jquery.fullscreen' => array(
+               'scripts' => 'resources/jquery/jquery.fullscreen.js',
+       ),
        'jquery.getAttrs' => array(
                'scripts' => 'resources/jquery/jquery.getAttrs.js',
                'targets' => array( 'desktop', 'mobile' ),
diff --git a/resources/jquery/jquery.fullscreen.js b/resources/jquery/jquery.fullscreen.js
new file mode 100644 (file)
index 0000000..0159079
--- /dev/null
@@ -0,0 +1,176 @@
+/**
+ * jQuery fullscreen plugin v2.0.0
+ * https://github.com/theopolisme/jquery-fullscreen/tree/v2.0.0
+ *
+ * Documentation at <https://github.com/theopolisme/jquery-fullscreen/blob/v2.0.0/README.md>
+ *
+ * Copyright (c) 2013 Theopolisme <theopolismewiki@gmail.com>
+ *
+ * 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.
+ */
+( function ( $ ) {
+       var setupFullscreen,
+               fsClass = 'jq-fullscreened';
+
+       /**
+        * On fullscreenchange, trigger a jq-fullscreen-change event
+        * The event is given an object, which contains the fullscreened DOM element (element), if any
+        * and a boolean value (fullscreen) indicating if we've entered or exited fullscreen mode
+        * Also remove the 'fullscreened' class from elements that are no longer fullscreen
+        */
+       function handleFullscreenChange () {
+               var fullscreenElement = document.fullscreenElement ||
+                       document.mozFullScreenElement ||
+                       document.webkitFullscreenElement ||
+                       document.msFullscreenElement;
+
+               if ( !fullscreenElement ) {
+                       $( '.' + fsClass ).data( 'isFullscreened', false ).removeClass( fsClass );
+               }
+
+               $( document ).trigger( $.Event( 'jq-fullscreen-change', { element: fullscreenElement, fullscreen: !!fullscreenElement } ) );
+       }
+
+       /**
+        * Enters full screen with the "this" element in focus.
+        * Check the .data( 'isFullscreened' ) of the return value to check
+        * success or failure, if you're into that sort of thing.
+        * @chainable
+        * @return {jQuery}
+        */
+       function enterFullscreen () {
+               var element = this.get(0),
+                       $element = this.first();
+               if ( element ) {
+                       if ( element.requestFullscreen ) {
+                               element.requestFullscreen();
+                       } else if ( element.mozRequestFullScreen ) {
+                               element.mozRequestFullScreen();
+                       } else if ( element.webkitRequestFullscreen ) {
+                               element.webkitRequestFullscreen();
+                       } else if ( element.msRequestFullscreen ) {
+                               element.msRequestFullscreen();
+                       } else {
+                               // Unable to make fullscreen
+                               $element.data( 'isFullscreened', false );
+                               return this;
+                       }
+                       // Add the fullscreen class and data attribute to `element`
+                       $element.addClass( fsClass ).data( 'isFullscreened', true );
+                       return this;
+               } else {
+                       $element.data( 'isFullscreened', false );
+                       return this;
+               }
+       }
+
+       /**
+        * Brings the "this" element out of fullscreen.
+        * Check the .data( 'isFullscreened' ) of the return value to check
+        * success or failure, if you're into that sort of thing.
+        * @chainable
+        * @return {jQuery}
+        */
+       function exitFullscreen () {
+               var fullscreenElement = ( document.fullscreenElement ||
+                               document.mozFullScreenElement ||
+                               document.webkitFullscreenElement ||
+                               document.msFullscreenElement );
+
+               // Ensure that we only exit fullscreen if exitFullscreen() is being called on the same element that is currently fullscreen
+               if ( fullscreenElement && this.get(0) === fullscreenElement ) {
+                       if ( document.exitFullscreen ) {
+                               document.exitFullscreen();
+                       } else if ( document.mozCancelFullScreen ) {
+                               document.mozCancelFullScreen();
+                       } else if ( document.webkitCancelFullScreen ) {
+                               document.webkitCancelFullScreen();
+                       } else if ( document.msCancelFullScreen ) {
+                               document.msCancelFullScreen();
+                       } else {
+                               // Unable to cancel fullscreen mode
+                               return this;
+                       }
+                       // We don't need to remove the fullscreen class here,
+                       // because it will be removed in handleFullscreenChange.
+                       // But we should change the data on the element so the
+                       // caller can check for success.
+                       this.first().data( 'isFullscreened', false );
+               }
+
+               return this;
+       }
+
+       /**
+        * Set up fullscreen handling and install necessary event handlers.
+        * Return false if fullscreen is not supported.
+        */
+       setupFullscreen = function () {
+               if ( document.fullscreenEnabled ||
+                               document.mozFullScreenEnabled ||
+                               document.webkitFullscreenEnabled ||
+                               document.msFullscreenEnabled
+               ) {
+                       // When the fullscreen mode is changed, trigger the
+                       // fullscreen events (and when exiting,
+                       // also remove the fullscreen class)
+                       $( document ).on( 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange', handleFullscreenChange);
+                       // Convenience wrapper so that one only needs to listen for
+                       // 'fullscreenerror', not all of the prefixed versions
+                       $( document ).on( 'webkitfullscreenerror mozfullscreenerror msfullscreenerror', function () {
+                               $( document ).trigger( $.Event( 'fullscreenerror' ) );
+                       } );
+                       // Fullscreen has been set up, so always return true
+                       setupFullscreen = function () { return true; };
+                       return true;
+               } else {
+                       // Always return false from now on, since fullscreen is not supported
+                       setupFullscreen = function() { return false; };
+                       return false;
+               }
+       };
+
+       /**
+        * Set up fullscreen handling if necessary, then make the first element
+        * matching the given selector fullscreen
+        * @chainable
+        * @return {jQuery}
+        */
+       $.fn.enterFullscreen = function () {
+               if ( setupFullscreen() ) {
+                       $.fn.enterFullscreen = enterFullscreen;
+                       return this.enterFullscreen();
+               } else {
+                       $.fn.enterFullscreen = function () { return this; };
+                       return this;
+               }
+       };
+
+       /**
+        * Set up fullscreen handling if necessary, then cancel fullscreen mode
+        * for the first element matching the given selector.
+        * @chainable
+        * @return {jQuery}
+        */
+       $.fn.exitFullscreen = function () {
+               if ( setupFullscreen() ) {
+                       $.fn.exitFullscreen = exitFullscreen;
+                       return this.exitFullscreen();
+               } else {
+                       $.fn.exitFullscreen = function () { return this; };
+                       return this;
+               }
+       };
+}( jQuery ) );
index 89bb64d..2bab5b3 100644 (file)
@@ -10,7 +10,7 @@
                // Get the original values of some form elements
                $( '#wpTextbox1, #wpSummary' ).each( function () {
                        $( this ).data( 'origtext', $( this ).val() );
-               });
+               } );
                var savedWindowOnBeforeUnload;
                $( window )
                        .on( 'beforeunload.editwarning', function () {
index c7e9bd9..486e993 100644 (file)
@@ -2,7 +2,7 @@
  * Hebrew (עברית) language functions
  */
 
-mediaWiki.language.convertGrammar = function( word, form ) {
+mediaWiki.language.convertGrammar = function ( word, form ) {
        var grammarForms = mediaWiki.language.getData( 'he', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
                return grammarForms[form][word];
index 5d2c271..e21d21b 100644 (file)
        -webkit-transition: @string;
        transition: @string;
 }
+
+@-webkit-keyframes rotate {
+       from {
+               -webkit-transform:rotate(0deg);
+       }
+       to {
+               -webkit-transform:rotate(360deg);
+       }
+}
+
+@keyframes rotate {
+       from {
+               transform: rotate(0deg);
+       }
+       to {
+               transform: rotate(360deg);
+       }
+}
+
+.rotation(@time) {
+       -webkit-animation-name: rotate;
+       -webkit-animation-duration: @time;
+       -webkit-animation-iteration-count: infinite;
+       -webkit-animation-timing-function: linear;
+       animation-name: rotate;
+       animation-duration: @time;
+       animation-iteration-count: infinite;
+       animation-timing-function: linear;
+}
index 3842064..0078724 100644 (file)
@@ -111,7 +111,7 @@ jQuery( function ( $ ) {
                        keyRight = 39,
                        $el;
 
-               if( event.keyCode === keyLeft ) {
+               if ( event.keyCode === keyLeft ) {
                        $el = $( '#preftoc li.selected' ).prev().find( 'a' );
                } else if ( event.keyCode === keyRight ) {
                        $el = $( '#preftoc li.selected' ).next().find( 'a' );
index 85730f5..637121e 100644 (file)
        padding-top: 4em;
 }
 
-#mw-createaccount-join {
-       margin-left: 0.75em;
-       /* Separate from background image */
-       box-shadow: 4px 4px 4px 4px rgba(255, 255, 255, 1);
-       width: auto;
-       display: inline-block;
-}
index 8276b1c..553d077 100644 (file)
@@ -1,25 +1,32 @@
+@import "mediawiki.mixins";
 @import "../../settings/typography";
 @import "../../mixins/effects";
 
 // Buttons
 //
+// All buttons start with mw-ui-button class, modified by other classes.
+// It can be any element.  Due to a lack of a CSS reset, the exact styling of
+// the button depends on what type of element is used.
+// There are two kinds of buttons, the default is a "Call to Action" with an obvious border
+// and there is a quiet kind without a border.
+//
 // Styleguide 2.
 
 @buttonBorderRadius: 3px;
+@transitionDuration: .1s;
+@transitionFunction: ease-in-out;
 
-// Button styling
-//
-// Basic button styling to be used on desktop skins. Can be any element.
-// Due to a lack of a CSS reset, the exact styling of the button depends on what type of element is used.
+// Neutral button styling
 //
 // Markup:
-// <div class="mw-ui-button">button.mw-ui-button</div>
+// <button class="mw-ui-button">.mw-ui-button</button>
+// <button class="mw-ui-button" disabled>.mw-ui-button</button>
 //
 // Styleguide 2.1.
 .mw-ui-button {
        // Container layout
        display: inline-block;
-       padding: 0.4em 1em 0.4em 1em;
+       padding: .5em 1em;
        margin: 0;
 
        // IE6/IE7 hack
@@ -28,7 +35,7 @@
        zoom: 1;
 
        // Container styling
-       .buttonColors();
+       .button-colors(@colorWhite);
        border-radius: @buttonBorderRadius;
 
        // Ensure that buttons and inputs are nicely aligned when they have differing heights
 
        // Content styling
        text-align: center;
-       text-decoration: none;
-
        font-weight: bold;
+       white-space: nowrap;
+       text-shadow: 0 1px rgba(0, 0, 0, .1);
 
        // Interaction styling
        cursor: pointer;
 
-       &:disabled,
-       &.mw-ui-disabled {
+       &:disabled {
+               text-shadow: none;
                cursor: default;
        }
 
+       .transition(background @transitionDuration @transitionFunction, color @transitionDuration @transitionFunction, box-shadow @transitionDuration @transitionFunction;);
+
        // Styling for specific button types
        // -----------------------------------------
+
+       // Big buttons
+       //
+       // Not all buttons are equal. You can emphasise certain actions over others
+       // using the mw-ui-big class.
+       //
+       // Markup:
+       // <button class="mw-ui-button mw-ui-big">.mw-ui-button</button>
+       // <button class="mw-ui-button mw-ui-progressive mw-ui-big">.mw-ui-progressive</button>
+       // <button class="mw-ui-button mw-ui-constructive mw-ui-big">.mw-ui-constructive</button>
+       // <button class="mw-ui-button mw-ui-destructive mw-ui-big">.mw-ui-destructive</button>
+       //
+       // Styleguide 2.1.6.
        &.mw-ui-big {
                font-size: @baseFontSize * 1.3;
        }
 
+       // Block buttons
+       //
+       // Some buttons might need to be stacked.
+       //
+       // Markup:
+       // <button class="mw-ui-button mw-ui-block">.mw-ui-button</button>
+       // <button class="mw-ui-button mw-ui-progressive mw-ui-block">.mw-ui-progressive</button>
+       // <button class="mw-ui-button mw-ui-constructive mw-ui-block">.mw-ui-constructive</button>
+       // <button class="mw-ui-button mw-ui-destructive mw-ui-block">.mw-ui-destructive</button>
+       //
+       // Styleguide 2.1.5.
        &.mw-ui-block {
                display: block;
                width: 100%;
        }
 
-       // Primary buttons
+       // Progressive buttons
        //
-       // Do not use the mw-ui-primary class use mw-ui-constructive instead. For blue buttons
-       // use mw-ui-progressive (coming soon)
+       // Use progressive buttons for actions which lead to a next step in the process.
+       // .mw-ui-primary is deprecated, kept for compatibility.
        //
        // Markup:
-       // <button class="mw-ui-button mw-ui-primary">mw-ui-primary</button>
+       // <button class="mw-ui-button mw-ui-progressive">.mw-ui-progressive</button>
+       // <button class="mw-ui-button mw-ui-progressive" disabled>.mw-ui-progressive</button>
        //
        // Styleguide 2.1.1.
+       &.mw-ui-progressive,
        &.mw-ui-primary {
-               .buttonColors(@agoraBlue);
+               .button-colors(@colorProgressive);
+
+               &.mw-ui-quiet {
+                       .button-colors-quiet(@colorProgressive);
+               }
        }
 
        // Constructive buttons
        // e.g. save changes button
        //
        // Markup:
-       // <button class="mw-ui-button mw-ui-constructive">mw-ui-constructive</button>
+       // <button class="mw-ui-button mw-ui-constructive">.mw-ui-constructive</button>
+       // <button class="mw-ui-button mw-ui-constructive" disabled>.mw-ui-constructive</button>
        //
        // Styleguide 2.1.2.
        &.mw-ui-constructive {
-               .buttonColors(@agoraGreen);
+               .button-colors(@colorConstructive);
+
+               &.mw-ui-quiet {
+                       .button-colors-quiet(@colorConstructive);
+               }
        }
 
        // Destructive buttons
        // This should not be used for cancel buttons.
        //
        // Markup:
-       // <button class="mw-ui-button mw-ui-destructive">mw-ui-destructive</button>
+       // <button class="mw-ui-button mw-ui-destructive">.mw-ui-destructive</button>
+       // <button class="mw-ui-button mw-ui-destructive" disabled>.mw-ui-destructive</button>
        //
        // Styleguide 2.1.3.
        &.mw-ui-destructive {
-               .buttonColors(@agoraRed);
+               .button-colors(@colorDestructive);
+
+               &.mw-ui-quiet {
+                       .button-colors-quiet(@colorDestructive);
+               }
+       }
+
+       // Quiet buttons
+       //
+       // Use quiet buttons when they are less important and alongisde other progressive/destructive/progressive buttons.
+       //
+       // Markup:
+       // <button class="mw-ui-button mw-ui-quiet">.mw-ui-button</button>
+       // <button class="mw-ui-button mw-ui-constructive mw-ui-quiet">.mw-ui-constructive</button>
+       // <button class="mw-ui-button mw-ui-constructive mw-ui-quiet" disabled>.mw-ui-constructive</button>
+       // <button class="mw-ui-button mw-ui-destructive mw-ui-quiet">.mw-ui-destructive</button>
+       // <button class="mw-ui-button mw-ui-destructive mw-ui-quiet" disabled>.mw-ui-destructive</button>
+       // <button class="mw-ui-button mw-ui-progressive mw-ui-quiet">.mw-ui-progressive</button>
+       // <button class="mw-ui-button mw-ui-progressive mw-ui-quiet" disabled>.mw-ui-progressive</button>
+       //
+       // Styleguide 2.1.4.
+       &.mw-ui-quiet {
+               background: transparent;
+               border: none;
+               text-shadow: none;
+               .button-colors-quiet(@colorGrayDark);
+
+               &:hover,
+               &:focus {
+                       box-shadow: none;
+               }
+
+               &:active,
+               &:disabled {
+                       background: transparent;
+               }
        }
 }
 
-// This overrides an underline declaration on a:hover and a:focus in commonElements.css, which the
-// class alone isn't specific enough to do
 a.mw-ui-button {
        text-decoration: none;
+
+       // This overrides an underline declaration on a:hover and a:focus in
+       // commonElements.css, which the class alone isn't specific enough to do.
+       &:hover,
+       &:focus {
+               text-decoration: none;
+       }
 }
 
 // Button groups
index d168e5f..eb8c203 100644 (file)
@@ -1,52 +1,81 @@
-/* Mixins for visual effects in CSS3 */
-
 @import "../settings/colors";
-
-// ----------------------------------------------------------------------------
-// Gradients
-// ----------------------------------------------------------------------------
-.vertical-gradient(@startColor: lighten(@agoraGray, 95%), @endColor: @agoraGray, @startPos: 0, @endPos: 100%) {
-       background-color: @endColor;
-       background-image: -moz-linear-gradient( top, @startColor @startPos, @endColor @endPos ); // Firefox 3.6+
-       background-image: -webkit-gradient( linear, left top, left bottom, color-stop( @startPos, @startColor ), color-stop( @endPos, @endColor ) ); // Safari 4+, Chrome 2+
-       background-image: -webkit-linear-gradient( top, @startColor @startPos, @endColor @endPos ); // Safari 5.1+, Chrome 10+
-       background-image: linear-gradient( @startColor @startPos, @endColor @endPos ); // Standard
-}
-
 // ----------------------------------------------------------------------------
 // Button styling
 // ----------------------------------------------------------------------------
 
-.buttonColors(@baseColor: @agoraGray) {
-       // Background color
-       .vertical-gradient(lighten(@baseColor, 7.5%), @baseColor);
-
-       border: 1px solid darken(@baseColor, 2%);
+.button-colors(@bgColor) {
+       background: @bgColor;
 
        &:hover,
-       &.mw-ui-hover {
-               .vertical-gradient(lighten(@baseColor, 12.5%), lighten(@baseColor, 7.5%));
-               text-decoration: none;
+       &:focus {
+               // The inner bottom bevel should match the active background color.
+               box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
+               outline: none;
+               // remove outline in Firefox
+               &::-moz-focus-inner {
+                       border-color: transparent;
+               }
        }
 
-       &:active,
-       &.mw-ui-active {
-               background-image: none;
-               background-color: darken(@baseColor, 3%);
+       &:active {
+               // lessphp doesn't implement shade (https://github.com/leafo/lessphp/issues/528);
+               // it passes it through, then ResourceLoader drops it.
+               // background: shade(@bgColor, 20%);
+               background: mix(#000, @bgColor, 20%);
+               box-shadow: none;
        }
+}
+
+.button-colors(@bgColor) when (lightness(@bgColor) >= 70%) {
+       color: @colorGrayDark;
+       border: 1px solid @colorGrayLight;
+
+       &:disabled {
+               color: @colorGrayLight;
 
-       &:disabled,
-       &.mw-ui-disabled {
-               background-image: none;
-               background-color: @baseColor;
-               opacity: 0.5;
+               // make sure disabled buttons don't have hover and active states
+               &:hover,
+               &:active {
+                       background: @bgColor;
+                       box-shadow: none;
+               }
        }
 }
 
-.buttonColors(@baseColor: @agoraGray) when (lightness(@baseColor) >= 50%) {
-       color: #000;
+.button-colors(@bgColor) when (lightness(@bgColor) < 70%) {
+       color: @colorWhite;
+       border: none;
+
+       &:disabled {
+               background: @colorGrayLight;
+
+               // make sure disabled buttons don't have hover and active states
+               &:hover,
+               &:active {
+                       box-shadow: none;
+               }
+       }
 }
 
-.buttonColors(@baseColor: @agoraGray) when (lightness(@baseColor) < 50%) {
-       color: #fff;
+.button-colors-quiet(@textColor) {
+       // Quiet buttons all start gray, and reveal
+       // constructive/progressive/destructive color on hover and active.
+       color: @colorGrayDark;
+
+       &:hover,
+       &:focus {
+               // lessphp doesn't implement tint, see above
+               // color: tint(@textColor, 20%);
+               color: mix(#fff, @textColor, 20%);
+       }
+
+       &:active {
+               // lessphp doesn't implement shade, see above
+               // color: shade(@textColor, 20%);
+               color: mix(#000, @textColor, 20%);
+       }
+
+       &:disabled {
+               color: @colorGrayLight;
+       }
 }
index 1b177ee..b32e4e7 100644 (file)
@@ -4,7 +4,7 @@
 // For Vector, that should be layered on top with vector-type
 .agora-field-styling() {
 
-       border: 1px solid @agoraGray;
+       border: 1px solid @colorGrayLight;
 
        &:focus {
                // Styling focus of native checkboxes etc on Mac is almost impossible.
                        outline: 0; // Removes OS field focus
                }
 
-               box-shadow: @agoraBlueShadow 0px 0px 5px;
+               box-shadow: @colorProgressiveShadow 0px 0px 5px;
 
-               border-color: @agoraBlueShadow;
+               border-color: @colorProgressiveShadow;
        }
 
-       color: @agoraTextColor;
+       color: @colorText;
        padding: 0.35em 0.5em 0.35em 0.5em;
 
        // Ensure that buttons and inputs are nicely aligned when they have differing heights
@@ -27,7 +27,7 @@
 .agora-label-styling() {
        //font-weight: bold;
        font-size: 0.9em;
-       color: darken(@agoraGray, 50%);
+       color: darken(@colorGrayLight, 50%);
 
        * {
                font-weight: normal;
@@ -48,7 +48,7 @@
                height: auto;
                margin: 0 0.1em 0em 0;
                padding: 0;
-               border: 1px solid @agoraGray;
+               border: 1px solid @colorGrayLight;
                cursor: pointer;
        }
 }
index 208d6f6..18661de 100644 (file)
@@ -1,17 +1,10 @@
-// Grays
-// -----------------------------------------
-@agoraGray: #c9c9c9;
-@agoraTextColor: #252525;
-
-// Blues
-// -----------------------------------------
-@agoraBlue: #3366bb;
-@agoraBlueShadow: #4091ed;
-
-// Greens
-// -----------------------------------------
-@agoraGreen: #27aa65;
-
-// Reds
-// -----------------------------------------
-@agoraRed: #cc0000;
+@colorWhite: #fff;
+@colorGrayLight: #ccc;
+@colorGrayDark: #898989;
+@colorText: #252525;
+@colorProgressive: #347bff;
+// FIXME: remove @colorProgressiveShadow (shadows should be generated
+// in LESS by dimming the original colors)
+@colorProgressiveShadow: #4091ed;
+@colorConstructive: #00af89;
+@colorDestructive: #d11d13;
index 76c398c..83651ed 100644 (file)
@@ -1,5 +1,5 @@
 @baseFontSize: 1em;
 @baseLineHeight: 1.4 * @baseFontSize;
-@baseFontColor: @agoraTextColor;
+@baseFontColor: @colorText;
 
 @smallFontSize: 0.75em;
index 1afe51e..9de69b2 100644 (file)
                                                $( '<div style="margin-top: 1em;"></div>' ).append(
                                                        mw.msg( 'feedback-subject' ),
                                                        $( '<br>' ),
-                                                       $( '<input type="text" class="feedback-subject" name="subject" maxlength="60" style="width: 99%;"/>' )
+                                                       $( '<input type="text" class="feedback-subject" name="subject" maxlength="60" style="width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;"/>' )
                                                ),
                                                $( '<div style="margin-top: 0.4em;"></div>' ).append(
                                                        mw.msg( 'feedback-message' ),
                                                        $( '<br>' ),
-                                                       $( '<textarea name="message" class="feedback-message" style="width: 99%;" rows="5" cols="60"></textarea>' )
+                                                       $( '<textarea name="message" class="feedback-message" rows="5" cols="60"></textarea>' )
                                                )
                                        ),
                                        $( '<div class="feedback-mode feedback-bugs"></div>' ).append(
index d93254b..e76141d 100644 (file)
                                // try to invoke it.
                                console.table.call( console, data );
                                return;
-                       } catch (e) {}
+                       } catch ( e ) {}
                        try {
                                console.log( $.toJSON( data, null, 2 ) );
                                return;
-                       } catch (e) {}
+                       } catch ( e ) {}
                        mw.log( data );
                },
 
 
                                        try {
                                                css = module.style.css.join();
-                                       } catch (e) { return; } // skip
+                                       } catch ( e ) { return; } // skip
 
                                        stats = inspect.auditSelectors( css );
                                        modules.push( {
                                        try {
                                                raw = localStorage.getItem( mw.loader.store.getStoreKey() );
                                                stats.totalSize = humanSize( $.byteLength( raw ) );
-                                       } catch (e) {}
+                                       } catch ( e ) {}
                                }
                                return [stats];
                        }
index 3322ad9..e286d32 100644 (file)
         * the current selector. Bindings to passed-in jquery elements are preserved. Functions become click handlers for [$1 linktext] links.
         * e.g.
         *        $.fn.msg = mediaWiki.parser.getJqueryPlugin( options );
-        *        var userlink = $( '<a>' ).click( function () { alert( "hello!!") } );
+        *        var userlink = $( '<a>' ).click( function () { alert( "hello!!" ) } );
         *        $( 'p#headline' ).msg( 'hello-user', userlink );
         *
         * @param {Array} parser options
index e3aae9e..d282a56 100644 (file)
@@ -1274,7 +1274,7 @@ var mw = ( function ( $, undefined ) {
                                mw.loader.work();
                        }
 
-                       function sortQuery(o) {
+                       function sortQuery( o ) {
                                var sorted = {}, key, a = [];
                                for ( key in o ) {
                                        if ( hasOwn.call( o, key ) ) {
@@ -1903,7 +1903,7 @@ var mw = ( function ( $, undefined ) {
                                                        mw.config.get( 'skin' ),
                                                        mw.config.get( 'wgResourceLoaderStorageVersion' ),
                                                        mw.config.get( 'wgUserLanguage' )
-                                               ].join(':');
+                                               ].join( ':' );
                                        },
 
                                        /**
@@ -1951,7 +1951,7 @@ var mw = ( function ( $, undefined ) {
                                                                mw.loader.store.items = data.items;
                                                                return;
                                                        }
-                                               } catch (e) {}
+                                               } catch ( e ) {}
 
                                                if ( raw === undefined ) {
                                                        // localStorage failed; disable store
@@ -2031,7 +2031,7 @@ var mw = ( function ( $, undefined ) {
                                                        return;
                                                }
 
-                                               mw.loader.store.items[key] = 'mw.loader.implement(' + args.join(',') + ');';
+                                               mw.loader.store.items[key] = 'mw.loader.implement(' + args.join( ',' ) + ');';
                                                mw.loader.store.update();
                                        },
 
index 0713541..50915b6 100644 (file)
@@ -38,7 +38,7 @@
                        $form = context.config.$region.closest( 'form' );
 
                        formAction = $form.attr( 'action' );
-                       baseHref = formAction + ( formAction.match(/\?/) ? '&' : '?' );
+                       baseHref = formAction + ( formAction.match( /\?/ ) ? '&' : '?' );
 
                        linkParams = {};
                        $.each( $form.serializeArray(), function ( idx, obj ) {
                        // Generic selector for skins with multiple searchboxes (used by CologneBlue)
                        '.mw-searchInput'
                ];
-               $( searchboxesSelectors.join(', ') )
+               $( searchboxesSelectors.join( ', ' ) )
                        .suggestions( {
                                fetch: function ( query ) {
                                        var $el;
index 142cb8d..dc5c001 100644 (file)
@@ -378,7 +378,7 @@ class CologneBlueTemplate extends BaseTemplate {
                );
 
                $personalUrls = $this->getPersonalTools();
-               foreach ( array( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
+               foreach ( array( 'logout', 'createaccount', 'login' ) as $key ) {
                        if ( $personalUrls[$key] ) {
                                $s[] = $this->makeListItem( $key, $personalUrls[$key], array( 'tag' => 'span' ) );
                        }
@@ -419,7 +419,7 @@ class CologneBlueTemplate extends BaseTemplate {
 
                // Personal tools ("My pages")
                $qbmyoptions = $this->getPersonalTools();
-               foreach ( array( 'logout', 'createaccount', 'login', 'anonlogin' ) as $key ) {
+               foreach ( array( 'logout', 'createaccount', 'login', ) as $key ) {
                        $qbmyoptions[$key] = null;
                }
 
index bc5dd31..40a9432 100644 (file)
@@ -56,9 +56,6 @@ p, pre, .mw-code, td, th, li, dd, dt {
 textarea {
        overflow: auto;
        width: 100%;
-}
-
-#editform textarea {
        display: block;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
diff --git a/skins/common/IE80Fixes.css b/skins/common/IE80Fixes.css
deleted file mode 100644 (file)
index 6e5cb8a..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Fixes textarea scrolling bug (bug #19334). The bug only occurs when a
- * percentage width is given, so instead of width: 100%, use min-width: 100%;
- * max-width: 100%.  We also need to give a fixed width for the actual width
- * property for the hack to work, although the actual value (500px here) ends
- * up being ignored; min/max-width take precedence.
- *
- * More info: http://grantovich.net/posts/2009/06/that-weird-ie8-textarea-bug/
- */
-#wpTextbox1 {
-       height: 390px;
-       width: 500px;
-       min-width: 100%;
-       max-width: 100%;
-}
index 35071a4..a869923 100644 (file)
@@ -150,16 +150,6 @@ img.thumbborder {
        border: 1px solid #dddddd;
 }
 
-/**
- * Edit forms
- */
-#editform textarea {
-       display: block;
-       -moz-box-sizing: border-box;
-       -webkit-box-sizing: border-box;
-       box-sizing: border-box;
-}
-
 /**
  * Basic styles for the user login and create account forms
  */
index 742f839..ad7942a 100644 (file)
@@ -207,6 +207,10 @@ form {
 textarea {
        width: 100%;
        padding: .1em;
+       display: block;
+       -moz-box-sizing: border-box;
+       -webkit-box-sizing: border-box;
+       box-sizing: border-box;
 }
 select {
        vertical-align: top;
index 39206c3..d646273 100644 (file)
 }
 
 #config-live-log {
-       margin-right: 18em;
+       overflow: hidden;
+       min-width: 20em;
 }
index 5da7d5b..6f73f0e 100644 (file)
@@ -155,8 +155,7 @@ div.mw_clear {
 textarea {
        width: 100%;
        padding: .1em;
-}
-#editform textarea {
+       display: block;
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
index 6f93215..6e4a7b3 100644 (file)
        margin-top: -0.8em !ie;
        height: 0;
        overflow: hidden;
-       .background-image('images/watch-icons.png');
+       background-position: 5px 60%;
 }
 #ca-unwatch.icon a {
-       background-position: -43px 60%;
+       .background-image-svg('images/unwatch-icon.svg', 'images/unwatch-icon.png');
 }
 #ca-watch.icon a {
-       background-position: 5px 60%;
+       .background-image-svg('images/watch-icon.svg', 'images/watch-icon.png');
 }
 #ca-unwatch.icon a:hover,
 #ca-unwatch.icon a:focus {
-       background-position: -67px 60%;
+       .background-image-svg('images/unwatch-icon-hl.svg', 'images/unwatch-icon-hl.png');
 }
 #ca-watch.icon a:hover,
 #ca-watch.icon a:focus {
-       background-position: -19px 60%;
+       .background-image-svg('images/watch-icon-hl.svg', 'images/watch-icon-hl.png');
 }
 #ca-unwatch.icon a.loading,
 #ca-watch.icon a.loading {
-       .background-image('images/watch-icon-loading.gif');
-       background-position: 5px 60%;
+       .background-image-svg('images/watch-icon-loading.svg', 'images/watch-icon-loading.png');
+       .rotation(700ms);
+       background-position: 50% 60%;
+       -webkit-transform-origin: 50% 57%;
+       transform-origin: 50% 57%;
 }
 #ca-unwatch.icon a span,
 #ca-watch.icon a span {
diff --git a/skins/vector/images/unwatch-icon-hl.png b/skins/vector/images/unwatch-icon-hl.png
new file mode 100644 (file)
index 0000000..6b2b502
Binary files /dev/null and b/skins/vector/images/unwatch-icon-hl.png differ
diff --git a/skins/vector/images/unwatch-icon-hl.svg b/skins/vector/images/unwatch-icon-hl.svg
new file mode 100644 (file)
index 0000000..346e072
--- /dev/null
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="watch-icon-hl.svg"
+   inkscape:export-filename="/home/m4tx/Pulpit/LOCAL/watch-icon-hl.png"
+   inkscape:export-xdpi="87.436836"
+   inkscape:export-ydpi="87.436836">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3788">
+      <stop
+         style="stop-color:#c2edff;stop-opacity:1;"
+         offset="0"
+         id="stop3790" />
+      <stop
+         id="stop3796"
+         offset="0.5"
+         style="stop-color:#68bdff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop3792" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3804"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3808"
+       gradientUnits="userSpaceOnUse"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-3.451911"
+     inkscape:cy="5.714676"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1920"
+     inkscape:window-height="1041"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Mateusz &quot;m4tx&quot; Maćkowski</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-693.14288,-698.64789)">
+    <path
+       inkscape:transform-center-y="-0.70705002"
+       transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+       d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+       inkscape:randomized="0"
+       inkscape:rounded="0"
+       inkscape:flatsided="false"
+       sodipodi:arg2="-0.9424778"
+       sodipodi:arg1="-1.5707963"
+       sodipodi:r2="4.2936125"
+       sodipodi:r1="8.587225"
+       sodipodi:cy="7.6662416"
+       sodipodi:cx="8.3337584"
+       sodipodi:sides="5"
+       id="path3768"
+       style="fill:url(#linearGradient3804);fill-opacity:1;stroke:#c8b250;stroke-width:1.15975237000000009;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="star" />
+  </g>
+</svg>
diff --git a/skins/vector/images/unwatch-icon.png b/skins/vector/images/unwatch-icon.png
new file mode 100644 (file)
index 0000000..9fd9436
Binary files /dev/null and b/skins/vector/images/unwatch-icon.png differ
diff --git a/skins/vector/images/unwatch-icon.svg b/skins/vector/images/unwatch-icon.svg
new file mode 100644 (file)
index 0000000..9e13769
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="watch-icon-fav.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3788">
+      <stop
+         style="stop-color:#c2edff;stop-opacity:1;"
+         offset="0"
+         id="stop3790" />
+      <stop
+         id="stop3796"
+         offset="0.5"
+         style="stop-color:#68bdff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop3792" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3804"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3808"
+       gradientUnits="userSpaceOnUse"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.951911"
+     inkscape:cy="5.714676"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1920"
+     inkscape:window-height="1014"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Mateusz &quot;m4tx&quot; Maćkowski</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-693.14288,-698.64789)">
+    <path
+       inkscape:transform-center-y="-0.70705002"
+       transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+       d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+       inkscape:randomized="0"
+       inkscape:rounded="0"
+       inkscape:flatsided="false"
+       sodipodi:arg2="-0.9424778"
+       sodipodi:arg1="-1.5707963"
+       sodipodi:r2="4.2936125"
+       sodipodi:r1="8.587225"
+       sodipodi:cy="7.6662416"
+       sodipodi:cx="8.3337584"
+       sodipodi:sides="5"
+       id="path3768"
+       style="fill:url(#linearGradient3804);fill-opacity:1;stroke:#7cb5d1;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       sodipodi:type="star" />
+  </g>
+</svg>
diff --git a/skins/vector/images/watch-icon-hl.png b/skins/vector/images/watch-icon-hl.png
new file mode 100644 (file)
index 0000000..4cb87cd
Binary files /dev/null and b/skins/vector/images/watch-icon-hl.png differ
diff --git a/skins/vector/images/watch-icon-hl.svg b/skins/vector/images/watch-icon-hl.svg
new file mode 100644 (file)
index 0000000..b31e8b8
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="watch-icon-hl.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3788">
+      <stop
+         style="stop-color:#c2edff;stop-opacity:1;"
+         offset="0"
+         id="stop3790" />
+      <stop
+         id="stop3796"
+         offset="0.5"
+         style="stop-color:#68bdff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop3792" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3804"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3808"
+       gradientUnits="userSpaceOnUse"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="-6.97632"
+     inkscape:cy="6.2476517"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1920"
+     inkscape:window-height="1014"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Mateusz &quot;m4tx&quot; Maćkowski</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-693.14288,-698.64789)">
+    <path
+       sodipodi:type="star"
+       style="fill:#ffffff;fill-opacity:1;stroke:#c8b250;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3770"
+       sodipodi:sides="5"
+       sodipodi:cx="8.3337584"
+       sodipodi:cy="7.6662416"
+       sodipodi:r1="8.587225"
+       sodipodi:r2="4.2936125"
+       sodipodi:arg1="-1.5707963"
+       sodipodi:arg2="-0.9424778"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+       transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+       inkscape:transform-center-y="-0.70705002" />
+  </g>
+</svg>
diff --git a/skins/vector/images/watch-icon-loading.gif b/skins/vector/images/watch-icon-loading.gif
deleted file mode 100644 (file)
index 618c308..0000000
Binary files a/skins/vector/images/watch-icon-loading.gif and /dev/null differ
diff --git a/skins/vector/images/watch-icon-loading.png b/skins/vector/images/watch-icon-loading.png
new file mode 100644 (file)
index 0000000..5f0c490
Binary files /dev/null and b/skins/vector/images/watch-icon-loading.png differ
diff --git a/skins/vector/images/watch-icon-loading.svg b/skins/vector/images/watch-icon-loading.svg
new file mode 100644 (file)
index 0000000..3423979
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="watch-icon-loading.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3788">
+      <stop
+         style="stop-color:#c2edff;stop-opacity:1;"
+         offset="0"
+         id="stop3790" />
+      <stop
+         id="stop3796"
+         offset="0.5"
+         style="stop-color:#68bdff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop3792" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3804"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3808"
+       gradientUnits="userSpaceOnUse"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.627417"
+     inkscape:cx="7.2850048"
+     inkscape:cy="6.4582896"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1920"
+     inkscape:window-height="1014"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Mateusz &quot;m4tx&quot; Maćkowski</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-693.14288,-698.64789)">
+    <path
+       sodipodi:type="star"
+       style="fill:#ffffff;fill-opacity:1;stroke:#d1d1d1;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path2998"
+       sodipodi:sides="5"
+       sodipodi:cx="8.3337584"
+       sodipodi:cy="7.6662416"
+       sodipodi:r1="8.587225"
+       sodipodi:r2="4.2936125"
+       sodipodi:arg1="-1.5707963"
+       sodipodi:arg2="-0.9424778"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+       transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+       inkscape:transform-center-y="-0.70705002" />
+  </g>
+</svg>
diff --git a/skins/vector/images/watch-icon.png b/skins/vector/images/watch-icon.png
new file mode 100644 (file)
index 0000000..39daff2
Binary files /dev/null and b/skins/vector/images/watch-icon.png differ
diff --git a/skins/vector/images/watch-icon.svg b/skins/vector/images/watch-icon.svg
new file mode 100644 (file)
index 0000000..c7a5081
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="watch-icon.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       id="linearGradient3788">
+      <stop
+         style="stop-color:#c2edff;stop-opacity:1;"
+         offset="0"
+         id="stop3790" />
+      <stop
+         id="stop3796"
+         offset="0.5"
+         style="stop-color:#68bdff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="1"
+         id="stop3792" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3804"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3788"
+       id="linearGradient3808"
+       gradientUnits="userSpaceOnUse"
+       x1="13.470111"
+       y1="14.363379"
+       x2="4.596477"
+       y2="3.3969929" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="17.836203"
+     inkscape:cy="7.206728"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1920"
+     inkscape:window-height="1014"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Mateusz &quot;m4tx&quot; Maćkowski</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-693.14288,-698.64789)">
+    <path
+       sodipodi:type="star"
+       style="fill:#ffffff;fill-opacity:1;stroke:#7cb5d1;stroke-width:1.15975237;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path2998"
+       sodipodi:sides="5"
+       sodipodi:cx="8.3337584"
+       sodipodi:cy="7.6662416"
+       sodipodi:r1="8.587225"
+       sodipodi:r2="4.2936125"
+       sodipodi:arg1="-1.5707963"
+       sodipodi:arg2="-0.9424778"
+       inkscape:flatsided="false"
+       inkscape:rounded="0"
+       inkscape:randomized="0"
+       d="M 8.3337586,-0.92098331 10.85748,4.1926362 16.500695,5.0126434 12.417226,8.9930409 13.381202,14.613453 8.3337584,11.959854 3.286314,14.613452 4.2502902,8.9930409 0.16682217,5.012643 5.8100362,4.1926362 z"
+       transform="matrix(0.86225302,0,0,0.86225302,694.06156,700.58832)"
+       inkscape:transform-center-y="-0.70705002" />
+  </g>
+</svg>
diff --git a/skins/vector/images/watch-icons.png b/skins/vector/images/watch-icons.png
deleted file mode 100644 (file)
index 03aa7d5..0000000
Binary files a/skins/vector/images/watch-icons.png and /dev/null differ
index 58df552..ea4b0f6 100644 (file)
@@ -47,11 +47,6 @@ $wgAutoloadClasses += array(
        'RevisionStorageTest' => "$testDir/phpunit/includes/RevisionStorageTest.php",
        'WikiPageTest' => "$testDir/phpunit/includes/WikiPageTest.php",
 
-       //db
-       'ORMTableTest' => "$testDir/phpunit/includes/db/ORMTableTest.php",
-       'PageORMTableForTesting' => "$testDir/phpunit/includes/db/ORMTableTest.php",
-       'DatabaseTestHelper' => "$testDir/phpunit/includes/db/DatabaseTestHelper.php",
-
        # tests/phpunit/includes/api
        'ApiFormatTestBase' => "$testDir/phpunit/includes/api/format/ApiFormatTestBase.php",
        'ApiTestCase' => "$testDir/phpunit/includes/api/ApiTestCase.php",
@@ -71,21 +66,22 @@ $wgAutoloadClasses += array(
 
        # tests/phpunit/includes/db
        'ORMRowTest' => "$testDir/phpunit/includes/db/ORMRowTest.php",
+       'ORMTableTest' => "$testDir/phpunit/includes/db/ORMTableTest.php",
+       'PageORMTableForTesting' => "$testDir/phpunit/includes/db/ORMTableTest.php",
+       'DatabaseTestHelper' => "$testDir/phpunit/includes/db/DatabaseTestHelper.php",
 
-       # tests/phpunit/includes/parser
-       'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
-       'MediaWikiParserTest' => "$testDir/phpunit/includes/parser/MediaWikiParserTest.php",
+       # tests/phpunit/languages
+       'LanguageClassesTestCase' => "$testDir/phpunit/languages/LanguageClassesTestCase.php",
 
        # tests/phpunit/includes/libs
        'GenericArrayObjectTest' => "$testDir/phpunit/includes/libs/GenericArrayObjectTest.php",
 
+       # tests/phpunit/maintenance
+       'DumpTestCase' => "$testDir/phpunit/maintenance/DumpTestCase.php",
+
        # tests/phpunit/media
        'FakeDimensionFile' => "$testDir/phpunit/includes/media/FakeDimensionFile.php",
 
-       # tests/phpunit/includes/site
-       'SiteTest' => "$testDir/phpunit/includes/site/SiteTest.php",
-       'TestSites' => "$testDir/phpunit/includes/site/TestSites.php",
-
        # tests/phpunit/mocks
        'MockFSFile' => "$testDir/phpunit/mocks/filebackend/MockFSFile.php",
        'MockFileBackend' => "$testDir/phpunit/mocks/filebackend/MockFileBackend.php",
@@ -93,13 +89,13 @@ $wgAutoloadClasses += array(
        'MockImageHandler' => "$testDir/phpunit/mocks/media/MockImageHandler.php",
        'MockSvgHandler' => "$testDir/phpunit/mocks/media/MockSvgHandler.php",
 
-       # tests/phpunit/languages
-       'LanguageClassesTestCase' => "$testDir/phpunit/languages/LanguageClassesTestCase.php",
-
-       # tests/phpunit/maintenance
-       'DumpTestCase' => "$testDir/phpunit/maintenance/DumpTestCase.php",
-
        # tests/parser
+       'NewParserTest' => "$testDir/phpunit/includes/parser/NewParserTest.php",
+       'MediaWikiParserTest' => "$testDir/phpunit/includes/parser/MediaWikiParserTest.php",
        'ParserTest' => "$testDir/parser/parserTest.inc",
        'ParserTestParserHook' => "$testDir/parser/parserTestsParserHook.php",
+
+       # tests/phpunit/includes/site
+       'SiteTest' => "$testDir/phpunit/includes/site/SiteTest.php",
+       'TestSites' => "$testDir/phpunit/includes/site/TestSites.php",
 );
index 95b5047..87e214c 100644 (file)
@@ -1003,7 +1003,18 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                        $this->markTestSkipped( 'Tidy extension not installed' );
                }
 
-               $ok = MWTidy::checkErrors( $html, $errors );
-               $this->assertTrue( $ok, 'HTML validation errors: ' . $errors );
+               $errorBuffer = '';
+               MWTidy::checkErrors( $html, $errorBuffer );
+               $allErrors = preg_split( '/[\r\n]+/', $errorBuffer );
+
+               // Filter Tidy warnings which aren't useful for us.
+               // Tidy eg. often cries about parameters missing which have actually
+               // been deprecated since HTML4, thus we should not care about them.
+               $errors = preg_grep(
+                       '/^(.*Warning: (trimming empty|.* lacks ".*?" attribute).*|\s*)$/m',
+                       $allErrors, PREG_GREP_INVERT
+               );
+
+               $this->assertEmpty( $errors, implode( "\n", $errors ) );
        }
 }
diff --git a/tests/phpunit/includes/MWTimestampTest.php b/tests/phpunit/includes/MWTimestampTest.php
new file mode 100644 (file)
index 0000000..5b038a6
--- /dev/null
@@ -0,0 +1,342 @@
+<?php
+
+/**
+ * Tests timestamp parsing and output.
+ */
+class MWTimestampTest extends MediaWikiLangTestCase {
+
+       protected function setUp() {
+               parent::setUp();
+
+               RequestContext::getMain()->setLanguage( Language::factory( 'en' ) );
+       }
+
+       /**
+        * @covers MWTimestamp::__construct
+        */
+       public function testConstructWithNoTimestamp() {
+               $timestamp = new MWTimestamp();
+               $this->assertInternalType( 'string', $timestamp->getTimestamp() );
+               $this->assertNotEmpty( $timestamp->getTimestamp() );
+               $this->assertNotEquals( false, strtotime( $timestamp->getTimestamp( TS_MW ) ) );
+       }
+
+       /**
+        * @covers MWTimestamp::__toString
+        */
+       public function testToString() {
+               $timestamp = new MWTimestamp( '1406833268' ); // Equivalent to 20140731190108
+               $this->assertEquals( '1406833268', $timestamp->__toString() );
+       }
+
+       public function provideValidTimestampDifferences() {
+               return array(
+                       array( '1406833268','1406833269', '00 00 00 01' ),
+                       array( '1406833268','1406833329', '00 00 01 01' ),
+                       array( '1406833268','1406836929', '00 01 01 01' ),
+                       array( '1406833268','1406923329', '01 01 01 01' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideValidTimestampDifferences
+        * @covers MWTimestamp::diff
+        */
+       public function testDiff( $timestamp1, $timestamp2, $expected ) {
+               $timestamp1 = new MWTimestamp( $timestamp1 );
+               $timestamp2 = new MWTimestamp( $timestamp2 );
+               $diff = $timestamp1->diff( $timestamp2 );
+               $this->assertEquals( $expected, $diff->format( '%D %H %I %S' ) );
+       }
+
+       /**
+        * Test parsing of valid timestamps and outputing to MW format.
+        * @dataProvider provideValidTimestamps
+        * @covers MWTimestamp::getTimestamp
+        */
+       public function testValidParse( $format, $original, $expected ) {
+               $timestamp = new MWTimestamp( $original );
+               $this->assertEquals( $expected, $timestamp->getTimestamp( TS_MW ) );
+       }
+
+       /**
+        * Test outputting valid timestamps to different formats.
+        * @dataProvider provideValidTimestamps
+        * @covers MWTimestamp::getTimestamp
+        */
+       public function testValidOutput( $format, $expected, $original ) {
+               $timestamp = new MWTimestamp( $original );
+               $this->assertEquals( $expected, (string)$timestamp->getTimestamp( $format ) );
+       }
+
+       /**
+        * Test an invalid timestamp.
+        * @expectedException TimestampException
+        * @covers MWTimestamp
+        */
+       public function testInvalidParse() {
+               new MWTimestamp( "This is not a timestamp." );
+       }
+
+       /**
+        * Test requesting an invalid output format.
+        * @expectedException TimestampException
+        * @covers MWTimestamp::getTimestamp
+        */
+       public function testInvalidOutput() {
+               $timestamp = new MWTimestamp( '1343761268' );
+               $timestamp->getTimestamp( 98 );
+       }
+
+       /**
+        * Returns a list of valid timestamps in the format:
+        * array( type, timestamp_of_type, timestamp_in_MW )
+        */
+       public static function provideValidTimestamps() {
+               return array(
+                       // Various formats
+                       array( TS_UNIX, '1343761268', '20120731190108' ),
+                       array( TS_MW, '20120731190108', '20120731190108' ),
+                       array( TS_DB, '2012-07-31 19:01:08', '20120731190108' ),
+                       array( TS_ISO_8601, '2012-07-31T19:01:08Z', '20120731190108' ),
+                       array( TS_ISO_8601_BASIC, '20120731T190108Z', '20120731190108' ),
+                       array( TS_EXIF, '2012:07:31 19:01:08', '20120731190108' ),
+                       array( TS_RFC2822, 'Tue, 31 Jul 2012 19:01:08 GMT', '20120731190108' ),
+                       array( TS_ORACLE, '31-07-2012 19:01:08.000000', '20120731190108' ),
+                       array( TS_POSTGRES, '2012-07-31 19:01:08 GMT', '20120731190108' ),
+                       // Some extremes and weird values
+                       array( TS_ISO_8601, '9999-12-31T23:59:59Z', '99991231235959' ),
+                       array( TS_UNIX, '-62135596801', '00001231235959' )
+               );
+       }
+
+       /**
+        * @dataProvider provideHumanTimestampTests
+        * @covers MWTimestamp::getHumanTimestamp
+        */
+       public function testHumanTimestamp(
+               $tsTime, // The timestamp to format
+               $currentTime, // The time to consider "now"
+               $timeCorrection, // The time offset to use
+               $dateFormat, // The date preference to use
+               $expectedOutput, // The expected output
+               $desc // Description
+       ) {
+               $user = $this->getMock( 'User' );
+               $user->expects( $this->any() )
+                       ->method( 'getOption' )
+                       ->with( 'timecorrection' )
+                       ->will( $this->returnValue( $timeCorrection ) );
+
+               $user->expects( $this->any() )
+                       ->method( 'getDatePreference' )
+                       ->will( $this->returnValue( $dateFormat ) );
+
+               $tsTime = new MWTimestamp( $tsTime );
+               $currentTime = new MWTimestamp( $currentTime );
+
+               $this->assertEquals(
+                       $expectedOutput,
+                       $tsTime->getHumanTimestamp( $currentTime, $user ),
+                       $desc
+               );
+       }
+
+       public static function provideHumanTimestampTests() {
+               return array(
+                       array(
+                               '20111231170000',
+                               '20120101000000',
+                               'Offset|0',
+                               'mdy',
+                               'Yesterday at 17:00',
+                               '"Yesterday" across years',
+                       ),
+                       array(
+                               '20120717190900',
+                               '20120717190929',
+                               'Offset|0',
+                               'mdy',
+                               'just now',
+                               '"Just now"',
+                       ),
+                       array(
+                               '20120717190900',
+                               '20120717191530',
+                               'Offset|0',
+                               'mdy',
+                               '6 minutes ago',
+                               'X minutes ago',
+                       ),
+                       array(
+                               '20121006173100',
+                               '20121006173200',
+                               'Offset|0',
+                               'mdy',
+                               '1 minute ago',
+                               '"1 minute ago"',
+                       ),
+                       array(
+                               '20120617190900',
+                               '20120717190900',
+                               'Offset|0',
+                               'mdy',
+                               'June 17',
+                               'Another month'
+                       ),
+                       array(
+                               '19910130151500',
+                               '20120716193700',
+                               'Offset|0',
+                               'mdy',
+                               '15:15, January 30, 1991',
+                               'Different year',
+                       ),
+                       array(
+                               '20120101050000',
+                               '20120101080000',
+                               'Offset|-360',
+                               'mdy',
+                               'Yesterday at 23:00',
+                               '"Yesterday" across years with time correction',
+                       ),
+                       array(
+                               '20120714184300',
+                               '20120716184300',
+                               'Offset|-420',
+                               'mdy',
+                               'Saturday at 11:43',
+                               'Recent weekday with time correction',
+                       ),
+                       array(
+                               '20120714184300',
+                               '20120715040000',
+                               'Offset|-420',
+                               'mdy',
+                               '11:43',
+                               'Today at another time with time correction',
+                       ),
+                       array(
+                               '20120617190900',
+                               '20120717190900',
+                               'Offset|0',
+                               'dmy',
+                               '17 June',
+                               'Another month with dmy'
+                       ),
+                       array(
+                               '20120617190900',
+                               '20120717190900',
+                               'Offset|0',
+                               'ISO 8601',
+                               '06-17',
+                               'Another month with ISO-8601'
+                       ),
+                       array(
+                               '19910130151500',
+                               '20120716193700',
+                               'Offset|0',
+                               'ISO 8601',
+                               '1991-01-30T15:15:00',
+                               'Different year with ISO-8601',
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider provideRelativeTimestampTests
+        * @covers MWTimestamp::getRelativeTimestamp
+        */
+       public function testRelativeTimestamp(
+               $tsTime, // The timestamp to format
+               $currentTime, // The time to consider "now"
+               $timeCorrection, // The time offset to use
+               $dateFormat, // The date preference to use
+               $expectedOutput, // The expected output
+               $desc // Description
+       ) {
+               $user = $this->getMock( 'User' );
+               $user->expects( $this->any() )
+                       ->method( 'getOption' )
+                       ->with( 'timecorrection' )
+                       ->will( $this->returnValue( $timeCorrection ) );
+
+               $tsTime = new MWTimestamp( $tsTime );
+               $currentTime = new MWTimestamp( $currentTime );
+
+               $this->assertEquals(
+                       $expectedOutput,
+                       $tsTime->getRelativeTimestamp( $currentTime, $user ),
+                       $desc
+               );
+       }
+
+       public static function provideRelativeTimestampTests() {
+               return array(
+                       array(
+                               '20111231170000',
+                               '20120101000000',
+                               'Offset|0',
+                               'mdy',
+                               '7 hours ago',
+                               '"Yesterday" across years',
+                       ),
+                       array(
+                               '20120717190900',
+                               '20120717190929',
+                               'Offset|0',
+                               'mdy',
+                               '29 seconds ago',
+                               '"Just now"',
+                       ),
+                       array(
+                               '20120717190900',
+                               '20120717191530',
+                               'Offset|0',
+                               'mdy',
+                               '6 minutes and 30 seconds ago',
+                               'Combination of multiple units',
+                       ),
+                       array(
+                               '20121006173100',
+                               '20121006173200',
+                               'Offset|0',
+                               'mdy',
+                               '1 minute ago',
+                               '"1 minute ago"',
+                       ),
+                       array(
+                               '19910130151500',
+                               '20120716193700',
+                               'Offset|0',
+                               'mdy',
+                               '2 decades, 1 year, 168 days, 2 hours, 8 minutes and 48 seconds ago',
+                               'A long time ago',
+                       ),
+                       array(
+                               '20120101050000',
+                               '20120101080000',
+                               'Offset|-360',
+                               'mdy',
+                               '3 hours ago',
+                               '"Yesterday" across years with time correction',
+                       ),
+                       array(
+                               '20120714184300',
+                               '20120716184300',
+                               'Offset|-420',
+                               'mdy',
+                               '2 days ago',
+                               'Recent weekday with time correction',
+                       ),
+                       array(
+                               '20120714184300',
+                               '20120715040000',
+                               'Offset|-420',
+                               'mdy',
+                               '9 hours and 17 minutes ago',
+                               'Today at another time with time correction',
+                       ),
+               );
+       }
+}
index a3d68b6..2ba804f 100644 (file)
@@ -166,6 +166,29 @@ class StatusTest extends MediaWikiLangTestCase {
                }
        }
 
+       /**
+        * @dataProvider provideMockMessageDetails
+        * @covers Status::fatal
+        * @covers Status::getErrorsArray
+        * @covers Status::getStatusArray
+        */
+       public function testFatalWithMessage( $mockDetails ) {
+               $status = new Status();
+               $messages = $this->getMockMessages( $mockDetails );
+
+               foreach ( $messages as $message ) {
+                       $status->fatal( $message );
+               }
+               $errors = $status->getErrorsArray();
+
+               $this->assertEquals( count( $messages ), count( $errors ) );
+               foreach ( $messages as $key => $message ) {
+                       $expectedArray = array_merge( array( $message->getKey() ), $message->getParams() );
+                       $this->assertEquals( $errors[$key], $expectedArray );
+               }
+               $this->assertFalse( $status->isOK() );
+       }
+
        protected function getMockMessage( $key = 'key', $params = array() ) {
                $message = $this->getMockBuilder( 'Message' )
                        ->disableOriginalConstructor()
@@ -200,7 +223,6 @@ class StatusTest extends MediaWikiLangTestCase {
 
        /**
         * @covers Status::merge
-        * @todo test merge with $overwriteValue true
         */
        public function testMerge() {
                $status1 = new Status();
@@ -214,6 +236,23 @@ class StatusTest extends MediaWikiLangTestCase {
                $this->assertEquals( 2, count( $status1->getWarningsArray() ) + count( $status1->getErrorsArray() ) );
        }
 
+       /**
+        * @covers Status::merge
+        */
+       public function testMergeWithOverwriteValue() {
+               $status1 = new Status();
+               $status2 = new Status();
+               $message1 = $this->getMockMessage( 'warn1' );
+               $message2 = $this->getMockMessage( 'error2' );
+               $status1->warning( $message1 );
+               $status2->error( $message2 );
+               $status2->value = 'FooValue';
+
+               $status1->merge( $status2, true );
+               $this->assertEquals( 2, count( $status1->getWarningsArray() ) + count( $status1->getErrorsArray() ) );
+               $this->assertEquals( 'FooValue', $status1->getValue() );
+       }
+
        /**
         * @covers Status::hasMessage
         */
@@ -237,12 +276,14 @@ class StatusTest extends MediaWikiLangTestCase {
                $this->assertEquals( $expected, $method->invoke( $status, $params ) );
        }
 
-       /**
-        * @todo test cleanParams with a callback
-        */
        public static function provideCleanParams() {
+               $cleanCallback = function( $value ) {
+                       return '-' . $value . '-';
+               };
+
                return array(
                        array( false, array( 'foo' => 'bar' ), array( 'foo' => 'bar' ) ),
+                       array( $cleanCallback, array( 'foo' => 'bar' ), array( 'foo' => '-bar-' ) ),
                );
        }
 
diff --git a/tests/phpunit/includes/TimestampTest.php b/tests/phpunit/includes/TimestampTest.php
deleted file mode 100644 (file)
index 5338839..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-<?php
-
-/**
- * Tests timestamp parsing and output.
- */
-class TimestampTest extends MediaWikiLangTestCase {
-
-       protected function setUp() {
-               parent::setUp();
-
-               RequestContext::getMain()->setLanguage( Language::factory( 'en' ) );
-       }
-
-       /**
-        * Test parsing of valid timestamps and outputing to MW format.
-        * @dataProvider provideValidTimestamps
-        * @covers MWTimestamp::getTimestamp
-        */
-       public function testValidParse( $format, $original, $expected ) {
-               $timestamp = new MWTimestamp( $original );
-               $this->assertEquals( $expected, $timestamp->getTimestamp( TS_MW ) );
-       }
-
-       /**
-        * Test outputting valid timestamps to different formats.
-        * @dataProvider provideValidTimestamps
-        * @covers MWTimestamp::getTimestamp
-        */
-       public function testValidOutput( $format, $expected, $original ) {
-               $timestamp = new MWTimestamp( $original );
-               $this->assertEquals( $expected, (string)$timestamp->getTimestamp( $format ) );
-       }
-
-       /**
-        * Test an invalid timestamp.
-        * @expectedException TimestampException
-        * @covers MWTimestamp
-        */
-       public function testInvalidParse() {
-               new MWTimestamp( "This is not a timestamp." );
-       }
-
-       /**
-        * Test requesting an invalid output format.
-        * @expectedException TimestampException
-        * @covers MWTimestamp::getTimestamp
-        */
-       public function testInvalidOutput() {
-               $timestamp = new MWTimestamp( '1343761268' );
-               $timestamp->getTimestamp( 98 );
-       }
-
-       /**
-        * Returns a list of valid timestamps in the format:
-        * array( type, timestamp_of_type, timestamp_in_MW )
-        */
-       public static function provideValidTimestamps() {
-               return array(
-                       // Various formats
-                       array( TS_UNIX, '1343761268', '20120731190108' ),
-                       array( TS_MW, '20120731190108', '20120731190108' ),
-                       array( TS_DB, '2012-07-31 19:01:08', '20120731190108' ),
-                       array( TS_ISO_8601, '2012-07-31T19:01:08Z', '20120731190108' ),
-                       array( TS_ISO_8601_BASIC, '20120731T190108Z', '20120731190108' ),
-                       array( TS_EXIF, '2012:07:31 19:01:08', '20120731190108' ),
-                       array( TS_RFC2822, 'Tue, 31 Jul 2012 19:01:08 GMT', '20120731190108' ),
-                       array( TS_ORACLE, '31-07-2012 19:01:08.000000', '20120731190108' ),
-                       array( TS_POSTGRES, '2012-07-31 19:01:08 GMT', '20120731190108' ),
-                       // Some extremes and weird values
-                       array( TS_ISO_8601, '9999-12-31T23:59:59Z', '99991231235959' ),
-                       array( TS_UNIX, '-62135596801', '00001231235959' )
-               );
-       }
-
-       /**
-        * @dataProvider provideHumanTimestampTests
-        * @covers MWTimestamp::getHumanTimestamp
-        */
-       public function testHumanTimestamp(
-               $tsTime, // The timestamp to format
-               $currentTime, // The time to consider "now"
-               $timeCorrection, // The time offset to use
-               $dateFormat, // The date preference to use
-               $expectedOutput, // The expected output
-               $desc // Description
-       ) {
-               $user = $this->getMock( 'User' );
-               $user->expects( $this->any() )
-                       ->method( 'getOption' )
-                       ->with( 'timecorrection' )
-                       ->will( $this->returnValue( $timeCorrection ) );
-
-               $user->expects( $this->any() )
-                       ->method( 'getDatePreference' )
-                       ->will( $this->returnValue( $dateFormat ) );
-
-               $tsTime = new MWTimestamp( $tsTime );
-               $currentTime = new MWTimestamp( $currentTime );
-
-               $this->assertEquals(
-                       $expectedOutput,
-                       $tsTime->getHumanTimestamp( $currentTime, $user ),
-                       $desc
-               );
-       }
-
-       public static function provideHumanTimestampTests() {
-               return array(
-                       array(
-                               '20111231170000',
-                               '20120101000000',
-                               'Offset|0',
-                               'mdy',
-                               'Yesterday at 17:00',
-                               '"Yesterday" across years',
-                       ),
-                       array(
-                               '20120717190900',
-                               '20120717190929',
-                               'Offset|0',
-                               'mdy',
-                               'just now',
-                               '"Just now"',
-                       ),
-                       array(
-                               '20120717190900',
-                               '20120717191530',
-                               'Offset|0',
-                               'mdy',
-                               '6 minutes ago',
-                               'X minutes ago',
-                       ),
-                       array(
-                               '20121006173100',
-                               '20121006173200',
-                               'Offset|0',
-                               'mdy',
-                               '1 minute ago',
-                               '"1 minute ago"',
-                       ),
-                       array(
-                               '20120617190900',
-                               '20120717190900',
-                               'Offset|0',
-                               'mdy',
-                               'June 17',
-                               'Another month'
-                       ),
-                       array(
-                               '19910130151500',
-                               '20120716193700',
-                               'Offset|0',
-                               'mdy',
-                               '15:15, January 30, 1991',
-                               'Different year',
-                       ),
-                       array(
-                               '20120101050000',
-                               '20120101080000',
-                               'Offset|-360',
-                               'mdy',
-                               'Yesterday at 23:00',
-                               '"Yesterday" across years with time correction',
-                       ),
-                       array(
-                               '20120714184300',
-                               '20120716184300',
-                               'Offset|-420',
-                               'mdy',
-                               'Saturday at 11:43',
-                               'Recent weekday with time correction',
-                       ),
-                       array(
-                               '20120714184300',
-                               '20120715040000',
-                               'Offset|-420',
-                               'mdy',
-                               '11:43',
-                               'Today at another time with time correction',
-                       ),
-                       array(
-                               '20120617190900',
-                               '20120717190900',
-                               'Offset|0',
-                               'dmy',
-                               '17 June',
-                               'Another month with dmy'
-                       ),
-                       array(
-                               '20120617190900',
-                               '20120717190900',
-                               'Offset|0',
-                               'ISO 8601',
-                               '06-17',
-                               'Another month with ISO-8601'
-                       ),
-                       array(
-                               '19910130151500',
-                               '20120716193700',
-                               'Offset|0',
-                               'ISO 8601',
-                               '1991-01-30T15:15:00',
-                               'Different year with ISO-8601',
-                       ),
-               );
-       }
-
-       /**
-        * @dataProvider provideRelativeTimestampTests
-        * @covers MWTimestamp::getRelativeTimestamp
-        */
-       public function testRelativeTimestamp(
-               $tsTime, // The timestamp to format
-               $currentTime, // The time to consider "now"
-               $timeCorrection, // The time offset to use
-               $dateFormat, // The date preference to use
-               $expectedOutput, // The expected output
-               $desc // Description
-       ) {
-               $user = $this->getMock( 'User' );
-               $user->expects( $this->any() )
-                       ->method( 'getOption' )
-                       ->with( 'timecorrection' )
-                       ->will( $this->returnValue( $timeCorrection ) );
-
-               $tsTime = new MWTimestamp( $tsTime );
-               $currentTime = new MWTimestamp( $currentTime );
-
-               $this->assertEquals(
-                       $expectedOutput,
-                       $tsTime->getRelativeTimestamp( $currentTime, $user ),
-                       $desc
-               );
-       }
-
-       public static function provideRelativeTimestampTests() {
-               return array(
-                       array(
-                               '20111231170000',
-                               '20120101000000',
-                               'Offset|0',
-                               'mdy',
-                               '7 hours ago',
-                               '"Yesterday" across years',
-                       ),
-                       array(
-                               '20120717190900',
-                               '20120717190929',
-                               'Offset|0',
-                               'mdy',
-                               '29 seconds ago',
-                               '"Just now"',
-                       ),
-                       array(
-                               '20120717190900',
-                               '20120717191530',
-                               'Offset|0',
-                               'mdy',
-                               '6 minutes and 30 seconds ago',
-                               'Combination of multiple units',
-                       ),
-                       array(
-                               '20121006173100',
-                               '20121006173200',
-                               'Offset|0',
-                               'mdy',
-                               '1 minute ago',
-                               '"1 minute ago"',
-                       ),
-                       array(
-                               '19910130151500',
-                               '20120716193700',
-                               'Offset|0',
-                               'mdy',
-                               '2 decades, 1 year, 168 days, 2 hours, 8 minutes and 48 seconds ago',
-                               'A long time ago',
-                       ),
-                       array(
-                               '20120101050000',
-                               '20120101080000',
-                               'Offset|-360',
-                               'mdy',
-                               '3 hours ago',
-                               '"Yesterday" across years with time correction',
-                       ),
-                       array(
-                               '20120714184300',
-                               '20120716184300',
-                               'Offset|-420',
-                               'mdy',
-                               '2 days ago',
-                               'Recent weekday with time correction',
-                       ),
-                       array(
-                               '20120714184300',
-                               '20120715040000',
-                               'Offset|-420',
-                               'mdy',
-                               '9 hours and 17 minutes ago',
-                               'Today at another time with time correction',
-                       ),
-               );
-       }
-}
diff --git a/tests/phpunit/includes/TitleArrayFromResultTest.php b/tests/phpunit/includes/TitleArrayFromResultTest.php
new file mode 100644 (file)
index 0000000..534bd2c
--- /dev/null
@@ -0,0 +1,117 @@
+<?php
+
+/**
+ * @author Adam Shorland
+ * @covers TitleArrayFromResult
+ */
+class TitleArrayFromResultTest extends MediaWikiTestCase {
+
+       private function getMockResultWrapper( $row = null, $numRows = 1 ) {
+               $resultWrapper = $this->getMockBuilder( 'ResultWrapper' )
+                       ->disableOriginalConstructor();
+
+               $resultWrapper = $resultWrapper->getMock();
+               $resultWrapper->expects( $this->atLeastOnce() )
+                       ->method( 'current' )
+                       ->will( $this->returnValue( $row ) );
+               $resultWrapper->expects( $this->any() )
+                       ->method( 'numRows' )
+                       ->will( $this->returnValue( $numRows ) );
+
+               return $resultWrapper;
+       }
+
+       private function getRowWithTitle( $namespace = 3, $title = 'foo' ) {
+               $row = new stdClass();
+               $row->page_namespace = $namespace;
+               $row->page_title = $title;
+               return $row;
+       }
+
+       private function getTitleArrayFromResult( $resultWrapper ) {
+               return new TitleArrayFromResult( $resultWrapper );
+       }
+
+       /**
+        * @covers TitleArrayFromResult::__construct
+        */
+       public function testConstructionWithFalseRow() {
+               $row = false;
+               $resultWrapper = $this->getMockResultWrapper( $row );
+
+               $object = $this->getTitleArrayFromResult( $resultWrapper );
+
+               $this->assertEquals( $resultWrapper, $object->res );
+               $this->assertSame( 0, $object->key );
+               $this->assertEquals( $row, $object->current );
+       }
+
+       /**
+        * @covers TitleArrayFromResult::__construct
+        */
+       public function testConstructionWithRow() {
+               $namespace = 0;
+               $title = 'foo';
+               $row = $this->getRowWithTitle( $namespace, $title );
+               $resultWrapper = $this->getMockResultWrapper( $row );
+
+               $object = $this->getTitleArrayFromResult( $resultWrapper );
+
+               $this->assertEquals( $resultWrapper, $object->res );
+               $this->assertSame( 0, $object->key );
+               $this->assertInstanceOf( 'Title', $object->current );
+               $this->assertEquals( $namespace, $object->current->mNamespace );
+               $this->assertEquals( $title, $object->current->mTextform );
+       }
+
+       public function provideNumberOfRows() {
+               return array(
+                       array( 0 ),
+                       array( 1 ),
+                       array( 122 ),
+               );
+       }
+
+       /**
+        * @dataProvider provideNumberOfRows
+        * @covers TitleArrayFromResult::count
+        */
+       public function testCountWithVaryingValues( $numRows ) {
+               $object = $this->getTitleArrayFromResult( $this->getMockResultWrapper( $this->getRowWithTitle(), $numRows ) );
+               $this->assertEquals( $numRows, $object->count() );
+       }
+
+       /**
+        * @covers TitleArrayFromResult::current
+        */
+       public function testCurrentAfterConstruction() {
+               $namespace = 0;
+               $title = 'foo';
+               $row = $this->getRowWithTitle( $namespace, $title );
+               $object = $this->getTitleArrayFromResult( $this->getMockResultWrapper( $row ) );
+               $this->assertInstanceOf( 'Title', $object->current() );
+               $this->assertEquals( $namespace, $object->current->mNamespace );
+               $this->assertEquals( $title, $object->current->mTextform );
+       }
+
+       public function provideTestValid() {
+               return array(
+                       array( $this->getRowWithTitle(), true ),
+                       array( false, false ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestValid
+        * @covers TitleArrayFromResult::valid
+        */
+       public function testValid( $input, $expected ) {
+               $object = $this->getTitleArrayFromResult( $this->getMockResultWrapper( $input ) );
+               $this->assertEquals( $expected, $object->valid() );
+       }
+
+       //@todo unit test for key()
+       //@todo unit test for next()
+       //@todo unit test for rewind()
+
+}
\ No newline at end of file
diff --git a/tests/phpunit/includes/UserArrayFromResultTest.php b/tests/phpunit/includes/UserArrayFromResultTest.php
new file mode 100644 (file)
index 0000000..adc330d
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+
+/**
+ * @author Adam Shorland
+ * @covers UserArrayFromResult
+ */
+class UserArrayFromResultTest extends MediaWikiTestCase {
+
+       private function getMockResultWrapper( $row = null, $numRows = 1 ) {
+               $resultWrapper = $this->getMockBuilder( 'ResultWrapper' )
+                       ->disableOriginalConstructor();
+
+               $resultWrapper = $resultWrapper->getMock();
+               $resultWrapper->expects( $this->atLeastOnce() )
+                       ->method( 'current' )
+                       ->will( $this->returnValue( $row ) );
+               $resultWrapper->expects( $this->any() )
+                       ->method( 'numRows' )
+                       ->will( $this->returnValue( $numRows ) );
+
+               return $resultWrapper;
+       }
+
+       private function getRowWithUsername( $username = 'fooUser' ) {
+               $row = new stdClass();
+               $row->user_name = $username;
+               return $row;
+       }
+
+       private function getUserArrayFromResult( $resultWrapper ) {
+               return new UserArrayFromResult( $resultWrapper );
+       }
+
+       /**
+        * @covers UserArrayFromResult::__construct
+        */
+       public function testConstructionWithFalseRow() {
+               $row = false;
+               $resultWrapper = $this->getMockResultWrapper( $row );
+
+               $object = $this->getUserArrayFromResult( $resultWrapper );
+
+               $this->assertEquals( $resultWrapper, $object->res );
+               $this->assertSame( 0, $object->key );
+               $this->assertEquals( $row, $object->current );
+       }
+
+       /**
+        * @covers UserArrayFromResult::__construct
+        */
+       public function testConstructionWithRow() {
+               $username = 'addshore';
+               $row = $this->getRowWithUsername( $username );
+               $resultWrapper = $this->getMockResultWrapper( $row );
+
+               $object = $this->getUserArrayFromResult( $resultWrapper );
+
+               $this->assertEquals( $resultWrapper, $object->res );
+               $this->assertSame( 0, $object->key );
+               $this->assertInstanceOf( 'User', $object->current );
+               $this->assertEquals( $username, $object->current->mName );
+       }
+
+       public function provideNumberOfRows() {
+               return array(
+                       array( 0 ),
+                       array( 1 ),
+                       array( 122 ),
+               );
+       }
+
+       /**
+        * @dataProvider provideNumberOfRows
+        * @covers UserArrayFromResult::count
+        */
+       public function testCountWithVaryingValues( $numRows ) {
+               $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $this->getRowWithUsername(), $numRows ) );
+               $this->assertEquals( $numRows, $object->count() );
+       }
+
+       /**
+        * @covers UserArrayFromResult::current
+        */
+       public function testCurrentAfterConstruction() {
+               $username = 'addshore';
+               $userRow = $this->getRowWithUsername( $username );
+               $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $userRow ) );
+               $this->assertInstanceOf( 'User', $object->current() );
+               $this->assertEquals( $username, $object->current()->mName );
+       }
+
+       public function provideTestValid() {
+               return array(
+                       array( $this->getRowWithUsername(), true ),
+                       array( false, false ),
+               );
+       }
+
+       /**
+        * @dataProvider provideTestValid
+        * @covers UserArrayFromResult::valid
+        */
+       public function testValid( $input, $expected ) {
+               $object = $this->getUserArrayFromResult( $this->getMockResultWrapper( $input ) );
+               $this->assertEquals( $expected, $object->valid() );
+       }
+
+       //@todo unit test for key()
+       //@todo unit test for next()
+       //@todo unit test for rewind()
+
+}
\ No newline at end of file
diff --git a/tests/phpunit/includes/config/GlobalConfigTest.php b/tests/phpunit/includes/config/GlobalConfigTest.php
new file mode 100644 (file)
index 0000000..b605a46
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+class GlobalConfigTest extends MediaWikiTestCase {
+
+       /** @var GlobalConfig $config */
+       protected $config;
+
+       protected function setUp() {
+               parent::setUp();
+               $this->config = new GlobalConfig;
+       }
+
+       public static function provideGet() {
+               return array(
+                       array( 'wgSitename', array( 'Sitename' ) ),
+                       array( 'wgFoo', array( 'Foo' ) ),
+                       array( 'efVariable', array( 'Variable', 'ef' ) ),
+                       array( 'Foo', array( 'Foo', '' ) ),
+               );
+       }
+
+       /**
+        * @param string $name
+        * @param array $params
+        * @dataProvider provideGet
+        * @covers GlobalConfig::get
+        */
+       public function testGet( $name, $params ) {
+               $rand = wfRandom();
+               $old = isset( $GLOBALS[$name] ) ? $GLOBALS[$name] : null;
+               $GLOBALS[$name] = $rand;
+               $out = call_user_func_array( array( $this->config, 'get' ), $params );
+               $this->assertEquals( $rand, $out );
+               if ( $old ) {
+                       $GLOBALS[$name] = $old;
+               }
+       }
+}
index 531a954..3d2b5d8 100644 (file)
@@ -6,7 +6,7 @@
  * @group Database
  */
 class RefreshLinksPartitionTest extends MediaWikiTestCase {
-       function __construct( $name = null, array $data = array(), $dataName = '' ) {
+       public function __construct( $name = null, array $data = array(), $dataName = '' ) {
                parent::__construct( $name, $data, $dataName );
 
                $this->tablesUsed[] = 'page';
@@ -20,9 +20,6 @@ class RefreshLinksPartitionTest extends MediaWikiTestCase {
        public function testRefreshLinks( $ns, $dbKey, $pages ) {
                $title = Title::makeTitle( $ns, $dbKey );
 
-               $dbw = wfGetDB( DB_MASTER );
-
-               $rows = array();
                foreach ( $pages as $page ) {
                        list( $bns, $bdbkey ) = $page;
                        $bpage = WikiPage::factory( Title::makeTitle( $bns, $bdbkey ) );
index b1ba152..c3d75aa 100644 (file)
@@ -50,8 +50,7 @@ class SpecialRecentchangesTest extends MediaWikiTestCase {
                $this->assertConditions(
                        array( # expected
                                'rc_bot' => 0,
-                               #0 => "rc_timestamp >= '20110223000000'",
-                               1 => "rc_namespace = '0'",
+                               0 => "rc_namespace = '0'",
                        ),
                        array(
                                'namespace' => NS_MAIN,
@@ -63,9 +62,8 @@ class SpecialRecentchangesTest extends MediaWikiTestCase {
        public function testRcNsFilterInversion() {
                $this->assertConditions(
                        array( # expected
-                               #0 => "rc_timestamp >= '20110223000000'",
                                'rc_bot' => 0,
-                               1 => sprintf( "rc_namespace != '%s'", NS_MAIN ),
+                               0 => sprintf( "rc_namespace != '%s'", NS_MAIN ),
                        ),
                        array(
                                'namespace' => NS_MAIN,
@@ -82,9 +80,8 @@ class SpecialRecentchangesTest extends MediaWikiTestCase {
        public function testRcNsFilterAssociation( $ns1, $ns2 ) {
                $this->assertConditions(
                        array( # expected
-                               #0 => "rc_timestamp >= '20110223000000'",
                                'rc_bot' => 0,
-                               1 => sprintf( "(rc_namespace = '%s' OR rc_namespace = '%s')", $ns1, $ns2 ),
+                               0 => sprintf( "(rc_namespace = '%s' OR rc_namespace = '%s')", $ns1, $ns2 ),
                        ),
                        array(
                                'namespace' => $ns1,
@@ -101,9 +98,8 @@ class SpecialRecentchangesTest extends MediaWikiTestCase {
        public function testRcNsFilterAssociationWithInversion( $ns1, $ns2 ) {
                $this->assertConditions(
                        array( # expected
-                               #0 => "rc_timestamp >= '20110223000000'",
                                'rc_bot' => 0,
-                               1 => sprintf( "(rc_namespace != '%s' AND rc_namespace != '%s')", $ns1, $ns2 ),
+                               0 => sprintf( "(rc_namespace != '%s' AND rc_namespace != '%s')", $ns1, $ns2 ),
                        ),
                        array(
                                'namespace' => $ns1,
index 7a9122f..3e76ff8 100644 (file)
                        <group>Stub</group>
                </exclude>
        </groups>
+       <filter>
+               <whitelist addUncoveredFilesFromWhitelist="true">
+                       <directory suffix=".php">../../includes</directory>
+                       <directory suffix=".php">../../languages</directory>
+                       <directory suffix=".php">../../maintenance</directory>
+                       <directory suffix=".php">../../resources</directory>
+                       <directory suffix=".php">../../skins</directory>
+               </whitelist>
+       </filter>
 </phpunit>