Merge "Fix docs on File::getImageSize() they were very misleading"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 27 May 2014 14:53:08 +0000 (14:53 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 27 May 2014 14:53:08 +0000 (14:53 +0000)
100 files changed:
RELEASE-NOTES-1.24
docs/hooks.txt
includes/AutoLoader.php
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/HistoryBlob.php
includes/ImagePage.php
includes/MagicWord.php
includes/SkinTemplate.php
includes/Title.php
includes/WebRequest.php
includes/WikiPage.php
includes/api/ApiMain.php
includes/api/ApiQueryLogEvents.php
includes/changes/RecentChange.php
includes/config/Config.php
includes/config/ConfigException.php [new file with mode: 0644]
includes/config/ConfigFactory.php [new file with mode: 0644]
includes/config/GlobalConfig.php [deleted file]
includes/config/GlobalVarConfig.php [new file with mode: 0644]
includes/content/TextContent.php
includes/context/DerivativeContext.php
includes/context/RequestContext.php
includes/db/DatabaseError.php
includes/htmlform/HTMLCheckField.php [changed mode: 0644->0755]
includes/installer/i18n/uk.json
includes/media/DjVu.php
includes/media/MediaHandler.php
includes/revisiondelete/RevisionDelete.php
includes/revisiondelete/RevisionDeleteAbstracts.php
includes/specials/SpecialAllpages.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialFileDuplicateSearch.php
includes/specials/SpecialLinkSearch.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialWhatlinkshere.php
includes/utils/ZipDirectoryReader.php
languages/i18n/az.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/bn.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/crh-cyrl.json
languages/i18n/crh-latn.json
languages/i18n/cs.json
languages/i18n/de.json
languages/i18n/egl.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/fa.json
languages/i18n/fr.json
languages/i18n/hr.json
languages/i18n/id.json
languages/i18n/ilo.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/kk-cyrl.json
languages/i18n/kn.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/lmo.json
languages/i18n/mg.json
languages/i18n/ml.json
languages/i18n/mt.json
languages/i18n/nl.json
languages/i18n/pl.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/ru.json
languages/i18n/scn.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/uk.json
languages/i18n/vi.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
maintenance/deleteBatch.php
maintenance/language/countMessages.php [deleted file]
maintenance/language/validate.php [deleted file]
resources/src/jquery/jquery.makeCollapsible.js
resources/src/mediawiki.skinning/content.parsoid.less
tests/TestsAutoLoader.php
tests/phpunit/includes/config/ConfigFactoryTest.php [new file with mode: 0644]
tests/phpunit/includes/config/GlobalConfigTest.php [deleted file]
tests/phpunit/includes/config/GlobalVarConfigTest.php [new file with mode: 0644]
tests/phpunit/includes/media/DjVuTest.php
tests/phpunit/includes/media/ExifRotationTest.php
tests/phpunit/includes/media/FormatMetadataTest.php
tests/phpunit/includes/media/GIFTest.php
tests/phpunit/includes/media/JpegTest.php
tests/phpunit/includes/media/MediaWikiMediaTestCase.php [new file with mode: 0644]
tests/phpunit/includes/media/PNGTest.php
tests/phpunit/includes/media/SVGTest.php
tests/phpunit/structure/StructureTest.php
tests/qunit/suites/resources/jquery/jquery.autoEllipsis.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js

index fb23b71..36efccc 100644 (file)
@@ -59,6 +59,9 @@ production.
 * Parser now dies early if called recursively, instead of producing subtle bugs.
 * (bug 14323) Redirect pages, when viewed with redirect=no, no longer hide the
   remaining page content.
+* (bug 52587) Maintenance script deleteBatch.php no longer follows redirects
+  in the file namespace and delete the file on the target page. It will still
+  however delete the redirect page.
 
 === Web API changes in 1.24 ===
 * action=parse API now supports prop=modules, which provides the list of
@@ -66,6 +69,8 @@ production.
 * action=query&meta=siteinfo&siprop=interwikimap returns a new "protorel"
   field which is true iff protocol-relative urls can be used to access
   a particular interwiki map entry.
+* ApiQueryLogEvents now provides logpage, which is the page ID from the
+  logging table, if ids are requested and the user has the permissions.
 
 === Languages updated in 1.24 ===
 
index 0c03375..e1c9ec6 100644 (file)
@@ -313,11 +313,11 @@ $apiModule: the ApiCreateAccount module calling
 $loginForm: the LoginForm used
 &$result: associative array for API result data
 
-'AfterFinalPageOutput': At the end of OutputPage::output() but before final
-ob_end_flush() which will send the buffered output to the client. This allows
-for last-minute modification of the output within the buffer by using
-ob_get_clean().
-&$output: OutputPage object
+'AfterFinalPageOutput': Nearly at the end of OutputPage::output() but
+before OutputPage::sendCacheControl() and final ob_end_flush() which
+will send the buffered output to the client. This allows for last-minute
+modification of the output within the buffer by using ob_get_clean().
+$output: The OutputPage object where output() was called
 
 'AfterImportPage': When a page import is completed.
 $title: Title under which the revisions were imported
@@ -326,12 +326,6 @@ $revCount: Number of revisions in the XML file
 $sRevCount: Number of successfully imported revisions
 $pageInfo: associative array of page information
 
-'AfterFinalPageOutput': Nearly at the end of OutputPage::output() but
-before OutputPage::sendCacheControl() and final ob_end_flush() which
-will send the buffered output to the client. This allows for last-minute
-modification of the output within the buffer by using ob_get_clean().
-$output: The OutputPage object where output() was called
-
 'AjaxAddScript': Called in output page just before the initialisation
 of the javascript ajax engine. The hook is only called when ajax
 is enabled ( $wgUseAjax = true; ).
@@ -638,6 +632,7 @@ $title: Title corresponding to the article restored
 $create: Whether or not the restoration caused the page to be created (i.e. it
   didn't exist before).
 $comment: The comment associated with the undeletion.
+$oldPageId: ID of page previously deleted (from archive table)
 
 'ArticleUndeleteLogEntry': When a log entry is generated but not yet saved.
 $pageArchive: the PageArchive object
index 338274c..450112c 100644 (file)
@@ -392,7 +392,9 @@ $wgAutoloadLocalClasses = array(
 
        # includes/config
        'Config' => 'includes/config/Config.php',
-       'GlobalConfig' => 'includes/config/GlobalConfig.php',
+       'ConfigException' => 'includes/config/ConfigException.php',
+       'ConfigFactory' => 'includes/config/ConfigFactory.php',
+       'GlobalVarConfig' => 'includes/config/GlobalVarConfig.php',
 
        # includes/content
        'AbstractContent' => 'includes/content/AbstractContent.php',
index e011d4a..e156792 100644 (file)
@@ -60,11 +60,14 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 $wgConf = new SiteConfiguration;
 
 /**
- * Class name to use for accessing Config.
- * Currently only 'GlobalConfig' is available
+ * Registry of factory functions to create config objects:
+ * The 'main' key must be set, and the value should be a valid
+ * callable.
  * @since 1.23
  */
-$wgConfigClass = 'GlobalConfig';
+$wgConfigRegistry = array(
+       'main' => 'GlobalVarConfig::newInstance'
+);
 
 /**
  * MediaWiki version number
@@ -5608,7 +5611,7 @@ $wgRC2UDPOmitBots = false;
  * The common options are:
  *   * 'uri' -- the address to which the notices are to be sent.
  *   * 'formatter' -- the class name (implementing RCFeedFormatter) which will
- *     produce the text to send.
+ *     produce the text to send. This can also be an object of the class.
  *   * 'omit_bots' -- whether the bot edits should be in the feed
  *   * 'omit_anon' -- whether anonymous edits should be in the feed
  *   * 'omit_user' -- whether edits by registered users should be in the feed
@@ -7074,6 +7077,14 @@ $wgCompiledFiles = array();
  */
 $wgPagePropsHaveSortkey = true;
 
+/**
+ * Port where you have HTTPS running
+ * Supports HTTPS on non-standard ports
+ * @see bug 65184
+ * @since 1.24
+ */
+$wgHttpsPort = 443;
+
 /**
  * For really cool vim folding this needs to be at the end:
  * vim: foldmarker=@{,@} foldmethod=marker
index d2c7542..9cbb9d6 100644 (file)
@@ -497,7 +497,8 @@ function wfAppendQuery( $url, $query ) {
  *    no valid URL can be constructed
  */
 function wfExpandUrl( $url, $defaultProto = PROTO_CURRENT ) {
-       global $wgServer, $wgCanonicalServer, $wgInternalServer, $wgRequest;
+       global $wgServer, $wgCanonicalServer, $wgInternalServer, $wgRequest,
+               $wgHttpsPort;
        if ( $defaultProto === PROTO_CANONICAL ) {
                $serverUrl = $wgCanonicalServer;
        } elseif ( $defaultProto === PROTO_INTERNAL && $wgInternalServer !== false ) {
@@ -536,6 +537,13 @@ function wfExpandUrl( $url, $defaultProto = PROTO_CURRENT ) {
        }
 
        $bits = wfParseUrl( $url );
+
+       // ensure proper port for HTTPS arrives in URL
+       // https://bugzilla.wikimedia.org/show_bug.cgi?id=65184
+       if ( $defaultProto === PROTO_HTTPS && $wgHttpsPort != 443 ) {
+               $bits['port'] = $wgHttpsPort;
+       }
+
        if ( $bits && isset( $bits['path'] ) ) {
                $bits['path'] = wfRemoveDotSegments( $bits['path'] );
                return wfAssembleUrl( $bits );
index e95536a..d0cae36 100644 (file)
@@ -197,13 +197,13 @@ class HistoryBlobStub {
        protected static $blobCache = array();
 
        /** @var int */
-       protected $mOldId;
+       public $mOldId;
 
        /** @var string */
-       protected $mHash;
+       public $mHash;
 
        /** @var  */
-       protected $mRef;
+       public $mRef;
 
        /**
         * @param string $hash The content hash of the text
@@ -313,7 +313,7 @@ class HistoryBlobStub {
  */
 class HistoryBlobCurStub {
        /** @var int */
-       private $mCurId;
+       public $mCurId;
 
        /**
         * @param int $curid The cur_id pointed to
@@ -374,7 +374,7 @@ class DiffHistoryBlob implements HistoryBlob {
        protected $mDefaultKey;
 
        /** @var string Compressed storage */
-       protected $mCompressed;
+       public $mCompressed;
 
        /** @var bool True if the object is locked against further writes */
        protected $mFrozen = false;
index a38b195..5f385ac 100644 (file)
@@ -1303,7 +1303,7 @@ class ImageHistoryList extends ContextSource {
                $row .= htmlspecialchars( $file->getDimensionsString() );
                $row .= $this->msg( 'word-separator' )->plain();
                $row .= '<span style="white-space: nowrap;">';
-               $row .= $this->msg( 'parentheses' )->rawParams( Linker::formatSize( $file->getSize() ) )->plain();
+               $row .= $this->msg( 'parentheses' )->sizeParams( $file->getSize() )->plain();
                $row .= '</span>';
                $row .= '</td>';
 
index cd75f0b..3e327c3 100644 (file)
@@ -216,7 +216,7 @@ class MagicWord {
                'numberofadmins' => 3600,
                'numberofviews' => 3600,
                'numberingroup' => 3600,
-               );
+       );
 
        static public $mDoubleUnderscoreIDs = array(
                'notoc',
index cf8b3fc..08816ad 100644 (file)
@@ -1987,7 +1987,6 @@ abstract class BaseTemplate extends QuickTemplate {
                        'name' => 'search',
                        'placeholder' => wfMessage( 'searchsuggest-search' )->text(),
                        'value' => $this->get( 'search', '' ),
-                       'tabindex' => 1
                );
                $realAttrs = array_merge( $realAttrs, Linker::tooltipAndAccesskeyAttribs( 'search' ), $attrs );
                return Html::element( 'input', $realAttrs );
index 67958ff..ea4a1b2 100644 (file)
@@ -3932,7 +3932,7 @@ class Title {
 
                if ( $createRedirect ) {
                        if ( $this->getNamespace() == NS_CATEGORY
-                               && !wfMessage( 'category-move-redirect-override' )->isDisabled()
+                               && !wfMessage( 'category-move-redirect-override' )->inContentLanguage()->isDisabled()
                        ) {
                                $redirectContent = new WikitextContent(
                                        wfMessage( 'category-move-redirect-override' )
index 391b49e..ecc2372 100644 (file)
@@ -489,7 +489,7 @@ class WebRequest {
         * @param float $default
         * @return float
         */
-       public function getFloat( $name, $default = 0 ) {
+       public function getFloat( $name, $default = 0.0 ) {
                return floatval( $this->getVal( $name, $default ) );
        }
 
index 9a26c15..8fe948b 100644 (file)
@@ -1838,11 +1838,7 @@ class WikiPage implements Page, IDBAccessObject {
 
                                        // Update page
                                        //
-                                       // Note that we use $this->mLatest instead of fetching a value from the master DB
-                                       // during the course of this function. This makes sure that EditPage can detect
-                                       // edit conflicts reliably, either by $ok here, or by $article->getTimestamp()
-                                       // before this function is called. A previous function used a separate query, this
-                                       // creates a window where concurrent edits can cause an ignored edit conflict.
+                                       // We check for conflicts by comparing $oldid with the current latest revision ID.
                                        $ok = $this->updateRevisionOn( $dbw, $revision, $oldid, $oldIsRedirect );
 
                                        if ( !$ok ) {
@@ -2831,6 +2827,9 @@ class WikiPage implements Page, IDBAccessObject {
                        $dbw->delete( 'revision', array( 'rev_page' => $id ), __METHOD__ );
                }
 
+               // Clone the title, so we have the information we need when we log
+               $logTitle = clone $this->mTitle;
+
                $this->doDeleteUpdates( $id, $content );
 
                // Log the deletion, if the page was suppressed, log it at Oversight instead
@@ -2838,7 +2837,7 @@ class WikiPage implements Page, IDBAccessObject {
 
                $logEntry = new ManualLogEntry( $logtype, 'delete' );
                $logEntry->setPerformer( $user );
-               $logEntry->setTarget( $this->mTitle );
+               $logEntry->setTarget( $logTitle );
                $logEntry->setComment( $reason );
                $logid = $logEntry->insert();
                $logEntry->publish( $logid );
index ccf91dd..df56735 100644 (file)
@@ -957,7 +957,7 @@ class ApiMain extends ApiBase {
        /**
         * Encode a value in a format suitable for a space-separated log line.
         * @param string $s
-        * return string
+        * @return string
         */
        protected function encodeRequestLogValue( $s ) {
                static $table;
index bb424ee..0977439 100644 (file)
@@ -81,6 +81,10 @@ class ApiQueryLogEvents extends ApiQueryBase {
                ) );
 
                $this->addFieldsIf( 'page_id', $this->fld_ids );
+               // log_page is the page_id saved at log time, whereas page_id is from a
+               // join at query time.  This leads to different results in various
+               // scenarios, e.g. deletion, recreation.
+               $this->addFieldsIf( 'log_page', $this->fld_ids );
                $this->addFieldsIf( array( 'log_user', 'log_user_text', 'user_name' ), $this->fld_user );
                $this->addFieldsIf( 'log_user', $this->fld_userid );
                $this->addFieldsIf(
@@ -364,6 +368,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                }
                                if ( $this->fld_ids ) {
                                        $vals['pageid'] = intval( $row->page_id );
+                                       $vals['logpage'] = intval( $row->log_page );
                                }
                                if ( $this->fld_details && $row->log_params !== '' ) {
                                        self::addLogParams(
index 3a5a869..370e109 100644 (file)
@@ -390,13 +390,17 @@ class RecentChange {
 
        /**
         * Notify all the feeds about the change.
+        * @param array $feeds Optional feeds to send to, defaults to $wgRCFeeds
         */
-       public function notifyRCFeeds() {
+       public function notifyRCFeeds( array $feeds = null ) {
                global $wgRCFeeds;
+               if ( $feeds === null ) {
+                       $feeds = $wgRCFeeds;
+               }
 
                $performer = $this->getPerformer();
 
-               foreach ( $wgRCFeeds as $feed ) {
+               foreach ( $feeds as $feed ) {
                        $feed += array(
                                'omit_bots' => false,
                                'omit_anon' => false,
@@ -425,7 +429,7 @@ class RecentChange {
                        }
 
                        /** @var $formatter RCFeedFormatter */
-                       $formatter = new $feed['formatter']();
+                       $formatter = is_object( $feed['formatter'] ) ? $feed['formatter'] : new $feed['formatter']();
                        $line = $formatter->getLine( $feed, $this, $actionComment );
 
                        $engine->send( $feed, $line );
index 04afdda..68e90b4 100644 (file)
  */
 
 /**
- * Abstract class for get settings for
+ * Interface for configuration instances
  *
  * @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' );
+interface Config {
 
        /**
-        * @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
+        * Get a configuration variable such as "Sitename" or "UploadMaintenance."
+        *
+        * @param string $name Name of configuration option
+        * @return mixed Value configured
+        * @throws ConfigException
         */
-       abstract public function set( $name, $value, $prefix = 'wg' );
+       public function get( $name );
 
        /**
-        * @param string|null $type class name for Config object,
-        *        uses $wgConfigClass if not provided
-        * @return Config
+        * Set a configuration variable such a "Sitename" to something like "My Wiki"
+        *
+        * @param string $name Name of configuration option
+        * @param mixed $value Value to set
+        * @throws ConfigException
         */
-       public static function factory( $type = null ) {
-               if ( !$type ) {
-                       global $wgConfigClass;
-                       $type = $wgConfigClass;
-               }
-
-               return new $type;
-       }
+       public function set( $name, $value );
 }
diff --git a/includes/config/ConfigException.php b/includes/config/ConfigException.php
new file mode 100644 (file)
index 0000000..368ca5a
--- /dev/null
@@ -0,0 +1,28 @@
+<?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
+ */
+
+/**
+ * Exceptions for config failures
+ *
+ * @since 1.23
+ */
+class ConfigException extends MWException {}
diff --git a/includes/config/ConfigFactory.php b/includes/config/ConfigFactory.php
new file mode 100644 (file)
index 0000000..b09316b
--- /dev/null
@@ -0,0 +1,94 @@
+<?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
+ */
+
+/**
+ * Factory class to create Config objects
+ *
+ * @since 1.23
+ */
+class ConfigFactory {
+
+       /**
+        * Map of config name => callback
+        * @var array
+        */
+       protected $factoryFunctions = array();
+
+       /**
+        * Config objects that have already been created
+        * name => Config object
+        * @var array
+        */
+       protected $configs = array();
+
+       public static function getDefaultInstance() {
+               static $self = null;
+               if ( !$self ) {
+                       $self = new self;
+                       global $wgConfigRegistry;
+                       foreach ( $wgConfigRegistry as $name => $callback ) {
+                               $self->register( $name, $callback );
+                       }
+               }
+               return $self;
+       }
+
+       /**
+        * Register a new config factory function
+        * Will override if it's already registered
+        * @param string $name
+        * @param callable $callback that takes this ConfigFactory as an argument
+        * @throws InvalidArgumentException if an invalid callback is provided
+        */
+       public function register( $name, $callback ) {
+               if ( !is_callable( $callback ) ) {
+                       throw new InvalidArgumentException( 'Invalid callback provided' );
+               }
+               $this->factoryFunctions[$name] = $callback;
+       }
+
+       /**
+        * Create a given Config using the registered callback for $name.
+        * If an object was already created, the same Config object is returned.
+        * @param string $name of the extension/component you want a Config object for
+        *                     'main' is used for core
+        * @throws ConfigException if a factory function isn't registered for $name
+        * @throws UnexpectedValueException if the factory function returns a non-Config object
+        * @return Config
+        */
+       public function makeConfig( $name ) {
+               if ( !isset( $this->configs[$name] ) ) {
+                       if ( !isset( $this->factoryFunctions[$name] ) ) {
+                               throw new ConfigException( "No registered builder available for $name." );
+                       }
+                       $conf = call_user_func( $this->factoryFunctions[$name], $this );
+                       if ( $conf instanceof Config ) {
+                               $this->configs[$name] = $conf;
+                       } else {
+                               throw new UnexpectedValueException( "The builder for $name returned a non-Config object." );
+                       }
+               }
+
+               return $this->configs[$name];
+       }
+}
diff --git a/includes/config/GlobalConfig.php b/includes/config/GlobalConfig.php
deleted file mode 100644 (file)
index e16a9ee..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<?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();
-       }
-}
diff --git a/includes/config/GlobalVarConfig.php b/includes/config/GlobalVarConfig.php
new file mode 100644 (file)
index 0000000..61a76b7
--- /dev/null
@@ -0,0 +1,88 @@
+<?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 GlobalVarConfig implements Config {
+
+       /**
+        * Prefix to use for configuration variables
+        * @var string
+        */
+       private $prefix;
+
+       /**
+        * Default builder function
+        * @return GlobalVarConfig
+        */
+       public static function newInstance() {
+               return new GlobalVarConfig();
+       }
+
+       public function __construct( $prefix = 'wg' ) {
+               $this->prefix = $prefix;
+       }
+
+       /**
+        * @see Config::get
+        */
+       public function get( $name ) {
+               return $this->getWithPrefix( $this->prefix, $name );
+       }
+
+       /**
+        * @see Config::set
+        */
+       public function set( $name, $value ) {
+               $this->setWithPrefix( $this->prefix, $name, $value );
+       }
+
+       /**
+        * Get a variable with a given prefix, if not the defaults.
+        *
+        * @param string $prefix Prefix to use on the variable, if one.
+        * @param string $name Variable name without prefix
+        * @throws ConfigException
+        * @return mixed
+        */
+       protected function getWithPrefix( $prefix, $name ) {
+               $var = $prefix . $name;
+               if ( !isset( $GLOBALS[ $var ] ) ) {
+                       throw new ConfigException( __METHOD__ . ": undefined variable: '$var'" );
+               }
+               return $GLOBALS[ $var ];
+       }
+
+       /**
+        * Get a variable with a given prefix, if not the defaults.
+        *
+        * @param string $prefix Prefix to use on the variable
+        * @param string $name Variable name without prefix
+        * @param mixed $value value to set
+        */
+       protected function setWithPrefix( $prefix, $name, $value ) {
+               $GLOBALS[ $prefix . $name ] = $value;
+       }
+}
index b772f17..c3daf83 100644 (file)
@@ -116,9 +116,7 @@ class TextContent extends AbstractContent {
         * @return string The raw text.
         */
        public function getNativeData() {
-               $text = $this->mText;
-
-               return $text;
+               return $this->mText;
        }
 
        /**
index 32a650f..4a7b466 100644 (file)
@@ -66,7 +66,7 @@ class DerivativeContext extends ContextSource {
        private $skin;
 
        /**
-        * @var SiteConfiguration
+        * @var Config
         */
        private $config;
 
@@ -81,9 +81,9 @@ class DerivativeContext extends ContextSource {
        /**
         * Set the SiteConfiguration object
         *
-        * @param SiteConfiguration $s
+        * @param Config $s
         */
-       public function setConfig( SiteConfiguration $s ) {
+       public function setConfig( Config $s ) {
                $this->config = $s;
        }
 
index 4291e44..c87bfc0 100644 (file)
@@ -84,7 +84,9 @@ class RequestContext implements IContextSource {
         */
        public function getConfig() {
                if ( $this->config === null ) {
-                       $this->config = Config::factory();
+                       // @todo In the future, we could move this to WebStart.php so
+                       // the Config object is ready for when initialization happens
+                       $this->config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
                }
 
                return $this->config;
index 4d5c3dc..8229c99 100644 (file)
@@ -133,17 +133,13 @@ class DBConnectionError extends DBExpectedError {
         * @return string Unprocessed plain error text with parameters replaced
         */
        function msg( $key, $fallback /*[, params...] */ ) {
-               global $wgLang;
-
                $args = array_slice( func_get_args(), 2 );
 
                if ( $this->useMessageCache() ) {
-                       $message = $wgLang->getMessage( $key );
+                       return wfMessage( $key, $args )->useDatabase( false )->text();
                } else {
-                       $message = $fallback;
+                       return wfMsgReplaceArgs( $fallback, $args );
                }
-
-               return wfMsgReplaceArgs( $message, $args );
        }
 
        /**
old mode 100644 (file)
new mode 100755 (executable)
index c7ec014..a0dd370
@@ -24,8 +24,7 @@ class HTMLCheckField extends HTMLFormField {
                                array(
                                        'class' => 'mw-ui-checkbox-label'
                                ),
-                               Xml::check( $this->mName, $value, $attr ) . // Html:rawElement doesn't escape contents.
-                               htmlspecialchars( $this->mLabel ) );
+                               Xml::check( $this->mName, $value, $attr ) . $this->mLabel );
                } else {
                        return Xml::check( $this->mName, $value, $attr )
                        . '&#160;'
index 4c92db1..2065352 100644 (file)
        "config-install-done": "'''Вітаємо!'''\nВи успішно встановили MediaWiki.\n\nІнсталятор згенерував файл <code>LocalSettings.php</code>, який містить усі Ваші налаштування.\n\nВам необхідно завантажити його і помістити у кореневу папку Вашої вікі (туди ж, де index.php). Завантаження мало початись автоматично.\n\nЯкщо завантаження не почалось або Ви його скасували, можете заново його почати, натиснувши на посилання внизу:\n\n$3\n\n'''Примітка''': Якщо Ви не зробите цього зараз, цей файл не буде доступним пізніше, коли Ви вийдете з встановлення, не скачавши його.\n\nПісля виконання дій, описаних вище, Ви зможете '''[$2 увійти у свою вікі]'''.",
        "config-download-localsettings": "Завантажити <code>LocalSettings.php</code>",
        "config-help": "допомога",
+       "config-help-tooltip": "натисніть, щоб розгорнути",
        "config-nofile": "Файл \"$1\" не знайдено. Його видалено?",
        "config-extension-link": "Чи знаєте ви, що ваше вікі підтримує [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions розширення]?\n\nВи можете переглядати [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category розширення по категорії] або в [//www.mediawiki.org/wiki/Extension_Matrix матрицю розширень] щоб побачити повний список розширень.",
        "mainpagetext": "Програмне забезпечення «MediaWiki» успішно встановлене.",
index 566efb2..200d526 100644 (file)
@@ -278,7 +278,14 @@ class DjVuHandler extends ImageHandler {
                $unser = unserialize( $metadata );
                wfRestoreWarnings();
                if ( is_array( $unser ) ) {
-                       return $unser['xml'];
+                       if ( isset( $unser['error'] ) ) {
+                               return false;
+                       } elseif ( isset( $unser['xml'] ) ) {
+                               return $unser['xml'];
+                       } else {
+                               // Should never ever reach here.
+                               throw new MWException( "Error unserializing DjVu metadata." );
+                       }
                }
 
                // unserialize failed. Guess it wasn't really serialized after all,
@@ -364,7 +371,8 @@ class DjVuHandler extends ImageHandler {
 
                $xml = $this->getDjVuImage( $image, $path )->retrieveMetaData();
                if ( $xml === false ) {
-                       return false;
+                       // Special value so that we don't repetitively try and decode a broken file.
+                       return serialize( array( 'error' => 'Error extracting metadata' ) );
                } else {
                        return serialize( array( 'xml' => $xml ) );
                }
index ab8fa14..f131af4 100644 (file)
@@ -573,7 +573,7 @@ abstract class MediaHandler {
        }
 
        /**
-        * Used instead of getLongDesc if there is no handler registered for file.
+        * Short description. Shown on Special:Search results.
         *
         * @param File $file
         * @return string
@@ -585,7 +585,7 @@ abstract class MediaHandler {
        }
 
        /**
-        * Short description. Shown on Special:Search results.
+        * Long description. Shown under image on image description page surounded by ().
         *
         * @param File $file
         * @return string
@@ -598,7 +598,7 @@ abstract class MediaHandler {
        }
 
        /**
-        * Long description. Shown under image on image description page surounded by ().
+        * Used instead of getShortDesc if there is no handler registered for file.
         *
         * @param File $file
         * @return string
@@ -610,7 +610,7 @@ abstract class MediaHandler {
        }
 
        /**
-        * Used instead of getShortDesc if there is no handler registered for file.
+        * Used instead of getLongDesc if there is no handler registered for file.
         *
         * @param File $file
         * @return string
index 7e0e45d..fbfe325 100644 (file)
@@ -31,8 +31,7 @@
  * See RevDelRevisionItem and RevDelArchivedRevisionItem for items.
  */
 class RevDelRevisionList extends RevDelList {
-       /** @var int */
-       protected $currentRevId;
+       var $currentRevId;
 
        public function getType() {
                return 'revision';
@@ -148,7 +147,7 @@ class RevDelRevisionList extends RevDelList {
  * Item class for a live revision table row
  */
 class RevDelRevisionItem extends RevDelItem {
-       protected $revision;
+       var $revision;
 
        public function __construct( $list, $row ) {
                parent::__construct( $list, $row );
@@ -471,15 +470,6 @@ class RevDelArchivedRevisionItem extends RevDelArchiveItem {
  * List for oldimage table items
  */
 class RevDelFileList extends RevDelList {
-       /** @var array */
-       protected $storeBatch;
-
-       /** @var array */
-       protected $deleteBatch;
-
-       /** @var array */
-       protected $cleanupBatch;
-
        public function getType() {
                return 'oldimage';
        }
@@ -496,6 +486,8 @@ class RevDelFileList extends RevDelList {
                return File::DELETED_FILE;
        }
 
+       var $storeBatch, $deleteBatch, $cleanupBatch;
+
        /**
         * @param DatabaseBase $db
         * @return mixed
@@ -577,8 +569,11 @@ class RevDelFileList extends RevDelList {
  * Item class for an oldimage table row
  */
 class RevDelFileItem extends RevDelItem {
-       /** @var File */
-       protected $file;
+
+       /**
+        * @var File
+        */
+       var $file;
 
        public function __construct( $list, $row ) {
                parent::__construct( $list, $row );
@@ -1042,9 +1037,7 @@ class RevDelLogItem extends RevDelItem {
                // User links and action text
                $action = $formatter->getActionText();
                // Comment
-               $comment = $this->list->getLanguage()->getDirMark()
-                       . Linker::commentBlock( $this->row->log_comment );
-
+               $comment = $this->list->getLanguage()->getDirMark() . Linker::commentBlock( $this->row->log_comment );
                if ( LogEventsList::isDeleted( $this->row, LogPage::DELETED_COMMENT ) ) {
                        $comment = '<span class="history-deleted">' . $comment . '</span>';
                }
@@ -1060,15 +1053,9 @@ class RevDelLogItem extends RevDelItem {
                        'type' => $logEntry->getType(),
                        'action' => $logEntry->getSubtype(),
                );
-               $ret += $logEntry->isDeleted( LogPage::DELETED_USER )
-                       ? array( 'userhidden' => '' )
-                       : array();
-               $ret += $logEntry->isDeleted( LogPage::DELETED_COMMENT )
-                       ? array( 'commenthidden' => '' )
-                       : array();
-               $ret += $logEntry->isDeleted( LogPage::DELETED_ACTION )
-                       ? array( 'actionhidden' => '' )
-                       : array();
+               $ret += $logEntry->isDeleted( LogPage::DELETED_USER ) ? array( 'userhidden' => '' ) : array();
+               $ret += $logEntry->isDeleted( LogPage::DELETED_COMMENT ) ? array( 'commenthidden' => '' ) : array();
+               $ret += $logEntry->isDeleted( LogPage::DELETED_ACTION ) ? array( 'actionhidden' => '' ) : array();
 
                if ( LogEventsList::userCan( $this->row, LogPage::DELETED_ACTION, $user ) ) {
                        ApiQueryLogEvents::addLogParams(
index 086db3a..4dc9388 100644 (file)
@@ -105,9 +105,7 @@ abstract class RevDelList extends RevisionListBase {
                        $status->itemStatuses = array();
                }
 
-               // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
                for ( $this->reset(); $this->current(); $this->next() ) {
-                       // @codingStandardsIgnoreEnd
                        $item = $this->current();
                        unset( $missing[$item->getId()] );
 
index ad92298..0490d82 100644 (file)
@@ -296,7 +296,7 @@ class SpecialAllpages extends IncludableSpecialPage {
                $bottomLinks = array();
 
                # Do we put a previous link ?
-               if ( isset( $prevTitle ) && $pt = $prevTitle->getText() ) {
+               if ( $prevTitle && $pt = $prevTitle->getText() ) {
                        $query = array( 'from' => $prevTitle->getText() );
 
                        if ( $namespace ) {
index f4ce882..dcd2443 100644 (file)
@@ -83,7 +83,7 @@ class SpecialChangePassword extends FormSpecialPage {
                $request = $this->getRequest();
 
                $oldpassMsg = $this->mOldPassMsg;
-               if ( !isset( $oldpassMsg ) ) {
+               if ( $oldpassMsg === null ) {
                        $oldpassMsg = $user->isLoggedIn() ? 'oldpassword' : 'resetpass-temp-password';
                }
 
index 9cf5a73..b6c9d55 100644 (file)
@@ -101,7 +101,7 @@ class FileDuplicateSearchPage extends QueryPage {
                $this->setHeaders();
                $this->outputHeader();
 
-               $this->filename = isset( $par ) ? $par : $this->getRequest()->getText( 'filename' );
+               $this->filename = $par !== null ? $par : $this->getRequest()->getText( 'filename' );
                $this->file = null;
                $this->hash = '';
                $title = Title::newFromText( $this->filename, NS_FILE );
index c44e8e1..b88e196 100644 (file)
@@ -209,7 +209,7 @@ class LinkSearchPage extends QueryPage {
                global $wgMiserMode;
                $params = array();
                $params['target'] = $this->mProt . $this->mQuery;
-               if ( isset( $this->mNs ) && !$wgMiserMode ) {
+               if ( $this->mNs !== null && !$wgMiserMode ) {
                        $params['namespace'] = $this->mNs;
                }
 
@@ -244,7 +244,7 @@ class LinkSearchPage extends QueryPage {
                        'options' => array( 'USE INDEX' => $clause )
                );
 
-               if ( isset( $this->mNs ) && !$wgMiserMode ) {
+               if ( $this->mNs !== null && !$wgMiserMode ) {
                        $retval['conds']['page_namespace'] = $this->mNs;
                }
 
index 6b54fe8..3715b8b 100644 (file)
@@ -170,9 +170,14 @@ class ImageListPager extends TablePager {
                                'img_name' => $this->msg( 'listfiles_name' )->text(),
                                'thumb' => $this->msg( 'listfiles_thumb' )->text(),
                                'img_size' => $this->msg( 'listfiles_size' )->text(),
-                               'img_user_text' => $this->msg( 'listfiles_user' )->text(),
-                               'img_description' => $this->msg( 'listfiles_description' )->text(),
                        );
+                       if ( is_null( $this->mUserName ) ) {
+                               // Do not show username if filtering by username
+                               $this->mFieldNames['img_user_text'] = $this->msg( 'listfiles_user' )->text();
+                       }
+                       // img_description down here, in order so that its still after the username field.
+                       $this->mFieldNames['img_description'] = $this->msg( 'listfiles_description' )->text();
+
                        if ( !$wgMiserMode && !$this->mShowAll ) {
                                $this->mFieldNames['count'] = $this->msg( 'listfiles_count' )->text();
                        }
index b6b60d4..34e803d 100644 (file)
@@ -76,7 +76,7 @@ class SpecialPrefixindex extends SpecialAllpages {
                );
 
                $showme = '';
-               if ( isset( $par ) ) {
+               if ( $par !== null ) {
                        $showme = $par;
                } elseif ( $prefix != '' ) {
                        $showme = $prefix;
@@ -167,6 +167,7 @@ class SpecialPrefixindex extends SpecialAllpages {
                $fromList = $this->getNamespaceKeyAndText( $namespace, $from );
                $prefixList = $this->getNamespaceKeyAndText( $namespace, $prefix );
                $namespaces = $wgContLang->getNamespaces();
+               $res = null;
 
                if ( !$prefixList || !$fromList ) {
                        $out = $this->msg( 'allpagesbadtitle' )->parseAsBlock();
@@ -261,9 +262,7 @@ class SpecialPrefixindex extends SpecialAllpages {
                                '</td>
                                <td id="mw-prefixindex-nav-form" class="mw-prefixindex-nav">';
 
-                       if ( isset( $res ) && $res && ( $n == $this->maxPerPage ) &&
-                               ( $s = $res->fetchObject() )
-                       ) {
+                       if ( $res && ( $n == $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
                                $query = array(
                                        'from' => $s->page_title,
                                        'prefix' => $prefix,
index 797f588..d3b168b 100644 (file)
@@ -572,12 +572,12 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                // from dropdown
                $listReason = $this->getRequest()->getText( 'wpRevDeleteReasonList', 'other' );
                $comment = $listReason;
-               if ( $comment != 'other' && $this->otherReason != '' ) {
+               if ( $comment === 'other' ) {
+                       $comment = $this->otherReason;
+               } elseif ( $this->otherReason !== '' ) {
                        // Entry from drop down menu + additional comment
                        $comment .= $this->msg( 'colon-separator' )->inContentLanguage()->text()
                                . $this->otherReason;
-               } elseif ( $comment == 'other' ) {
-                       $comment = $this->otherReason;
                }
                # Can the user set this field?
                if ( $bitParams[Revision::DELETED_RESTRICTED] == 1
index 6488810..d980f79 100644 (file)
@@ -64,7 +64,7 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                $opts->validateIntBounds( 'limit', 0, 5000 );
 
                // Give precedence to subpage syntax
-               if ( isset( $par ) ) {
+               if ( $par !== null ) {
                        $opts->setValue( 'target', $par );
                }
 
index 1419bbb..6be186f 100644 (file)
@@ -546,6 +546,9 @@ class ZipDirectoryReader {
         * If there are not enough bytes in the file to satisfy the request, the
         * return value will be truncated. If a request is made for a segment beyond
         * the end of the file, an empty string will be returned.
+        *
+        * @param int $segIndex
+        *
         * @return string
         */
        function getSegment( $segIndex ) {
index bd8c2bf..50f5d7c 100644 (file)
@@ -62,7 +62,7 @@
        "tog-showhiddencats": "Gizli kateqoriyaları göstər",
        "tog-norollbackdiff": "Geri qaytardıqdan sonra, edilmiş dəyişikikləri dəyişikliklər siyahısından sil",
        "tog-useeditwarning": "Qeyd edilməmiş dəyişikliyə sahib bir dəyişiklik səhifəsindən çıxarkən məni xəbərdar et",
-       "tog-prefershttps": "Sessiya aaçarkən hər zaman etibarlı bağlantıdan istifadə et.",
+       "tog-prefershttps": "Sessiya açarkən hər zaman etibarlı bağlantıdan istifadə et.",
        "underline-always": "Həmişə",
        "underline-never": "Heç vaxt",
        "underline-default": "Susmaya görə brouzer",
        "sectioneditnotsupported-text": "Bölüm redaktəsi bu səhifədə dəstəklənmir.",
        "permissionserrors": "İcazə xətası",
        "permissionserrorstext": "Siz, bunu aşağıdakı {{PLURAL:$1|səbəbə|səbəblərə}} görə edə bilməzsiniz:",
-       "permissionserrorstext-withaction": "Aşağıdakı {{PLURAL:$1|səbəbə|səbəblərə}} görə $2 hüququnuz yoxdur:",
+       "permissionserrorstext-withaction": "Aşağıdakı {{PLURAL:$1|səbəbə|səbəblərə}} görə, $2 hüququnuz yoxdur:",
        "recreate-moveddeleted-warn": "'''Diqqət! Siz əvvəllər silinmiş səhifəni bərpa etmək istəyirsiz.'''\n\nBu səhifəni yenidən yaratmağın nə qədər zəruri olduğunu bir daha yoxlayın.\nBu səhifə üçün silmə qeydləri aşağıda göstərilmişdir:",
        "moveddeleted-notice": "Bu səhifə silinmişdir.\nMəlumat üçün aşağıda bu səhifənin tarixçəsindən müvafiq silmə qeydləri göstərilmişdir.",
        "log-fulllog": "Bütöv məlumatı göstər",
        "prefs-emailconfirm-label": "E-poçtun təsdiqlənməsi:",
        "youremail": "E-məktub:",
        "username": "İstifadəçi adı:",
-       "uid": "İstifadəçi ID:",
        "prefs-memberingroups": "Üzvü olduğu {{PLURAL:$1|qrup|qrup}}:",
        "prefs-memberingroups-type": "$1",
        "prefs-registration": "Qeydiyyat vaxtı:",
        "logempty": "Jurnalda uyğun qeyd tapılmadı.",
        "log-title-wildcard": "Bu mətnlə başlayan başlıqları axtar",
        "allpages": "Bütün səhifələr",
-       "alphaindexline": "$1 məqaləsindən $2 məqaləsinə kimi",
        "nextpage": "Sonrakı səhifə ($1)",
        "prevpage": "Əvvəlki səhifə ($1)",
        "allpagesfrom": "Bu hərflə başlayan səhifələri göstər:",
index 2a84873..60eca76 100644 (file)
        "permalink": "Permanenteng kilyawan",
        "print": "Imprintaron",
        "view": "Tanawon",
+       "view-foreign": "Hilngon sa $1",
        "edit": "Liwatón",
+       "edit-local": "Liwaton an lokal na deskripsyon",
        "create": "Muknaon",
+       "create-local": "Idugang an lokal na deskripsyon",
        "editthispage": "Liwata ining pahina",
        "create-this-page": "Muknaon ining pahina",
        "delete": "Puraon",
        "gotaccountlink": "Maglaog",
        "userlogin-resetlink": "Nakalingaw ka sa panlaog mong detalye?",
        "userlogin-resetpassword-link": "Nalingawan mo an saimong pasa-taramon?",
+       "userlogin-helplink2": "Katabangan sa paglalaog",
        "userlogin-loggedin": "Ika nakalaog na tabi bilang si {{GENDER:$1|$1}}.\nGamita an porma sa ibaba sa paglaog bilang ibang paragamit.",
        "userlogin-createanother": "Magmukna nin ibang panindog",
        "createacct-emailrequired": "Estada kan e-surat",
        "suspicious-userlogout": "An hinahagad mong magluwas pinagpundo nin huli ta ini gayod pinagpadara sa paagi nin sarong pasang kilyaw o proksing hilom.",
        "createacct-another-realname-tip": "An totoong pangaran opsyonal.\nKun gustuhon mong itao ini, ini paggagamiton sa pagtatao nin pagkakabistohan kan paragamit para sa saindang mga kaggibohan.",
        "pt-login": "Maglaog",
+       "pt-login-button": "Maglaog",
        "pt-createaccount": "Magmukna nin panindog",
        "pt-userlogout": "Magluwas",
        "php-mail-error-unknown": "Bakong bantog na kasalaan sa PHP mail() function.",
        "resetpass-temp-password": "Temporaryong sekretong panlaog:",
        "resetpass-abort-generic": "Pagliwat kan sikretong panlaog ipinagpauntok kan sarong ekstensyon.",
        "resetpass-expired": "An saimong pasa-taramon nagpalso na. Tabi man pakikaag nin sarong baguhong pasa-taramon tanganing makalaog ka.",
-       "resetpass-expired-soft": "An saimong pasa-taramon nagpalso na, asin kinakaipuhan na baguhan. Tabi man pakipili nin sarong baguhong pasa-taramon ngunyan, o i-klik an kanselaron sa pagbago kaini aro-atyan.",
+       "resetpass-expired-soft": "An saimong pasa-taramon nagpalso na, asin kinakaipuhan na baguhon. Tabi man pakipili nin sarong baguhong pasa-taramon ngunyan, o i-klik an \"{{int:resetpass-submit-cancel}}\" kun baguhon sa aro-atyan.",
        "passwordreset": "Pakibago kan sekretong panlaog",
        "passwordreset-text-one": "Kumpletuhon ining porma sa pagliwat otro kan saimong pasa-taramon.",
        "passwordreset-text-many": "{{PLURAL:$1|Kaagi an saro sa mga kaaganan tanganing makaresibe nin sarong temporaryong pasa-taramon sa paagi kan e-surat.}}",
        "prefs-emailconfirm-label": "Kumpirmasyon sa E-koreo",
        "youremail": "E-surat:",
        "username": "{{GENDER:$1|Pangaran nin paragamit}}:",
-       "uid": "{{GENDER:$1|Paragamit}} ID:",
        "prefs-memberingroups": "{{GENDER:$2|Miyembro}} kan {{PLURAL:$1|grupo|mga grupo}}:",
        "prefs-registration": "Rehistrasyong oras:",
        "yourrealname": "Totoong pangaran:",
        "log-title-wildcard": "Hanapon an mga titulong napopoon sa tekstong ini",
        "showhideselectedlogentries": "Ipahiling/itago an pinagpiling mga entrada sa talaan",
        "allpages": "Gabos na mga pahina",
-       "alphaindexline": "$1 sagkod sa $2",
        "nextpage": "Sunod na pahina ($1)",
        "prevpage": "Nakaaging pahina ($1)",
        "allpagesfrom": "Ipahiling an mga páhina poon sa:",
index c25d47a..8d726e5 100644 (file)
        "october-date": "$1 кастрычніка",
        "november-date": "$1 лістапада",
        "december-date": "$1 сьнежня",
-       "pagecategories": "{{PLURAL:$1|Катэгорыя|Катэгорыі|Катэгорыі}}",
+       "pagecategories": "{{PLURAL:$1|1=Катэгорыя|Катэгорыі}}",
        "category_header": "Старонкі ў катэгорыі «$1»",
        "subcategories": "Падкатэгорыі",
        "category-media-header": "Файлы ў катэгорыі «$1»",
        "imgmultigoto": "Перайсьці на старонку $1",
        "img-lang-default": "(мова па змоўчаньні)",
        "img-lang-info": "Паказаць гэтую выяву наступнай мовай: $1. $2",
+       "img-lang-go": "Паказаць",
        "ascending_abbrev": "узраст.",
        "descending_abbrev": "зьмянш.",
        "table_pager_next": "Наступная старонка",
        "watchlistedit-raw-done": "Ваш сьпіс назіраньня быў абноўлены.",
        "watchlistedit-raw-added": "$1 {{PLURAL:$1|запіс быў дададзены|запісы былі дададзеныя|запісаў былі дададзеныя}}:",
        "watchlistedit-raw-removed": "$1 {{PLURAL:$1|запіс быў выдалены|запісы былі выдаленыя|запісаў былі выдаленыя}}:",
+       "watchlistedit-clear-title": "Чыстка сьпісу назіраньня",
+       "watchlistedit-clear-legend": "Ачысьціць сьпіс назіраньня",
+       "watchlistedit-clear-explain": "Усе старонкі будуць выдаленыя з вашага сьпісу назіраньня",
        "watchlisttools-view": "Паказаць зьмены ў старонках зь сьпісу",
        "watchlisttools-edit": "Праглядзець альбо рэдагаваць сьпіс назіраньня",
        "watchlisttools-raw": "Рэдагаваць як тэкст",
index 8985e7b..74acbce 100644 (file)
        "doubleredirects": "দুইবার করা পুনর্নির্দেশনাগুলি",
        "doubleredirectstext": "এই পাতায় এমন পাতাগুলোর তালিকা আছে, যেগুলো অন্য কোন পুনর্নির্দেশনা পাতায় পুনর্নির্দেশিত হয়েছে। প্রতিটি সারিতে প্রথম ও দ্বিতীয় পুনর্নির্দেশনার জন্য সংযোগ আছে এবং দ্বিতীয় পুনর্নির্দেশনাটির লক্ষ্য সংযোগটিও দেওয়া আছে। এই লক্ষ্য সংযোগটিই সাধারণত \"আসল\" লক্ষ্য পাতা, যেটিতে প্রথম পুনর্নির্দেশনাটি থেকে সংযোগ থাকা উচিত।\n<del>কেটে দেওয়া</del> ভুক্তিগুলো ঠিক করা হয়েছে।",
        "double-redirect-fixed-move": "[[$1]] সরিয়ে নেওয়া হয়েছে।\nএটি এখন [[$2]] এ পুনঃনির্দেশিত হয়েছে।",
-       "double-redirect-fixed-maintenance": "[[$1]] থেকে [[$2]] এর দ্বিপুনঃর্নিদেশ সংশোধন করা হয়েছে।",
+       "double-redirect-fixed-maintenance": "রক্ষণাবেক্ষণ কাজ হিসাবে [[$1]] থেকে [[$2]] এর দ্বিপুনঃর্নিদেশ স্বয়ংক্রিয়ভাবে সংশোধন করা হয়েছে।",
        "double-redirect-fixer": "পুনঃনির্দেশনা মেরামতকারী",
        "brokenredirects": "অকার্যকর পুনর্নির্দেশনাসমূহ",
        "brokenredirectstext": "নিচের পুনর্নির্দেশনাগুলো অস্তিত্বহীন পাতাকে নির্দেশ করছে:",
        "watchlistedit-clear-legend": "নজরতালিকা পরিস্কার",
        "watchlistedit-clear-explain": "সকল শিরোনামসমূহ আপনার নজরতালিকা থেকে সরিয়ে নেয়া হয়েছে।",
        "watchlistedit-clear-titles": "শিরোনামসমূহ:",
+       "watchlistedit-clear-submit": "নজরতালিকা পরিষ্কার করুন (এটি স্থায়ী!)",
        "watchlistedit-clear-done": "আপনার নজরতালিকা পরিষ্কার করা হয়েছে।",
        "watchlistedit-clear-removed": "{{PLURAL:$1|১টি শিরোনাম|$1টি শিরোনাম}} সরিয়ে ফেলা হয়েছে:",
        "watchlistedit-too-many": "এখানে প্রদর্শনের জন্য অনেক পাতা রয়েছে।",
index aa8fbf8..2f288d7 100644 (file)
        "content-failed-to-parse": "Чулацам $2 богӀуш бац $1: $3.",
        "invalid-content-data": "Хилийта йиш йоцу хаамаш",
        "content-not-allowed-here": "Чулацам \"$1\" [[$2]] агӀонгахь хилийта йиш яц",
+       "editpage-notsupportedcontentformat-title": "Чулацаман тайпа ловш яц",
        "content-model-wikitext": "вики-йоза",
        "content-model-text": "цхьалхе йоза",
        "content-model-javascript": "JavaScript",
        "right-move": "АгӀонашан цӀераш хийцар",
        "right-move-subpages": "АгӀонашан цӀераш хийцар цера бухара агӀонашцан",
        "right-move-rootuserpages": "декъашхочун ораман агӀонийн цӀераш хийцар",
+       "right-move-categorypages": "Категорийн агӀонийн цӀераш хийцар",
        "right-movefile": "Файлийн цӀе хийцар",
        "right-suppressredirect": "агӀона цӀе хуьйцуш ширчу цӀарах ма кхолла дӀасахьажаяр",
        "right-upload": "Файлаш чуйаьхар",
        "action-createpage": "агӀонаш кхолла",
        "action-createtalk": "дийцаре агӀонаш кхоллар",
        "action-createaccount": "хӀара декъашхочун дӀаяздар кхоллар",
+       "action-history": "хӀокху агӀона исторега хьажар",
        "action-minoredit": "жима нисдар сана билгало",
        "action-move": "хӀокху агӀон цӀе хийца",
        "action-move-subpages": "хӀокху агӀона цӀе хийцар цуна массо бухара агӀонийн а",
        "action-move-rootuserpages": "декъашхочун ораман агӀонийн цӀераш хийцар",
+       "action-move-categorypages": "категорийн агӀонийн цӀераш хийцар",
        "action-movefile": "хӀокху файлан цӀе хийца",
        "action-upload": "чуяккха хӀара файл",
        "action-reupload": "йолуш йолу файлан тӀехула дӀаязъяр",
        "uploadnologintext": "Серверан чу файлаш яха хьо $1.",
        "uploaderror": "Файл чуяккхаран гӀалат",
        "upload-recreate-warning": "'''Тегам бе: иштта цӀе йолу файл дӀаяьккхина я цӀе хийцина.'''\n\nЛахахьа гойтуш ю хӀокху агӀона тептар:",
-       "uploadtext": "Лелайе хӀара агӀо сервер чу файлаш йохуш.\nХьалхо чуйаьхна файлаш хьажа,  [[Special:FileList|кхузахь]]. Кхин чуйаьхна файлаш дӀаязло [[Special:Log/upload|чуяхаран тептар чохь]], дӀаяьхна файлаш каро йиш ю [[Special:Log/delete|кхузахь]].\n\nФайл агӀона чуйилла лелабе лахара могӀанаш:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' файла Файлан юьззина верси чуйиллуш;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|цунахь лаьцна хаам]]</nowiki></code>''' 200 пиксель барамехь файл чуйилар бухахь цунахь лаьцна могӀа а болуш;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' файлан тӀе хьажораг хӀотайо файл агӀонгахь ца гуш.",
+       "uploadtext": "Лелайе хӀара агӀо сервер чу файлаш йохуш.\nХьалхо чуяьхна файлаш хьажа,  [[Special:FileList|кхузахь]]. Кхин чуяьхна файлаш дӀаязло [[Special:Log/upload|чуяхаран тептар чохь]], дӀаяьхна файлаш каро йиш ю [[Special:Log/delete|кхузахь]].\n\nФайл агӀона чуйилла лелабе лахара могӀанаш:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' файла Файлан юьззина верси чуйиллуш;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|цунахь лаьцна хаам]]</nowiki></code>''' 200 пиксель барамехь файл чуйилар бухахь цунахь лаьцна могӀа а болуш;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' файлан тӀе хьажораг хӀотайо файл агӀонгахь ца гуш.",
        "upload-permitted": "Магийна файлийн тайпанаш: $1.",
        "upload-preferred": "Магийна файлийн тайпанаш: $1.",
        "upload-prohibited": "Магийна доцу файлийн тайпанаш: $1.",
        "upload-warning-msg": "Чуйоккхуш [$2] гӀалат даьлла. И нисдан юхагӀо [[Special:Upload/stash/$1|upload form]] чу.",
        "upload-proto-error": "Нийса йоцу протокол",
        "upload-file-error": "Чоьхьара гӀалат",
+       "upload-misc-error": "Чуяккхаран цадевза гӀалат",
        "upload-http-error": "Даьлла гӀалат HTTP: $1",
        "backend-fail-stream": "ДӀаяккха цатарло файл «$1».",
        "backend-fail-backup": "Таро яц файлан $1 тӀаьхьалонан копиян.",
        "uploadstash-errclear": "Файлаш дӀацӀанъян цаелира.",
        "uploadstash-refresh": "Карлабаккха файлийн могӀам",
        "img-auth-accessdenied": "ТӀекхача магийна дац",
+       "img-auth-streaming": "Тоба дӀаелар «$1».",
        "http-invalid-url": "ГӀалате URL: $1",
        "http-read-error": "Ешаран гӀалат HTTP.",
        "http-timed-out": "Хьежаран хан чекхели HTTP-жоп дехаран.",
+       "http-curl-error": "URLан гӀалат: $1",
        "upload-curl-error28": "Чуйоккху хан чеккхелла",
        "license": "Бакъойалар:",
        "license-header": "Бакъойалар",
        "statistics-articles": "Яззамаш",
        "statistics-pages": "АгӀонаш",
        "statistics-pages-desc": "Массо вики агlонаш, дийцаре агlонашцани, дlасахьаждарш а кхин дерш.",
-       "statistics-files": "Чуйаьхна файлаш",
+       "statistics-files": "Чуяьхна файлаш",
        "statistics-edits": "Нисдаран дукхалла {{grammar:genitive|{{SITENAME}}}} дlа йолайаларца",
        "statistics-edits-average": "Юккъера агӀонан нисдаран терахь",
        "statistics-views-total": "Массо хьажарш",
        "file-info-png-repeat": "локху $1 {{PLURAL:$1|за}}",
        "file-info-png-frames": "$1 {{PLURAL:$1|кадр|кадраш}}",
        "newimages": "Керлачу файлийн галерей",
-       "newimages-summary": "ХӀокху белхан агӀона чохь гойтуш ю дукха хан йоццуш чуйаьхна файлаш.",
+       "newimages-summary": "ХӀокху белхан агӀона чохь гойтуш ю дукха хан йоццуш чуяьхна файлаш.",
        "newimages-legend": "Литтар",
+       "newimages-showbots": "Гайта боташ чуяьхна файлаш",
        "noimages": "Суьрташ дац.",
        "ilsubmit": "Лаха",
        "bydate": "терахьашца",
index 192a2e1..c2e6374 100644 (file)
@@ -37,7 +37,7 @@
        "tog-enotifusertalkpages": "ئەگەر پەڕەی لێدوانەکەم گۆڕدرا ئیمەیلم بۆ بنێرە",
        "tog-enotifminoredits": "بۆ گۆڕانکارییە بچووکەکانی پەڕەکان و پەڕگەکانیش ئیمەیلم بۆ بنێرە",
        "tog-enotifrevealaddr": "ئەدرەسی ئیمەیلەکەم لە ئیمەیلە ئاگاداریدەرەکان دا نیشان بدە",
-       "tog-shownumberswatching": "ژمارەی بەکارھێنەرە چاودێڕەکان نیشان بدە",
+       "tog-shownumberswatching": "ژمارەی بەکارھێنەرە چاودێرەکان نیشان بدە",
        "tog-oldsig": "واژووی ئێستا:",
        "tog-fancysig": "وەکوو ویکیدەق واژووەکە لەبەر چاو بگرە (بێ بەستەرێکی خۆگەڕ)",
        "tog-uselivepreview": "لە پێشبینینی زیندوو کەڵک وەربگرە (تاقیکاری‌)",
        "permissionserrorstext-withaction": "دەسەڵاتت نییە بۆ $2، لەبەر ئەم {{PLURAL:$1|ھۆکارە|ھۆکارانە}}ی خوارەوە:",
        "recreate-moveddeleted-warn": "'''ھۆشیار بە: خەریکی پەڕەیەک دروست‌ دەکەیتەوە کە لە پێشدا سڕاوەتەوە.'''\n\nئەمە لەبەر چاو بگرە کە دەستکاریکردنی ئەم پەڕەیە بەقازانجە یان نا.\nلۆگی سڕینەوە و گواستنەوەی ئەم پەڕەیە بۆ سانایی لێرەدا ھاتووە:",
        "moveddeleted-notice": "ئەم پەڕەیە سڕاوەتەوە.\nلۆگی سڕینەوە و گواستنەوە بۆ پەڕەکە لە ژێرەوە دابین کراوە.",
-       "log-fulllog": "دیتنی لۆگی تەواو",
+       "log-fulllog": "لۆگی تەواو ببینە",
        "edit-hook-aborted": "دەستکاری لە لایەن قولاپەوە ھەڵوەشێنرایەوە.\nھۆکارەکەی لەبەر دەست نییە.",
        "edit-gone-missing": "توانای نوێ‌کردنەوەی لاپەڕەکە نیە.<br />\nلەوە دەچی سڕدرابێتەوه.‌",
        "edit-conflict": "کێشەی دەستکاری.",
        "right-import": "ھاوردنی پەڕەکان لە ویکییەکانی تر",
        "right-importupload": "ھاوردنی پەڕەکان بە بارکردنی پەڕگە",
        "right-patrol": "نیشانکردنی دەستکاریەکانی کەسانی تر وەک پاس دراو",
-       "right-autopatrol": "Ù\86Û\8cشاÙ\86کردÙ\86Û\8c Ø®Û\86Ú¯Û\95Ú\95Û\8c Ø¯Û\95ستکارÛ\8cÛ\8cÛ\95کاÙ\86Û\8c Ø®Û\86Û\8c Ù\88Û\95Ú© Ù¾Ø§Ø³ Ø¯Ø±Ø§Ù\88",
+       "right-autopatrol": "پاسداÙ\86Û\8c Ø®Û\86Ú¯Û\95Ú\95Û\8c Ø¯Û\95ستکارÛ\8cÛ\8cÛ\95کاÙ\86Û\8c Ø®Û\86Û\8c",
        "right-patrolmarks": "دیتنی نیشانەکانی پاسدان لە دوایین گۆڕانکارییەکاندا",
        "right-unwatchedpages": "دیتنی پێرستێک لە پەڕە چاودێری نەکراوەکان",
        "right-mergehistory": "کردنەیەکی میژووی پەڕەکان",
        "minoreditletter": "ب",
        "newpageletter": "ن",
        "boteditletter": "بۆ",
-       "number_of_watching_users_pageview": "[$1 چاودێر لەسەر {{PLURAL:$1|بەکارھێنەر}}]",
+       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|بەکارھێنەر}}ی چاودێر]",
        "rc_categories": "بەرتەسک‌کردنەوە بە هاوپۆلەکان (به «|» جیای بکەوە‌)",
        "rc_categories_any": "هەرکام",
        "rc-change-size-new": "$1 {{PLURAL:$1|بایت}} پاش گۆڕانکاری",
index f3eb3bc..d81c240 100644 (file)
        "prefs-emailconfirm-label": "E-mail тасдыкъланмасы:",
        "youremail": "E-mail адресинъиз:",
        "username": "Къулланыджы ады:",
-       "uid": "Къайд номери:",
        "prefs-memberingroups": "Азасы олгъан {{PLURAL:$1|1=группа|группалар}}:",
        "prefs-registration": "Къайд тарихы:",
        "yourrealname": "Керчек адынъыз:",
        "recentchanges-label-minor": "Бу, кичик бир денъиштирме",
        "recentchanges-label-bot": "Бу бир ботнынъ япкъан денъиштирмеси",
        "recentchanges-label-unpatrolled": "Бу денъиштирме аля даа тешкерильмеген",
-       "recentchanges-legend-newpage": "$1 - янъы саифе",
+       "recentchanges-legend-newpage": "([[Special:NewPages|янъы саифелер джедвелине]] де бакъынъыз)",
        "rcnotefrom": "'''$2''' тарихындан итибарен япылгъан денъиштирмелер ашагъыдадыр (энъ чокъ '''$1''' дане саифе косьтериле).",
        "rclistfrom": "$3 $2 тарихындан берли япылгъан денъиштирмелерни косьтер",
        "rcshowhideminor": "кичик денъиштирмелерни $1",
+       "rcshowhideminor-show": "косьтер",
+       "rcshowhideminor-hide": "гизле",
        "rcshowhidebots": "ботларны $1",
-       "rcshowhideliu": "къайдлы къулланыджыларны $1",
+       "rcshowhidebots-show": "косьтер",
+       "rcshowhidebots-hide": "гизле",
+       "rcshowhideliu": "Къайдлы къулланыджыларны $1",
+       "rcshowhideliu-show": "косьтер",
+       "rcshowhideliu-hide": "гизле",
        "rcshowhideanons": "аноним къулланыджыларны $1",
+       "rcshowhideanons-show": "косьтер",
+       "rcshowhideanons-hide": "гизле",
        "rcshowhidepatr": "козетильген денъиштирмелерни $1",
+       "rcshowhidepatr-show": "косьтер",
+       "rcshowhidepatr-hide": "гизле",
        "rcshowhidemine": "меним япкъан денъиштирмелеримни $1",
+       "rcshowhidemine-show": "косьтер",
+       "rcshowhidemine-hide": "гизле",
        "rclinks": "Сонъки $2 куньде япылгъан сонъки $1 денъиштирмени косьтер;<br /> $3",
        "diff": "фаркъ",
        "hist": "кечмиш",
        "rc_categories": "Тек категориялардан («|» иле айырыла)",
        "rc_categories_any": "Эр анги",
        "newsectionsummary": "/* $1 */ янъы болюк",
-       "rc-enhanced-expand": "Тафсилятыны косьтер (JavaScript керек)",
+       "rc-enhanced-expand": "Тафсилятыны косьтер",
        "rc-enhanced-hide": "Тафсилятыны гизле",
        "recentchangeslinked": "Багълы денъиштирмелер",
        "recentchangeslinked-feed": "Багълы денъиштирмелер",
        "logempty": "Журналда бир кельген малюмат ёкъ.",
        "log-title-wildcard": "Бу ишаретлерден башлангъан серлеваларны къыдыр",
        "allpages": "Бутюн саифелер",
-       "alphaindexline": "$1 саифесинден $2 саифесинедже",
        "nextpage": "Сонъраки саифе ($1)",
        "prevpage": "Эвельки саифе ($1)",
        "allpagesfrom": "Джедвельге чекмеге башланыладжакъ арифлер:",
index 1bc4ccf..6b20500 100644 (file)
        "prefs-emailconfirm-label": "E-mail tasdıqlanması:",
        "youremail": "E-mail adresiñiz:",
        "username": "Qullanıcı adı:",
-       "uid": "Qayd nomeri:",
        "prefs-memberingroups": "Azası olğan {{PLURAL:$1|gruppa|gruppalar}}:",
        "prefs-registration": "Qayd tarihı:",
        "yourrealname": "Kerçek adıñız:",
        "recentchanges-label-minor": "Bu, kiçik bir deñiştirme",
        "recentchanges-label-bot": "Bu bir botnıñ yapqan deñiştirmesi",
        "recentchanges-label-unpatrolled": "Bu deñiştirme alâ daa teşkerilmegen",
-       "recentchanges-legend-newpage": "$1 - yañı saife",
+       "recentchanges-legend-newpage": "([[Special:NewPages|yañı saifeler cedveline]] de baqıñız)",
        "rcnotefrom": "'''$2''' tarihından itibaren yapılğan deñiştirmeler aşağıdadır (eñ çоq '''$1''' dane saife kösterile).",
        "rclistfrom": "$3 $2 tarihından berli yapılğan deñiştirmelerni köster",
        "rcshowhideminor": "kiçik deñiştirmelerni $1",
+       "rcshowhideminor-show": "köster",
+       "rcshowhideminor-hide": "gizle",
        "rcshowhidebots": "botlarnı $1",
-       "rcshowhideliu": "qaydlı qullanıcılarnı $1",
+       "rcshowhidebots-show": "köster",
+       "rcshowhidebots-hide": "gizle",
+       "rcshowhideliu": "Qaydlı qullanıcılarnı $1",
+       "rcshowhideliu-show": "köster",
+       "rcshowhideliu-hide": "gizle",
        "rcshowhideanons": "anonim qullanıcılarnı $1",
+       "rcshowhideanons-show": "köster",
+       "rcshowhideanons-hide": "gizle",
        "rcshowhidepatr": "közetilgen deñiştirmelerni $1",
+       "rcshowhidepatr-show": "köster",
+       "rcshowhidepatr-hide": "gizle",
        "rcshowhidemine": "menim yapqan deñiştirmelerimni $1",
+       "rcshowhidemine-show": "köster",
+       "rcshowhidemine-hide": "gizle",
        "rclinks": "Soñki $2 künde yapılğan soñki $1 deñiştirmeni köster;<br /> $3",
        "diff": "farq",
        "hist": "keçmiş",
        "rc_categories": "Tek kategoriyalardan (\"|\" ile ayırıla)",
        "rc_categories_any": "Er angi",
        "newsectionsummary": "/* $1 */ yañı bölük",
-       "rc-enhanced-expand": "Tafsilâtını köster (JavaScript kerek)",
+       "rc-enhanced-expand": "Tafsilâtını köster",
        "rc-enhanced-hide": "Tafsilâtını gizle",
        "recentchangeslinked": "Bağlı deñiştirmeler",
        "recentchangeslinked-feed": "Bağlı deñiştirmeler",
        "logempty": "Jurnalda bir kelgen malümat yoq.",
        "log-title-wildcard": "Bu işaretlerden başlanğan serlevalarnı qıdır",
        "allpages": "Bütün saifeler",
-       "alphaindexline": "$1 saifesinden $2 saifesinece",
        "nextpage": "Soñraki saife ($1)",
        "prevpage": "Evelki saife ($1)",
        "allpagesfrom": "Cedvelge çekmege başlanılacaq arifler:",
index 07d199b..def1605 100644 (file)
        "content-model-text": "čistý text",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
-       "expensive-parserfunction-warning": "Varování: Tato stránka obsahuje příliš mnoho volání výkonnostně náročných funkcí syntaktického analyzátoru.\n\nPovolený limit je $2, v současné chvíli však {{PLURAL:$1|zde jedno volání je|zde jsou $2 volání|zde je $2 volání}}.",
+       "expensive-parserfunction-warning": "'''Varování:''' Tato stránka obsahuje příliš mnoho volání výkonnostně náročných funkcí syntaktického analyzátoru.\n\nPovolený limit je $2, v současné chvíli však {{PLURAL:$1|zde jedno volání je|zde jsou $1 volání|zde je $1 volání}}.",
        "expensive-parserfunction-category": "Stránky s příliš mnoho voláními náročných funkcí syntaktického analyzátoru",
        "post-expand-template-inclusion-warning": "Varování: Objem vkládaných šablon je příliš velký.\nNěkteré šablony nebudou vloženy.",
        "post-expand-template-inclusion-category": "Stránky překračující povolenou velikost vložených šablon",
        "ipb-confirmhideuser": "Chystáte se zablokovat uživatele se zapnutou volbou „skrýt uživatelské jméno“. To způsobí, že jméno uživatele zmizí ze všech seznamů a protokolovacích záznamů. Jste si {{gender:|jist|jista|jisti}}, že to chcete udělat?",
        "ipb-confirmaction": "Pokud jste si {{GENDER:|jist|jista|jisti}}, že to chcete udělat, zaškrtněte pole „{{int:ipb-confirm}}“ dole.",
        "ipb-edit-dropdown": "Editace seznamu důvodů zablokování",
-       "ipb-unblock-addr": "Odblokovat uživatele nebo IP $1",
+       "ipb-unblock-addr": "Odblokovat {{GENDER:$1|uživatele|uživatelku|uživatele nebo IP adresu}} $1",
        "ipb-unblock": "Odblokovat uživatele nebo IP adresu",
        "ipb-blocklist": "Zobrazit probíhající bloky",
        "ipb-blocklist-contribs": "Příspěvky uživatele $1",
        "ipblocklist-empty": "Seznam probíhajících bloků je prázdný.",
        "ipblocklist-no-results": "Požadovaná IP adresa nebo uživatelské jméno není blokováno.",
        "blocklink": "zablokovat",
-       "unblocklink": "uvolnit",
+       "unblocklink": "odblokovat",
        "change-blocklink": "změnit blok",
        "contribslink": "příspěvky",
        "emaillink": "poslat e-mail",
        "confirmemail": "Potvrzení e-mailové adresy",
        "confirmemail_noemail": "Ve svém [[Special:Preferences|uživatelském nastavení]] jste nezadali platnou e-mailovou adresu.",
        "confirmemail_text": "Tato wiki vyžaduje, abyste před využíváním některých funkcí potvrdili svoji e-mailovou adresu. Kliknutím na tlačítko níže odešlete potvrzovací e-mail na vámi uvedenou adresu. Tento e-mail obsahuje odkaz a potvrzovací kód; zobrazením odkazované stránky ve svém internetovém prohlížeči potvrdíte, že zadaná adresa je platná.",
-       "confirmemail_pending": "Potvrzovací kód vám byl již zaslán na váš e-mail.\nPokud jste si účet založili před chvílí, zkuste na doručení kódu několik minut počkat, než požádáte o nový.",
+       "confirmemail_pending": "Potvrzovací kód vám byl na váš e-mail již zaslán.\nPokud jste si účet založili před chvílí, zkuste na doručení kódu několik minut počkat, než požádáte o nový.",
        "confirmemail_send": "Odeslat potvrzovací kód",
        "confirmemail_sent": "Potvrzovací e-mail byl odeslán",
        "confirmemail_oncreate": "Na vaši e-mailovou adresu byl zaslán potvrzovací kód.\nTento kód není zapotřebí k přihlášení, ale budete ho potřebovat k aktivaci některých funkcí založených na využití e-mailu.",
        "watchlistedit-normal-legend": "Odstranění položek ze seznamu sledovaných stránek",
        "watchlistedit-normal-explain": "Položky vašeho seznamu sledovaných stránek jsou zobrazeny níže.\nStránku můžete ze seznamu odstranit tak, že zaškrtnete její políčko a kliknete na tlačítko „{{int:Watchlistedit-normal-submit}}“.\nTaké můžete [[Special:EditWatchlist/raw|editovat seznam v textové podobě]].",
        "watchlistedit-normal-submit": "Odstranit položky",
-       "watchlistedit-normal-done": "{{PLURAL:$1|Byla odstraněna 1 položka|Byly odstraněny $1 položky|Bylo odstraněno $1 položek}} z Vašeho seznamu sledovaných stránek:",
+       "watchlistedit-normal-done": "{{PLURAL:$1|Byla odstraněna jedna položka|Byly odstraněny $1 položky|Bylo odstraněno $1 položek}} z Vašeho seznamu sledovaných stránek:",
        "watchlistedit-raw-title": "Textový režim editace seznamu",
        "watchlistedit-raw-legend": "Editace textového souboru sledovaných stránek",
        "watchlistedit-raw-explain": "Položky na vašem seznamu sledovaných stránek jsou zobrazeny níže. Můžete je přidávat, odstraňovat či měnit v zobrazeném seznamu – jedna řádka je jedna položka.\nPro uložení změn stiskněte tlačítko „{{int:Watchlistedit-raw-submit}}“.\nSeznam editovaných stránek můžete také [[Special:EditWatchlist|editovat ve standardním editoru]].",
        "watchlistedit-raw-titles": "Položky:",
        "watchlistedit-raw-submit": "Aktualizovat seznam",
        "watchlistedit-raw-done": "Seznam vašich sledovaných stránek byl aktualizován.",
-       "watchlistedit-raw-added": "{{PLURAL:$1|Byla přidána 1 položka|Byly přidány $1 položky|Bylo přidáno $1 položek}}:",
+       "watchlistedit-raw-added": "{{PLURAL:$1|Byla přidána jedna položka|Byly přidány $1 položky|Bylo přidáno $1 položek}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Byla odstraněna položka|Byly odstraněny $1 položky|Bylo odstraněno $1 položek}}:",
        "watchlistedit-clear-title": "Vyprázdnění seznamu sledovaných stránek",
        "watchlistedit-clear-legend": "Vyprázdnit seznam sledovaných stránek",
        "watchlistedit-clear-titles": "Názvy:",
        "watchlistedit-clear-submit": "Vyprázdnit seznam sledovaných stránek (natrvalo!)",
        "watchlistedit-clear-done": "Váš seznam sledovaných stránek byl vyprázdněn.",
-       "watchlistedit-clear-removed": "{{PLURAL:$1|Byl odstraněn 1 název|Byly odstraněny $1 názvy|Bylo odstraněno $1 názvů}}:",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Byl odstraněn jeden název|Byly odstraněny $1 názvy|Bylo odstraněno $1 názvů}}:",
        "watchlistedit-too-many": "Seznam obsahuje příliš mnoho stránek, než aby se zde daly zobrazit.",
        "watchlisttools-clear": "Vyprázdnit seznam sledovaných stránek",
        "watchlisttools-view": "Zobrazit změny sledovaných stránek",
        "version-poweredby-others": "další",
        "version-poweredby-translators": "překladatelé na translatewiki.net",
        "version-credits-summary": "Následujícím lidem bychom rádi poděkovali za jejich příspěvky [[Special:Version|MediaWiki]].",
-       "version-license-info": "MediaWiki je svobodný software; můžete jej šířit nebo modifikovat podle podmínek GNU General Public License, vydávané Free Software Foundation; buď verze 2 této licence anebo (podle vašeho uvážení) kterékoli pozdější verze.\n\nMediaWiki je distribuována v naději, že bude užitečná, avšak BEZ JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO URČITÝ ÚČEL. Podrobnosti se dočtete v textu GNU General Public License.\n\n[{{SERVER}}{{SCRIPTPATH}}/COPYING Kopii GNU General Public License] jste měli obdržet spolu s tímto programem, pokud ne, napište na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA nebo [//www.gnu.org/licenses/old-licenses/gpl-2.0.html si ji přečtěte online].",
+       "version-license-info": "MediaWiki je svobodný software; můžete jej šířit nebo modifikovat podle podmínek GNU General Public License, vydávané Free Software Foundation; buď verze 2 této licence, anebo (podle vašeho uvážení) kterékoli pozdější verze.\n\nMediaWiki je distribuována v naději, že bude užitečná, avšak BEZ JAKÉKOLI ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI PRO URČITÝ ÚČEL. Podrobnosti se dočtete v textu GNU General Public License.\n\n[{{SERVER}}{{SCRIPTPATH}}/COPYING Kopii GNU General Public License] jste měli obdržet spolu s tímto programem, pokud ne, napište na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA nebo [//www.gnu.org/licenses/old-licenses/gpl-2.0.html si ji přečtěte online].",
        "version-software": "Nainstalovaný software",
        "version-software-product": "Název",
        "version-software-version": "Verze",
        "dberr-usegoogle": "Mezitím můžete zkusit hledat pomocí Google.",
        "dberr-outofdate": "Uvědomte si, že jejich vyhledávací index našeho obsahu může být zastaralý.",
        "dberr-cachederror": "Následující stránka je kopie z cache a nemusí být aktuální.",
-       "htmlform-invalid-input": "Některé vámi zadané údaje jsou chybné",
+       "htmlform-invalid-input": "Některé vámi zadané údaje jsou chybné.",
        "htmlform-select-badoption": "Vámi uvedená hodnota není platná možnost.",
        "htmlform-int-invalid": "Uvedená hodnota není celé číslo.",
        "htmlform-float-invalid": "Uvedená hodnota není číslo.",
-       "htmlform-int-toolow": "Vámi zadaná hodnota je menší než dovolené minimum $1",
-       "htmlform-int-toohigh": "Vámi zadaná hodnota je větší než dovolené maximum $1",
-       "htmlform-required": "Tato položka je povinná",
+       "htmlform-int-toolow": "Vámi zadaná hodnota je menší než dovolené minimum $1.",
+       "htmlform-int-toohigh": "Vámi zadaná hodnota je větší než dovolené maximum $1.",
+       "htmlform-required": "Tato položka je povinná.",
        "htmlform-submit": "Odeslat",
        "htmlform-reset": "Vrátit změny",
        "htmlform-selectorother-other": "Jiná hodnota",
        "logentry-delete-delete": "$1 {{GENDER:$2|smazal|smazala}} stránku $3",
        "logentry-delete-restore": "$1 {{GENDER:$2|obnovil|obnovila}} stránku $3",
        "logentry-delete-event": "$1 {{GENDER:$2|změnil|změnila}} viditelnost {{PLURAL:$5|protokolovacího záznamu|$5 protokolovacích záznamů}} ke stránce $3: $4",
-       "logentry-delete-revision": "$1 {{GENDER:$2|změnil|změnila}} viditelnost {{PLURAL:$5|revize|$5 revizí}} na stránce $3: $4",
+       "logentry-delete-revision": "$1 {{GENDER:$2|změnil|změnila}} viditelnost {{PLURAL:$5|revize|$5 revizí}} stránky $3: $4",
        "logentry-delete-event-legacy": "$1 {{GENDER:$2|změnil|změnila}} viditelnost protokolovacích záznamů ke stránce $3",
-       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|změnil|změnila}} viditelnost revizí na stránce $3",
+       "logentry-delete-revision-legacy": "$1 {{GENDER:$2|změnil|změnila}} viditelnost revizí stránky $3",
        "logentry-suppress-delete": "$1 {{GENDER:$2|utajil|utajila}} stránku $3",
        "logentry-suppress-event": "$1 utajeně {{GENDER:$2|změnil|změnila}} viditelnost {{PLURAL:$5|protokolovacího záznamu|$5 protokolovacích záznamů}} ke stránce $3: $4",
-       "logentry-suppress-revision": "$1 utajeně {{GENDER:$2|změnil|změnila}} viditelnost {{PLURAL:$5|revize|$5 revizí}} na stránce $3: $4",
+       "logentry-suppress-revision": "$1 utajeně {{GENDER:$2|změnil|změnila}} viditelnost {{PLURAL:$5|revize|$5 revizí}} stránky $3: $4",
        "logentry-suppress-event-legacy": "$1 utajeně {{GENDER:$2|změnil|změnila}} viditelnost protokolovacích záznamů ke stránce $3",
-       "logentry-suppress-revision-legacy": "$1 utajeně {{GENDER:$2|změnil|změnila}} viditelnost revizí na stránce $3",
+       "logentry-suppress-revision-legacy": "$1 utajeně {{GENDER:$2|změnil|změnila}} viditelnost revizí stránky $3",
        "revdelete-content-hid": "skryt obsah",
        "revdelete-summary-hid": "skryto shrnutí editace",
        "revdelete-uname-hid": "skryto uživatelské jméno",
        "feedback-error1": "Chyba: Nerozpoznaný výsledek z API",
        "feedback-error2": "Chyba: Editace se nezdařila",
        "feedback-error3": "Chyba: API nevrátilo žádnou odpověď",
-       "feedback-thanks": "Děkujeme! Váš komentář byl přidat na stránku „[$2 $1]“.",
+       "feedback-thanks": "Děkujeme! Váš komentář byl přidán na stránku „[$2 $1]“.",
        "feedback-close": "Hotovo",
        "feedback-bugcheck": "Skvělé! Jen zkontrolujte, zda se nejedná o jednu z [$1 už známých chyb].",
        "feedback-bugnew": "Zkontroloval(a) jsem to. Chci ohlásit novou chybu.",
        "api-error-badaccess-groups": "Nemáte povoleno nahrávat soubory na tuto wiki.",
        "api-error-badtoken": "Vnitřní chyba: špatný token.",
        "api-error-copyuploaddisabled": "Načítání z URL je na tomto severu zakázáno.",
-       "api-error-duplicate": "Na této wiki již {{PLURAL:$1|existuje [$2 jiný soubor]|existují [$2 jiné soubory]}} se shodným obsahem",
+       "api-error-duplicate": "Na této wiki již {{PLURAL:$1|existuje [$2 jiný soubor]|existují [$2 jiné soubory]}} se shodným obsahem.",
        "api-error-duplicate-archive": "[$2 {{PLURAL:$1|Soubor|Soubory}}] se stejným obsahem již zde dříve {{PLURAL:$1|byl|byly}}, ale {{PLURAL:$1|byl smazán|byly smazány}}.",
-       "api-error-duplicate-archive-popup-title": "Duplicitní {{PLURAL:$1|soubor, který byl|soubory, které byly}} smazány",
-       "api-error-duplicate-popup-title": "Duplicitní {{PLURAL:$1|soubor|soubory}}",
+       "api-error-duplicate-archive-popup-title": "Duplicitní {{PLURAL:$1|soubor, který byl smazán|soubory, které byly smazány}}.",
+       "api-error-duplicate-popup-title": "Duplicitní {{PLURAL:$1|soubor|soubory}}.",
        "api-error-empty-file": "Načtený soubor je prázdný.",
        "api-error-emptypage": "Zakládání prázdných stránek není dovoleno.",
        "api-error-fetchfileerror": "Vnitřní chyba: došlo k chybě při stahování souboru.",
        "api-error-publishfailed": "Vnitřní chyba: Serveru se nepodařilo zveřejnit dočasný soubor.",
        "api-error-stasherror": "Při načítání souboru do skrýše došlo k chybě.",
        "api-error-timeout": "Server neodpověděl v očekávaném čase.",
-       "api-error-unclassified": "Došlo k neznámé chybě",
-       "api-error-unknown-code": "Neznámá chyba: „$1“",
+       "api-error-unclassified": "Došlo k neznámé chybě.",
+       "api-error-unknown-code": "Neznámá chyba: „$1“.",
        "api-error-unknown-error": "Vnitřní chyba: došlo k chybě při pokusu o načtení souboru.",
        "api-error-unknown-warning": "Neznámé varování: $1",
        "api-error-unknownerror": "Neznámá chyba: „$1“.",
index 4a2009b..4a814ec 100644 (file)
        "searcharticle": "Seite",
        "history": "Versionen",
        "history_short": "Versionsgeschichte",
-       "updatedmarker": "Änderung seit deinem letzten Besuch",
+       "updatedmarker": "geändert seit deinem letzten Besuch",
        "printableversion": "Druckversion",
        "permalink": "Permanenter Link",
        "print": "Drucken",
        "databaseerror-query": "Abfrage: $1",
        "databaseerror-function": "Funktion: $1",
        "databaseerror-error": "Fehler: $1",
-       "laggedslavemode": "'''Achtung:''' Die angezeigte Seite könnte unter Umständen nicht die letzten Bearbeitungen enthalten.",
+       "laggedslavemode": "<strong>Achtung:</strong> Die angezeigte Seite könnte unter Umständen nicht die letzten Bearbeitungen enthalten.",
        "readonly": "Datenbank gesperrt",
        "enterlockreason": "Bitte gib einen Grund ein, warum die Datenbank gesperrt werden soll und eine Abschätzung über die Dauer der Sperrung",
        "readonlytext": "Die Datenbank ist vorübergehend für Neueinträge und Änderungen gesperrt. Bitte versuche es später noch einmal.\n\nGrund der Sperrung: $1",
        "myprivateinfoprotected": "Du hast keine Berechtigung, deine privaten Informationen zu bearbeiten.",
        "mypreferencesprotected": "Du hast keine Berechtigung, deine Einstellungen zu bearbeiten.",
        "ns-specialprotected": "Spezialseiten können nicht bearbeitet werden.",
-       "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung ''„$2“'' eingerichtet.",
+       "titleprotected": "Eine Seite mit diesem Namen kann nicht angelegt werden.\nDie Sperre wurde durch [[User:$1|$1]] mit der Begründung „<em>$2</em>“ eingerichtet.",
        "filereadonlyerror": "Die Datei „$1“ kann nicht verändert werden, da auf das Dateirepositorium „$2“ nur Lesezugriff möglich ist.\n\nDer Administrator, der den Schreibzugriff sperrte, gab folgenden Grund an: „$3“.",
        "invalidtitle-knownnamespace": "Ungültiger Titel mit Namensraum „$2“ und Text „$3“",
        "invalidtitle-unknownnamespace": "Ungültiger Titel mit unbekannter Namensraumnummer $1 und Text „$2“",
        "exception-nologin": "Nicht angemeldet",
        "exception-nologin-text": "Du musst dich [[Special:Userlogin|anmelden]], um auf diese Seite oder Aktion zugreifen zu können.",
        "exception-nologin-text-manual": "Du musst dich $1, um auf diese Seite oder Aktion zugreifen zu können.",
-       "virus-badscanner": "Fehlerhafte Konfiguration: unbekannter Virenscanner: ''$1''",
+       "virus-badscanner": "Fehlerhafte Konfiguration: unbekannter Virenscanner: <em>$1</em>",
        "virus-scanfailed": "Scan fehlgeschlagen (code $1)",
        "virus-unknownscanner": "Unbekannter Virenscanner:",
-       "logouttext": "'''Du bist nun abgemeldet.'''\n\nBeachte, dass einige Seiten noch anzeigen können, dass du angemeldet bist, solange du nicht deinen Browsercache geleert hast.",
+       "logouttext": "<strong>Du bist nun abgemeldet.</strong>\n\nBeachte, dass einige Seiten noch anzeigen können, dass du angemeldet bist, solange du nicht deinen Browsercache geleert hast.",
        "welcomeuser": "Willkommen, $1!",
        "welcomecreation-msg": "Dein Benutzerkonto wurde erstellt.\nVergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ändern.",
        "yourname": "Benutzername:",
        "userlogout": "Abmelden",
        "notloggedin": "Nicht angemeldet",
        "userlogin-noaccount": "Du hast noch kein Benutzerkonto?",
-       "userlogin-joinproject": "{{SITENAME}} beitreten",
+       "userlogin-joinproject": "Bei {{SITENAME}} anmelden",
        "nologin": "Du hast kein Benutzerkonto? $1.",
        "nologinlink": "Neues Benutzerkonto anlegen",
        "createaccount": "Benutzerkonto anlegen",
-       "gotaccount": "Du hast bereits ein Benutzerkonto? '''$1'''.",
+       "gotaccount": "Du hast bereits ein Benutzerkonto? $1.",
        "gotaccountlink": "Anmelden",
        "userlogin-resetlink": "Die Anmeldedaten vergessen?",
        "userlogin-resetpassword-link": "Passwort vergessen?",
        "createaccounterror": "Benutzerkonto konnte nicht erstellt werden: $1",
        "nocookiesnew": "Der Benutzerzugang wurde erstellt, aber du bist nicht angemeldet. {{SITENAME}} benötigt für diese Funktion Cookies, bitte aktiviere diese und melde dich dann mit deinem neuen Benutzernamen und dem zugehörigen Passwort an.",
        "nocookieslogin": "{{SITENAME}} benutzt Cookies zur Anmeldung der Benutzer. Du hast Cookies deaktiviert, bitte aktiviere diese und versuche es erneut.",
-       "nocookiesfornew": "Das Benutzerkonto wurde nicht erstellt, da die Datenherkunft nicht ermittelt werden konnte.\nEs muss sichergestellt sein, dass Cookies aktiviert sind. Danach diese Seite erneut laden und es wieder versuchen.",
+       "nocookiesfornew": "Das Benutzerkonto wurde nicht erstellt, da die Datenherkunft nicht ermittelt werden konnte.\nBitte stelle sicher, dass du Cookies aktiviert hast. Lade diese Seite danach erneut und versuche es noch einmal.",
        "noname": "Du musst einen gültigen Benutzernamen angeben.",
        "loginsuccesstitle": "Anmeldung erfolgreich",
-       "loginsuccess": "Du bist jetzt als „$1“ bei {{SITENAME}} angemeldet.",
-       "nosuchuser": "Der Benutzername „$1“ existiert nicht.\nÜberprüfe die Schreibweise (Groß-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|melde dich als neuer Benutzer an]].",
+       "loginsuccess": "<strong>Du bist jetzt als „$1“ bei {{SITENAME}} angemeldet.</strong>",
+       "nosuchuser": "Der Benutzername „$1“ existiert nicht.\nÜberprüfe die Schreibweise (Groß-/Kleinschreibung beachten) oder [[Special:UserLogin/signup|lege ein neues Benutzerkonto an]].",
        "nosuchusershort": "Der Benutzername „$1“ ist nicht vorhanden. Bitte überprüfe die Schreibweise.",
        "nouserspecified": "Bitte gib einen Benutzernamen an.",
        "login-userblocked": "{{GENDER:$1|Dieser Benutzer|Diese Benutzerin|Dieser Benutzer}} ist gesperrt. Die Anmeldung ist nicht erlaubt.",
        "password-name-match": "Dein Passwort muss sich von deinem Benutzernamen unterscheiden.",
        "password-login-forbidden": "Die Verwendung dieses Benutzernamens und Passwortes ist nicht erlaubt.",
        "mailmypassword": "Passwort zurücksetzen",
-       "passwordremindertitle": "Neues Passwort für ein {{SITENAME}}-Benutzerkonto",
+       "passwordremindertitle": "Neues Passwort für dein {{SITENAME}}-Benutzerkonto",
        "passwordremindertext": "Jemand mit der IP-Adresse $1, wahrscheinlich du selbst, hat ein neues Passwort für die Anmeldung bei {{SITENAME}} ($4) angefordert.\n\nDas automatisch generierte Passwort für Benutzer „$2“ lautet nun: $3\n\nFalls du dies wirklich gewünscht hast, solltest du dich jetzt anmelden und das Passwort ändern.\nDas neue Passwort ist {{PLURAL:$5|1 Tag|$5 Tage}} gültig.\n\nBitte ignoriere diese E-Mail, falls du sie nicht selbst angefordert hast. Das alte Passwort bleibt weiterhin gültig.",
        "noemail": "{{GENDER:$1|Benutzer|Benutzerin|Benutzer}} „$1“ hat keine E-Mail-Adresse angegeben.",
-       "noemailcreate": "Du musst eine gültige E-Mail-Adresse angeben",
+       "noemailcreate": "Du musst eine gültige E-Mail-Adresse angeben.",
        "passwordsent": "Ein neues, temporäres Passwort wurde an die E-Mail-Adresse von Benutzer „$1“ gesandt.\nBitte melde dich damit an, sobald du es erhalten hast. Das alte Passwort bleibt weiterhin gültig.",
        "blocked-mailpassword": "Die von dir verwendete IP-Adresse ist für das Ändern von Seiten gesperrt. Um einen Missbrauch zu verhindern, wurde die Möglichkeit zur Anforderung eines neuen Passwortes ebenfalls gesperrt.",
        "eauthentsent": "Eine Bestätigungs-E-Mail wurde an die angegebene Adresse verschickt.\n\nBevor eine E-Mail von anderen Benutzern über die E-Mail-Funktion empfangen werden kann, muss die Adresse und ihre tatsächliche Zugehörigkeit zu diesem Benutzerkonto erst bestätigt werden. Bitte befolge die Hinweise in der Bestätigungs-E-Mail.",
        "pt-login-button": "Anmelden",
        "pt-createaccount": "Benutzerkonto erstellen",
        "pt-userlogout": "Abmelden",
-       "php-mail-error-unknown": "Unbekannter Fehler mit der Funktion mail() von PHP",
-       "user-mail-no-addy": "Versuchte, eine E-Mail ohne Angabe einer E-Mail-Adresse zu versenden.",
+       "php-mail-error-unknown": "Unbekannter Fehler in der PHP-Funktion mail().",
+       "user-mail-no-addy": "Es wurde versucht, eine E-Mail ohne Angabe einer E-Mail-Adresse zu versenden.",
        "user-mail-no-body": "Es wurde versucht, eine E-Mail mit einem leeren oder zu kurzen Textkörper zu versenden.",
        "changepassword": "Passwort ändern",
        "resetpass_announce": "Um die Anmeldung abzuschließen, musst du ein neues Passwort festlegen.",
index 8ff1c6c..7925b85 100644 (file)
        "revdelete-modify-no-access": "Imposébil fêr vèder l'elemèint cun dâta $1 $2 perché l'é stê arcgnusû cme \"riservê\"  e an 's gh'à mìa al permès ed fêrel.",
        "revdelete-modify-missing": "Imposébil fêr vèder l'elemèint cun ID $1 perché an gh'é mìa int al databêş.",
        "revdelete-no-change": "<strong>Atèinti:</strong> l'elemèint cun dâta $1 $2 al gh'îva bèle al j impustasiòun  ed vésta dmandê.",
+       "revdelete-concurrent-change": "Imposébil mudifichêr l'elemèint cun dâta $1 $2 perché la só cundisiòun l'é stêda cambiêda da 'n êter utèint mèinter a 's tintêva ed fêr la mudéfica.",
+       "revdelete-only-restricted": "Erōr int al lughêr l'elemèint cun dâta $1 $2: an n'é mìa pusébil lughêr j elemèint a la vésta ed j aministradōr sèinsa sernîr almēno 'n êtra siēlta de spustamèint.",
+       "revdelete-reason-dropdown": "*Mutîv pió cumûn per la scanşladûra\n**Mìa rispèt dal dirét 'd avtōr\n**Cumèint o infurmasiòun personêli mìa adâti\n**Nòm utèint mìa adât\n**Infurmasiòun ch'la pré ufènder",
+       "revdelete-otherreason": "Êter mutîv o mutîv zuntê:",
        "revdelete-reasonotherlist": "Êtra ragiòun",
+       "revdelete-edit-reasonlist": "Câmbia i mutîv per la scanşladûra",
+       "revdelete-offender": "Avtōr ed la versiòun:",
+       "suppressionlog": "Tâj",
        "revertmerge": "Scanşèla l'uniòun",
        "history-title": "$1 stòria dal mudéfichi",
        "lineno": "Rîga $1:",
index 554190c..3c8bea5 100644 (file)
        "yourdomainname": "Tu dominio:",
        "password-change-forbidden": "No puedes cambiar las contraseñas de este wiki.",
        "externaldberror": "Hubo un error de autenticación externa de la base de datos o bien no tienes autorización para actualizar tu cuenta externa.",
-       "login": "Acceder",
+       "login": "Iniciar sesión",
        "nav-login-createaccount": "Acceder/crear cuenta",
        "loginprompt": "Hay que activar las ''cookies'' en el navegador para iniciar sesión en {{SITENAME}}.",
        "userlogin": "Acceder/crear cuenta",
        "nocookieslogin": "{{SITENAME}} utiliza <em>cookies</em> para la autenticación de usuarios. Las <em>cookies</em> están desactivadas en tu navegador. Por favor, actívalas e inténtalo de nuevo.",
        "nocookiesfornew": "No se pudo crear la cuenta de usuario, porque no pudimos confirmar su origen.\nAsegúrate de que tienes las cookies activadas, luego recarga esta página e inténtalo de nuevo.",
        "noname": "No se ha especificado un nombre de usuario válido.",
-       "loginsuccesstitle": "Inicio de sesión exitoso",
+       "loginsuccesstitle": "Has accedido correctamente",
        "loginsuccess": "'''Has iniciado sesión en {{SITENAME}} como «$1».'''",
        "nosuchuser": "No existe ningún usuario llamado «$1».\nLos nombres de usuario son sensibles a las mayúsculas.\nRevisa la ortografía, o [[Special:UserLogin/signup|crea una cuenta nueva]].",
        "nosuchusershort": "No hay un usuario con el nombre «$1». Comprueba que lo has escrito correctamente.",
        "nouserspecified": "Debes especificar un nombre de usuario.",
-       "login-userblocked": "Este usuario está bloqueado. Inicio de sesión no permitido.",
+       "login-userblocked": "No puedes iniciar sesión porque tu cuenta está bloqueada.",
        "wrongpassword": "La contraseña indicada es incorrecta.\nInténtalo de nuevo.",
        "wrongpasswordempty": "No has escrito una contraseña.\nInténtalo de nuevo.",
        "passwordtooshort": "Las contraseñas deben tener al menos {{PLURAL:$1|1 carácter|$1 caracteres}}.",
index 15ed2f5..49f5033 100644 (file)
        "tooltip-pt-mytalk": "Sinu arutelulehekülg",
        "tooltip-pt-anontalk": "Arutelu sellelt IP-aadressilt tehtud muudatuste kohta",
        "tooltip-pt-preferences": "Sinu eelistused",
-       "tooltip-pt-watchlist": "Lehekülgede loend, mille muudatusi jälgid",
+       "tooltip-pt-watchlist": "Loend lehekülgedest, 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-logout": "Logi välja",
index 7758039..a65c9cf 100644 (file)
@@ -58,7 +58,7 @@
        "tog-enotifusertalkpages": "هنگامی که در صفحهٔ بحث کاربری‌ام تغییری صورت می‌گیرد به من نامه‌ای فرستاده شود",
        "tog-enotifminoredits": "برای تغییرات جزئی در صفحه‌ها و پرونده‌ها هم به من نامه‌ای فرستاده شود",
        "tog-enotifrevealaddr": "نشانی رایانامهٔ من در رایانامه‌های اطلاع‌رسانی نمایش یابد",
-       "tog-shownumberswatching": "شمار کاربران پی‌گیری‌کننده نمایش یابد",
+       "tog-shownumberswatching": "شمار کاربران پی‌گیرندهٔ نمایش یابد",
        "tog-oldsig": "امضای کنونی:",
        "tog-fancysig": "امضا به صورت ویکی‌متن در نظر گرفته شود (بدون درج خودکار پیوند)",
        "tog-uselivepreview": "استفاده از پیش‌نمایش زنده (نیازمند جاوااسکریپت) (آزمایشی)",
        "right-import": "واردکردن صفحه از ویکی‌های دیگر",
        "right-importupload": "واردکردن صفحه از طریق بارگذاری پرونده",
        "right-patrol": "گشت زدن به ویرایش‌های دیگران",
-       "right-autopatrol": "گشن زدن خودکار به ویرایش‌های خودش",
+       "right-autopatrol": "گشت زدن خودکار ویرایش‌های خودش",
        "right-patrolmarks": "مشاهدهٔ برچسب گشت تغییرات اخیر",
        "right-unwatchedpages": "مشاهدهٔ فهرست صفحه‌هایی که پی‌گیری نمی‌شوند",
        "right-mergehistory": "ادغام تاریخچهٔ صفحه‌ها",
        "minoreditletter": "جز",
        "newpageletter": "نو",
        "boteditletter": "ر",
-       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|کاربر|کاربر}} پی‌گیری‌کننده]",
+       "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|کاربر}} پی‌گیرنده]",
        "rc_categories": "محدود به این رده‌ها (رده‌ها را با «|» جدا کنید)",
        "rc_categories_any": "هر کدام",
        "rc-change-size-new": "$1 {{PLURAL:$1|بایت}} پس از تغییر",
        "markedaspatrollederrornotify": "زدن برچسب گشت، ناموفق بود.",
        "patrol-log-page": "سیاههٔ گشت",
        "patrol-log-header": "این سیاهه‌ای از ویرایش‌های گشت‌خورده است.",
-       "log-show-hide-patrol": "سیاههٔ گشت‌زنی $1",
+       "log-show-hide-patrol": "$1 سیاههٔ گشت‌زنی",
        "deletedrevision": "$1 نسخهٔ حذف شدهٔ قدیمی",
        "filedeleteerror-short": "خطا در حذف پرونده: $1",
        "filedeleteerror-long": "در زمان حذف پرونده خطا رخ داد:\n\n$1",
index d889f26..e6438a6 100644 (file)
        "movepagetalktext": "La page de discussion associée, si présente, sera automatiquement renommée '''sauf si :'''\n* vous déplacez la page vers un autre espace de noms, ou\n* une page de discussion non vide existe déjà sous le nouveau nom, ou\n* vous décochez la case ci-dessous.\n\nDans ces cas-là, vous devrez renommer ou fusionner cette page de discussion manuellement si vous le désirez.",
        "movearticle": "Renommer la page :",
        "moveuserpage-warning": "'''Attention :''' Vous êtes sur le point de renommer une page d’utilisateur. Veuillez noter que seule la page sera renommée et que l’utilisateur '''ne''' sera '''pas''' renommé.",
-       "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seul la page sera renommée et que toutes les pages dans l'ancienne catégorie ne seront <em>pas</em> transférées dans la nouvelle.",
+       "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seule la page sera renommée et que toutes les pages dans l'ancienne catégorie ne seront <em>pas</em> transférées dans la nouvelle.",
        "movenologintext": "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e|(e)}}]] avec un compte utilisateur enregistré et d'ancienneté suffisante.",
        "movenotallowed": "Vous n'avez pas la permission de renommer les pages.",
        "movenotallowedfile": "Vous n'avez pas la permission de renommer les fichiers.",
index 0828510..f7e5801 100644 (file)
        "table_pager_limit_label": "Stavke po stranici:",
        "table_pager_limit_submit": "Idi",
        "table_pager_empty": "Nema rezultata",
-       "autosumm-blank": "Uklonjen cjelokupni sadržaj stranice",
-       "autosumm-replace": "Tekst stranice se zamjenjuje s '$1'",
-       "autoredircomment": "Preusmjeravanje na [[$1]]",
-       "autosumm-new": "Nova stranica: $1",
+       "autosumm-blank": "uklonjen cjelokupni sadržaj stranice",
+       "autosumm-replace": "tekst stranice se zamjenjuje s '$1'",
+       "autoredircomment": "preusmjeravanje na [[$1]]",
+       "autosumm-new": "nova stranica: $1",
        "lag-warn-normal": "Moguće je da izmjene nastale posljednjih $1 {{PLURAL:$1|sekundu|sekundi}} neće biti vidljive na ovom popisu.",
        "lag-warn-high": "Zbog kašnjenja baze podataka, moguće je da promjene napravljene u posljednjih $1 {{PLURAL:$1|sekundu|sekunde|sekundi}} nisu prikazane u popisu.",
        "watchlistedit-normal-title": "Uredi popis praćenja",
index b258bea..059cf49 100644 (file)
        "anontalkpagetext": "----''Ini adalah halaman pembicaraan seorang pengguna anonim yang belum membuat akun atau tidak menggunakannya.\nDengan demikian, kami terpaksa harus memakai alamat IP yang bersangkutan untuk mengidentifikasikannya.\nAlamat IP seperti ini mungkin dipakai bersama oleh beberapa pengguna yang berbeda.\nJika Anda adalah seorang pengguna anonim dan merasa mendapatkan komentar-komentar yang tidak relevan yang ditujukan langsung kepada Anda, silakan [[Special:UserLogin/signup|membuat akun]] atau [[Special:UserLogin|masuk log]] untuk menghindari kerancuan dengan pengguna anonim lainnya di lain waktu.''",
        "noarticletext": "Saat ini tidak ada teks di halaman ini.\nAnda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait], atau [{{fullurl:{{FULLPAGENAME}}|action=edit}} menyunting halaman ini]</span>.",
        "noarticletext-nopermission": "!Saat ini tidak ada teks di halaman ini.\nAnda dapat [[Special:Search/{{PAGENAME}}|melakukan pencarian untuk judul halaman ini]] di halaman-halaman lain, atau <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mencari log terkait]</span>, tapi Anda tidak memiliki izin untuk membuat halaman ini",
-       "missing-revision": "Revisi #$1 halaman berjudul \"{{FULLPAGENAME}}\" tidak eksks.\n\nHal ini biasanya disebabkan oleh tautan versi terdahulu menuju halaman yang sudah dihapus.\nRinciannya dapat ditemukan di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].",
+       "missing-revision": "Revisi #$1 halaman berjudul \"{{FULLPAGENAME}}\" tidak eksis.\n\nHal ini biasanya disebabkan oleh tautan versi terdahulu menuju halaman yang sudah dihapus.\nRinciannya dapat ditemukan di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].",
        "userpage-userdoesnotexist": "Akun pengguna \"<nowiki>$1</nowiki>\" tidak terdaftar.",
        "userpage-userdoesnotexist-view": "Pengguna \"$1\" tidak terdaftar.",
        "blocked-notice-logextract": "Pengguna ini sedang diblokir.\nEntri log pemblokiran terakhir tersedia di bawah ini sebagai rujukan.",
index 715a939..7551192 100644 (file)
        "permalink": "Agnanayon a silpo",
        "print": "Imaldit",
        "view": "Kitaen",
+       "view-foreign": "Kitaen idiay $1",
        "edit": "Urnosen",
+       "edit-local": "Urnosen ti lokal a deskripsion",
        "create": "Agaramid",
+       "create-local": "Agnayon ti lokal a deskripsion",
        "editthispage": "Urnosen daytoy a panid",
        "create-this-page": "Partuaten daytoy a panid",
        "delete": "Ikkaten",
        "jumptonavigation": "pagdaliasatan",
        "jumptosearch": "biruken",
        "view-pool-error": "Pasensian, dagiti servers ket nadagsenan unay tattan.\nAdu unay dagiti agar-aramat nga agbuy-buya ti daytoy a panid.\nPangaasi nga agurayka met bassit sakbay a padasem manen ti mangserrek daytoy a panid.\n\n$1",
+       "generic-pool-error": "Pasensian, dagiti server ket agdama a nadagsenan unay.\nAdu unay dagiti agar-aramat nga agbuybuya ti daytoy a rekurso.\nPangngaasi nga agurayka bassit sakbay a padasem manen a serrekan daytoy a rekurso.",
        "pool-timeout": "Madamdama agur-uray para iti kandado",
        "pool-queuefull": "Napunnon ti nagyanan ti pagur-urayan",
        "pool-errorunknown": "Di am-ammo a biddut",
+       "pool-servererror": "Ti serbisio ti pagbilangan ti pisina ket saan a magun-od ($1).",
        "aboutsite": "Maipanggep ti {{SITENAME}}",
        "aboutpage": "Project:Maipanggep",
        "copyright": "Ti linaon ket magun-od babaen ti $1 malaksid no adda sabali a naibaga.",
        "gotaccountlink": "Sumrek",
        "userlogin-resetlink": "Nalipatam dagiti salaysay ti pagserrekmo?",
        "userlogin-resetpassword-link": "Nalipatam ti kontraseniasmo?",
+       "userlogin-helplink2": "Tulong iti panagserrek",
        "userlogin-loggedin": "Nakastrekkan a kas ni {{GENDER:$1|$1}}.\nUsaren ti porma dita baba tapno sumrek a kas sabali nga agar-aramat.",
        "userlogin-createanother": "Agaramid pay ti sabali a pakabilangan",
        "createacct-emailrequired": "Esurat a pagtaengan",
        "resetpass-abort-generic": "Ti panagsukat ti kontrasenias ket pinasardeng babaen ti maysa a pagpaatiddog.",
        "resetpass-expired": "Nagpason ti kontraseniasmo. Pangngaasi a mangiyasentar ti baro a kontrasenias tapno makastrek.",
        "resetpass-expired-soft": "Nagpason ti kontraseniasmo, ken nasken a maiyasentar manen. Pangngaasi nga agpili tattan ti baro a kontrasenias, wenno pinduten ti \"{{int:resetpass-submit-cancel}}\"  tapno maiyasentarto intono madamdama.",
+       "resetpass-validity-soft": "Saan nga umiso ti kontraseniasmo: $1\n\nAgpilika tattan ti baro a kontrasenias, wenno pinduten ti \"{{int:resetpass-submit-cancel}}\" tapno isaad intono madamdama.",
        "passwordreset": "Iyasentar manen ti kontrasenias",
        "passwordreset-text-one": "Lippasem daytoy a porma tapno maiyasentar manen ti bukodmo a kontrasenias.",
        "passwordreset-text-many": "{{PLURAL:$1|Agpunno ti maysa kadagiti pagikabilan tapno makaawat ti temporario a kontrasenias babaen ti esurat.}}",
        "edit-gone-missing": "Saan a mapabaro daytoy a panid.\nKasla met naikkaten.",
        "edit-conflict": "Adda kasinnungat ti panag-urnos.",
        "edit-no-change": "Ti inurnosmo ket saan a naikaskaso, ngamin ket awan ti nasukatan a testo.",
+       "postedit-confirmation-created": "Ti panid ket napartuaten.",
+       "postedit-confirmation-restored": "Ti panid ket naisublin.",
        "postedit-confirmation-saved": "Ti inurnosmo ket naidulinen.",
        "edit-already-exists": "Saan a makaaramid ti baro a panid.\nAdda met daytoyen.",
        "defaultmessagetext": "Kasisigud a testo ti mensahe",
        "parser-template-recursion-depth-warning": "Ti kinauneg ti panagdullit ti plantilia ket nagpatingga ti napalabes ($1)",
        "language-converter-depth-warning": "Ti kauneg ti panagaramid ti pagsasao ket napalabes ti agpatingga a ($1)",
        "node-count-exceeded-category": "Dagiti panid a simmurok ti bilang ti nodo",
+       "node-count-exceeded-category-desc": "Ti kategoria para kadagiti panid a nalabsan ti bilang ti nodo.",
        "node-count-exceeded-warning": "Ti panid ket nasurokanna ti bilang ti nodo",
        "expansion-depth-exceeded-category": "Dagiti panid a nasurokan ti kauneg ti panagpadakkel",
+       "expansion-depth-exceeded-category-desc": "Daytoy ket kategoria para kadagiti panid a nalabsan ti kauneg ti panagpadakkel.",
        "expansion-depth-exceeded-warning": "Ti panid ket nasurokanna ti kauneg ti panagpadakkel",
        "parser-unstrip-loop-warning": "Adda nakita a di-naukisan a silo",
        "parser-unstrip-recursion-limit": "Ti di-naukisan a panagsumro manen a patingga ket nasurokan ($1)",
        "revdelete-no-file": "Awan dayta nainaganan a papeles.",
        "revdelete-show-file-confirm": "Sigurado kadi a kayatmo ti mangkita ti naikkat a baliwan ti papeles \"<nowiki>$1</nowiki>\" a naggapu idi $2 idi $3?",
        "revdelete-show-file-submit": "Wen",
+       "revdelete-selected-text": "{{PLURAL:$1|Napili a nabaliwan|Dagiti napili a nabaliwan}} iti [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Napili a bersion ti papeles|Dagiti napili a bersion ti papeles}} iti [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Ti napili a listaan ti napasamak|Dagiti napili a listaan ti napasamak}}:",
        "revdelete-text-text": "Dagiti naikkat a rebision ket agparangto pay laeng iti panid ti pakasaritaan, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.",
        "revdelete-text-file": "Dagiti naikkat a bersion ti papeles ket agparangto pay laeng iti pakasaritaan ti papeles, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.",
        "prefs-emailconfirm-label": "Pammasingked ti esurat:",
        "youremail": "Esurat:",
        "username": "{{GENDER:$1|Nagan ti agar-aramat}}:",
-       "uid": "ID ti {{GENDER:$1|Agar-aramat}}:",
        "prefs-memberingroups": "{{GENDER:$2|Kameng}} ti {{PLURAL:$1|a grupo|a grupgrupo}}:",
        "prefs-registration": "Oras a nagrehistro:",
        "yourrealname": "Pudno a nagan:",
        "right-move": "Iyalis dagiti panid",
        "right-move-subpages": "Iyalis dagiti panid a kakuyog dagiti subpanidda.",
        "right-move-rootuserpages": "Iyalis dagiti ramut a panid ti agar-aramat",
+       "right-move-categorypages": "Iyalis ti pampanid ti kategoria",
        "right-movefile": "Iyalis dagiti papeles",
        "right-suppressredirect": "Saan nga agaramid ti baw-ing a naggapo iti taudan no iyalis dagiti panid",
        "right-upload": "Agipan ti papeles",
        "action-createpage": "agpartuat kadagiti panid",
        "action-createtalk": "agaramid kadagiti pagtungtungan a panid",
        "action-createaccount": "agpartuat ti pakabilangan daytoy nga agar-aramat",
+       "action-history": "kitaen ti pakasaritaan daytoy a panid",
        "action-minoredit": "markaam a bassit nga urnos daytoy",
        "action-move": "iyalis daytoy a panid",
        "action-move-subpages": "iyalis daytoy a panid, ken dagiti subpanidna",
        "action-move-rootuserpages": "iyalis dagiti ramut a panid ti agar-aramat",
+       "action-move-categorypages": "iyalis ti pampanid ti kategoria",
        "action-movefile": "iyalis daytoy a papeles",
        "action-upload": "ikarga daytoy a papeles",
        "action-reupload": "suratam manen dagiti adda a papeles",
        "download": "ikarga",
        "unwatchedpages": "Di mabambantayan a pampanid",
        "listredirects": "Listaan dagiti baw-ing",
+       "listduplicatedfiles": "Listaan dagiti papeles nga addaan kadagiti duplikado",
+       "listduplicatedfiles-summary": "Daytoy ket listaan dagiti papeles a ti kaudian unay a bersion ti papeles ket duplikado ti kaudian unay a bersion iti sabali a papeles. Dagiti laeng lokal a papeles ti maikeddeng.",
+       "listduplicatedfiles-entry": "Ti [[:File:$1|$1]] ket addaan [[$3|{{PLURAL:$2|iti duplikado|kadagiti $2 a duplikado}}]].",
        "unusedtemplates": "Dagiti saan a nausar a plantilia",
        "unusedtemplatestext": "Daytoy a panid ket ilistana dagiti panid idiay {{ns:template}} a nagan ti espasio a saan a nairaman iti sabali a panid.\nLaglagipem ti agkita kadagiti sabsabali a silpo ti plantilia sakbay nga ikkatem ida.",
        "unusedtemplateswlh": "dagiti sabali a silpo",
        "pageswithprop-prophidden-binary": "binario a pateg ti tagikua a nailemmeng ($1)",
        "doubleredirects": "Dagiti namindua a naibaw-ing",
        "doubleredirectstext": "Daytoy a panid ket ilistana dagiti panid nga agbaw-ing kadagiti sabsabali a baw-ing a pampanid.\nIti tunggal maysa nga aray ket adda nagyanna kadagiti silpo iti umuna ken maikadua a baw-ing, ken iti puntaan iti maikadua a baw-ing, nga isu ti \"pudno\" a puntaan ti panid, nga ti umuna a baw-ing ket isu ti ipatudona.\n<del>Nakurosan</del> dagita naikabil ket napadtuan.",
-       "double-redirect-fixed-move": "Ti [[$1]] ket naiyalisen.\nTattan ket naibaw-ing idiay [[$2]].",
-       "double-redirect-fixed-maintenance": "Simsimpaen dagiti namindua a naibaw-ing a naggapo idiay [[$1]] nga ipan idiay [[$2]].",
+       "double-redirect-fixed-move": "Naiyalisen ti [[$1]].\nAutomatiko idi a napabaro ken naibaw-ing tattan idiay [[$2]].",
+       "double-redirect-fixed-maintenance": "Automatiko a simsimpaen ti doble a baw-ing manipud ti [[$1]] idiay [[$2]] iti panagtaripato nga obra.",
        "double-redirect-fixer": "Panagsimpa ti baw-ing",
        "brokenredirects": "Dagiti naputed a baw-ing",
        "brokenredirectstext": "Dagitoy sumaganad a baw-ing ket nakasilpo kadagiti awan a panid:",
        "deadendpagestext": "Dagitoy a pampanid ket saan a nakasilpo ti sabali a pampanid ditoy {{SITENAME}} .",
        "protectedpages": "Dagiti nasalakniban a panid",
        "protectedpages-indef": "Inggat ingana a salakniban laeng",
-       "protectedpages-summary": "Daytoy a panid ket ilistana dagiti adda a panid nga agdama a nasalakniban. Para iti listaan dagiti titulo a nasalakniban manipud ti pannakapartuat, kitaen ti [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
+       "protectedpages-summary": "Daytoy a panid ket ilistana dagiti panid nga agdama a nasalakniban. Para iti listaan dagiti titulo a nasalakniban manipud ti pannakapartuat, kitaen ti [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Dagiti sariap a salaknib laeng",
        "protectedpages-noredirect": "Ilemmeng dagiti baw-ing",
        "protectedpagesempty": "Awan ti pampanid nga agdama a nasalakniban babaen kadagitoy a parametro.",
        "protectedpages-unknown-timestamp": "Di ammo",
        "protectedpages-unknown-performer": "Di ammo nga agar-aramat",
        "protectedtitles": "Dagiti nasalakniban a titulo",
-       "protectedtitles-summary": "Daytoy a panid ket ilistana dagiti titulo nga agdama a nasalakniban manipud ti pannakapartuat. Para iti listaan dagiti adda a panid a nasalakniban, kitaen ti [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitles-summary": "Daytoy a panid ket ilistana dagiti titulo nga agdama a nasalakniban manipud ti pannakapartuat. Para iti listaan dagiti adda a panid a nasalakniban, kitaen ti  [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]..",
        "protectedtitlesempty": "Awan dagiti titulo nga agdama a nasalakniban iti dagitoy a parametro.",
        "listusers": "Listaan dagiti agar-aramat",
        "listusers-editsonly": "Ipakita laeng dagiti agar-aramat nga adda inurnosda",
        "log-title-wildcard": "Agsapul kadagiti titulo nga agrugi iti daytoy a testo",
        "showhideselectedlogentries": "Ipakita/ilemmeng dagiti napili a naikabil ti listaan",
        "allpages": "Amin a pampanid",
-       "alphaindexline": "$1 iti $2",
        "nextpage": "sumaruno a panid ($1)",
        "prevpage": "Napalabas a panid ($1)",
        "allpagesfrom": "Ipakita dagiti panid a mangrugi iti:",
        "listgrouprights-removegroup-self": "Agikkat ti {{PLURAL:$2|a grupo|kadagiti grupo}} manipud ti bukod a pakabilangan: $1",
        "listgrouprights-addgroup-self-all": "Inayon amin dagiti grupo iti bukod a pakabilangan",
        "listgrouprights-removegroup-self-all": "Ikkatem amin dagiti grupo manipud ti bukod a pakabilangan",
+       "listgrouprights-namespaceprotection-header": "Dagiti panangigawid ti nagan ti espasio",
+       "listgrouprights-namespaceprotection-namespace": "Nagan ti espasio",
+       "listgrouprights-namespaceprotection-restrictedto": "Karbengan wenno karkarbengan a mangpalubos nga agurnos ti agar-aramat",
+       "trackingcategories": "Pagsurotan a katkategoria",
+       "trackingcategories-summary": "Daytoy a panid ket ilistana ti pagsurotan a katkategoria nga automatiko a nayonan babaen ti sopwer ti MediaWiki. Ti nagnaganda ket mabalin a mabaliwan babaen ti panagbaliw kadagiti maitutop a mensahe ti sistema iti nagan ti espasio ti {{ns:8}}.",
+       "trackingcategories-msg": "Pagsurotan a kategoria",
+       "trackingcategories-name": "Nagan ti mensahe",
+       "trackingcategories-desc": "Kriteria ti panangiraman ti kategoria",
+       "noindex-category-desc": "Ti panid ket saan naipagsurotan babaen dagiti robot gapu ta addaan iti salamangka a balikas ti <code><nowiki>__NOINDEX__</nowiki></code> ken adda iti nagan ti espasio a maipalubos ti wagayway.",
+       "index-category-desc": "Ti panid ket addaan iti <code><nowiki>__INDEX__</nowiki></code> (ken adda iti nagan ti espasio a maipalubos ti wagayway), ken isu a naipagsurotan babaen dagiti robot ngem no iti kadawyan ket saan.",
+       "post-expand-template-inclusion-category-desc": "Kalpasan ti panagpadakkel kadagiti amin a plantilia, ti kadakkel ti panid ket dakdakkel ngem ti <code>$wgMaxArticleSize</code>, isu a dagiti plantilia ket saan a napadakkel.",
+       "post-expand-template-argument-category-desc": "Kalpasan ti panagpadakkel ti argumento ti plantilia (dagiti addaan iti tallo a pangrikep, kasla ti <code>{{{Foo}}}</code>), ti panid ket dakdakkel ngem ti <code>$wgMaxArticleSize</code>.",
+       "expensive-parserfunction-category-desc": "Adu unay dagiti nangina nga annong ti parser (kasla ti <code>#ifexist</code>) a nairaman iti panid. Kitaen ti[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
+       "broken-file-category-desc": "Kategoria a nainayon no ti panid ket aglaon ti nadadael a silpo ti papeles (ti silpo a panangisengngat ti papeles no awan ti papeles).",
+       "hidden-category-category-desc": "Daytoy ket kategoria nga addaan iti <code><nowiki>__HIDDENCAT__</nowiki></code> , a mangpawil daytoy nga agparang kadagiti silpo ti kahon ti kategoria kadagiti panid, bbabaen ti kasisigud.",
+       "trackingcategories-nodesc": "Awan ti magun-od a deskripsion.",
+       "trackingcategories-disabled": "Nabaldado ti kategoria",
        "mailnologin": "Awan ti pagipatulodan a pagtaengan",
        "mailnologintext": "Masapul a [[Special:UserLogin|nakastrekka]] ken adda umisu nga esurat a pagtaengan idiay [[Special:Preferences|kaykayatmo]] ti agipatulod ti esurat kadagiti sabsabali nga agar-aramat.",
        "emailuser": "Esuratan daytoy nga agar-aramat",
        "watchnologin": "Saan a nakastrek",
        "addwatch": "Inayon iti bambantayan",
        "addedwatchtext": "Ti panid iti \"[[:$1]]\" ket nainayonen idiay [[Special:Watchlist|listaan ti bambantayam]].\nDagiti masakbayan a panagsukat iti daytoy a panid ken dagiti mainaig a tungtunganna a panid ket mailistanto idiay.",
+       "addedwatchtext-short": "Ti panid ti \"$1\" ket nainayonen iti listaan ti bambantayam.",
        "removewatch": "Ikkaten dita bambantayan",
        "removedwatchtext": "Daytoy a panid  \"[[:$1]]\" ket naikkat idiay [[Special:Watchlist|bambantayam]].",
+       "removedwatchtext-short": "Ti panid ti \"$1\" ket naikkaten manipud ti listaan ti bambantayam.",
        "watch": "bantayan",
        "watchthispage": "Bantayan daytoy a panid",
        "unwatch": "Saanen a bantayan",
        "unwatchthispage": "Isardeng a bantayan daytoy a panid",
        "notanarticle": "Saan a naglaon a panid",
        "notvisiblerev": "Ti panagbalbaliw ti sabali nga agar-aramat ket naikkaten",
-       "watchlist-details": "{{PLURAL:$1|$1 panid|$1 dagiti panid}} a bambantayam, saan a mairaman dagiti panid ti tungtungan.",
+       "watchlist-details": "{{PLURAL:$1|$1 panid|$1 dagiti panid}} a bambantayam, saan a naisina a mairaman dagiti panid ti tungtungan.",
        "wlheader-enotif": "Napakabaelan ti panangipakaammo ti esurat.",
        "wlheader-showupdated": "Dagiti panid a nasukatanen manipud ti kinaudi a panagsarungkarmo ket naipakita iti '''napuskol'''",
        "wlnote2": "Dita baba ket dagiti binalbaliwan {{PLURAL:$1|iti napalabas nga oras|kadagiti napalabas a <strong>$1</strong> nga oras}}, manipud idi $2, $3.",
        "protect-locked-blocked": "Saanmo a mabalin a sukatan dagiti kita ti salaknib no naserraanka.\nAdda ditoy kadagiti agdama a kasasaad ti panid '''$1''':",
        "protect-locked-dblock": "Ti kita ti salaknib ket saan a masukatan gapu ti agdama a kandado ti database.\nAdda ditoy kadagiti agdama a kasasaad ti panid '''$1''':",
        "protect-locked-access": "Awan ti pammalubos ti pakabilangam a mangsukat kadagiti lessaad ti salaknib ti panid.\nDagitoy dagiti agdama a kasasaad ti panid a '''$1''':",
-       "protect-cascadeon": "Daytoy a panid ket agdama a nasalakniban gapu ta nairaman kadagiti sumaganad a {{PLURAL:$1|panid, nga addaan|pampanid, nga addaan}} ti sipapakat a salaknib ti amin-amin.\nMabalinmo a sukatan ti lessaad ti salaknib daytoy a panid, ngem saanna a tignayen ti salaknib nga amin-amin.",
+       "protect-cascadeon": "Daytoy a panid ket agdama a nasalakniban gapu ta nairaman kadagiti sumaganad a {{PLURAL:$1|panid, nga addaan|pampanid, nga addaan}} iti sipapakat a salaknib a sariap.\nDagiti panagbaliw iti agpang ti salaknib iti daytoy a panid ket saan a mabanagan ti salaknib a sariap.",
        "protect-default": "Palubosan amin nga agar-aramat",
        "protect-fallback": "Palubosan laeng dagiti agar-aramat nga adda iti \"$1\" a pammalubos",
        "protect-level-autoconfirmed": "Palubosan laeng dagiti automatiko a napasingkedan nga agar-aramat",
        "contributions-title": "Inar-aramid ti agar-aramat para kenni $1",
        "mycontris": "Naar-aramid",
        "contribsub2": "Para kenni {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "Ti pakabilangan ti agar-aramat \"$1\" ket saan a nakarehistro.",
        "nocontribs": "Awan ti nasarakan a nasukatan a kapada daytoy a kita.",
        "uctop": "(agdama)",
        "month": "Manipud iti bulan ti (ken nasapsapa pay):",
        "movepagetalktext": "Ti mainaig a tungtungan ti panid ket giddato a maiyalis a karamanna '''malaksid:'''\n*No addan sigud nga awan linaonna a tungtungan ti panid babaen ti baro a nagan, wenno\n*No ikkatem ti kur-itna ti kahon iti baba.\n\nKadagitoy a kaso, masapul nga iyalis wenno itiponmo a manual ti panid no kayatmo.",
        "movearticle": "Iyalis ti panid:",
        "moveuserpage-warning": "'''Ballaag:''' Mangrugrugika nga agiyalis ti panid ti agar-aramat. Pangngaasi a laglapipen a ti panid ket isu laeng ti mabalin nga iyalis ken ti agar-aramat ket ''saan'' a managanan.",
+       "movecategorypage-warning": "<strong>Ballaag:</strong> Mangiyal-aliskan iti panid ti kategoria. Pangngaasi a laglagipen a ti maiyalisto laeng ket ti panid ken ti aniaman a pampanid iti daan a kategoria ket <em>saanto</em> a maikategoria iti baro.",
        "movenologintext": "Masapul a nakarehistroka nga agar-aramat ken [[Special:UserLogin|nakastrek]] tapno makaiyalis iti panid.",
        "movenotallowed": "Awan ti pammalubosmo nga agiyalis kadagiti panid.",
        "movenotallowedfile": "Awan ti pammalubosmo nga agiyalis kadagiti papeles.",
        "cant-move-user-page": "Awan ti pammalubos mo nga agiyalis kadagiti panid ti agar-aramat (malaksid kadaiti subpanid).",
        "cant-move-to-user-page": "Awan ti pammalubos mo nga agiyalis ti panid idiay panid ti agar-aramat (malaksid kadagiti subpanid ti agar-aramat).",
+       "cant-move-category-page": "Awan ti pammalubosmo nga agiyalis kadagiti panid ti kategoria.",
+       "cant-move-to-category-page": "Awan ti pammalubosmo nga agiyalis ti panid iti panid ti kategoria.",
        "newtitle": "Iti baro a titulo:",
        "move-watch": "Bantayan daytoy a panid",
        "movepagebtn": "Iyalis ti panid",
        "newimages-summary": "Daytoy nga espesial a panid ket ipakitana ti kinaudi a pinag-ipan kadagiti papeles.",
        "newimages-legend": "Sagat",
        "newimages-label": "Nagan ti papeles (wenno paset na) :",
+       "newimages-showbots": "Ipakita dagiti naikarga babaen dagiti bot",
        "noimages": "Awan ti makita.",
        "ilsubmit": "Biruken",
        "bydate": "babaen ti petsa",
        "watchlistedit-raw-done": "Napabaro ti listaan ti bambantayam.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 a titulo ti|dagiti $1 a titulo ti}} nainayon:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 a titulo ti|dagiti $1 dagiti titulo ti}} naikkat:",
+       "watchlistedit-clear-title": "Nadalusanen ti listaan ti bambantayan",
+       "watchlistedit-clear-legend": "Dalusan ti listaan ti bambantayan",
+       "watchlistedit-clear-explain": "Amin dagiti titulo ket maikkatto manipud ti listaan ti bambantayam.",
+       "watchlistedit-clear-titles": "Dagiti titulo:",
+       "watchlistedit-clear-submit": "Dalusan ti listaan ti bambantayan (Daytoy ket permanente!)",
+       "watchlistedit-clear-done": "Nadalusanen ti bambantayam.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 a titulo|$1 kadagiti titulo}} ti naikkat:",
+       "watchlistedit-too-many": "Adu unay a pampanid ti maiparang ditoy.",
+       "watchlisttools-clear": "Dalusan ti listaan ti bambantayan",
        "watchlisttools-view": "Kitaen dagiti maitunos a sinukatan",
        "watchlisttools-edit": "Kitaen ken urnosen ti listaan ti bambantayan",
        "watchlisttools-raw": "Urnosen ti kilaw a listaan ti bambantayan",
        "htmlform-no": "Saan",
        "htmlform-yes": "Wen",
        "htmlform-chosen-placeholder": "Agpili ti pagpilian",
+       "htmlform-cloner-create": "Agnayon pay ti adu",
+       "htmlform-cloner-delete": "Ikkaten",
+       "htmlform-cloner-required": "Saan a basbassit ngem maysa a pateg ti masapul.",
        "sqlite-has-fts": "$1 adda ti suporta ti napno a testo ti panagbiruk",
        "sqlite-no-fts": "$1 awan ti suporta ti napno a testo ti panagbiruk",
        "logentry-delete-delete": "Ni $1 ket {{GENDER:$2|inikkatna}} ti panid ti $3",
index 91336b0..e593602 100644 (file)
        "recentchanges-summary": "Questa pagina presenta le modifiche più recenti ai contenuti del sito.",
        "recentchanges-noresult": "Nessuna modifica durante il periodo inserito che soddisfa questi criteri.",
        "recentchanges-feed-description": "Questo feed riporta le modifiche più recenti ai contenuti del sito.",
-       "recentchanges-label-newpage": "Questa modifica ha creato una nuova pagina",
-       "recentchanges-label-minor": "Questa è una modifica minore",
-       "recentchanges-label-bot": "Questa modifica è stata effettuata da un bot",
-       "recentchanges-label-unpatrolled": "Questa modifica non è stata ancora verificata",
-       "recentchanges-label-plusminus": "La dimensione della pagina è cambiata di questo numero di byte",
+       "recentchanges-label-newpage": "Creazione di una nuova pagina",
+       "recentchanges-label-minor": "Modifica minore",
+       "recentchanges-label-bot": "Modifica effettuata da un bot",
+       "recentchanges-label-unpatrolled": "Modifica non ancora verificata",
+       "recentchanges-label-plusminus": "Variazione della pagina in numero di byte",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(vedi anche [[Special:NewPages|l'elenco delle nuove pagine]])",
+       "recentchanges-legend-newpage": "(vedi [[Special:NewPages|le nuove pagine]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Di seguito sono elencate le modifiche apportate a partire da <strong>$2</strong> (mostrate fino a <strong>$1</strong>).",
        "rclistfrom": "Mostra le modifiche apportate a partire da $3 $2",
        "sp-contributions-talk": "discussione",
        "sp-contributions-userrights": "gestione dei permessi",
        "sp-contributions-blocked-notice": "Questo utente è attualmente bloccato. L'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
-       "sp-contributions-blocked-notice-anon": "Questo indirizzo IP è attualmente bloccato. Di seguito è riportato l'ultimo elemento del registro dei blocchi:",
+       "sp-contributions-blocked-notice-anon": "Questo indirizzo IP è attualmente bloccato.\nL'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
        "sp-contributions-search": "Ricerca contributi",
        "sp-contributions-username": "Indirizzo IP o nome utente:",
        "sp-contributions-toponly": "Mostra solo i contributi che sono le ultime revisioni per la pagina",
index 37b1add..d83db33 100644 (file)
        "revdelete-selected-text": "[[:$2]] の{{PLURAL:$1|選択された版}}:",
        "logdelete-selected": "{{PLURAL:$1|選択された記録項目}}:",
        "revdelete-text-text": "削除された版は履歴に表示され続けますが、一般の利用者が内容を閲覧できなくなります。",
+       "revdelete-text-file": "削除されたファイルの版はファイルの履歴に表示されつづけますが、一般の利用者はその内容の一部を閲覧できなくなります。",
+       "logdelete-text": "削除された記録項目は記録に表示されつづけますが、一般の利用者はその内容の一部を閲覧できなくなります。",
        "revdelete-text-others": "追加の制限を設定しない限り、{{SITENAME}} の他の管理者は非表示コンテンツにまだアクセスでき、この同じインターフェースを通してそれを復元することができます。",
        "revdelete-confirm": "この操作を行おうとしていること、その結果を理解していること、[[{{MediaWiki:Policy-url}}|方針]]に従っていること、を確認してください。",
        "revdelete-suppress-text": "秘匿は、<strong>以下の場合に限って</strong>使用すべきです:\n* 名誉毀損のおそれがある記述\n* 非公開個人情報\n*: <em>自宅の住所、電話番号、個人を識別できる公的な番号など</em>",
        "trackingcategories-msg": "追跡用カテゴリ",
        "trackingcategories-name": "メッセージ名",
        "trackingcategories-desc": "カテゴリに入る基準",
+       "noindex-category-desc": "このページは <code><nowiki>__NOINDEX__</nowiki></code> というマジックワードを含んでおり、その印が有効になっている名前空間にあるため、ロボットによる収集の対象になりません。",
+       "index-category-desc": "このページは <code><nowiki>__INDEX__</nowiki></code> というマジックワードを含んでおり、その印が有効になっている名前空間にあるため、通常と異なり、ロボットによる収集の対象になります。",
        "post-expand-template-inclusion-category-desc": "テンプレートを展開したあとのページ サイズが <code>$wgMaxArticleSize</code> よりも大きいため、一部のテンプレートが展開されなかった",
        "post-expand-template-argument-category-desc": "テンプレート引数 (<code>{{{Foo}}}</code> のような三重中括弧部分) を展開したあとのページが <code>$wgMaxArticleSize</code> よりも大きい",
        "expensive-parserfunction-category-desc": "高負荷なパーサー関数 (<code>#ifexist</code> など) の呼び出し回数が多過ぎるページ。[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit] を参照してください。",
        "thumbnail_image-type": "対応していない画像形式です",
        "thumbnail_gd-library": "GDライブラリの構成が不完全です: 関数$1が不足",
        "thumbnail_image-missing": "ファイルが見つかりません: $1",
+       "thumbnail_image-failure-limit": "このサムネイルの描画に失敗した回数($1 回以上)が上限を超えました。しばらく後でもう一度お試しください。",
        "import": "ページデータの取り込み",
        "importinterwiki": "ウィキ間移動の取り込み",
        "import-interwiki-text": "取り込むウィキとページ名を選択してください。\n版の日付と編集者名は保持されます。\nウィキ間移動のすべての取り込み操作は[[Special:Log/import|取り込み記録]]に記録されます。",
        "watchlistedit-raw-done": "ウォッチリストを更新しました。",
        "watchlistedit-raw-added": "{{PLURAL:$1|$1 ページ}}を追加しました:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|$1 ページ}}を除去しました:",
-       "watchlistedit-clear-title": "ウォッチリストの白紙化",
-       "watchlistedit-clear-legend": "ウォッチリストの白紙化",
+       "watchlistedit-clear-title": "ウォッチリストの全消去",
+       "watchlistedit-clear-legend": "ウォッチリストの全消去",
        "watchlistedit-clear-explain": "ウォッチリストに追加されたページ名がすべて除去されます",
        "watchlistedit-clear-titles": "ページ名:",
-       "watchlistedit-clear-submit": "ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\82\92ç\99½ç´\99å\8c\96ã\81\99ã\82\8b (ã\81\93ã\81®æ\93\8dä½\9cã\81¯å\8f\96ã\82\8aæ¶\88ã\81\9bã\81¾ã\81\9bã\82\93ã\80\82)",
-       "watchlistedit-clear-done": "ウォッチリストを白紙化しました。",
+       "watchlistedit-clear-submit": "ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81®å\85¨æ¶\88å\8e» (ã\81\93ã\81®æ\93\8dä½\9cã\81¯å\8f\96ã\82\8aæ¶\88ã\81\9bã\81¾ã\81\9bã\82\93ï¼\81)",
+       "watchlistedit-clear-done": "ウォッチリストを全消去しました。",
        "watchlistedit-clear-removed": "{{PLURAL:$1|$1 件のページ}}を除去しました:",
        "watchlistedit-too-many": "ページ数が多すぎるため表示できません。",
-       "watchlisttools-clear": "ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\82\92ç\99½ç´\99å\8c\96",
+       "watchlisttools-clear": "ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88ã\81®å\85¨æ¶\88å\8e»",
        "watchlisttools-view": "関連する変更を閲覧",
        "watchlisttools-edit": "ウォッチリストの閲覧と編集",
        "watchlisttools-raw": "ウォッチリストをテキストで編集",
index 7aad63b..339c91a 100644 (file)
        "rcshowhidemine": "Өңдемелерімді $1",
        "rcshowhidemine-show": "көрсету",
        "rcshowhidemine-hide": "жасыру",
-       "rclinks": "Соңғы $2 күнде болған, соңғы $1 өзгерісті көрсет<br />$3",
+       "rclinks": "Соңғы $2 күнде болған соңғы $1 өзгерісті көрсет<br />$3",
        "diff": "айырм",
        "hist": "тарихы",
        "hide": "жасыру",
        "upload_directory_read_only": "Жүктеу қалтасына ($1) веб-сервер жаза алмайды.",
        "uploaderror": "Жүктеу қатесі",
        "upload-recreate-warning": "'''Ескету: Бұл атаумен файл жойылған немесе жылжытылған'''\n\nThe deletion and move log for this page are provided here for convenience:",
-       "uploadtext": "ТөмендегÑ\96 Ð¿Ñ\96Ñ\88Ñ\96ндÑ\96 Ñ\84айлдаÑ\80дÑ\8b Ð¶Ò¯ÐºÑ\82еÑ\83 Ò¯Ñ\88Ñ\96н Ò\9bолданÑ\8bÒ£Ñ\8bз.\nÐ\90лдÑ\8bнда Ð¶Ò¯ÐºÑ\82елген Ñ\84айлдаÑ\80дÑ\8b Ò\9bаÑ\80аÑ\83 Ð½Ðµ Ñ\96здеÑ\83 Ò¯Ñ\88Ñ\96н [[Special:FileList|жүкÑ\82елген Ñ\84айлдаÑ\80 Ñ\82Ñ\96зÑ\96мÑ\96не]] Ð±Ð°Ñ\80Ñ\8bÒ£Ñ\8bз. Ð¡Ð¾Ð½Ð´Ð°Ð¹-аÒ\9b Ñ\84айлдаÑ\80дÑ\8bÒ£ Ð¶Ò¯ÐºÑ\82елÑ\83Ñ\96 [[Special:Log/upload|жүкÑ\82елÑ\96 Ð¶Ñ\83Ñ\80налÑ\8bна]], Ð°Ð» Ð¶Ð¾Ð¹Ñ\8bлÒ\93ан Ñ\84айлдаÑ\80 [[Special:Log/delete|жойÑ\8bлÑ\83 Ð¶Ñ\83Ñ\80налÑ\8bна]] Ð¶Ð°Ð·Ñ\8bладÑ\8b.\n\nСÑ\83Ñ\80еÑ\82Ñ\82Ñ\96 Ð¼Ð°Ò\9bалаÒ\93а Ò\9bоÑ\81Ñ\83 Ò¯Ñ\88Ñ\96н ÐºÐµÐ»ÐµÑ\81Ñ\96 Ñ\82Ó\99Ñ\81Ñ\96лдеÑ\80дÑ\96 Ò\9bолданÑ\8bÒ£Ñ\8bз:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' Ñ\84айлдÑ\8bÒ£ Ñ\82олÑ\8bÒ\9b Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bн Ð¾Ñ\80наÑ\82Ñ\83 Ò¯Ñ\88Ñ\96н;\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Ñ\81Ñ\83Ñ\80еÑ\82 Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bбÑ\8b]]</nowiki></code>''' 200px ÐºÑ\96Ñ\88Ñ\96Ñ\80ейÑ\82Ñ\96лген Ñ\84айлдÑ\8b Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bбÑ\8bн Ò\9bоÑ\81Ñ\8bп Ñ\81ол Ð¶Ð°Ò\9bÒ\9bа Ð¾Ñ\80налаÑ\81Ñ\82Ñ\8bÑ\80Ñ\83;\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' Ñ\82ек Ñ\84айлÒ\93а Ñ\81Ñ\96лÑ\82еме Ð¶Ð°Ñ\81аÑ\83 Ò¯Ñ\88Ñ\96н.",
+       "uploadtext": "ТөмендегÑ\96 Ð¿Ñ\96Ñ\88Ñ\96ндÑ\96 Ñ\84айлдаÑ\80дÑ\8b Ð¶Ò¯ÐºÑ\82еÑ\83 Ò¯Ñ\88Ñ\96н Ò\9bолданÑ\8bÒ£Ñ\8bз.\nÐ\90лдÑ\8bнда Ð¶Ò¯ÐºÑ\82елген Ñ\84айлдаÑ\80дÑ\8b Ò\9bаÑ\80аÑ\83 Ð½Ðµ Ñ\96здеÑ\83 Ò¯Ñ\88Ñ\96н [[Special:FileList|жүкÑ\82елген Ñ\84айлдаÑ\80 Ñ\82Ñ\96зÑ\96мÑ\96не]] Ð±Ð°Ñ\80Ñ\8bÒ£Ñ\8bз. Ð¡Ð¾Ð½Ð´Ð°Ð¹-аÒ\9b Ñ\84айлдаÑ\80дÑ\8bÒ£ Ð¶Ò¯ÐºÑ\82елÑ\83Ñ\96 [[Special:Log/upload|жүкÑ\82елÑ\83 Ð¶Ñ\83Ñ\80налÑ\8bна]], Ð°Ð» Ð¶Ð¾Ð¹Ñ\8bлÒ\93ан Ñ\84айлдаÑ\80 [[Special:Log/delete|жойÑ\8bлÑ\83 Ð¶Ñ\83Ñ\80налÑ\8bна]] Ð¶Ð°Ð·Ñ\8bладÑ\8b.\n\nФайлдÑ\8b Ð¼Ð°Ò\9bалаÒ\93а Ò\9bоÑ\81Ñ\83 Ò¯Ñ\88Ñ\96н ÐºÐµÐ»ÐµÑ\81Ñ\96 Ñ\82Ó\99Ñ\81Ñ\96лдеÑ\80дÑ\96 Ò\9bолданÑ\8bÒ£Ñ\8bз:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> Ñ\84айлдÑ\8bÒ£ Ñ\82олÑ\8bÒ\9b Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bн Ð¾Ñ\80наÑ\82Ñ\83 Ò¯Ñ\88Ñ\96н;\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Ñ\81Ñ\83Ñ\80еÑ\82 Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bбÑ\8b]]</nowiki></code></strong> 200px ÐºÑ\96Ñ\88Ñ\96Ñ\80ейÑ\82Ñ\96лген Ñ\84айлдÑ\8b Â«Ñ\84айл Ñ\82аÒ\9bÑ\8bÑ\80Ñ\8bбÑ\8b» Ñ\81ипаÑ\82Ñ\82амаÑ\81Ñ\8bн Ò\9bоÑ\81Ñ\8bп Ñ\81ол Ð¶Ð°Ò\9bÒ\9bа Ð¾Ñ\80налаÑ\81Ñ\82Ñ\8bÑ\80Ñ\83;\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> Ñ\84айл ÐºÓ©Ñ\80Ñ\81еÑ\82Ñ\96лÑ\83Ñ\96нÑ\81Ñ\96з Ñ\84айлÒ\93а Ñ\82Ñ\96келеÑ\83 Ñ\81Ñ\96лÑ\82еÑ\83 Ò¯Ñ\88Ñ\96н",
        "upload-permitted": "Рұқсат етілген файл түрлері: $1.",
        "upload-preferred": "Ұнамды файл түрлері $1.",
        "upload-prohibited": "Рұқсат етілмеген файл түрлері: $1.",
        "linkshere": "'''[[:$1]]''' дегенге мына беттер сілтейді:",
        "nolinkshere": "'''[[:$1]]''' дегенге еш бет сілтемейді.",
        "nolinkshere-ns": "Таңдалған есім кеңістігінде '''[[:$1]]''' дегенге ешқандай бет сілтемейді.",
-       "isredirect": "айдаÑ\82у беті",
+       "isredirect": "баÒ\93Ñ\8bÑ\82Ñ\82ау беті",
        "istemplate": "кірікбет",
        "isimage": "файл сілтемесі",
        "whatlinkshere-prev": "{{PLURAL:$1|алдыңғы|алдыңғы $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|келесі|келесі $1}}",
        "whatlinkshere-links": "← сілтемелер",
-       "whatlinkshere-hideredirs": "айдаÒ\93Ñ\8bÑ\88Ñ\82арды $1",
-       "whatlinkshere-hidetrans": "кірікбеттерді $1",
+       "whatlinkshere-hideredirs": "Ð\91аÒ\93Ñ\8bÑ\82Ñ\82аÑ\83Ñ\88Ñ\8bларды $1",
+       "whatlinkshere-hidetrans": "кіріcтірілген беттерді $1",
        "whatlinkshere-hidelinks": "сілтемелерді $1",
        "whatlinkshere-hideimages": "файл сілтемелерін $1",
        "whatlinkshere-filters": "Сүзгілер",
index 75b6e15..a1ec2dd 100644 (file)
        "noname": "ನೀವು ಸರಿಯಾದ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ಸೂಚಿಸಿಲ್ಲ.",
        "loginsuccesstitle": "ಲಾಗಿನ್ ಯಶಸ್ವಿ",
        "loginsuccess": "ನೀವು ಈಗ \"$1\" ಆಗಿ ವಿಕಿಪೀಡಿಯಕ್ಕೆ ಲಾಗಿನ್ ಆಗಿದ್ದೀರಿ.",
-       "nosuchuser": "\"$1\" ಹೆಸರಿನ ಯಾವ ಸದಸ್ಯರೂ ಇಲ್ಲ.\nಕಾಗುಣಿತವನ್ನು ಪರೀಕ್ಷಿಸಿ, ಅಥವಾ [[Special:UserLogin/signup|ಹೊಸ ಸದಸ್ಯತ್ವ ಖಾತೆಯನ್ನು ಸೃಷ್ಟಿಸಿ]].",
+       "nosuchuser": "\"$1\" à²¹à³\86ಸರಿನ à²¯à²¾à²µ à²¸à²¦à²¸à³\8dಯರà³\82 à²\87ಲà³\8dಲ.\nಸದಸà³\8dಯನಾಮದಲà³\8dಲಿ à²²à²\98à³\81 à²®à²¤à³\8dತà³\81 à²¦à³\80ರà³\8dà²\98 à²\85à²\95à³\8dಷರà²\97ಳಲà³\8dಲಿ à²µà³\8dಯತà³\8dಯಾಸವಿದà³\86.\nà²\95ಾà²\97à³\81ಣಿತವನà³\8dನà³\81 à²ªà²°à³\80à²\95à³\8dಷಿಸಿ, à²\85ಥವಾ [[Special:UserLogin/signup|ಹà³\8aಸ à²¸à²¦à²¸à³\8dಯತà³\8dವ à²\96ಾತà³\86ಯನà³\8dನà³\81 à²¸à³\83ಷà³\8dà²\9fಿಸಿ]].",
        "nosuchusershort": "\"$1\" ಹೆಸರಿನ ಸದಸ್ಯರು ಯಾರೂ ಇಲ್ಲ.\nಹೆಸರಲ್ಲಿ ಕಾಗುಣಿತ ತಪ್ಪಿದೆಯೆ ಎಂದು ಪರೀಕ್ಷಿಸಿ.",
        "nouserspecified": "ನೀವು ಒಂದು ಸದಸ್ಯತ್ವದ ಹೆಸರನ್ನು ಸೂಚಿಸಬೇಕು.",
        "login-userblocked": "ಈ ಬಳಕೆದಾರರನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. ಲಾಗಿನ್ ಆಗಲು ಸಾದ್ಯವಿಲ್ಲ.",
        "badsiglength": "ನಿಮ್ಮ ಅಡ್ಡಹೆಸರು ತುಂಬಾ ಉದ್ದವಾಗಿದೆ.\nಅದು $1 {{PLURAL:$1|ಅಕ್ಷರಕ್ಕಿಂತ|ಅಕ್ಷರಗಳಿಗಿಂತ}} ಕಡಿಮೆ ಇರಬೇಕು.",
        "yourgender": "ಲಿಂಗ:",
        "gender-unknown": "ನಾನು ಹೇಳಲಿಚ್ಛಿಸುವುದಿಲ್ಲ",
-       "gender-male": "à²\97à²\82ಡಸà³\81",
-       "gender-female": "ಸà³\8dತà³\8dರà³\80",
+       "gender-male": "à²\85ವನà³\81 à²µà²¿à²\95ಿ à²ªà³\81à²\9fà²\97ಳನà³\8dನà³\81 à²¸à²\82ಪಾದಿಸà³\81ತà³\8dತಾನà³\86",
+       "gender-female": "à²\85ವಳà³\81 à²µà²¿à²\95ಿ à²ªà³\81à²\9fà²\97ಳನà³\8dನà³\81 à²¸à²\82ಪಾದಿಸà³\81ತà³\8dತಾಳà³\86",
        "email": "ಇ-ಅಂಚೆ",
        "prefs-help-realname": "ನಿಜ ಹೆಸರು ನೀಡುವುದು ಐಚ್ಛಿಕ. ನೀವು ಅದನ್ನು ನೀಡಿದಲ್ಲಿ ನಿಮ್ಮ ಕಾಣಿಕೆಗಳಿಗೆ ನಿಮಗೆ ಮನ್ನಣೆ ನೀಡಲಾಗುವುದು.",
        "prefs-help-email": "ಇ-ಅಂಚೆ ವಿಳಾಸ ಕಡ್ಡಾಯವಲ್ಲ, ಆದರೆ ನೀವು ಅದನ್ನು ನೀಡಿದರೆ ನೀವು ನಿಮ್ಮ ಪ್ರವೇಶ ಪದವನ್ನು ಮರೆತರೆ ಅದನ್ನು ನಿಮಗೆ ಇ-ಅಂಚೆಯಿಂದ ಕಳುಹಿಸಿಬಹುದು.",
index 740b2da..d9149c3 100644 (file)
        "watchlistedit-clear-done": "주시문서 목록을 지웠습니다.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|제목 1개|제목 $1개}}를 제거했습니다:",
        "watchlistedit-too-many": "여기에 보여질 문서가 너무 많습니다.",
-       "watchlisttools-clear": "주시문서 목록 우기",
+       "watchlisttools-clear": "주시문서 목록 우기",
        "watchlisttools-view": "주시문서 최근 바뀜",
        "watchlisttools-edit": "주시문서 목록 보기/편집하기",
        "watchlisttools-raw": "주시문서 목록 직접 편집하기",
index 557ecc9..9df273c 100644 (file)
        "rollbacklinkcount-morethan": "méi wéi {{PLURAL:$1|Eng Ännerung|$1 Ännerungen}} zrécksetzen",
        "rollbackfailed": "Zrécksetzen huet net geklappt",
        "cantrollback": "Lescht Ännerung kann net zréckgesat ginn. De leschten Auteur ass deen eenzegen Auteur vun dëser Säit.",
-       "alreadyrolled": "Déi lescht Ännerung vun der Säit [[:$1]] vum [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);; kann net zréckgesat ginn;\neen Aneren huet dat entweder scho gemaach oder nei Ännerungen agedroen.\n\nDéi lescht Ännerung vun der Säit ass vum [[User:$3|$3]] ([[User talk:$3|Diskussioun]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
+       "alreadyrolled": "Déi lescht Ännerung vun der Säit [[:$1]] vum [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); kann net zréckgesat ginn;\neen Aneren huet dat entweder scho gemaach oder nei Ännerungen agedroen.\n\nDéi lescht Ännerung vun der Säit war vum [[User:$3|$3]] ([[User talk:$3|Diskussioun]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "De Resumé vun der Ännerung war: \"''$1''\".",
        "revertpage": "Ännerunge vum [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskussioun]]) zréckgesat op déi lescht Versioun vum [[User:$1|$1]]",
        "revertpage-nouser": "Zréckgesaten Ännerungen duerch e verstoppte Benotzer op déi lescht Versioun vum {{GENDER:$1|[[User:$1|$1]]}}",
index a2772df..0cbc6c4 100644 (file)
        "blockedtitle": "Ütènsa blocàda",
        "blockedtext": "'''El to nom del druvadur o el to indirizz IP l'è stat blucaa.'''\n\nEl bloch l'è stat fat da $1.\nEl mutiv per el bloch l'è: ''$2''\n\n* Principi del bloch: $8\n* Scadenza del bloch: $6\n* Blucaa: $7\n\nSe a vurii, a pudii cuntatà $1 o un olter [[{{MediaWiki:Grouppage-sysop}}|aministradur]] per discüt el bloch.\n\nFeegh a ment che la funzion 'Manda un email a quel druvadur chì' l'è mia ativa se avii mia registraa un indirizz e-mail valid ind i voster [[Special:Preferences|preferenz]] o se l'üsagg de 'sta funzion l' è stat blucaa.\n\nL'indirizz IP curent l'è $3, el nümer ID del bloch l'è #$5.\nFee el piasè d'inclüd tüt i detaj chì de sura in qualsessìa dumanda che a decidii de fà.",
        "blockednoreason": "Gh'è stat dat nisü mutìf",
+       "loginreqtitle": "Autenticasiù nesesària",
        "loginreqlink": "autenticàs (fà 'l log-in)",
        "loginreqpagetext": "Per véder le otre pàgine ghe öl $1.",
        "accmailtitle": "Password mandàda",
        "newarticletext": "Te seet andaa adree a un ligam a una pagina che la esista gnamò.\nPer creà la pagina, a l'è assee che te tachet a scriv in del box desota (varda la [$1 pagina de vüt] per savèn püssee).\nSe te seet chì per erur, schiscia \"indree\" in sül tò browser.",
        "anontalkpagetext": "''Questa chí a l'é la pagina da ciciarada d'un druvadur che l'ha nonanmò registraa un cünt, o che 'l le dröva mia.\nPer 'sta reson chí, el pò vess identificaa dumà cunt el sò indirizz nümereg de IP.\n'Stu indirizz IP el pö vess druvaa da püssee d'un druvadur. Se te seet un druvadur anònim e te someja che un quaj messagg al ga nagòt à vidé con de ti, prœuva a [[Special:UserLogin/signup|creà 'n ütènsa nöa]] o [[Special:UserLogin|regìstret con chèla che te g'hét zà]] inscì de minga vess scunfundüü anmò con quaj alter ütent anomim.''",
        "noarticletext": "Per 'l mument quela pagina chì l'è vöja. Te pòdet [[Special:Search/{{PAGENAME}}|cercà quel articul chì]] int i alter paginn, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercà int i register imparentaa], o sedenò [{{fullurl:{{FULLPAGENAME}}|action=edit}} mudifichè 'sta pagina chì adess-adess]</span>.",
+       "noarticletext-nopermission": "Per 'l mument quela pagina chì l'è vöja. Te pòdet [[Special:Search/{{PAGENAME}}|cercà quel articul chì]] int i alter paginn, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cercà int i register imparentaa], ma te gh'ét nò i permiss per creà-la</span>.",
+       "userpage-userdoesnotexist": "L'ütènsa \"$1\" l'è mìa registràda. Arda bé semài che te ölet creàla o mudificàa adilbù.",
+       "userpage-userdoesnotexist-view": "L'ütènsa \"$1\" l'è mìa registràda.",
+       "blocked-notice-logextract": "Per el mument quel druvadur chì l'è blucaa. L'ültima entrada int el register di bloch l'è repurtada chì de suta per riferiment:",
        "clearyourcache": "'''Nòta:''' dòpu che avii salvaa, pudaría véss neçessari de scancelá la memòria \"cache\" dal vòst prugráma də navigazziún in reet par vidé i mudifich faa. '''Mozilla / Firefox / Safari:''' tegní schiscjaa al butún ''Shift'' intaant che sə clica ''Reload'', upüür schiscjá ''Ctrl-Shift-R'' (''Cmd-Shift-R'' sül Apple Mac); '''IE:''' schiscjá ''Ctrl'' intaant che sə clica ''Refresh'', upüür schiscjá ''Ctrl-F5''; '''Konqueror:''': semplicemeent clicá al butún ''Reload'', upüür schiscjá ''F5''; '''Opera''' i üteent pudarían vech büsögn da scancelá cumpletameent la memòria \"cache\" in ''Tools&rarr;Preferences''.",
        "updated": "(Agiurnàt)",
        "note": "<strong>Ocio:</strong>",
        "permissionserrorstext-withaction": "Te gh'hee minga i permiss per $2, per {{PLURAL:$1|quela resón chì |quij resón chì}}:",
        "recreate-moveddeleted-warn": "'''Ocio: te see adree a creà turna una pagina che l'eva giamò stada scancelada.'''\n\nCuntrulee se l'è propi el cas de cuntinuà a mudifegà 'sta pagina chì.\nPer cumudità, la lista di scancelament e di San Martìn l'è ripurtada chi de suta:",
        "log-fulllog": "Arda el log compléto",
+       "edit-hook-aborted": "L'hook el g'ha anulàt la mudìfica e 'l g'ha dat nesöna spiegasiù.",
        "edit-gone-missing": "Se pöl mìa agiurnà la pàgina.\nPar che la sàpe stàda scancelàda.",
        "edit-conflict": "Cunflit de edisiù",
+       "edit-no-change": "La modifica l'è stàda ignuràda perchè gh'è mìa stat fat cambiamèncc al test.",
        "postedit-confirmation-created": "La pàgina l'è stàda creàda.",
        "postedit-confirmation-restored": "La pàgina l'è stàda ripristinàda.",
        "postedit-confirmation-saved": "La tò mudìfica l'è stàda memurizàda.",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "undo-summary": "Scancelada la mudifega $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|Ciciarada]])",
+       "cantcreateaccounttitle": "Impusìbol creà 'n ütènt",
+       "cantcreateaccount-text": "La creasiù de ütènse de part de chèsto indirìs IP (<strong>$1</strong>) l'è stàda blocàda de l'ütènt [[User:$3|$3]]. El mutìf specificàt de $3 l'è <em>$2</em>",
+       "cantcreateaccount-range-text": "La creasiù de ütènse de part de indirìs IP endèl interval '''$1''', del qual el fà part apò a 'l tò ('''$4'''), l'è stàda blocàda de [[User:$3|$3]].\n\nEl mutìf specificàt de $3 l'è ''$2''.",
        "viewpagelogs": "Varda i register de quela pagina chì",
+       "nohistory": "El sistéma el rìa mìa a catà la crunulugìa de le versiù de chèsta pàgina.",
        "currentrev": "Versiù de adès",
        "currentrev-asof": "Versión curenta di $1",
        "revisionasof": "Revisión $1",
        "history-feed-title": "Crunulugìa",
        "history-feed-description": "Crunulogia de la pàgina sö la wiki",
        "history-feed-item-nocomment": "$1 el $2",
+       "history-feed-empty": "La pàgina che te sét dré a sercà la gh'è mìa; pöl das che la sàpe stàda scancelàda o spostàda. Arda bé co la [[Special:Search|pàgina de ricérca]] semài che gh'è dele pàgine nöe.",
+       "rev-deleted-comment": "(Ogèt de la mudìfica scancelàt)",
+       "rev-deleted-user": "(nòm de ütènt scancelàt)",
+       "rev-deleted-event": "(asiù del log scancelàda)",
+       "rev-deleted-user-contribs": "[nòm ütènt o indirìs IP scancelàt - mudìfica scundìda de la crunulugìa]",
        "rev-deleted-text-permission": "Questa version de la pagina l'è stada '''scancelada'''.\nPer infurmazion, varda ind el [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} register di scancelament].",
        "rev-delundel": "fa vidè/scund",
        "rev-showdeleted": "Fà ved",
+       "revisiondelete": "Scancèla o riprìstina versiù",
+       "revdelete-nooldid-title": "Versiù mìa specificàda",
+       "revdelete-no-file": "L'archivi specificàt l'ezìste mìa",
        "revdelete-show-file-submit": "Sé",
        "revdelete-hide-text": "Test de la versiù",
        "revdelete-hide-image": "Scont el contenùto de l'archivi",
        "grouppage-sysop": "{{ns:project}}:Aministradur",
        "right-edit": "Edita pàgini",
        "right-createaccount": "Crea cünt de dovratt bej-e növ",
+       "right-delete": "Scancelà pàgine",
+       "right-siteadmin": "Blocà e desblocà el database",
        "newuserlogpage": "Register di ütent növ",
        "rightslog": "Dirit di druvat",
+       "action-read": "lèzer chèsta pàgina",
        "action-edit": "mudifega quela pagina chì",
+       "action-createpage": "creà pàgine",
+       "action-createtalk": "creà pàgine de discusiù",
+       "action-createaccount": "creà chèsta ütènsa",
+       "action-history": "ardà la crunulugìa de chèsta pàgina",
+       "action-minoredit": "segnà chèsta mudìfica come picinìna",
+       "action-move": "spostà chèsta pàgina",
+       "action-move-categorypages": "spostà le categurìe",
        "action-movefile": "Spòsta chèsto archivi",
        "action-upload": "Càrga sö chèsto archivi",
        "action-reupload": "surascrìf chèsto archivi (che l'ezìste zà)",
+       "action-upload_by_url": "cargà chèsto archivi de 'n indirìs URL",
+       "action-writeapi": "doprà le API en scritüra",
+       "action-delete": "scancelà chèsta pàgina",
+       "action-deleterevision": "scancelà chèsta versiù",
+       "action-deletedhistory": "ardà la crunulugìa scancelàda de chèsta pàgina",
+       "action-browsearchive": "sercà pàgine scancelàde",
+       "action-undelete": "ripristinà chèsta pàgina",
+       "action-suppressrevision": "riéder e ripristinà le mudìfiche scundìde",
+       "action-suppressionlog": "éder chèsto regìster privàt",
+       "action-protect": "cambià i leèi de protesiù de chèsta pàgina",
+       "action-import": "emportà pàgine de le ótre wiki",
+       "action-importupload": "emportà pàgine col upload de archivi",
+       "action-patrol": "segnà le mudìfiche dei óter ütèncc come verificàde",
+       "action-autopatrol": "segnà le tò mudìfiche come verificàde",
+       "action-userrights": "cambià töcc i permès dei ütèncc",
+       "action-userrights-interwiki": "cambià i permès dei ütèncc de le ótre wiki",
+       "action-siteadmin": "blocà o sblocà el database",
        "action-sendemail": "mànda e-mail",
+       "action-editmywatchlist": "cambià la lìsta dei tò oservàcc speciài",
+       "action-viewmywatchlist": "ardà la lìsta dei tò oservàcc speciài",
+       "action-viewmyprivateinfo": "ardà le tò informasiù personài",
+       "action-editmyprivateinfo": "cambià le tò informasiù personài",
        "nchanges": "$1 {{PLURAL:$1|mudifega|mudifegh}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|de l'öltima vìzita}}",
        "enhancedrc-history": "crunulugìa",
        "statistics-users-active-desc": "Druvadur che i hann faa un'azión int {{PLURAL:$1|l'ültem dì|i ültem $1 dì}}",
        "pageswithprop-submit": "Và",
        "doubleredirects": "Redirezziún dópi",
+       "double-redirect-fixer": "Coretùr de redirects",
        "brokenredirects": "Redirezziún interótt",
+       "brokenredirectstext": "I redirects ché sóta i pùnta a pàgine che gh'è mìa:",
        "brokenredirects-edit": "mudifega",
        "brokenredirects-delete": "scancèla",
+       "withoutinterwiki": "Pàgine sènsa interwiki",
        "withoutinterwiki-legend": "Prefìs",
        "withoutinterwiki-submit": "Fà ved",
+       "fewestrevisions": "Pàgine con piö póche reviziù",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
+       "ncategories": "$1 {{PLURAL:$1|categuria|Categurie}}",
+       "ninterwikis": "$1 {{PLURAL:$1|interwiki}}",
+       "nlinks": "$1 {{PLURAL:$1|colegament|colegamencc}}",
        "nmembers": "$1 {{PLURAL:$1|element|element}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|elemènt|elemèncc}}",
+       "nrevisions": "$1 {{PLURAL:$1|reviziù}}",
+       "nviews": "$1 {{PLURAL:$1|vìzita|vìzite}}",
+       "nimagelinks": "Dopràt sö $1 {{PLURAL:$1|pàgina|pàgine}}",
+       "ntransclusions": "dopràt sö $1 {{PLURAL:$1|pàgina|pàgine}}",
+       "specialpage-empty": "Chèsta pàgina speciàl al momènt l'è öda.",
+       "lonelypages": "Pàgine òrfane",
+       "lonelypagestext": "Le pàgine elencàde ché sóta le g'ha mìa colegamèncc che é de ótre pàgine de {{SITENAME}} e i è mìa dét en nesöna ótra pàgina del sit.",
        "uncategorizedpages": "Paginn ch'i gh'hann mía de categuria",
        "uncategorizedcategories": "Categurij mía categurizaa",
        "uncategorizedimages": "''File'' ch'i gh'hann mía de categuria.",
        "uncategorizedtemplates": "Mudel ch'i gh'hann mía de categuria.",
        "unusedcategories": "Categurij mía druvaa",
        "unusedimages": "Imagin mia druvaa",
+       "popularpages": "Pàgine éste piö de spès",
        "wantedcategories": "Categurij ricercaa",
        "wantedpages": "Pagin ricercaa",
        "mostlinked": "Püssè ligaa a pagin",
        "mostlinkedcategories": "Categurij cun püssee ligamm",
+       "mostlinkedtemplates": "Mudèi dopràcc piö de spès",
        "mostcategories": "Articui cun püssee categurij",
        "mostimages": "Püssè ligaa a imagin",
+       "mostinterwikis": "Pàgine con piö tacc interwikis",
        "mostrevisions": "Articui cun püssè revisiún",
        "prefixindex": "Tüt i paginn cun prefiss",
        "shortpages": "Paginn püssee cürt",
        "longpages": "Paginn püssee lungh",
        "deadendpages": "Pagin senza surtida",
+       "protectedpages": "Pàgine prutigìde",
+       "protectedpages-indef": "Apéna protesiù infinìte",
        "protectedpages-noredirect": "Scond i redirezion (redirect)",
        "listusers": "Lista di dupradur registraa",
        "listusers-editsonly": "Mustra dumà i dupradur cun di mudifegh",
index bc2ad0f..7ace554 100644 (file)
        "pool-timeout": "Fe-potoana voahoatra ho an'ny hidy.",
        "pool-queuefull": "Feno ny lisitry ny asa hatao",
        "pool-errorunknown": "Tsi-fetezana tsy fantatra",
+       "pool-servererror": "Tsy mandeha ny rahraha fanisana ($1).",
        "aboutsite": "Mombamomba ny {{SITENAME}}",
        "aboutpage": "Project:Mombamomba",
        "copyright": "Ny lisansa $1 no mamehy ny fampiasana ity voatoatiny ity.",
        "edit-gone-missing": "Tsy afaka natao update ilay pejy.\nMety voafafa angamba izy.",
        "edit-conflict": "Adi-panovàna.",
        "edit-no-change": "Tsy norarahian'ny rindrankajy ny fanovanao satria tsy nanova ny lahatsoratra ianao.",
+       "postedit-confirmation-created": "Voaforona ilay pejy.",
+       "postedit-confirmation-restored": "Tafaverina ilay pejy.",
        "postedit-confirmation-saved": "Voatahiry ny fanovanao.",
        "edit-already-exists": "Tsy afaka amboarina ilay pejy vaovao.\nEfa misy izy.",
        "defaultmessagetext": "Hafatra raha tsy misy",
        "parser-template-recursion-depth-warning": "Fetran'ny halalin'ny fiantsoana endrika voahoatra ($1).",
        "language-converter-depth-warning": "Mihoatra ny fetran-kalalin'ny mpamadika teny ($1)",
        "node-count-exceeded-category": "Pejy izay ahitana fihoatran'ny isam-patotra (node)",
+       "node-count-exceeded-category-desc": "Sokajy ho an'ny pejy ahitana isan'ny naody mihoatra.",
        "node-count-exceeded-warning": "Pejy manana isam-patotra mihoatra",
        "expansion-depth-exceeded-category": "Pejy manana halalim-panitarana mihoatra",
+       "expansion-depth-exceeded-category-desc": "Sokajy ho an'ny pejy ahitana halalim-piitarana mihoatra.",
        "expansion-depth-exceeded-warning": "Pejy manana halalim-panitarana mihoatra",
        "parser-unstrip-loop-warning": "Nahitana tondro mifolaka tsy azo vahana",
        "parser-unstrip-recursion-limit": "Tafahoatra ny fetra avo ny fetra recursion ($1)",
        "prefs-emailconfirm-label": "Famarinana ny imailaka :",
        "youremail": "Imailaka:",
        "username": "{{GENDER:$1}}Anaram-pikambana :",
-       "uid": "{{GENDER:$1}}mpikambana :",
        "prefs-memberingroups": "Mpikambana{{GENDER:$2}} ao amin'ny vondrona{{PLURAL:$1}}:",
        "prefs-registration": "Daty fidirana :",
        "yourrealname": "Tena anarana marina:",
        "log-title-wildcard": "Hitady amin'ny lohateny manomboka amin'io soratra io",
        "showhideselectedlogentries": "Haneho/Hanafina ny iditry ny laogy nofidiana",
        "allpages": "Pejy rehetra",
-       "alphaindexline": "$1 hatramin'ny $2",
        "nextpage": "Pejy manaraka ($1)",
        "prevpage": "Pejy taloha ($1)",
        "allpagesfrom": "Asehoy ny pejy manomboka ny:",
index 3729789..7a7d9b3 100644 (file)
        "parser-template-recursion-depth-warning": "ഫലകത്തിന്റെ പുനരാവർത്തന ആഴത്തിന്റെ പരിധി കഴിഞ്ഞിരിക്കുന്നു ($1)",
        "language-converter-depth-warning": "ഭാഷ മാറ്റൽ ഉപകരണത്തിന്റെ ആഴത്തിന്റെ പരിധി കവിഞ്ഞിരിക്കുന്നു ($1)",
        "node-count-exceeded-category": "നോഡ്-എണ്ണം അധികരിച്ച താളുകൾ",
+       "node-count-exceeded-category-desc": "നോഡ്-എണ്ണം അധികരിച്ച താളുകൾക്കുള്ള വർഗ്ഗം.",
        "node-count-exceeded-warning": "താൾ നോഡ്-എണ്ണം അധികരിച്ചിരിക്കുന്നു",
        "expansion-depth-exceeded-category": "വികസന ആഴം അധികരിച്ച താളുകൾ",
+       "expansion-depth-exceeded-category-desc": "വികസന ആഴം അധികരിച്ച താളുകൾക്കുള്ള വർഗ്ഗം.",
        "expansion-depth-exceeded-warning": "താളിന്റെ വികസന ആഴം അധികരിച്ചിരിക്കുന്നു",
        "parser-unstrip-loop-warning": "അൺസ്ട്രിപ്പ് (Unstrip) പാഴ്സർ ഫങ്ഷനിൽ കുരുക്ക് കണ്ടെത്തി",
        "parser-unstrip-recursion-limit": "അൺസ്ട്രിപ്പ് (Unstrip) പാഴ്സർ ഫങ്ഷന്റെ പുനരാവർത്തന പരിധി അധികരിച്ചിരിക്കുന്നു ($1)",
        "action-move": "ഈ താൾ മാറ്റുക",
        "action-move-subpages": "ഈ താളും ഇതിന്റെ ഉപതാളുകളും നീക്കുക",
        "action-move-rootuserpages": "ഉപയോക്താവിന്റെ അടിസ്ഥാന താൾ മാറ്റുക",
+       "action-move-categorypages": "വർഗ്ഗ താളുകൾ മാറ്റുക",
        "action-movefile": "ഈ പ്രമാണം നീക്കുക",
        "action-upload": "ഈ പ്രമാണം അപ്‌ലോഡ് ചെയ്യുക",
        "action-reupload": "നിലവിലുള്ള പ്രമാണത്തിന്റെ ഉപരിയായി സ്ഥാപിക്കുക",
        "pageswithprop-submit": "പോകൂ",
        "doubleredirects": "ഇരട്ട തിരിച്ചുവിടലുകൾ",
        "doubleredirectstext": "ഈ താളിൽ ഒരു തിരിച്ചുവിടലിൽ നിന്നും മറ്റു തിരിച്ചുവിടൽ താളുകളിലേയ്ക്ക് പോകുന്ന താളുകൾ കൊടുത്തിരിക്കുന്നു. ഓരോ വരിയിലും ഒന്നാമത്തേയും രണ്ടാമത്തേയും തിരിച്ചുവിടൽ താളിലേക്കുള്ള കണ്ണികളും, രണ്ടാമത്തെ തിരിച്ചുവിടൽ താളിൽ നിന്നു ശരിയായ ലക്ഷ്യതാളിലേക്കുള്ള കണ്ണികളും ഉൾക്കൊള്ളുന്നു.\n<del>വെട്ടിക്കൊടുത്തിരിക്കുന്നവ</del> ശരിയാക്കിയവയാണ്.",
-       "double-redirect-fixed-move": "[[$1]] മാറ്റിയിരിക്കുന്നു.\nഇത് ഇപ്പോൾ [[$2]] എന്നതിലേയ്ക്ക് തിരിച്ചുവിടപ്പെട്ടിരിക്കുന്നു.",
-       "double-redirect-fixed-maintenance": "[[$1]] എന്ന താളിൽ നിന്ന് [[$2]] എന്ന താളിലേയ്ക്കുള്ള ഇരട്ട തിരിച്ചുവിടൽ ശരിയാക്കുന്നു.",
+       "double-redirect-fixed-move": "[[$1]] മാറ്റിയിരിക്കുന്നു.\nഇത് ഇപ്പോൾ സ്വയം പുതുക്കപ്പെട്ട് [[$2]] എന്നതിലേയ്ക്ക് തിരിച്ചുവിടപ്പെട്ടിരിക്കുന്നു.",
+       "double-redirect-fixed-maintenance": "[[$1]] à´\8eà´¨àµ\8dà´¨ à´¤à´¾à´³à´¿àµ½ à´¨à´¿à´¨àµ\8dà´¨àµ\8d [[$2]] à´\8eà´¨àµ\8dà´¨ à´¤à´¾à´³à´¿à´²àµ\87à´¯àµ\8dà´\95àµ\8dà´\95àµ\81à´³àµ\8dà´³ à´\87à´°à´\9fàµ\8dà´\9f à´¤à´¿à´°à´¿à´\9aàµ\8dà´\9aàµ\81വിà´\9fൽ à´ªà´°à´¿à´ªà´¾à´²à´¨à´\9càµ\8bലിà´\95ൾà´\95àµ\8dà´\95à´¿à´\9fàµ\86 à´¸àµ\8dവയà´\82 à´¶à´°à´¿à´¯à´¾à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81.",
        "double-redirect-fixer": "തിരിച്ചുവിടൽ ശരിയാക്കിയത്",
        "brokenredirects": "മുറിഞ്ഞ തിരിച്ചുവിടലുകൾ",
        "brokenredirectstext": "താഴെക്കാണുന്ന തിരിച്ചുവിടലുകൾ നിലവിലില്ലാത്ത താളുകളിലേയ്ക്കാണ്‌:",
        "watchnologin": "ലോഗിൻ ചെയ്തിട്ടില്ല",
        "addwatch": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിലേക്കു ചേർക്കുക",
        "addedwatchtext": "താങ്കൾ [[Special:Watchlist|ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിലേക്ക്]] \"[[:$1]]\" എന്ന ഈ താൾ ചേർത്തിരിക്കുന്നു. ഇനി മുതൽ ഈ താളിലും ബന്ധപ്പെട്ട സം‌വാദം താളിലും ഉണ്ടാകുന്ന മാറ്റങ്ങൾ ആ പട്ടികയിൽ ദൃശ്യമാവും.",
+       "addedwatchtext-short": "\"$1\" എന്ന താൾ താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടികയിലേക്ക് ചേർത്തു.",
        "removewatch": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ നിന്നും ഒഴിവാക്കുക",
        "removedwatchtext": "താങ്കൾ [[Special:Watchlist|ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ]] നിന്നും \"[[:$1]]\" എന്ന താൾ നീക്കം ചെയ്തിരിക്കുന്നു.",
+       "removedwatchtext-short": "\"$1\" എന്ന താൾ താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടികയിൽ നിന്ന് നീക്കി.",
        "watch": "മാറ്റങ്ങൾ ശ്രദ്ധിക്കുക",
        "watchthispage": "ഈ താൾ ശ്രദ്ധിക്കുക",
        "unwatch": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ നിന്നു മാറ്റുക",
        "movepagetalktext": "'''ബന്ധപ്പെട്ട സം‌വാദത്താൾ സ്വയം മാറ്റപ്പെടാതിരിക്കാനുള്ള കാരണങ്ങൾ'''\n*അതേ പേരിൽ തന്നെ ശൂന്യമല്ലാത്ത ഒരു സം‌വാദത്താൾ നിലവിലുണ്ടെങ്കിൽ\n*താങ്കൾ താഴെയുള്ള ചെൿബോക്സ് ഉപയോഗിച്ചിട്ടില്ലെങ്കിൽ\n\nഅത്തരം സന്ദർഭങ്ങളിൽ സം‌വാദത്താളുകൾ താങ്കൾ സ്വയം കൂട്ടിച്ചേർക്കേണ്ടതാണ്.",
        "movearticle": "മാറ്റേണ്ട താൾ",
        "moveuserpage-warning": "'''മുന്നറിയിപ്പ്:''' ഉപയോക്താവിനുള്ള താളാണ് താങ്കൾ മാറ്റാൻ പോകുന്നത്. താൾ മാത്രമേ മാറുകയുള്ളു എന്നും ഉപയോക്താവിന്റെ പേര് ''മാറുകയില്ലെന്നും'' ദയവായി ഓർക്കുക.",
+       "movecategorypage-warning": "<strong>മുന്നറിയിപ്പ്:</strong> താങ്കൾ ഒരു വർഗ്ഗതാൾ മാറ്റാൻ പോവുകയാണ്. ഈ താൾ മാത്രമേ മാറുകയുള്ളുവെന്നും പഴയ വർഗ്ഗത്തിൽ ഉണ്ടായിരുന്ന താളുകളൊന്നും പുനർവർഗ്ഗീകരണം ചെയ്യാത്ത പക്ഷം പുതിയതിലേക്ക് <em>മാറില്ലെന്നും</em> ഓർക്കുക.",
        "movenologintext": "തലക്കെട്ടു മാറ്റാനുള്ള അനുമതി കൈവരിക്കാൻ താങ്കൾ ഒരു രജിസ്റ്റേർഡ് ഉപയോക്താവായിരിക്കുകയും [[Special:UserLogin|ലോഗിൻ ചെയ്തിരിക്കുകയും]] ചെയ്യേണ്ടത് അത്യന്താപേക്ഷിതമാണ്‌.",
        "movenotallowed": "താളുകളുടെ തലക്കെട്ടു മാറ്റുവാനുള്ള അനുവാദം താങ്കൾക്കില്ല.",
        "movenotallowedfile": "പ്രമാണങ്ങൾ മാറ്റാനുള്ള അനുമതി താങ്കൾക്കില്ല.",
        "cant-move-user-page": "ഉപയോക്താവിനുള്ള താളുകളുടെ തലക്കെട്ട് മാറ്റാനുള്ള അനുമതി താങ്കൾക്കില്ല (ഉപതാളുകൾ ഉൾപ്പെടുന്നില്ല).",
        "cant-move-to-user-page": "ഉപയോക്താവിനുള്ള താളിന്റെ തലക്കെട്ടു മാറ്റാനുള്ള അനുമതി താങ്കൾക്കില്ല (ഉപയോക്താവിനുള്ള ഉപതാളുകൾ ഒഴിച്ച്).",
+       "cant-move-category-page": "വർഗ്ഗ താളുകൾ മാറ്റാനുള്ള അനുവാദം താങ്കൾക്കില്ല.",
+       "cant-move-to-category-page": "ഒരു താൾ വർഗ്ഗ താളാക്കി മാറ്റാനുള്ള അനുവാദം താങ്കൾക്കില്ല.",
        "newtitle": "പുതിയ തലക്കെട്ട്:",
        "move-watch": "ഈ താളിലെ മാറ്റങ്ങൾ ശ്രദ്ധിക്കുക",
        "movepagebtn": "താൾ മാറ്റുക",
        "newimages-summary": "ചുരുക്കം",
        "newimages-legend": "അരിപ്പ",
        "newimages-label": "പ്രമാണത്തിന്റെ പേര്‌ (അഥവാ പേരിന്റെ ഭാഗം)",
+       "newimages-showbots": "യന്ത്രങ്ങൾ ചെയ്ത അപ്‌ലോഡുകൾ പ്രദർശിപ്പിക്കുക",
        "noimages": "ഒന്നും കാണാനില്ല.",
        "ilsubmit": "തിരയൂ",
        "bydate": "ദിനക്രമത്തിൽ",
        "watchlistedit-clear-legend": "ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക ശൂന്യമാക്കുക",
        "watchlistedit-clear-explain": "താങ്കൾ ശ്രദ്ധിക്കുന്നവയുടെ പട്ടികയിലെ എല്ലാ തലക്കെട്ടുകളും ഒഴിവാക്കിയിരിക്കുന്നു",
        "watchlistedit-clear-titles": "തലക്കെട്ടുകൾ:",
+       "watchlistedit-clear-submit": "ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക ശൂന്യമാക്കുക (ഇത് സ്ഥിരമായിരിക്കും!)",
+       "watchlistedit-clear-done": "താങ്കളുടെ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക ശൂന്യമാക്കിയിരിക്കുന്നു.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|ഒരു തലക്കെട്ട്|$1 തലക്കെട്ടുകൾ}} ഒഴിവാക്കി:",
+       "watchlistedit-too-many": "പ്രദർശിപ്പിക്കാൻ വളരെയധികം താളുകൾ ഉണ്ട്.",
+       "watchlisttools-clear": "ശ്രദ്ധിക്കുന്നവയുടെ പട്ടിക ശൂന്യമാക്കുക",
        "watchlisttools-view": "ബന്ധപ്പെട്ട മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക",
        "watchlisttools-edit": "ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക കാണുക, തിരുത്തുക",
        "watchlisttools-raw": "താങ്കൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയുടെ മൂലരൂപം തിരുത്തുക",
        "htmlform-no": "ഇല്ല",
        "htmlform-yes": "ശരി",
        "htmlform-chosen-placeholder": "ഒരു ഐച്ഛികം തിരഞ്ഞെടുക്കുക",
+       "htmlform-cloner-create": "കൂടുതൽ ചേർക്കുക",
+       "htmlform-cloner-delete": "നീക്കം ചെയ്യുക",
+       "htmlform-cloner-required": "കുറഞ്ഞത് ഒരു വിലയെങ്കിലും നൽകിയിരിക്കണം.",
        "sqlite-has-fts": "പൂർണ്ണ-എഴുത്ത് തിരച്ചിൽ പിന്തുണയുള്ള $1",
        "sqlite-no-fts": "പൂർണ്ണ-എഴുത്ത് തിരച്ചിൽ പിന്തുണയില്ലാത്ത $1",
        "logentry-delete-delete": "$3 എന്ന താൾ $1 {{GENDER:$2|മായ്ച്ചിരിക്കുന്നു}}",
index 4ba7af1..1889cff 100644 (file)
@@ -16,9 +16,9 @@
        "tog-hidepatrolled": "Aħbi l-modifiki verifikati fit-tibdil riċenti",
        "tog-newpageshidepatrolled": "Aħbi l-paġni verifikati mil-lista tal-paġni l-ġodda",
        "tog-extendwatchlist": "Espandi l-lista ta' osservazzjoni biex turi t-tibdil kollu, u mhux biss dak riċenti",
-       "tog-usenewrc": "Iġbor il-modifiki skont il-paġna fit-tibdil riċenti u fil-lista ta' osservazzjonijiet (bżonn tal-Javascript)",
+       "tog-usenewrc": "Iġbor il-tibdil skont paġna fil-tibdil riċenti u lista' ta paġni osservati",
        "tog-numberheadings": "Numerazzjoni awtomatika tat-titli tas-sezzjonijiet",
-       "tog-showtoolbar": "Uri l-kolonna tal-għodda għall-immodifikar (bżonn tal-JavaScript)",
+       "tog-showtoolbar": "Uri tal-għodda għall-modifikar il-paġni",
        "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-watchcreations": "Żid il-paġni li noħloq u l-fajls li ntella' fil-lista ta' osservazzjoni tiegħi",
        "usermessage-summary": "Messaġġ tas-sistema",
        "usermessage-editor": "Messaġġier tas-sistema",
        "watchlist": "Lista ta' osservazzjoni tiegħi",
-       "mywatchlist": "Lista ta' osservazzjoni",
+       "mywatchlist": "Lista ta' paġni osservati",
        "watchlistfor2": "Tal-utent $1 $2",
        "nowatchlist": "Il-lista ta' osservazzjoni tiegħek hija vojta.",
        "watchlistanontext": "Sabiex tara u timmodifika l-lista ta' osservazzjoni tiegħek, hemm bżonn li $1.",
index 29c48aa..cf6886e 100644 (file)
        "watchnologin": "U bent niet aangemeld",
        "addwatch": "Toevoegen aan volglijst",
        "addedwatchtext": "De pagina \"[[:$1]]\" is toegevoegd aan uw [[Special:Watchlist|volglijst]].\nToekomstige bewerkingen van deze pagina en de bijbehorende overlegpagina worden daar weergegeven.",
-       "addedwatchtext-short": "De pagina \"$1\" is toegevoegd aan uw volglijst.",
+       "addedwatchtext-short": "De pagina \"$1\" is aan uw volglijst toegevoegd.",
        "removewatch": "Verwijderen uit volglijst",
        "removedwatchtext": "De pagina \"[[:$1]]\" is van [[Special:Watchlist|uw volglijst]] verwijderd.",
-       "removedwatchtext-short": "De pagina \"$1\" is verwijderd van uw volglijst.",
+       "removedwatchtext-short": "De pagina \"$1\" is van uw volglijst verwijderd.",
        "watch": "Volgen",
        "watchthispage": "Pagina volgen",
        "unwatch": "Niet volgen",
        "watchlistedit-normal-done": "Er {{PLURAL:$1|is één pagina|zijn $1 pagina’s}} verwijderd van uw volglijst:",
        "watchlistedit-raw-title": "Ruwe volglijst bewerken",
        "watchlistedit-raw-legend": "Ruwe volglijst bewerken",
-       "watchlistedit-raw-explain": "Hieronder staan pagina’s op uw volglijst.\nU kunt de lijst bewerken door pagina’s te verwijderen en toe te voegen.\nEén pagina per regel.\nAls u klaar bent, klik dan op \"{{int:Watchlistedit-raw-submit}}\".\nU kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].",
-       "watchlistedit-raw-titles": "Paginas:",
+       "watchlistedit-raw-explain": "Hieronder staan de pagina's op uw volglijst.\nU kunt de lijst bewerken door pagina's te verwijderen en toe te voegen;\néén pagina per regel.\nAls u klaar bent, klik dan op \"{{int:Watchlistedit-raw-submit}}\".\nU kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].",
+       "watchlistedit-raw-titles": "Pagina's:",
        "watchlistedit-raw-submit": "Volglijst bijwerken",
        "watchlistedit-raw-done": "Uw volglijst is bijgewerkt.",
-       "watchlistedit-raw-added": "Er {{PLURAL:$1|is 1 pagina|zijn $1 paginas}} toegevoegd:",
-       "watchlistedit-raw-removed": "Er {{PLURAL:$1|is 1 pagina|zijn $1 paginas}} verwijderd:",
+       "watchlistedit-raw-added": "Er {{PLURAL:$1|is 1 pagina|zijn $1 pagina's}} toegevoegd:",
+       "watchlistedit-raw-removed": "Er {{PLURAL:$1|is 1 pagina|zijn $1 pagina's}} verwijderd:",
        "watchlistedit-clear-title": "Volglijst wissen",
        "watchlistedit-clear-legend": "Volglijst wissen",
        "watchlistedit-clear-explain": "Alle titels zullen van uw volglijst worden verwijderd",
        "watchlistedit-clear-titles": "Titels:",
        "watchlistedit-clear-submit": "Volglijst wissen (dit is definitief!)",
        "watchlistedit-clear-done": "Uw volglijst is gewist.",
-       "watchlistedit-clear-removed": "{{PLURAL:$1|1 titel werd|$1 titels werden}} verwijderd:",
+       "watchlistedit-clear-removed": "Er {{PLURAL:$1|is 1 pagina|zijn $1 pagina's}} verwijderd:",
        "watchlistedit-too-many": "Er zijn te veel pagina's om hier weer te geven.",
        "watchlisttools-clear": "Volglijst wissen",
        "watchlisttools-view": "Relevante wijzigingen bekijken",
index 6998c57..77db06f 100644 (file)
        "prefs-personal": "Dane użytkownika",
        "prefs-rc": "Ostatnie zmiany",
        "prefs-watchlist": "Obserwowane",
-       "prefs-watchlist-days": "Liczba dni widocznych na liście obserwowanych",
+       "prefs-watchlist-days": "Liczba dni widocznych na liście obserwowanych:",
        "prefs-watchlist-days-max": "Maksimum $1 {{PLURAL:$1|dzień|dni}}",
        "prefs-watchlist-edits": "Liczba edycji pokazywanych w rozszerzonej liście obserwowanych:",
        "prefs-watchlist-edits-max": "Maksymalnie 1000",
        "nextdiff": "następna edycja →",
        "mediawarning": "'''Uwaga!''' Plik w tym formacie może zawierać złośliwy kod.\nJeśli go otworzysz, możesz zarazić swój system.",
        "imagemaxsize": "Ograniczenie wielkości obrazków:<br /><em>(na stronach opisu plików)</em>",
-       "thumbsize": "Rozmiar miniaturki",
+       "thumbsize": "Rozmiar miniaturki:",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|strona|strony|stron}}",
        "file-info": "rozmiar pliku: $1, typ MIME: $2",
        "file-info-size": "$1 × $2 pikseli, rozmiar pliku: $3, typ MIME: $4",
index aab1129..db8a327 100644 (file)
        "movepage-moved-noredirect": "A criação de um redirecionamento foi suprimida.",
        "articleexists": "Uma página com este título já existe, ou o título que escolheu é inválido.\nPor favor, escolha outro nome.",
        "cantmove-titleprotected": "Você não pode mover uma página para tal denominação uma vez que o novo título se encontra protegido contra criação",
-       "movetalk": "Mover também a página de discussão associada.",
+       "movetalk": "Mover também a página de discussão associada",
        "move-subpages": "Mover subpáginas (até $1)",
        "move-talk-subpages": "Mover subpáginas da página de discussão (até $1)",
        "movepage-page-exists": "A página $1 já existe e não pode ser substituída.",
index c8bafd3..f8984a8 100644 (file)
        "block-log-flags-noemail": "correio electrónico desactivado",
        "block-log-flags-nousertalk": "impossibilitado de editar a própria página de discussão",
        "block-log-flags-angry-autoblock": "ativado o bloqueio automático melhorado",
-       "block-log-flags-hiddenname": "nome de usuário ocultado",
+       "block-log-flags-hiddenname": "nome de utilizador oculto",
        "range_block_disabled": "A funcionalidade de administrador para o bloqueio de gamas de IPs está desativada.",
        "ipb_expiry_invalid": "Tempo de expiração inválido.",
        "ipb_expiry_temp": "Bloqueios com nome de utilizador ocultado devem ser permanentes.",
        "movepage-moved-noredirect": "A criação de um redirecionamento foi suprimida.",
        "articleexists": "Uma página com este nome já existe, ou o nome que escolheu é inválido.\nEscolha outro nome, por favor.",
        "cantmove-titleprotected": "Não pode mover uma página para esse destino, porque o novo título foi protegido para evitar a sua criação",
-       "movetalk": "Mover também a página de discussão associada.",
+       "movetalk": "Mover também a página de discussão associada",
        "move-subpages": "Mover subpáginas (até $1)",
        "move-talk-subpages": "Mover subpáginas da página de discussão (até $1)",
        "movepage-page-exists": "A página $1 já existe e não pode ser substituída.",
index d0b5e25..e801516 100644 (file)
        "exif-flash-function-1": "Exif is a format for storing metadata in image files. See this [[w:Exchangeable_image_file_format|Wikipedia article]] and the example at the bottom of [[commons:File:Phalacrocorax-auritus-020.jpg|this page on Commons]]. The tags are explained [http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/exif.html briefly] and [http://www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf in further detail].\n{{Related|Exif-flash}}",
        "exif-flash-redeye-1": "{{Related|Exif-flash}}",
        "exif-focalplaneresolutionunit-2": "See also:\n* {{msg-mw|Exif-focalplaneresolutionunit}}",
-       "exif-sensingmethod-1": "{{Related|Exif-sensingmethod}}",
+       "exif-sensingmethod-1": "{{Related|Exif-sensingmethod}}\n{{Identical|Undefined}}",
        "exif-sensingmethod-2": "{{Related|Exif-sensingmethod}}",
        "exif-sensingmethod-3": "{{Related|Exif-sensingmethod}}",
        "exif-sensingmethod-4": "{{Related|Exif-sensingmethod}}",
index 22a2dfc..315993a 100644 (file)
        "category-empty": "''Эта категория в данный момент пуста.''",
        "hidden-categories": "{{PLURAL:$1|1=Скрытая категория|Скрытые категории}}",
        "hidden-category-category": "Скрытые категории",
-       "category-subcat-count": "{{PLURAL:$2|Эта категория содержит только следующую подкатегорию.|Эта категория содержит $1 {{PLURAL:$1|подкатегорию|подкатегорий|подкатегории}} из $2 всего.}}",
+       "category-subcat-count": "{{PLURAL:$2|1=Эта категория содержит только следующую подкатегорию.|В этой категории отображается $1 {{PLURAL:$1|подкатегория|подкатегорий|подкатегории}} из имеющихся $2.}}",
        "category-subcat-count-limited": "В этой категории {{PLURAL:$1|$1 подкатегория|$1 подкатегорий|$1 подкатегории}}.",
        "category-article-count": "{{PLURAL:$2|1=Эта категория содержит единственную страницу.|{{PLURAL:$1|Показана $1 страница|Показано $1 страниц|Показаны $1 страницы}} из $2, {{PLURAL:$2|находящейся|находящихся}} в данной категории.}}",
        "category-article-count-limited": "В этой категории {{PLURAL:$1|$1 страница|$1 страниц|$1 страницы|1=только одна страница}}.",
        "htmlform-float-invalid": "Указанное вами значение не является числом.",
        "htmlform-int-toolow": "Указанное вами значение ниже минимального — $1",
        "htmlform-int-toohigh": "указанное вами значение выше максимального — $1",
-       "htmlform-required": "Это значение необходимо",
+       "htmlform-required": "это значение необходимо",
        "htmlform-submit": "Отправить",
        "htmlform-reset": "Отменить изменения",
        "htmlform-selectorother-other": "Иное",
index 3cbd84d..1b5b4fd 100644 (file)
        "userlogin-noaccount": "Nun ci l'hai nu cuntu?",
        "userlogin-joinproject": "Scrìviti a {{SITENAME}}",
        "nologin": "Nun nn'aviti nu cuntu pi ccà? '''$1'''.",
-       "nologinlink": "Criati nu cuntu sùbbitu",
+       "nologinlink": "Arriggistràtivi",
        "createaccount": "Criati un cuntu novu",
        "gotaccount": "Hai già nu cuntu? '''$1'''.",
        "gotaccountlink": "Trasi",
        "userlogin-resetlink": "T'ascurdasti li dittagli pâ trasuta?",
        "userlogin-resetpassword-link": "Reinizzializza la tò password",
+       "userlogin-helplink2": "Aiutu pâ trasuta",
        "createacct-emailrequired": "Nnirizzu e-mail",
        "createacct-emailoptional": "Nnirizzu e-mail (facurtativu)",
        "createacct-email-ph": "Nzirisci lu tò nnirizzu e-mail",
        "login-abort-generic": "La trasuta nun arriniscìu - Annullata",
        "loginlanguagelabel": "Lingua: $1",
        "suspicious-userlogout": "La tò dumanna di discunnissioni fu niàta prichì pari ca veni di nu browser nun funziunanti o nu proxy di caching.",
+       "pt-login": "Trasi",
+       "pt-login-button": "Trasi",
+       "pt-createaccount": "Criati un cuntu novu",
+       "pt-userlogout": "Nesci",
        "changepassword": "Cancia la password",
-       "resetpass_announce": "Hai effittuatu l'accessu cu na password timpurània ca t'hà statu mannata via email. Pi tirminari l'accessu, hai a nziriri na password nova ccà:",
+       "resetpass_announce": "Pi tirminari l'accessu, hai a nziriri na password nova ccà:",
        "resetpass_text": "<!-- Agghiunci lu testu ccà -->",
        "resetpass_header": "Rimposta la password",
        "oldpassword": "Password vecchia:",
        "newpassword": "Password nova:",
        "retypenew": "Scrivi n'àutra vota la password",
        "resetpass_submit": "Mposta la password e accedi",
-       "changepassword-success": "Lu canciu password hà statu effittuatu cu successu! Ora stai effittuannu l'accessu...",
+       "changepassword-success": "Lu canciu password hà statu effittuatu cu successu!",
+       "changepassword-throttled": "Facisti troppi tintativi.\nAspetta $1 prima d'arripruvari n'àutra vota.",
        "resetpass_forbidden": "Li password nun ponnu èssiri canciati sùpira sta wiki",
        "resetpass-no-info": "Pi tràsiri nta sta pàggina hà èssiri riggistratu",
        "resetpass-submit-loggedin": "Cancia la password",
        "prefs-emailconfirm-label": "Conferma dâ e-mail:",
        "youremail": "Lu tò nnirizzu email:",
        "username": "Nomu d'utenti:",
-       "uid": "ID utenti:",
        "prefs-memberingroups": "Cumpunenti {{PLURAL:$1|dû gruppu|dî gruppi}}:",
        "prefs-registration": "Data di riggistrazioni:",
        "yourrealname": "Lu tò nomu veru*",
        "logempty": "Lu log nun cunteni elementi currispunnenti â ricerca.",
        "log-title-wildcard": "Attrova tituli chi ncignanu cu",
        "allpages": "Tutti li paggini",
-       "alphaindexline": "di $1 a $2",
        "nextpage": "Pàggina doppu ($1)",
        "prevpage": "Pàggina pricidenti ($1)",
        "allpagesfrom": "Ammustra li pàggini a pàrtiri di:",
index f9abb08..ae6f6ec 100644 (file)
        "parser-unstrip-recursion-limit": "Прекорачено је ограничење рекурзије ($1)",
        "converter-manual-rule-error": "Пронађена је грешка у правилу за ручно претварање језика",
        "undo-success": "Измена се може вратити.\nПроверите разлике испод, па сачувајте измене.",
-       "undo-failure": "Ова измена се не може поништити због конфликта измена.",
+       "undo-failure": "Ова измена се не може поништити због сукоба измена.",
        "undo-norev": "Не могу да вратим измену јер не постоји или је обрисана.",
        "undo-nochange": "Изгледа да је измена већ поништена.",
        "undo-summary": "Поништена измена $1 {{GENDER:$2|корисника|кориснице}} [[Special:Contributions/$2|$2]] ([[User talk:$2|разговор]])",
        "watchnologin": "Нисте пријављени",
        "addwatch": "Додај на списак надгледања",
        "addedwatchtext": "Страница „[[:$1]]“ је додата на ваш [[Special:Watchlist|списак надгледања]].\nБудуће измене ове странице и њене странице за разговор биће наведене тамо.",
-       "addedwatchtext-short": "Страница „$1“ је додата на ваш списак надгледања",
+       "addedwatchtext-short": "Страница „$1“ је додата на ваш списак надгледања.",
        "removewatch": "Уклони са списка надгледања",
        "removedwatchtext": "Страница „[[:$1]]“ је уклоњена с вашег [[Special:Watchlist|списка надгледања]].",
        "removedwatchtext-short": "Страница „$1“ је уклоњена с вашег списка надгледања.",
        "watchlistedit-clear-explain": "Сви наслови ће бити уклоњени из вашег списка надгледања.",
        "watchlistedit-clear-titles": "Наслови:",
        "watchlistedit-clear-submit": "Испразни списак надгледања (Ово је трајно!)",
+       "watchlistedit-clear-done": "Ваш списак надгледања је испражњен.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 наслов је уклоњен|$1 наслова је уклоњено}}:",
        "watchlisttools-clear": "испразни списак ндгледања",
        "watchlisttools-view": "прикажи сродне измене",
        "watchlisttools-edit": "прикажи и уреди списак надгледања",
        "duration-decades": "$1 {{PLURAL:$1|деценија|деценије|деценија}}",
        "duration-centuries": "$1 {{PLURAL:$1|век|века|векова}}",
        "duration-millennia": "$1 {{PLURAL:$1|миленијум|миленијума|миленијума}}",
-       "rotate-comment": "Слика је ротирана у смеру казаљке на сату за {{PLURAL:$1|степени}}",
+       "rotate-comment": "Слика је ротирана за $1° у смеру казаљке на сату",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|секунда|секунд|секунди}}",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|секунда|секунди}}",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|бајт|бајта|бајтова}}",
index 2cda89e..058b29d 100644 (file)
        "resetpass-abort-generic": "Promenu lozinke je sprečio dodatak.",
        "resetpass-expired": "Vaša lozinka je istekla. Postavite novu lozinku da biste se prijavili.",
        "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:resetpass-submit-cancel}}“ da je postavite kasnije.",
+       "resetpass-validity-soft": "Vaša lozinka nije valjana: $1\n\nMolimo izaberite novu ili kliknite „{{int:resetpass-submit-cancel}}“ da resetujete kasnije.",
        "passwordreset": "Obnavljanje lozinke",
        "passwordreset-text-one": "Popunite ovaj obrazac da biste resetovali lozinku.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako bi ste dobili privremenu lozinku na e-poštu.}}",
        "parser-unstrip-recursion-limit": "Prekoračeno je ograničenje rekurzije ($1)",
        "converter-manual-rule-error": "Pronađena je greška u pravilu za ručno pretvaranje jezika",
        "undo-success": "Izmena se može vratiti.\nProverite razlike ispod, pa sačuvajte izmene.",
-       "undo-failure": "Ova izmena se ne može poništiti zbog konflikta izmena.",
+       "undo-failure": "Ova izmena se ne može poništiti zbog sukoba izmena.",
        "undo-norev": "Ne mogu da vratim izmenu jer ne postoji ili je obrisana.",
        "undo-nochange": "Izgleda da je izmena već poništena.",
        "undo-summary": "Poništena izmena $1 {{GENDER:$2|korisnika|korisnice}} [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])",
        "watchnologin": "Niste prijavljeni",
        "addwatch": "Dodaj na spisak nadgledanja",
        "addedwatchtext": "Stranica „[[:$1]]“ je dodata na vaš [[Special:Watchlist|spisak nadgledanja]].\nBuduće izmene ove stranice i njene stranice za razgovor biće navedene tamo.",
+       "addedwatchtext-short": "Stranica „$1“ je dodata na vaš spisak nadgledanja.",
        "removewatch": "Ukloni sa spiska nadgledanja",
        "removedwatchtext": "Stranica „[[:$1]]“ je uklonjena s vašeg [[Special:Watchlist|spiska nadgledanja]].",
+       "removedwatchtext-short": "Stranica „$1“ je uklonjena s vašeg spiska nadgledanja.",
        "watch": "Nadgledaj",
        "watchthispage": "Nadgledaj ovu stranicu",
        "unwatch": "Prekini nadgledanje",
        "watchlistedit-raw-done": "Vaš spisak nadgledanja je ažuriran.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Dodat je jedan naslov|Dodata su $1 naslova|Dodato je $1 naslova}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 naslov je uklonjen|Uklonjena su $1 naslova|Uklonjeno je $1 naslova}}:",
+       "watchlistedit-clear-legend": "Isprazni spisak nadgledanja",
+       "watchlistedit-clear-explain": "Svi naslovi će biti uklonjeni iz vašeg spiska nadgledanja.",
        "watchlistedit-clear-titles": "Naslovi:",
+       "watchlistedit-clear-submit": "Isprazni spisak nadgledanja (Ovo je trajno!)",
+       "watchlistedit-clear-done": "Vaš spisak nadgledanja je ispražnjen.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 naslov je uklonjen|$1 naslova je uklonjeno}}:",
+       "watchlisttools-clear": "isprazni spisak nadgledanja",
        "watchlisttools-view": "prikaži srodne izmene",
        "watchlisttools-edit": "prikaži i uredi spisak nadgledanja",
        "watchlisttools-raw": "izmeni sirov spisak nadgledanja",
        "logentry-newusers-create2": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog $3",
        "logentry-newusers-byemail": "Korisnički nalog $3 je {{GENDER:$2|napravljen}} od strane $1 i lozinka je poslata na e-poštu",
        "logentry-newusers-autocreate": "Korisnički nalog $1 je automatski {{GENDER:$2|otvoren}}",
-       "logentry-rights-rights": "$1 je {{GENDER:$1|promenio|promenila}} članstvo grupe za $3 iz $4 u $5",
+       "logentry-rights-rights": "$1 je {{GENDER:$2|promenio|promenila}} članstvo grupe za $3 iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promenio|promenila}} čalnstvo grupe za $3",
        "logentry-rights-autopromote": "$1 je automatski {{GENDER:$1|unapređen|unapređena}} iz $4 u $5",
        "rightsnone": "(nema)",
index ff1c604..248b857 100644 (file)
        "category-empty": "''Ця категорія зараз порожня.''",
        "hidden-categories": "{{PLURAL:$1|1=Прихована категорія|Приховані категорії|Прихованих категорій}}",
        "hidden-category-category": "Приховані категорії",
-       "category-subcat-count": "Показано $1 {{PLURAL:$1|підкатегорію з|підкатегорії з|підкатегорій із}} $2.",
+       "category-subcat-count": "{{PLURAL:$2|Ця категорія має тільки таку підкатегорію.|Ця категорія має $1 {{PLURAL:$1|таку підкатегорію з|такі підкатегорії з|таких підкатегорій із}} $2.}}",
        "category-subcat-count-limited": "У цій категорії {{PLURAL:$1|$1 підкатегорія|$1 підкатегорії|$1 підкатегорій}}.",
        "category-article-count": "Показано $1 {{PLURAL:$1|сторінку|сторінки|сторінок}} цієї категорії (із $2).",
        "category-article-count-limited": "У цій категорії {{PLURAL:$1|$1 сторінка|$1 сторінки|$1 сторінок}}.",
        "movepagetalktext": "Приєднана сторінка обговорення також буде автоматично перейменована, '''окрім таких випадків:'''\n* Непорожня сторінка обговорення з такою назвою вже існує або\n* Ви не поставили галочку в полі нижче.\n\nУ цих випадках ви будете змушені перейменувати чи об'єднати сторінки вручну в разі необхідності",
        "movearticle": "Перейменувати сторінку",
        "moveuserpage-warning": "'''Увага:''' Ви збираєтеся перейменувати сторінку користувача. Будь ласка, зверніть увагу, що  буде перейменовано тільки сторінку, але користувача '''не''' буде перейменовано.",
+       "movecategorypage-warning": "<strong>Увага:</strong> Ви збираєтесь перейменувати сторінку категорії. Будь ласка, зауважте, що це перейменує лише цю сторінку, <em>не</em> перемістивши сторінки, що входять до категорії до категорії з новою назвою.",
        "movenologintext": "Ви повинні [[Special:UserLogin|ввійти до системи]], щоб перейменувати сторінку.",
        "movenotallowed": "У вас нема дозволу перейменовувати сторінки.",
        "movenotallowedfile": "У вас немає прав перейменовувати файли.",
        "cant-move-user-page": "У вас нема дозволу перейменовувати сторінки користувачів.",
        "cant-move-to-user-page": "У вас нема дозволу перейменовувати сторінки на сторінки простору «Користувач» (окрім підсторінок)",
+       "cant-move-category-page": "У вас немає прав перейменовувати сторінки категорій.",
+       "cant-move-to-category-page": "У вас немає дозволу перейменовувати сторінку на сторінку категорії.",
        "newtitle": "Нова назва:",
        "move-watch": "Спостерігати за цією сторінкою",
        "movepagebtn": "Перейменувати сторінку",
        "newimages-summary": "Ця спеціальна сторінка показує останні завантажені файли.",
        "newimages-legend": "Фільтр",
        "newimages-label": "Назва файлу (або її частина):",
+       "newimages-showbots": "Показати завантаження ботами",
        "noimages": "Файли відсутні.",
        "ilsubmit": "Шукати",
        "bydate": "за датою",
        "watchlistedit-raw-done": "Ваш список спостереження збережений.",
        "watchlistedit-raw-added": "{{PLURAL:$1|$1 заголовок був доданий|$1 заголовки були додані|$1 заголовків були додані}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|$1 заголовок був вилучений|$1 заголовки були вилучені|$1 заголовків були вилучені}}:",
+       "watchlistedit-clear-title": "Список спостереження очищено",
+       "watchlistedit-clear-legend": "Очистити список спостереження",
+       "watchlistedit-clear-explain": "Усі сторінки буде вилучено з Вашого списку спостереження",
+       "watchlistedit-clear-titles": "Сторінки:",
+       "watchlistedit-clear-submit": "Очистити список спостереження (це безповоротньо!)",
+       "watchlistedit-clear-done": "Ваш список спостереження було очищено.",
+       "watchlistedit-too-many": "Забагато сторінок для відображення тут.",
+       "watchlisttools-clear": "Очистити список спостереження",
        "watchlisttools-view": "Зміни на сторінках зі списку",
        "watchlisttools-edit": "Переглянути/редагувати список",
        "watchlisttools-raw": "Редагувати як текст",
        "htmlform-no": "Ні",
        "htmlform-yes": "Так",
        "htmlform-chosen-placeholder": "Виберіть параметр",
+       "htmlform-cloner-create": "Додати більше",
+       "htmlform-cloner-delete": "Вилучити",
+       "htmlform-cloner-required": "Необхідно принаймні одне значення.",
        "sqlite-has-fts": "$1 з підтримкою повнотекстового пошуку",
        "sqlite-no-fts": "$1 без підтримки повнотекстового пошуку",
        "logentry-delete-delete": "$1 {{GENDER:$2|вилучив|вилучила}} сторінку $3",
index 8ab9b6e..855ebf7 100644 (file)
        "mostinterwikis": "Trang có nhiều liên kết liên wiki nhất",
        "mostrevisions": "Trang được sửa đổi nhiều lần nhất",
        "prefixindex": "Tất cả các trang trùng với tiền tố",
-       "prefixindex-namespace": "Tất cả các trang trùng với tiền tố (không gian $1)",
+       "prefixindex-namespace": "Tất cả các trang trùng với tiền tố (không gian tên $1)",
        "prefixindex-strip": "Ẩn tiền tố trong danh sách",
        "shortpages": "Trang ngắn nhất",
        "longpages": "Trang dài nhất",
index 599944f..d5ba19e 100644 (file)
@@ -74,7 +74,8 @@
                        "范",
                        "阿pp",
                        "Hudafu",
-                       "아라"
+                       "아라",
+                       "Mywood"
                ]
        },
        "tog-underline": "链接下划线:",
        "parser-template-loop-warning": "检查到模板循环:[[$1]]",
        "parser-template-recursion-depth-warning": "模板递归深度越限($1)",
        "language-converter-depth-warning": "字词转换器深度越限($1)",
-       "node-count-exceeded-category": "页面的节点数超出限制",
+       "node-count-exceeded-category": "节点数超限的页面",
        "node-count-exceeded-category-desc": "节点数溢出页面的分类。",
        "node-count-exceeded-warning": "页面超出了节点数",
-       "expansion-depth-exceeded-category": "扩展深度超出限制的页面",
+       "expansion-depth-exceeded-category": "展开深度超限的页面",
        "expansion-depth-exceeded-category-desc": "这是超出拓展深度页面的分类。",
        "expansion-depth-exceeded-warning": "页面超过了扩展深度",
        "parser-unstrip-loop-warning": "检测到回圈",
        "tooltip-pt-watchlist": "你正在监视更改的页面的列表",
        "tooltip-pt-mycontris": "你的贡献的列表",
        "tooltip-pt-login": "我们鼓励您登录,不过这不是强制的",
-       "tooltip-pt-logout": "退出",
+       "tooltip-pt-logout": "退出登录",
        "tooltip-ca-talk": "关于内容页面的讨论",
        "tooltip-ca-edit": "你可以编辑本页面。请在保存前使用预览按钮",
        "tooltip-ca-addsection": "开始新段落",
index 648bb2c..f26864c 100644 (file)
@@ -58,8 +58,8 @@
        "tog-hideminor": "隱藏最近變更中的小修訂",
        "tog-hidepatrolled": "隱藏最近更改中巡查過的編輯",
        "tog-newpageshidepatrolled": "隱藏新頁面清單中巡查過的頁面",
-       "tog-extendwatchlist": "展開監視列表以顯示所有變更,不只是最近的",
-       "tog-usenewrc": "依頁面分類最近變更和監視列表中的修改",
+       "tog-extendwatchlist": "展開監視列表以顯示含最近以外的所有變更",
+       "tog-usenewrc": "依頁面分類顯示最近變更和監視列表中的修改",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
        "tog-editondblclick": "啟用滑鼠雙擊編輯頁面",
        "category-empty": "<em>此分類目前未包含頁面或媒體。</em>",
        "hidden-categories": "{{PLURAL:$1|隱藏分類}}",
        "hidden-category-category": "隱藏分類",
-       "category-subcat-count": "{{PLURAL:$2|此分類僅有以下 1 個子分類。|此分類有以下 $1 個字分類,共 $2 個。}}",
-       "category-subcat-count-limited": "此分類以下 $1 個子分類。",
-       "category-article-count": "{{PLURAL:$2|此分類有以下一個頁面。|此分類有 $2 個頁面,以下列出了 $1 個。}}",
-       "category-article-count-limited": "此分類以下 $1 個頁面。",
-       "category-file-count": "{{PLURAL:$2|此分類有以下一個檔案。|此分類有 $2 個檔案,以下列出了 $1 個。}}",
-       "category-file-count-limited": "此分類 $1 個檔案。",
+       "category-subcat-count": "{{PLURAL:$2|此分類僅包含以下 1 個子分類。|此分類包含以下 $1 個子分類,共 $2 個。}}",
+       "category-subcat-count-limited": "此分類包含以下 $1 個子分類。",
+       "category-article-count": "{{PLURAL:$2|此分類包含以下一個頁面。|此分類包含以下 $1 個頁面,共 $2 個。}}",
+       "category-article-count-limited": "此分類包含以下 $1 個頁面。",
+       "category-file-count": "{{PLURAL:$2|此分類僅包含以下一個檔案。|此分類包含以下 $1 個檔案,共 $2 個。}}",
+       "category-file-count-limited": "此分類包含 $1 個檔案。",
        "listingcontinuesabbrev": "續",
        "index-category": "已列索引的頁面",
        "noindex-category": "未列索引的頁面",
        "newwindow": "(以新視窗開啟)",
        "cancel": "取消",
        "moredotdotdot": "更多...",
-       "morenotlisted": "此列表不完整。",
+       "morenotlisted": "此清單尚未讀取完畢。",
        "mypage": "頁面",
        "mytalk": "對話",
        "anontalk": "此 IP 位址的對話頁面",
        "navigation": "導覽",
-       "and": "",
+       "and": "&#32;及&#32;",
        "qbfind": "尋找",
        "qbbrowse": "瀏覽",
        "qbedit": "編輯",
        "search": "搜尋",
        "searchbutton": "搜尋",
        "go": "前往",
-       "searcharticle": "進入",
+       "searcharticle": "執行",
        "history": "頁面歷史",
        "history_short": "歷史",
        "updatedmarker": "自我最後一次訪問以後的更新",
        "unprotect": "變更保護",
        "unprotectthispage": "變更此頁的保護",
        "newpage": "新頁面",
-       "talkpage": "討論此頁",
+       "talkpage": "討論此頁",
        "talkpagelinktext": "對話",
        "specialpage": "特殊頁面",
        "personaltools": "個人工具",
        "userpage": "檢視使用者頁面",
        "projectpage": "檢視專案頁面",
        "imagepage": "檢視檔案頁面",
-       "mediawikipage": "檢視使用者介面訊息",
+       "mediawikipage": "檢視訊息頁面",
        "templatepage": "檢視樣版頁面",
        "viewhelppage": "檢視說明頁面",
        "categorypage": "檢視分類頁面",
        "viewtalkpage": "檢視討論頁面",
        "otherlanguages": "其他語言",
-       "redirectedfrom": "(重定向自$1)",
+       "redirectedfrom": "(自 $1 重新導向)",
        "redirectpagesub": "重新導向頁面",
        "lastmodifiedat": "此頁面最後修訂於 $1 $2。",
        "viewcount": "此頁面已被檢視過 $1 次。",
        "toc": "目錄",
        "showtoc": "顯示",
        "hidetoc": "隱藏",
-       "collapsible-collapse": "摺疊",
+       "collapsible-collapse": "合併",
        "collapsible-expand": "展開",
        "thisisdeleted": "檢視或還原 $1 ?",
        "viewdeleted": "檢視 $1?",
        "feed-unavailable": "目前未提供 RSS 或 Atom",
        "site-rss-feed": "$1 的 RSS feed",
        "site-atom-feed": "$1 的 Atom feed",
-       "page-rss-feed": "訂閱 \"$1\" 的 RSS feed",
-       "page-atom-feed": "訂閱 \"$1\" 的 Atom feed",
+       "page-rss-feed": "訂閱 \"$1\" 的 RSS feed",
+       "page-atom-feed": "訂閱 \"$1\" 的 Atom feed",
        "red-link-title": "$1 (頁面不存在)",
        "sort-descending": "降冪排序",
        "sort-ascending": "昇冪排序",
        "enterlockreason": "請輸入鎖定的原因,包括估計重新開放的時間",
        "readonlytext": "資料庫目前已鎖定無法新增或修改資料,\n可能正在進行例行的資料庫維修作業,完成之後即可恢復正常。\n\n鎖定資料庫的管理員說明:$1",
        "missing-article": "資料庫查無預期的頁面文字,頁面 \"$1\" $2。\n\n通常是因您連結到了已過期(已被刪除)的差異或歷史頁面。\n\n若這不是您所遇到的情況,您可能找到了一個系統的問題。\n請記錄 URL 位址,並向 [[Special:ListUsers/sysop|管理員]] 報告此問題。",
-       "missingarticle-rev": "(修訂#$1)",
+       "missingarticle-rev": "(修訂#$1)",
        "missingarticle-diff": "(差異:$1, $2)",
        "readonly_lag": "資料庫已自動鎖定,正在等候次要資料庫同步資料到主要資料庫",
        "internalerror": "內部錯誤",
        "filedeleteerror": "無法刪除檔案 \"$1\"。",
        "directorycreateerror": "無法建立目錄 \"$1\"。",
        "filenotfound": "找不到檔案 \"$1\"。",
-       "unexpected": "未預期的資料:\"$1\"=\"$2\"。",
-       "formerror": "錯誤:無法送表單。",
+       "unexpected": "預期之外的資料:\"$1\"=\"$2\"。",
+       "formerror": "錯誤:無法送表單。",
        "badarticleerror": "無法在此頁進行該操作。",
        "cannotdelete": "無法刪除頁面或檔案 \"$1\"。\n它可能已經被其他人刪除。",
        "cannotdelete-title": "無法刪除頁面 \"$1\"",
        "viewsource": "檢視原始碼",
        "viewsource-title": "檢視 $1 的原始碼",
        "actionthrottled": "已限制動作",
-       "actionthrottledtext": "您在短時間內執行此動作太多次,已超出系統上限,基於反垃圾訊息的考量,將限制您的動作。\n請稍後數分鐘後再試。",
+       "actionthrottledtext": "您在短時間內執行此動作太多次,已超出系統上限,基於反濫用的考量,將限制您的動作。\n請稍後數分鐘後再試。",
        "protectedpagetext": "此頁面已設為保護防止編輯或其他操作。",
        "viewsourcetext": "您可以檢視並複製此頁面的原始碼。",
        "viewyourtext": "您可以檢視並複製此頁面中<strong>您編輯</strong>的原始碼:",
-       "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的MediaWiki 本地化專案。",
-       "editinginterface": "<strong>警告:</strong>您正在編輯的頁面是用來提供軟體介面上的文字。\n更改此頁將影響其他在此 Wiki 上的使用者介面外觀。\n如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的MediaWiki 本地化專案。",
+       "protectedinterface": "本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。\n如欲增加或修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net] 上的 MediaWiki 在地化專案。",
+       "editinginterface": "<strong>警告:</strong>您正在編輯的頁面是用來提供軟體介面上的文字。\n更改此頁將影響其他在此 Wiki 上的使用者介面外觀。\n如欲修改 Wiki 的翻譯,請至 [//translatewiki.net/ translatewiki.net]上的 MediaWiki 在地化專案。",
        "cascadeprotected": "此頁面被保護無法編輯,因為此頁面被以下開啟 \"連鎖保護\" 選項的{{PLURAL:$1|一頁|數頁}}保護頁面引用:\n$2",
        "namespaceprotected": "您沒有權限編輯 <strong>$1</strong> 命名空間的頁面。",
        "customcssprotected": "您並沒有權限編輯此 CSS 頁面,因為此頁面包含了其他使用者的個人設定。",
        "virus-scanfailed": "掃瞄失敗 (代碼 $1)",
        "virus-unknownscanner": "不明的防毒程式:",
        "logouttext": "<strong>您現在已登出。</strong>\n\n請注意,某些頁面會以登入的狀態持續顯示,直到您清除瀏覽器快取為止。",
-       "welcomeuser": "歡迎,$1!",
-       "welcomecreation-msg": "您的帳號已建立。\n不要忘記變更您的 {{SITENAME}} [[Special:Preferences|偏好設定]]。",
+       "welcomeuser": "歡迎光臨,$1!",
+       "welcomecreation-msg": "您的帳號已建立。\n可至 [[Special:Preferences|偏好設定]] 更新您在 {{SITENAME}} 的個人化設定。",
        "yourname": "使用者名稱:",
        "userlogin-yourname": "使用者名稱",
        "userlogin-yourname-ph": "輸入您的使用者名稱",
        "yourpasswordagain": "再次輸入密碼:",
        "createacct-yourpasswordagain": "確認密碼",
        "createacct-yourpasswordagain-ph": "再次輸入密碼",
-       "remembermypassword": "在瀏覽器上記住我的登入資訊 (最多 $1 {{PLURAL:$1|天}})",
+       "remembermypassword": "在瀏覽器上記住我的登入資訊 (上限 $1 {{PLURAL:$1|天}})",
        "userlogin-remembermypassword": "記住我的登入狀態",
        "userlogin-signwithsecure": "使用安全連線",
        "yourdomainname": "您的網域:",
        "createacct-imgcaptcha-ph": "輸入您在上方看到的文字",
        "createacct-submit": "建立您的帳號",
        "createacct-another-submit": "建立另一帳號",
-       "createacct-benefit-heading": "{{SITENAME}} 是由像您一樣的人建立。",
+       "createacct-benefit-heading": "{{SITENAME}} 是由像您一樣貢獻的人所建立的。",
        "createacct-benefit-body1": " {{PLURAL:$1|次編輯}}",
        "createacct-benefit-body2": " $1 頁",
        "createacct-benefit-body3": " 位最近的{{PLURAL:$1|貢獻者}}",
        "createacct-another-realname-tip": "真實姓名為選填欄位。\n若您提供真實姓名,它會用於使用者貢獻署名。",
        "pt-login": "登入",
        "pt-login-button": "登入",
-       "pt-createaccount": "建立帳",
+       "pt-createaccount": "建立帳",
        "pt-userlogout": "登出",
        "php-mail-error-unknown": "PHP 的 mail() 函數發生不明錯誤。",
        "user-mail-no-addy": "試圖發送沒有電子郵件地址的電子郵件。",
        "passwordreset-capture-help": "若您勾選此核選方塊,電子郵件 (包含臨時密碼) 將直接顯示,並發送給使用者。",
        "passwordreset-email": "電子郵件位址:",
        "passwordreset-emailtitle": "於 {{SITENAME}} 的帳號詳細資訊",
-       "passwordreset-emailtext-ip": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}}($4)的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
-       "passwordreset-emailtext-user": "使用者 $1 要求重設在 {{SITENAME}}($4)的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
+       "passwordreset-emailtext-ip": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
+       "passwordreset-emailtext-user": "使用者 $1 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
        "passwordreset-emailelement": "使用者名稱:$1\n臨時密碼:$2",
        "passwordreset-emailsent": "已發送重設密碼的電子郵件。",
        "passwordreset-emailsent-capture": "已發送重設密碼的電子郵件,並在下面顯示。",
        "link_tip": "內部連結",
        "extlink_sample": "http://www.example.com 連結標題",
        "extlink_tip": "外部連結 (記得以 http:// 開頭)",
-       "headline_sample": "1 級標題文字",
-       "headline_tip": "2 級標題文字",
+       "headline_sample": "第 1 層標題文字",
+       "headline_tip": "第 2 層標題文字",
        "nowiki_sample": "插入非格式化文字",
        "nowiki_tip": "忽略 Wiki 格式化語法",
        "image_tip": "附加檔案",
        "media_tip": "檔案連結",
        "sig_tip": "您的簽名與日期時間",
-       "hr_tip": "水平線 (用)",
+       "hr_tip": "水平線 (用)",
        "summary": "摘要:",
        "subject": "主題/標題:",
        "minoredit": "這是一個小修訂",
        "missingsummary": "<strong>提醒:</strong>您未填寫編輯摘要。\n若您再點選 \"{{int:savearticle}}\" 一次,將略過摘要直接儲存您的編輯。",
        "missingcommenttext": "請在下方輸入評論。",
        "missingcommentheader": "<strong>提醒:</strong>您未填寫此評論的主旨/標題。\n若您再點選 \"{{int:savearticle}}\" 一次,將略過主旨/標題直接儲存您的評論。",
-       "summary-preview": "摘要預覽:",
+       "summary-preview": "摘要預覽",
        "subject-preview": "主旨/標題預覽:",
        "blockedtitle": "使用者已被封鎖",
        "blockedtext": "<strong>您的使用者名稱或 IP 位址以被封鎖。</strong>\n\n您被 $1 封鎖,\n原因爲 <em>$2</em>。\n\n* 封鎖開始時間:$8\n* 封鎖結束時間:$6\n* 相關封鎖對象:$7\n\n您可以聯繫 $1 或其他的 [[{{MediaWiki:Grouppage-sysop}}|管理員]] 討論封鎖的相關問題。\n若您已在 [[Special:Preferences|偏好設定]] 中設定了一個有效的電子郵件地址,且尚未被封鎖郵件功能,則您可透過 \"發送電子郵件給這位使用者\" 的功能來聯絡相關管理員。\n您目刖的 IP 位址是 $3,此次封鎖的 ID 爲 #$5。\n請您在詢問時附註以上詳細訊息。",
        "accmailtitle": "密碼已寄出",
        "accmailtext": "[[User talk:$1|$1]] 的隨機密碼已經寄送至 $2,可登入後至 <em>[[Special:ChangePassword|變更密碼]] 頁面更改</em>。",
        "newarticle": "(新)",
-       "newarticletext": "您正連結至一頁不存在頁面。\n要建立該頁面,請在下方的編輯框中輸入內容(詳情請參考 [$1 説明頁面])。\n如果您是不小心來到此頁面,請點選瀏覽器的 <strong>返回</strong> 按鈕。",
+       "newarticletext": "您正連結至一頁不存在頁面。\n要建立該頁面,請在下方的編輯框中輸入內容 (詳情請參考 [$1 説明頁面])。\n如果您是不小心來到此頁面,請點選瀏覽器的 <strong>返回</strong> 按鈕。",
        "anontalkpagetext": "----\n<em>此討論頁面是給尚未建立帳號的匿名使用者使用</em>\n因此我們必須使用 IP 位址來辨識身份,但相同的 IP 位置可能由許多不同的使用者所共用。\n如果您是匿名使用者並且覺得評論的內容與您無關,請 [[Special:UserLogin/signup|建立新帳號]] 或 [[Special:UserLogin|登入]] 避免與其他匿名使用者混淆。",
        "noarticletext": "此頁面目前沒有內容,\n您可以在其它頁面中 [[Special:Search/{{PAGENAME}}|搜尋此頁面標題]],\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋相關日誌],\n或 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 編輯此頁]</span>。",
        "noarticletext-nopermission": "此頁面目前沒有內容,\n您可以在其它頁面中 [[Special:Search/{{PAGENAME}}|搜尋此頁面標題]],或 <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜尋相關日誌]</span>,但您沒有權限建立此頁面。",
        "note": "</strong>注意:</strong>",
        "previewnote": "<strong>您目前正在預覽,您的變更還尚未儲存!</strong>",
        "continue-editing": "前往編輯框",
-       "previewconflict": "這個預覽顯示了上面文字編輯區中的內容。它將在{{GENDER:|你|妳|你}}選擇保存後出現。",
-       "session_fail_preview": "'''很抱歉!由於部份資料遺失,我們無法處理您的編輯。'''\n請再試一次。\n如果仍然失敗,請[[Special:UserLogout|登出]]後重新登入。",
-       "session_fail_preview_html": "'''抱歉!部份資料已遺失,我們無法處理您的編輯。'''\n\n''由於{{SITENAME}}已經開放原始 HTML 碼,預覽已經隱藏以預防 JavaScript 的攻擊。''\n\n'''如果這個編輯過程沒有問題,請再試一次。如果仍然有問題,請[[Special:UserLogout|登出]]後再重新登入一次。'''",
-       "token_suffix_mismatch": "<strong>由於您使用的客戶端軟體損壞了編輯標記中的符號,您的編輯已被拒絕接受。</strong>\n為了避免破壞頁面文字,已拒絕此編輯,\n這通常是因為您使用了有問題的網頁匿名代理伺服器。",
-       "edit_form_incomplete": "編輯表單的某些部分沒有到達伺服器 ;請檢查您的編輯內容是否完整並再試一次。",
+       "previewconflict": "此預覽顯示了您於上方文字編輯框中的內容儲存之後將會顯示的結果。",
+       "session_fail_preview": "<strong>很抱歉!由於連線階段的資料遺失,我們無法處理您的編輯動作。</strong>\n請再試一次。\n如果仍然失敗,請 [[Special:UserLogout|登出]] 後重新登入。",
+       "session_fail_preview_html": "<strong>很抱歉!由於連線階段的資料遺失,我們無法處理您的編輯動作。</strong>\n\n<em>由於 {{SITENAME}} 開啟了原始 HTML 模式,將不會顯示預覽畫面以避免 JavaScript 攻擊。</em>\n\n<strong>若這是符合規範的編輯動作,請再試一次。</strong>\n如果仍然有問題,請 [[Special:UserLogout|登出]] 後再重新登入一次。",
+       "token_suffix_mismatch": "<strong>您使用的瀏覽器刪除了編輯資訊中的特殊符號,已拒絕此編輯動作。</strong>\n為了避免破壞頁面內容,已拒絕此編輯動作,\n這通常是因為您使用了有問題的匿名網頁代理伺服器。",
+       "edit_form_incomplete": "<strong>部份編輯的內容未傳送至伺服器,請檢查您的編輯內容是否完整並再試一次。</strong>",
        "editing": "正在編輯 $1",
        "creating": "正在建立 $1",
        "editingsection": "正在編輯 $1 (章節)",
        "editingcomment": "正在編輯 $1 (新章節)",
        "editconflict": "編輯衝突:$1",
-       "explainconflict": "有人在{{GENDER:|你|妳|你}}開始編輯後更改了頁面。\n上面的文字框內顯示的是目前本頁的內容。\n{{GENDER:|你|妳|你}}所做的修改顯示在下面的文字框中。\n{{GENDER:|你|妳|你}}應當將{{GENDER:|你|妳|你}}所做的修改加入現有的內容中。\n'''只有'''在上面文字框中的內容會在{{GENDER:|你|妳|你}}點擊「{{int:savearticle}}」後被保存。",
+       "explainconflict": "在您開始編輯之後已有其他人儲存了此頁面。\n上方的文字框內顯示了目前頁面中的文字內容,\n您所變更的文字內容顯示在下方文字框中。\n您須要將您所變更的文字內容合併到已儲存的文字內容當中。\n若您直接點選 \"{{int:savearticle}}\" <strong>只有</strong> 上方文字框中的內容會被儲存。",
        "yourtext": "您的文字",
-       "storedversion": "已儲存修訂版本",
+       "storedversion": "已儲存修訂",
        "nonunicodebrowser": "<strong>警告:您的瀏覽器不相容 Unicode。</strong>\n暫時解決的方式是先在您可安全編輯頁面的地方編輯:非 ASCII 字元在編輯框中會以 16 進位編碼顯示。",
-       "editingold": "'''警告:{{GENDER:|你|妳|你}}正在編輯的是本頁的舊版本。'''\n如果{{GENDER:|你|妳|你}}保存它的話,在本版本之後的任何修改都會遺失。",
+       "editingold": "<strong>警告:您目前正編輯頁面的舊修訂版本。</strong>\n若您儲存,在此修訂之後變更的任何內容將會遺失。",
        "yourdiff": "差異",
-       "copyrightwarning": "請注意您對{{SITENAME}}的所有貢獻都被認為是在$2下發佈,請檢視在$1的細節。\n如果您不希望您的文字被任意修改和再散佈,請不要提交。<br />\n您同時也要向我們保證您所提交的內容是您自己所作,或得自一個不受版權保護或相似自由的來源。\n'''不要在未獲授權的情況下發表!'''<br />",
-       "copyrightwarning2": "請注意您對{{SITENAME}}的所有貢獻\n都可能被其他貢獻者編輯,修改或刪除。\n如果您不希望您的文字被任意修改和再散佈,請不要提交。<br />\n您同時也要向我們保證您所提交的內容是您自己所作,或得自一個不受版權保護或相似自由的來源(參閱$1的細節)。\n'''不要在未獲授權的情況下發表!'''",
-       "longpageerror": "'''錯誤:您所提交的文本長度有{{PLURAL:$1|1|$1}}KB,這大於{{PLURAL:$2|1|$2}}KB的最大值。 '''\n因此,該文本無法保存。",
-       "readonlywarning": "'''警告: 資料庫被鎖定以進行維護,所以您目前將無法保存您的修改。'''\n您可先複製您的文字並保存到文字檔案,然後等一會兒再修改。\n\n鎖定資料庫的管理員有如下解釋:$1",
+       "copyrightwarning": "請注意,所有於 {{SITENAME}} 所做的貢獻會依據 $2 授權條款發佈 (詳情請見 $1)。\n若您不希望您的著作被任意修改與散佈,請勿在此發表文章。<br />\n您同時向我們保証在此的著作內容是您自行撰寫,或是取自不受版權保護的公開領域或自由資源。\n<strong>請勿在未經授權的情況下發表文章!</strong>",
+       "copyrightwarning2": "請注意,所有於 {{SITENAME}} 所做的貢獻可能會被其他貢獻者編輯,修改或刪除。\n若您不希望您的著作被任意修改與散佈,請勿在此發表文章。<br />\n您同時向我們保証在此的著作內容是您自行撰寫,或是取自不受版權保護的公開領域或自由資源 (詳情請見 $1)。\n<strong>請勿在未經授權的情況下發表文章!</strong>",
+       "longpageerror": "<strong>錯誤:您所送出的文字內容共有 {{PLURAL:$1|1 KB|$1 KB}},已超出系統上限 {{PLURAL:$2|1 KB|$2 KB}}。</strong>\n\n無法儲存。",
+       "readonlywarning": "<strong>警告:資料庫已被鎖定以進行維護,因此無法儲存您目前所做的編輯動作。</strong>\n您可先複製您的文字並貼上到文字檔案中儲存,稍後再儲存您編輯。\n\n鎖定資料庫的管理員有以下說明:$1",
        "protectedpagewarning": "<strong>警告:本頁已經被保護,只有擁有管理員權限的使用者才可編輯。</strong>\n以下提供最近的日誌以便參考:",
        "semiprotectedpagewarning": "<strong>注意:</strong>本頁已經被保護,只有已註冊的使用者才可編輯。\n以下提供最近的日誌以便參考:",
        "cascadeprotectedwarning": "<strong>警告:</strong>本頁已經被保護,只有擁有管理員權限的使用者才可編輯,此頁面被下列頁面引用因此連鎖保護:",
        "post-expand-template-argument-category": "樣版參數有部份被忽略的頁面",
        "parser-template-loop-warning": "偵測到樣版遞迴:[[$1]]",
        "parser-template-recursion-depth-warning": "超出樣版遞迴深度限制 ($1)",
-       "language-converter-depth-warning": "已超過語言轉換器深度限制($1)",
+       "language-converter-depth-warning": "已超出語言轉換器深度限制 ($1)",
        "node-count-exceeded-category": "節點數量超出限制的頁面",
        "node-count-exceeded-category-desc": "用來顯示超過節點數量頁面的分類。",
        "node-count-exceeded-warning": "頁面超出節點數量限制",
        "expansion-depth-exceeded-warning": "頁面超出展開深度限制",
        "parser-unstrip-loop-warning": "偵測到 Unstrip 迴圈",
        "parser-unstrip-recursion-limit": "Unstrip 遞迴超出限制 ($1)",
-       "converter-manual-rule-error": "æ\96¼æ\89\8bå\8b\95èª\9eè¨\80è½\89æ\8f\9bè¦\8få\89\87æ\99\82å\81µæ¸¬å\88°é\8c¯èª¤",
+       "converter-manual-rule-error": "手動語言轉換規則時偵測到錯誤",
        "undo-success": "此編輯可以被還原。\n請檢查以下比較表,確認您是否要還原,然後儲存以下變更以完成編輯還原。",
        "undo-failure": "由於編輯的修訂間有衝突,此編輯不能還原。",
        "undo-norev": "此編輯不存在或已被刪除,無法還原。",
        "rev-suppressed-unhide-diff": "檢視差異的其中一個修訂已被 <strong>禁止顯示</strong>。\n可至 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 禁止顯示日誌] 取得詳細資訊。\n若您要繼續,您仍可以 [$1 檢視此差異]。",
        "rev-deleted-diff-view": "檢視差異的其中一個修訂已被 <strong>刪除</strong>。\n您可繼續檢視差異,可至 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌] 取得詳細資訊。",
        "rev-suppressed-diff-view": "檢視差異的其中一個修訂已被 <strong>禁止顯示</strong>。\n您可繼續檢視差異,可至 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 禁止顯示日誌] 取得詳細資訊。",
-       "rev-delundel": "顯示/隱藏",
+       "rev-delundel": "更改顯示設定",
        "rev-showdeleted": "顯示",
        "revisiondelete": "刪除/取消刪除修訂",
        "revdelete-nooldid-title": "無效的目標修訂",
-       "revdelete-nooldid-text": "您尚未指定一個目標修訂去進行這個功能、\n所指定的修訂不存在,或者您嘗試去隱藏現時的修訂。",
+       "revdelete-nooldid-text": "您尚未指定目標修訂執行此動作、指定的修訂不存在,或您嘗試隱藏目前的修訂。",
        "revdelete-no-file": "指定的檔案不存在。",
-       "revdelete-show-file-confirm": "{{GENDER:|你|妳|你}}是否真的是想去檢視於$2 $3刪除「<nowiki>$1</nowiki>」的檔案修訂?",
+       "revdelete-show-file-confirm": "您是否要檢視檔案 \"<nowiki>$1</nowiki>\" 已刪除的修訂於 $2 $3?",
        "revdelete-show-file-submit": "是",
-       "revdelete-selected-text": "已選定[[:$2]]之$1個版本:",
-       "revdelete-selected-file": "已選定檔案[[:$2]]之$1個版本:",
-       "logdelete-selected": "{{PLURAL:$1|選取的日誌項目}}:",
-       "revdelete-text-text": "已刪除修訂版本仍將出現於頁面歷史中,唯將不公開內容訪問。",
-       "revdelete-text-file": "已刪除檔案版本仍將出現於檔案歷史中,唯將不公開內容訪問。",
-       "logdelete-text": "已刪除日誌活動仍將出現於日誌中,唯將不公開內容訪問。",
-       "revdelete-text-others": "æ\96¼{{SITENAME}}ä¹\8bå\85¶ä»\96管ç\90\86å\93¡ä»\8dæ\9c\89æ¬\8aé\99\90訪å\95\8fé\9a±è\97\8få\85§å®¹ï¼\8c亦å\8f¯æ\96¼å\90\8cä¸\80ç\95\8cé\9d¢æ\81¢å¾©å\88ªé\99¤ï¼\8cé\99¤é\9d\9e設å®\9aé¡\8då¤\96æ¢\9d件ã\80\82",
-       "revdelete-confirm": "請確認您肯定去做的話,您就要明白到後果,以及這個程序符合[[{{MediaWiki:Policy-url}}|政策]]。",
+       "revdelete-selected-text": "已選擇 [[:$2]] 中的{{PLURAL:$1|一筆|多筆}}修訂:",
+       "revdelete-selected-file": "已選擇 [[:$2]] 中的{{PLURAL:$1|一個|多個}}檔案版本:",
+       "logdelete-selected": "已選擇{{PLURAL:$1|一筆|多筆}}日誌活動:",
+       "revdelete-text-text": "已刪除的修訂仍會出現於頁面歷史中,但內容將不開放存取。",
+       "revdelete-text-file": "已刪除的檔案版本仍會出現於檔案歷史中,但內容將不開放存取。",
+       "logdelete-text": "已刪除的日誌活動仍會出現於日誌中,但內容將不開放存取。",
+       "revdelete-text-others": "å\9c¨ {{SITENAME}} ä¸\8aç\9a\84å\85¶ä»\96管ç\90\86å\93¡ä»\8dæ\9c\89æ¬\8aé\99\90å\8f¯ä»¥å­\98å\8f\96é\9a±è\97\8fç\9a\84å\85§å®¹ï¼\8cä¸\94è\83½å¤ å\8f\96æ¶\88å\88ªé\99¤ï¼\8cé\99¤é\9d\9eæ\9c\89é¡\8då¤\96ç\9a\84設å®\9aé\99\90å\88¶ã\80\82",
+       "revdelete-confirm": "請確認您是否明白此動作會造成的後果,\n以及您所做的動作是否符合 [[{{MediaWiki:Policy-url}}|政策]] 規範。",
        "revdelete-suppress-text": "禁制顯示應<strong>只有</strong>在下述情形時使用:\n* 潛在誹謗的資訊\n* 不合適個人資料\n*: <em>住家地址、電話號碼、身分證字號等。</em>",
-       "revdelete-legend": "設定可見性之限制",
+       "revdelete-legend": "設定顯示限制",
        "revdelete-hide-text": "修訂文字",
        "revdelete-hide-image": "隱藏檔案內容",
        "revdelete-hide-name": "隱藏動作和目標",
        "revdelete-hide-restricted": "禁止顯示資料給管理者及其他使用者",
        "revdelete-radio-same": "(請勿更改)",
        "revdelete-radio-set": "隱藏",
-       "revdelete-radio-unset": "可見",
+       "revdelete-radio-unset": "顯示",
        "revdelete-suppress": "禁止顯示資料給管理者及其他使用者",
-       "revdelete-unsuppress": "在已恢復的修訂中移除限制",
+       "revdelete-unsuppress": "移除已還原修訂上的顯示限制",
        "revdelete-log": "原因:",
-       "revdelete-submit": "應用於選取的{{PLURAL:$1|修訂}}",
-       "revdelete-success": "'''修訂的可見性已經成功更新。'''",
-       "revdelete-failure": "'''修訂的可見性無法更新:'''\n$1",
-       "logdelete-success": "'''事件的可見性已經成功設定。'''",
-       "logdelete-failure": "'''事件的可見性無法設定:'''\n$1",
-       "revdel-restore": "變更可見性",
+       "revdelete-submit": "套用至已選取的{{PLURAL:$1|一筆|多筆}}修訂",
+       "revdelete-success": "<strong>已成功更新修訂的顯示設定。</strong>",
+       "revdelete-failure": "<strong>無法更新修訂的顯示設定:</strong>\n$1",
+       "logdelete-success": "<strong>已成功更新日誌的顯示設定。</strong>",
+       "logdelete-failure": "<strong>無法更新日誌的顯示設定:</strong>\n$1",
+       "revdel-restore": "更改顯示設定",
        "pagehist": "頁面歷史",
-       "deletedhist": "已刪除歷史",
-       "revdelete-hide-current": "正在隱藏於$1 $2之項目錯誤:這個是現時的修訂,不可以隱藏。",
-       "revdelete-show-no-access": "æ­£å\9c¨é¡¯ç¤ºæ\96¼$1 $2ä¹\8bé \85ç\9b®é\8c¯èª¤ï¼\9aé\80\99å\80\8bé \85ç\9b®å·²ç¶\93æ¨\99示ç\82º\"å·²é\99\90å\88¶\"ï¼\8cæ\82¨å°\8då®\83並ç\84¡é\80\9aè¡\8cæ¬\8a。",
-       "revdelete-modify-no-access": "正在更改於$1 $2之項目錯誤:這個項目已經標示為\"已限制\",您對它並無通行權。",
-       "revdelete-modify-missing": "正在更改項目ID $1錯誤:它在資料庫中遺失!",
-       "revdelete-no-change": "警告:於$1 $2之項目已經請求了可見性的設定。",
-       "revdelete-concurrent-change": "正在更改於$1 $2之項目錯誤:當我們嘗試更改它的設定時,已經被另一些人更改過。請檢查紀錄。",
-       "revdelete-only-restricted": "在隱藏於 $1 $2 的項目時發生錯誤:您無法在未選擇任何能見性選項下禁止顯示項目。",
+       "deletedhist": "已刪除歷史",
+       "revdelete-hide-current": "隱藏於 $1 $2 的項目錯誤:此為目前的修訂,不可隱藏。",
+       "revdelete-show-no-access": "檢è¦\96æ\96¼ $1 $2 ç\9a\84é \85ç\9b®é\8c¯èª¤ï¼\9aæ­¤é \85ç\9b®å·²è¨­ç\82º \"å·²é\99\90å\88¶\"ã\80\82\næ\82¨æ²\92æ\9c\89æ¬\8aé\99\90å­\98å\8f\96。",
+       "revdelete-modify-no-access": "修改於 $1 $2 的項目錯誤:此項目已設為 \"已限制\"。\n您沒有權限存取。",
+       "revdelete-modify-missing": "修改項目 ID $1 錯誤:資料庫中無該資料!",
+       "revdelete-no-change": "<strong>警告:</strong>於 $1 $2 的項目已請求修改顯示設定。",
+       "revdelete-concurrent-change": "修改於 $1 $2 的項目錯誤:在您嘗試修改之前,狀態已被修改。\n請檢查日誌。",
+       "revdelete-only-restricted": "在隱藏於 $1 $2 的項目時發生錯誤:您不可在未選擇顯示設定的情況下禁止管理員檢視項目。",
        "revdelete-reason-dropdown": "*常見的刪除原因\n** 侵犯版權\n** 不合適的評論或個人資訊\n** 不當的使用者名稱\n** 隱含誹謗的資訊",
        "revdelete-otherreason": "其它/額外的原因:",
        "revdelete-reasonotherlist": "其它原因",
        "difference-multipage": "(頁面間的差異)",
        "lineno": "行 $1:",
        "compareselectedversions": "比較已選擇的修訂",
-       "showhideselectedversions": "顯示/隱藏已選擇的修訂",
+       "showhideselectedversions": "更改已選擇修訂的顯示設定",
        "editundo": "還原",
        "diff-empty": "(無差異)",
        "diff-multi-sameuser": "(未顯示相同使用者於中間所作的 $1 次修訂)",
        "diff-multi-manyusers": "(未顯示由超過 $2 位使用者於中間所作的 $1 次修訂)",
        "difference-missing-revision": "{{PLURAL:$2|1次修訂|$2 次修訂}}差異($1)不存在。\n\n這通常是因為過時的頁面修訂差異鏈接被刪除。\n詳情請閱[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。",
        "searchresults": "搜尋結果",
-       "searchresults-title": "對「$1」的搜尋結果",
-       "toomanymatches": "過多的匹配已回應,請嘗試一個不同的查詢",
-       "titlematches": "é \81é\9d¢æ¨\99é¡\8cç\9b¸ç¬¦",
-       "textmatches": "é \81é\9d¢å\85§å®¹ç\9b¸ç¬¦",
-       "notextmatches": "沒有頁面內容匹配",
+       "searchresults-title": "\"$1\" 的搜尋結果",
+       "toomanymatches": "太多符合條件的結果,請嘗試使用較複雜的查詢",
+       "titlematches": "é \81é\9d¢æ¨\99é¡\8c符å\90\88",
+       "textmatches": "é \81é\9d¢å\85§å®¹ç¬¦å\90\88",
+       "notextmatches": "沒有符合的頁面內容",
        "prevn": "前 $1 筆",
        "nextn": "後 {{PLURAL:$1|$1}} 筆",
        "prevn-title": "前 $1 筆結果",
        "nextn-title": "後 $1 筆結果",
-       "shown-title": "每頁顯示 $1 結果",
+       "shown-title": "每頁顯示 $1 結果",
        "viewprevnext": "檢視 ($1 {{int:pipe-separator}} $2) ($3)",
-       "searchmenu-exists": "'''在這個 wiki 上已有一頁面叫做「[[:$1]]」。'''",
-       "searchmenu-new": "<strong>於此 Wiki 建立頁面 \"[[:$1]]\"!</strong>請參考您輸入的條件找到的搜尋結果。",
+       "searchmenu-exists": "<strong>此 Wiki 已有名稱為 \"[[:$1]]\" 的頁面。</strong> {{PLURAL:$2|0=|或請參考其他搜尋結果。}}",
+       "searchmenu-new": "<strong>於此 Wiki 建立頁面 \"[[:$1]]\"!</strong>{{PLURAL:$2|0=|或請參考您輸入的條件找到的搜尋結果。|或請參考其他搜尋結果。}}",
        "searchprofile-articles": "內容頁面",
        "searchprofile-project": "說明與專案頁面",
        "searchprofile-images": "多媒體",
        "searchprofile-advanced-tooltip": "搜尋自訂命名空間",
        "search-result-size": "$1 ($2 個字)",
        "search-result-category-size": "$1 位成員 ($2 個子分類,$3 個檔案)",
-       "search-result-score": "相關度$1%",
+       "search-result-score": "相關度$1%",
        "search-redirect": "(重新導向至 $1)",
        "search-section": "(章節 $1)",
        "search-file-match": "(符合檔案內容)",
-       "search-suggest": "{{GENDER:|你|妳|你}}是不是要找:$1",
-       "search-interwiki-caption": "å§\8a妹專案",
+       "search-suggest": "您指的是不是:$1",
+       "search-interwiki-caption": "å§\90妹專案",
        "search-interwiki-default": "來自 $1 的結果:",
        "search-interwiki-more": "(更多)",
        "search-relatedarticle": "相關",
        "searcheverything-enable": "搜尋所有命名空間",
        "searchrelated": "相關",
        "searchall": "全部",
-       "showingresults": "ä¸\8bé\9d¢é¡¯ç¤ºå¾\9e第 <b>$2</b> æ¢\9dé\96\8bå§\8bç\9a\84 <b>$1</b> æ¢\9dçµ\90æ\9e\9c:",
-       "showingresultsinrange": "以下顯示第 <strong>$2</strong> 筆至第 <strong>$3</strong> 筆,共 <strong>$1</strong> 筆搜尋結果。",
-       "showingresultsnum": "ä¸\8bé\9d¢é¡¯ç¤ºå¾\9e第 '''$2''' æ¢\9dé\96\8bå§\8bç\9a\84 '''{{PLURAL:$3|1|$3}}''' æ¢\9dçµ\90æ\9e\9cã\80\82",
-       "showingresultsheader": "對'''$4'''的{{PLURAL:$5|第 '''$1''' 至第 '''$3''' 項結果|第 '''$1 - $2''' 項,共 '''$3''' 項結果}}",
-       "search-nonefound": "在查詢中無結果相符。",
+       "showingresults": "以ä¸\8b顯示å¾\9e第 <strong>$2</strong> ç­\86é\96\8bå§\8bï¼\8cå\85± {{PLURAL:$1|<strong>1</strong> ç­\86çµ\90æ\9e\9c|<strong>$1</strong> ç­\86çµ\90æ\9e\9c}}:",
+       "showingresultsinrange": "以下顯示從第 <strong>$2</strong> 筆至第 <strong>$3</strong> 筆中的 {{PLURAL:$1|<strong>1</strong> 筆結果|<strong>$1</strong> 筆結果}}:",
+       "showingresultsnum": "以ä¸\8b顯示å¾\9e第 <strong>$2</strong> ç­\86é\96\8bå§\8bï¼\8cå\85± {{PLURAL:$3|<strong>1</strong> ç­\86çµ\90æ\9e\9c|<strong>$3</strong> ç­\86çµ\90æ\9e\9c}}ï¼\9a",
+       "showingresultsheader": "<strong>$4</strong> 的 {{PLURAL:$5|第 <strong>$1</strong> 筆結果,共 <strong>$3</strong> 筆|第 <strong>$1 - $2</strong>,共 <strong>$3</strong> 筆}}",
+       "search-nonefound": "無符合查詢條件的結果。",
        "powersearch-legend": "進階搜尋",
        "powersearch-ns": "搜尋以下命名空間:",
-       "powersearch-togglelabel": "勾選:",
+       "powersearch-togglelabel": "請選擇:",
        "powersearch-toggleall": "全部",
        "powersearch-togglenone": "無",
        "search-external": "外部搜尋",
-       "searchdisabled": "{{SITENAME}}由於性能方面的原因,全文搜索已被暫時停用。您可以暫時透過Google搜索。請留意他們的索引可能會過時。",
+       "searchdisabled": "{{SITENAME}} 已停用搜尋功能。\n您可以改透過 Google 搜尋。\n請注意,在 Google 中搜尋到的 {{SITENAME}} 頁面內容可能不是最新的。",
        "search-error": "搜尋時發生錯誤:$1",
        "preferences": "偏好設定",
        "mypreferences": "偏好設定",
        "prefs-watchlist-edits": "展開監視列表中顯示的變更數量上限:",
        "prefs-watchlist-edits-max": "數量上限:1000",
        "prefs-watchlist-token": "監視列表密鑰:",
-       "prefs-misc": "雜項",
+       "prefs-misc": "其他",
        "prefs-resetpass": "變更密碼",
        "prefs-changeemail": "變更電子郵件",
        "prefs-setemail": "設定電子郵件位址",
        "userrights-groups-help": "您可以更改此使用者所屬的群組:\n* 已勾選的核選方塊代表該使用者屬於該群組。\n* 未勾選的核選方塊代表該使用者不屬於該群組。\n* 有 * 號標示代表一旦加入該群組後便不能移除,反之亦然。",
        "userrights-reason": "原因:",
        "userrights-no-interwiki": "您沒有權限去編輯其它使用者在 Wiki 上的權限。",
-       "userrights-nodatabase": "資料庫$1不存在或並非為本地的。",
+       "userrights-nodatabase": "資料庫 $1 不存在或不在本地主機的。",
        "userrights-nologin": "您必須 [[Special:UserLogin|登入]] 管理員帳號以指定使用者權限。",
        "userrights-notallowed": "你無權加入或刪除使用者權限。",
        "userrights-changeable-col": "您可變更的群組",
        "right-suppressredirect": "移動頁面時不建立來源的重新導向頁面",
        "right-upload": "上傳檔案",
        "right-reupload": "覆蓋現有的檔案",
-       "right-reupload-own": "覆蓋由同一位上載的檔案",
-       "right-reupload-shared": "於本地無視共用媒體檔案庫上的檔案",
-       "right-upload_by_url": "由一個URL上載檔案",
-       "right-purge": "不確認清除網站快取",
-       "right-autoconfirmed": "不受以 IP 為基礎的註冊頻率限制",
-       "right-bot": "視為一個自動程序",
-       "right-nominornewtalk": "若討論頁面為小修訂,則不顯示新訊息提示",
-       "right-apihighlimits": "API 查詢中可使用較高上限值",
+       "right-reupload-own": "覆蓋自己上傳的檔案",
+       "right-reupload-shared": "覆蓋共用媒體檔案庫於本地的檔案",
+       "right-upload_by_url": "使用 URL 上傳檔案",
+       "right-purge": "不須確認即清除網站的頁面快取",
+       "right-autoconfirmed": "不受 IP-based 的註冊頻率限制",
+       "right-bot": "將其視為自動程序",
+       "right-nominornewtalk": "不顯示討論頁面中小修訂的新訊息提示",
+       "right-apihighlimits": "使用 API 查詢的最高上限值",
        "right-writeapi": "使用寫入 API",
        "right-delete": "刪除頁面",
-       "right-bigdelete": "刪除大量歷史之頁面",
-       "right-deletelogentry": "刪除及恢復特定的日誌項目",
-       "right-deleterevision": "å\88ªé\99¤å\8f\8aå\90\8cæ\81¢å¾©é \81é\9d¢ä¸­ç\9a\84æ\8c\87å®\9a修訂",
-       "right-deletedhistory": "檢視已刪除之歷史項目,不含關聯的文本",
-       "right-deletedtext": "檢視已刪除修訂中之已刪除的字以及更改",
-       "right-browsearchive": "搜尋已刪除頁面",
-       "right-undelete": "å\8f\8d刪除頁面",
-       "right-suppressrevision": "檢視及恢復由操作員隱藏之修訂",
+       "right-bigdelete": "刪除有大量歷史記錄的頁面",
+       "right-deletelogentry": "刪除及取消刪除指定的日誌項目",
+       "right-deleterevision": "å\88ªé\99¤å\8f\8aå\8f\96æ¶\88å\88ªé\99¤æ\8c\87å®\9aç\9a\84é \81é\9d¢修訂",
+       "right-deletedhistory": "檢視已刪除的歷史項目,不含關聯的文字",
+       "right-deletedtext": "檢視已刪除修訂中已刪除的文字及變更",
+       "right-browsearchive": "搜尋已刪除頁面",
+       "right-undelete": "å\8f\96æ¶\88刪除頁面",
+       "right-suppressrevision": "複查與還原由管理員隱藏的修訂",
        "right-suppressionlog": "檢視非公開的日誌",
        "right-block": "封鎖其他使用者的編輯權限",
        "right-blockemail": "封鎖使用者發送電子郵件的權限",
        "right-hideuser": "封鎖使用者名稱,避免公開顯示",
-       "right-ipblock-exempt": "略過 IP 封鎖、自動封鎖以及範圍封鎖",
-       "right-proxyunbannable": "略過 Proxy 自動封鎖",
+       "right-ipblock-exempt": "略過 IP 封鎖、自動封鎖及範圍封鎖檢查",
+       "right-proxyunbannable": "略過 Proxy 自動封鎖檢查",
        "right-unblockself": "解除封鎖自己",
-       "right-protect": "更改保護等級以及編輯被連鎖保護的頁面",
-       "right-editprotected": "編輯保護層級為「{{int:protect-level-sysop}}」的頁面",
-       "right-editsemiprotected": "編輯保護層級為「{{int:protect-level-autoconfirmed}}」的頁面",
+       "right-protect": "更改保護層級及編輯被連鎖保護的頁面",
+       "right-editprotected": "編輯保護層級為 \"{{int:protect-level-sysop}}\" 的頁面",
+       "right-editsemiprotected": "編輯保護層級為 \"{{int:protect-level-autoconfirmed}}\" 的頁面",
        "right-editinterface": "編輯使用者介面",
        "right-editusercssjs": "編輯其他使用者的 CSS 和 JavaScript 檔案",
        "right-editusercss": "編輯其他使用者的 CSS 檔案",
        "right-edituserjs": "編輯其他使用者的 JavaScript 檔案",
-       "right-editmyusercss": "編輯自己的使用者 CSS 檔",
-       "right-editmyuserjs": "編輯自己的使用者 JavaScript 檔",
-       "right-viewmywatchlist": "檢視的監視列表",
-       "right-editmywatchlist": "編輯您的監視列表。請注意即使沒有這種權利,某些操作仍將添加頁面。",
-       "right-viewmyprivateinfo": "檢視自己的私隱資料(如電郵地址及真實姓名)",
-       "right-editmyprivateinfo": "編輯自己的私隱資料(如電郵地址及真實姓名)",
-       "right-editmyoptions": "編輯的偏好設定",
+       "right-editmyusercss": "編輯自己的使用者 CSS 檔",
+       "right-editmyuserjs": "編輯自己的使用者 JavaScript 檔",
+       "right-viewmywatchlist": "檢視自己的監視列表",
+       "right-editmywatchlist": "編輯自己的監視列表。注意,即使無此權限,某些操作仍會新增頁面至監視列表。",
+       "right-viewmyprivateinfo": "檢視自己的私隱資料 (如:電子郵件地址及真實姓名)",
+       "right-editmyprivateinfo": "編輯自己的私隱資料 (如:電子郵件地址及真實姓名)",
+       "right-editmyoptions": "編輯自己的偏好設定",
        "right-rollback": "快速還原最後一位使用者對某一頁面的編輯",
-       "right-markbotedits": "標示復原編輯作機械人編輯",
-       "right-noratelimit": "沒有使用頻率限制",
-       "right-import": "由其它wiki中匯入頁面",
-       "right-importupload": "由檔案上載中匯入頁面",
-       "right-patrol": "標示他人的編輯爲已巡查",
+       "right-markbotedits": "標示還原編輯為機械人編輯",
+       "right-noratelimit": "不受使用頻率限制",
+       "right-import": "由其他 Wiki 匯入頁面",
+       "right-importupload": "由檔案上匯入頁面",
+       "right-patrol": "標示他人的編輯爲已巡查",
        "right-autopatrol": "將自己的編輯自動標示為已巡查的",
        "right-patrolmarks": "檢視最近變更的巡查標記",
-       "right-unwatchedpages": "檢視未監視頁面",
+       "right-unwatchedpages": "檢視未監視頁面",
        "right-mergehistory": "合併頁面歷史",
        "right-userrights": "編輯所有使用者的權限",
-       "right-userrights-interwiki": "編輯在其它 Wiki 上的使用者權限",
+       "right-userrights-interwiki": "編輯使用者在其它 Wiki 上的權限",
        "right-siteadmin": "鎖定和解除鎖定資料庫",
-       "right-override-export-depth": "匯出含有五層深度連結頁面之頁面",
+       "right-override-export-depth": "匯出頁面包含連結內容,深度上限為 5 層",
        "right-sendemail": "發送電子郵件給其他使用者",
-       "right-passwordreset": "æ\9f¥ç\9c\8bé\87\8dç½®å¯\86碼郵件",
+       "right-passwordreset": "檢è¦\96é\87\8d設å¯\86碼é\9b»å­\90郵件",
        "newuserlogpage": "建立使用者日誌",
        "newuserlogpagetext": "此為建立使用者的日誌。",
        "rightslog": "使用者權限日誌",
        "action-userrights-interwiki": "編輯在其它 Wiki 上的使用者權限",
        "action-siteadmin": "鎖定和解除鎖定資料庫",
        "action-sendemail": "發送電子郵件",
-       "action-editmywatchlist": "編輯您的監視列表",
+       "action-editmywatchlist": "編輯您的監視列表",
        "action-viewmywatchlist": "查看您的監視列表",
        "action-viewmyprivateinfo": "查看您的個人資料",
        "action-editmyprivateinfo": "編輯您的個人資料",
        "recentchanges-label-plusminus": "頁面更改的位元組大小",
        "recentchanges-legend-heading": "'''說明:'''",
        "recentchanges-legend-newpage": "(請參考 [[Special:NewPages|最新頁面]])",
-       "recentchanges-legend-plusminus": "(''±123'')",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "以下為自 <strong>$2</strong> 起的更改 (最多顯示<strong>$1</strong> 筆)。",
        "rclistfrom": "顯示自 $3 $2 以來的最近變更",
        "rcshowhideminor": "$1 小修訂",
        "newpageletter": "新",
        "boteditletter": "機",
        "number_of_watching_users_pageview": "[$1 位在監視的使用者]",
-       "rc_categories": "分類界限(以\"|\"分割)",
+       "rc_categories": "限制分類 (以 \"|\" 分隔)",
        "rc_categories_any": "任意",
        "rc-change-size-new": "更改後$1字節",
        "newsectionsummary": "/* $1 */ 新章節",
        "articleexists": "該名字的頁面已經存在,或者您選擇的名字無效。請再選一個名字。",
        "cantmove-titleprotected": "您不可以移動這個頁面到這個位置,因為該新標題已經被保護以防止建立。",
        "movetalk": "移動相關的對話頁面",
-       "move-subpages": "移動子頁面(上至$1頁)",
+       "move-subpages": "移動子頁面 (共 $1 頁)",
        "move-talk-subpages": "移動對話頁面的子頁面 (共 $1 頁)",
        "movepage-page-exists": "頁面 $1 已經存在,不可以自動地覆寫。",
        "movepage-page-moved": "頁面 $1 已經移動到 $2。",
        "pageinfo-authors": "作者總數",
        "pageinfo-recent-edits": "最近編輯次數 (過去$1內)",
        "pageinfo-recent-authors": "最近作者數目",
-       "pageinfo-magic-words": "魔術{{PLURAL:$1|字}}($1)",
-       "pageinfo-hidden-categories": "隱藏{{PLURAL:$1|分類}}($1)",
-       "pageinfo-templates": "引用的樣版($1)",
-       "pageinfo-transclusions": "使用的頁面($1)",
+       "pageinfo-magic-words": "魔術{{PLURAL:$1|字}} ($1)",
+       "pageinfo-hidden-categories": "隱藏{{PLURAL:$1|分類}} ($1)",
+       "pageinfo-templates": "引用的樣版 ($1)",
+       "pageinfo-transclusions": "頁面被引用於 ($1)",
        "pageinfo-toolboxlink": "頁面資訊",
        "pageinfo-redirectsto": "重新導向至",
        "pageinfo-redirectsto-info": "資訊",
        "metadata-fields": "在本訊息中所列出的 EXIF 元數據域將包含在圖片顯示頁面,當元數據表損壞時只顯示以下訊息。\n其他的元數據預設為隱藏。\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "寬度",
        "exif-imagelength": "高度",
-       "exif-bitspersample": "每象素比特數",
-       "exif-compression": "壓縮方",
-       "exif-photometricinterpretation": "素合成",
+       "exif-bitspersample": "每像素位元",
+       "exif-compression": "壓縮方",
+       "exif-photometricinterpretation": "素合成",
        "exif-orientation": "方位",
-       "exif-samplesperpixel": "象素數",
-       "exif-planarconfiguration": "數據排列",
-       "exif-ycbcrsubsampling": "黃色洋紅二次抽樣比率",
+       "exif-samplesperpixel": "像素數量",
+       "exif-planarconfiguration": "資料排列",
+       "exif-ycbcrsubsampling": "黃色洋紅二次抽樣比率",
        "exif-ycbcrpositioning": "黃色和洋紅配置",
-       "exif-xresolution": "水準分辨率",
-       "exif-yresolution": "垂直分辨率",
-       "exif-stripoffsets": "å\9c\96ç\89\87æ\95¸æ\93\9aå\8d\80",
+       "exif-xresolution": "水平解析度",
+       "exif-yresolution": "垂直解析度",
+       "exif-stripoffsets": "å½±å\83\8fè³\87æ\96\99ä½\8dç½®",
        "exif-rowsperstrip": "每帶行數",
        "exif-stripbytecounts": "每壓縮帶位元組數",
        "exif-jpeginterchangeformat": "JPEG SOI 偏移",
-       "exif-jpeginterchangeformatlength": "JPEG 數據位元組",
+       "exif-jpeginterchangeformatlength": "JPEG 資料位元組",
        "exif-whitepoint": "白點色度",
        "exif-primarychromaticities": "主要色度",
-       "exif-ycbcrcoefficients": "顏色空間轉換矩陣系數",
-       "exif-referenceblackwhite": "黑白參照值對",
-       "exif-datetime": "檔案更改日期和時間",
-       "exif-imagedescription": "å\9c\96ç\89\87標題",
-       "exif-make": "ç\85§ç\9b¸æ©\9f製é\80 å\95\86",
-       "exif-model": "ç\85§ç\9b¸æ©\9få\9e\8bè\99\9f",
-       "exif-software": "用軟體",
+       "exif-ycbcrcoefficients": "色彩空間轉置矩陣系數",
+       "exif-referenceblackwhite": "黑白參考值",
+       "exif-datetime": "檔案修改日期時間",
+       "exif-imagedescription": "å½±å\83\8f標題",
+       "exif-make": "相機製造商",
+       "exif-model": "相機型號",
+       "exif-software": "使用軟體",
        "exif-artist": "作者",
-       "exif-copyright": "版權所有",
+       "exif-copyright": "版權所有",
        "exif-exifversion": "Exif 版本",
        "exif-flashpixversion": "支援的 Flashpix 版本",
-       "exif-colorspace": "顏色空間",
-       "exif-componentsconfiguration": "æ¯\8få\88\86é\87\8få\90«ç¾©",
-       "exif-compressedbitsperpixel": "å\9c\96ç\89\87壓縮模式",
+       "exif-colorspace": "色彩空間",
+       "exif-componentsconfiguration": "æ¯\8få\83\8fç´ å\85§å\90«",
+       "exif-compressedbitsperpixel": "å½±å\83\8f壓縮模式",
        "exif-pixelydimension": "圖片寬度",
        "exif-pixelxdimension": "圖片高度",
        "exif-usercomment": "使用者評論",
-       "exif-relatedsoundfile": "相關的音檔案",
-       "exif-datetimeoriginal": "æ\95¸æ\93\9aç\94¢ç\94\9fæ\99\82é\96\93",
-       "exif-datetimedigitized": "數字化處理時間",
-       "exif-subsectime": "日期時間秒",
-       "exif-subsectimeoriginal": "原始日期時間秒",
-       "exif-subsectimedigitized": "數字化日期時間秒",
+       "exif-relatedsoundfile": "相關的音檔案",
+       "exif-datetimeoriginal": "è³\87æ\96\99ç\94¢ç\94\9fç\9a\84æ\97¥æ\9c\9fæ\99\82é\96\93",
+       "exif-datetimedigitized": "數位化的日期時間",
+       "exif-subsectime": "DateTime 次秒",
+       "exif-subsectimeoriginal": "DateTimeOriginal 次秒",
+       "exif-subsectimedigitized": "DateTimeDigitized 次秒",
        "exif-exposuretime": "曝光時間",
        "exif-exposuretime-format": "$1 秒 ($2)",
-       "exif-fnumber": "光圈(F值)",
+       "exif-fnumber": "光圈",
        "exif-exposureprogram": "曝光模式",
-       "exif-spectralsensitivity": "感光",
+       "exif-spectralsensitivity": "光譜靈敏度",
        "exif-isospeedratings": "ISO 速率",
-       "exif-shutterspeedvalue": "APEX快門速度",
-       "exif-aperturevalue": "APEX光圈",
-       "exif-brightnessvalue": "APEX亮度",
-       "exif-exposurebiasvalue": "曝光補償",
+       "exif-shutterspeedvalue": "APEX 快門速度",
+       "exif-aperturevalue": "APEX 光圈",
+       "exif-brightnessvalue": "APEX 亮度",
+       "exif-exposurebiasvalue": "APEX 曝光補償",
        "exif-maxaperturevalue": "最大陸地光圈",
-       "exif-subjectdistance": "物距",
-       "exif-meteringmode": "測模式",
+       "exif-subjectdistance": "主體距離",
+       "exif-meteringmode": "測模式",
        "exif-lightsource": "光源",
        "exif-flash": "閃光燈",
        "exif-focallength": "焦距",
        "exif-subjectarea": "主體區域",
        "exif-flashenergy": "閃光燈強度",
-       "exif-focalplanexresolution": "X軸焦平面分辨率",
-       "exif-focalplaneyresolution": "Y軸焦平面分辨率",
-       "exif-focalplaneresolutionunit": "焦平面分辨率單位",
-       "exif-subjectlocation": "主é¡\8c位置",
+       "exif-focalplanexresolution": "X 軸焦平面解析度",
+       "exif-focalplaneyresolution": "Y 軸焦平面解析度",
+       "exif-focalplaneresolutionunit": "焦平面解析度單位",
+       "exif-subjectlocation": "主é«\94位置",
        "exif-exposureindex": "曝光指數",
        "exif-sensingmethod": "感光模式",
-       "exif-filesource": "檔案源",
+       "exif-filesource": "檔案源",
        "exif-scenetype": "場景類型",
-       "exif-customrendered": "è\87ªè¨\82å\9c\96ç\89\87處理",
+       "exif-customrendered": "è\87ªè¨\82å½±å\83\8f處理",
        "exif-exposuremode": "曝光模式",
        "exif-whitebalance": "白平衡",
-       "exif-digitalzoomratio": "數變焦比率",
-       "exif-focallengthin35mmfilm": "35毫米膠片焦距",
-       "exif-scenecapturetype": "景拍攝類型",
+       "exif-digitalzoomratio": "數變焦比率",
+       "exif-focallengthin35mmfilm": "35 毫米膠片焦距",
+       "exif-scenecapturetype": "景拍攝類型",
        "exif-gaincontrol": "場景控制",
        "exif-contrast": "對比度",
        "exif-saturation": "飽和度",
-       "exif-sharpness": "é\8a³å\8c\96",
+       "exif-sharpness": "é\8a³å\88©åº¦",
        "exif-devicesettingdescription": "設備設定描述",
        "exif-subjectdistancerange": "主體距離範圍",
-       "exif-imageuniqueid": "å\94¯ä¸\80å\9c\96ç\89\87ID",
-       "exif-gpsversionid": "GPS 標籤(tag)版本",
+       "exif-imageuniqueid": "å\94¯ä¸\80å½±å\83\8f ID",
+       "exif-gpsversionid": "GPS 標籤版本",
        "exif-gpslatituderef": "北緯或南緯",
        "exif-gpslatitude": "緯度",
        "exif-gpslongituderef": "東經或西經",
        "exif-gpslongitude": "經度",
-       "exif-gpsaltituderef": "海拔正負參照",
+       "exif-gpsaltituderef": "海拔參考值",
        "exif-gpsaltitude": "海拔",
-       "exif-gpstimestamp": "GPS 時間(原子時鐘)",
+       "exif-gpstimestamp": "GPS 時間 (原子鐘)",
        "exif-gpssatellites": "測量使用的衛星",
        "exif-gpsstatus": "接收器狀態",
        "exif-gpsmeasuremode": "測量模式",
        "exif-gpsdop": "測量精度",
        "exif-gpsspeedref": "速度單位",
        "exif-gpsspeed": "GPS 接收器速度",
-       "exif-gpstrackref": "運動方位參照",
-       "exif-gpstrack": "運動方位",
-       "exif-gpsimgdirectionref": "å\9c\96ç\89\87æ\96¹ä½\8då\8f\83ç\85§",
-       "exif-gpsimgdirection": "å\9c\96ç\89\87æ\96¹ä½\8d",
-       "exif-gpsmapdatum": "使ç\94¨å\9c°ç\90\86測繪æ\95¸æ\93\9a",
-       "exif-gpsdestlatituderef": "目標緯度參",
+       "exif-gpstrackref": "移動方向參考值",
+       "exif-gpstrack": "移動方向",
+       "exif-gpsimgdirectionref": "å½±å\83\8fæ\96¹å\90\91å\8f\83è\80\83å\80¼",
+       "exif-gpsimgdirection": "å½±å\83\8fæ\96¹å\90\91",
+       "exif-gpsmapdatum": "使ç\94¨å¤§å\9c°æ¸¬é\87\8fè³\87æ\96\99",
+       "exif-gpsdestlatituderef": "目標緯度參考值",
        "exif-gpsdestlatitude": "目標緯度",
-       "exif-gpsdestlongituderef": "目標經度的參照",
+       "exif-gpsdestlongituderef": "目標經度參考值",
        "exif-gpsdestlongitude": "目標經度",
-       "exif-gpsdestbearingref": "目標方位參",
+       "exif-gpsdestbearingref": "目標方位參考值",
        "exif-gpsdestbearing": "目標方位",
-       "exif-gpsdestdistanceref": "目標距離參",
+       "exif-gpsdestdistanceref": "目標距離參考值",
        "exif-gpsdestdistance": "目標距離",
-       "exif-gpsprocessingmethod": "GPS 處理方名稱",
+       "exif-gpsprocessingmethod": "GPS 處理方名稱",
        "exif-gpsareainformation": "GPS 區域名稱",
        "exif-gpsdatestamp": "GPS 日期",
-       "exif-gpsdifferential": "GPS å·®å\8b\95修正",
+       "exif-gpsdifferential": "GPS å·®å\88\86修正",
        "exif-jpegfilecomment": "JPEG 檔案備註",
        "exif-keywords": "關鍵字",
        "exif-worldregioncreated": "圖片拍攝地",
        "exif-countrycreated": "圖片拍攝國家",
-       "exif-countrycodecreated": "拍攝的國家代碼",
-       "exif-provinceorstatecreated": "省市",
-       "exif-citycreated": "照片中的城市",
-       "exif-sublocationcreated": "該城市的子地點",
-       "exif-worldregiondest": "世界區域顯示",
-       "exif-countrydest": "顯示國家",
-       "exif-countrycodedest": "顯示國家代碼",
-       "exif-provinceorstatedest": "省或狀態顯示",
+       "exif-countrycodecreated": "圖片拍攝國家代碼",
+       "exif-provinceorstatecreated": "圖片拍攝省市",
+       "exif-citycreated": "圖片拍攝城市",
+       "exif-sublocationcreated": "圖片拍攝城市詳細地點",
+       "exif-worldregiondest": "顯示世界區域",
+       "exif-countrydest": "顯示國家",
+       "exif-countrycodedest": "顯示國家代碼",
+       "exif-provinceorstatedest": "顯示省或州",
        "exif-citydest": "顯示城市",
-       "exif-sublocationdest": "城市的子地點",
+       "exif-sublocationdest": "顯示城市詳細地點",
        "exif-objectname": "簡稱",
        "exif-specialinstructions": "特別說明",
        "exif-headline": "標題",
-       "exif-credit": "署名/提供者",
+       "exif-credit": "製作/提供者",
        "exif-source": "來源",
        "exif-editstatus": "圖片編輯狀態",
        "exif-urgency": "緊急性",
        "exif-fixtureidentifier": "夾具名稱",
        "exif-locationdest": "位置描述",
-       "exif-locationdestcode": "位置所示的代碼",
+       "exif-locationdestcode": "位置代碼描述",
        "exif-objectcycle": "媒體的時間",
-       "exif-contact": "è\81¯ç¹«ä¿¡æ\81¯",
+       "exif-contact": "è\81¯çµ¡è³\87è¨\8a",
        "exif-writer": "作家",
        "exif-languagecode": "語言",
        "exif-iimversion": "IIM版本",
index a751396..93507b3 100644 (file)
@@ -99,7 +99,7 @@ class DeleteBatch extends Maintenance {
                        $this->output( $title->getPrefixedText() );
                        $dbw->begin( __METHOD__ );
                        if ( $title->getNamespace() == NS_FILE ) {
-                               $img = wfFindFile( $title );
+                               $img = wfFindFile( $title, array( 'ignoreRedirect' => true ) );
                                if ( $img && $img->isLocal() && !$img->delete( $reason ) ) {
                                        $this->output( " FAILED to delete associated file... " );
                                }
diff --git a/maintenance/language/countMessages.php b/maintenance/language/countMessages.php
deleted file mode 100644 (file)
index 1cb24ab..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-/**
- * Count how many messages we have defined for each language.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup MaintenanceLanguage
- */
-
-require_once __DIR__ . '/../Maintenance.php';
-
-/**
- * Maintenance script that counts how many messages we have defined
- * for each language.
- *
- * @ingroup MaintenanceLanguage
- */
-class CountMessages extends Maintenance {
-       public function __construct() {
-               parent::__construct();
-               $this->mDescription = "Count how many messages we have defined for each language";
-       }
-
-       public function execute() {
-               global $IP;
-               $dir = $this->getArg( 0, "$IP/languages/messages" );
-               $total = 0;
-               $nonZero = 0;
-               foreach ( glob( "$dir/*.php" ) as $file ) {
-                       $baseName = basename( $file );
-                       if ( !preg_match( '/Messages([A-Z][a-z_]+)\.php$/', $baseName, $m ) ) {
-                               continue;
-                       }
-
-                       $numMessages = $this->getNumMessages( $file );
-                       // print "$code: $numMessages\n";
-                       $total += $numMessages;
-                       if ( $numMessages > 0 ) {
-                               $nonZero++;
-                       }
-               }
-               $this->output( "\nTotal: $total\n" );
-               $this->output( "Languages: $nonZero\n" );
-       }
-
-       private function getNumMessages( $file ) {
-               // Separate function to limit scope
-               require $file;
-               if ( isset( $messages ) ) {
-                       return count( $messages );
-               } else {
-                       return 0;
-               }
-       }
-}
-
-$maintClass = "CountMessages";
-require_once RUN_MAINTENANCE_IF_MAIN;
diff --git a/maintenance/language/validate.php b/maintenance/language/validate.php
deleted file mode 100644 (file)
index f1b4079..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-/**
- * Check language files for unrecognised variables.
- *
- * 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 MaintenanceLanguage
- */
-
-if ( PHP_SAPI != 'cli' ) {
-       die( "Run me from the command line please.\n" );
-}
-
-if ( !isset( $argv[1] ) ) {
-       print "Usage: php {$argv[0]} <filename>\n";
-       exit( 1 );
-}
-array_shift( $argv );
-
-define( 'MEDIAWIKI', 1 );
-define( 'NOT_REALLY_MEDIAWIKI', 1 );
-
-$IP = __DIR__ . '/../..';
-
-require_once "$IP/includes/Defines.php";
-require_once "$IP/languages/Language.php";
-
-$files = array();
-foreach ( $argv as $arg ) {
-       $files = array_merge( $files, glob( $arg ) );
-}
-
-foreach ( $files as $filename ) {
-       print "$filename...";
-       $vars = getVars( $filename );
-       $keys = array_keys( $vars );
-       $diff = array_diff( $keys, Language::$mLocalisationKeys );
-       if ( $diff ) {
-               print "\nWarning: unrecognised variable(s): " . implode( ', ', $diff ) . "\n";
-       } else {
-               print " ok\n";
-       }
-}
-
-function getVars( $filename ) {
-       require $filename;
-       $vars = get_defined_vars();
-       unset( $vars['filename'] );
-
-       return $vars;
-}
index 314d518..05745f8 100644 (file)
                                                // Make sure the numeral order doesn't get messed up, force the first (soon to be second) item
                                                // to be "1". Except if the value-attribute is already used.
                                                // If no value was set WebKit returns "", Mozilla returns '-1', others return 0, null or undefined.
-                                               firstval = $firstItem.attr( 'value' );
+                                               firstval = $firstItem.prop( 'value' );
                                                if ( firstval === undefined || !firstval || firstval === '-1' || firstval === -1 ) {
-                                                       $firstItem.attr( 'value', '1' );
+                                                       $firstItem.prop( 'value', '1' );
                                                }
                                                $toggleLink = buildDefaultToggleLink();
                                                $toggleLink.wrap( '<li class="mw-collapsible-toggle-li"></li>' ).parent().prependTo( $collapsible );
index 0ab4b37..7bfb642 100644 (file)
@@ -29,26 +29,26 @@ figure[typeof*='mw:Image'] {
                border: 0;
        }
 
-       .mw-halign-right {
+       &.mw-halign-right {
                /* @noflip */
                margin: .5em 0 1.3em 1.4em;
                /* @noflip */
-               clear: left;
+               clear: right;
                /* @noflip */
-               float: left;
+               float: right;
        }
 
        /* @noflip */
-       .mw-halign-left {
+       &.mw-halign-left {
                /* @noflip */
                margin: .5em 1.4em 1.3em 0;
                /* @noflip */
-               clear: right;
+               clear: left;
                /* @noflip */
-               float: right;
+               float: left;
        }
 
-       .mw-halign-center {
+       &.mw-halign-center {
                margin-left: auto;
                margin-right: auto;
        }
index a5eb29b..37cf68f 100644 (file)
@@ -86,6 +86,7 @@ $wgAutoloadClasses += array(
 
        # tests/phpunit/media
        'FakeDimensionFile' => "$testDir/phpunit/includes/media/FakeDimensionFile.php",
+       'MediaWikiMediaTestCase' => "$testDir/phpunit/includes/media/MediaWikiMediaTestCase.php",
 
        # tests/phpunit/mocks
        'MockFSFile' => "$testDir/phpunit/mocks/filebackend/MockFSFile.php",
diff --git a/tests/phpunit/includes/config/ConfigFactoryTest.php b/tests/phpunit/includes/config/ConfigFactoryTest.php
new file mode 100644 (file)
index 0000000..0a6bf72
--- /dev/null
@@ -0,0 +1,46 @@
+<?php
+
+class ConfigFactoryTest extends MediaWikiTestCase {
+
+       /**
+        * @covers ConfigFactory::register
+        */
+       public function testRegister() {
+               $factory = new ConfigFactory();
+               $factory->register( 'unittest', 'GlobalVarConfig::newInstance' );
+               $this->assertTrue( True ); // No exception thrown
+               $this->setExpectedException( 'InvalidArgumentException' );
+               $factory->register( 'invalid', 'Invalid callback' );
+       }
+
+       /**
+        * @covers ConfigFactory::makeConfig
+        */
+       public function testMakeConfig() {
+               $factory = new ConfigFactory();
+               $factory->register( 'unittest', 'GlobalVarConfig::newInstance' );
+               $conf = $factory->makeConfig( 'unittest' );
+               $this->assertInstanceOf( 'Config', $conf );
+       }
+
+       /**
+        * @covers ConfigFactory::makeConfig
+        */
+       public function testMakeConfigWithNoBuilders() {
+               $factory = new ConfigFactory();
+               $this->setExpectedException( 'ConfigException' );
+               $factory->makeConfig( 'nobuilderregistered' );
+       }
+
+       /**
+        * @covers ConfigFactory::makeConfig
+        */
+       public function testMakeConfigWithInvalidCallback() {
+               $factory = new ConfigFactory();
+               $factory->register( 'unittest', function() {
+                       return true; // Not a Config object
+               });
+               $this->setExpectedException( 'UnexpectedValueException' );
+               $factory->makeConfig( 'unittest' );
+       }
+}
diff --git a/tests/phpunit/includes/config/GlobalConfigTest.php b/tests/phpunit/includes/config/GlobalConfigTest.php
deleted file mode 100644 (file)
index b605a46..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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;
-               }
-       }
-}
diff --git a/tests/phpunit/includes/config/GlobalVarConfigTest.php b/tests/phpunit/includes/config/GlobalVarConfigTest.php
new file mode 100644 (file)
index 0000000..7080b02
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+class GlobalVarConfigTest extends MediaWikiTestCase {
+
+       public function provideGet() {
+               $set = array(
+                       'wgSomething' => 'default1',
+                       'wgFoo' => 'default2',
+                       'efVariable' => 'default3',
+                       'BAR' => 'default4',
+               );
+
+               foreach ( $set as $var => $value ) {
+                       $GLOBALS[$var] = $value;
+               }
+
+               return array(
+                       array( 'Something', 'wg', 'default1' ),
+                       array( 'Foo', 'wg', 'default2' ),
+                       array( 'Variable', 'ef', 'default3' ),
+                       array( 'BAR', '', 'default4' ),
+               );
+       }
+
+       /**
+        * @param string $name
+        * @param string $prefix
+        * @param string $expected
+        * @dataProvider provideGet
+        * @covers GlobalVarConfig::get
+        */
+       public function testGet( $name, $prefix, $expected ) {
+               $config = new GlobalVarConfig( $prefix );
+               $this->assertEquals( $config->get( $name ), $expected );
+       }
+}
index 537c124..76cefe5 100644 (file)
@@ -2,17 +2,7 @@
 /**
  * @covers DjVuHandler
  */
-class DjVuTest extends MediaWikiTestCase {
-
-       /**
-        * @var string the directory where test files are
-        */
-       protected $filePath;
-
-       /**
-        * @var FSRepo the repository to use
-        */
-       protected $repo;
+class DjVuTest extends MediaWikiMediaTestCase {
 
        /**
         * @var DjVuHandler
@@ -26,35 +16,13 @@ class DjVuTest extends MediaWikiTestCase {
                $djvuSupport = new DjVuSupport();
 
                if ( !$djvuSupport->isEnabled() ) {
-                       $this->markTestSkipped( 'This test needs the installation of the ddjvu, djvutoxml and djvudump tools' );
+                       $this->markTestSkipped(
+                       'This test needs the installation of the ddjvu, djvutoxml and djvudump tools' );
                }
 
-               //file repo setup
-               $this->filePath = __DIR__ . '/../../data/media/';
-               $backend = new FSFileBackend( array(
-                       'name' => 'localtesting',
-                       'wikiId' => wfWikiId(),
-                       'lockManager' => new NullLockManager( array() ),
-                       'containerPaths' => array( 'data' => $this->filePath )
-               ) );
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => $backend
-               ) );
-
                $this->handler = new DjVuHandler();
        }
 
-       protected function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile(
-                       false,
-                       $this->repo,
-                       'mwstore://localtesting/data/' . $name,
-                       $type
-               );
-       }
-
        public function testGetImageSize() {
                $this->assertArrayEquals(
                        array( 2480, 3508, 'DjVu', 'width="2480" height="3508"' ),
@@ -64,7 +32,8 @@ class DjVuTest extends MediaWikiTestCase {
        }
 
        public function testInvalidFile() {
-               $this->assertFalse(
+               $this->assertEquals(
+                       'a:1:{s:5:"error";s:25:"Error extracting metadata";}',
                        $this->handler->getMetadata( null, $this->filePath . '/README' ),
                        'Getting Metadata for an inexistent file should returns false'
                );
index 438dc79..6a1e422 100644 (file)
@@ -6,26 +6,13 @@
  *
  * @todo covers tags
  */
-class ExifRotationTest extends MediaWikiTestCase {
+class ExifRotationTest extends MediaWikiMediaTestCase {
 
        protected function setUp() {
                parent::setUp();
                $this->checkPHPExtension( 'exif' );
 
                $this->handler = new BitmapHandler();
-               $filePath = __DIR__ . '/../../data/media';
-
-               $tmpDir = $this->getNewTempDirectory();
-
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => new FSFileBackend( array(
-                               'name' => 'localtesting',
-                               'wikiId' => wfWikiId(),
-                               'containerPaths' => array( 'temp-thumb' => $tmpDir, 'data' => $filePath )
-                       ) )
-               ) );
 
                $this->setMwGlobals( array(
                        'wgShowEXIF' => true,
@@ -33,6 +20,13 @@ class ExifRotationTest extends MediaWikiTestCase {
                ) );
        }
 
+       /**
+        * Mark this test as creating thumbnail files.
+        */
+       protected function createsThumbnails() {
+               return true;
+       }
+
        /**
         * @dataProvider provideFiles
         */
@@ -93,12 +87,6 @@ class ExifRotationTest extends MediaWikiTestCase {
                }
        }
 
-       /* Utility function */
-       private function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile( false, $this->repo,
-                       "mwstore://localtesting/data/$name", $type );
-       }
-
        public static function provideFiles() {
                return array(
                        array(
index a0ab92c..daaefc0 100644 (file)
@@ -1,28 +1,11 @@
 <?php
 
-class FormatMetadataTest extends MediaWikiTestCase {
-
-       /** @var FSFileBackend */
-       protected $backend;
-       /** @var FSRepo */
-       protected $repo;
+class FormatMetadataTest extends MediaWikiMediaTestCase {
 
        protected function setUp() {
                parent::setUp();
 
                $this->checkPHPExtension( 'exif' );
-               $filePath = __DIR__ . '/../../data/media';
-               $this->backend = new FSFileBackend( array(
-                       'name' => 'localtesting',
-                       'wikiId' => wfWikiId(),
-                       'containerPaths' => array( 'data' => $filePath )
-               ) );
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => $this->backend
-               ) );
-
                $this->setMwGlobals( 'wgShowEXIF', true );
        }
 
@@ -82,9 +65,4 @@ class FormatMetadataTest extends MediaWikiTestCase {
                        // TODO: more test cases
                );
        }
-
-       private function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile( false, $this->repo,
-                       "mwstore://localtesting/data/$name", $type );
-       }
 }
index 7a7ed21..17b2964 100644 (file)
@@ -1,29 +1,12 @@
 <?php
-class GIFHandlerTest extends MediaWikiTestCase {
+class GIFHandlerTest extends MediaWikiMediaTestCase {
 
-       /** @var FSFileBackend */
-       protected $backend;
        /** @var GIFHandler */
        protected $handler;
-       /** @var FSRepo */
-       protected $repo;
-       /** @var string */
-       protected $filePath;
 
        protected function setUp() {
                parent::setUp();
 
-               $this->filePath = __DIR__ . '/../../data/media';
-               $this->backend = new FSFileBackend( array(
-                       'name' => 'localtesting',
-                       'wikiId' => wfWikiId(),
-                       'containerPaths' => array( 'data' => $this->filePath )
-               ) );
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => $this->backend
-               ) );
                $this->handler = new GIFHandler();
        }
 
@@ -152,9 +135,4 @@ class GIFHandlerTest extends MediaWikiTestCase {
                        ),
                );
        }
-
-       private function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile( false, $this->repo,
-                       "mwstore://localtesting/data/$name", $type );
-       }
 }
index b261137..c856b1c 100644 (file)
@@ -2,29 +2,14 @@
 /**
  * @covers JpegHandler
  */
-class JpegTest extends MediaWikiTestCase {
-
-       protected $filePath;
+class JpegTest extends MediaWikiMediaTestCase {
 
        protected function setUp() {
                parent::setUp();
                $this->checkPHPExtension( 'exif' );
 
-               $this->filePath = __DIR__ . '/../../data/media/';
-
                $this->setMwGlobals( 'wgShowEXIF', true );
 
-               $this->backend = new FSFileBackend( array(
-                       'name' => 'localtesting',
-                       'wikiId' => wfWikiId(),
-                       'containerPaths' => array( 'data' => $this->filePath )
-               ) );
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => $this->backend
-               ) );
-
                $this->handler = new JpegHandler;
        }
 
@@ -64,9 +49,4 @@ class JpegTest extends MediaWikiTestCase {
 
                $this->assertEquals( $res, $expected );
        }
-
-       private function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile( false, $this->repo,
-                       "mwstore://localtesting/data/$name", $type );
-       }
 }
diff --git a/tests/phpunit/includes/media/MediaWikiMediaTestCase.php b/tests/phpunit/includes/media/MediaWikiMediaTestCase.php
new file mode 100644 (file)
index 0000000..ebfcba9
--- /dev/null
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Specificly for testing Media handlers. Sets up a FSFile backend
+ */
+abstract class MediaWikiMediaTestCase extends MediaWikiTestCase {
+
+       /** @var FSRepo */
+       protected $repo;
+       /** @var FSFileBackend */
+       protected $backend;
+       /** @var string */
+       protected $filePath;
+
+
+       protected function setUp() {
+               parent::setUp();
+
+               $this->filePath = $this->getFilePath();
+               $containers = array( 'data' => $this->filePath );
+               if ( $this->createsThumbnails() ) {
+                       // We need a temp directory for the thumbnails
+                       // the container is named 'temp-thumb' because it is the
+                       // thumb directory for a FSRepo named "temp".
+                       $containers['temp-thumb'] = $this->getNewTempDirectory();
+               }
+
+               $this->backend = new FSFileBackend( array(
+                       'name' => 'localtesting',
+                       'wikiId' => wfWikiId(),
+                       'containerPaths' => $containers
+               ) );
+               $this->repo = new FSRepo( array(
+                       'name' => 'temp',
+                       'url' => 'http://localhost/thumbtest',
+                       'backend' => $this->backend
+               ) );
+       }
+
+       /**
+        * The result of this method will set the file path to use,
+        * as well as the protected member $filePath
+        *
+        * @return String path where files are
+        */
+       protected function getFilePath() {
+               return __DIR__ . '/../../data/media/';
+       }
+
+       /**
+        * Will the test create thumbnails (and thus do we need to set aside
+        * a temporary directory for them?)
+        *
+        * Override this method if your test case creates thumbnails
+        *
+        * @return boolean
+        */
+       protected function createsThumbnails() {
+               return false;
+       }
+
+       /**
+        * Utility function: Get a new file object for a file on disk but not actually in db.
+        *
+        * File must be in the path returned by getFilePath()
+        * @param $name String File name
+        * @param $type String MIME type
+        * @return UnregisteredLocalFile
+        */
+       protected function dataFile( $name, $type ) {
+               return new UnregisteredLocalFile( false, $this->repo,
+                       "mwstore://localtesting/data/$name", $type );
+       }
+}
index 59d40de..14e4d57 100644 (file)
@@ -1,29 +1,11 @@
 <?php
-class PNGHandlerTest extends MediaWikiTestCase {
+class PNGHandlerTest extends MediaWikiMediaTestCase {
 
        /** @var PNGHandler */
        protected $handler;
-       /** @var FSRepo */
-       protected $repo;
-       /** @var FSFileBackend */
-       protected $backend;
-       /** @var string */
-       protected $filePath;
 
        protected function setUp() {
                parent::setUp();
-
-               $this->filePath = __DIR__ . '/../../data/media';
-               $this->backend = new FSFileBackend( array(
-                       'name' => 'localtesting',
-                       'wikiId' => wfWikiId(),
-                       'containerPaths' => array( 'data' => $this->filePath )
-               ) );
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => $this->backend
-               ) );
                $this->handler = new PNGHandler();
        }
 
@@ -142,9 +124,4 @@ class PNGHandlerTest extends MediaWikiTestCase {
                        ),
                );
        }
-
-       private function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile( false, $this->repo,
-                       "mwstore://localtesting/data/$name", $type );
-       }
 }
index 8a3d527..e3bb05e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-class SvgTest extends MediaWikiTestCase {
+class SvgTest extends MediaWikiMediaTestCase {
 
        protected function setUp() {
                parent::setUp();
@@ -9,17 +9,6 @@ class SvgTest extends MediaWikiTestCase {
 
                $this->setMwGlobals( 'wgShowEXIF', true );
 
-               $this->backend = new FSFileBackend( array(
-                       'name' => 'localtesting',
-                       'wikiId' => wfWikiId(),
-                       'containerPaths' => array( 'data' => $this->filePath )
-               ) );
-               $this->repo = new FSRepo( array(
-                       'name' => 'temp',
-                       'url' => 'http://localhost/thumbtest',
-                       'backend' => $this->backend
-               ) );
-
                $this->handler = new SvgHandler;
        }
 
@@ -46,9 +35,4 @@ class SvgTest extends MediaWikiTestCase {
                        array( 'Wikimedia-logo.svg', array() )
                );
        }
-
-       private function dataFile( $name, $type ) {
-               return new UnregisteredLocalFile( false, $this->repo,
-                       "mwstore://localtesting/data/$name", $type );
-       }
 }
index 2393299..f5cd892 100644 (file)
@@ -21,6 +21,7 @@ class StructureTest extends MediaWikiTestCase {
                        'ApiQueryTestBase',
                        'ApiQueryContinueTestBase',
                        'MediaWikiLangTestCase',
+                       'MediaWikiMediaTestCase',
                        'MediaWikiTestCase',
                        'ResourceLoaderTestCase',
                        'PHPUnit_Framework_TestCase',
index e189524..842817f 100644 (file)
@@ -48,7 +48,7 @@
                // Put this text in the span and verify it doesn't fit
                $span.text( spanTextNew );
                // In IE6 width works like min-width, allow IE6's width to be "equal to"
-               if ( $.browser.msie && Number( $.browser.version ) === 6 ) {
+               if ( $.client.test( { 'msie': 6 }, $.client.profile(), true ) ) {
                        assert.gtOrEq( $span.width(), $span.parent().width(), 'Fit is maximal (adding two characters makes it not fit any more) - IE6: Maybe equal to as well due to width behaving like min-width in IE6' );
                } else {
                        assert.gt( $span.width(), $span.parent().width(), 'Fit is maximal (adding two characters makes it not fit any more)' );
index 90700ca..0f6b445 100644 (file)
                assert.strictEqual( window.$j, window.jQuery, '$j alias to jQuery' );
                this.restoreWarnings();
 
+               // window.mw and window.mediaWiki are not deprecated, but for some reason
+               // PhantomJS is triggerring the accessors on all mw.* properties in this test,
+               // and with that lots of unrelated deprecation notices.
+               this.suppressWarnings();
                assert.ok( window.mediaWiki, 'mediaWiki defined' );
                assert.ok( window.mw, 'mw defined' );
                assert.strictEqual( window.mw, window.mediaWiki, 'mw alias to mediaWiki' );
+               this.restoreWarnings();
        } );
 
        QUnit.test( 'mw.Map', 28, function ( assert ) {