Merge "Use Linker::getInvalidTitleDescription() to display invalid title entries...
authorAaron Schulz <aschulz@wikimedia.org>
Thu, 5 Jul 2012 21:42:39 +0000 (21:42 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 5 Jul 2012 21:42:39 +0000 (21:42 +0000)
72 files changed:
.jshintignore [new file with mode: 0644]
.jshintrc [new file with mode: 0644]
RELEASE-NOTES-1.20
api.php
docs/hooks.txt
includes/ChangesList.php
includes/DefaultSettings.php
includes/Linker.php
includes/OutputPage.php
includes/Pager.php
includes/SpecialPage.php
includes/SpecialPageFactory.php
includes/actions/HistoryAction.php
includes/actions/RevisiondeleteAction.php
includes/api/ApiMain.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryLangBacklinks.php
includes/api/ApiQuerySiteinfo.php
includes/cache/SquidUpdate.php
includes/db/DatabaseUtility.php
includes/diff/DifferenceEngine.php
includes/installer/PostgresUpdater.php
includes/mobile/DeviceDetection.php
includes/parser/Parser.php
includes/specials/SpecialContributions.php
languages/messages/MessagesArc.php
languages/messages/MessagesAs.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesFa.php
languages/messages/MessagesFrp.php
languages/messages/MessagesGu.php
languages/messages/MessagesHe.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIt.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKo.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLb.php
languages/messages/MessagesLt.php
languages/messages/MessagesMl.php
languages/messages/MessagesMs.php
languages/messages/MessagesNn.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesRo.php
languages/messages/MessagesSk.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesUk.php
languages/messages/MessagesVot.php
languages/messages/MessagesZh_hant.php
maintenance/cleanupPreferences.php [new file with mode: 0755]
maintenance/parse.php
resources/jquery/jquery.byteLimit.js
resources/jquery/jquery.cookie.js
resources/jquery/jquery.tablesorter.js
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.user.js
tests/parser/parserTests.txt
tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js

diff --git a/.jshintignore b/.jshintignore
new file mode 100644 (file)
index 0000000..fb2a42f
--- /dev/null
@@ -0,0 +1,20 @@
+# upstream libs
+resources/jquery/jquery.appear.js
+resources/jquery/jquery.async.js
+resources/jquery/jquery.cycle.all.js
+resources/jquery/jquery.cookie.js
+resources/jquery/jquery.farbtastic.js
+resources/jquery/jquery.form.js
+resources/jquery/jquery.js
+resources/jquery/jquery.json.js
+resources/jquery/jquery.mockjax.js
+resources/jquery/jquery.qunit.js
+resources/jquery/jquery.validate.js
+resources/jquery/jquery.xmldom.js
+resources/jquery.effects
+resources/jquery.ui
+tests/jasmine/lib/jasmine-1.0.1/jasmine-html.js
+tests/jasmine/lib/jasmine-1.0.1/jasmine.js
+
+# legacy stuff
+skins/common
diff --git a/.jshintrc b/.jshintrc
new file mode 100644 (file)
index 0000000..4e82155
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,10 @@
+{
+       "predef": [
+               "mediaWiki",
+               "jQuery",
+               "QUnit"
+       ],
+       "browser": true,
+       "smarttabs": true,
+       "laxbreak": true
+}
index 03728e4..c85a1c3 100644 (file)
@@ -22,6 +22,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   path info from REQUEST_URI if it's available.
 * The user right 'upload_by_url' is no longer given to sysops by default.
   This only affects installations which have $wgAllowCopyUploads set to true.
+* Removed f-prot support from $wgAntivirusSetup.
 
 === New features in 1.20 ===
 * Added TitleIsAlwaysKnown hook which gets called when determining if a page exists.
@@ -57,6 +58,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Edit notices can now be translated.
 * (bug 35680) jQuery upgraded to 1.7.2.
 * jQuery UI upgraded to 1.8.21.
+* (bug 35705) QUnit upgraded from v1.2.0 to v1.8.0.
+* (bug 37604) jquery.cookie upgraded to 2011 version.
 * (bug 22887) Add warning and tracking category for preprocessor errors
 * (bug 31704) Allow selection of associated namespace on the watchlist
 * (bug 5445) Now remove autoblocks when a user is unblocked.
@@ -69,7 +72,6 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * New getCreator and getOldestRevision methods added to WikiPage class
 * (bug 4220) the XML dump format schema now have unique identity constraints
   for page and revision identifiers. Patch by Elvis Stansvik.
-* (bug 35705) QUnit upgraded from v1.2.0 to v1.8.0.
 * cleanupSpam.php now can delete spam pages if --delete was specified instead of blanking
   them.
 * Added new hook ChangePasswordForm to allow adding of additional fields in Special:ChangePassword
@@ -82,6 +84,12 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   tags with class "mw-watched". Instead, each line now has a class
   "mw-changeslist-line-watched" or "mw-changeslist-line-not-watched", and the
   title itself is surrounded by <span></span> tags with class "mw-title".
+* Added ContribsPager::reallyDoQuery hook allowing extensions to data to MyContribs
+* Added new hook ParserAfterParse to allow extensions to affect parsed output
+  after the parse is complete but before block level processing, link holder
+  replacement, and so on.
+* (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
+  internalParse method just before the parser removes unwanted/dangerous HTML tags.
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -141,6 +149,15 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 35082) mw.util.addPortletLink incorrectly adds link to mutiple <ul> tags.
 * (bug 36495) Sanitizer::fixDeprecatedAttributes should convert "align"
   attribute to margin or float instead of text-align (for non-table-cells).
+* (bug 36991) jquery.tablesorter should extract date sort format from date
+  string instead of global config. Dates like "April 1 2012" and "1 April 2012"
+  now sort correctly regardless of the content language's DefaultDateFormat.
+* (bug 31895) mw.loader mode now correct when triggered from a $.fn.ready
+  handler that is bound before mediawiki.js's handler (e.g. browser-userscripts
+  like greasemonkey).
+* (bug 38152) jquery.tablesorter: Use .data() instead of .attr(), so that live
+  values are used instead of just the fixed values from when the tablesorter
+  was initialized.
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -161,6 +178,10 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * The paraminfo module now also contains result properties for most modules
 * (bug 32348) Allow descending order for list=alllinks
 * (bug 31777) Upload unknown error ``fileexists-forbidden''
+* (bug 32382) Allow descending order for list=iwbacklinks
+* (bug 32381) Allow descending order for list=backlinks, list=embeddedin and list=imageusage
+* (bug 32383) Allow descending order for list=langbacklinks
+* API meta=siteinfo can now return the list of known variable IDs
 
 === Languages updated in 1.20 ===
 
diff --git a/api.php b/api.php
index 1cd5497..1d75857 100644 (file)
--- a/api.php
+++ b/api.php
@@ -62,43 +62,6 @@ if ( !$wgEnableAPI ) {
        die(1);
 }
 
-// Selectively allow cross-site AJAX
-
-/**
- * Helper function to convert wildcard string into a regex
- * '*' => '.*?'
- * '?' => '.'
- *
- * @param $search string
- * @return string
- */
-function convertWildcard( $search ) {
-       $search = preg_quote( $search, '/' );
-       $search = str_replace(
-               array( '\*', '\?' ),
-               array( '.*?', '.' ),
-               $search
-       );
-       return "/$search/";
-}
-
-if ( $wgCrossSiteAJAXdomains && isset( $_SERVER['HTTP_ORIGIN'] ) ) {
-       $exceptions = array_map( 'convertWildcard', $wgCrossSiteAJAXdomainExceptions );
-       $regexes = array_map( 'convertWildcard', $wgCrossSiteAJAXdomains );
-       foreach ( $regexes as $regex ) {
-               if ( preg_match( $regex, $_SERVER['HTTP_ORIGIN'] ) ) {
-                       foreach ( $exceptions as $exc ) { // Check against exceptions
-                               if ( preg_match( $exc, $_SERVER['HTTP_ORIGIN'] ) ) {
-                                       break 2;
-                               }
-                       }
-                       header( "Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}" );
-                       header( 'Access-Control-Allow-Credentials: true' );
-                       break;
-               }
-       }
-}
-
 // Set a dummy $wgTitle, because $wgTitle == null breaks various things
 // In a perfect world this wouldn't be necessary
 $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
index 3744462..70c334a 100644 (file)
@@ -703,10 +703,18 @@ $user: user (object) whose email is being confirmed
 &$pager: Pager object for contributions
 &$queryInfo: The query for the contribs Pager
 
+'ContribsPager::reallyDoQuery': Called before really executing the query for My Contributions
+&$data: an array of results of all contribs queries
+$pager: The ContribsPager object hooked into
+$offset: Index offset, inclusive
+$limit: Exact query limit
+$descending: Query direction, false for ascending, true for descending
+
 'ContributionsLineEnding': Called before a contributions HTML line is finished
 $page: SpecialPage object for contributions
-$ret: the HTML line
+&$ret: the HTML line
 $row: the DB row for this line
+&$classes: the classes to add to the surrounding <li>
 
 'ContributionsToolLinks': Change tool links above Special:Contributions
 $id: User identifier
@@ -1121,8 +1129,16 @@ $prefix: interwiki prefix we are looking for.
 &$iwData: output array describing the interwiki with keys iw_url, iw_local,
   iw_trans and optionally iw_api and iw_wikiid.
 
+'InternalParseBeforeSanitize': during Parser's internalParse method just before the
+parser removes unwanted/dangerous HTML tags and after nowiki/noinclude/includeonly/
+onlyinclude and other processings. Ideal for syntax-extensions after template/parser
+function execution which respect nowiki and HTML-comments.
+&$parser: Parser object
+&$text: string containing partially parsed text
+&$stripState: Parser's internal StripState object
+
 'InternalParseBeforeLinks': during Parser's internalParse method before links
-but after noinclude/includeonly/onlyinclude and other processing.
+but after nowiki/noinclude/includeonly/onlyinclude and other processings.
 &$parser: Parser object
 &$text: string containing partially parsed text
 &$stripState: Parser's internal StripState object
@@ -1462,6 +1478,12 @@ A parser extension which depends on user options should install
 this hook and append its values to the key.
 $hash: reference to a hash key string which can be modified
 
+'ParserAfterParse': Called from Parser::parse() just after the call to
+Parser::internalParse() returns
+$parser: parser object
+$text: text being parsed
+$stripState: stripState used (object)
+
 'ParserAfterStrip': Same as ParserBeforeStrip
 
 'ParserAfterTidy': Called after Parser::tidy() in Parser::parse()
index da56050..fe0db10 100644 (file)
@@ -210,6 +210,8 @@ class ChangesList extends ContextSource {
                        $context = RequestContext::getMain();
                }
 
+               $new = (int)$new;
+               $old = (int)$old;
                $szdiff = $new - $old;
 
                $lang = $context->getLanguage();
@@ -1215,7 +1217,6 @@ class EnhancedChangesList extends ChangesList {
                }
 
                # Tags
-               $classes = explode( ' ', $classes );
                $this->insertTags( $r, $rcObj, $classes );
                # Show how many people are watching this if enabled
                $r .= $this->numberofWatchingusers($rcObj->numberofWatchingusers);
index e2828b9..7441932 100644 (file)
@@ -912,20 +912,6 @@ $wgAntivirusSetup = array(
 
                'messagepattern' => '/.*?:(.*)/sim',
        ),
-
-       #setup for f-prot
-       'f-prot' => array (
-               'command' => "f-prot ",
-
-               'codemap' => array (
-                       "0" => AV_NO_VIRUS, # no virus
-                       "3" => AV_VIRUS_FOUND, # virus found
-                       "6" => AV_VIRUS_FOUND, # virus found
-                       "*" => AV_SCAN_FAILED, # else scan failed
-               ),
-
-               'messagepattern' => '/.*?Infection:(.*)$/m',
-       ),
 );
 
 
index 9fcac65..526ad0c 100644 (file)
@@ -978,7 +978,7 @@ class Linker {
         * @param $userName String: user name in database.
         * @param $altUserName String: text to display instead of the user name (optional)
         * @return String: HTML fragment
-        * @since 1.19 Method exists for a long time. $displayText was added in 1.19.
+        * @since 1.19 Method exists for a long time. $altUserName was added in 1.19.
         */
        public static function userLink( $userId, $userName, $altUserName = false ) {
                if ( $userId == 0 ) {
@@ -1646,11 +1646,17 @@ class Linker {
         * other users.
         *
         * @param $rev Revision object
+        * @param $context IContextSource context to use or null for the main context.
         * @return string
         */
-       public static function generateRollback( $rev ) {
+       public static function generateRollback( $rev, IContextSource $context = null ) {
+               if ( $context === null ) {
+                       $context = RequestContext::getMain();
+               }
+
                return '<span class="mw-rollback-link">'
-                       . wfMessage( 'brackets' )->rawParams( self::buildRollbackLink( $rev ) )->plain()
+                       . $context->msg( 'brackets' )->rawParams(
+                               self::buildRollbackLink( $rev, $context ) )->plain()
                        . '</span>';
        }
 
@@ -1658,24 +1664,28 @@ class Linker {
         * Build a raw rollback link, useful for collections of "tool" links
         *
         * @param $rev Revision object
+        * @param $context IContextSource context to use or null for the main context.
         * @return String: HTML fragment
         */
-       public static function buildRollbackLink( $rev ) {
-               global $wgRequest, $wgUser;
+       public static function buildRollbackLink( $rev, IContextSource $context = null ) {
+               if ( $context === null ) {
+                       $context = RequestContext::getMain();
+               }
+
                $title = $rev->getTitle();
                $query = array(
                        'action' => 'rollback',
                        'from' => $rev->getUserText(),
-                       'token' => $wgUser->getEditToken( array( $title->getPrefixedText(), $rev->getUserText() ) ),
+                       'token' => $context->getUser()->getEditToken( array( $title->getPrefixedText(), $rev->getUserText() ) ),
                );
-               if ( $wgRequest->getBool( 'bot' ) ) {
+               if ( $context->getRequest()->getBool( 'bot' ) ) {
                        $query['bot'] = '1';
                        $query['hidediff'] = '1'; // bug 15999
                }
                return self::link(
                        $title,
-                       wfMsgHtml( 'rollbacklink' ),
-                       array( 'title' => wfMsg( 'tooltip-rollback' ) ),
+                       $context->msg( 'rollbacklink' )->escaped(),
+                       array( 'title' => $context->msg( 'tooltip-rollback' )->text() ),
                        $query,
                        array( 'known', 'noclasses' )
                );
index d0545da..c00cfbe 100644 (file)
@@ -237,7 +237,6 @@ class OutputPage extends ContextSource {
        private $mFollowPolicy = 'follow';
        private $mVaryHeader = array(
                'Accept-Encoding' => array( 'list-contains=gzip' ),
-               'Cookie' => null
        );
 
        /**
@@ -1722,6 +1721,16 @@ class OutputPage extends ContextSource {
                $this->mVaryHeader[$header] = array_unique( (array)$this->mVaryHeader[$header] );
        }
 
+       /**
+        * Return a Vary: header on which to vary caches. Based on the keys of $mVaryHeader,
+        * such as Accept-Encoding or Cookie
+        * 
+        * @return String
+        */
+       public function getVaryHeader() {
+               return 'Vary: ' . join( ', ', array_keys( $this->mVaryHeader ) );
+       }
+
        /**
         * Get a complete X-Vary-Options header
         *
@@ -1834,11 +1843,12 @@ class OutputPage extends ContextSource {
                        $response->header( "ETag: $this->mETag" );
                }
 
+               $this->addVaryHeader( 'Cookie' );
                $this->addAcceptLanguage();
 
                # don't serve compressed data to clients who can't handle it
                # maintain different caches for logged-in users and non-logged in ones
-               $response->header( 'Vary: ' . join( ', ', array_keys( $this->mVaryHeader ) ) );
+               $response->header( $this->getVaryHeader() );
 
                if ( $wgUseXVO ) {
                        # Add an X-Vary-Options header for Squid with Wikimedia patches
index bcd6d14..750636d 100644 (file)
@@ -194,6 +194,7 @@ abstract class IndexPager extends ContextSource implements Pager {
                        $queryLimit,
                        $descending
                );
+
                $this->extractResultInfo( $this->mOffset, $queryLimit, $this->mResult );
                $this->mQueryDone = true;
 
@@ -303,7 +304,20 @@ abstract class IndexPager extends ContextSource implements Pager {
         * @param $descending Boolean: query direction, false for ascending, true for descending
         * @return ResultWrapper
         */
-       function reallyDoQuery( $offset, $limit, $descending ) {
+       public function reallyDoQuery( $offset, $limit, $descending ) {
+               list( $tables, $fields, $conds, $fname, $options, $join_conds ) = $this->buildQueryInfo( $offset, $limit, $descending );
+               return $this->mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds );
+       }
+
+       /**
+        * Build variables to use by the database wrapper.
+        *
+        * @param $offset String: index offset, inclusive
+        * @param $limit Integer: exact query limit
+        * @param $descending Boolean: query direction, false for ascending, true for descending
+        * @return array
+        */
+       protected function buildQueryInfo( $offset, $limit, $descending ) {
                $fname = __METHOD__ . ' (' . $this->getSqlComment() . ')';
                $info = $this->getQueryInfo();
                $tables = $info['tables'];
@@ -327,8 +341,7 @@ abstract class IndexPager extends ContextSource implements Pager {
                        $conds[] = $this->mIndexField . $operator . $this->mDb->addQuotes( $offset );
                }
                $options['LIMIT'] = intval( $limit );
-               $res = $this->mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds );
-               return new ResultWrapper( $this->mDb, $res );
+               return array( $tables, $fields, $conds, $fname, $options, $join_conds );
        }
 
        /**
index 9e6717f..cbd7134 100644 (file)
@@ -589,15 +589,50 @@ class SpecialPage {
                $out->setPageTitle( $this->getDescription() );
        }
 
+       /**
+        * Entry point.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       public final function run( $subPage ) {
+               $this->beforeExecute( $subPage );
+               $this->execute( $subPage );
+               $this->afterExecute( $subPage );
+       }
+
+       /**
+        * Gets called before @see SpecialPage::execute.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       protected function beforeExecute( $subPage ) {
+               // No-op
+       }
+
+       /**
+        * Gets called after @see SpecialPage::execute.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       protected function afterExecute( $subPage ) {
+               // No-op
+       }
+
        /**
         * Default execute method
         * Checks user permissions, calls the function given in mFunction
         *
         * This must be overridden by subclasses; it will be made abstract in a future version
         *
-        * @param $par String subpage string, if one was specified
+        * @param $subPage string|null
         */
-       function execute( $par ) {
+       public function execute( $subPage ) {
                $this->setHeaders();
                $this->checkPermissions();
 
@@ -607,7 +642,7 @@ class SpecialPage {
                        require_once( $this->mFile );
                }
                $this->outputHeader();
-               call_user_func( $func, $par, $this );
+               call_user_func( $func, $subPage, $this );
        }
 
        /**
index 02b8d54..1d62e8b 100644 (file)
@@ -490,7 +490,7 @@ class SpecialPageFactory {
                // Execute special page
                $profName = 'Special:' . $page->getName();
                wfProfileIn( $profName );
-               $page->execute( $par );
+               $page->run( $par );
                wfProfileOut( $profName );
                wfProfileOut( __METHOD__ );
                return true;
index 0c5560a..6f48cd0 100644 (file)
@@ -647,7 +647,7 @@ class HistoryPager extends ReverseChronologicalPager {
                        if ( $latest && !count( $this->getTitle()->getUserPermissionsErrors( 'rollback', $this->getUser() ) ) ) {
                                $this->preventClickjacking();
                                $tools[] = '<span class="mw-rollback-link">' .
-                                       Linker::buildRollbackLink( $rev ) . '</span>';
+                                       Linker::buildRollbackLink( $rev, $this->getContext() ) . '</span>';
                        }
 
                        if ( !$rev->isDeleted( Revision::DELETED_TEXT )
index f07e493..14da2fc 100644 (file)
@@ -44,6 +44,6 @@ class RevisiondeleteAction extends FormlessAction {
        public function show() {
                $special = SpecialPageFactory::getPage( 'Revisiondelete' );
                $special->setContext( $this->getContext() );
-               $special->execute( '' );
+               $special->run( '' );
        }
 }
index 30e9fb6..172a77b 100644 (file)
@@ -354,6 +354,12 @@ class ApiMain extends ApiBase {
         * have been accumulated, and replace it with an error message and a help screen.
         */
        protected function executeActionWithErrorHandling() {
+               // Verify the CORS header before executing the action
+               if ( !$this->handleCORS() ) {
+                       // handleCORS() has sent a 403, abort
+                       return;
+               }
+
                // In case an error occurs during data output,
                // clear the output buffer and print just the error information
                ob_start();
@@ -402,9 +408,94 @@ class ApiMain extends ApiBase {
                ob_end_flush();
        }
 
+       /**
+        * Check the &origin= query parameter against the Origin: HTTP header and respond appropriately.
+        *
+        * If no origin parameter is present, nothing happens.
+        * If an origin parameter is present but doesn't match the Origin header, a 403 status code
+        * is set and false is returned.
+        * If the parameter and the header do match, the header is checked against $wgCrossSiteAJAXdomains
+        * and $wgCrossSiteAJAXdomainExceptions, and if the origin qualifies, the appropriate CORS
+        * headers are set.
+        *
+        * @return bool False if the caller should abort (403 case), true otherwise (all other cases)
+        */
+       protected function handleCORS() {
+               global $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions;
+               $response = $this->getRequest()->response();
+               $originParam = $this->getParameter( 'origin' ); // defaults to null
+               if ( $originParam === null ) {
+                       // No origin parameter, nothing to do
+                       return true;
+               }
+               // Origin: header is a space-separated list of origins, check all of them
+               $originHeader = isset( $_SERVER['HTTP_ORIGIN'] ) ? $_SERVER['HTTP_ORIGIN'] : '';
+               $origins = explode( ' ', $originHeader );
+               if ( !in_array( $originParam, $origins ) ) {
+                       // origin parameter set but incorrect
+                       // Send a 403 response
+                       $message = HttpStatus::getMessage( 403 );
+                       $response->header( "HTTP/1.1 403 $message", true, 403 );
+                       $response->header( 'Cache-Control: no-cache' );
+                       echo "'origin' parameter does not match Origin header\n";
+                       return false;
+               }
+               if ( self::matchOrigin( $originParam, $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions ) ) {
+                       $response->header( "Access-Control-Allow-Origin: $originParam" );
+                       $response->header( 'Access-Control-Allow-Credentials: true' );
+                       $this->getOutput()->addVaryHeader( 'Origin' );
+               }
+               return true;
+       }
+
+       /**
+        * Attempt to match an Origin header against a set of rules and a set of exceptions
+        * @param $value string Origin header
+        * @param $rules array Set of wildcard rules
+        * @param $exceptions array Set of wildcard rules
+        * @return bool True if $value matches a rule in $rules and doesn't match any rules in $exceptions, false otherwise
+        */
+       protected static function matchOrigin( $value, $rules, $exceptions ) {
+               foreach ( $rules as $rule ) {
+                       if ( preg_match( self::wildcardToRegex( $rule ), $value ) ) {
+                               // Rule matches, check exceptions
+                               foreach ( $exceptions as $exc ) {
+                                       if ( preg_match( self::wildcardToRegex( $exc ), $value ) ) {
+                                               return false;
+                                       }
+                               }
+                               return true;
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Helper function to convert wildcard string into a regex
+        * '*' => '.*?'
+        * '?' => '.'
+        *
+        * @param $wildcard string String with wildcards
+        * @return string Regular expression
+        */
+       protected static function wildcardToRegex( $wildcard ) {
+               $wildcard = preg_quote( $wildcard, '/' );
+               $wildcard = str_replace(
+                       array( '\*', '\?' ),
+                       array( '.*?', '.' ),
+                       $wildcard
+               );
+               return "/https?:\/\/$wildcard/";
+       }
+
        protected function sendCacheHeaders() {
                global $wgUseXVO, $wgVaryOnXFP;
                $response = $this->getRequest()->response();
+               $out = $this->getOutput();
+
+               if ( $wgVaryOnXFP ) {
+                       $out->addVaryHeader( 'X-Forwarded-Proto' );
+               }
 
                if ( $this->mCacheMode == 'private' ) {
                        $response->header( 'Cache-Control: private' );
@@ -412,13 +503,9 @@ class ApiMain extends ApiBase {
                }
 
                if ( $this->mCacheMode == 'anon-public-user-private' ) {
-                       $xfp = $wgVaryOnXFP ? ', X-Forwarded-Proto' : '';
-                       $response->header( 'Vary: Accept-Encoding, Cookie' . $xfp );
+                       $out->addVaryHeader( 'Cookie' );
+                       $response->header( $out->getVaryHeader() );
                        if ( $wgUseXVO ) {
-                               $out = $this->getOutput();
-                               if ( $wgVaryOnXFP ) {
-                                       $out->addVaryHeader( 'X-Forwarded-Proto' );
-                               }
                                $response->header( $out->getXVO() );
                                if ( $out->haveCacheVaryCookies() ) {
                                        // Logged in, mark this request private
@@ -435,12 +522,9 @@ class ApiMain extends ApiBase {
                }
 
                // Send public headers
-               if ( $wgVaryOnXFP ) {
-                       $response->header( 'Vary: Accept-Encoding, X-Forwarded-Proto' );
-                       if ( $wgUseXVO ) {
-                               // Bleeeeegh. Our header setting system sucks
-                               $response->header( 'X-Vary-Options: Accept-Encoding;list-contains=gzip, X-Forwarded-Proto' );
-                       }
+               $response->header( $out->getVaryHeader() );
+               if ( $wgUseXVO ) {
+                       $response->header( $out->getXVO() );
                }
 
                // If nobody called setCacheMaxAge(), use the (s)maxage parameters
@@ -784,6 +868,7 @@ class ApiMain extends ApiBase {
                        ),
                        'requestid' => null,
                        'servedby'  => false,
+                       'origin' => null,
                );
        }
 
@@ -809,6 +894,12 @@ class ApiMain extends ApiBase {
                        'maxage' => 'Set the max-age header to this many seconds. Errors are never cached',
                        'requestid' => 'Request ID to distinguish requests. This will just be output back to you',
                        'servedby' => 'Include the hostname that served the request in the results. Unconditionally shown on error',
+                       'origin' => array(
+                               'When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain.',
+                               'This must match one of the origins in the Origin: header exactly, so it has to be set to something like http://en.wikipedia.org or https://meta.wikimedia.org .',
+                               'If this parameter does not match the Origin: header, a 403 response will be returned.',
+                               'If this parameter matches the Origin: header and the origin is whitelisted, an Access-Control-Allow-Origin header will be set.',
+                       ),
                );
        }
 
index 9704b6d..7491bbb 100644 (file)
@@ -40,7 +40,7 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
        private $rootTitle;
 
        private $params, $contID, $redirID, $redirect;
-       private $bl_ns, $bl_from, $bl_table, $bl_code, $bl_title, $bl_sort, $bl_fields, $hasNS;
+       private $bl_ns, $bl_from, $bl_table, $bl_code, $bl_title, $bl_fields, $hasNS;
 
        /**
         * Maps ns and title to pageid
@@ -91,14 +91,12 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                $this->hasNS = $moduleName !== 'imageusage';
                if ( $this->hasNS ) {
                        $this->bl_title = $prefix . '_title';
-                       $this->bl_sort = "{$this->bl_ns}, {$this->bl_title}, {$this->bl_from}";
                        $this->bl_fields = array(
                                $this->bl_ns,
                                $this->bl_title
                        );
                } else {
                        $this->bl_title = $prefix . '_to';
-                       $this->bl_sort = "{$this->bl_title}, {$this->bl_from}";
                        $this->bl_fields = array(
                                $this->bl_title
                        );
@@ -144,7 +142,8 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                $this->addWhereFld( 'page_namespace', $this->params['namespace'] );
 
                if ( !is_null( $this->contID ) ) {
-                       $this->addWhere( "{$this->bl_from}>={$this->contID}" );
+                       $op = $this->params['dir'] == 'descending' ? '<' : '>';
+                       $this->addWhere( "{$this->bl_from}$op={$this->contID}" );
                }
 
                if ( $this->params['filterredir'] == 'redirects' ) {
@@ -155,7 +154,8 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                }
 
                $this->addOption( 'LIMIT', $this->params['limit'] + 1 );
-               $this->addOption( 'ORDER BY', $this->bl_from );
+               $sort = ( $this->params['dir'] == 'descending' ? ' DESC' : '' );
+               $this->addOption( 'ORDER BY', $this->bl_from . $sort );
                $this->addOption( 'STRAIGHT_JOIN' );
        }
 
@@ -186,28 +186,35 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
 
                // We can't use LinkBatch here because $this->hasNS may be false
                $titleWhere = array();
+               $allRedirNs = array();
+               $allRedirDBkey = array();
                foreach ( $this->redirTitles as $t ) {
-                       $titleWhere[] = "{$this->bl_title} = " . $db->addQuotes( $t->getDBkey() ) .
-                                       ( $this->hasNS ? " AND {$this->bl_ns} = {$t->getNamespace()}" : '' );
+                       $redirNs = $t->getNamespace();
+                       $redirDBkey = $t->getDBkey();
+                       $titleWhere[] = "{$this->bl_title} = " . $db->addQuotes( $redirDBkey ) .
+                                       ( $this->hasNS ? " AND {$this->bl_ns} = {$redirNs}" : '' );
+                       $allRedirNs[] = $redirNs;
+                       $allRedirDBkey[] = $redirDBkey;
                }
                $this->addWhere( $db->makeList( $titleWhere, LIST_OR ) );
                $this->addWhereFld( 'page_namespace', $this->params['namespace'] );
 
                if ( !is_null( $this->redirID ) ) {
+                       $op = $this->params['dir'] == 'descending' ? '<' : '>';
                        $first = $this->redirTitles[0];
                        $title = $db->addQuotes( $first->getDBkey() );
                        $ns = $first->getNamespace();
                        $from = $this->redirID;
                        if ( $this->hasNS ) {
-                               $this->addWhere( "{$this->bl_ns} > $ns OR " .
+                               $this->addWhere( "{$this->bl_ns} $op $ns OR " .
                                                "({$this->bl_ns} = $ns AND " .
-                                               "({$this->bl_title} > $title OR " .
+                                               "({$this->bl_title} $op $title OR " .
                                                "({$this->bl_title} = $title AND " .
-                                               "{$this->bl_from} >= $from)))" );
+                                               "{$this->bl_from} $op= $from)))" );
                        } else {
-                               $this->addWhere( "{$this->bl_title} > $title OR " .
+                               $this->addWhere( "{$this->bl_title} $op $title OR " .
                                                "({$this->bl_title} = $title AND " .
-                                               "{$this->bl_from} >= $from)" );
+                                               "{$this->bl_from} $op= $from)" );
                        }
                }
                if ( $this->params['filterredir'] == 'redirects' ) {
@@ -217,7 +224,17 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                }
 
                $this->addOption( 'LIMIT', $this->params['limit'] + 1 );
-               $this->addOption( 'ORDER BY', $this->bl_sort );
+               $orderBy = array();
+               $sort = ( $this->params['dir'] == 'descending' ? ' DESC' : '' );
+               // Don't order by namespace/title if it's constant in the WHERE clause
+               if( $this->hasNS && count( array_unique( $allRedirNs ) ) != 1 ) {
+                       $orderBy[] = $this->bl_ns . $sort;
+               }
+               if( count( array_unique( $allRedirDBkey ) ) != 1 ) {
+                       $orderBy[] = $this->bl_title . $sort;
+               }
+               $orderBy[] = $this->bl_from . $sort;
+               $this->addOption( 'ORDER BY', $orderBy );
                $this->addOption( 'USE INDEX', array( 'page' => 'PRIMARY' ) );
        }
 
@@ -438,6 +455,13 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => 'namespace'
                        ),
+                       'dir' => array(\r
+                               ApiBase::PARAM_DFLT => 'ascending',\r
+                               ApiBase::PARAM_TYPE => array(\r
+                                       'ascending',\r
+                                       'descending'\r
+                               )\r
+                       ),
                        'filterredir' => array(
                                ApiBase::PARAM_DFLT => 'all',
                                ApiBase::PARAM_TYPE => array(
@@ -467,6 +491,7 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                        'pageid' => "Pageid to search. Cannot be used together with {$this->bl_code}title",
                        'continue' => 'When more results are available, use this to continue',
                        'namespace' => 'The namespace to enumerate',
+                       'dir' => 'The direction in which to list',
                );
                if ( $this->getModuleName() != 'embeddedin' ) {
                        return array_merge( $retval, array(
index d2837e9..37f347d 100644 (file)
@@ -62,15 +62,16 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                        }
 
                        $db = $this->getDB();
+                       $op = $params['dir'] == 'descending' ? '<' : '>';
                        $prefix = $db->addQuotes( $cont[0] );
                        $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
                        $from = intval( $cont[2] );
                        $this->addWhere(
-                               "iwl_prefix > $prefix OR " .
+                               "iwl_prefix $op $prefix OR " .
                                "(iwl_prefix = $prefix AND " .
-                               "(iwl_title > $title OR " .
+                               "(iwl_title $op $title OR " .
                                "(iwl_title = $title AND " .
-                               "iwl_from >= $from)))"
+                               "iwl_from $op= $from)))"
                        );
                }
 
@@ -84,22 +85,23 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                $this->addFields( array( 'page_id', 'page_title', 'page_namespace', 'page_is_redirect',
                        'iwl_from', 'iwl_prefix', 'iwl_title' ) );
 
+               $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
                if ( isset( $params['prefix'] ) ) {
                        $this->addWhereFld( 'iwl_prefix', $params['prefix'] );
                        if ( isset( $params['title'] ) ) {
                                $this->addWhereFld( 'iwl_title', $params['title'] );
-                               $this->addOption( 'ORDER BY', 'iwl_from' );
+                               $this->addOption( 'ORDER BY', 'iwl_from' . $sort );
                        } else {
                                $this->addOption( 'ORDER BY', array(
-                                       'iwl_title',
-                                       'iwl_from'
+                                       'iwl_title' . $sort,
+                                       'iwl_from' . $sort
                                ));
                        }
                } else {
                        $this->addOption( 'ORDER BY', array(
-                               'iwl_prefix',
-                               'iwl_title',
-                               'iwl_from'
+                               'iwl_prefix' . $sort,
+                               'iwl_title' . $sort,
+                               'iwl_from' . $sort
                        ));
                }
 
@@ -178,6 +180,13 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                                        'iwtitle',
                                ),
                        ),
+                       'dir' => array(
+                               ApiBase::PARAM_DFLT => 'ascending',
+                               ApiBase::PARAM_TYPE => array(
+                                       'ascending',
+                                       'descending'
+                               )
+                       ),
                );
        }
 
@@ -192,6 +201,7 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                                ' iwtitle        - Adds the title of the interwiki',
                        ),
                        'limit' => 'How many total pages to return',
+                       'dir' => 'The direction in which to list',
                );
        }
 
index f423719..c7639ee 100644 (file)
@@ -62,15 +62,16 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                        }
 
                        $db = $this->getDB();
+                       $op = $params['dir'] == 'descending' ? '<' : '>';
                        $prefix = $db->addQuotes( $cont[0] );
                        $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
                        $from = intval( $cont[2] );
                        $this->addWhere(
-                               "ll_lang > $prefix OR " .
+                               "ll_lang $op $prefix OR " .
                                "(ll_lang = $prefix AND " .
-                               "(ll_title > $title OR " .
+                               "(ll_title $op $title OR " .
                                "(ll_title = $title AND " .
-                               "ll_from >= $from)))"
+                               "ll_from $op= $from)))"
                        );
                }
 
@@ -84,22 +85,23 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                $this->addFields( array( 'page_id', 'page_title', 'page_namespace', 'page_is_redirect',
                        'll_from', 'll_lang', 'll_title' ) );
 
+               $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
                if ( isset( $params['lang'] ) ) {
                        $this->addWhereFld( 'll_lang', $params['lang'] );
                        if ( isset( $params['title'] ) ) {
                                $this->addWhereFld( 'll_title', $params['title'] );
-                               $this->addOption( 'ORDER BY', 'll_from' );
+                               $this->addOption( 'ORDER BY', 'll_from' . $sort );
                        } else {
                                $this->addOption( 'ORDER BY', array(
-                                       'll_title',
-                                       'll_from'
+                                       'll_title' . $sort,
+                                       'll_from' . $sort
                                ));
                        }
                } else {
                        $this->addOption( 'ORDER BY', array(
-                               'll_lang',
-                               'll_title',
-                               'll_from'
+                               'll_lang' . $sort,
+                               'll_title' . $sort,
+                               'll_from' . $sort
                        ));
                }
 
@@ -178,6 +180,13 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                                        'lltitle',
                                ),
                        ),
+                       'dir' => array(
+                               ApiBase::PARAM_DFLT => 'ascending',
+                               ApiBase::PARAM_TYPE => array(
+                                       'ascending',
+                                       'descending'
+                               )
+                       ),
                );
        }
 
@@ -192,6 +201,7 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                                ' lltitle        - Adds the title of the language ink',
                        ),
                        'limit' => 'How many total pages to return',
+                       'dir' => 'The direction in which to list',
                );
        }
 
index 38e37c0..5316006 100644 (file)
@@ -93,6 +93,9 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                case 'showhooks':
                                        $fit = $this->appendSubscribedHooks( $p );
                                        break;
+                               case 'variables':
+                                       $fit = $this->appendVariables( $p );
+                                       break;
                                default:
                                        ApiBase::dieDebug( __METHOD__, "Unknown prop=$p" );
                        }
@@ -532,6 +535,12 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                return $this->getResult()->addValue( 'query', $property, $hooks );
        }
 
+       public function appendVariables( $property ) {
+               $variables = MagicWord::getVariableIDs();
+               $this->getResult()->setIndexedTagName( $variables, 'v' );
+               return $this->getResult()->addValue( 'query', $property, $variables );
+       }
+
        private function formatParserTags( $item ) {
                return "<{$item}>";
        }
@@ -583,6 +592,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                        'extensiontags',
                                        'functionhooks',
                                        'showhooks',
+                                       'variables',
                                )
                        ),
                        'filteriw' => array(
@@ -618,7 +628,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                ' skins                 - Returns a list of all enabled skins',
                                ' extensiontags         - Returns a list of parser extension tags',
                                ' functionhooks         - Returns a list of parser function hooks',
-                               ' showhooks             - Returns a list of all subscribed hooks (contents of $wgHooks)'
+                               ' showhooks             - Returns a list of all subscribed hooks (contents of $wgHooks)',
+                               ' variables             - Returns a list of variable IDs',
                        ),
                        'filteriw' =>  'Return only local or only nonlocal entries of the interwiki map',
                        'showalldb' => 'List all database servers, not just the one lagging the most',
index e8e57cd..423e388 100644 (file)
 class SquidUpdate {
        var $urlArr, $mMaxTitles;
 
-       function __construct( $urlArr = Array(), $maxTitles = false ) {
+       /**
+        * @param $urlArr array
+        * @param $maxTitles bool|int
+        */
+       function __construct( $urlArr = array(), $maxTitles = false ) {
                global $wgMaxSquidPurgeTitles;
                if ( $maxTitles === false ) {
                        $this->mMaxTitles = $wgMaxSquidPurgeTitles;
@@ -121,11 +125,6 @@ class SquidUpdate {
        static function purge( $urlArr ) {
                global $wgSquidServers, $wgHTCPMulticastRouting;
 
-               /*if ( (@$wgSquidServers[0]) == 'echo' ) {
-                       echo implode("<br />\n", $urlArr) . "<br />\n";
-                       return;
-               }*/
-
                if( !$urlArr ) {
                        return;
                }
index eacebcf..c846788 100644 (file)
@@ -242,7 +242,11 @@ class FakeResultWrapper extends ResultWrapper {
                        $this->currentRow = false;
                }
                $this->pos++;
-               return $this->currentRow;
+               if ( is_object( $this->currentRow ) ) {
+                       return get_object_vars( $this->currentRow );
+               } else {
+                       return $this->currentRow;
+               }
        }
 
        function seek( $row ) {
index eb3a319..08154c7 100644 (file)
@@ -278,7 +278,7 @@ class DifferenceEngine extends ContextSource {
                        if ( $samePage && $this->mNewPage->quickUserCan( 'edit', $user ) ) {
                                if ( $this->mNewRev->isCurrent() && $this->mNewPage->userCan( 'rollback', $user ) ) {
                                        $out->preventClickjacking();
-                                       $rollback = '&#160;&#160;&#160;' . Linker::generateRollback( $this->mNewRev );
+                                       $rollback = '&#160;&#160;&#160;' . Linker::generateRollback( $this->mNewRev, $this->getContext() );
                                }
                                if ( !$this->mOldRev->isDeleted( Revision::DELETED_TEXT ) && !$this->mNewRev->isDeleted( Revision::DELETED_TEXT ) ) {
                                        $undoLink = ' ' . $this->msg( 'parentheses' )->rawParams(
index 43005a8..9aa1a13 100644 (file)
@@ -698,7 +698,7 @@ END;
                }
        }
 
-       protected function dropIndex( $table, $index ) {
+       protected function dropIndex( $table, $index, $patch = '', $fullpath = false ) {
                if ( $this->db->indexExists( $table, $index ) ) {
                        $this->output( "Dropping obsolete index '$index'\n" );
                        $this->db->query( "DROP INDEX \"". $index ."\"" );
index bca6985..262665b 100644 (file)
@@ -363,13 +363,15 @@ class DeviceDetection implements IDeviceDetector {
                        $deviceName = 'android';
                        if ( strpos( $userAgent, 'Opera Mini' ) !== false ) {
                                $deviceName = 'operamini';
+                       } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
+                               $deviceName = 'operamobile';
                        }
-               } else if ( preg_match( '/MSIE 9.0/', $userAgent ) ||
+               } elseif ( preg_match( '/MSIE 9.0/', $userAgent ) ||
                                preg_match( '/MSIE 8.0/', $userAgent ) ) {
                        $deviceName = 'ie';
-               } else if( preg_match( '/MSIE/', $userAgent ) ) {
+               } elseif( preg_match( '/MSIE/', $userAgent ) ) {
                        $deviceName = 'html';
-               } else if ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
+               } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
                        $deviceName = 'operamobile';
                } elseif ( preg_match( '/iPad.* Safari/', $userAgent ) ) {
                        $deviceName = 'iphone';
@@ -398,10 +400,8 @@ class DeviceDetection implements IDeviceDetector {
                                $deviceName = 'wii';
                        } elseif ( strpos( $userAgent, 'Opera Mini' ) !== false ) {
                                $deviceName = 'operamini';
-                       } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
-                               $deviceName = 'iphone';
                        } else {
-                               $deviceName = 'webkit';
+                               $deviceName = 'operamobile';
                        }
                } elseif ( preg_match( '/Kindle\/1.0/', $userAgent ) ) {
                        $deviceName = 'kindle';
index 7bd2aab..7991ca6 100644 (file)
@@ -364,6 +364,7 @@ class Parser {
                # No more strip!
                wfRunHooks( 'ParserAfterStrip', array( &$this, &$text, &$this->mStripState ) );
                $text = $this->internalParse( $text );
+               wfRunHooks( 'ParserAfterParse', array( &$this, &$text, &$this->mStripState ) );
 
                $text = $this->mStripState->unstripGeneral( $text );
 
@@ -1121,6 +1122,7 @@ class Parser {
                        $text = $this->replaceVariables( $text );
                }
 
+               wfRunHooks( 'InternalParseBeforeSanitize', array( &$this, &$text, &$this->mStripState ) );
                $text = Sanitizer::removeHTMLtags( $text, array( &$this, 'attributeStripCallback' ), false, array_keys( $this->mTransparentTagHooks ) );
                wfRunHooks( 'InternalParseBeforeLinks', array( &$this, &$text, &$this->mStripState ) );
 
index 9465037..e8223e8 100644 (file)
@@ -594,6 +594,66 @@ class ContribsPager extends ReverseChronologicalPager {
                return $query;
        }
 
+       /**
+        * This method basically executes the exact same code as the parent class, though with
+        * a hook added, to allow extentions to add additional queries.
+        *
+        * @param $offset String: index offset, inclusive
+        * @param $limit Integer: exact query limit
+        * @param $descending Boolean: query direction, false for ascending, true for descending
+        * @return ResultWrapper
+        */
+       function reallyDoQuery( $offset, $limit, $descending ) {
+               list( $tables, $fields, $conds, $fname, $options, $join_conds ) = $this->buildQueryInfo( $offset, $limit, $descending );
+               $pager = $this;
+
+               /*
+                * This hook will allow extensions to add in additional queries, so they can get their data
+                * in My Contributions as well. Extensions should append their results to the $data array.
+                *
+                * Extension queries have to implement the navbar requirement as well. They should
+                * - have a column aliased as $pager->getIndexField()
+                * - have LIMIT set
+                * - have a WHERE-clause that compares the $pager->getIndexField()-equivalent column to the offset
+                * - have the ORDER BY specified based upon the details provided by the navbar
+                *
+                * See includes/Pager.php buildQueryInfo() method on how to build LIMIT, WHERE & ORDER BY
+                *
+                * &$data: an array of results of all contribs queries
+                * $pager: the ContribsPager object hooked into
+                * $offset: see phpdoc above
+                * $limit: see phpdoc above
+                * $descending: see phpdoc above
+                */
+               $data = array( $this->mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds ) );
+               wfRunHooks( 'ContribsPager::reallyDoQuery', array( &$data, $pager, $offset, $limit, $descending ) );
+
+               $result = array();
+
+               // loop all results and collect them in an array
+               foreach ( $data as $j => $query ) {
+                       foreach ( $query as $i => $row ) {
+                               // use index column as key, allowing us to easily sort in PHP
+                               $result[$row->{$this->getIndexField()} . "-$i"] = $row;
+                       }
+               }
+
+               // sort results
+               if ( $descending ) {
+                       ksort( $result );
+               } else {
+                       krsort( $result );
+               }
+
+               // enforce limit
+               $result = array_slice( $result, 0, $limit );
+
+               // get rid of array keys
+               $result = array_values( $result );
+
+               return new FakeResultWrapper( $result );
+       }
+
        function getQueryInfo() {
                list( $tables, $index, $userCond, $join_cond ) = $this->getUserCond();
 
@@ -702,7 +762,7 @@ class ContribsPager extends ReverseChronologicalPager {
                $this->mResult->rewind();
                $revIds = array();
                foreach ( $this->mResult as $row ) {
-                       if( $row->rev_parent_id ) {
+                       if( isset( $row->rev_parent_id ) && $row->rev_parent_id ) {
                                $revIds[] = $row->rev_parent_id;
                        }
                }
@@ -714,11 +774,13 @@ class ContribsPager extends ReverseChronologicalPager {
                $batch = new LinkBatch();
                # Give some pointers to make (last) links
                foreach ( $this->mResult as $row ) {
-                       if ( $this->contribs === 'newbie' ) { // multiple users
-                               $batch->add( NS_USER, $row->user_name );
-                               $batch->add( NS_USER_TALK, $row->user_name );
+                       if ( isset( $row->rev_id ) ) {
+                               if ( $this->contribs === 'newbie' ) { // multiple users
+                                       $batch->add( NS_USER, $row->user_name );
+                                       $batch->add( NS_USER_TALK, $row->user_name );
+                               }
+                               $batch->add( $row->page_namespace, $row->page_title );
                        }
-                       $batch->add( $row->page_namespace, $row->page_title );
                }
                $batch->execute();
                $this->mResult->seek( 0 );
@@ -753,123 +815,140 @@ class ContribsPager extends ReverseChronologicalPager {
        function formatRow( $row ) {
                wfProfileIn( __METHOD__ );
 
-               $rev = new Revision( $row );
+               $ret = '';
                $classes = array();
 
-               $page = Title::newFromRow( $row );
-               $link = Linker::link(
-                       $page,
-                       htmlspecialchars( $page->getPrefixedText() ),
-                       array(),
-                       $page->isRedirect() ? array( 'redirect' => 'no' ) : array()
-               );
-               # Mark current revisions
-               $topmarktext = '';
-               if ( $row->rev_id == $row->page_latest ) {
-                       $topmarktext .= '<span class="mw-uctop">' . $this->messages['uctop'] . '</span>';
-                       # Add rollback link
-                       if ( !$row->page_is_new && $page->quickUserCan( 'rollback' )
-                               && $page->quickUserCan( 'edit' ) )
-                       {
-                               $this->preventClickjacking();
-                               $topmarktext .= ' ' . Linker::generateRollback( $rev );
-                       }
-               }
-               $user = $this->getUser();
-               # Is there a visible previous revision?
-               if ( $rev->userCan( Revision::DELETED_TEXT, $user ) && $rev->getParentId() !== 0 ) {
-                       $difftext = Linker::linkKnown(
+               /*
+                * There may be more than just revision rows. To make sure that we'll only be processing
+                * revisions here, let's _try_ to build a revision out of our row (without displaying
+                * notices though) and then trying to grab data from the built object. If we succeed,
+                * we're definitely dealing with revision data and we may proceed, if not, we'll leave it
+                * to extensions to subscribe to the hook to parse the row.
+                */
+               wfSuppressWarnings();
+               $rev = new Revision( $row );
+               $validRevision = $rev->getParentId() !== null;
+               wfRestoreWarnings();
+
+               if ( $validRevision ) {
+                       $classes = array();
+
+                       $page = Title::newFromRow( $row );
+                       $link = Linker::link(
                                $page,
-                               $this->messages['diff'],
+                               htmlspecialchars( $page->getPrefixedText() ),
                                array(),
-                               array(
-                                       'diff' => 'prev',
-                                       'oldid' => $row->rev_id
-                               )
+                               $page->isRedirect() ? array( 'redirect' => 'no' ) : array()
                        );
-               } else {
-                       $difftext = $this->messages['diff'];
-               }
-               $histlink = Linker::linkKnown(
-                       $page,
-                       $this->messages['hist'],
-                       array(),
-                       array( 'action' => 'history' )
-               );
-
-               if ( $row->rev_parent_id === null ) {
-                       // For some reason rev_parent_id isn't populated for this row.
-                       // Its rumoured this is true on wikipedia for some revisions (bug 34922).
-                       // Next best thing is to have the total number of bytes.
-                       $chardiff = ' . . ' . Linker::formatRevisionSize( $row->rev_len ) . ' . . ';
-               } else {
-                       $parentLen = isset( $this->mParentLens[$row->rev_parent_id] ) ? $this->mParentLens[$row->rev_parent_id] : 0;
-                       $chardiff = ' . . ' . ChangesList::showCharacterDifference(
-                                       $parentLen, $row->rev_len ) . ' . . ';
-               }
-
-               $lang = $this->getLanguage();
-               $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true );
-               $date = $lang->userTimeAndDate( $row->rev_timestamp, $user );
-               if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
-                       $d = Linker::linkKnown(
+                       # Mark current revisions
+                       $topmarktext = '';
+                       $user = $this->getUser();
+                       if ( $row->rev_id == $row->page_latest ) {
+                               $topmarktext .= '<span class="mw-uctop">' . $this->messages['uctop'] . '</span>';
+                               # Add rollback link
+                               if ( !$row->page_is_new && $page->quickUserCan( 'rollback', $user )
+                                       && $page->quickUserCan( 'edit', $user ) )
+                               {
+                                       $this->preventClickjacking();
+                                       $topmarktext .= ' ' . Linker::generateRollback( $rev, $this->getContext() );
+                               }
+                       }
+                       # Is there a visible previous revision?
+                       if ( $rev->userCan( Revision::DELETED_TEXT, $user ) && $rev->getParentId() !== 0 ) {
+                               $difftext = Linker::linkKnown(
+                                       $page,
+                                       $this->messages['diff'],
+                                       array(),
+                                       array(
+                                               'diff' => 'prev',
+                                               'oldid' => $row->rev_id
+                                       )
+                               );
+                       } else {
+                               $difftext = $this->messages['diff'];
+                       }
+                       $histlink = Linker::linkKnown(
                                $page,
-                               htmlspecialchars( $date ),
+                               $this->messages['hist'],
                                array(),
-                               array( 'oldid' => intval( $row->rev_id ) )
+                               array( 'action' => 'history' )
                        );
-               } else {
-                       $d = htmlspecialchars( $date );
-               }
-               if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
-                       $d = '<span class="history-deleted">' . $d . '</span>';
-               }
 
-               # Show user names for /newbies as there may be different users.
-               # Note that we already excluded rows with hidden user names.
-               if ( $this->contribs == 'newbie' ) {
-                       $userlink = ' . . ' . Linker::userLink( $rev->getUser(), $rev->getUserText() );
-                       $userlink .= ' ' . $this->msg( 'parentheses' )->rawParams(
-                               Linker::userTalkLink( $rev->getUser(), $rev->getUserText() ) )->escaped() . ' ';
-               } else {
-                       $userlink = '';
-               }
+                       if ( $row->rev_parent_id === null ) {
+                               // For some reason rev_parent_id isn't populated for this row.
+                               // Its rumoured this is true on wikipedia for some revisions (bug 34922).
+                               // Next best thing is to have the total number of bytes.
+                               $chardiff = ' . . ' . Linker::formatRevisionSize( $row->rev_len ) . ' . . ';
+                       } else {
+                               $parentLen = isset( $this->mParentLens[$row->rev_parent_id] ) ? $this->mParentLens[$row->rev_parent_id] : 0;
+                               $chardiff = ' . . ' . ChangesList::showCharacterDifference(
+                                               $parentLen, $row->rev_len, $this->getContext() ) . ' . . ';
+                       }
 
-               if ( $rev->getParentId() === 0 ) {
-                       $nflag = ChangesList::flag( 'newpage' );
-               } else {
-                       $nflag = '';
-               }
+                       $lang = $this->getLanguage();
+                       $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true );
+                       $date = $lang->userTimeAndDate( $row->rev_timestamp, $user );
+                       if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
+                               $d = Linker::linkKnown(
+                                       $page,
+                                       htmlspecialchars( $date ),
+                                       array(),
+                                       array( 'oldid' => intval( $row->rev_id ) )
+                               );
+                       } else {
+                               $d = htmlspecialchars( $date );
+                       }
+                       if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
+                               $d = '<span class="history-deleted">' . $d . '</span>';
+                       }
 
-               if ( $rev->isMinor() ) {
-                       $mflag = ChangesList::flag( 'minor' );
-               } else {
-                       $mflag = '';
-               }
+                       # Show user names for /newbies as there may be different users.
+                       # Note that we already excluded rows with hidden user names.
+                       if ( $this->contribs == 'newbie' ) {
+                               $userlink = ' . . ' . Linker::userLink( $rev->getUser(), $rev->getUserText() );
+                               $userlink .= ' ' . $this->msg( 'parentheses' )->rawParams(
+                                       Linker::userTalkLink( $rev->getUser(), $rev->getUserText() ) )->escaped() . ' ';
+                       } else {
+                               $userlink = '';
+                       }
 
-               $del = Linker::getRevDeleteLink( $user, $rev, $page );
-               if ( $del !== '' ) {
-                       $del .= ' ';
-               }
+                       if ( $rev->getParentId() === 0 ) {
+                               $nflag = ChangesList::flag( 'newpage' );
+                       } else {
+                               $nflag = '';
+                       }
 
-               $diffHistLinks = $this->msg( 'parentheses' )->rawParams( $difftext . $this->messages['pipe-separator'] . $histlink )->escaped();
-               $ret = "{$del}{$d} {$diffHistLinks}{$chardiff}{$nflag}{$mflag} {$link}{$userlink} {$comment} {$topmarktext}";
+                       if ( $rev->isMinor() ) {
+                               $mflag = ChangesList::flag( 'minor' );
+                       } else {
+                               $mflag = '';
+                       }
 
-               # Denote if username is redacted for this edit
-               if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
-                       $ret .= " <strong>" . $this->msg( 'rev-deleted-user-contribs' )->escaped() . "</strong>";
-               }
+                       $del = Linker::getRevDeleteLink( $user, $rev, $page );
+                       if ( $del !== '' ) {
+                               $del .= ' ';
+                       }
+
+                       $diffHistLinks = $this->msg( 'parentheses' )->rawParams( $difftext . $this->messages['pipe-separator'] . $histlink )->escaped();
+                       $ret = "{$del}{$d} {$diffHistLinks}{$chardiff}{$nflag}{$mflag} {$link}{$userlink} {$comment} {$topmarktext}";
 
-               # Tags, if any.
-               list( $tagSummary, $newClasses ) = ChangeTags::formatSummaryRow( $row->ts_tags, 'contributions' );
-               $classes = array_merge( $classes, $newClasses );
-               $ret .= " $tagSummary";
+                       # Denote if username is redacted for this edit
+                       if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
+                               $ret .= " <strong>" . $this->msg( 'rev-deleted-user-contribs' )->escaped() . "</strong>";
+                       }
+
+                       # Tags, if any.
+                       list( $tagSummary, $newClasses ) = ChangeTags::formatSummaryRow( $row->ts_tags, 'contributions' );
+                       $classes = array_merge( $classes, $newClasses );
+                       $ret .= " $tagSummary";
+               }
 
                // Let extensions add data
-               wfRunHooks( 'ContributionsLineEnding', array( &$this, &$ret, $row ) );
+               wfRunHooks( 'ContributionsLineEnding', array( $this, &$ret, $row, &$classes ) );
 
                $classes = implode( ' ', $classes );
                $ret = "<li class=\"$classes\">$ret</li>\n";
+
                wfProfileOut( __METHOD__ );
                return $ret;
        }
index 3afa7fc..4ba35ea 100644 (file)
@@ -1107,7 +1107,7 @@ $1',
 # Watchlist
 'watchlist' => 'ܪ̈ܗܝܬܝ',
 'mywatchlist' => 'ܪ̈ܗܝܬܝ',
-'watchlistfor2' => 'Ü  $1 $2',
+'watchlistfor2' => 'Ü\95 $1 $2',
 'nowatchlist' => 'ܠܝܬ ܠܟ ܡܕܡ ܒܪ̈ܗܝܬܐ ܕܝܠܟ',
 'watchnologin' => 'ܠܝܬܝܟ ܥܠܝܠܐ',
 'addedwatchtext' => "ܦܐܬܐ ܕ\"[[:\$1]]\" ܐܬܬܘܣܦܬ ܒ[[Special:Watchlist|ܪ̈ܗܝܬܟ]].
@@ -1377,7 +1377,7 @@ Do you want to change the settings?',
 'tooltip-pt-userpage' => 'ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܝܠܟ',
 'tooltip-pt-mytalk' => 'ܦܐܬܐ ܕܡܡܠܘܟ',
 'tooltip-pt-preferences' => 'Your preferences',
-'tooltip-pt-login' => 'Ü\9bÜ\92 Ü\90ܢܬ Ü\95Ü£Ü\93Ü  Ü¥Ü Ü Ü\90Ø\8c Ü\90Ü Ü\90 Ü\97Ü¢Ü\90 Ü Ü\98 ܐܠܨܝܐ',
+'tooltip-pt-login' => 'ܢܠÜ\92Ü\92 Ü Ü\9f Ü\95Ü£Ü\93Ü  Ü\90ܢܬ Ü¥Ü Ü Ü\90 Ü\95Ü\9dÜ Ü\9fØ\8c Ü\90Ü Ü\90 Ü\97Ü¢Ü\90 Ü Ü\90 Ü\90Ü\9dܬÜ\9dÜ\97Ü\9d ܐܠܨܝܐ',
 'tooltip-pt-logout' => 'ܦܠܛܐ',
 'tooltip-ca-talk' => 'ܡܡܠܠܐ ܥܠ ܚܒܝܫܬܐ ܕܦܐܬܐ',
 'tooltip-ca-addsection' => 'ܫܪܝ ܦܣܘܩܐ ܚܕܬܐ',
index 9caa0b4..2e2cdb5 100644 (file)
@@ -119,7 +119,7 @@ $messages = array(
 'tog-hidepatrolled' => 'সাম্প্ৰতিক সাল-সলনিত তহলদাৰী সম্পাদনা নেদেখুৱাব',
 'tog-newpageshidepatrolled' => 'নতুন পৃষ্ঠা তালিকাত তহলদাৰী পৃষ্ঠাসমূহ নেদেখুৱাব',
 'tog-extendwatchlist' => 'কেৱল সাম্প্ৰতিকেই নহয, লক্ষ্য-তালিকাৰ সকলো সাল-সলনি বহলাই দেখুৱাওক',
-'tog-usenewrc' => 'বৰà§\8dদà§\8dধিত à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦¸à¦¾à¦²-সলনি à¦¬à§\8dযবহাৰ কৰক (জাভাস্ক্ৰিপ্টৰ প্ৰয়োজন)',
+'tog-usenewrc' => 'বৰà§\8dদà§\8dধিত à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦¸à¦¾à¦²-সলনি à¦¬à§\8dযৱহাৰ কৰক (জাভাস্ক্ৰিপ্টৰ প্ৰয়োজন)',
 'tog-numberheadings' => 'শীৰ্ষকত স্বয়ংক্ৰিয়ভাৱে ক্ৰমিক নং দিয়ক',
 'tog-showtoolbar' => 'সম্পাদনা দণ্ডিকা দেখুৱাওক (জাভাস্ক্ৰিপ্টৰ দৰকাৰ)',
 'tog-editondblclick' => 'একেলগে দুবাৰ টিপা মাৰিলে পৃষ্ঠা সম্পাদনা কৰক (জাভাস্ক্ৰিপ্টৰ দৰকাৰ)',
@@ -468,6 +468,8 @@ $1',
 'cannotdelete' => '"$1" পৃষ্ঠা বা নথিখন বিলোপ কৰা অসম্ভৱ ।
 সম্ভৱ আনে আগেই বিলোপ কৰিছে ।',
 'cannotdelete-title' => '"$1" পৃষ্ঠা বিলোপ কৰিব নোৱাৰি',
+'delete-hook-aborted' => 'হুকৰ দ্বাৰা সম্পাদনা প্ৰত্যাখ্যান কৰা হৈছে ।
+ইয়াৰ কোনো ব্যাখ্যা নাই ।',
 'badtitle' => 'অগ্ৰহণীয় শিৰোনামা',
 'badtitletext' => 'আপুনি বিচৰা পৃষ্ঠাটোৰ শিৰোনামা অযোগ্য, খালী বা ভুলকৈ জড়িত আন্তৰ্ভাষিক বা আন্তৰ্ৱিকি শিৰোনামা। ইয়াত এক বা ততোধিক বৰ্ণ আছে যাক শিৰোনামাত ব্যৱহাৰ কৰিব নোৱাৰি।',
 'perfcached' => "তলত দিয়া তথ্যখিনি আগতে জমা কৰি থোৱা (cached) আৰু সাম্প্ৰতিক নহ'ব পাৰে। এই তথ্যখিনিত সৰ্বোচ্চ {{PLURAL:$1|এটা ফলাফল|$1টা ফলাফল}} উপলব্ধ।",
@@ -1497,10 +1499,9 @@ $1",
 'upload-recreate-warning' => "'''সতৰ্কবাণী: এই নামৰ এটা ফাইল বিলোপ বা স্থানান্তৰ কৰা হৈছে । '''
 
 এই পৃষ্ঠাৰ অৱলুপ্তি ল’গ আৰু স্থানান্তৰ ল’গ আপোনাৰ সুবিধাৰ্থে তলত দিয়া হ’ল:",
-'uploadtext' => "ফাইল আপল’ড কৰাৰ বাবে তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক ।
-পূৰ্বে আপল’ড কৰা ফাইল চাবলৈ বা অনুসন্ধান কৰিবলৈ [[Special:FileList|আপল’ড কৰা ফাইলৰ তালিকা]] লৈ যাওক । (পুনঃ)আপল’ড কৰা ফাইলৰ নাম [[Special:Log/upload|আপল’ড ল’গ]] ত ভৰ্তি হয়, বিলোপ কৰা ফাইলৰ নাম [[Special:Log/delete|অৱলুপ্তি ল’গ]] ত পাব ।
+'uploadtext' => "ফাইল আপল’ড কৰাৰ বাবে তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক। পূৰ্বে আপল’ড কৰা ফাইল চাবলৈ বা অনুসন্ধান কৰিবলৈ [[Special:FileList|আপল’ড কৰা ফাইলৰ তালিকা]] লৈ যাওক । (পুনঃ) আপল’ড কৰা ফাইলৰ নাম [[Special:Log/upload|আপল’ড অভিলেখত]] ভৰ্তি হয়, বিলোপ কৰা ফাইলৰ নাম [[Special:Log/delete|অৱলুপ্তি অভিলেখত]] পাব ।
 
-à¦\95à§\8bনà§\8b à¦ªà§\83ষà§\8dঠাত à¦\9bবি à¦¯à§\8bà¦\97 à¦¦à¦¿à¦¬à¦²à§\88 তলৰ প্ৰপত্ৰসমূহত থকা সংযোগ ব্যৱহাৰ কৰক: 
+à¦\95à§\8bনà§\8b à¦ªà§\83ষà§\8dঠাত à¦\9aিতà§\8dৰ à¦¬à¦¾ à¦«à¦¾à¦\87ল à¦¸à¦¨à§\8dনিবিষà§\8dà¦\9f à¦\95ৰিবৰ à¦¬à¦¾à¦¬à§\87 তলৰ প্ৰপত্ৰসমূহত থকা সংযোগ ব্যৱহাৰ কৰক: 
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''',
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' অথবা
 * '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''",
index eb73476..0470eab 100644 (file)
@@ -218,7 +218,12 @@ $messages = array(
 'category-subcat-count-limited' => 'Igwa nin {{PLURAL:$1|sub-kategorya|$1 mga sub-kategorya}} an artikulong ini.',
 'category-article-count' => '{{PLURAL:$2|An mga minasunod na pahina sana an laog kan kategoryang ini|An mga minasunod na {{PLURAL:$1|pahina|$1 pahina}} an yaon sa kategoryang ini, sa $2 gabos.}}',
 'category-article-count-limited' => 'Yaon sa presenteng kategorya an mga minasunod na {{PLURAL:$1|pahina|$1 pahina}}.',
+'category-file-count' => '{{PLURAL:$2|Ining kategorya naglalaman sana kan minasunod na sagunson.|An minasunod {{PLURAL:$1|sagunson iyo|$1 na mga sagunson iyo}} sa kategoryang ini, na ginahi sa $2 sa kabilogan.}}',
+'category-file-count-limited' => 'An minasunod {{PLURAL:$1|na sagunson|$1 na mga sagunson}} yaon sa presenteng kategorya.',
 'listingcontinuesabbrev' => 'sunód',
+'index-category' => 'Hinukdoang mga pahina',
+'noindex-category' => 'Bakong hinukdoang mga pahina',
+'broken-file-category' => 'Mga pahina na igwang nagkaparasa na sagunsong kilyawan',
 
 'about' => 'Manonongod',
 'article' => 'Laog na pahina',
@@ -243,9 +248,13 @@ $messages = array(
 'faqpage' => 'Project:HD',
 
 # Vector skin
+'vector-action-addsection' => 'Idagdag an topic',
 'vector-action-delete' => 'paráon',
 'vector-action-move' => 'Ibalyó',
 'vector-action-protect' => 'Olangán',
+'vector-action-undelete' => 'Bawion sa pagkapara',
+'vector-action-unprotect' => 'Ribayan an proteksyon',
+'vector-simplesearch-preference' => 'Paganahon an pinapusog na suhestiyon sa paghahanap (Yanong panhanap sana)',
 'vector-view-create' => 'Maggíbo',
 'vector-view-edit' => 'Liwatón',
 'vector-view-history' => 'Hilingón an uusipón',
@@ -253,6 +262,7 @@ $messages = array(
 'vector-view-viewsource' => 'Hilingón an ginikánan',
 'actions' => 'Mga paghiro',
 'namespaces' => 'Liang-liang',
+'variants' => 'Mga pinalaen',
 
 'errorpagetitle' => 'Salâ',
 'returnto' => 'Magbwelta sa $1.',
@@ -276,6 +286,7 @@ $messages = array(
 'delete' => 'Paraon',
 'deletethispage' => 'Paraon ining pahina',
 'undelete_short' => 'Bawion an pagparà {{PLURAL:$1|paghirá|$1 mga paghirá}}',
+'viewdeleted_short' => 'Hilngon {{PLURAL:$1|sarong pinara na pagliwat|$1 mga pinara na pagliwat}}',
 'protect' => 'Protehiran',
 'protect_change' => 'Ribayan',
 'protectthispage' => 'Protehiran ining pahina',
@@ -286,14 +297,14 @@ $messages = array(
 'talkpagelinktext' => 'Pag-ulayan',
 'specialpage' => 'Espesyal na Pahina',
 'personaltools' => 'Mga gamit na personal',
-'postcomment' => 'Magkomento',
+'postcomment' => 'Baguhong seksyon',
 'articlepage' => 'Hilingón an pahina kan laog',
 'talk' => 'Urulay',
 'views' => 'Mga hilíng',
 'toolbox' => 'Kagamitan',
 'userpage' => 'Hilingón an pahina kan parágamit',
 'projectpage' => 'Hilingón an pahina kan proyekto',
-'imagepage' => 'Hilingón an pahina kan ladawan',
+'imagepage' => 'Hilngón an pahina nin sagunson (file)',
 'mediawikipage' => 'Hilingón an pahina kan mensahe',
 'templatepage' => 'Hilingón an pahina kan templato',
 'viewhelppage' => 'Hilingón an pahina kan tabang',
@@ -313,6 +324,7 @@ Grabe kadakol an mga paragamit na pinagprubaran mahiling an pahinang ini.
 Makihalat tabi nin kadikit na panahon bago ka magprubara na makapaglaog sa pahinang ini.
 
 $1',
+'pool-timeout' => 'Timeout naghahalat para makapanugpon',
 'pool-queuefull' => 'An grupong panproseso panoon',
 'pool-errorunknown' => 'Bakong bistadong sala',
 
@@ -417,17 +429,19 @@ An datos-sarayan nagbalik nin sala na "<tt>$3: $4</tt>".',
 'readonlytext' => 'Sarado mùna an base nin datos sa mga bàgong entrada asin iba pang mga pagribay, pwede gayod sa rutinang pagmantenir kan base nin datos, despues, mabalik na ini sa normal.
 
 Ini an eksplikasyon kan tagamató na nagkandado kaini: $1',
-'missing-article' => 'An datos-sarayan dae nakanagbo nin teksto nin sarong pahina na dapat niya kutang managboan, pinagngaran na "$2" S2.
+'missing-article' => 'An datos-sarayan dae nakanagbo kan teksto nin sarong pahina na dapat kuta nang managboan, pinagngaran na "$1" S2.
 
 Ini pirmeng pinagkakausa sa paagi nin pagsusunod nin sarong lumang diff o historiyang kilyawan na yaon sa sarong pahinang pinagpura na.
 
 Kun iyo ini an kaso, ika nakanagbo nin sarong kubol (bug) sa software.
-Pakireport tabi ini sa [[Special:ListUsers/sysop|administrator]], na naka-antabay sa kilyawan.',
+Pakireport tabi ini sa [[Special:ListUsers/sysop|administrador]], na naka-antabay sa kilyawan.',
 'missingarticle-rev' => '(pagbàgo#: $1)',
 'missingarticle-diff' => '(Kaibhán: $1, $2)',
 'readonly_lag' => 'Tulostulos na pagkandado an base nin datos mantang makaabot an base nin datos na esklabo saiyang amo.',
 'internalerror' => 'Panlaog na salâ',
 'internalerror_info' => 'Panlaog na salâ: $1',
+'fileappenderrorread' => 'Dae nakakabasa nin "$1" habang pinagdadagdag.',
+'fileappenderror' => 'Dae nakakapagdagdag nin "$1" sagkod "$2".',
 'filecopyerror' => 'Dai naarog an mga file na "$1" hasta "$2".',
 'filerenameerror' => 'Dai natàwan nin bàgong ngaran an file na "$1" sa "$2".',
 'filedeleteerror' => 'Dai naparà an file na "$1".',
@@ -481,20 +495,22 @@ An administrador na iyo an nagkandado kaini nagpahayag kaining kapaliwanagan: "$
 
 # Virus scanner
 'virus-badscanner' => "Saláng konpigurasyon: dai aram an virus scanner: ''$1''",
+'virus-scanfailed' => 'An paghingipid (scan) nagpalya (Koda $1)',
 'virus-unknownscanner' => 'dai aram an antivirus:',
 
 # Login and logout pages
-'logouttext' => "'''Nakaluwas ka na.'''
+'logouttext' => "'''Ika po sa ngunyan nakaluwas na.'''
 
-Pwede mo pang gamiton an {{SITENAME}} na dai nagpapabisto, o pwede ka giraray lumaog
-bilang pareho o ibang parágamit. Giromdomon tabî na an ibang mga páhina pwedeng mahiling pa na garo nakalaog ka pa, hasta limpyarón mo an abang kan ''browser'' mo.",
-'welcomecreation' => "== Maogmang Pagdagos, $1! ==
-
-Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan sa {{SITENAME}}.",
+Ika makakadagos pa sa paggamit kan {{SITENAME}} na dai nagpapabisto, o ika [[Special:UserLogin|Maglaog giraray]] bilang pareho o bilang ibang paragamit.
+Giromdoma na an ibang mga pahina mapuwedeng padagos na magpapahiling siring baga na kun ika garo yaon man sana sa laog, sagkod na saimong malinigan mo an sarayan sa kilyawan.",
+'welcomecreation' => '== Maogmang Pag-abot, $1! ==
+An saimong panindog (account) naimukna na tabi.
+Dae ka man tabi malingaw na ribayan an saimong [[Special:Preferences|{{SITENAME}} mga kabôtan]].',
 'yourname' => 'Pangaran kan paragamit:',
 'yourpassword' => 'Sekretong panlaog:',
 'yourpasswordagain' => 'Itaták giraray an sekretong panlaog:',
-'remembermypassword' => 'Giromdomon an paglaog ko sa kompyuter na ini(for a maximum of $1 {{PLURAL:$1|day|days}})',
+'remembermypassword' => 'Giromdoma an sakong paglaog sa kilyaw (browser) na ini (para sa maksimum na $1 {{PLURAL:$1|aldaw|mga aldaw}})',
+'securelogin-stick-https' => 'Magpirmeng konektado sa HTTPS matapos kang maglaog',
 'yourdomainname' => "An saimong ''domain'':",
 'externaldberror' => "Igwang nin salang panluwas pantunay kan base nin datos o dai ka pigtotogotan na bâgohon an saimong panluwas na ''account''.",
 'login' => 'Maglaog',
@@ -505,7 +521,7 @@ Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan
 'logout' => 'Magluwas',
 'userlogout' => 'Magluwás',
 'notloggedin' => 'Mayò sa laog',
-'nologin' => "Mayò ka pa nin entrada? '''$1'''.",
+'nologin' => 'Mayò ka pa nin panindog (account)? $1.',
 'nologinlink' => 'Maggibo nin account',
 'createaccount' => 'Maggibo nin account',
 'gotaccount' => "Igwa ka na nin account? '''$1'''.",
@@ -514,28 +530,34 @@ Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan
 'createaccountmail' => 'sa e-koreo',
 'createaccountreason' => 'Rason:',
 'badretype' => 'Dai parehas an pigtaták mong mga sekretong panlaog.',
-'userexists' => 'Piggagamit na kan iba an pangaran. Magpili tabî nin iba.',
+'userexists' => 'Paragamit na ngarang piglaog may naggagamit na.
+Pakipili nin ibang ngaran tabi.',
 'loginerror' => 'Salâ an paglaog',
 'createaccounterror' => 'Daí maggíbo an account: $1.',
 'nocookiesnew' => 'Nagibo na an account kan parágamit, alagad dai ka pa nakalaog. Naggagamit nin cookies an {{SITENAME}} para magpalaog sa mga parágamit. Nakapondo an cookies mo. Paandaron tabì ini, dangan, maglaog gamit an bàgo mong pangaran asin sekretong panlaog.',
 'nocookieslogin' => 'Naggagamit nin mga cookies an {{SITENAME}} para magpalaog nin mga paragamit. Nakapondo an mga cookies mo. Paandaron tabi ini asin probaran giraray.',
+'nocookiesfornew' => 'An panindog kan paragamit dae pinagmukna, nin huli ta dae nyamo kumpirmado an pinaggikanan kaini.
+Pakipaseguro na saimong pinagana an cookies, ikarga giraray ining pahina asin probaran mo otro.',
 'noname' => 'Dai ka pa nagkaag nin pwedeng gamiton na pangaran.',
 'loginsuccesstitle' => 'Matriumpo an paglaog',
 'loginsuccess' => "'''Nakalaog ka na sa {{SITENAME}} \"\$1\".'''",
-'nosuchuser' => 'Mayong paragamit sa pangaran na "$1". Reparohon an pigsurat mo, o maggibo nin bàgong account.',
+'nosuchuser' => 'Dae pang paragamit na ginagamit an pangaran na "$1".
+An mga ngaran nin paragamit sensitibo gayo sa tipahan.
+Pakireparo kan saimong espeling, o [[Special:UserLogin/signup|Magmukna nin bagong panindog]].',
 'nosuchusershort' => 'Mayong paragamit sa nagngangaran na "$1". Reparohon an pigsurat mo.',
 'nouserspecified' => 'Kaipuhan mong kaagan nin pangaran.',
+'login-userblocked' => 'An paragamit na ini pinagkubkob. An paglaog dae pinagtutugutan.',
 'wrongpassword' => 'Salâ an pigtaták na sekretong panlaog. Probaran giraray tabì.',
 'wrongpasswordempty' => 'Mayong pigkaág na sekretong panlaog. Probaran giraray tabì.',
-'passwordtooshort' => 'Salâ o halìpoton an saimong sekretong panlaog. Igwa dapat ining dai mababà sa {{PLURAL:$1|1 karakter|$1 karakter}} asin iba man sa pinilì mong pangaran.',
-'mailmypassword' => 'Ipadara sa e-koreo an sekretong panlaog',
-'passwordremindertitle' => 'Panpaísi nin sekretong panlaog halì sa {{SITENAME}}',
-'passwordremindertext' => 'Sarong paragamit (pwedeng ika, halì sa IP na $1)
-an naghagad nin bàgong sekretong panlaog para sa {{SITENAME}} ($4).
-"$3" na an bàgong sekretong panlaog ni "$2".
-Kaipuhan maglaog ka asin ibalyó an saimong sekretong panlaog.
-
-Kun ibang tawo an naghagad kaini o kun nagiromdóman mo na an saimong sekretong panlaog asin habô mo nang ribayan ini, dai mo na pagintiendehon ining mensahe. Ipadagos na an paggamit kan dating sekretong panlaog.',
+'passwordtooshort' => 'Mga sekretong panlaog dapat igwa nin {{PLURAL:$1|1 karakter|$1 mga karakter}}.',
+'password-name-match' => 'An saimong sekretong panlaog dapat laen sa saimong paragamit na ngaran.',
+'password-login-forbidden' => 'An paggamit kaining pangaran nin paragamit asin sekretong panlaog pinagbabawal.',
+'mailmypassword' => 'Paki-koreo an bagong sekretong panlaog',
+'passwordremindertitle' => 'Bagong temporaryo na sekretong panlaog para sa {{SITENAME}}',
+'passwordremindertext' => 'May sarong tawo (pwedeng ika gayod, gikan sa IP address na $1) naghagad nin sarong bagong sekretong panlaog para sa {{SITENAME}} ($4). Sarong temporaryong sekretong panlaog para sa paragamit "$2" an pinagmukna asin pinagtuytoy na magin "$3". Kun iyo ini an saimong katuyuhan, kaipuhan mong maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan.
+An saimong temporaryong sekretong panlaog mapapaso sa laog nin {{PLURAL:$5|sarong aldaw|$5 aldaw}}. 
+
+Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.',
 'noemail' => 'Mayong e-koreo na nakarehistro sa parágamit na "$1".',
 'noemailcreate' => 'Kaipuhan kang magtao nin sarong balidong address sa e-surat',
 'passwordsent' => 'Igwang bàgong sekretong panlaog na pigpadará sa e-koreong nakarehistro ki "$1".
@@ -546,12 +568,14 @@ Bàgo pa magpadara nin iba pang e-koreo sa account na ini, kaipuhan tabing sunod
 'throttled-mailpassword' => 'Sarong pagiromdom kan sekretong panlaog an ipinadara na, sa laog nin {{PLURAL:$1|hour|$1 hours}}.
 Tangarig malikayan an abuso, saro sanang pagiromdom kan sekretong panlaog an ipinapadara sa lambang {{PLURAL:$1|hour|$1 hours}}.',
 'mailerror' => 'Salâ an pagpadará nin e-koreo: $1',
-'acct_creation_throttle_hit' => 'Pasensya, nakagibo ka na nin $1 accounts. Dai ka na makakagibo pa.',
-'emailauthenticated' => "An saimong ''e''-surat pinatunayan sa $1.",
+'acct_creation_throttle_hit' => 'Mga bisita kaining wiki na ginagamit an saimong IP address nagmukna nin {{PLURAL:$1|1 panindog|$1 mga panindog}} sa nakaaging aldaw, na iyo ngani an maximum na pinagtutugot sa laog kan peryodong panahon.
+Bilang resulta, an mga bisita na naggagamit kaining IP address dae nguna makakamukna nin mga panindog.',
+'emailauthenticated' => 'An saimong e-koreo awtentikado kan $2 sa $3.',
 'emailnotauthenticated' => "Dai pa napatunayan an saimong ''e''-surat. Mayong ipapadarang ''e''-surat para sa ano man na minasunod na gamit.",
 'noemailprefs' => "Magpilî tabî nin ''e''-surat tangarig magandar ining mga gamit.",
 'emailconfirmlink' => "Kompirmaron tabî an saimong ''e''-surat",
-'invalidemailaddress' => "Dai matogotan ining ''e''-surat ta garo salâ an ''format'' kaini. Magkaag tabî nin tamâ o dai pagkaagan.",
+'invalidemailaddress' => 'An e-koreo dae akseptado habang ini minapahiling na igwa nin imbalidong panugmad.
+Pakilaog sana tabi nin sarong tugmadong koreo o pabayae na mayong laman an suratan.',
 'cannotchangeemail' => 'An panindog na address sa e-surat dati mariribayan sa Wiki na ini.',
 'emaildisabled' => 'Ining sayt dae makakapagpadara nin mga e-surat.',
 'accountcreated' => "Nagibo na an ''account''.",
@@ -566,6 +590,7 @@ Tangarig malikayan an abuso, saro sanang pagiromdom kan sekretong panlaog an ipi
 
 # E-mail sending
 'php-mail-error-unknown' => 'Bakong bantog na kasalaan sa PHP mail() function.',
+'user-mail-no-addy' => 'Nagprubar na magpadara nin e-koreo na mayo nin e-koreong address.',
 
 # Change password dialog
 'resetpass' => 'Ribayan an sekretong panlaog',
@@ -577,12 +602,57 @@ Tangarig malikayan an abuso, saro sanang pagiromdom kan sekretong panlaog an ipi
 'retypenew' => 'Itaták giraray an bàgong panlaog:',
 'resetpass_submit' => 'Ipwesto an sekretong panlaog dangan maglaog',
 'resetpass_success' => 'Naribayan na an saimong sekretong panlaog! Pigpapadagos ka na...',
-'resetpass_forbidden' => 'Dai pwedeng ribayan an mga sekretong panlaog sa ining wiki',
+'resetpass_forbidden' => 'An mga sekretong panlaog dae puwedeng maribayan',
+'resetpass-no-info' => 'Ika dapat nakalaog na tanganing direktang makagamit kaining pahina.',
 'resetpass-submit-loggedin' => 'Ribayan an sekretong panlaog',
+'resetpass-submit-cancel' => 'I-kansela',
 'resetpass-wrong-oldpass' => 'Saláng temporaryo o presenteng sekretong panlaog.
 Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong sekretong panlaog.',
 'resetpass-temp-password' => 'Temporaryong sekretong panlaog:',
 
+# Special:PasswordReset
+'passwordreset' => 'Pakibago kan sekretong panlaog',
+'passwordreset-text' => 'Kumpletoha ining porma tanganing makaresibe nin pampagiromdom na e-koreo kan detalye nin saimong panindog.',
+'passwordreset-legend' => 'Pakibago kan sekretong panlaog',
+'passwordreset-disabled' => 'An pagbago kan sekretong panlaog pinagpundo sa wiking ini.',
+'passwordreset-pretext' => '{{PLURAL:$1||Pakilaog kan saro sa mga pedaso nin datos sa ibaba}}',
+'passwordreset-username' => 'Paragamit-ngaran:',
+'passwordreset-domain' => 'Kasakupan:',
+'passwordreset-capture' => 'Hilngon an kinaluwasang e-koreo?',
+'passwordreset-capture-help' => 'Kun saimong i-tsek ini box, an e-koreo (na igwang temporaryong sekretong panlaog) ipapahiling saimo siring na ini ipagpapadara sa paragamit.',
+'passwordreset-email' => 'E-koreong address:',
+'passwordreset-emailtitle' => 'Mga detalye kan panindog sa {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'May sarong tawo (pwedeng ika gayod, gikan sa IP address na $1) naghagad nin sarong pagiromdom kan detalye kan saimong panindog para sa {{SITENAME}} ($4). An minasunod na paragamit {{PLURAL:$3|panindog iyo an|mga panindog iyo an}} na asosyado kaining e-koreong address:
+
+$2
+
+{{PLURAL:$3|Ining temporaryong sekretong panlaog|Ining mga temporaryong panlaog}} mapapaso sa {{PLURAL:$5|sarong aldaw|$5 mga aldaw}}.
+Ika dapat na maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan. Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong orihinal na sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.',
+'passwordreset-emailtext-user' => 'Paragamit $1 sa {{SITENAME}} naghahagad nin sarong pagiromdom kan detalye nin saimong panindog para sa {{SITENAME}}
+($4). An minasunod na paragamit {{PLURAL:$3|panindog iyo an|mga panindog iyo an}} na asosyado kaining e-koreong address:
+
+$2
+
+
+{{PLURAL:$3|Ining temporaryong sekretong panlaog|Ining mga temporaryong panlaog}} mapapaso sa {{PLURAL:$5|sarong aldaw|$5 mga aldaw}}.
+Ika dapat na maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan. Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong orihinal na sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.',
+'passwordreset-emailelement' => 'Paragamit-ngaran: $1
+Temporaryong sekretong panlaog: $2',
+'passwordreset-emailsent' => 'Sarong pampagiromdom na e-koreo ipinadara na.',
+'passwordreset-emailsent-capture' => 'Sarong pampagiromdom na e-koreo ipinadara na, ipinapahiling sa may ibaba.',
+'passwordreset-emailerror-capture' => 'Sarong pampagiromdom na e-koreo pinaghimo na, ipinapahiling sa may ibaba, alagad an pagpapadara kaini sa paragamit nagpalya: $1',
+
+# Special:ChangeEmail
+'changeemail' => 'Ribayan an e-koreong address',
+'changeemail-header' => 'Ribayan an panindog na e-koreong address',
+'changeemail-text' => 'Kumpletoha ining porma tanganing ribayan an saimong e-koreong address. Kinakaipo mong ilaog an saimong sekretong panlaog tanganing kumpirmaron ining pagribay.',
+'changeemail-no-info' => 'Ika dapat nakalaog na tanganing direktang makagamit kaining pahina.',
+'changeemail-oldemail' => 'Presenteng e-koreong address:',
+'changeemail-newemail' => 'Bagong e-koreong address:',
+'changeemail-none' => 'mayo tabi.',
+'changeemail-submit' => 'Ribayan an e-koreo',
+'changeemail-cancel' => 'Kanselaha',
+
 # Edit page toolbar
 'bold_sample' => 'Tekstong mahìbog',
 'bold_tip' => 'Mahìbog na teksto',
@@ -597,9 +667,9 @@ Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong s
 'nowiki_sample' => "Isaliot digdi an tekstong dai na-''format''",
 'nowiki_tip' => "Dai pagindiendehon pag-''format'' kan wiki",
 'image_sample' => 'Halimbawa.jpg',
-'image_tip' => 'Nakaturay na file',
+'image_tip' => 'Nakalubog na sagunson',
 'media_sample' => 'Halimbawa.ogg',
-'media_tip' => 'Takod nin file',
+'media_tip' => 'Kilyaw nin sagunson (file)',
 'sig_tip' => 'Pirma mo na may taták nin oras',
 'hr_tip' => 'Pabalagbag na linya (use sparingly)',
 
@@ -614,77 +684,114 @@ Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong s
 'showlivepreview' => 'Patànaw na direkto',
 'showdiff' => 'Hilingón an mga pagbabàgo',
 'anoneditwarning' => "'''Patanid:''' Dai ka nakalaog. Masusurat an saimong IP sa uusipón kan pagbabàgo kan pahinang ini.",
+'anonpreviewwarning' => 'Dae ka tabi nakalaog. An pagtatagama matala kan saimong IP address sa historya nin pagliwat sa pahinang ini.',
 'missingsummary' => "'''Paisi:''' Dai ka nagkaag nin sumád kan paghirâ. Kun pindotón mo giraray an Itagama, maitatagama an hirá mo na mayô kaini.",
 'missingcommenttext' => 'Paki lâgan nin komento sa ibabâ.',
-'missingcommentheader' => "'''Paisi:''' Dai ka nagkaag nin tema/pamayohan para sa ining komentaryo. Kun pindoton mo giraray an Itagama, maitatagama an hira mo na mayô ini.",
+'missingcommentheader' => "'''Pagiromdom:''' Ika dae tabi nagtao nin sarong panultol (subject)/Pamayong linya (headline) para kaining sinambit mo.
+Kun saimong pinduton an \"{{int:savearticle}}\" giraray, an saimong pigliwat matatagama na mayo kaiyan.",
 'summary-preview' => 'Patànaw nin sumada:',
 'subject-preview' => 'Patânaw nin tema/pamayohan:',
 'blockedtitle' => 'Pigbágat an parágamit',
-'blockedtext' => "'''Pigbagat an pangaran o IP mo.'''
+'blockedtext' => "'''An saimong paragamit na ngaran o IP address pinagkubkob.'''
 
-Si $1 an nagbagat. Ini an itinaong rasón, ''$2''.
+An pagkubkob hinimo ni $1.
+An rason na ipinagtao iyo na ''$2''.
 
-* Pagpoon kan pagbagat: $8
-* Pagpasó kan pagbagat: $6
-* Piniling bagaton: $7
+* Pagpoon kan pagkubkob: $8
+* Pagpasó kan pagkubkob: $6
+* Katuyuhan kan parakubkob: $7
 
-Pwede mong suratan si $1 o an iba pang [[{{MediaWiki:Grouppage-sysop}}|administrador]] para pagoralayan an manonongod sa pagbagat.
-Dai mo pwedeng gamiton an ' e-koreohan an paragamit ' kun mayong tamang e-surat sa  [[Special:Preferences|mga kabòtan kan account]] mo asin dai ka pigbagat sa paggamit kaini.
-$3 an presente mong IP, asin #$5 an ID nin pigbagat. Ikaag tabì an arin man o pareho sain man na hapót.",
-'autoblockedtext' => "Enseguidang pigbagat an IP mo ta ginamit ini kan ibang parágamit, na binagat ni \$1.
-Ini an rasón:
+Ika puwedeng magkontak sa $1 or ibang [[{{MediaWiki:Grouppage-sysop}}|administrador]] tanganing pag-orolayan an pagkubkob.
+Ika dae makakagamit kan 'e-koreo kaining paragamit' na panuytuyan laen lang na may sarong balidong e-koreo address na ipinahayag sa saimong [[Special:Preferences|panindog na mga kabotan]] asin ika dae pinagkubkob para sa paggamit kaini.
+An saimong presenteng IP address iyo $3, asin an kubkob ID iyo #$5.
+Pakibale na lang tabi an gabos na mga detalye sa itaas sa anuman na mga kahaputan na saimong himoon.",
+'autoblockedtext' => 'An saimong IP address awtomatikong pinagkubkob nin huli ta ini pinaggamit kan ibang paragamit, na pinagkubkob ni $1.
+An rason na ipinagtao iyo:
 
-:''\$2''
+:\'\'$2\'\'
 
-* Pagpoon kan pagbagat: \$8
-* Pagpasó kan pagbagat: \$6
+* Pagpoon kan pagkubkob: $8
+* Pagpasó kan pagkubkob: $6
+* Katuyuhan kan parakubkob: $7
 
-Pwedeng mong suratan si \$1 o an iba pang mga
-[[{{MediaWiki:Grouppage-sysop}}|administrador]] para pagolayan an manonongod sa pagbagat.
+Puwede mong kontakon si $1 o saro sa [[{{MediaWiki:Grouppage-sysop}}|mga administrador] tanganing pag-orolayan an kubkob.
 
-Giromdomon tabî na pwede mo sanang gamiton an \"''e''-suratan ining parágamit\" na gamit kun igwa kang tamang ''e''-surat na nakarehistro saimong [[Special:Preferences|mga kabôtan nin parágamit]] asin dai ka pigbabagat sa paggamit kaini.
+Patanid tabi dae mo puwedeng gamiton an "e-koreo kaining paragamit" estima laen lang kun ika igwa nin sarong balidong e-koreo address na rehistrado sa saimong [[Special:Preferences|paragamit na mga kabotan]] asin ika dae pinagkubkob para sa paggamit kaini.
 
-\$5 an pigbagat na ID. Ikaag tabî ining ID sa gabos na paghapot mo.",
+An saimong presenteng IP address iyo an $3, asin and Kubkob ID iyo an #$5.
+Pakibale tabi an gabos na mga detalye sa itaas sa anuman na mga kahaputan na saimong himoon.',
 'blockednoreason' => 'mayong itinaong rason',
 'whitelistedittext' => 'Kaipuhan mong $1 tangarig makahirá nin mga páhina.',
 'confirmedittext' => "Kaipuhan mong kompirmaron an saimong ''e''-surat. Ipwesto tabî asin patunayan an saimong ''e''-surat sa [[Special:Preferences|mga kabôtan kan parágamit]].",
-'nosuchsectiontitle' => 'Mayong siring na seksyón',
-'nosuchsectiontext' => 'Mayo man an seksyón an pighihira mo.',
+'nosuchsectiontitle' => 'Dae managboan an seksyon',
+'nosuchsectiontext' => 'Ika nagprubar na liwaton an sarong seksyon na bakong eksistido.
+Ini puwedeng pinagbalyo o pinagpara na habang saimong pinaghihiling an pahina.',
 'loginreqtitle' => 'Kaipuhan Maglaog',
 'loginreqlink' => 'maglaog',
 'loginreqpagetext' => 'Kaipuhan kang $1 tangarig makahilíng nin ibang pahina.',
 'accmailtitle' => 'Napadará na an sekretong panlaog.',
-'accmailtext' => 'An sekretong panlaog ni "$1" naipadará na sa $2.',
+'accmailtext' => "An patsambang pagpuyos kan sekretong panlaog para ki [[User talk:$1|$1]] ipinagpadara na ki $2.
+
+An sekretong panlaog para sa bagong panindog mapuwede tabing maribayan ''[[Special:ChangePassword|Ribayan an sekretong panlaog]]'' na pahina matapos na makalaog.",
 'newarticle' => '(Bàgo)',
 'newarticletext' => 'Sinunod mo an takod sa pahinang mayò pa man.
 Tangarig magibo an pahina, magpoon pagsurat sa kahon sa babâ
 (hilingón an [[{{MediaWiki:Helppage}}|pahina nin tabang]] para sa iba pang impormasyon).
 Kun dai tinuyong nakaabot ka digdi, pindoton sana an back sa browser mo.',
-'anontalkpagetext' => "----''Ini an pahina kan olay kan sarong parágamit na dai bisto na dai pa naggibo nin account o dai naggagamit kaini. Entonces, piggagamit mi an numero nin IP tangarig mabisto siya. Ining IP pwede gamiton kan manlain-lain na mga parágamit. Kun ika sarong paraágamit na dai bisto asin konbensido ka sa pigsasabi ka ining mga komento bakô man dapit saimo,  [[Special:UserLogin|maggibo nin'' account ''o maglaog]] tabì tangarig maibitaran an pagkaribong saimo asin sa ibang mga parágamit na dai bisto.''",
-'noarticletext' => 'Mayò man na teksto sa pahinang iní, pwede mong [[Special:Search/{{PAGENAME}}|hanápon iníng titulo nin pahina]] sa ibáng mga pahina o [{{fullurl:{{FULLPAGENAME}}|action=edit}} hirahón iníng pahina].',
-'clearyourcache' => "'''Pagiromdom:''' Pagkatapos kan pagtagama, pwede ser na kaipuhan mong lawigawan an abang kan ''browser'' para mahiling mo an mga pagbabâgo. '''Mozilla / Firefox / Safari:''' doonan an ''shift'' an ''Shift'' sabay an pagpindot sa ''Reload'', o pindoton an ''Ctrl-Shift-R'' (''Cmd-Shift-R'' sa Apple Mac); '''IE:''' doonan (dai halion an muro) an ''Ctrl'' mientras sabay an pagpindot sa  ''Refresh'', o pindoton an ''Ctrl-F5''; '''Konqueror:''': pindoton sana ''Reload'', o pindoton  an ''F5''; '''Opera''' pwede ser na kaipuhan na halîon an gabos na laog kan abang sa ''Tools→Preferences''.",
-'usercssyoucanpreview' => "'''Tip:''' Gamiton an 'Show preview' para testingon an bâgong CSS bago magtagama.",
-'userjsyoucanpreview' => "'''Tip:''' Gamiton an 'Show preview' para testingon an bâgong JS bago magtagama.",
-'usercsspreview' => "'''Giromdomon tabî na pigpapatânaw sana saimo an CSS nin parágamit, dai pa ini nakatagama!'''",
+'anontalkpagetext' => "----''Ini iyo an pahina kan orolayan para an sarong dae bistadong paragamit na dae pa nakapagmukna nin panindog, o dae pa nakapaggamit kaini.
+Kaya kami kaipong gumamit nin numerikal na IP address sa pagbisto saiya.
+An arog kaining IP address puwedeng maikapagheras sa nagkapirang mga paragamit.
+Kun ika sarong dae pa bistadong paragamit asin mati mo na igwang irelebanteng sambit na pinanungod saimo, tabi paki [[Special:UserLogin/signup|mukna nin panindog]] or [[Special:UserLogin|maglaog ka]] tanganing malikayan an pagkaribong sa pag-iriba kan iba pang mga paragamit.''",
+'noarticletext' => 'Mayo tabi sa presente nin teksto sa pahinang ini.
+Ika mapuwedeng [[Special:Search/{{PAGENAME}}|maghanap para sa titulo kan pahinang ini]] sa iba pang mga pahina,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan],
+o [{{fullurl:{{FULLPAGENAME}}|action=edit}} liwaton ining pahina]</span>.',
+'noarticletext-nopermission' => 'Mayo tabi sa presente nin teksto sa pahinang ini.
+Ika mapuwedeng [[Special:Search/{{PAGENAME}}|maghanap para sa titulo kan pahinang ini]] sa iba pang mga pahina,
+o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan]</span>.',
+'userpage-userdoesnotexist' => 'Paragamit na panindog "$1" bako tabing rehistrado.
+Paki-tsek kun ika magustong magmukna/magliwat kaining pahina.',
+'userpage-userdoesnotexist-view' => 'Paragamit na panindog "$1" bako tabing rehistrado.',
+'blocked-notice-logextract' => 'Ining paragamit sa presente nakakubkob.
+An pinakahuring entrada kan pagkubkob nakahaya sa ibaba bilang reperensiya:',
+'clearyourcache' => "'''Note:''' Matapos maitagama, ika mapuwedeng makaluktos sa tagoan kan saimong kilyaw tanganing mahiling an mga naribayan.
+* '''Firefox / Safari:''' Pauntok na duon sa ''Shift'' habang pinipindot an ''Ikarga otro'', o pinduton as maski arin sa ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' para sa Mac)
+* '''Google Chrome:''' Pinduton ''Ctrl-Shift-R'' (''⌘-Shift-R'' para sa Mac)
+* '''Internet Explorer:''' Pauntok na duon sa ''Ctrl'' habang pinipindot an ''Ipresko otro'', o pinduton an ''Ctrl-F5''
+* '''Konqueror:''' Ipindot an ''Ikarga otro'' o pinduton an ''F5''
+* '''Opera:''' Linigan an tagoan sa ''Tools → Mga Kabotan''",
+'usercssyoucanpreview' => "'''Tip:''' Gamita an \"{{int:showpreview}}\" na pindutan tanganing prubaran an saimong baguhong CSS bago ipagtagama.",
+'userjsyoucanpreview' => "'''Tip:''' Gamita an \"{{int:showpreview}}\" na pindutan tanganing prubaran an saimong baguhong JavaScript bago ipagtagama.",
+'usercsspreview' => "'''Giromdoma baya na ika nagtatanaw pa sana kan saimong paragamit sa CSS.'''
+'''Ini dae pa tabi naitatagama!'''",
 'userjspreview' => "'''Giromdomon tabi na pigtetest/pighihiling mo sana an patanaw kan saimong JavaScript nin paragamit, dai pa ini naitagama!'''",
+'sitecsspreview' => "'''Giromdoma baya na ika nagtatanaw pa sana kaining CSS.'''
+'''Ini dae pa tabi naitatagama!'''",
+'sitejspreview' => "'''Giromdoma baya na ika nagtatatanaw pa sana kaining koda sa JavaScript.'''
+'''Ini dae pa tabi naitatagama!'''",
 'userinvalidcssjstitle' => "'''Patanid:''' Mayong ''skin'' na \"\$1\". Giromdomon tabî na an .css asin .js na mga páhina naggagamit nin titulong nakasurat sa sadit na letras, halimbawa {{ns:user}}:Foo/vector.css bakong {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Binàgo)',
 'note' => "'''Paisi:'''",
-'previewnote' => "'''Patànaw sana ini; dai pa naitagama an mga pagbabàgo!'''",
+'previewnote' => "'''Giromdoma na ini sarong patanaw pa sana.'''
+An saimong mga pinagriliwat dae pa tabi naitatagama!",
+'continue-editing' => 'Ipagpadagos an pagliliwat',
 'previewconflict' => 'Mahihilíng sa patànaw na ini an tekstong nasa itaas na lugar nin paghirá arog sa maipapahiling kun ini an itatagama mo.',
 'session_fail_preview' => "'''Despensa! Dai mi naipadagos an paghirá mo huli sa pagkawara nin datos kan sesyon.
 Probaran tabì giraray. Kun dai man giraray magibo, probaran na magluwas dangan maglaog giraray.'''",
-'session_fail_preview_html' => "'''Despensa! Dai mi naipadagos an paghirá mo nin huli sa kawàran kan datos kan sesyon.'''
+'session_fail_preview_html' => "'''Sori po! Dae tabi nyamo maiproseso an saimong pagliwat nin huli sa kawaraan kan datos sa sesyon.'''
 
-''Huli ta ining wiki may HTML na nakaandar, pigtago an patànaw bilang paglikay kontra sa mga atake sa JavaScript.''
+''Nin huli ta {{SITENAME}} igwa nin bakong pang naprosesong HTML pinagpagana, an patanaw ipinagtago bilang pag-ingat kontra sa atake kan JavaScript.''
 
-'''Kun talagang boot mong hirahón ini, probaran giraray. Kun dai pa giraray magibo, magluwas dangan maglaog giraray. '''",
+'''Kun ini sarong lehitimong pagprubar nin pagliwat, paki-otro tabi giraray.'''
+Kun ini dae man giraray guminana, magprubar na [[Special:UserLogout|magluwas]] asin maglaog giraray.",
 'token_suffix_mismatch' => "'''Dai pigtogotan an paghirá mo ta sinabrit kan client mo an punctuation characters.
 Dai pigtogotan ining paghirá tangarig maibitaran na maraot an teksto kan pahina.
 Nanyayari nanggad ini kun naggagamit ka nin bakong maraháy asin dai bistong web-based proxy service.'''",
+'edit_form_incomplete' => "'''An ibang mga parte kan porma nin pagliwat dae nakaabot sa serbidor; paki-dobleng mansay na an saimong mga pinagliwat bilog na yaon pa asin paki-otro giraray.'''",
 'editing' => 'Pigliliwat an $1',
+'creating' => 'Pinagmumukna an $1',
 'editingsection' => 'Pighihira an $1 (seksyon)',
-'editingcomment' => 'Pighihira an $1 (komento)',
+'editingcomment' => 'Pigliliwat an $1 (bagong seksyon)',
 'editconflict' => 'Komplikto sa paghihira: $1',
 'explainconflict' => "May ibang parágamit na nagbàgo kaining pahina kan pagpoon mong paghirá kaini.
 Nahihilíng ang pahina kan teksto sa parteng itaas kan teksto.
@@ -702,35 +809,78 @@ Pigpropromesa mo man samuyà na ika an kagsurat kaini, o kinopya mo ini sa domin
 '''DAI TABÌ MAGSUMITIR NIN MGA GIBONG IPINAPANGALAD NA KOPYAHON NIN MAYONG PERMISO!'''",
 'copyrightwarning2' => "Giromdomon tabì na an gabos na kontribusyon sa {{SITENAME}} pwedeng hirahón, bàgohon o halion kan ibang mga parágamit. Kun habô mong mahirá an saimomg sinurat na mayong pakimàno, pues, dai tabì isumitir iyan digdi.<br />
 Pigpapangakò mo man samuyà na ika an nagsurat kaini, o pigkopya mo ini sa dominiong panpubliko o sarong parehong libreng rekurso (hilingon an $1 para sa mga detalye). '''DAI TABÌ MAGSUMITIR NIN MGA GIBONG IPINAPANGALAD NA KOPYAHON NIN MAYONG PERMISO!'''",
-'longpageerror' => "'''SALÀ: $1 na kilobytes na kalabà an pahinang isinumitir mo, na mas halabà sa hanggan nin $2 na kilobytes. Dai pwede ining itagama.'''",
-'readonlywarning' => "'''PATANID: Nakakandado an base nin datos para sa pagmantinir, pues, dai mo mûna pwede na itagama an mga paghirá mo. Pwede mo pa man na arogon dangan ipaskil ang teksto sa sarong dokumento arog kan MS Word asbp. asin itagama ini para sa atyan.'''",
-'protectedpagewarning' => "'''PATANID:  Nakakandado ining pahina tangarig an mga parágamit na may priblehiyo nin ''sysop'' sana an pwedeng maghira kaini.'''",
-'semiprotectedpagewarning' => "'''Paisi:''' An pahinang ini isinara tangarig mga rehistradong parágamit sana an makahira kaini.",
+'longpageerror' => "'''Ay Sala: An teksto na saimong pinagsumite {{PLURAL:$1|sarong kilobyte|$1 kilobytes}} an laba, mas halaba kesa maksimum na {{PLURAL:$2|sarong kilobyte|$2 kilobytes}}.'''
+Ini dae tabi maitatagama.",
+'readonlywarning' => "'''Patanid tabi: An datos-sarayan nakakandado para sa maintenance, kay ika dae makakapagtagama kan saimong mga pinagriliwat sa ngunyan.'''
+Ika mapuwedeng maikopya an teksto pasiring sa sarong sagunson kan teksto asin para itagama ini sa huri.
+
+An administrador na iyo an nagkandado kaini naghayag kaining kapaliwanagan: $1",
+'protectedpagewarning' => "'''Patanid tabi: Ining pahina pinagprotektaran tanganing an mga paragamit sana na igwang pribilihiyo bilang administrador an makakapagliwat kaini.'''
+An pinakahuring entrada sa talaan pinaghaya sa ibaba bilang reperensiya:",
+'semiprotectedpagewarning' => "'''Note:''' Ining pahina pinagprotektaran na tanganing an mga rehistradong mga paragamit sana an mapuwedeng makapagliwat kaini.
+An pinakahuring entrada sa talaan pinaghaya sa ibaba bilang reperensiya:",
 'cascadeprotectedwarning' => "'''Patanid:''' Nakakandado an pahinang ini tangarig an mga parágamit na igwang pribilehyo nin sysop sana an pwedeng maghirá kaini, huli ta kabali ini sa mga kataratang protektado na {{PLURAL:$1|pahina|mga pahina}}:",
-'templatesused' => 'Mga templato na piggamit sa pahinang ini:',
-'templatesusedpreview' => 'Mga templato na piggamit sa patànaw na ini:',
-'templatesusedsection' => 'Mga templato na piggamit sa seksyon na ini:',
+'titleprotectedwarning' => "'''Patanid tabi: Ining pahina pinagprotektaran na tanganing [[Special:ListGroupRights|espesipikong karapatan]] minakaipo tanganing magmukna kaini.'''
+An pinakahuring entrada sa talaan pinaghaya sa ibaba bilang reperensiya:",
+'templatesused' => '{{PLURAL:$1|Template|Mga Panguyog}} na pinaggamit kaining pahina:',
+'templatesusedpreview' => '{{PLURAL:$1|Template|Mga Panguyog}} na pinaggamit kaining patanaw:',
+'templatesusedsection' => '{{PLURAL:$1|Template|Mga Panguyog}} na pinaggamit kaining seksyon:',
 'template-protected' => '(protektado)',
 'template-semiprotected' => '(semi-protektado)',
+'hiddencategories' => 'Ining pahina sarong miyembro kan {{PLURAL:$1|1 pinagtagong kategorya|$1 pinagtagong mga kategorya}}:',
 'edittools' => '<!-- An teksto digdi mahihiling sa babâ kan mga pormang pighihirá asin pigkakarga. -->',
 'nocreatetitle' => 'Limitado an paggibo nin pahina',
-'nocreatetext' => 'Igwang pagpogol sa paggibo nin bàgong pahina sa site na ini.
-Pwede kang bumalik dangan maghirá nin presenteng pahina, o [[Special:UserLogin|maglaog o magbukas nin account]].',
-'nocreate-loggedin' => 'Mayò ka nin permiso na maggibo nin mga bàgong pahina sa wiki na ini.',
+'nocreatetext' => '{{SITENAME}} pinagpupugol an kakayanan na magmukna nin baguhong mga pahina.
+Ika makakabalik asin magliwat kan eksistidong nang pahina, o [[Special:UserLogin|maglaog ka o magmukna nin sarong panindog]].',
+'nocreate-loggedin' => 'Ika mayo tabi nin permiso tanganing magmukna nin baguhong mga pahina.',
+'sectioneditnotsupported-title' => 'An pagliliwat tabi sa seksyon bakong suportado',
+'sectioneditnotsupported-text' => 'An pagliliwat tabi sa seksyon bakong suportado sa pahinang ini.',
 'permissionserrors' => 'Mga saláng Permiso',
 'permissionserrorstext' => 'Mayò ka nin permiso na gibohon yan, sa minasunod na {{PLURAL:$1|rason|mga rason}}:',
-'recreate-moveddeleted-warn' => "'''Patanid: Piggigíbo mo giraray an pahina na pigparà na dati pa.'''
-
-Dapat mong isipon kun kaipuhan na ipadagos an paghirá kaining pahina.
-An paghalì kan historial para sa pahinang ini yaon digdi para sa saimong kombenyensya:",
+'permissionserrorstext-withaction' => 'Ika mayo tabi nin permiso sa $2, para sa minasunod na {{PLURAL:$1|rason|mga rason}}:',
+'recreate-moveddeleted-warn' => "'''Patanid tabi: Saimong pinagmumukna giraray an sarong pahina na dati nang pinagpura.'''
+
+Saimo tabing ikonsidera kun ini maninigo na ipagpadagos pa an pagliliwat kaining pahina.
+An pagpura asin pagbalyong talaan para sa pahinang ini pinaghaya digde para sa kombenyinsiya:",
+'moveddeleted-notice' => 'Ining pahina pinagpura na.
+An pagpura asin pagbalyong talaan para sa pahina pinaghaya sa ibaba bilang reperensiya.',
+'log-fulllog' => 'Tanawon an bilog na talaan',
+'edit-hook-aborted' => 'An pagliwat pinagpundo sa paagi kan pangawil.
+Ini dae tabi nagtao nin kapaliwanagan.',
+'edit-gone-missing' => 'Dae makakapagdagdag sa pahina.
+Ini minapahiwatig tabi na pinagpura na.',
 'edit-conflict' => 'Igwang iregularidad sa pagliwat.',
+'edit-no-change' => 'An saimong pagliwat pinagbalewala, nin huli ta mayong pagbabago an pinaghimo sa teksto.',
 'edit-already-exists' => 'Dai maggibo an bàgong pahina.
 Igwa na kaini.',
+'defaultmessagetext' => 'Tugmadong mensahe sa teksto',
+
+# Parser/template warnings
+'expensive-parserfunction-warning' => "'''Patanid tabi:''' Ining pahina naglalaman nin grabe kadakulon na ekspensibong programang pambaranga sa punksyon nin mga pag-aapod.
+
+Ini dapat magkaigwa nin menos sanang $2 {{PLURAL:$2|apod|mga apod}}, igwa na {{PLURAL:$1|ngunyan nin $1 apod|ngunyan nin $1 mga apod}}.",
+'expensive-parserfunction-category' => 'Mga pahina na igwa nin grabe kadakulon na mga ekspensibong programang pambaranga sa punksyon nin mga pag-aapod',
+'post-expand-template-inclusion-warning' => "'''Patanid tabi:''' An panguyog (template) igwang sukol na grabe kadakula.
+An ibang mga panguyog dae tabi maipagdadagdag.",
+'post-expand-template-inclusion-category' => 'Mga pahina kun saen an panguyog igwang sukol na sobrado',
+'post-expand-template-argument-warning' => "'''Patanid tabi:''' Ining pahina naglalaman baya nin sarong panguyog na igwang grabe kadakulang kalakbangan sa sukol.
+Ining mga argumento tabi pinagharali na.",
+'post-expand-template-argument-category' => 'Mga pahina na naglalaman kan pinagharaleng mga argumento sa panguyog',
+'parser-template-loop-warning' => 'An kaluktosan kan panguyog namansayan: [[$1]]',
+'parser-template-recursion-depth-warning' => 'An panguyog nin rekursyong panrarom na kasagkodan nagsobra nin ($1)',
+'language-converter-depth-warning' => 'Tagapagbago kan Lengguwaheng panrarom na kasagkodan nagsobra ($1)',
+'node-count-exceeded-category' => 'Mga pahina kun saen an kabilangan nin tagapagsumpay nagsobra',
+'node-count-exceeded-warning' => 'An pahina nagsobra an kabilangan nin tagapagsumpay',
+'expansion-depth-exceeded-category' => 'Mga pahina kun saen an panrarom na kalakbangan nagsobra',
+'expansion-depth-exceeded-warning' => 'An pahina nagsobra sa panrarom na kalakbangan',
+'parser-unstrip-loop-warning' => 'Panul-ot na kaluktusan namansayan',
+'parser-unstrip-recursion-limit' => 'Panul-ot na rekusyong kasagkodan nagsobra ($1)',
 
 # "Undo" feature
 'undo-success' => 'Pwedeng bawion an paghirá. Sosogon tabì an pagkakaiba sa babâ tangarig maberipikár kun ini an boot mong gibohon, dangan itagama an mga pagbabàgo sa babâ tangarig tapuson an pagbawì sa paghirá.',
 'undo-failure' => 'Dai napogol an paghirá ta igwa pang ibang paghirá sa tahaw na nagkokomplikto.',
-'undo-summary' => 'Bawion an pagpakaraháy na $1 ni [[Special:Contributions/$2|$2]] ([[User talk:$2|Pag-oláyan]])',
+'undo-norev' => 'An pagliwat dae tabi magigibo nin huli ta ini bakong eksistido o pinagpura na.',
+'undo-summary' => 'Ibalik tabi an pinagbabago $1 sa paagi [[Special:Contributions/$2|$2]] ([[Paragamit na Olay:$2|olay]])',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Dai makagibo nin account',
@@ -742,6 +892,7 @@ Igwa na kaini.',
 'viewpagelogs' => 'Hilingón an mga usip para sa pahinang ini',
 'nohistory' => 'Mayong paghirá nin uusipón sa pahinang ini.',
 'currentrev' => 'Sa ngonyan na pagpakarháy',
+'currentrev-asof' => 'Pinakahuring pagbabago kan $1',
 'revisionasof' => 'Pagpakarháy sa $1',
 'revision-info' => 'An pagpakarháy sa $1 ni $2',
 'previousrevision' => '←Lumà pang pagpakarhay',
@@ -756,9 +907,10 @@ Igwa na kaini.',
 Legend: (ngonyan) = kaibhán sa ngonyan na bersyon,
 (huri) = kaibhán sa huring bersyon, S = saradít na paghirá.',
 'history-fieldset-title' => 'Rinsayon an uusipon',
+'history-show-deleted' => 'Pinagpura sana',
 'histfirst' => 'Pinakaenot',
 'histlast' => 'Pinakahúri',
-'historysize' => '($1 bytes)',
+'historysize' => '({{PLURAL:$1|sarong byte|$1 mga bytes}})',
 'historyempty' => '(mayong laog)',
 
 # Revision feed
@@ -770,51 +922,154 @@ Pwedeng pigparà na ini sa wiki, o tinàwan nin bàgong pangaran.
 Probaran tabì an [[Special:Search|pighahanap sa wiki]] para sa mga pahinang dapít.',
 
 # Revision deletion
-'rev-deleted-comment' => '(hinalì an komento)',
+'rev-deleted-comment' => '(pagliwat na sumaryo pinaghale)',
 'rev-deleted-user' => '(hinalì an parágamit)',
-'rev-deleted-event' => '(hinalì an ingreso)',
-'rev-deleted-text-permission' => 'Ining pagpakaraháy nin pahina pighalì na sa mga archibong panpubliko.
-Pwedeng igwang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} historial kan pagparà].',
-'rev-deleted-text-view' => 'Ining pagpakaraháy nin pahina pighalì na sa mga archibong panpubliko.
-Pwede mo ining hilingón bilang sarong tagamató kaining site;
-Pwedeng igwang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} historial kan pagparà].',
+'rev-deleted-event' => '(talaan kan aksyon pinaghale)',
+'rev-deleted-user-contribs' => 'Paragamit na ngaran o IP address pinaghale - an pigliwat pinagtago gikan sa mga kontribusyon]',
+'rev-deleted-text-permission' => "An pinagbago tabi kaining pahina '''pinagpura'''.
+An mga detalye mananagboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinagpura].",
+'rev-deleted-text-unhide' => "An pagbabago tabi kaining pahina '''pinagpura'''.
+Mga detaylye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan nin pagpura].
+Ika mapuwedeng [$1 hilingon ining pagbabago] kun ika nagmawot na magpadagos.",
+'rev-suppressed-text-unhide' => "An pagbabago kaining pahina '''pinaglubog'''.
+Mga detalye mapuwedeng managboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan paglubog].
+Ika mapuwede pa man [$1 matanaw ining pagbabago] kun mawot na magdagos",
+'rev-deleted-text-view' => "An pagbabago tabi kaining pahina '''pinagpura'''.
+Ika mapuwedeng magtanaw kaini; mga detalye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinagpura].",
+'rev-suppressed-text-view' => "An pagbabago kaining pahina '''pinaglubog'''.
+Ika mapuwedeng matanaw ini; mga detalye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan pinaglubog].",
+'rev-deleted-no-diff' => "Ika dae makapagtanaw kaining diff nin huli ta saro kan mga pagbabago '''pinagpura'''.
+Mga detalye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinuraan].",
+'rev-suppressed-no-diff' => "Ika dae makapagtanaw kaining diff nin huli ta saro sa mga pagbabago '''pinagpura'''.",
+'rev-deleted-unhide-diff' => "Saro sa mga pagbabago kaining diff '''pinagpura'''.
+Mga detalye mapuwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinuraan].
+Ika mapuwede pa [$1 magtanaw kaining diff] kun ika nagmawot na magpadagos.",
+'rev-suppressed-unhide-diff' => "Saro sa mga pagbabago kaining diff '''pinaglubog'''.
+Mga detalye mapuwedeng managboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan pinaglubog].
+Ika mapuwede pa man na [$1 matanaw ining diff] kun ika mawot na magdagos.",
+'rev-deleted-diff-view' => "Saro sa mga pinagbago kaining diff '''pinagpura'''.
+Ika makakapagtanaw kaining diff; mga detalye puwedeng mananagboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinuraan].",
+'rev-suppressed-diff-view' => "Saro sa mga pinagbago kaining diff '''pinaglubog'''.
+Ika puwedeng makakatanaw kaining diff; mga detalye puwedeng mananagboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan pinaglubog].",
 'rev-delundel' => 'ipahilíng/itagò',
+'rev-showdeleted' => 'ibuyagyag',
 'revisiondelete' => 'Paraon/bawion an mga pagpakaraháy',
-'revdelete-nooldid-title' => 'Mayong tunggit pagpakaraháy',
-'revdelete-nooldid-text' => 'Dai ka nagpili nin target na pagpakarhay o mga pagpakarhay tangarig magamit ini.',
-'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Selected revisions}} kan [[:$1]]'''",
-'revdelete-text' => "'''An mga pagpakarhay asin mga panyayari na pigparâ mahihiling pa sa historya asin mga historial kan páhina, pero an ibang parte kan mga laog kaini dai na ipapahiling sa publiko.'''
-
-An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong laog asin pwede pa nindang bawîon an pagparâ kaini sa paggamit kan parehong ''interface'', kun mayô pang mga ibang restriksyón.",
-'revdelete-legend' => 'Ipwesto an mga restriksyón',
+'revdelete-nooldid-title' => 'Imbalidong target nin pagbabago',
+'revdelete-nooldid-text' => 'Ika dae baya naghayag nin sarong target sa pagbabago tanganing gibohon ining punksyon, an ipinaghayag na pagbabago bako tabing eksistido, o ika nagpuprubar tanganing itago an presentend pagbabago.',
+'revdelete-nologtype-title' => 'Mayong tipo nin talaan na ipinagtao',
+'revdelete-nologtype-text' => 'Ika dae tabi nagpapahayag nin sarong tipo nin talaan tanganing gumibo kaining aksyon dagos.',
+'revdelete-nologid-title' => 'Imbalidong entrada sa talaan',
+'revdelete-nologid-text' => 'Ika dae tabi naghayag nin sarong target talaan nin pangyayari tanganing gumibo kaining punksyon o an pinaghayag na entrada dae tabi eksistido.',
+'revdelete-no-file' => 'An sagunson na pinaghayag dae tabi eksistido.',
+'revdelete-show-file-confirm' => 'Segurado ka tabi na gusto mo matanaw sarong pinagpurang pagbabago kan sagunson "<nowiki>$1</nowiki>" poon $2 sa $3?',
+'revdelete-show-file-submit' => 'Iyo tabi',
+'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Mga piniling pagbabago}} kan [[:$1]]'''",
+'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Mga piniling talaan kan mga pangyayari}}:'''",
+'revdelete-text' => "'''Pinagpurang mga pagbabago asin mga pangyayari mahihiling pa man sa historiyang pahina asin mga talaan, pero an mga parte kan saindang laman dae puwedeng magamit kan publiko.'''
+An ibang administrador sa {{SITENAME}} puwede pa man makagamit sa pinagtagong laman asin balewalaon an pagpura kaini giraray sa paagi nin kaparehong panlaog-olay, laen lang kun may kadagdagang pangilin an inilapat.",
+'revdelete-confirm' => 'Pakikumpirma tabi na ika tuyong gumibo kaini, na saimong naintindihan an mga konsekuwensiya, asin ta ika pinaghihimo ini na uyon sa [[{{MediaWiki:Policy-url}}|an palisiya]].',
+'revdelete-suppress-text' => "An paglulubog dapat '''sana''' makakagamit sana para sa minasunod na mga kaso:
+*Potensiyal na libeloso an impormasyon
+*Bakong angay an personal na impormasyon
+*: ''mga address kan harong asin mga numero kan telepono, sosyal na seguridad, iba pa.''",
+'revdelete-legend' => 'Ilapat an mga restriksyon sa bisibilidad',
 'revdelete-hide-text' => 'Tagoon an teksto kan pagpakaraháy',
 'revdelete-hide-image' => 'Tagoon an laog kan file',
 'revdelete-hide-name' => 'Tagoon an aksyon asin target',
 'revdelete-hide-comment' => 'Tagoon an komento sa paghirá',
 'revdelete-hide-user' => 'Tagoon an pangaran kan editor/IP',
-'revdelete-hide-restricted' => 'Ibali sa mga restriksyón na ini an mga sysops asin iba pa',
+'revdelete-hide-restricted' => 'Ilubog an mga datos gikan sa mga administrador asin man kan iba',
+'revdelete-radio-same' => '(dae pagribayan)',
+'revdelete-radio-set' => 'Iyo tabi',
+'revdelete-radio-unset' => 'Bako tabi',
 'revdelete-suppress' => 'Dai ipahilíng an mga datos sa mga sysops asin sa mga iba pa',
 'revdelete-unsuppress' => 'Halîon an mga restriksyón sa mga ibinalík na pagpakarhay',
 'revdelete-log' => 'Rason:',
-'revdelete-submit' => 'Ibílang sa piniling pagpakarhay',
-'revdelete-success' => "'''Nakapwesto na an bisibilidad kan pagpakarhay.'''",
+'revdelete-submit' => 'Ipag-aplay sa mga piniling {{PLURAL:$1|pagbabago|mga pagbabago}}',
+'revdelete-success' => "'''Pagbabago sa bisibilidad matrayumpong pinagdagdagan.'''",
+'revdelete-failure' => "'''Pagbabago sa bisibilidad dae tabi nadagdagan:'''
+$1",
 'logdelete-success' => "'''Nakapuesto na an katalâan kan nangyari.'''",
+'logdelete-failure' => "'''Talaan sa bisibilidad dae tabi nailapat:'''
+$1",
+'revdel-restore' => 'ribayan an bisibilidad',
+'revdel-restore-deleted' => 'pinagpurang mga pagbabago',
+'revdel-restore-visible' => 'lantad na mga pagbabago',
+'pagehist' => 'Pahinang historiya',
+'deletedhist' => 'Pinagpurang historiya',
+'revdelete-hide-current' => 'Napasalang pagtatago kan item petsado $2, $1: Iyo ini an presenteng pagbabago.
+Ini dae tabi naitatago.',
+'revdelete-show-no-access' => 'Napasalang paghahayag kan item petsado $2, $1: Ining item markadong "pinagpangilin".
+Ika mayo tabing pangaputan kaini.',
+'revdelete-modify-no-access' => 'Napasalang pagsasangli kan item petsado $2, $1: Ining item markadong "pinagpangilin".
+Ika mayo tabing pangaputan kaini.',
+'revdelete-modify-missing' => 'Napasalang pagsasangli kan item ID $1: Ini nawawara gikan sa datos-sarayan!',
+'revdelete-no-change' => "'''Patanid tabi:''' An item petsado $2, $1 igwa na tabi kan pinaghahagad na mga panuytoy sa bisibilidad.",
+'revdelete-concurrent-change' => 'Napasalang pagsasangli kan item petsado $2, $1: An status nagpapahiling na pinagribayan kan ibang tawo habang ikan nagprubar na sanglian ini.
+Paki-tsek tabi sa mga talaan.',
+'revdelete-only-restricted' => 'Napasalang pagtatago kan item petsado $2, $1: Ika dae tabi makakapaglubog kan mga item na mahiling kan mga administrador na mayo kang piniling saro sa iba pang bisibilidad na mga pagpipilian.',
+'revdelete-reason-dropdown' => '*Pirmihang mga rason sa pagpura
+**Paglapas kan Copyright
+**Bakong angay na personal na impormasyon
+**Potensiyal na libelosong impormasyon',
+'revdelete-otherreason' => 'Iba pa/kadagdagang rason:',
+'revdelete-reasonotherlist' => 'Ibang rason',
+'revdelete-edit-reasonlist' => 'Liwaton an mga rason sa pagpura',
+'revdelete-offender' => 'Awtor kan pagbabago:',
+
+# Suppression log
+'suppressionlog' => 'Talaan kan paglulubog',
+'suppressionlogtext' => 'Sa ibaba yaon an sarong listahan kan mga pinuraan asin mga kinubkob na imbuwelto sa laman na pinagtatago sa mga administrador.
+Hilnga baya an [[Special:BlockList|listahan kan kinubkob]] para sa listahan kan presenteng operasyonal na mga pinagbabawal asin mga pinagkukubkob.',
+
+# History merging
+'mergehistory' => 'Tiriponon an pahina kan mga historiya',
+'mergehistory-header' => 'Ining pahina minatugot saimo na tiriponon an mga pagbabago kan historiya nin sarong pinaggikanang pahina na magin sarong baguhong pahina.
+Himoon mong segurado na ining pagbabago makapagtala nin historikal na kapadagusang pahina.',
+'mergehistory-box' => 'Tiriponon an mga pagbabago sa duwang mga pahina:',
+'mergehistory-from' => 'Gikanang pahina:',
+'mergehistory-into' => 'Destinasyong pahina:',
+'mergehistory-list' => 'Puwedeng maitiripon na historiya kan pagliwat',
+'mergehistory-merge' => 'An mga minasunod na mga pagbabago sa [[:$1]] mapuwedeng pagtiriponon na magin [[:$2]].
+Gamita an radyong pindutan sa kolum tanganing tiriponon sana an mga pagbabagong pinagmukna asin bago pa man an pinaghahayag na oras.
+Tandaan na an paggagamit kan nabigasyong kilyawan makakapaglapat giraray kaining kolum.',
+'mergehistory-go' => 'Ipahayag an mapuwedeng matiripon na mga pagliwat',
+'mergehistory-submit' => 'Tiripona an mga pagbabago',
+'mergehistory-empty' => 'Mayong mga pagbabago na puwedeng mapagtiripon.',
+'mergehistory-success' => '$3 {{PLURAL:$3|pagbabago|mga pagbabago}} sa [[:$1]] matrayumpong napagtiripon na magin [[:$2]].',
+'mergehistory-fail' => 'Dae tabi makayanan na makapaghimo nin historiyang pagtiripon, tabi pakihiling giraray an pahina asin parametro kan oras.',
+'mergehistory-no-source' => 'Gikanang pahina $1 bakong eksistido.',
+'mergehistory-no-destination' => 'Destinasyong pahina $1 bakong eksistido.',
+'mergehistory-invalid-source' => 'Gikanang pahina kaipuhan magin saro na balidong titulo.',
+'mergehistory-invalid-destination' => 'Destinasyong pahina kaipuhan magin saro na balidong titulo.',
+'mergehistory-autocomment' => 'Pinagtiripon [[:$1]] na magin [[:$2]]',
+'mergehistory-comment' => 'Pinagtiripon [[:$1]] na magin [[:$2]]: $3',
+'mergehistory-same-destination' => 'Gikanan asin destinasyong mga pahina dae puwedeng magkapareho',
+'mergehistory-reason' => 'Rason:',
 
 # Merge log
+'mergelog' => 'Talaan kan pagtiripon',
+'pagemerge-logentry' => 'pinagtiripon [[$1]] na magin [[$2]] (mga pagbabago sagkod sa $3)',
 'revertmerge' => 'Suwayón',
+'mergelogpagetext' => 'Sa ibaba yaon an sarong listahan kan pinakahuring mga pagtitiripon kan sarong pahinang historiya sagkod sa iba pa.',
 
 # Diffs
-'history-title' => 'Uusipón nin pagpakarháy kan "$1"',
+'history-title' => 'Pagbabagong historiya kan "$1"',
+'difference-title' => 'Pagkalaen sa tahaw nin mga pagbabago kan "$1"',
+'difference-title-multipage' => 'Pagkalaen sa tahaw nin mga pahina sa "$1" asin "$2"',
+'difference-multipage' => '(Pagkalaen sa tahaw kan mga pahina)',
 'lineno' => 'Taytáy $1:',
 'compareselectedversions' => 'Ikomparar an mga piniling bersyon',
+'showhideselectedversions' => 'Ihayag/itago mga piniling pagbabago',
 'editundo' => 'isulít',
-'diff-multi' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} dai ipinahihiling.)',
+'diff-multi' => '({{PLURAL:$1|Saro intermediate na pagbabago|$1 mga intermediate na mga pagbabago}} by {{PLURAL:$2|sarong paragamit|$2 mga paragamit}} dae pinaghahayag)',
+'diff-multi-manyusers' => '({{PLURAL:$1|Sarong intermediate na pagbabago|$1 mga intermediate na mga pagbabago}} na sobra sa $2 {{PLURAL:$2|paragamit|mga paragamit}} dae pinaghahayag)',
 
 # Search results
 'searchresults' => 'Resulta kan paghánap',
 'searchresults-title' => 'Hanápon an resulta para sa "$1"',
 'searchresulttext' => 'Para sa iba pang impormasyon manonongod sa paghanap sa {{SITENAME}}, hilingon tabî an [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => "Hinanap mo an '''[[:$1]]'''",
+'searchsubtitle' => 'Ika naghanap para sa \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|gabos na mga pahina na nagpopoon sa "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|gabos na mga pahina na nakatakod sa "$1"]])',
 'searchsubtitleinvalid' => "Hinanap mo an '''$1'''",
 'toomanymatches' => 'Kadakol-dakol na angay an ipigbalik, probaran an ibang kahaputan',
 'titlematches' => 'Angay an título kan artíkulo',
@@ -878,12 +1133,33 @@ An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong
 'savedprefs' => 'Itinagama na an mga kabôtan mo.',
 'timezonelegend' => 'Zona nin oras',
 'localtime' => 'Lokal na oras',
-'servertime' => "Oras kan ''server''",
+'timezoneuseserverdefault' => 'Gamita an panugmad sa wiki ($1)',
+'timezoneuseoffset' => 'Iba pa (ihayag an pambawi)',
+'timezoneoffset' => 'Bawia¹:',
+'servertime' => 'Oras kan serbidor:',
 'guesstimezone' => "Bugtakan an ''browser''",
+'timezoneregion-africa' => 'Aprika',
+'timezoneregion-america' => 'Amerika',
+'timezoneregion-antarctica' => 'Antartika',
+'timezoneregion-arctic' => 'Arktik',
+'timezoneregion-asia' => 'Asya',
+'timezoneregion-atlantic' => 'Atlantikong Kadagatan',
+'timezoneregion-australia' => 'Australya',
+'timezoneregion-europe' => 'Europa',
+'timezoneregion-indian' => 'Indiyang Kadagatan',
+'timezoneregion-pacific' => 'Pasipikong Kadagatan',
 'allowemail' => "Togotan an mga ''e''-surat halî sa ibang mga parágamit",
-'defaultns' => 'Maghilíng mûna sa ining mga ngaran-espacio:',
+'prefs-searchoptions' => 'Pagpipilian sa Paghahanap',
+'prefs-namespaces' => 'Pangarang mga espasyo',
+'defaultns' => 'Kun laen maghanap sa laog kaining pangarang mga espasyo:',
 'default' => 'pwestong normal',
 'prefs-files' => 'Mga dokumento',
+'prefs-custom-css' => 'Kustombreng CSS',
+'prefs-custom-js' => 'Kustombreng JavaScript',
+'prefs-common-css-js' => 'Pinagheras na CSS/JavaScript para sa gabos na mga kalapatan:',
+'prefs-reset-intro' => 'Ika makakagamit kaining pahina tanganing ilapat giraray an saimong mga kabotan sa panugmad kan sayt.
+Ini dae tabi matitingkog.',
+'prefs-emailconfirm-label' => 'Kumpirmasyon sa E-koreo',
 'youremail' => 'E-koreo:',
 'username' => 'Pangaran kan parágamit:',
 'uid' => 'ID kan parágamit:',
index c64ce26..b5b0380 100644 (file)
@@ -612,6 +612,8 @@ $1',
 'badarticleerror' => 'Гэтае дзеяньне немагчыма выканаць на гэтай старонцы.',
 'cannotdelete' => 'Немагчыма выдаліць старонку альбо файл «$1». Магчыма, яна ўжо выдаленая кімсьці іншым.',
 'cannotdelete-title' => 'Немагчыма выдаліць старонку «$1»',
+'delete-hook-aborted' => 'Выдаленьне скасаванае працэдурай-перахопнікам.
+Тлумачэньняў не было.',
 'badtitle' => 'Няслушная назва',
 'badtitletext' => 'Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці інтэрвікі-назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.',
 'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.',
@@ -3859,6 +3861,8 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'api-error-empty-file' => 'Дасланы Вамі файл быў пусты.',
 'api-error-emptypage' => 'Стварэньне новых пустых старонак забаронена.',
 'api-error-fetchfileerror' => 'Унутраная памылка: падчас атрыманьня файла штосьці здарылася.',
+'api-error-fileexists-forbidden' => 'Файл з назвай «$1» ужо існуе і ня можа быць перазапісаны.',
+'api-error-fileexists-shared-forbidden' => 'Файл з назвай «$1» ужо існуе ў супольным сховішчы файлаў і ня можа быць перазапісаны.',
 'api-error-file-too-large' => 'Дасланы Вамі файл занадта вялікі.',
 'api-error-filename-tooshort' => 'Назва файла занадта кароткая.',
 'api-error-filetype-banned' => 'Гэты тып файла забаронены.',
index 6123d41..6f92811 100644 (file)
@@ -777,7 +777,7 @@ Bitte versuche es in ein paar Minuten erneut.',
 'editinginterface' => "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.
 Änderungen auf dieser Seite wirken sich auf die Benutzeroberfläche aus.
 Ziehe bitte im Fall von Übersetzungen in Betracht, diese bei [//translatewiki.net/wiki/Main_Page?setlang=de translatewiki.net], der Lokalisierungsplattform für MediaWiki, durchzuführen.",
-'sqlhidden' => '(SQL-Abfrage versteckt)',
+'sqlhidden' => "''Die SQL-Datenbankabfrage ist verborgen.''",
 'cascadeprotected' => 'Diese Seite ist zur Bearbeitung gesperrt. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, die mittels der Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}:
 $2',
 'namespaceprotected' => "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
index 1bdbe2d..2fc5505 100644 (file)
@@ -581,7 +581,7 @@ $1',
 'nstab-mediawiki' => 'Mesac',
 'nstab-template' => 'Şablon',
 'nstab-help' => 'Pela peşti',
-'nstab-category' => 'Kategori',
+'nstab-category' => 'Kategoriye',
 
 # Main script and global functions
 'nosuchaction' => 'Fealiyeto wınasi çıniyo',
@@ -2108,7 +2108,7 @@ Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gı
 'booksources-invalid-isbn' => 'ISBN raşt nêasena bıewnê çımeyê orjinali, raşt kopya biya nê nêbiyaya?',
 
 # Special:Log
-'specialloguserlabel' => 'Weskedar:',
+'specialloguserlabel' => 'Kerdoğ:',
 'speciallogtitlelabel' => 'Menzil (sernuşte yana karber):',
 'log' => 'Qeydi',
 'all-logs-page' => 'Loganê umum yê hemî',
@@ -3330,7 +3330,7 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-writer' => 'Nuştekar',
 'exif-languagecode' => 'Zıwan',
 'exif-iimversion' => 'Verqaydê IIM',
-'exif-iimcategory' => 'Kategori',
+'exif-iimcategory' => 'Kategoriye',
 'exif-iimsupplementalcategory' => 'Oleyê Kategoriyan',
 'exif-datetimeexpires' => 'No peyra mekarênê',
 'exif-datetimereleased' => 'Bıroşe',
index 77b05aa..40b1b11 100644 (file)
@@ -1370,6 +1370,7 @@ indekso pro troŝarĝita servilo. Intertempe, vi povas serĉi per <i>guglo</i> a
 'prefs-beta' => 'Ecoj de Beta',
 'prefs-datetime' => 'Dato kaj horo',
 'prefs-labs' => 'Ecoj el Laboratorio',
+'prefs-user-pages' => 'Uzanto paĝoj',
 'prefs-personal' => 'Uzanta profilo',
 'prefs-rc' => 'Lastaj ŝanĝoj',
 'prefs-watchlist' => 'Atentaro',
index 3556933..1ce4396 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author -jem-
  * @author Aleator
  * @author Alhen
  * @author Alpertron
@@ -768,7 +769,7 @@ No olvides personalizar [[Special:Preferences|tus preferencias]].',
 'notloggedin' => 'No has iniciado sesión',
 'nologin' => '¿No tienes una cuenta? $1.',
 'nologinlink' => 'Crear una cuenta',
-'createaccount' => 'Crear cuenta',
+'createaccount' => 'Crear una cuenta',
 'gotaccount' => '¿Ya tienes una cuenta? $1.',
 'gotaccountlink' => 'Entrar',
 'userlogin-resetlink' => '¿Olvidaste tus datos de acceso?',
index 734b00c..eea2d63 100644 (file)
@@ -438,7 +438,7 @@ $messages = array(
 'tog-hidepatrolled' => 'ویرایش‌های گشت‌خورده از فهرست تغییرات اخیر پنهان شوند',
 'tog-newpageshidepatrolled' => 'صفحه‌های نهگبانی‌شده از فهرست صفحه‌های تازه پنهان شوند',
 'tog-extendwatchlist' => 'گسترش فهرست پی‌گیری‌ها برای نمایش همهٔ تغییرات، نه فقط آخرین‌ها',
-'tog-usenewrc' => 'از تغییرات اخیر گسترش‌یافته استفاده شود (نیازمند جاوااسکریپت)',
+'tog-usenewrc' => 'گروه تغییرات بر پایه صفحه در تغییرات اخیر و فهرست پیگیری‌ها (نیازمند جاوااسکریپت)',
 'tog-numberheadings' => 'شماره‌گذاری خودکار عنوان‌ها',
 'tog-showtoolbar' => 'نوار ابزار جعبهٔ ویرایش نمایش یابد (نیازمند جاوااسکریپت)',
 'tog-editondblclick' => 'ویرایش صفحه‌ها با دوکلیک (نیازمند جاوااسکریپت)',
@@ -795,6 +795,8 @@ $1',
 'cannotdelete' => 'امکان حذف صفحه یا تصویر «$1» وجود ندارد.
 ممکن است قبلاً فرد دیگری آن را حذف کرده باشد.',
 'cannotdelete-title' => 'نمی‌توان صفحهٔ «$1» را حذف کرد',
+'delete-hook-aborted' => 'ویرایش توسط قلاب لغو شد.
+توضیحی در این مورد داده نشد.',
 'badtitle' => 'عنوان بد',
 'badtitletext' => 'عنوان درخواستی نامعتبر، خالی، یا عنوانی میان‌زبانی یا میان‌ویکی‌ای با پیوند نادرست بود.
 ممکن است حاوی یک یا چند نویسه باشد که نمی‌توانند در عنوان‌ها استفاده شوند.',
@@ -831,6 +833,8 @@ $2',
 مدیری که آن را قفل کرده چنین توضیحی را ذکر کرده:  ''$3''.",
 'invalidtitle-knownnamespace' => 'عنوان نامعتبر با فضای نام «$2» و متن «$3»',
 'invalidtitle-unknownnamespace' => 'عنوان نامعتبر با فضای نام ناشناختهٔ شمارهٔ $1 و متن «$2»',
+'exception-nologin' => 'به سامانه وارد نشده‌اید',
+'exception-nologin-text' => 'در این ویکی انجام این عمل نیازمند وارد شدن به سیستم  است.',
 
 # Virus scanner
 'virus-badscanner' => "پیکربندی بد: پویشگر ویروس ناشناخته: ''$1''",
@@ -4148,6 +4152,8 @@ $5
 'api-error-empty-file' => 'پرونده‌ای که شما ارسال کردید خالی بود.',
 'api-error-emptypage' => 'ایجاد صفحه‌های خالی مجاز نیست.',
 'api-error-fetchfileerror' => 'خطای داخلی: در هنگام گرفتن پرونده، یک چیزی درست پیش نرفت.',
+'api-error-fileexists-forbidden' => 'یک پرونده با نام "$1" موجود است و امکان بازنویسی نیست.',
+'api-error-fileexists-shared-forbidden' => 'یک پرونده با نام "$1" در انبار اشتراک پرونده موجود است و امکان بازنویسی نیست.',
 'api-error-file-too-large' => 'پرونده‌ای که شما ارسال کردید بیش از اندازه بزرگ بود.',
 'api-error-filename-tooshort' => 'نام پرونده بیش از اندازه کوتاه است.',
 'api-error-filetype-banned' => 'این نوع پرونده ممنوع است.',
index 5f3fc9c..a101aaf 100644 (file)
@@ -312,59 +312,59 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Solegnér los lims :',
 'tog-justify' => 'Èxplicar los paragrafos',
-'tog-hideminor' => 'Cachiér los petiôts changements des dèrriérs changements',
-'tog-hidepatrolled' => 'Cachiér los changements survelyês des dèrriérs changements',
-'tog-newpageshidepatrolled' => 'Cachiér les pâges survelyês de la lista de les pâges novèles',
+'tog-hideminor' => 'Cachiér los petiôts changements dedens los dèrriérs changements',
+'tog-hidepatrolled' => 'Cachiér los changements survelyês dedens los dèrriérs changements',
+'tog-newpageshidepatrolled' => 'Cachiér les pâges survelyês entre-mié les pâges novèles',
 'tog-extendwatchlist' => 'Ètendre la lista de survelyence por fâre vêre tôs los changements et pas solament los ples novéls',
 'tog-usenewrc' => 'Rassemblar los changements per pâge dedens los dèrriérs changements et la lista de survelyence (at fôta de JavaScript)',
-'tog-numberheadings' => 'Numerotar ôtomaticament los titros de sèccions',
-'tog-showtoolbar' => 'Montrar la bârra d’outils d’èdicion (at fôta de JavaScript)',
-'tog-editondblclick' => 'Doblo-clicar pèrmèt de changiér una pâge (at fôta de JavaScript)',
-'tog-editsection' => 'Activar los lims « [changiér] » por changiér una sèccion',
-'tog-editsectiononrightclick' => 'Fâre un clic drêt sur un titro de sèccion pèrmèt de changiér ceta (at fôta de JavaScript)',
+'tog-numberheadings' => 'Numerotar ôtomaticament los titros de sèccion',
+'tog-showtoolbar' => 'Fâre vêre la bârra d’outils de changement (at fôta de JavaScript)',
+'tog-editondblclick' => 'Changiér des pâges sur doblo-clic (at fôta de JavaScript)',
+'tog-editsection' => 'Activar lo changement de sèccions avouéc los lims « [changiér] »',
+'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)',
 'tog-showtoc' => 'Fâre vêre la trâbla de les matiéres (por les pâges qu’ont més de 3 sèccions)',
-'tog-rememberpassword' => 'Sè rapelar de mon branchement sur ceti navigator (por $1 jorn{{PLURAL:$1||s}} u més)',
+'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por $1 jorn{{PLURAL:$1||s}} u més)',
 'tog-watchcreations' => 'Apondre les pâges que fé a ma lista de survelyence',
 'tog-watchdefault' => 'Apondre les pâges que chanjo a ma lista de survelyence',
 'tog-watchmoves' => 'Apondre les pâges que renomo a ma lista de survelyence',
 'tog-watchdeletion' => 'Apondre les pâges que suprimo a ma lista de survelyence',
-'tog-minordefault' => 'Marcar per dèfôt mos changements coment petiôts',
-'tog-previewontop' => 'Montrar la prèvisualisacion en-dessus de la bouèta d’èdicion',
-'tog-previewonfirst' => 'Montrar la prèvisualisacion pendent la premiére èdicion',
+'tog-minordefault' => 'Marcar per dèfôt tôs los changements coment petiôts',
+'tog-previewontop' => 'Fâre vêre la prèvisualisacion en-dessus de la zona de changement',
+'tog-previewonfirst' => 'Fâre vêre la prèvisualisacion pendent lo premiér changement',
 'tog-nocache' => 'Dèsactivar lo cache de les pâges per lo navigator',
-'tog-enotifwatchlistpages' => 'M’avèrtir per mèssageria èlèctronica quand una pâge de ma lista de survelyence est changiê',
-'tog-enotifusertalkpages' => 'M’avèrtir per mèssageria èlèctronica quand ma pâge de discussion est changiê',
-'tog-enotifminoredits' => 'M’avèrtir per mèssageria èlèctronica mémo en câs de petiôts changements',
-'tog-enotifrevealaddr' => 'Fâre vêre mon adrèce èlèctronica dens los mèssâjos d’avèrtissement',
-'tog-shownumberswatching' => 'Fâre vêre lo nombro d’usanciérs que siuvont les pâges',
+'tog-enotifwatchlistpages' => 'Mè mandar un mèssâjo quand na pâge de ma lista de survelyence est changiê',
+'tog-enotifusertalkpages' => 'Mè mandar un mèssâjo quand ma pâge de discussion est changiê',
+'tog-enotifminoredits' => 'Mè mandar un mèssâjo mémo en câs de petiôts changements de les pâges',
+'tog-enotifrevealaddr' => 'Fâre vêre mon adrèce èlèctronica dens los mèssâjos de notificacion',
+'tog-shownumberswatching' => 'Fâre vêre lo nombro d’utilisators que siuvont na pâge',
 'tog-oldsig' => 'Signatura ègzistenta :',
 'tog-fancysig' => 'Trètar la signatura coment de vouiquitèxto (sen lim ôtomatico)',
-'tog-externaleditor' => 'Utilisar per dèfôt un èditor de tèxto de defôr (solament por los usanciérs avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
-'tog-externaldiff' => 'Utilisar per dèfôt un comparator de defôr (solament por los usanciérs avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
-'tog-showjumplinks' => 'Activar los lims « navigacion » et « rechèrche » d’amont la pâge',
+'tog-externaleditor' => 'Utilisar per dèfôt un changior de tèxto de defôr (solament por los utilisators avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
+'tog-externaldiff' => 'Utilisar per dèfôt un comparator de defôr (solament por los utilisators avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
+'tog-showjumplinks' => 'Activar los lims d’accèssibilitât « {{int:jumpto}} »',
 'tog-uselivepreview' => 'Utilisar l’apèrçu vito fêt (at fôta de JavaScript) (èxpèrimentâl)',
 'tog-forceeditsummary' => 'M’avèrtir quand j’é pas spècefiâ de rèsumâ de changement',
-'tog-watchlisthideown' => 'Cachiér mos prôpros changements dens la lista de survelyence',
-'tog-watchlisthidebots' => 'Cachiér los changements fêts per des bots dens la lista de survelyence',
-'tog-watchlisthideminor' => 'Cachiér los petiôts changements dens la lista de survelyence',
-'tog-watchlisthideliu' => 'Cachiér los changements fêts per des usanciérs branchiês dens la lista de survelyence',
-'tog-watchlisthideanons' => 'Cachiér los changements fêts per des usanciérs pas encartâs dens la lista de survelyence',
-'tog-watchlisthidepatrolled' => 'Cachiér los changements survelyês dens la lista de survelyence',
-'tog-nolangconversion' => 'Dèsactivar la convèrsion de les variantes de lengoua',
-'tog-ccmeonemails' => 'Mè mandar una copia des mèssâjos que mando ux ôtros usanciérs',
-'tog-diffonly' => 'Pas montrar lo contegnu de les pâges desot los difs',
+'tog-watchlisthideown' => 'Cachiér mos prôpros changements dedens la lista de survelyence',
+'tog-watchlisthidebots' => 'Cachiér los changements fêts per des bots dedens la lista de survelyence',
+'tog-watchlisthideminor' => 'Cachiér los petiôts changements dedens la lista de survelyence',
+'tog-watchlisthideliu' => 'Cachiér los changements fêts per des utilisators branchiês dedens la lista de survelyence',
+'tog-watchlisthideanons' => 'Cachiér los changements fêts per des utilisators anonimos dedens la lista de survelyence',
+'tog-watchlisthidepatrolled' => 'Cachiér los changements survelyês dedens la lista de survelyence',
+'tog-nolangconversion' => 'Dèsactivar la convèrsion de les variantes lengouistiques',
+'tog-ccmeonemails' => 'Mè mandar na copia des mèssâjos que mando ux ôtros utilisators',
+'tog-diffonly' => 'Pas fâre vêre lo contegnu de les pâges desot los difs',
 'tog-showhiddencats' => 'Fâre vêre les catègories cachiês',
-'tog-noconvertlink' => 'Dèsactivar la convèrsion des titros',
-'tog-norollbackdiff' => 'Pas montrar lo dif pendent una rèvocacion',
+'tog-noconvertlink' => 'Dèsactivar la convèrsion des titros des lims',
+'tog-norollbackdiff' => 'Pas fâre vêre lo dif pendent na rèvocacion',
 
-'underline-always' => 'tojorn',
-'underline-never' => 'jamés',
-'underline-default' => 'd’aprés lo navigator',
+'underline-always' => 'Tojorn',
+'underline-never' => 'Jamés',
+'underline-default' => 'Valor per dèfôt du navigator',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'Stilo de la police de la bouèta d’èdicion :',
+'editfont-style' => 'Stilo de police de la zona de changement :',
 'editfont-default' => 'Celi du navigator per dèfôt',
-'editfont-monospace' => 'Police monoèspâciê',
+'editfont-monospace' => 'Police de chace fixa',
 'editfont-sansserif' => 'Police sen empiotament',
 'editfont-serif' => 'Police avouéc empiotaments',
 
@@ -422,18 +422,18 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => 'Catègorie{{PLURAL:$1||s}}',
-'category_header' => 'Pâges dens la catègorie « $1 »',
+'category_header' => 'Pâges dedens la catègorie « $1 »',
 'subcategories' => 'Sot-catègories',
-'category-media-header' => 'Fichiérs mèdia dens la catègorie « $1 »',
-'category-empty' => "''Ora, ceta catègorie contint gins de pâge ou ben de fichiér mèdia.''",
+'category-media-header' => 'Fichiérs mèdia dedens la catègorie « $1 »',
+'category-empty' => "''Ora, ceta catègorie contint gins de pâge ou de fichiér mèdia.''",
 'hidden-categories' => '{{PLURAL:$1|Catègorie cachiê|Catègories cachiês}}',
 'hidden-category-category' => 'Catègories cachiês',
-'category-subcat-count' => 'Ceta catègorie at {{PLURAL:$2|ren que la sot-catègorie|$2 sot-catègories, que {{PLURAL:$1|cela|les $1}}}} ce-desot.',
-'category-subcat-count-limited' => 'Ceta catègorie at {{PLURAL:$1|la sot-catègorie|les $1 sot-catègories}} ce-desot.',
-'category-article-count' => 'Ceta catègorie contint {{PLURAL:$2|ren que la pâge|$2 pâges, que {{PLURAL:$1|cela|les $1}}}} ce-desot.',
-'category-article-count-limited' => '{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dens la presenta catègorie.',
-'category-file-count' => 'Ceta catègorie contint {{PLURAL:$2|ren que lo fichiér|$2 fichiérs, que {{PLURAL:$1|celi|los $1}}}} ce-desot.',
-'category-file-count-limited' => '{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dens la presenta catègorie.',
+'category-subcat-count' => 'Cela catègorie-que at {{PLURAL:$2|ren que ceta sot-catègorie.|{{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}, sur na soma de $2.}}',
+'category-subcat-count-limited' => 'Cela catègorie-que at {{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}.',
+'category-article-count' => '{{PLURAL:$2|Cela catègorie-que contint ren que ceta pâge.|{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens cela catègorie-que, sur na soma de $2.}}',
+'category-article-count-limited' => '{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens la presenta catègorie.',
+'category-file-count' => '{{PLURAL:$2|Cela catègorie-que contint ren que ceti fichiér.|{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens cela catègorie-que, sur na soma de $2.}}',
+'category-file-count-limited' => '{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens la presenta catègorie.',
 'listingcontinuesabbrev' => '(suita)',
 'index-category' => 'Pâges endèxâs',
 'noindex-category' => 'Pâges pas endèxâs',
@@ -441,7 +441,7 @@ $messages = array(
 
 'about' => 'A propôs',
 'article' => 'Pâge de contegnu',
-'newwindow' => '(ôvre una fenétra novèla)',
+'newwindow' => '(ôvre na fenétra novèla)',
 'cancel' => 'Anular',
 'moredotdotdot' => 'Et ples...',
 'mypage' => 'Ma pâge',
index cc7d962..c606b86 100644 (file)
@@ -154,7 +154,7 @@ $messages = array(
 'tog-hidepatrolled' => 'હાલના સલામતી માટે કરવામાં આવેલાં થયેલા ફેરફારો છુપાવો.',
 'tog-newpageshidepatrolled' => 'નવાં પાનાંની યાદીમાંથી દેખરેખ હેઠળનાં પાનાં છુપાવો',
 'tog-extendwatchlist' => 'ધ્યાનસૂચિને વિસ્તૃત કરો જેથી,ફક્ત તાજેતરનાજ નહીં, બધા આનુષાંગિક ફેરફારો જોઇ શકાય',
-'tog-usenewrc' => 'તાજેતરનાં વર્ધિત ફેરફારો (જાવાસ્ક્રીપ્ટ જરૂરી)',
+'tog-usenewrc' => 'તાજેતરનાં વર્ધિત ફેરફારો વાપરો(જાવાસ્ક્રીપ્ટ જરૂરી)',
 'tog-numberheadings' => 'મથાળાંઓને આપો-આપ ક્રમ (ઑટો નંબર) આપો',
 'tog-showtoolbar' => 'ફેરફારો માટેનો ટૂલબાર બતાવો (જાવા સ્ક્રિપ્ટ)',
 'tog-editondblclick' => 'ડબલ ક્લિક દ્વારા ફેરફાર કરો (જાવાસ્ક્રિપ્ટ જરૂરી)',
@@ -868,7 +868,7 @@ $2
 'yourtext' => 'તમારું લખાણ',
 'storedversion' => 'રક્ષિત પુનરાવર્તન',
 'nonunicodebrowser' => "'''ચેતવણી: તમારું બ્રાઉઝર યુનિકોડ ઉકેલવા સક્ષમ નથી.'''
-àª\85હà«\80àª\82 àª¤àª®à«\87 àª¸à«\81રàª\95à«\8dષà«\80ત àª°à«\80તà«\87 àª«à«\87રફરà«\8b àª¨àª¹à«\80àª\82 àª\95રà«\80 àª¶àª\95à«\8b: ASCII àª¸àª¿àªµàª¾àª¯àª¨àª¾ àª\85àª\95à«\8dષરà«\8b àª«à«\87રફાર ચોકઠામાં હેક્સાડેસિમલ સ્વરૂપે દેખાશે.",
+àª\85હà«\80àª\82 àª¤àª®à«\87 àª¸à«\81રàª\95à«\8dષિત àª°à«\80તà«\87 àª«à«\87રફારà«\8b àª¨àª¹à«\80àª\82 àª\95રà«\80 àª¶àª\95à«\8b: ASCII àª¸àª¿àªµàª¾àª¯àª¨àª¾ àª\85àª\95à«\8dષરà«\8b àª¸àª\82પાદન ચોકઠામાં હેક્સાડેસિમલ સ્વરૂપે દેખાશે.",
 'editingold' => "'''ચેતવણી: તમે કાલાતિત ફેરફારો ને બદલી રહ્યાં છો.'''
 જો તમે તેને સાચવશો , વચમાં થયેલ ફેરફારો સાચવી ન શકાય.",
 'yourdiff' => 'ભેદ',
@@ -890,9 +890,9 @@ $2
 તમારા સંદર્ભ માટે તાજેતરની લોગ યાદિ આપી છે:",
 'semiprotectedpagewarning' => "'''નોંધ : આ પાના પર સંરક્ષણ વિકલ્પ સક્રીય છે અને માત્ર પ્રબંધકો જ આમાં ફેરફાર કરી શકે.'''
 તમારા સંદર્ભ માટે તાજેતરની લોગ યાદિ આપી છે:",
-'cascadeprotectedwarning' => "'''àª\9aà«\87તવણà«\80:''' àª\86 àªªàª¾àª¨à«\81àª\82 àª¸àª\82રàª\95à«\8dષà«\80ત àª\9bà«\87.  àªªà«\8dરબàª\82ધન àª\85ધિàª\95ાર àª§àª°àª¾àªµàª¤àª¾ àª¸àª­à«\8dયà«\8bàª\9c àª\86માàª\82 àª«à«\87રફાર àª\95રà«\80 àª¶àª\95à«\87 àª\9bà«\87. àª\86 àªªàª¾àª¨àª¾àª¨à«\87 àª¨à«\80àª\9aà«\87ના àªªàª\97થિયામય àª¸àª\82રàª\95à«\8dષણ{{PLURAL:$1|page|pages}} àª¦à«\8dવારા àª¸à«\81રàª\95à«\8dષà«\80ત છે.",
-'titleprotectedwarning' => "'''ચેતવણી:  આ પાનું સંરક્ષીત છે  આની રચના માટે [[Special:ListGroupRights|specific rights]] ની જરૂર છે.'''
-તà«\87 àª¸àª\82બàª\82ધà«\80 àª¤àª¾àª\9cà«\87તરનà«\80 àª«à«\87રફાર àª¯àª¾àª¦àª¿ તમારા સંદર્ભ માટે આપેલી છે:",
+'cascadeprotectedwarning' => "'''àª\9aà«\87તવણà«\80:''' àª\86 àªªàª¾àª¨à«\81àª\82 àª¸àª\82રàª\95à«\8dષિત àª\9bà«\87. àªªà«\8dરબàª\82ધન àª\85ધિàª\95ાર àª§àª°àª¾àªµàª¤àª¾ àª¸àª­à«\8dયà«\8b àª\9c àª\86માàª\82 àª«à«\87રફાર àª\95રà«\80 àª¶àª\95à«\87 àª\9bà«\87. àª\86 àªªàª¾àª¨à«\81àª\82 àª¨à«\80àª\9aà«\87ના àªªàª\97થિયામય àª¸àª\82રàª\95à«\8dષણ{{PLURAL:$1|પાના|પાનાàª\93}} àª¦à«\8dવારા àª¸à«\81રàª\95à«\8dષિત છે.",
+'titleprotectedwarning' => "'''ચેતવણી: આ પાનું સંરક્ષિત છે આથી આની રચના માટે [[Special:ListGroupRights|વિશેષ અધિકારો]]ની જરૂર છે.'''
+તà«\87 àª¸àª\82બàª\82ધà«\80 àª¤àª¾àª\9cà«\87તરનà«\80 àª«à«\87રફાર àª¯àª¾àª¦à«\80 તમારા સંદર્ભ માટે આપેલી છે:",
 'templatesused' => 'આ પાનામાં વપરાયેલ {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}}:',
 'templatesusedpreview' => 'આ પૂર્વાવલોકનમાં વપરાયેલ {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}}:',
 'templatesusedsection' => 'આ ખંડ માં વપરાયેલા {{PLURAL:$1|ઢાંચો|ઢાંચા}} :',
@@ -1083,8 +1083,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'દાબ નોંધ',
-'suppressionlogtext' => 'નà«\80àª\9aà«\87 àªªà«\8dરબàª\82ધàª\95à«\8bથà«\80 àª\9bà«\81પાયà«\87લ àª\8fવા àª¹àª\9fાવ àª\85નà«\87 àª°à«\8bàª\95નà«\80 àª¯àª¾àª¦àª¿ આપેલી છે.
-હાલમાં સક્રીય એવા  પ્રતિબંધ અને રોકની યાદિ અહીં [[Special:BlockList|IP block list]]  આપેલ છે.',
+'suppressionlogtext' => 'નà«\80àª\9aà«\87 àªªà«\8dરબàª\82ધàª\95à«\8bથà«\80 àª\9bà«\81પાયà«\87લ àª\8fવા àª¹àª\9fાવ àª\85નà«\87 àª°à«\8bàª\95નà«\80 àª¯àª¾àª¦à«\80 આપેલી છે.
+હાલમાં સક્રીય એવા પ્રતિબંધ અને રોકની યાદિ [[Special:BlockList|અહીં]] આપેલ છે.',
 
 # History merging
 'mergehistory' => 'પાનાનાં ઇતિહાસોનું વિલીનીકરણ',
@@ -1409,7 +1409,7 @@ HTML નાકું ચકાસો',
 'right-ipblock-exempt' => 'IP દ્વારા, સ્વયં ચાલિત રીતે અને સમૂહ રોકને અવગનીને આગળ વધો',
 'right-proxyunbannable' => 'અવેજીના અવયંચાલિત ખંડોને ટાળો',
 'right-unblockself' => 'તેમને જાતે અપ્રતિબંધિત થવા દો',
-'right-protect' => 'સàª\82રàª\95à«\8dષણ àª¸à«\8dતર àª¬àª¦àª²à«\8b àª\85નà«\87 àª¸àª\82રàª\95à«\8dષà«\80ત àªªàª¾àª¨àª¾માં ફેરફાર કરો.',
+'right-protect' => 'સàª\82રàª\95à«\8dષણ àª¸à«\8dતર àª¬àª¦àª²à«\8b àª\85નà«\87 àª¸àª\82રàª\95à«\8dષિત àªªàª¾àª¨àª¾àª\93માં ફેરફાર કરો.',
 'right-editprotected' => 'સંરક્ષિત પાનામાં ફેરફાર કરો (પગથિયામય સુરક્ષા વગર)',
 'right-editinterface' => 'સભ્ય સંભાષણ પટલમાં ફેરફાર કરો',
 'right-editusercssjs' => 'અન્ય સભ્યોની CSS અને JavaScript ફાઇલમાં ફેરફાર કરો',
@@ -1959,8 +1959,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'protectedpages-indef' => 'ફક્ત અનિશ્ચિત સુરક્ષા ધરાવતા પાના',
 'protectedpages-cascade' => 'માત્ર પગથિયામય સુરક્ષા વાળા પગ',
 'protectedpagestext' => 'નીચેના પાના કોઈ ફેરફાર કે હટાવવા થી સુરકક્ષીત કરાયા છે',
-'protectedpagesempty' => 'àª\86 àªµàª¿àª\95લà«\8dપà«\8b àª¦à«\8dવારા àª\95à«\8bàª\88 àªªàª¾àª¨àª¾ àª¸à«\81રàª\95à«\8dષà«\80ત àª\95રાયા àª¨àª¥à«\80',
-'protectedtitles' => 'સàª\82રàª\95à«\8dષà«\80ત શીર્ષકો',
+'protectedpagesempty' => 'àª\86 àªµàª¿àª\95લà«\8dપà«\8b àª¦à«\8dવારા àª\95à«\8bàª\88 àªªàª¾àª¨àª¾ àª¸à«\81રàª\95à«\8dષિત àª\95રાયા àª¨àª¥à«\80.',
+'protectedtitles' => 'સàª\82રàª\95à«\8dષિત શીર્ષકો',
 'protectedtitlestext' => 'આ શીર્ષકો રચના માટે આરક્ષીત છે',
 'protectedtitlesempty' => 'આ પરિબળો દ્વારા કોઇ પણ શીર્ષકો સચવાયા નથી.',
 'listusers' => 'સભ્યોની યાદી',
@@ -2325,8 +2325,8 @@ Deleting it may disrupt database operations of {{SITENAME}};',
 'restriction-upload' => 'ફાઇલ ચઢાવો',
 
 # Restriction levels
-'restriction-level-sysop' => 'સંપૂર્ણા સંરક્ષીત',
-'restriction-level-autoconfirmed' => 'àª\85રà«\8dધ àª¸àª\82રàª\95à«\8dષà«\80ત',
+'restriction-level-sysop' => 'સંપૂર્ણ સંરક્ષિત',
+'restriction-level-autoconfirmed' => 'àª\85રà«\8dધ àª¸àª\82રàª\95à«\8dષિત',
 'restriction-level-all' => 'કોઈ પણ સ્તર',
 
 # Undelete
@@ -2476,8 +2476,8 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'ipb-confirm' => 'પ્રતિબંધ પુષ્ટિ',
 'badipaddress' => 'અવૈધ IP સરનામું',
 'blockipsuccesssub' => 'સફળ પ્રતિબંધ મુકાયો',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] પરા રોક લગાવાઈ છે<br />
-રà«\8bàª\95 àª²àª\97ાવà«\87લ àª¸àª­à«\8dયà«\8bનà«\80 àª¯àª¾àª¦àª¿ [[Special:BlockList|IP block list]].',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] પર રોક લગાવાઈ છે.<br />
+સમà«\80àª\95à«\8dષા àª®àª¾àª\9fà«\87 [[Special:BlockList|રà«\8bàª\95 àª²àª\97ાવાયà«\87લ àª¸àª­à«\8dયà«\8bનà«\80 àª¯àª¾àª¦à«\80]] àª\9cà«\81àª\93.',
 'ipb-blockingself' => 'તમે પોતાના પર પ્રતિબંધ મુકવા જાઓ છો! શું તમે સાચેજમાં આ કરવા માગો છો?',
 'ipb-confirmhideuser' => 'તમે "સભ્ય છુપાવો" સક્રિય રાખીને આ સભ્ય પર પ્રતિબંધ મુકવા જઇ રહ્યાં છો. આના કારણે કોઇપણ યાદી કે નોંધમાં સભ્યનું નામ જોઇ નહી શકાય. શું તમે ખરેખર આમ કરવા માંગો છો?',
 'ipb-edit-dropdown' => 'પ્રતિબંધ કારણોમાં ફેરફાર કરો',
@@ -2530,9 +2530,9 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 રોક લગાવાયેલા સભ્યોની યાદિ આ મુજબ છે',
 'blocklogentry' => '[[$1]] પર પ્રતિબંધ $2 $3 સુધી મુકવામાં આવ્યો છે.',
 'reblock-logentry' => '[[$1]] ની પ્રતિબંધ વિકલ્પો બદલ્યા જે નો કલાતિત સમય છે   $2 $3',
-'blocklogtext' => 'àª\86 àª¸àª­à«\8dયà«\8b àªªàª° àª°à«\8bàª\95 àª²àª\97ાવવા àª\85નà«\87 àª¹àª\9fાવવા àª¸àª\82બàª\82ધિત àª¯àª¾àª¦àª¿ છે.
-સà«\8dવયàª\82àª\9aાલિત àª°à«\80તà«\87 àª°à«\8bàª\95 àª²àª\97ાવાયà«\87લ IP àª¸àª°àª¨àª¾àª®àª¾àª¨à«\80 àª¯àª¾àª¦àª¿ અહીં નથી આપી.
-હાલમાàª\82 àªªà«\8dરવરà«\8dતમાન àª°à«\8bàª\95 àª¨à«\80 àª¯àª¾àª¦àª¿ àª\85હà«\80àª\82 àª\9cà«\81àª\93 [[Special:BlockList|IP block list]].',
+'blocklogtext' => 'àª\86 àª¸àª­à«\8dયà«\8b àªªàª° àª°à«\8bàª\95 àª²àª\97ાવવા àª\85નà«\87 àª¹àª\9fાવવા àª¸àª\82બàª\82ધિત àª¯àª¾àª¦à«\80 છે.
+સà«\8dવયàª\82àª\9aાલિત àª°à«\80તà«\87 àª°à«\8bàª\95 àª²àª\97ાવાયà«\87લ IP àª¸àª°àª¨àª¾àª®àª¾àª¨à«\80 àª¯àª¾àª¦à«\80 અહીં નથી આપી.
+હાલમાàª\82 àªªà«\8dરવરà«\8dતમાન àªªà«\8dરતિબàª\82ધ àª\85નà«\87 àª°à«\8bàª\95 àª¨à«\80 [[Special:BlockList|યાદà«\80 àª\85હà«\80àª\82 àª\9cà«\81àª\93]].',
 'unblocklogentry' => '$1 પરનો પ્રતિબંધ ઉઠાવ્યો',
 'block-log-flags-anononly' => 'માત્ર અજ્ઞાત સભ્ય',
 'block-log-flags-nocreate' => 'ખાતું ખોલવા પર પ્રતિબંધ છે',
@@ -2798,7 +2798,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 
 # JavaScriptTest
 'javascripttest' => 'જાવા સ્ક્રીપ્ટ પરીક્ષણ',
-'javascripttest-disabled' => 'àª\86 àª¸à«\82તà«\8dર (ફàª\82àª\95શન) àª¨àª¿àª·à«\8dàª\95à«\8dરà«\80ય àª\95રાયà«\8b',
+'javascripttest-disabled' => 'àª\86 àª¸à«\82તà«\8dર (ફàª\82àª\95શન) àª\86 àªµàª¿àª\95િ àªªàª° àª\95ારà«\8dયરત àª\95રાયà«\87લà«\81àª\82 àª¨àª¥à«\80.',
 'javascripttest-title' => '$1 પરીક્ષણ જારી',
 'javascripttest-pagetext-noframework' => 'આ પાનું જાવા સ્ક્રીપ્ટ ચલાવવા આરક્ષિત છે.',
 'javascripttest-pagetext-unknownframework' => 'અજાણ ચકાસણી ફ્રેમવર્ક "$1".',
@@ -3196,7 +3196,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'exif-compression-3' => 'CCITT સમૂહ 3 ફેક્સ ઍનકોડિંગ',
 'exif-compression-4' => 'CCITT સમૂહ 3 ફેક્સ ઍનકોડિંગ',
 
-'exif-copyrighted-true' => 'પà«\8dરàª\95શન àª\85ધિàª\95ારથà«\80 àª¸à«\81રàª\95à«\8dષà«\80ત',
+'exif-copyrighted-true' => 'પà«\8dરàª\95ાશન àª\85ધિàª\95ારથà«\80 àª¸à«\81રàª\95à«\8dષિત',
 'exif-copyrighted-false' => 'સાર્વજનિક ડોમેન',
 
 'exif-unknowndate' => 'અજ્ઞાત તારીખ',
@@ -3595,6 +3595,7 @@ $5
 'version-software' => 'બેસાડેલા સોફ્ટવેર',
 'version-software-product' => 'ઉત્પાદ',
 'version-software-version' => 'આવૃત્તિ',
+'version-entrypoints-header-entrypoint' => 'પ્રવેશ સ્થળ',
 
 # Special:FilePath
 'filepath' => 'ફાઈલ પથ',
@@ -3788,6 +3789,10 @@ $5
 'duration-minutes' => '$1 {{PLURAL:$1|મિનિટ|મિનિટો}}',
 'duration-hours' => '$1 {{PLURAL:$1|કલાક|કલાકો}}',
 'duration-days' => '$1 {{PLURAL:$1|દિવસ|દિવસો}}',
+'duration-weeks' => '$1 {{PLURAL:$1|અઠવાડિયું|અઠવાડિયા}}',
 'duration-years' => '$1 {{PLURAL:$1|વર્ષ|વર્ષો}}',
+'duration-decades' => '$1 {{PLURAL:$1|દાયકો|દાયકાઓ}}',
+'duration-centuries' => '$1 {{PLURAL:$1|શતાબ્દી|શતાબ્દીઓ}}',
+'duration-millennia' => '$1 {{PLURAL:$1|સહસ્ત્રાબ્દી|સહસ્ત્રાબ્દીઓ}}',
 
 );
index dcddbe4..f2f3162 100644 (file)
@@ -712,7 +712,7 @@ $1',
 'cannotdelete' => 'לא ניתן היה למחוק את הדף או הקובץ "$1".
 ייתכן שהוא נמחק כבר על ידי מישהו אחר.',
 'cannotdelete-title' => 'לא ניתן למחוק את הדף "$1"',
-'delete-hook-aborted' => '×\94×\9e×\97×\99ק×\94 ×\91×\95×\98×\9c×\94 ×¢×\9cÖ¾×\99×\93×\99 ×\95×\95.
+'delete-hook-aborted' => '×\94×\9e×\97×\99ק×\94 ×\94×\95פסק×\94 ×¢×\9cÖ¾×\99×\93×\99 ×\9e×\91× ×\94 Hook.
 לא ניתן הסבר.',
 'badtitle' => 'כותרת שגויה',
 'badtitletext' => 'כותרת הדף המבוקש הייתה בלתי־תקינה, ריקה, או קישור שגוי לשפה אחרת או למיזם אחר.
@@ -3900,7 +3900,7 @@ $5
 'version-version' => '(גרסה $1)',
 'version-license' => 'רישיון',
 'version-poweredby-credits' => "אתר הוויקי הזה מופעל על ידי '''[//www.mediawiki.org/ מדיה־ויקי]''', © 2001–$1 $2.",
-'version-poweredby-others' => 'אחרים',
+'version-poweredby-others' => '[{{SERVER}}{{SCRIPTPATH}}/CREDITS אחרים]',
 'version-license-info' => "מדיה־ויקי היא תוכנה חופשית; באפשרותכם להפיץ אותה מחדש ו/או לשנות אותה לפי תנאי הרישיון הציבורי הכללי של גנו המפורסם על ידי המוסד לתוכנה חופשית: גרסה 2 של רישיון זה, או (לפי בחירתכם) כל גרסה מאוחרת יותר.
 
 מדיה־ויקי מופצת בתקווה שהיא תהיה שימושית, אך '''ללא כל הבטחה לאחריות'''; אפילו לא אחריות משתמעת של '''יכולת להיסחר''' או '''התאמה למטרה מסוימת'''. ראו את הרישיון הציבורי הכללי של גנו לפרטים נוספים.
index f71379d..45f8f94 100644 (file)
@@ -314,7 +314,7 @@ $linkTrail = '/^([a-záéíóúöüőűÁÉÍÓÚÖÜŐŰ]+)(.*)$/sDu';
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Hivatkozások aláhúzása:',
-'tog-justify' => 'Sorkizárt fejezetek',
+'tog-justify' => 'Bekezdések sorkizárása',
 'tog-hideminor' => 'Apró változtatások elrejtése a friss változtatások lapon',
 'tog-hidepatrolled' => 'Az ellenőrzött szerkesztések elrejtése a friss változtatások lapon',
 'tog-newpageshidepatrolled' => 'Ellenőrzött lapok elrejtése az új lapok listájáról',
index ce350d1..55fed59 100644 (file)
@@ -15,6 +15,7 @@
  * @author Togaed
  * @author Vacio
  * @author Xelgen
+ * @author Համլետ
  * @author לערי ריינהארט
  */
 
@@ -739,6 +740,9 @@ $2',
 Խնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։',
 'loginlanguagelabel' => 'Լեզու. $1',
 
+# E-mail sending
+'php-mail-error-unknown' => 'Անհայտ սխալ PHP-ի mail() ֆունկցիայում',
+
 # Change password dialog
 'resetpass' => 'Փոխել գաղտնաբառը',
 'resetpass_announce' => 'Դուք ներկայացել եք էլ-փոստով ստացված ժամանակավոր գաղտնաբառով։ Համակարգ մուտքի համար անհրաժեշտ է նոր գաղտնաբառ ընտրել այստեղ.',
@@ -758,12 +762,15 @@ $2',
 'resetpass-temp-password' => 'Ժամանակավոր գաղտնաբառ.',
 
 # Special:PasswordReset
+'passwordreset-legend' => 'Վերականգնել գաղտնաբառը',
 'passwordreset-username' => 'Մասնակցի անուն.',
 'passwordreset-emailelement' => 'Մասնակցային անուն. $1
 Ժամանակավոր գաղտնաբառ. $2',
 
 # Special:ChangeEmail
 'changeemail' => 'Փոխել էլ. հասցեն',
+'changeemail-submit' => 'Խմբագրել էլ․ հասցեն',
+'changeemail-cancel' => 'Չեղարկել',
 
 # Edit page toolbar
 'bold_sample' => 'Թավատառ տեքստ',
@@ -939,6 +946,7 @@ $2',
 'log-fulllog' => 'Դիտել ամբողջական տեղեկամատյանը',
 'edit-conflict' => 'Խմբագրման ընհարում։',
 'edit-no-change' => 'Ձեր խմբագրումը անտեսվել է, քանի որ ոչ մի փոփոխություն չի կատարվել տեքստի մեջ։',
+'defaultmessagetext' => 'Լռելյան տեքստը',
 
 # "Undo" feature
 'undo-success' => 'Խմբագրումը կարող է հետ շրջվել։ Ստուգեք տարբերակների համեմատությունը ստորև, որպեսզի համոզվեք, որ դա է ձեզ հետաքրքրող փոփոխությունը և մատնահարեք «Հիշել էջը»՝ գործողությունն ավարտելու համար։',
index da7acd7..4477f76 100644 (file)
@@ -3474,7 +3474,7 @@ I collegamenti successivi, sulla stessa riga, sono considerati come eccezioni (o
 'limitall' => 'tutti',
 
 # E-mail address confirmation
-'confirmemail' => 'Conferma indirizzo e-mail',
+'confirmemail' => 'Conferma indirizzo email',
 'confirmemail_noemail' => 'Non è stato indicato un indirizzo e-mail valido nelle proprie [[Special:Preferences|preferenze]].',
 'confirmemail_text' => "{{SITENAME}} richiede la verifica dell'indirizzo e-mail prima di poter usare le relative funzioni. Premere il pulsante qui sotto per inviare una richiesta di conferma al proprio indirizzo; nel messaggio è presente un collegamento che contiene un codice. Visitare il collegamento con il proprio browser per confermare che l'indirizzo e-mail è valido.",
 'confirmemail_pending' => "Il codice di conferma è già stato spedito via posta elettronica; se l'account è stato
index 765ebf6..50b14bb 100644 (file)
@@ -1062,7 +1062,7 @@ Cêr [$2 pela arezekerdena dosya de] arezekerdene asnina.',
 'booksources-go' => 'So',
 
 # Special:Log
-'specialloguserlabel' => 'Karber:',
+'specialloguserlabel' => 'Kerdoğ:',
 'speciallogtitlelabel' => 'Sernuste:',
 'log' => 'Qeydi',
 
index 003ed37..6e412ea 100644 (file)
@@ -1460,9 +1460,9 @@ $3 келтірілген себебі: ''$2''",
 'right-suppressredirect' => 'Тиісті атауға бетті жылжытқанда айдағышты жасамау',
 'right-upload' => 'Файлдарды жүктеу',
 'right-reupload' => 'Бар файл үстіне жазу',
-'right-reupload-own' => 'Өзі қотарып берген файл үстіне жазу',
+'right-reupload-own' => 'Өзі жүктеген файл үстіне жазу',
 'right-reupload-shared' => 'Таспа ортақ қоймасындағы файлдарды жергіліктілермен асыру',
-'right-upload_by_url' => 'Файлды URL мекенжайынан қотарып беру',
+'right-upload_by_url' => 'Файлды URL мекенжайдан жүктеу',
 'right-purge' => 'Бетті торап бүркемесінен құптаусыз тазарту',
 'right-autoconfirmed' => 'Жартылай қорғалған беттерді өңдеу',
 'right-bot' => 'Өздіктік үдеріс деп есептелу',
@@ -1492,7 +1492,7 @@ $3 келтірілген себебі: ''$2''",
 'right-markbotedits' => 'Шегіндірлген өңдемелерді боттардікі деп белгілеу',
 'right-noratelimit' => 'Еселік шектелімдері ықпал етпейді',
 'right-import' => 'Басқа уикилерден беттерді сырттан алу',
-'right-importupload' => 'Файл қотарып беруімен беттерді сырттан алу',
+'right-importupload' => 'Файлдарды жүктеу арқылы беттерді сырттан алу',
 'right-patrol' => 'Басқарардың өңдемелерін зерттелді деп белгілеу',
 'right-autopatrol' => 'Өз өңдемелерін зерттелді деп өздіктік белгілеу',
 'right-patrolmarks' => 'Жуықтағы өзгерістердегі зерттеу белгілерін көру',
@@ -1571,10 +1571,10 @@ $3 келтірілген себебі: ''$2''",
 'reuploaddesc' => 'Жүктеу пішініне қайта келу.',
 'upload-tryagain' => 'Файл сипаттамасының өзгерістерін жөнелту',
 'uploadnologin' => 'Кірмегенсіз',
-'uploadnologintext' => 'Файлдарды қотарып беру үшін [[{{#special:Userlogin}}|кіруіңіз]] жөн.',
+'uploadnologintext' => 'Файлдарды жүктеу үшін  [[Special:UserLogin|кіруіңіз]] жөн.',
 'upload_directory_missing' => 'Қотарып бермек қалтасы ($1) жетіспейді және веб-сервер жарата алмайды.',
 'upload_directory_read_only' => 'Қотарып бермек қалтасына ($1) веб-сервер жаза алмайды.',
-'uploaderror' => 'Қотарып беру қатесі',
+'uploaderror' => 'Жүктеу қатесі',
 'uploadtext' => "Төмендегі пішінді файлдарды қотарып беру үшін қолданыңыз.
 Алдында қотарылып берілген файлдарды қарау не іздеу үшін [[{{#special:FileList}}|қотарып берілген файлдар тізіміне]] барыңыз, тағы да қотарып беруі мен жоюы  [[{{#special:Log}}/upload|қотарып беру журналына]] жазылып алынады.
 
@@ -1634,7 +1634,7 @@ $3 келтірілген себебі: ''$2''",
 'uploadwarning' => 'Қотарып беру жөнінде құлақтандыру',
 'savefile' => 'Файлды сақтау',
 'uploadedimage' => '«[[$1]]» файлын жүктеді',
-'overwroteimage' => '«[[$1]]» файлынның жаңа нұсқасын қотарып берді',
+'overwroteimage' => '«[[$1]]» деген файлдың жаңа нұсқасын жүктеді',
 'uploaddisabled' => 'Қотарып беру өшірілген',
 'copyuploaddisabled' => 'URL арқылы жүктеу өшірілген.',
 'uploaddisabledtext' => '{{SITENAME}} жобасында файл қотарып беруі өшірілген.',
@@ -1756,7 +1756,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'mimesearch-summary' => 'Бұл бетте файлдарды MIME түрімен сүзгілеуі қосылған.
 Кірісі: мағлұмат_түрі/түр_тарауы, мысалы <tt>image/jpeg</tt>.',
 'mimetype' => 'MIME түрі:',
-'download' => 'қотарып алу',
+'download' => 'жүктеп алу',
 
 # Unwatched pages
 'unwatchedpages' => 'Бақыланылмаған беттер',
@@ -2128,7 +2128,7 @@ $2 соңғы нұсқасына өзгертті.',
 'restriction-edit' => 'Өңдеуге',
 'restriction-move' => 'Жылжытуға',
 'restriction-create' => 'Бастауға',
-'restriction-upload' => 'Қотарып беруге',
+'restriction-upload' => 'Жүктеу',
 
 # Restriction levels
 'restriction-level-sysop' => 'толықтай қорғалған',
@@ -2474,20 +2474,20 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'importsuccess' => 'Сырттан алу аяқталды!',
 'importhistoryconflict' => 'Тарихында қақтығысты түзету бар (бұл бет алдында сырттан алынған сияқты)',
 'importnosources' => 'Уики-апару үшін сырттан алынатын еш қайнар көзі анықталмаған, және тарихын тікелей қотарып беруі өшірілген.',
-'importnofile' => 'Сырттан алынған файл қотарып берілген жоқ.',
-'importuploaderrorsize' => 'Сырттан алынған файлдың қотарып берілуі сәтсіз өтті. Файл мөлшері қотарып берілуге руқсат етілгеннен асады.',
-'importuploaderrorpartial' => 'Сырттан алынған файлдың қотарып берілуі сәтсіз өтті. Осы файлдың тек бөліктері қотарылып берілді.',
-'importuploaderrortemp' => 'Сырттан алынған файлдың қотарып берілуі сәтсіз өтті. Уақытша қалта табылмады.',
+'importnofile' => 'Сырттан алынған файл жүктелген жоқ.',
+'importuploaderrorsize' => 'Сырттан алынған файлдың жүктелуі сәтсіз өтті. Файл мөлшері рұқсат етілгеннен мөлшерден асады.',
+'importuploaderrorpartial' => 'Сырттан алынған файлдың жүктелуі сәтсіз өтті. Осы файлдың тек бөліктері жүктелді.',
+'importuploaderrortemp' => 'Сырттан алынған файлдың жүктелуі сәтсіз өтті. Уақытша қалта табылмады.',
 'import-parse-failure' => 'Сырттан алынған XML файл құрылымын талдатқанда сәтсіздік болды',
 'import-noarticle' => 'Сырттан алынатын еш бет жоқ!',
 'import-nonewrevisions' => 'Барлық түзетулері алдында сырттан алынған.',
 'xml-error-string' => '$1 нөмір $2 жолда, баған $3 (байт $4): $5',
-'import-upload' => 'XML деректерін қотарып беру',
+'import-upload' => 'XML деректерін жүктеу',
 
 # Import log
 'importlogpage' => 'Сырттан алу журналы',
 'importlogpagetext' => 'Беттерді түзету тарихымен бірге сыртқы уикилерден әкімші ретінде алу.',
-'import-logentry-upload' => '«[[$1]]» дегенді файл қотарып беру арқылы сырттан алды',
+'import-logentry-upload' => '«[[$1]]» дегенді файл жүктеу арқылы сырттан алды',
 'import-logentry-upload-detail' => '$1 түзету',
 'import-logentry-interwiki' => 'уики-апарылған $1',
 'import-logentry-interwiki-detail' => '$2 дегеннен $1 түзету',
@@ -2531,7 +2531,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-feed-atom' => 'Бұл беттің Atom арнасы',
 'tooltip-t-contributions' => 'Осы қатысушының үлес тізімін қарау',
 'tooltip-t-emailuser' => 'Осы қатысушыға хат жөнелту',
-'tooltip-t-upload' => 'Файлдарды қотарып беру',
+'tooltip-t-upload' => 'Файлдарды жүктеу',
 'tooltip-t-specialpages' => 'Барлық арнайы беттер тізімі',
 'tooltip-t-print' => 'Бұл беттің басып шығарышқа арналған нұсқасы',
 'tooltip-t-permalink' => 'Мына беттің осы нұсқасының тұрақты сілтемесі',
@@ -2552,7 +2552,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-compareselectedversions' => 'Беттің екі бөлектенген нұсқасы айырмасын қарау.',
 'tooltip-watch' => 'Бұл бетті бақылау тізіміңізге үстеу',
 'tooltip-recreate' => 'Бет жойылғанына қарамастан қайта бастау',
-'tooltip-upload' => 'Қотарып беруді бастау',
+'tooltip-upload' => 'Жүктеуді бастау',
 'tooltip-rollback' => '"Шегіндіру" сілтемесін бір рет басу арқылы соңға редактордың барлық қатар өңдемелерін өшіру',
 'tooltip-summary' => 'Қысқаша сипаттамасын жазыңыз',
 
@@ -2654,7 +2654,7 @@ $1',
 # Special:NewFiles
 'newimages' => 'Жаңа файлдар көрмесі',
 'imagelisttext' => "Төменде $2 сұрыпталған '''$1''' файл тізімі.",
-'newimages-summary' => 'Ð\91ұл Ð°Ñ\80найÑ\8b Ð±ÐµÑ\82Ñ\96нде Ñ\81оңÒ\93Ñ\8b Ò\9bоÑ\82аÑ\80Ñ\8bп Ð±ÐµÑ\80Ñ\96лген файлдар көрсетіледі',
+'newimages-summary' => 'Ð\91ұл Ð°Ñ\80найÑ\8b Ð±ÐµÑ\82Ñ\82е Ñ\81оңÒ\93Ñ\8b Ð¶Ò¯ÐºÑ\82елген файлдар көрсетіледі',
 'newimages-legend' => 'Сүзгі',
 'showhidebots' => '(боттарды $1)',
 'noimages' => 'Көретін ештеңе жоқ.',
@@ -3171,7 +3171,7 @@ $5
 'specialpages-group-other' => 'Тағы басқа арнайы беттер',
 'specialpages-group-login' => 'Кіру / тіркелу',
 'specialpages-group-changes' => 'Жуықтағы өзгерістер мен журналдар',
-'specialpages-group-media' => 'Таспа баянаттары және қотарып берілгендер',
+'specialpages-group-media' => 'Таспа баянаттары және жүктелгендер',
 'specialpages-group-users' => 'Қатысушылар және олардың құқықтары',
 'specialpages-group-highuse' => 'Өте көп қолданылған беттер',
 'specialpages-group-pages' => 'Беттер тізімі',
@@ -3185,9 +3185,17 @@ $5
 'intentionallyblankpage' => 'Бұл бет әдейі бос қалдырылған',
 
 # New logging system
+'logentry-delete-delete' => '$1 $3 деген бетті жойды',
 'revdelete-restricted' => 'әкімшілерге тиымдар қолдады',
 'revdelete-unrestricted' => 'әкімшілерден тиымдарды аластады',
+'logentry-move-move' => '$1 $3 бетін $4 бетіне жылжытты',
 'logentry-move-move-noredirect' => '$1 $3 бетін $4 бетіне жылжытты (айдатқыш қалдырылмады)',
+'logentry-move-move_redir' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты',
 'logentry-move-move_redir-noredirect' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты (айдатқыш қалдырылмады)',
+'logentry-newusers-newusers' => '$1 жаңадан аккаунт тіркеді',
+'logentry-newusers-create' => '$1 жаңадан аккаунт тіркеді',
+'logentry-newusers-create2' => '$1 $3 деген аккаунт тіркеді',
+'logentry-newusers-autocreate' => '$1 аккаунты автоматты түрде тіркелді',
+'newuserlog-byemail' => 'Құпия сөз e-mail арқылы жіберілді',
 
 );
index 5ce6c4a..c0ce100 100644 (file)
@@ -340,15 +340,15 @@ $messages = array(
 'tog-underline' => '링크에 밑줄 표시하기:',
 'tog-justify' => '문단 정렬하기',
 'tog-hideminor' => '사소한 편집을 최근 바뀜에서 숨기기',
-'tog-hidepatrolled' => '최근 바뀜에서 검토ë\90\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
-'tog-newpageshidepatrolled' => '새 문서 목록에서 검토ë\90\9c ë¬¸ì\84\9c를 ì\88¨ê¸°ê¸°',
+'tog-hidepatrolled' => '최근 바뀜에서 검토í\95\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
+'tog-newpageshidepatrolled' => '새 문서 목록에서 검토í\95\9c ë¬¸ì\84\9c를 ì\88¨ê¸°ê¸°',
 'tog-extendwatchlist' => '주시문서 목록에서 가장 최근의 편집만이 아닌 모든 편집을 보기',
 'tog-usenewrc' => '최근 바뀜 및 주시 문서 목록에서 문서별 그룹 바뀜 (자바스크립트 필요)',
 'tog-numberheadings' => '머릿글 번호 매기기',
-'tog-showtoolbar' => '편집창에 툴바 보이기 (자바스크립트)',
-'tog-editondblclick' => '더블 클릭으로 문서 편집하기 (자바스크립트)',
+'tog-showtoolbar' => '편집창에 툴바 보이기 (자바스크립트 필요)',
+'tog-editondblclick' => '더블 클릭으로 문서 편집하기 (자바스크립트 필요)',
 'tog-editsection' => '[편집] 링크로 부분 편집하기',
-'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 부분 편집하기 (자바스크립트)',
+'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 부분 편집하기 (자바스크립트 필요)',
 'tog-showtoc' => '문서의 차례 보여주기 (머릿글이 4개 이상인 경우)',
 'tog-rememberpassword' => '이 브라우저에서 로그인 상태를 저장하기 (최대 $1일)',
 'tog-watchcreations' => '내가 처음 만드는 문서를 주시문서 목록에 추가',
@@ -356,8 +356,8 @@ $messages = array(
 'tog-watchmoves' => '내가 이동하는 문서를 주시문서 목록에 추가',
 'tog-watchdeletion' => '내가 삭제하는 문서를 주시문서 목록에 추가',
 'tog-minordefault' => '사소한 편집을 기본적으로 선택하기',
-'tog-previewontop' => '편집ì\83\81ì\9e\90 ì\95\9eì\97\90 ë¯¸ë¦¬ë³´ê¸° ë³´ì\9d´ê¸°',
-'tog-previewonfirst' => '처음 편집할 때 미리보기 보기',
+'tog-previewontop' => '편집 ì\83\81ì\9e\90 ì\95\9eì\97\90 ë¯¸ë¦¬ ë³´ê¸° ë³´ê¸°',
+'tog-previewonfirst' => '처음 편집할 때 미리 보기 보기',
 'tog-nocache' => '브라우저의 문서 캐시 끄기',
 'tog-enotifwatchlistpages' => '주시문서가 바뀌면 이메일로 알림',
 'tog-enotifusertalkpages' => '내 토론 문서가 바뀌면 이메일로 알림',
@@ -366,17 +366,17 @@ $messages = array(
 'tog-shownumberswatching' => '주시 사용자 수 보기',
 'tog-oldsig' => '현재 서명:',
 'tog-fancysig' => '서명을 위키텍스트로 취급 (자동으로 링크를 걸지 않음)',
-'tog-externaleditor' => '외부 편집기를 기본 편집기로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요, [//www.mediawiki.org/wiki/Manual:External_editors 자세한 정보 보기])',
-'tog-externaldiff' => '외부 비교 도구를 기본 도구로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요, [//www.mediawiki.org/wiki/Manual:External_editors 자세한 설명 보기])',
+'tog-externaleditor' => '외부 편집기를 기본 편집기로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요. [//www.mediawiki.org/wiki/Manual:External_editors 자세한 정보 보기])',
+'tog-externaldiff' => '외부 비교 도구를 기본 도구로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요. [//www.mediawiki.org/wiki/Manual:External_editors 자세한 설명 보기])',
 'tog-showjumplinks' => '접근성을 위한 "이동" 링크 쓰기 (일부 스킨에서만 작동)',
-'tog-uselivepreview' => '실시간 미리 보기 사용하기 (자바스크립트 사용, 시험 중)',
+'tog-uselivepreview' => '실시간 미리 보기 사용하기 (자바스크립트 필요) (시험 기능)',
 'tog-forceeditsummary' => '편집 요약을 쓰지 않았을 때 알려주기',
 'tog-watchlisthideown' => '주시문서 목록에서 내 편집을 숨기기',
 'tog-watchlisthidebots' => '주시문서 목록에서 봇 편집을 숨기기',
 'tog-watchlisthideminor' => '주시문서 목록에서 사소한 편집을 숨기기',
 'tog-watchlisthideliu' => '주시문서 목록에서 로그인한 사용자의 편집을 숨기기',
-'tog-watchlisthideanons' => '주시문서 목록에서 비등록 사용자의 편집을 숨기기',
-'tog-watchlisthidepatrolled' => '주시문서 목록에서 검토ë\90\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
+'tog-watchlisthideanons' => '주시문서 목록에서 익명 사용자의 편집을 숨기기',
+'tog-watchlisthidepatrolled' => '주시문서 목록에서 검토í\95\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
 'tog-nolangconversion' => '변형 변환을 비활성화',
 'tog-ccmeonemails' => '이메일을 보낼 때 내 이메일로 복사본을 보내기',
 'tog-diffonly' => '편집 차이를 비교할 때 문서 내용을 보지 않기',
@@ -449,19 +449,19 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|분류}}',
-'category_header' => '‘$1’ 분류에 속하는 문서',
+'category_header' => '"$1" 분류에 속하는 문서',
 'subcategories' => '하위 분류',
-'category-media-header' => '‘$1’ 분류에 속하는 자료',
+'category-media-header' => '"$1" 분류에 속하는 자료',
 'category-empty' => '이 분류에 속하는 문서나 자료가 없습니다.',
 'hidden-categories' => '{{PLURAL:$1|숨은 분류}}',
 'hidden-category-category' => '숨은 분류',
 'category-subcat-count' => '{{PLURAL:$2|이 분류에는 하위 분류 1개만이 속해 있습니다.|다음은 이 분류에 속하는 하위 분류 $2개 가운데 $1개입니다.}}',
-'category-subcat-count-limited' => '이 분류에 하위분류가 $1개 있습니다.',
+'category-subcat-count-limited' => '이 분류에 하위 분류 $1개가 있습니다.',
 'category-article-count' => '{{PLURAL:$2|이 분류에는 문서 1개만이 속해 있습니다.|다음은 이 분류에 속하는 문서 $2개 가운데 $1개입니다.}}',
-'category-article-count-limited' => '이 분류에 문서가 $1개 있습니다.',
+'category-article-count-limited' => '이 분류에 문서 $1개가 있습니다.',
 'category-file-count' => '{{PLURAL:$2|이 분류에는 파일 1개만이 속해 있습니다.|다음은 이 분류에 속하는 파일 $2개 가운데 $1개입니다.}}',
-'category-file-count-limited' => '이 분류에 파일이 $1개 있습니다.',
-'listingcontinuesabbrev' => ' (계속)',
+'category-file-count-limited' => '이 분류에 파일 $1개가 있습니다.',
+'listingcontinuesabbrev' => '(계속)',
 'index-category' => '색인된 문서',
 'noindex-category' => '색인에서 제외되는 문서',
 'broken-file-category' => '잘못된 파일 링크가 포함된 문서',
@@ -542,10 +542,10 @@ $messages = array(
 'articlepage' => '문서 보기',
 'talk' => '토론',
 'views' => '보기',
-'toolbox' => '도구모음',
+'toolbox' => '도구 모음',
 'userpage' => '사용자 문서 보기',
 'projectpage' => '프로젝트 문서 보기',
-'imagepage' => '자료 문서 보기',
+'imagepage' => '파일 문서 보기',
 'mediawikipage' => '메시지 문서 보기',
 'templatepage' => '틀 문서 보기',
 'viewhelppage' => '도움말 문서 보기',
@@ -554,7 +554,7 @@ $messages = array(
 'otherlanguages' => '다른 언어',
 'redirectedfrom' => '($1에서 넘어옴)',
 'redirectpagesub' => '넘겨주기 문서',
-'lastmodifiedat' => '이 문서는 $1 $2 에 마지막으로 바뀌었습니다.',
+'lastmodifiedat' => '이 문서는 $1 $2에 마지막으로 바뀌었습니다.',
 'viewcount' => '이 문서는 $1번 읽혔습니다.',
 'protectedpage' => '보호된 문서',
 'jumpto' => '이동:',
@@ -594,10 +594,11 @@ $1',
 'badaccess-groups' => '요청한 동작은 {{PLURAL:$2|다음|다음 중 하나의}} 권한을 가진 사용자에게만 가능합니다: $1.',
 
 'versionrequired' => '미디어위키 $1 버전 필요',
-'versionrequiredtext' => '이 문서를 사용하려면 $1 버전 미디어위키가 필요합니다. [[Special:Version|설치된 미디어위키 버전]]을 확인해주세요.',
+'versionrequiredtext' => '이 문서를 사용하려면 $1 버전 미디어위키가 필요합니다.
+[[Special:Version|설치된 미디어위키 버전]]을 참고하세요.',
 
 'ok' => '확인',
-'retrievedfrom' => '원본 주소 ‘$1’',
+'retrievedfrom' => '원본 주소 "$1"',
 'youhavenewmessages' => '다른 사용자가 $1란에 글을 남겼습니다. ($2)',
 'newmessageslink' => '사용자 토론',
 'newmessagesdifflink' => '바뀐 내용 비교',
@@ -621,7 +622,7 @@ $1',
 'feed-unavailable' => '피드 서비스는 제공하지 않습니다',
 'site-rss-feed' => '$1 RSS 피드',
 'site-atom-feed' => '$1 Atom 피드',
-'page-rss-feed' => '‘$1’ RSS 피드',
+'page-rss-feed' => '"$1" RSS 피드',
 'page-atom-feed' => '"$1" Atom 피드',
 'red-link-title' => '$1 (없는 문서)',
 'sort-descending' => '내림차순 정렬',
@@ -644,7 +645,7 @@ $1',
 'nosuchactiontext' => 'URL로 요청한 동작이 잘못되었습니다.
 당신은 URL을 잘못 입력하였거나, 잘못된 링크를 따라갔을 수 있습니다.
 이것은 {{SITENAME}}의 버그일 수도 있습니다.',
-'nosuchspecialpage' => '해당하는 특수기능이 없습니다.',
+'nosuchspecialpage' => '해당하는 특수 문서가 없습니다.',
 'nospecialpagetext' => '<strong>요청한 특수 문서가 존재하지 않습니다.</strong>
 
 특수 문서의 목록은 [[Special:SpecialPages|여기]]에서 볼 수 있습니다.',
@@ -669,7 +670,7 @@ $1',
 'readonlytext' => '데이터베이스가 잠겨 있어서 문서를 편집할 수 없습니다. 데이터베이스 관리가 끝난 후에는 정상으로 돌아올 것입니다.
 
 관리자가 데이터베이스를 잠글 때 남긴 메시지는 다음과 같습니다: $1',
-'missing-article' => '데이터베이스에서 ‘$1’ 문서$2를 찾지 못했습니다.
+'missing-article' => '데이터베이스에서 "$1" 문서의 $2 텍스트를 찾지 못했습니다.
 
 삭제된 문서의 역사/비교 문서를 보려고 시도할 때 이러한 문제가 발생할 수 있습니다.
 
@@ -679,27 +680,32 @@ $1',
 'readonly_lag' => '슬레이브 데이터베이스가 마스터 서버의 자료를 갱신하는 중입니다. 데이터베이스가 자동으로 잠겨 있습니다.',
 'internalerror' => '내부 오류',
 'internalerror_info' => '내부 오류: $1',
-'fileappenderrorread' => '‘$1’ 파일을 읽을 수 없습니다. 해당 파일에 내용을 덧붙일 수 없습니다.',
-'fileappenderror' => '‘$1’ 파일을 ‘$2’에 덧붙일 수 없습니다.',
-'filecopyerror' => '‘$1’ 파일을 ‘$2’(으)로 복사할 수 없습니다.',
-'filerenameerror' => '‘$1’ 파일을 ‘$2’(으)로 옮길 수 없습니다.',
-'filedeleteerror' => '‘$1’ 파일을 삭제할 수 없습니다.',
-'directorycreateerror' => '‘$1’ 디렉토리를 만들 수 없습니다.',
-'filenotfound' => '‘$1’ 파일을 찾을 수 없습니다.',
+'fileappenderrorread' => '내용을 덧붙이다가 "$1" 파일을 읽을 수 없습니다.',
+'fileappenderror' => '"$1" 파일을 "$2"에 덧붙일 수 없습니다.',
+'filecopyerror' => '"$1" 파일을 "$2"로 복사할 수 없습니다.',
+'filerenameerror' => '"$1" 파일을 "$2"로 옮길 수 없습니다.',
+'filedeleteerror' => '"$1" 파일을 삭제할 수 없습니다.',
+'directorycreateerror' => '"$1" 디렉토리를 만들 수 없습니다.',
+'filenotfound' => '"$1" 파일을 찾을 수 없습니다.',
 'fileexistserror' => '"$1" 파일이 이미 있어 여기에 쓸 수 없습니다.',
 'unexpected' => '예상되지 않은 값: "$1"="$2"',
 'formerror' => '오류: 양식을 제출할 수 없습니다.',
 'badarticleerror' => '지금의 명령은 이 문서에서는 실행할 수 없습니다.',
-'cannotdelete' => '"$1" 문서나 파일을 삭제할 수 없습니다. 이미 삭제되었을 수도 있습니다.',
+'cannotdelete' => '"$1" 문서나 파일을 삭제할 수 없습니다.
+이미 삭제되었을 수도 있습니다.',
 'cannotdelete-title' => '"$1" 문서를 삭제할 수 없습니다.',
 'delete-hook-aborted' => '훅에 의해 삭제가 중단되었습니다.
 아무런 설명도 주어지지 않았습니다.',
 'badtitle' => '잘못된 제목',
-'badtitletext' => '문서 제목이 잘못되었거나 비어있습니다.',
+'badtitletext' => '문서 제목이 잘못되었거나 비어있습니다. 또는 잘못된 인터위키 제목으로 링크했습니다.
+문서 제목에 사용할 수 없는 문자를 사용했을 수 있습니다.',
 'perfcached' => '다음 자료는 캐시된 것이므로 현재 상황을 반영하지 않을 수 있습니다. 캐시에 최대 {{PLURAL:$1|결과 $1개}}가 있습니다.',
-'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 갱신되었습니다.  캐시에 최대 {{PLURAL:$4|결과 $4개}}가 있습니다.',
-'querypage-no-updates' => '이 문서의 갱신이 현재 비활성화되어 있습니다. 자료가 잠시 갱신되지 않을 것입니다.',
-'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />함수: $1<br />쿼리: $2',
+'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 새로 고쳐졌습니다.  캐시에 최대 {{PLURAL:$4|결과 $4개}}가 있습니다.',
+'querypage-no-updates' => '이 문서의 갱신이 현재 비활성화되어 있습니다.
+자료가 잠시 새로 고치지 않을 것입니다.',
+'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />
+함수: $1<br />
+쿼리: $2',
 'viewsource' => '내용 보기',
 'viewsource-title' => '$1 문서 내용 보기',
 'actionthrottled' => '동작 중지',
@@ -709,26 +715,28 @@ $1',
 'viewsourcetext' => '문서의 원본을 보거나 복사할 수 있습니다:',
 'viewyourtext' => "당신은 이 문서에 남긴 '''당신의 편집''' 내용을 보거나 복사할 수 있습니다:",
 'protectedinterface' => '이 문서는 소프트웨어 인터페이스에 쓰이는 문서로, 잠겨 있습니다.',
-'editinginterface' => "'''경고''': 소프트웨어에서 사용하는 메시지 문서를 고치고 있습니다. 이것은 모든 사용자에게 영향을 끼칩니다. 번역되지 않은 메시지를 번역하려는 경우에는, [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하면 메시지 번역을 미디어위키에 직접 반영할 수 있습니다.",
+'editinginterface' => "'''경고''': 소프트웨어에서 사용하는 메시지 문서를 고치고 있습니다.
+이는 모든 사용자에게 영향을 끼칩니다.
+번역되지 않은 메시지를 번역하려는 경우에는 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하면 메시지 번역을 미디어위키에 직접 반영할 수 있습니다.",
 'sqlhidden' => '(SQL 쿼리 숨겨짐)',
-'cascadeprotected' => '이 문서는 연쇄보호가 걸린 {{PLURAL:$1|문서}}에 포함되어 있어 함께 보호됩니다. 연쇄 보호된 문서:
+'cascadeprotected' => '이 문서는 연쇄 보호가 걸린 {{PLURAL:$1|문서}}에 포함되어 있어 함께 보호됩니다. 연쇄 보호된 문서:
 $2',
-'namespaceprotected' => "'''$1''' 네임스페이스를 편집할 수 있는 권한이 없습니다.",
+'namespaceprotected' => "'''$1''' 이름공간을 편집할 수 있는 권한이 없습니다.",
 'customcssprotected' => '여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 당신은 이 CSS 문서를 편집할 수 없습니다.',
 'customjsprotected' => '여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 당신은 이 자바스크립트 문서를 편집할 수 없습니다.',
-'ns-specialprotected' => '{{ns:special}} ë\84¤ì\9e\84ì\8a¤í\8e\98ì\9d´ì\8a¤ì\9d\98 ë¬¸ì\84\9cë\8a\94 í\8e¸ì§\91í\95  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
-'titleprotected' => '[[User:$1|$1]] 사용자가 문서 생성을 금지했습니다.
-이유는 다음과 같습니다. ‘$2’',
-'filereadonlyerror' => '‘$2’ 파일 저장소가 읽기 전용이기 때문에 ‘$1’ 파일을 변경할 수 없습니다.
-
-ì \80ì\9e¥ì\86\8c ê´\80리ì\9e\90ê°\80 í\8c\8cì\9d¼ ì \80ì\9e¥ì\86\8c를 ì\9e ê·¼ ì\9d´ì\9c ì\97\90 ë\8c\80í\95´ "\'\'$3\'\'"ì\9d´ë\9d¼ë\8a\94 ì\84¤ëª\85ì\9d\84 ë\82¨ê²¼ì\8aµë\8b\88ë\8b¤.',
-'invalidtitle-knownnamespace' => '제목 오류: 이름공간 "$2"와 텍스트 "$3"',
-'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 이름공간 번호 "$1"과, 텍스트 "$2"',
+'ns-specialprotected' => 'í\8a¹ì\88\98 ë¬¸ì\84\9cë\8a\94 í\8e¸ì§\91í\95  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
+'titleprotected' => '[[User:$1|$1]] 사용자가 문서 만들기를 금지했습니다.
+이유는 다음과 같습니다. "$2"',
+'filereadonlyerror' => '"$2" 파일 저장소가 읽기 전용이기 때문에 "$1" 파일을 변경할 수 없습니다.
+
+ì \80ì\9e¥ì\86\8c ê´\80리ì\9e\90ê°\80 í\8c\8cì\9d¼ ì \80ì\9e¥ì\86\8c를 ì\9e ê·¼ ì\9d´ì\9c ì\97\90 ë\8c\80í\95\9c ì\84¤ëª\85ì\9d\84 ë\82¨ê²¼ì\8aµë\8b\88ë\8b¤: "$3".',
+'invalidtitle-knownnamespace' => '제목 오류: "$2" 이름공간과 "$3" 텍스트',
+'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 $1 이름공간 번호와, "$2" 텍스트',
 'exception-nologin' => '로그인하지 않음',
 'exception-nologin-text' => '이 문서나 행동은 이 위키에 로그인을 해야 합니다.',
 
 # Virus scanner
-'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: ''$1''",
+'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: '''$1'''",
 'virus-scanfailed' => '검사 실패 (코드 $1)',
 'virus-unknownscanner' => '알려지지 않은 백신:',
 
@@ -744,9 +752,9 @@ $2',
 'yourpassword' => '비밀번호:',
 'yourpasswordagain' => '비밀번호 다시 입력:',
 'remembermypassword' => '이 컴퓨터에서 로그인 상태를 저장하기 (최대 $1일)',
-'securelogin-stick-https' => '로그인 후에도 HTTPS 연결 상태를 유지합니다.',
-'yourdomainname' => '도메인 이름',
-'externaldberror' => '외부 인증 데이터베이스에 오류가 있거나, 외부 계정을 갱신할 권한이 없습니다.',
+'securelogin-stick-https' => '로그인 후에도 HTTPS 연결 상태를 유지합니다',
+'yourdomainname' => '도메인 이름:',
+'externaldberror' => '외부 인증 데이터베이스에 오류가 있거나 외부 계정을 갱신할 권한이 없습니다.',
 'login' => '로그인',
 'nav-login-createaccount' => '로그인 / 계정 만들기',
 'loginprompt' => '{{SITENAME}}에 로그인하려면 쿠키를 사용할 수 있어야 합니다.',
@@ -767,21 +775,28 @@ $2',
 'userexists' => '입력하신 사용자 이름이 이미 등록되어 있습니다.
 다른 이름을 선택해주십시오.',
 'loginerror' => '로그인 오류',
-'createaccounterror' => '계정을 생성하지 못했습니다: $1',
-'nocookiesnew' => '사용자 계정을 만들었지만, 아직 로그인하지 않았습니다. {{SITENAME}}에서는 로그인 정보를 저장하기 위해 쿠키를 사용합니다. 지금 사용하는 웹 브라우저는 쿠키를 사용하지 않도록 설정되어 있습니다. 로그인하기 전에 웹 브라우저에서 쿠키를 사용하도록 설정해주세요.',
-'nocookieslogin' => '{{SITENAME}}에서는 로그인을 위해 쿠키를 사용합니다. 당신의 웹 브라우저에서 쿠키가 비활성되어 있습니다. 쿠키 사용을 활성화한 다음 로그인해 주세요.',
-'nocookiesfornew' => '요청의 출처를 확인할 수 없기 때문에 사용자 계정이 생성되지 않았습니다.
+'createaccounterror' => '계정을 만들지 못했습니다: $1',
+'nocookiesnew' => '사용자 계정을 만들었지만, 아직 로그인하지 않았습니다.
+{{SITENAME}}에서는 로그인 정보를 저장하기 위해 쿠키를 사용합니다.
+지금 사용하는 웹 브라우저는 쿠키를 사용하지 않도록 설정되어 있습니다.
+로그인하기 전에 웹 브라우저에서 쿠키를 사용하도록 설정해주세요.',
+'nocookieslogin' => '{{SITENAME}}에서는 로그인을 위해 쿠키를 사용합니다.
+당신의 웹 브라우저에서 쿠키가 비활성되어 있습니다.
+쿠키 사용을 활성화한 다음 로그인해 주세요.',
+'nocookiesfornew' => '요청의 출처를 확인할 수 없기 때문에 사용자 계정이 만들어지지 않았습니다.
 쿠키를 허용한 것을 확인한 후에 다시 시도해 보십시오.',
 'noname' => '사용자 이름이 올바르지 않습니다.',
 'loginsuccesstitle' => '로그인 성공',
-'loginsuccess' => "'''{{SITENAME}}에 ‘$1’ 계정으로 로그인했습니다.'''",
+'loginsuccess' => "'''{{SITENAME}}에 \"\$1\" 계정으로 로그인했습니다.'''",
 'nosuchuser' => '"$1" 사용자가 존재하지 않습니다.
 사용자 이름은 대소문자를 구별합니다. 철자가 맞는지 확인해주세요.
 [[Special:UserLogin/signup|새 계정을 만들 수도 있습니다]].',
-'nosuchusershort' => '이름이 ‘$1’인 사용자는 없습니다. 철자가 맞는지 확인해 주세요.',
+'nosuchusershort' => '이름이 ‘$1’인 사용자는 없습니다.
+철자가 맞는지 확인해 주세요.',
 'nouserspecified' => '사용자 이름을 입력하지 않았습니다.',
 'login-userblocked' => '이 사용자는 차단되었습니다. 로그인할 수 없습니다.',
-'wrongpassword' => '입력한 비밀번호가 다릅니다. 다시 시도해 주세요.',
+'wrongpassword' => '입력한 비밀번호가 다릅니다.
+다시 시도해 주세요.',
 'wrongpasswordempty' => '비밀번호를 입력하지 않았습니다.
 다시 시도해 주세요.',
 'passwordtooshort' => '비밀번호는 $1 문자 이상이어야 합니다.',
@@ -790,61 +805,69 @@ $2',
 'mailmypassword' => '새 비밀번호를 이메일로 보내기',
 'passwordremindertitle' => '{{SITENAME}}의 새 임시 비밀번호',
 'passwordremindertext' => '$1 IP 주소에서 누군가가 아마 자신이 {{SITENAME}} ($4)의 새 비밀번호를 요청했습니다.
-‘$2’ 사용자의 임시 비밀번호는 ‘$3’로 설정되었습니다. 이것이 자신이 의도한 바라면 지금 로그인하여 새로운 비밀번호를 만드십시오.
-당신의 임시 비밀번호는 $5일 후에 무효화됩니다.
-
-이 요청을 다른 사람이 했거나 이전 비밀번호를 기억해 내서 바꿀 필요가 없으면 이 메시지를 무시하고 이전 비밀번호를 계속 사용할 수 있습니다.',
-'noemail' => '‘$1’ 사용자는 이메일 주소를 등록하지 않았습니다.',
-'noemailcreate' => '바른 이메일 주소를 써야 합니다.',
-'passwordsent' => '‘$1’ 계정의 새로운 비밀번호를 이메일로 보냈습니다. 비밀번호를 받고 다시 로그인해 주세요.',
+"$2" 사용자의 임시 비밀번호는 "$3"로 설정되었습니다. 이것이 자신이 의도한 바라면
+지금 로그인하여 새로운 비밀번호를 만드세요.
+당신의 임시 비밀번호는 $5일 후에 만료됩니다.
+
+이 요청을 다른 사람이 했거나 이전 비밀번호를 기억해 내서 바꿀 필요가 없으면
+이 메시지를 무시하고 이전 비밀번호를 계속 사용할 수 있습니다.',
+'noemail' => '"$1" 사용자는 이메일 주소를 등록하지 않았습니다.',
+'noemailcreate' => '바른 이메일 주소를 제공해야 합니다.',
+'passwordsent' => '"$1" 계정의 새로운 비밀번호를 이메일로 보냈습니다.
+비밀번호를 받고 다시 로그인해 주세요.',
 'blocked-mailpassword' => '당신의 IP 주소는 편집을 할 수 없게 차단되어 있어서 악용하지 못하도록 비밀번호 되살리기 기능 사용이 금지됩니다.',
-'eauthentsent' => '확인 이메일을 보냈습니다. 이메일 내용의 지시대로 계정 확인 절차를 실행해 주십시오.',
-'throttled-mailpassword' => '비밀번호 확인 이메일을 이미 최근 $1 시간 안에 보냈습니다. 악용을 방지하기 위해 비밀번호 확인 메일은 $1 시간마다 오직 하나씩만 보낼 수 있습니다.',
+'eauthentsent' => '입력한 이메일로 확인 이메일을 보냈습니다.
+게정에서 다른 이메일로 보내기 전에 이메일 내용의 지시대로 계정 확인 절차를 실행해 주십시오.',
+'throttled-mailpassword' => '비밀번호 확인 이메일을 이미 최근 $1시간 안에 보냈습니다.
+악용을 방지하기 위해 비밀번호 확인 메일은 $1시간마다 오직 하나씩만 보낼 수 있습니다.',
 'mailerror' => '메일 보내기 오류: $1',
-'acct_creation_throttle_hit' => '당신의 IP 주소를 이용한 방문자가 이전에 이미 계정을 $1개 만들어, 계정 생성 한도를 초과하였습니다.
+'acct_creation_throttle_hit' => '당신의 IP 주소를 이용한 방문자가 이전에 이미 계정을 $1개 만들어, 계정 만들기 한도를 초과하였습니다.
 따라서 지금은 이 IP 주소로는 더 이상 계정을 만들 수 없습니다.',
 'emailauthenticated' => '당신의 이메일 주소는 $2 $3에 인증되었습니다.',
-'emailnotauthenticated' => '이메일 주소를 인증하지 않았습니다. 이메일 확인 절차를 거치지 않으면 다음 이메일 기능을 사용할 수 없습니다.',
-'noemailprefs' => '이 기능을 사용하기 위해서는 환경설정에서 이메일 주소를 설정해야 합니다.',
+'emailnotauthenticated' => '이메일 주소를 인증하지 않았습니다.
+이메일 확인 절차를 거치지 않으면 다음 이메일 기능을 사용할 수 없습니다.',
+'noemailprefs' => '이 기능을 사용하기 위해서는 사용자 환경 설정에서 이메일 주소를 설정해야 합니다.',
 'emailconfirmlink' => '이메일 주소 확인',
 'invalidemailaddress' => '이메일 주소의 형식이 잘못되어 인식할 수 없습니다.
 정상적인 형식의 이메일을 입력하거나 칸을 비워 주세요.',
 'cannotchangeemail' => '이 위키에서는 계정의 이메일 주소를 바꿀 수 없습니다.',
 'emaildisabled' => '이 사이트에서는 이메일을 보낼 수 없습니다.',
 'accountcreated' => '계정 만들어짐',
-'accountcreatedtext' => '‘$1’ 사용자 계정이 만들어졌습니다.',
+'accountcreatedtext' => '"$1" 사용자 계정이 만들어졌습니다.',
 'createaccount-title' => '{{SITENAME}} 계정 만들기',
-'createaccount-text' => '누군가가 {{SITENAME}} ($4)에서 계정 이름 ‘$2’, 비밀번호 ‘$3’로 당신의 이메일 주소가 등록된 계정을 만들었습니다. 지금 로그인하여 비밀번호를 바꾸십시오.
+'createaccount-text' => '누군가가 {{SITENAME}} ($4)에서 계정 이름 ‘$2’, 비밀번호 ‘$3’로 당신의 이메일 주소가 등록된 계정을 만들었습니다. 
+지금 로그인하여 비밀번호를 바꾸십시오.
 
 실수로 계정을 잘못 만들었다면 이 메시지는 무시해도 됩니다.',
-'usernamehasherror' => 'ê³\84ì \95 ì\9d´ë¦\84ì\97\90ë\8a\94 í\95´ì\8b\9c ë¬¸ì\9e\90ê°\80 ë\93¤ì\96´ê°\80ì\84\9cë\8a\94 ì\95\88 ë\90©니다.',
+'usernamehasherror' => 'ê³\84ì \95 ì\9d´ë¦\84ì\97\90ë\8a\94 í\95´ì\8b\9c ë¬¸ì\9e\90ê°\80 ë\93¤ì\96´ê°\88 ì\88\98 ì\97\86ì\8aµ니다.',
 'login-throttled' => '로그인에 연속으로 실패하였습니다.
 잠시 후에 다시 시도해주세요.',
 'login-abort-generic' => '로그인에 실패했습니다 - 중지됨',
 'loginlanguagelabel' => '언어: $1',
-'suspicious-userlogout' => 'ë¸\8cë\9d¼ì\9a°ì \80ì\9d\98 이상이 있거나 캐싱 프록시에서 로그아웃을 요청했기 때문에 로그아웃이 거부되었습니다.',
+'suspicious-userlogout' => 'ë¸\8cë\9d¼ì\9a°ì \80ì\97\90 이상이 있거나 캐싱 프록시에서 로그아웃을 요청했기 때문에 로그아웃이 거부되었습니다.',
 
 # E-mail sending
 'php-mail-error-unknown' => 'PHP의 mail() 함수에서 알 수 없는 오류가 발생했습니다.',
-'user-mail-no-addy' => '받는 이의 이메일 주소가 없다면 이메일을 보낼 수 없습니다.',
+'user-mail-no-addy' => '받는이의 이메일 주소가 없으면 이메일을 보낼 수 없습니다.',
 
 # Change password dialog
 'resetpass' => '비밀번호 바꾸기',
-'resetpass_announce' => '이메일로 받은 임시 비밀번호로 로그인했습니다. 로그인을 마치려면 새 비밀번호를 여기에서 설정해야 합니다:',
+'resetpass_announce' => '이메일로 받은 임시 비밀번호로 로그인했습니다.
+로그인을 마치려면 새 비밀번호를 여기에서 설정해야 합니다:',
 'resetpass_text' => '<!-- 여기에 텍스트를 추가하세요 -->',
-'resetpass_header' => 'ë¹\84ë°\80ë²\88í\98¸ ë³\80ê²½',
+'resetpass_header' => 'ë¹\84ë°\80ë²\88í\98¸ ë°\94꾸기',
 'oldpassword' => '이전 비밀번호:',
 'newpassword' => '새 비밀번호:',
 'retypenew' => '새 비밀번호 재입력:',
 'resetpass_submit' => '비밀번호를 설정하고 로그인하기',
-'resetpass_success' => '비밀번호를 변경했습니다!
-이제...사용하십시오.',
-'resetpass_forbidden' => '비밀번호 변경 불가',
+'resetpass_success' => '비밀번호를 성공적으로 바꿨습니다!
+이제 로그인을 합니다...',
+'resetpass_forbidden' => '비밀번호를 바꿀 수 없음',
 'resetpass-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
-'resetpass-submit-loggedin' => 'ë¹\84ë°\80ë²\88í\98¸ ë³\80ê²½',
+'resetpass-submit-loggedin' => 'ë¹\84ë°\80ë²\88í\98¸ ë°\94꾸기',
 'resetpass-submit-cancel' => '취소',
 'resetpass-wrong-oldpass' => '비밀번호가 잘못되었거나 현재의 비밀번호와 같습니다.
\8b¹ì\8b ì\9d\80 ì\9d´ë¯¸ ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\84±ê³µì \81ì\9c¼ë¡\9c ë³\80ê²½í\95\98ì\98\80거나 새 임시 비밀번호를 발급받았을 수 있습니다.',
\8b¹ì\8b ì\9d\80 ì\9d´ë¯¸ ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\84±ê³µì \81ì\9c¼ë¡\9c ë°\94꾸ì\97\88거나 새 임시 비밀번호를 발급받았을 수 있습니다.',
 'resetpass-temp-password' => '임시 비밀번호:',
 
 # Special:PasswordReset
@@ -852,25 +875,29 @@ $2',
 'passwordreset-text' => '이메일을 통해 계정 정보를 받을 수 있습니다. 아래의 칸을 채워주세요.',
 'passwordreset-legend' => '비밀번호 재설정',
 'passwordreset-disabled' => '이 위키에서는 비밀번호를 재설정할 수 없습니다.',
-'passwordreset-pretext' => '{{PLURAL:$1||ì\95\84ë\9e\98ì\97\90 í\95\9c ê°\80ì§\80 ì \95보를 ì\9e\85ë ¥í\95´ì£¼ì\8b­ì\8b\9cì\98¤}}',
+'passwordreset-pretext' => '{{PLURAL:$1||ì\95\84ë\9e\98ì\97\90 í\95\9c ê°\80ì§\80 ì \95보를 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94}}',
 'passwordreset-username' => '계정 이름:',
 'passwordreset-domain' => '도메인:',
 'passwordreset-capture' => '발송 결과 이메일을 보시겠습니까?',
 'passwordreset-capture-help' => '이 상자에 체크하면 이메일이 발송된 즉시 임시 비밀번호가 담긴 이메일을 볼 수 있습니다.',
 'passwordreset-email' => '이메일 주소:',
 'passwordreset-emailtitle' => '{{SITENAME}} 계정 상세 정보',
-'passwordreset-emailtext-ip' => 'IP 주소 $1을 사용하는 누군가(아마도 당신이), {{SITENAME}} ($4)의 비밀번호 찾기를 요청하였습니다. 이 이메일 주소와 연관된 계정의 목록입니다:
+'passwordreset-emailtext-ip' => 'IP 주소 $1을 사용하는 누군가(아마도 당신이), {{SITENAME}} ($4)의 비밀번호 찾기를 요청하였습니다.
+이 이메일 주소와 연관된 계정의 목록입니다:
 
 $2
 
-이 {{PLURAL:$3|임시 비밀번호}}의 효력은 $5일 후 만료됩니다.
-이 비밀번호로 로그인한 후 비밀번호를 변경하십시오. 만약 당신이 아닌 다른 사람이 요청하였거나, 원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
-'passwordreset-emailtext-user' => '{{SITENAME}} ($4)의 사용자 $1이 비밀번호 찾기를 요청하였습니다. 이 이메일 주소와 연관된 계정의 목록입니다:
+이 {{PLURAL:$3|임시 비밀번호}}는 $5일 후에 만료됩니다.
+이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,
+원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
+'passwordreset-emailtext-user' => '{{SITENAME}} ($4)의 사용자 $1이 비밀번호 찾기를 요청하였습니다.
+이 이메일 주소와 연관된 계정의 목록입니다:
 
 $2
 
-이 {{PLURAL:$3|임시 비밀번호}}의 효력은 $5일 후 만료됩니다.
-이 비밀번호로 로그인한 후 비밀번호를 변경하십시오. 만약 당신이 아닌 다른 사람이 요청하였거나, 원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
+이 {{PLURAL:$3|임시 비밀번호}}는 $5일 후에 만료됩니다.
+이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,
+원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
 'passwordreset-emailelement' => '계정 이름: $1
 임시 비밀번호: $2',
 'passwordreset-emailsent' => '비밀번호 찾기 이메일을 보냈습니다.',
@@ -879,13 +906,13 @@ $2
 
 # Special:ChangeEmail
 'changeemail' => '이메일 주소 바꾸기',
-'changeemail-header' => 'ê³\84ì \95 ë©\94ì\9d¼ ì£¼ì\86\8c ë³\80ê²½',
-'changeemail-text' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ë°\94꾸려면 ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì±\84ì\9b\8c주ì\8b­ì\8b\9cì\98¤. ë³\80ê²½ ë\82´ì\9a©ì\9d\84 í\99\95ì\9d¸í\95\98기 ì\9c\84í\95´ ë\8b¹ì\8b ì\9d\98 ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\9e\85ë ¥í\95´ì\95¼합니다.',
+'changeemail-header' => 'ê³\84ì \95 ë©\94ì\9d¼ ì£¼ì\86\8c ë°\94꾸기',
+'changeemail-text' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ë°\94꾸려면 ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì±\84ì\9a°ì\84¸ì\9a\94. ë³\80ê²½ ë\82´ì\9a©ì\9d\84 í\99\95ì\9d¸í\95\98기 ì\9c\84í\95´ ë\8b¹ì\8b ì\9d\98 ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\9e\85ë ¥í\95´ì\95¼ 합니다.',
 'changeemail-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
 'changeemail-oldemail' => '현재 E-mail 주소 :',
 'changeemail-newemail' => '새 이메일 주소:',
 'changeemail-none' => '(없음)',
-'changeemail-submit' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c ë³\80ê²½',
+'changeemail-submit' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c ë°\94꾸기',
 'changeemail-cancel' => '취소',
 
 # Edit page toolbar
@@ -916,24 +943,28 @@ $2
 'showpreview' => '미리 보기',
 'showlivepreview' => '실시간 미리 보기',
 'showdiff' => '차이 보기',
-'anoneditwarning' => "'''주의''': 로그인하고 있지 않습니다. 당신의 IP 주소가 문서 역사에 남게 됩니다.",
+'anoneditwarning' => "'''주의''': 로그인하고 있지 않습니다.
+당신의 IP 주소가 문서 역사에 남게 됩니다.",
 'anonpreviewwarning' => "'''당신은 지금 로그인하고 있지 않습니다. 문서를 저장하면 당신의 IP 주소가 문서 역사에 남게 됩니다.'''",
-'missingsummary' => "'''알림:''' 편집 요약을 적지 않았습니다. 그대로 저장하면 편집 요약 없이 저장됩니다.",
+'missingsummary' => "'''알림:''' 편집 요약을 적지 않았습니다.
+이대로 \"{{int:savearticle}}\"을 클릭하면 편집 요약 없이 저장됩니다.",
 'missingcommenttext' => '아래에 내용을 채워 넣어 주세요.',
 'missingcommentheader' => "'''알림:''' 글의 제목을 입력하지 않았습니다.
-다시 {{int:savearticle}} 버튼을 클릭하면 글이 제목 없이 저장됩니다.",
+다시 \"{{int:savearticle}}\" 버튼을 클릭하면 글이 제목 없이 저장됩니다.",
 'summary-preview' => '편집 요약 미리 보기:',
 'subject-preview' => '주제/제목 미리 보기:',
 'blockedtitle' => '차단됨',
 'blockedtext' => "'''당신의 계정 혹은 IP 주소가 차단되었습니다.'''
 
-차단한 사람은 $1이고, 차단한 이유는 다음과 같습니다: $2
+차단한 사람은 $1입니다.
+차단한 이유는 다음과 같습니다: $2
 
 * 차단이 시작된 시간: $8
 * 차단이 끝나는 시간: $6
 * 차단된 사용자: $7
 
-$1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다. [[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
+$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
+[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
 지금 당신의 IP 주소는 $3이고, 차단 ID는 #$5입니다.
 문의할 때에 이 정보를 같이 알려주세요.",
 'autoblockedtext' => "당신의 IP 주소는 $1이 차단한 사용자가 사용했던 IP이기 때문에 자동으로 차단되었습니다. 차단된 이유는 다음과 같습니다:
@@ -944,7 +975,7 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 * 차단이 끝나는 시간: $6
 * 차단된 사용자: $7
 
-$1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
+$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
 
 [[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또한 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
 
@@ -952,59 +983,75 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 문의할 때에 이 정보를 같이 알려주세요.",
 'blockednoreason' => '이유를 입력하지 않음',
 'whitelistedittext' => '문서를 편집하려면 $1해야 합니다.',
-'confirmedittext' => '문서를 고치려면 이메일 인증 절차가 필요합니다. [[Special:Preferences|사용자 환경 설정]]에서 이메일 주소를 입력하고 이메일 주소 인증을 해 주시기 바랍니다.',
-'nosuchsectiontitle' => '칸을 찾을 수 없음',
-'nosuchsectiontext' => '존재하지 않는 칸을 편집하려 했습니다.
-이 문서를 보는 동안 칸이 이동되었거나 삭제되었을 수 있습니다.',
+'confirmedittext' => '문서를 고치려면 이메일 인증 절차가 필요합니다.
+[[Special:Preferences|사용자 환경 설정]]에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다.',
+'nosuchsectiontitle' => '문단을 찾을 수 없음',
+'nosuchsectiontext' => '존재하지 않는 문단을 편집하려 했습니다.
+이 문서를 보는 동안 문단이 이동되었거나 삭제되었을 수 있습니다.',
 'loginreqtitle' => '로그인 필요',
 'loginreqlink' => '로그인',
 'loginreqpagetext' => '다른 문서를 보기 위해서는 $1해야 합니다.',
 'accmailtitle' => '비밀번호를 보냈습니다.',
 'accmailtext' => '[[User talk:$1|$1]] 사용자의 비밀번호가 임의로 만들어져 $2로 전송되었습니다.
 
\83\88 ë¹\84ë°\80ë²\88í\98¸ë\8a\94 ë¡\9cê·¸ì\9d¸í\95\9c í\9b\84 [[Special:ChangePassword|ë³\80ê²½]]í\95  수 있습니다.',
\83\88 ë¹\84ë°\80ë²\88í\98¸ë\8a\94 ë¡\9cê·¸ì\9d¸í\95\9c í\9b\84 [[Special:ChangePassword|ë¹\84ë°\80ë²\88í\98¸ë¥¼ ë°\94ê¿\80]] 수 있습니다.',
 'newarticle' => '(새 문서)',
-'newarticletext' => "이 문서는 아직 만들어지지 않았습니다. 새 문서를 만들려면 아래의 상자에 문서 내용을 입력하면 됩니다(자세한 내용은 [[{{MediaWiki:Helppage}}|도움말]]을 읽어 주세요).
-만약 잘못 찾아온 문서라면, 웹 브라우저의 '''뒤로''' 버튼을 눌러 주세요.",
+'newarticletext' => "이 문서는 아직 만들어지지 않았습니다.
+새 문서를 만들려면 아래의 상자에 문서 내용을 입력하면 됩니다(자세한 내용은 [[{{MediaWiki:Helppage}}|도움말]]을 읽어 주세요).
+만약 잘못 찾아온 문서라면 웹 브라우저의 '''뒤로''' 버튼을 눌러 주세요.",
 'anontalkpagetext' => '----
-여기는 계정을 만들지 않았거나 사용하고 있지 않은 비등록 사용자를 위한 토론 문서입니다. 비등록 사용자를 구별하기 위해서는 숫자로 된 IP 주소를 사용해야만 합니다. IP 주소는 여러 사용자가 공유할 수 있습니다. 자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 비등록 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인 하여]] 나중에 다른 비등록 사용자에게 줄 혼란을 줄일 수 있습니다.',
+여기는 계정을 만들지 않았거나 사용하고 있지 않은 익명 사용자를 위한 토론 문서입니다.
+익명 사용자를 구별하기 위해서는 숫자로 된 IP 주소를 사용해야만 합니다.
+IP 주소는 여러 사용자가 공유할 수 있습니다.
+자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 익명 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인 하여]] 나중에 다른 익명 사용자에게 줄 혼란을 줄일 수 있습니다.',
 'noarticletext' => '이 문서가 존재하지 않습니다.
-이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나, 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나, 문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.',
-'noarticletext-nopermission' => '‘{{FULLPAGENAME}}’ 문서가 존재하지 않습니다.
-이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나, 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span>',
-'userpage-userdoesnotexist' => '‘<nowiki>$1</nowiki>’ 계정은 등록되어 있지 않습니다. 이 문서를 만들거나 편집하려면 계정이 존재 하는지 확인해주세요.',
+이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나,
+이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나,
+문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.',
+'noarticletext-nopermission' => '이 문서가 존재하지 않습니다.
+이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나,
+이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span>',
+'userpage-userdoesnotexist' => '‘$1’ 계정은 등록되어 있지 않습니다.
+이 문서를 만들거나 편집하려면 계정이 존재 하는지 확인해주세요.',
 'userpage-userdoesnotexist-view' => '"$1" 사용자 계정은 등록되지 않았습니다.',
 'blocked-notice-logextract' => '이 사용자는 현재 차단되어 있습니다.
 해당 사용자의 최근 차단 기록을 참고하십시오:',
-'clearyourcache' => "'''참고:''' 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 갱신해야 합니다.
+'clearyourcache' => "'''참고:''' 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
 * '''파이어폭스 / 사파리''': ''Shift'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5'' 또는 ''Ctrl-R'' 을 입력 (Mac에서는 ''⌘-R'')
 * '''구글 크롬''': ''Ctrl-Shift-R''키를 입력 (Mac에서는 ''⌘-Shift-R'')
 * '''인터넷 익스플로러''': ''Ctrl'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5''를 입력.
 * '''컨커러''': ''새로고침''을 클릭하거나 ''F5''를 입력
-* '''오페라''': 도구→설정에서 캐시를 비움",
-'usercssyoucanpreview' => "'''안내''': CSS 문서를 저장하기 전에 ‘{{int:showpreview}}’ 기능을 통해 작동을 확인해주세요.",
-'userjsyoucanpreview' => "'''안내''': JS 문서를 저장하기 전에 ‘{{int:showpreview}}’ 기능을 통해 작동을 확인해주세요.",
-'usercsspreview' => "'''이것은 사용자 CSS의 미리 보기이며, 아직 저장하지 않았다는 것을 주의해 주세요!'''",
-'userjspreview' => "'''이것은 자바스크립트 미리 보기로, 아직 저장하지 않았다는 것을 주의해 주세요!'''",
+* '''오페라''': ''도구→설정''에서 캐시를 비움",
+'usercssyoucanpreview' => "'''안내''': CSS 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
+'userjsyoucanpreview' => "'''안내''': 자바스크립트 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
+'usercsspreview' => "'''이것은 사용자 CSS의 미리 보기입니다.'''
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
+'userjspreview' => "'''이것은 자바스크립트 미리 보기입니다'''
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
 'sitecsspreview' => "'''이것은 이 CSS의 미리 보기일 뿐입니다.'''
-'''아직 저장하지 않았다는 것을 주의해 주세요!'''",
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
 'sitejspreview' => "'''이것은 이 자바스크립트 코드의 미리 보기일 뿐입니다.'''
-'''아직 저장하지 않았다는 것을 주의해 주세요!'''",
-'userinvalidcssjstitle' => "'''경고''': ‘$1’ 스킨은 없습니다.
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
+'userinvalidcssjstitle' => "'''경고''': \"\$1\" 스킨은 없습니다.
 .css와 .js 문서의 제목은 {{ns:user}}:Foo/vector.css 처럼 소문자로 써야 합니다. {{ns:user}}:Foo/Vector.css 와 같이 대문자로 쓸 경우 작동하지 않습니다.",
 'updated' => '(바뀜)',
-'note' => "'''주의:'''",
-'previewnote' => "'''이 화면은 미리 보기입니다'''. 편집한 내용은 아직 저장되지 않았습니다!",
+'note' => "'''참고:'''",
+'previewnote' => "'''이 화면은 미리 보기입니다.'''
+편집한 내용은 아직 저장되지 않았습니다!",
 'continue-editing' => '계속 편집하기',
-'previewconflict' => '이 미리 보기는 저장할 때의 모습, 즉 위쪽 편집창의 문서를 반영합니다.',
-'session_fail_preview' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.
-다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인해 보십시오.'''",
+'previewconflict' => '이 미리 보기는 저장할 때의 모습으로 위쪽 편집창의 문서를 반영합니다.',
+'session_fail_preview' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.'''
+다시 시도하세요.
+다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인하세요.",
 'session_fail_preview_html' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.'''
 
 {{SITENAME}}에서 HTML 입력을 허용하기 때문에, 자바스크립트 공격을 막기 위해 미리 보기는 숨겨져 있습니다.
 
-'''다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인을 해 보십시오.'''",
-'token_suffix_mismatch' => "'''저장하려는 내용의 문장 부호가 망가져 있습니다. 문서 보호를 위해 해당 내용을 저장하지 않습니다. 버그가 있는 익명 프록시 서비스 등을 사용할 때 이런 문제가 발생할 수 있습니다.'''",
+'''적합하게 편집을 시도했다면 다시 시도하세요'''
+다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인하세요.",
+'token_suffix_mismatch' => "'''저장하려는 내용의 문장 부호가 망가져 있습니다.'''
+문서 보호를 위해 해당 내용을 저장하지 않습니다.
+버그가 있는 익명 프록시 서비스 등을 사용할 때 이런 문제가 발생할 수 있습니다.",
 'edit_form_incomplete' => "'''편집의 일부 내용이 서버에 전달되지 않았습니다. 당신의 편집이 손상되지 않았는지 확인하고 다시 시도해 주십시오.'''",
 'editing' => '$1 편집하기',
 'creating' => '$1 만들기',
@@ -1017,39 +1064,42 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 \"{{int:savearticle}}\"을 누르면 '''위쪽의 편집 내역만''' 저장됩니다.",
 'yourtext' => '당신의 편집',
 'storedversion' => '현재 문서',
-'nonunicodebrowser' => "'''주의: 당신의 웹 브라우저가 유니코드를 완벽하게 지원하지 않습니다. 몇몇 문자가 16진수 코드로 나타날 수 있습니다.'''",
-'editingold' => "'''경고:
-지금 옛날 버전의 문서를 고치고 있습니다.
-이것을 저장하면 최근에 편집된 부분이 사라질 수 있습니다.'''",
+'nonunicodebrowser' => "'''주의: 당신의 웹 브라우저가 유니코드를 완벽하게 지원하지 않습니다.'''
+아스키가 아닌 문자가 16진수 코드로 나타날 수 있습니다.",
+'editingold' => "'''경고: 지금 이전 버전의 문서를 고치고 있습니다.'''
+이것을 저장하면 최근에 편집된 부분이 사라질 수 있습니다.",
 'yourdiff' => '차이',
-'copyrightwarning' => "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />
+'copyrightwarning' => "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요).
+만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />
 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
 '''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
-'copyrightwarning2' => "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />
+'copyrightwarning2' => "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요.
+만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />
 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 내용에 대해서는 $1 문서를 읽어 주세요).
 '''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
 'longpageerror' => "'''오류: 문서의 크기가 {{PLURAL:$1|$1킬로바이트}}로 최대 크기인 {{PLURAL:$2|$2킬로바이트}}보다 큽니다.'''
 저장할 수 없습니다.",
-'readonlywarning' => "'''주의: 데이터베이스가 관리를 위해 잠겨 있습니다. 따라서 문서를 편집한 내용을 지금 저장할 수 없습니다.
-편집 내용을 복사 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.'''
+'readonlywarning' => "'''주의: 데이터베이스가 관리를 위해 잠겨 있습니다. 따라서 문서를 편집한 내용을 지금 저장할 수 없습니다.'''
+편집 내용을 복사 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.
 
 잠근 관리자가 남긴 설명은 다음과 같습니다: $1",
 'protectedpagewarning' => "'''경고: 이 문서는 관리자만 편집할 수 있도록 보호되어 있습니다.'''
 이 문서의 최근 기록을 참고하십시오:",
-'semiprotectedpagewarning' => "'''ì\95\88ë\82´:''' 이 문서는 계정을 등록한 사용자만이 편집할 수 있도록 잠겨 있습니다.
+'semiprotectedpagewarning' => "'''참고:''' 이 문서는 계정을 등록한 사용자만이 편집할 수 있도록 잠겨 있습니다.
 이 문서의 최근 기록을 참고하십시오:",
 'cascadeprotectedwarning' => "'''주의''': 이 문서는 잠겨 있어 관리자만 편집할 수 있습니다. 연쇄적 보호가 걸린 다음 {{PLURAL:$1|문서}}에서 이 문서를 사용하고 있습니다:",
-'titleprotectedwarning' => "'''경고: 이 문서는 잠겨 있어, 문서를 생성하려면 [[Special:ListGroupRights|특정 권한]]이 필요합니다.'''
+'titleprotectedwarning' => "'''경고: 이 문서는 잠겨 있어, 문서를 만드려면 [[Special:ListGroupRights|특정 권한]]이 필요합니다.'''
 아래 문서의 최근 기록을 참고하십시오:",
 'templatesused' => '이 문서에서 사용한 {{PLURAL:$1|틀}}:',
 'templatesusedpreview' => '이 미리 보기에서 사용하고 있는 {{PLURAL:$1|틀}}:',
-'templatesusedsection' => '이 에서 사용하고 있는 {{PLURAL:$1|틀}}:',
+'templatesusedsection' => '이 문단에서 사용하고 있는 {{PLURAL:$1|틀}}:',
 'template-protected' => '(보호됨)',
 'template-semiprotected' => '(준보호됨)',
-'hiddencategories' => '이 문서는 다음 숨은 분류 $1 개에 속해 있습니다:',
+'hiddencategories' => '이 문서는 다음 숨은 분류 $1개에 속해 있습니다:',
 'edittools' => '<!-- 이 문서는 편집 창과 파일 올리기 창에 출력됩니다. -->',
 'nocreatetitle' => '문서 만들기 제한',
-'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 생성하는 것은 제한되어 있습니다. 이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들 수 있습니다]].',
+'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 만드는 것은 제한되어 있습니다.
+이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들 수 있습니다]].',
 'nocreate-loggedin' => '새 문서를 만들 권한이 없습니다.',
 'sectioneditnotsupported-title' => '부분 편집 지원 안됨',
 'sectioneditnotsupported-text' => '이 문서에서는 문단 편집을 지원하지 않습니다.',
@@ -1060,14 +1110,15 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 
 이 문서를 계속 편집하는 것이 적합한 것인지 확인해주세요.
 편의를 위해 삭제와 이동 기록을 다음과 같이 제공합니다:",
-'moveddeleted-notice' => '이 문서는 삭제되었습니다. 이 문서의 삭제/이동 기록은 다음과 같습니다.',
+'moveddeleted-notice' => '이 문서는 삭제되었습니다.
+이 문서의 삭제 및 이동 기록은 다음과 같습니다.',
 'log-fulllog' => '전체 기록 보기',
 'edit-hook-aborted' => '훅에 의해 편집이 중단되었습니다.
 아무런 설명도 주어지지 않았습니다.',
 'edit-gone-missing' => '문서를 저장하지 못했습니다.
 문서가 삭제된 것 같습니다.',
 'edit-conflict' => '편집 충돌.',
-'edit-no-change' => '문서에 아무런 변화가 없기 때문에, 당신의 편집은 무시되었습니다.',
+'edit-no-change' => '문서에 아무런 변화가 없기 때문에 당신의 편집은 무시되었습니다.',
 'edit-already-exists' => '새 문서를 만들 수 없습니다.
 그 문서는 이미 존재합니다.',
 'defaultmessagetext' => '기본 메세지 내용',
@@ -1077,8 +1128,8 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 
 $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'expensive-parserfunction-category' => '느린 파서 함수 호출을 너무 많이 하는 문서',
-'post-expand-template-inclusion-warning' => '경고: 틀 포함 크기가 너무 큽니다.
-일부 틀은 포함되지 않을 수 있습니다.',
+'post-expand-template-inclusion-warning' => "'''경고:''' 틀 포함 크기가 너무 큽니다.
+일부 틀은 포함되지 않을 수 있습니다.",
 'post-expand-template-inclusion-category' => '사용한 틀의 크기가 지나치게 큰 문서의 목록',
 'post-expand-template-argument-warning' => "'''경고:''' 이 문서는 전개 후 크기가 너무 큰 틀 변수가 하나 이상 포함되어 있습니다.
 이 변수들은 생략되었습니다.",
@@ -1090,13 +1141,14 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'node-count-exceeded-warning' => '페이지가 노드 수를 초과하였습니다.',
 'expansion-depth-exceeded-category' => '페이지가 확장 깊이를 초과하였습니다.',
 'expansion-depth-exceeded-warning' => '페이지가 확장 깊이를 초과하였습니다',
-'parser-unstrip-loop-warning' => 'ì\8a¤í\8a¸ë¦½í\95\98ì§\80 ì\95\8aë\8a\94 ë°\98ë³µì\9d´ ê°\90ì§\80ë\90¨',
+'parser-unstrip-loop-warning' => 'ì\8a¤í\8a¸ë¦½í\95\98ì§\80 ì\95\8aë\8a\94 ë°\98ë³µì\9d´ ê°\90ì§\80ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤',
 'parser-unstrip-recursion-limit' => '스트립하지 않는 재귀 한도가 초과됨 ($1)',
 
 # "Undo" feature
-'undo-success' => '이 편집을 되돌리려면 아래의 변경되는 사항을 확인한 후 저장해주세요.',
+'undo-success' => '편집을 되돌릴 수 있습니다.
+편집 되돌리기를 완료하려면 이 편집을 되돌리려면 아래의 변경되는 사항을 확인한 후 저장해주세요.',
 'undo-failure' => '중간의 다른 편집과 충돌하여 이 편집을 되돌릴 수 없습니다.',
-'undo-norev' => '문서가 없거나 삭제되었기 때문에, 편집을 되돌릴 수 없습니다.',
+'undo-norev' => '문서가 없거나 삭제되었기 때문에 편집을 되돌릴 수 없습니다.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|토론]]) 의 $1판 편집을 되돌림',
 
 # Account creation failure
@@ -1111,7 +1163,7 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'currentrev' => '최신판',
 'currentrev-asof' => '$1 기준 최신판',
 'revisionasof' => '$1 판',
-'revision-info' => '$2 사용자의 $1 버전',
+'revision-info' => '$2 사용자의 $1 ',
 'previousrevision' => '← 이전 판',
 'nextrevision' => '다음 판 →',
 'currentrevisionlink' => '최신판',
@@ -1121,9 +1173,8 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'page_first' => '처음',
 'page_last' => '마지막',
 'histlegend' => "비교하려는 판을 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />
-설명: '''({{int:cur}})''' = 최신 판과 비교,
-'''({{int:last}})''' = 이전 판과 비교, '''{{int:minoreditletter}}'''= 사소한 편집",
-'history-fieldset-title' => '문서의 변경 내력 찾기',
+설명: '''({{int:cur}})''' = 최신 판과 비교, '''({{int:last}})''' = 이전 판과 비교, '''{{int:minoreditletter}}'''= 사소한 편집",
+'history-fieldset-title' => '문서의 바뀐 내력 찾기',
 'history-show-deleted' => '삭제된 것만',
 'histfirst' => '초기',
 'histlast' => '최신',
@@ -1141,8 +1192,8 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 # Revision deletion
 'rev-deleted-comment' => '(편집 요약 삭제됨)',
 'rev-deleted-user' => '(계정 이름 삭제됨)',
-'rev-deleted-event' => '(로그 삭제됨)',
-'rev-deleted-user-contribs' => '[계정 이름/IP 주소 삭제됨 -  기여 목록에서 숨겨짐]',
+'rev-deleted-event' => '(기록 동작 삭제됨)',
+'rev-deleted-user-contribs' => '[계정 이름 또는 IP 주소 삭제됨 -  기여 목록에서 숨겨짐]',
 'rev-deleted-text-permission' => "해당 편집이 문서 역사에서 '''삭제'''되었습니다.
 자세한 사항은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 볼 수 있습니다.",
 'rev-deleted-text-unhide' => "해당 편집이 문서 역사에서 '''삭제'''되었습니다.
@@ -1152,24 +1203,24 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 자세한 사항은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 볼 수 있습니다.
 이 편집을 보기를 원하신다면 [$1 해당 편집]을 볼 수 있습니다.",
 'rev-deleted-text-view' => "이 문서의 편집은 역사에서 '''삭제'''되었습니다.
-삭제된 편집을 볼 수 있으며, [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
+삭제된 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
 'rev-suppressed-text-view' => "이 문서의 편집은 역사에서 '''숨겨져''' 있습니다.
-숨겨진 편집을 볼 수 있으며, [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 자세한 내용을 볼 수 있습니다.",
+숨겨진 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 자세한 내용을 볼 수 있습니다.",
 'rev-deleted-no-diff' => "특정 판이 문서 역사에서 '''삭제'''되었기 때문에 비교할 수 없습니다.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
 'rev-suppressed-no-diff' => "두 판 중 일부가 '''삭제'''되었기 때문에 문서 편집 내용을 비교할 수 없습니다.",
 'rev-deleted-unhide-diff' => "이 비교에 사용된 판 가운데 하나가 '''삭제'''되었습니다.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에 자세한 내용을 찾아볼 수 있습니다.
 계속 작업하고 싶다면 여전히 [$1 비교 보기]를 계속할 수 있습니다.",
-'rev-suppressed-unhide-diff' => "ì\9d´ ë¹\84êµ\90ì\97\90 ì\82¬ì\9a©ë\90\9c í\8c\90 ê°\80ì\9a´ë\8d° í\95\98ë\82\98ê°\80 '''ì\88¨ê¹\80'''ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.
+'rev-suppressed-unhide-diff' => "ì\9d´ ë¹\84êµ\90ì\97\90 ì\82¬ì\9a©ë\90\9c í\8c\90 ê°\80ì\9a´ë\8d° í\95\98ë\82\98ê°\80 '''ì\88¨ê²¨ì ¸''' ì\9e\88ì\8aµë\8b\88ë\8b¤.
 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에 자세한 내용이 있을 수 있습니다.
 계속 작업하고 싶다면 [$1 해당 편집]을 볼 수도 있습니다.",
 'rev-deleted-diff-view' => "비교 대상 중 어느 한 판이 '''삭제'''되었습니다.
-삭제된 판과 다른 판의 비교를 할 수 있습니다; ì\9e\90ì\84¸í\95\9c ê²\83ì\9d\80 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ì\82­ì \9c ê¸°ë¡\9d\9d\84 ì°¸ê³ í\95\98ì\8b­ì\8b\9cì\98¤.",
+삭제된 판과 다른 판의 비교를 할 수 있습니다. ì\9e\90ì\84¸í\95\9c ë\82´ì\9a©ì\9d\80 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ì\82­ì \9c ê¸°ë¡\9d\97\90ì\84\9c ì°¾ì\95\84ë³¼ ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.",
 'rev-suppressed-diff-view' => "비교하려는 판 중 일부가 '''숨겨져''' 있습니다.
-숨겨진 판과 이 판의 편집 비교가 가능합니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 해당 숨김 기록]에서 볼 수 있습니다.",
+숨겨진 판과 이 판의 편집 비교를 할 수 있습니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 해당 숨김 기록]에서 찾아볼 수 있습니다.",
 'rev-delundel' => '보이기/숨기기',
-'rev-showdeleted' => '표시',
+'rev-showdeleted' => '보이기',
 'revisiondelete' => '판 삭제/복구',
 'revdelete-nooldid-title' => '대상 판이 잘못되었습니다.',
 'revdelete-nooldid-text' => '이 기능을 수행할 특정 판을 제시하지 않았거나 해당 판이 없습니다. 또는 현재 판을 숨기려 하고 있을 수도 있습니다.',
@@ -1180,18 +1231,19 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'revdelete-no-file' => '해당 파일이 존재하지 않습니다.',
 'revdelete-show-file-confirm' => '정말 "<nowiki>$1</nowiki>" 파일의 삭제된 $2 $3 버전을 보시겠습니까?',
 'revdelete-show-file-submit' => '예',
-'revdelete-selected' => "'''[[:$1]]의 {{PLURAL:$2|선택ë\90\9c í\8c\90}}:'''",
-'logdelete-selected' => "{{PLURAL:$1}}'''선택한 로그:'''",
+'revdelete-selected' => "'''[[:$1]]의 {{PLURAL:$2|선택í\95\9c í\8c\90}}:'''",
+'logdelete-selected' => "'''{{PLURAL:$1|선택한 기록}}:'''",
 'revdelete-text' => "'''삭제된 판과 기록은 문서 역사와 기록에 계속 나타나지만, 내용은 공개되지 않을 것입니다.'''
 {{SITENAME}}의 다른 관리자는 다른 제한이 설정되어 있지 않는 한, 숨겨진 내용을 볼 수 있고, 같은 도구를 이용해 복구할 수 있습니다.",
 'revdelete-confirm' => '이 작업을 수행하는 것의 결과를 알고 있으며, [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지 확인해주세요.',
 'revdelete-suppress-text' => "숨기기는 '''다음 경우에만''' 사용되어야 합니다:
+* 잠재적인 비방 정보
 * 부적절한 개인 정보
 *: 집 주소, 전화번호, 주민등록번호 등",
 'revdelete-legend' => '보이기 제한을 설정',
 'revdelete-hide-text' => '판의 내용을 숨기기',
 'revdelete-hide-image' => '파일을 숨기기',
-'revdelete-hide-name' => '로그 내용과 대상을 숨기기',
+'revdelete-hide-name' => '기록 내용과 대상을 숨기기',
 'revdelete-hide-comment' => '편집 요약을 숨기기',
 'revdelete-hide-user' => '편집자의 계정 이름/IP를 숨기기',
 'revdelete-hide-restricted' => '관리자도 보지 못하게 숨기기',
@@ -1202,13 +1254,13 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'revdelete-unsuppress' => '복구된 판에 대한 제한을 해제',
 'revdelete-log' => '이유:',
 'revdelete-submit' => '선택한 {{PLURAL:$1|판}}에 적용',
-'revdelete-success' => "'''í\8c\90ì\9d\98 ë³´ì\9d´ê¸° ì\84¤ì \95ì\9d´ ì\84±ê³µì \81ì\9c¼ë¡\9c ë³\80ê²½ë\90\98었습니다.'''",
+'revdelete-success' => "'''í\8c\90ì\9d\98 ë³´ì\9d´ê¸° ì\84¤ì \95ì\9d\84 ì\84±ê³µì \81ì\9c¼ë¡\9c ë°\94꾸었습니다.'''",
 'revdelete-failure' => "'''특정 판 보기 설정을 바꾸지 못했습니다:'''
 $1",
-'logdelete-success' => "'''로그의 보이기 설정이 성공적으로 변경되었습니다.'''",
-'logdelete-failure' => "'''로그 보이기 설정을 바꾸지 못했습니다:'''
+'logdelete-success' => "'''기록 보이기 설정을 성공적으로 바꾸었습니다.'''",
+'logdelete-failure' => "'''기록 보이기 설정을 바꾸지 못했습니다:'''
 $1",
-'revdel-restore' => 'ë³´ì\9d´ê¸° ì\84¤ì \95 ë³\80ê²½',
+'revdel-restore' => 'ë³´ì\9d´ê¸° ì\84¤ì \95 ë°\94꾸기',
 'revdel-restore-deleted' => '삭제된 판',
 'revdel-restore-visible' => '공개된 판',
 'pagehist' => '문서 역사',
@@ -1221,12 +1273,13 @@ $1",
 여기에 접근할 수 없습니다.',
 'revdelete-modify-missing' => '판 ID $1을 수정하는 중 오류 발생: 데이터베이스에 존재하지 않습니다!',
 'revdelete-no-change' => "'''경고:''' $1 $2에 해당하는 항목은 이미 같은 보이기 설정이 설정되어 있습니다.",
-'revdelete-concurrent-change' => '$1 $2에 수정된 항목을 ê°±ì\8b í\95\98ë©´ì\84\9c ì\98¤ë¥\98 ë°\9cì\83\9d: ì\9d´ë\9f° í\98\84ì\83\81ì\9d\80 ë\8b¹ì\8b ì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\95\98ê³  ì\9e\88ì\9d\84 ë\95\8c ë\8b¤ë¥¸ ì\82¬ë\9e\8cì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\96\88기 ë\95\8c문ì\97\90 ë°\9cì\83\9dí\95©ë\8b\88ë\8b¤.
-관련 로그를 확인해 보세요.',
+'revdelete-concurrent-change' => '$1 $2에 수정된 항목을 ì\83\88ë¡\9c ê³ ì¹\98ë©´ì\84\9c ì\98¤ë¥\98 ë°\9cì\83\9d: ì\9d´ë\9f° í\98\84ì\83\81ì\9d\80 ë\8b¹ì\8b ì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\95\98ê³  ì\9e\88ì\9d\84 ë\95\8c ë\8b¤ë¥¸ ì\82¬ë\9e\8cì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\96\88기 ë\95\8c문ì\97\90 ë°\9cì\83\9dí\95©ë\8b\88ë\8b¤.
+관련 기록을 확인해 보세요.',
 'revdelete-only-restricted' => '$1 $2 버전 숨기기 오류: 다른 숨기기 설정을 같이 설정하지 않고 관리자가 보지 못하도록 특정 판을 숨길 수 없습니다.',
 'revdelete-reason-dropdown' => '*일반적인 삭제 이유
 ** 저작권 침해
-** 부적절한 개인 정보',
+** 부적절한 개인 정보
+** 잠재적인 비방 정보',
 'revdelete-otherreason' => '다른 이유/부가적인 이유',
 'revdelete-reasonotherlist' => '다른 이유',
 'revdelete-edit-reasonlist' => '삭제 이유 편집',
@@ -1234,8 +1287,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => '숨기기 기록',
-'suppressionlogtext' => '다음은 관리자로부터 숨겨진 내용에 관한 삭제, 차단 기록입니다.
-현재 차단된 사용자 목록을 보시려면 [[Special:BlockList|차단된 사용자 목록]]을 참조하십시오.',
+'suppressionlogtext' => '다음은 관리자로부터 숨겨진 내용에 관한 삭제 차단 기록입니다.
+현재 차단된 사용자 목록을 보려면 [[Special:BlockList|차단된 사용자 목록]]을 참고하세요.',
 
 # History merging
 'mergehistory' => '문서 역사 합치기',
@@ -1263,7 +1316,7 @@ $1",
 'mergehistory-reason' => '이유:',
 
 # Merge log
-'mergelog' => '합병 기록',
+'mergelog' => '병합 기록',
 'pagemerge-logentry' => '[[$1]]을 [[$2]]에 병합 ($3판이 위로 옮겨짐)',
 'revertmerge' => '병합 해제',
 'mergelogpagetext' => '다음은 한 문서의 역사를 다른 문서의 역사와 합친 최근 기록입니다.',
@@ -1271,8 +1324,8 @@ $1",
 # Diffs
 'history-title' => '"$1"  문서의 변경 내력',
 'difference-title' => '"$1"의 두 판 사이의 차이',
-'difference-title-multipage' => '문서 "$1"과 "$2" 간의 차이',
-'difference-multipage' => '(문서의 차이)',
+'difference-title-multipage' => '문서 "$1"(와)과 "$2" 사이의 차이',
+'difference-multipage' => '(문서 사이의 차이)',
 'lineno' => '$1번째 줄:',
 'compareselectedversions' => '선택한 판을 비교하기',
 'showhideselectedversions' => '선택한 판을 보이기/숨기기',
@@ -1281,11 +1334,11 @@ $1",
 'diff-multi-manyusers' => '({{PLURAL:$2|한 사용자의|사용자 $2명 이상의}} 중간의 편집 $1개 숨겨짐)',
 
 # Search results
-'searchresults' => '검색 결과',
-'searchresults-title' => '"$1"에 대한 검색 결과',
+'searchresults' => '찾기 결과',
+'searchresults-title' => '"$1"에 대한 찾기 결과',
 'searchresulttext' => '{{SITENAME}}의 찾기 기능에 대한 자세한 정보는 [[{{MediaWiki:Helppage}}|{{int:help}}]] 문서를 참고해주세요.',
-'searchsubtitle' => "'''[[:$1]]''' 문서를 검색하고 있습니다. ([[Special:Prefixindex/$1|이름이 ‘$1’ 접두어로 시작하는 문서 목록]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|‘$1’ 문서를 가리키는 문서 목록]])",
-'searchsubtitleinvalid' => "검색 단어 '''$1'''",
+'searchsubtitle' => "'''[[:$1]]''' 문서를 고 있습니다. ([[Special:Prefixindex/$1|이름이 ‘$1’ 접두어로 시작하는 문서 목록]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|‘$1’ 문서를 가리키는 문서 목록]])",
+'searchsubtitleinvalid' => "찾은 단어 '''$1'''",
 'toomanymatches' => '일치하는 결과가 너무 많습니다. 다른 검색어를 입력해주세요.',
 'titlematches' => '문서 제목 일치',
 'notitlematches' => '해당하는 제목 없음',
@@ -1295,29 +1348,29 @@ $1",
 'nextn' => '뒤로 $1개',
 'prevn-title' => '이전 결과 $1개',
 'nextn-title' => '다음 결과 $1개',
-'shown-title' => '쪽마다 결과 $1 개씩 보이기',
+'shown-title' => '쪽마다 결과 $1개씩 보이기',
 'viewprevnext' => '보기: ($1 {{int:pipe-separator}} $2) ($3).',
-'searchmenu-legend' => '검색 설정',
+'searchmenu-legend' => '찾기 설정',
 'searchmenu-exists' => "'''이 위키에 \"[[:\$1]]\"의 이름을 가진 문서가 있습니다.'''",
-'searchmenu-new' => "'''ì\9d´ ì\9c\84í\82¤ì\97\90 \"[[:\$1]]\" ë¬¸ì\84\9c를 ë§\8cë\93\9cì\8b­ì\8b\9cì\98¤!'''",
+'searchmenu-new' => "'''ì\9d´ ì\9c\84í\82¤ì\97\90 \"[[:\$1]]\" ë¬¸ì\84\9c를 ë§\8cë\93\9cì\84¸ì\9a\94!'''",
 'searchhelp-url' => 'Help:목차',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|이 접두어로 시작하는 문서 찾기]]',
 'searchprofile-articles' => '일반 문서',
 'searchprofile-project' => '도움말 및 프로젝트 문서',
 'searchprofile-images' => '멀티미디어',
-'searchprofile-everything' => '모든 문서 검색',
-'searchprofile-advanced' => '고급 검색',
+'searchprofile-everything' => '모든 문서 찾기',
+'searchprofile-advanced' => '고급 찾기',
 'searchprofile-articles-tooltip' => '$1에서 찾기',
 'searchprofile-project-tooltip' => '$1에서 찾기',
 'searchprofile-images-tooltip' => '파일 찾기',
 'searchprofile-everything-tooltip' => '토론 문서를 포함한 모든 문서 찾기',
-'searchprofile-advanced-tooltip' => '다음 설정ë\90\9c ì\9d´ë¦\84ê³µê°\84ì\97\90ì\84\9c ì°¾ê¸°',
+'searchprofile-advanced-tooltip' => '다음 설정í\95\9c ì\9d´ë¦\84ê³µê°\84ì\97\90ì\84\9c ì°¾ê¸°',
 'search-result-size' => '$1 ($2 단어)',
 'search-result-category-size' => '문서 {{PLURAL:$1|1|$1}}개, 하위 분류 {{PLURAL:$2|1|$2}}개, 파일 {{PLURAL:$3|1|$3}}',
 'search-result-score' => '유사도: $1%',
 'search-redirect' => '($1에서 넘어옴)',
 'search-section' => '($1 문단)',
-'search-suggest' => '$1 문서를 찾고 계신가요?',
+'search-suggest' => '$1 문서를 찾고 있나요?',
 'search-interwiki-caption' => '자매 프로젝트',
 'search-interwiki-default' => '$1 결과:',
 'search-interwiki-more' => '(더 보기)',
@@ -1331,18 +1384,20 @@ $1",
 'showingresults' => '<strong>$2</strong>번 부터의 <strong>결과 $1개</strong>입니다.',
 'showingresultsnum' => "'''$2'''번 부터의 '''결과 $3개''' 입니다.",
 'showingresultsheader' => "'''$4''' 검색어에 대하여 결과 '''$3'''개 중 {{PLURAL:$5|'''$1'''개|'''$1 - $2'''번째}}를 보여 주고 있습니다.",
-'nonefound' => "'''참고''': 몇개의 이름공간만 기본 검색 범위입니다. 토론이나 틀 등의 모든 자료를 검색하기 위해서는 접두어로 '''all:''' 어떤 이름공간을 위해서는 접두어로 그 이름공간을 쓸 수 있습니다.",
-'search-nonefound' => '검색 결과가 없습니다.',
-'powersearch' => '찾기',
-'powersearch-legend' => '고급 검색',
+'nonefound' => "'''참고''': 몇개의 이름공간만 기본 찾을 범위입니다. 토론이나 틀 등의 모든 자료를 찾하기 위해서는 접두어로 '''all:''' 어떤 이름공간을 위해서는 접두어로 그 이름공간을 쓸 수 있습니다.",
+'search-nonefound' => '찾은 결과가 없습니다.',
+'powersearch' => '고급 찾기',
+'powersearch-legend' => '고급 찾기',
 'powersearch-ns' => '다음의 이름공간에서 찾기:',
 'powersearch-redir' => '넘겨주기 목록',
-'powersearch-field' => '검색',
+'powersearch-field' => '찾기',
 'powersearch-togglelabel' => '확인:',
 'powersearch-toggleall' => '모두 선택',
 'powersearch-togglenone' => '모두 선택하지 않음',
-'search-external' => '외부 검색',
-'searchdisabled' => '{{SITENAME}} 검색 기능이 비활성화되어 있습니다. 기능이 작동하지 않는 동안에는 구글(Google)을 이용해 검색할 수 있습니다. 검색 엔진의 내용은 최근 것이 아닐 수 있다는 점을 주의해주세요.',
+'search-external' => '외부 찾기',
+'searchdisabled' => '{{SITENAME}} 찾기 기능이 비활성화되어 있습니다.
+기능이 작동하지 않는 동안에는 구글(Google)을 이용해 찾을 수 있습니다.
+검색 엔진의 내용은 최신이 아닐 수 있다는 점을 주의해주세요.',
 
 # Quickbar
 'qbsettings' => '빨리가기 맞춤',
@@ -1374,7 +1429,7 @@ $1",
 'prefs-watchlist-days-max' => '최대 $1{{PLURAL:$1|일}}',
 'prefs-watchlist-edits' => '주시문서 목록에서 볼 편집 수:',
 'prefs-watchlist-edits-max' => '최대 개수: 1000',
-'prefs-watchlist-token' => '주시문서 토큰:',
+'prefs-watchlist-token' => '주시문서 목록 토큰:',
 'prefs-misc' => '기타',
 'prefs-resetpass' => '비밀번호 바꾸기',
 'prefs-changeemail' => '이메일 주소 바꾸기',
@@ -1384,7 +1439,7 @@ $1",
 'saveprefs' => '저장',
 'resetprefs' => '저장하지 않은 설정 되돌리기',
 'restoreprefs' => '모두 기본 설정으로 되돌리기',
-'prefs-editing' => '편집상자',
+'prefs-editing' => '편집 상자',
 'prefs-edit-boxsize' => '편집 창의 크기',
 'rows' => '줄 수:',
 'columns' => '열 수:',
@@ -1393,10 +1448,10 @@ $1",
 'stub-threshold' => '링크를 <a href="#" class="stub">토막글</a> 형식으로 표시할 문서 크기 (바이트 수):',
 'stub-threshold-disabled' => '비활성화됨',
 'recentchangesdays' => '최근 바뀜에 표시할 날짜 수:',
-'recentchangesdays-max' => '(최대 $1일)',
+'recentchangesdays-max' => '최대 $1일',
 'recentchangescount' => '기본으로 표시할 편집 수:',
 'prefs-help-recentchangescount' => '이 설정은 최근 바뀜, 문서 역사와 기록에 적용됩니다.',
-'prefs-help-watchlist-token' => '아래에 비밀 값을 넣으면 주시문서에 대한 RSS 피드가 생성됩니다.
+'prefs-help-watchlist-token' => '아래에 비밀 값을 넣으면 주시문서 목록에 대한 RSS 피드가 생성됩니다.
 비밀 값을 알고 있는 사람이라면 누구나 피드를 읽을 수 있으므로 안전한 값을 입력해주세요.
 임의로 만들어진 다음 값을 사용할 수도 있습니다: $1',
 'savedprefs' => '설정을 저장했습니다.',
@@ -1418,15 +1473,15 @@ $1",
 'timezoneregion-indian' => '인도양',
 'timezoneregion-pacific' => '태평양',
 'allowemail' => '다른 사용자가 보낸 이메일을 받음',
-'prefs-searchoptions' => '검색 설정',
+'prefs-searchoptions' => '찾기 설정',
 'prefs-namespaces' => '이름공간',
-'defaultns' => '다음 이름공간에서 검색하기:',
+'defaultns' => '다음 이름공간에서 기:',
 'default' => '기본값',
 'prefs-files' => '파일',
 'prefs-custom-css' => '사용자 CSS',
 'prefs-custom-js' => '사용자 자바스크립트',
 'prefs-common-css-js' => '모든 스킨에 적용되는 공통 CSS/자바스크립트:',
-'prefs-reset-intro' => '이 사이트의 기본 값으로 환경 설정을 되돌릴 수 있습니다.
+'prefs-reset-intro' => '이 사이트의 기본값으로 환경 설정을 되돌릴 수 있습니다.
 복구할 수 없습니다.',
 'prefs-emailconfirm-label' => '이메일 인증:',
 'prefs-textboxsize' => '편집창의 크기',
@@ -1441,17 +1496,20 @@ $1",
 'prefs-help-variant' => '위키 내용을 표시할 때 사용할 언어 변종이나 철자 체계를 선택해주세요.',
 'yournick' => '새 서명:',
 'prefs-help-signature' => '토론 문서에 글을 쓴 후에는 마지막에 서명을 해야 합니다.  “<nowiki>~~~~</nowiki>” 기호를 추가하면 서명과 글 작성 시각이 자동으로 입력됩니다.',
-'badsig' => '서명이 잘못되었습니다. HTML 태그를 확인해주세요.',
+'badsig' => '서명이 잘못되었습니다.
+HTML 태그를 확인하세요.',
 'badsiglength' => '서명이 너무 깁니다.
 서명은 $1자보다 짧아야 합니다.',
 'yourgender' => '성별:',
 'gender-unknown' => '무응답',
 'gender-male' => '남성',
 'gender-female' => '여성',
-'prefs-help-gender' => '선택 사항: 소프트웨어에서 성별에 따른 언어 문제를 해결하기 위해 사용됩니다. 이 정보는 공개됩니다.',
+'prefs-help-gender' => '선택 사항: 소프트웨어에서 성별에 따른 언어 문제를 해결하기 위해 사용됩니다.
+이 정보는 공개됩니다.',
 'email' => '이메일',
-'prefs-help-realname' => '실명 기입은 자유입니다. 실명을 입력할 경우 문서 기여에 자신의 이름이 들어가게 됩니다.',
-'prefs-help-email' => '이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호 변경을 위해 필요합니다.',
+'prefs-help-realname' => '실명 기입은 자유입니다.
+실명을 입력할 경우 문서 기여에 자신의 이름이 들어가게 됩니다.',
+'prefs-help-email' => '이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호 바꾸기를 위해 필요합니다.',
 'prefs-help-email-others' => '당신은 자신의 문서나 토론 문서에 있는 이메일 보내기 링크로 다른 사용자가 연락할 수 있게 할 수도 있습니다.
 이 경우에도 당신의 이메일 주소는 다른 사용자가 연락할 때 공개되지 않습니다.',
 'prefs-help-email-required' => '이메일 주소가 필요합니다.',
@@ -1466,13 +1524,13 @@ $1",
 'prefs-advancedsearchoptions' => '고급 설정',
 'prefs-advancedwatchlist' => '고급 설정',
 'prefs-displayrc' => '보이기 설정',
-'prefs-displaysearchoptions' => '표시 설정',
+'prefs-displaysearchoptions' => '보이기 설정',
 'prefs-displaywatchlist' => '표시 설정',
 'prefs-diffs' => '차이',
 
 # User preference: e-mail validation using jQuery
 'email-address-validity-valid' => '이메일 주소가 유효한 것으로 보입니다.',
-'email-address-validity-invalid' => 'ì\9c í\9a¨í\95\9c ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ì\9e\85ë ¥í\95´ì£¼ì\8b­ì\8b\9cì\98¤.',
+'email-address-validity-invalid' => 'ì\9c í\9a¨í\95\9c ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ì\9e\85ë ¥í\95´ì£¼ì\84¸ì\9a\94.',
 
 # User rights
 'userrights' => '사용자 권한 관리',
@@ -1530,10 +1588,10 @@ $1",
 'right-move' => '문서 이동',
 'right-move-subpages' => '문서와 하위 문서 이동하기',
 'right-move-rootuserpages' => '최상위 사용자 문서 이동',
-'right-movefile' => '파일 옮기기',
-'right-suppressredirect' => '문ì\84\9c ì\9d´ë\8f\99í\95  ë\95\8c ì\98\9bë\82  이름으로 된 넘겨주기를 남기지 않기',
+'right-movefile' => '파일 옮기기',
+'right-suppressredirect' => '문ì\84\9c ì\9d´ë\8f\99í\95  ë\95\8c ì\9d´ì \84 이름으로 된 넘겨주기를 남기지 않기',
 'right-upload' => '파일 올리기',
-'right-reupload' => 'ì\9d´ë¯¸ ì¡´ì\9e¬í\95\98ë\8a\94 í\8c\8cì\9d¼ì\9d\84 ë\8b¤ì\8b\9c ì\97\85ë¡\9cë\93\9c',
+'right-reupload' => 'ì\9d´ë¯¸ ì¡´ì\9e¬í\95\98ë\8a\94 í\8c\8cì\9d¼ì\9d\84 ë\8b¤ì\8b\9c ì\98¬ë¦¬ê¸°',
 'right-reupload-own' => '자신이 이미 올린 파일 덮어쓰기',
 'right-reupload-shared' => '공용의 파일을 무시하고 로컬에서 파일 올리기',
 'right-upload_by_url' => 'URL 주소에서 파일 올리기',
@@ -1548,7 +1606,7 @@ $1",
 'right-deleterevision' => '문서의 특정 판을 삭제 및 복구',
 'right-deletedhistory' => '삭제된 문서의 내용을 제외한 역사를 보기',
 'right-deletedtext' => '삭제된 문서의 내용과 편집상의 차이를 보기',
-'right-browsearchive' => '삭제된 문서 검색',
+'right-browsearchive' => '삭제된 문서 찾기',
 'right-undelete' => '삭제된 문서 복구',
 'right-suppressrevision' => '관리자도 보지 못하도록 숨겨진 판의 확인 및 복구',
 'right-suppressionlog' => '숨겨진 기록을 보기',
@@ -1561,14 +1619,14 @@ $1",
 'right-protect' => '보호 수준 변경 및 보호된 문서 편집',
 'right-editprotected' => '보호된 문서 편집 (연쇄적 보호 제외)',
 'right-editinterface' => '사용자 인터페이스를 편집',
-'right-editusercssjs' => '다른 사용자의 CSS와 JS 문서를 편집',
+'right-editusercssjs' => '다른 사용자의 CSS와 자바스크립트 문서를 편집',
 'right-editusercss' => '다른 사용자의 CSS 문서를 편집',
-'right-edituserjs' => '다른 사용자의 JS 문서를 편집',
+'right-edituserjs' => '다른 사용자의 자바스크립트 문서를 편집',
 'right-rollback' => '특정 문서를 편집한 마지막 사용자의 편집을 신속하게 되돌리기',
 'right-markbotedits' => '되돌리기를 봇의 편집으로 취급 가능',
 'right-noratelimit' => '편집이나 다른 행동 속도의 제한을 받지 않음',
 'right-import' => '다른 위키에서 문서 가져오기',
-'right-importupload' => 'í\8c\8cì\9d¼ ì\97\85ë¡\9cë\93\9c를 통해 문서 가져오기',
+'right-importupload' => 'í\8c\8cì\9d¼ ì\98¬ë¦¬ê¸°를 통해 문서 가져오기',
 'right-patrol' => '다른 사용자의 편집을 검토',
 'right-autopatrol' => '자신의 편집을 자동으로 검토',
 'right-patrolmarks' => '최근 바뀜에서 검토 표시를 보기',
@@ -1584,14 +1642,14 @@ $1",
 # User rights log
 'rightslog' => '사용자 권한 기록',
 'rightslogtext' => '사용자 권한 조정 기록입니다.',
-'rightslogentry' => '$1ì\9d\98 ê¶\8cí\95\9cì\9d\84 $2ì\97\90ì\84\9c $3(ì\9c¼)ë¡\9c ë³\80ê²½',
-'rightslogentry-autopromote' => 'ì\82¬ì\9a©ì\9e\90ì\9d\98 ê¶\8cí\95\9cì\9d´ ì\9e\90ë\8f\99ì \81ì\9c¼ë¡\9c $2ì\97\90ì\84\9c $3ì\9c¼ë¡\9c ë³\80ê²½ë\90\98었습니다.',
+'rightslogentry' => '$1ì\9d\98 ê¶\8cí\95\9cì\9d\84 $2ì\97\90ì\84\9c $3(ì\9c¼)ë¡\9c ë°\94ê¿\88',
+'rightslogentry-autopromote' => 'ì\82¬ì\9a©ì\9e\90ì\9d\98 ê¶\8cí\95\9cì\9d´ ì\9e\90ë\8f\99ì \81ì\9c¼ë¡\9c $2ì\97\90ì\84\9c $3ì\9c¼ë¡\9c ë°\94ë\80\8c었습니다.',
 'rightsnone' => '(없음)',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => '이 문서를 읽기',
 'action-edit' => '문서 편집',
-'action-createpage' => '문서 생성',
+'action-createpage' => '문서 만들기',
 'action-createtalk' => '토론 문서 만들기',
 'action-createaccount' => '새 계정 만들기',
 'action-minoredit' => '이 편집을 사소한 편집으로 표시하기',
@@ -1634,7 +1692,7 @@ $1",
 'recentchanges-label-newpage' => '새로운 문서',
 'recentchanges-label-minor' => '사소한 편집',
 'recentchanges-label-bot' => '봇의 편집',
-'recentchanges-label-unpatrolled' => '아직 검토ë\90\98ì§\80 ì\95\8aì\9d\80 í\8e¸ì§\91',
+'recentchanges-label-unpatrolled' => '아직 검토í\95\98ì§\80 ì\95\8aì\9d\80 í\8e¸ì§\91',
 'rcnote' => "다음은 $4 $5 까지의 '''$2'''일동안 바뀐 문서 '''$1'''개입니다.",
 'rcnotefrom' => "다음은 '''$2'''에서부터 바뀐 문서 '''$1'''개입니다.",
 'rclistfrom' => '$1 이래로 바뀐 문서',
@@ -1644,7 +1702,7 @@ $1",
 'rcshowhideanons' => '익명 사용자를 $1',
 'rcshowhidepatr' => '검토된 편집을 $1',
 'rcshowhidemine' => '내 편집을 $1',
-'rclinks' => 'ìµ\9cê·¼ $2ì\9d¼ê°\84ì\9d\98 $1ê°\9c ë³\80ê²½ 기록 보기<br />$3',
+'rclinks' => 'ìµ\9cê·¼ $2ì\9d¼ê°\84ì\9d\98 $1ê°\9c ë°\94ë\80\9c 기록 보기<br />$3',
 'diff' => '비교',
 'hist' => '역사',
 'hide' => '숨기기',
@@ -1653,19 +1711,19 @@ $1",
 'newpageletter' => '새글',
 'boteditletter' => '봇',
 'number_of_watching_users_pageview' => '[$1명이 주시하고 있음]',
-'rc_categories' => '다음 분류로 제한 (‘|’로 구분)',
+'rc_categories' => '다음 분류로 제한 ("|"로 구분)',
 'rc_categories_any' => '모두',
-'rc-change-size-new' => 'ë³\80ê²½ 후 $1 {{PLURAL:$1|바이트}}',
+'rc-change-size-new' => 'ë°\94ê¾¼ 후 $1 {{PLURAL:$1|바이트}}',
 'newsectionsummary' => '새 주제: /* $1 */',
-'rc-enhanced-expand' => 'ì\84¸ë¶\80 기록 보기 (자바스크립트 필요)',
-'rc-enhanced-hide' => 'ì\84¸ë¶\80기록 숨기기',
+'rc-enhanced-expand' => 'ì\9e\90ì\84¸í\95\9c 기록 보기 (자바스크립트 필요)',
+'rc-enhanced-hide' => 'ì\9e\90ì\84¸í\95\9c 기록 숨기기',
 'rc-old-title' => '처음에  "$1"라는 제목으로 만들어짐',
 
 # Recent changes linked
 'recentchangeslinked' => '가리키는 글의 바뀜',
 'recentchangeslinked-feed' => '가리키는 글의 바뀜',
 'recentchangeslinked-toolbox' => '가리키는 글의 바뀜',
-'recentchangeslinked-title' => '‘$1’ 문서에 관련된 문서 바뀜',
+'recentchangeslinked-title' => '"$1" 문서에 관련된 문서 바뀜',
 'recentchangeslinked-noresult' => '이 문서에서 링크하는 문서 중, 해당 기간에 바뀐 문서가 없습니다.',
 'recentchangeslinked-summary' => "여기를 가리키는 문서(분류일 경우 이 분류에 포함된 문서)에 대한 최근 바뀜이 나와 있습니다.
 [[Special:Watchlist|주시하는 문서]]는 '''굵은''' 글씨로 나타납니다.",
@@ -1686,7 +1744,7 @@ $1",
 
 이 문서의 최근 삭제 기록과 이동 기록을 참고하십시오:",
 'uploadtext' => "파일을 올리기 위해서는 아래의 양식을 채워주세요.
-[[Special:FileList|파일 목록]]에서 이전에 올라온 파일을 찾을 수 있습니다. [[Special:Log/upload|올리기 기록]]에는 파일이 올라온 기록이 남습니다. 삭제 기록은 [[Special:Log/delete|삭제 로그]]에서 볼 수 있습니다.
+[[Special:FileList|파일 목록]]에서 이전에 올라온 파일을 찾을 수 있습니다. [[Special:Log/upload|올리기 기록]]에는 파일이 올라온 기록이 남습니다. 삭제 기록은 [[Special:Log/delete|삭제 기록]]에서 볼 수 있습니다.
 
 문서에 파일을 넣으려면 아래 방법 중 하나를 사용하세요.
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' 파일의 온전한 모양을 사용하고자 할 때.
@@ -1706,18 +1764,21 @@ $1",
 'filestatus' => '저작권 상태:',
 'filesource' => '출처:',
 'uploadedfiles' => '파일 올리기',
-'ignorewarning' => '경고를 무시하고 저장합니다',
+'ignorewarning' => '경고를 무시하고 파일 저장',
 'ignorewarnings' => '모든 경고 무시하기',
 'minlength1' => '파일 이름은 적어도 1글자 이상이어야 합니다.',
-'illegalfilename' => '파일 이름 "$1"에는 문서 제목으로 허용되지 않는 글자가 포함되어 있습니다. 이름을 바꾸어 다시 시도해 주세요.',
+'illegalfilename' => '파일 이름 "$1"에는 문서 제목으로 허용되지 않는 글자가 포함되어 있습니다.
+이름을 바꾸어 다시 시도해 주세요.',
 'filename-toolong' => '파일 이름은 240바이트를 넘을 수 없습니다.',
-'badfilename' => '파일 이름이 ‘$1’(으)로 바뀌었습니다.',
+'badfilename' => '파일 이름이 "$1"로 바뀌었습니다.',
 'filetype-mime-mismatch' => '파일 확장자 ".$1"와 이 파일의 MIME($2)가 일치하지 않습니다.',
-'filetype-badmime' => '‘$1’ MIME을 가진 파일은 올릴 수 없습니다.',
+'filetype-badmime' => '"$1" MIME을 가진 파일은 올릴 수 없습니다.',
 'filetype-bad-ie-mime' => '인터넷 익스플로러가 잠재적으로 위험한 파일 형식으로 판단되어 사용이 금지된 "$1"로 인식할 수 있기 때문에 이 파일을 올릴 수 없습니다.',
-'filetype-unwanted-type' => "'''\".\$1\"''' 확장자는 추천하지 않습니다. 추천하는 {{PLURAL:\$3|파일 확장자}}는 \$2입니다.",
-'filetype-banned-type' => '{{PLURAL:$3$4}}\'\'\'".$1"\'\'\' 형식의 파일은 올릴 수 없습니다. $2 형식만 사용할 수 있습니다.',
-'filetype-missing' => '파일에 확장자(‘.jpg’ 등)가 없습니다.',
+'filetype-unwanted-type' => "'''\".\$1\"''' 확장자는 추천하지 않습니다.
+추천하는 {{PLURAL:\$3|파일 확장자}}는 \$2입니다.",
+'filetype-banned-type' => '{{PLURAL:$3$4}}\'\'\'".$1"\'\'\' 형식의 파일은 올릴 수 없습니다.
+$2 형식만 사용할 수 있습니다.',
+'filetype-missing' => '파일에 확장자(".jpg" 등)가 없습니다.',
 'empty-file' => '당신이 올린 파일이 비어 있습니다.',
 'file-too-large' => '올리려는 파일이 너무 큽니다.',
 'filename-tooshort' => '파일 이름이 너무 짧습니다.',
@@ -1727,16 +1788,16 @@ $1",
 'illegal-filename' => '이 파일 이름은 허용되지 않습니다.',
 'overwrite' => '기존 파일을 덮어쓰는 것은 허용되지 않습니다.',
 'unknown-error' => '알 수 없는 오류가 발생했습니다.',
-'tmp-create-error' => '임시 파일을 생성할 수 없습니다.',
+'tmp-create-error' => '임시 파일을 만들 수 없습니다.',
 'tmp-write-error' => '임시 파일을 작성하는 데 오류가 발생했습니다.',
-'large-file' => '파일 크기는 $1을 넘지 않는 것을 추천합니다. 이 파일의 크기는 $2입니다.',
+'large-file' => '파일 크기는 $1을 넘지 않는 것을 추천합니다.
+이 파일의 크기는 $2입니다.',
 'largefileserver' => '이 파일의 크기가 서버에서 허용된 설정보다 큽니다.',
 'emptyfile' => '올리려는 파일이 빈 파일입니다.
 파일 이름을 잘못 입력했을 수도 있습니다.
 올리려는 파일을 다시 한 번 확인해 주시기 바랍니다.',
 'windows-nonascii-filename' => '이 위키에서는 특수 문자가 포함된 파일 이름을 지원하지 않습니다.',
-'fileexists' => "같은 이름의 파일이 이미 있습니다.
-파일을 바꾸고 싶지 않다면 '''<tt>[[:$1]]</tt>''' 파일을 확인해 주세요.
+'fileexists' => "같은 이름의 파일이 이미 있습니다. 파일을 바꾸고 싶지 않다면 '''<tt>[[:$1]]</tt>''' 파일을 확인해 주세요.
 [[$1|thumb]]",
 'filepageexists' => "이 파일의 설명 문서가 '''<tt>[[:$1]]</tt>'''에 존재하지만, 이 이름을 가진 파일이 존재하지 않습니다.
 당신이 입력한 설명은 설명 문서에 반영되지 않을 것입니다.
@@ -1746,30 +1807,34 @@ $1",
 * 올리려는 파일 이름: '''<tt>[[:$1]]</tt>'''
 * 존재하는 파일 이름: '''<tt>[[:$2]]</tt>'''
 다른 이름으로 시도해 주세요.",
-'fileexists-thumbnail-yes' => "이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다. [[$1|thumb]]
+'fileexists-thumbnail-yes' => "이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
+[[$1|thumb]]
 '''<tt>[[:$1]]</tt>''' 파일을 확인해주세요.
 해당 파일이 현재 올리려는 파일과 같다면, 더 작은 크기의 그림을 올릴 필요는 없습니다.",
 'file-thumbnail-no' => "파일 이름이 '''<tt>$1</tt>'''으로 시작합니다.
 이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
 더 해상도가 좋은 파일이 있다면 그 파일을 올려주세요. 아니면 올리려는 파일 이름을 바꾸어 주세요.",
 'fileexists-forbidden' => '같은 이름의 파일이 이미 있고, 덮어쓸 수 없습니다.
-그래도 파일을 올리시려면, 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다. [[File:$1|thumb|center|$1]]',
+그래도 파일을 올리시려면, 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.
+[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '같은 이름의 파일이 이미 위키미디어 공용에 있습니다.
-파일을 업로드하길 원하신다면 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다. [[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => '{{PLURAL:$1}}현재 올리고 있는 파일이 아래 파일과 중복됩니다:',
+파일을 업로드하길 원하신다면 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.
+[[File:$1|thumb|center|$1]]',
+'file-exists-duplicate' => '현재 올리고 있는 {{PLURAL:$1|파일}}이 아래 파일과 중복됩니다:',
 'file-deleted-duplicate' => '이 파일과 같은 파일 ([[:$1]])이 이전에 삭제된 적이 있습니다. 파일을 다시 올리기 전에 문서의 삭제 기록을 확인해 주시기 바랍니다.',
 'uploadwarning' => '올리기 경고',
 'uploadwarning-text' => '아래의 파일 설명을 수정하고 다시 시도해 주세요.',
 'savefile' => '파일 저장',
-'uploadedimage' => '‘[[$1]]’ 파일을 올렸습니다.',
-'overwroteimage' => '‘[[$1]]’ 파일의 새 버전을 올렸습니다.',
+'uploadedimage' => '"[[$1]]" 파일을 올렸습니다.',
+'overwroteimage' => '"[[$1]]" 파일의 새 판을 올렸습니다.',
 'uploaddisabled' => '올리기 비활성화됨',
 'copyuploaddisabled' => 'URL로 파일 올리기가 비활성화되어 있습니다.',
 'uploadfromurl-queued' => '당신의 올리기 명령이 기록되었습니다.',
 'uploaddisabledtext' => '파일 올리기 기능이 비활성화되어 있습니다.',
 'php-uploaddisabledtext' => 'PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.',
 'uploadscripted' => '이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.',
-'uploadvirus' => '파일이 바이러스를 포함하고 있습니다! 상세 설명: $1',
+'uploadvirus' => '파일이 바이러스를 포함하고 있습니다!
+자세한 설명: $1',
 'uploadjava' => '이 ZIP 파일은 자바의 .class 파일을 포함하고 있습니다.
 보안을 위한 제한을 우회할 수 있기 때문에 자바 파일을 올리는 것이 허용되지 않습니다.',
 'upload-source' => '원본 파일',
@@ -1780,9 +1845,9 @@ $1",
 'upload-description' => '파일의 설명',
 'upload-options' => '올리기 설정',
 'watchthisupload' => '이 파일 주시하기',
-'filewasdeleted' => '같은 이름을 가진 파일이 올라온 적이 있었고, 그 후에 삭제되었습니다. 올리기 전에 $1을 확인해 주시기 바랍니다.',
-'filename-bad-prefix' => '올리려고 하는 파일 이름이 \'\'\'"$1"\'\'\'(으)로 시작합니다.
-"$1"은(는) 디지털 사진기가 자동으로 붙이는 의미없는 이름입니다.
+'filewasdeleted' => '같은 이름을 가진 파일이 올라온 적이 있었고 그 후에 삭제되었습니다.
+올리기 전에 $1을 확인해 주시기 바랍니다.',
+'filename-bad-prefix' => '올리려고 하는 파일 이름이 \'\'\'"$1"\'\'\'(으)로 시작합니다. "$1"은(는) 디지털 사진기가 자동으로 붙이는 의미없는 이름입니다.
 파일에 대해 알기 쉬운 이름을 골라주세요.',
 'filename-prefix-blacklist' => ' #<!-- 이 줄은 그대로 두십시오 --> <pre>
 # 문법은 다음과 같습니다:
@@ -1810,9 +1875,12 @@ $1',
 'upload-proto-error' => '잘못된 프로토콜',
 'upload-proto-error-text' => '파일을 URL로 올리려면 <code>http://</code>이나 <code>ftp://</code>로 시작해야 합니다.',
 'upload-file-error' => '내부 오류',
-'upload-file-error-text' => '서버에 임시 파일을 만드는 과정에서 내부 오류가 발생했습니다. [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
+'upload-file-error-text' => '서버에 임시 파일을 만드는 과정에서 내부 오류가 발생했습니다.
+[[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
 'upload-misc-error' => '알 수 없는 파일 올리기 오류',
-'upload-misc-error-text' => '파일을 올리는 중 알 수 없는 오류가 발생했습니다. URL이 올바르고 접근 가능한지를 확인하고 다시 시도해주세요. 문제가 계속되면 [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
+'upload-misc-error-text' => '파일을 올리는 중 알 수 없는 오류가 발생했습니다.
+URL이 올바르고 접근 가능한지를 확인하고 다시 시도해주세요.
+문제가 계속되면 [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
 'upload-too-many-redirects' => 'URL이 너무 많은 넘겨주기에 연결되어 있습니다.',
 'upload-unknown-size' => '크기를 알 수 없음',
 'upload-http-error' => 'HTTP 오류 발생: $1',
@@ -1836,17 +1904,17 @@ $1',
 'backend-fail-read' => '$1 파일을 읽을 수 없습니다.',
 'backend-fail-create' => '$1 파일을 저장하지 못했습니다.',
 'backend-fail-maxsize' => '$2{{PLURAL:$2|바이트}}보다 커서 $1 파일을 저장하지 못했습니다.',
-'backend-fail-readonly' => '‘$1’ 저장 백엔드가 읽기 전용입니다. 자세한 이유는 다음과 같습니다: “$2”',
+'backend-fail-readonly' => '"$1" 저장 백엔드가 읽기 전용입니다. 자세한 이유는 다음과 같습니다: "$2"',
 'backend-fail-synced' => '파일 "$1"은 내부 저장 백엔드에 불안정한 상태로 있습니다.',
-'backend-fail-connect' => "'$1' 저장 백엔드에 접속하지 못했습니다.",
+'backend-fail-connect' => '"$1" 저장 백엔드에 접속하지 못했습니다.',
 'backend-fail-internal' => '"$1" 저장 백엔드에 알 수 없는 오류가 발생했습니다.',
 'backend-fail-contenttype' => '"$1"에 저장하기 위한 파일의 내용 유형을 판별하지 못했습니다.',
 'backend-fail-batchsize' => '저장 백엔드에서 파일 {{PLURAL:$1|작업}} $1개가 쌓여 있습니다; 한계는 $2개입니다.',
 'backend-fail-usable' => '파일 저장 권한이 없거나 저장 위치가 빠졌기 때문에 $1 파일을 저장할 수 없습니다.',
 
 # File journal errors
-'filejournal-fail-dbconnect' => '저장소 백엔드 ‘$1’에 대한 저널 데이터베이스에 연결할 수 없습니다.',
-'filejournal-fail-dbquery' => '저장소 백엔드 â\80\98$1â\80\99ì\97\90 ë\8c\80í\95\9c ì \80ë\84\90 ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ì\97\90ì\84\9c ê°±ì\8b í\95  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
+'filejournal-fail-dbconnect' => '저장소 백엔드 "$1"에 대한 저널 데이터베이스에 연결할 수 없습니다.',
+'filejournal-fail-dbquery' => '저장소 백엔드 "$1"ì\97\90 ë\8c\80í\95\9c ì \80ë\84\90 ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ì\97\90ì\84\9c ì\83\88ë¡\9c ê³ ì¹  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
 
 # Lock manager
 'lockmanager-notlocked' => '‘$1’ 경로의 잠금을 풀 수 없습니다. 해당 경로는 잠겨 있지 않습니다.',
@@ -2127,7 +2195,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'listusers' => '사용자 목록',
 'listusers-editsonly' => '기여가 있는 사용자만 보기',
 'listusers-creationsort' => '계정 등록일 순으로 정렬',
-'usereditcount' => '편집 $1',
+'usereditcount' => '편집 $1',
 'usercreated' => '$1 $2에 계정 {{GENDER:$3|생성됨}}',
 'newpages' => '새 문서 목록',
 'newpages-username' => '이름:',
index b52c7ac..02491a6 100644 (file)
@@ -577,9 +577,9 @@ Ji bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:',
 'watchthis' => 'Vê gotarê bişopîne',
 'savearticle' => 'Rûpelê tomar bike',
 'preview' => 'Pêşdîtin',
-'showpreview' => 'Pêşdîtin',
+'showpreview' => 'Pêşdîtinê nîşan bide',
 'showlivepreview' => 'Pêşdîtina zindî',
-'showdiff' => 'Guherandinê nîşan bide',
+'showdiff' => 'Guherandinan nîşan bide',
 'anoneditwarning' => "'''Hişyarî:''' Tu netêketî yî! Navnîşana IP'ya te wê di dîroka guherandina vê rûpelê de bê tomarkirin.",
 'anonpreviewwarning' => "''Tu ne têketî yî. Tomarkirin wê navnîşana IP'ya te di dîroka guhertinan de nîşan bide.''",
 'missingsummary' => "<span style=\"color:#990000;\">'''Zanibe:'''</span> Te nivîsekî kurt ji bo guherandinê ra nenivîsand. Eger tu niha carekî din li Tomar xê, guherandinê te vê nivîsekî kurt yê were tomarkirin.",
@@ -1034,8 +1034,8 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'rclinks' => '$1 guherandinên di $2 rojên dawî de nîşan bide<br />$3',
 'diff' => 'cudahî',
 'hist' => 'dîrok',
-'hide' => 'Veşêre',
-'show' => 'Nîşan bide',
+'hide' => 'veşêre',
+'show' => 'nîşan bide',
 'minoreditletter' => 'B',
 'newpageletter' => 'Nû',
 'boteditletter' => 'b',
@@ -1072,7 +1072,7 @@ anjî ji bo file'ên dengî '''<nowiki>[[</nowiki>{{ns:media}}:File.ogg<nowiki>]
 'uploadlog' => 'Têketina barkirinê',
 'uploadlogpage' => 'Têketina barkirinê',
 'filename' => 'Navê pelê',
-'filedesc' => 'Kurte',
+'filedesc' => 'Danasîn',
 'fileuploadsummary' => 'Kurte:',
 'filereuploadsummary' => 'Guhertinên pelê:',
 'filestatus' => 'Rewşa telîfê:',
@@ -1228,7 +1228,7 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 'statistics-users-active' => 'Bikarhênerên çalak',
 'statistics-mostpopular' => 'Rûpelên herî lênerî',
 
-'disambiguations' => 'Rûpelên cudakirinê',
+'disambiguations' => 'Rûpelên girêdayî rûpelên cudakirinê',
 'disambiguationspage' => 'Template:disambig',
 
 'doubleredirects' => 'Beralîkirinên ducarî',
@@ -1240,7 +1240,7 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 
 'withoutinterwiki' => 'Rûpelên bê girêdanên ziman',
 'withoutinterwiki-legend' => 'Pêşbendik',
-'withoutinterwiki-submit' => 'Nîşan bide',
+'withoutinterwiki-submit' => 'nîşan bide',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|byte}}',
@@ -1329,12 +1329,12 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 'sp-deletedcontributions-contribs' => 'beşdari',
 
 # Special:LinkSearch
-'linksearch' => 'Girêdanên derveyî',
+'linksearch' => 'Lêgerîna girêdanên derve',
 'linksearch-ns' => 'Valahiya nav:',
 'linksearch-ok' => 'Lêgerîn',
 
 # Special:ListUsers
-'listusers-submit' => 'Nîşan bide',
+'listusers-submit' => 'nîşan bide',
 'listusers-noresult' => 'Bikarhêner nehate dîtin.',
 'listusers-blocked' => '(hate astengkirin)',
 
@@ -1399,7 +1399,7 @@ Gava tu bixwazî wê rûpelê ji nav lîsteya xwe ya şopandinê derbixî, li se
 'unwatchthispage' => 'Êdî neşopîne',
 'notanarticle' => 'Ne gotar e',
 'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.',
-'watchlist-details' => '* {{PLURAL:$1|Rûpelek tê|$1 rûpel tên}} şopandin, rûpelên gotûbêjê nayên jimartin.',
+'watchlist-details' => '{{PLURAL:$1|Rûpeleka|$1 rûpel}} li ser lîsteya te ya şopandinê, rûpelên gotûbêjê nayên jimartin.',
 'wlheader-enotif' => '* Agahdariya E-nameyê pêk tê.',
 'wlheader-showupdated' => "* Ev rûpela hatî guhertin dema te lê meyzand bi '''nivîsa stûr''' tê xuyakirin.",
 'watchlistcontains' => 'Di lîsteya şopandina te de {{PLURAL:$1|rûpelek heye|$1 rûpel hene}}.',
@@ -1566,7 +1566,7 @@ Ji bo jêbirinan û çêkirinên nû, ji kerema xwe li [[{{ns:special}}:Log/dele
 'sp-contributions-newbies' => 'Tenê beşdariyên bikarhênerên nû nîşan bide',
 'sp-contributions-newbies-sub' => 'Ji bikarhênerên nû re',
 'sp-contributions-newbies-title' => 'Tevkariyên bikarhêner ji bo hesabên nû',
-'sp-contributions-blocklog' => 'Astengkirina bikarhêner',
+'sp-contributions-blocklog' => 'Astengkirina têketinê',
 'sp-contributions-deleted' => 'beşdariyên bikarhêner yên jêbirî',
 'sp-contributions-uploads' => 'yên barkirî',
 'sp-contributions-logs' => 'têketin',
@@ -1805,13 +1805,13 @@ Tu dikarî tenê li çavkaniyê binêrî.',
 'tooltip-search-go' => 'Here rûpeleke tev bi vî navî, heke hebe',
 'tooltip-search-fulltext' => 'Di nav rûpelan de li vê nivîsê bigerre',
 'tooltip-p-logo' => 'Here Destpêkê',
-'tooltip-n-mainpage' => 'Biçe Destpêkê',
+'tooltip-n-mainpage' => 'Here Destpêkê',
 'tooltip-n-mainpage-description' => 'Here Destpêkê',
 'tooltip-n-portal' => 'Agahdarî li ser {{SITENAME}}, tu dikarî çi bikî, tu dikarî çi li ku bîbînî',
-'tooltip-n-recentchanges' => "Lîsteya guherandinên dawî di vê Wîkî'yê da.",
+'tooltip-n-recentchanges' => 'Lîsteya guherandinên dawî di vê wîkiyê da',
 'tooltip-n-randompage' => 'Rûpeleka ketober bar bike',
 'tooltip-n-help' => 'Bersivên ji bo pirsên te.',
-'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku pê ve girêdayî ne.',
+'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku pê ve girêdayî ne',
 'tooltip-t-recentchangeslinked' => 'Recent changes in pages linking to this page',
 'tooltip-feed-rss' => "RSS feed'ên ji bo rûpelê",
 'tooltip-feed-atom' => "Atom feed'ên ji bo vê rûpelê",
@@ -2036,7 +2036,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'table_pager_prev' => 'Rûpela berî',
 'table_pager_first' => 'Rûpela pêşîn',
 'table_pager_last' => 'Rûpela dawî',
-'table_pager_limit_submit' => 'Biçe',
+'table_pager_limit_submit' => 'Here',
 
 # Auto-summaries
 'autosumm-blank' => 'Rûpel hate vala kirin',
index abdf951..0dce39d 100644 (file)
@@ -562,6 +562,7 @@ $2',
 'invalidtitle-knownnamespace' => 'Net valabelen Titel mam Nummraum "$2" a mam Text "$3"',
 'invalidtitle-unknownnamespace' => 'Net valabelen Titel mat der onbekannter Nummraum-Zuel $1 a mam Text "$2"',
 'exception-nologin' => 'Net ageloggt',
+'exception-nologin-text' => 'Dës Säit oder Aktioun erfuerdert datt Dir op dëser Wiki ageloggt sidd.',
 
 # Virus scanner
 'virus-badscanner' => "Schlecht Configuratioun: onbekannte  Virescanner: ''$1''",
@@ -3713,6 +3714,7 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'api-error-empty-file' => 'De Fichier deen Dir geschéckt hutt war eidel.',
 'api-error-emptypage' => 'Et ass net erlaabt nei, eidel Säiten unzeleeën.',
 'api-error-fetchfileerror' => 'Interne Feeler: beim Opruffe vum Fichier huet eppes net fonctionnéiert.',
+'api-error-fileexists-forbidden' => 'E Fichier mam Numm "$1" gëtt et schonn an e kann net iwwerschriwwe ginn.',
 'api-error-file-too-large' => 'De Fichier deen Dir geschéckt hutt war ze grouss.',
 'api-error-filename-tooshort' => 'Den Numm vum Fichier ass ze kuerz.',
 'api-error-filetype-banned' => 'Dësen Typ vu Fichier ass net zougelooss.',
index ec52b88..5aa5b08 100644 (file)
@@ -1855,7 +1855,7 @@ Informacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.',
 'statistics-pages-desc' => 'Visi puslapiai, tarp jų aptarimo, nukreipimų, ir kiti puslapiai.',
 'statistics-files' => 'Įkelti failai',
 'statistics-edits' => 'Puslapių redagavimų skaičius nuo {{SITENAME}} sukūrimo',
-'statistics-edits-average' => 'Vidutinis puslapių keitimų kiekis',
+'statistics-edits-average' => 'Vidutinis puslapio keitimų skaičius',
 'statistics-views-total' => 'Iš viso peržiūrų',
 'statistics-views-total-desc' => 'Neegzistuojančių ir specialiųjų puslapių parodymai neįtraukti',
 'statistics-views-peredit' => 'Peržiūrų skaičius puslapio versijai',
@@ -2862,7 +2862,7 @@ Leidžia pridėti atmetimo priežastį komentaruose',
 
 # Spam protection
 'spamprotectiontitle' => 'Priešreklaminis filtras',
-'spamprotectiontext' => 'Puslapis, kurį norėjote išsaugoti buvo užblokuotas priešreklaminio filtro. Tai turbūt sukėlė nuoroda į juodajame sąraše esančią svetainę.',
+'spamprotectiontext' => 'Tekstas, kurį norėjote išsaugoti, buvo užblokuotas priešreklaminio filtro. Taip turbūt įvyko dėl nuorodos į juodajame sąraše esančią svetainę.',
 'spamprotectionmatch' => 'Šis tekstas buvo atpažintas priešreklaminio filtro: $1',
 'spambot_username' => 'MediaWiki reklamų šalinimas',
 'spam_reverting' => 'Atkuriama į ankstesnę versiją, neturinčios nuorodų į $1',
index e534302..15b8cbe 100644 (file)
@@ -1562,7 +1562,7 @@ $1",
 'right-edituserjs' => 'മറ്റ് ഉപയോക്താക്കളുടെ JS പ്രമാണങ്ങൾ തിരുത്തുക',
 'right-rollback' => 'ഒരു പ്രത്യേക താളിൽ അവസാനം തിരുത്തൽ നടത്തിയ ഉപയോക്താവിന്റെ തിരുത്തൽ പെട്ടെന്ന് ഒഴിവാക്കുക',
 'right-markbotedits' => 'മുൻപ്രാപനം നടത്തിയ തിരുത്തലുകൾ യാന്ത്രിക തിരുത്തലുകളായി അടയാളപ്പെടുത്തുക',
-'right-noratelimit' => 'നിലവാരമിà´\9fലിനàµ\8dà´±àµ\86 പരിധികൾ ബാധകമല്ല',
+'right-noratelimit' => 'à´ªàµ\8dരവർതàµ\8dതനà´\99àµ\8dà´\99ൾà´\95àµ\8dà´\95àµ\8d പരിധികൾ ബാധകമല്ല',
 'right-import' => 'മറ്റുള്ള വിക്കികളിൽ നിന്നും താളുകൾ ഇറക്കുമതി ചെയ്യുക',
 'right-importupload' => 'അപ്‌‌ലോഡ് ചെയ്ത പ്രമാണത്തിൽ നിന്നും താളുകൾ ഇറക്കുമതി ചെയ്യുക',
 'right-patrol' => 'മറ്റുള്ളവരുടെ തിരുത്തലുകൾ റോന്തുചുറ്റിയതായി അടയാളപ്പെടുത്തുക',
index 58f4aa3..3f0e6c4 100644 (file)
@@ -555,6 +555,8 @@ Sila catat URL bagi laman ini dan laporkan perkara ini kepada seorang [[Special:
 'cannotdelete' => 'Laman atau fail $1 tidak dapat dihapuskan.
 Ia mungkin telah pun dihapuskan oleh orang lain.',
 'cannotdelete-title' => 'Laman "$1" tidak dapat dihapuskan',
+'delete-hook-aborted' => 'Penghapusan dibatalkan oleh penyangkuk.
+Tiada sebab diberikan.',
 'badtitle' => 'Tajuk tidak sah',
 'badtitletext' => 'Tajuk laman yang diminta tidak sah, kosong, ataupun tajuk antara bahasa atau tajuk antara wiki yang salah dipaut. Ia mungkin mengandungi aksara yang tidak dibenarkan.',
 'perfcached' => 'Data yang berikut disimpan dalam cache dan mungkin tidak terkemas kini. Semaksimum {{PLURAL:$1|satu hasil|$1 hasil}} terdapat dalam cache.',
@@ -3805,6 +3807,8 @@ Ataupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dic
 'api-error-empty-file' => 'Fail yang anda serahkan adalah kosong.',
 'api-error-emptypage' => 'Anda tidak dibenarkan membuat laman baru yang kosong.',
 'api-error-fetchfileerror' => 'Ralat dalaman: ada malasah ketika mengambil fail itu.',
+'api-error-fileexists-forbidden' => 'Fail bernama "$1" sudah wujud, dan tidak boleh ditulis ganti.',
+'api-error-fileexists-shared-forbidden' => 'Fail bernama "$1" sudah wujud dalam repositori fail kongsian, dan tidak boleh ditulis ganti.',
 'api-error-file-too-large' => 'Fail yang anda serahkan adalah terlalu besar.',
 'api-error-filename-tooshort' => 'Nama fail ini terlalu pendek.',
 'api-error-filetype-banned' => 'Fail jenis ini adalah dilarang.',
index 6d5496a..b06c4c9 100644 (file)
@@ -1549,7 +1549,7 @@ Dette kan ikke tilbakestillast.',
 'recentchanges-legend' => 'Alternativ for siste endringar',
 'recentchanges-summary' => 'På denne sida ser du dei sist endra sidene i {{SITENAME}}.',
 'recentchanges-feed-description' => 'Fylg med på dei siste endringane på denne wikien med dette abonnementet.',
-'recentchanges-label-newpage' => 'Denne redigeringa oppretta ei ny side',
+'recentchanges-label-newpage' => 'Denne endringa oppretta ei ny side',
 'recentchanges-label-minor' => 'Dette er ei mindre endring',
 'recentchanges-label-bot' => 'Denne endringa vart gjort av ein bot',
 'recentchanges-label-unpatrolled' => 'Denne endringa er ikkje patruljert enno',
index a0cd772..1194966 100644 (file)
@@ -293,7 +293,7 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Podkreślenie linków',
 'tog-justify' => 'Wyrównuj tekst w akapitach do obu marginesów',
-'tog-hideminor' => 'Ukryj drobne modyfikacje w ostatnich zmianach',
+'tog-hideminor' => 'Ukryj drobne edycje w ostatnich zmianach',
 'tog-hidepatrolled' => 'Ukryj sprawdzone edycje w ostatnich zmianach',
 'tog-newpageshidepatrolled' => 'Ukryj sprawdzone strony na liście nowych stron',
 'tog-extendwatchlist' => 'Pokaż na liście obserwowanych wszystkie zmiany, nie tylko ostatnie',
@@ -309,12 +309,12 @@ $messages = array(
 'tog-watchdefault' => 'Dodaj do obserwowanych strony, które edytuję',
 'tog-watchmoves' => 'Dodaj do obserwowanych strony, które przenoszę',
 'tog-watchdeletion' => 'Dodaj do obserwowanych strony, które usuwam',
-'tog-minordefault' => 'Wszystkie zmiany oznaczaj domyślnie jako drobne',
+'tog-minordefault' => 'Wszystkie edycje domyślnie oznaczaj jako drobne',
 'tog-previewontop' => 'Pokazuj podgląd powyżej obszaru edycji',
 'tog-previewonfirst' => 'Pokazuj podgląd strony podczas pierwszej edycji',
 'tog-nocache' => 'Wyłącz pamięć podręczną przeglądarki',
-'tog-enotifwatchlistpages' => 'Wyślij do mnie e‐mail, jeśli strona z listy moich obserwowanych zostanie zmodyfikowana',
-'tog-enotifusertalkpages' => 'Wyślij do mnie e‐mail, jeśli moja strona dyskusji zostanie zmodyfikowana',
+'tog-enotifwatchlistpages' => 'Wyślij do mnie e‐mail kiedy strona z mojej listy obserwowanych zostanie zmodyfikowana',
+'tog-enotifusertalkpages' => 'Wyślij do mnie e‐mail kiedy moja strona dyskusji zostanie zmodyfikowana',
 'tog-enotifminoredits' => 'Wyślij e‐mail także w przypadku drobnych zmian na stronach',
 'tog-enotifrevealaddr' => 'Nie ukrywaj mojego adresu e‐mail w powiadomieniach',
 'tog-shownumberswatching' => 'Pokaż liczbę użytkowników obserwujących stronę',
@@ -327,7 +327,7 @@ $messages = array(
 'tog-forceeditsummary' => 'Informuj o niewypełnieniu opisu zmian',
 'tog-watchlisthideown' => 'Ukryj moje edycje na liście obserwowanych',
 'tog-watchlisthidebots' => 'Ukryj edycje botów na liście obserwowanych',
-'tog-watchlisthideminor' => 'Ukrywaj drobne zmiany na liście obserwowanych',
+'tog-watchlisthideminor' => 'Ukryj drobne zmiany na liście obserwowanych',
 'tog-watchlisthideliu' => 'Ukryj edycje zalogowanych użytkowników na liście obserwowanych',
 'tog-watchlisthideanons' => 'Ukryj edycje anonimowych użytkowników na liście obserwowanych',
 'tog-watchlisthidepatrolled' => 'Ukryj sprawdzone edycje na liście obserwowanych',
@@ -648,6 +648,8 @@ Można zgłosić ten fakt [[Special:ListUsers/sysop|administratorowi]], podając
 'cannotdelete' => 'Strona lub plik „$1” nie mogą zostać usunięte.
 Możliwe, że zostały już usunięte przez kogoś innego.',
 'cannotdelete-title' => 'Nie można usunąć strony „$1”.',
+'delete-hook-aborted' => 'Usuwanie przerwane przez zaczep.
+Przyczyna nieokreślona.',
 'badtitle' => 'Niepoprawny tytuł',
 'badtitletext' => 'Podano niepoprawny tytuł strony. Prawdopodobnie jest pusty lub zawiera znaki, których użycie jest zabronione.',
 'perfcached' => 'Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. Maksymalnie {{PLURAL:$1|jeden wynik jest|$1 wyniki są|$1 wyników jest}} w pamięci podręcznej.',
@@ -681,6 +683,8 @@ Uzasadnienie blokady: ''$2''.",
 Administrator blokujący go podał następujący powód "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Nieprawidłowa nazwa w obszarze nazw "$2" o treści "$3"',
 'invalidtitle-unknownnamespace' => 'Nieprawidłowa nazwa z nieznaną liczbą przestrzeni nazw  $1  o treści "$2"',
+'exception-nologin' => 'Nie jesteś zalogowany/a',
+'exception-nologin-text' => 'Ta strona lub akcja wymaga bycia zalogowanym na tej wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Zła konfiguracja – nieznany skaner antywirusowy ''$1''",
@@ -3062,6 +3066,7 @@ Najprawdopodobniej zostało to spowodowane przez link do zewnętrznej strony int
 'spambot_username' => 'MediaWiki – usuwanie spamu',
 'spam_reverting' => 'Przywracanie ostatniej wersji nie zawierającej linków do $1',
 'spam_blanking' => 'Wszystkie wersje zawierały odnośniki do $1. Czyszczenie strony.',
+'spam_deleting' => 'Wszystkie wersje zawierały linki do $1, usuwam.',
 
 # Info page
 'pageinfo-title' => 'Informacje o „$1“',
@@ -3995,6 +4000,8 @@ W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zosta
 'api-error-empty-file' => 'Przesłany przez Ciebie plik jest pusty.',
 'api-error-emptypage' => 'Tworzenie nowych, pustych stron jest niedozwolone.',
 'api-error-fetchfileerror' => 'Błąd wewnętrzny – wystąpił błąd w trakcie pobierania pliku.',
+'api-error-fileexists-forbidden' => 'Plik o nazwie "$1" już istnieje i nie może być nadpisany.',
+'api-error-fileexists-shared-forbidden' => 'Plik o nazwie "$1" już istnieje we współdzielonym repozytorium i nie może być nadpisany.',
 'api-error-file-too-large' => 'Przesłany przez Ciebie plik jest zbyt duży.',
 'api-error-filename-tooshort' => 'Nazwa pliku jest zbyt krótka.',
 'api-error-filetype-banned' => 'Zabroniony format pliku.',
@@ -4033,4 +4040,6 @@ W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zosta
 'duration-centuries' => '$1 {{PLURAL:$1|stulecie|stulecia|stuleci}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tysiąclecie|tysiąclecia|tysiącleci}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Nie udało się uzyskać blokady na serwerze $1.',
 );
index e5c006b..e4a35a6 100644 (file)
@@ -399,6 +399,8 @@ Për piasì, fa rapòrt a n'[[Special:ListUsers/sysop|aministrator]], pijand nò
 'cannotdelete' => "La pàgina o l'archivi \"\$1\" a peul pa esse scancelà.
 Peul desse ch'a l'é già stàit ëscancelà da cheidun d'àutr.",
 'cannotdelete-title' => 'A peul pa scancelesse la pàgina «$1»',
+'delete-hook-aborted' => "Modìfica anulà da n'estension.
+A l'ha smonù gnun-e spiegassion.",
 'badtitle' => 'Tìtol nen giust',
 'badtitletext' => "La pàgina che a l'ha ciamà a peul pa esse mostrà. A podrìa tratesse ëd na pàgina nen bon-a, veujda, ò pura a podrìa ëdcò esse n'eror ant n'anliura antra lenghe diferente ò tra diferente version ëd {{SITENAME}}.",
 'perfcached' => "Ij dat sì-dapress a sòn ëstàit memorisà an local e a peulo esse nen agiornà. Al pi {{PLURAL:$1|n'arzultà a l'é disponìbil|$1 arzultà a son disponìbij}} ant la memòria local.",
@@ -430,7 +432,7 @@ L'aministrator ch'a l'ha blocalo a l'ha lassà sta spiegassion: «$3».",
 'invalidtitle-knownnamespace' => 'Tìtol pa bon con spassi nominal "$2" e test "$3"',
 'invalidtitle-unknownnamespace' => 'Tìtol pa bon con spassi nominal sconossù nùmer $1 e test "$2"',
 'exception-nologin' => 'Nen rintrà ant ël sistema',
-'exception-nologin-text' => "Sta pagina o assion a veul ch'it sie intrà dzora a sta wiki.",
+'exception-nologin-text' => "Costa pàgina o assion a ciama ch'a sia rintrà an costa wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Configurassion falà: antivìrus nen conossù: ''$1''",
@@ -2638,8 +2640,8 @@ Che as lo salva ansima a sò ordinator e peui che a lo caria ambelessì.",
 'importcantopen' => "L'archivi da amporté a l'é pa podusse deurbe",
 'importbadinterwiki' => 'Liura antra wiki diferente cioca',
 'importnotext' => 'Veujd o con gnun test',
-'importsuccess' => 'Amportassion andaita a bon fin!',
-'importhistoryconflict' => "A-i son dle stòrie dë sta pàgina-sì che as contradisso un-a con l'àutra (a peul esse che sta pàgina-sì a l'avèissa già amportala)",
+'importsuccess' => 'Amportassion andàita a bon fin!',
+'importhistoryconflict' => "A-i son dle stòrie dë sta pàgina-sì che as contradiso un-a con l'àutra (a peul esse che sta pàgina-sì a l'avèissa già amportala)",
 'importnosources' => "A l'é pa staita definìa gnun-a sorgiss d'amportassion da na wiki diferenta, e carié mach le stòrie as peul nen.",
 'importnofile' => "Pa gnun archivi d'amportassion carià.",
 'importuploaderrorsize' => "A l'é falìe la caria dl'archivi d'amporté. L'archivi a resta pì gròss che lòn ch'as peul cariesse.",
@@ -3672,6 +3674,8 @@ Dësnò, a peule dovré ël formlari semplificà sì-sota. Sò coment a sarà gi
 'api-error-empty-file' => "L'archivi ch'a l'ha mandà a l'era veuid.",
 'api-error-emptypage' => "La creassion ëd pagine neuve veujde a l'é pa përmëttùa.",
 'api-error-fetchfileerror' => "Eror antern: quaicòs a l'é andàit mal an mente as arcuperava l'archivi",
+'api-error-fileexists-forbidden' => "N'archivi con nòm «$1» a esist già, e a peul pa esse dzorascrivù.",
+'api-error-fileexists-shared-forbidden' => 'N\'archivi con nòm "$1" a esist già ant ël depòsit condivis ëd j\'archivi, e a peul pa esse dzorascrivù.',
 'api-error-file-too-large' => "L'archivi ch'a l'ha mandà a l'era tròp gròss.",
 'api-error-filename-tooshort' => "Ël nòm ëd l'archivi a l'é tròp curt.",
 'api-error-filetype-banned' => "Costa sòrt d'archivi a l'é proibìa.",
index 8cfc8b6..29715a9 100644 (file)
@@ -2277,7 +2277,7 @@ Encontram-se disponíveis [[{{MediaWiki:Listgrouprights-helppage}}|informações
 # E-mail user
 'mailnologin' => 'Nenhum endereço de envio',
 'mailnologintext' => 'Precisa de estar [[Special:UserLogin|autenticado]] e possuir um endereço de correio válido nas suas [[Special:Preferences|preferências]], para poder enviar correio electrónico a outros utilizadores.',
-'emailuser' => 'Enviar-lhe um e-mail',
+'emailuser' => 'Enviar um e-mail ao utilizador',
 'emailpage' => 'Contactar utilizador',
 'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio electrónico para este utilizador.
 O endereço de correio que introduziu nas suas [[Special:Preferences|preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder directamente.',
index e3ae437..eda037f 100644 (file)
@@ -3928,6 +3928,8 @@ Caso contrário, você poderá usar o formulário simplificado a seguir. Seu com
 'api-error-empty-file' => 'O arquivo que você enviou está vazio.',
 'api-error-emptypage' => 'Não é permitido criar páginas novas vazias.',
 'api-error-fetchfileerror' => 'Erro interno: ocorreu um problema indeterminado ao acessar o arquivo.',
+'api-error-fileexists-forbidden' => 'Já existe um arquivo com o nome "$1". Não é possível substituí-lo.',
+'api-error-fileexists-shared-forbidden' => 'Já existe, no repositório de arquivos partilhados, um arquivo com o nome "$1". Não é possível substituí-lo.',
 'api-error-file-too-large' => 'O arquivo que você enviou é muito grande.',
 'api-error-filename-tooshort' => 'O nome do arquivo é curto demais.',
 'api-error-filetype-banned' => 'Este tipo do arquivo é proibido.',
index 4b71d39..2a54e32 100644 (file)
@@ -890,7 +890,7 @@ Parolă temporară: $2',
 # Edit pages
 'summary' => 'Rezumat:',
 'subject' => 'Subiect / titlu:',
-'minoredit' => 'Aceasta este o editare minoră',
+'minoredit' => 'Aceasta este o modificare minoră',
 'watchthis' => 'Monitorizează această pagină',
 'savearticle' => 'Salvare pagină',
 'preview' => 'Previzualizare',
@@ -1101,7 +1101,7 @@ Acsete argumente au fost omise.',
 Motivul invocat de $3 este ''$2''",
 
 # History pages
-'viewpagelogs' => 'Vezi jurnalele pentru această pagină',
+'viewpagelogs' => 'Afișează jurnalele paginii',
 'nohistory' => 'Nu există istoric pentru această pagină.',
 'currentrev' => 'Versiunea curentă',
 'currentrev-asof' => 'Versiunea curentă din $1',
@@ -1473,7 +1473,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 # User rights
 'userrights' => 'Administrare permisiuni de utilizator',
 'userrights-lookup-user' => 'Administrare grupuri de utilizatori',
-'userrights-user-editname' => 'Introdu un nume de utilizator:',
+'userrights-user-editname' => 'Introduceți un nume de utilizator:',
 'editusergroup' => 'Modificare grup de utilizatori',
 'editinguser' => "Modificare permisiuni de utilizator pentru '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Modificare grup de utilizatori',
@@ -1580,7 +1580,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 # User rights log
 'rightslog' => 'Jurnal permisiuni de utilizator',
 'rightslogtext' => 'Acest jurnal cuprinde modificările permisiunilor utilizatorilor.',
-'rightslogentry' => 'a schimbat pentru $1 apartenența la un grup de la $2 la $3',
+'rightslogentry' => 'a schimbat permisiunile pentru $1 de la $2 la $3',
 'rightslogentry-autopromote' => 'a fost promovat în mod automat de la $2 la $3',
 'rightsnone' => '(niciunul)',
 
@@ -2280,7 +2280,7 @@ Adresa de e-mail introdusă de tine în [[Special:Preferences|preferințele de u
 'mywatchlist' => 'Pagini urmărite',
 'watchlistfor2' => 'Pentru $1 $2',
 'nowatchlist' => 'Nu ați ales să urmăriți nici o pagină.',
-'watchlistanontext' => 'Te rugăm să $1 pentru a vizualiza sau edita itemii de pe lista ta de urmărire.',
+'watchlistanontext' => 'Vă rugăm să vă $1 pentru a vizualiza sau edita elementele din lista dumneavoastră de pagini urmărite.',
 'watchnologin' => 'Nu sunteți autentificat',
 'watchnologintext' => 'Trebuie să fiți [[Special:UserLogin|autentificat]] pentru a vă modifica lista de pagini urmărite.',
 'addwatch' => 'Adăugă la lista de pagini urmărite',
@@ -2554,7 +2554,7 @@ Iată aici ultima înregistrare relevantă din jurnalul blocărilor:',
 'sp-contributions-search' => 'Căutare contribuții',
 'sp-contributions-username' => 'Adresă IP sau nume de utilizator:',
 'sp-contributions-toponly' => 'Afișează numai versiunile recente',
-'sp-contributions-submit' => 'Caută',
+'sp-contributions-submit' => 'Căutare',
 
 # What links here
 'whatlinkshere' => 'Ce trimite aici',
@@ -3670,7 +3670,7 @@ Vă rugăm să confirmați faptul că într-adevăr doriți să recreați acest
 'table_pager_prev' => 'Pagina anterioară',
 'table_pager_first' => 'Prima pagină',
 'table_pager_last' => 'Ultima pagină',
-'table_pager_limit' => 'Arată $1 itemi pe pagină',
+'table_pager_limit' => 'Arată $1 elemente pe pagină',
 'table_pager_limit_label' => 'Elemente pe pagină:',
 'table_pager_limit_submit' => 'Du-te',
 'table_pager_empty' => 'Niciun rezultat',
index c1ebf9a..29c8f18 100644 (file)
@@ -288,7 +288,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Skryť strážené úpravy v Posledných úpravách',
 'tog-newpageshidepatrolled' => 'Skryť strážené stránky zo zoznamu nových stránok',
 'tog-extendwatchlist' => 'Rozšíriť zoznam sledovaných, aby zobrazoval všetky zmeny, nie len posledné',
-'tog-usenewrc' => 'Použiť rozšírené zobrazenie posledných úprav (vyžaduje JavaScript)',
+'tog-usenewrc' => 'Zoskupiť zmeny v posledných úpravách a zoznamoch sledovaných (vyžaduje JavaScript)',
 'tog-numberheadings' => 'Automaticky číslovať nadpisy',
 'tog-showtoolbar' => 'Zobraziť panel nástrojov úprav',
 'tog-editondblclick' => 'Upravovať stránky po dvojitom kliknutí (JavaScript)',
@@ -639,6 +639,8 @@ Oznámte to prosím [[Special:ListUsers/sysop|správcovi]] a uveďte URL.',
 'cannotdelete' => 'Nebolo možné zmazať stránku alebo súbor „$1“.
 Možno ju už zmazal nieto iný.',
 'cannotdelete-title' => 'Nemôžete zmazať stránku "$1"',
+'delete-hook-aborted' => 'Zmazanie zrušila prídavná funkcia (prípojný bod syntaktického analyzátora).
+Neudala vysvetlenie.',
 'badtitle' => 'Neplatný nadpis',
 'badtitletext' => 'Požadovaný nadpis bol neplatný, nezadaný, alebo nesprávne odkazovaný z inej jazykovej verzie {{GRAMMAR:genitív|{{SITENAME}}}}. Mohol tiež obsahovať jeden alebo viac znakov, ktoré nie je možné použiť v nadpisoch.',
 'perfcached' => 'Nasledujúce údaje pochádzajú z vyrovnávacej pamäte a nemusia byť úplne aktuálne. Vo vyrovnávacej pamäti {{PLURAL:$1|je dostupný|sú dostupné|je dostupných}} najviac {{PLURAL:$1|jeden výsledok|$1 výsledky|$1 výsledkov}}.',
@@ -670,7 +672,8 @@ Udaný dôvod: ''$2''.",
 Správca, ktorý ho zamkol ponúkol toto vysvetlenie: „$3“.',
 'invalidtitle-knownnamespace' => 'Neplatný názov s menným priestorom „$2“ a textom „$3“',
 'invalidtitle-unknownnamespace' => 'Neplatný názov s neznámym číslom menného priestoru „$1“ a textom „$2“',
-'exception-nologin' => 'Nie ste prihlásený/á',
+'exception-nologin' => 'Nie ste prihlásený',
+'exception-nologin-text' => 'Táto stránka alebo operácia vyžaduje, aby ste boli na tejto wiki prihlásení.',
 
 # Virus scanner
 'virus-badscanner' => "Chybná konfigurácia: neznámy antivírus: ''$1''",
@@ -2131,7 +2134,7 @@ na ktorý/-ého chcete aplikovať túto funkciu.',
 Môžete zúžiť rozsah, ak zvolíte typ záznamu, používateľské meno alebo dotyčnú stránku (záleží na veľkosti písmen).',
 'logempty' => 'V zázname neboli nájdené zodpovedajúce položky.',
 'log-title-wildcard' => 'Hľadať názvy začínajúce týmto textom',
-'showhideselectedlogentries' => 'Zobraziť/skryť vybraté položky denníka',
+'showhideselectedlogentries' => 'Zobraziť/skryť vybraté položky záznamu',
 
 # Special:AllPages
 'allpages' => 'Všetky stránky',
@@ -3044,6 +3047,7 @@ Pravdepodobne to spôsobil odkaz na externú internetovú lokalitu, ktorá sa na
 'spambot_username' => 'MediaWiki čistenie spamu',
 'spam_reverting' => 'Vraciam poslednú verziu, ktorá neobsahuje odkazy na $1',
 'spam_blanking' => 'Všetky revízie obsahovali odkaz na $1, odstraňujem obsah',
+'spam_deleting' => 'Všetky revízie obsahovali odkaz na $1, odstraňuje sa',
 
 # Info page
 'pageinfo-title' => 'Informácie o „$1“',
@@ -3925,7 +3929,8 @@ V opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš k
 'api-error-empty-file' => 'Súbor, ktorý ste poslali bol prázdny.',
 'api-error-emptypage' => 'Vytváranie nových, prázdnych stránok nie je dovolené.',
 'api-error-fetchfileerror' => 'Vnútorná chyba: Niečo pokazilo počas sťahovania súboru.',
-'api-error-fileexists-forbidden' => 'Súbor s názvom "$1" už existuje, a nemôže byť prepísaný.',
+'api-error-fileexists-forbidden' => 'Súbor s názvom „$1“ už existuje a nie je možné prepísať ho.',
+'api-error-fileexists-shared-forbidden' => 'Súbor s názvom „$1“ už neexistuje v repozitári zdieľaných súborov a nie je možné prepísať ho.',
 'api-error-file-too-large' => 'Súbor, ktorý ste poslali bol príliš veľký.',
 'api-error-filename-tooshort' => 'Názov súboru je príliš krátky.',
 'api-error-filetype-banned' => 'Tento typ súboru je zakázaný.',
@@ -3964,4 +3969,6 @@ V opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš k
 'duration-centuries' => '$1 {{PLURAL:$1|storočie|storočia|storočí}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tisícročie|tisícročia|tisícročí}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Nepodarilo sa získať zámky na serveri $1.',
 );
index 51ce059..8bc74a7 100644 (file)
@@ -424,8 +424,8 @@ Zapytańy: $2',
 'viewsource-title' => 'Uobocz zdrzůdło lo $1',
 'actionthrottled' => 'Akcyjo wstřimano',
 'actionthrottledtext' => 'Mechańizm uobrůny před spamym uograńičo ličba wykonań tyj čynnośći we jednostce času. Průbowoužeś go uocygańić. Proša, sprůbuj na nowo za pora minut.',
-'protectedpagetext' => 'Ta zajta je zawarto před sprowjańym.',
-'viewsourcetext' => 'We tekst zdřůduowy tyj zajty možno dali filować, idźe go tyž kopjować.',
+'protectedpagetext' => 'Ta zajta je zawarto przed sprowjańym.',
+'viewsourcetext' => 'We tekst zdrzůduowy tyj zajty możno dali filować, idźe go tyż kopjyrować.',
 'viewyourtext' => 'We tekst zdrzůduowy tyj zajty możno dali filować, idźe go tyż kopjować.',
 'protectedinterface' => 'Na tyj zajće znojduje śe tekst interfejsu uoprogramowańo, bestož uůna je zawarto uod sprowjańo.',
 'editinginterface' => "''''Dej pozůr:''' Sprowjosz zajta, na keryj je tekst interfejsu uoprogramowańo. Pomjyńyńa na tyj zajće zmjyńům wyglůnd interfejsu lo inkšych užytkowńikůw.",
@@ -1339,7 +1339,7 @@ Idź nazod i wćepej tyn plik pod inkšym mjanym. [[File:$1|thumb|center|$1]]',
 'uploadwarning' => 'Uostřežyńe uo wćepywańu',
 'savefile' => 'Spamjyntej plik',
 'uploadedimage' => 'wćepano "[[$1]]"',
-'overwroteimage' => 'wćepano nowšo wersyjo "[[$1]]"',
+'overwroteimage' => 'wćepano nowszo wersyjo "[[$1]]"',
 'uploaddisabled' => 'Wćepywanie sam plikůw je zawarte',
 'uploaddisabledtext' => 'Wćepywańe plikůw je zawarte.',
 'uploadscripted' => 'Tyn plik zawjyro kod HTML abo skrypt kery može zostać felerńe zinterpretowany bez přyglůndarka internetowo.',
@@ -1436,9 +1436,9 @@ Niżyj sům informacyje ze [$2 zajty popisu] tygo pliku.',
 'filedelete-nofile-old' => "Ńy ma sam zarchiwizowanyj wersje '''$1''' o atrybutach jake žeś podou.",
 'filedelete-otherreason' => 'Inkšy powůd:',
 'filedelete-reason-otherlist' => 'Inkszy powůd',
-'filedelete-reason-dropdown' => '* Nojčynstše powody wyćepańa
-** Narušyńy praw autorskych
-** Kopja plika kery juž sam jest',
+'filedelete-reason-dropdown' => '* Nojczynstsze powody wyćepańa
+** Naruszyńy praw autorskych
+** Kopja plika kery już sam jest',
 'filedelete-edit-reasonlist' => 'Sprowjańe powodůw wyćepańo zajty',
 
 # MIME search
@@ -1771,9 +1771,9 @@ Pomoc:
 'deletecomment' => 'Čymu:',
 'deleteotherreason' => 'Inkšy powůd:',
 'deletereasonotherlist' => 'Inkszy powůd',
-'deletereason-dropdown' => '* Nojčynstše přičyny wyćepańa
+'deletereason-dropdown' => '* Nojczynstsze prziczyny wyćepańa
 ** Prośba autora
-** Narušyńy praw autorskych
+** Naruszyńy praw autorskych
 ** Wandalizm',
 'delete-edit-reasonlist' => 'Sprowjańe listy powodůw wyćepańo zajty',
 'delete-toobig' => 'Ta zajta mo fest dugo historyja sprowjyń, wjyncyj jak $1 {{PLURAL:$1|půmjyńańy|půmjyńańo|půmjyńań}}.
index f76177e..6c79c31 100644 (file)
@@ -492,6 +492,8 @@ Pakiulat ito sa isang [[Special:ListUsers/sysop|tagapangasiwa]], na ibinibigay a
 'cannotdelete' => 'Hindi mabura ang pahina o talaksang "$1".
 Maaaring ibinura na ito ng iba.',
 'cannotdelete-title' => 'Hindi maibura ang pahinang "$1"',
+'delete-hook-aborted' => 'Pinigil ng sungkit ang pagbura.
+Walang ibinigay na paliwanag.',
 'badtitle' => 'Hindi kanais-nais na pamagat',
 'badtitletext' => 'Ang hiniling na pamagat ng pahina ay hindi katanggap-tanggap, wala, o isang may-maling kawing na pamagat na pangugnayang-wika (interwika) o pangugnayang wiki (interwiki).
 Maaaring naglalaman ito ng isa o higit pang mga panitik (karakter) na hindi maaaring gamitin para sa mga pamagat.',
@@ -896,7 +898,7 @@ Ang pinakahuling entrada sa talaan ay ibinigay sa baba para sa inyong pagsasangg
 'nocreatetitle' => 'May hangganan ang paglikha ng pahina',
 'nocreatetext' => 'Naglagay ng hangganan (restriksyon/limitasyon) ang {{SITENAME}} sa kakayahang makalikha ng bagong mga pahina.
 Maaari kang bumalik at magbago ng isang umiiral na pahina, o kaya [[Special:UserLogin|lumagda o lumikha ng kuwenta/akawnt]].',
-'nocreate-loggedin' => 'Walang kang pahintulot para lumikha ng bagong mga pahina.',
+'nocreate-loggedin' => 'Wala kang pahintulot para lumikha ng bagong mga pahina.',
 'sectioneditnotsupported-title' => 'Hindi sinusuportahan ang pagpapatnugot ng seksyon',
 'sectioneditnotsupported-text' => 'Hindi sinusuportahan ang pagpapatnugot ng seksyon sa pahinang ito.',
 'permissionserrors' => 'Mga kamalian sa mga pahintulot',
@@ -2842,7 +2844,7 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'tooltip-upload' => 'Simulan ang pagkarga',
 'tooltip-rollback' => 'Ibinabalik ng "Pagulungin pabalik sa dati" ang (mga) pagbabago sa pahinang ito patungo sa huling bersyon ng huling tagapagambag sa pamamagitan ng isang pindot lamang.',
 'tooltip-undo' => 'Ibinabalit ng "Ibalik" ang pagbabagong ito at binubuksan ang pahinang gawaan ng pagbabago sa anyong paunang-tingin muna.  Nagpapahintulot na makapagdagdag ng dahilan sa buod.',
-'tooltip-preferences-save' => 'Itakda ang mga kagustuhan',
+'tooltip-preferences-save' => 'Sagipin ang mga nais',
 'tooltip-summary' => 'Magbigay ng maikling buod',
 
 # Stylesheets
@@ -3811,6 +3813,8 @@ O kaya, maaari mong gamitin ang maginhawang pormularyo sa ibaba. Ang iyong pagpu
 'api-error-empty-file' => 'Walang laman ang ipinasa mong talaksan.',
 'api-error-emptypage' => 'Lumilikha ng bago, hindi pinapayagan ang mga pahinang walang laman.',
 'api-error-fetchfileerror' => 'Panloob na kamalian: may naganap na pagkakamali habang kinukuha ang talaksan.',
+'api-error-fileexists-forbidden' => 'Isang talaksan na may pangalang "$1" ang umiiral na, at hindi maaaring patungan ng muling pagsusulat.',
+'api-error-fileexists-shared-forbidden' => 'Isang talaksang may pangalang "$1" ang umiiral na sa loob ng repository ng pinagsasaluhang talaksan, at hindi maaaring patungan ng muling pagsusulat.',
 'api-error-file-too-large' => 'Napakalaki ng talaksang ipinasa mo.',
 'api-error-filename-tooshort' => 'Napakaiksi ng pangalan ng talaksan.',
 'api-error-filetype-banned' => 'Ipinagbabawal ang ganitong uri ng talaksan.',
index 5b7947c..11a673d 100644 (file)
@@ -479,7 +479,7 @@ $messages = array(
 
 # Preferences page
 'preferences' => 'Чичсә печыније',
-'mypreferences' => 'Ð\9fеÑ\87Ñ\8bниÑ\98е',
+'mypreferences' => 'Ð\9aÑ\83кон',
 'prefsnologin' => 'Ыштәни едаштәнијоне',
 'prefsnologintext' => 'Шымә бәбе <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ыштәни едәштән]</span> бо иштирокәкә пеғәндон дәгиш кардеј.',
 'changepassword' => 'Пароли дәгиш кардеј',
@@ -509,7 +509,7 @@ $messages = array(
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|дәгиши|дәгишон}}',
 'recentchanges' => 'Ән нујә дәгишон',
-'recentchanges-legend' => 'Ó\98н Ð½Ñ\83Ñ\98Ó\99 Ð´Ó\99гиÑ\88он Ð¿ÐµÑ\87Ñ\8bниÑ\98е',
+'recentchanges-legend' => 'Ó\98н Ð½Ñ\83Ñ\98Ó\99 Ð´Ó\99гиÑ\88он ÐºÑ\83кон',
 'recentchanges-summary' => 'Тәмшо быкән бы сәһифәдә че вики охоминә дәгишон нишо доә быән.',
 'recentchanges-feed-description' => 'Ым каналәдә быә охонә дәгишон дығғәтәдә огәт.',
 'recentchanges-label-newpage' => 'Де ым дәгиши тожә сәһифә сохтә бе',
@@ -737,7 +737,7 @@ $messages = array(
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Шымә иштирокәкә сәһифә',
 'tooltip-pt-mytalk' => 'Шымә мызокирон сәһифә',
-'tooltip-pt-preferences' => 'ШÑ\8bмÓ\99 Ð¿ÐµÑ\87Ñ\8bниÑ\98Ó\99Ñ\98оне',
+'tooltip-pt-preferences' => 'ШÑ\8bмÓ\99 ÐºÑ\83кон',
 'tooltip-pt-watchlist' => 'Сәһифон сијоһи, конҹо шымә де дығғәти дијә кардејдәјон бә дәгишон',
 'tooltip-pt-mycontris' => 'Шымә гәнҹон сијоһи',
 'tooltip-pt-login' => 'Ијо бәбе ыштәни ғејд кардовнијеј системәдә, интаси ым һукман ни',
index 3ac8307..ed20cdc 100644 (file)
@@ -712,6 +712,8 @@ $1',
 'cannotdelete' => 'Неможливо вилучити сторінку або файл "$1".
 Можливо, її (його) вже вилучив хтось інший.',
 'cannotdelete-title' => 'Не вдається видалити сторінку «$1»',
+'delete-hook-aborted' => 'Вилучення було скасовано процедурою-перехоплювачем. 
+Ніяких поясненень надано не було.',
 'badtitle' => 'Неприпустима назва',
 'badtitletext' => 'Запитана назва сторінки неправильна, порожня, або неправильно зазначена міжмовна чи міжвікі назва.
 Можливо, в назві використовуються недопустимі символи.',
@@ -741,6 +743,7 @@ $1',
 'filereadonlyerror' => "Неможливо змінити файл «$1» тому, що файловий архів «$2» перебуває в режимі «лише для читання».
 Адміністратор, що заблокував його, залишив таке пояснення: «''$3''».",
 'invalidtitle-knownnamespace' => 'Неприйнятна назва у просторі імен «$2» і текстом «$3»',
+'invalidtitle-unknownnamespace' => 'Неправильний заголовок з невідомим номером простору імен ($1) і текстом: «$2»',
 'exception-nologin' => 'Не виконано вхід',
 'exception-nologin-text' => 'Ця сторінка чи дія потребує, щоб Ви ввійшли до цієї Вікі.',
 
@@ -1142,6 +1145,7 @@ $2
 'expansion-depth-exceeded-category' => 'Сторінки, де перевищено глибину розгортання',
 'expansion-depth-exceeded-warning' => 'На сторінці перевищено межу глибини вкладеності',
 'parser-unstrip-loop-warning' => 'Виявлено незакритий тег (такий, як <pre>)',
+'parser-unstrip-recursion-limit' => 'Перевищено межу вкладеної рекурсії ($1) для парсера.',
 
 # "Undo" feature
 'undo-success' => 'Редагування може бути скасовано.
@@ -4027,6 +4031,8 @@ MediaWiki поширюється в надії, що вона буде кори
 'version-software' => 'Установлене програмне забезпечення',
 'version-software-product' => 'Продукт',
 'version-software-version' => 'Версія',
+'version-entrypoints' => 'URL-адреса точки входу',
+'version-entrypoints-header-entrypoint' => 'Точка входу',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
@@ -4189,6 +4195,8 @@ MediaWiki поширюється в надії, що вона буде кори
 'api-error-empty-file' => 'Файл, який ви надіслали, порожній.',
 'api-error-emptypage' => 'Створення нової порожньої сторінки неприпустиме.',
 'api-error-fetchfileerror' => 'Внутрішня помилка: щось пішло не так під час отримання файлу.',
+'api-error-fileexists-forbidden' => 'Файл з назвою «$1» вже існує і його не можна перезаписати.',
+'api-error-fileexists-shared-forbidden' => 'Файл з назвою «$1» вже існує в сховищі спільних файлів, його не можна перезаписати.',
 'api-error-file-too-large' => 'Файл, який ви надіслали, завеликий.',
 'api-error-filename-tooshort' => 'Назва файлу занадто коротка.',
 'api-error-filetype-banned' => 'Цей тип файлів заборонений.',
index bbc12df..0185aeb 100644 (file)
@@ -79,6 +79,8 @@ $messages = array(
 'pagecategories' => '{{PLURAL:$1|Gruppa|Gruppad}}',
 'category_header' => 'Cuľľed, kummad õvad gruppaz "$1"',
 'subcategories' => 'Alagruppad',
+'category-media-header' => 'Mediafailid, kummad õvad gruppaz "$1"',
+'category-empty' => "''Kase gruppa on tühjä.''",
 'hidden-categories' => '{{PLURAL:$1|Salautõttu gruppa|Salautõtud gruppad}}',
 'category-subcat-count' => '{{PLURAL:$2|Senez gruppaz on ainult vahtiaava alagruppa.|{{PLURAL:$1|Vahtiaava alagruppa kuulub|Vahtiaava $1 alagruppaa kuuluvad}} sihee gruppaa. Alagruppaďďe cisla gruppaza on $2.}}',
 'category-article-count' => '{{PLURAL:$2|Senez gruppaz on ainult vahtiaava cülci.|{{PLURAL:$1|Vahtiaava alagruppa kuulub|Vahtiaava $1 tšültšiä kuuluvad}} sihee gruppaa. Cülcije cisla gruppaza on $2.}}',
@@ -101,11 +103,17 @@ $messages = array(
 'faqpage' => 'Project:FAQ',
 
 # Vector skin
+'vector-action-addsection' => 'Vassõn teema',
 'vector-action-delete' => 'Pühi',
 'vector-action-move' => 'Liikut',
 'vector-action-protect' => 'Varjaa',
+'vector-view-create' => 'Loo cülci',
 'vector-view-edit' => 'Muuttaa',
+'vector-view-history' => 'Istori',
 'vector-view-view' => 'Lukõa',
+'vector-view-viewsource' => 'Lähtekoodi',
+'actions' => 'Tekod',
+'namespaces' => 'Nimiruumid',
 
 'errorpagetitle' => 'Vika',
 'returnto' => 'Mee takaz cüľľelle $1.',
@@ -148,13 +156,17 @@ $messages = array(
 'aboutpage' => 'Project:Täätühsed',
 'copyright' => 'Sisälto on $1 litsentsii mukka svobodnoi.',
 'copyrightpage' => '{{ns:project}}:Kopiraitti',
+'currentevents' => 'Nücüizõd noovosťi',
+'currentevents-url' => 'Project:Nücüizõd noovosťi',
 'disclaimers' => 'Ceeltümin vassamizõõ',
 'disclaimerpage' => 'Project:Ceeltümin vassamizõõ',
 'edithelp' => 'Muutuzavid',
 'edithelppage' => 'Help:Kui muuttaa cülciä',
 'helppage' => 'Help:Sisälto',
-'mainpage' => 'Esitšültši',
+'mainpage' => 'Esicülci',
 'mainpage-description' => 'Esicülci',
+'portal' => 'Foorum',
+'portal-url' => 'Project:Foorum',
 'privacy' => 'Salaštrahuituz',
 'privacypage' => 'Project:Salaštrahuituz',
 
@@ -167,6 +179,7 @@ $messages = array(
 'newmessagesdifflink' => 'viimõin muutuz',
 'editsection' => 'muuttaa',
 'editold' => 'muuttaa',
+'viewsourceold' => 'lähtekoodi',
 'editlink' => 'muuttaa',
 'viewsourcelink' => 'lähtekoodi',
 'editsectionhint' => 'Muutta alajakkoa $1',
@@ -183,12 +196,14 @@ $messages = array(
 'nstab-main' => 'Artikkeli',
 'nstab-user' => 'Cäüttijäcülci',
 'nstab-special' => 'Osoobennoi cülci',
-'nstab-project' => 'Projektitšültši',
+'nstab-project' => 'Projekticülci',
 'nstab-image' => 'Faili',
+'nstab-mediawiki' => 'Ilmottamin',
 'nstab-template' => 'Šablooni',
 'nstab-category' => 'Gruppa',
 
 # General errors
+'error' => 'Vika',
 'missing-article' => 'Cüľľee sisältoa eb löütännü täätöbaazassa: $1 $2.
 
 Ussassi se johtub ustaŕeloi sravńoi- vai istorilinkissä roocittulõõ cüľľelee.
@@ -221,6 +236,10 @@ Kui cüsümüssessä ebõõ roocittu cülci, võib õlla õlõttõ löütännü
 # Special:PasswordReset
 'passwordreset-username' => 'Cäüttijänimi:',
 
+# Special:ChangeEmail
+'changeemail-newemail' => 'Vassõn e-mail:',
+'changeemail-cancel' => 'Otmeńoit',
+
 # Edit page toolbar
 'bold_sample' => 'Pimmiä teksti',
 'bold_tip' => 'Pimmiä teksti',
@@ -271,6 +290,7 @@ Võitta loovva cüľľee cirjuttamall alla õlõvasõõ tilaa. Kui että taho lo
 
 # History pages
 'viewpagelogs' => 'Näüt sene cüľľee logid',
+'currentrev' => 'Nücüin verzija',
 'currentrev-asof' => 'Nücüin verzija $1',
 'revisionasof' => 'Verzija $1',
 'previousrevision' => '← Vanõpi verzija',
@@ -285,9 +305,17 @@ Võitta loovva cüľľee cirjuttamall alla õlõvasõõ tilaa. Kui että taho lo
 
 # Revision deletion
 'rev-delundel' => 'näüt/salauta',
+'rev-showdeleted' => 'näüt väľľää',
+'revdelete-show-file-submit' => 'Daa',
 'revdelete-radio-set' => 'Daa',
 'revdelete-radio-unset' => 'Eb',
+'revdelete-log' => 'Süü:',
 'revdel-restore' => 'muutu näcüvüss',
+'pagehist' => 'Cüľľee istori',
+'revdelete-reasonotherlist' => 'Muu süü',
+
+# History merging
+'mergehistory-reason' => 'Süü:',
 
 # Merge log
 'revertmerge' => 'Kummut ühesüz',
@@ -309,6 +337,9 @@ Võitta loovva cüľľee cirjuttamall alla õlõvasõõ tilaa. Kui että taho lo
 'prevn' => '{{PLURAL:$1|edellinen|$1 entiiss}}',
 'nextn' => '{{PLURAL:$1|$1}} vahtiaava →',
 'viewprevnext' => 'Näüt ($1 {{int:pipe-separator}} $2) ($3)',
+'searchprofile-images' => 'Multimedia',
+'searchprofile-everything' => 'Kõik',
+'searchprofile-project-tooltip' => 'Etsi "$1":az',
 'search-result-size' => '$1 ({{PLURAL:$2|1 sõna|$2 sõna}})',
 'search-redirect' => '(mešaituz $1)',
 'search-section' => '(alajako $1)',
@@ -327,9 +358,17 @@ Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taa
 'powersearch-redir' => 'Spiiska mešaitussijõ',
 'powersearch-field' => 'Etsi',
 
+# Quickbar
+'qbsettings-none' => 'Eb õõ',
+
 # Preferences page
 'preferences' => 'Koozid',
 'mypreferences' => 'Minu koozid',
+'skin-preview' => 'Prestavleńńa',
+'prefs-datetime' => 'Kuupäivä i aika',
+'prefs-user-pages' => 'Cäüttijäcülcid',
+'prefs-rc' => 'Viimõizõd muutussõd',
+'searchresultshead' => 'Etsi',
 'timezoneregion-africa' => 'Afrikka',
 'timezoneregion-america' => 'Ameerika',
 'timezoneregion-asia' => 'Aazija',
@@ -338,6 +377,7 @@ Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taa
 'prefs-files' => 'Failid',
 'youremail' => 'E-mail:',
 'username' => 'Cäüttijänimi:',
+'yourrealname' => 'Minu nimi:',
 'yourlanguage' => 'Ceeli:',
 'yourgender' => 'Sukupooli',
 'gender-male' => 'Mehin',
@@ -348,12 +388,17 @@ Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taa
 'userrights-reason' => 'Süü:',
 
 # Groups
+'group-user' => 'Сäüttijäd',
 'group-sysop' => 'Praviťeľad',
 
+'group-user-member' => 'cäüttijä',
+
+'grouppage-user' => '{{ns:project}}:Сäüttijäd',
 'grouppage-sysop' => '{{ns:project}}:Praviťeľad',
 
 # User rights log
 'rightslog' => 'Cäütteminõikuslogi',
+'rightsnone' => '(eb õõ)',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-edit' => 'muutu sitä cülciä',
@@ -384,7 +429,9 @@ Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taa
 
 # Recent changes linked
 'recentchangeslinked' => 'Sukulaizõd muutussõd.',
-'recentchangeslinked-title' => 'Cüľľelt $1 linkitettüďďe cültšije muutuhsõd.',
+'recentchangeslinked-feed' => 'Sukulaizõd muutussõd',
+'recentchangeslinked-toolbox' => 'Sukulaizõd muutussõd',
+'recentchangeslinked-title' => 'Cüľľelt $1 linkitettüďďe cülcije muutuhsõd.',
 'recentchangeslinked-summary' => "Kase osoobennoi cülci näütteb muutusõd cülcillä, kummalõõ on seltä cüľľeltä näüteltü.
 Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on cirjuttõnnu '''pimmiässi'''.",
 'recentchangeslinked-page' => 'Cüľľee nimi:',
@@ -392,13 +439,26 @@ Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on c
 
 # Upload
 'upload' => 'Laajõngoit failia ülez',
+'uploadbtn' => 'Laajõngoit failia ülez',
 'uploadlogpage' => 'Faililogi',
+'filename' => 'Failinimi',
+'filedesc' => 'Turvotuz',
+'fileuploadsummary' => 'Turvotuz:',
 'uploadedimage' => '"[[$1]]" on laajõngoitõttu ülez',
 
+# Special:ListFiles
+'imgfile' => 'faili',
+'listfiles_thumb' => 'Peenikuva',
+'listfiles_date' => 'Kuupäivä',
+'listfiles_name' => 'Nimi',
+'listfiles_user' => 'Сäüttijä',
+
 # File description page
 'file-anchor-link' => 'Faili',
 'filehist' => 'Failii istori',
-'filehist-help' => 'Štšolkoittõga Päiväcisla/Celloaika näe miltäin faili õli sell aiga pilkall.',
+'filehist-help' => 'Šcolkoittõga Päiväcisla/Celloaika näe miltäin faili õli sell aiga pilkall.',
+'filehist-deleteone' => 'pühi',
+'filehist-revert' => 'kummut',
 'filehist-current' => 'nücüin',
 'filehist-datetime' => 'Päiväсisla/Сelloaika',
 'filehist-thumb' => 'Peenikuva',
@@ -413,6 +473,7 @@ Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on c
 
 # File reversion
 'filerevert-comment' => 'Süü:',
+'filerevert-submit' => 'Kummut',
 
 # File deletion
 'filedelete-comment' => 'Süü:',
@@ -423,12 +484,19 @@ Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on c
 
 # Statistics
 'statistics' => 'Staťisťikka',
+'statistics-pages' => 'Cülcid',
+
+'brokenredirects-edit' => 'muuttaa',
+'brokenredirects-delete' => 'pühi',
+
+'withoutinterwiki-submit' => 'Näüt väľľää',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|baitti|baittia}}',
 'nmembers' => '$1 {{PLURAL:$1|selttsilain|selttsilaizõd}}',
 'prefixindex' => 'Kõik cüľľed prefiksiikaa',
 'newpages' => 'Uuvvõd cüľľed',
+'newpages-username' => 'Cäüttijänimi:',
 'move' => 'Liikut',
 'movethispage' => 'Liikut kase cülci',
 'pager-newer-n' => '{{PLURAL:$1|uuvvõpi 1|uuvvõpad $1}}',
@@ -451,11 +519,19 @@ Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on c
 'allarticles' => 'Kõikõd cüľľed',
 'allpagessubmit' => 'Mee',
 
+# Special:Categories
+'categories' => 'Gruppad',
+
 # Special:DeletedContributions
 'sp-deletedcontributions-contribs' => 'Minu avittamizõd',
 
 # Special:LinkSearch
 'linksearch' => 'Ulkopoolizõd linkid',
+'linksearch-ns' => 'Nimiruumi:',
+'linksearch-ok' => 'Etsi',
+
+# Special:ListUsers
+'listusers-submit' => 'Näüt väľľää',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Uuvvõd cäüttijäd',
@@ -464,19 +540,21 @@ Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on c
 'listgrouprights-members' => '(selttsilainspiiska)',
 
 # E-mail user
-'emailuser' => 'Lähettega elektropoštia selle tšäüttijälle',
+'emailuser' => 'Lähettega elektropoštia selle cäüttijälle',
+'emailusername' => 'Cäüttijänimi:',
+'emailmessage' => 'Ilmottamin:',
 
 # Watchlist
 'watchlist' => 'Minu kattsõspiiska',
 'mywatchlist' => 'Minu kattsõspiiska',
-'addedwatchtext' => "Tšültši \"[[:\$1]]\" on lisättü Teďďee [[Special:Watchlist|kattsospiizgallõ]].
-Tšültšese ja sene juttutšültšese tehäväd tulõvaizõd muutuhsõd leeväd tšisloitõtud siäll.
-Tšültši leeb tširjutõttu '''pimmiässi''' [[Special:RecentChanges|spiizgall viimeizije muutuhsijõ]].",
-'removedwatchtext' => 'Tšültši "[[:$1]]" on pantu [[Special:Watchlist|teďďee kattsõspiizgalt]] poiz.',
+'addedwatchtext' => "Cülci \"[[:\$1]]\" on lisättü Teďďee [[Special:Watchlist|kattsospiizgallõ]].
+Cülcese ja sene juttucülcese tehäväd tulõvaizõd muutuhsõd leeväd cisloitõtud siäll.
+Cülci leeb cirjutõttu '''pimmiässi''' [[Special:RecentChanges|spiizgall viimeizije muutuhsijõ]].",
+'removedwatchtext' => 'Cülci "[[:$1]]" on pantu [[Special:Watchlist|teďďee kattsõspiizgalt]] poiz.',
 'watch' => 'Katso',
-'watchthispage' => 'Katso sitä tšültšiä',
+'watchthispage' => 'Katso sitä cülciä',
 'unwatch' => 'Lõpõt kattsõõmin',
-'watchlist-details' => 'Kattsõspiizgall on {{PLURAL:$1|$1 tšültši|$1 tšültšiä}} (ilma juttutšültšiit).',
+'watchlist-details' => 'Kattsõspiizgall on {{PLURAL:$1|$1 cülci|$1 cülciä}} (ilma juttucülciit).',
 'wlshowlast' => 'Näüt viimeized $1 tunnia vai $2 päivää $3',
 'watchlist-options' => 'Kattsõspiizgaa valimizõd',
 
@@ -484,191 +562,225 @@ Tšültši leeb tširjutõttu '''pimmiässi''' [[Special:RecentChanges|spiizgall
 'watching' => 'Kattsõõn…',
 'unwatching' => 'Kattsõõmizõõ lõpõttõmin…',
 
+'enotif_newpagetext' => 'Kase on vassõn cülci.',
+
 # Delete
-'deletepage' => 'Pühi tšültši',
-'confirmdeletetext' => 'Õlõtta pühtšimässä tšüľľee vai failii ja kõigõ sene istorii. Õlka nii üvä, kõvissõga jot tahotta sitä tehä, jot saatta arvoa sledstvijäd jot pühtšimüz on [[{{MediaWiki:Policy-url}}|poolissaa]] mukka.',
+'deletepage' => 'Pühi cülci',
+'delete-legend' => 'Pühi',
+'confirmdeletetext' => 'Õlõtta pühcimässä cüľľee vai failii ja kõigõ sene istorii. Õlka nii üvä, kõvissõga jot tahotta sitä tehä, jot saatta arvoa sledstvijäd jot pühcimüz on [[{{MediaWiki:Policy-url}}|poolissaa]] mukka.',
 'actioncomplete' => 'Töö tehtü lõppuu',
 'deletedtext' => '"$1" on pühittü.
-Tšüľľellä $2 on spiiska viimeiziss pühtšimühsiiss.',
-'dellogpage' => 'Pühitüd üľľed',
+Cüľľellä $2 on spiiska viimeiziss pühcimühsiiss.',
+'dellogpage' => 'Pühitüd cüľľed',
 'deletecomment' => 'Süü',
 'deleteotherreason' => 'Muu vai lisä süü',
 'deletereasonotherlist' => 'Muu süü',
 
 # Rollback
+'rollback_short' => 'Vääntega',
 'rollbacklink' => 'vääntega',
 
 # Protect
-'protectlogpage' => 'Varjõtud üľľed',
+'protectlogpage' => 'Varjõtud cüľľed',
 'protectedarticle' => '"[[$1]]" on nüd varjõttu',
-'modifiedarticleprotection' => 'muuti üľľee [[$1]] varjauztasoa',
+'modifiedarticleprotection' => 'muuti cüľľee [[$1]] varjauztasoa',
 'protectcomment' => 'Süü',
 'protectexpiry' => 'Lõpub:',
 'protect_expiry_invalid' => 'Lõppuaika eb kõlpa.',
 'protect_expiry_old' => 'Lõppuaika on meneväz.',
-'protect-text' => "Võitta kattsoa ja muuttaa üľľee '''$1''' lupoit.",
-'protect-locked-access' => "Että või muuttaa tšüľľee varjauztasoa. All on tšüľľee \"'''\$1'''\" nütšüized varjauztazod:",
-'protect-cascadeon' => 'Kase tšültši on varjõttu, ku on sisällütettü all {{PLURAL:$1|õlõvaa jadgotussi varjõttuhõõ tšültšese|õlõvii jadgotussi varjõttuisõ tšültšiise}}. Võitta muuttaa sene tšüľľee varjuztasoa, mutta se eb vaikuta jadgotõttuu varjuhsiise.',
-'protect-default' => 'Salli kõik äüttijäd',
+'protect-text' => "Võitta kattsoa ja muuttaa cüľľee '''$1''' lupoit.",
+'protect-locked-access' => "Että või muuttaa cüľľee varjauztasoa. All on cüľľee \"'''\$1'''\" nücüized varjauztazod:",
+'protect-cascadeon' => 'Kase cülci on varjõttu, ku on sisällütettü all {{PLURAL:$1|õlõvaa jadgotussi varjõttuhõõ cülcese|õlõvii jadgotussi varjõttuisõ cülciise}}. Võitta muuttaa sene cüľľee varjuztasoa, mutta se eb vaikuta jadgotõttuu varjuhsiise.',
+'protect-default' => 'Salli kõik cäüttijäd',
 'protect-fallback' => 'Treebuit $1-õikuz',
-'protect-level-autoconfirmed' => 'Piättee uuvvõd ja anonüümed äüttijäd',
+'protect-level-autoconfirmed' => 'Piättee uuvvõd ja anonüümed cäüttijäd',
 'protect-level-sysop' => 'Ainult praviťeľad',
 'protect-summary-cascade' => 'jadgotõltu',
 'protect-expiring' => 'lõpub $1',
-'protect-cascade' => 'Varjaa jõka tšültši, kumpa on tänne tšültšesee sisällütennü.',
-'protect-cantedit' => 'Että või muuttaa tšüľľee varjauztasoa, ku tüü että saa muuttaa tšültšiä.',
+'protect-expiry-indefinite' => 'iciin',
+'protect-cascade' => 'Varjaa jõka cülci, kumpa on tänne cülcesee sisällütennü.',
+'protect-cantedit' => 'Että või muuttaa cüľľee varjauztasoa, ku tüü että saa muuttaa cülciä.',
+'protect-otherreason-op' => 'Muu süü',
+'protect-expiry-options' => '1 tunni:1 hour,1 päivä:1 day,1 näteľi:1 week,2 näteľiä:2 weeks,1 kuu:1 month,3 kuut:3 months,6 kuut:6 months,1 voosi:1 year,iciin:infinite',
 'restriction-type' => 'Rajauz',
 'restriction-level' => 'Varjauz',
 
+# Restrictions (nouns)
+'restriction-edit' => 'Muuttaa',
+'restriction-move' => 'Liikut',
+'restriction-create' => 'Loo cülci',
+
 # Undelete
 'undeletelink' => 'näüt/vääntee',
+'undeleteviewlink' => 'prestavleńńõd',
+'undeletecomment' => 'Süü:',
+'undelete-search-submit' => 'Etsi',
+'undelete-show-file-submit' => 'Daa',
 
 # Namespace form on various pages
 'namespace' => 'Nimiruumi:',
-'invert' => 'äänn nimiruumivalimin päävassaizõssi',
+'invert' => 'Cäänn nimiruumivalimin päävassaizõssi',
 'blanknamespace' => '(Artikkelid)',
 
 # Contributions
-'contributions' => 'äüttijää avittamizõd',
-'contributions-title' => 'äüttijää $1 avittamizõd',
+'contributions' => 'Cäüttijää avittamizõd',
+'contributions-title' => 'Cäüttijää $1 avittamizõd',
 'mycontris' => 'Minu avittamizõd',
-'contribsub2' => 'äüttijää $1 ($2) avittamizõd',
+'contribsub2' => 'Cäüttijää $1 ($2) avittamizõd',
 'uctop' => '(ülez)',
 'month' => 'Kuu',
 'year' => 'Voosi:',
 
-'sp-contributions-newbies' => 'Näüt uusijõõ äüttijee muutuhsõd',
+'sp-contributions-newbies' => 'Näüt uusijõõ cäüttijee muutuhsõd',
 'sp-contributions-blocklog' => 'piättelemized',
 'sp-contributions-logs' => 'logid',
 'sp-contributions-talk' => 'Juttu',
 'sp-contributions-search' => 'Etsi avittamisiit',
-'sp-contributions-username' => 'IP-adressi vai äüttijänimi',
+'sp-contributions-username' => 'IP-adressi vai cäüttijänimi',
 'sp-contributions-submit' => 'Etsi',
 
 # What links here
 'whatlinkshere' => 'Linkid tänne',
-'whatlinkshere-title' => 'Tšüľľed, kummad näütellä tšüľľelle "$1"',
-'whatlinkshere-page' => 'Tšültši:',
-'linkshere' => "Vahtiaavilt tšültšiilt on linkki tšüľľelle '''[[:$1]]''':",
-'isredirect' => 'mešaituztšültši',
+'whatlinkshere-title' => 'Cüľľed, kummad näütellä cüľľelle "$1"',
+'whatlinkshere-page' => 'Cülci:',
+'linkshere' => "Vahtiaavilt cülciilt on linkki cüľľelle '''[[:$1]]''':",
+'isredirect' => 'mešaituzcülci',
 'istemplate' => 'sisällütüz šabloonii',
 'isimage' => 'kuvalinkki',
-'whatlinkshere-prev' => '{{PLURAL:$1|entiin tšültši|$1 entiiss tšültšiä}}',
-'whatlinkshere-next' => '{{PLURAL:$1|vahtiaava tšültši|$1 vahtiaava tšültšiä}}',
+'whatlinkshere-prev' => '{{PLURAL:$1|entiin cülci|$1 entiiss cülciä}}',
+'whatlinkshere-next' => '{{PLURAL:$1|vahtiaava cülci|$1 vahtiaava cülciä}}',
 'whatlinkshere-links' => '← linkid',
 'whatlinkshere-hideredirs' => '$1 mešaituhsõd',
 'whatlinkshere-hidetrans' => '$1 sisällütühsed',
 'whatlinkshere-hidelinks' => '$1 linkid',
+'whatlinkshere-hideimages' => '$1 faililinkid',
 'whatlinkshere-filters' => 'Fiľtrad',
 
 # Block/unblock
-'blockip' => 'Piättee tšäüttijää',
-'ipboptions' => '2 tunnia:2 hours,1 päivä:1 day,3 päivää:3 days,1 näteľi:1 week,2 näteľiä:2 weeks,1 kuu:1 month,3 kuut:3 months,6 kuut:6 months,1 voosi:1 year,itšiin:infinite',
+'blockip' => 'Piättee cäüttijää',
+'ipbreason' => 'Süü:',
+'ipboptions' => '2 tunnia:2 hours,1 päivä:1 day,3 päivää:3 days,1 näteľi:1 week,2 näteľiä:2 weeks,1 kuu:1 month,3 kuut:3 months,6 kuut:6 months,1 voosi:1 year,iciin:infinite',
+'ipbotheroption' => 'muu',
 'ipblocklist' => 'Piäteltüd IP-adressid ja cäüttijänimed',
+'blocklist-reason' => 'Süü',
+'ipblocklist-submit' => 'Etsi',
+'infiniteblock' => 'iciin',
 'blocklink' => 'piättee',
-'unblocklink' => 'rooi piäsüss',
+'unblocklink' => 'rooci piäsüss',
 'change-blocklink' => 'muutu piätüss',
 'contribslink' => 'avittamizõd',
 'blocklogpage' => 'Piätüzlogi',
-'blocklogentry' => 'piätteli tšäüttijää vai IP-tšislaa [[$1]]. Piättelemin lõpub $2 $3',
-'unblocklogentry' => 'rootši tšäüttijält $1 muutuzpiäsüss',
+'blocklogentry' => 'piätteli cäüttijää vai IP-cislaa [[$1]]. Piättelemin lõpub $2 $3',
+'unblocklogentry' => 'rooci cäüttijält $1 muutuzpiäsüss',
 'block-log-flags-nocreate' => 'lukuloomin piäteltü',
+'proxyblocksuccess' => 'On tehtü.',
 
 # Move page
-'movepagetext' => "Alla õlõvall ruumõll võitta anta tšüľľelle uutt nimiä; kõik tšüľľee istori leeb liikutõttu uuvvõ nimee alle.
-Vanass tšüľľess nõizõb tulõma mešaituztšültši, kumpa näütteeb uuvvõsõ tšültšese.
-Võitta obnovoittaa tšültšese silmell lüüvvävä mešaituhsõd avtomaattisessi uuvõllõ nimelle.
-Kui että taho sitä tehävää avtomaattisessi, mälehtega ettsiää [[Special:DoubleRedirects|kahskõrtaissit]] vai [[Special:BrokenRedirects|katiit]] mešaituhsiit.
+'movepagetext' => "Alla õlõvall ruumõll võitta anta cüľľelle uutt nimiä; kõik cüľľee istori leeb liikutõttu uuvvõ nimee alle.
+Vanass cüľľess nõizõb tulõma mešaituzcülci, kumpa näütteeb uuvvõsõ cülcese.
+Võitta obnovoittaa cülcese silmell lüüvvävä mešaituhsõd avtomaattisessi uuvõllõ nimelle.
+Kui että taho sitä tehävää avtomaattisessi, mälehtega ettsiää [[Special:DoubleRedirects|kahskõrtaissit]] vai [[Special:BrokenRedirects|katciit]] mešaituhsiit.
 Õlõtta vastuussa sihee, jot linkid näütteeväd sinne, kuhõõ ned pitäiziväd näütellää.
 
-Tšültšiä '''eb''' nõizõ liikuttama, kui uusi nimi on jo tšäütennü, muut kuiva kui tšültši on tühjä vai on mešaituz, kummall ebõõ muutuzistoria.
-See täheteb sitä, jot võitta liikuttaa tšüľľee takaz vanalle nimelle kui öhsünettä, mutta että või tširjuttaa eloz õlõvaa tšüľľee päälle.
+Cülciä '''eb''' nõizõ liikuttama, kui uusi nimi on jo cäütennü, muut kuiva kui cülci on tühjä vai on mešaituz, kummall ebõõ muutuzistoria.
+See täheteb sitä, jot võitta liikuttaa cüľľee takaz vanalle nimelle kui öhsünettä, mutta että või cirjuttaa eloz õlõvaa cüľľee päälle.
 
-See saattab õlla suuri ja oottõmizõtoi muutuz populaarnoille tšüľľelle. Õlka nii üvä, obespetšoittõga, jot saatta arvoa sledstvijäd ennee kui liikutta tšüľľee.",
-'movepagetalktext' => "Tšültši ja sene juttutšültši leeväd liikutõtud ühez, '''va kui''':
-*Tseeľitšüľľell on eloz juttutšültši, kumpa ebõõ tühjä, vai
+See saattab õlla suuri ja oottõmizõtoi muutuz populaarnoille cüľľelle. Õlka nii üvä, obespecoittõga, jot saatta arvoa sledstvijäd ennee kui liikutta cüľľee.",
+'movepagetalktext' => "Cülci ja sene juttucülci leeväd liikutõtud ühez, '''va kui''':
+*Tseeľicüľľell on eloz juttucülci, kumpa ebõõ tühjä, vai
 *Jätättä all õlõvaa ruuoo merkkittämättä.
 
-Neill kõhtoill piättä liikuttaa vai ühissää tšüľľee tšäzi.",
-'movearticle' => 'Liikut tšültši',
-'newtitle' => 'Uusi nimi üľľelee',
-'move-watch' => 'Katso sitä tšültšiä',
-'movepagebtn' => 'Liikut tšültši',
+Neill kõhtoill piättä liikuttaa vai ühissää cüľľee cäzi.",
+'movearticle' => 'Liikut cülci',
+'newtitle' => 'Uusi nimi cüľľelee',
+'move-watch' => 'Katso sitä cülciä',
+'movepagebtn' => 'Liikut cülci',
 'pagemovedsub' => 'Liikka tuli valmessi',
 'movepage-moved' => '\'\'\'"$1" on liikuttu nimelee "$2"\'\'\'',
-'articleexists' => 'Tseeľitšültši on jo eloz, vai võõbornoi nimi eb kõlpa. Õlka nii üvä ja valittsõga uusi nimi.',
-'talkexists' => "'''Tšüľľee liikka tuli valmessi, a juttitšültšiä eb õli liikutõttu, ku uuvvõ zagolofkaa all on jo juttutšültši. Juttutšültšije sisälto piättä ühinessä tšäzi.'''",
+'articleexists' => 'Tseeľicülci on jo eloz, vai võõbornoi nimi eb kõlpa. Õlka nii üvä ja valittsõga uusi nimi.',
+'talkexists' => "'''Cüľľee liikka tuli valmessi, a jutticülciä eb õli liikutõttu, ku uuvvõ zagolofkaa all on jo juttucülci. Juttucülcije sisälto piättä ühinessä cäzi.'''",
 'movedto' => 'liikutõttu',
-'movetalk' => 'Liikut toož juttutšültši',
+'movetalk' => 'Liikut toož juttucülci',
 'movelogpage' => 'Liikkalogi',
 'movereason' => 'Süü',
 'revertmove' => 'kummut',
 
 # Export
-'export' => 'Tšültšiďďee väľľää veto',
+'export' => 'Cülciďďee väľľää veto',
 
 # Namespace 8 related
 'allmessagesname' => 'Nimi',
+'allmessages-language' => 'Ceeli:',
+'allmessages-filter-submit' => 'Mee',
 
 # Thumbnails
 'thumbnail-more' => 'Suurõt',
 
+# Special:Import
+'import-upload-filename' => 'Failinimi:',
+'import-comment' => 'Zamecańńa:',
+
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Teďďee tšäüttijätšültši',
-'tooltip-pt-mytalk' => 'Teďďee juttu-tšültši',
+'tooltip-pt-userpage' => 'Teďďee cäüttijäcülci',
+'tooltip-pt-mytalk' => 'Teďďee juttu-cülci',
 'tooltip-pt-preferences' => 'Teďďee koozid',
-'tooltip-pt-watchlist' => 'Spiiska tšültšissä, kummad muutussia kattsõõtta',
+'tooltip-pt-watchlist' => 'Spiiska cülcissä, kummad muutussia kattsõõtta',
 'tooltip-pt-mycontris' => 'Spiiska teďďee avittamisiit',
-'tooltip-pt-login' => 'Müü taritsõmmõ teit süäme irjuttõma, a ebõõ tarvitõttõva',
-'tooltip-pt-logout' => 'irjut uloz',
+'tooltip-pt-login' => 'Müü taritsõmmõ teit süäme cirjuttõma, a ebõõ tarvitõttõva',
+'tooltip-pt-logout' => 'Cirjut uloz',
 'tooltip-ca-talk' => 'Juttu sisällossa',
-'tooltip-ca-edit' => 'Tüü võittõ muuttaa sitä tšültšiä.
+'tooltip-ca-edit' => 'Tüü võittõ muuttaa sitä cülciä.
 Õõ nii üvä, ennee salvomiss, retsenziroittiga!',
 'tooltip-ca-addsection' => 'Lissä uusi alaõsa',
-'tooltip-ca-viewsource' => 'Kase tšültši on varjõttu.
-Että või muuttaa tšültšia, mutta võittõ kattsoa sene lähtekoodi.',
-'tooltip-ca-history' => 'Sene üľľee vanad verzijad',
-'tooltip-ca-protect' => 'Varjaa kase tšültši',
-'tooltip-ca-delete' => 'Pühi kase tšültši',
-'tooltip-ca-move' => 'Liikut kase tšültši',
-'tooltip-ca-watch' => 'Lissä kase tšültši kattsõspiiskalõõ',
-'tooltip-ca-unwatch' => 'Paa kase tšültši Teďďee kattsõspiizgalt poiz',
+'tooltip-ca-viewsource' => 'Kase cülci on varjõttu.
+Että või muuttaa cülcia, mutta võittõ kattsoa sene lähtekoodi.',
+'tooltip-ca-history' => 'Sene cüľľee vanad verzijad',
+'tooltip-ca-protect' => 'Varjaa kase cülci',
+'tooltip-ca-delete' => 'Pühi kase cülci',
+'tooltip-ca-move' => 'Liikut kase cülci',
+'tooltip-ca-watch' => 'Lissä kase cülci kattsõspiiskalõõ',
+'tooltip-ca-unwatch' => 'Paa kase cülci Teďďee kattsõspiizgalt poiz',
 'tooltip-search' => 'Etsi vikissa',
-'tooltip-search-go' => 'Mee tšüľľelee, kummall on vakurat sesama nimi (kui eloz on)',
-'tooltip-search-fulltext' => 'Etsi tšültšiltä sitä tekstiä',
-'tooltip-n-mainpage' => 'Mee esitšüľľelee',
-'tooltip-n-mainpage-description' => 'Mee esitšüľľelee',
+'tooltip-search-go' => 'Mee cüľľelee, kummall on vakurat sesama nimi (kui eloz on)',
+'tooltip-search-fulltext' => 'Etsi cülciltä sitä tekstiä',
+'tooltip-p-logo' => 'Mee esicüľľelee',
+'tooltip-n-mainpage' => 'Mee esicüľľelee',
+'tooltip-n-mainpage-description' => 'Mee esicüľľelee',
 'tooltip-n-portal' => 'Juttua projektissa: Mitä tüü võittõ tehä, kuza levvette mitä',
-'tooltip-n-currentevents' => 'Lugõ soobšeńńad nüüizess kõhtoiss',
+'tooltip-n-currentevents' => 'Lugõ soobšeńńad nücüizess kõhtoiss',
 'tooltip-n-recentchanges' => 'Spiiska uusissa muutussissa',
-'tooltip-n-randompage' => 'Avaa tšültšia kõhtõissi',
+'tooltip-n-randompage' => 'Avaa cülcia kõhtõissi',
 'tooltip-n-help' => 'Praavila',
-'tooltip-t-whatlinkshere' => 'Spiiska kõikkissa tšültšissä, kummad tänne näütellä',
-'tooltip-t-recentchangeslinked' => 'Viimõizõd muuttussõd tšültšillä, kummalõõ on siittä näüteltü',
-'tooltip-feed-rss' => 'RSS-söötte selle üľľelle',
-'tooltip-feed-atom' => 'Atom-söötte selle üľľelle',
-'tooltip-t-contributions' => 'Näüt spiiska sene äüttijää avittamiss',
-'tooltip-t-emailuser' => 'Lähettega elektropoštia selle äüttijälle',
-'tooltip-t-upload' => 'Laajõngoit failia ülez (загружать файл)',
-'tooltip-t-specialpages' => 'Spiiska kõikkissa osoobenoissa tšültšissä',
-'tooltip-t-print' => 'Sene tšüľľee petšatoittõva verzija',
-'tooltip-t-permalink' => 'Postojannoi linkki üľľee selle verzijalõõ',
+'tooltip-t-whatlinkshere' => 'Spiiska kõikkissa cülcissä, kummad tänne näütellä',
+'tooltip-t-recentchangeslinked' => 'Viimõizõd muuttussõd cülcillä, kummalõõ on siittä näüteltü',
+'tooltip-feed-rss' => 'RSS-söötte selle cüľľelle',
+'tooltip-feed-atom' => 'Atom-söötte selle cüľľelle',
+'tooltip-t-contributions' => 'Näüt spiiska sene cäüttijää avittamiss',
+'tooltip-t-emailuser' => 'Lähettega elektropoštia selle cäüttijälle',
+'tooltip-t-upload' => 'Laajõngoit failia ülez',
+'tooltip-t-specialpages' => 'Spiiska kõikkissa osoobenoissa cülcissä',
+'tooltip-t-print' => 'Sene cüľľee pecatoittõva verzija',
+'tooltip-t-permalink' => 'Postojannoi linkki cüľľee selle verzijalõõ',
 'tooltip-ca-nstab-main' => 'Näüt artikkelia',
-'tooltip-ca-nstab-user' => 'Näüt tšäüttijätšültši',
-'tooltip-ca-nstab-special' => 'Kase on osoobennoi tšültši, tüü ed saa sitä muuttõma',
-'tooltip-ca-nstab-project' => 'Näüt projektitšültši',
-'tooltip-ca-nstab-image' => 'Näüt failitšültši',
+'tooltip-ca-nstab-user' => 'Näüt cäüttijäcülci',
+'tooltip-ca-nstab-special' => 'Kase on osoobennoi cülci, tüü ed saa sitä muuttõma',
+'tooltip-ca-nstab-project' => 'Näüt projekticülci',
+'tooltip-ca-nstab-image' => 'Näüt failicülci',
 'tooltip-ca-nstab-template' => 'Näüt šablooni',
-'tooltip-ca-nstab-category' => 'Näüt gruppatšültši',
+'tooltip-ca-nstab-category' => 'Näüt gruppacülci',
 'tooltip-minoredit' => 'Merkit kase peenessi muutuhsõssi',
 'tooltip-save' => 'Salvo muutussõd',
 'tooltip-preview' => 'Retsenziroitta muutuss. Õõ nii üvä, ennee salvomiss, retsenziroittiga!',
 'tooltip-diff' => 'Näüt tehtüd muutuhsõd',
 'tooltip-compareselectedversions' => 'Näütää vahõd 2 valitsõttuďďõ verzijoďďõ väliz',
-'tooltip-watch' => 'Lissä kase tšültši kattsõspiizgallõ',
-'tooltip-rollback' => 'Vääntega üľľee teksti vanõmpi verzijalõõ',
+'tooltip-watch' => 'Lissä kase cülci kattsõspiizgallõ',
+'tooltip-rollback' => 'Vääntega cüľľee teksti vanõmpi verzijalõõ',
 'tooltip-undo' => '"Kummut" väänteeb kasene muutusõõ ja avab artikkelii prestavleńńaa.
 Toož, võittõ tširjutta väänteüssee süü.',
+'tooltip-summary' => 'Turvotuz',
+
+# Info page
+'pageinfo-subjectpage' => 'Cülci',
 
 # Browsing diffs
 'previousdiff' => '← Vanõpi muutuz',
@@ -680,6 +792,9 @@ Toož, võittõ tširjutta väänteüssee süü.',
 'svg-long-desc' => 'SVG-faili $1 × $2 px, failii suuruz: $3',
 'show-big-image' => 'Kõrka-rezoľuuttsiin verzija',
 
+# Special:NewFiles
+'ilsubmit' => 'Etsi',
+
 # Bad image list
 'bad_image_list' => 'Spiizgaa formatti on:
 
@@ -693,7 +808,7 @@ Kõik muud linkid leeväd pantu panõlõõ nii ku ero.',
 Kui faili on muutõttu, siiz detaaľid võivad õlla kahõllaizõd muutõtull failill.',
 'metadata-expand' => 'Näüt lontsõkait detaaľiit',
 'metadata-collapse' => 'Salauta lontsõkait detaaľiit',
-'metadata-fields' => 'Vahtiaavad platsid õvad vällez kuvaüľľell, ku sisältotabľittsa on peenettettü.
+'metadata-fields' => 'Vahtiaavad platsid õvad vällez kuvacüľľell, ku sisältotabľittsa on peenettettü.
 * make
 * model
 * datetimeoriginal
@@ -708,6 +823,20 @@ Kui faili on muutõttu, siiz detaaľid võivad õlla kahõllaizõd muutõtull fa
 * gpslongitude
 * gpsaltitude',
 
+# EXIF tags
+'exif-gpstimestamp' => 'GPS-aika',
+'exif-languagecode' => 'Ceeli',
+'exif-iimcategory' => 'Gruppa',
+
+'exif-meteringmode-255' => 'Muu',
+
+'exif-gaincontrol-0' => 'Eb õõ',
+
+'exif-iimcategory-ace' => 'Kunsti ja kulttuuri',
+'exif-iimcategory-hth' => 'Terveüz',
+'exif-iimcategory-pol' => 'Politiikka',
+'exif-iimcategory-wea' => 'Ilma',
+
 # External editor support
 'edit-externally' => 'Muuttaa sitä failia ulkopoolizõõ prograammiikaa.',
 'edit-externally-help' => '(Kattsoga [//www.mediawiki.org/wiki/Manual:External_editors praavilõd], kui tahotta lisäinformaattsia.)',
@@ -716,13 +845,45 @@ Kui faili on muutõttu, siiz detaaľid võivad õlla kahõllaizõd muutõtull fa
 'watchlistall2' => 'koko istori',
 'namespacesall' => 'kõik',
 'monthsall' => 'kõik',
+'limitall' => 'kõik',
+
+# action=purge
+'confirm_purge_button' => 'OK',
+
+# action=watch/unwatch
+'confirm-watch-button' => 'OK',
+'confirm-unwatch-button' => 'OK',
+
+# Table pager
+'table_pager_first' => 'Esimein cülci',
+'table_pager_last' => 'Viimein cülci',
+'table_pager_limit_submit' => 'Mee',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Näüt muutuhsõd',
 'watchlisttools-edit' => 'Muuttaa spiiskaa',
 'watchlisttools-raw' => 'Muut lähtefaili',
 
+# Special:FilePath
+'filepath-page' => 'Faili:',
+'filepath-submit' => 'Mee',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch-filename' => 'Failinimi:',
+'fileduplicatesearch-submit' => 'Etsi',
+
 # Special:SpecialPages
-'specialpages' => 'Osoobenoid tšüľľed',
+'specialpages' => 'Osoobenoid cüľľed',
+
+# Special:Tags
+'tags-edit' => 'muuttaa',
+
+# HTML forms
+'htmlform-selectorother-other' => 'Muu',
+
+# Feedback
+'feedback-message' => 'Ilmottamin:',
+'feedback-cancel' => 'Otmeńoit',
+'feedback-close' => 'On tehtü',
 
 );
index 0533c41..d19655b 100644 (file)
@@ -3802,6 +3802,8 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 'api-error-empty-file' => '您提交的檔案是空的。',
 'api-error-emptypage' => '不許創建沒有內容的新頁面。',
 'api-error-fetchfileerror' => '內部錯誤:獲取文件時發生錯誤。',
+'api-error-fileexists-forbidden' => '以" $1 "命名的檔案已經存在,並且不能被重寫。',
+'api-error-fileexists-shared-forbidden' => '以" $1 "命名的檔案已經存在於共用檔案儲存庫上,並且不能被重寫。',
 'api-error-file-too-large' => '您提交的檔案太大了。',
 'api-error-filename-tooshort' => '檔案名過短。',
 'api-error-filetype-banned' => '這種類型的檔案是被禁止的。',
diff --git a/maintenance/cleanupPreferences.php b/maintenance/cleanupPreferences.php
new file mode 100755 (executable)
index 0000000..57a5369
--- /dev/null
@@ -0,0 +1,29 @@
+<?php\r
+/**\r
+ * Description: This script takes $wgHiddenPrefs and removes their preference from the DB. [[bugzilla:30976]]\r
+ * @author TyA <tya.wiki@gmail.com>\r
+ * @ingroup Maintenance\r
+ */\r
+\r
+require_once( dirname( __FILE__ ) . '/Maintenance.php' );\r
+\r
+class CleanupPreferences extends Maintenance {\r
+       public function execute() {\r
+               global $wgHiddenPrefs;\r
+\r
+               $dbw = wfGetDB( DB_MASTER );\r
+               $dbw->begin();\r
+               foreach( $wgHiddenPrefs as $item ) {\r
+                       $dbw->delete(\r
+                               'user_properties',\r
+                               array( 'up_property' => $item ),\r
+                               __METHOD__\r
+                       );\r
+               };\r
+               $dbw->commit();\r
+               $this->output( "Finished!\n" );\r
+       }\r
+}\r
+\r
+$maintClass = 'CleanupPreferences'; // Tells it to run the class\r
+require_once( RUN_MAINTENANCE_IF_MAIN );\r
index 876f28e..15ed5ac 100644 (file)
@@ -66,7 +66,7 @@ class CLIParser extends Maintenance {
                $input_file = $this->getArg( 0, $php_stdin );
 
                if( $input_file === $php_stdin ) {
-                       $this->error( basename(__FILE__) .": warning: reading wikitext from STDIN\n" );
+                       $this->error( basename(__FILE__) .": warning: reading wikitext from STDIN. Press CTRL+D to parse.\n" );
                }
 
                return file_get_contents( $input_file );
index 45df39a..d8f4bfc 100644 (file)
                        // that affects the next each() iteration as well.
                        elLimit = limit === undefined ? $el.prop( 'maxLength' ) : limit;
        
+                       // If there is no (valid) limit passed or found in the property,
+                       // skip this. The < 0 check is required for Firefox, which returns
+                       // -1  (instead of undefined) for maxLength if it is not set.
+                       if ( !elLimit || elLimit < 0 ) {
+                               return;
+                       }
+
                        // Update/set attribute value, but only if there is no callback set.
                        // If there's a callback set, it's possible that the limit being enforced
                        // is too low (ie. if the callback would return "Foo" for "User:Foo").
                                $el.removeProp( 'maxLength' );
                        }
        
-                       // Nothing passed and/or empty attribute, return without binding an event.
-                       if ( elLimit === undefined ) {
-                               return;
-                       }
-       
                        // Save function for reference
                        $el.data( 'byteLimit-callback', fn );
        
index 79317f7..6d5974a 100644 (file)
@@ -1,96 +1,47 @@
-/**
- * Cookie plugin
+/*!
+ * jQuery Cookie Plugin
+ * https://github.com/carhartl/jquery-cookie
  *
- * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
- * Dual licensed under the MIT and GPL licenses:
+ * Copyright 2011, Klaus Hartl
+ * Dual licensed under the MIT or GPL Version 2 licenses.
  * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
+ * http://www.opensource.org/licenses/GPL-2.0
  */
+(function($) {
+    $.cookie = function(key, value, options) {
 
-/**
- * Create a cookie with the given name and value and other optional parameters.
- *
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Set the value of a cookie.
- * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
- * @desc Create a cookie with all available options.
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Create a session cookie.
- * @example $.cookie('the_cookie', null);
- * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
- *       used when the cookie was set.
- *
- * @param String name The name of the cookie.
- * @param String value The value of the cookie.
- * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
- * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
- *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
- *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
- *                             when the the browser exits.
- * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
- * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
- * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
- *                        require a secure protocol (like HTTPS).
- * @type undefined
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
+        // key and at least value given, set cookie...
+        if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
+            options = $.extend({}, options);
 
-/**
- * Get the value of a cookie with the given name.
- *
- * @example $.cookie('the_cookie');
- * @desc Get the value of a cookie.
- *
- * @param String name The name of the cookie.
- * @return The value of the cookie.
- * @type String
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-jQuery.cookie = function(name, value, options) {
-    if (typeof value != 'undefined') { // name and value given, set cookie
-        options = options || {};
-        if (value === null) {
-            value = '';
-            options.expires = -1;
-        }
-        var expires = '';
-        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
-            var date;
-            if (typeof options.expires == 'number') {
-                date = new Date();
-                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
-            } else {
-                date = options.expires;
+            if (value === null || value === undefined) {
+                options.expires = -1;
             }
-            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
-        }
-        // CAUTION: Needed to parenthesize options.path and options.domain
-        // in the following expressions, otherwise they evaluate to undefined
-        // in the packed version for some reason...
-        var path = options.path ? '; path=' + (options.path) : '';
-        var domain = options.domain ? '; domain=' + (options.domain) : '';
-        var secure = options.secure ? '; secure' : '';
-        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
-    } else { // only name given, get cookie
-        var cookieValue = null;
-        if (document.cookie && document.cookie != '') {
-            var cookies = document.cookie.split(';');
-            for (var i = 0; i < cookies.length; i++) {
-                var cookie = jQuery.trim(cookies[i]);
-                // Does this cookie string begin with the name we want?
-                if (cookie.substring(0, name.length + 1) == (name + '=')) {
-                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
-                    break;
-                }
+
+            if (typeof options.expires === 'number') {
+                var days = options.expires, t = options.expires = new Date();
+                t.setDate(t.getDate() + days);
             }
+
+            value = String(value);
+
+            return (document.cookie = [
+                encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
+                options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+                options.path    ? '; path=' + options.path : '',
+                options.domain  ? '; domain=' + options.domain : '',
+                options.secure  ? '; secure' : ''
+            ].join(''));
+        }
+
+        // key and possibly options given, get cookie...
+        options = value || {};
+        var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
+
+        var pairs = document.cookie.split('; ');
+        for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
+            if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
         }
-        return cookieValue;
-    }
-};
+        return null;
+    };
+})(jQuery);
index ea86b64..08272a5 100644 (file)
@@ -60,7 +60,7 @@
 
        /* Local scope */
 
-       var     ts,
+       var ts,
                parsers = [];
 
        /* Parser utility functions */
 
        function getElementText( node ) {
                var $node = $( node ),
-                       data = $node.attr( 'data-sort-value' );
-               if ( data !== undefined ) {
-                       return data;
+                       // Use data-sort-value attribute.
+                       // Use data() instead of attr() so that live value changes
+                       // are processed as well (bug 38152).
+                       data = $node.data( 'sortValue' );
+
+               if ( data !== null && data !== undefined ) {
+                       // Cast any numbers or other stuff to a string, methods
+                       // like charAt, toLowerCase and split are expected.
+                       return String( data );
                } else {
                        return $node.text();
                }
 
        function buildDateTable() {
                var regex = [];
-               ts.monthNames = [
-                       [],
-                       []
-               ];
+               ts.monthNames = {};
 
                for ( var i = 1; i < 13; i++ ) {
-                       ts.monthNames[0][i] = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
-                       ts.monthNames[1][i] = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
-                       regex.push( $.escapeRE( ts.monthNames[0][i] ) );
-                       regex.push( $.escapeRE( ts.monthNames[1][i] ) );
+                       var name = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
+                       ts.monthNames[name] = i;
+                       regex.push( $.escapeRE( name ) );
+                       name = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
+                       ts.monthNames[name] = i;
+                       regex.push( $.escapeRE( name ) );
                }
 
                // Build piped string
 
                // Build RegEx
                // Any date formated with . , ' - or /
-               ts.dateRegex[0] = new RegExp( /^\s*\d{1,2}[\,\.\-\/'\s]{1,2}\d{1,2}[\,\.\-\/'\s]{1,2}\d{2,4}\s*?/i);
+               ts.dateRegex[0] = new RegExp( /^\s*(\d{1,2})[\,\.\-\/'\s]{1,2}(\d{1,2})[\,\.\-\/'\s]{1,2}(\d{2,4})\s*?/i);
 
                // Written Month name, dmy
-               ts.dateRegex[1] = new RegExp( '^\\s*\\d{1,2}[\\,\\.\\-\\/\'\\s]*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*\\d{2,4}\\s*$', 'i' );
+               ts.dateRegex[1] = new RegExp( '^\\s*(\\d{1,2})[\\,\\.\\-\\/\'\\s]*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*(\\d{2,4})\\s*$', 'i' );
 
                // Written Month name, mdy
-               ts.dateRegex[2] = new RegExp( '^\\s*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*\\d{1,2}[\\,\\.\\-\\/\'\\s]*\\d{2,4}\\s*$', 'i' );
+               ts.dateRegex[2] = new RegExp( '^\\s*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*(\\d{1,2})[\\,\\.\\-\\/\'\\s]*(\\d{2,4})\\s*$', 'i' );
 
        }
 
                        },
 
                        dateRegex: [],
-                       monthNames: [],
+                       monthNames: {},
 
                        /**
                         * @param $tables {jQuery}
                                                        explodeRowspans( $table );
                                                        // try to auto detect column type, and store in tables config
                                                        table.config.parsers = buildParserCache( table, $headers );
-                                                       // build the cache for the tbody cells
-                                                       cache = buildCache( table );
                                                }
+
+                                               // Build the cache for the tbody cells
+                                               // to share between calculations for this sort action.
+                                               // Re-calculated each time a sort action is performed due to possiblity
+                                               // that sort values change. Shouldn't be too expensive, but if it becomes
+                                               // too slow an event based system should be implemented somehow where
+                                               // cells get event .change() and bubbles up to the <table> here
+                                               cache = buildCache( table );
+
                                                var totalRows = ( $table[0].tBodies[0] && $table[0].tBodies[0].rows.length ) || 0;
                                                if ( !table.sortDisabled && totalRows > 0 ) {
 
                format: function( s, table ) {
                        s = $.trim( s.toLowerCase() );
 
-                       for ( var i = 1, j = 0; i < 13 && j < 2; i++ ) {
-                               s = s.replace( ts.monthNames[j][i], i );
-                               if ( i == 12 ) {
-                                       j++;
-                                       i = 0;
+                       var match;
+                       if ( ( match = s.match( ts.dateRegex[0] ) ) !== null ) {
+                               if ( mw.config.get( 'wgDefaultDateFormat' ) == 'mdy' || mw.config.get( 'wgContentLanguage' ) == 'en' ) {
+                                       s = [ match[3], match[1], match[2] ];
+                               } else if ( mw.config.get( 'wgDefaultDateFormat' ) == 'dmy' ) {
+                                       s = [ match[3], match[2], match[1] ];
                                }
+                       } else if ( ( match = s.match( ts.dateRegex[1] ) ) !== null ) {
+                               s = [ match[3], '' + ts.monthNames[match[2]], match[1] ];
+                       } else if ( ( match = s.match( ts.dateRegex[2] ) ) !== null ) {
+                               s = [ match[3], '' + ts.monthNames[match[1]], match[2] ];
+                       } else {
+                               // Should never get here
+                               return '99999999';
                        }
 
-                       s = s.replace( /[\-\.\,' ]/g, '/' );
-
-                       // Replace double slashes
-                       s = s.replace( /\/\//g, '/' );
-                       s = s.replace( /\/\//g, '/' );
-                       s = s.split( '/' );
-
                        // Pad Month and Day
-                       if ( s[0] && s[0].length == 1 ) {
-                               s[0] = '0' + s[0];
-                       }
-                       if ( s[1] && s[1].length == 1 ) {
+                       if ( s[1].length == 1 ) {
                                s[1] = '0' + s[1];
                        }
-                       var y;
+                       if ( s[2].length == 1 ) {
+                               s[2] = '0' + s[2];
+                       }
 
-                       if ( !s[2] ) {
-                               // Fix yearless dates
-                               s[2] = 2000;
-                       } else if ( ( y = parseInt( s[2], 10) ) < 100 ) {
+                       var y;
+                       if ( ( y = parseInt( s[0], 10) ) < 100 ) {
                                // Guestimate years without centuries
                                if ( y < 30 ) {
-                                       s[2] = 2000 + y;
+                                       s[0] = 2000 + y;
                                } else {
-                                       s[2] = 1900 + y;
+                                       s[0] = 1900 + y;
                                }
                        }
-                       // Resort array depending on preferences
-                       if ( mw.config.get( 'wgDefaultDateFormat' ) == 'mdy' || mw.config.get( 'wgContentLanguage' ) == 'en' ) {
-                               s.push( s.shift() );
-                               s.push( s.shift() );
-                       } else if ( mw.config.get( 'wgDefaultDateFormat' ) == 'dmy' ) {
-                               var d = s.shift();
-                               s.push( s.shift() );
-                               s.push(d);
+                       while ( s[0].length < 4 ) {
+                               s[0] = '0' + s[0];
                        }
                        return parseInt( s.join( '' ), 10 );
                },
index f29a9bd..deb7795 100644 (file)
@@ -351,7 +351,7 @@ var mw = ( function ( $, undefined ) {
                         *              }
                         *      }
                         */
-                       var     registry = {},
+                       var registry = {},
                                /**
                                 * Mapping of sources, keyed by source-id, values are objects.
                                 * Format:
@@ -368,17 +368,9 @@ var mw = ( function ( $, undefined ) {
                                queue = [],
                                // List of callback functions waiting for modules to be ready to be called
                                jobs = [],
-                               // Flag indicating that document ready has occured
-                               ready = false,
                                // Selector cache for the marker element. Use getMarker() to get/use the marker!
                                $marker = null;
 
-                       /* Cache document ready status */
-
-                       $(document).ready( function () {
-                               ready = true;
-                       } );
-
                        /* Private methods */
 
                        function getMarker() {
@@ -725,8 +717,12 @@ var mw = ( function ( $, undefined ) {
                         * @param callback Function: Optional callback which will be run when the script is done
                         */
                        function addScript( src, callback, async ) {
-                               var done = false, script, head;
-                               if ( ready || async ) {
+                               var script, head,
+                                       done = false;
+
+                               // Using isReady directly instead of storing it locally from
+                               // a $.fn.ready callback (bug 31895).
+                               if ( $.isReady || async ) {
                                        // jQuery's getScript method is NOT better than doing this the old-fashioned way
                                        // because jQuery will eval the script's code, and errors will not have sane
                                        // line numbers.
index 7f881b0..7a15e29 100644 (file)
@@ -25,7 +25,7 @@
                 * Generates a random user session ID (32 alpha-numeric characters).
                 *
                 * This information would potentially be stored in a cookie to identify a user during a
-                * session or series of sessions. It's uniqueness should not be depended on.
+                * session or series of sessions. Its uniqueness should not be depended on.
                 *
                 * @return String: Random set of 32 alpha-numeric characters
                 */
        // This is kind of ugly but we're stuck with this for b/c reasons
        mw.user = new User( mw.user.options, mw.user.tokens );
 
-})(jQuery);
\ No newline at end of file
+})(jQuery);
index f0ec2e5..6d324e4 100644 (file)
@@ -2716,20 +2716,58 @@ Failing to transform badly formed HTML into correct XHTML
 </p>
 !!end
 
-!! test 
+!! test
 Horizontal ruler (should it add that extra space?)
-!! input 
+!! input
 <hr>
 <hr >
 foo <hr
 > bar
-!! result 
+!! result
 <hr />
 <hr />
 foo <hr /> bar
 
 !! end
 
+!! test
+Horizontal ruler -- 4+ dashes render hr
+!! input
+----
+!! result
+<hr />
+
+!! end
+
+!! test
+Horizontal ruler -- eats additional dashes on the same line
+!! input
+---------
+!! result
+<hr />
+
+!! end
+
+!! test
+Horizontal ruler -- does not collaps dashes on consecutive lines
+!! input
+----
+----
+!! result
+<hr />
+<hr />
+
+!! end
+
+!! test
+Horizontal ruler -- <4 dashes render as plain text
+!! input
+---
+!! result
+<p>---
+</p>
+!! end
+
 ###
 ### Block-level elements
 ###
index 21effdb..2cb94d1 100644 (file)
                expected: simpleSample
        });
 
+       byteLimitTest({
+               description: 'Plain text input. Calling byteLimit with no parameters and no maxLength property (bug 36310)',
+               $input: $( '<input>' )
+                       .attr( 'type', 'text' )
+                       .byteLimit(),
+               sample: simpleSample,
+               hasLimit: false,
+               expected: simpleSample
+       });
+
        byteLimitTest({
                description: 'Limit using the maxlength attribute',
                $input: $( '<input>' )
index f028dbc..df0144c 100644 (file)
@@ -408,7 +408,8 @@ test( 'bug 32047 - caption must be before thead', function() {
 test( 'data-sort-value attribute, when available, should override sorting position', function() {
        var $table, data;
 
-       // Simple example, one without data-sort-value which should be sorted at it's text.
+       // Example 1: All cells except one cell without data-sort-value,
+       // which should be sorted at it's text content value.
        $table = $(
                '<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
                        '<tbody>' +
@@ -424,30 +425,33 @@ test( 'data-sort-value attribute, when available, should override sorting positi
        data = [];
        $table.find( 'tbody > tr' ).each( function( i, tr ) {
                $( tr ).find( 'td' ).each( function( i, td ) {
-                       data.push( { data: $( td ).data( 'sort-value' ), text: $( td ).text() } );
+                       data.push( {
+                               data: $( td ).data( 'sortValue' ),
+                               text: $( td ).text()
+                       } );
                });
        });
 
        deepEqual( data, [
                {
-                       "data": "Apple",
-                       "text": "Bird"
+                       data: 'Apple',
+                       text: 'Bird'
                }, {
-                       "data": "Bananna",
-                       "text": "Ferret"
+                       data: 'Bananna',
+                       text: 'Ferret'
                }, {
-                       "data": undefined,
-                       "text": "Cheetah"
+                       data: undefined,
+                       text: 'Cheetah'
                }, {
-                       "data": "Cherry",
-                       "text": "Dolphin"
+                       data: 'Cherry',
+                       text: 'Dolphin'
                }, {
-                       "data": "Drupe",
-                       "text": "Elephant"
+                       data: 'Drupe',
+                       text: 'Elephant'
                }
-       ] );
+       ], 'Order matches expected order (based on data-sort-value attribute values)' );
 
-       // Another example
+       // Example 2
        $table = $(
                '<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
                        '<tbody>' +
@@ -463,28 +467,89 @@ test( 'data-sort-value attribute, when available, should override sorting positi
        data = [];
        $table.find( 'tbody > tr' ).each( function( i, tr ) {
                $( tr ).find( 'td' ).each( function( i, td ) {
-                       data.push( { data: $( td ).data( 'sort-value' ), text: $( td ).text() } );
+                       data.push( {
+                               data: $( td ).data( 'sortValue' ),
+                               text: $( td ).text()
+                       } );
                });
        });
 
        deepEqual( data, [
                {
-                       "data": undefined,
-                       "text": "B"
+                       data: undefined,
+                       text: 'B'
                }, {
-                       "data": undefined,
-                       "text": "D"
+                       data: undefined,
+                       text: 'D'
                }, {
-                       "data": "E",
-                       "text": "A"
+                       data: 'E',
+                       text: 'A'
                }, {
-                       "data": "F",
-                       "text": "C"
+                       data: 'F',
+                       text: 'C'
                }, {
-                       "data": undefined,
-                       "text": "G"
+                       data: undefined,
+                       text: 'G'
                }
-       ] );
+       ], 'Order matches expected order (based on data-sort-value attribute values)' );
+
+       // Example 3: Test that live changes are used from data-sort-value,
+       // even if they change after the tablesorter is constructed (bug 38152).
+       $table = $(
+               '<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
+                       '<tbody>' +
+                       '<tr><td>D</td></tr>' +
+                       '<tr><td data-sort-value="1">A</td></tr>' +
+                       '<tr><td>B</td></tr>' +
+                       '<tr><td data-sort-value="2">G</td></tr>' +
+                       '<tr><td>C</td></tr>' +
+               '</tbody></table>'
+       );
+       // initialize table sorter and sort once
+       $table
+               .tablesorter()
+               .find( '.headerSort:eq(0)' ).click();
+
+       // Change the sortValue data properties (bug 38152)
+       // - change data
+       $table.find( 'td:contains(A)' ).data( 'sortValue', 3 );
+       // - add data
+       $table.find( 'td:contains(B)' ).data( 'sortValue', 1 );
+       // - remove data, bring back attribute: 2
+       $table.find( 'td:contains(G)' ).removeData( 'sortValue' );
+
+       // Now sort again (twice, so it is back at Ascending)
+       $table.find( '.headerSort:eq(0)' ).click();
+       $table.find( '.headerSort:eq(0)' ).click();
+
+       data = [];
+       $table.find( 'tbody > tr' ).each( function( i, tr ) {
+               $( tr ).find( 'td' ).each( function( i, td ) {
+                       data.push( {
+                               data: $( td ).data( 'sortValue' ),
+                               text: $( td ).text()
+                       } );
+               });
+       });
+
+       deepEqual( data, [
+               {
+                       data: 1,
+                       text: "B"
+               }, {
+                       data: 2,
+                       text: "G"
+               }, {
+                       data: 3,
+                       text: "A"
+               }, {
+                       data: undefined,
+                       text: "C"
+               }, {
+                       data: undefined,
+                       text: "D"
+               }
+       ], 'Order matches expected order, using the current sortValue in $.data()' );
 
 });
 
@@ -527,8 +592,8 @@ test( 'bug 32888 - Tables inside a tableheader cell', function() {
 
        var $table;
        $table = $(
-               '<table class="sortable" id="32888">' +
-               '<tr><th>header<table id="32888-2">'+
+               '<table class="sortable" id="mw-bug-32888">' +
+               '<tr><th>header<table id="mw-bug-32888-2">'+
                        '<tr><th>1</th><th>2</th></tr>' +
                '</table></th></tr>' +
                '<tr><td>A</td></tr>' +
@@ -543,10 +608,61 @@ test( 'bug 32888 - Tables inside a tableheader cell', function() {
                'Child tables inside a headercell should not interfere with sortable headers (bug 32888)'
        );
        equals(
-               $('#32888-2').find('th.headerSort').length,
+               $( '#mw-bug-32888-2' ).find('th.headerSort').length,
                0,
                'The headers of child tables inside a headercell should not be sortable themselves (bug 32888)'
        );
 });
 
+
+var correctDateSorting1 = [
+       ['01 January 2010'],
+       ['05 February 2010'],
+       ['16 January 2010'],
+];
+
+var correctDateSortingSorted1 = [
+       ['01 January 2010'],
+       ['16 January 2010'],
+       ['05 February 2010'],
+];
+
+tableTest(
+       'Correct date sorting I',
+       ['date'],
+       correctDateSorting1,
+       correctDateSortingSorted1,
+       function ( $table ) {
+               mw.config.set( 'wgDefaultDateFormat', 'mdy' );
+
+               $table.tablesorter();
+               $table.find( '.headerSort:eq(0)' ).click();
+       }
+);
+
+var correctDateSorting2 = [
+       ['January 01 2010'],
+       ['February 05 2010'],
+       ['January 16 2010'],
+];
+
+var correctDateSortingSorted2 = [
+       ['January 01 2010'],
+       ['January 16 2010'],
+       ['February 05 2010'],
+];
+
+tableTest(
+       'Correct date sorting II',
+       ['date'],
+       correctDateSorting2,
+       correctDateSortingSorted2,
+       function ( $table ) {
+               mw.config.set( 'wgDefaultDateFormat', 'dmy' );
+
+               $table.tablesorter();
+               $table.find( '.headerSort:eq(0)' ).click();
+       }
+);
+
 })( jQuery );